diff --git a/__mocks__/latlon-geohash.js b/__mocks__/latlon-geohash.js index d92a67c8..c59592b9 100644 --- a/__mocks__/latlon-geohash.js +++ b/__mocks__/latlon-geohash.js @@ -1,7 +1,9 @@ export const encode = jest.fn(); +export const neighbours = jest.fn(); const geohash = { - encode + encode, + neighbours }; export default geohash; diff --git a/android/app/build.gradle b/android/app/build.gradle index f492e5c0..d74b0df2 100755 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -137,8 +137,8 @@ android { applicationId "com.hamagen" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 46 - versionName '1.3.8' + versionCode 73 + versionName '1.4.7' } dexOptions { @@ -223,13 +223,13 @@ android { } dependencies { - implementation "com.facebook.react:react-native:+" // From node_modules - + implementation project(':rn-contact-tracing') implementation "com.google.android.gms:play-services-base:+" implementation 'com.google.android.gms:play-services-maps:+' - implementation 'com.google.firebase:firebase-core:17.3.0' - implementation "com.google.firebase:firebase-messaging:20.1.5" + implementation 'com.google.firebase:firebase-core:17.4.2' + implementation "com.google.firebase:firebase-messaging:20.2.0" implementation fileTree(dir: "libs", include: ["*.jar"]) + implementation "com.facebook.react:react-native:+" // From node_modules if (enableHermes) { def hermesPath = "../../node_modules/hermes-engine/android/"; diff --git a/android/app/src/debug/google-services.json b/android/app/src/debug/google-services.json index c822809b..6910f4c0 100644 --- a/android/app/src/debug/google-services.json +++ b/android/app/src/debug/google-services.json @@ -1,93 +1,65 @@ { "project_info": { - "project_number": "776051238571", - "firebase_url": "https://hamagen-aa88d.firebaseio.com", - "project_id": "hamagen-aa88d", - "storage_bucket": "hamagen-aa88d.appspot.com" + "project_number": "52365283353", + "firebase_url": "https://codeagainstcorona-3896f.firebaseio.com", + "project_id": "codeagainstcorona-3896f", + "storage_bucket": "codeagainstcorona-3896f.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:776051238571:android:6a28fec1527d21684af9ee", + "mobilesdk_app_id": "1:52365283353:android:8aec94697dbac7c9279a88", "android_client_info": { "package_name": "com.hamagen" } }, "oauth_client": [ { - "client_id": "776051238571-l562rviorn5u7gqejo6l8scnsr07knpj.apps.googleusercontent.com", + "client_id": "52365283353-eidtjtn5hhj9ah2kbo8fhuchk881nue3.apps.googleusercontent.com", "client_type": 1, "android_info": { "package_name": "com.hamagen", - "certificate_hash": "5e8f16062ea3cd2c4a0d547876baa6f38cabf625" + "certificate_hash": "83d01f3a66722354b83d9b5853076fbf6b7e7f30" } }, { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyBTUXVwo9ouIiPFNXBdz9o4D1KJq7Es1qg" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", - "client_type": 3 - }, - { - "client_id": "776051238571-mbp8deiq0b0blfsb0pn0sc25tfj99rk6.apps.googleusercontent.com", - "client_type": 2, - "ios_info": { - "bundle_id": "com.hamagen" - } - } - ] - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:776051238571:android:27428629073a56ce4af9ee", - "android_client_info": { - "package_name": "com.hamagen.dev" - } - }, - "oauth_client": [ + "client_id": "52365283353-jl2uq5agfi3uavmfk3q09mepr0na70ok.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.hamagen", + "certificate_hash": "da03d8b455b09ab26e9daf6e9e3a6a6151cd94cc" + } + }, { - "client_id": "776051238571-b87qk083ctbon3oib5lam95qg26inr4g.apps.googleusercontent.com", + "client_id": "52365283353-nlt85qc4fccj4gvssqaqs6splqbrmdrk.apps.googleusercontent.com", "client_type": 1, "android_info": { - "package_name": "com.hamagen.dev", - "certificate_hash": "5e8f16062ea3cd2c4a0d547876baa6f38cabf625" + "package_name": "com.hamagen", + "certificate_hash": "338496e3a378fb30fab21bb9dd0eeaf65eb571ba" } }, { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", + "client_id": "52365283353-3nptbkqkmkohnvntoc10fjv1u5t7kksc.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyBTUXVwo9ouIiPFNXBdz9o4D1KJq7Es1qg" + "current_key": "AIzaSyDAZunGyKrQfFo87KN5_7ucdxXuHtTDUtw" } ], "services": { "appinvite_service": { "other_platform_oauth_client": [ { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", + "client_id": "52365283353-3nptbkqkmkohnvntoc10fjv1u5t7kksc.apps.googleusercontent.com", "client_type": 3 }, { - "client_id": "776051238571-mbp8deiq0b0blfsb0pn0sc25tfj99rk6.apps.googleusercontent.com", + "client_id": "52365283353-1884kvsos7eqvli7omufrl1i0145m8m6.apps.googleusercontent.com", "client_type": 2, "ios_info": { - "bundle_id": "com.hamagen" + "bundle_id": "com.hamagen.qa" } } ] @@ -96,42 +68,50 @@ }, { "client_info": { - "mobilesdk_app_id": "1:776051238571:android:0ce459535c98709f4af9ee", + "mobilesdk_app_id": "1:52365283353:android:6613d33a05d0fd1f279a88", "android_client_info": { "package_name": "com.hamagen.qa" } }, "oauth_client": [ { - "client_id": "776051238571-igc55i4ajk7b7kchmqjg3dfg7ogqeguo.apps.googleusercontent.com", + "client_id": "52365283353-d692bhj3vdqcbntk9smuqp8j9ksvlsds.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.hamagen.qa", + "certificate_hash": "da03d8b455b09ab26e9daf6e9e3a6a6151cd94cc" + } + }, + { + "client_id": "52365283353-14b9v2gfg0bnumjif94t7se35akh33ti.apps.googleusercontent.com", "client_type": 1, "android_info": { "package_name": "com.hamagen.qa", - "certificate_hash": "5e8f16062ea3cd2c4a0d547876baa6f38cabf625" + "certificate_hash": "83d01f3a66722354b83d9b5853076fbf6b7e7f30" } }, { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", + "client_id": "52365283353-3nptbkqkmkohnvntoc10fjv1u5t7kksc.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyBTUXVwo9ouIiPFNXBdz9o4D1KJq7Es1qg" + "current_key": "AIzaSyDAZunGyKrQfFo87KN5_7ucdxXuHtTDUtw" } ], "services": { "appinvite_service": { "other_platform_oauth_client": [ { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", + "client_id": "52365283353-3nptbkqkmkohnvntoc10fjv1u5t7kksc.apps.googleusercontent.com", "client_type": 3 }, { - "client_id": "776051238571-mbp8deiq0b0blfsb0pn0sc25tfj99rk6.apps.googleusercontent.com", + "client_id": "52365283353-1884kvsos7eqvli7omufrl1i0145m8m6.apps.googleusercontent.com", "client_type": 2, "ios_info": { - "bundle_id": "com.hamagen" + "bundle_id": "com.hamagen.qa" } } ] diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index d180b0d8..92caee48 100755 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -9,7 +9,8 @@ - + + + + getPackages() { // packages.add(new MyReactNativePackage()); packages.add(new RNFirebaseMessagingPackage()); packages.add(new RNFirebaseNotificationsPackage()); + packages.add(new SpecialBlePackage()); return packages; } diff --git a/android/app/src/qa/google-services.json b/android/app/src/qa/google-services.json index c822809b..6910f4c0 100644 --- a/android/app/src/qa/google-services.json +++ b/android/app/src/qa/google-services.json @@ -1,93 +1,65 @@ { "project_info": { - "project_number": "776051238571", - "firebase_url": "https://hamagen-aa88d.firebaseio.com", - "project_id": "hamagen-aa88d", - "storage_bucket": "hamagen-aa88d.appspot.com" + "project_number": "52365283353", + "firebase_url": "https://codeagainstcorona-3896f.firebaseio.com", + "project_id": "codeagainstcorona-3896f", + "storage_bucket": "codeagainstcorona-3896f.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:776051238571:android:6a28fec1527d21684af9ee", + "mobilesdk_app_id": "1:52365283353:android:8aec94697dbac7c9279a88", "android_client_info": { "package_name": "com.hamagen" } }, "oauth_client": [ { - "client_id": "776051238571-l562rviorn5u7gqejo6l8scnsr07knpj.apps.googleusercontent.com", + "client_id": "52365283353-eidtjtn5hhj9ah2kbo8fhuchk881nue3.apps.googleusercontent.com", "client_type": 1, "android_info": { "package_name": "com.hamagen", - "certificate_hash": "5e8f16062ea3cd2c4a0d547876baa6f38cabf625" + "certificate_hash": "83d01f3a66722354b83d9b5853076fbf6b7e7f30" } }, { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyBTUXVwo9ouIiPFNXBdz9o4D1KJq7Es1qg" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", - "client_type": 3 - }, - { - "client_id": "776051238571-mbp8deiq0b0blfsb0pn0sc25tfj99rk6.apps.googleusercontent.com", - "client_type": 2, - "ios_info": { - "bundle_id": "com.hamagen" - } - } - ] - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:776051238571:android:27428629073a56ce4af9ee", - "android_client_info": { - "package_name": "com.hamagen.dev" - } - }, - "oauth_client": [ + "client_id": "52365283353-jl2uq5agfi3uavmfk3q09mepr0na70ok.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.hamagen", + "certificate_hash": "da03d8b455b09ab26e9daf6e9e3a6a6151cd94cc" + } + }, { - "client_id": "776051238571-b87qk083ctbon3oib5lam95qg26inr4g.apps.googleusercontent.com", + "client_id": "52365283353-nlt85qc4fccj4gvssqaqs6splqbrmdrk.apps.googleusercontent.com", "client_type": 1, "android_info": { - "package_name": "com.hamagen.dev", - "certificate_hash": "5e8f16062ea3cd2c4a0d547876baa6f38cabf625" + "package_name": "com.hamagen", + "certificate_hash": "338496e3a378fb30fab21bb9dd0eeaf65eb571ba" } }, { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", + "client_id": "52365283353-3nptbkqkmkohnvntoc10fjv1u5t7kksc.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyBTUXVwo9ouIiPFNXBdz9o4D1KJq7Es1qg" + "current_key": "AIzaSyDAZunGyKrQfFo87KN5_7ucdxXuHtTDUtw" } ], "services": { "appinvite_service": { "other_platform_oauth_client": [ { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", + "client_id": "52365283353-3nptbkqkmkohnvntoc10fjv1u5t7kksc.apps.googleusercontent.com", "client_type": 3 }, { - "client_id": "776051238571-mbp8deiq0b0blfsb0pn0sc25tfj99rk6.apps.googleusercontent.com", + "client_id": "52365283353-1884kvsos7eqvli7omufrl1i0145m8m6.apps.googleusercontent.com", "client_type": 2, "ios_info": { - "bundle_id": "com.hamagen" + "bundle_id": "com.hamagen.qa" } } ] @@ -96,42 +68,50 @@ }, { "client_info": { - "mobilesdk_app_id": "1:776051238571:android:0ce459535c98709f4af9ee", + "mobilesdk_app_id": "1:52365283353:android:6613d33a05d0fd1f279a88", "android_client_info": { "package_name": "com.hamagen.qa" } }, "oauth_client": [ { - "client_id": "776051238571-igc55i4ajk7b7kchmqjg3dfg7ogqeguo.apps.googleusercontent.com", + "client_id": "52365283353-d692bhj3vdqcbntk9smuqp8j9ksvlsds.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.hamagen.qa", + "certificate_hash": "da03d8b455b09ab26e9daf6e9e3a6a6151cd94cc" + } + }, + { + "client_id": "52365283353-14b9v2gfg0bnumjif94t7se35akh33ti.apps.googleusercontent.com", "client_type": 1, "android_info": { "package_name": "com.hamagen.qa", - "certificate_hash": "5e8f16062ea3cd2c4a0d547876baa6f38cabf625" + "certificate_hash": "83d01f3a66722354b83d9b5853076fbf6b7e7f30" } }, { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", + "client_id": "52365283353-3nptbkqkmkohnvntoc10fjv1u5t7kksc.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyBTUXVwo9ouIiPFNXBdz9o4D1KJq7Es1qg" + "current_key": "AIzaSyDAZunGyKrQfFo87KN5_7ucdxXuHtTDUtw" } ], "services": { "appinvite_service": { "other_platform_oauth_client": [ { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", + "client_id": "52365283353-3nptbkqkmkohnvntoc10fjv1u5t7kksc.apps.googleusercontent.com", "client_type": 3 }, { - "client_id": "776051238571-mbp8deiq0b0blfsb0pn0sc25tfj99rk6.apps.googleusercontent.com", + "client_id": "52365283353-1884kvsos7eqvli7omufrl1i0145m8m6.apps.googleusercontent.com", "client_type": 2, "ios_info": { - "bundle_id": "com.hamagen" + "bundle_id": "com.hamagen.qa" } } ] diff --git a/android/app/src/release/google-services.json b/android/app/src/release/google-services.json index 80eef8ed..6910f4c0 100755 --- a/android/app/src/release/google-services.json +++ b/android/app/src/release/google-services.json @@ -1,80 +1,66 @@ { "project_info": { - "project_number": "776051238571", - "firebase_url": "https://hamagen-aa88d.firebaseio.com", - "project_id": "hamagen-aa88d", - "storage_bucket": "hamagen-aa88d.appspot.com" + "project_number": "52365283353", + "firebase_url": "https://codeagainstcorona-3896f.firebaseio.com", + "project_id": "codeagainstcorona-3896f", + "storage_bucket": "codeagainstcorona-3896f.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:776051238571:android:6a28fec1527d21684af9ee", + "mobilesdk_app_id": "1:52365283353:android:8aec94697dbac7c9279a88", "android_client_info": { "package_name": "com.hamagen" } }, "oauth_client": [ { - "client_id": "776051238571-l562rviorn5u7gqejo6l8scnsr07knpj.apps.googleusercontent.com", + "client_id": "52365283353-eidtjtn5hhj9ah2kbo8fhuchk881nue3.apps.googleusercontent.com", "client_type": 1, "android_info": { "package_name": "com.hamagen", - "certificate_hash": "5e8f16062ea3cd2c4a0d547876baa6f38cabf625" + "certificate_hash": "83d01f3a66722354b83d9b5853076fbf6b7e7f30" } }, { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyBTUXVwo9ouIiPFNXBdz9o4D1KJq7Es1qg" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", - "client_type": 3 - } - ] - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:776051238571:android:27428629073a56ce4af9ee", - "android_client_info": { - "package_name": "com.hamagen.dev" - } - }, - "oauth_client": [ + "client_id": "52365283353-jl2uq5agfi3uavmfk3q09mepr0na70ok.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.hamagen", + "certificate_hash": "da03d8b455b09ab26e9daf6e9e3a6a6151cd94cc" + } + }, { - "client_id": "776051238571-b87qk083ctbon3oib5lam95qg26inr4g.apps.googleusercontent.com", + "client_id": "52365283353-nlt85qc4fccj4gvssqaqs6splqbrmdrk.apps.googleusercontent.com", "client_type": 1, "android_info": { - "package_name": "com.hamagen.dev", - "certificate_hash": "5e8f16062ea3cd2c4a0d547876baa6f38cabf625" + "package_name": "com.hamagen", + "certificate_hash": "338496e3a378fb30fab21bb9dd0eeaf65eb571ba" } }, { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", + "client_id": "52365283353-3nptbkqkmkohnvntoc10fjv1u5t7kksc.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyBTUXVwo9ouIiPFNXBdz9o4D1KJq7Es1qg" + "current_key": "AIzaSyDAZunGyKrQfFo87KN5_7ucdxXuHtTDUtw" } ], "services": { "appinvite_service": { "other_platform_oauth_client": [ { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", + "client_id": "52365283353-3nptbkqkmkohnvntoc10fjv1u5t7kksc.apps.googleusercontent.com", "client_type": 3 + }, + { + "client_id": "52365283353-1884kvsos7eqvli7omufrl1i0145m8m6.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "com.hamagen.qa" + } } ] } @@ -82,36 +68,51 @@ }, { "client_info": { - "mobilesdk_app_id": "1:776051238571:android:0ce459535c98709f4af9ee", + "mobilesdk_app_id": "1:52365283353:android:6613d33a05d0fd1f279a88", "android_client_info": { "package_name": "com.hamagen.qa" } }, "oauth_client": [ { - "client_id": "776051238571-igc55i4ajk7b7kchmqjg3dfg7ogqeguo.apps.googleusercontent.com", + "client_id": "52365283353-d692bhj3vdqcbntk9smuqp8j9ksvlsds.apps.googleusercontent.com", "client_type": 1, "android_info": { "package_name": "com.hamagen.qa", - "certificate_hash": "5e8f16062ea3cd2c4a0d547876baa6f38cabf625" + "certificate_hash": "da03d8b455b09ab26e9daf6e9e3a6a6151cd94cc" } }, { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", + "client_id": "52365283353-14b9v2gfg0bnumjif94t7se35akh33ti.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.hamagen.qa", + "certificate_hash": "83d01f3a66722354b83d9b5853076fbf6b7e7f30" + } + }, + { + "client_id": "52365283353-3nptbkqkmkohnvntoc10fjv1u5t7kksc.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyBTUXVwo9ouIiPFNXBdz9o4D1KJq7Es1qg" + "current_key": "AIzaSyDAZunGyKrQfFo87KN5_7ucdxXuHtTDUtw" } ], "services": { "appinvite_service": { "other_platform_oauth_client": [ { - "client_id": "776051238571-h98i1874433nq1tbm5p7acfjoptj74eo.apps.googleusercontent.com", + "client_id": "52365283353-3nptbkqkmkohnvntoc10fjv1u5t7kksc.apps.googleusercontent.com", "client_type": 3 + }, + { + "client_id": "52365283353-1884kvsos7eqvli7omufrl1i0145m8m6.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "com.hamagen.qa" + } } ] } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 95026170..9e6909fc 100755 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip diff --git a/android/settings.gradle b/android/settings.gradle index ec2f77aa..bafc491a 100755 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,3 +1,5 @@ rootProject.name = 'codeAgainstCorona' +include ':rn-contact-tracing' +project(':rn-contact-tracing').projectDir = new File(rootProject.projectDir, '../node_modules/rn-contact-tracing/lib/android') apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) include ':app' diff --git a/index.js b/index.js index aea5d9ba..8e4a768c 100755 --- a/index.js +++ b/index.js @@ -4,7 +4,8 @@ import BackgroundFetch from 'react-native-background-fetch'; import BackgroundGeolocation from 'react-native-background-geolocation'; import App from './src/App'; import { name as appName } from './app.json'; -import { checkSickPeople } from './src/services/Tracker'; +import ResetMessaging from './src/ResetMessaging'; +import { checkGeoSickPeople, checkBLESickPeople } from './src/services/Tracker'; import { syncLocationsDBOnLocationEvent } from './src/services/SampleService'; import { onError } from './src/services/ErrorService'; import { initConfig } from './src/config/config'; @@ -23,7 +24,9 @@ const BackgroundFetchHeadlessTask = async (event) => { console.log('[BackgroundFetch HeadlessTask] start: ', taskId); await initConfig(); - await checkSickPeople(); + await syncLocationsDBOnLocationEvent(); + await checkBLESickPeople(); + await checkGeoSickPeople(); BackgroundFetch.finish(taskId); } catch (error) { @@ -37,5 +40,6 @@ const BackgroundGeolocationHeadlessTask = async (event) => { }; AppRegistry.registerComponent(appName, () => App); +AppRegistry.registerHeadlessTask('RNFirebaseBackgroundMessage', () => ResetMessaging); BackgroundFetch.registerHeadlessTask(BackgroundFetchHeadlessTask); BackgroundGeolocation.registerHeadlessTask(BackgroundGeolocationHeadlessTask); diff --git a/ios/Podfile b/ios/Podfile index c61dac63..0ab8050b 100755 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,4 +1,4 @@ -platform :ios, '9.0' +platform :ios, '10.0' require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' def project_pods @@ -55,6 +55,6 @@ target 'hamagen' do end target 'hamagen-qa' do - project_pods - use_native_modules! + project_pods + use_native_modules! end diff --git a/ios/Podfile.lock b/ios/Podfile.lock old mode 100755 new mode 100644 index cac54243..49521962 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -282,7 +282,7 @@ PODS: - React-jsinspector (0.61.5) - react-native-background-timer (2.2.0): - React - - react-native-cookies (2.0.8): + - react-native-cookies (2.0.9): - React - react-native-google-maps (0.27.1): - Google-Maps-iOS-Utils (= 2.1.0) @@ -304,7 +304,7 @@ PODS: - React - react-native-uuid-generator (6.1.1): - React - - react-native-webview (9.0.1): + - react-native-webview (9.4.0): - React - React-RCTActionSheet (0.61.5): - React-Core/RCTActionSheetHeaders (= 0.61.5) @@ -341,6 +341,8 @@ PODS: - React-cxxreact (= 0.61.5) - React-jsi (= 0.61.5) - ReactCommon/jscallinvoker (= 0.61.5) + - rn-contact-tracing (0.0.3): + - React - rn-fetch-blob (0.12.0): - React-Core - RNBackgroundFetch (2.7.1): @@ -350,7 +352,7 @@ PODS: - React - RNCAsyncStorage (1.7.1): - React - - RNCMaskedView (0.1.8): + - RNCMaskedView (0.1.10): - React - RNDeviceInfo (5.4.0): - React @@ -425,6 +427,7 @@ DEPENDENCIES: - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - ReactCommon/jscallinvoker (from `../node_modules/react-native/ReactCommon`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) + - rn-contact-tracing (from `../node_modules/rn-contact-tracing`) - rn-fetch-blob (from `../node_modules/rn-fetch-blob`) - RNBackgroundFetch (from `../node_modules/react-native-background-fetch`) - RNBackgroundGeolocation (from `../node_modules/react-native-background-geolocation`) @@ -540,6 +543,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/Libraries/Vibration" ReactCommon: :path: "../node_modules/react-native/ReactCommon" + rn-contact-tracing: + :path: "../node_modules/rn-contact-tracing" rn-fetch-blob: :path: "../node_modules/rn-fetch-blob" RNBackgroundFetch: @@ -605,7 +610,7 @@ SPEC CHECKSUMS: React-jsiexecutor: d5525f9ed5f782fdbacb64b9b01a43a9323d2386 React-jsinspector: fa0ecc501688c3c4c34f28834a76302233e29dc0 react-native-background-timer: 1f7d560647b40e6a60b01c452ba29c54bf581fc4 - react-native-cookies: 4eb6243b344684bda432f661c28dab2c491ebb0c + react-native-cookies: bc1f91a504ee091f1998a1b6c7ff4b7a9ed5b80e react-native-google-maps: 0a989abda71059db2caa98b9dacca7a8f38a47d0 react-native-maps: f4b89da81626ad7f151a8bfcb79733295d31ce5c react-native-netinfo: 73303369946c2487c600418961bfdc87748b832f @@ -615,7 +620,7 @@ SPEC CHECKSUMS: react-native-splash-screen: f15e2d96fd6afc5c882b1dd0b443d07295e2c7c5 react-native-sqlite-storage: f06bfba10f67f989c00b6a699b9c2b80a816edbe react-native-uuid-generator: 82ffa2a1cac94242ebed52c4dedc5044d3412717 - react-native-webview: 3f2f9934ba8633a170d209cb84045b6cbc5e5f48 + react-native-webview: cf5527893252b3b036eea024a1da6996f7344c74 React-RCTActionSheet: 600b4d10e3aea0913b5a92256d2719c0cdd26d76 React-RCTAnimation: 791a87558389c80908ed06cc5dfc5e7920dfa360 React-RCTBlob: d89293cc0236d9cb0933d85e430b0bbe81ad1d72 @@ -626,11 +631,12 @@ SPEC CHECKSUMS: React-RCTText: 9ccc88273e9a3aacff5094d2175a605efa854dbe React-RCTVibration: a49a1f42bf8f5acf1c3e297097517c6b3af377ad ReactCommon: 198c7c8d3591f975e5431bec1b0b3b581aa1c5dd + rn-contact-tracing: fe147c2be110646d1aa401e15c0065ad1bc25fd8 rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba RNBackgroundFetch: 8d8d66b47eafcb9e772b2eb95057939038b3ef95 RNBackgroundGeolocation: 8f0a20788100fbf08987d80f2053ae6eba79c566 RNCAsyncStorage: 44395cb9c7c1523104c2b499eb426ef7aff82bca - RNCMaskedView: 4383c3140f1235391fd6029968c166f09ddd0973 + RNCMaskedView: 5a8ec07677aa885546a0d98da336457e2bea557f RNDeviceInfo: c7b1dc457611b9231bb780a882102e2c93edc7af RNFirebase: 37daa9a346d070f9f6ee1f3b4aaf4c8e3b1d5d1c RNGestureHandler: 946a7691e41df61e2c4b1884deab41a4cdc3afff @@ -641,6 +647,6 @@ SPEC CHECKSUMS: RNWifi: 1747f039612dd494192ba6c8bc498606ad9f3ec4 Yoga: f2a7cd4280bfe2cca5a7aed98ba0eb3d1310f18b -PODFILE CHECKSUM: 814102749d10fef29d5ae9711b9bd6357e120b24 +PODFILE CHECKSUM: c85d4a94c29bc88bc3f697f6b2b5831cdd10d31a COCOAPODS: 1.9.1 diff --git a/ios/codeAgainstCorona.xcodeproj/project.pbxproj b/ios/codeAgainstCorona.xcodeproj/project.pbxproj index 7ec279ef..381b50f0 100644 --- a/ios/codeAgainstCorona.xcodeproj/project.pbxproj +++ b/ios/codeAgainstCorona.xcodeproj/project.pbxproj @@ -11,6 +11,10 @@ 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 208E7CE72472E35B001C2D93 /* outputserverReponse.json in Resources */ = {isa = PBXBuildFile; fileRef = 208E7CE52472E35B001C2D93 /* outputserverReponse.json */; }; + 208E7CE82472E35B001C2D93 /* outputserverReponse.json in Resources */ = {isa = PBXBuildFile; fileRef = 208E7CE52472E35B001C2D93 /* outputserverReponse.json */; }; + 208E7CE92472E35B001C2D93 /* outputcontacts.json in Resources */ = {isa = PBXBuildFile; fileRef = 208E7CE62472E35B001C2D93 /* outputcontacts.json */; }; + 208E7CEA2472E35B001C2D93 /* outputcontacts.json in Resources */ = {isa = PBXBuildFile; fileRef = 208E7CE62472E35B001C2D93 /* outputcontacts.json */; }; ACE92AE39AB97EC6E1FCB1F0 /* libPods-hamagen.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 255E6F5C10E31B05B2AF7E1D /* libPods-hamagen.a */; }; D52A57B4241E29B800521B22 /* SimplerPro_V3-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = D52A57B0241E29B800521B22 /* SimplerPro_V3-Regular.otf */; }; D52A57B5241E29B800521B22 /* SimplerPro_V3-Light.otf in Resources */ = {isa = PBXBuildFile; fileRef = D52A57B1241E29B800521B22 /* SimplerPro_V3-Light.otf */; }; @@ -34,16 +38,6 @@ D5CC7DD924236B25007E3977 /* RNBackgroundFetch+AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D5CC7DD724236B25007E3977 /* RNBackgroundFetch+AppDelegate.m */; }; /* End PBXBuildFile section */ -/* Begin PBXContainerItemProxy section */ - D5CC7DC7242357EA007E3977 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D5CC7DC3242357EA007E3977 /* RNBackgroundGeolocation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 83FF5F851AFD0D2B0016A13E; - remoteInfo = RNBackgroundGeolocation; - }; -/* End PBXContainerItemProxy section */ - /* Begin PBXFileReference section */ 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; 06C33C418EB6D49AE30A90FC /* Pods-hamagen.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-hamagen.debug.xcconfig"; path = "Target Support Files/Pods-hamagen/Pods-hamagen.debug.xcconfig"; sourceTree = ""; }; @@ -56,6 +50,8 @@ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = codeAgainstCorona/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = codeAgainstCorona/main.m; sourceTree = ""; }; 17128358241FCBDE007B9600 /* Code against corona.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = "Code against corona.entitlements"; path = "codeAgainstCorona/Code against corona.entitlements"; sourceTree = ""; }; + 208E7CE52472E35B001C2D93 /* outputserverReponse.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = outputserverReponse.json; sourceTree = ""; }; + 208E7CE62472E35B001C2D93 /* outputcontacts.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = outputcontacts.json; sourceTree = ""; }; 21858F4152B91CBBAEADF062 /* Pods-hamagen-qa.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-hamagen-qa.release.xcconfig"; path = "Target Support Files/Pods-hamagen-qa/Pods-hamagen-qa.release.xcconfig"; sourceTree = ""; }; 255E6F5C10E31B05B2AF7E1D /* libPods-hamagen.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-hamagen.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 306EADB8C444D747A3FC1024 /* libPods-codeAgainstCorona-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-codeAgainstCorona-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -74,14 +70,14 @@ D52A57B3241E29B800521B22 /* SimplerPro_V3-Bold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "SimplerPro_V3-Bold.otf"; path = "../../src/assets/fonts/SimplerPro_V3-Bold.otf"; sourceTree = ""; }; D52A57B8241E4EF500521B22 /* codeAgainstCorona-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "codeAgainstCorona-Bridging-Header.h"; sourceTree = ""; }; D52A57B9241E4EF500521B22 /* Fix.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Fix.swift; sourceTree = ""; }; - D52A57D524203FBB00521B22 /* המגן QA.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "המגן QA.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + D52A57D524203FBB00521B22 /* Hamagen QA.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Hamagen QA.app"; sourceTree = BUILT_PRODUCTS_DIR; }; D52A57D72420403100521B22 /* Info-qa.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "Info-qa.plist"; path = "codeAgainstCorona/Info-qa.plist"; sourceTree = ""; }; D52A57D92420404900521B22 /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = "GoogleService-Info.plist"; path = "codeAgainstCorona/firebase/qa/GoogleService-Info.plist"; sourceTree = SOURCE_ROOT; }; D52A57DB2420405800521B22 /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = "GoogleService-Info.plist"; path = "codeAgainstCorona/firebase/release/GoogleService-Info.plist"; sourceTree = SOURCE_ROOT; }; D52A57DD24204EB200521B22 /* המגן QA.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "המגן QA.entitlements"; sourceTree = ""; }; D52A57F12422D39600521B22 /* libRNBackgroundFetch.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libRNBackgroundFetch.a; sourceTree = BUILT_PRODUCTS_DIR; }; D5AE4CD7FF26A69806CF4680 /* Pods-hamagen.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-hamagen.release.xcconfig"; path = "Target Support Files/Pods-hamagen/Pods-hamagen.release.xcconfig"; sourceTree = ""; }; - D5CC7DC3242357EA007E3977 /* RNBackgroundGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNBackgroundGeolocation.xcodeproj; path = "../node_modules/react-native-background-geolocation/ios/RNBackgroundGeolocation.xcodeproj"; sourceTree = ""; }; + D5BCF08D24641F8800FC4B8C /* המגןRelease.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "המגןRelease.entitlements"; sourceTree = ""; }; D5CC7DC924235864007E3977 /* TSBackgroundFetch.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TSBackgroundFetch.framework; path = Pods/TSBackgroundFetch/ios/TSBackgroundFetch/TSBackgroundFetch.framework; sourceTree = ""; }; D5CC7DD724236B25007E3977 /* RNBackgroundFetch+AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "RNBackgroundFetch+AppDelegate.m"; path = "../node_modules/react-native-background-fetch/ios/RNBackgroundFetch/RNBackgroundFetch+AppDelegate.m"; sourceTree = ""; }; D63C3A392EF9FA65DE3BC9DD /* libPods-hamagen-qa.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-hamagen-qa.a"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -149,7 +145,6 @@ 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( - D5CC7DC3242357EA007E3977 /* RNBackgroundGeolocation.xcodeproj */, ); name = Libraries; sourceTree = ""; @@ -157,6 +152,9 @@ 83CBB9F61A601CBA00E9B192 = { isa = PBXGroup; children = ( + 208E7CE62472E35B001C2D93 /* outputcontacts.json */, + 208E7CE52472E35B001C2D93 /* outputserverReponse.json */, + D5BCF08D24641F8800FC4B8C /* המגןRelease.entitlements */, D52A57DD24204EB200521B22 /* המגן QA.entitlements */, 13B07FAE1A68108700A75B9A /* codeAgainstCorona */, 832341AE1AAA6A7D00B99B32 /* Libraries */, @@ -174,7 +172,7 @@ isa = PBXGroup; children = ( 13B07F961A680F5B00A75B9A /* המגן.app */, - D52A57D524203FBB00521B22 /* המגן QA.app */, + D52A57D524203FBB00521B22 /* Hamagen QA.app */, ); name = Products; sourceTree = ""; @@ -234,14 +232,6 @@ path = qa; sourceTree = ""; }; - D5CC7DC4242357EA007E3977 /* Products */ = { - isa = PBXGroup; - children = ( - D5CC7DC8242357EA007E3977 /* libRNBackgroundGeolocation.a */, - ); - name = Products; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -284,7 +274,7 @@ ); name = "hamagen-qa"; productName = codeAgainstCorona; - productReference = D52A57D524203FBB00521B22 /* המגן QA.app */; + productReference = D52A57D524203FBB00521B22 /* Hamagen QA.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -319,12 +309,6 @@ mainGroup = 83CBB9F61A601CBA00E9B192; productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; projectDirPath = ""; - projectReferences = ( - { - ProductGroup = D5CC7DC4242357EA007E3977 /* Products */; - ProjectRef = D5CC7DC3242357EA007E3977 /* RNBackgroundGeolocation.xcodeproj */; - }, - ); projectRoot = ""; targets = ( 13B07F861A680F5B00A75B9A /* hamagen */, @@ -333,16 +317,6 @@ }; /* End PBXProject section */ -/* Begin PBXReferenceProxy section */ - D5CC7DC8242357EA007E3977 /* libRNBackgroundGeolocation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRNBackgroundGeolocation.a; - remoteRef = D5CC7DC7242357EA007E3977 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - /* Begin PBXResourcesBuildPhase section */ 13B07F8E1A680F5B00A75B9A /* Resources */ = { isa = PBXResourcesBuildPhase; @@ -352,7 +326,9 @@ D52A57B6241E29B800521B22 /* SimplerPro_V3-Black.otf in Resources */, D52A57BB241FE12000521B22 /* Images.xcassets in Resources */, D52A57B7241E29B800521B22 /* SimplerPro_V3-Bold.otf in Resources */, + 208E7CE72472E35B001C2D93 /* outputserverReponse.json in Resources */, 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, + 208E7CE92472E35B001C2D93 /* outputcontacts.json in Resources */, D52A57B5241E29B800521B22 /* SimplerPro_V3-Light.otf in Resources */, D52A57DC2420405900521B22 /* GoogleService-Info.plist in Resources */, ); @@ -367,9 +343,11 @@ D52A57CC24203FBB00521B22 /* Images.xcassets in Resources */, D52A57CD24203FBB00521B22 /* SimplerPro_V3-Bold.otf in Resources */, D52A57CE24203FBB00521B22 /* LaunchScreen.xib in Resources */, + 208E7CEA2472E35B001C2D93 /* outputcontacts.json in Resources */, D52A57D024203FBB00521B22 /* SimplerPro_V3-Light.otf in Resources */, D52A57DA2420404900521B22 /* GoogleService-Info.plist in Resources */, D52A57D82420403100521B22 /* Info-qa.plist in Resources */, + 208E7CE82472E35B001C2D93 /* outputserverReponse.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -398,10 +376,12 @@ inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-hamagen-qa/Pods-hamagen-qa-resources.sh", "${PODS_ROOT}/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/rn-contact-tracing/FrameworkModel.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleMaps.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FrameworkModel.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -512,10 +492,12 @@ inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-hamagen/Pods-hamagen-resources.sh", "${PODS_ROOT}/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/rn-contact-tracing/FrameworkModel.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleMaps.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FrameworkModel.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -570,14 +552,14 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "codeAgainstCorona/Code against corona.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Distribution"; + CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 46; + CURRENT_PROJECT_VERSION = 73; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = N3P977USJJ; INFOPLIST_FILE = codeAgainstCorona/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.3.8; + MARKETING_VERSION = 1.4.7; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -585,7 +567,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.hamagen; PRODUCT_NAME = "המגן"; - PROVISIONING_PROFILE_SPECIFIER = "Hamagen AdHoc"; + PROVISIONING_PROFILE_SPECIFIER = "Hamagen Dev"; SWIFT_OBJC_BRIDGING_HEADER = "codeAgainstCorona-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -600,14 +582,14 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = "codeAgainstCorona/Code against corona.entitlements"; + CODE_SIGN_ENTITLEMENTS = "המגןRelease.entitlements"; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 46; + CURRENT_PROJECT_VERSION = 73; DEVELOPMENT_TEAM = N3P977USJJ; INFOPLIST_FILE = codeAgainstCorona/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.3.8; + MARKETING_VERSION = 1.4.7; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -668,7 +650,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -714,7 +696,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; @@ -729,9 +711,9 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "המגן QA.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Distribution"; + CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 46; + CURRENT_PROJECT_VERSION = 73; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = N3P977USJJ; FRAMEWORK_SEARCH_PATHS = ( @@ -741,16 +723,17 @@ "$(PROJECT_DIR)/../node_modules/react-native-background-geolocation/ios", ); INFOPLIST_FILE = "codeAgainstCorona/Info-qa.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.3.8; + MARKETING_VERSION = 1.4.7; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", "-lc++", ); PRODUCT_BUNDLE_IDENTIFIER = com.hamagen.qa; - PRODUCT_NAME = "המגן QA"; - PROVISIONING_PROFILE_SPECIFIER = "Hamagen QA AdHoc"; + PRODUCT_NAME = "Hamagen QA"; + PROVISIONING_PROFILE_SPECIFIER = "Hamagen QA Dev"; SWIFT_OBJC_BRIDGING_HEADER = "codeAgainstCorona-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -768,7 +751,7 @@ CODE_SIGN_ENTITLEMENTS = "המגן QA.entitlements"; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 46; + CURRENT_PROJECT_VERSION = 73; DEVELOPMENT_TEAM = N3P977USJJ; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -777,15 +760,16 @@ "$(PROJECT_DIR)/../node_modules/react-native-background-geolocation/ios", ); INFOPLIST_FILE = "codeAgainstCorona/Info-qa.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.3.8; + MARKETING_VERSION = 1.4.7; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", "-lc++", ); PRODUCT_BUNDLE_IDENTIFIER = com.hamagen.qa; - PRODUCT_NAME = "המגן QA"; + PRODUCT_NAME = "Hamagen QA"; PROVISIONING_PROFILE_SPECIFIER = "Hamagen QA AdHoc"; SWIFT_OBJC_BRIDGING_HEADER = "codeAgainstCorona-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/ios/codeAgainstCorona.xcodeproj/xcshareddata/xcschemes/hamagen-qa.xcscheme b/ios/codeAgainstCorona.xcodeproj/xcshareddata/xcschemes/hamagen-qa.xcscheme index 299759c1..f75e33cc 100644 --- a/ios/codeAgainstCorona.xcodeproj/xcshareddata/xcschemes/hamagen-qa.xcscheme +++ b/ios/codeAgainstCorona.xcodeproj/xcshareddata/xcschemes/hamagen-qa.xcscheme @@ -15,7 +15,7 @@ @@ -45,7 +45,7 @@ @@ -62,7 +62,7 @@ diff --git a/ios/codeAgainstCorona.xcodeproj/xcshareddata/xcschemes/hamagen.xcscheme b/ios/codeAgainstCorona.xcodeproj/xcshareddata/xcschemes/hamagen.xcscheme index 10850f58..86d3914f 100644 --- a/ios/codeAgainstCorona.xcodeproj/xcshareddata/xcschemes/hamagen.xcscheme +++ b/ios/codeAgainstCorona.xcodeproj/xcshareddata/xcschemes/hamagen.xcscheme @@ -31,7 +31,7 @@ - BuildSystemType - Original PreviewsEnabled diff --git a/ios/codeAgainstCorona/Info-qa.plist b/ios/codeAgainstCorona/Info-qa.plist index dbf2af5a..1bd1245a 100755 --- a/ios/codeAgainstCorona/Info-qa.plist +++ b/ios/codeAgainstCorona/Info-qa.plist @@ -9,7 +9,7 @@ CFBundleDevelopmentRegion en CFBundleDisplayName - $(PRODUCT_NAME) + המגן QA CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -17,7 +17,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - $(PRODUCT_NAME) + Hamagen QA CFBundlePackageType APPL CFBundleShortVersionString @@ -60,6 +60,8 @@ + NSBluetoothAlwaysUsageDescription + יש לאפשר גישה לבלוטות' על מנת להשוות את נתיבך אל מול נתיבי חולי קורונה מאומתים NSLocationAlwaysAndWhenInUseUsageDescription יש לאפשר גישה למיקום על מנת להשוות את נתיבך אל מול נתיבי חולי קורונה מאומתים NSLocationAlwaysUsageDescription diff --git a/ios/codeAgainstCorona/Info.plist b/ios/codeAgainstCorona/Info.plist index abd09af5..c4ef86d4 100755 --- a/ios/codeAgainstCorona/Info.plist +++ b/ios/codeAgainstCorona/Info.plist @@ -60,6 +60,8 @@ + NSBluetoothAlwaysUsageDescription + יש לאפשר גישה לבלוטות' על מנת להשוות את נתיבך אל מול נתיבי חולי קורונה מאומתים NSLocationAlwaysAndWhenInUseUsageDescription יש לאפשר גישה למיקום על מנת להשוות את נתיבך אל מול נתיבי חולי קורונה מאומתים NSLocationAlwaysUsageDescription diff --git a/ios/outputcontacts.json b/ios/outputcontacts.json new file mode 100644 index 00000000..66253939 --- /dev/null +++ b/ios/outputcontacts.json @@ -0,0 +1 @@ +[{"ephemeral_id": "97d9415f1070bde4022ed45d6b13af62", "timestamp": 1589023381, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8fed86d73e44997dbcc5b0658624769a", "timestamp": 1589023681, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d0fe92bd35331728e088f63b3c61093c", "timestamp": 1589023981, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5eecebf0c5eb2f4de05a09f5891b828c", "timestamp": 1589024281, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7290bccdc5caf29a33d9fa3e7fb5d9ff", "timestamp": 1589024581, "rssi": -117, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d7e40abd45a2aaa5ecd6a26ac4ae2b9b", "timestamp": 1589024881, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "22155bde65dbe23408a9563c53239b30", "timestamp": 1589025181, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0a1dde1304f6e37c0de81f4d8d76e7b6", "timestamp": 1589025481, "rssi": -116, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d6e35a119fb50404bb1ca9ca9f68725c", "timestamp": 1589025781, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1d1cc0b2c662d6a79d3a601ee7712e0a", "timestamp": 1589026081, "rssi": -53, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4406c2472990eb460c15fa7797624912", "timestamp": 1589026381, "rssi": -22, "geohash": "81d58d1ff5"}, {"ephemeral_id": "07b6bf95450929d3a52443d1d8141888", "timestamp": 1589026681, "rssi": -70, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ab4a298e619e9e2d9de1db52776d4996", "timestamp": 1589026981, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "685e1683f4749a6fcb14d09df388f561", "timestamp": 1589027281, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "31253247deb232cf797670cb01f35def", "timestamp": 1589027581, "rssi": -53, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5959d3b5e43b25f98af383e2513f7967", "timestamp": 1589027881, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9d7ea62c4dfac7e2869aa4cba27917dc", "timestamp": 1589028181, "rssi": -76, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e0f3d5145cc134137ec3feb66741338d", "timestamp": 1589028481, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4f64aea6eff24b227e49a7c848f69f44", "timestamp": 1589028781, "rssi": -22, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a1823a69c714585d40f0656c4c8921d2", "timestamp": 1589029081, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ef552ae9e4e9ddebb6a8a00ea1399b29", "timestamp": 1589029381, "rssi": -57, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fef80de542aeeaf742e02a57a8997dfe", "timestamp": 1589029681, "rssi": -119, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d661d10092cfce32fb83b1f8a4f30746", "timestamp": 1589029981, "rssi": -82, "geohash": "81d58d1ff5"}, {"ephemeral_id": "233dcb99cec437c507b2034fa919daa9", "timestamp": 1589030281, "rssi": -79, "geohash": "81d58d1ff5"}, {"ephemeral_id": "98e2bc9648e7db3fd983533105bf2fda", "timestamp": 1589030581, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "39d7258322332d45e32a4e13b8c710cf", "timestamp": 1589030881, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d00ecd7a284608656900f42ea0b2af56", "timestamp": 1589031181, "rssi": -94, "geohash": "81d58d1ff5"}, {"ephemeral_id": "041529390c38c7cef1a6b855583c4f9c", "timestamp": 1589031481, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bf132b9ff1d39980776ea673cc8fc580", "timestamp": 1589031781, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8813f9655c5ef218bbe5965365ef5cd9", "timestamp": 1589032081, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "251b631c86aa95791d1bd261a7a4c10a", "timestamp": 1589032381, "rssi": -13, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9a33540cba43c47d78fabab580240fa2", "timestamp": 1589032681, "rssi": -16, "geohash": "81d58d1ff5"}, {"ephemeral_id": "76ef07f33ff34cdce26be5b31a77c498", "timestamp": 1589032981, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e78c85f1eb1b26c578a52644f6f76344", "timestamp": 1589033281, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "75ca14236e42a07627bd4302c85e1340", "timestamp": 1589033581, "rssi": -43, "geohash": "81d58d1ff5"}, {"ephemeral_id": "daf76465268524dffb97988f90b2c2bc", "timestamp": 1589033881, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9ddcd72af6fbc49d0bd2acc0740715a1", "timestamp": 1589034181, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e6dee32923dc1bee5e67c99ca309c15e", "timestamp": 1589034481, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3be560c926a85ae5a6d412288b218e02", "timestamp": 1589034781, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "641f193017b00c734f85742afa51af69", "timestamp": 1589035081, "rssi": -116, "geohash": "81d58d1ff5"}, {"ephemeral_id": "01db37dfc6be7c7005f2c905a3b6055e", "timestamp": 1589035381, "rssi": -61, "geohash": "81d58d1ff5"}, {"ephemeral_id": "66b4cd928791e35d7e3a856ffd2f95b3", "timestamp": 1589035681, "rssi": -38, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d4770a7f82948afd63d42c13fa37d516", "timestamp": 1589035981, "rssi": -18, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5a6eb57878d7b29f6ba815738a87a05c", "timestamp": 1589036281, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e6d968f78354ad03da3374748e8da9df", "timestamp": 1589036581, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "20f5e9f4e0e3b2112044c82caa180a10", "timestamp": 1589036881, "rssi": -28, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8df7a29c5edce4dac9e6785fa1377d04", "timestamp": 1589037181, "rssi": -2, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8e3c18368ce9919dc3b61b5e5921b19f", "timestamp": 1589037481, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a4fd9fe188b98ef1c824d04d15e9c9d0", "timestamp": 1589037781, "rssi": -94, "geohash": "81d58d1ff5"}, {"ephemeral_id": "07825c168c05530957d9bde462ecd4e1", "timestamp": 1589038081, "rssi": -50, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c410dfe18501b5402ca09ade3d2f1840", "timestamp": 1589038381, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "31f70314929702c5754ab705be2cb8f6", "timestamp": 1589038681, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "21b8b75a58035cefeefb0ba7f28136bc", "timestamp": 1589038981, "rssi": -2, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3ced7a623efe8750cc30cd51a9c499b8", "timestamp": 1589039281, "rssi": -115, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9b98a8f446bbb32ed834c96526b0d2c1", "timestamp": 1589039581, "rssi": -103, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d857fe25b49dc98c861a6e0ad92c8762", "timestamp": 1589039881, "rssi": -103, "geohash": "81d58d1ff5"}, {"ephemeral_id": "68e7d3bac01f9b2c68be906f5dc3f749", "timestamp": 1589040181, "rssi": -21, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b0c1635d767df858e73c01359e227b11", "timestamp": 1589040481, "rssi": -70, "geohash": "81d58d1ff5"}, {"ephemeral_id": "22a1762d5cd4038665de2340e0fdf6f6", "timestamp": 1589040781, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9d8c14ad2608ca63bf0302f414b43599", "timestamp": 1589041081, "rssi": -109, "geohash": "81d58d1ff5"}, {"ephemeral_id": "89e3c37b9facc1bad5433d6b052fc428", "timestamp": 1589041381, "rssi": -72, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d4fcb24a67ca397837a2f0b8d27fa6af", "timestamp": 1589041681, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5d4caf76ee53ed13f0f55cc97065fd09", "timestamp": 1589041981, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f769a1edf13692dfb2e9ff2a2681068a", "timestamp": 1589042281, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "39b596c5cdd0029a8057e64d4586c5a1", "timestamp": 1589042581, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6200259009722921e0d189953908e1c9", "timestamp": 1589042881, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3b22637323b0d655288ba691a3dc7887", "timestamp": 1589043181, "rssi": -87, "geohash": "81d58d1ff5"}, {"ephemeral_id": "114ce06b3eb495366b9c72f465189a1f", "timestamp": 1589043481, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "74b5f8c52f7354894972636bd08c6d62", "timestamp": 1589043781, "rssi": -55, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1c45e509fe637737d846b98879dde798", "timestamp": 1589044081, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "773541c318ad65a668d7eb6f7e41aab9", "timestamp": 1589044381, "rssi": -81, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6778e796f02fb823426b454805b7a917", "timestamp": 1589044681, "rssi": -81, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a4c4bd5405f3e3a9d14b66e25b2200b8", "timestamp": 1589044981, "rssi": -83, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7d6f052d3615f223271cfb8cd70abaa8", "timestamp": 1589045281, "rssi": -115, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c25d95d6cdd8998af3681233c2bfe71a", "timestamp": 1589045581, "rssi": -40, "geohash": "81d58d1ff5"}, {"ephemeral_id": "db61dd94cf145917ef0a1c137549c56e", "timestamp": 1589045881, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b632242ef442d57a2fedadce0dd757bd", "timestamp": 1589046181, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "311f30124a87f5d84046c29090b3baa9", "timestamp": 1589046481, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "aab79a7cbf3e82e4bfe3ca5a22285703", "timestamp": 1589046781, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "23e4ed19a98869ee064b04341166336f", "timestamp": 1589047081, "rssi": -49, "geohash": "81d58d1ff5"}, {"ephemeral_id": "18624fab1f8698ff52d026918dc24f4a", "timestamp": 1589047381, "rssi": -56, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3e92312c4d7600854eccb46d2174613f", "timestamp": 1589047681, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "24b906515c469a9230afe969b5fa67a0", "timestamp": 1589047981, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a1977dfbcf44a20aabaf361a72583269", "timestamp": 1589048281, "rssi": -73, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6eb324a2f1d436148f6cdd269bef02f6", "timestamp": 1589048581, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ad9fc1e6aa6a84d90359aeba9c250a35", "timestamp": 1589048881, "rssi": -72, "geohash": "81d58d1ff5"}, {"ephemeral_id": "03547cc6bcd12c4855f0f1a011dc6b83", "timestamp": 1589049181, "rssi": -45, "geohash": "81d58d1ff5"}, {"ephemeral_id": "56e6851a2d82fa1cc3fa0993bbe547d6", "timestamp": 1589049481, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e199a73aafa4120da71eb2a70827f039", "timestamp": 1589049781, "rssi": -82, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cf5f57b5186e4814dcd80a7309b625ed", "timestamp": 1589050081, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a79db17a3823f630316bc53c9a1f8154", "timestamp": 1589050381, "rssi": -119, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d0ece6a7e3b23510517f268587bb4d90", "timestamp": 1589050681, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1d56b235f80bb7da3cc8d877dc02dca5", "timestamp": 1589050981, "rssi": -56, "geohash": "81d58d1ff5"}, {"ephemeral_id": "60b3b1c3855e259bf88486fd84c567ef", "timestamp": 1589051281, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ee77b8796fb7b66fe3aeb443d8ced118", "timestamp": 1589051581, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "02b4be4598e199e35519ed26861dad5f", "timestamp": 1589051881, "rssi": -3, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5f89998d92c0dddc3fcc4eedb201d508", "timestamp": 1589052181, "rssi": -56, "geohash": "81d58d1ff5"}, {"ephemeral_id": "555b3a749ba6e87ad908b14aa154cdf3", "timestamp": 1589052481, "rssi": -10, "geohash": "81d58d1ff5"}, {"ephemeral_id": "38032adb37332911ff5e67689844f87c", "timestamp": 1589052781, "rssi": -83, "geohash": "81d58d1ff5"}, {"ephemeral_id": "47b0a021aa2091d6fc3486813bacd514", "timestamp": 1589053081, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6c7c58d071ec6dedeb1e7c679b113ef6", "timestamp": 1589053381, "rssi": -10, "geohash": "81d58d1ff5"}, {"ephemeral_id": "33876c58bb173f7e44ea9fa47455eee5", "timestamp": 1589053681, "rssi": -87, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9c72f5822b78a8a9f95caea6df13fd44", "timestamp": 1589053981, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e87b99f219d2ebd0cc38a80052b4da0c", "timestamp": 1589054281, "rssi": -107, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d373b1061603b93a1ea2f9a0589e666b", "timestamp": 1589054581, "rssi": -83, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d94ccf7c1183fa51ab34137a2050589d", "timestamp": 1589054881, "rssi": -116, "geohash": "81d58d1ff5"}, {"ephemeral_id": "584e5893cb1877c22ba6b6327b4cc2ab", "timestamp": 1589055181, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9d9ac61c8cd1ce367645dcedc4f3b5aa", "timestamp": 1589055481, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0a4cfdb7544d103a73b962898aa48f7a", "timestamp": 1589055781, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6422293075ebb8adf537c5f677d002e2", "timestamp": 1589056081, "rssi": -76, "geohash": "81d58d1ff5"}, {"ephemeral_id": "744a2dd6e1d7116379c8910ce507ca5d", "timestamp": 1589056381, "rssi": -38, "geohash": "81d58d1ff5"}, {"ephemeral_id": "17a0d467b7bba4f3bc181e02dfe2b6e4", "timestamp": 1589056681, "rssi": -78, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d6042f4f4ef2edc10b90d51dcd46d744", "timestamp": 1589056981, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a66b64805bc2e2c75e676b6b19d8fb2d", "timestamp": 1589057281, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a54b1e049479de9e7e8807da4ba7093a", "timestamp": 1589057581, "rssi": -106, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8338dc4ba872da417a6f1e62ffa44fc9", "timestamp": 1589057881, "rssi": -43, "geohash": "81d58d1ff5"}, {"ephemeral_id": "61aefd2e30d7fe3058ceb1f173afecfe", "timestamp": 1589058181, "rssi": -30, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8de9c73ad3a560bd1eb7312c9d21bbc8", "timestamp": 1589058481, "rssi": -79, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dd13feae739a4610c584adc4eaa3f8e1", "timestamp": 1589058781, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a90473242ae76b7b4c5db1e5d61f5858", "timestamp": 1589059081, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d6e34ba55c8f1bfb6dafccdac3966998", "timestamp": 1589059381, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "947b7b7036a575c4125e291660357f5c", "timestamp": 1589059681, "rssi": -24, "geohash": "81d58d1ff5"}, {"ephemeral_id": "48f8aefa4fae5995f9917270d118b38c", "timestamp": 1589059981, "rssi": -41, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6d6e1e7f5751c8e1ff7bfe5ad907755f", "timestamp": 1589060281, "rssi": -12, "geohash": "81d58d1ff5"}, {"ephemeral_id": "882556d3a11e7d554d9321072e544245", "timestamp": 1589060581, "rssi": -93, "geohash": "81d58d1ff5"}, {"ephemeral_id": "00df15302aa8435c81a24a9b28c62c54", "timestamp": 1589060881, "rssi": -69, "geohash": "81d58d1ff5"}, {"ephemeral_id": "098f19449f48626fe1592068114bc180", "timestamp": 1589061181, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3c914aa0344c2f86148825f9349304f8", "timestamp": 1589061481, "rssi": -82, "geohash": "81d58d1ff5"}, {"ephemeral_id": "77cb419eb66af36018369c59f5e6d9c9", "timestamp": 1589061781, "rssi": -78, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4c63bed6f6034c91ca881685fbc7d82a", "timestamp": 1589062081, "rssi": -70, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3aaddd4e7988ae6b143aa2bffe83ff3d", "timestamp": 1589062381, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "afdac0d7c556323b007054e11402a28f", "timestamp": 1589062681, "rssi": -88, "geohash": "81d58d1ff5"}, {"ephemeral_id": "554363e9afe19536937688f44e5cfe93", "timestamp": 1589062981, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8e320e9b7071c482d5fe6477599de489", "timestamp": 1589063281, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "60553893eb859594385bdeb84e53904a", "timestamp": 1589063581, "rssi": -49, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9779d7b1b55773f2264d9387c1247f07", "timestamp": 1589063881, "rssi": -4, "geohash": "81d58d1ff5"}, {"ephemeral_id": "11e47ac81ed665f724743e4cade16b9a", "timestamp": 1589064181, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f30ceacb6aa26961eb2596f14e4e16e8", "timestamp": 1589064481, "rssi": -106, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f6af125fb0fd717654aae37fc506117e", "timestamp": 1589064781, "rssi": -111, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3844d0357d0e1c68288b396f7c0be8e0", "timestamp": 1589065081, "rssi": -34, "geohash": "81d58d1ff5"}, {"ephemeral_id": "eb87c2d5b365021c943a225a07b6c05f", "timestamp": 1589065381, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9dc5f7e89879f5149c897cf84f57401c", "timestamp": 1589065681, "rssi": -3, "geohash": "81d58d1ff5"}, {"ephemeral_id": "489b6e69989431e4e379c9200bee4757", "timestamp": 1589065981, "rssi": -81, "geohash": "81d58d1ff5"}, {"ephemeral_id": "27df68e7371eabaababef4c373a726fb", "timestamp": 1589066281, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3cc2f8bb9b838c4cae9963e5d6be8d80", "timestamp": 1589066581, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d95a0bf8ee9cccd59c6d55930aad9756", "timestamp": 1589066881, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8502cd52c01a42983c7356270fbf0f4f", "timestamp": 1589067181, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "aeff774124017e35cfb467630e76b971", "timestamp": 1589067481, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2bc5718a5e78afe929b1a3d263c861ac", "timestamp": 1589067781, "rssi": -107, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c81209b3cd5844e0453f7e30983c88b7", "timestamp": 1589068081, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "81343c891dad1d97e79c06151b3fbdb0", "timestamp": 1589068381, "rssi": -116, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e95c031e67ce08187beb6ff2eb66ab41", "timestamp": 1589068681, "rssi": -21, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f8f229bc1204fadcd765570c9e1ed1b5", "timestamp": 1589068981, "rssi": -62, "geohash": "81d58d1ff5"}, {"ephemeral_id": "74536293304573c66639f92636570415", "timestamp": 1589069281, "rssi": -45, "geohash": "81d58d1ff5"}, {"ephemeral_id": "93c86318ba8d55ecfa2465b06f03b6a0", "timestamp": 1589069581, "rssi": -72, "geohash": "81d58d1ff5"}, {"ephemeral_id": "862c9ae301a467630d1a54b3b381f138", "timestamp": 1589069881, "rssi": -52, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b7f061aa0cc6003489ad5a55d73025d1", "timestamp": 1589070181, "rssi": -13, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6129fb61d1a29af29e7e29ab6bda1e66", "timestamp": 1589070481, "rssi": -15, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f224e7760915af05f2544b031c049018", "timestamp": 1589070781, "rssi": -96, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1633f36abbd5dd0286e86f68d6d7f8e6", "timestamp": 1589071081, "rssi": -30, "geohash": "81d58d1ff5"}, {"ephemeral_id": "19da1664471d3db7c75e03bbc31feb94", "timestamp": 1589071381, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "60a39555eaaaba2f0a66c902043789cc", "timestamp": 1589071681, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "966c190bcb7fd68f04b8e7f64da150aa", "timestamp": 1589071981, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "61c67ad305d4c518c940a7cf01b5d5c6", "timestamp": 1589072281, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "78232d004331180e5365f711158b4359", "timestamp": 1589072581, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "17a39a04677ff0584098735c50ea0f15", "timestamp": 1589072881, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7911bba8265280f3a4e876b67a49e813", "timestamp": 1589073181, "rssi": -57, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a36c25477a636797face4353b732be5b", "timestamp": 1589073481, "rssi": -96, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2dd2506fc7f558da888d642a44555324", "timestamp": 1589073781, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ce4fb31c4ee15a4870f5358f106a762b", "timestamp": 1589074081, "rssi": -104, "geohash": "81d58d1ff5"}, {"ephemeral_id": "80a6616bde707f5d5bf4ad440f9ba5af", "timestamp": 1589074381, "rssi": -78, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5c3dd6de6628e2fac648f802e7cfac49", "timestamp": 1589074681, "rssi": -43, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5c6fab25c4e3afea4079fd5555270531", "timestamp": 1589074981, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2ed88ea85a7993e0971987e6aa20e72f", "timestamp": 1589075281, "rssi": -30, "geohash": "81d58d1ff5"}, {"ephemeral_id": "aa2a0b2ae51253dbb3d4aee96d44abb9", "timestamp": 1589075581, "rssi": -47, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b5822fee28a981ddc6d7b4e7d6d13259", "timestamp": 1589075881, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "10489daad3e69458aa80180621fd164f", "timestamp": 1589076181, "rssi": -12, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9115f6016dd70fb320f94969c48c1215", "timestamp": 1589076481, "rssi": -103, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5ac895a6c4c032f0723221021dc430f4", "timestamp": 1589076781, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "41ae2cb79946a2fb92f4ff74611c1c65", "timestamp": 1589077081, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2c6f8671f8cdf55a0f6d5d3837b811b5", "timestamp": 1589077381, "rssi": -58, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d67ef4d797e14ddc3086b817952a7de2", "timestamp": 1589077681, "rssi": -43, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d237f5af32c9dfc31c91c84010f0e1fa", "timestamp": 1589077981, "rssi": -41, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f60cb8a243ffd98d3475e92c9b150de0", "timestamp": 1589078281, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e133c031e27e8d8d2c6555602e6a24fd", "timestamp": 1589078581, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e67ad6b9685b6cae42a9c0ae58efce94", "timestamp": 1589078881, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e6f38458152a05584e9dfa6e3d88cfa6", "timestamp": 1589079181, "rssi": -3, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1d289fc2303e90423e3f2db2d5f61910", "timestamp": 1589079481, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "17b35daa84e4c8250d289381616f268b", "timestamp": 1589079781, "rssi": -38, "geohash": "81d58d1ff5"}, {"ephemeral_id": "076043e07f6ff50ee195ba4aae573410", "timestamp": 1589080081, "rssi": -117, "geohash": "81d58d1ff5"}, {"ephemeral_id": "291562855f88eed57a35534d326e1dd6", "timestamp": 1589080381, "rssi": -53, "geohash": "81d58d1ff5"}, {"ephemeral_id": "88f0cf22ba3a54c17f9ece97dc066495", "timestamp": 1589080681, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "990a5a8cb19198030b08ec33140d5af3", "timestamp": 1589080981, "rssi": -18, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e092bc61271b7e19dbec657c5388d47e", "timestamp": 1589081281, "rssi": -52, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c6c1b572251c19978a1878ab9493622e", "timestamp": 1589081581, "rssi": -37, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6670921ee6bfcdc94baaa9e62a62f234", "timestamp": 1589081881, "rssi": -45, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ece79723ed6f7e5ac5401f964fff7cbd", "timestamp": 1589082181, "rssi": -12, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8784f79a5acdc2ad13a47c41bd7900c6", "timestamp": 1589082481, "rssi": -112, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d620aeb67dc16dde3150893e376e82d9", "timestamp": 1589082781, "rssi": -107, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6c430b93f45ad2f6491df6c7f38eeffb", "timestamp": 1589083081, "rssi": -6, "geohash": "81d58d1ff5"}, {"ephemeral_id": "41091511e4759610df8a69cd5cfcbf2e", "timestamp": 1589083381, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a785e240854e46c17d1d16771f544646", "timestamp": 1589083681, "rssi": -106, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dbfe5aced0424ac40c728460251717c4", "timestamp": 1589083981, "rssi": -93, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8a3723e59b22c5d7947c102009828878", "timestamp": 1589084281, "rssi": -81, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8586eb1488bd4316dbe3b45191860500", "timestamp": 1589084581, "rssi": -43, "geohash": "81d58d1ff5"}, {"ephemeral_id": "82fdf1aff8321a3068882ad6fd52f2d5", "timestamp": 1589084881, "rssi": -117, "geohash": "81d58d1ff5"}, {"ephemeral_id": "96fc4cf153ef980a7ab04a4baaba3c9f", "timestamp": 1589085181, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "da852b21ff4d9ab7e3cc492829e580bb", "timestamp": 1589085481, "rssi": -104, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2161131ee2fff27ff49e09b8f03ece93", "timestamp": 1589085781, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "511194b96becdd1bc76c10bc6f90ccba", "timestamp": 1589086081, "rssi": -45, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3d338ca25ceaa55bc99656bbfec7b9dc", "timestamp": 1589086381, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6559067f5a34a6ce0a981b4f58362f12", "timestamp": 1589086681, "rssi": -37, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cb59d380631b9dcdd22c725e91167e37", "timestamp": 1589086981, "rssi": -80, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b86e313d2235a0db4671ea79500b65e3", "timestamp": 1589087281, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "05d314b60a97423e134f97d43ac0b0ef", "timestamp": 1589087581, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6883b32297a5e37cf64a1e7e2156c068", "timestamp": 1589087881, "rssi": -117, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1235ef56661b40888a7b0fb465da1be9", "timestamp": 1589088181, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3b6719472d65d6321b9c1d073fd3bdc1", "timestamp": 1589088481, "rssi": -118, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e28fc8ef0869cd9dd6daf20a20956378", "timestamp": 1589088781, "rssi": -98, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d36c008a6954f5d316581a7aeab20567", "timestamp": 1589089081, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bc144de1bb0f33fd08896faab0acb8dc", "timestamp": 1589089381, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "262f9ce2e0614e0f363172e97af54c3e", "timestamp": 1589089681, "rssi": -16, "geohash": "81d58d1ff5"}, {"ephemeral_id": "136bc27ac94aee0768d88fc8c42f4e46", "timestamp": 1589089981, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "07531c386631819d8ddbff7a333ed91b", "timestamp": 1589090281, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "97f078a0b49fc82e06886424fc38effe", "timestamp": 1589090581, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9ba3f24664f5c598b0d42547586ca429", "timestamp": 1589090881, "rssi": -6, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c960e54b7f0dcb1752931d8e134c077d", "timestamp": 1589091181, "rssi": -59, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ebc1e1a6b98176e832dcf9a7d06901d8", "timestamp": 1589091481, "rssi": -76, "geohash": "81d58d1ff5"}, {"ephemeral_id": "650a2c434b61f22ed8ea6a0353fddff2", "timestamp": 1589091781, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "84025a5db0c2fe9f571e306d711de825", "timestamp": 1589092081, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e44ad5a5c5d08e325ed9422ab0b0523d", "timestamp": 1589092381, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cf565dc71876cde12b9015acebcbb43e", "timestamp": 1589092681, "rssi": -107, "geohash": "81d58d1ff5"}, {"ephemeral_id": "120e5e7de5e58274a2f1ee0ddcd4e129", "timestamp": 1589092981, "rssi": -93, "geohash": "81d58d1ff5"}, {"ephemeral_id": "27cfaf1b74e5af53c5c2ab0ba2b0fd63", "timestamp": 1589093281, "rssi": -20, "geohash": "81d58d1ff5"}, {"ephemeral_id": "470b50ec09e93b05e4ba9f1d295fa596", "timestamp": 1589093581, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e2b45ff3a59bdf06c23c4855a47688f5", "timestamp": 1589093881, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2c066a53aca1fdc9b7c4e11ca37a12bb", "timestamp": 1589094181, "rssi": -105, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e6994df183cf5faac48b2a0b80cdb475", "timestamp": 1589094481, "rssi": -60, "geohash": "81d58d1ff5"}, {"ephemeral_id": "36c7a9602b1fc66bfbf4c7628db8352d", "timestamp": 1589094781, "rssi": -91, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3dbe90183ff2b1f295e1ee68fd010bd0", "timestamp": 1589095081, "rssi": -96, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9b5ccbde05890b9cad44bdeb0f6f17bc", "timestamp": 1589095381, "rssi": -93, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5a27c63c4cd3597fc826c967c35e611f", "timestamp": 1589095681, "rssi": -22, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bba7c685a41dbaf5f8f6049133f7243d", "timestamp": 1589095981, "rssi": -116, "geohash": "81d58d1ff5"}, {"ephemeral_id": "49fc051be9bf77677936bf892c166bc2", "timestamp": 1589096281, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "82517f4a640faae070ca69e65dea47e4", "timestamp": 1589096581, "rssi": -15, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4d28542c037f72b6e0875843a5482a71", "timestamp": 1589096881, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "421140250e048bc482f6cae5c04c23ad", "timestamp": 1589097181, "rssi": -106, "geohash": "81d58d1ff5"}, {"ephemeral_id": "741475ea9017e84d8ab4f85ca6b685b3", "timestamp": 1589097481, "rssi": -1, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4a124820449d864fa3340b83f54be960", "timestamp": 1589097781, "rssi": -1, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6d79dad0c38a0c26138aaf4cb4ac337b", "timestamp": 1589098081, "rssi": -21, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e8c72993039bc728efdf07fee9b46f40", "timestamp": 1589098381, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d5df3f982d8ba05abd2485db20f91478", "timestamp": 1589098681, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6386462e4982a9942a62ac617d1c1c52", "timestamp": 1589098981, "rssi": -115, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ac1b09ddbb711c8439033ef708c898a5", "timestamp": 1589099281, "rssi": -24, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5673cda23b63ecd6820eaf9880ac64a7", "timestamp": 1589099581, "rssi": -37, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2219e786117989b81d23fa231f5c3375", "timestamp": 1589099881, "rssi": -60, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b94bfe7cf127f450e0e862756ea8ddfd", "timestamp": 1589100181, "rssi": -98, "geohash": "81d58d1ff5"}, {"ephemeral_id": "877668522e1db4493ef9b13f51da49d5", "timestamp": 1589100481, "rssi": -22, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7146aa608017d039f6026d0fa61a012c", "timestamp": 1589100781, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6934926d426e57791b3313616e607020", "timestamp": 1589101081, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2c5ca74f9730caadf2798b14baf43ca6", "timestamp": 1589101381, "rssi": -74, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fd5f1aa2558eee170863f1b95a350ff4", "timestamp": 1589101681, "rssi": -74, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b9d97c9904dfc3a5193c512a955c466e", "timestamp": 1589101981, "rssi": -15, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5a871607af4eb4a0d0696c5427c143ea", "timestamp": 1589102281, "rssi": -21, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a7c8b6082f00ff275cc3c079dfe415ad", "timestamp": 1589102581, "rssi": -21, "geohash": "81d58d1ff5"}, {"ephemeral_id": "caf8b72d5c8e6a8a92033636d3b417f5", "timestamp": 1589102881, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "55ec5285be57348f6cf5de5c11d16590", "timestamp": 1589103181, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8f08527da849b2d2d3c8d4a00ae6a824", "timestamp": 1589103481, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8eedd84a475ffa9dd2cefc6324f23991", "timestamp": 1589103781, "rssi": -49, "geohash": "81d58d1ff5"}, {"ephemeral_id": "201f6d5b336106d07c207eb548c1cc10", "timestamp": 1589104081, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2dd89f2c4d8cb0e0f796706b70ecbbf2", "timestamp": 1589104381, "rssi": -55, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6fbe09847ac0a209b0167acd1c7820de", "timestamp": 1589104681, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f80e63bd05c79c2b5aee5e5e02a944ac", "timestamp": 1589104981, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bac062a2e0f15ee05e12a6f0a4bd6b66", "timestamp": 1589105281, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0ddf9b8bc38f8817aedcef5e1f5df40f", "timestamp": 1589105581, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6d52c9cf5f0b9c961037290e8b7ee77b", "timestamp": 1589105881, "rssi": -72, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f4a928b208d280bb21616a7985f0e04e", "timestamp": 1589106181, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "069a3e617ddb2b2c572d593336661612", "timestamp": 1589106481, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9756c7de38db2e2dec09f79246ac219c", "timestamp": 1589106781, "rssi": -107, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3cb67de95206f35e1d74fe568e978fe2", "timestamp": 1589107081, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b954fc08390aac343acdb34d16bf900c", "timestamp": 1589107381, "rssi": -1, "geohash": "81d58d1ff5"}, {"ephemeral_id": "56ba81ae486b532514eb3c183f3e78cf", "timestamp": 1589107681, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "45a48f021deb9fe522d5d8360eccab3e", "timestamp": 1589107981, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c23bd7e3b7b78cd5ac040e3072387218", "timestamp": 1589108281, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "11852a283fa1f39553863700431e0435", "timestamp": 1589108581, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d16600f1f5c55ccb9702ff8cff61eeb8", "timestamp": 1589108881, "rssi": -73, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6e87cd8841726a5840b0303b5f463daf", "timestamp": 1589109181, "rssi": -58, "geohash": "81d58d1ff5"}, {"ephemeral_id": "33b668327aa88b9ad62fd4b8da4d862f", "timestamp": 1589109481, "rssi": -119, "geohash": "81d58d1ff5"}, {"ephemeral_id": "06b230006cafca3d6de8761bad9fd40d", "timestamp": 1589109781, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a82b6e3c86293a20063ace7b69c51304", "timestamp": 1589110081, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1087eb2f0cd6a4452e1f54943d08e0f7", "timestamp": 1589110381, "rssi": -41, "geohash": "81d58d1ff5"}, {"ephemeral_id": "59b9d5c0cc91e58573bf331ccac36ce0", "timestamp": 1589110681, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "77d082cf45bff31dd973176219422090", "timestamp": 1589110981, "rssi": -5, "geohash": "81d58d1ff5"}, {"ephemeral_id": "aa5a54794af42d2845c1b8544c53fb2a", "timestamp": 1589111281, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d2649531396055a42dc23d714696fb44", "timestamp": 1589111581, "rssi": -14, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9b88283c08e93af002ef09d79dc04e41", "timestamp": 1589111881, "rssi": -82, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ee7792e2840b5634d8895ed92223ea9c", "timestamp": 1589112181, "rssi": -109, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6a14dc8d7603fe951f7e47f796578d88", "timestamp": 1589112481, "rssi": -99, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8ab39236657471b5c5c7c52adcab9d58", "timestamp": 1589112781, "rssi": -35, "geohash": "81d58d1ff5"}, {"ephemeral_id": "71e9ea0d1ea97e7a88ae3191b5e22408", "timestamp": 1589113081, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "06a097677a7037e7f3e87b6506200680", "timestamp": 1589113381, "rssi": -38, "geohash": "81d58d1ff5"}, {"ephemeral_id": "639e9766abaaeca2c998798e079b7921", "timestamp": 1589113681, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9d2d9533f6e49ae6a8fdae1c2beecd37", "timestamp": 1589113981, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "db139f1d99c6d3b0528b1ca0b7167caf", "timestamp": 1589114281, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "156833e907d67860701b69e8d9e2f881", "timestamp": 1589114581, "rssi": -94, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b2122f928bf3ee4bd43c70d728612ae6", "timestamp": 1589114881, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6fb9c98e049fc907d63ea8fc6395b8dd", "timestamp": 1589115181, "rssi": -85, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ecb810da34035e801639f70e8108b921", "timestamp": 1589115481, "rssi": -50, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9b7a703b1d695dda163c2f8dbe5ae692", "timestamp": 1589115781, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b063805e2a0679810828a5b60f97c0b5", "timestamp": 1589116081, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5234012caf91b4c3ca2225961926fbd6", "timestamp": 1589116381, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2c12a6701582b10aee705a6fb4da6d2f", "timestamp": 1589116681, "rssi": -24, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b02a1d4a844dec02e306d920eb266a0d", "timestamp": 1589116981, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8c3273286b0a3d59bbbbb2b3abc7ace8", "timestamp": 1589117281, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "411e23c6f8e828ece85d5c486e271104", "timestamp": 1589117581, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "14fcf5a1b8e44f0e6ae1d3604942a1d3", "timestamp": 1589117881, "rssi": -3, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2c7ca88156793bd1db9815a9cc5d2eb0", "timestamp": 1589118181, "rssi": -6, "geohash": "81d58d1ff5"}, {"ephemeral_id": "383b3151c04135407ac3f5de63d01d31", "timestamp": 1589118481, "rssi": -55, "geohash": "81d58d1ff5"}, {"ephemeral_id": "34d3ea3c1d7d5587124a19ee0d522c63", "timestamp": 1589118781, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1d87eca1af06e5664b6029c52214c2ad", "timestamp": 1589119081, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "acb4af9c3dbe9b56729778bd0f9edca5", "timestamp": 1589119381, "rssi": -69, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f7d3ebfa7245f72cc1b613baae7e285b", "timestamp": 1589119681, "rssi": -18, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1b7d7fcdd8a3223df921dbc2364a6270", "timestamp": 1589119981, "rssi": -68, "geohash": "81d58d1ff5"}, {"ephemeral_id": "96711bfcee23e38d94865213cdc43dde", "timestamp": 1589120281, "rssi": -109, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f309c91f113215f151ae99d81a9d0fd9", "timestamp": 1589120581, "rssi": -112, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a317d1823e29074c5222fabcfe8a168e", "timestamp": 1589120881, "rssi": -115, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1edf6b9d4690f31c30ba07df6431b231", "timestamp": 1589121181, "rssi": -82, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b4f5cca7f6f80a9d53465f4ab2cec312", "timestamp": 1589121481, "rssi": -107, "geohash": "81d58d1ff5"}, {"ephemeral_id": "418da1f434cec5dae254911b41a48023", "timestamp": 1589121781, "rssi": -35, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5b205dc46caf9e71ca73cd0d81f2f8ca", "timestamp": 1589122081, "rssi": -69, "geohash": "81d58d1ff5"}, {"ephemeral_id": "10070719ee114d98a5af35eae0fcf7a0", "timestamp": 1589122381, "rssi": -39, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ab1f83b278ec8383682d0d31822777d9", "timestamp": 1589122681, "rssi": -104, "geohash": "81d58d1ff5"}, {"ephemeral_id": "80039d3606a144be57b1afe26c14fe9d", "timestamp": 1589122981, "rssi": -30, "geohash": "81d58d1ff5"}, {"ephemeral_id": "82d9df6355fe7929e05fbec741bf6f16", "timestamp": 1589123281, "rssi": -6, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e02905156d7998a2fa09ec35450f9eac", "timestamp": 1589123581, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bb1e9ea79b5d1905c6ece0f9c7bdecd1", "timestamp": 1589123881, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a1b314a0429edd9f33bce8e3548e822a", "timestamp": 1589124181, "rssi": -119, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4934bec42ffd4e28ef384e81547e7bb3", "timestamp": 1589124481, "rssi": -74, "geohash": "81d58d1ff5"}, {"ephemeral_id": "adfe38dcee8001630da506051ba2c87f", "timestamp": 1589124781, "rssi": -76, "geohash": "81d58d1ff5"}, {"ephemeral_id": "40bfb52e97c4e7d23b1da17e48b8329f", "timestamp": 1589125081, "rssi": -3, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ce53907c5b990af07dcc864b36f513a3", "timestamp": 1589125381, "rssi": -38, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7e7518a6e07363f8bee61b67bced9090", "timestamp": 1589125681, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ff78f17cb092a607677976a3e37a15ff", "timestamp": 1589125981, "rssi": -98, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ceeaef387568d77cd56fe0ad59b58e3d", "timestamp": 1589126281, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c149d1323c1efb41b33291b1152c7452", "timestamp": 1589126581, "rssi": -52, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1b56f826d08204bf47abdc314a7d5f94", "timestamp": 1589126881, "rssi": -82, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5d1159f149b3f07bf505d221857d44f7", "timestamp": 1589127181, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "358c8fbd3c05bfe472c9ee8c378e8591", "timestamp": 1589127481, "rssi": -88, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c4f410314a218265963efe0f41a133b0", "timestamp": 1589127781, "rssi": -39, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3d3e05492fea432292a15d82d785b444", "timestamp": 1589128081, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b86188c64ca6e3ab264ec05b55c345a4", "timestamp": 1589128381, "rssi": -47, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b63f7e7ec35d1081ac2f7590e77f7b7d", "timestamp": 1589128681, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3840b062b0345d45b4cba484660fd4bf", "timestamp": 1589128981, "rssi": -58, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b3a5ecdb034ef70fa6dbc1d77127cf38", "timestamp": 1589129281, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "650d15ae46c2977c87070e9eb59fa99e", "timestamp": 1589129581, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f9f56c0916a6a1f46e0f0b80436a2d02", "timestamp": 1589129881, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "70eff8cb65fdb12a23807dd7b23ea35b", "timestamp": 1589130181, "rssi": -84, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c3e9199ab9fe3d3c592b88d6673e09d8", "timestamp": 1589130481, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "27c6181b914393877133a8b47d632512", "timestamp": 1589130781, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "715fe7c0f0f760e0d5479289259194fe", "timestamp": 1589131081, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c0a847d36d7b9ff1ed35fc8367b00aae", "timestamp": 1589131381, "rssi": -18, "geohash": "81d58d1ff5"}, {"ephemeral_id": "58eafcf461e5851a9b161ea0564b84d9", "timestamp": 1589131681, "rssi": -16, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0a17560d2d207b72d7b8cc179bbbef6f", "timestamp": 1589131981, "rssi": -11, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f706efaa615fc4be4faf4a03a1893f78", "timestamp": 1589132281, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "12b9023b4e8df2f3bab72865009347c0", "timestamp": 1589132581, "rssi": -84, "geohash": "81d58d1ff5"}, {"ephemeral_id": "68f3ae080bf30f2efda63fae8226a8cd", "timestamp": 1589132881, "rssi": -117, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8fe5f8613b8546cca35338bb31df1241", "timestamp": 1589133181, "rssi": -6, "geohash": "81d58d1ff5"}, {"ephemeral_id": "566f89b38f19dbdb4db180457e1b9b0c", "timestamp": 1589133481, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1179dc097a589f9ce481e2b64b339cab", "timestamp": 1589133781, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "49cbe5ce0e3856bb65dd7140fea9adb5", "timestamp": 1589134081, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dbc40a2a4f78860ec2230cebfeb05b83", "timestamp": 1589134381, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5d457b69ab1d6774bb1938a9391f3a58", "timestamp": 1589134681, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "98aed0e2692e7016c651a3c246220b9e", "timestamp": 1589134981, "rssi": -34, "geohash": "81d58d1ff5"}, {"ephemeral_id": "632ac1f75dae0f22038443020c0ba544", "timestamp": 1589135281, "rssi": -19, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cbc0b844d17bf1e6c7ed2e6bab47160b", "timestamp": 1589135581, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9ab6aa611b9c9e690e717a8f2083a008", "timestamp": 1589135881, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1e1fc393461a7639175ecb92299dfd9a", "timestamp": 1589136181, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6c2d76a6cfa712b33aecb24bec382cc1", "timestamp": 1589136481, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2815737b7ff6841d94b68422611af1a8", "timestamp": 1589136781, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8393312eee3c6ebc7686b6076de6d122", "timestamp": 1589137081, "rssi": -49, "geohash": "81d58d1ff5"}, {"ephemeral_id": "579285967cccf1ea252c76a010cc0f20", "timestamp": 1589137381, "rssi": -103, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0ae1c6193c150d5cd5ec6fc7d903341c", "timestamp": 1589137681, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2746c825643a018deaa16bc315ff929d", "timestamp": 1589137981, "rssi": -104, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9d5a109cb1548ba9f4523dfe7696d136", "timestamp": 1589138281, "rssi": -83, "geohash": "81d58d1ff5"}, {"ephemeral_id": "931bfc324ba199f984bed0b6abd4a011", "timestamp": 1589138581, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3e46ba073a038e04f8cf19dacde7b9c6", "timestamp": 1589138881, "rssi": -53, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bc9fd359a6a0930478bd1179866228d6", "timestamp": 1589139181, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e708baa26ebd2a378d726a1f789aaec7", "timestamp": 1589139481, "rssi": -39, "geohash": "81d58d1ff5"}, {"ephemeral_id": "82c8250d2b202c98b8033f90c9ac66ef", "timestamp": 1589139781, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dc34d3b97b3af908f1230c11d30f3e61", "timestamp": 1589140081, "rssi": -69, "geohash": "81d58d1ff5"}, {"ephemeral_id": "48f78550d66f618da4456ed354ec7675", "timestamp": 1589140381, "rssi": -78, "geohash": "81d58d1ff5"}, {"ephemeral_id": "111fff7d51d893bbcc8873d89920d224", "timestamp": 1589140681, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f8620fc406e4be4dfa4e9cf447b92d3e", "timestamp": 1589140981, "rssi": -107, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4bb9c94931f2b923005f8c07824910b5", "timestamp": 1589141281, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a75a0b2c0f76f7ab770e8c1ae8012cad", "timestamp": 1589141581, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f6f66c3c5f89f2e1df60c3dad5acce33", "timestamp": 1589141881, "rssi": -70, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cac123568c69b1637533d374648db1f6", "timestamp": 1589142181, "rssi": -107, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4d669bd73826a460e3be0efb616b0f5e", "timestamp": 1589142481, "rssi": -94, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fc27dd39150e7add2dd96b2ebdfc87c1", "timestamp": 1589142781, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "04daea710485a9db730193c8c7fb45f6", "timestamp": 1589143081, "rssi": -68, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d8a2e836bcb09856e666aa17c2d6119f", "timestamp": 1589143381, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e5dddeaa23c4f0d3aa69642ec3b85e24", "timestamp": 1589143681, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c2ce215be35c8730783d4f7ba3bb0b9f", "timestamp": 1589143981, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c1ff3f81c803a4a734c74bcb29ae4494", "timestamp": 1589144281, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "62b42e8626901faedbb18a870ff18095", "timestamp": 1589144581, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d7fb0732dacef68b36ae473cabad6ee9", "timestamp": 1589144881, "rssi": -41, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c10c4e4917f6bccdd47624eb5ec18315", "timestamp": 1589145181, "rssi": -32, "geohash": "81d58d1ff5"}, {"ephemeral_id": "41b9e2b13c0348bb16217c31c85f6afa", "timestamp": 1589145481, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1192e5aeec5c2393dde80ea4619011a2", "timestamp": 1589145781, "rssi": -4, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fdfbdeb262f18a8defa33d3e8e030e9b", "timestamp": 1589146081, "rssi": -110, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cdd32979b47ab8048fd433f0194708df", "timestamp": 1589146381, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d330ca6adb0ac79ab1f9d2a9c878a9d8", "timestamp": 1589146681, "rssi": -11, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1068d0999c515f05aca9b02a7c718e6d", "timestamp": 1589146981, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "95155529e36dc6d5c3ceee24def3ff17", "timestamp": 1589147281, "rssi": -18, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ffc24252df4624818d6ac5850559779c", "timestamp": 1589147581, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d17d6b70fb9370d26b83c2b220a3e222", "timestamp": 1589147881, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5ebca232ec7efc60878ba35000c2cb6e", "timestamp": 1589148181, "rssi": -64, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a7d11b816d67af5524c77b32f0851f26", "timestamp": 1589148481, "rssi": -21, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7187c3c649070df4887ac390d5ce9e09", "timestamp": 1589148781, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4dc48a381e0a68aff0530910847bc045", "timestamp": 1589149081, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c4688649ab68225b1adf31ad8316e693", "timestamp": 1589149381, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "936a47bab87d9f336dd9a6b4ae181d75", "timestamp": 1589149681, "rssi": -50, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7ff4ea8940cb5e2dfb2f1318480c6bc9", "timestamp": 1589149981, "rssi": -57, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9126b9c6719d9d5286b34b7a38f16f50", "timestamp": 1589150281, "rssi": -112, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fabea1913002db30e24dc101d3a17e8e", "timestamp": 1589150581, "rssi": -99, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8cce9ca156d771d0b170927b55a4726b", "timestamp": 1589150881, "rssi": -2, "geohash": "81d58d1ff5"}, {"ephemeral_id": "46b374702338df7938bdcc265f5382af", "timestamp": 1589151181, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "08340058a8686aaca9882c4fc8e08145", "timestamp": 1589151481, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c45e144525d85fe634fc0585ca4b7d5a", "timestamp": 1589151781, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ae2e08d35f796f15d901b887035ac1d0", "timestamp": 1589152081, "rssi": -116, "geohash": "81d58d1ff5"}, {"ephemeral_id": "996ac6ed41ad221e36025ee9f0329834", "timestamp": 1589152381, "rssi": -6, "geohash": "81d58d1ff5"}, {"ephemeral_id": "92ed65a3e9c850422eed8453e8a58f03", "timestamp": 1589152681, "rssi": -12, "geohash": "81d58d1ff5"}, {"ephemeral_id": "634e33628677d7a18d34fa2b183a7aeb", "timestamp": 1589152981, "rssi": -74, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a7ffb2c976c827ff49e0c3d525d49c97", "timestamp": 1589153281, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "36fd6b0dc5acfb69bffb60c3694202f9", "timestamp": 1589153581, "rssi": -20, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8a580affed7b3399c2cb75d44a32945d", "timestamp": 1589153881, "rssi": -50, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d78ca1dbb48e1117de31f02bebf1fecd", "timestamp": 1589154181, "rssi": -106, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c21ccb7f9efc40b46784d2f11027e13c", "timestamp": 1589154481, "rssi": -16, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e90c55cb0c5cf4664107bf044a173c12", "timestamp": 1589154781, "rssi": -76, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5db5189c7baeb357be7942c866de292d", "timestamp": 1589155081, "rssi": -12, "geohash": "81d58d1ff5"}, {"ephemeral_id": "672855fe1262627d6e778dfe9a82698f", "timestamp": 1589155381, "rssi": -13, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b2e87ff59b5baddf3e995e4bcfed01b5", "timestamp": 1589155681, "rssi": -12, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2f994065ab1fa5025ff118fb30a8651d", "timestamp": 1589155981, "rssi": -80, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f0187a3144eb7197ac546dfe00722e87", "timestamp": 1589156281, "rssi": -11, "geohash": "81d58d1ff5"}, {"ephemeral_id": "37a04876ab3fdfe09c0602227a2ee28d", "timestamp": 1589156581, "rssi": -40, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b5827fdfb0ef5fb494ecc73f1f5bd3fb", "timestamp": 1589156881, "rssi": -40, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c801d59a210acac7ff29af0391ff515e", "timestamp": 1589157181, "rssi": -68, "geohash": "81d58d1ff5"}, {"ephemeral_id": "85ff13c61c4109b6693371dbbc08d57f", "timestamp": 1589157481, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3068e1ac4890e443df3d93d98ba61209", "timestamp": 1589157781, "rssi": -58, "geohash": "81d58d1ff5"}, {"ephemeral_id": "13b1ea21d493898dc13b913c5ca6650d", "timestamp": 1589158081, "rssi": -57, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3c3a73a430401ddfbca56e35f3db9c2a", "timestamp": 1589158381, "rssi": -3, "geohash": "81d58d1ff5"}, {"ephemeral_id": "571bc2e6f716eed5764ce671067a2b9e", "timestamp": 1589158681, "rssi": -58, "geohash": "81d58d1ff5"}, {"ephemeral_id": "79e8a2d0e86f8cbcc5956018bf28dd95", "timestamp": 1589158981, "rssi": -115, "geohash": "81d58d1ff5"}, {"ephemeral_id": "46d9e47f360710de8c6ff71696459686", "timestamp": 1589159281, "rssi": -62, "geohash": "81d58d1ff5"}, {"ephemeral_id": "737535a7723c190353c99c8e108b3793", "timestamp": 1589159581, "rssi": -12, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fa94c8868fc2e247e2a43539f8aa1347", "timestamp": 1589159881, "rssi": -37, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f81e0bbc48bea18f995184d040d30a82", "timestamp": 1589160181, "rssi": -34, "geohash": "81d58d1ff5"}, {"ephemeral_id": "37c9dd997759a2861bf33fd0b2a2823b", "timestamp": 1589160481, "rssi": -93, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6a266ca03bf7d5c2374c73c8a7061717", "timestamp": 1589160781, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8d1dae4575d0b98209f9cd2aa7dbcac0", "timestamp": 1589161081, "rssi": -19, "geohash": "81d58d1ff5"}, {"ephemeral_id": "43ce019e74e4fdc4ec5e5c77765efb1b", "timestamp": 1589161381, "rssi": -13, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f5144c56c7726bb4dfed492a567da977", "timestamp": 1589161681, "rssi": -18, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6f02f337a4c54da8e885391f868349d2", "timestamp": 1589161981, "rssi": -56, "geohash": "81d58d1ff5"}, {"ephemeral_id": "eebc8dee4db7b34293b60d4d45c80a46", "timestamp": 1589162281, "rssi": -91, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cc97b1ab480d676fcc1860fea7c575ef", "timestamp": 1589162581, "rssi": -58, "geohash": "81d58d1ff5"}, {"ephemeral_id": "69bfb8674951aa8f1ec9a15d3a24ed05", "timestamp": 1589162881, "rssi": -79, "geohash": "81d58d1ff5"}, {"ephemeral_id": "79846b96837b9961912e7f046c76ec09", "timestamp": 1589163181, "rssi": -59, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ee9f223afe152dc025352f7d38d4651f", "timestamp": 1589163481, "rssi": -94, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6caadfaa43262d1b47c20601acecd9dd", "timestamp": 1589163781, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c5c86f3fba594a5dd316a0c3dc609bea", "timestamp": 1589164081, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d2b0835caae13fb7ff271fbfc6f38fd7", "timestamp": 1589164381, "rssi": -78, "geohash": "81d58d1ff5"}, {"ephemeral_id": "48bb03b4de4548f1eca779289f7289f4", "timestamp": 1589164681, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2442e4de7c25213dc5d0081ce260e8cb", "timestamp": 1589164981, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4d98ddd9d34d8afe6a9d4a2aff069625", "timestamp": 1589165281, "rssi": -6, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c0f584118c56942980cc33f7cee930aa", "timestamp": 1589165581, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "573ab487ae86b1888e067bb3403965d4", "timestamp": 1589165881, "rssi": -73, "geohash": "81d58d1ff5"}, {"ephemeral_id": "eb3fa5c76770eef9cbebac86728a9630", "timestamp": 1589166181, "rssi": -74, "geohash": "81d58d1ff5"}, {"ephemeral_id": "407494993b561bab616e178bd6077e37", "timestamp": 1589166481, "rssi": -18, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3b6efa35aee442613c4df823efb26446", "timestamp": 1589166781, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b601a1db694e1f48268bc83095d43422", "timestamp": 1589167081, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4f1de1323525b059e0fbad76a2313258", "timestamp": 1589167381, "rssi": -59, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1eae1a526370cf8b296ae2b9232a58ed", "timestamp": 1589167681, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "52a7e22007038c2d8f230dd2ffad17c0", "timestamp": 1589167981, "rssi": -49, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d91e78832dc3fed9b05b09bba329ca49", "timestamp": 1589168281, "rssi": -96, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c98b3caee32ed943879ad4c3ce868410", "timestamp": 1589168581, "rssi": -68, "geohash": "81d58d1ff5"}, {"ephemeral_id": "34178422fc01fe4f65c7fd71db4d673f", "timestamp": 1589168881, "rssi": -18, "geohash": "81d58d1ff5"}, {"ephemeral_id": "54dd49d6ac3f9f2367250b6204ff76c8", "timestamp": 1589169181, "rssi": -40, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fcdd7847192537d716e46abd79c59664", "timestamp": 1589169481, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2d9451041a395f35b3ab44a9155b47b4", "timestamp": 1589169781, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ad91a415154643b76dd3a6aa051b5417", "timestamp": 1589170081, "rssi": -106, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6bc470cf9f67450aa20837aca5888ba5", "timestamp": 1589170381, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "51592905a9a2be234e37b2008230ffb9", "timestamp": 1589170681, "rssi": -82, "geohash": "81d58d1ff5"}, {"ephemeral_id": "22a946f73906333a4a66a118421d5446", "timestamp": 1589170981, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "88c9fbe4169cdd9c5da12b92bf251d48", "timestamp": 1589171281, "rssi": -53, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c92a47df7b458dcd9b420e216af1c2d8", "timestamp": 1589171581, "rssi": -103, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8cdc85b9aa7af1fc455014ddb960a6e3", "timestamp": 1589171881, "rssi": -14, "geohash": "81d58d1ff5"}, {"ephemeral_id": "04d703bf6a36e025127e45832ea974e0", "timestamp": 1589172181, "rssi": -57, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5503fa91d1e527af6bab676eb4b5d674", "timestamp": 1589172481, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9b409c893032900b96b6850d92b1c7d7", "timestamp": 1589172781, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3a775516ee553c6e35ce723af2918c4b", "timestamp": 1589173081, "rssi": -22, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a6dda28f8e475a26b170a4acda00ab25", "timestamp": 1589173381, "rssi": -85, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4a4104cb9f19e26fd57fc0104a8239e2", "timestamp": 1589173681, "rssi": -4, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d0fec8ffaffec459d98a45623ca3ab62", "timestamp": 1589173981, "rssi": -84, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e06d3001aa46f4aa36647951820b6ffe", "timestamp": 1589174281, "rssi": -81, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3b5474b958d7a66f966055f689f984ab", "timestamp": 1589174581, "rssi": -41, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bb316c0bf7121fc85d6a21647199b95e", "timestamp": 1589174881, "rssi": -85, "geohash": "81d58d1ff5"}, {"ephemeral_id": "41c70c5191ffba0ab6a72b13acde3bad", "timestamp": 1589175181, "rssi": -45, "geohash": "81d58d1ff5"}, {"ephemeral_id": "30c362646ee1f020f5392df8a3d8d915", "timestamp": 1589175481, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3f679cb701b5cf54c343f96df03fca8b", "timestamp": 1589175781, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "44049907f8dd34234fb5563313e8070a", "timestamp": 1589176081, "rssi": -88, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b12df341374460bf7534b75f09c9934f", "timestamp": 1589176381, "rssi": -40, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e179e3c8ff94e18f729f9b6c4347af20", "timestamp": 1589176681, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cdbfcf7662069fdf235ce370f517a3bb", "timestamp": 1589176981, "rssi": -74, "geohash": "81d58d1ff5"}, {"ephemeral_id": "395a2d395cb1042a05577c7b3821a472", "timestamp": 1589177281, "rssi": -55, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6ed8daf7f5679366e7c57a0c0ce7196a", "timestamp": 1589177581, "rssi": -58, "geohash": "81d58d1ff5"}, {"ephemeral_id": "61d8ca7ffb4450fc4387e9cce068a8af", "timestamp": 1589177881, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a26d58356e2692ada4b7afbc5ded6323", "timestamp": 1589178181, "rssi": -68, "geohash": "81d58d1ff5"}, {"ephemeral_id": "80421c673a0d34102ebdce74fcd4dea6", "timestamp": 1589178481, "rssi": -105, "geohash": "81d58d1ff5"}, {"ephemeral_id": "067a0200141eb48b44c872a621de7f19", "timestamp": 1589178781, "rssi": -104, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f36db7825f1eef252607bc22b66ba1b8", "timestamp": 1589179081, "rssi": -87, "geohash": "81d58d1ff5"}, {"ephemeral_id": "959b6a0b63ed62c06f03a663a42c027c", "timestamp": 1589179381, "rssi": -56, "geohash": "81d58d1ff5"}, {"ephemeral_id": "960982dfdce07c7a5e9f169b5689762d", "timestamp": 1589179681, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5a280400902eb40cc930a9dece7a56ef", "timestamp": 1589179981, "rssi": -12, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3e771b5863e01c6c56ed2cd772b885bb", "timestamp": 1589180281, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "953fb4516a1b05a6fcd584f73545bce8", "timestamp": 1589180581, "rssi": -14, "geohash": "81d58d1ff5"}, {"ephemeral_id": "62dab641b76d38e4157e5f56d36f9b3e", "timestamp": 1589180881, "rssi": -85, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3a323177432b9dd56ca023048ae389a6", "timestamp": 1589181181, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e278607d9634f44e63c80b089b741020", "timestamp": 1589181481, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4ed026e75d5d8cb98f17db1334443bc0", "timestamp": 1589181781, "rssi": -10, "geohash": "81d58d1ff5"}, {"ephemeral_id": "62e58646d953f8bb8333d36e0c7dacef", "timestamp": 1589182081, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ee86b980e5a6c7dbfdc785430971875a", "timestamp": 1589182381, "rssi": -69, "geohash": "81d58d1ff5"}, {"ephemeral_id": "70c57995df18e1c95168f3e0267aec2e", "timestamp": 1589182681, "rssi": -73, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0e4fb96f05b1e3301973f03c818be250", "timestamp": 1589182981, "rssi": -105, "geohash": "81d58d1ff5"}, {"ephemeral_id": "90d30fea233d0a6efe5e53a863bf5fae", "timestamp": 1589183281, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6568cea4aa0d47dcda29aaf0cd623d9f", "timestamp": 1589183581, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a6081a6d3d0e06d9721faf1031655ee4", "timestamp": 1589183881, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8f1904666583a9ab00838ed53a447015", "timestamp": 1589184181, "rssi": -13, "geohash": "81d58d1ff5"}, {"ephemeral_id": "04a1c138f0bf4ed1f3ba5f9bb70f781f", "timestamp": 1589184481, "rssi": -3, "geohash": "81d58d1ff5"}, {"ephemeral_id": "92d2f5b957e43b1a3319b06a041a42ad", "timestamp": 1589184781, "rssi": -84, "geohash": "81d58d1ff5"}, {"ephemeral_id": "793b0edd53bbe7bb76ca89fba71c6c8f", "timestamp": 1589185081, "rssi": -37, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ea847979e26bc2a79960c5598246d288", "timestamp": 1589185381, "rssi": -64, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e95b953f4b4c29a0aea87d39b5d9d4b1", "timestamp": 1589185681, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3eae3cc53c3ae94e573bdc7a5467e3c5", "timestamp": 1589185981, "rssi": -40, "geohash": "81d58d1ff5"}, {"ephemeral_id": "399f66851555e9aea5e35178e40508ef", "timestamp": 1589186281, "rssi": -22, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cfa6122de909e895cdeb11500879cf34", "timestamp": 1589186581, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4de4725222a17824b9243d83a553b016", "timestamp": 1589186881, "rssi": -94, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d0c72cf646bd43d19066248f8dfacbcb", "timestamp": 1589187181, "rssi": -76, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8ed6427f97317e8137498f518ddec0c8", "timestamp": 1589187481, "rssi": -10, "geohash": "81d58d1ff5"}, {"ephemeral_id": "58719fc0d8aa2d78fd2ca7870cd9b310", "timestamp": 1589187781, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5ec560314b7dac5c5ab765490fd42f17", "timestamp": 1589188081, "rssi": -32, "geohash": "81d58d1ff5"}, {"ephemeral_id": "49c2516838de3201da621adbe84078f5", "timestamp": 1589188381, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "aa49def85319d71606a0a999739bbcc0", "timestamp": 1589188681, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4419b3c8ef7b748bd460cc8e55b393e4", "timestamp": 1589188981, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9a83ed26a2425a8b3a8250a4b7318192", "timestamp": 1589189281, "rssi": -96, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fa1d958adafbbe092589617f532cf1f2", "timestamp": 1589189581, "rssi": -115, "geohash": "81d58d1ff5"}, {"ephemeral_id": "59d690d8de56938e11fbcd5e5ba7d1f9", "timestamp": 1589189881, "rssi": -22, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1dd6fc164742909c6965fc8b189b0d28", "timestamp": 1589190181, "rssi": -20, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1580ffcd098dceb2e0b2d1434f8d752d", "timestamp": 1589190481, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "938431dbd3e54442316894b4612cc243", "timestamp": 1589190781, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "642c27b8bf3ec889bbd5cd1c4e4fb3ec", "timestamp": 1589191081, "rssi": -84, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f723dc15008904adc50a30e50440153b", "timestamp": 1589191381, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "15e261e00faca1bbb3c4afaa7c735226", "timestamp": 1589191681, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a6f19f4430714c69f881b82fd48b28be", "timestamp": 1589191981, "rssi": -64, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f5bfb6f9a0ac8651e6246bca83ba3754", "timestamp": 1589192281, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d9cb2acc0cd132060314fc50e6d3c790", "timestamp": 1589192581, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0b201fefb24769958dc289584fcadc18", "timestamp": 1589192881, "rssi": -56, "geohash": "81d58d1ff5"}, {"ephemeral_id": "142740c4a60a43b5ec0730bb3f3e75ac", "timestamp": 1589193181, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "112807207eef35da3566944eec76d627", "timestamp": 1589193481, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9ce1412904eeb21df502e7055a0864c3", "timestamp": 1589193781, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "74eb805d0a64e65ca5c695950987f1a5", "timestamp": 1589194081, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7604f5a48b9a75d22014332210acfd3c", "timestamp": 1589194381, "rssi": -104, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2d2dbd5d39bfe1ad369ed2f5527ff9f2", "timestamp": 1589194681, "rssi": -38, "geohash": "81d58d1ff5"}, {"ephemeral_id": "47e25a9f324e289c369349756a73f86d", "timestamp": 1589194981, "rssi": -70, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7b9ab0d4c12dd9350f7f7b116ca2443a", "timestamp": 1589195281, "rssi": -83, "geohash": "81d58d1ff5"}, {"ephemeral_id": "81e62720890909caf23d81aa1ca5b72c", "timestamp": 1589195581, "rssi": -30, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0f3bff627c8eb0cf9bd737797247f356", "timestamp": 1589195881, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2384f2263735dadab9e7a42edd952350", "timestamp": 1589196181, "rssi": -62, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b820db4f1911f5c8ff741c38cf7bfe00", "timestamp": 1589196481, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bd49fa724da98780e63738a707a50cdb", "timestamp": 1589196781, "rssi": -91, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b4f3dc1f2f0b62efb03edca87b864223", "timestamp": 1589197081, "rssi": -107, "geohash": "81d58d1ff5"}, {"ephemeral_id": "72d5fba42093c39c6f7aaffac3a6b1bb", "timestamp": 1589197381, "rssi": -58, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fd0fa8d70debdc252067e9be2dbd1639", "timestamp": 1589197681, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9eefb7d3c644177fedf00b47562cf6d6", "timestamp": 1589197981, "rssi": -96, "geohash": "81d58d1ff5"}, {"ephemeral_id": "24764a9fb29c2383bceeeb1e8b0a8722", "timestamp": 1589198281, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d65b0057ee97a0af9325f7369adab175", "timestamp": 1589198581, "rssi": -19, "geohash": "81d58d1ff5"}, {"ephemeral_id": "93165eebd130f0cb10d9303af7e87521", "timestamp": 1589198881, "rssi": -70, "geohash": "81d58d1ff5"}, {"ephemeral_id": "87b52012ed12d1c3b812eedbd9b93e51", "timestamp": 1589199181, "rssi": -104, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7fabd8a008c1161733cd1b78395aef8f", "timestamp": 1589199481, "rssi": -72, "geohash": "81d58d1ff5"}, {"ephemeral_id": "62a275565a3bd48649fea4196f55bbc2", "timestamp": 1589199781, "rssi": -5, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5ad0cf25a0f7f1c4649eaa7ab760d06d", "timestamp": 1589200081, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3ab07f7f59f208ac48dd315ca60c14b3", "timestamp": 1589200381, "rssi": -49, "geohash": "81d58d1ff5"}, {"ephemeral_id": "772661cfc6dacd7eb83e57f90e5cd555", "timestamp": 1589200681, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e33fa4eae2dc62aada05e14074756571", "timestamp": 1589200981, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6c0787b25490910659052ce70da477f7", "timestamp": 1589201281, "rssi": -6, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0772e28a3c450a85bf5804984a5b68b3", "timestamp": 1589201581, "rssi": -49, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f82669629c475e5608634610f7a9109e", "timestamp": 1589201881, "rssi": -37, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d02939ff1e07797f432e55c0d3b931e0", "timestamp": 1589202181, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c938bcd4e92a0eeba5cd0bd7d98a4549", "timestamp": 1589202481, "rssi": -52, "geohash": "81d58d1ff5"}, {"ephemeral_id": "37ddc6fee96715f0104e4f5ad42657f9", "timestamp": 1589202781, "rssi": -1, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3eb223598bfd40c92694e28f1a5de254", "timestamp": 1589203081, "rssi": -37, "geohash": "81d58d1ff5"}, {"ephemeral_id": "380513b155399817c9265882dd3e7ef8", "timestamp": 1589203381, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "639dcc7cafdf274af2269a4b94942832", "timestamp": 1589203681, "rssi": -4, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3f5784a59b706e5189c1608fff4d7f7c", "timestamp": 1589203981, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "54608d7cef20e373385b82afc67f0986", "timestamp": 1589204281, "rssi": -79, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ea79b9c63820d8b4d8cb41fd8f765a87", "timestamp": 1589204581, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "34ebf8442f7cb679c0c7383c99c92ebe", "timestamp": 1589204881, "rssi": -15, "geohash": "81d58d1ff5"}, {"ephemeral_id": "130ea9204a7116dc990a98c5450142b1", "timestamp": 1589205181, "rssi": -73, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dc0c60089ade022772228d4856c2ad80", "timestamp": 1589205481, "rssi": -43, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b345a2227797e38281b1ff4aaadcf77e", "timestamp": 1589205781, "rssi": -72, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cee01bb73f776ffdde8b74e42c3575d8", "timestamp": 1589206081, "rssi": -4, "geohash": "81d58d1ff5"}, {"ephemeral_id": "436c75baa3cbb07a9405f6742df6792f", "timestamp": 1589206381, "rssi": -47, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8d11b4c1066dce086106affb51132fb6", "timestamp": 1589206681, "rssi": -55, "geohash": "81d58d1ff5"}, {"ephemeral_id": "46ee3b3fb1c3dda62f542a223815b70f", "timestamp": 1589206981, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "65f6411c4f968d1625a16be7e63a78c4", "timestamp": 1589207281, "rssi": -34, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2ef00152c812410dc6bf92478ca58416", "timestamp": 1589207581, "rssi": -70, "geohash": "81d58d1ff5"}, {"ephemeral_id": "18809c21a716840eb74985a957959d71", "timestamp": 1589207881, "rssi": -61, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c3808fe03243d248e13ddabd7d3b6667", "timestamp": 1589208181, "rssi": -10, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5a84fedde27b53848c88ba28b25c7cf3", "timestamp": 1589208481, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "499b37eddce0286c9eb30f925959bf47", "timestamp": 1589208781, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c4fd3924ced5a63d7b31ff8422f51a39", "timestamp": 1589209081, "rssi": -79, "geohash": "81d58d1ff5"}, {"ephemeral_id": "af31d2dbe9b41a0a2e66d29c81241894", "timestamp": 1589209381, "rssi": -119, "geohash": "81d58d1ff5"}, {"ephemeral_id": "044a28a0959cd02415cc3a560a290231", "timestamp": 1589209681, "rssi": -14, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b76a5c13cb5e711e31d9ff3dc8995e18", "timestamp": 1589209981, "rssi": -41, "geohash": "81d58d1ff5"}, {"ephemeral_id": "843fe1f3779275fbc6dc4bda0749eca0", "timestamp": 1589210281, "rssi": -85, "geohash": "81d58d1ff5"}, {"ephemeral_id": "287616159be58409535d4615bb7348f7", "timestamp": 1589210581, "rssi": -70, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d0ce523cf2b9e93df856179d46503869", "timestamp": 1589210881, "rssi": -45, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b89d5ef664de564f15160856648bf12d", "timestamp": 1589211181, "rssi": -50, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0310e53cfd6e4a542b85dbd47204b9e4", "timestamp": 1589211481, "rssi": -53, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c16880615cfc44d815106cd12b26e164", "timestamp": 1589211781, "rssi": -81, "geohash": "81d58d1ff5"}, {"ephemeral_id": "64e4ff8191faaa3484e053bc91a9aa06", "timestamp": 1589212081, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "eff60caf28838ab2ffdcdc8489d7bc95", "timestamp": 1589212381, "rssi": -118, "geohash": "81d58d1ff5"}, {"ephemeral_id": "72969dc23314934c1061f5a7f2b4ac9f", "timestamp": 1589212681, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "02b07905d7b85831689198dc9dd7b86a", "timestamp": 1589212981, "rssi": -38, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f9798745657ac3956aa8ef4a4151190f", "timestamp": 1589213281, "rssi": -79, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a427fad66d4dd7f49c0b7a8df69c65aa", "timestamp": 1589213581, "rssi": -13, "geohash": "81d58d1ff5"}, {"ephemeral_id": "877bb8bd6c3ffd755e1d69945af71735", "timestamp": 1589213881, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "27c0441ed5bcec8f4ae97d79ed3bae28", "timestamp": 1589214181, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "431ed14935f2c36b09e1d109a35bda4e", "timestamp": 1589214481, "rssi": -14, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cc0b10327b62d26b138ccbcec7e825ca", "timestamp": 1589214781, "rssi": -56, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ba95e0da8dc56f948545dfc827ed3edd", "timestamp": 1589215081, "rssi": -35, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3efc589716979b69a21bb386ecc67501", "timestamp": 1589215381, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "82d982b3386a5b04b2cc5d8066358a9f", "timestamp": 1589215681, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3dbb38e16b326fc63568ac411bbd24e6", "timestamp": 1589215981, "rssi": -91, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f12def35c1ee576f549ff75fdb103bef", "timestamp": 1589216281, "rssi": -6, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f79a6886773122661f6090d00821e4c4", "timestamp": 1589216581, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d7f57b55531acd16b324c16b0b1325eb", "timestamp": 1589216881, "rssi": -60, "geohash": "81d58d1ff5"}, {"ephemeral_id": "05f912955a1a1b1e189aad2720e6d2b9", "timestamp": 1589217181, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "04f95909f0bf63f48b5e61ed75f853d0", "timestamp": 1589217481, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c7c3afbd7dea893497fd579916b1149e", "timestamp": 1589217781, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4c1cdbab433aeca2eb5eb12a03e355fb", "timestamp": 1589218081, "rssi": -91, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6b4dbdc1616c0446c89516670b8564e5", "timestamp": 1589218381, "rssi": -98, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a27dfb304eb66ef629e7d7119d1711a4", "timestamp": 1589218681, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7e8d09d0c28213c06807ee8744c7e253", "timestamp": 1589218981, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9339f6c6539bbe2d9bdba2b23c5cca76", "timestamp": 1589219281, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "280f0228447387e31ed8bcbe2022850c", "timestamp": 1589219581, "rssi": -81, "geohash": "81d58d1ff5"}, {"ephemeral_id": "eea6036e8dc4eca84fac0fbe8f6c9349", "timestamp": 1589219881, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0c825df468c11c9cb7af0bd4c332081d", "timestamp": 1589220181, "rssi": -35, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5d92b4d3efc66cecee4208316ad3c4e5", "timestamp": 1589220481, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fa17eb88c5c066f9db18bd52a8f68773", "timestamp": 1589220781, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e462517902fb1b2fbe7ff0c139463a5e", "timestamp": 1589221081, "rssi": -32, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4c38a6dbc11d8f91246a16b7573c0230", "timestamp": 1589221381, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "809162ce29661f290778625e5835f1db", "timestamp": 1589221681, "rssi": -6, "geohash": "81d58d1ff5"}, {"ephemeral_id": "381c7a033306c7734fb780f7afdffeb4", "timestamp": 1589221981, "rssi": -52, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0ad8d094ab5c350aea6f8bfe8e7b40db", "timestamp": 1589222281, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fa0c657fefba9edb4ee0972b46842a3b", "timestamp": 1589222581, "rssi": -40, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5ea72e780e7d4744a73b3e079c3310e3", "timestamp": 1589222881, "rssi": -32, "geohash": "81d58d1ff5"}, {"ephemeral_id": "57f598205d7992c57b962793cd6a5433", "timestamp": 1589223181, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "59d0c050bbad6788fbbba893da7b754e", "timestamp": 1589223481, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7e3e7ceb648d068f043a8a76e7c8d101", "timestamp": 1589223781, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e7fa4057bf4b35f4c14f281b6d26034c", "timestamp": 1589224081, "rssi": -80, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e38a6c402af0070232c156683f270cfc", "timestamp": 1589224381, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f927628112ca755e23c94e97804f026d", "timestamp": 1589224681, "rssi": -72, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b9ae3587774a8ac2cdec4a2de2712e94", "timestamp": 1589224981, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "334132f167576348225327394ad1a6b7", "timestamp": 1589225281, "rssi": -84, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dad741d7095d8791c3ba9e0526109336", "timestamp": 1589225581, "rssi": -24, "geohash": "81d58d1ff5"}, {"ephemeral_id": "18e53ee2b45ba9134246808476e1c93a", "timestamp": 1589225881, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8be93fc35428f47ed9d7451c3199e71e", "timestamp": 1589226181, "rssi": -18, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9f7c85778f23b51a2fa6cae1ffeb97bb", "timestamp": 1589226481, "rssi": -13, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b212c7bab65d80055358dd3697f016c3", "timestamp": 1589226781, "rssi": -91, "geohash": "81d58d1ff5"}, {"ephemeral_id": "96ee9ada5d429edfe4135b8b84be74f6", "timestamp": 1589227081, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "02ffb2c3d9c771169242da34a3b5d243", "timestamp": 1589227381, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a7abcd77fa389a2ae0e0b40d208cfd48", "timestamp": 1589227681, "rssi": -11, "geohash": "81d58d1ff5"}, {"ephemeral_id": "670f5542e560b29da6cd022ba018ca3c", "timestamp": 1589227981, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3dbc65379c6ce6f5f1cd2389ab7275d7", "timestamp": 1589228281, "rssi": -98, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b3eac5c0943533311ac9a6a223a11322", "timestamp": 1589228581, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8ed692075f9fc08de3bd78483022dc4f", "timestamp": 1589228881, "rssi": -47, "geohash": "81d58d1ff5"}, {"ephemeral_id": "909be31ad4600ef17d8473423f318579", "timestamp": 1589229181, "rssi": -37, "geohash": "81d58d1ff5"}, {"ephemeral_id": "02a1b5ff61d726fdacb0423898742f36", "timestamp": 1589229481, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f85dcd43d84c4ddcc68bdde3dc028bd3", "timestamp": 1589229781, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9781721eb3ef3e9cb1dae4024fb2730a", "timestamp": 1589230081, "rssi": -40, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b163ed819c02287a0e19aa8a293ae404", "timestamp": 1589230381, "rssi": -18, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7d6e88bbb9792fffdf59c28c66d1bdbe", "timestamp": 1589230681, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9333f0bc483074d4f29502623984e871", "timestamp": 1589230981, "rssi": -70, "geohash": "81d58d1ff5"}, {"ephemeral_id": "264e3409675335492d34df8d620d0acb", "timestamp": 1589231281, "rssi": -53, "geohash": "81d58d1ff5"}, {"ephemeral_id": "54c296836940bae019b3f0a55f0b80e2", "timestamp": 1589231581, "rssi": -109, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e6f94c81b0deaa7524c2890e0cd28546", "timestamp": 1589231881, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8e5e6618b8b54e8cd2a79e534fc46d34", "timestamp": 1589232181, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a32daeae7274af9911eb51726b11e329", "timestamp": 1589232481, "rssi": -39, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cd081a7805ebd654ade6c0efd73b88a9", "timestamp": 1589232781, "rssi": -70, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6dfc63dae2ec084cc969becb42bd6da9", "timestamp": 1589233081, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "427aa8f38e65a20461d5f925a153a822", "timestamp": 1589233381, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "43c9a4bba31d434c60930d30945cb45d", "timestamp": 1589233681, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1967f612f8f4d061c19feed4cf794374", "timestamp": 1589233981, "rssi": -18, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ed54507d9dfece2600131d363a53ae8b", "timestamp": 1589234281, "rssi": -41, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3eb969eb70243c5ec879797b75cc1ced", "timestamp": 1589234581, "rssi": -93, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f290919d854eb2d645aa3bf3de266c16", "timestamp": 1589234881, "rssi": -73, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ea88e0cb6d7bc86958705847c06096c7", "timestamp": 1589235181, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "83ab6d21777a7205d94832b4facf4166", "timestamp": 1589235481, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b97fcf821debed5df1fd4696d7475cee", "timestamp": 1589235781, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1079dc27361845a591c20f7bcb79f58d", "timestamp": 1589236081, "rssi": -45, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b6deda337e7b71d49a4af17b9d0b592c", "timestamp": 1589236381, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "04c9c8e2db811df7a1b17e2567e00036", "timestamp": 1589236681, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c93524c8d72351aab06bf97c6f766a66", "timestamp": 1589236981, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "913eab33d3837e2a5977e64194ec006c", "timestamp": 1589237281, "rssi": -59, "geohash": "81d58d1ff5"}, {"ephemeral_id": "92a5f7e6061a876e41fb9d1bd16033a5", "timestamp": 1589237581, "rssi": -80, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1ce40a0c971477cba66e86eafcf69d7a", "timestamp": 1589237881, "rssi": -24, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dcc63e6316314e2187a3891f84e0c8aa", "timestamp": 1589238181, "rssi": -99, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a703b0a1dd7ff67be380220720823295", "timestamp": 1589238481, "rssi": -21, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8972d1ad1f17085601a4e9b521563ec2", "timestamp": 1589238781, "rssi": -110, "geohash": "81d58d1ff5"}, {"ephemeral_id": "df9b998852304fb031de9e864b8dd54f", "timestamp": 1589239081, "rssi": -11, "geohash": "81d58d1ff5"}, {"ephemeral_id": "33494abcbab6b7c0e052b66d8fdc6023", "timestamp": 1589239381, "rssi": -103, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dcc954e9ace29d323e2565f29572dc13", "timestamp": 1589239681, "rssi": -39, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1b159aa6bb99d364873d567ca8d85691", "timestamp": 1589239981, "rssi": -69, "geohash": "81d58d1ff5"}, {"ephemeral_id": "22d6558ac7db2bb2fc7cdc49fa639054", "timestamp": 1589240281, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fe496c3e07f8fa7dd8dbd72d9181b6b3", "timestamp": 1589240581, "rssi": -58, "geohash": "81d58d1ff5"}, {"ephemeral_id": "57c9953b01db442cc03887decbcc0f93", "timestamp": 1589240881, "rssi": -11, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ae5330fa633a52c25144f19556d37645", "timestamp": 1589241181, "rssi": -85, "geohash": "81d58d1ff5"}, {"ephemeral_id": "41aa4acbf3183a3bbcf29e804b43887e", "timestamp": 1589241481, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4f97db6cf995ca0fc0852498c3090311", "timestamp": 1589241781, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7d36354a6bc02dbf7e2c2e21bfe0365d", "timestamp": 1589242081, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4a5cc41f6030e4a7fcdeeb937ae8b44b", "timestamp": 1589242381, "rssi": -105, "geohash": "81d58d1ff5"}, {"ephemeral_id": "136186ce736c2a7189b69387d7795965", "timestamp": 1589242681, "rssi": -30, "geohash": "81d58d1ff5"}, {"ephemeral_id": "85da5befb82623fed114134017df8756", "timestamp": 1589242981, "rssi": -109, "geohash": "81d58d1ff5"}, {"ephemeral_id": "43ced3165f9f35659547bbe8c1c64891", "timestamp": 1589243281, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fa409a0669f32f13f6c295359b097274", "timestamp": 1589243581, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "40b6dff30d4aafac5a33f3b39d3d55e5", "timestamp": 1589243881, "rssi": -98, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b61e6569e7134851650b70c555fa9944", "timestamp": 1589244181, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a53990ea32b3ff5873120741e2ea47d5", "timestamp": 1589244481, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3f3b19e3ae98c38f49e1cdcb1589af2b", "timestamp": 1589244781, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fdf73f4c0fb50ecc243b5e4fe925f931", "timestamp": 1589245081, "rssi": -37, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dd658138217ed8497472ca7305d1cc37", "timestamp": 1589245381, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2c7f71b72ff1a0feb2f23c257d78a3d0", "timestamp": 1589245681, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "22988ab02f4c45cb1226db0d060b3f61", "timestamp": 1589245981, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "af5b8da591df2863383ee76921ad6e17", "timestamp": 1589246281, "rssi": -24, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c25608f8e4c1599f3894bb96abcc1199", "timestamp": 1589246581, "rssi": -88, "geohash": "81d58d1ff5"}, {"ephemeral_id": "35b1784a38b4081eb7d2c2d1771ce493", "timestamp": 1589246881, "rssi": -35, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f7c49892c40ee618d0c8c56c5732e51c", "timestamp": 1589247181, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e7eaed34df591147f445da53c58f314c", "timestamp": 1589247481, "rssi": -85, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3a4e7b11a6e55d9c221b5349b819f83b", "timestamp": 1589247781, "rssi": -80, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5c30bd711115baa23c4cec12c8836dd8", "timestamp": 1589248081, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5dc0fddc8aa084531b644c771043355e", "timestamp": 1589248381, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "56146687c9dbfe4e7b84b4d7fa29ad7b", "timestamp": 1589248681, "rssi": -19, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3537bb275af1f062a4d4e93589bcd054", "timestamp": 1589248981, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "077010447b46a2cb28e539563b6c05cb", "timestamp": 1589249281, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5fd787321755114af5eb110a8a9f2a10", "timestamp": 1589249581, "rssi": -98, "geohash": "81d58d1ff5"}, {"ephemeral_id": "19b33e0f6ddbb9eb3ac3c04b4f4ef1db", "timestamp": 1589249881, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "34f32cc8e0a4566cba576a1c4db7359d", "timestamp": 1589250181, "rssi": -105, "geohash": "81d58d1ff5"}, {"ephemeral_id": "27785a4da3ec388c3d06b802907419ee", "timestamp": 1589250481, "rssi": -53, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6aea9e5a2bcb2c6826aec56f2d637cb9", "timestamp": 1589250781, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e56133f8b5f4baefc60f9d22523ddceb", "timestamp": 1589251081, "rssi": -98, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bd7e752a9cab7d4216e0f32ff3ad83c9", "timestamp": 1589251381, "rssi": -119, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5381b52e509c4fad332a72c33170a9c7", "timestamp": 1589251681, "rssi": -60, "geohash": "81d58d1ff5"}, {"ephemeral_id": "18c59b60320766dcb4111e665c1d8880", "timestamp": 1589251981, "rssi": -84, "geohash": "81d58d1ff5"}, {"ephemeral_id": "831f134b7f4b0105357086f0fd89c179", "timestamp": 1589252281, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "92127ec65fbcfe48ff14ef158f67766c", "timestamp": 1589252581, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a395b8eb6fb18c038269bec08b6cf611", "timestamp": 1589252881, "rssi": -98, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3c4439f578093baffee9d8d485847cb5", "timestamp": 1589253181, "rssi": -61, "geohash": "81d58d1ff5"}, {"ephemeral_id": "54ce87029e3a37e83da65f2bdf32fb71", "timestamp": 1589253481, "rssi": -32, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ad79459f10c3f2d5f75615d76c796c46", "timestamp": 1589253781, "rssi": -105, "geohash": "81d58d1ff5"}, {"ephemeral_id": "341741bc9279ca5b558b29348a35dafd", "timestamp": 1589254081, "rssi": -18, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ba76ce10a58fff64721acbef55ecfe6a", "timestamp": 1589254381, "rssi": -103, "geohash": "81d58d1ff5"}, {"ephemeral_id": "32971b264d273058ef8607e70e8047c2", "timestamp": 1589254681, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3eceaaefd87e42349948cb7cf4971489", "timestamp": 1589254981, "rssi": -43, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2552609e77c50c8b70c03825417f5932", "timestamp": 1589255281, "rssi": -82, "geohash": "81d58d1ff5"}, {"ephemeral_id": "981c0c0e5a5106109aa7eb4ecea22690", "timestamp": 1589255581, "rssi": -111, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2c63540b777fea53e0ab020db9dc2369", "timestamp": 1589255881, "rssi": -68, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ea1f42073bddf609ca4493050dfed03a", "timestamp": 1589256181, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e25da2e16e656b225bb0c188961e8685", "timestamp": 1589256481, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5d0ee5bba08c716238787dbbe146868e", "timestamp": 1589256781, "rssi": -49, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f561f2a45dabedc5a597499542ddac8c", "timestamp": 1589257081, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "702bd0b34527cc9b859f3b1fc7d5c16f", "timestamp": 1589257381, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6b1945d5fcaeb7400b96876d312a344f", "timestamp": 1589257681, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "20ca1eed5ef856ba3f7ec422e0e28d17", "timestamp": 1589257981, "rssi": -15, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c2cb9ee1783540eb831c3cc5be86b6f0", "timestamp": 1589258281, "rssi": -52, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e1732af3067935c83fefe208d400150d", "timestamp": 1589258581, "rssi": -30, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b45be97109f2b234dafc47cccd70ee23", "timestamp": 1589258881, "rssi": -5, "geohash": "81d58d1ff5"}, {"ephemeral_id": "57abc0edb016a1934c2f033af96acbc9", "timestamp": 1589259181, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fddcbd7070db0319d29b68c9492778fc", "timestamp": 1589259481, "rssi": -20, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e4cef9dd6002ab57ae64884d4c6726f4", "timestamp": 1589259781, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0dea972b0718bf1c66c26798cde07d25", "timestamp": 1589260081, "rssi": -4, "geohash": "81d58d1ff5"}, {"ephemeral_id": "49a64141849a7b2f889fdf2f7a08cb15", "timestamp": 1589260381, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ad4f5f9ba888fc3e6cc510d7342b6d6a", "timestamp": 1589260681, "rssi": -93, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4aedb2e08c5a753ba7bbbe7f703620c0", "timestamp": 1589260981, "rssi": -69, "geohash": "81d58d1ff5"}, {"ephemeral_id": "06b991fe7e2ec1cc26c704c4ec6eebf1", "timestamp": 1589261281, "rssi": -53, "geohash": "81d58d1ff5"}, {"ephemeral_id": "155ec476a8618ecaa3b782eefbe6607d", "timestamp": 1589261581, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0616953224c8ec570cc5b2b61f139bc5", "timestamp": 1589261881, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d420bb2ee18c4dc9ed399ec48a915895", "timestamp": 1589262181, "rssi": -58, "geohash": "81d58d1ff5"}, {"ephemeral_id": "02b82a1bc32f91ff805cf5ed98ca11bd", "timestamp": 1589262481, "rssi": -38, "geohash": "81d58d1ff5"}, {"ephemeral_id": "11ad64c1c575b57d24014d4cba764b5a", "timestamp": 1589262781, "rssi": -81, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a3154fb502d5a9cc05d934bc08ba0233", "timestamp": 1589263081, "rssi": -119, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e30e8e79717cde2473f3766ac44c3385", "timestamp": 1589263381, "rssi": -19, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1b827136fb615ec645699f59996fa0ee", "timestamp": 1589263681, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "06339adcd029f5f4af32057e319a3deb", "timestamp": 1589263981, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e10f88f19797854ec188b42fee26147f", "timestamp": 1589264281, "rssi": -38, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9fcecac700bf6a71b6a172efa1bb627b", "timestamp": 1589264581, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4cc32bfa092361506d088e8b93b5092b", "timestamp": 1589264881, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "22ea1be224c682ee6928fda9d104da26", "timestamp": 1589265181, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d3f03d2b863a91530b69e2b52d2daa9c", "timestamp": 1589265481, "rssi": -105, "geohash": "81d58d1ff5"}, {"ephemeral_id": "25e0302d5d3c4965161558ca914f0666", "timestamp": 1589265781, "rssi": -1, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4a7983745eb014f1ff80ff0db7114f6b", "timestamp": 1589266081, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "73a660b95f9c83abe70e29d934d5884a", "timestamp": 1589266381, "rssi": -76, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4711c05868b875a5949c0e8a6a0b4f22", "timestamp": 1589266681, "rssi": -55, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d49c8d6d79c577785d4fbf41773ce9e0", "timestamp": 1589266981, "rssi": -1, "geohash": "81d58d1ff5"}, {"ephemeral_id": "55b591888de0f38b91787e39102173bd", "timestamp": 1589267281, "rssi": -58, "geohash": "81d58d1ff5"}, {"ephemeral_id": "83db29c5f158df5d0e7a727328f28e57", "timestamp": 1589267581, "rssi": -68, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a420a7b38eea913b04feeb40b8282ae9", "timestamp": 1589267881, "rssi": -80, "geohash": "81d58d1ff5"}, {"ephemeral_id": "626980185d3065b9f5850912d26706b2", "timestamp": 1589268181, "rssi": -94, "geohash": "81d58d1ff5"}, {"ephemeral_id": "29b71ae2f355b913987c6e9d923c0865", "timestamp": 1589268481, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8fa9198eb026e19634cb9c0b1db6bf23", "timestamp": 1589268781, "rssi": -70, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dcf88d8be791b45d6a9a05c82db86b9b", "timestamp": 1589269081, "rssi": -39, "geohash": "81d58d1ff5"}, {"ephemeral_id": "953e0043cfad85dcbb0a11f4c53a8c4a", "timestamp": 1589269381, "rssi": -76, "geohash": "81d58d1ff5"}, {"ephemeral_id": "605f4786882f10a4cf46174238d23219", "timestamp": 1589269681, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "15db032eed0edbfd24c460855858a867", "timestamp": 1589269981, "rssi": -112, "geohash": "81d58d1ff5"}, {"ephemeral_id": "48b30f9678cae776513e08e4f33ca73a", "timestamp": 1589270281, "rssi": -79, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ddb7c16d6e8e916e543d015711e05284", "timestamp": 1589270581, "rssi": -57, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9007dcc9026cf814fb7d09d9380da384", "timestamp": 1589270881, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "284c5599339f0a9040e74017898cf570", "timestamp": 1589271181, "rssi": -3, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6a74b0c1e761d43c5b62173b607184ae", "timestamp": 1589271481, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "31bbdb5cf1e9f7466635e8fbc9e563da", "timestamp": 1589271781, "rssi": -22, "geohash": "81d58d1ff5"}, {"ephemeral_id": "78a46003ed929d864abd2e74214a0976", "timestamp": 1589272081, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "59445ee33c33dec6a885ea4ca1197717", "timestamp": 1589272381, "rssi": -22, "geohash": "81d58d1ff5"}, {"ephemeral_id": "66f0da08f4807e1930d9d2668a1d672a", "timestamp": 1589272681, "rssi": -55, "geohash": "81d58d1ff5"}, {"ephemeral_id": "77a5b2721649f840732ca67e302d15d2", "timestamp": 1589272981, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ebbb2b7bafb07185f3a43c527073a9c2", "timestamp": 1589273281, "rssi": -76, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2c60a41686b1826428c2b2a065e79bbe", "timestamp": 1589273581, "rssi": -82, "geohash": "81d58d1ff5"}, {"ephemeral_id": "78bbc49c57499ed016e00e5cc9197daf", "timestamp": 1589273881, "rssi": -41, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b118262da77cd7139bf4af340e3dc002", "timestamp": 1589274181, "rssi": -91, "geohash": "81d58d1ff5"}, {"ephemeral_id": "924843877964c001a6cb3fd7f2d788f8", "timestamp": 1589274481, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4b33ebe183565306c67bfaabd0018c5d", "timestamp": 1589274781, "rssi": -119, "geohash": "81d58d1ff5"}, {"ephemeral_id": "736e50983da36df60defe845ba92e0f4", "timestamp": 1589275081, "rssi": -40, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9d5f6423b8cc827ca63856f4ecdf9870", "timestamp": 1589275381, "rssi": -14, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0748480fb9a0e5e7b2e880c8beb03652", "timestamp": 1589275681, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8ec156032bbe0a9035fddd6c066b6494", "timestamp": 1589275981, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "33c98b7cf65bb4a13dd860a7be0ac1b3", "timestamp": 1589276281, "rssi": -55, "geohash": "81d58d1ff5"}, {"ephemeral_id": "70f9da6c7953979877304773c476d921", "timestamp": 1589276581, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b9cf9ca8b21bea4c904577fe18541656", "timestamp": 1589276881, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d6d13b3b7ad2de8c701aeecf977a48fb", "timestamp": 1589277181, "rssi": -4, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2412bd27ea74868faf38bfd6ff21c63e", "timestamp": 1589277481, "rssi": -20, "geohash": "81d58d1ff5"}, {"ephemeral_id": "193c27707e2ebbd5813edb0897dcaa32", "timestamp": 1589277781, "rssi": -91, "geohash": "81d58d1ff5"}, {"ephemeral_id": "67db78431ca8fd1af9ce7f2046119e8b", "timestamp": 1589278081, "rssi": -55, "geohash": "81d58d1ff5"}, {"ephemeral_id": "edd171f1fd3ce07e5edc5136132ad315", "timestamp": 1589278381, "rssi": -78, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dcb5faa91dd07567ec2b44ea5bdd4c55", "timestamp": 1589278681, "rssi": -12, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5801636050e5a8d75dcf02325544afe2", "timestamp": 1589278981, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "303884791e1977b9c94f0f10e597ae0d", "timestamp": 1589279281, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c2f880ef77e8b1279a66712d7b62ed93", "timestamp": 1589279581, "rssi": -3, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dd6de050b6d72dcf298c069f242d9b75", "timestamp": 1589279881, "rssi": -87, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3d8aaadae7808fc9659deb8b10450715", "timestamp": 1589280181, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "178d0bc0bc976797ca606440020837c6", "timestamp": 1589280481, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "356984cfdfeb9247fcd50e44e1eae5df", "timestamp": 1589280781, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2069650ed17e064b7b045a100bc034af", "timestamp": 1589281081, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "eb45297c8a370cb6ddd3343c9eba510b", "timestamp": 1589281381, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8bf82d27c02899f9965f744f4f34ecf9", "timestamp": 1589281681, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6305fbce644c465e45ab969e598a18f8", "timestamp": 1589281981, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8522e2c9e65991faed59d40f7332d651", "timestamp": 1589282281, "rssi": -59, "geohash": "81d58d1ff5"}, {"ephemeral_id": "50f77ab1d6160e671a94567cd11bb480", "timestamp": 1589282581, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3d6683b9d059ceb052ab9c210d96eb73", "timestamp": 1589282881, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f27f640134c63b7375e857b8c62562a0", "timestamp": 1589283181, "rssi": -78, "geohash": "81d58d1ff5"}, {"ephemeral_id": "feadf527adeffc591aa026277f205232", "timestamp": 1589283481, "rssi": -57, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c88411d282f640cbdbeedfa1da51d1a0", "timestamp": 1589283781, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e3bf7c035067ef2bbd9f1c2d8a194241", "timestamp": 1589284081, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "eb72ad0547b4d8749119c368be28ca27", "timestamp": 1589284381, "rssi": -43, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b116d21988c90a44a2a33e32bf73768f", "timestamp": 1589284681, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "06327257fe819bb68a577b468b6b5e0c", "timestamp": 1589284981, "rssi": -5, "geohash": "81d58d1ff5"}, {"ephemeral_id": "adc50b0fc01e4ba6608fca665712cb2c", "timestamp": 1589285281, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "22d2c8584d7af119f6141cd189238259", "timestamp": 1589285581, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b30f006d69efe593d835988a6ed5e55e", "timestamp": 1589285881, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "456705ed69efc3903c63d70b8c6e5e24", "timestamp": 1589286181, "rssi": -56, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a4197832f169f1e3b41c68d094a21023", "timestamp": 1589286481, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2ea4eccc1540890341ec278c3c413490", "timestamp": 1589286781, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a8e2223335f90a146497dbde484606a1", "timestamp": 1589287081, "rssi": -6, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1ebb32e0e1f6facabaf001aaffb82377", "timestamp": 1589287381, "rssi": -66, "geohash": "81d58d1ff5"}, {"ephemeral_id": "38ff7314187389ceca03b975e2d0f405", "timestamp": 1589287681, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dfcb74670baef2fba20d7fd8922e4c35", "timestamp": 1589287981, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "69a6d10f3bf14a779d05143923bf3b31", "timestamp": 1589288281, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "83926f1bef525a9cfc15c54470465186", "timestamp": 1589288581, "rssi": -24, "geohash": "81d58d1ff5"}, {"ephemeral_id": "08b87e568e26e292a6d630829deefce4", "timestamp": 1589288881, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f3151126b2af4f50e4ee56e659e3e0b0", "timestamp": 1589289181, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7d118eafa194f5d658c59bf97271e543", "timestamp": 1589289481, "rssi": -58, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c05d6726f6ee2af7a15ea3837388fb48", "timestamp": 1589289781, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0027a5b30eb4e7b8d6c0a0011106ed34", "timestamp": 1589290081, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "16c5164a41fbd6a0682fa70ec9e4c9cb", "timestamp": 1589290381, "rssi": -62, "geohash": "81d58d1ff5"}, {"ephemeral_id": "46aa2bd5d6e8c167c9ae7ce052f68b26", "timestamp": 1589290681, "rssi": -15, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b988ac47cb4e11a13cf5e0f65f89361c", "timestamp": 1589290981, "rssi": -14, "geohash": "81d58d1ff5"}, {"ephemeral_id": "716c97d555489befe5a01689b6c72da7", "timestamp": 1589291281, "rssi": -82, "geohash": "81d58d1ff5"}, {"ephemeral_id": "037bf8e4b8015eebb646ff812b25d2c5", "timestamp": 1589291581, "rssi": -117, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fa237e3de973c24f049d5f61397dd642", "timestamp": 1589291881, "rssi": -62, "geohash": "81d58d1ff5"}, {"ephemeral_id": "80d3448110980247d1f66bebe0167c7c", "timestamp": 1589292181, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "869ea8d65630c6affb3c70e876903362", "timestamp": 1589292481, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "68f3140b43fd2fa70a39a818f4f07e9b", "timestamp": 1589292781, "rssi": -73, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8c5d2c9b6c1d8a66ec9244d865b75f4b", "timestamp": 1589293081, "rssi": -2, "geohash": "81d58d1ff5"}, {"ephemeral_id": "80af16fafc5ec55d99fb211a37eb1ad0", "timestamp": 1589293381, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "476863e03ef560fe629db0fd1b398800", "timestamp": 1589293681, "rssi": -5, "geohash": "81d58d1ff5"}, {"ephemeral_id": "afb0fd29a60203c3bfaf27763e8e79d2", "timestamp": 1589293981, "rssi": -15, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7be093077289f604ae41447bf41c8099", "timestamp": 1589294281, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5bba8586ecb38d756d03ca85106b3a19", "timestamp": 1589294581, "rssi": -15, "geohash": "81d58d1ff5"}, {"ephemeral_id": "baa121f4cb1c77121d317d406a06a48c", "timestamp": 1589294881, "rssi": -99, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3e52d9a6fbf6799f76f67902c43e9411", "timestamp": 1589295181, "rssi": -93, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b4b2e6c996889840e4877bb083e5cf06", "timestamp": 1589295481, "rssi": -117, "geohash": "81d58d1ff5"}, {"ephemeral_id": "01fe636bb6d3d27bd2043e53f253acf3", "timestamp": 1589295781, "rssi": -1, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d6bf6d8ded73e9f645e69a9566d5ffcc", "timestamp": 1589296081, "rssi": -76, "geohash": "81d58d1ff5"}, {"ephemeral_id": "13739b2b5c5518b7dfa06fc79041a2d2", "timestamp": 1589296381, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5acb70c9b6f65c8ab6656937036ed9ab", "timestamp": 1589296681, "rssi": -15, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d75d5bcad812a64e731c2bab23ba09ff", "timestamp": 1589296981, "rssi": -49, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e4f88dea37472036af267ba17a7edf0a", "timestamp": 1589297281, "rssi": -15, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5b802ca018d1da3f10e2ce71e2835d38", "timestamp": 1589297581, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "56f16b961f4b118d2af1842b1dc5e3cc", "timestamp": 1589297881, "rssi": -30, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b3f7be9a1978fb3aec9da54b052e69dc", "timestamp": 1589298181, "rssi": -109, "geohash": "81d58d1ff5"}, {"ephemeral_id": "17319df563fd42892d4effc845ddd147", "timestamp": 1589298481, "rssi": -12, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d258c60f4aefd9e4bc5709cf0aa99055", "timestamp": 1589298781, "rssi": -98, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7bc3fd79612f0510d6939923f4e4ea86", "timestamp": 1589299081, "rssi": -115, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0c30dc9bc25d8f0d08a6c2f051afd3fb", "timestamp": 1589299381, "rssi": -35, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4cb57a6bb6ff0fa7fc0190a9e794672c", "timestamp": 1589299681, "rssi": -98, "geohash": "81d58d1ff5"}, {"ephemeral_id": "38982dc2b206ca0206212c9381d916c2", "timestamp": 1589299981, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ec995d231a3cf092434053e0d092a940", "timestamp": 1589300281, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1999185d72d866c153c2d14e4aa30551", "timestamp": 1589300581, "rssi": -109, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5e1ace403f28f947332030304a4e5e0d", "timestamp": 1589300881, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2b11ae4b4ac00c26aaf5dc5a14884ee7", "timestamp": 1589301181, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "29769bcf253f8d46bd30a51dadb096ca", "timestamp": 1589301481, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1bb69daf2e5178d78105b0c70ad117fd", "timestamp": 1589301781, "rssi": -87, "geohash": "81d58d1ff5"}, {"ephemeral_id": "377c12a0ea4a28bfc7595d2595d0a690", "timestamp": 1589302081, "rssi": -72, "geohash": "81d58d1ff5"}, {"ephemeral_id": "35fa225e101c5bdd503b568ca4b93613", "timestamp": 1589302381, "rssi": -38, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ce0efcb353407404e527f557be76965e", "timestamp": 1589302681, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f4a98dcf93d8b6daab5d3b6a33691073", "timestamp": 1589302981, "rssi": -55, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6ea486e55b8f335e08d904d938c6f994", "timestamp": 1589303281, "rssi": -57, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7211d7e947364cba9b2e36e087fc09cc", "timestamp": 1589303581, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0e3545bccd10759a81f0bb7de4226f58", "timestamp": 1589303881, "rssi": -34, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2b7501e7f9277a006c6fc965622fb120", "timestamp": 1589304181, "rssi": -57, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b034ce5d97a4e50f19cf343db1713ece", "timestamp": 1589304481, "rssi": -85, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6ac676c277f126cdf3155b7418d1f13a", "timestamp": 1589304781, "rssi": -35, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e29979097f67eec4096edd62b2320245", "timestamp": 1589305081, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6542b1b29e41f08848e5fa0a583730b7", "timestamp": 1589305381, "rssi": -32, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e5c80ed766f7bdf2032da6b1841ebe44", "timestamp": 1589305681, "rssi": -87, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6c63722fb07c20898ceb7205ed3470cd", "timestamp": 1589305981, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "37ea91214c14c768eaed8639968cea87", "timestamp": 1589306281, "rssi": -91, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8b6af15ffec39d81c297ef7c1030df0c", "timestamp": 1589306581, "rssi": -35, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1b04ed61a2d9fa5a4b24bc216087c7cc", "timestamp": 1589306881, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ba6be9401ee2748b317a2ffcac621c39", "timestamp": 1589307181, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ca8c031c3d8ebc10b2d62955e05d9b01", "timestamp": 1589307481, "rssi": -60, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4572936042665e8237b87bfe7648c65e", "timestamp": 1589307781, "rssi": -85, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d6931267ba2f7212676e291b8cc24ce3", "timestamp": 1589308081, "rssi": -112, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a93636eb10dff9a97db9339bbf0e394e", "timestamp": 1589308381, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "22c51d418798bbd028c7c2e862dddf26", "timestamp": 1589308681, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b3294f03684c70365d608c958e163f1a", "timestamp": 1589308981, "rssi": -109, "geohash": "81d58d1ff5"}, {"ephemeral_id": "38ca52a409097e4377bdfad70d7e3b7e", "timestamp": 1589309281, "rssi": -68, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cb2c9b8a6e813341045adaa328eb8eb0", "timestamp": 1589309581, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0e117b4947b74f3de0147cf905883c37", "timestamp": 1589309881, "rssi": -83, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cc085a04a38732c5c5bfba8de81291e9", "timestamp": 1589310181, "rssi": -118, "geohash": "81d58d1ff5"}, {"ephemeral_id": "79a280091207ca247a9581d935ddc85d", "timestamp": 1589310481, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2f108eb7be614127f6bc94a197c82425", "timestamp": 1589310781, "rssi": -76, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f51607a5102fdbf0b908360ced2b3b69", "timestamp": 1589311081, "rssi": -15, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3b36df4f20deebe0b10b97c51e7e49d2", "timestamp": 1589311381, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "89062058b3b48e228e258f93b5c196bb", "timestamp": 1589311681, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "01f9c502d0680b3f25458dba048cb91d", "timestamp": 1589311981, "rssi": -105, "geohash": "81d58d1ff5"}, {"ephemeral_id": "eb86d08debe53fa74c953a94e354d771", "timestamp": 1589312281, "rssi": -47, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2de734903a600f4e6c8d793b41d91aa2", "timestamp": 1589312581, "rssi": -57, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b637714416b2dbcdcc9b50db0a1f3b63", "timestamp": 1589312881, "rssi": -96, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8220f44cdeeed053c83405f198c882de", "timestamp": 1589313181, "rssi": -80, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6c6e3de54a76faabc585228e4dcdaa3b", "timestamp": 1589313481, "rssi": -118, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8762d84a543f2ffd83f6def5ce686f85", "timestamp": 1589313781, "rssi": -109, "geohash": "81d58d1ff5"}, {"ephemeral_id": "758f66e1d76fbd2ac9e43a53fd96b887", "timestamp": 1589314081, "rssi": -116, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e409db5c62fad01a0b0b21810c7df2d4", "timestamp": 1589314381, "rssi": -60, "geohash": "81d58d1ff5"}, {"ephemeral_id": "86e0c0d34822e0b8bff8c265d71b52e4", "timestamp": 1589314681, "rssi": -66, "geohash": "81d58d1ff5"}, {"ephemeral_id": "12ca73e63925227931aa21d139e1cb4d", "timestamp": 1589314981, "rssi": -13, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0330185d6b1ed148af9ecb500ce14c33", "timestamp": 1589315281, "rssi": -47, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fd6fcce4825b07c9da88e7f46fcb349e", "timestamp": 1589315581, "rssi": -40, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ec1ea71122123861104602eda551caf1", "timestamp": 1589315881, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "36ea7a43e4891885b1e2de6c9cd44e44", "timestamp": 1589316181, "rssi": -81, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1660dce543264fa54e6614f461158148", "timestamp": 1589316481, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6561ce0ad313cb54bfa280fdaf587cb0", "timestamp": 1589316781, "rssi": -105, "geohash": "81d58d1ff5"}, {"ephemeral_id": "37f69df844c9027718235c2094387007", "timestamp": 1589317081, "rssi": -37, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f758c1e4e54410903c486adc77f537d9", "timestamp": 1589317381, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9d706e8f438b0067ad02ecbb01f7e79d", "timestamp": 1589317681, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "335c9aa63b705316db0728e12cb8612c", "timestamp": 1589317981, "rssi": -50, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7e8a24e90414e3f7ecdbff9d661eaf82", "timestamp": 1589318281, "rssi": -50, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0fd97b686c6c1f5194863f9a12c6b1e0", "timestamp": 1589318581, "rssi": -93, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c8bb8d871cfa6a3f42f8d771a5b1ed93", "timestamp": 1589318881, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "810b611895f578dd6873ecf437b737b4", "timestamp": 1589319181, "rssi": -20, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3dba5648bae65dd1989e446ea5cc6fc4", "timestamp": 1589319481, "rssi": -11, "geohash": "81d58d1ff5"}, {"ephemeral_id": "973a679e6abcebe41da763d3364a0f1e", "timestamp": 1589319781, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "71a67e89776fc915711b76aed70858ff", "timestamp": 1589320081, "rssi": -88, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3bfc3b7b1c5e498ca299b98763f0b3af", "timestamp": 1589320381, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "da8bf64b21e28fb0c024ff59701726d5", "timestamp": 1589320681, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "74d5eadc9452fd40023863e7517bf719", "timestamp": 1589320981, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5d048be0aa4515c460deb8f0dc76aed4", "timestamp": 1589321281, "rssi": -91, "geohash": "81d58d1ff5"}, {"ephemeral_id": "16e31d48de0674e6fca624e0ded71506", "timestamp": 1589321581, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ac42e5de9a9e94aecc08d82edaeae102", "timestamp": 1589321881, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cf11da46fcfa9de4b40ac9c2a4a9b8e7", "timestamp": 1589322181, "rssi": -39, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3f59b63c76f685525289b493d0caff7e", "timestamp": 1589322481, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6ea78160929432341580d1fd4afd36fd", "timestamp": 1589322781, "rssi": -14, "geohash": "81d58d1ff5"}, {"ephemeral_id": "15fac95e40b4e85c9596a9ded1543170", "timestamp": 1589323081, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6a4d7cba96004f180fbaf90fd228d6cf", "timestamp": 1589323381, "rssi": -68, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c3abe70d655484df3a364511302c045f", "timestamp": 1589323681, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ad36b55d65cf6d8a6bda0f131e3bfc8c", "timestamp": 1589323981, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "15019550b2f87585611e62fb7f3a22a6", "timestamp": 1589324281, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bd080a17ddab70fa53dc9b15bc8f5ff4", "timestamp": 1589324581, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e2b65874c2cf62c9ea66cc65064fe8fd", "timestamp": 1589324881, "rssi": -105, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8cbb993a010afe02eb01143987593245", "timestamp": 1589325181, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c6d6d76c1e0ab55acb18009e8bf216d9", "timestamp": 1589325481, "rssi": -106, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d2f11541719a46411d0cbfa9ce8489aa", "timestamp": 1589325781, "rssi": -104, "geohash": "81d58d1ff5"}, {"ephemeral_id": "91338bd3cf5aa2f4bfe499803848ecf0", "timestamp": 1589326081, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f5fbafabe204b91e9a520d665ebad49b", "timestamp": 1589326381, "rssi": -2, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fa60a72d24e410f4f129748eebfc5835", "timestamp": 1589326681, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1d1b168dcb16627e1dd8798f1f47bb66", "timestamp": 1589326981, "rssi": -28, "geohash": "81d58d1ff5"}, {"ephemeral_id": "41ae3050478aac143ba278b9551393fa", "timestamp": 1589327281, "rssi": -62, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d184cc5bfda257edcad42b1baa455493", "timestamp": 1589327581, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "aef7d5fe9a6fb8df5bf3fb093645d130", "timestamp": 1589327881, "rssi": -50, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9284d7bf63b5de1f1a51d6dee5172971", "timestamp": 1589328181, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "be98873b49eb8b839c3a782f2fdcacc3", "timestamp": 1589328481, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "709521d2121bc6de2a3d05b9582acb66", "timestamp": 1589328781, "rssi": -47, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9e9dab2a98171a7f8e202801ada0015e", "timestamp": 1589329081, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c1a12811cebc6eceef5b250c94935e41", "timestamp": 1589329381, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c1b569a848ecdce617d8ba84e98db85f", "timestamp": 1589329681, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2d8adcb94a1f8c1c5db8311cc2b7e803", "timestamp": 1589329981, "rssi": -16, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e841859c93258ac504c045ac218388ad", "timestamp": 1589330281, "rssi": -78, "geohash": "81d58d1ff5"}, {"ephemeral_id": "331b9a2462374528b82c22cd6e12aa91", "timestamp": 1589330581, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "73c57f8b39073a68d884ba1bf7410389", "timestamp": 1589330881, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "76a504c1aaf38e6f6ee6ccd308ec7e5c", "timestamp": 1589331181, "rssi": -112, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0cc68ac806f47bc034385019b1068a59", "timestamp": 1589331481, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bf640b5a8694fec8703f34747e0130a2", "timestamp": 1589331781, "rssi": -80, "geohash": "81d58d1ff5"}, {"ephemeral_id": "80e3c0b4e2c054b7c2532d5fdf868d61", "timestamp": 1589332081, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8645e49482359745a8bcd3a24043df86", "timestamp": 1589332381, "rssi": -85, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1ae43d0c9f0e16c7be3a2301522e9b6b", "timestamp": 1589332681, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "94d23ab9cf40bc43757538c0581289fc", "timestamp": 1589332981, "rssi": -14, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e370de628927534c9826d8a80d7dca90", "timestamp": 1589333281, "rssi": -39, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9c431b8b49c5b52d9f97a5bfc196e522", "timestamp": 1589333581, "rssi": -99, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f14074fa30107457a5b9ac2e043fa93d", "timestamp": 1589333881, "rssi": -38, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0257f17f4ac1ad33f3ad52e86a079db9", "timestamp": 1589334181, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3c390903d0083add4b921311e59a768d", "timestamp": 1589334481, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "35cb24af7534f772f08c1444e16ff64a", "timestamp": 1589334781, "rssi": -85, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b199c1c21c25f3290a2e219de708d68a", "timestamp": 1589335081, "rssi": -4, "geohash": "81d58d1ff5"}, {"ephemeral_id": "05561a421a291268d7a1aca0c379ff71", "timestamp": 1589335381, "rssi": -34, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7679abf598065e5e5dc02daad9f9b624", "timestamp": 1589335681, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8a684e67cf4f583e1d410a2ea36de296", "timestamp": 1589335981, "rssi": -16, "geohash": "81d58d1ff5"}, {"ephemeral_id": "790a468064f53de9aac89c1534575bd7", "timestamp": 1589336281, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b8b90096093e84ce41d9973201f9e450", "timestamp": 1589336581, "rssi": -57, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d200259dd93f9c2f3a442f1d538af423", "timestamp": 1589336881, "rssi": -1, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8182cf922d64cd2145a2835c744880ff", "timestamp": 1589337181, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "44ab91b1253b1bf9bd575765e7e8dfbd", "timestamp": 1589337481, "rssi": -105, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9d66560f4a11682a265a016389bc2392", "timestamp": 1589337781, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1502f659107f075eae588f7bc7b2c546", "timestamp": 1589338081, "rssi": -30, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c10e282b64b64111d1d8d962aad6cef7", "timestamp": 1589338381, "rssi": -39, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b39fda323f7f16aad8e351810e054214", "timestamp": 1589338681, "rssi": -20, "geohash": "81d58d1ff5"}, {"ephemeral_id": "49ec0c5be6a4a2a8bb5d79fabcc7d8c5", "timestamp": 1589338981, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c699458dfdb558fd143f6b64a5836bb2", "timestamp": 1589339281, "rssi": -21, "geohash": "81d58d1ff5"}, {"ephemeral_id": "754238c3cab1e53d843691b9aec3e86e", "timestamp": 1589339581, "rssi": -14, "geohash": "81d58d1ff5"}, {"ephemeral_id": "217d43b250e271dbe20781cb9906445e", "timestamp": 1589339881, "rssi": -41, "geohash": "81d58d1ff5"}, {"ephemeral_id": "59cced15e06512c84f9b520450183597", "timestamp": 1589340181, "rssi": -103, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fe3d89cc18725d03a5d77a7269200425", "timestamp": 1589340481, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3bf884d9271ab22adbcd29dc24136d79", "timestamp": 1589340781, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9a4f7d530e0c049058d6d3209187ba2c", "timestamp": 1589341081, "rssi": -56, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c69a786426d4ade33ab2921a869b1263", "timestamp": 1589341381, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3ce5443cd70570ce6b3a842cf5315121", "timestamp": 1589341681, "rssi": -47, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1d59d3f1e53e89c99e0f6cd532be0434", "timestamp": 1589341981, "rssi": -60, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c78bbaf4a185f8a62f4862a599f28118", "timestamp": 1589342281, "rssi": -62, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c4f515ac5f25a298667061cac0fdafd9", "timestamp": 1589342581, "rssi": -10, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9a7956b4485cd513737d38125e6649ce", "timestamp": 1589342881, "rssi": -28, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fe2c074daa056ef280dfd1de5f68672f", "timestamp": 1589343181, "rssi": -16, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3b378eef5ac25cebe6a9ee56fa3da6e8", "timestamp": 1589343481, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b8e0303f07a92da0566c8e95097a84ba", "timestamp": 1589343781, "rssi": -81, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6144c2baaf25d5614cf3230a563d7583", "timestamp": 1589344081, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f1fcbe8f39510b63c84cc50353f3ae06", "timestamp": 1589344381, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e8dd23f5a71c6a073999d3988c5909cc", "timestamp": 1589344681, "rssi": -53, "geohash": "81d58d1ff5"}, {"ephemeral_id": "081d5730325d01a34eba445a0a25678d", "timestamp": 1589344981, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e79a266acdc8e2ea11ed10aa9dce43da", "timestamp": 1589345281, "rssi": -76, "geohash": "81d58d1ff5"}, {"ephemeral_id": "629b185642d1395198ffb1ac10214b66", "timestamp": 1589345581, "rssi": -45, "geohash": "81d58d1ff5"}, {"ephemeral_id": "886aeb2f19faa31b27f409f1128b3d2d", "timestamp": 1589345881, "rssi": -82, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2a74c22a519de2ba71c76f11a5da536e", "timestamp": 1589346181, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "20760e689b826a4bd4f34f6722c7a587", "timestamp": 1589346481, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1c30c44867a076ab955cbed8b40f04c6", "timestamp": 1589346781, "rssi": -62, "geohash": "81d58d1ff5"}, {"ephemeral_id": "27f9b0ef09626c47ea20de1cba636b05", "timestamp": 1589347081, "rssi": -115, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2068ef34fbfce49858cdd69377fc2624", "timestamp": 1589347381, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8a5ee41ff197be7ffd3a0776691f9417", "timestamp": 1589347681, "rssi": -80, "geohash": "81d58d1ff5"}, {"ephemeral_id": "836bb3290d6a08c87ec98e147681162a", "timestamp": 1589347981, "rssi": -12, "geohash": "81d58d1ff5"}, {"ephemeral_id": "98fa8212d5214f52b8d6d0b04b67f2b7", "timestamp": 1589348281, "rssi": -5, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c7ef7f30a6fde9bab2ebe6ebfb493493", "timestamp": 1589348581, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a9bd78fe205d851a871fcaf60193ca23", "timestamp": 1589348881, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "276d6c195049c81bf6eabbbd33089039", "timestamp": 1589349181, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e9eac8ce90202a7a1a78f3365603d5b2", "timestamp": 1589349481, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f80c29e4d3031198425b7ae22ca1b9e7", "timestamp": 1589349781, "rssi": -72, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d2c06b1f185892b1c63b6f5524149f8d", "timestamp": 1589350081, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7bb4508c80cf48f86d24d49cf281ea8c", "timestamp": 1589350381, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4f2111c4051163535d0fd02185947229", "timestamp": 1589350681, "rssi": -61, "geohash": "81d58d1ff5"}, {"ephemeral_id": "60a68dd316cf3bd75fa310a56172e0d2", "timestamp": 1589350981, "rssi": -109, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a52655cc50a82a6500c135fdde0f5e7a", "timestamp": 1589351281, "rssi": -104, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7438a31d87effb60c5abf21da6432078", "timestamp": 1589351581, "rssi": -34, "geohash": "81d58d1ff5"}, {"ephemeral_id": "45350d067cbf2493be65457f19abafad", "timestamp": 1589351881, "rssi": -53, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6166ff1f135e2dbec9edf2efc02c877a", "timestamp": 1589352181, "rssi": -110, "geohash": "81d58d1ff5"}, {"ephemeral_id": "435867ba327bdafec69e4ff6abf2e76e", "timestamp": 1589352481, "rssi": -11, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4ff795478ef881a02f3a405903b3d3cb", "timestamp": 1589352781, "rssi": -4, "geohash": "81d58d1ff5"}, {"ephemeral_id": "94af98eae6d44216dec89c24bc77ea0a", "timestamp": 1589353081, "rssi": -107, "geohash": "81d58d1ff5"}, {"ephemeral_id": "eae32966e36b26f00ba0ba6f751e412f", "timestamp": 1589353381, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "aa374599215798cba0662273c85312fa", "timestamp": 1589353681, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9a61b57bc8e6c01534f5f55e7ef84965", "timestamp": 1589353981, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3a85c8acd8ed69836d1fa14fba1bbe18", "timestamp": 1589354281, "rssi": -47, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0ea879750cd0b34ef46f00325679437d", "timestamp": 1589354581, "rssi": -83, "geohash": "81d58d1ff5"}, {"ephemeral_id": "80f7cd6580e1562b4dcdc7e2ebf01e19", "timestamp": 1589354881, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "45e8e43defd54cef24cc53e18a38b0cb", "timestamp": 1589355181, "rssi": -103, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1263ae0810ba9cf69ce31d613dca688f", "timestamp": 1589355481, "rssi": -35, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8ec1915753a9c17f248ebfbaa638f845", "timestamp": 1589355781, "rssi": -109, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b5a29e685d7f299692e9d20a23cdf5c7", "timestamp": 1589356081, "rssi": -57, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2874f93cb5feba9fabbd60bc446520a1", "timestamp": 1589356381, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2f2707302657889617565a9a17830d81", "timestamp": 1589356681, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1a1c465e923ffabc9475d084d9d25faa", "timestamp": 1589356981, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a9da2f14d40b22229831571b91c2720c", "timestamp": 1589357281, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "acd98a69b7f339964ecc54a86e709853", "timestamp": 1589357581, "rssi": -14, "geohash": "81d58d1ff5"}, {"ephemeral_id": "22607e089ed4ba1c0c056f7abf66df2f", "timestamp": 1589357881, "rssi": -69, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ba1751ed0b7bad12a418796d71b57e6c", "timestamp": 1589358181, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2f8def82a4742fb321d200f26bfc29f2", "timestamp": 1589358481, "rssi": -38, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f270bd42c206e77b4af48d177d5c8893", "timestamp": 1589358781, "rssi": -39, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b956bde11910a4a53b4972a325c8e649", "timestamp": 1589359081, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "495a79b1da3ae848eb5e2bc1540a13c5", "timestamp": 1589359381, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5ec0f9e1d12c1d81a2a9bf9bc46a6a55", "timestamp": 1589359681, "rssi": -52, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1943aebcff55d8370760aef011f7334e", "timestamp": 1589359981, "rssi": -110, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e11003f896eb5cf920bf4661558171d8", "timestamp": 1589360281, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "868b9d077caff691df0bd6c97bff1f35", "timestamp": 1589360581, "rssi": -58, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b918664ac98e3c56e2bb889adbd84d9d", "timestamp": 1589360881, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3357b8f818243cd64d37250da9a715a3", "timestamp": 1589361181, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0104392f48c9721235d9f7fde027b0d5", "timestamp": 1589361481, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "05040edb6d2e9aa57161ec88ca3b7cd7", "timestamp": 1589361781, "rssi": -60, "geohash": "81d58d1ff5"}, {"ephemeral_id": "adea614a260033755655ad3f9c94b362", "timestamp": 1589362081, "rssi": -11, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a9d28a29541a18fdc92a18cc2e1d1354", "timestamp": 1589362381, "rssi": -43, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4331f4cea43ef37a7f3ea52dbe19b601", "timestamp": 1589362681, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7a56bd9191cfe20f37f3af9446bad00b", "timestamp": 1589362981, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5f17926126e51817a328ec294edf3721", "timestamp": 1589363281, "rssi": -45, "geohash": "81d58d1ff5"}, {"ephemeral_id": "852ed7cc14108d77dd8ba80205e4cab0", "timestamp": 1589363581, "rssi": -24, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cc9d810420614fe379ea7a492bced637", "timestamp": 1589363881, "rssi": -66, "geohash": "81d58d1ff5"}, {"ephemeral_id": "47e3dc91fd5bff8f7abdedc15805d60d", "timestamp": 1589364181, "rssi": -18, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5ec3292d8d1bb0947df75d4b3fbe04db", "timestamp": 1589364481, "rssi": -94, "geohash": "81d58d1ff5"}, {"ephemeral_id": "01452b435687dc0fb3400632f44c92c5", "timestamp": 1589364781, "rssi": -105, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8521d8d79142fc3b8403a2ae5b12dda3", "timestamp": 1589365081, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1623abe14dcc8a908d1134071e35c245", "timestamp": 1589365381, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "242582651ef6adb3c124f59a56c36080", "timestamp": 1589365681, "rssi": -80, "geohash": "81d58d1ff5"}, {"ephemeral_id": "53a6ed2ec89fb12e2c6ff3132c982d88", "timestamp": 1589365981, "rssi": -119, "geohash": "81d58d1ff5"}, {"ephemeral_id": "16ad5a874a1290e5cf84d3d91c9aeef7", "timestamp": 1589366281, "rssi": -45, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f20fd6f8585854fb2d1ca4325a5b087b", "timestamp": 1589366581, "rssi": -78, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6a515d1cefbff25e036c03441a830122", "timestamp": 1589366881, "rssi": -69, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c6011e525af302b303cfc01fe0acf9a7", "timestamp": 1589367181, "rssi": -15, "geohash": "81d58d1ff5"}, {"ephemeral_id": "36721a75bd04c7867006ed1c35d74e65", "timestamp": 1589367481, "rssi": -73, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a830839f60dc5dc518de41091e4a171a", "timestamp": 1589367781, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cb29348db3ea54b2274625ab8014674f", "timestamp": 1589368081, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bade0ccfd88a95369f26fc1879e03899", "timestamp": 1589368381, "rssi": -115, "geohash": "81d58d1ff5"}, {"ephemeral_id": "910b808d8eb2b72feae01102256d252d", "timestamp": 1589368681, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "36509b23f592f2ed039aefa2d3aaeeda", "timestamp": 1589368981, "rssi": -94, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0e35a28afba1fb33f2aeb79d6681337b", "timestamp": 1589369281, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bc86694e642718e7d11877e16978d25b", "timestamp": 1589369581, "rssi": -68, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bc5246c9f0e13a7147c39f461274e387", "timestamp": 1589369881, "rssi": -72, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2218aad5e2eaafd7a09e05696dcc8524", "timestamp": 1589370181, "rssi": -2, "geohash": "81d58d1ff5"}, {"ephemeral_id": "85b2ea4849b8827816973101e35a00f1", "timestamp": 1589370481, "rssi": -5, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d032eeffea6b48f4efc3bffcfd8489db", "timestamp": 1589370781, "rssi": -93, "geohash": "81d58d1ff5"}, {"ephemeral_id": "901698d8fcf73bbdd01abc8b73ada484", "timestamp": 1589371081, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "82937220df3d9d2829af2952dee857ff", "timestamp": 1589371381, "rssi": -115, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1e07da49606fe73913b3ae2ab2ca72ba", "timestamp": 1589371681, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f290c8b05bbd4a1a3df13592cea3a769", "timestamp": 1589371981, "rssi": -110, "geohash": "81d58d1ff5"}, {"ephemeral_id": "56dfd36cf442e715932d9988c973d233", "timestamp": 1589372281, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dd22ea87d19b3e1750fd9f58b5d7fbf2", "timestamp": 1589372581, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "be5011ab0ec40d96d762738db666619a", "timestamp": 1589372881, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d07ba54db47c8c6c3719b961272376cd", "timestamp": 1589373181, "rssi": -57, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ac758b8e7b049e4883126b1017638632", "timestamp": 1589373481, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5b67a5fe3e3eb724e4d95147e8fe3b1b", "timestamp": 1589373781, "rssi": -2, "geohash": "81d58d1ff5"}, {"ephemeral_id": "79cf43797dea8a4adfd766d1ead3daf2", "timestamp": 1589374081, "rssi": -37, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7b527c6ac4e02490b5ce70d8e71ea78a", "timestamp": 1589374381, "rssi": -19, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6c8c7a807c0b98c171f0b1d966902ed8", "timestamp": 1589374681, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "233ad15490264b36765d752f82e8b890", "timestamp": 1589374981, "rssi": -3, "geohash": "81d58d1ff5"}, {"ephemeral_id": "aeb8a3da3c92dfca3050883968803099", "timestamp": 1589375281, "rssi": -35, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2a810933d1bd2a02eb7712e006407de1", "timestamp": 1589375581, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d50ba7c73f2e2708655f20e3eeae6db6", "timestamp": 1589375881, "rssi": -70, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d3a69a01b50d5d54754781485bab8f22", "timestamp": 1589376181, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "83449cd7e020406ef6ca4ffbe4f404b8", "timestamp": 1589376481, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "680db31fea064c0a8e21e373023fedc3", "timestamp": 1589376781, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fe7a53f15b7833e520b26a0f28e0de6b", "timestamp": 1589377081, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "268779343e1112674bd1695ab7b673a8", "timestamp": 1589377381, "rssi": -76, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bdc1786e4ceda4086af079c23bc94174", "timestamp": 1589377681, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "789c785116cedef0d09eed0b32ef16dc", "timestamp": 1589377981, "rssi": -81, "geohash": "81d58d1ff5"}, {"ephemeral_id": "41a2e1bc2d46002176ec67e0a6d95693", "timestamp": 1589378281, "rssi": -59, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8d521b8cfd467a0dfe77d2d36dd47d14", "timestamp": 1589378581, "rssi": -64, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9c159fcdad4bfdc16e6efbbcf679a7b1", "timestamp": 1589378881, "rssi": -62, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f825e5d5a9658b0bad6a0d62413f69df", "timestamp": 1589379181, "rssi": -37, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9b73cba72523643e61177ce1c2d20680", "timestamp": 1589379481, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6fceacf2277fc3eedb115261bd2a4af5", "timestamp": 1589379781, "rssi": -24, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f49cde02856ac6e9f7b86a477720f994", "timestamp": 1589380081, "rssi": -11, "geohash": "81d58d1ff5"}, {"ephemeral_id": "482363c62c33926e0192aa512a428532", "timestamp": 1589380381, "rssi": -22, "geohash": "81d58d1ff5"}, {"ephemeral_id": "718e41fb2348261cd28cf4fd16bd4cc5", "timestamp": 1589380681, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a5d9b5529f282b3fa3c36b08bf14dfc7", "timestamp": 1589380981, "rssi": -7, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4c644e5f99ef0fd5110fe13471540861", "timestamp": 1589381281, "rssi": -93, "geohash": "81d58d1ff5"}, {"ephemeral_id": "10368fdd574f004bbf21188357c98a98", "timestamp": 1589381581, "rssi": -118, "geohash": "81d58d1ff5"}, {"ephemeral_id": "40e4bccf817319e6335216cffb3e21a9", "timestamp": 1589381881, "rssi": -1, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3cd53f8c0d5a02230c45784c26c2929c", "timestamp": 1589382181, "rssi": -104, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a21e6754932bae0e6a732e3c15c28083", "timestamp": 1589382481, "rssi": -43, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a43b73aa1cd91501c3c4c370b3eb3242", "timestamp": 1589382781, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bb1f88eb203f5256718c04b03335dcfc", "timestamp": 1589383081, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "93a06e3189cbb2829204ae197c5bf084", "timestamp": 1589383381, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5879fae7ae08510c1d668f22e4593c37", "timestamp": 1589383681, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0cf0de0f20c0b08853ee48eec795835a", "timestamp": 1589383981, "rssi": -39, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5cb338984cd04928d87eae84264804e2", "timestamp": 1589384281, "rssi": -115, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f3ee488c78546a1cee1e455ad91f7a1e", "timestamp": 1589384581, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4d062c55ef33f035c35d884fe5706855", "timestamp": 1589384881, "rssi": -13, "geohash": "81d58d1ff5"}, {"ephemeral_id": "080ec4017f3050b3ec77a51f9a7e90d2", "timestamp": 1589385181, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a11aa1655cdfc3adb5d80dda9deec4c7", "timestamp": 1589385481, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7c05a5abbae71f940834ab0dfda2788d", "timestamp": 1589385781, "rssi": -119, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cdfa2cdc830aa047b60442982f03df16", "timestamp": 1589386081, "rssi": -110, "geohash": "81d58d1ff5"}, {"ephemeral_id": "20925630afb7d1637b0ed7eec75ad715", "timestamp": 1589386381, "rssi": -112, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d04f90083781588fd4228fecdfb6a4ce", "timestamp": 1589386681, "rssi": -6, "geohash": "81d58d1ff5"}, {"ephemeral_id": "265f6a29799d56ec77da4de26914f2e5", "timestamp": 1589386981, "rssi": -71, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9dccdb37cfe335cf65a700c3ca4abbca", "timestamp": 1589387281, "rssi": -30, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2184c2d7bf7c464b32352daac3908466", "timestamp": 1589387581, "rssi": -119, "geohash": "81d58d1ff5"}, {"ephemeral_id": "206ae3c79c22ce24f486fc12264e6b1e", "timestamp": 1589387881, "rssi": -117, "geohash": "81d58d1ff5"}, {"ephemeral_id": "57bbec4726e0e66c7e41faef20230066", "timestamp": 1589388181, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "56de989a83d660be10e20fc95cb6238c", "timestamp": 1589388481, "rssi": -119, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fd848dc6df7e764ff35a27af40a7ba63", "timestamp": 1589388781, "rssi": -61, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1d5e7550f84baf27252525e6e1844777", "timestamp": 1589389081, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "31d602a34d818dbd10f5e8d260924e7a", "timestamp": 1589389381, "rssi": -117, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cdf30c8ac579ed3e53782a4abf1a3e52", "timestamp": 1589389681, "rssi": -60, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2abbc36df2d0b4fee9bef03e71813a48", "timestamp": 1589389981, "rssi": -59, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5520cd6305d6443bddb061e40971fca2", "timestamp": 1589390281, "rssi": -74, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d06b6172958a56fd59d872e9abeff5b7", "timestamp": 1589390581, "rssi": -6, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4926f5de88897ba2c34dd7007f75c97b", "timestamp": 1589390881, "rssi": -19, "geohash": "81d58d1ff5"}, {"ephemeral_id": "97a2a0d1e946a2575e90510b94b90e88", "timestamp": 1589391181, "rssi": -118, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b6f8d2addb164cb3922f690207367d4e", "timestamp": 1589391481, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bebb5010eed4e292dbc08fe2d23144d0", "timestamp": 1589391781, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7f5261de6d62bae89e568ee026f2e0ee", "timestamp": 1589392081, "rssi": -41, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2f195edd6d2e6fa786512480169bb6e8", "timestamp": 1589392381, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a93e170ed6ab3a5802dfb18629561efe", "timestamp": 1589392681, "rssi": -81, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e2b0b6db213369625df9af6bd3b8cd33", "timestamp": 1589392981, "rssi": -50, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8e4dcab27d6f8dae1561c71d877b6d0d", "timestamp": 1589393281, "rssi": -13, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bd3813371d5f276c86102304b6b9982b", "timestamp": 1589393581, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5cf0575a456e4fdba7e32db5ae8180d1", "timestamp": 1589393881, "rssi": -14, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2e6948111825872db7438dabf7881d0d", "timestamp": 1589394181, "rssi": -20, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8418b43759d6387135f84f55a83a2613", "timestamp": 1589394481, "rssi": -3, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d6f64de3b74d966b01fd4dd662df1303", "timestamp": 1589394781, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "56e69624bc47e37dc2cdfdb4fc90fd82", "timestamp": 1589395081, "rssi": -94, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c5491130df6c9ab910246ef152a501e0", "timestamp": 1589395381, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "76342afa31134a5da3f506f57a7fec08", "timestamp": 1589395681, "rssi": -110, "geohash": "81d58d1ff5"}, {"ephemeral_id": "19a78cf3b7cc76aa463593ea79f346a7", "timestamp": 1589395981, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "16a948d25245dbe7da11281f440e0af9", "timestamp": 1589396281, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "451549d4521baeae382759fc8bf7640a", "timestamp": 1589396581, "rssi": -116, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2d60c4a2574f18701f8502d435cffe65", "timestamp": 1589396881, "rssi": -99, "geohash": "81d58d1ff5"}, {"ephemeral_id": "25b7b00471d3144a262f4fd9541f7e60", "timestamp": 1589397181, "rssi": -118, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5db38f85120042052ae324d08cc64d1a", "timestamp": 1589397481, "rssi": -22, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c3320e4edd7cbe788007c7854a5feebf", "timestamp": 1589397781, "rssi": -87, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e4f356b3fb635832c8ef13706ef5469c", "timestamp": 1589398081, "rssi": -1, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3e8886f5f845822f7dea2a0a49be5b4f", "timestamp": 1589398381, "rssi": -64, "geohash": "81d58d1ff5"}, {"ephemeral_id": "95139e4ea1246212486686e584bc824a", "timestamp": 1589398681, "rssi": -16, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9b8e25f4cab711cbcfbfe43cafc74803", "timestamp": 1589398981, "rssi": -30, "geohash": "81d58d1ff5"}, {"ephemeral_id": "aa223d74dcc266636914007780d715e4", "timestamp": 1589399281, "rssi": -74, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8158fb1d8891db21e2192fe0c97befe0", "timestamp": 1589399581, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1e139400278008e63da8d53b3119f476", "timestamp": 1589399881, "rssi": -66, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7d5908743a57ef4df19047670a2a5672", "timestamp": 1589400181, "rssi": -73, "geohash": "81d58d1ff5"}, {"ephemeral_id": "08f4d4d01420eb8aa0be7ecbde162a5b", "timestamp": 1589400481, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0c0edd74b4c38b319539e01d797e8a83", "timestamp": 1589400781, "rssi": -55, "geohash": "81d58d1ff5"}, {"ephemeral_id": "504c9fdf472db245c9c00f79f0aed006", "timestamp": 1589401081, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c9baf3705365a81ff2be3a3937a4866f", "timestamp": 1589401381, "rssi": -21, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1577196729d6238eeee0faff47d810f9", "timestamp": 1589401681, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "128f5239072c535fc974947027cb22ed", "timestamp": 1589401981, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9b82fb68fcaaa697dd6aa72526cd3b51", "timestamp": 1589402281, "rssi": -1, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c2ba979f5b0d0219d914ea81952ed0bf", "timestamp": 1589402581, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "02a0090e07d0ae10acc5bb9d48e1dec9", "timestamp": 1589402881, "rssi": -37, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fa2c1b9ef81bf1946b1ec696a8086922", "timestamp": 1589403181, "rssi": -60, "geohash": "81d58d1ff5"}, {"ephemeral_id": "579b091501fa2b7e59836e476286a32a", "timestamp": 1589403481, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3e21b9218b45c46cdbba5cc988566a00", "timestamp": 1589403781, "rssi": -62, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d7774dd56cebcea2a9d0e05a66cdb9b2", "timestamp": 1589404081, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a45e9f3bfeb99550cc42415f8208bc94", "timestamp": 1589404381, "rssi": -61, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f711a6b708cf6cce7dd0f2975e681003", "timestamp": 1589404681, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e1cba17ae6fc06fb6d68a226dca263db", "timestamp": 1589404981, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "799bce266e733bab38d2b59656cf251d", "timestamp": 1589405281, "rssi": -40, "geohash": "81d58d1ff5"}, {"ephemeral_id": "662af9bc0fb449088b6fec8e6c4cbda4", "timestamp": 1589405581, "rssi": -91, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c92b92ebe232749b25fa873d9f82836e", "timestamp": 1589405881, "rssi": -69, "geohash": "81d58d1ff5"}, {"ephemeral_id": "52d5f8fde38a274e77f366e05a6c9eb8", "timestamp": 1589406181, "rssi": -26, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e6c384c835ecde2c63e45cf35758db46", "timestamp": 1589406481, "rssi": -35, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ac6bc2b69456853f4e63a69b628eb994", "timestamp": 1589406781, "rssi": -12, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ede7f435fef5cb6ee623c2e85db139f8", "timestamp": 1589407081, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2088c7a4c64b58b92751617781f9b385", "timestamp": 1589407381, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "723ba86aeec57d35e45db96eba1fd33a", "timestamp": 1589407681, "rssi": -98, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f9643b5875b4dbd2cf9a025e8c887328", "timestamp": 1589407981, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bc5d0e617c5905b6794822375c58af9a", "timestamp": 1589408281, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4f5afd24fd16f1c1cb149cb0a2805130", "timestamp": 1589408581, "rssi": -79, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2041ab1e229bdb1432adb665565a937b", "timestamp": 1589408881, "rssi": -89, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a4a941f1c649e26e816765518d427867", "timestamp": 1589409181, "rssi": -10, "geohash": "81d58d1ff5"}, {"ephemeral_id": "895b7d2881e55f68a8e138a71b72bf16", "timestamp": 1589409481, "rssi": -109, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d847dc6a85855d02aa8e39ee3c2718e9", "timestamp": 1589409781, "rssi": -78, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b8a804dc2eed24a0bbc4e7d274acdd09", "timestamp": 1589410081, "rssi": -93, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1dd8a681b546794799e6b413b4463297", "timestamp": 1589410381, "rssi": -72, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b9de70157f0a9333a362238033609ef8", "timestamp": 1589410681, "rssi": -21, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8186719d21a1db5f789baa1acbff0092", "timestamp": 1589410981, "rssi": -91, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3917b6f8f64b8a9b5b4a68fc687ea2e5", "timestamp": 1589411281, "rssi": -79, "geohash": "81d58d1ff5"}, {"ephemeral_id": "52804de2c198579def44b6afd4d68f59", "timestamp": 1589411581, "rssi": -60, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e709f0ba447af16f659f8a3bb1c37a7d", "timestamp": 1589411881, "rssi": -21, "geohash": "81d58d1ff5"}, {"ephemeral_id": "69c9b704a108c0bab4114371349e6d66", "timestamp": 1589412181, "rssi": -19, "geohash": "81d58d1ff5"}, {"ephemeral_id": "66c21f217f78e1cae92dd698b29cfebf", "timestamp": 1589412481, "rssi": -28, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d06df6999040cabd1b16cdf13e122296", "timestamp": 1589412781, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "73123d572a3f036828f8cc51ced57ca4", "timestamp": 1589413081, "rssi": -52, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9cb7ae71ff8ee83031d95385fc7c99c4", "timestamp": 1589413381, "rssi": -13, "geohash": "81d58d1ff5"}, {"ephemeral_id": "aa8786a73c5fe90888c7d5b79ab1b649", "timestamp": 1589413681, "rssi": -28, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a1ecff34c3bf377d4ecfb61462922958", "timestamp": 1589413981, "rssi": -72, "geohash": "81d58d1ff5"}, {"ephemeral_id": "24366533aff8cafddcba283f6358567c", "timestamp": 1589414281, "rssi": -88, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1ed75f439a3f0572eb3a2cf66b2771fa", "timestamp": 1589414581, "rssi": -110, "geohash": "81d58d1ff5"}, {"ephemeral_id": "50ffa48b15ac98affbc47e3ffda720ff", "timestamp": 1589414881, "rssi": -51, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ff4f127e4a0f0d3c382a702a282917d9", "timestamp": 1589415181, "rssi": -16, "geohash": "81d58d1ff5"}, {"ephemeral_id": "70becd7b0801569c180afaa5252d65fd", "timestamp": 1589415481, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3ac4719626afd48d796eb3aa0743feef", "timestamp": 1589415781, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0eeccf579bb22e53e58760750ad5d647", "timestamp": 1589416081, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5408f213795eeb9f9c6dcc90a19729ed", "timestamp": 1589416381, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0e6089297b5acccf8a798ed1713428bd", "timestamp": 1589416681, "rssi": -52, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e57ea22a9f99a94e1d95f1704071fb75", "timestamp": 1589416981, "rssi": -85, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1f69feb0cd53563feb40aeb57e199ad7", "timestamp": 1589417281, "rssi": -45, "geohash": "81d58d1ff5"}, {"ephemeral_id": "45ea2639bc5b169ba8e59ad6960d5ca1", "timestamp": 1589417581, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bb41596678f20077a7e71b1476fbd1e5", "timestamp": 1589417881, "rssi": -2, "geohash": "81d58d1ff5"}, {"ephemeral_id": "17c92b6ee6a9de8742912f90e57e1f4c", "timestamp": 1589418181, "rssi": -14, "geohash": "81d58d1ff5"}, {"ephemeral_id": "321cc70305bc3d50cc3961538d78eb87", "timestamp": 1589418481, "rssi": -114, "geohash": "81d58d1ff5"}, {"ephemeral_id": "cefa977e47aa0d8fcceb84dfc8c23ed8", "timestamp": 1589418781, "rssi": -79, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9b87eabe7ada738f83fa883758c86a0b", "timestamp": 1589419081, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "efe0b7aeb1c0d907d48e2485039b2f25", "timestamp": 1589419381, "rssi": -55, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e8b546c00083934c5724d08ac1d4935b", "timestamp": 1589419681, "rssi": -119, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fcff38ed9f20bf3eafefaeeb48d05b24", "timestamp": 1589419981, "rssi": -118, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4a991f46f92bd2039c32cc15b14cb5f5", "timestamp": 1589420281, "rssi": -10, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bd35174e88624555cc47c97e57abf3ff", "timestamp": 1589420581, "rssi": -112, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fc7c75764b81e7f6f7bc9afeb1614773", "timestamp": 1589420881, "rssi": -55, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fdd51723ab380b5348e341334a98f76b", "timestamp": 1589421181, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2b75ce7933c09d1efd2ce546c2f71195", "timestamp": 1589421481, "rssi": -68, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d639bb0c489c6f027db2065d20d2c81f", "timestamp": 1589421781, "rssi": -15, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5a5c35526e894f13f62a3b63aea5bfea", "timestamp": 1589422081, "rssi": -24, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d230553482d6213e9c7b638f52f60347", "timestamp": 1589422381, "rssi": -87, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1aa46592251b2bbc08e744fb1a3e2348", "timestamp": 1589422681, "rssi": -45, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fa874932f12acae9e2a15f677539daab", "timestamp": 1589422981, "rssi": -111, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6a6678620a704e2b2d8a0420dd9ec726", "timestamp": 1589423281, "rssi": -116, "geohash": "81d58d1ff5"}, {"ephemeral_id": "465831dda4130f5ebda3f2393f6eff9d", "timestamp": 1589423581, "rssi": -2, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bd58098e52bf2e06c86e3e2a70a626ee", "timestamp": 1589423881, "rssi": -84, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c2360accaa310dc1779f725afa392472", "timestamp": 1589424181, "rssi": -5, "geohash": "81d58d1ff5"}, {"ephemeral_id": "142237bbc02c4a02b9849e6bbefd6918", "timestamp": 1589424481, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "70d57c52b29137e7d45636558ee95bc4", "timestamp": 1589424781, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1ffb818f99163bd300243d29c94f4f1e", "timestamp": 1589425081, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "59a54974e65f4144fc4fcb9d435884fc", "timestamp": 1589425381, "rssi": -62, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1555171eefad117946bd265d7c821f36", "timestamp": 1589425681, "rssi": -8, "geohash": "81d58d1ff5"}, {"ephemeral_id": "58bb1f65a5a2a20cca3f1e9059dd6b84", "timestamp": 1589425981, "rssi": -53, "geohash": "81d58d1ff5"}, {"ephemeral_id": "99fd49ebe31f57c1e3f39faa2d11ce10", "timestamp": 1589426281, "rssi": -118, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c524ea4dba96b2b5f7a09b35fb85da7d", "timestamp": 1589426581, "rssi": -10, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ded7d951c1a18cb14ffff112724683b0", "timestamp": 1589426881, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fb6e2bc734166130323281b8e017cbe4", "timestamp": 1589427181, "rssi": -84, "geohash": "81d58d1ff5"}, {"ephemeral_id": "56f9e018c330b6b4e7e826b9b937716f", "timestamp": 1589427481, "rssi": -10, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3622fd71e904b13ebfb8af25a0cf91b9", "timestamp": 1589427781, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dff5c277acdf57c29b7ef3c108d6e1c1", "timestamp": 1589428081, "rssi": -98, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3bd09ae07d840e381a6c055a31ed2136", "timestamp": 1589428381, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e2f5a60e6659a1379f8fd2c2ca3acd28", "timestamp": 1589428681, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "1e45f393842612a9170787ac9506d079", "timestamp": 1589428981, "rssi": -68, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5bd0700616a651de5331385c06cc514e", "timestamp": 1589429281, "rssi": -27, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ce886c86ef0063bf9254bdfbfd3cf688", "timestamp": 1589429581, "rssi": -41, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a515345c0e30ab660698743e114a8933", "timestamp": 1589429881, "rssi": -109, "geohash": "81d58d1ff5"}, {"ephemeral_id": "87390878d461c70564fca3f704a12156", "timestamp": 1589430181, "rssi": -79, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ea22b5605d014e75760dda22035bd7be", "timestamp": 1589430481, "rssi": -74, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8158e2039449f58a2b71a7b1d4ee2065", "timestamp": 1589430781, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "32ab17463fae3f89247a258634c23ae5", "timestamp": 1589431081, "rssi": -111, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0959a78375811996a124cbecb8be370f", "timestamp": 1589431381, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "de80f337587360ba43e8ff815b0518bc", "timestamp": 1589431681, "rssi": -81, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c0490b8afd2818a4aefbc4026e4e432e", "timestamp": 1589431981, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a5f3cdcfcccf9f80f41b76ebdeb1f4bb", "timestamp": 1589432281, "rssi": -49, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3507c360946a4fce2f1c0330eb08ac7e", "timestamp": 1589432581, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "833fdf1ca09eb9a77c016c11491fed9b", "timestamp": 1589432881, "rssi": -79, "geohash": "81d58d1ff5"}, {"ephemeral_id": "47edddb837012f0311fb61d2e39f60d2", "timestamp": 1589433181, "rssi": -35, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4cfe583b5ad349f1f1cb4f415b529245", "timestamp": 1589433481, "rssi": -60, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f775c38c1e2bfb0dc3ecf47f901b7357", "timestamp": 1589433781, "rssi": -104, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ed0694a8df30bdf32b9e89c6939b16bf", "timestamp": 1589434081, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "56182e276b1e1d0eebea778b66960100", "timestamp": 1589434381, "rssi": -44, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a7de1da4326b3efdd2ed63b58fd48128", "timestamp": 1589434681, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "99fcc77357e2888f40a13c7e9bd64e41", "timestamp": 1589434981, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2245a28fe07fb31dabdc59c5dcadb00f", "timestamp": 1589435281, "rssi": -56, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a90e8497b97fde9bf9c8a58595d3c4d2", "timestamp": 1589435581, "rssi": -66, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a1ed1f9ce550668a6d1e95b296034e41", "timestamp": 1589435881, "rssi": -48, "geohash": "81d58d1ff5"}, {"ephemeral_id": "aa45797fcb5593025f72a691f0e87b20", "timestamp": 1589436181, "rssi": -86, "geohash": "81d58d1ff5"}, {"ephemeral_id": "82e29c869058b756860916aff52676cc", "timestamp": 1589436481, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5ce60ab8a646a9a2ef24bfa25103f301", "timestamp": 1589436781, "rssi": -25, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5c83fa7d69152bc28d3edacc9cec9443", "timestamp": 1589437081, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d996f02181e10ac37b791f1945095b22", "timestamp": 1589437381, "rssi": -74, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f2156a02d3afe9a2ed19c46980c15011", "timestamp": 1589437681, "rssi": -110, "geohash": "81d58d1ff5"}, {"ephemeral_id": "dc3bced597dcfc51a53caf937181f94a", "timestamp": 1589437981, "rssi": -102, "geohash": "81d58d1ff5"}, {"ephemeral_id": "394b7d3e23b527e817efe8bf4de57a8c", "timestamp": 1589438281, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8af311c445832d194a69b59abf32077c", "timestamp": 1589438581, "rssi": -87, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b2bffbf6376c132892aecee42fc50579", "timestamp": 1589438881, "rssi": -9, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c499be42d1162a0aad15283ebdd2815f", "timestamp": 1589439181, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6bd810798062ad0931c5bb954d59570d", "timestamp": 1589439481, "rssi": -31, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a73e0b9827c29448bf60315cbddb970b", "timestamp": 1589439781, "rssi": -83, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d02038a185917ad9a57843fa4389bb20", "timestamp": 1589440081, "rssi": -67, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3e00f39f625ab81fe850abb99815e75c", "timestamp": 1589440381, "rssi": -52, "geohash": "81d58d1ff5"}, {"ephemeral_id": "678eceec611ba10c129e5f93ef32a4d1", "timestamp": 1589440681, "rssi": -17, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6354d1afb94f7d7c656b8ee0c801518a", "timestamp": 1589440981, "rssi": -83, "geohash": "81d58d1ff5"}, {"ephemeral_id": "5a64a14723da63c1ac004e8f86735cea", "timestamp": 1589441281, "rssi": -36, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d81f926775fad46495d3a89f352afe7d", "timestamp": 1589441581, "rssi": -83, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f43ee1e06addafc278de70b54bee7087", "timestamp": 1589441881, "rssi": -34, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8c998f9c6342a926ad21e47270594147", "timestamp": 1589442181, "rssi": -110, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e7028e56fc6758da70ae4e4860ff97ad", "timestamp": 1589442481, "rssi": -63, "geohash": "81d58d1ff5"}, {"ephemeral_id": "89d2e0657feb936b53b3d5c3b3f9e66c", "timestamp": 1589442781, "rssi": -33, "geohash": "81d58d1ff5"}, {"ephemeral_id": "876cac6e7d65f2041cd39cad1ee634a2", "timestamp": 1589443081, "rssi": -82, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bc850fe15ef8259d5ac1fb3ec5572286", "timestamp": 1589443381, "rssi": -43, "geohash": "81d58d1ff5"}, {"ephemeral_id": "c49a70692b35b1cc9aa1fe1e0de16ff9", "timestamp": 1589443681, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "3a3cd13442b7269fe4bf62c30ea68683", "timestamp": 1589443981, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6fed7be64ea80cb54a7eb04475274d78", "timestamp": 1589444281, "rssi": -95, "geohash": "81d58d1ff5"}, {"ephemeral_id": "ab8dc97f15aa470e30a655c95d88247b", "timestamp": 1589444581, "rssi": -100, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6460cbbc8f96d2ea54074c350ae29248", "timestamp": 1589444881, "rssi": -62, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4972023cfec6531fc69081c57eb48e09", "timestamp": 1589445181, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6693efd44b826aabd6d8ebb19d7b984e", "timestamp": 1589445481, "rssi": -105, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6ad923f6ac61828e8eb263e801ae47fa", "timestamp": 1589445781, "rssi": -29, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9d0e01a9f5cf8718cfbc62e691bf666e", "timestamp": 1589446081, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2796608a23595b27a0b99fdaf02b36d9", "timestamp": 1589446381, "rssi": -65, "geohash": "81d58d1ff5"}, {"ephemeral_id": "302f7abcfc2c1ac59c9c26f2432587ad", "timestamp": 1589446681, "rssi": -90, "geohash": "81d58d1ff5"}, {"ephemeral_id": "f9821d9c78f31c42e6e6533356eef1f6", "timestamp": 1589446981, "rssi": -104, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e718941dacee1f6ad12da811901c9e7a", "timestamp": 1589447281, "rssi": -2, "geohash": "81d58d1ff5"}, {"ephemeral_id": "90feb5eaadb2696fa0aa898511a2a55e", "timestamp": 1589447581, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "a66b2313c91afacdd9ebcb927ec5aefe", "timestamp": 1589447881, "rssi": -113, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7f487ba09d868b77b63b4efb4812a685", "timestamp": 1589448181, "rssi": -75, "geohash": "81d58d1ff5"}, {"ephemeral_id": "accaf20fdc3ed22a3dc8bc0f38c197ea", "timestamp": 1589448481, "rssi": -92, "geohash": "81d58d1ff5"}, {"ephemeral_id": "af57c445fab45e98bcdc6baa5729dc20", "timestamp": 1589448781, "rssi": -24, "geohash": "81d58d1ff5"}, {"ephemeral_id": "4ce03337962a70ae586dc4a7d1a8174d", "timestamp": 1589449081, "rssi": -54, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0514d3c786f919d3cb016fec1f45c97c", "timestamp": 1589449381, "rssi": -72, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bad164660f972ed7d31cc979e630e3c2", "timestamp": 1589449681, "rssi": -4, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8c0e47c472f1cd9dbda9ff5639abf0f5", "timestamp": 1589449981, "rssi": -23, "geohash": "81d58d1ff5"}, {"ephemeral_id": "b6c8af9b668ff9530746310598a98d00", "timestamp": 1589450281, "rssi": -40, "geohash": "81d58d1ff5"}, {"ephemeral_id": "99a42d9dfa44c07c1daac4ad0d4e07fc", "timestamp": 1589450581, "rssi": -73, "geohash": "81d58d1ff5"}, {"ephemeral_id": "afd2e11b85af52a73d10d385a4bcd029", "timestamp": 1589450881, "rssi": -13, "geohash": "81d58d1ff5"}, {"ephemeral_id": "0d610f538e3f4c48c087b0457aa0ba2f", "timestamp": 1589451181, "rssi": -120, "geohash": "81d58d1ff5"}, {"ephemeral_id": "7bf1685ea34bd73c08e0ad3153b5c5b9", "timestamp": 1589451481, "rssi": -22, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d853038dd2ceba153b063fc669ffe936", "timestamp": 1589451781, "rssi": -16, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e37da774cbcd38c476d9604b682a69dd", "timestamp": 1589452081, "rssi": -101, "geohash": "81d58d1ff5"}, {"ephemeral_id": "6932a2a1a72e7005a5371397509a2049", "timestamp": 1589452381, "rssi": -46, "geohash": "81d58d1ff5"}, {"ephemeral_id": "e83c59bcdef31de857e81e0067a1365d", "timestamp": 1589452681, "rssi": -42, "geohash": "81d58d1ff5"}, {"ephemeral_id": "8973d1db9b44ff1b933aebc435ed9de5", "timestamp": 1589452981, "rssi": -97, "geohash": "81d58d1ff5"}, {"ephemeral_id": "bb412c711ff74c1f67ae423e1ccb91ac", "timestamp": 1589453281, "rssi": -53, "geohash": "81d58d1ff5"}, {"ephemeral_id": "9bfc2e62d29799fd0846fc0fc1f2d932", "timestamp": 1589453581, "rssi": -83, "geohash": "81d58d1ff5"}, {"ephemeral_id": "80e41c5b72d90b7971d9a832c50c93c1", "timestamp": 1589453881, "rssi": -77, "geohash": "81d58d1ff5"}, {"ephemeral_id": "d6f47ffe1a20ce9d555237a8485ecf35", "timestamp": 1589454181, "rssi": -68, "geohash": "81d58d1ff5"}, {"ephemeral_id": "2d95be48f6624d8af09eccb2d5e46031", "timestamp": 1589454481, "rssi": -108, "geohash": "81d58d1ff5"}, {"ephemeral_id": "fe1fbb26f5129e7c6ce99866f8b75211", "timestamp": 1589454781, "rssi": -93, "geohash": "81d58d1ff5"}, {"ephemeral_id": "84cb8b044a73e28c4d0ff184f1735e7d", "timestamp": 1589455081, "rssi": -51, "geohash": "81d58d1ff5"}] \ No newline at end of file diff --git a/ios/outputserverReponse.json b/ios/outputserverReponse.json new file mode 100644 index 00000000..d37c969d --- /dev/null +++ b/ios/outputserverReponse.json @@ -0,0 +1 @@ +{"startDay": 18391, "infected": [[[], [], [], [], [], [], [], [], [], [], [], ["d86acf8fcd88bccf59271479cb8ab4e7"], ["a1c50b8346cda9e99deae630eb082076"], ["8f3f28d171d634053945f8c45a9de13d"], ["4583836471de3b66a02f08ae967b6ff6"], ["2900e04006206507552090cbb72638c7"], ["bc528050879b017acac9cce31b1e40ab"], ["822d5175db672831405b0eb00586b0bb"], ["979150b9646e04092d0fceb50405f455"], ["18a905f08b4b6a03bcab0ab7f23f2a47"], ["ec1fb13ba29f9cac072781bf9e05de58"], ["8414f4341b6074e188bbda066b59fe22"], ["f8d0ef30fe99672a99acde3190d7ac6b"], ["d1d3fb2f76058524fa480ee146af2f4b"]], [["ab7fbfacec741e6a3b87699066089100"], ["73ac75c6d89f99910badaead43676727"], ["d3cf15f5504382b5e38183e656482f06"], ["98b5da9c93139135004bef54fff007c0"], ["d7560ec50893efe7cdc724d5d19cc346"], ["060cc0c4f0befc6d7d4ac552f21cb14d"], ["cf443854c7b3721f5a363600da824e65"], ["e6bda1c893e7bfdc46fb45b3f2399c8a"], ["33ba45a91e601813ec0c3a47d8c003b7"], ["5ac06c5919ad46b3dbfafed591e744e1"], ["68541fb793ee86c374305e7a6142e8d6"], ["bce1bcabee672c22465052d79396efae"], ["574fbce2594d4eb2c2b22f84fcff2985"], ["adf2841fb1392b20f57403244bd85a83"], ["66687d23c5de4ee21310a7b563b9fde5"], ["995b04f2d0bd6bed94e6bc41bd788932"], ["d8a2835a13878c3a3081f61e91183cfd"], ["eef0ac65fbed31ba70fa43c94af0ad7b"], ["c4d19c84cffddf1dd3ed3d954c058402"], ["31b93e0dfbe4b29633a2c2f0916d0570"], ["f3aa7d7b907c0d58b241d0843cd01edb"], ["81681a8484fa68381cc079e444c24ac9"], ["4d8d26a80cd3fe617b3ad2130c69a590"], ["4449e8cf936fccaa06fa0a14a53778b7"]], [["e6f62e01c37be1d40d489a3e59ccc30b"], ["a9e8139d001d699a92d5d9949faa2772"], ["58fb0f26e8e4ba9a4823ecac34c4e6fe"], ["9105885533a09562a866deffe143f836"], ["512acee6be9e551ce06598693d9e9c37"], ["ecb44b82828f080b17b4d7f036cdd7cc"], ["5a1fd4337d1bcf6a058f993d7dfd695b"], ["202ff2794dd72f7ed684b3239650d12f"], ["e40868dfb3e3a1a28dce1bc3d8b48fa6"], ["23d7edfe3c2c1944db47525ba52cb87b"], ["00c28e77ae15b1813f46c52a1bc19d62"], ["ab82491271aab40d6bc39a395e505035"], ["e5e713d791f464d3c98d43634db2bc4f"], ["1e7c6b82340f668ce8fed1b1d76334c9"], ["59d7d1904ec100266b87e888916474b0"], ["188d8bbf0394ed13eff0a431ecfc1647"], ["d6224a732fd898d377bc5c5b5e198df0"], ["773549f841f79a22cc5b23d5f7ce3104"], ["ef479261f2e3379dc59327948192fd4f"], ["c5ff03cfb85b7a8cddd65df3654a8029"], ["7e81b6399b171dee77b003c99e9b39b7"], ["e6e720c311119214eb2b1827e3ea785b"], ["de8200818cafd179e870853631f2d142"], ["61d478106464aad6691ca4e631402bbd"]], [["98c75234e78c3da10295ebab1ad60e44"], ["a42d0e96e906b90d2330fbe3bf958300"], ["dde5c88775275401f95b8ac232e52843"], ["faa892b404000a3a6c843010c98f54c3"], ["e6fa41ab94c48559ee30bc6c23d3a266"], ["d864eed72a26d7dcb6ba94a5d46ff172"], ["a1a2b817460d2526c8072d1b00c39774"], ["16a1df31beb6c2025cf7482aa03bf4aa"], ["c07549d1d17bc83995fe5ff466e94fd6"], ["d77d4286486ba1e4caf4e07fe1723c71"], ["b41e1da1a16a1491110898cf94967971"], ["1a7455899b879dece82145776ad77f72"], ["7e2b6dfc7df8b11d439c152a1e4d4812"], ["133fab9adfeb9da4c7f80bed5c58c424"], ["1f523b4f87408248373368bae7c5b711"], ["0736b002c41032bac14032aae1d91500"], ["49b99f9b4a4a80eac2a0ce6e5e502004"], ["9ad9470d6078ab69c2df8f01c7ec4506"], ["33b008843bc1ad094a9337eea17a8b5f"], ["46dd52218f0a3e7b4dd6cb92f13f65f3"], ["562f510864da2482e180c2f39758b029"], ["fd152b5da7baf407a3312b85330abbd7"], ["0ed7a1ee04642e8e3676ea2ca73df6b1"], ["a431c48d6d858f3afd9dc46526ec2793"]], [["a24bc113635f36b05ecd8279bc1ba129"], ["eb7906c6c4106f4f53af22a818ba7f93"], ["85e3864d81b87d23ae1f124ae4317381"], ["519ca4abe41f2fc49ba084e108b6f326"], ["6131c99a51ac8043c46a034e526c9e9f"], ["84a6e5bbe59e118124328e0ea238fa97"], ["2da86dbacad7ef1657397b336fa21e5d"], ["8498aca7e5b71b9223d1b49bc05425af"], ["d40437a9823ed4fa09363363f0540370"], ["489f379b8a6bc1a9508db8be97dac21a"], ["4acb35e55dd37fad239e29ce82a8ecea"], ["621f33c97d127d37571a8512a3d3d1e4"], ["cd94ee72811942a93d430eb0735f425a"], ["ad70249c823ed79feeb29d603c300554"], ["62f5b9ef6f302dc34e7922c4f25e7b8a"], ["18b87eaf4ed530b8532d651bf6afb812"], ["063cc9426201a5fe34935e196bc0c583"], ["b0f3bc65f0bdcdeb15079292f89482ed"], ["0ad3c8d5c6f676f5d48c295faeeb09d5"], ["34395ab165032d0bde56624098f72678"], ["e8759406306893dd63904884e8465bb0"], ["0c890b516186908f97bd1716fef2262f"], ["aad42ceb819a91b9fa40670e3f2a2fb8"], ["cef56d5506c9b160e616a05bf6dcc4e7"]], [["be51da228972bafe4bef4375e90deb77"], ["a61fc49dd43535365690404b0dea2bb7"], ["82f250e7bc612acb29635764c2df24ff"], ["2554c41aadb008dcb6ebddadd5f4efde"], ["bb9179a32416c00a8ecb41d43890d79f"], ["051af2488b9527901ffa044dffff1985"], ["8673fdfa780f5bb64cf82b5d66e98d00"], ["26a9d822ef9b5f0e6fb3d6ea0295163f"], ["8d5fe0cf86d228112e824b28324c3524"], ["e2c0e9fb515df2cb9c62ffb52ae1edef"], ["86fa346b218310fba4dfca6c8be4e826"], ["4927f7c5a624bf6d8aaf122044c4a8a0"], ["f7d0135808852d66afb7163773a66f65"], ["74393ed084aed9820712ee3d04ca62a1"], ["070ce965ebd0efdd7a22998ef06f2a70"], ["3de825066d19b0ddd38c961a0dbc46dd"], ["4c776ce81bc368412177842165be29f9"], ["abe6f476338af7a5cbed4c44814faf71"], ["115ab3bb2ead18ca29862220306c0bc9"], ["8b1dcc2f9eccf48f823773b4c574118b"], ["09a6e9503c852eec10baebb0c0becde3"], ["4d0ac7761e2f694167c1620f5b985ff5"], ["57be6be710c214db198f5adb1c944451"], ["7ff5f2c67a9c3a498c745de94a6e830c"]], [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []]]} \ No newline at end of file diff --git "a/ios/\327\224\327\236\327\222\327\237 QA.entitlements" "b/ios/\327\224\327\236\327\222\327\237 QA.entitlements" index 396838c5..f17b1c54 100644 --- "a/ios/\327\224\327\236\327\222\327\237 QA.entitlements" +++ "b/ios/\327\224\327\236\327\222\327\237 QA.entitlements" @@ -2,6 +2,8 @@ + aps-environment + development com.apple.developer.associated-domains com.apple.developer.networking.wifi-info diff --git "a/ios/\327\224\327\236\327\222\327\237Release.entitlements" "b/ios/\327\224\327\236\327\222\327\237Release.entitlements" new file mode 100644 index 00000000..75e36a14 --- /dev/null +++ "b/ios/\327\224\327\236\327\222\327\237Release.entitlements" @@ -0,0 +1,10 @@ + + + + + aps-environment + development + com.apple.developer.networking.wifi-info + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..a40465a9 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,15747 @@ +{ + "name": "hamagen", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/core": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz", + "integrity": "sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.2", + "@babel/helpers": "^7.6.2", + "@babel/parser": "^7.6.2", + "@babel/template": "^7.6.0", + "@babel/traverse": "^7.6.2", + "@babel/types": "^7.6.0", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", + "requires": { + "@babel/types": "^7.9.6", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz", + "integrity": "sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/types": "^7.9.0" + } + }, + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.5.tgz", + "integrity": "sha512-HAagjAC93tk748jcXpZ7oYRZH485RCq/+yEv9SIWezHRPv9moZArTnkUNciUNzvwHUABmiWKlcxJvMcu59UwTg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-module-imports": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.6.tgz", + "integrity": "sha512-6N9IeuyHvMBRyjNYOMJHrhwtu4WJMrYf8hVbEHD3pbbbmNOk1kmXSQs7bA4dYDUaIx4ZEzdnvo6NwC3WHd/Qow==", + "requires": { + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.9.6", + "@babel/helper-split-export-declaration": "^7.8.3" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", + "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.7.0" + } + }, + "@babel/helper-define-map": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "requires": { + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-function-name": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", + "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.9.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-transforms": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + }, + "@babel/helper-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-replace-supers": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz", + "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6" + } + }, + "@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "requires": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==" + }, + "@babel/helper-wrap-function": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helpers": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz", + "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==", + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", + "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==" + }, + "@babel/plugin-external-helpers": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.8.3.tgz", + "integrity": "sha512-mx0WXDDiIl5DwzMtzWGRSPugXi9BxROS05GQrhLNbEamhBiicgn994ibwkyiBH+6png7bm/yA7AUsvHyCXi4Vw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", + "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-default-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.8.3.tgz", + "integrity": "sha512-PYtv2S2OdCdp7GSPDg5ndGZFm9DmWFvuLoS5nBxZCgOBggluLnhTScspJxng96alHQzPyrrHxvC9/w4bFuspeA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-export-default-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz", + "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.9.5" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", + "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz", + "integrity": "sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-default-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.8.3.tgz", + "integrity": "sha512-a1qnnsr73KLNIQcQlcQ4ZHxqqfBKM6iNQZW2OMTyxNbA2WC7SHWHtGVpFzWtQAuS2pspkWVzdEBXXx8Ik0Za4w==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz", + "integrity": "sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz", + "integrity": "sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", + "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.8.3.tgz", + "integrity": "sha512-GO1MQ/SGGGoiEXY0e0bSpHimJvxqB7lktLLIq2pv8xG7WZ8IMEle74jIe1FhprHBWjwjZtXHkycDLZXIWM5Wfg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz", + "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-split-export-declaration": "^7.8.3", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz", + "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz", + "integrity": "sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-flow": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", + "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz", + "integrity": "sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ==", + "requires": { + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-object-assign": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.8.3.tgz", + "integrity": "sha512-i3LuN8tPDqUCRFu3dkzF2r1Nx0jp4scxtm7JxtIqI9he9Vk20YD+/zshdzR9JLsoBMlJlNR82a62vQExNEVx/Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz", + "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==", + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", + "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz", + "integrity": "sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw==", + "requires": { + "@babel/helper-builder-react-jsx": "^7.9.0", + "@babel/helper-builder-react-jsx-experimental": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz", + "integrity": "sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", + "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.6.tgz", + "integrity": "sha512-qcmiECD0mYOjOIt8YHNsAP1SxPooC/rDmfmiSK9BNY72EitdSc7l44WTEklaWuFtbOEBjNhWWyph/kOImbNJ4w==", + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.9.6.tgz", + "integrity": "sha512-8OvsRdvpt3Iesf2qsAn+YdlwAJD7zJ+vhFZmDCa4b8dTp7MmHtKk5FF2mCsGxjZwuwsy/yIIay/nLmxST1ctVQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.9.6", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-typescript": "^7.8.3" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/register": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.9.0.tgz", + "integrity": "sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q==", + "requires": { + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + } + }, + "@babel/runtime": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.2.tgz", + "integrity": "sha512-EXxN64agfUqqIGeEjI5dL5z0Sw0ZwWo1mLTi4mQowCZ42O59b7DRpZAnTC6OqdF28wMBMFKNb/4uFGrVaigSpg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.2" + } + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", + "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-function-name": "^7.9.5", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@babel/types": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", + "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", + "requires": { + "@babel/helper-validator-identifier": "^7.9.5", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", + "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@jest/console": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", + "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", + "requires": { + "@jest/source-map": "^24.9.0", + "chalk": "^2.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + } + } + }, + "@jest/core": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.5.4.tgz", + "integrity": "sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/reporters": "^25.5.1", + "@jest/test-result": "^25.5.0", + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^25.5.0", + "jest-config": "^25.5.4", + "jest-haste-map": "^25.5.1", + "jest-message-util": "^25.5.0", + "jest-regex-util": "^25.2.6", + "jest-resolve": "^25.5.1", + "jest-resolve-dependencies": "^25.5.4", + "jest-runner": "^25.5.4", + "jest-runtime": "^25.5.4", + "jest-snapshot": "^25.5.1", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", + "jest-watcher": "^25.5.0", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "realpath-native": "^2.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "@jest/console": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", + "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "jest-message-util": "^25.5.0", + "jest-util": "^25.5.0", + "slash": "^3.0.0" + } + }, + "@jest/test-result": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", + "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/types": "^25.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/transform": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz", + "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^25.5.0", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^3.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^25.5.1", + "jest-regex-util": "^25.2.6", + "jest-util": "^25.5.0", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "realpath-native": "^2.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "jest-haste-map": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", + "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "@types/graceful-fs": "^4.1.2", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-serializer": "^25.5.0", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7", + "which": "^2.0.2" + } + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-regex-util": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz", + "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==", + "dev": true + }, + "jest-serializer": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", + "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "jest-validate": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz", + "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "jest-get-type": "^25.2.6", + "leven": "^3.1.0", + "pretty-format": "^25.5.0" + } + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", + "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "realpath-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", + "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + } + } + }, + "@jest/environment": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.5.0.tgz", + "integrity": "sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^25.5.0", + "@jest/types": "^25.5.0", + "jest-mock": "^25.5.0" + }, + "dependencies": { + "@jest/fake-timers": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz", + "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-util": "^25.5.0", + "lolex": "^5.0.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-mock": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz", + "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0" + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "@jest/fake-timers": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", + "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", + "requires": { + "@jest/types": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-mock": "^24.9.0" + } + }, + "@jest/globals": { + "version": "25.5.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-25.5.2.tgz", + "integrity": "sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==", + "dev": true, + "requires": { + "@jest/environment": "^25.5.0", + "@jest/types": "^25.5.0", + "expect": "^25.5.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/reporters": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.5.1.tgz", + "integrity": "sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^25.5.1", + "jest-resolve": "^25.5.1", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "node-notifier": "^6.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^3.1.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^4.1.3" + }, + "dependencies": { + "@jest/console": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", + "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "jest-message-util": "^25.5.0", + "jest-util": "^25.5.0", + "slash": "^3.0.0" + } + }, + "@jest/test-result": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", + "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/types": "^25.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/transform": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz", + "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^25.5.0", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^3.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^25.5.1", + "jest-regex-util": "^25.2.6", + "jest-util": "^25.5.0", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "realpath-native": "^2.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "optional": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "jest-haste-map": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", + "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "@types/graceful-fs": "^4.1.2", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-serializer": "^25.5.0", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7", + "which": "^2.0.2" + } + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-regex-util": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz", + "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==", + "dev": true + }, + "jest-serializer": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", + "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", + "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node-notifier": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-6.0.0.tgz", + "integrity": "sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==", + "dev": true, + "optional": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.1.1", + "semver": "^6.3.0", + "shellwords": "^0.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "optional": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "realpath-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", + "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + } + } + }, + "@jest/source-map": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", + "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.1.15", + "source-map": "^0.6.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "@jest/test-result": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", + "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", + "requires": { + "@jest/console": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/istanbul-lib-coverage": "^2.0.0" + } + }, + "@jest/test-sequencer": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz", + "integrity": "sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==", + "dev": true, + "requires": { + "@jest/test-result": "^25.5.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^25.5.1", + "jest-runner": "^25.5.4", + "jest-runtime": "^25.5.4" + }, + "dependencies": { + "@jest/console": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", + "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "jest-message-util": "^25.5.0", + "jest-util": "^25.5.0", + "slash": "^3.0.0" + } + }, + "@jest/test-result": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", + "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/types": "^25.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-haste-map": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", + "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "@types/graceful-fs": "^4.1.2", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-serializer": "^25.5.0", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7", + "which": "^2.0.2" + } + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-serializer": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", + "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", + "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "@jest/transform": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", + "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^24.9.0", + "babel-plugin-istanbul": "^5.1.0", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.1.15", + "jest-haste-map": "^24.9.0", + "jest-regex-util": "^24.9.0", + "jest-util": "^24.9.0", + "micromatch": "^3.1.10", + "pirates": "^4.0.1", + "realpath-native": "^1.1.0", + "slash": "^2.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "2.4.1" + }, + "dependencies": { + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "write-file-atomic": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", + "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + } + } + }, + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + } + }, + "@react-native-community/async-storage": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@react-native-community/async-storage/-/async-storage-1.7.1.tgz", + "integrity": "sha512-/oX/x+EU4xNaqIaC/epVKzO8XghzImPA7l8cLz3USEFmtFiXFjBbTeeIFjjEm/u4/cv38Wi1xMEa10PHIWygRg==" + }, + "@react-native-community/cli": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-2.9.0.tgz", + "integrity": "sha512-6TYkrR1pwIEPpiPZnOYscCGr5Xh8RijqBPVAOGTaEdpQQpc/J7GDPrePwbyTzwmCPtiK6XT+T5+1AiAK5bz/sw==", + "requires": { + "@hapi/joi": "^15.0.3", + "@react-native-community/cli-platform-android": "^2.9.0", + "@react-native-community/cli-platform-ios": "^2.9.0", + "@react-native-community/cli-tools": "^2.8.3", + "chalk": "^2.4.2", + "commander": "^2.19.0", + "compression": "^1.7.1", + "connect": "^3.6.5", + "cosmiconfig": "^5.1.0", + "deepmerge": "^3.2.0", + "envinfo": "^7.1.0", + "errorhandler": "^1.5.0", + "execa": "^1.0.0", + "fs-extra": "^7.0.1", + "glob": "^7.1.1", + "graceful-fs": "^4.1.3", + "inquirer": "^3.0.6", + "lodash": "^4.17.5", + "metro": "^0.54.1", + "metro-config": "^0.54.1", + "metro-core": "^0.54.1", + "metro-react-native-babel-transformer": "^0.54.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "morgan": "^1.9.0", + "node-notifier": "^5.2.1", + "open": "^6.2.0", + "ora": "^3.4.0", + "plist": "^3.0.0", + "semver": "^5.0.3", + "serve-static": "^1.13.1", + "shell-quote": "1.6.1", + "ws": "^1.1.0" + } + }, + "@react-native-community/cli-debugger-ui": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-3.0.0.tgz", + "integrity": "sha512-m3X+iWLsK/H7/b7PpbNO33eQayR/+M26la4ZbYe1KRke5Umg4PIWsvg21O8Tw4uJcY8LA5hsP+rBi/syBkBf0g==", + "requires": { + "serve-static": "^1.13.1" + } + }, + "@react-native-community/cli-platform-android": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-2.9.0.tgz", + "integrity": "sha512-VEQs4Q6R5tnlYFrQIFoPEWjLc43whRHC9HeH+idbFymwDqysLVUffQbb9D6PJUj+C/AvrDhBhU6S3tDjGbSsag==", + "requires": { + "@react-native-community/cli-tools": "^2.8.3", + "chalk": "^2.4.2", + "execa": "^1.0.0", + "jetifier": "^1.6.2", + "logkitty": "^0.6.0", + "slash": "^3.0.0", + "xmldoc": "^1.1.2" + } + }, + "@react-native-community/cli-platform-ios": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-2.10.0.tgz", + "integrity": "sha512-z5BQKyT/bgTSdHhvsFNf++6VP50vtOOaITnNKvw4954wURjv5JOQh1De3BngyaDOoGfV1mXkCxutqAXqSeuIjw==", + "requires": { + "@react-native-community/cli-tools": "^2.8.3", + "chalk": "^2.4.2", + "xcode": "^2.0.0" + } + }, + "@react-native-community/cli-tools": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-2.8.3.tgz", + "integrity": "sha512-N5Pz+pR+GFq3JApjd0SW4jp9KC7kbKsMH65QLRh30JNsxdPvNkYox6/ZZdkvdXaI5ev3EckR7eqlcwi5gpVTYQ==", + "requires": { + "chalk": "^2.4.2", + "lodash": "^4.17.5", + "mime": "^2.4.1", + "node-fetch": "^2.5.0" + } + }, + "@react-native-community/cli-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-3.0.0.tgz", + "integrity": "sha512-ng6Tm537E/M42GjE4TRUxQyL8sRfClcL7bQWblOCoxPZzJ2J3bdALsjeG3vDnVCIfI/R0AeFalN9KjMt0+Z/Zg==" + }, + "@react-native-community/cookies": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@react-native-community/cookies/-/cookies-2.0.9.tgz", + "integrity": "sha512-gZvnLQjkpZX//4/CIOX4lOFdfOT2gQi/Ov1t+K6D2KZ0GyqY1CQ9xe0F1NsRSIGciTUkxOPTeway/LRWgwHsxQ==", + "requires": { + "invariant": "^2.2.4" + } + }, + "@react-native-community/eslint-config": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@react-native-community/eslint-config/-/eslint-config-0.0.5.tgz", + "integrity": "sha512-jwO2tnKaTPTLX5XYXMHGEnFdf543SU7jz98/OF5mDH3b7lP+BOaCD+jVfqqHoDRkcqyPlYiR1CgwVGWpi0vMWg==", + "dev": true, + "requires": { + "@typescript-eslint/eslint-plugin": "^1.5.0", + "@typescript-eslint/parser": "^1.5.0", + "babel-eslint": "10.0.1", + "eslint-plugin-eslint-comments": "^3.1.1", + "eslint-plugin-flowtype": "2.50.3", + "eslint-plugin-jest": "22.4.1", + "eslint-plugin-prettier": "2.6.2", + "eslint-plugin-react": "7.12.4", + "eslint-plugin-react-hooks": "^1.5.1", + "eslint-plugin-react-native": "3.6.0", + "prettier": "1.16.4" + }, + "dependencies": { + "@typescript-eslint/eslint-plugin": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.13.0.tgz", + "integrity": "sha512-WQHCozMnuNADiqMtsNzp96FNox5sOVpU8Xt4meaT4em8lOG1SrOv92/mUbEHQVh90sldKSfcOc/I0FOb/14G1g==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "1.13.0", + "eslint-utils": "^1.3.1", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^2.0.1", + "tsutils": "^3.7.0" + } + }, + "@typescript-eslint/parser": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-1.13.0.tgz", + "integrity": "sha512-ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ==", + "dev": true, + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "1.13.0", + "@typescript-eslint/typescript-estree": "1.13.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "eslint-plugin-react": { + "version": "7.12.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.12.4.tgz", + "integrity": "sha512-1puHJkXJY+oS1t467MjbqjvX53uQ05HXwjqDgdbGBqf5j9eeydI54G3KwiJmWciQ0HTBacIKw2jgwSBSH3yfgQ==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.0.1", + "object.fromentries": "^2.0.0", + "prop-types": "^15.6.2", + "resolve": "^1.9.0" + } + } + } + }, + "@react-native-community/masked-view": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/@react-native-community/masked-view/-/masked-view-0.1.10.tgz", + "integrity": "sha512-rk4sWFsmtOw8oyx8SD3KSvawwaK7gRBSEIy2TAwURyGt+3TizssXP1r8nx3zY+R7v2vYYHXZ+k2/GULAT/bcaQ==" + }, + "@react-native-community/netinfo": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-5.6.2.tgz", + "integrity": "sha512-IkzS78nOiPNM/MboBqqbk2eMBrflp8VML/p33pd50KZq+PvBq8Oywt1JKOgdaMxUIbGjP73zVz+f6r2f80u2Eg==" + }, + "@react-navigation/bottom-tabs": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-5.0.3.tgz", + "integrity": "sha512-/rGlulcpvoJeAE5j/9HWTQzmu2UxxT5eoTh+kGnTAYjPwPordLgwP36NeX2Jvhv5tIvTtlzhF7bCDquBBgiN6g==", + "requires": { + "color": "^3.1.2", + "react-native-iphone-x-helper": "^1.2.1" + } + }, + "@react-navigation/core": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-5.7.0.tgz", + "integrity": "sha512-dVnfmTiOWV9YwaTq2BSDUgwUK1G1WkpD+w4oXqKCcy1LtJb+HWWUz5xiCdR1TtxvgaQn+RISxKm8yZAXVWPbXQ==", + "requires": { + "@react-navigation/routers": "^5.4.4", + "escape-string-regexp": "^4.0.0", + "nanoid": "^3.1.5", + "query-string": "^6.12.1", + "react-is": "^16.13.0", + "use-subscription": "^1.4.0" + }, + "dependencies": { + "@react-navigation/routers": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-5.4.4.tgz", + "integrity": "sha512-Q8ZIubVYc1569JOs2oMWbhNXBNzZHvRfP5cEZ6/ksj9cPF7DkwOXsAdF0b+Oe0ei0f7OaK9LTRmfiNdtAPWVzw==", + "requires": { + "nanoid": "^3.1.5" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + } + } + }, + "@react-navigation/drawer": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-5.4.0.tgz", + "integrity": "sha512-IOXBRfFaURA3o9+fEaC7lwomftGQYoyqzZKkcWI/fybtDwmhSS6QOyZKMm3fWRp1x++m3QLgQHsaMSXjUoRygA==", + "requires": { + "color": "^3.1.2", + "react-native-iphone-x-helper": "^1.2.1" + } + }, + "@react-navigation/native": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-5.0.3.tgz", + "integrity": "sha512-caJVWRkpTY6zFkpZvQE1Dg0gTu+a09XnleKaDEV9TOK8AxkBhp+X4GvCP/7sV9Ke8Cw8mvcnh9R1UCKIO4fTCQ==", + "requires": { + "@react-navigation/core": "^5.1.2" + } + }, + "@react-navigation/routers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-5.1.0.tgz", + "integrity": "sha512-sY+eCIcWheflQIfGMSnWomnjP8d+7ZPmH1dKZ1pRezTqLWVlCFntQfQSr2FfM5LLVWty4gZ/K9D+o6UT4ntc3w==", + "requires": { + "shortid": "^2.2.15" + } + }, + "@react-navigation/stack": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-5.0.3.tgz", + "integrity": "sha512-CAFfURsfY6/zmIQsUunDoiuCrvZLNqUwN5D1usN8I8VFkJg1kKCZbIxaVftAbZiPcfwORarsuWMxqkCVmVvEuA==", + "requires": { + "color": "^3.1.2", + "react-native-iphone-x-helper": "^1.2.1" + } + }, + "@redux-offline/redux-offline": { + "version": "2.5.2-native.3", + "resolved": "https://registry.npmjs.org/@redux-offline/redux-offline/-/redux-offline-2.5.2-native.3.tgz", + "integrity": "sha512-xo1M4wFJDJjANn9w6faru0/8rerd28vQpbNTbEe7DX57RyRqSGsDilb0temH/kAg3GheQTlO59ipRum2bcmXvw==", + "requires": { + "@babel/runtime": "^7.5.5", + "redux-persist": "^4.6.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, + "@sinonjs/commons": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.2.tgz", + "integrity": "sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@tmcw/togeojson": { + "version": "git+https://github.com/tmcw/togeojson.git#cdae0c2243f536a9c37e15e434e00f77a53102f4", + "from": "git+https://github.com/tmcw/togeojson.git" + }, + "@types/async-lock": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/async-lock/-/async-lock-1.1.1.tgz", + "integrity": "sha512-TU1X8jmAU2BjwKryBFV/GDezz7Ge0xu9ZuYC7dy6wKj4hnL0JcxeseCOr/G2JkGylff6hdUBrR+Ee5ApAQeU5g==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz", + "integrity": "sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", + "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", + "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.11.tgz", + "integrity": "sha512-ddHK5icION5U6q11+tV2f9Mo6CZVuT8GJKld2q9LqHSZbvLbH34Kcu2yFGckZut453+eQU6btIA3RihmnRgI+Q==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", + "dev": true + }, + "@types/graceful-fs": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz", + "integrity": "sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dev": true, + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dev": true, + "requires": { + "react-is": "^16.7.0" + } + } + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz", + "integrity": "sha512-rsZg7eL+Xcxsxk2XlBt9KcG8nOp9iYdKCOikY9x2RFJCyOdNj4MKPQty0e8oZr29vVAzKXr1BmR+kZauti3o1w==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-25.2.3.tgz", + "integrity": "sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw==", + "dev": true, + "requires": { + "jest-diff": "^25.2.1", + "pretty-format": "^25.2.1" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@types/json-schema": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", + "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", + "dev": true + }, + "@types/jsrsasign": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@types/jsrsasign/-/jsrsasign-8.0.3.tgz", + "integrity": "sha512-k04lvcT2VkdEwOkVMJuBPENJHZebD90NjKKp0hXvNgQ43StwnsUIHq+GULCgYIImGKpO2WhlpsCVolBYYzu1+Q==", + "dev": true + }, + "@types/latlon-geohash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/latlon-geohash/-/latlon-geohash-2.0.0.tgz", + "integrity": "sha512-bwTttcqf8StBA+ABJ4gxbgA+PgueUJGxjYzuWrlFfzDbIQd2FvOcE5l/0fY+BOKqmeWYAzjBQFdnKweI8KKNpA==", + "dev": true + }, + "@types/lodash": { + "version": "4.14.149", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz", + "integrity": "sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==", + "dev": true + }, + "@types/node": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.1.0.tgz", + "integrity": "sha512-zwrxviZS08kRX40nqBrmERElF2vpw4IUTd5khkhBTfFH8AOaeoLVx48EC4+ZzS2/Iga7NevncqnsUSYjM4OWYA==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "@types/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==", + "dev": true + }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", + "dev": true + }, + "@types/react": { + "version": "16.9.19", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.19.tgz", + "integrity": "sha512-LJV97//H+zqKWMms0kvxaKYJDG05U2TtQB3chRLF8MPNs+MQh/H1aGlyDUxjaHvu08EAGerdX2z4LTBc7ns77A==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } + }, + "@types/react-native": { + "version": "0.60.25", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.60.25.tgz", + "integrity": "sha512-827dIVvSTxSH5uTpsJJH7O4wpRuw0rm3yIzRL3a2yKawA0nyhgC1GPKTXHFIn2GfSdXn1Gty2dJ+k6uDZF3MWQ==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "@types/react": "*" + } + }, + "@types/react-native-background-timer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/react-native-background-timer/-/react-native-background-timer-2.0.0.tgz", + "integrity": "sha512-y5VW82dL/ESOLg+5QQHyBdsFVA4ZklENxmOyxv8o06T+3HBG2JOSuz/CIPz1vKdB7dmWDGPZNuPosdtnp+xv2A==", + "dev": true + }, + "@types/react-native-sqlite-storage": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@types/react-native-sqlite-storage/-/react-native-sqlite-storage-3.3.2.tgz", + "integrity": "sha512-LzRrAidwgOVql64I3XU+jQ+SO09P/UF8mZOiy4qGw9uyWMxIC/3+i9EYPEfGfw0OqIJ5YpQCha9Gjiq3pWticA==", + "dev": true + }, + "@types/react-native-uuid-generator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/react-native-uuid-generator/-/react-native-uuid-generator-4.0.0.tgz", + "integrity": "sha512-iAt2ILkYpatLaxw7MOryWbaH0L3h1hDa+ClIF3VO7bn03q7WLORTmczRm1oezBP21RYJKGL7JGQx2U3iXrLN0w==", + "dev": true + }, + "@types/react-redux": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.5.tgz", + "integrity": "sha512-ZoNGQMDxh5ENY7PzU7MVonxDzS1l/EWiy8nUhDqxFqUZn4ovboCyvk4Djf68x6COb7vhGTKjyjxHxtFdAA5sUA==", + "dev": true, + "requires": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dev": true, + "requires": { + "react-is": "^16.7.0" + } + } + } + }, + "@types/react-test-renderer": { + "version": "16.9.1", + "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.9.1.tgz", + "integrity": "sha512-nCXQokZN1jp+QkoDNmDZwoWpKY8HDczqevIDO4Uv9/s9rbGPbSpy8Uaxa5ixHKkcm/Wt0Y9C3wCxZivh4Al+rQ==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/redux-mock-store": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/redux-mock-store/-/redux-mock-store-1.0.2.tgz", + "integrity": "sha512-6LBtAQBN34i7SI5X+Qs4zpTEZO1tTDZ6sZ9fzFjYwTl3nLQXaBtwYdoV44CzNnyKu438xJ1lSIYyw0YMvunESw==", + "dev": true, + "requires": { + "redux": "^4.0.5" + } + }, + "@types/seedrandom": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.28.tgz", + "integrity": "sha512-SMA+fUwULwK7sd/ZJicUztiPs8F1yCPwF3O23Z9uQ32ME5Ha0NmDK9+QTsYE4O2tHXChzXomSWWeIhCnoN1LqA==", + "dev": true + }, + "@types/stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" + }, + "@types/xmldom": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/@types/xmldom/-/xmldom-0.1.29.tgz", + "integrity": "sha1-xEKLDKhtO4gUdXJv2UmAs4onw4E=", + "dev": true + }, + "@types/yargs": { + "version": "13.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.9.tgz", + "integrity": "sha512-xrvhZ4DZewMDhoH1utLtOAwYQy60eYFoXeje30TzM3VOvQlBwQaEpKFq5m34k1wOw2AKIi2pwtiAjdmhvlBUzg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.12.0.tgz", + "integrity": "sha512-1t4r9rpLuEwl3hgt90jY18wJHSyb0E3orVL3DaqwmpiSDHmHiSspVsvsFF78BJ/3NNG3qmeso836jpuBWYziAA==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "2.12.0", + "eslint-utils": "^1.4.3", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "tsutils": "^3.17.1" + }, + "dependencies": { + "@typescript-eslint/experimental-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.12.0.tgz", + "integrity": "sha512-jv4gYpw5N5BrWF3ntROvCuLe1IjRenLy5+U57J24NbPGwZFAjhnM45qpq0nDH1y/AZMb3Br25YiNVwyPbz6RkA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.12.0", + "eslint-scope": "^5.0.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.12.0.tgz", + "integrity": "sha512-rGehVfjHEn8Frh9UW02ZZIfJs6SIIxIu/K1bbci8rFfDE/1lQ8krIJy5OXOV3DVnNdDPtoiPOdEANkLMrwXbiQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash.unescape": "4.0.1", + "semver": "^6.3.0", + "tsutils": "^3.17.1" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@typescript-eslint/experimental-utils": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz", + "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "1.13.0", + "eslint-scope": "^4.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.12.0.tgz", + "integrity": "sha512-lPdkwpdzxEfjI8TyTzZqPatkrswLSVu4bqUgnB03fHSOwpC7KSerPgJRgIAf11UGNf7HKjJV6oaPZI4AghLU6g==", + "dev": true, + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "2.12.0", + "@typescript-eslint/typescript-estree": "2.12.0", + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "@typescript-eslint/experimental-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.12.0.tgz", + "integrity": "sha512-jv4gYpw5N5BrWF3ntROvCuLe1IjRenLy5+U57J24NbPGwZFAjhnM45qpq0nDH1y/AZMb3Br25YiNVwyPbz6RkA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.12.0", + "eslint-scope": "^5.0.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.12.0.tgz", + "integrity": "sha512-rGehVfjHEn8Frh9UW02ZZIfJs6SIIxIu/K1bbci8rFfDE/1lQ8krIJy5OXOV3DVnNdDPtoiPOdEANkLMrwXbiQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash.unescape": "4.0.1", + "semver": "^6.3.0", + "tsutils": "^3.17.1" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@typescript-eslint/typescript-estree": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz", + "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==", + "dev": true, + "requires": { + "lodash.unescape": "4.0.1", + "semver": "5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + } + } + }, + "abab": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", + "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", + "dev": true + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "absolute-path": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz", + "integrity": "sha1-p4di+9rftSl76ZsV01p4Wy8JW/c=" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", + "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "dev": true + }, + "acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "dev": true, + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true + } + } + }, + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "dev": true + }, + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "dev": true + }, + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "requires": { + "ansi-wrap": "^0.1.0" + } + }, + "ansi-cyan": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", + "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + }, + "ansi-fragments": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", + "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", + "requires": { + "colorette": "^1.0.7", + "slice-ansi": "^2.0.0", + "strip-ansi": "^5.0.0" + } + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + }, + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + } + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "art": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/art/-/art-0.10.3.tgz", + "integrity": "sha512-HXwbdofRTiJT6qZX/FnchtldzJjS3vkLJxQilc3Xj+ma2MXjY4UAyQ0ls1XZYVnDvVIBiFZbC6QsvtW86TD6tQ==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "async-lock": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.2.2.tgz", + "integrity": "sha512-uczz62z2fMWOFbyo6rG4NlV2SdxugJT6sZA2QcfB1XaSjEiOh8CuOb/TttyMnYQCda6nkWecJe465tGQDPJiKw==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "axios": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" + } + } + }, + "axobject-query": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.2.tgz", + "integrity": "sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ==", + "dev": true + }, + "babel-eslint": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.1.tgz", + "integrity": "sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "^1.0.0" + }, + "dependencies": { + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + } + } + }, + "babel-jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", + "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", + "dev": true, + "requires": { + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/babel__core": "^7.1.0", + "babel-plugin-istanbul": "^5.1.0", + "babel-preset-jest": "^24.9.0", + "chalk": "^2.4.2", + "slash": "^2.0.0" + }, + "dependencies": { + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-istanbul": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", + "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "find-up": "^3.0.0", + "istanbul-lib-instrument": "^3.3.0", + "test-exclude": "^5.2.3" + } + }, + "babel-plugin-jest-hoist": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz", + "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==", + "dev": true, + "requires": { + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==" + }, + "babel-preset-current-node-syntax": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz", + "integrity": "sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "babel-preset-fbjs": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz", + "integrity": "sha512-7QTLTCd2gwB2qGoi5epSULMHugSVgpcVt5YAeiFO9ABLrutDQzKfGwzxgZHLpugq8qMdg/DhRZDZ5CLKxBkEbw==", + "requires": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + } + }, + "babel-preset-jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", + "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==", + "dev": true, + "requires": { + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "babel-plugin-jest-hoist": "^24.9.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base-64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", + "integrity": "sha1-eAqZyE59YAJgNhURxId2E78k9rs=" + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big-integer": { + "version": "1.6.48", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", + "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bplist-creator": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz", + "integrity": "sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==", + "requires": { + "stream-buffers": "~2.2.0" + } + }, + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "requires": { + "big-integer": "^1.6.44" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "requires": { + "rsvp": "^4.8.4" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-spinners": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.3.0.tgz", + "integrity": "sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w==" + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", + "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, + "colorette": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.0.tgz", + "integrity": "sha512-soRSroY+OF/8OdA3PTQXwaDJeMc7TfknKKrxeSCencL2a4+Tx5zhxmmv7hdpCjhKBjehzp8+bwe/T68K0hpIjw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "confusing-browser-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", + "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==", + "dev": true + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + } + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "convert-hex": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/convert-hex/-/convert-hex-0.1.0.tgz", + "integrity": "sha1-CMBFaJIsJ3drii6BqV05M2LqC2U=" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "convert-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/convert-string/-/convert-string-0.1.0.tgz", + "integrity": "sha1-ec5BqbsNA7z3LNxqjzxW+7xkQQo=" + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-react-class": { + "version": "15.6.3", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", + "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", + "requires": { + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + }, + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + } + } + }, + "cross-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.4.tgz", + "integrity": "sha512-MSHgpjQqgbT/94D4CyADeNoYh52zMkCX4pcJvPP5WqPsLFMKjr2TCMg381ox5qI0ii2dPwaLx/00477knXqXVw==", + "dev": true, + "requires": { + "node-fetch": "2.6.0", + "whatwg-fetch": "3.0.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "csstype": { + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz", + "integrity": "sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==", + "dev": true + }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + } + }, + "dayjs": { + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.27.tgz", + "integrity": "sha512-Jpa2acjWIeOkg8KURUHICk0EqnEFSSF5eMEscsOgyJ92ZukXwmpmRkPSUka7KHSfbj5eKH30ieosYip+ky9emQ==" + }, + "debounce": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", + "integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "dedent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.6.0.tgz", + "integrity": "sha1-Dm2o8M5Sg471zsXI+TlrDBtko8s=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz", + "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==" + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "denodeify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", + "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "didyoumean": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.1.tgz", + "integrity": "sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=" + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diff-sequences": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", + "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", + "dev": true + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "envinfo": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.5.1.tgz", + "integrity": "sha512-hQBkDf2iO4Nv0CNHpCuSBeaSrveU6nThVxFGTrq/eDlV716UQk09zChaJae4mZRsos1x4YLY2TaH3LHUae3ZmQ==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "errorhandler": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", + "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", + "requires": { + "accepts": "~1.3.7", + "escape-html": "~1.0.3" + } + }, + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz", + "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "eslint": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.5.1.tgz", + "integrity": "sha512-32h99BoLYStT1iq1v2P9uwpyznQ4M2jRiFB6acitKz52Gqn+vPaMDUTB1bYi1WN4Nquj2w+t+bimYUG83DC55A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.2", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.1", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.4.1", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "rxjs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "eslint-config-airbnb": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz", + "integrity": "sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw==", + "dev": true, + "requires": { + "eslint-config-airbnb-base": "^13.1.0", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4" + } + }, + "eslint-config-airbnb-base": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz", + "integrity": "sha512-1mg/7eoB4AUeB0X1c/ho4vb2gYkNH8Trr/EgCT/aGmKhhG+F6vF5s8+iRBlWAzFIAphxIdp3YfEKgEl0f9Xg+w==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.5", + "object.assign": "^4.1.0", + "object.entries": "^1.1.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", + "integrity": "sha1-Wt2BBujJKNssuiMrzZ76hG49oWw=", + "dev": true, + "requires": { + "debug": "^2.2.0", + "object-assign": "^4.0.1", + "resolve": "^1.1.6" + } + }, + "eslint-import-resolver-reactnative": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-reactnative/-/eslint-import-resolver-reactnative-1.0.2.tgz", + "integrity": "sha1-yLNkBdduLeF/cDuAZteIfNc6+0k=", + "dev": true, + "requires": { + "eslint-import-resolver-node": "^0.2.3", + "find-root": "^1.0.0" + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + } + } + }, + "eslint-plugin-eslint-comments": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.2.tgz", + "integrity": "sha512-QexaqrNeteFfRTad96W+Vi4Zj1KFbkHHNMMaHZEYcovKav6gdomyGzaxSDSL3GoIyUOo078wRAdYlu1caiauIQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + } + }, + "eslint-plugin-flowtype": { + "version": "2.50.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.3.tgz", + "integrity": "sha512-X+AoKVOr7Re0ko/yEXyM5SSZ0tazc6ffdIOocp2fFUlWoDt7DV0Bz99mngOkAFLOAWjqRA5jPwqUCbrx13XoxQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "eslint-plugin-import": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.17.3.tgz", + "integrity": "sha512-qeVf/UwXFJbeyLbxuY8RgqDyEKCkqV7YC+E5S5uOjAp4tOc8zj01JP3ucoBM8JcEqd1qRasJSg6LLlisirfy0Q==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.0", + "has": "^1.0.3", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "read-pkg-up": "^2.0.0", + "resolve": "^1.11.0" + }, + "dependencies": { + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", + "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + } + } + } + }, + "eslint-plugin-jest": { + "version": "22.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.4.1.tgz", + "integrity": "sha512-gcLfn6P2PrFAVx3AobaOzlIEevpAEf9chTpFZz7bYfc7pz8XRv7vuKTIE4hxPKZSha6XWKKplDQ0x9Pq8xX2mg==", + "dev": true + }, + "eslint-plugin-jsx-a11y": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.1.tgz", + "integrity": "sha512-cjN2ObWrRz0TTw7vEcGQrx+YltMvZoOEx4hWU8eEERDnBIU00OTq7Vr+jA7DFKxiwLNv4tTh5Pq2GUNEa8b6+w==", + "dev": true, + "requires": { + "aria-query": "^3.0.0", + "array-includes": "^3.0.3", + "ast-types-flow": "^0.0.7", + "axobject-query": "^2.0.2", + "damerau-levenshtein": "^1.0.4", + "emoji-regex": "^7.0.2", + "has": "^1.0.3", + "jsx-ast-utils": "^2.0.1" + } + }, + "eslint-plugin-prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz", + "integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==", + "dev": true, + "requires": { + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" + } + }, + "eslint-plugin-react": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.13.0.tgz", + "integrity": "sha512-uA5LrHylu8lW/eAH3bEQe9YdzpPaFd9yAJTwTi/i/BKTD7j6aQMKVAdGM/ML72zD6womuSK7EiGtMKuK06lWjQ==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.1.0", + "object.fromentries": "^2.0.0", + "prop-types": "^15.7.2", + "resolve": "^1.10.1" + } + }, + "eslint-plugin-react-hooks": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.6.0.tgz", + "integrity": "sha512-lHBVRIaz5ibnIgNG07JNiAuBUeKhEf8l4etNx5vfAEwqQ5tcuK3jV9yjmopPgQDagQb7HwIuQVsE3IVcGrRnag==", + "dev": true + }, + "eslint-plugin-react-native": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-native/-/eslint-plugin-react-native-3.6.0.tgz", + "integrity": "sha512-BEQcHZ06hZSBYWFVuNEq0xuui5VEsWpHDsZGBtfadHfCRqRMUrkYPgdDb3bpc60qShHE83kqIv59uKdinEg91Q==", + "dev": true, + "requires": { + "eslint-plugin-react-native-globals": "^0.1.1" + } + }, + "eslint-plugin-react-native-globals": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz", + "integrity": "sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", + "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==" + }, + "exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==" + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expect": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-25.5.0.tgz", + "integrity": "sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-styles": "^4.0.0", + "jest-get-type": "^25.2.6", + "jest-matcher-utils": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-regex-util": "^25.2.6" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-regex-util": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz", + "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fast-plist": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/fast-plist/-/fast-plist-0.1.2.tgz", + "integrity": "sha1-pFr/NFGWAG1AbKbNzQX2kFHvNbg=" + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, + "fbjs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz", + "integrity": "sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA==", + "requires": { + "core-js": "^2.4.1", + "fbjs-css-vars": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + }, + "fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + }, + "fbjs-scripts": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fbjs-scripts/-/fbjs-scripts-1.2.0.tgz", + "integrity": "sha512-5krZ8T0Bf8uky0abPoCLrfa7Orxd8UH4Qq8hRUF2RZYNMu+FmEOrBc7Ib3YVONmxTXTlLAvyrrdrVmksDb2OqQ==", + "requires": { + "@babel/core": "^7.0.0", + "ansi-colors": "^1.0.1", + "babel-preset-fbjs": "^3.2.0", + "core-js": "^2.4.1", + "cross-spawn": "^5.1.0", + "fancy-log": "^1.3.2", + "object-assign": "^4.0.1", + "plugin-error": "^0.1.2", + "semver": "^5.1.0", + "through2": "^2.0.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" + }, + "hammerjs": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", + "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "haversine": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/haversine/-/haversine-1.1.1.tgz", + "integrity": "sha512-KW4MS8+krLIeiw8bF5z532CptG0ZyGGFj0UbKMxx25lKnnJ1hMUbuzQl+PXQjNiDLnl1bOyz23U6hSK10r4guw==" + }, + "hermes-engine": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.2.1.tgz", + "integrity": "sha512-eNHUQHuadDMJARpaqvlCZoK/Nitpj6oywq3vQ3wCwEsww5morX34mW5PmKWQTO7aU0ck0hgulxR+EVDlXygGxQ==" + }, + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", + "dev": true + }, + "image-size": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", + "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==" + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", + "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==", + "dev": true, + "optional": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + }, + "dependencies": { + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + } + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "dev": true, + "requires": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest/-/jest-25.5.4.tgz", + "integrity": "sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ==", + "dev": true, + "requires": { + "@jest/core": "^25.5.4", + "import-local": "^3.0.2", + "jest-cli": "^25.5.4" + }, + "dependencies": { + "@jest/console": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", + "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "jest-message-util": "^25.5.0", + "jest-util": "^25.5.0", + "slash": "^3.0.0" + } + }, + "@jest/test-result": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", + "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/types": "^25.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-cli": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.5.4.tgz", + "integrity": "sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==", + "dev": true, + "requires": { + "@jest/core": "^25.5.4", + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^25.5.4", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", + "prompts": "^2.0.1", + "realpath-native": "^2.0.0", + "yargs": "^15.3.1" + } + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "jest-validate": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz", + "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "jest-get-type": "^25.2.6", + "leven": "^3.1.0", + "pretty-format": "^25.5.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "realpath-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", + "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "jest-changed-files": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.5.0.tgz", + "integrity": "sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "execa": "^3.2.0", + "throat": "^5.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "jest-config": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.5.4.tgz", + "integrity": "sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^25.5.4", + "@jest/types": "^25.5.0", + "babel-jest": "^25.5.1", + "chalk": "^3.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^25.5.0", + "jest-environment-node": "^25.5.0", + "jest-get-type": "^25.2.6", + "jest-jasmine2": "^25.5.4", + "jest-regex-util": "^25.2.6", + "jest-resolve": "^25.5.1", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", + "micromatch": "^4.0.2", + "pretty-format": "^25.5.0", + "realpath-native": "^2.0.0" + }, + "dependencies": { + "@jest/transform": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz", + "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^25.5.0", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^3.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^25.5.1", + "jest-regex-util": "^25.2.6", + "jest-util": "^25.5.0", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "realpath-native": "^2.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "babel-jest": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz", + "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==", + "dev": true, + "requires": { + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz", + "integrity": "sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-jest": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz", + "integrity": "sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^25.5.0", + "babel-preset-current-node-syntax": "^0.1.2" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "jest-haste-map": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", + "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "@types/graceful-fs": "^4.1.2", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-serializer": "^25.5.0", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7", + "which": "^2.0.2" + } + }, + "jest-regex-util": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz", + "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==", + "dev": true + }, + "jest-serializer": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", + "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "jest-validate": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz", + "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "jest-get-type": "^25.2.6", + "leven": "^3.1.0", + "pretty-format": "^25.5.0" + } + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", + "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "realpath-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", + "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + } + } + }, + "jest-diff": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", + "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", + "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", + "dev": true + }, + "jest-each": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.5.0.tgz", + "integrity": "sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "jest-get-type": "^25.2.6", + "jest-util": "^25.5.0", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz", + "integrity": "sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==", + "dev": true, + "requires": { + "@jest/environment": "^25.5.0", + "@jest/fake-timers": "^25.5.0", + "@jest/types": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-util": "^25.5.0", + "jsdom": "^15.2.1" + }, + "dependencies": { + "@jest/fake-timers": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz", + "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-util": "^25.5.0", + "lolex": "^5.0.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-mock": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz", + "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0" + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "jest-environment-node": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.5.0.tgz", + "integrity": "sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==", + "dev": true, + "requires": { + "@jest/environment": "^25.5.0", + "@jest/fake-timers": "^25.5.0", + "@jest/types": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-util": "^25.5.0", + "semver": "^6.3.0" + }, + "dependencies": { + "@jest/fake-timers": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz", + "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-util": "^25.5.0", + "lolex": "^5.0.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-mock": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz", + "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0" + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "jest-fetch-mock": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/jest-fetch-mock/-/jest-fetch-mock-3.0.3.tgz", + "integrity": "sha512-Ux1nWprtLrdrH4XwE7O7InRY6psIi3GOsqNESJgMJ+M5cv4A8Lh7SN9d2V2kKRZ8ebAfcd1LNyZguAOb6JiDqw==", + "dev": true, + "requires": { + "cross-fetch": "^3.0.4", + "promise-polyfill": "^8.1.3" + } + }, + "jest-get-type": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" + }, + "jest-haste-map": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", + "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", + "requires": { + "@jest/types": "^24.9.0", + "anymatch": "^2.0.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.2.7", + "graceful-fs": "^4.1.15", + "invariant": "^2.2.4", + "jest-serializer": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.9.0", + "micromatch": "^3.1.10", + "sane": "^4.0.3", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz", + "integrity": "sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^25.5.0", + "@jest/source-map": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "co": "^4.6.0", + "expect": "^25.5.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^25.5.0", + "jest-matcher-utils": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-runtime": "^25.5.4", + "jest-snapshot": "^25.5.1", + "jest-util": "^25.5.0", + "pretty-format": "^25.5.0", + "throat": "^5.0.0" + }, + "dependencies": { + "@jest/console": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", + "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "jest-message-util": "^25.5.0", + "jest-util": "^25.5.0", + "slash": "^3.0.0" + } + }, + "@jest/source-map": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.5.0.tgz", + "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", + "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/types": "^25.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz", + "integrity": "sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==", + "dev": true, + "requires": { + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-matcher-utils": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz", + "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "jest-diff": "^25.5.0", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", + "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^2.0.1", + "micromatch": "^3.1.10", + "slash": "^2.0.0", + "stack-utils": "^1.0.1" + }, + "dependencies": { + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + } + } + }, + "jest-mock": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", + "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", + "requires": { + "@jest/types": "^24.9.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz", + "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==", + "dev": true + }, + "jest-regex-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", + "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==", + "dev": true + }, + "jest-resolve": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz", + "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "browser-resolve": "^1.11.3", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.1", + "read-pkg-up": "^7.0.1", + "realpath-native": "^2.0.0", + "resolve": "^1.17.0", + "slash": "^3.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "realpath-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", + "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "jest-resolve-dependencies": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz", + "integrity": "sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "jest-regex-util": "^25.2.6", + "jest-snapshot": "^25.5.1" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-regex-util": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz", + "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runner": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.5.4.tgz", + "integrity": "sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/environment": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^25.5.4", + "jest-docblock": "^25.3.0", + "jest-haste-map": "^25.5.1", + "jest-jasmine2": "^25.5.4", + "jest-leak-detector": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-resolve": "^25.5.1", + "jest-runtime": "^25.5.4", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, + "dependencies": { + "@jest/console": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", + "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "jest-message-util": "^25.5.0", + "jest-util": "^25.5.0", + "slash": "^3.0.0" + } + }, + "@jest/test-result": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", + "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/types": "^25.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-docblock": { + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.3.0.tgz", + "integrity": "sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-haste-map": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", + "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "@types/graceful-fs": "^4.1.2", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-serializer": "^25.5.0", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7", + "which": "^2.0.2" + } + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-serializer": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", + "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", + "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "jest-runtime": { + "version": "25.5.4", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.5.4.tgz", + "integrity": "sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/environment": "^25.5.0", + "@jest/globals": "^25.5.2", + "@jest/source-map": "^25.5.0", + "@jest/test-result": "^25.5.0", + "@jest/transform": "^25.5.1", + "@jest/types": "^25.5.0", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^25.5.4", + "jest-haste-map": "^25.5.1", + "jest-message-util": "^25.5.0", + "jest-mock": "^25.5.0", + "jest-regex-util": "^25.2.6", + "jest-resolve": "^25.5.1", + "jest-snapshot": "^25.5.1", + "jest-util": "^25.5.0", + "jest-validate": "^25.5.0", + "realpath-native": "^2.0.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.3.1" + }, + "dependencies": { + "@jest/console": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", + "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "jest-message-util": "^25.5.0", + "jest-util": "^25.5.0", + "slash": "^3.0.0" + } + }, + "@jest/source-map": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.5.0.tgz", + "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", + "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/types": "^25.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/transform": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz", + "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^25.5.0", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^3.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^25.5.1", + "jest-regex-util": "^25.2.6", + "jest-util": "^25.5.0", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "realpath-native": "^2.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "jest-haste-map": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", + "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "@types/graceful-fs": "^4.1.2", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-serializer": "^25.5.0", + "jest-util": "^25.5.0", + "jest-worker": "^25.5.0", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7", + "which": "^2.0.2" + } + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-mock": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz", + "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0" + } + }, + "jest-regex-util": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz", + "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==", + "dev": true + }, + "jest-serializer": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", + "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4" + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "jest-validate": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz", + "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "jest-get-type": "^25.2.6", + "leven": "^3.1.0", + "pretty-format": "^25.5.0" + } + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", + "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "realpath-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", + "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "jest-serializer": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", + "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" + }, + "jest-snapshot": { + "version": "25.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.5.1.tgz", + "integrity": "sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/prettier": "^1.19.0", + "chalk": "^3.0.0", + "expect": "^25.5.0", + "graceful-fs": "^4.2.4", + "jest-diff": "^25.5.0", + "jest-get-type": "^25.2.6", + "jest-matcher-utils": "^25.5.0", + "jest-message-util": "^25.5.0", + "jest-resolve": "^25.5.1", + "make-dir": "^3.0.0", + "natural-compare": "^1.4.0", + "pretty-format": "^25.5.0", + "semver": "^6.3.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "jest-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", + "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", + "requires": { + "@jest/console": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/source-map": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "callsites": "^3.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.15", + "is-ci": "^2.0.0", + "mkdirp": "^0.5.1", + "slash": "^2.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "jest-validate": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", + "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", + "requires": { + "@jest/types": "^24.9.0", + "camelcase": "^5.3.1", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "leven": "^3.1.0", + "pretty-format": "^24.9.0" + } + }, + "jest-watcher": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.5.0.tgz", + "integrity": "sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q==", + "dev": true, + "requires": { + "@jest/test-result": "^25.5.0", + "@jest/types": "^25.5.0", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "jest-util": "^25.5.0", + "string-length": "^3.1.0" + }, + "dependencies": { + "@jest/console": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", + "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "jest-message-util": "^25.5.0", + "jest-util": "^25.5.0", + "slash": "^3.0.0" + } + }, + "@jest/test-result": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", + "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", + "dev": true, + "requires": { + "@jest/console": "^25.5.0", + "@jest/types": "^25.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-message-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", + "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^25.5.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-util": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", + "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "chalk": "^3.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "make-dir": "^3.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jetifier": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/jetifier/-/jetifier-1.6.5.tgz", + "integrity": "sha512-T7yzBSu9PR+DqjYt+I0KVO1XTb1QhAfHnXV5Nd3xpbXM6Xg4e3vP60Q4qkNU8Fh6PHC2PivPUNN3rY7G2MxcDQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsc-android": { + "version": "245459.0.0", + "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-245459.0.0.tgz", + "integrity": "sha512-wkjURqwaB1daNkDi2OYYbsLnIdC/lUM2nPXQKRs5pqEU9chDg435bjvo+LSaHotDENygHQDHe+ntUkkw2gwMtg==" + }, + "jsdom": { + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz", + "integrity": "sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^7.1.0", + "acorn-globals": "^4.3.2", + "array-equal": "^1.0.0", + "cssom": "^0.4.1", + "cssstyle": "^2.0.0", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.1", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.2.0", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.7", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^7.0.0", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "ws": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz", + "integrity": "sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==", + "dev": true + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jsrsasign": { + "version": "8.0.15", + "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-8.0.15.tgz", + "integrity": "sha512-6UKHqnNs5lYROn03wf1BTw7DQx5tW616DTigjbo0JHV97D3HzIqYmPVCBSNsfEfQOrfpFqmPZJvaC3cMNOT0Yw==" + }, + "jsx-ast-utils": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", + "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "object.assign": "^4.1.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "latlon-geohash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/latlon-geohash/-/latlon-geohash-2.0.0.tgz", + "integrity": "sha512-OKBswTwrvTdtenV+9C9euBmvgGuqyjJNAzpQCarRz1m8/pYD2nz9fKkXmLs2S3jeXaLi3Ry76twQplKKUlgS/g==" + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "requires": { + "invert-kv": "^2.0.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "lodash-es": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz", + "integrity": "sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, + "lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "^2.0.1" + } + }, + "logkitty": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.6.1.tgz", + "integrity": "sha512-cHuXN8qUZuzX/7kB6VyS7kB4xyD24e8gyHXIFNhIv+fjW3P+jEXNUhj0o/7qWJtv7UZpbnPgUqzu/AZQ8RAqxQ==", + "requires": { + "ansi-fragments": "^0.2.1", + "dayjs": "^1.8.15", + "yargs": "^12.0.5" + } + }, + "lolex": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", + "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lottie-ios": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/lottie-ios/-/lottie-ios-3.1.6.tgz", + "integrity": "sha512-pnwkPpM3e6CiHY/Mc1eXlDEfvv/CW9jx/TNsX/JWABVF0RiyEidQd8uXBiu5GUxY813pZJN53+k+/cOiAufE5A==" + }, + "lottie-react-native": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lottie-react-native/-/lottie-react-native-3.3.2.tgz", + "integrity": "sha512-FS8sXDL7s7TUj3Aq0raAZKNOJUO7tuqqOAv5r5yzsZgc0t7Oo4QDxCREsaO2oqSGtTyJKlLlF6/e2g+J5XFSAQ==", + "requires": { + "invariant": "^2.2.2", + "lottie-ios": "^3.1.3", + "prop-types": "^15.5.10", + "react-native-safe-modules": "^1.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "requires": { + "tmpl": "1.0.x" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "requires": { + "readable-stream": "^2.0.1" + } + }, + "metro": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.54.1.tgz", + "integrity": "sha512-6ODPT4mEo4FCpbExRNnQAcZmf1VeNvYOTMj2Na03FjGqhNODHhI2U/wF/Ul5gqTyJ2dVdkXeyvKW3gl/LrnJRg==", + "requires": { + "@babel/core": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/plugin-external-helpers": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "absolute-path": "^0.0.0", + "async": "^2.4.0", + "babel-preset-fbjs": "^3.1.2", + "buffer-crc32": "^0.2.13", + "chalk": "^2.4.1", + "concat-stream": "^1.6.0", + "connect": "^3.6.5", + "debug": "^2.2.0", + "denodeify": "^1.2.1", + "eventemitter3": "^3.0.0", + "fbjs": "^1.0.0", + "fs-extra": "^1.0.0", + "graceful-fs": "^4.1.3", + "image-size": "^0.6.0", + "invariant": "^2.2.4", + "jest-haste-map": "^24.7.1", + "jest-worker": "^24.6.0", + "json-stable-stringify": "^1.0.1", + "lodash.throttle": "^4.1.1", + "merge-stream": "^1.0.1", + "metro-babel-register": "0.54.1", + "metro-babel-transformer": "0.54.1", + "metro-cache": "0.54.1", + "metro-config": "0.54.1", + "metro-core": "0.54.1", + "metro-inspector-proxy": "0.54.1", + "metro-minify-uglify": "0.54.1", + "metro-react-native-babel-preset": "0.54.1", + "metro-resolver": "0.54.1", + "metro-source-map": "0.54.1", + "mime-types": "2.1.11", + "mkdirp": "^0.5.1", + "node-fetch": "^2.2.0", + "nullthrows": "^1.1.0", + "react-transform-hmr": "^1.0.4", + "resolve": "^1.5.0", + "rimraf": "^2.5.4", + "serialize-error": "^2.1.0", + "source-map": "^0.5.6", + "temp": "0.8.3", + "throat": "^4.1.0", + "wordwrap": "^1.0.0", + "write-file-atomic": "^1.2.0", + "ws": "^1.1.5", + "xpipe": "^1.0.5", + "yargs": "^9.0.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "metro-react-native-babel-preset": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.54.1.tgz", + "integrity": "sha512-Hfr32+u5yYl3qhYQJU8NQ26g4kQlc3yFMg7keVR/3H8rwBIbFqXgsKt8oe0dOrv7WvrMqBHhDtVdU9ls3sSq8g==", + "requires": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.0.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "metro-babel7-plugin-react-transform": "0.54.1", + "react-transform-hmr": "^1.0.4" + } + }, + "mime-db": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", + "integrity": "sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=" + }, + "mime-types": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", + "integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=", + "requires": { + "mime-db": "~1.23.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "metro-babel-register": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.54.1.tgz", + "integrity": "sha512-j3VydgncUG8HP6AZala6GTIt3V01nptodnnOke3JMYLqgk8EJ1LOVOdotK9pXi80o7EmmNKFs/LyyH8z+uAJzQ==", + "requires": { + "@babel/core": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/register": "^7.0.0", + "core-js": "^2.2.2", + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "metro-babel-transformer": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.54.1.tgz", + "integrity": "sha512-2aiAnuYBdcLV1VINb8ENAA4keIaJIepHgR9+iRvIde+9GSjKnexqx4nNmJN392285gRDp1fVZ7uY0uQawK/A5g==", + "requires": { + "@babel/core": "^7.0.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "metro-babel7-plugin-react-transform": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro-babel7-plugin-react-transform/-/metro-babel7-plugin-react-transform-0.54.1.tgz", + "integrity": "sha512-jWm5myuMoZAOhoPsa8ItfDxdTcOzKhTTzzhFlbZnRamE7i9qybeMdrZt8KHQpF7i2p/mKzE9Yhf4ouOz5K/jHg==", + "requires": { + "@babel/helper-module-imports": "^7.0.0" + } + }, + "metro-cache": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.54.1.tgz", + "integrity": "sha512-RxCFoNcANHXZYi4MIQNnqh68gUnC3bMpzCFJY5pBoqqdrkkn8ibYglBweA0/DW7hx1OZTJWelwS1Dp8xxmE2CA==", + "requires": { + "jest-serializer": "^24.4.0", + "metro-core": "0.54.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4" + } + }, + "metro-config": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.54.1.tgz", + "integrity": "sha512-FpxrA+63rGkPGvGI653dvuSreJzU+eOTILItVnnhmqwn2SAK5V00N/qGTOIJe2YIuWEFXwCzw9lXmANrXbwuGg==", + "requires": { + "cosmiconfig": "^5.0.5", + "jest-validate": "^24.7.0", + "metro": "0.54.1", + "metro-cache": "0.54.1", + "metro-core": "0.54.1", + "pretty-format": "^24.7.0" + } + }, + "metro-core": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.54.1.tgz", + "integrity": "sha512-8oz3Ck7QFBzW9dG9tKFhrXHKPu2Ajx3R7eatf61Gl6Jf/tF7PNouv3wHxPsJW3oXDFiwKLszd89+OgleTGkB5g==", + "requires": { + "jest-haste-map": "^24.7.1", + "lodash.throttle": "^4.1.1", + "metro-resolver": "0.54.1", + "wordwrap": "^1.0.0" + } + }, + "metro-inspector-proxy": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.54.1.tgz", + "integrity": "sha512-sf6kNu7PgFW6U+hU7YGZfbAUKAPVvCJhY8YVu/A1RMKH9nNULrCo+jlWh0gWgmFfWRQiAPCElevROg+5somk8A==", + "requires": { + "connect": "^3.6.5", + "debug": "^2.2.0", + "rxjs": "^5.4.3", + "ws": "^1.1.5", + "yargs": "^9.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "metro-minify-uglify": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.54.1.tgz", + "integrity": "sha512-z+pOPna/8IxD4OhjW6Xo1mV2EszgqqQHqBm1FdmtdF6IpWkQp33qpDBNEi9NGZTOr7pp2bvcxZnvNJdC2lrK9Q==", + "requires": { + "uglify-es": "^3.1.9" + } + }, + "metro-react-native-babel-preset": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.56.0.tgz", + "integrity": "sha512-MAo1fm0dNn6MVZmylaz6k2HC1MINHLTLfE7O3a9Xz3fAtbGbApisp06rBUfK5uUqIJDmAaKgbiT34lHJSIiE6Q==", + "dev": true, + "requires": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.0.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "metro-react-native-babel-transformer": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.54.1.tgz", + "integrity": "sha512-ECw7xG91t8dk/PHdiyoC5SP1s9OQzfmJzG5m0YOZaKtHMe534qTDbncxaKfTI3CP99yti2maXFBRVj+xyvph/g==", + "requires": { + "@babel/core": "^7.0.0", + "babel-preset-fbjs": "^3.1.2", + "metro-babel-transformer": "0.54.1", + "metro-react-native-babel-preset": "0.54.1" + }, + "dependencies": { + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "metro-react-native-babel-preset": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.54.1.tgz", + "integrity": "sha512-Hfr32+u5yYl3qhYQJU8NQ26g4kQlc3yFMg7keVR/3H8rwBIbFqXgsKt8oe0dOrv7WvrMqBHhDtVdU9ls3sSq8g==", + "requires": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.0.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "metro-babel7-plugin-react-transform": "0.54.1", + "react-transform-hmr": "^1.0.4" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "metro-resolver": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.54.1.tgz", + "integrity": "sha512-Byv1LIawYAASy9CFRwzrncYnqaFGLe8vpw178EtzStqP05Hu6hXSqkNTrfoXa+3V9bPFGCrVzFx2NY3gFp2btg==", + "requires": { + "absolute-path": "^0.0.0" + } + }, + "metro-source-map": { + "version": "0.54.1", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.54.1.tgz", + "integrity": "sha512-E9iSYMSUSq5qYi1R2hTQtxH4Mxjzfgr/jaSmQIWi7h3fG2P1qOZNNSzeaeUeTK+s2N/ksVlkcL5kMikol8CDrQ==", + "requires": { + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "source-map": "^0.5.6" + } + }, + "metro-symbolicate": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.56.4.tgz", + "integrity": "sha512-8mCNNn6zV5FFKCIcRgI7736Xl+owgvYuy8qanPxZN36f7utiWRYeB+PirEBPcglBk4qQvoy2lT6oPULNXZQbbQ==", + "requires": { + "invariant": "^2.2.4", + "metro-source-map": "^0.56.4", + "source-map": "^0.5.6", + "through2": "^2.0.1", + "vlq": "^1.0.0" + }, + "dependencies": { + "metro-source-map": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.56.4.tgz", + "integrity": "sha512-f1P9/rpFmG3Z0Jatiw2zvLItx1TwR7mXTSDj4qLDCWeVMB3kEXAr3R0ucumTW8c6HfpJljeRBWzYFXF33fd81g==", + "requires": { + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "invariant": "^2.2.4", + "metro-symbolicate": "^0.56.4", + "ob1": "^0.56.4", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz", + "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==" + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "mock-async-storage": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/mock-async-storage/-/mock-async-storage-2.2.0.tgz", + "integrity": "sha512-HpMe9KNKxlyiRyOXFBrEOSQ1Idcoz1k5W5J+6C8zYzjasSxFJlrA5wVVjPR4U6zJJtrbuky1c0s1o3whzgghSQ==", + "dev": true, + "requires": { + "deepmerge": "^3.3.0" + } + }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + }, + "moment-timezone": { + "version": "0.5.28", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz", + "integrity": "sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw==", + "requires": { + "moment": ">= 2.9.0" + } + }, + "morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "requires": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "optional": true + }, + "nanoid": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.9.tgz", + "integrity": "sha512-fFiXlFo4Wkuei3i6w9SQI6yuzGRTGi8Z2zZKZpUxv/bQlBi4jtbVPBSNFZHQA9PNjofWqtIa8p+pnsc0kgZrhQ==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" + }, + "node-notifier": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", + "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", + "requires": { + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "ob1": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.56.4.tgz", + "integrity": "sha512-URgFof9z2wotiYFsqlydXtQfGV81gvBI2ODy64xfd3vPo+AYom5PVDX4t4zn23t/O+S2IxqApSQM8uJAybmz7w==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", + "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.fromentries": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", + "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + } + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opencollective-postinstall": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", + "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==" + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" + }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + } + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, + "p-each-series": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz", + "integrity": "sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + } + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" + }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "pegjs": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", + "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } + }, + "plist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", + "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", + "requires": { + "base64-js": "^1.2.3", + "xmlbuilder": "^9.0.7", + "xmldom": "0.1.x" + }, + "dependencies": { + "xmldom": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", + "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==" + } + } + }, + "plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "requires": { + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" + }, + "dependencies": { + "arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "requires": { + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" + } + }, + "arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=" + }, + "extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", + "requires": { + "kind-of": "^1.1.0" + } + }, + "kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=" + } + } + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prettier": { + "version": "1.16.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz", + "integrity": "sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==", + "dev": true + }, + "pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, + "promise-polyfill": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz", + "integrity": "sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g==", + "dev": true + }, + "prompts": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", + "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.4" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "query-string": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.12.1.tgz", + "integrity": "sha512-OHj+zzfRMyj3rmo/6G8a5Ifvw3AleL/EbcHMD27YA31Q+cO5lfmQxECkImuNVjcskLcvBRVHNAB3w6udMs1eAA==", + "requires": { + "decode-uri-component": "^0.2.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, + "random-location": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/random-location/-/random-location-1.1.3.tgz", + "integrity": "sha512-+9SZa8R0JTfjrdgImCyq4TJRDzGHfUM9qghsA3D7zrMnUaQVn/xIDtFI+yPegJGO7KuIkduNlL8JXqu3M7Au7w==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "react": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.9.0.tgz", + "integrity": "sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-deep-force-update": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-1.1.2.tgz", + "integrity": "sha512-WUSQJ4P/wWcusaH+zZmbECOk7H5N2pOIl0vzheeornkIMhu+qrNdGFm0bDZLCb0hSF0jf/kH1SgkNGfBdTc4wA==" + }, + "react-devtools-core": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-3.6.3.tgz", + "integrity": "sha512-+P+eFy/yo8Z/UH9J0DqHZuUM5+RI2wl249TNvMx3J2jpUomLQa4Zxl56GEotGfw3PIP1eI+hVf1s53FlUONStQ==", + "requires": { + "shell-quote": "^1.6.1", + "ws": "^3.3.1" + }, + "dependencies": { + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-native": { + "version": "0.61.5", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.61.5.tgz", + "integrity": "sha512-MXqE3NoGO0T3dUKIKkIppijBhRRMpfN6ANbhMXHDuyfA+fSilRWgCwYgR/YNCC7ntECoJYikKaNTUBB0DeQy6Q==", + "requires": { + "@babel/runtime": "^7.0.0", + "@react-native-community/cli": "^3.0.0", + "@react-native-community/cli-platform-android": "^3.0.0", + "@react-native-community/cli-platform-ios": "^3.0.0", + "abort-controller": "^3.0.0", + "art": "^0.10.0", + "base64-js": "^1.1.2", + "connect": "^3.6.5", + "create-react-class": "^15.6.3", + "escape-string-regexp": "^1.0.5", + "event-target-shim": "^5.0.1", + "fbjs": "^1.0.0", + "fbjs-scripts": "^1.1.0", + "hermes-engine": "^0.2.1", + "invariant": "^2.2.4", + "jsc-android": "^245459.0.0", + "metro-babel-register": "^0.56.0", + "metro-react-native-babel-transformer": "^0.56.0", + "metro-source-map": "^0.56.0", + "nullthrows": "^1.1.0", + "pretty-format": "^24.7.0", + "promise": "^7.1.1", + "prop-types": "^15.7.2", + "react-devtools-core": "^3.6.3", + "react-refresh": "^0.4.0", + "regenerator-runtime": "^0.13.2", + "scheduler": "0.15.0", + "stacktrace-parser": "^0.1.3", + "whatwg-fetch": "^3.0.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/runtime": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@react-native-community/cli": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-3.2.1.tgz", + "integrity": "sha512-bZ/bfZ+9r1gQSxp6t7+00DcpC6vmbVYSvzUCFM/yo5k8bhsDdcy8aocscIaXXVGG+v9Edri/Q7hH9ks7L18/Rg==", + "requires": { + "@hapi/joi": "^15.0.3", + "@react-native-community/cli-debugger-ui": "^3.0.0", + "@react-native-community/cli-tools": "^3.0.0", + "@react-native-community/cli-types": "^3.0.0", + "chalk": "^2.4.2", + "command-exists": "^1.2.8", + "commander": "^2.19.0", + "compression": "^1.7.1", + "connect": "^3.6.5", + "cosmiconfig": "^5.1.0", + "deepmerge": "^3.2.0", + "didyoumean": "^1.2.1", + "envinfo": "^7.1.0", + "errorhandler": "^1.5.0", + "execa": "^1.0.0", + "find-up": "^4.1.0", + "fs-extra": "^7.0.1", + "glob": "^7.1.1", + "graceful-fs": "^4.1.3", + "inquirer": "^3.0.6", + "lodash": "^4.17.5", + "metro": "^0.56.0", + "metro-config": "^0.56.0", + "metro-core": "^0.56.0", + "metro-react-native-babel-transformer": "^0.56.0", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "morgan": "^1.9.0", + "node-notifier": "^5.2.1", + "open": "^6.2.0", + "ora": "^3.4.0", + "plist": "^3.0.0", + "pretty-format": "^25.1.0", + "semver": "^6.3.0", + "serve-static": "^1.13.1", + "shell-quote": "1.6.1", + "strip-ansi": "^5.2.0", + "sudo-prompt": "^9.0.0", + "wcwidth": "^1.0.1", + "ws": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + } + } + }, + "@react-native-community/cli-platform-android": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-3.1.4.tgz", + "integrity": "sha512-ClSdY20F0gzWVLTqCv7vHjnUqOcuq10jd9GgHX6lGSc2GI+Ql3/aQg3tmG4uY3KXNNwAv3U8QCoYgg1WGfwiHA==", + "requires": { + "@react-native-community/cli-tools": "^3.0.0", + "chalk": "^2.4.2", + "execa": "^1.0.0", + "jetifier": "^1.6.2", + "logkitty": "^0.6.0", + "slash": "^3.0.0", + "xmldoc": "^1.1.2" + } + }, + "@react-native-community/cli-platform-ios": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-3.2.0.tgz", + "integrity": "sha512-pzEnx68H6+mHBq5jsMrr3UmAmkrLSMlC9BZ4yoUdfUXCQq6/R70zNYvH4hjUw8h2Al7Kgq53UzHUsM0ph8TSWQ==", + "requires": { + "@react-native-community/cli-tools": "^3.0.0", + "chalk": "^2.4.2", + "js-yaml": "^3.13.1", + "xcode": "^2.0.0" + } + }, + "@react-native-community/cli-tools": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-3.0.0.tgz", + "integrity": "sha512-8IhQKZdf3E4CR8T7HhkPGgorot/cLkRDgneJFDSWk/wCYZAuUh4NEAdumQV7N0jLSMWX7xxiWUPi94lOBxVY9g==", + "requires": { + "chalk": "^2.4.2", + "lodash": "^4.17.5", + "mime": "^2.4.1", + "node-fetch": "^2.5.0" + } + }, + "@types/yargs": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "metro": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.56.4.tgz", + "integrity": "sha512-Kt3OQJQtQdts0JrKnyGdLpKHDjqYBgIfzvYrvfhmFCkKuZ8aqRlVnvpfjQ4/OBm0Fmm9NyyxbNRD9VIbj7WjnA==", + "requires": { + "@babel/core": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/plugin-external-helpers": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "absolute-path": "^0.0.0", + "async": "^2.4.0", + "babel-preset-fbjs": "^3.1.2", + "buffer-crc32": "^0.2.13", + "chalk": "^2.4.1", + "concat-stream": "^1.6.0", + "connect": "^3.6.5", + "debug": "^2.2.0", + "denodeify": "^1.2.1", + "eventemitter3": "^3.0.0", + "fbjs": "^1.0.0", + "fs-extra": "^1.0.0", + "graceful-fs": "^4.1.3", + "image-size": "^0.6.0", + "invariant": "^2.2.4", + "jest-haste-map": "^24.7.1", + "jest-worker": "^24.6.0", + "json-stable-stringify": "^1.0.1", + "lodash.throttle": "^4.1.1", + "merge-stream": "^1.0.1", + "metro-babel-register": "^0.56.4", + "metro-babel-transformer": "^0.56.4", + "metro-cache": "^0.56.4", + "metro-config": "^0.56.4", + "metro-core": "^0.56.4", + "metro-inspector-proxy": "^0.56.4", + "metro-minify-uglify": "^0.56.4", + "metro-react-native-babel-preset": "^0.56.4", + "metro-resolver": "^0.56.4", + "metro-source-map": "^0.56.4", + "metro-symbolicate": "^0.56.4", + "mime-types": "2.1.11", + "mkdirp": "^0.5.1", + "node-fetch": "^2.2.0", + "nullthrows": "^1.1.0", + "resolve": "^1.5.0", + "rimraf": "^2.5.4", + "serialize-error": "^2.1.0", + "source-map": "^0.5.6", + "temp": "0.8.3", + "throat": "^4.1.0", + "wordwrap": "^1.0.0", + "write-file-atomic": "^1.2.0", + "ws": "^1.1.5", + "xpipe": "^1.0.5", + "yargs": "^9.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" + } + } + } + }, + "metro-babel-register": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.56.4.tgz", + "integrity": "sha512-Phm6hMluOWYqfykftjJ1jsTpWvbgb49AC/1taxEctxUdRCZlFgZwBleJZAhQYxJD5J+ikFkEbHDzePEXb29KVA==", + "requires": { + "@babel/core": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/register": "^7.0.0", + "core-js": "^2.2.2", + "escape-string-regexp": "^1.0.5" + } + }, + "metro-babel-transformer": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.56.4.tgz", + "integrity": "sha512-IOi4ILgZvaX7GCGHBJp79paNVOq5QxhhbyqAdEJgDP8bHfl/OVHoVKSypfrsMSKSiBrqxhIjyc4XjkXsQtkx5g==", + "requires": { + "@babel/core": "^7.0.0", + "metro-source-map": "^0.56.4" + } + }, + "metro-cache": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.56.4.tgz", + "integrity": "sha512-d1hiUSKwtRsuMxUhHVJ3tjK2BbpUlJGvTyMWohK8Wxx+0GbnWRWWFcI4vlCzlZfoK0VtZK2MJEl5t7Du1mIniQ==", + "requires": { + "jest-serializer": "^24.4.0", + "metro-core": "^0.56.4", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4" + } + }, + "metro-config": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.56.4.tgz", + "integrity": "sha512-O85QDHwWdMn/8ERe13y4a6vbZL0AHyO8atTvL+9BCulLEO+FQBi1iJjr3+ViLa8cf0m5dRftDsa7P47m5euk4A==", + "requires": { + "cosmiconfig": "^5.0.5", + "jest-validate": "^24.7.0", + "metro": "^0.56.4", + "metro-cache": "^0.56.4", + "metro-core": "^0.56.4", + "pretty-format": "^24.7.0" + } + }, + "metro-core": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.56.4.tgz", + "integrity": "sha512-hMzkBdgPt5Zm9nr/1KtIT+A6H7TNiLVCEGG5OiAXj8gTRsA2yy7wAdQpwy0xbE+zi88t/pLOzXpd3ClG/YxyWg==", + "requires": { + "jest-haste-map": "^24.7.1", + "lodash.throttle": "^4.1.1", + "metro-resolver": "^0.56.4", + "wordwrap": "^1.0.0" + } + }, + "metro-inspector-proxy": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.56.4.tgz", + "integrity": "sha512-E1S3MO25mWKmcLn1UQuCDiS0hf9P2Fwq8sEAX5lBLoZbehepNH+4xJ3xXSY51JX4dozBrE8GGoKL4ll3II40LA==", + "requires": { + "connect": "^3.6.5", + "debug": "^2.2.0", + "rxjs": "^5.4.3", + "ws": "^1.1.5", + "yargs": "^9.0.0" + } + }, + "metro-minify-uglify": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.56.4.tgz", + "integrity": "sha512-BHgj7+BKEK2pHvWHUR730bIrsZwl8DPtr49x9L0j2grPZ5/UROWXzEr8VZgIss7fl64t845uu1HXNNyuSj2EhA==", + "requires": { + "uglify-es": "^3.1.9" + } + }, + "metro-react-native-babel-preset": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.56.4.tgz", + "integrity": "sha512-CzbBDM9Rh6w8s1fq+ZqihAh7DDqUAcfo9pPww25+N/eJ7UK436Q7JdfxwdIPpBwLFn6o6MyYn+uwL9OEWBJarA==", + "requires": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.0.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "react-refresh": "^0.4.0" + } + }, + "metro-react-native-babel-transformer": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.56.4.tgz", + "integrity": "sha512-ng74eutuy1nyGI9+TDzzVAVfEmNPDlapV4msTQMKPi4EFqo/fBn7Ct33ME9l5E51pQBBnxt/UwcpTvd13b29kQ==", + "requires": { + "@babel/core": "^7.0.0", + "babel-preset-fbjs": "^3.1.2", + "metro-babel-transformer": "^0.56.4", + "metro-react-native-babel-preset": "^0.56.4", + "metro-source-map": "^0.56.4" + } + }, + "metro-resolver": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.56.4.tgz", + "integrity": "sha512-Ug4ulVfpkKZ1Wu7mdYj9XLGuOqZTuWCqEhyx3siKTc/2eBwKZQXmiNo5d/IxWNvmwL/87Abeb724I6CMzMfjiQ==", + "requires": { + "absolute-path": "^0.0.0" + } + }, + "metro-source-map": { + "version": "0.56.4", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.56.4.tgz", + "integrity": "sha512-f1P9/rpFmG3Z0Jatiw2zvLItx1TwR7mXTSDj4qLDCWeVMB3kEXAr3R0ucumTW8c6HfpJljeRBWzYFXF33fd81g==", + "requires": { + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "invariant": "^2.2.4", + "metro-symbolicate": "^0.56.4", + "ob1": "^0.56.4", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + } + }, + "mime-db": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", + "integrity": "sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=" + }, + "mime-types": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", + "integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=", + "requires": { + "mime-db": "~1.23.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + }, + "dependencies": { + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + } + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "react-native-animatable": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/react-native-animatable/-/react-native-animatable-1.3.3.tgz", + "integrity": "sha512-2ckIxZQAsvWn25Ho+DK3d1mXIgj7tITkrS4pYDvx96WyOttSvzzFeQnM2od0+FUMzILbdHDsDEqZvnz1DYNQ1w==", + "requires": { + "prop-types": "^15.7.2" + } + }, + "react-native-background-fetch": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/react-native-background-fetch/-/react-native-background-fetch-2.7.1.tgz", + "integrity": "sha512-BNWBVL3kewDJL+B+0gF84iF8viws3AGHwxsWPp+MhWvgb/Su6BPWjgi8u0A9fRYhacozmAcNEPT7E3tah1P8lg==", + "requires": { + "fast-plist": "^0.1.2", + "plist": "^3.0.1", + "xcode": "^2.0.0" + } + }, + "react-native-background-geolocation": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/react-native-background-geolocation/-/react-native-background-geolocation-3.4.2.tgz", + "integrity": "sha512-L2o7q21ih0Ckv1x8hzZoTeW8Wj9gu3fRfMgKhEBG4uRRTGXUBeIQnAk2nRgyHX0Jmj1JnQ0txs1PESZDVBt6vw==", + "requires": { + "fast-plist": "^0.1.2", + "plist": "^2.0.1", + "react-native-background-fetch": "~2.7.1", + "xcode": "^0.9.1" + }, + "dependencies": { + "base64-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", + "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=" + }, + "bplist-creator": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz", + "integrity": "sha1-N98VNgkoJLh8QvlXsBNEEXNyrkU=", + "requires": { + "stream-buffers": "~2.2.0" + } + }, + "bplist-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz", + "integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=", + "requires": { + "big-integer": "^1.6.7" + } + }, + "plist": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-2.1.0.tgz", + "integrity": "sha1-V8zbeggh3yGDEhejytVOPhRqECU=", + "requires": { + "base64-js": "1.2.0", + "xmlbuilder": "8.2.2", + "xmldom": "0.1.x" + } + }, + "simple-plist": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-0.2.1.tgz", + "integrity": "sha1-cXZts1IyaSjPOoByQrp2IyJjZyM=", + "requires": { + "bplist-creator": "0.0.7", + "bplist-parser": "0.1.1", + "plist": "2.0.1" + }, + "dependencies": { + "base64-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.1.2.tgz", + "integrity": "sha1-1kAMrBxMZgl22Q0HoENR2JOV9eg=" + }, + "plist": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/plist/-/plist-2.0.1.tgz", + "integrity": "sha1-CjLKlIGxw2TpLhjcVch23p0B2os=", + "requires": { + "base64-js": "1.1.2", + "xmlbuilder": "8.2.2", + "xmldom": "0.1.x" + } + } + } + }, + "uuid": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" + }, + "xcode": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-0.9.3.tgz", + "integrity": "sha1-kQqJwWrubMC0LKgFptC0z4chHPM=", + "requires": { + "pegjs": "^0.10.0", + "simple-plist": "^0.2.1", + "uuid": "3.0.1" + } + }, + "xmlbuilder": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", + "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=" + }, + "xmldom": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", + "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==" + } + } + }, + "react-native-background-timer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/react-native-background-timer/-/react-native-background-timer-2.2.0.tgz", + "integrity": "sha512-Y7N6diSFko/FCJPMmB0PoBlmY1kEcma7qDVwn8t7zi12GLqpe/Vwls97onkSD8/QL+BR33BygUHOrLTPwgeKfg==" + }, + "react-native-device-info": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-5.4.0.tgz", + "integrity": "sha512-57IZQ7IavRlNZvI1cKypMkjRPa7nmLK6jYVSrvPMYX2VrCszmgJKlP90cZZaX0FObtNt1yYuKAOkBqyjkNrTIA==" + }, + "react-native-extra-dimensions-android": { + "version": "git+https://github.com/greenyossi/react-native-extra-dimensions-android.git#b3d98103607d61fe47cf3131ef3b1ea26e5685f3", + "from": "git+https://github.com/greenyossi/react-native-extra-dimensions-android.git" + }, + "react-native-firebase": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/react-native-firebase/-/react-native-firebase-5.6.0.tgz", + "integrity": "sha512-I+o3zNLdIz4pxWTCSZH70M1BcPl+SdqKQfurOT0sWcaMSL2ecDqVy0PCTmN7ORt7/Z879Er6PLgA/psjArQlmw==", + "requires": { + "opencollective-postinstall": "^2.0.0", + "prop-types": "^15.7.2" + } + }, + "react-native-gesture-handler": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.5.2.tgz", + "integrity": "sha512-Xp03dq4XYVTD0xmWx4DW4eX+ox1NQLjHmbykspTdS5FCNIVIOekVXRLFCw1698/v8dYUHApNo6K3s3BCD8fqPA==", + "requires": { + "hammerjs": "^2.0.8", + "hoist-non-react-statics": "^2.3.1", + "invariant": "^2.2.4", + "prop-types": "^15.7.2" + } + }, + "react-native-iphone-x-helper": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.2.1.tgz", + "integrity": "sha512-/VbpIEp8tSNNHIvstuA3Swx610whci1Zpc9mqNkqn14DkMbw+ORviln2u0XyHG1kPvvwTNGZY6QpeFwxYaSdbQ==" + }, + "react-native-maps": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/react-native-maps/-/react-native-maps-0.27.1.tgz", + "integrity": "sha512-HygBkZBecTnIVRYrSiLRAvu4OmXOYso/A7c6Cy73HkOh9CgGV8Ap5eBea24tvmFGptjj5Hg8AJ94/YbmWK1Okw==" + }, + "react-native-network-info": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-native-network-info/-/react-native-network-info-5.2.1.tgz", + "integrity": "sha512-iam74xXtrSqqZurCl1/bSjZ9jXcsJY84g7brx1/4uVGCY26c6m+4CArHNSHOsz5ATg2NQT+81sjNy0KlCPyK4g==" + }, + "react-native-permissions": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/react-native-permissions/-/react-native-permissions-2.0.10.tgz", + "integrity": "sha512-oQmWgm4tqUYyWmMNtYzNO7U/+6+WHyKiRd5cwNeE1FCJTGh8cJ5HapjHw3d6ZVfhSLzNwWqgJy1P4NpTANYa/g==" + }, + "react-native-reanimated": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-1.4.0.tgz", + "integrity": "sha512-tO7nSNNP+iRLVbkcSS5GXyDBb7tSI02+XuRL3/S39EAr35rnvUy2JfeLUQG+fWSObJjnMVhasUDEUwlENk8IXw==" + }, + "react-native-safe-area-context": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-0.7.3.tgz", + "integrity": "sha512-9Uqu1vlXPi+2cKW/CW6OnHxA76mWC4kF3wvlqzq4DY8hn37AeiXtLFs2WkxH4yXQRrnJdP6ivc65Lz+MqwRZAA==" + }, + "react-native-safe-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/react-native-safe-modules/-/react-native-safe-modules-1.0.0.tgz", + "integrity": "sha512-ShT8duWBT30W4OFcltZl+UvpPDikZFURvLDQqAsrvbyy6HzWPGJDCpdqM+6GqzPPs4DPEW31YfMNmdJcZ6zI2w==", + "requires": { + "dedent": "^0.6.0" + } + }, + "react-native-screens": { + "version": "2.0.0-beta.2", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-2.0.0-beta.2.tgz", + "integrity": "sha512-N+k4S/Wr+YGjzuGF49fB4VjIG6Fcaj4md3uxTsyeshEILGptPWAlgb5hAgn6C9xOj1x/rrAoXwZmrPNxPw6CSg==", + "requires": { + "debounce": "^1.2.0" + } + }, + "react-native-settings": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/react-native-settings/-/react-native-settings-0.2.3.tgz", + "integrity": "sha512-8qOvtAaYif7eAFV2ToguHMaMd/EaaWbMUxJ/8i+dRlCfTjY2mAy6TwWcf3CF5mIN8OBXAui59hfgqDbWTb/loQ==" + }, + "react-native-sha1": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/react-native-sha1/-/react-native-sha1-1.2.3.tgz", + "integrity": "sha512-XXkmK/lNY0JqWH0qeI4AOnKdm5Xx1H0CYAA1XsxUN+ihPvC9KY2gL7fVwcBodiuDYUJ8SMBvw6yMTacCk/Gwyg==" + }, + "react-native-splash-screen": { + "version": "git+https://github.com/greenyossi/react-native-splash-screen.git#cf4cabb8e5269a18a764d8bfc7e66c737a0732ae", + "from": "git+https://github.com/greenyossi/react-native-splash-screen.git" + }, + "react-native-sqlite-storage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/react-native-sqlite-storage/-/react-native-sqlite-storage-4.1.0.tgz", + "integrity": "sha512-H8++CILlZQ2f2n+OvVmGyqMaV+UFKTRSTx9/3eIAxBg4d0rjeZogs6hgHlfADvEGNmrEyUBDpnX9+uHnDtwAHQ==" + }, + "react-native-uuid-generator": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/react-native-uuid-generator/-/react-native-uuid-generator-6.1.1.tgz", + "integrity": "sha512-jWF0wiGTUTkCBTpspUZatC7wlhjN3GRbW9YblaxxpuMuhk0DEOQXOp1qgsDd2vLTL8GsM3i7Hnatvfj1kwf88w==" + }, + "react-native-webview": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-9.4.0.tgz", + "integrity": "sha512-BBOFUuza0p04+7fNi7TJmB0arpDJzGxHYwTCgI4vj5n/fl7u4jbm7ETp88mf7lo9lP6C6HGLo38KnEy1aXCQkg==", + "requires": { + "escape-string-regexp": "2.0.0", + "invariant": "2.2.4" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } + }, + "react-native-wifi-reborn": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/react-native-wifi-reborn/-/react-native-wifi-reborn-2.4.0.tgz", + "integrity": "sha512-jp6BoXUBiGl+aR3QlEBHKbkEAy6eLv7rFPl4f1zUkcVXsWaGfTCw0JF2HcT+c6NLw5UkXmZNDB0WuxnvgU5FJg==" + }, + "react-proxy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.8.tgz", + "integrity": "sha1-nb/Z2SdSjDqp9ETkVYw3gwq4wmo=", + "requires": { + "lodash": "^4.6.1", + "react-deep-force-update": "^1.0.0" + } + }, + "react-redux": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.1.3.tgz", + "integrity": "sha512-uI1wca+ECG9RoVkWQFF4jDMqmaw0/qnvaSvOoL/GA4dNxf6LoV8sUAcNDvE5NWKs4hFpn0t6wswNQnY3f7HT3w==", + "requires": { + "@babel/runtime": "^7.5.5", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.2.4", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^16.9.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + } + } + }, + "react-refresh": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.2.tgz", + "integrity": "sha512-kv5QlFFSZWo7OlJFNYbxRtY66JImuP2LcrFgyJfQaf85gSP+byzG21UbDQEYjU7f//ny8rwiEkO6py2Y+fEgAQ==" + }, + "react-test-renderer": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.9.0.tgz", + "integrity": "sha512-R62stB73qZyhrJo7wmCW9jgl/07ai+YzvouvCXIJLBkRlRqLx4j9RqcLEAfNfU3OxTGucqR2Whmn3/Aad6L3hQ==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "react-is": "^16.9.0", + "scheduler": "^0.15.0" + } + }, + "react-transform-hmr": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz", + "integrity": "sha1-4aQL0Krvxy6N/Xp82gmvhQZjl7s=", + "requires": { + "global": "^4.3.0", + "react-proxy": "^1.1.7" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "realpath-native": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", + "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", + "dev": true, + "requires": { + "util.promisify": "^1.0.0" + } + }, + "redux": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", + "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", + "requires": { + "loose-envify": "^1.4.0", + "symbol-observable": "^1.2.0" + }, + "dependencies": { + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + } + } + }, + "redux-mock-store": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.5.4.tgz", + "integrity": "sha512-xmcA0O/tjCLXhh9Fuiq6pMrJCwFRaouA8436zcikdIpYWWCjU76CRk+i2bHx8EeiSiMGnB85/lZdU3wIJVXHTA==", + "dev": true, + "requires": { + "lodash.isplainobject": "^4.0.6" + } + }, + "redux-persist": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/redux-persist/-/redux-persist-4.10.2.tgz", + "integrity": "sha512-U+e0ieMGC69Zr72929iJW40dEld7Mflh6mu0eJtVMLGfMq/aJqjxUM1hzyUWMR1VUyAEEdPHuQmeq5ti9krIgg==", + "requires": { + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.4", + "lodash-es": "^4.17.4" + } + }, + "redux-thunk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", + "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==" + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + }, + "regenerator-transform": { + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz", + "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==", + "requires": { + "@babel/runtime": "^7.8.4", + "private": "^0.1.8" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==" + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "request-promise-core": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", + "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "request-promise-native": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", + "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", + "dev": true, + "requires": { + "request-promise-core": "1.1.3", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "rn-contact-tracing": { + "version": "git+https://github.com/wix-incubator/rn-contact-tracing.git#08d23feb23346e72a89a435dbc4aba92bad53918", + "from": "git+https://github.com/wix-incubator/rn-contact-tracing.git#master" + }, + "rn-fetch-blob": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/rn-fetch-blob/-/rn-fetch-blob-0.12.0.tgz", + "integrity": "sha512-+QnR7AsJ14zqpVVUbzbtAjq0iI8c9tCg49tIoKO2ezjzRunN7YL6zFSFSWZm6d+mE/l9r+OeDM3jmb2tBb2WbA==", + "requires": { + "base-64": "0.1.0", + "glob": "7.0.6" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "requires": { + "rx-lite": "*" + } + }, + "rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "requires": { + "symbol-observable": "1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "saxes": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", + "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", + "dev": true, + "requires": { + "xmlchars": "^2.1.1" + } + }, + "scheduler": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz", + "integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serialize-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", + "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=" + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha256": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sha256/-/sha256-0.2.0.tgz", + "integrity": "sha1-c6C0GNqrcDW/+G6EkeNjQS/CqwU=", + "requires": { + "convert-hex": "~0.1.0", + "convert-string": "~0.1.0" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "requires": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + } + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + }, + "shortid": { + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/shortid/-/shortid-2.2.15.tgz", + "integrity": "sha512-5EaCy2mx2Jgc/Fdn9uuDuNIIfWBpzY4XIlhoqtXF6qsf+/+SGZ+FxDdX/ZsMZiWupIWNqAEmiNY4RC+LSmCeOw==", + "requires": { + "nanoid": "^2.1.0" + }, + "dependencies": { + "nanoid": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz", + "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==" + } + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "simple-plist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.1.0.tgz", + "integrity": "sha512-2i5Tc0BYAqppM7jVzmNrI+aEUntPolIq4fDgji6WuNNn1D/qYdn2KwoLhZdzQkE04lu9L5tUoeJsjuJAvd+lFg==", + "requires": { + "bplist-creator": "0.0.8", + "bplist-parser": "0.2.0", + "plist": "^3.0.1" + } + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + }, + "split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stack-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", + "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==" + }, + "stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "requires": { + "type-fest": "^0.7.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=" + }, + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" + }, + "string-length": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", + "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", + "dev": true, + "requires": { + "astral-regex": "^1.0.0", + "strip-ansi": "^5.2.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + } + }, + "string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", + "dev": true + }, + "sudo-prompt": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", + "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "requires": { + "os-tmpdir": "^1.0.0", + "rimraf": "~2.2.6" + }, + "dependencies": { + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" + } + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "test-exclude": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", + "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "dev": true, + "requires": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + }, + "tslint": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.17.0.tgz", + "integrity": "sha512-pflx87WfVoYepTet3xLfDOLDm9Jqi61UXIKePOuca0qoAZyrGWonDG9VTbji58Fy+8gciUn8Bt7y69+KEVjc/w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" + }, + "dependencies": { + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "tslint-config-prettier": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", + "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", + "dev": true + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" + }, + "dependencies": { + "doctrine": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", + "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", + "dev": true, + "requires": { + "esutils": "^1.1.6", + "isarray": "0.0.1" + } + }, + "esutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", + "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + } + } + }, + "tslint-react": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tslint-react/-/tslint-react-4.0.0.tgz", + "integrity": "sha512-9fNE0fm9zNDx1+b6hgy8rgDN2WsQLRiIrn3+fbqm0tazBVF6jiaCFAITxmU+WSFWYE03Xhp1joCircXOe1WVAQ==", + "dev": true, + "requires": { + "tsutils": "^3.9.1" + } + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", + "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", + "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==" + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "use-subscription": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.4.1.tgz", + "integrity": "sha512-7+IIwDG/4JICrWHL/Q/ZPK5yozEnvRm6vHImu0LKwQlmWGKeiF7mbAenLlK/cTNXrTtXHU/SFASQHzB6+oSJMQ==", + "requires": { + "object-assign": "^4.1.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true + }, + "v8-to-istanbul": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz", + "integrity": "sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vlq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", + "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", + "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", + "dev": true, + "requires": { + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "requires": { + "makeerror": "1.0.x" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "ws": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", + "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "requires": { + "options": ">=0.0.5", + "ultron": "1.0.x" + } + }, + "xcode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-2.1.0.tgz", + "integrity": "sha512-uCrmPITrqTEzhn0TtT57fJaNaw8YJs1aCzs+P/QqxsDbvPZSv7XMPPwXrKvHtD6pLjBM/NaVwraWJm8q83Y4iQ==", + "requires": { + "simple-plist": "^1.0.0", + "uuid": "^3.3.2" + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "xmldoc": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz", + "integrity": "sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==", + "requires": { + "sax": "^1.2.1" + } + }, + "xmldom": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.3.0.tgz", + "integrity": "sha512-z9s6k3wxE+aZHgXYxSTpGDo7BYOUfJsIRyoZiX6HTjwpwfS2wpQBQKa2fD+ShLyPkqDYo5ud7KitmLZ2Cd6r0g==" + }, + "xpipe": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/xpipe/-/xpipe-1.0.5.tgz", + "integrity": "sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98=" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } +} diff --git a/package.json b/package.json index 9438e15f..d299ddb3 100755 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@react-navigation/bottom-tabs": "5.0.3", "@react-navigation/drawer": "5.4.0", "@react-navigation/native": "5.0.3", + "@react-navigation/routers": "5.1.0", "@react-navigation/stack": "5.0.3", "@redux-offline/redux-offline": "2.5.2-native.3", "@tmcw/togeojson": "https://github.com/tmcw/togeojson.git", @@ -30,10 +31,12 @@ "jsrsasign": "^8.0.14", "latlon-geohash": "02.0.0", "lodash": "4.17.15", + "logkitty": "0.7.1", "lottie-ios": "03.1.6", "lottie-react-native": "03.3.2", "moment": "2.24.0", "moment-timezone": "0.5.28", + "random-location": "^1.1.2", "react": "16.9.0", "react-native": "0.61.5", "react-native-animatable": "1.3.3", @@ -54,12 +57,13 @@ "react-native-sha1": "1.2.3", "react-native-splash-screen": "https://github.com/greenyossi/react-native-splash-screen.git", "react-native-sqlite-storage": "4.1.0", - "react-native-uuid-generator": "6.1.1", - "react-native-webview": "9.0.1", + "react-native-uuid-generator": "^6.1.1", + "react-native-webview": "^9.4.0", "react-native-wifi-reborn": "2.4.0", "react-redux": "7.1.3", "redux": "4.0.5", "redux-thunk": "2.3.0", + "rn-contact-tracing": "https://github.com/wix-incubator/rn-contact-tracing.git#master", "rn-fetch-blob": "0.12.0", "seedrandom": "^3.0.5", "sha256": "00.2.0", diff --git a/react-native.config.js b/react-native.config.js new file mode 100644 index 00000000..b642e7c9 --- /dev/null +++ b/react-native.config.js @@ -0,0 +1,9 @@ +module.exports = { + dependencies: { + 'rn-contact-tracing': { + platforms: { + android: null + } + } + } +}; diff --git a/src/App.tsx b/src/App.tsx index c0df3ee5..47183dd6 100755 --- a/src/App.tsx +++ b/src/App.tsx @@ -25,7 +25,7 @@ const App = () => { - + diff --git a/src/ResetMessaging.ts b/src/ResetMessaging.ts new file mode 100644 index 00000000..385ecb4d --- /dev/null +++ b/src/ResetMessaging.ts @@ -0,0 +1,30 @@ +import BackgroundFetch from 'react-native-background-fetch'; +import BackgroundGeolocation from 'react-native-background-geolocation'; +import { startLocationTracking } from './services/LocationService'; +import { scheduleTask } from './services/BackgroundService'; +import { initLocalHeadless } from './actions/LocaleActions'; +import { initConfig } from './config/config'; +import { initBLETracing } from './services/BLEService'; + +const ResetMessaging = async (fromLoad: boolean = true) => { + console.log('data message received'); + try { + if (fromLoad) { + await initConfig(); + } + + await BackgroundFetch.stop(); + + await scheduleTask(); + + const { locale, notificationData } = await initLocalHeadless(); + await BackgroundGeolocation.stop(); + await startLocationTracking(locale, notificationData); + + await initBLETracing(); + } catch (error) { + console.log(error); + } +}; + +export default ResetMessaging; diff --git a/src/actions/DeepLinkActions.ts b/src/actions/DeepLinkActions.ts index c81ff08c..88b1c129 100644 --- a/src/actions/DeepLinkActions.ts +++ b/src/actions/DeepLinkActions.ts @@ -4,12 +4,11 @@ import { getUserLocationsReadyForServer } from '../services/DeepLinkService'; import { onError } from '../services/ErrorService'; import config from '../config/config'; -export const shareUserLocations = (token: string) => async (dispatch: any) => new Promise(async (resolve, reject) => { +export const shareUserLocations = (token: string, userAgreedToBle: boolean) => async (dispatch: any) => new Promise(async (resolve, reject) => { try { dispatch(toggleLoader(true)); - // TODO check if should resolve res.data and not res. - const { data } = await axios.post(config().dataShareUrl, await getUserLocationsReadyForServer(token)); + const { data } = await axios.post(config().dataShareUrl, await getUserLocationsReadyForServer(token, userAgreedToBle)); dispatch(toggleLoader(false)); resolve(data); diff --git a/src/actions/ExposuresActions.ts b/src/actions/ExposuresActions.ts index ba74b744..7bea9400 100644 --- a/src/actions/ExposuresActions.ts +++ b/src/actions/ExposuresActions.ts @@ -1,27 +1,37 @@ import AsyncStorage from '@react-native-community/async-storage'; import moment from 'moment'; import { onError } from '../services/ErrorService'; -import { Exposure } from '../types'; +import { Exposure, ExposuresReducer } from '../types'; import { SET_VALID_EXPOSURE, REMOVE_VALID_EXPOSURE, UPDATE_EXPOSURES, UPDATE_PAST_EXPOSURES, - DISMISS_EXPOSURE + DISMISS_EXPOSURE, + REPLACE_EXPOSURES, + REPLACE_PAST_EXPOSURES } from '../constants/ActionTypes'; import { DISMISSED_EXPOSURES, VALID_EXPOSURE } from '../constants/Constants'; +import { IntersectionSickDatabase } from '../database/Database'; export const setExposures = (exposures: Exposure[]) => async (dispatch: any) => { + // await AsyncStorage.removeItem(DISMISSED_EXPOSURES) const dismissedExposures = await AsyncStorage.getItem(DISMISSED_EXPOSURES); - let filteredExposures; + let filteredExposures = exposures; if (dismissedExposures) { const parsedDismissedExposures: number[] = JSON.parse(dismissedExposures); - filteredExposures = exposures.filter(exposure => !parsedDismissedExposures.includes(exposure.properties.OBJECTID)); - } - dispatch({ type: UPDATE_EXPOSURES, payload: { exposures: filteredExposures || exposures } }); + filteredExposures = exposures.filter((exposure) => { + if (exposure.properties?.BLETimestamp) { + return !parsedDismissedExposures.includes(exposure.properties?.BLETimestamp); + } + return !parsedDismissedExposures.includes(exposure.properties.OBJECTID); + }); + } + + dispatch({ type: UPDATE_EXPOSURES, payload: { exposures: filteredExposures } }); dispatch({ type: UPDATE_PAST_EXPOSURES, payload: { pastExposures: exposures } }); }; @@ -43,15 +53,58 @@ export const removeValidExposure = () => async (dispatch: any) => { } }; -export const dismissExposure = (exposureId: number) => async (dispatch: any) => { - dispatch({ type: DISMISS_EXPOSURE, payload: { exposureId } }); +export const dismissExposures = () => async (dispatch: any, getState: any) => { + const { exposures }: ExposuresReducer = getState().exposures; - const dismissedExposures = await AsyncStorage.getItem(DISMISSED_EXPOSURES); - if (dismissedExposures) { - const parsedDismissedExposures: number[] = JSON.parse(dismissedExposures); - parsedDismissedExposures.push(exposureId); - await AsyncStorage.setItem(DISMISSED_EXPOSURES, JSON.stringify(parsedDismissedExposures)); - } else { - await AsyncStorage.setItem(DISMISSED_EXPOSURES, JSON.stringify([exposureId])); + const dismissedExposures = await AsyncStorage.getItem(DISMISSED_EXPOSURES) || '[]'; + + const parsedDismissedExposures: number[] = JSON.parse(dismissedExposures); + // Set ensures no OBJECTID or BLETimestamp duplicates + const dismissedExposureSet = new Set(exposures.map(({ properties }: Exposure) => properties.BLETimestamp || properties.OBJECTID).concat(parsedDismissedExposures)); + + await AsyncStorage.setItem(DISMISSED_EXPOSURES, JSON.stringify([...dismissedExposureSet])); +}; + +export const setExposureSelected = ({ index, wasThere }) => (dispatch: any, getState: any) => { + const exposures = [...getState().exposures.exposures]; + exposures[index].properties.wasThere = wasThere; + + dispatch({ type: REPLACE_EXPOSURES, payload: { exposures } }); + new IntersectionSickDatabase().updateSickRecord(exposures[index]).catch(console.log); +}; + +export const replacePastExposureSelected = (payload: Exposure[]) => async (dispatch: any) => { + dispatch({ type: REPLACE_PAST_EXPOSURES, payload }); + + const dbSick = new IntersectionSickDatabase(); + + // TODO: make it a bulk update in one go + for await (const exposure of payload) { + dbSick.updateSickRecord(exposure); + } +}; + +export const moveAllToPastExposures = () => async (dispatch: any, getState: any) => { + dispatch({ type: REPLACE_EXPOSURES, payload: { exposures: [] } }); +}; + +export const updateGeoPastExposure = (exposureToReplace: Exposure) => (dispatch: any, getState: any) => { + const { pastExposures }: ExposuresReducer = getState().exposures; + const index = pastExposures.findIndex((exposure: Exposure) => exposureToReplace.properties.OBJECTID === exposure.properties.OBJECTID); + + if (index !== -1) { + pastExposures[index] = exposureToReplace; + dispatch({ type: REPLACE_PAST_EXPOSURES, payload: pastExposures }); + } +}; + + +export const updateBlePastExposure = (exposureToReplace: Exposure) => (dispatch: any, getState: any) => { + const { pastExposures }: ExposuresReducer = getState().exposures; + const index = pastExposures.findIndex((exposure: Exposure) => exposureToReplace.properties.BLETimestamp === exposure.properties.BLETimestamp); + + if (index !== -1) { + pastExposures[index] = exposureToReplace; + dispatch({ type: REPLACE_PAST_EXPOSURES, payload: pastExposures }); } }; diff --git a/src/actions/GeneralActions.ts b/src/actions/GeneralActions.ts index 3ba616d8..843ac9d5 100644 --- a/src/actions/GeneralActions.ts +++ b/src/actions/GeneralActions.ts @@ -10,10 +10,11 @@ import { SHOW_FORCE_UPDATE, SHOW_FORCE_TERMS, HIDE_LOCATION_HISTORY, - SHOW_MAP_MODAL + SHOW_MAP_MODAL, + ENABLE_BLE } from '../constants/ActionTypes'; -import { CURRENT_TERMS_VERSION, FIRST_POINT_TS, IS_IOS, SHOULD_HIDE_LOCATION_HISTORY } from '../constants/Constants'; +import { CURRENT_TERMS_VERSION, FIRST_POINT_TS, IS_IOS, SHOULD_HIDE_LOCATION_HISTORY, USER_AGREE_TO_BLE, ENABLE_BLE as ENABLE_BLE_IN_APP } from '../constants/Constants'; import { Exposure } from '../types'; export const toggleLoader = (isShow: boolean) => (dispatch: any) => dispatch({ type: TOGGLE_LOADER, payload: { isShow } }); @@ -71,6 +72,27 @@ export const checkIfHideLocationHistory = () => async (dispatch: any) => { } }; +export const checkIfBleEnabled = () => async (dispatch: any) => { + // await AsyncStorage.removeItem(USER_AGREE_TO_BLE) + + + if (IS_IOS || !ENABLE_BLE_IN_APP) { + dispatch({ type: ENABLE_BLE, payload: false }); + } else { + try { + let payload = await AsyncStorage.getItem(USER_AGREE_TO_BLE); + + if (payload) { + payload = JSON.parse(payload); + } + dispatch({ type: ENABLE_BLE, payload }); + } catch (error) { + onError({ error }); + dispatch({ type: ENABLE_BLE, payload: null }); + } + } +}; + export const showMapModal = ({ properties }: Exposure) => { let latitude = 0; let longitude = 0; diff --git a/src/actions/LocaleActions.ts b/src/actions/LocaleActions.ts index 79cad3d9..2e438333 100644 --- a/src/actions/LocaleActions.ts +++ b/src/actions/LocaleActions.ts @@ -81,3 +81,14 @@ const getActiveLocale = async () => { return activeLocale; }; + + +export const initLocalHeadless = async () => { + const activeLocale = await getActiveLocale(); + const { notificationData }: LocaleData = await downloadAndVerifySigning(config().stringsUrl); + + return { + locale: activeLocale, + notificationData + }; +}; diff --git a/src/assets/locationHistory/edit.png b/src/assets/locationHistory/edit.png new file mode 100644 index 00000000..34635866 Binary files /dev/null and b/src/assets/locationHistory/edit.png differ diff --git a/src/assets/main/ExposureRelief.png b/src/assets/main/ExposureRelief.png new file mode 100644 index 00000000..33e02714 Binary files /dev/null and b/src/assets/main/ExposureRelief.png differ diff --git a/src/assets/main/editHistory.png b/src/assets/main/editHistory.png new file mode 100644 index 00000000..34635866 Binary files /dev/null and b/src/assets/main/editHistory.png differ diff --git a/src/assets/main/exposureRefresh.png b/src/assets/main/exposureRefresh.png new file mode 100644 index 00000000..03a67ba0 Binary files /dev/null and b/src/assets/main/exposureRefresh.png differ diff --git a/src/assets/main/imDoneUpdate.png b/src/assets/main/imDoneUpdate.png new file mode 100644 index 00000000..c603fdd7 Binary files /dev/null and b/src/assets/main/imDoneUpdate.png differ diff --git a/src/assets/main/showMore.png b/src/assets/main/showMore.png new file mode 100644 index 00000000..cd8717bc Binary files /dev/null and b/src/assets/main/showMore.png differ diff --git a/src/assets/onboarding/bluetoothBig.png b/src/assets/onboarding/bluetoothBig.png new file mode 100644 index 00000000..43f0a80d Binary files /dev/null and b/src/assets/onboarding/bluetoothBig.png differ diff --git a/src/assets/onboarding/locationTutorial.png b/src/assets/onboarding/locationTutorial.png index e8765d2f..6d1e3bfa 100644 Binary files a/src/assets/onboarding/locationTutorial.png and b/src/assets/onboarding/locationTutorial.png differ diff --git a/src/components/Drawer/Home.tsx b/src/components/Drawer/Home.tsx index 2d92c5d3..bc1ee24d 100644 --- a/src/components/Drawer/Home.tsx +++ b/src/components/Drawer/Home.tsx @@ -1,37 +1,73 @@ -import React from 'react'; +import React, { useEffect, useState } from 'react'; import { createDrawerNavigator, } from '@react-navigation/drawer'; +import AsyncStorage from '@react-native-community/async-storage'; import { CardStyleInterpolators, createStackNavigator } from '@react-navigation/stack'; import { useSelector } from 'react-redux'; import ScanHome from '../Main/ScanHome'; import DrawerContent from './DrawerContent'; import ExposuresHistory from '../Main/ExposuresHistory/ExposuresHistory'; +import ExposuresHistoryEdit from '../Main/ExposuresHistory/ExposuresHistoryEdit'; +import ExposureHistoryRelief from '../Main/ExposuresHistory/ExposureHistoryRelief'; +import ExposureDetected from '../Main/ExposuresDetected'; +import ExposureInstructions from '../Main/ExposureInstructions'; +import ExposureRelief from '../Main/ExposureRelief'; import ChangeLanguageScreen from '../ChangeLanguage/ChangeLanguageScreen'; import LocationHistory from '../Main/LocationHistory/LocationHistory'; import FilterDriving from '../Main/FilterDriving/FilterDriving'; +import BluetoothModal from '../Main/BluetoothModal'; import ShareLocations from '../ShareLocations/ShareLocations'; -import { LocaleReducer, Store } from '../../types'; +import { LocaleReducer, ExposuresReducer, Store, Exposure } from '../../types'; import MapModal from '../Main/MapModal'; +import { INIT_ROUTE_NAME, USER_AGREE_BLE } from '../../constants/Constants'; + +const Stack = createStackNavigator(); + +const DEFAULT_SCREEN = 'ScanHome'; + +const DrawerStack = ({ navigation, route }) => { + const { exposures } = useSelector(state => state.exposures); + const [initialRouteName, setInitialRouteName] = useState(''); + const [showBLEPermission, setBLEPermission] = useState(undefined); + + useEffect(() => { + AsyncStorage.getItem(INIT_ROUTE_NAME) + .then(initRouteString => setInitialRouteName(initRouteString ?? DEFAULT_SCREEN)) + .catch(() => setInitialRouteName(DEFAULT_SCREEN)); + }, []); + + useEffect(() => { + if (initialRouteName !== '' && exposures?.length > 0) { + if (route.state?.routes && !route.state.routes.some(({ name }) => name === 'ExposureDetected')) { + navigation.navigate('ExposureDetected'); + } + } + }, [exposures, initialRouteName, route]); + if (!initialRouteName) return null; -const DrawerStack = () => { - const Stack = createStackNavigator(); return ( - - + ({ gestureEnabled: false })}> + - - + + + + + + + + ); }; +const Drawer = createDrawerNavigator(); + const Home = () => { const { isRTL } = useSelector(state => state.locale); - const Drawer = createDrawerNavigator(); - return ( <> = ( { isInitLocale, isRTL, @@ -75,7 +68,6 @@ const Loading = ( strings, locale, externalUrls, - notificationData, initLocale, showWebview, usageType, @@ -85,14 +77,16 @@ const Loading = ( showForceTerms, checkForceUpdate, termsVersion - }: Props + } ) => { const shouldShowForceTerms = useRef(false); const [initialRoute, setInitialRoute] = useState(''); useEffect(() => { + registerBLEListeners(); appLoadingActions(); + startPushListeners(); }, []); useEffect(() => { @@ -125,51 +119,19 @@ const Loading = ( const onBoardingCompletedActions = async () => { try { - BackgroundFetch.status(async (status) => { - if (status !== BackgroundFetch.STATUS_AVAILABLE) { - await scheduleTask(); - } - }); + // don't init config again + await ResetMessaging(false); await purgeSamplesDB(); - - const state: State = await BackgroundGeolocation.getState(); - - if (!state.enabled) { - await startSampling(locale, notificationData); - } else { - if (!IS_IOS && !state.enableHeadless) { - await BackgroundGeolocation.setConfig({ - enableHeadless: true, - foregroundService: true - }); - } - - if (state.maxDaysToPersist === 1) { - await BackgroundGeolocation.setConfig({ - persistMode: BackgroundGeolocation.PERSIST_MODE_LOCATION, - maxRecordsToPersist: -1, - maxDaysToPersist: 10000000 - }); - } - } - + await clusterLocationsOnAppUpdate(); await startForegroundTimer(); - const validExposure = await AsyncStorage.getItem(VALID_EXPOSURE); - - if (validExposure) { - const { exposure, timestamp }: ValidExposure = JSON.parse(validExposure); - - if (moment().diff(moment(timestamp), 'days') < 14) { - store().dispatch({ type: SET_VALID_EXPOSURE, payload: { validExposure: exposure } }); - } else { - await AsyncStorage.removeItem(VALID_EXPOSURE); - } - } - const dbSick = new IntersectionSickDatabase(); + await migrateIntersectionSickDatabase(dbSick); + // remove intersections older then 2 weeks + await dbSick.purgeIntersectionSickTable(moment().subtract(2, 'week').unix() * 1000); + // await dbSick.deleteAll() const exposures = await dbSick.listAllRecords(); await store().dispatch(setExposures(exposures.map((exposure: any) => ({ properties: { ...exposure } })))); @@ -202,13 +164,7 @@ const Loading = ( (!isInitLocale || !initialRoute) ? null : ( - - - - - - - + @@ -222,6 +178,54 @@ const Loading = ( ); }; +// migrate table to have wasThere and bleTimestamp +// update valid exposure to have was there true +// update all dismissed exposures to have wasThere property +const migrateIntersectionSickDatabase = async (dbSick: any) => { + try { + const dbSickWasUpdated = await AsyncStorage.getItem(SICK_DB_UPDATED); + + if (dbSickWasUpdated !== 'true') { + const dismissedExposures = await AsyncStorage.getItem(DISMISSED_EXPOSURES) || '[]'; + + await dbSick.migrateTable(); + await AsyncStorage.setItem(SICK_DB_UPDATED, 'true'); + const validExposure = await AsyncStorage.getItem(VALID_EXPOSURE); + + if (validExposure) { + const parsedValidExposure = JSON.parse(validExposure); + + if (parsedValidExposure) { + const { exposure } = parsedValidExposure; + + exposure.properties.wasThere = true; + exposure.properties.OBJECTID = exposure.properties.Key_Field; + + await dbSick.upgradeSickRecord(true, [exposure.properties.OBJECTID]); + + const parsedDismissedExposures: number[] = JSON.parse(dismissedExposures); + + // Set ensures no OBJECTID or BLETimestamp duplicates + const dismissedExposureSet = new Set(parsedDismissedExposures); + + dismissedExposureSet.add(exposure.properties.OBJECTID); + + await AsyncStorage.setItem(DISMISSED_EXPOSURES, JSON.stringify([...dismissedExposureSet])); + } + } + + if (dismissedExposures) { + const parsedDismissedExposures: number[] = JSON.parse(dismissedExposures); + console.log('parsedDismissedExposures', parsedDismissedExposures); + + await dbSick.upgradeSickRecord(false, parsedDismissedExposures); + } + } + } catch (error) { + onError({ error }); + } +}; + const styles = StyleSheet.create({ container: { flex: 1 @@ -231,18 +235,14 @@ const styles = StyleSheet.create({ const mapStateToProps = (state: any) => { const { general: { showLoader, showWebview, showForceUpdate, shouldForce, usageType, showForceTerms, termsVersion }, - locale: { isInitLocale, showChangeLanguage, strings, locale, isRTL, externalUrls, notificationData } + locale: { isInitLocale, showChangeLanguage, strings, locale, isRTL, externalUrls } } = state; - return { strings, showLoader, isInitLocale, showChangeLanguage, showWebview, locale, showForceUpdate, shouldForce, usageType, showForceTerms, isRTL, termsVersion, externalUrls, notificationData }; -}; - -const mapDispatchToProps = (dispatch: any) => { - return bindActionCreators({ - initLocale, - toggleWebview, - checkForceUpdate - }, dispatch); + return { strings, showLoader, isInitLocale, showChangeLanguage, showWebview, locale, showForceUpdate, shouldForce, usageType, showForceTerms, isRTL, termsVersion, externalUrls }; }; -export default connect(mapStateToProps, mapDispatchToProps)(Loading); +export default connect(mapStateToProps, { + initLocale, + toggleWebview, + checkForceUpdate +})(Loading); diff --git a/src/components/Main/BluetoothModal.tsx b/src/components/Main/BluetoothModal.tsx new file mode 100644 index 00000000..45a188fc --- /dev/null +++ b/src/components/Main/BluetoothModal.tsx @@ -0,0 +1,36 @@ +import React, { FunctionComponent } from 'react'; +import { View, StyleSheet } from 'react-native'; +import { useSelector, useDispatch } from 'react-redux'; +import AsyncStorage from '@react-native-community/async-storage'; +import BluetoothPermission from '../common/BluetoothPermission'; +import { HeaderButton } from '../common'; +import { PADDING_TOP, IS_SMALL_SCREEN, PADDING_BOTTOM, USER_AGREE_TO_BLE } from '../../constants/Constants'; +import { ENABLE_BLE } from '../../constants/ActionTypes'; + +const BluetoothModal = ({ navigation }) => { + const dispatch = useDispatch(); + const handleExit = async () => { + dispatch({ type: ENABLE_BLE, payload: false }); + await AsyncStorage.setItem(USER_AGREE_TO_BLE, 'false'); + navigation.goBack(); + }; + + return ( + + + + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: 'space-between', + alignItems: 'center', + paddingTop: PADDING_TOP(IS_SMALL_SCREEN ? 10 : 92), + paddingBottom: PADDING_BOTTOM(IS_SMALL_SCREEN ? 10 : 77) + }, +}); + +export default BluetoothModal; diff --git a/src/components/Main/ExposureInstructions.tsx b/src/components/Main/ExposureInstructions.tsx index 54030891..2b139f21 100644 --- a/src/components/Main/ExposureInstructions.tsx +++ b/src/components/Main/ExposureInstructions.tsx @@ -1,48 +1,125 @@ -import React from 'react'; -import { View, StyleSheet, Linking, ScrollView } from 'react-native'; +import React, { useMemo, useEffect, useState } from 'react'; +import { View, StyleSheet, Linking, ScrollView, UIManager, Platform, LayoutAnimation, BackHandler } from 'react-native'; import moment from 'moment'; -import { Exposure } from '../../types'; -import { FadeInView, Icon, Text, TouchableOpacity } from '../common'; -import { ExternalUrls, Languages, Strings } from '../../locale/LocaleData'; +import { useSelector, useDispatch } from 'react-redux'; +import { StackNavigationProp } from '@react-navigation/stack'; +import { RouteProp } from '@react-navigation/native'; +import SplashScreen from 'react-native-splash-screen'; +import AsyncStorage from '@react-native-community/async-storage'; import { BASIC_SHADOW_STYLES, IS_SMALL_SCREEN, MAIN_COLOR, PADDING_BOTTOM, - SCREEN_WIDTH + SCREEN_WIDTH, + PADDING_TOP, + HIT_SLOP, + INIT_ROUTE_NAME } from '../../constants/Constants'; +import { Icon, Text, TouchableOpacity } from '../common'; +import { Exposure, Store, LocaleReducer } from '../../types'; +import { moveAllToPastExposures } from '../../actions/ExposuresActions'; + + +if ( + Platform.OS === 'android' + && UIManager.setLayoutAnimationEnabledExperimental +) { + UIManager.setLayoutAnimationEnabledExperimental(true); +} interface Props { - isRTL: boolean, - strings: Strings, - locale: string, - languages: Languages, - externalUrls: ExternalUrls, - exposure: Exposure, - removeValidExposure(): void + navigation: StackNavigationProp, + route: RouteProp } -const ExposureInstructions = ( - { +// exposure: { properties: { Place, fromTime } }, +const ExposureInstructions = ({ navigation, route }: Props) => { + const dispatch = useDispatch(); + const { isRTL, locale, languages, externalUrls, strings: { - scanHome: { inDate, fromHour }, - exposureInstructions: { title, weUnderstand, wrong, keepSafe, goIntoIsolation, reportIsolation, allInstructions, reportSite } + scanHome: { + atPlace, + betweenHours, + inDate, + fromHour, + deviceCloseTag, + locationCloseTag + }, + exposureInstructions: { + title, + editBtn, + subTitle, + showLess, + showMore, + finishBtn, + reportSite, + updateTitle, + updateSubTitle, + goIntoIsolation, + reportIsolation, + allInstructions, + themInstructions, + } }, - exposure: { properties: { Place, fromTime } }, - removeValidExposure - }: Props -) => { - const relevantLocale: string = Object.keys(languages.short).includes(locale) ? locale : 'he'; + } = useSelector(state => state.locale); + + const exposures = useSelector(state => state.exposures.pastExposures.filter((exposure: Exposure) => exposure.properties.wasThere)); + const [shouldShowMore, setShowMore] = useState(false); + + useEffect(() => { + SplashScreen.hide(); + // if edit button need to be shown then Exposure Instructions don't need to persists + AsyncStorage.setItem(INIT_ROUTE_NAME, 'ExposureInstructions'); + BackHandler.addEventListener('hardwareBackPress', () => true); + + return () => { + BackHandler.removeEventListener('hardwareBackPress', () => true); + }; + }, []); + + const [furtherInstructions, reportForm] = useMemo(() => { + const relevantLocale: string = Object.keys(languages.short).includes(locale) ? locale : 'he'; + + return [ + externalUrls.furtherInstructions[relevantLocale], + externalUrls.reportForm[relevantLocale] + ]; + }, [languages.short, locale]); + + const ExposureList = useMemo(() => exposures.map((exposure: Exposure) => { + let ListText; + + if (exposure.properties.BLETimestamp) { + const time = moment(exposure.properties.BLETimestamp).startOf('hour'); + + const exposureDate = time.format('DD.MM.YY'); + const exposureStartHour = time.format('HH:mm'); + const exposureEndHour = time.add(1, 'hour').format('HH:mm'); - const furtherInstructions = externalUrls.furtherInstructions[relevantLocale]; - const reportForm = externalUrls.reportForm[relevantLocale]; + ListText = ({`${deviceCloseTag}: ${inDate} ${exposureDate} ${betweenHours} ${exposureStartHour}-${exposureEndHour}`}); + } else { + const { Place, fromTime } = exposure.properties; + const time = moment(); + ListText = ({`${locationCloseTag}: ${atPlace}${Place} ${inDate} ${moment(fromTime).format('DD.MM.YY')} ${fromHour} ${moment(fromTime).format('HH:mm')}`}); + } + + + return ( + + + {ListText} + + + ); + }), [exposures, locale]); const renderActionButton = (icon: number, text: string, buttonText: string, action: () => void) => ( - + {text} @@ -53,80 +130,169 @@ const ExposureInstructions = ( ); + const RenderHeader = useMemo(() => route.params?.update + ? ( + <> + + {updateTitle} + {updateSubTitle} + + ) + : ( + <> + {title} + {subTitle} + {shouldShowMore ? ExposureList : ExposureList.slice(0, 4)} + {exposures.length > 4 && ( + { + LayoutAnimation.create( + 300, + LayoutAnimation.Types.spring, + LayoutAnimation.Properties.scaleXY + ); + setShowMore(!shouldShowMore); + }} + > + + {shouldShowMore ? showLess : showMore} + + )} + + ), + + [route.params?.update, shouldShowMore]); + return ( - - - - {title} - - - {`${weUnderstand}${Place} ${inDate} ${moment(fromTime).format('DD.MM.YY')} ${fromHour} ${moment(fromTime).format('HH:mm')}?`} + + + {route.params?.showEdit && ( + navigation.navigate('ExposureDetected')} + > + + + {editBtn} + + )} - - {wrong} - - - - {keepSafe} + + + {RenderHeader} + + + + {themInstructions} + + {renderActionButton(require('../../assets/main/isolation.png'), goIntoIsolation, allInstructions, () => Linking.openURL(furtherInstructions))} + {renderActionButton(require('../../assets/main/report.png'), reportIsolation, reportSite, () => Linking.openURL(reportForm))} + + { + navigation.navigate('ScanHome'); + dispatch(moveAllToPastExposures()); + AsyncStorage.removeItem(INIT_ROUTE_NAME); + }} + style={{ + color: MAIN_COLOR, + marginTop: IS_SMALL_SCREEN ? 22 : 32, + fontSize: IS_SMALL_SCREEN ? 14 : 16 + }} + > + {finishBtn} + + + - {renderActionButton(require('../../assets/main/isolation.png'), goIntoIsolation, allInstructions, () => Linking.openURL(furtherInstructions))} - {renderActionButton(require('../../assets/main/report.png'), reportIsolation, reportSite, () => Linking.openURL(reportForm))} - - ); }; const styles = StyleSheet.create({ - container: { - flex: 1, - justifyContent: 'space-around', - alignItems: 'center' - }, subContainer: { - paddingHorizontal: 30, + flexGrow: 1, alignItems: 'center', - paddingTop: IS_SMALL_SCREEN ? 25 : 40, - paddingBottom: PADDING_BOTTOM(10), + justifyContent: 'space-between', + paddingHorizontal: 25, + paddingTop: IS_SMALL_SCREEN ? PADDING_TOP(33) : PADDING_TOP(76), + paddingBottom: PADDING_BOTTOM(41) + // paddingVertical: PADDING_BOTTOM(76), }, title: { fontSize: 22, marginBottom: 20 }, - bottomBorder: { - alignSelf: 'stretch', - height: 2, - borderRadius: 1, - backgroundColor: MAIN_COLOR - }, actionButtonContainer: { ...BASIC_SHADOW_STYLES, - width: SCREEN_WIDTH - 50, - justifyContent: 'space-between', - paddingVertical: 15, - paddingHorizontal: 18, - borderRadius: 16, + marginBottom: 12, + + borderRadius: 16, + + justifyContent: 'space-between', alignItems: 'center' }, + actionButtonContainerSmall: { + width: SCREEN_WIDTH - 30, + padding: 10, + + }, + actionButtonContainerBig: { + width: (SCREEN_WIDTH / 2) - (23 + 5.5), + paddingVertical: 15, + paddingHorizontal: 23, + }, button: { - width: 82, - height: 32, + flexGrow: 1, + padding: 4, alignItems: 'center', justifyContent: 'center', borderRadius: 6, - backgroundColor: MAIN_COLOR + backgroundColor: MAIN_COLOR, + }, - actionText: { - flex: 1, + actionText: IS_SMALL_SCREEN ? { + lineHeight: 16, + fontSize: 14, + flexShrink: 1, + marginHorizontal: 10 + } : { lineHeight: 16, - fontSize: IS_SMALL_SCREEN ? 14 : 16, - paddingHorizontal: 10 + fontSize: 16, + marginBottom: 23, + marginTop: 13 }, buttonText: { fontSize: IS_SMALL_SCREEN ? 12 : 14, diff --git a/src/components/Main/ExposureRelief.tsx b/src/components/Main/ExposureRelief.tsx new file mode 100644 index 00000000..6a04aecf --- /dev/null +++ b/src/components/Main/ExposureRelief.tsx @@ -0,0 +1,81 @@ +import React, { useState, useCallback, useRef, useMemo } from 'react'; +import { View, StyleSheet, Animated, ScrollView, FlatList } from 'react-native'; +import { useSelector, useDispatch } from 'react-redux'; +import { StackNavigationProp } from '@react-navigation/stack'; +import { Text, Icon, ActionButton, TouchableOpacity } from '../common'; +import { IS_SMALL_SCREEN, HIT_SLOP, PADDING_TOP, MAIN_COLOR } from '../../constants/Constants'; +import { Store, LocaleReducer } from '../../types'; +import { moveAllToPastExposures } from '../../actions/ExposuresActions'; + +interface Props { + navigation: StackNavigationProp +} + + +const ExposureRelief = ({ navigation }: Props) => { + const dispatch = useDispatch(); + const { isRTL, + strings: { exposureRelief: { editBtn, title, keepSafe, backBtn } } + } = useSelector(state => state.locale); + + return ( + + + + {editBtn} + + + + + + {title} + + + {keepSafe} + + + + { + dispatch(moveAllToPastExposures()); + navigation.navigate('ScanHome'); + }} + text={backBtn} + /> + + ); +}; + +export default ExposureRelief; diff --git a/src/components/Main/ExposuresDetected.tsx b/src/components/Main/ExposuresDetected.tsx index 0b16e569..fac76914 100644 --- a/src/components/Main/ExposuresDetected.tsx +++ b/src/components/Main/ExposuresDetected.tsx @@ -1,144 +1,359 @@ -import React, { useState, useCallback } from 'react'; -import { View, StyleSheet, Animated, ScrollView } from 'react-native'; +import React, { useState, useCallback, useRef, useMemo, useEffect } from 'react'; +import { View, StyleSheet, Animated, ScrollView, FlatList, BackHandler } from 'react-native'; +import { useSelector, useDispatch } from 'react-redux'; import moment from 'moment'; -import { FadeInView, Icon, Text, TouchableOpacity } from '../common'; +import { StackNavigationProp } from '@react-navigation/stack'; +import { useFocusEffect } from '@react-navigation/native'; +import SplashScreen from 'react-native-splash-screen'; +import AsyncStorage from '@react-native-community/async-storage'; +import { Icon, Text, TouchableOpacity } from '../common'; import { Strings } from '../../locale/LocaleData'; -import { Exposure } from '../../types'; +import { Exposure, Store, LocaleReducer, ExposuresReducer } from '../../types'; import { BASIC_SHADOW_STYLES, IS_SMALL_SCREEN, MAIN_COLOR, PADDING_BOTTOM, - SCREEN_WIDTH + SCREEN_WIDTH, + SCREEN_HEIGHT, + WHITE, + INIT_ROUTE_NAME } from '../../constants/Constants'; +import { showMapModal } from '../../actions/GeneralActions'; +import { dismissExposures, setExposureSelected } from '../../actions/ExposuresActions'; +import CardIdentifyTag from '../common/CardIdentifyTag'; -interface Props { - isRTL: boolean, - strings: Strings, - exposures: Exposure[], - onValidExposure(exposure: Exposure): void, - dismissExposure(exposureId: number): void, - showMapModal(exposure: Exposure): void +interface ExposuresDetectedProps { + navigation: StackNavigationProp } -const ExposuresDetected = ( - { - isRTL, - strings: { - scanHome: { inDate, fromHour, wereYouThere, wasNotMe, wasMe, suspectedExposure, events, possibleExposure, atPlace, showOnMap }, - }, - exposures, - onValidExposure, - dismissExposure, - showMapModal - }: Props -) => { - const [anim] = useState(new Animated.Value(1)); - - const scale = { - transform: [{ - scale: anim.interpolate({ inputRange: [0, 1], outputRange: [0.01, 1] }) - }] +interface RenderExposureProps { + index: number, + exposure: Exposure +} + + +const ExposuresDetected = ({ navigation }: ExposuresDetectedProps) => { + const dispatch = useDispatch(); + const { isRTL, strings: { scanHome: { inDate, fromHour, wereYouThere, wasNotMe, wasMe, doneBtn, suspectedExposure, events, possibleExposure, atPlace, showOnMap, betweenHours, possibleExposureBLE, locationCloseTag, deviceCloseTag, wasMeBle, wasMeOnly } } } = useSelector(state => state.locale); + const { exposures } = useSelector(state => state.exposures); + + const [anim] = useState(new Animated.Value(SCREEN_HEIGHT * 0.08)); + const isOneBle = useMemo(() => exposures.length === 1 && exposures[0].properties.BLETimestamp !== null, [exposures]); + const flatListRef = useRef(null); + + useEffect(() => { + SplashScreen.hide(); + AsyncStorage.setItem(INIT_ROUTE_NAME, 'ExposureDetected'); + BackHandler.addEventListener('hardwareBackPress', () => true); + + return () => { + BackHandler.removeEventListener('hardwareBackPress', () => true); + }; + }, []); + + + const showButton = (duration: number = 300) => { + Animated.timing(anim, { + toValue: 0, + duration, + useNativeDriver: true, + delay: 300 + }).start(); }; - const onDismissExposure = () => { + // show button when moving to another page + // use case for single exposure. the user moves on click but if he returns for edit + useFocusEffect( + // TODO: fix this for BLE logic + useCallback(() => { + if (!isOneBle + && exposures.every(exposure => exposure.properties.wasThere !== null)) { + showButton(0); + } + }, []) + ); + + const setSelected = (index: number, wasThere: boolean) => { + dispatch(setExposureSelected({ index, wasThere })); if (exposures.length === 1) { - dismissExposure(exposures[0].properties.OBJECTID); + editDone(); } else { - Animated.timing(anim, { toValue: 0, duration: 200, useNativeDriver: true }).start(() => { - dismissExposure(exposures[0].properties.OBJECTID); - setTimeout(() => Animated.timing(anim, { toValue: 1, duration: 200, useNativeDriver: true }).start(), 50); - }); + // find index of first card user didn't checked(was or not) and go to there˝ + const emptyIndex = exposures.findIndex(exposure => exposure.properties.wasThere === null || exposure.properties.wasThere === undefined); + + if (emptyIndex === -1) { + showButton(); + } else if (index + 1 < exposures.length) { + setTimeout(() => { + if (flatListRef?.current) { + flatListRef?.current?.scrollToIndex({ + index: index + 1, + viewOffset: 10 + }); + } + }, 300); + } else { + // all selected show finish button and findIndex get me last index + if (emptyIndex === -1 || exposures.length - 1 === emptyIndex) { + showButton(); + } else { + flatListRef?.current?.scrollToIndex({ + index: emptyIndex, + viewOffset: 10 + }); + } + } } }; - const renderExposure = useCallback(({ properties: { Place, fromTime } }: Exposure) => ( - - {`1/${exposures.length}`} - {possibleExposure} - - {`${atPlace}${Place} ${inDate} ${moment(fromTime).format('DD.MM.YY')} ${fromHour} ${moment(fromTime).format('HH:mm')}?`} - - - showMapModal(exposures[0])}>{showOnMap} - - - ), [exposures[0], possibleExposure]); - - const renderActionButton = (text: string, action: () => void) => ( - - {text} - - ); + const editDone = () => { + dispatch(dismissExposures()); + // check if at least one exposure was checked a been there + const isExposed = exposures.some((exposure: Exposure) => exposure.properties.wasThere); + + if (isExposed) { + // move to ExposureInstructions + const showEdit = exposures.some((exposure: Exposure) => !exposure.properties.BLETimestamp); + navigation.navigate('ExposureInstructions', { showEdit }); + } else { + // move to ExposureRelief + navigation.navigate('ExposureRelief'); + AsyncStorage.removeItem(INIT_ROUTE_NAME); + } + }; + + const RenderBleExposure = ({ index, exposure: { properties: { BLETimestamp, OBJECTID, Place } } }) => { + const [exposureDate, exposureStartHour, exposureEndHour] = useMemo(() => { + const time = moment(BLETimestamp).startOf('hour'); + + return [ + time.format('DD.MM.YY'), + time.format('HH:mm'), + time.add(1, 'hour').format('HH:mm') + ]; + }, [BLETimestamp]); + + + let LocationText = null; + + if (OBJECTID) { + LocationText = ( + <> + + {`${atPlace}${Place}`} + + + dispatch(showMapModal(exposures[index]))}>{showOnMap} + + + ); + } + + return ( + + + {`${index + 1}/${exposures.length}`} + {possibleExposureBLE} + {`${inDate} ${exposureDate}${OBJECTID ? ' ' : '\n'}${betweenHours} ${exposureStartHour}-${exposureEndHour}`} + {LocationText} + + + + setSelected(index, true)} + > + {exposures.length === 1 ? wasMeOnly : wasMeBle} + + + + + ); + }; + + + const RenderGeoExposure = ({ index, exposure: { properties: { Place, fromTime, OBJECTID, wasThere } } }: RenderExposureProps) => { + const [wasThereSelected, wasNotThereSelected] = useMemo(() => { + if (wasThere === null) return [false, false]; + return [wasThere, !wasThere]; + }, [wasThere]); + + const [exposureDate, exposureHour] = useMemo(() => { + const time = moment(fromTime); + return [time.format('DD.MM.YY'), time.format('HH:mm')]; + }, [fromTime]); + + return ( + + + {`${index + 1}/${exposures.length}`} + {possibleExposure} + + {`${atPlace}${Place} ${inDate} ${exposureDate} ${fromHour} ${exposureHour}`} + + + dispatch(showMapModal(exposures[index]))}>{showOnMap} + + + + {wereYouThere} + + setSelected(index, true)} + > + {wasMe} + + setSelected(index, false)} + > + {wasNotMe} + + + + + + ); + }; return ( - + <> - + {`${suspectedExposure} ${exposures.length} ${events}`} - {renderExposure(exposures[0])} - - + { + if (item?.properties?.BLETimestamp) return item.properties.BLETimestamp.toString(); + return item.properties.OBJECTID.toString(); + }} + renderItem={({ item, index }) => (item.properties?.BLETimestamp ? : )} + showsHorizontalScrollIndicator={false} + contentContainerStyle={{ paddingLeft: 14, paddingRight: 5 }} + /> - - - {wereYouThere} - - - {renderActionButton(wasMe, () => onValidExposure(exposures[0]))} - {renderActionButton(wasNotMe, onDismissExposure)} - - - + + + + {doneBtn} + + + ); }; + const styles = StyleSheet.create({ container: { flex: 1, alignItems: 'center', - paddingBottom: PADDING_BOTTOM(45) + paddingTop: PADDING_BOTTOM(45), + }, title: { - fontSize: IS_SMALL_SCREEN ? 18 : 22 + fontSize: IS_SMALL_SCREEN ? 18 : 22, + marginBottom: 4 }, detailsContainer: { ...BASIC_SHADOW_STYLES, - marginHorizontal: 18, - alignItems: 'center', - justifyContent: 'center', - borderRadius: 8, - padding: 25 - }, - footer: { - paddingTop: 10, - alignItems: 'center', - backgroundColor: '#fff' - }, - actionButtonsWrapper: { + height: SCREEN_HEIGHT * 0.55, width: SCREEN_WIDTH * 0.88, + + marginRight: 13, + borderRadius: 13, + padding: 25, + justifyContent: 'space-between', + + overflow: 'hidden' }, - actionButton: { - ...BASIC_SHADOW_STYLES, - width: SCREEN_WIDTH * 0.424, - paddingVertical: 12, + exposureLength: { + fontSize: 13, + marginBottom: 8 + }, + exposureCardTitle: { + fontSize: 16, + marginBottom: 18 + }, + exposureCardPlace: { + fontSize: IS_SMALL_SCREEN ? 14 : 18 + }, + exposureCardMapContainer: { + marginTop: 12, + paddingBottom: 3, + borderBottomWidth: 1.5, + borderColor: MAIN_COLOR + }, + exposureCardMapText: { + fontSize: 14 + }, + actionBtnTitle: { + marginBottom: 16, + fontSize: IS_SMALL_SCREEN ? 14 : 16 + }, + actionBtnContainer: { + flexDirection: 'row', + justifyContent: 'space-between' + }, + actionBtnTouch: { + borderColor: MAIN_COLOR, + borderWidth: 1, + borderRadius: 5.6, + height: SCREEN_HEIGHT * 0.05, + width: SCREEN_WIDTH * 0.3, + justifyContent: 'center' + }, + bleActionBtn: { + borderColor: MAIN_COLOR, + backgroundColor: MAIN_COLOR, + borderWidth: 1, + borderRadius: 5.6, + paddingHorizontal: 24, + paddingVertical: 10, justifyContent: 'center', - alignItems: 'center', - borderRadius: 7, - backgroundColor: MAIN_COLOR + shadowColor: 'rgb(185,185,185)', + shadowOffset: { width: 0, height: 0 }, + shadowOpacity: 0.5, + shadowRadius: 14, + elevation: 5, + + }, + actionBtnText: { + fontSize: IS_SMALL_SCREEN ? 12 : 16 + }, + actionBtnSelected: { + backgroundColor: MAIN_COLOR, }, - actionButtonText: { - color: '#fff', - paddingVertical: 2, - fontSize: IS_SMALL_SCREEN ? 17 : 20 + actionBtnSelectedText: { + color: WHITE } }); diff --git a/src/components/Main/ExposuresHistory/ExposureHistoryListItem.tsx b/src/components/Main/ExposuresHistory/ExposureHistoryListItem.tsx index d45ff9db..badb050b 100644 --- a/src/components/Main/ExposuresHistory/ExposureHistoryListItem.tsx +++ b/src/components/Main/ExposuresHistory/ExposureHistoryListItem.tsx @@ -1,39 +1,108 @@ -import React from 'react'; -import { View, StyleSheet } from 'react-native'; +import React, { FunctionComponent, useMemo } from 'react'; +import { View, StyleSheet, StyleProp, ViewStyle } from 'react-native'; import moment from 'moment'; import { Icon, Text, TouchableOpacity } from '../../common'; import { Strings } from '../../../locale/LocaleData'; import { BASIC_SHADOW_STYLES, MAIN_COLOR, SCREEN_WIDTH } from '../../../constants/Constants'; +import CardIdentifyTag from '../../common/CardIdentifyTag'; interface Props { isRTL: boolean, strings: Strings, Place: string, fromTime: number, + style?: StyleProp, showExposureOnMap(): void } -const ExposureHistoryListItem = ({ isRTL, strings: { scanHome: { fromHour, showOnMap } }, Place, fromTime, showExposureOnMap }: Props) => { +const ExposureHistoryListItem: FunctionComponent = ({ children, style, isRTL, strings: { scanHome: { fromHour, showOnMap, inDate, betweenHours, locationCloseTag, deviceCloseTag }, exposuresHistory: { BLELocationUpdate } }, Place, fromTime, BLETimestamp, showExposureOnMap }) => { + const isBLE: boolean = useMemo(() => Boolean(BLETimestamp), [BLETimestamp]); + + let TimeText; + + if (isBLE) { + const time = moment(BLETimestamp).startOf('hour'); + + const exposureDate = time.format('DD.MM.YY'); + const exposureStartHour = time.format('HH:mm'); + const exposureEndHour = time.add(1, 'hour').format('HH:mm'); + + TimeText = ( + + {`${exposureDate} `} + {`${betweenHours} `} + {`${exposureStartHour}-${exposureEndHour}`} + + ); + } else { + TimeText = ( + + {`${moment(fromTime).format('DD.MM.YY')} `} + {`${fromHour} `} + {`${moment(fromTime).format('HH:mm')}`} + + ); + } + + let LocationUpdateTag = null; + if (isBLE && Place) { + LocationUpdateTag = ( + + + {BLELocationUpdate} + + + ); + } + return ( - - - - - - {`${moment(fromTime).format('DD.MM.YY')} `} - {`${fromHour} `} - {`${moment(fromTime).format('HH:mm')}`} - - - {Place} - - - - - {showOnMap} - - + + + + + + + + + {TimeText} + + {Place && ( + <> + {Place} + + + + + {showOnMap} + + + + )} + + {children} + + + + {LocationUpdateTag} ); }; @@ -41,12 +110,9 @@ const ExposureHistoryListItem = ({ isRTL, strings: { scanHome: { fromHour, showO const styles = StyleSheet.create({ listItemContainer: { ...BASIC_SHADOW_STYLES, - width: SCREEN_WIDTH - 24, - justifyContent: 'center', - alignItems: 'center', + borderRadius: 13, - paddingVertical: 20, - paddingHorizontal: 15, + overflow: 'hidden' }, textContainer: { flex: 1, @@ -54,7 +120,8 @@ const styles = StyleSheet.create({ }, text: { fontSize: 13, - lineHeight: 20 + lineHeight: 20, + marginVertical: 10 }, separator: { width: SCREEN_WIDTH * 0.875, diff --git a/src/components/Main/ExposuresHistory/ExposureHistoryRelief.tsx b/src/components/Main/ExposuresHistory/ExposureHistoryRelief.tsx new file mode 100644 index 00000000..74a10d3b --- /dev/null +++ b/src/components/Main/ExposuresHistory/ExposureHistoryRelief.tsx @@ -0,0 +1,48 @@ +import React, { useState, useCallback, useRef, useMemo } from 'react'; +import { View, StyleSheet, FlatList } from 'react-native'; +import { useSelector } from 'react-redux'; +import { Icon, Text, TouchableOpacity, ActionButton } from '../../common'; +import { IS_SMALL_SCREEN, HIT_SLOP, PADDING_TOP, MAIN_COLOR } from '../../../constants/Constants'; +import { Store, LocaleReducer } from '../../../types'; + +const ExposureHistoryRelief = ({ navigation }) => { + const { isRTL, + strings: { exposureRelief: { title, keepSafe, historyBackBtn, reliefTitle } } + } = useSelector(state => state.locale); + return ( + + + + {reliefTitle} + {title} + {keepSafe} + + + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, + alignItems: 'center', + justifyContent: 'space-around' + }, + wrapper: { + alignItems: 'center' + }, + reliefTitle: { + fontSize: IS_SMALL_SCREEN ? 18 : 21, + marginTop: IS_SMALL_SCREEN ? 25 : 28, + marginBottom: IS_SMALL_SCREEN ? 15 : 18 + }, + title: { + fontSize: IS_SMALL_SCREEN ? 14 : 16, + marginBottom: IS_SMALL_SCREEN ? 15 : 18 + }, + keepSafe: { + fontSize: IS_SMALL_SCREEN ? 14 : 16 + } +}); + +export default ExposureHistoryRelief; diff --git a/src/components/Main/ExposuresHistory/ExposuresHistory.tsx b/src/components/Main/ExposuresHistory/ExposuresHistory.tsx index c0db2b14..814a1241 100644 --- a/src/components/Main/ExposuresHistory/ExposuresHistory.tsx +++ b/src/components/Main/ExposuresHistory/ExposuresHistory.tsx @@ -1,11 +1,11 @@ -import React from 'react'; -import { View, StyleSheet, FlatList } from 'react-native'; +import React, { useState, useEffect, useMemo } from 'react'; +import { View, StyleSheet, FlatList, Animated } from 'react-native'; import { StackNavigationProp } from '@react-navigation/stack'; import { connect } from 'react-redux'; -import { Icon, Text, HeaderButton } from '../../common'; +import { Icon, Text, HeaderButton, TouchableOpacity } from '../../common'; import { Strings } from '../../../locale/LocaleData'; import { Exposure } from '../../../types'; -import { PADDING_TOP, SCREEN_HEIGHT, SCREEN_WIDTH } from '../../../constants/Constants'; +import { PADDING_TOP, SCREEN_WIDTH, IS_SMALL_SCREEN, MAIN_COLOR, HIT_SLOP, WHITE } from '../../../constants/Constants'; import ExposureHistoryListItem from './ExposureHistoryListItem'; import { showMapModal } from '../../../actions/GeneralActions'; @@ -17,6 +17,10 @@ interface Props { showMapModal(exposures: Exposure): void } +const LINE_MARGIN = 7; +const ANIMATION_DURATION = 300; + + const ExposuresHistory = ( { navigation, @@ -26,68 +30,195 @@ const ExposuresHistory = ( showMapModal }: Props ) => { - const { exposuresHistory: { title, noExposures, keepInstructions } } = strings; + const { exposuresHistory: { title, subTitle, wasNotThere, wasThere, wasThereNoExposure, wasNotThereNoExposure, keepInstructions, edit } } = strings; - const renderEmptyState = () => ( - <> - - - {noExposures} - {keepInstructions} - - - - - ); - - const renderList = () => ( - showMapModal(item)} />} - keyExtractor={(_, index) => index.toString()} - ItemSeparatorComponent={() => } - showsVerticalScrollIndicator={false} - /> - ); + const [tabIndex, setTabIndex] = useState(1); + const wasThereList = pastExposures.filter(({ properties }: Exposure) => properties?.wasThere); + const wasNotThereList = pastExposures.filter(({ properties }: Exposure) => !properties?.wasThere); + // show button if list is not empty or all exposures are of type BLE and can't be edited + const showEditBtn = useMemo(() => wasThereList.length + wasNotThereList.length > 0 && !pastExposures.every((exposure: Exposure) => exposure.properties.BLETimestamp), [wasThereList, wasNotThereList]); + const [tabsLayout, setTabsLayout] = useState({}); + const [lineAnimLeft] = useState(new Animated.Value(isRTL ? SCREEN_WIDTH : 0)); + const [lineAnimWidth] = useState(new Animated.Value(0)); + const [listTranslateAnim] = useState(new Animated.Value(isRTL ? SCREEN_WIDTH : 0)); + const [firstLoad, setFirstLoad] = useState(true); + + useEffect(() => { + // didn't layout yet + if (tabsLayout?.[tabIndex]) { + // TODO: make it a pretty function + Animated.parallel([ + Animated.timing(lineAnimLeft, { + toValue: tabsLayout[tabIndex].x - LINE_MARGIN + (isRTL ? tabIndex * SCREEN_WIDTH / 2 : SCREEN_WIDTH / 2 * (tabIndex ? 0 : 1)), + duration: firstLoad ? 0 : ANIMATION_DURATION, + }), + Animated.timing(listTranslateAnim, { + toValue: tabIndex ? SCREEN_WIDTH : 0, + duration: firstLoad ? 0 : ANIMATION_DURATION, + useNativeDriver: true + }), + Animated.timing(lineAnimWidth, { + toValue: tabsLayout[tabIndex].width + (LINE_MARGIN * 2), + duration: firstLoad ? 0 : ANIMATION_DURATION, + }) + ]).start(() => setFirstLoad(false)); + } + }, [tabIndex, tabsLayout, isRTL]); return ( + + {showEditBtn && ( + navigation.navigate('ExposuresHistoryEdit')} + > + {edit} + + + )} - - {title} + + {title} + {subTitle} + + + setTabIndex(0)} + > + setTabsLayout(state => ({ ...state, 0: layout }))} + > + {wasNotThere} + + + + setTabIndex(0)} + > + setTabsLayout(state => ({ ...state, 1: layout }))} + onPress={() => setTabIndex(1)} + > + {wasThere} + + + + + + + + ( + showMapModal(item)} />)} + keyExtractor={(_, index) => index.toString()} + ItemSeparatorComponent={() => } + showsVerticalScrollIndicator={false} + ListEmptyComponent={() => ( + + + {wasNotThereNoExposure} + {keepInstructions} + + )} + /> + - {pastExposures.length === 0 ? renderEmptyState() : renderList()} + + ( + showMapModal(item)} + /> + )} + keyExtractor={(_, index) => index.toString()} + ItemSeparatorComponent={() => } + showsVerticalScrollIndicator={false} + ListEmptyComponent={() => ( + + + {wasThereNoExposure} + {keepInstructions} + + ) + } + /> + + ); }; const styles = StyleSheet.create({ container: { + backgroundColor: '#f7f8fa', flex: 1, - paddingTop: PADDING_TOP(15), - backgroundColor: '#fff' }, headerContainer: { - width: SCREEN_WIDTH, - height: SCREEN_HEIGHT * 0.16, - justifyContent: 'center', - alignItems: 'center' + paddingTop: PADDING_TOP(IS_SMALL_SCREEN ? 30 : 60), + justifyContent: 'space-between', + paddingBottom: IS_SMALL_SCREEN ? 8 : 10, + backgroundColor: WHITE }, listContainer: { + flexGrow: 1, width: SCREEN_WIDTH, - alignItems: 'center', paddingVertical: 10, - + paddingHorizontal: 12, }, emptyStateContainer: { + paddingTop: IS_SMALL_SCREEN ? 60 : 97, + alignItems: 'center', + paddingHorizontal: IS_SMALL_SCREEN ? 20 : 35 + }, + tabTextContainer: { flex: 1, - justifyContent: 'center', alignItems: 'center', - paddingHorizontal: 35 + justifyContent: 'center' + }, + tabText: { + fontSize: IS_SMALL_SCREEN ? 14 : 16, + width: SCREEN_WIDTH / 2, + paddingHorizontal: 10 + }, + editButtonContainer: { + position: 'absolute', + zIndex: 1000, + top: PADDING_TOP(IS_SMALL_SCREEN ? 18 : 30), + alignItems: 'center', } }); diff --git a/src/components/Main/ExposuresHistory/ExposuresHistoryEdit.tsx b/src/components/Main/ExposuresHistory/ExposuresHistoryEdit.tsx new file mode 100644 index 00000000..00417d70 --- /dev/null +++ b/src/components/Main/ExposuresHistory/ExposuresHistoryEdit.tsx @@ -0,0 +1,261 @@ +import React, { useState, useCallback, useRef, useMemo } from 'react'; +import { View, StyleSheet, FlatList } from 'react-native'; +import { useSelector, useDispatch } from 'react-redux'; +import _ from 'lodash'; +import { Icon, Text, TouchableOpacity } from '../../common'; +import { Store, ExposuresReducer, LocaleReducer, Exposure } from '../../../types'; +import ExposureHistoryListItem from './ExposureHistoryListItem'; +import { PADDING_TOP, SCREEN_HEIGHT, SCREEN_WIDTH, IS_SMALL_SCREEN, MAIN_COLOR, WHITE, PADDING_BOTTOM } from '../../../constants/Constants'; +import { showMapModal } from '../../../actions/GeneralActions'; +import { replacePastExposureSelected } from '../../../actions/ExposuresActions'; + + +const ExposuresHistoryEdit = ({ navigation }) => { + const dispatch = useDispatch(); + const { isRTL, strings } = useSelector(state => state.locale); + const { + exposuresHistory: { title, subTitle, historyEditFinishBtn, historyEditCancelBtn, BLEWarning }, + scanHome: { wasNotMe, wasMe, } + } = strings; + const { pastExposures } = useSelector(state => state.exposures); + // clone for imutablity purpose + const [newExposureArr, setNewExposureArray] = useState(_.cloneDeep(pastExposures)); + + const showBLEWarning = useMemo(() => pastExposures.some(({ properties }: Exposure) => properties.BLETimestamp), [pastExposures]); + + const setSelected = (index, wasThere) => { + setNewExposureArray((exposureArrState) => { + // must be immutable + const newArr = [...exposureArrState]; + newArr[index].properties.wasThere = wasThere; + return newArr; + }); + }; + + const finishEdit = () => { + // check if change at all + const oldExposureState = _.cloneDeep(pastExposures); + // commit changes and check diff from pastExposures + dispatch(replacePastExposureSelected(newExposureArr)); + + // user had at least one exposure detected + const wasChanged = oldExposureState.reduce((dif, exposure, index) => { + if (exposure.properties.wasThere !== newExposureArr[index].properties.wasThere) { + dif.push({ + index, + from: exposure.properties.wasThere, + to: newExposureArr[index].properties.wasThere + }); + } + return dif; + }, []); + + + if (wasChanged.length === 0) { + // no change + navigation.goBack(); + } else if (newExposureArr.every(exposure => !exposure.properties.wasThere)) { + // user changed all to was not there + navigation.replace('ExposureHistoryRelief'); + } else if (oldExposureState.some(exposure => exposure.properties.wasThere)) { + // check if user changes wasThere from false to true when he already had at least on exposure true + if (wasChanged.some(({ from, to }) => from === false && to === true)) { + navigation.reset({ + index: 0, + routes: [{ name: 'ScanHome' }, { name: 'ExposureInstructions', params: { showEdit: false, update: true } }] + }); + } else { + navigation.goBack(); + } + } else { + // user had no exposure was there + if (newExposureArr.some(exposure => exposure.properties.wasThere)) { + navigation.reset({ + index: 0, + routes: [{ name: 'ScanHome' }, { name: 'ExposureInstructions', params: { showEdit: false, update: false } }] + }); + } else { + navigation.goBack(); + } + } + }; + + + return ( + + { + if (item?.properties?.BLETimestamp) return item.properties.BLETimestamp.toString(); + return item.properties.OBJECTID.toString(); + }} + renderItem={({ index, item }) => ( + dispatch(showMapModal(item))} + setSelected={setSelected} + wasNotMe={wasNotMe} + wasMe={wasMe} + /> + )} + ListHeaderComponent={() => ( + + + {title} + {subTitle} + {showBLEWarning && ( + + + + {BLEWarning} + + + )} + + + )} + /> + + + {historyEditFinishBtn} + + + {historyEditCancelBtn} + + + + ); +}; + + +const RenderExposure = ({ index, item, isRTL, strings, showExposureOnMap, setSelected, wasMe, wasNotMe }) => { + const { wasThere, BLETimestamp, Place } = item.properties; + + const [wasThereSelected, wasNotThereSelected] = useMemo(() => { + if (wasThere === null) return [false, false]; + return [wasThere, !wasThere]; + }, [wasThere]); + + return ( + + + {!BLETimestamp && Place && ( + + setSelected(index, false)} + > + {wasNotMe} + + setSelected(index, true)} + > + {wasMe} + + + + )} + + + ); +}; + + +const styles = StyleSheet.create({ + container: { + flex: 1, + backgroundColor: '#f7f8fa', + }, + listContainer: { + flexGrow: 1, + paddingBottom: PADDING_BOTTOM(49), + + }, + headerContainer: { + width: SCREEN_WIDTH, + paddingTop: PADDING_TOP(IS_SMALL_SCREEN ? 20 : 62), + justifyContent: 'space-between', + alignItems: 'center', + paddingBottom: IS_SMALL_SCREEN ? SCREEN_HEIGHT * 0.05 : SCREEN_HEIGHT * 0.03, + backgroundColor: WHITE, + marginBottom: 15, + paddingHorizontal: 20 + }, + headerSubtitle: { + fontSize: 14, + color: '#6a6a6a', + marginTop: 8, + }, + actionBtnTouch: { + borderColor: MAIN_COLOR, + borderWidth: 1, + borderRadius: 5.6, + paddingVertical: 10, + paddingHorizontal: 5, + justifyContent: 'center' + }, + actionBtnText: { + fontSize: IS_SMALL_SCREEN ? 10 : 12, + + }, + actionBtnSelected: { + backgroundColor: MAIN_COLOR, + }, + actionBtnSelectedText: { + color: WHITE + }, + footerBtnText: { + fontSize: 14, + }, + buttonsContainer: { + width: SCREEN_WIDTH, + height: PADDING_BOTTOM(49) + } +}); + +export default ExposuresHistoryEdit; diff --git a/src/components/Main/InfoBubble.tsx b/src/components/Main/InfoBubble.tsx new file mode 100644 index 00000000..9d78c1d9 --- /dev/null +++ b/src/components/Main/InfoBubble.tsx @@ -0,0 +1,49 @@ +import React, { FunctionComponent } from 'react'; +import { View, StyleSheet } from 'react-native'; +import { Icon, Text, TouchableOpacity } from '../common'; +import { SCREEN_WIDTH, MAIN_COLOR } from '../../constants/Constants'; + +interface Props { + isRTL: boolean, + info: string, + moreInfo: string, + onPress(): void +} + +const InfoBubble: FunctionComponent = ({ isRTL, info, moreInfo, onPress }) => { + return ( + + + + + {info} + + {moreInfo} + + + + + ); +}; + +const styles = StyleSheet.create({ + container: { + width: SCREEN_WIDTH - 36, + alignItems: 'center', + paddingHorizontal: 10, + borderRadius: 14, + backgroundColor: 'rgb(242,250,253)', + marginBottom: 8 + }, + textContainer: { + flex: 1, + paddingVertical: 15, + paddingHorizontal: 5, + }, + text: { + color: 'rgb(106,106,106)', + fontSize: 13, + } +}); + +export default InfoBubble; diff --git a/src/components/Main/InfoModal.tsx b/src/components/Main/InfoModal.tsx index 454b91ce..183684c4 100644 --- a/src/components/Main/InfoModal.tsx +++ b/src/components/Main/InfoModal.tsx @@ -9,10 +9,10 @@ import { Strings } from '../../locale/LocaleData'; const MODAL_MARGIN = 26; interface InfoModalProps { - strings: Strings, - showModal: boolean, - firstPointDate: string, - closeModal(): void + strings: Strings, + showModal: boolean, + firstPointDate: string, + closeModal(): void } const InfoModal = ({ strings, firstPointDate, closeModal, showModal }: InfoModalProps) => { @@ -40,23 +40,19 @@ const InfoModal = ({ strings, firstPointDate, closeModal, showModal }: InfoModal source={require('../../assets/main/infoModalBG.png')} > - - - - - - - - - {textBodyPt1.trim()} - {` ${firstPointDate} `} - {textBodyPt2.trim()} - - + + + + + + {textBodyPt1.trim()} + {` ${firstPointDate} `} + {textBodyPt2.trim()} + @@ -72,9 +68,7 @@ const styles = StyleSheet.create({ alignItems: 'center' }, container: { - height: 261, - backgroundColor: 'white', - justifyContent: 'center', + width: SCREEN_WIDTH - (MODAL_MARGIN * 2), alignItems: 'center', borderRadius: 18, shadowColor: '#084473', @@ -82,21 +76,15 @@ const styles = StyleSheet.create({ shadowOpacity: 0.1, shadowRadius: 23, elevation: 5, - width: SCREEN_WIDTH - (MODAL_MARGIN * 2) + paddingHorizontal: 57, + paddingBottom: 40, + paddingTop: 20, + backgroundColor: 'white', }, closeBtnContainer: { - flex: 1, - paddingLeft: 14, - justifyContent: 'center', - alignItems: 'flex-start', - width: SCREEN_WIDTH - (MODAL_MARGIN * 2) - }, - bodyContainer: { - flex: 3, - paddingHorizontal: 57, - alignItems: 'center', - marginBottom: 40, - marginTop: 20 + position: 'absolute', + top: 14, + left: 14, }, infoIcon: { marginBottom: 18 @@ -104,7 +92,6 @@ const styles = StyleSheet.create({ infoText: { fontSize: 16 } - }); diff --git a/src/components/Main/LocationHistoryInfo.tsx b/src/components/Main/LocationHistoryInfo.tsx deleted file mode 100644 index 19d62217..00000000 --- a/src/components/Main/LocationHistoryInfo.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import React from 'react'; -import { View, StyleSheet } from 'react-native'; -import { Icon, Text, TouchableOpacity } from '../common'; -import { SCREEN_WIDTH } from '../../constants/Constants'; - -interface Props { - isRTL: boolean, - info: string, - moreInfo: string, - onPress(): void -} - -const LocationHistoryInfo = ({ isRTL, info, moreInfo, onPress }: Props) => { - return ( - - - - - {info} - {moreInfo} - - - - ); -}; - -const styles = StyleSheet.create({ - container: { - width: SCREEN_WIDTH - 36, - alignItems: 'center', - paddingHorizontal: 10, - borderRadius: 14, - backgroundColor: 'rgba(230,230,230,0.45)' - }, - textContainer: { - flex: 1, - paddingVertical: 15, - paddingHorizontal: 5 - }, - text: { - color: 'rgb(77,77,77)', - fontSize: 12, - lineHeight: 12, - } -}); - -export default LocationHistoryInfo; diff --git a/src/components/Main/NoExposures.tsx b/src/components/Main/NoExposures.tsx index 1b1e39cc..d7e7914d 100644 --- a/src/components/Main/NoExposures.tsx +++ b/src/components/Main/NoExposures.tsx @@ -1,34 +1,43 @@ -import React, { useEffect, useRef, useState, useMemo } from 'react'; -import { View, StyleSheet, AppState, AppStateStatus } from 'react-native'; +import React, { useEffect, useRef, useState, useMemo, useCallback, FunctionComponent } from 'react'; +import { View, StyleSheet, AppState, AppStateStatus, Linking, Button, Platform } from 'react-native'; import moment from 'moment'; import LottieView from 'lottie-react-native'; -import LocationHistoryInfo from './LocationHistoryInfo'; +import InfoBubble from './InfoBubble'; import InfoModal from './InfoModal'; import { FadeInView, Text, Icon, TouchableOpacity } from '../common'; -import { Strings } from '../../locale/LocaleData'; -import { IS_SMALL_SCREEN, HIT_SLOP, PADDING_BOTTOM, SCREEN_WIDTH } from '../../constants/Constants'; +import { Strings, Languages, ExternalUrls } from '../../locale/LocaleData'; +import { IS_SMALL_SCREEN, HIT_SLOP, PADDING_BOTTOM, SCREEN_WIDTH, IS_IOS } from '../../constants/Constants'; + interface NoExposuresProps { isRTL: boolean, firstPoint?: number, strings: Strings, hideLocationHistory: boolean, - goToLocationHistory(): void + locale: string, + languages: Languages, + enableBle: boolean | undefined, + externalUrls: ExternalUrls, + exposureState: 'pristine' | 'notRelevant' | 'relevant', + showBleInfo: boolean, + goToLocationHistory(): void, + goToBluetoothPermission(): void } -const NoExposures = ({ isRTL, firstPoint, strings, hideLocationHistory, goToLocationHistory }: NoExposuresProps) => { + +const NoExposures: FunctionComponent = ({ exposureState, languages, locale, externalUrls, isRTL, firstPoint, strings, hideLocationHistory, enableBle, showBleInfo, goToLocationHistory, goToBluetoothPermission }) => { const appState = useRef('active'); const [showModal, setModalVisibility] = useState(false); const [now, setNow] = useState(moment().valueOf()); + const FPDate = useMemo(() => moment(firstPoint).format('D.M.YY'), [firstPoint]); - const { FPDate, nowDate, nowHour } = useMemo(() => ({ - FPDate: moment(firstPoint).format('D.M.YY'), + const { nowDate, nowHour } = useMemo(() => ({ nowDate: moment(now).format('D.M.YY'), nowHour: moment(now).format('HH:mm') - }), [firstPoint, now]); + }), [now]); - const { scanHome: { noExposures: { bannerText, workAllTheTime, card: { title, atHour } } }, locationHistory: { info, moreInfo } } = strings; + const { scanHome: { noExposures: { bannerText, bannerTextPristine, workAllTheTime, instructionLinkUpper, instructionLinkLower, bluetoothServiceOff, turnBluetoothOn, canIdentifyWithBluetooth, moreInformation, card: { title, atHour } } }, locationHistory: { info, moreInfo } } = strings; // redundant, ScanHome calls it useEffect(() => { @@ -39,23 +48,59 @@ const NoExposures = ({ isRTL, firstPoint, strings, hideLocationHistory, goToLoca }; }, []); + const RelevantCard = useMemo(() => { + if (exposureState !== 'relevant') return null; + + const relevantLocale: string = Object.keys(languages.short).includes(locale) ? locale : 'he'; + + const furtherInstructions = externalUrls.furtherInstructions[relevantLocale]; + + return ( + Linking.openURL(furtherInstructions)}> + + {instructionLinkUpper} + {instructionLinkLower} + + + + ); + }, [exposureState, strings]); + const onStateChange = async (state: AppStateStatus) => { if (state === 'active' && appState.current !== 'active') { setNow(moment().valueOf()); } - appState.current = state; }; + const LocationHistoryInfo = () => { + if (hideLocationHistory) return null; + return (); + }; + + const EnableBluetooth = () => { + if (enableBle !== null) return null; + return ( + + ); + }; + return ( <> - { - !hideLocationHistory && ( - - ) - } + + {workAllTheTime} - {bannerText} + {exposureState === 'pristine' ? bannerTextPristine : bannerText} @@ -87,7 +132,9 @@ const NoExposures = ({ isRTL, firstPoint, strings, hideLocationHistory, goToLoca {nowHour} + + {RelevantCard} , isRTL: boolean, strings: Strings, @@ -30,7 +29,8 @@ interface Props { languages: Languages, externalUrls: ExternalUrls, exposures: Exposure[], - validExposure: Exposure, + pastExposures: Exposure[], + enableBle: boolean | undefined, firstPoint?: number, hideLocationHistory: boolean, setValidExposure(exposure: Exposure): void, @@ -38,28 +38,35 @@ interface Props { dismissExposure(exposureId: number): void, checkForceUpdate(): void, checkIfHideLocationHistory(): void, - showMapModal(exposure: Exposure): void + showMapModal(exposure: Exposure): void, + checkIfBleEnabled(): void } -const ScanHome = ( +// user has Relevant event by time and location +const isAfter14Days = ({ properties }: Exposure): boolean => ((properties?.wasThere && moment().diff(moment(properties.toTime ?? properties.BLETimestamp), 'days') < 14) ?? false); + +const ScanHome: FunctionComponent = ( { navigation, + route, isRTL, strings, locale, languages, externalUrls, exposures, - validExposure, + pastExposures, + firstPoint, + enableBle, + hideLocationHistory, setValidExposure, removeValidExposure, dismissExposure, - firstPoint, - hideLocationHistory, checkForceUpdate, checkIfHideLocationHistory, - showMapModal - }: Props + showMapModal, + checkIfBleEnabled + } ) => { const appStateStatus = useRef('active'); const [{ hasLocation, hasNetwork, hasGPS }, setIsConnected] = useState({ hasLocation: true, hasNetwork: true, hasGPS: true }); @@ -81,20 +88,24 @@ const ScanHome = ( }, 3000); checkIfHideLocationHistory(); + checkIfBleEnabled(); checkConnectionStatusOnLoad(); - AppState.addEventListener('change', onAppStateChange); - NetInfo.addEventListener((state: NetInfoState) => { - setIsConnected({ hasLocation, hasNetwork: state.isConnected, hasGPS }); - }); + if (exposures.length > 0) { + navigation.navigate('ExposureDetected'); + } + }, []); + useEffect(() => { + AppState.addEventListener('change', onAppStateChange); + NetInfo.addEventListener((state: NetInfoState) => setIsConnected({ hasLocation, hasNetwork: state.isConnected, hasGPS })); DeviceEventEmitter.addListener(RNSettings.GPS_PROVIDER_EVENT, handleGPSProviderEvent); return () => { AppState.removeEventListener('change', onAppStateChange); DeviceEventEmitter.removeListener(RNSettings.GPS_PROVIDER_EVENT, handleGPSProviderEvent); }; - }, []); + }, [hasLocation, hasNetwork, hasGPS]); useFocusEffect( React.useCallback(() => { @@ -137,47 +148,41 @@ const ScanHome = ( setIsConnected({ hasLocation, hasNetwork, hasGPS: e[RNSettings.LOCATION_SETTING] === RNSettings.ENABLED }); }; - const renderRelevantState = () => { - if (validExposure) { - return ( - - ); - } if (!hasLocation || !hasNetwork || !hasGPS) { - return ( - - ); - } if (exposures.length > 0) { - return ( - setValidExposure(exposure)} - dismissExposure={exposureId => dismissExposure(exposureId)} - showMapModal={showMapModal} - /> - ); + const exposureState = () => { + // user never got any exposure detected + if (exposures.length + pastExposures.length === 0) { + return 'pristine'; + } + + // check if user past exposures are relevant + // ie: is less then 14 days old + if (exposures.some(isAfter14Days) || pastExposures.some(isAfter14Days)) { + return 'relevant'; } - return ( + return 'notRelevant'; + }; + + + const RelevantState = (!hasLocation || !hasNetwork || !hasGPS) + ? () + : ( navigation.navigate('LocationHistory')} + goToBluetoothPermission={() => navigation.navigate('Bluetooth')} + showBleInfo={route.params?.showBleInfo} /> ); - }; + return ( @@ -189,10 +194,7 @@ const ScanHome = ( strings={strings} openDrawer={navigation.openDrawer} /> - - { - renderRelevantState() - } + {RelevantState} ); }; @@ -207,23 +209,20 @@ const styles = StyleSheet.create({ const mapStateToProps = (state: any) => { const { locale: { isRTL, strings, locale, languages, externalUrls }, - general: { hideLocationHistory }, - exposures: { exposures, validExposure, firstPoint } + general: { hideLocationHistory, enableBle }, + exposures: { exposures, pastExposures, validExposure, firstPoint } } = state; - return { isRTL, strings, locale, languages, externalUrls, exposures, validExposure, firstPoint, hideLocationHistory }; + return { isRTL, strings, locale, languages, externalUrls, exposures, pastExposures, validExposure, firstPoint, hideLocationHistory, enableBle }; }; -const mapDispatchToProps = (dispatch: any) => { - return bindActionCreators({ - setValidExposure, - removeValidExposure, - dismissExposure, - checkForceUpdate, - checkIfHideLocationHistory, - showMapModal - }, dispatch); -}; - -export default connect(mapStateToProps, mapDispatchToProps)(ScanHome); +export default connect(mapStateToProps, { + setValidExposure, + removeValidExposure, + dismissExposure, + checkForceUpdate, + checkIfHideLocationHistory, + showMapModal, + checkIfBleEnabled +})(ScanHome); diff --git a/src/components/Main/ScanHomeHeader.tsx b/src/components/Main/ScanHomeHeader.tsx index d50c22c3..90946c00 100644 --- a/src/components/Main/ScanHomeHeader.tsx +++ b/src/components/Main/ScanHomeHeader.tsx @@ -1,8 +1,8 @@ -import React, { useMemo } from 'react'; +import React, { useMemo, FunctionComponent } from 'react'; import { View, StyleSheet, ImageBackground, Share } from 'react-native'; import { TouchableOpacity, Icon } from '../common'; import { onError } from '../../services/ErrorService'; -import { ExternalUrls,Strings, Languages } from '../../locale/LocaleData'; +import { ExternalUrls, Strings, Languages } from '../../locale/LocaleData'; import { HIT_SLOP, PADDING_TOP, SCREEN_HEIGHT, SCREEN_WIDTH } from '../../constants/Constants'; interface ScanHomeHeaderProps { @@ -14,16 +14,16 @@ interface ScanHomeHeaderProps { openDrawer(): void } -const ScanHomeHeader = ({ isRTL,languages,locale,externalUrls,strings: { scanHome: { share: { message, title, androidTitle } } }, openDrawer }: ScanHomeHeaderProps) => { - const messageAndUrl = useMemo(()=> { +const ScanHomeHeader: FunctionComponent = ({ isRTL, languages, locale, externalUrls, strings: { scanHome: { share: { message, title, androidTitle } } }, openDrawer }) => { + const messageAndUrl = useMemo(() => { const relevantLocale: string = Object.keys(languages.short).includes(locale) ? locale : 'he'; - return `${message}\n${externalUrls?.shareMessage?.[relevantLocale] ?? ''}` - }, [locale]) + return `${message}\n${externalUrls?.shareMessage?.[relevantLocale] ?? ''}`; + }, [locale]); const onShare = async () => { try { - await Share.share({ message: messageAndUrl, title }, { dialogTitle: androidTitle, subject: title}); + await Share.share({ message: messageAndUrl, title }, { dialogTitle: androidTitle, subject: title }); } catch (error) { onError({ error }); } @@ -70,7 +70,7 @@ const styles = StyleSheet.create({ }, bottomEdge: { width: SCREEN_WIDTH, - height: 45, + height: 24, borderTopLeftRadius: 24, borderTopRightRadius: 24, backgroundColor: '#fff' diff --git a/src/components/Onboarding/AllSet.tsx b/src/components/Onboarding/AllSet.tsx index e1a0674e..e849cd8b 100644 --- a/src/components/Onboarding/AllSet.tsx +++ b/src/components/Onboarding/AllSet.tsx @@ -10,8 +10,9 @@ import { scheduleTask } from '../../services/BackgroundService'; import { startForegroundTimer } from '../../services/Tracker'; import { onError } from '../../services/ErrorService'; import { startSampling } from '../../services/SampleService'; +import { initBLETracing } from '../../services/BLEService'; import { NotificationData, Strings } from '../../locale/LocaleData'; -import { SCREEN_WIDTH, IS_FIRST_TIME } from '../../constants/Constants'; +import { SCREEN_WIDTH, IS_FIRST_TIME, DID_CLUSTER_LOCATIONS, SICK_DB_UPDATED } from '../../constants/Constants'; interface Props { navigation: StackNavigationProp, @@ -44,8 +45,10 @@ const AllSet = ({ navigation, strings: { allSet: { allGood } }, locale, notifica const onboardingDoneActions = async () => { try { await AsyncStorage.setItem(IS_FIRST_TIME, 'true'); - + await AsyncStorage.setItem(DID_CLUSTER_LOCATIONS, 'true'); + await AsyncStorage.setItem(SICK_DB_UPDATED, 'true'); startForegroundTimer(); + await initBLETracing(); await startSampling(locale, notificationData); await scheduleTask(); diff --git a/src/components/Onboarding/BluetoothOnboarding.tsx b/src/components/Onboarding/BluetoothOnboarding.tsx new file mode 100644 index 00000000..c4ce56e9 --- /dev/null +++ b/src/components/Onboarding/BluetoothOnboarding.tsx @@ -0,0 +1,41 @@ +import React, { FunctionComponent } from 'react'; +import { View, StyleSheet } from 'react-native'; +import { useSelector, useDispatch } from 'react-redux'; +import { StackNavigationProp } from '@react-navigation/stack'; +import DeviceInfo from 'react-native-device-info'; +import { ActionButton, GeneralContainer, OnboardingHeader, Text, Icon, TouchableOpacity } from '../common'; +import { Strings } from '../../locale/LocaleData'; +import { IS_SMALL_SCREEN, MAIN_COLOR, USAGE_PRIVACY } from '../../constants/Constants'; +import { Store, LocaleReducer } from '../../types'; +import { toggleWebview } from '../../actions/GeneralActions'; +import BluetoothPermission from '../common/BluetoothPermission'; + +interface Props { + navigation: StackNavigationProp, +} + +const BluetoothOnboarding: FunctionComponent = ({ navigation }) => { + return ( + + + { + const androidVersion = parseFloat(DeviceInfo.getSystemVersion().split(',')[0]); + navigation.navigate(androidVersion >= 10 ? 'FilterDrivingOnBoarding' : 'LocationHistoryOnBoarding'); + } + } + /> + + ); +}; + + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: 'space-between', + alignItems: 'center' + }, +}); + +export default BluetoothOnboarding; diff --git a/src/components/Onboarding/Location.tsx b/src/components/Onboarding/Location.tsx index c7b8f9b6..f7bf5249 100644 --- a/src/components/Onboarding/Location.tsx +++ b/src/components/Onboarding/Location.tsx @@ -10,7 +10,7 @@ import { ActionButton, GeneralContainer, OnboardingHeader, Text, TermsOfUse } fr import { toggleWebview } from '../../actions/GeneralActions'; import { requestLocationPermissions } from '../../services/LocationService'; import { Strings } from '../../locale/LocaleData'; -import { IS_IOS, IS_SMALL_SCREEN, MAIN_COLOR, USAGE_ON_BOARDING } from '../../constants/Constants'; +import { IS_IOS, IS_SMALL_SCREEN, MAIN_COLOR, USAGE_ON_BOARDING, ENABLE_BLE } from '../../constants/Constants'; interface Props { navigation: StackNavigationProp, @@ -36,6 +36,9 @@ const Location = ({ navigation, isRTL, strings, toggleWebview }: Props) => { if (IS_IOS) { navigation.navigate('LocationIOS'); + } else if (ENABLE_BLE) { + // got to this only if ble enabled + navigation.navigate('Bluetooth'); } else { const androidVersion = parseFloat(DeviceInfo.getSystemVersion().split(',')[0]); navigation.navigate(androidVersion >= 10 ? 'FilterDrivingOnBoarding' : 'LocationHistoryOnBoarding'); diff --git a/src/components/Onboarding/OnboardingRoutes.tsx b/src/components/Onboarding/OnboardingRoutes.tsx new file mode 100644 index 00000000..6b3dfed0 --- /dev/null +++ b/src/components/Onboarding/OnboardingRoutes.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import { CardStyleInterpolators, createStackNavigator } from '@react-navigation/stack'; +import Welcome from './Welcome'; +import Location from './Location'; +import LocationIOS from './LocationIOS'; +import BluetoothOnboarding from './BluetoothOnboarding'; +import FilterDrivingOnBoarding from './FilterDrivingOnBoarding'; +import LocationHistoryOnBoarding from './LocationHistoryOnBoarding'; +import Notifications from './Notifications'; +import AllSet from './AllSet'; + +const Stack = createStackNavigator(); + +const OnboardingRoutes = () => ( + + + + + + + + + + +); + +export default OnboardingRoutes; diff --git a/src/components/ShareLocations/ShareLocations.tsx b/src/components/ShareLocations/ShareLocations.tsx index cf338a8e..ffc0dc6b 100644 --- a/src/components/ShareLocations/ShareLocations.tsx +++ b/src/components/ShareLocations/ShareLocations.tsx @@ -3,11 +3,11 @@ import { StyleSheet, AppState, AppStateStatus, View } from 'react-native'; import { StackNavigationProp } from '@react-navigation/stack'; import NetInfo, { NetInfoState } from '@react-native-community/netinfo'; import { useDispatch, useSelector } from 'react-redux'; -import { ActionButton, HeaderButton, Icon, Text } from '../common'; +import { ActionButton, HeaderButton, Icon, Text, TouchableOpacity } from '../common'; import { shareUserLocations } from '../../actions/DeepLinkActions'; import { Strings } from '../../locale/LocaleData'; import { LocaleReducer, Store } from '../../types'; -import { IS_SMALL_SCREEN, PADDING_BOTTOM, PADDING_TOP } from '../../constants/Constants'; +import { IS_SMALL_SCREEN, PADDING_BOTTOM, PADDING_TOP, TEXT_COLOR, IS_IOS, ENABLE_BLE } from '../../constants/Constants'; interface Props { route: any, @@ -24,16 +24,17 @@ const ICON = { shareFail: SHARE_FAIL_ICON, }; -type ShareStates = 'beforeShare'|'shareNoConnection'|'shareSuccess'|'shareFail' -type ShareFailState = ''|'MissingToken'|'TokenError' +type ShareStates = 'beforeShare' | 'shareNoConnection' | 'shareSuccess' | 'shareFail' +type ShareFailState = '' | 'MissingToken' | 'TokenError' | 'WithWarnings' const ShareLocations = ({ route, navigation }: Props) => { - const { strings: { shareLocation: { title, description, greeting, button } } } = useSelector(state => state.locale); + const { isRTL, strings: { shareLocation: { title, description, greeting, button, addBleDataText } } } = useSelector(state => state.locale); const dispatch = useDispatch(); const [state, setState] = useState('beforeShare'); const [failState, setFailState] = useState(''); const [canRetry, setRetryState] = useState(true); + const [agreeToBle, onValueSelected] = useState(true); const { token } = route.params; useEffect(() => { @@ -51,34 +52,44 @@ const ShareLocations = ({ route, navigation }: Props) => { return () => { netInfoUnsubscribe(); - AppState.removeEventListener('change', () => {}); + AppState.removeEventListener('change', () => { }); }; }, []); const onButtonPress = async () => { try { if (canRetry) { - const { statusCode, statusDesc }: any = await dispatch(shareUserLocations(token)); + const { statusCode, statusDesc }: any = await dispatch(shareUserLocations(token, agreeToBle)); switch (statusCode) { + case 'CompleteSuccessfully': case 'CompletSuccessfully': { setState('shareSuccess'); setRetryState(false); break; } + case 'CompleteWithWarnings': { + setState('shareFail'); + setFailState('WithWarnings'); + setRetryState(false); + break; + } case 'RunTimeError': { setState('shareFail'); - setFailState('MissingToken'); + setFailState('TokenError'); break; } case 'InvalidOperation': { switch (statusDesc) { + case '1': + case '2': case 1: case 2: { setState('shareFail'); setFailState('TokenError'); break; } + case '3': case 3: { setState('shareSuccess'); setRetryState(false); @@ -86,14 +97,14 @@ const ShareLocations = ({ route, navigation }: Props) => { } default: { setState('shareFail'); - setRetryState(false); + setFailState('MissingToken'); + break; } } break; } default: { setState('shareFail'); - setRetryState(false); } } } else { @@ -109,6 +120,23 @@ const ShareLocations = ({ route, navigation }: Props) => { // @ts-ignore const combinedState: ShareStates & ShareFailState = state + failState; + const AgreeToBleCheckbox = () => { + if (!IS_IOS && ENABLE_BLE && state === 'beforeShare') { + return ( + onValueSelected(!agreeToBle)} accessibilityRole="checkbox" checked={agreeToBle}> + + {agreeToBle && } + + + {addBleDataText} + + + ); + } + + return null; + }; + return ( {Header} @@ -120,8 +148,10 @@ const ShareLocations = ({ route, navigation }: Props) => { {description[combinedState]} {greeting[state]} - - + + + + ); }; @@ -143,6 +173,20 @@ const styles = StyleSheet.create({ description: { marginBottom: 17, lineHeight: 19 + }, + box: { + width: 20, + height: 20, + borderWidth: 1, + justifyContent: 'center', + alignItems: 'center', + borderColor: TEXT_COLOR + }, + text: { + fontSize: 13, + lineHeight: 18, + color: '#6a6a6a', + paddingHorizontal: 10, } }); diff --git a/src/components/common/ActionButton.tsx b/src/components/common/ActionButton.tsx index 24e86097..dbb09646 100644 --- a/src/components/common/ActionButton.tsx +++ b/src/components/common/ActionButton.tsx @@ -25,7 +25,7 @@ const styles = StyleSheet.create({ container: { ...BASIC_SHADOW_STYLES, width: SCREEN_WIDTH * 0.6, - height: 60, + minHeight: 60, justifyContent: 'center', alignItems: 'center', borderRadius: 10, diff --git a/src/components/common/BluetoothPermission.tsx b/src/components/common/BluetoothPermission.tsx new file mode 100644 index 00000000..57e18318 --- /dev/null +++ b/src/components/common/BluetoothPermission.tsx @@ -0,0 +1,112 @@ +import React, { FunctionComponent } from 'react'; +import { View, StyleSheet, Platform } from 'react-native'; +import { useSelector, useDispatch } from 'react-redux'; +import { useRoute } from '@react-navigation/native'; +import AsyncStorage from '@react-native-community/async-storage'; +// import { StackNavigationProp } from '@react-navigation/stack'; +import { ActionButton, Text, Icon, TouchableOpacity } from '.'; +import { Strings } from '../../locale/LocaleData'; +import { IS_SMALL_SCREEN, MAIN_COLOR, USAGE_PRIVACY, USER_AGREE_TO_BLE, IS_IOS, SCREEN_WIDTH } from '../../constants/Constants'; +import { Store, LocaleReducer } from '../../types'; +import { toggleWebview } from '../../actions/GeneralActions'; +import { ENABLE_BLE } from '../../constants/ActionTypes'; + + +interface Props { + onEnd(): void +} + +const BluetoothPermission: FunctionComponent = ({ onEnd }) => { + const dispatch = useDispatch(); + const { strings: { + general: { additionalInfo }, + bluetooth: { title, description, approveBluetoothIOS, approveBluetoothAndroid, callToAction } + } + } = useSelector(state => state.locale); + const { params } = useRoute(); + + const userApprove = async () => { + await AsyncStorage.setItem(USER_AGREE_TO_BLE, 'true'); + onEnd(); + }; + + const handlePressIOS = () => { }; + + const handlePressAndroid = async () => { + onEnd(); + // ENABLE_BLE + dispatch({ type: ENABLE_BLE, payload: true }); + await AsyncStorage.setItem(USER_AGREE_TO_BLE, 'true'); + }; + + return ( + <> + + {!IS_SMALL_SCREEN && ( + + )} + {title} + {description} + {callToAction} + + + + {params?.showUsageLink && ( + + dispatch(toggleWebview(true, USAGE_PRIVACY))}> + {additionalInfo} + + + + )} + + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: 'space-between', + alignItems: 'center' + }, + lottie: { + height: 120, + marginBottom: 20 + }, + title: { + fontSize: 22, + marginBottom: 25 + }, + description: { + lineHeight: 24, + marginBottom: 25 + }, + callToAction: { + lineHeight: 22, + color: '#4d4d4d' + }, + bottomBorder: { + alignSelf: 'stretch', + height: 2, + borderRadius: 1, + backgroundColor: MAIN_COLOR + }, + termsWrapper: { + width: SCREEN_WIDTH * 0.7, + alignItems: 'center' + } +}); + +export default BluetoothPermission; diff --git a/src/components/common/CardIdentifyTag.tsx b/src/components/common/CardIdentifyTag.tsx new file mode 100644 index 00000000..8a578c7e --- /dev/null +++ b/src/components/common/CardIdentifyTag.tsx @@ -0,0 +1,27 @@ +import React, { FunctionComponent } from 'react'; +import { View } from 'react-native'; +import { Text } from '.'; + +interface Props { + isRTL: boolean, + text: string, + color: string +} + +const CardIdentifyTag: FunctionComponent = ({ isRTL, text, color }) => ( + + {text} + +); + +export default CardIdentifyTag; diff --git a/src/components/common/GoogleTimeLine.tsx b/src/components/common/GoogleTimeLine.tsx index ab4855b0..5c0a787f 100644 --- a/src/components/common/GoogleTimeLine.tsx +++ b/src/components/common/GoogleTimeLine.tsx @@ -31,12 +31,12 @@ interface FetchHistoryModalProps { closeModal(): void } -const FetchHistoryModal = ({ isVisible, isLoggedIn, webViewRef, onMessage, closeModal }:FetchHistoryModalProps) => { +const FetchHistoryModal = ({ isVisible, isLoggedIn, webViewRef, onMessage, closeModal }: FetchHistoryModalProps) => { return ( {} : closeModal} + onRequestClose={isLoggedIn ? () => { } : closeModal} > @@ -69,7 +69,7 @@ interface GoogleTimeLineProps { interface State { openWebview: boolean, isLoggedIn: boolean, - state: 'before'|'successFound'|'successNotFound'|'failed' + state: 'before' | 'successFound' | 'successNotFound' | 'failed' } const GoogleTimeLine = ({ strings, toggleWebview, onCompletion }: GoogleTimeLineProps) => { @@ -129,7 +129,7 @@ const GoogleTimeLine = ({ strings, toggleWebview, onCompletion }: GoogleTimeLine }; } - default: { return { icon: 0, title: '', desc1: '', desc2: '', button: '', action: () => {} }; } + default: { return { icon: 0, title: '', desc1: '', desc2: '', button: '', action: () => { } }; } } }; @@ -140,6 +140,7 @@ const GoogleTimeLine = ({ strings, toggleWebview, onCompletion }: GoogleTimeLine }, IS_IOS ? 5000 : 10); }); + const onMessage = async ({ nativeEvent: { data } }: WebViewMessageEvent) => { if (!data) { return; @@ -187,7 +188,7 @@ const GoogleTimeLine = ({ strings, toggleWebview, onCompletion }: GoogleTimeLine onError({ error }); }; - const onFlowEnd = async (state: 'before'|'successFound'|'successNotFound'|'failed') => { + const onFlowEnd = async (state: 'before' | 'successFound' | 'successNotFound' | 'failed') => { if (state !== 'failed') { // once 14 days flow completed for the first time await AsyncStorage.setItem(SHOULD_HIDE_LOCATION_HISTORY, 'true'); @@ -218,10 +219,12 @@ const GoogleTimeLine = ({ strings, toggleWebview, onCompletion }: GoogleTimeLine { state === 'before' && ( - toggleWebview(true, USAGE_PRIVACY)}> - {additionalInfo} - - + + toggleWebview(true, USAGE_PRIVACY)}> + {additionalInfo} + + + ) } @@ -255,6 +258,7 @@ const styles = StyleSheet.create({ flex: 1, alignItems: 'center', justifyContent: 'space-between', + paddingTop: 10, backgroundColor: '#fff' }, textsContainer: { diff --git a/src/components/common/HeaderButton.tsx b/src/components/common/HeaderButton.tsx index a5a06378..38debde0 100644 --- a/src/components/common/HeaderButton.tsx +++ b/src/components/common/HeaderButton.tsx @@ -3,7 +3,7 @@ import { StyleSheet } from 'react-native'; import { useSelector } from 'react-redux'; import { TouchableOpacity, Icon } from '.'; import { LocaleReducer, Store } from '../../types'; -import { IS_SMALL_SCREEN, PADDING_TOP } from '../../constants/Constants'; +import { IS_SMALL_SCREEN, PADDING_TOP, HIT_SLOP } from '../../constants/Constants'; interface Props { type: 'close'|'back', @@ -15,6 +15,7 @@ const HeaderButton = ({ type, onPress }: Props) => { return ( , reference?: MutableRefObject, children?: ReactNode, bold?: boolean, diff --git a/src/components/common/index.ts b/src/components/common/index.ts index 090bfea4..e8bf7e04 100644 --- a/src/components/common/index.ts +++ b/src/components/common/index.ts @@ -13,3 +13,4 @@ export * from './ForceTerms'; export * from './GoogleTimeLine'; export * from './WebviewHeader'; export * from './HeaderButton'; +export * from './CardIdentifyTag'; diff --git a/src/config/config.ts b/src/config/config.ts index 5faf52c2..169170d8 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -7,7 +7,7 @@ import { Config } from '../types'; // @ts-ignore const env: 'com.hamagen.qa'|'com.hamagen' = DeviceInfo.getBundleId(); - +// @ts-ignore let config: Config = DefaultConfig[env] || DefaultConfig['com.hamagen.qa']; export const initConfig = async () => new Promise(async (resolve) => { diff --git a/src/config/default_config.json b/src/config/default_config.json index 0a9f04c7..f09eb21e 100644 --- a/src/config/default_config.json +++ b/src/config/default_config.json @@ -1,15 +1,24 @@ { "com.hamagen.dev": { - "dataUrl": "https://matrixdemos.blob.core.windows.net/mabar/Points.json", - "dataUrl_utc": "https://matrixdemos.blob.core.windows.net/mabar/Points.json", + "dataUrl": "https://matrixdemos.blob.core.windows.net/mabar/PointsFiltered.json", + "dataUrl_utc": "https://matrixdemos.blob.core.windows.net/mabar/PointsFiltered.json", + "BleDataUrl_utc": "https://matrixdemos.blob.core.windows.net/mabar/BleUtc.json", "stringsUrl": "https://matrixdemos.blob.core.windows.net/mabar/texts.json", "versionsUrl": "https://matrixdemos.blob.core.windows.net/mabar/versions.json", "dataShareUrl": "https://hamagenapitest.health.gov.il/api/data/UploadMobileData", "sampleDistance": 50, "sampleInterval": 60000, "fetchMilliseconds": 900000, + "minimumBLEFetchIntervalMin": 15, + "minimumGeoFetchIntervalMin": 60, "meterRadius": 50, + "clusterRadius": 20, + "jitterValue": 2, + "jitterUnits": "minutes", "intersectMilliseconds": 1, + "intersectMillisecondsWithCluster": 900000, + "intersectWithClusters": true, + "dataShareClusters": false, "bufferUnits": "meter", "sickGeometryLongIndex": 0, "sickGeometryLatIndex": 1, @@ -101,16 +110,25 @@ } }, "com.hamagen.qa": { - "dataUrl": "https://matrixdemos.blob.core.windows.net/mabar/Points.json", - "dataUrl_utc": "https://matrixdemos.blob.core.windows.net/mabar/Points.json", + "dataUrl": "https://matrixdemos.blob.core.windows.net/mabar/PointsFiltered.json", + "dataUrl_utc": "https://matrixdemos.blob.core.windows.net/mabar/PointsFiltered.json", + "BleDataUrl_utc": "https://matrixdemos.blob.core.windows.net/mabar/BleUtc.json", "stringsUrl": "https://matrixdemos.blob.core.windows.net/mabar/texts.json", "versionsUrl": "https://matrixdemos.blob.core.windows.net/mabar/versions.json", - "dataShareUrl": "https://hamagenapitest.health.gov.il/api/data/UploadMobileData", + "dataShareUrl": "https://hamagenapitest.health.gov.il/api/data/UploadMobileData2", "sampleDistance": 50, "sampleInterval": 60000, "fetchMilliseconds": 900000, + "minimumBLEFetchIntervalMin": 15, + "minimumGeoFetchIntervalMin": 60, "meterRadius": 50, + "clusterRadius": 20, + "jitterValue": 2, + "jitterUnits": "minutes", "intersectMilliseconds": 1, + "intersectMillisecondsWithCluster": 900000, + "intersectWithClusters": true, + "dataShareClusters": false, "bufferUnits": "meter", "sickGeometryLongIndex": 0, "sickGeometryLatIndex": 1, @@ -204,14 +222,23 @@ "com.hamagen": { "dataUrl": "https://gisweb.azureedge.net/PointsUtc.json", "dataUrl_utc": "https://gisweb.azureedge.net/PointsUtc.json", + "BleDataUrl_utc": "https://gisweb.azureedge.net/BleUtc.json", "stringsUrl": "https://gisweb.azureedge.net/texts.json", "versionsUrl": "https://gisweb.azureedge.net/versions.json", - "dataShareUrl": "https://hamagenapitest.health.gov.il/api/data/UploadMobileData", + "dataShareUrl": "https://hamagenapi.health.gov.il/api/data/UploadMobileData2", "sampleDistance": 50, "sampleInterval": 900000, "fetchMilliseconds": 3600000, + "minimumBLEFetchIntervalMin": 15, + "minimumGeoFetchIntervalMin": 60, "meterRadius": 50, + "clusterRadius": 20, + "jitterValue": 2, + "jitterUnits": "minutes", "intersectMilliseconds": 1, + "intersectMillisecondsWithCluster": 900000, + "intersectWithClusters": true, + "dataShareClusters": false, "bufferUnits": "meter", "sickGeometryLongIndex": 0, "sickGeometryLatIndex": 1, diff --git a/src/constants/ActionTypes.ts b/src/constants/ActionTypes.ts index 7028f057..2adea006 100755 --- a/src/constants/ActionTypes.ts +++ b/src/constants/ActionTypes.ts @@ -18,3 +18,6 @@ export const HIDE_FORCE_TERMS = 'HIDE_FORCE_TERMS'; export const HIDE_LOCATION_HISTORY = 'HIDE_LOCATION_HISTORY'; export const SHOW_MAP_MODAL = 'SHOW_MAP_MODAL'; export const HIDE_MAP_MODAL = 'HIDE_MAP_MODAL'; +export const REPLACE_EXPOSURES = 'REPLACE_EXPOSURES'; +export const REPLACE_PAST_EXPOSURES = 'REPLACE_PAST_EXPOSURES'; +export const ENABLE_BLE = 'ENABLE_BLE'; diff --git a/src/constants/Constants.ts b/src/constants/Constants.ts index 2d23b1bf..561c0d24 100755 --- a/src/constants/Constants.ts +++ b/src/constants/Constants.ts @@ -15,12 +15,13 @@ export const IS_IPHONE_X: boolean = Platform.OS === 'ios' && (isIPhoneXSize || i export const SCREEN_HEIGHT: number = Platform.OS === 'ios' ? Dimensions.get('window').height : ExtraDimensions.get('REAL_WINDOW_HEIGHT') - ExtraDimensions.get('SOFT_MENU_BAR_HEIGHT') - ExtraDimensions.get('STATUS_BAR_HEIGHT'); export const SCREEN_WIDTH: number = Dimensions.get('window').width; export const PADDING_TOP = (padBy: number = 0): number => padBy + (IS_IOS ? (IS_IPHONE_X ? 32 : 20) : 0); -export const PADDING_BOTTOM = (padBy: number): number => padBy + (IS_IPHONE_X ? 15 : 0); -export const IS_SMALL_SCREEN: boolean = SCREEN_HEIGHT < 600; +export const PADDING_BOTTOM = (padBy: number = 0): number => padBy + (IS_IPHONE_X ? 15 : 0); +export const IS_SMALL_SCREEN: boolean = SCREEN_HEIGHT < 618; // Colors export const MAIN_COLOR = '#0077c8'; export const TEXT_COLOR = '#191919'; +export const WHITE = '#fff'; export const BACK_DROP_COLOR: string = 'rgba(0,0,0,0.7)'; // Styles @@ -49,7 +50,24 @@ export const SHOULD_HIDE_LOCATION_HISTORY = 'SHOULD_HIDE_LOCATION_HISTORY'; export const IS_LAST_POINT_FROM_TIMELINE = 'IS_LAST_POINT_FROM_TIMELINE'; export const HIGH_VELOCITY_POINTS = 'HIGH_VELOCITY_POINTS'; export const MOTION_PERMISSION_CALL_TO_ACTION = 'MOTION_PERMISSION_CALL_TO_ACTION'; +export const ALL_POINTS_QA = 'ALL_POINTS_QA'; +export const HIGH_VELOCITY_POINTS_QA = 'HIGH_VELOCITY_POINTS_QA'; +export const SERVICE_TRACKER = 'SERVICE_TRACKER'; +export const INIT_ROUTE_NAME = 'INIT_ROUTE_NAME'; +export const USER_AGREE_BLE = 'USER_AGREE_BLE'; +export const SICK_DB_UPDATED = 'SICK_DB_UPDATED'; + + +// Cluster +export const CLUSTER_JITTER_LOCATION = 'CLUSTER_JITTER_LOCATION'; +export const CURRENT_CLUSTER_LOCATIONS_DATA = 'CURRENT_CLUSTER_LOCATIONS_DATA'; +export const DID_CLUSTER_LOCATIONS = 'DID_CLUSTER_LOCATIONS'; +export const CLUSTERING_RESULT_LOG_FOR_QA = 'CLUSTERING_RESULT_LOG_FOR_QA'; // GeneralWebview export const USAGE_ON_BOARDING = 'USAGE_ON_BOARDING'; export const USAGE_PRIVACY = 'USAGE_PRIVACY'; + +// BLE +export const USER_AGREE_TO_BLE = 'USER_AGREE_TO_BLE'; +export const ENABLE_BLE = false diff --git a/src/constants/defaultBleResponse.json b/src/constants/defaultBleResponse.json new file mode 100644 index 00000000..da1633c4 --- /dev/null +++ b/src/constants/defaultBleResponse.json @@ -0,0 +1,397 @@ +{ + "startDay": 18000, + "days": [ + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [ + ], + [ + ] + ] + ] + } \ No newline at end of file diff --git a/src/database/Database.js b/src/database/Database.js index 52107287..c2c21e37 100755 --- a/src/database/Database.js +++ b/src/database/Database.js @@ -143,7 +143,7 @@ export class UserLocationsDatabase { db.transaction(async (tx) => { try { - await tx.executeSql('DELETE FROM Samples WHERE endTime < ?', [timestamp]); + await tx.executeSql('DELETE FROM Samples WHERE endTime < ? OR endTime IS NULL', [timestamp]); resolve(true); } catch (error) { onError({ error }); @@ -197,6 +197,212 @@ export class UserLocationsDatabase { } }); } + + getBufferSamplesForClustering(bufferSize) { + return new Promise(async (resolve) => { + try { + const db = await this.initDB(); + + db.transaction(async (tx) => { + try { + const [_, results] = await tx.executeSql('select * from (select * from Samples order by rowid DESC limit ?);', [bufferSize]); + + const samples = []; + const len = results.rows.length; + + for (let i = 0; i < len; i++) { + const row = results.rows.item(i); + samples.push(row); + } + + resolve(samples.reverse()); + } catch (error) { + onError({ error }); + } + }); + } catch (error) { + onError({ error }); + } + }); + } +} + +export class UserClusteredLocationsDatabase { + initDB() { + let db; + return new Promise(async (resolve, reject) => { + try { + await SQLite.echoTest(); + + const DB = await SQLite.openDatabase( + database_name, + database_version, + database_displayname, + database_size + ); + + db = DB; + + await db.executeSql('CREATE TABLE IF NOT EXISTS Clusters (lat,long,startTime,endTime,geoHash,radius,size);'); + + resolve(db); + } catch (error) { + reject(error); + onError({ error }); + } + }); + } + + listClusters() { + return new Promise(async (resolve) => { + try { + const db = await this.initDB(); + + db.transaction(async (tx) => { + try { + const [_, results] = await tx.executeSql('SELECT * FROM Clusters', []); + + const clusters = []; + const len = results.rows.length; + + for (let i = 0; i < len; i++) { + const row = results.rows.item(i); + clusters.push(row); + } + + resolve(clusters); + } catch (error) { + onError({ error }); + } + }); + } catch (error) { + onError({ error }); + } + }); + } + + addCluster(cluster) { + return new Promise(async (resolve) => { + try { + const db = await this.initDB(); + + db.transaction(async (tx) => { + try { + const [_, results] = await tx.executeSql('INSERT INTO Clusters VALUES (?,?,?,?,?,?,?)', [cluster.lat, cluster.long, cluster.startTime, cluster.endTime, cluster.geoHash, cluster.radius, cluster.size]); + resolve(results); + } catch (error) { + onError({ error }); + } + }); + } catch (error) { + onError({ error }); + } + }); + } + + insertBulkClusters(data) { + return new Promise(async (resolve, reject) => { + try { + const db = await this.initDB(); + + await db.transaction(async (tx) => { + try { + const parsedData = data.flatMap(cluster => Object.values(cluster)); + const numberOfBulks = Math.ceil(parsedData.length / 700); + const bulks = Array.from({ length: numberOfBulks }, (_, index) => parsedData.slice(index * 700, (index + 1) * 700)); + + await Promise.all(bulks.map((bulkData) => { + const clusters = Array.from({ length: bulkData.length / 7 }, () => '(?,?,?,?,?,?,?)').toString(); + return tx.executeSql(`INSERT INTO Clusters VALUES ${clusters}`, bulkData); + })); + + resolve(); + } catch (error) { + onError({ error }); + } + }); + } catch (error) { + reject(error); + } + }); + } + + getLastClusterEntered() { + return new Promise(async (resolve) => { + try { + const db = await this.initDB(); + + db.transaction(async (tx) => { + try { + const [_, results] = await tx.executeSql('SELECT * from Clusters WHERE rowid=(SELECT MAX(rowid) from Clusters)'); + + if (results.rows.length > 0) { + const row = results.rows.item(0); + resolve(row); + } else { + resolve(null); + } + } catch (error) { + onError({ error }); + } + }); + } catch (error) { + onError({ error }); + } + }); + } + + updateLastCluster(cluster) { + return new Promise(async (resolve) => { + try { + const db = await this.initDB(); + + db.transaction(async (tx) => { + try { + const [_, results] = await tx.executeSql('UPDATE Clusters SET lat=?, long=?, startTime=?, endTime=?, geoHash=?, radius=?, size=? WHERE rowid=(SELECT MAX(rowid) from Clusters)', [ + cluster.lat, + cluster.long, + cluster.startTime, + cluster.endTime, + cluster.geoHash, + cluster.radius, + cluster.size + ]); + + if (results.rows.length > 0) { + const row = results.rows.item(0); + resolve(row); + } else { + resolve(null); + } + } catch (error) { + onError({ error }); + } + }); + } catch (error) { + onError({ error }); + } + }); + } + + purgeClustersTable(timestamp) { + return new Promise(async (resolve) => { + try { + const db = await this.initDB(); + + db.transaction(async (tx) => { + try { + await tx.executeSql('DELETE FROM Clusters WHERE endTime < ? OR endTime IS NULL', [timestamp]); + resolve(true); + } catch (error) { + onError({ error }); + } + }); + } catch (error) { + onError({ error }); + } + }); + } } export class IntersectionSickDatabase { @@ -215,7 +421,7 @@ export class IntersectionSickDatabase { db = DB; - await db.executeSql('CREATE TABLE IF NOT EXISTS IntersectingSick (OBJECTID,Name,Place,Comments,fromTime,toTime,long,lat);'); + await db.executeSql('CREATE TABLE IF NOT EXISTS IntersectingSick (OBJECTID,Name,Place,Comments,fromTime,toTime,long,lat,wasThere,BLETimestamp);'); resolve(db); } catch (error) { @@ -253,6 +459,53 @@ export class IntersectionSickDatabase { }); } + getGeoRecord = async (OBJECTID, db) => new Promise(async (resolve) => { + db.transaction(async (tx) => { + try { + const [_, results] = await tx.executeSql(`SELECT * FROM IntersectingSick WHERE OBJECTID =${OBJECTID}`); + + const item = results.rows.item(0); + + resolve(item); + } catch (error) { + onError({ error }); + } + }); + }) + + getBleRecord = async (BLETimestamp, db) => new Promise(async (resolve) => { + db.transaction(async (tx) => { + try { + const [_, results] = await tx.executeSql(`SELECT * FROM IntersectingSick WHERE BLETimestamp =${BLETimestamp}`); + + const item = results.rows.item(0); + + resolve(item); + } catch (error) { + onError({ error }); + } + }); + }) + + purgeIntersectionSickTable(timestamp) { + return new Promise(async (resolve) => { + try { + const db = await this.initDB(); + + db.transaction(async (tx) => { + try { + await tx.executeSql('DELETE FROM IntersectingSick WHERE toTime < ?', [timestamp]); + resolve(true); + } catch (error) { + onError({ error }); + } + }); + } catch (error) { + onError({ error }); + } + }); + } + containsObjectID(OBJECTID) { return new Promise(async (resolve) => { try { @@ -273,6 +526,36 @@ export class IntersectionSickDatabase { }); } + containsBLE(BLETimestamp) { + return new Promise(async (resolve) => { + try { + const db = await this.initDB(); + + db.transaction(async (tx) => { + const [_, results] = await tx.executeSql(`SELECT * FROM IntersectingSick WHERE BLETimestamp =${BLETimestamp}`); + + resolve(results?.rows?.length > 0); + }); + } catch (error) { + onError({ error }); + resolve(null); + } + }); + } + + async deleteAll() { + if (!__DEV__) return; + try { + const db = await this.initDB(); + + db.transaction(async (tx) => { + await tx.executeSql('DELETE FROM IntersectingSick'); + }); + } catch (e) { + onError({ e }); + } + } + addSickRecord(record) { return new Promise(async (resolve) => { try { @@ -280,7 +563,7 @@ export class IntersectionSickDatabase { db.transaction(async (tx) => { try { - const [_, results] = await tx.executeSql('INSERT INTO IntersectingSick VALUES (?,?,?,?,?,?,?,?)', + await tx.executeSql('INSERT INTO IntersectingSick VALUES (?,?,?,?,?,?,?,?,?,?)', [ record.properties.Key_Field, record.properties.Name, @@ -289,120 +572,167 @@ export class IntersectionSickDatabase { record.properties.fromTime_utc, record.properties.toTime_utc, record.geometry.coordinates[config().sickGeometryLongIndex], - record.geometry.coordinates[config().sickGeometryLatIndex] + record.geometry.coordinates[config().sickGeometryLatIndex], + null, + null ]); - resolve(results); + const item = await this.getGeoRecord(record.properties.Key_Field, db); + resolve(item); } catch (error) { + resolve(record.properties); onError({ error }); } }); } catch (error) { + resolve(record.properties); onError({ error }); } }); } -} -// TODO see if relevant and remove if not/fix if does. -// export class WifiMacAddressDatabase { -// initDB() { -// let db; -// return new Promise((resolve, reject) => { -// SQLite.echoTest() -// .then(() => { -// SQLite.openDatabase( -// database_name, -// database_version, -// database_displayname, -// database_size -// ) -// .then((DB) => { -// db = DB; -// db.executeSql('CREATE TABLE IF NOT EXISTS wifiTable (wifiHash, wifiList);') -// .then(() => { resolve(db); }) -// .catch((error) => { -// console.log(error); -// reject(error); -// }); -// }); -// }) -// .catch((error) => { -// console.log(error); -// }) -// .catch((error) => { -// console.log('echoTest failed - plugin not functional'); -// }); -// }); -// } -// -// closeDatabase(db) { -// if (db) { -// db.close() -// .catch((error) => { -// // this.errorCB(error); -// // TODO makes unhandled promise reject in addSample function - need to check why -// }); -// } -// } -// -// listAllRecords() { -// return new Promise((resolve) => { -// this.initDB().then((db) => { -// db.transaction((tx) => { -// tx.executeSql('SELECT * FROM wifiTable', []).then(([tx, results]) => { -// const IntersectingSick = []; -// const len = results.rows.length; -// for (let i = 0; i < len; i++) { -// const row = results.rows.item(i); -// IntersectingSick.push(row); -// } -// resolve(IntersectingSick); -// }); -// }).then((result) => { -// this.closeDatabase(db); -// }).catch((err) => { -// console.log(err); -// }); -// }).catch((err) => { -// console.log(err); -// }); -// }); -// } -// -// addWifiMacAddresses(record) { -// return new Promise((resolve) => { -// this.initDB().then((db) => { -// db.transaction((tx) => { -// tx.executeSql('INSERT INTO wifiTable VALUES (?,?)', [record.wifiHash, record.wifiList]).then(([tx, results]) => { -// resolve(results); -// }); -// }).then((result) => { -// this.closeDatabase(db); -// }).catch((err) => { -// console.log(err); -// }); -// }).catch((err) => { -// console.log(err); -// }); -// }); -// } -// -// containsWifiHash(wifiHash) { -// return new Promise((resolve) => { -// this.initDB().then((db) => { -// db.transaction((tx) => { -// tx.executeSql('SELECT * FROM wifiTable WHERE wifiHash = ?', [wifiHash]).then(([tx, results]) => { -// resolve(results.rows.length > 0); -// }); -// }).then((result) => { -// this.closeDatabase(db); -// }).catch((err) => { -// console.log(err); -// }); -// }).catch((err) => { -// console.log(err); -// }); -// }); -// } -// } + addBLESickRecord(BLETimestamp) { + return new Promise(async (resolve) => { + try { + const db = await this.initDB(); + + return db.transaction(async (tx) => { + await tx.executeSql('INSERT INTO IntersectingSick (BLETimestamp,wasThere) VALUES (?,?)', [BLETimestamp, true]); + const item = await this.getBleRecord(BLETimestamp, db); + + resolve(item); + }); + } catch (error) { + onError({ error }); + resolve({ BLETimestamp, wasThere: true }); + } + }); + } + + async MergeBLEIntoSickRecord(OBJECTID, BLETimestamp) { + return new Promise(async (resolve) => { + try { + const db = await this.initDB(); + db.transaction(async (tx) => { + const [_, results] = await tx.executeSql('UPDATE IntersectingSick SET wasThere = ?, BLETimestamp = ? WHERE OBJECTID = ?', + [ + true, + BLETimestamp, + OBJECTID + ]); + + if (results.rows.length > 0) { + resolve(results.rows.item(0)); + } + resolve(null); + }); + } catch (error) { + onError({ error }); + resolve(null); + } + }); + } + + // + async MergeGeoIntoSickRecord(record, BLETimestamp) { + return new Promise(async (resolve) => { + try { + const db = await this.initDB(); + + return db.transaction(async (tx) => { + const [_, results] = await tx.executeSql('UPDATE IntersectingSick SET OBJECTID = ?,Name = ?,Place = ?,Comments = ?,fromTime = ?,toTime = ?,long = ?,lat = ?,wasThere =? WHERE BLETimestamp = ?', + [ + record.properties.Key_Field, + record.properties.Name, + record.properties.Place, + record.properties.Comments, + record.properties.fromTime_utc, + record.properties.toTime_utc, + record.geometry.coordinates[config().sickGeometryLongIndex], + record.geometry.coordinates[config().sickGeometryLatIndex], + true, + BLETimestamp + ]); + results; + + if (results.rowsAffected > 0) { + resolve(results.rows.item(0)); + } + + resolve(null); + }); + } catch (error) { + onError({ error }); + resolve(null); + } + }); + } + + async migrateTable() { + return new Promise(async (resolve) => { + try { + await SQLite.echoTest(); + + const DB = await SQLite.openDatabase( + database_name, + database_version, + database_displayname, + database_size + ); + + + await DB.executeSql('ALTER TABLE IntersectingSick ADD wasThere NULL;'); + await DB.executeSql('ALTER TABLE IntersectingSick ADD BLETimestamp NULL'); + + + resolve(null); + } catch (error) { + console.log('migrateTable error:', error); + + onError({ error }); + resolve(null); + } + }); + } + + async updateSickRecord(record) { + return new Promise(async (resolve) => { + try { + const db = await this.initDB(); + + db.transaction(async (tx) => { + const [_, results] = tx.executeSql('UPDATE IntersectingSick SET wasThere = ? WHERE OBJECTID = ?', [record.properties.wasThere, record.properties.OBJECTID]); + + if (results.rows.length > 0) { + resolve(results.rows.item(0)); + } + + resolve(null); + }); + } catch (error) { + onError({ error }); + + resolve(null); + } + }); + } + + // first load after app update add wasThere property to dismissed exposures + async upgradeSickRecord(wasThere, IDs) { + return new Promise(async (resolve) => { + try { + if (IDs.length > 0) { + const db = await this.initDB(); + + return db.transaction(async (tx) => { + tx.executeSql(`UPDATE IntersectingSick SET wasThere = ? WHERE OBJECTID IN (${IDs.map(() => '?').join(',')})`, [wasThere ? 1 : 0, ...IDs]); + }); + } + } catch (error) { + onError({ error }); + } finally { + resolve(null); + } + }); + } +} diff --git a/src/locale/LocaleData.ts b/src/locale/LocaleData.ts index f7a83308..e87bab95 100644 --- a/src/locale/LocaleData.ts +++ b/src/locale/LocaleData.ts @@ -85,6 +85,13 @@ export interface Strings { subTitle1: string, subTitle2: string }, + bluetooth: { + title: string, + description: string, + callToAction: string, + approveBluetoothIOS: string, + approveBluetoothAndroid: string + }, location: { title: string, subTitle1: string, @@ -150,7 +157,10 @@ export interface Strings { }, noExposures: { bannerText: string, + bannerTextPristine: string, workAllTheTime: string, + instructionLinkUpper: string, + instructionLinkLower: string, infoModal: { textBodyPt1: string, textBodyPt2: string @@ -158,16 +168,29 @@ export interface Strings { card: { title: string, atHour: string - } + }, + bluetoothServiceOff: string, + turnBluetoothOn: string, + canIdentifyWithBluetooth: string, + moreInformation: string }, showOnMap: string, wasNotMe: string, - wasMe: string + wasMe: string, + doneBtn: string }, exposuresHistory: { title: string, noExposures: string, - keepInstructions: string + keepInstructions: string, + subTitle: string, + wasNotThere: string, + wasThere: string, + wasThereNoExposure: string, + wasNotThereNoExposure: string, + historyEditFinishBtn: string, + historyEditCancelBtn: string, + edit: string }, exposureInstructions: { title: string, @@ -178,7 +201,15 @@ export interface Strings { reportIsolation: string, allInstructions: string, reportSite: string, - keepSafeNew: string + keepSafeNew: string, + subTitle: string, + themInstructions: string, + editBtn: string, + finishBtn: string, + updateTitle: string, + updateSubTitle: string, + showMore: string, + showLess: string }, locationHistory: { beforeCheckTitle: string, @@ -219,7 +250,8 @@ export interface Strings { shareNoConnection: string, shareFail: string, shareFailMissingToken: string, - shareFailTokenError: string + shareFailTokenError: string, + shareFailWithWarnings: string }, greeting: { beforeShare: string, @@ -233,8 +265,17 @@ export interface Strings { shareNoConnection: string, shareFail: string, shareFailMissingToken: string, - shareFailTokenError: string + shareFailTokenError: string, + shareFailWithWarnings: string } + }, + exposureRelief: { + editBtn: string, + title: string, + keepSafe: string, + backBtn: string, + reliefTitle: string, + historyBackBtn: string } } diff --git a/src/locale/texts.json b/src/locale/texts.json index 2d64081a..188d6352 100644 --- a/src/locale/texts.json +++ b/src/locale/texts.json @@ -141,6 +141,14 @@ "subTitle1": "אלפי ישראלים עלולים לסבול מנזק בריאותי כתוצאה מנגיף הקורונה.", "subTitle2": "אבחון ובידוד בזמן יכולים להציל את חייהם. תודה שאתם עוזרים לנו, לעזור להם." }, + "bluetooth": { + "title": "זיהוי נקודות חפיפה\nבעזרת בלוטות'", + "description": "טכנולוגיית בלוטות' מאפשרת זיהוי מצבי קרבה בינך ובין בעלי מכשירי טלפון נוספים בסביבתך שמותקנת עליהם האפליקציה, כדי לאתר חשד להדבקה בקורונה.", + "approveBluetooth": "הפעל שירותי בלוטות׳", + "callToAction": "לשם כך, עליך לאשר\nהפעלת בלוטות' במכשיר שלך", + "approveBluetoothIOS": "הפעל שירותי בלוטות׳", + "approveBluetoothAndroid": "הבנתי" + }, "location": { "title": "המיקום הוא קריטי", "subTitle1": "האפליקציה תאסוף את נתוני המיקום שלכם ותשווה אותם למיקומים המאומתים של מאובחני קורונה. אם תמצא חפיפה, תקבלו הודעה על כך.", @@ -153,14 +161,14 @@ }, "locationIOS": { "title": "הפעלת שירותי\nמיקום ברקע", - "subTitle1": "על מנת לספק לך מידע מדויק אודות מיקומים הרלוונטים עבורך באופן שוטף, עליך לאפשר קבלת מיקומים באופן קבוע.", + "subTitle1": "על מנת לספק לך מידע מדויק אודות מיקומים הרלוונטיים עבורך באופן שוטף, עליך לאפשר קבלת מיקומים באופן קבוע.", "subTitle2": "יש לשנות את הגדרות המיקום כפי שמופיע בתמונות", "goToSettings": "לחצו כאן כדי להיכנס להגדרות", "set": "הגדרתי, המשך" }, "notifications": { "title": "חשוב לעדכן אותך", - "subTitle1": "על מנת שנוכל לעדכן אותך באירועים הקשורים לקורונה ורלווטיים עבורך, עליך לאפשר קבלת התראות מאיתנו.", + "subTitle1": "על מנת שנוכל לעדכן אותך באירועים הקשורים לקורונה ורלוונטים עבורך, עליך לאפשר קבלת התראות מאיתנו.", "subTitle2": "קבלת התראות מאיתנו הן הכרחיות עבורך ועבור הקרובים אליך", "approveNotifications": "אשר קבלת התראות" }, @@ -198,6 +206,7 @@ "suspectedExposure": "חשד לחשיפה:", "events": "אירועים", "possibleExposure": "ייתכן שהייתה חפיפה מול חולה קורונה:", + "possibleExposureBLE": "לפי נתוני מכשיר הטלפון שלך\nזיהינו שהיית בקרבת חולה קורונה:", "atPlace": "ב", "share": { "message": "שיתוף אפליקציית המגן", @@ -205,7 +214,7 @@ "androidTitle": "שיתוף אפליקציית המגן" }, "noExposures": { - "bannerText": "לא נמצאו\nנקודות חפיפה", + "bannerText": "לא נמצאו נקודות חפיפה חדשות", "workAllTheTime": "אפליקציית המגן פועלת כל הזמן", "infoModal": { "textBodyPt1": "ההשוואה מבוצעת מרגע קבלת המיקומים שלך בתאריך ", @@ -214,16 +223,39 @@ "card": { "title": "נכון לתאריך:", "atHour": "בשעה" - } + }, + "bannerTextPristine": "לא נמצאו\nנקודות חפיפה", + "instructionLinkUpper": "לשימוש במידת הצורך:", + "instructionLinkLower": "הנחיות לשוהים בבידוד", + "bluetoothServiceOff": "שירותי הבלוטות׳ על המכשיר כבויים", + "turnBluetoothOn": "הפעלת בלוטות׳", + "canIdentifyWithBluetooth": "מהיום אפשר לזהות נקודות חפיפה נוספות בעזרת בלוטות'", + "moreInformation": "מידע נוסף" }, "showOnMap": "הציגו לי במפה", "wasNotMe": "לא הייתי שם", - "wasMe": "ייתכן שכן" + "wasMe": "ייתכן שכן", + "doneBtn": "סיימתי לעדכן", + "betweenHours": "בין השעות", + "deviceCloseTag": "קרבה בין מכשירים", + "locationCloseTag": "קרבה במיקום", + "wasMeBle": "המשך", + "wasMeOnly": "המשך לקבלת הנחיות" }, "exposuresHistory": { "title": "היסטוריית נקודות חפיפה", "noExposures": "לשמחתנו, אין אירועים ב-14 הימים האחרונים״ ", - "keepInstructions": "חשוב להמשיך לשמור על ההנחיות" + "keepInstructions": "חשוב להמשיך לשמור על ההנחיות", + "subTitle": "לפניך כל נקודות החפיפה שמצאנו ב-14\nהימים האחרונים כפי שסימנת אותן", + "wasThere": "ייתכן שהיית שם", + "wasNotThere": "לא היית שם", + "wasThereNoExposure": "לשמחתנו, אין אירועים ב-14 הימים האחרונים עבורם סימנת ״ייתכן שהייתי שם״", + "wasNotThereNoExposure": "אין אירועים ב-14 הימים האחרונים עבורם סימנת ״לא הייתי שם״", + "historyEditFinishBtn": "שמירת שינויים", + "historyEditCancelBtn": "ביטול עריכה", + "edit": "עריכה", + "BLELocationUpdate": "נתוני המיקום עודכנו", + "BLEWarning": "לא ניתן לערוך מידע שמתקבל בעזרת בלוטות'" }, "exposureInstructions": { "title": "חשד לחשיפה: מה לעשות?", @@ -234,7 +266,15 @@ "reportIsolation": "לדיווח באתר משרד הבריאות על כניסה לבידוד", "allInstructions": "לכל ההנחיות", "reportSite": "לדיווח באתר", - "keepSafeNew": "אלו ההנחיות של משרד הבריאות:" + "keepSafeNew": "אלו ההנחיות של משרד הבריאות:", + "subTitle": "ייתכן שהייתה חפיפה מול חולה קורונה", + "themInstructions": "אלו ההנחיות של משרד הבריאות:", + "editBtn": "עריכה", + "finishBtn": "סיימתי, חזרה לעמוד הבית", + "updateTitle": "תודה שעדכנת", + "updateSubTitle": "ייתכן שהשינוייים שעשית משפיעים על ההתנהלות בהמשך", + "showMore": "עוד", + "showLess": "פחות" }, "locationHistory": { "beforeCheckTitle": "הוספת נתונים קודמים", @@ -270,12 +310,13 @@ "shareFail": "משהו השתבש" }, "description": { - "beforeShare": "בתהליך זה (שנקרא \"חקירה אפידמיולוגית\") נאסוף מהאפליקציה את נתוני המיקום שלך. את הנתונים על המקומות הציבוריים שבהם היית ב-14 הימים האחרונים נפרסם.\n\nלצורך הגנה על בריאות הציבור, נפרסם אך ורק מידע לגבי מקומות הדבקה פומביים.\nהמידע האישי שלך - ישאר חסוי", + "beforeShare": "בתהליך זה (שנקרא \"חקירה אפידמיולוגית\") נאסוף מהאפליקציה את נתוני המיקום שלך. את הנתונים על המקומות הציבוריים שבהם היית ב-14 הימים האחרונים נפרסם.\n\nלצורך הגנה על בריאות הציבור, נפרסם אך ורק מידע לגבי מקומות הדבקה פומביים.\n", "shareSuccess": "קיבלנו את נתוני המיקומים שלך. בזכותם נוכל להמשיך לפעול במלחמה נגד מחלת הקורונה.", "shareNoConnection": "עליך לבדוק את החיבור שלך לאינטרנט דרך מסך ההגדרות בטלפון שלך ולאחר מכן לנסות שוב", - "shareFail": "לצערנו לא הצלחנו לקבל את הנתונים. יש לבקש במהלך השיחה SMS עם קישור חדש ולהיכנס אליו", + "shareFail": "לצערנו לא הצלחנו לקבל את הנתונים שלך. בבקשה לנסות שוב", "shareFailMissingToken": "לצערנו לא הצלחנו לקבל את הנתונים. יש לבקש במהלך השיחה SMS עם קישור חדש ולהיכנס אליו", - "shareFailTokenError": "לצערנו לא הצלחנו לקבל את הנתונים שלך. בבקשה לנסות שוב" + "shareFailTokenError": "לצערנו לא הצלחנו לקבל את הנתונים שלך. בבקשה לנסות שוב", + "shareFailWithWarnings": "לא נמצאו נתוני מיקום על המכשיר שלך.\nנמשיך בתהליך בשיחת הטלפון." }, "greeting": { "beforeShare": "המידע האישי שלך - יישאר חסוי", @@ -287,10 +328,20 @@ "beforeShare": "שיתוף הנתונים שלי", "shareSuccess": "חזרה לאפליקציה", "shareNoConnection": "ניסיון נוסף", - "shareFail": "הבנתי, תודה", + "shareFail": "נסה שנית", "shareFailMissingToken": "הבנתי, תודה", - "shareFailTokenError": "נסה שנית" - } + "shareFailTokenError": "נסה שנית", + "shareFailWithWarnings": "הבנתי" + }, + "addBleDataText": "מקובל עלי שתשתמשו גם במידע שנאסף דרך בלוטות׳,'לזיהוי מצבי קרבה למכשירי טלפון של חולי קורונה" + }, + "exposureRelief": { + "editBtn": "עריכה", + "title": "נראה שלא הייתה לך חפיפה עם חולה קורנה", + "keepSafe": "חשוב להמשיך לשמור על ההנחיות!", + "backBtn": "חזרה לעמוד הבית", + "reliefTitle": "תודה על העדכון", + "historyBackBtn": "חזרה להיסטוריית חפיפה" } }, "ar": { @@ -338,6 +389,14 @@ "subTitle1": "من الممكن أن يسبب فيروس الكورونا الضرر الصحي لالاف الإسرائيليين", "subTitle2": "بإستطاعة التشخيص المبكر والعزل إنقاذ حياة الكثيرين. شكرا لمساعدتكم " }, + "bluetooth": { + "title": "تم تحديد نقاط تماس\n بمساعدة البلوتوث", + "description": "تقنية البلوتوث تتيح تحديد الأوضاع التي تكون فيها بقرب أشخاص آخرين في محيطك الذين يحملون هاتفًا تم تحميل التطبيق عليه, من أجل تحديد فيما لو كان هنالك اشتباه بالإصابة بفيروس الكورونا.", + "approveBluetooth": "تشغيل خدمات البلوتوث", + "callToAction": "لفعل ذلك, عليك الموافقة\nتشغيل البلوتوث في الجهاز الخاص بك", + "approveBluetoothIOS": "تمكين خدمات Bluetooth", + "approveBluetoothAndroid": "فهمت" + }, "location": { "title": "أماكن تواجدكم مهمة جدا", "subTitle1": "إن هذا التطبيق يقوم بجمع معطيات بخصوص أماكن تواجدكم ويقوم بمقارنتها بالمعطيات العامة للأشخاص المصابين بالفيروس", @@ -357,7 +416,7 @@ }, "notifications": { "title": "نود إعلامكم", - "subTitle1": "حتى يتم إبلاغكم عن حالات الكورونا ذات الصلة بكم يجب عليكم الموافقة على استلام تنبيهات عن طريق التطبيق ", + "subTitle1": " من أجل تزويدك بمعلومات دقيقة حول المواقع ذات الصلة بك, عليك القيام بإتاحة الحصول على الموقع بشكل دائم .", "subTitle2": "إستلام تنبيهات ذات أهمية لكم و للمحيطين بكم", "approveNotifications": "الموافقة على إستلام التنبيهات" }, @@ -395,6 +454,7 @@ "suspectedExposure": "إشتباه بالتعرض لمريض كورونا:", "events": " أحداث ", "possibleExposure": "هنالك إحتمالية التعرض لمريض كورونا:", + "possibleExposureBLE": "بحسب معطيات جهاز الهاتف الخاص بك\n قمنا بتشخيص تواجدك على مقربة من مصاب بالكورونا :", "atPlace": " في", "share": { "message": "مشاركة تطبيق الحماية", @@ -402,7 +462,7 @@ "androidTitle": "مشاركة تطبيق الحماية" }, "noExposures": { - "bannerText": "لم يتم العثور على \n نقاط تداخل", + "bannerText": "لم يتم العثور على نقاط تماس جديدة", "workAllTheTime": "يعمل التطبيق الوقائي طوال الوقت", "infoModal": { "textBodyPt1": "تتم المقارنة من اللحظة التي تتلقى فيها مواقعك في", @@ -411,16 +471,39 @@ "card": { "title": "اعتبارًا من:", "atHour": "في" - } + }, + "bannerTextPristine": " غير موجودة \nنقاط تماس", + "instructionLinkUpper": "للاستخدام عند الضرورة:", + "instructionLinkLower": "تعليمات للمتواجدين في الحجر الصحي", + "bluetoothServiceOff": "تم إطفاء خدمات البلوتوث على الجهاز ", + "turnBluetoothOn": "تشغيل البلوتوث׳", + "canIdentifyWithBluetooth": "من اليوم، يمكن تحديد نقاط تماس إضافية بمساعدة البلوتوث", + "moreInformation": "معلومات إضافية" }, "showOnMap": "تعرفت على الخريطة", - "wasNotMe": "لم أكن هناك", - "wasMe": "قد يكون" + "wasNotMe": "لم أتواجد هناك", + "wasMe": "ربما نعم ", + "doneBtn": "انتهيت من التحديث ", + "betweenHours": "بين الساعات", + "deviceCloseTag": "قرب في الموقع", + "locationCloseTag": "القرب من الموقع", + "wasMeBle": "تابع", + "wasMeOnly": "تابع للحصول على التعليمات" }, "exposuresHistory": { "title": "تاريخ التطابق", "noExposures": "لا يوجد نقاط تطابق", - "keepInstructions": "من المهم الاستمرار في اتباع الإرشادات" + "keepInstructions": "من المهم الاستمرار بالمحافظة على التعليمات", + "subTitle": " أماك جميع نقاط التماس التي عثرنا عليها خلال ال-14\nلأيام الأخيرة وفقًا لما قمت باختياره", + "wasThere": "من الممكن انك تواجدت هناك", + "wasNotThere": "لم تتواجد هناك", + "wasThereNoExposure": "يُسعدنا, ليس هنالك احداث في ال-14 يوم الأخيرة التي قمت بتحديدها من الممكن بأني تواجدت هناك ", + "wasNotThereNoExposure": "ليس هنالك احداث في ال-14 يوم الأخيرة التي بتحديدها لم أتواجد هناك", + "historyEditFinishBtn": "حفظ التغييرات", + "historyEditCancelBtn": "إلغاء التحرير", + "edit": "تحرير", + "BLELocationUpdate": "تم تحديث معطيات الموقع", + "BLEWarning": "لا يمكن تحرير معلومات تم الحصول عليها بمساعدة البلوتوث '" }, "exposureInstructions": { "title": "لديك إشتباه بالتعرض لمريض كورونا؟ ماذا يجب أن تفعل؟", @@ -430,13 +513,22 @@ "goIntoIsolation": "يرجى الدخول فورا الى الحجر الصحي لمدة ١٤ يوم من وقت التعرض", "reportIsolation": "يتوجب عليكم إبلاغ وزارة الصحة", "allInstructions": "لكل التوصيات", - "reportSite": "للإبلاغ" + "reportSite": "للإبلاغ", + "keepSafeNew": "هذه هي تعليمات وزارة الصحة:", + "subTitle": "من المحتمل بأن يكون هنالك تماس مع مصاب بالكورونا", + "themInstructions": "هذه هي تعليمات وزارة الصحة:", + "editBtn": "تحرير", + "finishBtn": "انتهيت, العودة إلى الصفحة الرئيسية", + "updateTitle": "شكرًا على قيامك بالتحديث", + "updateSubTitle": "من الممكن بأن التغييرات التي قمت بإجرائها تؤثر على الإجراءات لاحقًا ", + "showMore": "المزيد", + "showLess": "أقل" }, "locationHistory": { "beforeCheckTitle": "أغلق الزوايا الأخيرة", "beforeCheckDesc": "لتحديد مواقعك بدقة خلال آخر 14 يومًا ، يجب عليك تمكين بيانات الموقع من حسابك على Google. يتم تخزين هذه المعلومات على الهاتف لاستخدامك الشخصي فقط ولا يتم إرسالها إلى أي طرف آخر", "beforeCheckDesc2": "للقيام بذلك ، يجب عليك السماح بالوصول إلى موقعك من Google خلال آخر 14 يومًا", - "beforeCheckButton": "دقة البيانات", + "beforeCheckButton": "إضافة البيانات السابقة", "skip": "تخطي", "successFoundTitle": "تم تحديث بيانات Google بنجاح", "successFoundDesc": "يعتمد تحديد نقاط التداخل خلال آخر 14 يومًا على بيانات الموقع المستلمة من Google", @@ -466,12 +558,13 @@ "shareFail": "حدث خطأ ما" }, "description": { - "beforeShare": "في هذه العملية (تسمى \"الاستقصاء الوبائي\") سنجمع بيانات موقعك من التطبيق. سننشر بيانات الأماكن العامة الخاصة بك خلال آخر 14 يومًا. \n\n لن يتم نشر معلومات الصحة العامة إلا في الأماكن العامة. \n ستظل معلوماتك الشخصية سرية.", + "beforeShare": "في هذه العملية (تسمى \"الاستقصاء الوبائي\") سنجمع بيانات موقعك من التطبيق. سننشر بيانات الأماكن العامة الخاصة بك خلال آخر 14 يومًا.\n\nلن يتم نشر معلومات الصحة العامة إلا في الأماكن العامة.\n", "shareSuccess": "لقد تلقينا بيانات موقعك. بفضلهم يمكننا الاستمرار في مكافحة مرض الاكليل.", "shareNoConnection": "يجب عليك التحقق من اتصال الإنترنت الخاص بك من خلال شاشة إعدادات هاتفك ، ثم حاول مرة أخرى", - "shareFail": "للأسف لم نتمكن من الحصول على البيانات. اطلب SMS برابط جديد أثناء المكالمة وقم بتسجيل الدخول", + "shareFail": "للأسف لم نتمكن من الحصول على بياناتك. يرجى المحاولة مرة أخرى", "shareFailMissingToken": "للأسف لم نتمكن من الحصول على البيانات. اطلب SMS برابط جديد أثناء المكالمة وقم بتسجيل الدخول", - "shareFailTokenError": "للأسف لم نتمكن من الحصول على بياناتك. يرجى المحاولة مرة أخرى" + "shareFailTokenError": "للأسف لم نتمكن من الحصول على بياناتك. يرجى المحاولة مرة أخرى", + "shareFailWithWarnings": "لم يتم العثور على معطيات في جهاز الهاتف الخاص بك.\nسنستمر في العملية عبر المكالمة الهاتفية." }, "greeting": { "beforeShare": "معلوماتك الشخصية - ستبقى سرية", @@ -483,10 +576,20 @@ "beforeShare": "مشاركة بياناتي", "shareSuccess": "العودة إلى التطبيق", "shareNoConnection": "محاولة أخرى", - "shareFail": "أفهم ، شكرا لك", + "shareFail": "يرجى المحاولة مرة أخرى", "shareFailMissingToken": "أفهم ، شكرا لك", - "shareFailTokenError": "يرجى المحاولة مرة أخرى" - } + "shareFailTokenError": "يرجى المحاولة مرة أخرى", + "shareFailWithWarnings": "فهمت" + }, + "addBleDataText": "من المقبول بالنسبة لي أيضًا استخدام المعلومات التي تم جمعها عبر الغدة لتحديد القرب من هواتف مرضى الاكليل" + }, + "exposureRelief": { + "editBtn": "تحرير", + "title": "على ما يبدو لم يكن لديك تماس مع مصاب بالكورونا ", + "keepSafe": "من المهم الاستمرار بالمحافظة على التعليمات! ", + "backBtn": "العودة إلى الصفحة الرئيسية", + "reliefTitle": "شكرًا على التحديث", + "historyBackBtn": "العودة إلى تاريخ التماس " } }, "en": { @@ -534,6 +637,14 @@ "subTitle1": "Thousands of Israelis could suffer the ill effects of the coronavirus.", "subTitle2": "Timely diagnosis and isolation can save their lives." }, + "bluetooth": { + "title": "Using Bluetooth to identify overlap points", + "description": "Bluetooth technology can identify situations where you and other app users are close to alert potential COVID-19 contact points.", + "approveBluetooth": "Activate Bluetooth services", + "callToAction": "That's why you must activate Bluetooth on your device", + "approveBluetoothAndroid": "I understand", + "approveBluetoothIOS": "Enable Bluetooth services" + }, "location": { "title": "Location is critical", "subTitle1": "This app will collect your location data and compare it to the locations of people known to be infected with the virus. If any of those locations are found to overlap, you will receive a notification.", @@ -546,7 +657,7 @@ }, "locationIOS": { "title": "Activate location\nservices in the background", - "subTitle1": "In order to be able to update you about events related to the coronavirus, we will need to send you notifications.", + "subTitle1": "In order to provide you with exact location history relevant to you on an ongoing basis, you must keep location services activated.", "subTitle2": "Location service settings should be changed as shown in the pictures below", "goToSettings": "Press here for settings", "set": "Settings updated, let’s continue" @@ -591,15 +702,16 @@ "suspectedExposure": "Suspected Exposure:", "events": "Events", "possibleExposure": "There may have been an exposure to a Corona patient:", + "possibleExposureBLE": "Based on data on your phone, we figured out you had been close to a confirmed COVID-19 patient", "atPlace": "At ", "share": { - "message": "Sharing Hamagn", - "title": "Sharing Hamagn", - "androidTitle": "Sharing Hamagn" + "message": "Sharing Hamagen", + "title": "Sharing Hamagen", + "androidTitle": "Sharing Hamagen" }, "noExposures": { - "bannerText": "No \n overlap points found", - "workAllTheTime": "The protective app works all the time", + "bannerText": "No exposure points found", + "workAllTheTime": "Hamagen app works all the time", "infoModal": { "textBodyPt1": "The comparison is made from the moment you receive your locations on", "textBodyPt2": "In the face of the location data of all verified patients in the country for the last 14 days, and is constantly updated" @@ -607,16 +719,39 @@ "card": { "title": "As of:", "atHour": "at" - } + }, + "bannerTextPristine": "Exposure points not found", + "instructionLinkUpper": "Use as needed:", + "instructionLinkLower": "Guidelines for those in isolation", + "bluetoothServiceOff": "Bluetooth services are deactivated on this device", + "turnBluetoothOn": "Activate Bluetooth", + "canIdentifyWithBluetooth": "Starting today, it is possible to identify additional overlap points by Bluetooth", + "moreInformation": "Further Information" }, "showOnMap": "Show me on the map", - "wasNotMe": "Was not there", - "wasMe": "Might be" + "wasNotMe": "I was not there", + "wasMe": "I was there", + "doneBtn": "I'm done updating", + "betweenHours": "Between hours", + "deviceCloseTag": "Proximity between devices", + "locationCloseTag": "Location proximity", + "wasMeBle": "Proceed", + "wasMeOnly": "Proceed to receive guidelines" }, "exposuresHistory": { - "title": "Overlap history", + "title": "Exposure history", "noExposures": "No overlap points found", - "keepInstructions": "It is important to keep following the guidelines" + "keepInstructions": "It is important to continue following the guidelines", + "subTitle": "Below are all overlap points that we found over the last 14 days marked by you.", + "wasThere": "You might have been there", + "wasNotThere": "You were not there", + "wasThereNoExposure": "Fortunately, there are no contact incidents for the last 14 days that you've marked as I might have been there.", + "wasNotThereNoExposure": "There are no events in the last 14 days for which you marked \"I was not there\"", + "historyEditFinishBtn": "Save changes", + "historyEditCancelBtn": "Cancel edit", + "edit": "Edit", + "BLELocationUpdate": "Location history updated", + "BLEWarning": "It is not possible to edit Bluetooth data" }, "exposureInstructions": { "title": "Suspicion of exposure: What to do?", @@ -626,13 +761,22 @@ "goIntoIsolation": "Stay at home and avoid contact with other people for 14 days from the moment of contact", "reportIsolation": "Report Isolation", "allInstructions": "For all the Instructions", - "reportSite": "To report at the Site" + "reportSite": "To report at the Site", + "keepSafeNew": "These are the Ministry of Health's guidelines: ", + "subTitle": "Possible overlap with a confirmed COVID-19 patient ", + "themInstructions": "These are the Ministry of Health's guidelines:", + "editBtn": "Edit", + "finishBtn": "Done, go back to homepage", + "updateTitle": "Thank you for updating", + "updateSubTitle": "It is possible that the changes you've made will affect what you do next", + "showMore": "More", + "showLess": "Less" }, "locationHistory": { "beforeCheckTitle": "Closing the last corners", "beforeCheckDesc": "In order to accurately determine your locations for the last 14 days, your location data must be enabled from your Google Account. This information is kept on the phone and for your personal use only and is not sent to any other party", "beforeCheckDesc2": "To do this, you must allow access to locations within the last 14 days from Google", - "beforeCheckButton": "Data accuracy", + "beforeCheckButton": "Importing data from Google", "skip": "Skip", "successFoundTitle": "Google data was updated successfully", "successFoundDesc": "Locating the overlap points for the last 14 days will be based on location data received from Google", @@ -662,16 +806,17 @@ "shareFail": "Something went wrong" }, "description": { - "beforeShare": "In this process (called \"epidemiological investigation\") we will collect your location data from the app. We will publish your public places data for the last 14 days.\n\nnPublic health information will only be published on public places.\nYour personal information will remain confidential.", + "beforeShare": "In this process (called \"epidemiological investigation\") we will collect your location data from the app. We will publish your public places data for the last 14 days.\n\nPublic health information will only be published on public places.\n", "shareSuccess": "We've received your location data. Thanks to them we can continue to fight the corona disease.", "shareNoConnection": "You should check your internet connection through the settings screen of your phone, and then try again", - "shareFail": "Unfortunately we were unable to get the data. Request SMS with a new link during the call and log in", + "shareFail": "Unfortunately we were unable to get your data. Please try again", "shareFailMissingToken": "Unfortunately we were unable to get the data. Request SMS with a new link during the call and log in", - "shareFailTokenError": "Unfortunately we were unable to get your data. Please try again" + "shareFailTokenError": "Unfortunately we were unable to get your data. Please try again", + "shareFailWithWarnings": "No data was found on your phone. We will call you to continue this process." }, "greeting": { "beforeShare": "Your personal information - will remain confidential", - "shareSuccess": "Many thanks and complete medicine", + "shareSuccess": "Many thanks and be well", "shareNoConnection": "", "shareFail": "" }, @@ -679,10 +824,20 @@ "beforeShare": "Sharing my data", "shareSuccess": "Back to the app", "shareNoConnection": "another try", - "shareFail": "I understood, thank you", + "shareFail": "try again", "shareFailMissingToken": "I understood, thank you", - "shareFailTokenError": "try again" - } + "shareFailTokenError": "try again", + "shareFailWithWarnings": "I understand" + }, + "addBleDataText": "It is acceptable for me to also use information collected via Bluetooth to identify proximity to corona patients' phones" + }, + "exposureRelief": { + "editBtn": "Edit", + "title": "It seems that you've had no overlap with any confirmed COVID-19 patients", + "keepSafe": "It is important to continue following the guidelines!", + "backBtn": "Go back to the homepage", + "reliefTitle": "Thank you for your update", + "historyBackBtn": "Return to overlap history" } }, "ru": { @@ -730,6 +885,14 @@ "subTitle1": "Тысячи израильтян могут пострадать от коронавируса.", "subTitle2": "Диагностирование и карантин могут спасти их жизнь. Спасибо что помогаете нам помогать им!" }, + "bluetooth": { + "title": "Определение точек соприкосновения по Bluetooth", + "description": "Технология Bluetooth позволяет идентифицировать случаи, при которых вы приближаетесь к другим владельцам телефонов с установленным приложением, что необходимо для определения вероятного инфицирования коронавирусом.", + "approveBluetooth": "Включить Bluetooth", + "callToAction": "Для этого необходимо активировать Bluetooth на вашем устройстве.", + "approveBluetoothIOS": "Включить службы Bluetooth", + "approveBluetoothAndroid": "я осознал" + }, "location": { "title": "Местонахождение критично", "subTitle1": "Приложение будет собирать данные о вашем месте нахождение, и сообщит вам если будет совпадение с данными местонахождения больных.", @@ -742,7 +905,7 @@ }, "locationIOS": { "title": "Включение услуг местонахождения\nна постоянной основе", - "subTitle1": "Чтобы регулярно получать точную информацию о вашим месте нахождения, включите услуги местонахождения на постоянную основу.", + "subTitle1": "Для того, чтобы мы могли регулярно предоставлять вам точную информацию о местоположениях, которые имеют к вам отношение, вы должны разрешить определение геолокации на постоянной основе.", "subTitle2": "Измените настройки как указано в фотографиях", "goToSettings": "Настройки", "set": "Продолжить" @@ -787,6 +950,7 @@ "suspectedExposure": "Подозрение на контакт:", "events": "случая", "possibleExposure": "Возможно контакт с больным был :", + "possibleExposureBLE": "На основании данных, полученных с Вашего телефона, мы определили, что Вы находились в близи от больного коронавирусом", "atPlace": "в ", "share": { "message": "Совместное использование защитного приложения", @@ -794,7 +958,7 @@ "androidTitle": "Совместное использование защитного приложения" }, "noExposures": { - "bannerText": "Не найдено точек перекрытия", + "bannerText": "Новых точек соприкосновения не обнаружено", "workAllTheTime": "Защитное приложение работает все время", "infoModal": { "textBodyPt1": "Сравнение производится с момента получения вашего местоположения на", @@ -803,16 +967,39 @@ "card": { "title": "По состоянию на:", "atHour": "в" - } + }, + "bannerTextPristine": "Точек соприкосновения не обнаружено ", + "instructionLinkUpper": "Для использования при необходимости:", + "instructionLinkLower": "Указания для пребывающих в карантине", + "bluetoothServiceOff": "Bluetooth на устройстве отключен", + "turnBluetoothOn": "Включить Bluetooth", + "canIdentifyWithBluetooth": "Теперь можно определить больше точек соприкосновения с помощью Bluetooth", + "moreInformation": "Дополнительная информация" }, "showOnMap": "Меня познакомили с картой", "wasNotMe": "Меня там не было", - "wasMe": "Может быть" + "wasMe": "Возможно, я там был", + "doneBtn": "Завершить внесение обновлений", + "betweenHours": "Период времени", + "deviceCloseTag": "Расстояние между устройствами", + "locationCloseTag": "Расстояние до местоположения", + "wasMeBle": "Дальше", + "wasMeOnly": "Перейти к получению указаний" }, "exposuresHistory": { "title": "История контактов", "noExposures": "Нет точек соприкосновения", - "keepInstructions": "Важно продолжать следовать рекомендациям" + "keepInstructions": "Важно продолжать следовать указаниям", + "subTitle": "Все точки соприкосновения за последние 14 дней, которые мы определили, на основании отмеченного Вами", + "wasThere": "Возможно, Вы были там", + "wasNotThere": "Вас там не было", + "wasThereNoExposure": "К счастью, за последние 14 дней не было случаев, когда Вы поставили отметку «Возможно, я там был»", + "wasNotThereNoExposure": "За последние 14 дней не было случаев, когда Вы поставили отметку «Меня там не было»", + "historyEditFinishBtn": "Сохранить изменения", + "historyEditCancelBtn": "Отменить изменения", + "edit": "Редактировать", + "BLELocationUpdate": "Данные о местоположениях обновлены", + "BLEWarning": "Невозможно редактировать данные, полученные с помощью Bluetooth" }, "exposureInstructions": { "title": "Подозрение на контакт? ", @@ -822,13 +1009,22 @@ "goIntoIsolation": "Оставайтесь дома на карантине в течение ближайших 14 дней", "reportIsolation": "Сообщите о вашем карантине на сайте Минздрава", "allInstructions": "Инструкции", - "reportSite": "Сообщить" + "reportSite": "Сообщить", + "keepSafeNew": "Это указания Министерства здравоохранения:", + "subTitle": "Возможно, было пересечение с больным коронавирусом", + "themInstructions": "Это указания Министерства здравоохранения:", + "editBtn": "Редактировать", + "finishBtn": "Завершить и вернуться на главную страницу", + "updateTitle": "Спасибо, что обновили информацию", + "updateSubTitle": "Внесенные Вами изменения могут повлиять на дальнейшее поведение", + "showMore": "Больше", + "showLess": "Меньше" }, "locationHistory": { "beforeCheckTitle": "Последний этап", "beforeCheckDesc": "Для точного определения вашего местоположения за последние 14 дней, нам нужен доступ к вашей учетной записи Google. Эта информация предназначена только для личного использования и не отправляется никаким другим лицам", "beforeCheckDesc2": "Для этого пожалуйста разрешите доступ к местоположениям в течение последних 14 дней из Google", - "beforeCheckButton": "Точность данных", + "beforeCheckButton": "Добавить данные из Google", "skip": "Пропуск", "successFoundTitle": "Данные Google успешно обновлены", "successFoundDesc": "Определение местоположения точек перекрытия за последние 14 дней будет основано на данных о местоположении, полученных от Google.", @@ -858,12 +1054,13 @@ "shareFail": "Что-то пошло не так" }, "description": { - "beforeShare": "В этом процессе (так называемое \"эпидемиологическое расследование\") мы будем собирать данные о вашем местонахождении из приложения. Мы будем публиковать данные о ваших общественных местах за последние 14 дней.\n\nОбщественная медицинская информация будет публиковаться только в общественных местах.\nYour Ваша личная информация будет оставаться конфиденциальной.", + "beforeShare": "В этом процессе (так называемое \"эпидемиологическое расследование\") мы будем собирать данные о вашем местонахождении из приложения. Мы будем публиковать данные о ваших общественных местах за последние 14 дней.\n\nОбщественная медицинская информация будет публиковаться только в общественных местах.\n", "shareSuccess": "Мы получили данные о вашем местоположении. Благодаря им мы можем продолжать бороться с коронарной болезнью.", "shareNoConnection": "Вы должны проверить подключение к интернету через экран настроек вашего телефона, а затем попробуйте снова", - "shareFail": "К сожалению, мы не смогли получить данные. Запросите SMS с новой ссылкой во время звонка и войдите", + "shareFail": "К сожалению, мы не смогли получить ваши данные. Пожалуйста, попробуйте еще раз", "shareFailMissingToken": "К сожалению, мы не смогли получить данные. Запросите SMS с новой ссылкой во время звонка и войдите", - "shareFailTokenError": "К сожалению, мы не смогли получить ваши данные. Пожалуйста, попробуйте еще раз" + "shareFailTokenError": "К сожалению, мы не смогли получить ваши данные. Пожалуйста, попробуйте еще раз", + "shareFailWithWarnings": "Данные о вашем телефоне не найдены. Продолжим с помощью телефонного звонка." }, "greeting": { "beforeShare": "Ваша личная информация - останется конфиденциальной", @@ -875,10 +1072,20 @@ "beforeShare": "Поделиться моими данными", "shareSuccess": "Вернуться в приложение", "shareNoConnection": "Еще одна попытка", - "shareFail": "Я понимаю спасибо", + "shareFail": "Пожалуйста, попробуйте еще раз", "shareFailMissingToken": "Я понимаю спасибо", - "shareFailTokenError": "Пожалуйста, попробуйте еще раз" - } + "shareFailTokenError": "Пожалуйста, попробуйте еще раз", + "shareFailWithWarnings": "Я понимаю" + }, + "addBleDataText": "Для меня приемлемо также использовать информацию, собранную через железу, чтобы определить близость к телефонам пациентов с короной." + }, + "exposureRelief": { + "editBtn": "Редактировать", + "title": "Видимо, Вы не пересекались с больным коронавирусом", + "keepSafe": "Важно продолжать следовать указаниям!", + "backBtn": "Вернуться на главную страницу", + "reliefTitle": "Спасибо за обновление", + "historyBackBtn": "Вернуться к истории точек соприкосновения" } }, "am": { @@ -926,6 +1133,14 @@ "subTitle1": "በሺዎች የሚቆጠሩ እስራኤላውያን በኮሮና ቫይረስ የጤና ጉዳት ሊደርስባቸው ይችላል.", "subTitle2": "ተገቢ ምርመራ እና ከጤነኛ ሰው ማግለል ህይወት ሊያድን ይችላል።." }, + "bluetooth": { + "title": "የተደራራቢ ነጥቦችን ይለዩ\nጎርፍ", + "description": "በኮሮና ውስጥ የኢንፌክሽን ጥርጣሬ ለመፈጠር የብሉቱዝ ቴክኖሎጂ በርስዎ እና በአከባቢዎ ባሉ ሌሎች የስልክ ባለቤቶች መካከል በአከባቢዎ ያለውን የዝውውር ሁኔታ ለመለየት ያስችላል ፡፡", + "approveBluetooth": "የብሉቱዝ አገልግሎቶችን ያንቁ", + "callToAction": "ይህንን ለማድረግ በመሣሪያዎ ላይ ብሉቱዝን ማንቃት አለብዎት", + "approveBluetoothIOS": "የብሉቱዝ አገልግሎቶችን ያንቁ", + "approveBluetoothAndroid": "ገባኝ" + }, "location": { "title": "የምትገኙበት ቦታ ወሳኝ ነው", "subTitle1": "አፕሊኬሽኑ (መተግበሪያው) የአካባቢ ውሂብን በራሱ ይሰበስብና የእርስዎን ቦታ በአካባቢው ካሉ የኮሮና በሽተኞች ቦታ ጋር በማነፃጸር ማንኛውንም መደራረብ ካገኘ ያሳውቀዎታል ፡፡.", @@ -983,6 +1198,7 @@ "suspectedExposure": "የንክኪ ጥርጣሬ", "events": "ክስተቶች /ገጠመኞች", "possibleExposure": "ከኮሮና ህመምተኛ ጋር ንኪኪ ሊኖር ይችላል", + "possibleExposureBLE": "በስልክዎ መረጃ መሠረት\nበኮሮና ህመምተኛ አቅራቢያ መኖራቸውን አስተውለናል-", "atPlace": "በ ", "share": { "message": "የመከላከያ መተግበሪያውን በማጋራት ላይ", @@ -990,25 +1206,46 @@ "androidTitle": "የመከላከያ መተግበሪያውን በማጋራት ላይ" }, "noExposures": { - "bannerText": "ምንም የተደራራቢ ነጥቦች አልተገኙም", - "workAllTheTime": "የመከላከያ መተግበሪያው ሁልጊዜ ይሠራል", + "bannerText": "ጥምር ግንኙነት\nአልተገኙም", + "workAllTheTime": "የሀመጌን መተግበሪ ሁልጊዜ ይሠራል", "infoModal": { "textBodyPt1": "ንፅፅሩ የተሰራው እርስዎ አካባቢዎን ከተቀበሉበት ጊዜ ጀምሮ ነው", "textBodyPt2": "ላለፉት 14 ቀናት በእስራኤል ውስጥ ሁሉም የተረጋገጡ በሽተኞች የቦታ ውሂብ ፊትለፊት እና ሁልጊዜም ይዘምናል" }, "card": { - "title": "እንደ:", + "title": "እስከ:", "atHour": "በ" - } + }, + "bannerTextPristine": "ምንም የተደራራቢ ነጥቦች አልተገኙም", + "instructionLinkUpper": "አስፈላጊ ከሆነ ለመጠቀም", + "instructionLinkLower": "በብቸኝነት ለመኖር የሚረዱ መመሪያዎች", + "bluetoothServiceOff": "የብሉቱዝ አገልግሎቶች ጠፍተዋል", + "turnBluetoothOn": "ብሉቱዝ አብራ", + "canIdentifyWithBluetooth": "ከአሁን ጀምሮ ተጨማሪ መደራረብ በ ዕጢዎች ዕጢዎች ሊታወቅ ይችላል ፡፡", + "moreInformation": "ተጨማሪ መረጃ" }, "showOnMap": "ወደ ካርታው አስተዋወቅኩ", "wasNotMe": "እዚያ አልነበርኩም", - "wasMe": "ሊሆን ይችላል" + "wasMe": "ሊሆን ይችላል", + "doneBtn": "ማዘመን አጠናቅቄያለሁ", + "betweenHours": "በሰዓቶች መካከል", + "deviceCloseTag": "በመሳሪያዎች መካከል ቅርበት", + "locationCloseTag": "ወደ ቅርበት ቅርበት", + "wasMeBle": "ቀጠለ", + "wasMeOnly": "መመሪያዎችን ይቀጥሉ" }, "exposuresHistory": { "title": "ከተያዘ ሰው ጋር ተቀራርበዋል", "noExposures": "ድርርብ አልተገኘም።", - "keepInstructions": "መመሪያዎችን መከተል አስፈላጊ ነው" + "keepInstructions": "መመሪያዎችን መከተል አስፈላጊ ነው", + "subTitle": "እርስዎ ምልክት ሲያደርጉባቸው በአለፉት 14\nቀናት ውስጥ ያጋጠሙኝ ሁሉም መደራረቦች እነሆ", + "wasThere": "እዚያ ሊሆኑ ይችላሉ", + "wasNotThere": "እዚያ አልነበሩም", + "wasThereNoExposure": "ደስ የሚለው ነገር ፣ ካለፉት 14 ቀናት ውስጥ “እዛ እዛ እሆን ነበር” ብለው ያሰቧቸው ምንም ክስተቶች የሉም ፡፡", + "wasNotThereNoExposure": "በአለፉት 14 ቀናት ውስጥ እዛ አልነበሩም ብለው ምልክት ያደረጉባቸው ክስተቶች የሉም", + "historyEditFinishBtn": "ለውጦችን በማስቀመጥ ላይ", + "historyEditCancelBtn": "ማርትዕ ቀልብስ", + "edit": "ማርትዕ" }, "exposureInstructions": { "title": "ተጋልጠዋል የሚል ጥርጣሬ አለ ፣ ምን ማድረግ አለብዎት?", @@ -1018,13 +1255,22 @@ "goIntoIsolation": "-ለቫይረሱ ከተጋለጡበት ጊዜ ጀምሮ በአስቸኳይ ለ14 ቀናተ እራስዎን ያግልሉ፡፡,", "reportIsolation": "መገለያ ቦታ መግባትዎን በጤና ጥበቃ መ/ቤት ድረ-ገፅ ያስታውቁ።,", "allInstructions": "ለሁሉም መመሪያዎች ።,", - "reportSite": "በድረ-ገፅ ያስታውቁ ።" + "reportSite": "በድረ-ገፅ ያስታውቁ ።", + "keepSafeNew": "እነዚህ የጤና ጥበቃ ሚኒስቴር መመሪያዎች ናቸው", + "subTitle": "ከኮሮና ህመምተኛ ጋር መደራረብ ሊኖር ይችላል", + "themInstructions": "እነዚህ የጤና ጥበቃ ሚኒስቴር መመሪያዎች ናቸው", + "editBtn": "ማርትዕ", + "finishBtn": "ጨርሻለሁ ፣ ወደ መነሻ ገጽ ተመለስ", + "updateTitle": "ስላዘመኑ እናመሰግናለን", + "updateSubTitle": "ያደረጓቸው ለውጦች ከዚህ በታች ባለው ባህሪ ላይ ተጽዕኖ ሊያሳድሩ ይችላሉ", + "showMore": "ተጨማሪ", + "showLess": "ያነሰ" }, "locationHistory": { "beforeCheckTitle": "የመጨረሻዎቹን ማዕዘኖች መዝጋት", "beforeCheckDesc": "ያለፉት 14 ቀናት አካባቢዎን በትክክል ለማወቅ የአከባቢዎ ውሂብ ከ Google መለያ መንቃት አለበት። ይህ መረጃ በስልክ ላይ እና ለግል ጥቅም ብቻ የሚቀመጥ እና ለሌላ ወገን የማይላክ ነው", "beforeCheckDesc2": "ይህንን ለማድረግ ከ Google ጀምሮ በአለፉት 14 ቀናት ውስጥ መዳረሻዎችን መፍቀድ አለብዎት", - "beforeCheckButton": "የውሂብ ትክክለኛነት", + "beforeCheckButton": "ተጨማሪ መረጃ ከጉግል ለመጨመር,", "skip": "ዝለል", "successFoundTitle": "የጉግል ውሂብ በተሳካ ሁኔታ ዘምኗል", "successFoundDesc": "ላለፉት 14 ቀናት የተደራራቢ ነጥቦችን መፈለግ ከ Google በተቀበለው የአካባቢ ውሂብ ላይ የተመሠረተ ይሆናል", @@ -1054,12 +1300,13 @@ "shareFail": "የሆነ ችግር ተፈጥሯል" }, "description": { - "beforeShare": "በዚህ ሂደት (\"ኤፒዲሚዮሎጂካል ምርመራ\" ተብሎ ይጠራል) የአካባቢ ውሂብዎን ከመተግበሪያው እንሰበስባለን። ላለፉት 14 ቀናት የህዝብ ቦታዎችዎን መረጃዎች እናትማለን።\n\nየሕዝብ ጤና መረጃ በሕዝባዊ ቦታዎች ላይ ብቻ ይታተማል ፡፡\nየግል መረጃዎ ሚስጥራዊ እንደሆነ ይቆያል ፡፡", + "beforeShare": "በዚህ ሂደት (\"ኤፒዲሚዮሎጂካል ምርመራ\" ተብሎ ይጠራል) የአካባቢ ውሂብዎን ከመተግበሪያው እንሰበስባለን። ላለፉት 14 ቀናት የህዝብ ቦታዎችዎን መረጃዎች እናትማለን።\n\nየሕዝብ ጤና መረጃ በሕዝባዊ ቦታዎች ላይ ብቻ ይታተማል ፡፡\n", "shareSuccess": "የአካባቢዎን ውሂብ ተቀብለናል። ለእነሱ ምስጋና ይግባውና የኮሮና በሽታን መዋጋት እንችላለን።", "shareNoConnection": "የበይነመረብ ግንኙነትዎን በስልክዎ የቅንብሮች ማያ ገጽ በኩል መመርመር አለብዎት ፣ ከዚያ እንደገና ይሞክሩ", - "shareFail": "እንደ አለመታደል ሆኖ ውሂቡን ማግኘት አልቻልንም። በጥሪው ወቅት በአዲሱ አገናኝ ኤስኤምኤስ ይጠይቁ እና በመለያ ይግቡ", + "shareFail": "እንደ አጋጣሚ ሆኖ የእርስዎን ውሂብ ማግኘት አልቻልንም። እባክዎ እንደገና ይሞክሩ", "shareFailMissingToken": "እንደ አለመታደል ሆኖ ውሂቡን ማግኘት አልቻልንም። በጥሪው ወቅት በአዲሱ አገናኝ ኤስኤምኤስ ይጠይቁ እና በመለያ ይግቡ", - "shareFailTokenError": "እንደ አጋጣሚ ሆኖ የእርስዎን ውሂብ ማግኘት አልቻልንም። እባክዎ እንደገና ይሞክሩ" + "shareFailTokenError": "እንደ አጋጣሚ ሆኖ የእርስዎን ውሂብ ማግኘት አልቻልንም። እባክዎ እንደገና ይሞክሩ", + "shareFailWithWarnings": "በስልክዎ ላይ ምንም ውሂብ አልተገኘም።\nበጥሪው እንቀጥላለን።" }, "greeting": { "beforeShare": "የእርስዎ የግል መረጃ - በሚስጥር ይቀጥላል", @@ -1071,10 +1318,20 @@ "beforeShare": "ውሂቤን በማጋራት ላይ", "shareSuccess": "ወደ መተግበሪያው ይመለሱ", "shareNoConnection": "ሌላ ሙከራ", - "shareFail": "ገባኝ ፣ አመሰግናለሁ", + "shareFail": "እባክዎ እንደገና ይሞክሩ", "shareFailMissingToken": "ገባኝ ፣ አመሰግናለሁ", - "shareFailTokenError": "እባክዎ እንደገና ይሞክሩ" - } + "shareFailTokenError": "እባክዎ እንደገና ይሞክሩ", + "shareFailWithWarnings": "ገባኝ" + }, + "addBleDataText": "በኮሮ ሕመምተኞች ስልኮች አቅራቢያ ያለውን ቅርበት ለመለየት በአይን እጢ በኩል የተሰበሰበውን መረጃ መጠቀሙ ለእኔም ተቀባይነት አለው" + }, + "exposureRelief": { + "editBtn": "ማርትዕ", + "title": "በቆርቆሮ የተስተካከሉ አይመስሉም", + "keepSafe": "መመሪያዎችን መከተል አስፈላጊ ነው!", + "backBtn": "ወደ መነሻ ገጽ ይመለሱ", + "reliefTitle": "ለዝማኔው እናመሰግናለን", + "historyBackBtn": "ወደ መደራረብ ታሪክ ይመለሱ" } }, "fr": { @@ -1122,6 +1379,14 @@ "subTitle1": "Des milliers d'Israéliens pourraient subir les effets néfastes du coronavirus.", "subTitle2": "Un diagnostic et un isolement en temps opportun peuvent leur sauver la vie" }, + "bluetooth": { + "title": "Identifier les points de chevauchement \n Avec l'aide du Bluetooth'", + "description": "La technologie Bluetooth permet d'identifier les endroits de proximité entre vous et les autres propriétaires de téléphone de votre région ayant installée l'application, afin de détecter les éventuelles contaminations de Corona.", + "approveBluetooth": "Activer les services Bluetooth", + "callToAction": "Afin de confirmer l'utilisation de ces services \nActivez le Bluetooth sur votre appareil", + "approveBluetoothIOS": "Activer les services Bluetooth", + "approveBluetoothAndroid": "J’ai compris" + }, "location": { "title": "La localisation est critique", "subTitle1": "Cette application va collecter vos localisations et les comparer à celles des personnes infectées par le virus. Si l'un de ces emplacements se chevauche,vous recevrez une notification.", @@ -1134,7 +1399,7 @@ }, "locationIOS": { "title": "Activer le service de localisation en arrière-plan", - "subTitle1": "Afin de pouvoir vous tenir au courant des événements liés au coronavirus, nous devrons vous envoyer des notifications.", + "subTitle1": "Afin de vous fournir régulièrement des informations précises sur les lieux qui vous concernent,, Vous devez autoriser la geolocalisation de vos deplacements", "subTitle2": "Les paramètres du service de localisation doivent être modifiés comme indiqué dans les images ci-dessous", "goToSettings": "Appuyez ici pour les paramètres", "set": "\nParamètres mis à jour, continuons" @@ -1179,6 +1444,7 @@ "suspectedExposure": "Suspicion d'exposition:", "events": "les événements", "possibleExposure": "Il peut y avoir un chevauchement avec le patient Corona:", + "possibleExposureBLE": "Selon les données de votre téléphone \n Nous avons détecté que vous étiez proche d’un malade de Corona", "atPlace": "À ", "share": { "message": "Partager l'application de protection", @@ -1186,7 +1452,7 @@ "androidTitle": "Partager l'application de protection" }, "noExposures": { - "bannerText": "Aucun \n point de chevauchement trouvé", + "bannerText": "Aucun nouveau chevauchement trouvé ", "workAllTheTime": "L'application de protection fonctionne tout le temps", "infoModal": { "textBodyPt1": "La comparaison est faite à partir du moment où vous recevez vos emplacements sur", @@ -1195,16 +1461,39 @@ "card": { "title": "Au:", "atHour": "À" - } + }, + "bannerTextPristine": "Aucun point \n de chevauchement trouvé ", + "instructionLinkUpper": "À utiliser si nécessaire:", + "instructionLinkLower": "Consignes pour confinement", + "bluetoothServiceOff": "Les services Bluetooth sur l'appareil sont désactivés ", + "turnBluetoothOn": "Activation du Bluetooth", + "canIdentifyWithBluetooth": "Désormais, davantage de points de chevauchements peuvent être identifiés à l'aide du Bluetooth. ", + "moreInformation": "Plus d'informations " }, "showOnMap": "J'ai été présenté à la carte", - "wasNotMe": "Je n'étais pas là", - "wasMe": "Cela peut être" + "wasNotMe": "Je n'étais pas a cet endroit", + "wasMe": "J’y etais peut-être ", + "doneBtn": "J'ai terminé la mise à jour ", + "betweenHours": "Entre les heures", + "deviceCloseTag": "Proximité entre les appareils ", + "locationCloseTag": "Proximité de l'emplacement ", + "wasMeBle": "Continuer", + "wasMeOnly": "Continuez pour recevoir les instructions" }, "exposuresHistory": { - "title": "Historique des intersections\n", + "title": "Historique des intersections", "noExposures": "Pas d'intersection trouvée", - "keepInstructions": "Il est important de continuer à suivre les directives" + "keepInstructions": "Il est important de continuer à suivre les directives ", + "subTitle": "Voici tous les chevauchements que nous avons trouvés durant les 14\n derniers jours que vous les avez marqués", + "wasThere": "Vous avez peut-être été là ", + "wasNotThere": "Vous n'étiez pas là ", + "wasThereNoExposure": "Aucun événement détecté au cours des 14 derniers jours pour lequel vous ayez marqué J'ai peut-être été là", + "wasNotThereNoExposure": "Aucun événement détecté au cours des 14 derniers jours pour lequel vous avez marqué Je n'étais pas là", + "historyEditFinishBtn": "Enregistrer les modifications ", + "historyEditCancelBtn": "Annuler l'édition", + "edit": "Éditer", + "BLELocationUpdate": " Données de localisation mises à jour ", + "BLEWarning": " Les informations obtenues à l'aide du Bluetooth ne sont pas modifiables '" }, "exposureInstructions": { "title": "Suspicion d'exposition: que faire?", @@ -1214,13 +1503,22 @@ "goIntoIsolation": "Isolez-vous pendant 14 jours depuis le moment du contact", "reportIsolation": "Signaler l’isolement", "allInstructions": "Pour toutes les instructions", - "reportSite": "Pour signaler sur le sit" + "reportSite": "Pour signaler sur le sit", + "keepSafeNew": "Directives du Ministère de la Santé:", + "subTitle": "Il peut y avoir un chevauchement avec un malade Corona ", + "themInstructions": "Ci-dessous les directives du Ministère de la Santé:", + "editBtn": "Éditer ", + "finishBtn": "J'ai fini, retour à la page d'accueil ", + "updateTitle": "Merci pour votre mise à jour", + "updateSubTitle": "Les modifications que vous avez apportées peuvent affecter le comportement ci-dessous", + "showMore": "Plus", + "showLess": "Moins" }, "locationHistory": { "beforeCheckTitle": "Ajout des données précédentes ", "beforeCheckDesc": "Afin de déterminer vos emplacements au cours des 14 derniers jours,nous devrons obtenir vos données de localisation à partir de votre compte Google. Ces informations sont conservées sur votre téléphone, pour votre usage personnel et ne sont envoyées à aucune autre partie", "beforeCheckDesc2": "Pour ce faire,merci d’autoriser l'accès aux emplacements des 14 derniers jours à partir de Google", - "beforeCheckButton": "Précision des données", + "beforeCheckButton": "Ajout de données de Google", "skip": "Sauter", "successFoundTitle": "Mise à jour réussie des données Google", "successFoundDesc": "La localisation des points de chevauchement des 14 derniers jours sera basée sur les données de localisation reçues de Google", @@ -1250,12 +1548,13 @@ "shareFail": "Quelque chose a mal tourné" }, "description": { - "beforeShare": "Dans ce processus (appelé \"enquête épidémiologique\"), nous collecterons vos données de localisation à partir de l'application. Nous publierons vos données sur les lieux publics au cours des 14 derniers jours.\n\nLes informations de santé publique ne seront publiées que sur les lieux publics.\nVos informations personnelles resteront confidentielles.", + "beforeShare": "Dans ce processus (appelé \"enquête épidémiologique\"), nous collecterons vos données de localisation à partir de l'application. Nous publierons vos données sur les lieux publics au cours des 14 derniers jours.\n\nLes informations de santé publique ne seront publiées que sur les lieux publics.\n", "shareSuccess": "Nous avons reçu vos données de localisation. Grâce à eux, nous pouvons continuer à lutter contre la corona.", "shareNoConnection": "Vous devez vérifier votre connexion Internet via l'écran des paramètres de votre téléphone, puis réessayer", - "shareFail": "Malheureusement, nous n'avons pas pu obtenir les données. Demander un SMS avec un nouveau lien lors de l'appel et se connecter", + "shareFail": "Malheureusement, nous n'avons pas pu obtenir vos données. Veuillez réessayer", "shareFailMissingToken": "Malheureusement, nous n'avons pas pu obtenir les données. Demander un SMS avec un nouveau lien lors de l'appel et se connecter", - "shareFailTokenError": "Malheureusement, nous n'avons pas pu obtenir vos données. Veuillez réessayer" + "shareFailTokenError": "Malheureusement, nous n'avons pas pu obtenir vos données. Veuillez réessayer", + "shareFailWithWarnings": "Aucune donnée trouvée sur votre téléphone.\nNous continuerons le processus par un appel téléphonique" }, "greeting": { "beforeShare": "Vos informations personnelles - resteront confidentielles", @@ -1267,10 +1566,20 @@ "beforeShare": "Partager mes données", "shareSuccess": "Retour à l'appli", "shareNoConnection": "Un autre essai", - "shareFail": "Je comprends merci", + "shareFail": "Veuillez réessayer", "shareFailMissingToken": "Je comprends merci", - "shareFailTokenError": "Veuillez réessayer" - } + "shareFailTokenError": "Veuillez réessayer", + "shareFailWithWarnings": "J’ai compris" + }, + "addBleDataText": "Il est acceptable pour moi d'utiliser également les informations collectées via Bluetooth pour identifier la proximité des téléphones des patients corona" + }, + "exposureRelief": { + "editBtn": "Éditer ", + "title": "Vous ne semblez pas avoir de chevauchement avec un malade Corona", + "keepSafe": "Il est important de continuer à suivre les directives!", + "backBtn": "Retour à la page d'accueil ", + "reliefTitle": "Merci pour la mise à jour ", + "historyBackBtn": "Retour à l'historique des chevauchements " } } -} \ No newline at end of file +} diff --git a/src/reducers/ExposuresReducer.ts b/src/reducers/ExposuresReducer.ts index 0da0d962..d73787ce 100644 --- a/src/reducers/ExposuresReducer.ts +++ b/src/reducers/ExposuresReducer.ts @@ -7,7 +7,9 @@ import { SET_VALID_EXPOSURE, UPDATE_EXPOSURES, UPDATE_PAST_EXPOSURES, - UPDATE_FIRST_POINT + UPDATE_FIRST_POINT, + REPLACE_EXPOSURES, + REPLACE_PAST_EXPOSURES } from '../constants/ActionTypes'; const INITIAL_STATE = { @@ -17,10 +19,12 @@ const INITIAL_STATE = { firstPoint: undefined }; + export default (state: ExposuresReducer = INITIAL_STATE, action: ReducerAction) => { switch (action.type) { case UPDATE_EXPOSURES: { const { exposures } = action.payload; + return { ...state, exposures: _.sortBy([...state.exposures, ...exposures], exposure => exposure.properties.fromTime).reverse() }; } @@ -35,7 +39,11 @@ export default (state: ExposuresReducer = INITIAL_STATE, action: ReducerAction) case UPDATE_PAST_EXPOSURES: { const { pastExposures } = action.payload; - return { ...state, pastExposures: [...state.pastExposures, ...pastExposures] }; + return { + ...state, + pastExposures: + _.sortBy([...state.pastExposures, ...pastExposures], exposure => exposure.properties.fromTime).reverse() + }; } case DISMISS_EXPOSURE: { @@ -51,6 +59,19 @@ export default (state: ExposuresReducer = INITIAL_STATE, action: ReducerAction) return { ...state, firstPoint: action.payload }; } + case REPLACE_EXPOSURES: { + const { exposures } = action.payload; + return { ...state, exposures }; + } + + case REPLACE_PAST_EXPOSURES: { + return { + ...state, + pastExposures: + _.sortBy([...action.payload], exposure => exposure.properties.fromTime).reverse() + }; + } + default: return state; } diff --git a/src/reducers/GeneralReducer.ts b/src/reducers/GeneralReducer.ts index 114195f5..ffe798ef 100644 --- a/src/reducers/GeneralReducer.ts +++ b/src/reducers/GeneralReducer.ts @@ -8,7 +8,8 @@ import { HIDE_FORCE_TERMS, HIDE_LOCATION_HISTORY, SHOW_MAP_MODAL, - HIDE_MAP_MODAL + HIDE_MAP_MODAL, + ENABLE_BLE } from '../constants/ActionTypes'; import { USAGE_PRIVACY } from '../constants/Constants'; @@ -22,6 +23,7 @@ const INITIAL_STATE = { usageType: USAGE_PRIVACY, termsVersion: 0, hideLocationHistory: false, + enableBle: false, showMap: { visible: false, region: { @@ -75,6 +77,10 @@ export default (state: GeneralReducer = INITIAL_STATE, action: ReducerAction) => return { ...state, showMap: { ...INITIAL_STATE.showMap } }; } + case ENABLE_BLE: { + return { ...state, enableBle: action.payload }; + } + default: return state; } diff --git a/src/services/BLEService.ts b/src/services/BLEService.ts new file mode 100644 index 00000000..a6d86f0f --- /dev/null +++ b/src/services/BLEService.ts @@ -0,0 +1,94 @@ +import { NativeEventEmitter, Clipboard, Alert } from 'react-native'; +import AsyncStorage from '@react-native-community/async-storage'; +// @ts-ignore +import SpecialBle from 'rn-contact-tracing'; +import { IS_IOS, ENABLE_BLE } from '../constants/Constants'; +import { onError } from './ErrorService'; +import { downloadAndVerifySigning } from './SigningService'; +import config from '../config/config'; +import defaultBleResponse from '../constants/defaultBleResponse.json'; + +export const initBLETracing = () => new Promise(async (resolve) => { + if (ENABLE_BLE) { + try { + const UUID = '00000000-0000-1000-8000-00805F9B34FB'; + + // TODO move to config + let config: any = { + serviceUUID: UUID, + scanDuration: 60000, + scanInterval: 240000, + advertiseInterval: 50000, + advertiseDuration: 10000, + token: 'default_token' + }; + + if (!IS_IOS) { + config = { + ...config, + advertiseMode: 0, + advertiseTXPowerLevel: 3, + scanMatchMode: 1, + notificationTitle: '', + notificationContent: 'סריקת BLE פועלת', + notificationLargeIconPath: '../assets/main/moreInfoBig.png', + notificationSmallIconPath: '../assets/main/moreInfo.png' + }; + } + await SpecialBle.stopBLEService(); + await SpecialBle.setConfig(config); + await SpecialBle.startBLEService(); + + resolve(); + } catch (error) { + resolve(); + onError({ error }); + } + } else { + await SpecialBle.stopBLEService(); + resolve(); + } +}); + +export const registerBLEListeners = () => { + if (ENABLE_BLE) { + const eventEmitter = new NativeEventEmitter(SpecialBle); + eventEmitter.addListener('scanningStatus', (status) => { + // TODO handle ble event + }); + + eventEmitter.addListener('advertisingStatus', (status) => { + // TODO handle ble event + }); + } +}; + +export const fetchInfectionDataByConsent = async () => new Promise(async (resolve) => { + try { + SpecialBle.fetchInfectionDataByConsent((res: any) => { + const parsedRes = JSON.parse(res || '[]'); + resolve(parsedRes); + }); + } catch (error) { + resolve([]); + onError({ error }); + } +}); + +export const match = async () => new Promise(async (resolve) => { + if (!ENABLE_BLE) resolve([]); + else { + try { + const responseJson = await downloadAndVerifySigning(config().BleDataUrl_utc); + + SpecialBle.match(JSON.stringify(responseJson), (res: string) => { + const parsedRes: any[] = JSON.parse(res || '[]'); + + resolve(parsedRes); + }); + } catch (error) { + resolve([]); + onError({ error }); + } + } +}); diff --git a/src/services/BackgroundService.ts b/src/services/BackgroundService.ts index 6c36951b..fb132b29 100644 --- a/src/services/BackgroundService.ts +++ b/src/services/BackgroundService.ts @@ -1,7 +1,10 @@ import BackgroundFetch from 'react-native-background-fetch'; +import AsyncStorage from '@react-native-community/async-storage'; import config, { initConfig } from '../config/config'; -import { checkSickPeople } from './Tracker'; +import { checkGeoSickPeople, checkBLESickPeople } from './Tracker'; +import { syncLocationsDBOnLocationEvent } from './SampleService'; import { onError } from './ErrorService'; +import { LAST_FETCH_TS } from '../constants/Constants'; export const scheduleTask = async () => { try { @@ -17,7 +20,14 @@ export const scheduleTask = async () => { try { console.log('Background fetch event fired'); await initConfig(); - await checkSickPeople(); + await syncLocationsDBOnLocationEvent(); + await checkBLESickPeople(); + await checkGeoSickPeople(); + + await AsyncStorage.setItem( + LAST_FETCH_TS, + JSON.stringify(new Date().getTime()), + ); BackgroundFetch.finish(BackgroundFetch.FETCH_RESULT_NEW_DATA); } catch (error) { onError({ error }); diff --git a/src/services/ClusteringService.ts b/src/services/ClusteringService.ts new file mode 100644 index 00000000..cd09dc52 --- /dev/null +++ b/src/services/ClusteringService.ts @@ -0,0 +1,238 @@ +import AsyncStorage from '@react-native-community/async-storage'; +import moment from 'moment'; +import _ from 'lodash'; +import AsyncLock from 'async-lock'; +import Geohash from 'latlon-geohash'; +import { UserClusteredLocationsDatabase, UserLocationsDatabase } from '../database/Database'; +import { onError } from './ErrorService'; +import config from '../config/config'; +import { Cluster, DBLocation } from '../types'; +import { CLUSTER_JITTER_LOCATION, CURRENT_CLUSTER_LOCATIONS_DATA, DID_CLUSTER_LOCATIONS } from '../constants/Constants'; + +// tslint:disable-next-line:no-var-requires +const haversine = require('haversine'); + +const lock = new AsyncLock(); + +export const clusterSample = async () => { + const locationsDB = new UserLocationsDatabase(); + const clustersDB = new UserClusteredLocationsDatabase(); + + // fetch last 2 points from locations DB (AKA "buffer"). + const buffer: DBLocation[] = await locationsDB.getBufferSamplesForClustering(2); + + // fetch current cluster from clusters DB. + const currentCluster: Cluster = await clustersDB.getLastClusterEntered(); + + const [firstLocationInBuffer, secondLocationInBuffer] = buffer; + + if (buffer.length < 2 || (currentCluster && (currentCluster.endTime > firstLocationInBuffer.startTime))) { + return; + } + + if (currentCluster) { + // if first point in buffer belongs to the current cluster. + if (areLocationsCreatingCluster(currentCluster, firstLocationInBuffer)) { + const jitterLocation = JSON.parse(await AsyncStorage.getItem(CLUSTER_JITTER_LOCATION) || 'false'); + + if (currentCluster.endTime === firstLocationInBuffer.startTime || jitterLocation) { + const updatedCluster = await updateCluster(currentCluster, firstLocationInBuffer); + await clustersDB.updateLastCluster(updatedCluster); + await AsyncStorage.removeItem(CLUSTER_JITTER_LOCATION); + return; + } + } + + if ( + moment(firstLocationInBuffer.endTime).diff(moment(firstLocationInBuffer.startTime), config().jitterUnits, true) < config().jitterValue + && !areLocationsCreatingCluster(currentCluster, firstLocationInBuffer) + && areLocationsCreatingCluster(currentCluster, secondLocationInBuffer) + && currentCluster.endTime === firstLocationInBuffer.startTime + && firstLocationInBuffer.endTime === secondLocationInBuffer.startTime + ) { + await AsyncStorage.setItem(CLUSTER_JITTER_LOCATION, 'true'); + return; + } + } + + await createCluster(clustersDB, firstLocationInBuffer); +}; + +const areLocationsCreatingCluster = (clusterOrLocation: Cluster|DBLocation, location: DBLocation) => { + const start = { + latitude: clusterOrLocation.lat, + longitude: clusterOrLocation.long, + }; + + const end = { + latitude: location.lat, + longitude: location.long, + }; + + return haversine(start, end, { threshold: config().clusterRadius, unit: config().bufferUnits }); +}; + +const updateCluster = async (cluster: Cluster, location: DBLocation) => { + const updatedLat = ((cluster.lat * cluster.size) + location.lat) / (cluster.size + 1); + const updatedLong = ((cluster.long * cluster.size) + location.long) / (cluster.size + 1); + + const clusterLocationsData: Array<{ lat: number, long: number }> = JSON.parse(await AsyncStorage.getItem(CURRENT_CLUSTER_LOCATIONS_DATA) || '[]'); + const clusterLocationsDataWithNewLocation = [...clusterLocationsData, { lat: location.lat, long: location.long }]; + + const start = { + latitude: updatedLat, + longitude: updatedLong + }; + + const clusterRadii: number[] = clusterLocationsDataWithNewLocation.map(({ lat, long }) => haversine(start, { latitude: lat, longitude: long }, { unit: config().bufferUnits })); + + const updatedRadius = _.max(clusterRadii) || 0; + + // add new location to current cluster locations data. + await AsyncStorage.setItem(CURRENT_CLUSTER_LOCATIONS_DATA, JSON.stringify(clusterLocationsDataWithNewLocation)); + + return { + lat: updatedLat, + long: updatedLong, + startTime: cluster.startTime, + endTime: location.endTime, + geoHash: cluster.geoHash, + radius: updatedRadius, + size: cluster.size + 1 + }; +}; + +const createCluster = async (clustersDB: any, location: DBLocation) => { + const { lat, long, startTime, endTime }: DBLocation = location; + + await clustersDB.addCluster({ lat, long, startTime, endTime, geoHash: Geohash.encode(lat, long, 6), radius: 0, size: 1 }); + + // override previous cluster locations data with new location. + await AsyncStorage.setItem(CURRENT_CLUSTER_LOCATIONS_DATA, JSON.stringify([{ lat, long }])); +}; + +export const clusterLocationsOnAppUpdate = () => new Promise(async (resolve) => { + await lock.acquire('clusterLocationsOnAppUpdate', async (done) => { + try { + const didClusterLocations = await AsyncStorage.getItem(DID_CLUSTER_LOCATIONS); + + if (didClusterLocations) { + done(); + resolve(); + return; + } + + const db = new UserLocationsDatabase(); + const cdb = new UserClusteredLocationsDatabase(); + + const currentLocations = await db.listSamples(); + + const clustersBulkData = clusterLocationHistorySynchronously(currentLocations); + await cdb.insertBulkClusters(clustersBulkData); + + await AsyncStorage.setItem(DID_CLUSTER_LOCATIONS, 'true'); + done(); + resolve(); + } catch (error) { + done(); + resolve(); + onError({ error }); + } + }); +}); + +export const clusterLocationHistorySynchronously = (currentLocations: DBLocation[], isGoogleTimelineLocations?: boolean) => { + let isJitter = false; + let currentClusterLocationsData: Array<{ lat: number, long: number }> = []; + const clusters: Cluster[] = []; + + currentLocations.forEach((_, index) => { + // fetch last 2 points from locations DB (AKA "buffer"). + const buffer: DBLocation[] = currentLocations.slice(index, index + 2); + + const currentCluster: Cluster = clusters[clusters.length - 1]; + const [firstLocationInBuffer, secondLocationInBuffer] = buffer; + + // if from google timeline and is the last point if belong and start a new one if not + if (isGoogleTimelineLocations && (index === (currentLocations.length - 1))) { + // if belongs to current cluster add to it + if (areLocationsCreatingCluster(currentCluster, firstLocationInBuffer) && currentCluster.endTime === firstLocationInBuffer.startTime) { + const { updatedCluster } = updateClusterSynchronously(currentCluster, firstLocationInBuffer, currentClusterLocationsData); + clusters[clusters.length - 1] = updatedCluster; + return; + } + + // else create new cluster and done + const { lat, long, startTime, endTime }: DBLocation = firstLocationInBuffer; + clusters.push({ lat, long, startTime, endTime, geoHash: Geohash.encode(lat, long, 6), radius: 0, size: 1 }); + return; + } + + + if (buffer.length < 2) { + return; + } + + if (currentCluster) { + // if first point in buffer belongs to the current cluster. + if (areLocationsCreatingCluster(currentCluster, firstLocationInBuffer)) { + const jitterLocation = isJitter; + + if (currentCluster.endTime === firstLocationInBuffer.startTime || jitterLocation) { + const { updatedCluster, clusterLocationsDataWithNewLocation } = updateClusterSynchronously(currentCluster, firstLocationInBuffer, currentClusterLocationsData); + + currentClusterLocationsData = clusterLocationsDataWithNewLocation; + clusters[clusters.length - 1] = updatedCluster; + isJitter = false; + return; + } + } + + if ( + moment(firstLocationInBuffer.endTime).diff(moment(firstLocationInBuffer.startTime), config().jitterUnits, true) < config().jitterValue + && !areLocationsCreatingCluster(currentCluster, firstLocationInBuffer) + && areLocationsCreatingCluster(currentCluster, secondLocationInBuffer) + && currentCluster.endTime === firstLocationInBuffer.startTime + && firstLocationInBuffer.endTime === secondLocationInBuffer.startTime + ) { + isJitter = true; + return; + } + } + + const { lat, long, startTime, endTime }: DBLocation = firstLocationInBuffer; + clusters.push({ lat, long, startTime, endTime, geoHash: Geohash.encode(lat, long, 6), radius: 0, size: 1 }); + + currentClusterLocationsData = [{ lat, long }]; + }); + + return clusters; +}; + +const updateClusterSynchronously = (cluster: Cluster, location: DBLocation, clusterLocationsData: Array<{ lat: number, long: number }>) => { + const updatedLat = ((cluster.lat * cluster.size) + location.lat) / (cluster.size + 1); + const updatedLong = ((cluster.long * cluster.size) + location.long) / (cluster.size + 1); + + const clusterLocationsDataWithNewLocation = [...clusterLocationsData, { lat: location.lat, long: location.long }]; + + const start = { + latitude: updatedLat, + longitude: updatedLong + }; + + const clusterRadii: number[] = clusterLocationsDataWithNewLocation.map(({ lat, long }) => haversine(start, { latitude: lat, longitude: long }, { unit: config().bufferUnits })); + const updatedRadius = _.max(clusterRadii) || 0; + + return { + clusterLocationsDataWithNewLocation, + updatedCluster: { + lat: updatedLat, + long: updatedLong, + startTime: cluster.startTime, + endTime: location.endTime, + geoHash: cluster.geoHash, + radius: updatedRadius, + size: cluster.size + 1 + } + }; +}; diff --git a/src/services/DeepLinkService.ts b/src/services/DeepLinkService.ts index 3830d392..799b7804 100644 --- a/src/services/DeepLinkService.ts +++ b/src/services/DeepLinkService.ts @@ -1,6 +1,10 @@ import { StackNavigationProp } from '@react-navigation/stack'; +import { fetchInfectionDataByConsent } from './BLEService'; import { queryDB } from './Tracker'; +import config from '../config/config'; import { DBLocation } from '../types'; +import { IS_IOS, ENABLE_BLE } from '../constants/Constants'; +import defaultBleResponse from '../constants/defaultBleResponse.json'; export const onOpenedFromDeepLink = (url: string, navigation: StackNavigationProp) => { const { token } = parseQueryParamsFromUrlScheme(url); @@ -34,7 +38,6 @@ const parseQueryParamsFromUrlScheme = (url: string): any => { if (!Array.isArray(obj[key])) { obj[key] = [obj[key]]; } - // Push the new value to the key's array obj[key].push(value); } @@ -43,25 +46,47 @@ const parseQueryParamsFromUrlScheme = (url: string): any => { return obj; }; -export const getUserLocationsReadyForServer = (token: string) => new Promise(async (resolve, reject) => { +export const getUserLocationsReadyForServer = (token: string, userAgreedToBle: boolean = false) => new Promise(async (resolve, reject) => { try { - const locations: DBLocation[] = await queryDB(); + const objectToShare = { + token, + dataRows: [], + }; + + const isClusters = config().dataShareClusters; + + const locations: DBLocation[] = await queryDB(isClusters); + const dataRows = locations.map((location) => { location._long = parseFloat(location.long.toFixed(6)); location.lat = parseFloat(location.lat.toFixed(6)); - location.accuracy = Math.min(location.accuracy, 999); - // fix for geoHashes entered with a "'" from google timeline. location.geoHash = location.geoHash.replace(/[']/g, ''); delete location.long; - delete location.hash; - delete location.wifiHash; + + if (!isClusters) { + // server can handle 4 digits + location.accuracy = Math.min(location.accuracy, 999); + delete location.hash; + delete location.wifiHash; + } return location; }); - resolve({ token, dataRows }); + if (dataRows) { + objectToShare.dataRows = dataRows; + } + + if (ENABLE_BLE && userAgreedToBle) { + const dataBleRows = await fetchInfectionDataByConsent(); + if (dataBleRows) { + objectToShare.dataBleRows = dataBleRows; + } + } + + resolve(objectToShare); } catch (e) { reject(e); } diff --git a/src/services/LocationHistoryService.ts b/src/services/LocationHistoryService.ts index 93337718..cafad268 100644 --- a/src/services/LocationHistoryService.ts +++ b/src/services/LocationHistoryService.ts @@ -3,11 +3,13 @@ import _ from 'lodash'; import geoHash from 'latlon-geohash'; import { DOMParser } from 'xmldom'; import AsyncStorage from '@react-native-community/async-storage'; -import { UserLocationsDatabase } from '../database/Database'; import { sha256 } from './sha256'; import { checkIfHideLocationHistory } from '../actions/GeneralActions'; +import { clusterLocationHistorySynchronously } from './ClusteringService'; +import { UserClusteredLocationsDatabase, UserLocationsDatabase } from '../database/Database'; import store from '../store'; import config from '../config/config'; +import { DBLocation } from '../types'; import { UPDATE_FIRST_POINT } from '../constants/ActionTypes'; import { FIRST_POINT_TS, IS_LAST_POINT_FROM_TIMELINE, SHOULD_HIDE_LOCATION_HISTORY } from '../constants/Constants'; @@ -73,10 +75,11 @@ export const kmlToGeoJson = (text: any) => { return objArray; }; -export const insertToSampleDB = (data : any[]) => new Promise(async (resolve, reject) => { +export const insertToSampleDB = (data : DBLocation[]) => new Promise(async (resolve, reject) => { try { if (data) { const db = new UserLocationsDatabase(); + const cdb = new UserClusteredLocationsDatabase(); let insertString = ''; /** @@ -95,6 +98,10 @@ export const insertToSampleDB = (data : any[]) => new Promise(async (resolve, re // insert bulk samples to db await db.insertBulkSamples(insertString); + // convert samples to clusters and insert bulk clusters to cdb + const clusters = clusterLocationHistorySynchronously(data, true); + await cdb.insertBulkClusters(clusters); + // insert first Point if needed data = _.sortBy(data, (point: any) => point.startTime); diff --git a/src/services/PushService.ts b/src/services/PushService.ts index 3cac2835..1885c081 100755 --- a/src/services/PushService.ts +++ b/src/services/PushService.ts @@ -2,6 +2,9 @@ import firebase from 'react-native-firebase'; import moment, { DurationInputArg1, DurationInputArg2 } from 'moment'; import { onError } from './ErrorService'; +let onNotificationListener: any = null; +let onNotificationOpenedListener: any = null; + export const initPushNotifications = () => new Promise(async (resolve) => { try { const enabled = await firebase.messaging().hasPermission(); @@ -53,3 +56,26 @@ export const registerLocalNotification = async (title: string, message: string, onError({ error }); } }; + +export const startPushListeners = async () => { + firebase.messaging().subscribeToTopic('wakeup'); + + // if app was closed and opened from push + const notification = await firebase.notifications().getInitialNotification(); + + if (notification) { + pushNotificationHandler(notification, true, false); + } + + onNotificationListener = firebase.notifications().onNotification(notification => pushNotificationHandler({ notification }, false, false)); + onNotificationOpenedListener = firebase.notifications().onNotificationOpened(notification => pushNotificationHandler(notification, true, false)); +}; + +export const removePushListeners = () => { + onNotificationListener && onNotificationListener(); + onNotificationOpenedListener && onNotificationOpenedListener(); +}; + +const pushNotificationHandler = ({ notification }: any, isTapped: boolean, isSilent: boolean) => { + +}; diff --git a/src/services/SampleService.ts b/src/services/SampleService.ts index 6376ab4d..a74f711d 100755 --- a/src/services/SampleService.ts +++ b/src/services/SampleService.ts @@ -4,8 +4,9 @@ import AsyncLock from 'async-lock'; import moment from 'moment'; import BackgroundGeolocation from 'react-native-background-geolocation'; import { startLocationTracking } from './LocationService'; -import { UserLocationsDatabase } from '../database/Database'; +import { UserClusteredLocationsDatabase, UserLocationsDatabase } from '../database/Database'; import { sha256 } from './sha256'; +import { clusterSample } from './ClusteringService'; import { onError } from './ErrorService'; import store from '../store'; import config, { initConfig } from '../config/config'; @@ -85,6 +86,8 @@ export const insertDB = async (sample: Sample) => new Promise(async (resolve) => await AsyncStorage.removeItem(IS_LAST_POINT_FROM_TIMELINE); } + await clusterSample(); + const sampleObj = { lat: sample.coords.latitude, long: sample.coords.longitude, @@ -136,22 +139,25 @@ const saveToStorage = (key: string, value: number) => new Promise(async (resolve }); export const purgeSamplesDB = () => new Promise(async (resolve, reject) => { - const NUM_OF_WEEKS_TO_PURGE = 2; + await lock.acquire('purgeDB', async (done) => { + try { + const NUM_OF_WEEKS_TO_PURGE = 2; - try { - await lock.acquire('purgeDB', async (done) => { const db = new UserLocationsDatabase(); + const cdb = new UserClusteredLocationsDatabase(); await db.purgeSamplesTable(moment().subtract(NUM_OF_WEEKS_TO_PURGE, 'week').unix() * 1000); + await cdb.purgeClustersTable(moment().subtract(NUM_OF_WEEKS_TO_PURGE, 'week').unix() * 1000); resolve(); done(); return true; - }); - } catch (error) { - reject(error); - onError({ error }); - } + } catch (error) { + reject(error); + done(); + onError({ error }); + } + }); }); export const updateDBAccordingToSampleVelocity = async (location: Sample) => { diff --git a/src/services/SigningService.ts b/src/services/SigningService.ts index f88d4ea6..362c7665 100644 --- a/src/services/SigningService.ts +++ b/src/services/SigningService.ts @@ -13,7 +13,9 @@ export const downloadAndVerifySigning = (url: string) => new Promise(async const signatureLength = data.indexOf('{'); const signature = data.slice(0, signatureLength); + const jsonB64 = data.slice(signatureLength); + const json = JSON.parse(jsonB64); // @ts-ignore @@ -27,9 +29,9 @@ export const downloadAndVerifySigning = (url: string) => new Promise(async if (result) { resolve(json); + } else { + reject('invalid ECDSA signature'); } - - reject('invalid ECDSA signature'); } catch (error) { reject(error); onError({ error }); diff --git a/src/services/Tracker.ts b/src/services/Tracker.ts index 78427c1f..efbec2e2 100644 --- a/src/services/Tracker.ts +++ b/src/services/Tracker.ts @@ -1,59 +1,187 @@ import BackgroundTimer from 'react-native-background-timer'; import AsyncStorage from '@react-native-community/async-storage'; import moment from 'moment'; -import { setExposures } from '../actions/ExposuresActions'; +import geoHash from 'latlon-geohash'; +import { setExposures, updateGeoPastExposure, updateBlePastExposure } from '../actions/ExposuresActions'; import { initLocale } from '../actions/LocaleActions'; -import { UserLocationsDatabase, IntersectionSickDatabase } from '../database/Database'; +import { UserLocationsDatabase, IntersectionSickDatabase, UserClusteredLocationsDatabase } from '../database/Database'; import { registerLocalNotification } from './PushService'; import { downloadAndVerifySigning } from './SigningService'; +import { match } from './BLEService'; import { onError } from './ErrorService'; import config from '../config/config'; import store from '../store'; -import { Exposure, Location, SickJSON } from '../types'; -import { LAST_FETCH_TS } from '../constants/Constants'; +import { Cluster, Exposure, Location, SickJSON, ExposureProperties } from '../types'; +import { LAST_FETCH_TS, DISMISSED_EXPOSURES } from '../constants/Constants'; // tslint:disable-next-line:no-var-requires const haversine = require('haversine'); export const startForegroundTimer = async () => { - await checkSickPeople(); + await checkBLESickPeople(); + await checkGeoSickPeople(); - BackgroundTimer.runBackgroundTimer(async () => { - await checkSickPeople(); - }, config().fetchMilliseconds); + + BackgroundTimer.runBackgroundTimer(backgroundTimerFn, config().fetchMilliseconds); + + await AsyncStorage.setItem( + LAST_FETCH_TS, + JSON.stringify(moment().valueOf()), + ); }; -export const queryDB = async () => { +const backgroundTimerFn = async () => { + await checkBLESickPeople(); + await checkGeoSickPeople(); + + await AsyncStorage.setItem( + LAST_FETCH_TS, + JSON.stringify(moment().valueOf()), + ); +}; + +export const queryDB = async (isClusters: boolean) => { const db = new UserLocationsDatabase(); - const rows = await db.listSamples(); + const cdb = new UserClusteredLocationsDatabase(); + + const rows = isClusters ? await cdb.listClusters() : await db.listSamples(); return rows; }; -export const checkSickPeople = async () => { +export const checkBLESickPeople = async () => { try { - const lastFetch = JSON.parse((await AsyncStorage.getItem(LAST_FETCH_TS)) || '0'); + const lastFetch: number = JSON.parse((await AsyncStorage.getItem(LAST_FETCH_TS)) || '0'); + // check if interval is above the minimum delay + if (moment(lastFetch).add(config().minimumBLEFetchIntervalMin, 'm').isAfter(moment())) { + return; + } + + const bleMatches: any[] = await match(); + + if (bleMatches.length > 0) { + const bleMatchNotUTC = bleMatches.sort((matchA, matchB) => matchB.startContactTimestamp - matchA.startContactTimestamp)[0]; + + // convert ble match to have normal time(it lacks the ms's) + const bleMatch = { + ...bleMatchNotUTC, + startContactTimestamp: parseInt(bleMatchNotUTC.startContactTimestamp.toString()) * 1000, + endContactTimestamp: parseInt(bleMatchNotUTC.endContactTimestamp.toString()) * 1000 + }; + + bleMatch.BLETimestamp = moment(Math.floor((bleMatch.startContactTimestamp + bleMatch.endContactTimestamp) / 2)).startOf('hour').valueOf(); + + const sickDB = new IntersectionSickDatabase(); + + // check if BLe match is not a duplicate + const hasBLTS = await sickDB.containsBLE(bleMatch.BLETimestamp); + + if (!hasBLTS) { + await checkBleAndGeoIntersection(bleMatch, sickDB); + } + } + } catch (error) { + onError({ error }); + } +}; + + +const checkBleAndGeoIntersection = async ({ startContactTimestamp, endContactTimestamp, BLETimestamp }, sickDB) => { + const exposures: Exposure[] = await sickDB.listAllRecords(); + + const overlappingGeoExposure = exposures.find((properties) => { + return properties?.OBJECTID && (Math.min(properties.toTime, endContactTimestamp) - Math.max(properties.fromTime, startContactTimestamp)) > 0; + }); + + if (overlappingGeoExposure) { + const newExposure = await sickDB.MergeBLEIntoSickRecord(overlappingGeoExposure.OBJECTID, BLETimestamp); + + // if user already told us he was not there - alert him by removing exposure from dismissed and resetting it in exposures + if (!overlappingGeoExposure.wasThere) { + // remove exposure from dismissed exposures list + const dismissedExposures = await AsyncStorage.getItem(DISMISSED_EXPOSURES); + const parsedDismissedExposures: number[] = JSON.parse(dismissedExposures ?? ''); + await AsyncStorage.setItem(DISMISSED_EXPOSURES, JSON.stringify(parsedDismissedExposures.filter((num: number) => num !== overlappingGeoExposure.OBJECTID))); + + await onSickPeopleNotify([{ + ...overlappingGeoExposure, + wasThere: true, + BLETimestamp + }]); + } + + // update in past exposures + store().dispatch(updateGeoPastExposure({ + properties: { + ...overlappingGeoExposure, + wasThere: true, + BLETimestamp + } + })); + } else { + const lastExposure = exposures.filter(properties => properties.BLETimestamp).sort((matchA, matchB) => matchB.BLETimestamp - matchA.BLETimestamp)[0]; + // check if latest ble exposure is before the new exposure + if (!lastExposure?.BLETimestamp || moment(BLETimestamp).isAfter(lastExposure.BLETimestamp)) { + // new exposure that doesn't overlap + const sick = await sickDB.addBLESickRecord(BLETimestamp); + + await onSickPeopleNotify([sick]); + } + } +}; - // prevent excessive calls to checkSickPeople - if (lastFetch && moment().valueOf() - lastFetch < config().fetchMilliseconds) { + +export const checkGeoSickPeople = async () => { + try { + const lastFetch: number = JSON.parse((await AsyncStorage.getItem(LAST_FETCH_TS)) || '0'); + // check if interval is above the minimum delay + if (moment(lastFetch).add(config().minimumGeoFetchIntervalMin, 'm').isAfter(moment())) { return; } const responseJson: SickJSON = await downloadAndVerifySigning(config().dataUrl_utc); - const myData = await queryDB(); + const myData = await queryDB(config().intersectWithClusters); const shouldFilterByGeohash = !!responseJson.features[0]?.properties?.geohashFilter; const sickPeopleIntersected: any = shouldFilterByGeohash ? getIntersectingSickRecordsByGeoHash(myData, responseJson) : getIntersectingSickRecords(myData, responseJson); if (sickPeopleIntersected.length > 0) { - await onSickPeopleNotify(sickPeopleIntersected); - } + const dbSick = new IntersectionSickDatabase(); + + const filteredIntersected: Exposure[] = []; + for (const currSick of sickPeopleIntersected) { + const queryResult = await dbSick.containsObjectID( + currSick.properties.Key_Field, + ); + + // exposure is not a duplicate + if (!queryResult) { + const overlappingBLEExposure = await checkGeoAndBleIntersection(currSick, dbSick); + + // BLE was found + if (overlappingBLEExposure?.BLETimestamp) { + // merge geo and ble exposure + await dbSick.MergeGeoIntoSickRecord(currSick, overlappingBLEExposure.BLETimestamp); + // update merged exposure in store + store().dispatch(updateBlePastExposure({ + properties: { + ...currSick.properties, + BLETimestamp: overlappingBLEExposure.BLETimestamp, + wasThere: true + } + })); + } else { + const sick = await dbSick.addSickRecord(currSick); + filteredIntersected.push(sick); + } + } + } - await AsyncStorage.setItem( - LAST_FETCH_TS, - JSON.stringify(moment().valueOf()), - ); + if (filteredIntersected.length > 0) { + await onSickPeopleNotify(filteredIntersected); + } + } } catch (error) { - onError(error); + onError({ error }); } }; @@ -80,35 +208,39 @@ export const getIntersectingSickRecords = (myData: Location[], sickRecordsJson: }); } - return sickPeopleIntersected; + return [...new Set(sickPeopleIntersected)]; }; export const getIntersectingSickRecordsByGeoHash = (myData: Location[], sickRecordsJson: SickJSON) => { - const sickPeopleIntersected: any = []; + const sickPeopleIntersected: any[] = []; if (myData.length === 0) { console.log('Could not find data'); - } else { - const mappedLocations: {[key: string]: Location[]} = {}; - - myData.forEach((location) => { - // fix for geoHashes entered with a "'" from google timeline. - const locationGeohashPrefix = location.geoHash.replace(/[']/g, '').slice(0, sickRecordsJson.features[0].properties.geohashFilter.length); + return sickPeopleIntersected; + } - if (mappedLocations[locationGeohashPrefix]) { - mappedLocations[locationGeohashPrefix].push(location); - } else { - mappedLocations[locationGeohashPrefix] = [location]; - } - }); + const mappedLocations: { [key: string]: Location[] } = {}; - // for each feature in json data - sickRecordsJson.features.map((sickRecord: Exposure) => { - const sickRecordGeohashPrefix = sickRecord.properties.geohashFilter; + myData.forEach((location) => { + // fix for geoHashes entered with a "'" from google timeline. + const locationGeohashPrefix = location.geoHash.replace(/[']/g, '').slice(0, sickRecordsJson.features[0].properties.geohashFilter.length); + if (mappedLocations[locationGeohashPrefix]) { + mappedLocations[locationGeohashPrefix].push(location); + } else { + mappedLocations[locationGeohashPrefix] = [location]; + } + }); + + // for each feature in json data + sickRecordsJson.features.forEach((sickRecord: Exposure) => { + const sickRecordGeohashPrefix = sickRecord.properties.geohashFilter; + // get 8 neighbors of geolocation + const neighborsArr = [sickRecordGeohashPrefix, ...Object.values(geoHash.neighbours(sickRecordGeohashPrefix))]; + neighborsArr.forEach((geo) => { // for each raw in user data - if (mappedLocations[sickRecordGeohashPrefix]) { - mappedLocations[sickRecordGeohashPrefix].reverse().forEach((userRecord: Location) => { + if (mappedLocations[geo]) { + mappedLocations[geo].forEach((userRecord: Location) => { if (isTimeOverlapping(userRecord, sickRecord) && isSpaceOverlapping(userRecord, sickRecord)) { // add sick people you intersects sickRecord.properties.fromTime_utc = Math.max(userRecord.startTime, sickRecord.properties.fromTime_utc); @@ -118,13 +250,16 @@ export const getIntersectingSickRecordsByGeoHash = (myData: Location[], sickReco }); } }); - } + }); - return sickPeopleIntersected; + const sickPeopleIntersectedSet = new Set(sickPeopleIntersected); + // sort array from the most early to last + return [...sickPeopleIntersectedSet].sort((intersectA, intersectB) => intersectB.fromTime_utc - intersectA.fromTime_utc); }; + const checkMillisecondsDiff = (to: number, from: number) => { - return to - from > config().intersectMilliseconds; + return to - from > (config().intersectWithClusters ? config().intersectMillisecondsWithCluster : config().intersectMilliseconds); }; export const isTimeOverlapping = (userRecord: Location, sickRecord: Exposure) => { @@ -134,10 +269,10 @@ export const isTimeOverlapping = (userRecord: Location, sickRecord: Exposure) => ); }; -export const isSpaceOverlapping = ({ lat, long }: Location, { properties: { radius }, geometry: { coordinates } }: Exposure) => { +export const isSpaceOverlapping = (clusterOrLocation: Location | Cluster, { properties: { radius }, geometry: { coordinates } }: Exposure) => { const start = { - latitude: lat, - longitude: long, + latitude: clusterOrLocation.lat, + longitude: clusterOrLocation.long, }; const end = { @@ -145,42 +280,36 @@ export const isSpaceOverlapping = ({ lat, long }: Location, { properties: { radi longitude: coordinates[config().sickGeometryLongIndex], }; - return haversine(start, end, { threshold: radius || config().meterRadius, unit: config().bufferUnits }); + return haversine(start, end, { threshold: (radius || config().meterRadius) + (config().intersectWithClusters ? clusterOrLocation.radius : 0), unit: config().bufferUnits }); }; -export const onSickPeopleNotify = async (sickPeopleIntersected: Exposure[]) => { - try { - const dbSick = new IntersectionSickDatabase(); - - const exposuresToUpdate = []; +const checkGeoAndBleIntersection = async (currSick, dbSick) => { + const exposures: ExposureProperties[] = await dbSick.listAllRecords(); + return exposures.find((exposure) => { + // if its a geo exposure or exposure doesn't have ble time stamp + if (exposure.OBJECTID !== null || !exposure.BLETimestamp) return false; - for (const currSick of sickPeopleIntersected) { - const queryResult = await dbSick.containsObjectID( - currSick.properties.Key_Field, - ); + const bleStart = moment.utc(exposure.BLETimestamp); + const bleEnd = bleStart.startOf('hour').add(1, 'hours'); - if (!queryResult) { - currSick.properties.fromTime = currSick.properties.fromTime_utc; - currSick.properties.toTime = currSick.properties.toTime_utc; - currSick.properties.OBJECTID = currSick.properties.Key_Field; - currSick.properties.lat = currSick.geometry.coordinates[config().sickGeometryLatIndex]; - currSick.properties.long = currSick.geometry.coordinates[config().sickGeometryLongIndex]; - - exposuresToUpdate.push(currSick); - await dbSick.addSickRecord(currSick); - } - } + return (Math.min(currSick.properties.toTime_utc, bleEnd.valueOf()) - Math.max(currSick.properties.fromTime_utc, bleStart.valueOf())) > 0; + }); +}; - store().dispatch(setExposures(exposuresToUpdate)); +export const onSickPeopleNotify = async (sickPeopleIntersected: ExposureProperties[]) => { + try { + if (sickPeopleIntersected.length > 0) { + await store().dispatch(setExposures(sickPeopleIntersected.map((exposure: any) => ({ properties: { ...exposure } })))); - const { locale, notificationData } = await store().dispatch(initLocale()); + const { locale, notificationData } = await store().dispatch(initLocale()); - exposuresToUpdate.length > 0 && await registerLocalNotification( - notificationData.sickMessage[locale].title, - notificationData.sickMessage[locale].body, - notificationData.sickMessage.duration, - 'ms', - ); + await registerLocalNotification( + notificationData.sickMessage[locale].title, + notificationData.sickMessage[locale].body, + notificationData.sickMessage.duration, + 'ms', + ); + } } catch (error) { onError({ error }); } diff --git a/src/types/index.ts b/src/types/index.ts index 4ad03195..811aeef0 100755 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,4 +1,5 @@ import { Region } from 'react-native-maps'; +import moment from 'moment'; import { ExternalUrls, Languages, LocaleData, NotificationData, Strings } from '../locale/LocaleData'; export interface Config { @@ -10,8 +11,16 @@ export interface Config { versionsUrl: string, dataShareUrl: string, fetchMilliseconds: number, + minimumBLEFetchIntervalMin: number, + minimumGeoFetchIntervalMin: number, meterRadius: number, + clusterRadius: number, + jitterValue: number, + jitterUnits: moment.unitOfTime.Diff, intersectMilliseconds: number, + intersectMillisecondsWithCluster: number, + intersectWithClusters: boolean, + dataShareClusters: boolean, bufferUnits: string, sickGeometryLongIndex: number, sickGeometryLatIndex: number, @@ -56,7 +65,9 @@ export interface ExposureProperties { radius?: number, geohashFilter: string, lat?: number, - long?: number + long?: number, + wasThere?: boolean, + BLETimestamp?: number } export interface ExposureGeometry { @@ -66,7 +77,7 @@ export interface ExposureGeometry { } export interface Exposure { - properties:ExposureProperties, + properties: ExposureProperties, geometry: ExposureGeometry } @@ -105,6 +116,7 @@ export interface Location { accuracy: number, lat: number, startTime: number, + radius: number, long: number } @@ -157,3 +169,13 @@ export interface LocaleReducer { locale: string, localeData: LocaleData } + +export interface Cluster { + lat: number, + long: number, + startTime: number, + endTime: number, + geoHash: string, + radius: number, + size: number +} diff --git a/yarn.lock b/yarn.lock index e1aca496..a7f8c59e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -29,40 +29,19 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.0.0", "@babel/core@^7.1.0": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.7.tgz#b69017d221ccdeb203145ae9da269d72cf102f3b" - integrity sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA== +"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376" + integrity sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.7" - "@babel/helpers" "^7.8.4" - "@babel/parser" "^7.8.7" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.7" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.0" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.7.5": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" - integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" + "@babel/generator" "^7.9.6" "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.0" - "@babel/parser" "^7.9.0" + "@babel/helpers" "^7.9.6" + "@babel/parser" "^7.9.6" "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" @@ -72,22 +51,12 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.4.0", "@babel/generator@^7.6.2", "@babel/generator@^7.8.6", "@babel/generator@^7.8.7": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.8.tgz#cdcd58caab730834cee9eeadb729e833b625da3e" - integrity sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg== - dependencies: - "@babel/types" "^7.8.7" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/generator@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce" - integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA== +"@babel/generator@^7.0.0", "@babel/generator@^7.4.0", "@babel/generator@^7.6.2", "@babel/generator@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43" + integrity sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ== dependencies: - "@babel/types" "^7.9.0" + "@babel/types" "^7.9.6" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" @@ -107,33 +76,33 @@ "@babel/helper-explode-assignable-expression" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-builder-react-jsx@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.3.tgz#dee98d7d79cc1f003d80b76fe01c7f8945665ff6" - integrity sha512-JT8mfnpTkKNCboTqZsQTdGo3l3Ik3l7QIt9hh0O9DYiwVel37VoJpILKM4YFbP2euF32nkQSb+F9cUk9b7DDXQ== +"@babel/helper-builder-react-jsx-experimental@^7.9.0": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.5.tgz#0b4b3e04e6123f03b404ca4dfd6528fe6bb92fe3" + integrity sha512-HAagjAC93tk748jcXpZ7oYRZH485RCq/+yEv9SIWezHRPv9moZArTnkUNciUNzvwHUABmiWKlcxJvMcu59UwTg== dependencies: - "@babel/types" "^7.8.3" - esutils "^2.0.0" + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-module-imports" "^7.8.3" + "@babel/types" "^7.9.5" -"@babel/helper-call-delegate@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.7.tgz#28a279c2e6c622a6233da548127f980751324cab" - integrity sha512-doAA5LAKhsFCR0LAFIf+r2RSMmC+m8f/oQ+URnUET/rWeEzC0yTRmAGyWkD4sSu3xwbS7MYQ2u+xlt1V5R56KQ== +"@babel/helper-builder-react-jsx@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz#16bf391990b57732700a3278d4d9a81231ea8d32" + integrity sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw== dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.7" + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/types" "^7.9.0" -"@babel/helper-create-class-features-plugin@^7.8.3": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz#243a5b46e2f8f0f674dc1387631eb6b28b851de0" - integrity sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg== +"@babel/helper-create-class-features-plugin@^7.8.3", "@babel/helper-create-class-features-plugin@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.6.tgz#965c8b0a9f051801fd9d3b372ca0ccf200a90897" + integrity sha512-6N9IeuyHvMBRyjNYOMJHrhwtu4WJMrYf8hVbEHD3pbbbmNOk1kmXSQs7bA4dYDUaIx4ZEzdnvo6NwC3WHd/Qow== dependencies: - "@babel/helper-function-name" "^7.8.3" + "@babel/helper-function-name" "^7.9.5" "@babel/helper-member-expression-to-functions" "^7.8.3" "@babel/helper-optimise-call-expression" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-replace-supers" "^7.9.6" "@babel/helper-split-export-declaration" "^7.8.3" "@babel/helper-create-regexp-features-plugin@^7.8.3": @@ -162,14 +131,14 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== +"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" + integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== dependencies: "@babel/helper-get-function-arity" "^7.8.3" "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/types" "^7.9.5" "@babel/helper-get-function-arity@^7.8.3": version "7.8.3" @@ -178,13 +147,6 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-hoist-variables@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" - integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== - dependencies: - "@babel/types" "^7.8.3" - "@babel/helper-member-expression-to-functions@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" @@ -199,19 +161,6 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-module-transforms@^7.8.3": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz#6a13b5eecadc35692047073a64e42977b97654a4" - integrity sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.8.6" - lodash "^4.17.13" - "@babel/helper-module-transforms@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" @@ -255,15 +204,15 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" - integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== +"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6", "@babel/helper-replace-supers@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444" + integrity sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA== dependencies: "@babel/helper-member-expression-to-functions" "^7.8.3" "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.6" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" "@babel/helper-simple-access@^7.8.3": version "7.8.3" @@ -280,10 +229,10 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-validator-identifier@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" - integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== +"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" + integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== "@babel/helper-wrap-function@^7.8.3": version "7.8.3" @@ -295,42 +244,28 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helpers@^7.6.2", "@babel/helpers@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73" - integrity sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w== +"@babel/helpers@^7.6.2", "@babel/helpers@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580" + integrity sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw== dependencies: "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.4" - "@babel/types" "^7.8.3" - -"@babel/helpers@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" - integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" "@babel/highlight@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" - integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" + integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== dependencies: + "@babel/helper-validator-identifier" "^7.9.0" chalk "^2.0.0" - esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.6.2", "@babel/parser@^7.8.6", "@babel/parser@^7.8.7": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.8.tgz#4c3b7ce36db37e0629be1f0d50a571d2f86f6cd4" - integrity sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA== - -"@babel/parser@^7.7.5", "@babel/parser@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" - integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.6.2", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7" + integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q== "@babel/plugin-external-helpers@^7.0.0": version "7.8.3" @@ -364,12 +299,13 @@ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" "@babel/plugin-proposal-object-rest-spread@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz#eb5ae366118ddca67bed583b53d7554cad9951bb" - integrity sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA== + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz#7a093586fcb18b08266eb1a7177da671ac575b63" + integrity sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.9.5" "@babel/plugin-proposal-optional-catch-binding@^7.0.0": version "7.8.3" @@ -380,21 +316,28 @@ "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" "@babel/plugin-proposal-optional-chaining@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz#ae10b3214cb25f7adb1f3bc87ba42ca10b7e2543" - integrity sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" + integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-syntax-bigint@^7.0.0": +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.0.0": +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz#6cb933a8872c8d359bfde69bbeaae5162fd1e8f7" integrity sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg== @@ -422,6 +365,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + "@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" @@ -429,28 +379,42 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz#3995d7d7ffff432f6ddc742b47e730c054599897" + integrity sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" + integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": +"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-chaining@^7.8.0": +"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== @@ -496,13 +460,13 @@ lodash "^4.17.13" "@babel/plugin-transform-classes@^7.0.0": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.6.tgz#77534447a477cbe5995ae4aee3e39fbc8090c46d" - integrity sha512-k9r8qRay/R6v5aWZkrEclEhKO6mc1CCQr2dLsVHBmOQiMpN6I2bpjX3vgnldUWeEI1GHVNByULVxZ4BdP4Hmdg== + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c" + integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== dependencies: "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-define-map" "^7.8.3" - "@babel/helper-function-name" "^7.8.3" + "@babel/helper-function-name" "^7.9.5" "@babel/helper-optimise-call-expression" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.6" @@ -517,9 +481,9 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-destructuring@^7.0.0": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz#fadb2bc8e90ccaf5658de6f8d4d22ff6272a2f4b" - integrity sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ== + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50" + integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" @@ -532,17 +496,17 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-flow-strip-types@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.8.3.tgz#da705a655466b2a9b36046b57bf0cbcd53551bd4" - integrity sha512-g/6WTWG/xbdd2exBBzMfygjX/zw4eyNC4X8pRaq7aRHRoDUCzAIu3kGYIXviOv8BjCuWm8vDBwjHcjiRNgXrPA== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz#8a3538aa40434e000b8f44a3c5c9ac7229bd2392" + integrity sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-flow" "^7.8.3" "@babel/plugin-transform-for-of@^7.0.0": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.6.tgz#a051bd1b402c61af97a27ff51b468321c7c2a085" - integrity sha512-M0pw4/1/KI5WAxPsdcUL/w2LJ7o89YHN3yLkzNjg7Yl15GlVGgzHyCU+FMeAxevHGsLVmUqbirlUIKTafPmzdw== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" + integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== dependencies: "@babel/helper-plugin-utils" "^7.8.3" @@ -569,14 +533,14 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-modules-commonjs@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5" - integrity sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg== + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz#64b7474a4279ee588cacd1906695ca721687c277" + integrity sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ== dependencies: - "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-simple-access" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-object-assign@^7.0.0": version "7.8.3" @@ -593,12 +557,11 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.3" -"@babel/plugin-transform-parameters@^7.0.0": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.8.tgz#0381de466c85d5404565243660c4496459525daf" - integrity sha512-hC4Ld/Ulpf1psQciWWwdnUspQoQco2bMzSrwU6TmzRlvoYQe4rQFy9vnCZDTlVeCQj0JPfL+1RX0V8hCJvkgBA== +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795" + integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== dependencies: - "@babel/helper-call-delegate" "^7.8.7" "@babel/helper-get-function-arity" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" @@ -617,19 +580,20 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz#951e75a8af47f9f120db731be095d2b2c34920e0" - integrity sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz#89ef93025240dd5d17d3122294a093e5e0183de0" + integrity sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-jsx" "^7.8.3" "@babel/plugin-transform-react-jsx@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz#4220349c0390fdefa505365f68c103562ab2fc4a" - integrity sha512-r0h+mUiyL595ikykci+fbwm9YzmuOrUBi0b+FDIKmi3fPQyFokWVEMJnRWHJPPQEjyFJyna9WZC6Viv6UHSv1g== + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz#86f576c8540bd06d0e95e0b61ea76d55f6cbd03f" + integrity sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw== dependencies: - "@babel/helper-builder-react-jsx" "^7.8.3" + "@babel/helper-builder-react-jsx" "^7.9.0" + "@babel/helper-builder-react-jsx-experimental" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-jsx" "^7.8.3" @@ -641,9 +605,9 @@ regenerator-transform "^0.14.2" "@babel/plugin-transform-runtime@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.8.3.tgz#c0153bc0a5375ebc1f1591cb7eea223adea9f169" - integrity sha512-/vqUt5Yh+cgPZXXjmaG9NT8aVfThKk7G4OqkVhrXqwsC5soMn/qTCxs36rZ2QFhpfTJcjw4SNDIZ4RUb8OL4jQ== + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.6.tgz#3ba804438ad0d880a17bca5eaa0cdf1edeedb2fd" + integrity sha512-qcmiECD0mYOjOIt8YHNsAP1SxPooC/rDmfmiSK9BNY72EitdSc7l44WTEklaWuFtbOEBjNhWWyph/kOImbNJ4w== dependencies: "@babel/helper-module-imports" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" @@ -681,11 +645,11 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-typescript@^7.0.0": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.8.7.tgz#48bccff331108a7b3a28c3a4adc89e036dc3efda" - integrity sha512-7O0UsPQVNKqpHeHLpfvOG4uXmlw+MOxYvUv6Otc9uH5SYMIxvF6eBdjkWvC3f9G+VXe0RsNExyAQBeTRug/wqQ== + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.9.6.tgz#2248971416a506fc78278fc0c0ea3179224af1e9" + integrity sha512-8OvsRdvpt3Iesf2qsAn+YdlwAJD7zJ+vhFZmDCa4b8dTp7MmHtKk5FF2mCsGxjZwuwsy/yIIay/nLmxST1ctVQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-create-class-features-plugin" "^7.9.6" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-typescript" "^7.8.3" @@ -698,9 +662,9 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/register@^7.0.0": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.8.6.tgz#a1066aa6168a73a70c35ef28cc5865ccc087ea69" - integrity sha512-7IDO93fuRsbyml7bAafBQb3RcBGlCpU4hh5wADA2LJEEcYk92WkwFZ0pHyIi2fb5Auoz1714abETdZKCOxN0CQ== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.9.0.tgz#02464ede57548bddbb5e9f705d263b7c3f43d48b" + integrity sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q== dependencies: find-cache-dir "^2.0.0" lodash "^4.17.13" @@ -716,13 +680,13 @@ regenerator-runtime "^0.13.2" "@babel/runtime@^7.0.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.7.tgz#8fefce9802db54881ba59f90bb28719b4996324d" - integrity sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg== + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" + integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.0.0", "@babel/template@^7.4.0", "@babel/template@^7.6.0", "@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": +"@babel/template@^7.0.0", "@babel/template@^7.3.3", "@babel/template@^7.4.0", "@babel/template@^7.6.0", "@babel/template@^7.8.3", "@babel/template@^7.8.6": version "7.8.6" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== @@ -731,51 +695,27 @@ "@babel/parser" "^7.8.6" "@babel/types" "^7.8.6" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.6.2", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4", "@babel/traverse@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.6.tgz#acfe0c64e1cd991b3e32eae813a6eb564954b5ff" - integrity sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.6.2", "@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442" + integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.6" - "@babel/helper-function-name" "^7.8.3" + "@babel/generator" "^7.9.6" + "@babel/helper-function-name" "^7.9.5" "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" + "@babel/parser" "^7.9.6" + "@babel/types" "^7.9.6" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/traverse@^7.7.4", "@babel/traverse@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" - integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.6.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.7.tgz#1fc9729e1acbb2337d5b6977a63979b4819f5d1d" - integrity sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw== - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" - integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== +"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.6.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" + integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA== dependencies: - "@babel/helper-validator-identifier" "^7.9.0" + "@babel/helper-validator-identifier" "^7.9.5" lodash "^4.17.13" to-fast-properties "^2.0.0" @@ -848,43 +788,44 @@ chalk "^2.0.1" slash "^2.0.0" -"@jest/console@^25.2.3": - version "25.2.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.2.3.tgz#38ac19b916ff61457173799239472659e1a67c39" - integrity sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ== +"@jest/console@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.5.0.tgz#770800799d510f37329c508a9edd0b7b447d9abb" + integrity sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw== dependencies: - "@jest/source-map" "^25.2.1" + "@jest/types" "^25.5.0" chalk "^3.0.0" - jest-util "^25.2.3" + jest-message-util "^25.5.0" + jest-util "^25.5.0" slash "^3.0.0" -"@jest/core@^25.2.4": - version "25.2.4" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.2.4.tgz#382ef80369d3311f1df79db1ee19e958ae95cdad" - integrity sha512-WcWYShl0Bqfcb32oXtjwbiR78D/djhMdJW+ulp4/bmHgeODcsieqUJfUH+kEv8M7VNV77E6jds5aA+WuGh1nmg== +"@jest/core@^25.5.4": + version "25.5.4" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.5.4.tgz#3ef7412f7339210f003cdf36646bbca786efe7b4" + integrity sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA== dependencies: - "@jest/console" "^25.2.3" - "@jest/reporters" "^25.2.4" - "@jest/test-result" "^25.2.4" - "@jest/transform" "^25.2.4" - "@jest/types" "^25.2.3" + "@jest/console" "^25.5.0" + "@jest/reporters" "^25.5.1" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" ansi-escapes "^4.2.1" chalk "^3.0.0" exit "^0.1.2" - graceful-fs "^4.2.3" - jest-changed-files "^25.2.3" - jest-config "^25.2.4" - jest-haste-map "^25.2.3" - jest-message-util "^25.2.4" - jest-regex-util "^25.2.1" - jest-resolve "^25.2.3" - jest-resolve-dependencies "^25.2.4" - jest-runner "^25.2.4" - jest-runtime "^25.2.4" - jest-snapshot "^25.2.4" - jest-util "^25.2.3" - jest-validate "^25.2.3" - jest-watcher "^25.2.4" + graceful-fs "^4.2.4" + jest-changed-files "^25.5.0" + jest-config "^25.5.4" + jest-haste-map "^25.5.1" + jest-message-util "^25.5.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-resolve-dependencies "^25.5.4" + jest-runner "^25.5.4" + jest-runtime "^25.5.4" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" + jest-watcher "^25.5.0" micromatch "^4.0.2" p-each-series "^2.1.0" realpath-native "^2.0.0" @@ -892,14 +833,14 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^25.2.4": - version "25.2.4" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.2.4.tgz#74f4d8dd87b427434d0b822cde37bc0e78f3e28b" - integrity sha512-wA4xlhD19/gukkDpJ5HQsTle0pgnzI5qMFEjw267lpTDC8d9N7Ihqr5pI+l0p8Qn1SQhai+glSqxrGdzKy4jxw== +"@jest/environment@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.5.0.tgz#aa33b0c21a716c65686638e7ef816c0e3a0c7b37" + integrity sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA== dependencies: - "@jest/fake-timers" "^25.2.4" - "@jest/types" "^25.2.3" - jest-mock "^25.2.3" + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" "@jest/fake-timers@^24.9.0": version "24.9.0" @@ -910,45 +851,55 @@ jest-message-util "^24.9.0" jest-mock "^24.9.0" -"@jest/fake-timers@^25.2.4": - version "25.2.4" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.2.4.tgz#6821b6edde74fda2a42467ae92cc93095d4c9527" - integrity sha512-oC1TJiwfMcBttVN7Wz+VZnqEAgYTiEMu0QLOXpypR89nab0uCB31zm/QeBZddhSstn20qe3yqOXygp6OwvKT/Q== +"@jest/fake-timers@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.5.0.tgz#46352e00533c024c90c2bc2ad9f2959f7f114185" + integrity sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ== dependencies: - "@jest/types" "^25.2.3" - jest-message-util "^25.2.4" - jest-mock "^25.2.3" - jest-util "^25.2.3" + "@jest/types" "^25.5.0" + jest-message-util "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" lolex "^5.0.0" -"@jest/reporters@^25.2.4": - version "25.2.4" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.2.4.tgz#aa01c20aab217150d3a6080d5c98ce0bf34b17ed" - integrity sha512-VHbLxM03jCc+bTLOluW/IqHR2G0Cl0iATwIQbuZtIUast8IXO4fD0oy4jpVGpG5b20S6REA8U3BaQoCW/CeVNQ== +"@jest/globals@^25.5.2": + version "25.5.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-25.5.2.tgz#5e45e9de8d228716af3257eeb3991cc2e162ca88" + integrity sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/types" "^25.5.0" + expect "^25.5.0" + +"@jest/reporters@^25.5.1": + version "25.5.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.5.1.tgz#cb686bcc680f664c2dbaf7ed873e93aa6811538b" + integrity sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^25.2.3" - "@jest/test-result" "^25.2.4" - "@jest/transform" "^25.2.4" - "@jest/types" "^25.2.3" + "@jest/console" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" chalk "^3.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.2" + graceful-fs "^4.2.4" istanbul-lib-coverage "^3.0.0" istanbul-lib-instrument "^4.0.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.0" - jest-haste-map "^25.2.3" - jest-resolve "^25.2.3" - jest-util "^25.2.3" - jest-worker "^25.2.1" + istanbul-reports "^3.0.2" + jest-haste-map "^25.5.1" + jest-resolve "^25.5.1" + jest-util "^25.5.0" + jest-worker "^25.5.0" slash "^3.0.0" source-map "^0.6.0" string-length "^3.1.0" terminal-link "^2.0.0" - v8-to-istanbul "^4.0.1" + v8-to-istanbul "^4.1.3" optionalDependencies: node-notifier "^6.0.0" @@ -961,13 +912,13 @@ graceful-fs "^4.1.15" source-map "^0.6.0" -"@jest/source-map@^25.2.1": - version "25.2.1" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.2.1.tgz#b62ecf8ae76170b08eff8859b56eb7576df34ab8" - integrity sha512-PgScGJm1U27+9Te/cxP4oUFqJ2PX6NhBL2a6unQ7yafCgs8k02c0LSyjSIx/ao0AwcAdCczfAPDf5lJ7zoB/7A== +"@jest/source-map@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.5.0.tgz#df5c20d6050aa292c2c6d3f0d2c7606af315bd1b" + integrity sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ== dependencies: callsites "^3.0.0" - graceful-fs "^4.2.3" + graceful-fs "^4.2.4" source-map "^0.6.0" "@jest/test-result@^24.9.0": @@ -979,26 +930,26 @@ "@jest/types" "^24.9.0" "@types/istanbul-lib-coverage" "^2.0.0" -"@jest/test-result@^25.2.4": - version "25.2.4" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.2.4.tgz#8fc9eac58e82eb2a82e4058e68c3814f98f59cf5" - integrity sha512-AI7eUy+q2lVhFnaibDFg68NGkrxVWZdD6KBr9Hm6EvN0oAe7GxpEwEavgPfNHQjU2mi6g+NsFn/6QPgTUwM1qg== +"@jest/test-result@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.5.0.tgz#139a043230cdeffe9ba2d8341b27f2efc77ce87c" + integrity sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A== dependencies: - "@jest/console" "^25.2.3" - "@jest/transform" "^25.2.4" - "@jest/types" "^25.2.3" + "@jest/console" "^25.5.0" + "@jest/types" "^25.5.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^25.2.4": - version "25.2.4" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.2.4.tgz#28364aeddec140c696324114f63570f3de536c87" - integrity sha512-TEZm/Rkd6YgskdpTJdYLBtu6Gc11tfWPuSpatq0duH77ekjU8dpqX2zkPdY/ayuHxztV5LTJoV5BLtI9mZfXew== +"@jest/test-sequencer@^25.5.4": + version "25.5.4" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz#9b4e685b36954c38d0f052e596d28161bdc8b737" + integrity sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA== dependencies: - "@jest/test-result" "^25.2.4" - jest-haste-map "^25.2.3" - jest-runner "^25.2.4" - jest-runtime "^25.2.4" + "@jest/test-result" "^25.5.0" + graceful-fs "^4.2.4" + jest-haste-map "^25.5.1" + jest-runner "^25.5.4" + jest-runtime "^25.5.4" "@jest/transform@^24.9.0": version "24.9.0" @@ -1022,21 +973,21 @@ source-map "^0.6.1" write-file-atomic "2.4.1" -"@jest/transform@^25.2.4": - version "25.2.4" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.2.4.tgz#34336f37f13f62f7d1f5b93d5d150ba9eb3e11b9" - integrity sha512-6eRigvb+G6bs4kW5j1/y8wu4nCrmVuIe0epPBbiWaYlwawJ8yi1EIyK3d/btDqmBpN5GpN4YhR6iPPnDmkYdTA== +"@jest/transform@^25.5.1": + version "25.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.5.1.tgz#0469ddc17699dd2bf985db55fa0fb9309f5c2db3" + integrity sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^25.2.3" + "@jest/types" "^25.5.0" babel-plugin-istanbul "^6.0.0" chalk "^3.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.3" - jest-haste-map "^25.2.3" - jest-regex-util "^25.2.1" - jest-util "^25.2.3" + graceful-fs "^4.2.4" + jest-haste-map "^25.5.1" + jest-regex-util "^25.2.6" + jest-util "^25.5.0" micromatch "^4.0.2" pirates "^4.0.1" realpath-native "^2.0.0" @@ -1053,20 +1004,10 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" -"@jest/types@^25.1.0": - version "25.1.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.1.0.tgz#b26831916f0d7c381e11dbb5e103a72aed1b4395" - integrity sha512-VpOtt7tCrgvamWZh1reVsGADujKigBUFTi19mlRjqEGsE8qH4r3s+skY33dNdXOwyZIvuftZ5tqdF1IgsMejMA== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^15.0.0" - chalk "^3.0.0" - -"@jest/types@^25.2.3": - version "25.2.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.2.3.tgz#035c4fb94e2da472f359ff9a211915d59987f6b6" - integrity sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ== +"@jest/types@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" + integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^1.1.1" @@ -1241,9 +1182,9 @@ ws "^1.1.0" "@react-native-community/cookies@^2.0.8": - version "2.0.8" - resolved "https://registry.yarnpkg.com/@react-native-community/cookies/-/cookies-2.0.8.tgz#baedf268fc32d463d3314f2d9f4b50c977c8f1d2" - integrity sha512-uIb+VBMoOz/zlh2FxZ1FEXc+/RpgD+YrF8XG7jvQcJu3GimsD8mf6hxfjHUDnFonilQgL0jDB2biTR5rF1XGbg== + version "2.0.9" + resolved "https://registry.yarnpkg.com/@react-native-community/cookies/-/cookies-2.0.9.tgz#97bb4f431ecf1307be5807ade47b991a99f224d3" + integrity sha512-gZvnLQjkpZX//4/CIOX4lOFdfOT2gQi/Ov1t+K6D2KZ0GyqY1CQ9xe0F1NsRSIGciTUkxOPTeway/LRWgwHsxQ== dependencies: invariant "^2.2.4" @@ -1265,9 +1206,9 @@ prettier "1.16.4" "@react-native-community/masked-view@^0.1.8": - version "0.1.8" - resolved "https://registry.yarnpkg.com/@react-native-community/masked-view/-/masked-view-0.1.8.tgz#05c9c800f258274a34abd584596464b86fbd92dc" - integrity sha512-y+mnsPPC4Etzs/waHIC9Pj3DwhVQGqVru0n1KSqHZc0moKNAZ0NRBWYVat9awLIjjVrnepUva/+/bi31T4hR4A== + version "0.1.10" + resolved "https://registry.yarnpkg.com/@react-native-community/masked-view/-/masked-view-0.1.10.tgz#5dda643e19e587793bc2034dd9bf7398ad43d401" + integrity sha512-rk4sWFsmtOw8oyx8SD3KSvawwaK7gRBSEIy2TAwURyGt+3TizssXP1r8nx3zY+R7v2vYYHXZ+k2/GULAT/bcaQ== "@react-native-community/netinfo@5.6.2": version "5.6.2" @@ -1283,16 +1224,16 @@ react-native-iphone-x-helper "^1.2.1" "@react-navigation/core@^5.1.2": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-5.2.1.tgz#8fae1b40b3fbaeb70c6182e00899a2e4d281a12f" - integrity sha512-fRezZDtVFMfPtCkFUXFZlhrtECXuuFE9t2LnSyZdm3hZXBf7Gp6KvcMrlzAVXC/n8YCDSqhtDYz7EbF2gX6DJg== + version "5.5.2" + resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-5.5.2.tgz#14e844287225fe7a41b471262f282ecd2d0404ea" + integrity sha512-nYPDpwPVZ3+S8YSj5ktMKgxQq9B298An4nfDhIobLNqMifvTXC15kWTPbMAWSYdwZr5tbw7SniP6+jXFZgfIlQ== dependencies: - "@react-navigation/routers" "^5.1.0" - escape-string-regexp "^2.0.0" - query-string "^6.10.1" - react-is "^16.12.0" - shortid "^2.2.15" - use-subscription "^1.3.0" + "@react-navigation/routers" "^5.4.4" + escape-string-regexp "^4.0.0" + nanoid "^3.1.5" + query-string "^6.12.1" + react-is "^16.13.0" + use-subscription "^1.4.0" "@react-navigation/drawer@5.4.0": version "5.4.0" @@ -1309,13 +1250,20 @@ dependencies: "@react-navigation/core" "^5.1.2" -"@react-navigation/routers@^5.1.0": +"@react-navigation/routers@5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-5.1.0.tgz#ec741e734d501b7024120bef3d109b17f69a7b6b" integrity sha512-sY+eCIcWheflQIfGMSnWomnjP8d+7ZPmH1dKZ1pRezTqLWVlCFntQfQSr2FfM5LLVWty4gZ/K9D+o6UT4ntc3w== dependencies: shortid "^2.2.15" +"@react-navigation/routers@^5.4.4": + version "5.4.4" + resolved "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-5.4.4.tgz#3b5e1a55edb73a506a82db59081ad434c0ce1aab" + integrity sha512-Q8ZIubVYc1569JOs2oMWbhNXBNzZHvRfP5cEZ6/ksj9cPF7DkwOXsAdF0b+Oe0ei0f7OaK9LTRmfiNdtAPWVzw== + dependencies: + nanoid "^3.1.5" + "@react-navigation/stack@5.0.3": version "5.0.3" resolved "https://registry.yarnpkg.com/@react-navigation/stack/-/stack-5.0.3.tgz#e3d0f27b83a6da50da98846de4cd180647597546" @@ -1333,25 +1281,25 @@ redux-persist "^4.6.0" "@sinonjs/commons@^1.7.0": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.1.tgz#da5fd19a5f71177a53778073978873964f49acf1" - integrity sha512-Debi3Baff1Qu1Unc3mjJ96MgpbwTn43S1+9yJ0llWygPwDNu2aaWBD6yc9y/Z8XDRNhx7U+u2UDg2OGQXkclUQ== + version "1.7.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.2.tgz#505f55c74e0272b43f6c52d81946bed7058fc0e2" + integrity sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw== dependencies: type-detect "4.0.8" "@tmcw/togeojson@https://github.com/tmcw/togeojson.git": version "4.0.0" - resolved "https://github.com/tmcw/togeojson.git#47a726b69bd8b7f0eb4adcb27c021136e86afdae" + resolved "https://github.com/tmcw/togeojson.git#cdae0c2243f536a9c37e15e434e00f77a53102f4" "@types/async-lock@1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/async-lock/-/async-lock-1.1.1.tgz#81f218213bebcc5f740efe9648272c774a2e4b4b" integrity sha512-TU1X8jmAU2BjwKryBFV/GDezz7Ge0xu9ZuYC7dy6wKj4hnL0JcxeseCOr/G2JkGylff6hdUBrR+Ee5ApAQeU5g== -"@types/babel__core@^7.1.0": - version "7.1.6" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.6.tgz#16ff42a5ae203c9af1c6e190ed1f30f83207b610" - integrity sha512-tTnhWszAqvXnhW7m5jQU9PomXSiKXk2sFxpahXvI20SZKu9ylPi8WtIxueZ6ehDWikPT0jeFujMj3X4ZHuf3Tg== +"@types/babel__core@^7.1.0", "@types/babel__core@^7.1.7": + version "7.1.7" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" + integrity sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1375,9 +1323,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.9.tgz#be82fab304b141c3eee81a4ce3b034d0eba1590a" - integrity sha512-jEFQ8L1tuvPjOI8lnpaf73oCJe+aoxL6ygqSy6c8LcW98zaC+4mzWuQIRCEvKeCOu+lbqdXcg4Uqmm1S8AP1tw== + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.11.tgz#1ae3010e8bf8851d324878b42acec71986486d18" + integrity sha512-ddHK5icION5U6q11+tV2f9Mo6CZVuT8GJKld2q9LqHSZbvLbH34Kcu2yFGckZut453+eQU6btIA3RihmnRgI+Q== dependencies: "@babel/types" "^7.3.0" @@ -1391,6 +1339,13 @@ resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== +"@types/graceful-fs@^4.1.2": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" + integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== + dependencies: + "@types/node" "*" + "@types/hoist-non-react-statics@^3.3.0": version "3.3.1" resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" @@ -1420,12 +1375,12 @@ "@types/istanbul-lib-report" "*" "@types/jest@^25.1.4": - version "25.1.4" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.1.4.tgz#9e9f1e59dda86d3fd56afce71d1ea1b331f6f760" - integrity sha512-QDDY2uNAhCV7TMCITrxz+MRk1EizcsevzfeS6LykIlq2V1E5oO4wXG8V2ZEd9w7Snxeeagk46YbMgZ8ESHx3sw== + version "25.2.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.2.1.tgz#9544cd438607955381c1bdbdb97767a249297db5" + integrity sha512-msra1bCaAeEdkSyA0CZ6gW1ukMIvZ5YoJkdXw/qhQdsuuDlFTcEUrUw8CLCPt2rVRUfXlClVvK2gvPs9IokZaA== dependencies: - jest-diff "^25.1.0" - pretty-format "^25.1.0" + jest-diff "^25.2.1" + pretty-format "^25.2.1" "@types/json-schema@^7.0.3": version "7.0.4" @@ -1447,11 +1402,21 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440" integrity sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ== +"@types/node@*": + version "14.0.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.1.tgz#5d93e0a099cd0acd5ef3d5bde3c086e1f49ff68c" + integrity sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA== + "@types/node@13.1.0": version "13.1.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.1.0.tgz#225cbaac5fdb2b9ac651b02c070d8aa3c37cc812" integrity sha512-zwrxviZS08kRX40nqBrmERElF2vpw4IUTd5khkhBTfFH8AOaeoLVx48EC4+ZzS2/Iga7NevncqnsUSYjM4OWYA== +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + "@types/prettier@^1.19.0": version "1.19.1" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" @@ -1503,9 +1468,9 @@ "@types/react" "*" "@types/react@*": - version "16.9.23" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.23.tgz#1a66c6d468ba11a8943ad958a8cb3e737568271c" - integrity sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw== + version "16.9.35" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.35.tgz#a0830d172e8aadd9bd41709ba2281a3124bbd368" + integrity sha512-q0n0SsWcGc8nDqH2GJfWQWUOmZSJhXV64CjVN5SvcNti3TdEaA3AH0D8DwNmMdzjMAC/78tB8nAZIlV8yTz+zQ== dependencies: "@types/prop-types" "*" csstype "^2.2.0" @@ -1546,9 +1511,9 @@ integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== "@types/yargs@^13.0.0": - version "13.0.8" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.8.tgz#a38c22def2f1c2068f8971acb3ea734eb3c64a99" - integrity sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA== + version "13.0.9" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.9.tgz#44028e974343c7afcf3960f1a2b1099c39a7b5e1" + integrity sha512-xrvhZ4DZewMDhoH1utLtOAwYQy60eYFoXeje30TzM3VOvQlBwQaEpKFq5m34k1wOw2AKIi2pwtiAjdmhvlBUzg== dependencies: "@types/yargs-parser" "*" @@ -1689,14 +1654,14 @@ acorn@^6.0.1: integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== acorn@^7.1.0, acorn@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" - integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe" + integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ== ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== + version "6.12.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" + integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -1772,11 +1737,6 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1922,13 +1882,6 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -assign@>=0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/assign/-/assign-0.1.7.tgz#e63bfe3a887b8630913c27663e4cc9bff1ddd25f" - integrity sha1-5jv+Ooh7hjCRPCdmPkzJv/Hd0l8= - dependencies: - fusing "0.4.x" - ast-types-flow@0.0.7, ast-types-flow@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" @@ -1949,11 +1902,6 @@ async-lock@1.2.2: resolved "https://registry.yarnpkg.com/async-lock/-/async-lock-1.2.2.tgz#480bd51e4b7ffd4debbd4973763718ec9acb9a9e" integrity sha512-uczz62z2fMWOFbyo6rG4NlV2SdxugJT6sZA2QcfB1XaSjEiOh8CuOb/TttyMnYQCda6nkWecJe465tGQDPJiKw== -async@0.6.x: - version "0.6.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.6.2.tgz#41fd038a3812c0a8bc1842ecf08ba63eb0392bef" - integrity sha1-Qf0DijgSwKi8GELs8IumPrA5K+8= - async@^2.4.0: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -2019,23 +1967,24 @@ babel-jest@24.9.0: chalk "^2.4.2" slash "^2.0.0" -babel-jest@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.2.4.tgz#b21b68d3af8f161c3e6e501e91f0dea8e652e344" - integrity sha512-+yDzlyJVWrqih9i2Cvjpt7COaN8vUwCsKGtxJLzg6I0xhxD54K8mvDUCliPKLufyzHh/c5C4MRj4Vk7VMjOjIg== +babel-jest@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.5.1.tgz#bc2e6101f849d6f6aec09720ffc7bc5332e62853" + integrity sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ== dependencies: - "@jest/transform" "^25.2.4" - "@jest/types" "^25.2.3" - "@types/babel__core" "^7.1.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + "@types/babel__core" "^7.1.7" babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^25.2.1" + babel-preset-jest "^25.5.0" chalk "^3.0.0" + graceful-fs "^4.2.4" slash "^3.0.0" -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== dependencies: object.assign "^4.1.0" @@ -2067,11 +2016,13 @@ babel-plugin-jest-hoist@^24.9.0: dependencies: "@types/babel__traverse" "^7.0.6" -babel-plugin-jest-hoist@^25.2.1: - version "25.2.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.2.1.tgz#d0003a1f3d5caa281e1107fe03bbf16b799f9955" - integrity sha512-HysbCQfJhxLlyxDbKcB2ucGYV0LjqK4h6dBoI3RtFuOxTiTWK6XGZMsHb0tGh8iJdV4hC6Z2GCHzVvDeh9i0lQ== +babel-plugin-jest-hoist@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz#129c80ba5c7fc75baf3a45b93e2e372d57ca2677" + integrity sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g== dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" "@types/babel__traverse" "^7.0.6" babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: @@ -2079,6 +2030,22 @@ babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== +babel-preset-current-node-syntax@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6" + integrity sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + babel-preset-fbjs@^3.1.2, babel-preset-fbjs@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz#a6024764ea86c8e06a22d794ca8b69534d263541" @@ -2120,21 +2087,13 @@ babel-preset-jest@^24.9.0: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" babel-plugin-jest-hoist "^24.9.0" -babel-preset-jest@^25.2.1: - version "25.2.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.2.1.tgz#4ccd0e577f69aa11b71806edfe8b25a5c3ac93a2" - integrity sha512-zXHJBM5iR8oEO4cvdF83AQqqJf3tJrXy3x8nfu2Nlqvn4cneg4Ca8M7cQvC5S9BzDDy1O0tZ9iXru9J6E3ym+A== - dependencies: - "@babel/plugin-syntax-bigint" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^25.2.1" - -back@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/back/-/back-1.0.2.tgz#a93f5e6ce69729984d5901a2bb16e3b01a4d6369" - integrity sha1-qT9ebOaXKZhNWQGiuxbjsBpNY2k= +babel-preset-jest@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz#c1d7f191829487a907764c65307faa0e66590b49" + integrity sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw== dependencies: - xtend "^4.0.0" + babel-plugin-jest-hoist "^25.5.0" + babel-preset-current-node-syntax "^0.1.2" balanced-match@^1.0.0: version "1.0.0" @@ -2174,7 +2133,7 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -basic-auth@~2.0.0: +basic-auth@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== @@ -2359,17 +2318,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -2420,14 +2368,14 @@ cli-cursor@^2.1.0: restore-cursor "^2.0.0" cli-spinners@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77" - integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.3.0.tgz#0632239a4b5aa4c958610142c34bb7a651fc8df5" + integrity sha512-Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w== cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== cliui@^3.2.0: version "3.2.0" @@ -2472,9 +2420,9 @@ code-point-at@^1.0.0: integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= collect-v8-coverage@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.0.tgz#150ee634ac3650b71d9c985eb7f608942334feb1" - integrity sha512-VKIhJgvk8E1W28m5avZ2Gv2Ruv5YiF56ug2oclvaG9md69BuZImMG2sk9g7QNKLUbtYAKQjXjYxbYZVUlMMKmQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== collection-visit@^1.0.0: version "1.0.0" @@ -2484,11 +2432,6 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" - integrity sha1-vbbGnOZg+t/+CwAHzER+G59ygr0= - color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -2513,13 +2456,6 @@ color-name@^1.0.0, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" - integrity sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE= - dependencies: - color-name "^1.0.0" - color-string@^1.5.2: version "1.5.3" resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" @@ -2533,14 +2469,6 @@ color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -color@0.8.x: - version "0.8.0" - resolved "https://registry.yarnpkg.com/color/-/color-0.8.0.tgz#890c07c3fd4e649537638911cf691e5458b6fca5" - integrity sha1-iQwHw/1OZJU3Y4kRz2keVFi2/KU= - dependencies: - color-convert "^0.5.0" - color-string "^0.3.0" - color@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" @@ -2554,19 +2482,6 @@ colorette@^1.0.7: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.1.0.tgz#1f943e5a357fac10b4e0f5aaef3b14cdc1af6ec7" integrity sha512-6S062WDQUXi6hOfkO/sBPVwE5ASXY4G2+b4atvhJfSsuUUhIaUKlkjLe9692Ipyt5/a+IPF5aVTu3V5gvXq5cg== -colornames@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/colornames/-/colornames-0.0.2.tgz#d811fd6c84f59029499a8ac4436202935b92be31" - integrity sha1-2BH9bIT1kClJmorEQ2ICk1uSvjE= - -colorspace@1.0.x: - version "1.0.1" - resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.0.1.tgz#c99c796ed31128b9876a52e1ee5ee03a4a719749" - integrity sha1-yZx5btMRKLmHalLh7l7gOkpxl0k= - dependencies: - color "0.8.x" - text-hex "0.0.x" - combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -2575,9 +2490,9 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: delayed-stream "~1.0.0" command-exists@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.8.tgz#715acefdd1223b9c9b37110a149c6392c2852291" - integrity sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw== + version "1.2.9" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== commander@^2.11.0, commander@^2.12.1, commander@^2.19.0: version "2.20.3" @@ -2624,7 +2539,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@1.6.2, concat-stream@^1.6.0: +concat-stream@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -2739,9 +2654,9 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: which "^1.2.9" cross-spawn@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" - integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== + version "7.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" + integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" @@ -2758,16 +2673,16 @@ cssom@~0.3.6: integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== cssstyle@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.2.0.tgz#e4c44debccd6b7911ed617a4395e5754bba59992" - integrity sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== dependencies: cssom "~0.3.6" csstype@^2.2.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" - integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== + version "2.6.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" + integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== damerau-levenshtein@^1.0.4: version "1.0.6" @@ -2791,25 +2706,15 @@ data-urls@^1.1.0: whatwg-url "^7.0.0" dayjs@^1.8.15: - version "1.8.22" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.22.tgz#5e835d776b373e216678be8d12c336da71a25a9c" - integrity sha512-N8IXfxBD62Y9cKTuuuSoOlCXRnnzaTj1vu91r855iq6FbY5cZqOZnW/95nUn6kJiR+W9PHHrLykEoQOe6fUKxQ== + version "1.8.26" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.26.tgz#c6d62ccdf058ca72a8d14bb93a23501058db9f1e" + integrity sha512-KqtAuIfdNfZR5sJY1Dixr2Is4ZvcCqhb0dZpCOt5dGEFiMzoIbjkTSzUb4QKTCsP+WNpGwUjAFIZrnZvUxxkhw== debounce@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131" integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg== -debug@0.7.x: - version "0.7.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" - integrity sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk= - -debug@0.8.x: - version "0.8.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-0.8.1.tgz#20ff4d26f5e422cb68a1bacbbb61039ad8c1c130" - integrity sha1-IP9NJvXkIstoobrLu2EDmtjBwTA= - debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -2912,6 +2817,11 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" @@ -2922,24 +2832,15 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diagnostics@1.0.x: - version "1.0.1" - resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.0.1.tgz#accdb080c82bb25d0dd73430a9e6a87fbb431541" - integrity sha1-rM2wgMgrsl0N1zQwqeaof7tDFUE= - dependencies: - colorspace "1.0.x" - enabled "1.0.x" - kuler "0.0.x" - didyoumean@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.1.tgz#e92edfdada6537d484d73c0172fd1eba0c4976ff" integrity sha1-6S7f2tplN9SE1zwBcv0eugxJdv8= -diff-sequences@^25.2.1: - version "25.2.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.1.tgz#fcfe8aa07dd9b0c648396a478dabca8e76c6ab27" - integrity sha512-foe7dXnGlSh3jR1ovJmdv+77VQj98eKCHHwJPbZ2eEf0fHwKbkZicpPxEch9smZ+n2dnF6QFwkOQdLq9hpeJUg== +diff-sequences@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" + integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== diff@^3.2.0: version "3.5.0" @@ -2977,9 +2878,9 @@ doctrine@^3.0.0: esutils "^2.0.2" dom-walk@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" - integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== domexception@^1.0.1: version "1.0.1" @@ -3001,16 +2902,6 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -emits@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/emits/-/emits-1.0.2.tgz#db20ec6668325071c313441e30cfe2a69ea73859" - integrity sha1-2yDsZmgyUHHDE0QeMM/ipp6nOFk= - -emits@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emits/-/emits-3.0.0.tgz#32752bba95e1707b219562384ab9bb8b1fd62f70" - integrity sha1-MnUrupXhcHshlWI4Srm7ix/WL3A= - emoji-regex@^7.0.1, emoji-regex@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -3021,13 +2912,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -enabled@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93" - integrity sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M= - dependencies: - env-variable "0.0.x" - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -3047,15 +2931,10 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -env-variable@0.0.x: - version "0.0.6" - resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.6.tgz#74ab20b3786c545b62b4a4813ab8cf22726c9808" - integrity sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg== - envinfo@^7.1.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.5.0.tgz#91410bb6db262fb4f1409bd506e9ff57e91023f4" - integrity sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ== + version "7.5.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.5.1.tgz#93c26897225a00457c75e734d354ea9106a72236" + integrity sha512-hQBkDf2iO4Nv0CNHpCuSBeaSrveU6nThVxFGTrq/eDlV716UQk09zChaJae4mZRsos1x4YLY2TaH3LHUae3ZmQ== error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" @@ -3072,10 +2951,10 @@ errorhandler@^1.5.0: accepts "~1.3.7" escape-html "~1.0.3" -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2: - version "1.17.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" - integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" @@ -3103,16 +2982,21 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: +escape-string-regexp@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escodegen@^1.11.1: version "1.14.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" @@ -3169,9 +3053,9 @@ eslint-import-resolver-reactnative@1.0.2: find-root "^1.0.0" eslint-module-utils@^2.4.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz#7878f7504824e1b857dd2505b59a8e5eda26a708" - integrity sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q== + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== dependencies: debug "^2.6.9" pkg-dir "^2.0.0" @@ -3377,11 +3261,11 @@ esprima@^4.0.0, esprima@^4.0.1: integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.1.0.tgz#c5c0b66f383e7656404f86b31334d72524eddb48" - integrity sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q== + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== dependencies: - estraverse "^4.0.0" + estraverse "^5.1.0" esrecurse@^4.1.0: version "4.2.1" @@ -3390,17 +3274,22 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + esutils@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" integrity sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U= -esutils@^2.0.0, esutils@^2.0.2: +esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== @@ -3415,11 +3304,6 @@ event-target-shim@^5.0.0, event-target-shim@^5.0.1: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -eventemitter3@1.2.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" - integrity sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg= - eventemitter3@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" @@ -3495,17 +3379,17 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/expect/-/expect-25.2.4.tgz#b66e0777c861034ebc21730bb34e1839d5d46806" - integrity sha512-hfuPhPds4yOsZtIw4kwAg70r0hqGmpqekgA+VX7pf/3wZ6FY+xIOXZhNsPMMMsspYG/YIsbAiwqsdnD4Ht+bCA== +expect@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-25.5.0.tgz#f07f848712a2813bb59167da3fb828ca21f58bba" + integrity sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA== dependencies: - "@jest/types" "^25.2.3" + "@jest/types" "^25.5.0" ansi-styles "^4.0.0" - jest-get-type "^25.2.1" - jest-matcher-utils "^25.2.3" - jest-message-util "^25.2.4" - jest-regex-util "^25.2.1" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-regex-util "^25.2.6" extend-shallow@^1.1.2: version "1.1.4" @@ -3534,11 +3418,6 @@ extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extendible@0.1.x: - version "0.1.1" - resolved "https://registry.yarnpkg.com/extendible/-/extendible-0.1.1.tgz#e2a37ed87129fb4f9533e8a8d7506230a539c905" - integrity sha1-4qN+2HEp+0+VM+io11BiMKU5yQU= - external-editor@^2.0.4: version "2.2.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" @@ -3571,21 +3450,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-github@0.0.x: - version "0.0.5" - resolved "https://registry.yarnpkg.com/extract-github/-/extract-github-0.0.5.tgz#f542536db8c19b983a3bec9db96d2ef2a5ff1a86" - integrity sha1-9UJTbbjBm5g6O+yduW0u8qX/GoY= - -extract-zip@^1.6.7: - version "1.6.7" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" - integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= - dependencies: - concat-stream "1.6.2" - debug "2.6.9" - mkdirp "0.5.1" - yauzl "2.4.1" - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -3686,13 +3550,6 @@ fbjs@^1.0.0: setimmediate "^1.0.5" ua-parser-js "^0.7.18" -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= - dependencies: - pend "~1.2.0" - figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -3788,9 +3645,9 @@ flat-cache@^2.0.1: write "1.0.3" flatted@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" - integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== follow-redirects@1.5.10: version "1.5.10" @@ -3854,17 +3711,17 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.11" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" - integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw== + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== dependencies: bindings "^1.5.0" nan "^2.12.1" fsevents@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" - integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== function-bind@^1.1.1: version "1.1.1" @@ -3876,29 +3733,6 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -fusing@0.2.x: - version "0.2.3" - resolved "https://registry.yarnpkg.com/fusing/-/fusing-0.2.3.tgz#d0eefaf985d2bafded44af8b185316f6e429e1db" - integrity sha1-0O76+YXSuv3tRK+LGFMW9uQp4ds= - dependencies: - predefine "0.1.x" - -fusing@0.4.x: - version "0.4.0" - resolved "https://registry.yarnpkg.com/fusing/-/fusing-0.4.0.tgz#c99068f54ca3e11dc0118902152abf367aba4a4d" - integrity sha1-yZBo9Uyj4R3AEYkCFSq/Nnq6Sk0= - dependencies: - emits "1.0.x" - predefine "0.1.x" - -fusing@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fusing/-/fusing-1.0.0.tgz#550c15d76af9265778aa051ece44d4000a098d45" - integrity sha1-VQwV12r5Jld4qgUezkTUAAoJjUU= - dependencies: - emits "3.0.x" - predefine "0.1.x" - gensync@^1.0.0-beta.1: version "1.0.0-beta.1" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" @@ -3945,19 +3779,10 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -githulk@0.0.x: - version "0.0.7" - resolved "https://registry.yarnpkg.com/githulk/-/githulk-0.0.7.tgz#d96ca29f0ec43117c538e521d663566ea84b4eff" - integrity sha1-2Wyinw7EMRfFOOUh1mNWbqhLTv8= - dependencies: - debug "0.7.x" - extract-github "0.0.x" - mana "0.1.x" - glob-parent@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" - integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== dependencies: is-glob "^4.0.1" @@ -3998,10 +3823,10 @@ globals@^11.1.0, globals@^11.7.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== growly@^1.3.0: version "1.3.0" @@ -4026,13 +3851,6 @@ har-validator@~5.1.3: ajv "^6.5.5" har-schema "^2.0.0" -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -4121,9 +3939,9 @@ html-encoding-sniffer@^1.0.2: whatwg-encoding "^1.0.1" html-escaper@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.0.tgz#71e87f931de3fe09e56661ab9a29aadec707b491" - integrity sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig== + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== http-errors@~1.7.2: version "1.7.3" @@ -4363,6 +4181,11 @@ is-directory@^0.3.1: resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= +is-docker@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" + integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== + is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -4428,11 +4251,6 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= - is-regex@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" @@ -4478,9 +4296,11 @@ is-wsl@^1.1.0: integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= is-wsl@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" - integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" isarray@0.0.1: version "0.0.1" @@ -4546,14 +4366,11 @@ istanbul-lib-instrument@^3.3.0: semver "^6.0.0" istanbul-lib-instrument@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" - integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg== + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== dependencies: "@babel/core" "^7.7.5" - "@babel/parser" "^7.7.5" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" "@istanbuljs/schema" "^0.1.2" istanbul-lib-coverage "^3.0.0" semver "^6.3.0" @@ -4576,121 +4393,123 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.1.tgz#1343217244ad637e0c3b18e7f6b746941a9b5e9a" - integrity sha512-Vm9xwCiQ8t2cNNnckyeAV0UdxKpcQUz4nMxsBvIu8n2kmPSiyb5uaF/8LpmKr+yqL/MdOXaX2Nmdo4Qyxium9Q== +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.2.3.tgz#ad19deef9e47ba37efb432d2c9a67dfd97cc78af" - integrity sha512-EFxy94dvvbqRB36ezIPLKJ4fDIC+jAdNs8i8uTwFpaXd6H3LVc3ova1lNS4ZPWk09OCR2vq5kSdSQgar7zMORg== +jest-changed-files@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.5.0.tgz#141cc23567ceb3f534526f8614ba39421383634c" + integrity sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw== dependencies: - "@jest/types" "^25.2.3" + "@jest/types" "^25.5.0" execa "^3.2.0" throat "^5.0.0" -jest-cli@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.2.4.tgz#021c2383904696597abc060dcb133c82ebd8bfcc" - integrity sha512-zeY2pRDWKj2LZudIncvvguwLMEdcnJqc2jJbwza1beqi80qqLvkPF/BjbFkK2sIV3r+mfTJS+7ITrvK6pCdRjg== +jest-cli@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.5.4.tgz#b9f1a84d1301a92c5c217684cb79840831db9f0d" + integrity sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw== dependencies: - "@jest/core" "^25.2.4" - "@jest/test-result" "^25.2.4" - "@jest/types" "^25.2.3" + "@jest/core" "^25.5.4" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" chalk "^3.0.0" exit "^0.1.2" + graceful-fs "^4.2.4" import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^25.2.4" - jest-util "^25.2.3" - jest-validate "^25.2.3" + jest-config "^25.5.4" + jest-util "^25.5.0" + jest-validate "^25.5.0" prompts "^2.0.1" realpath-native "^2.0.0" yargs "^15.3.1" -jest-config@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.2.4.tgz#f4f33238979f225683179c89d1e402893008975d" - integrity sha512-fxy3nIpwJqOUQJRVF/q+pNQb6dv5b9YufOeCbpPZJ/md1zXpiupbhfehpfODhnKOfqbzSiigtSLzlWWmbRxnqQ== +jest-config@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c" + integrity sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^25.2.4" - "@jest/types" "^25.2.3" - babel-jest "^25.2.4" + "@jest/test-sequencer" "^25.5.4" + "@jest/types" "^25.5.0" + babel-jest "^25.5.1" chalk "^3.0.0" deepmerge "^4.2.2" glob "^7.1.1" - jest-environment-jsdom "^25.2.4" - jest-environment-node "^25.2.4" - jest-get-type "^25.2.1" - jest-jasmine2 "^25.2.4" - jest-regex-util "^25.2.1" - jest-resolve "^25.2.3" - jest-util "^25.2.3" - jest-validate "^25.2.3" + graceful-fs "^4.2.4" + jest-environment-jsdom "^25.5.0" + jest-environment-node "^25.5.0" + jest-get-type "^25.2.6" + jest-jasmine2 "^25.5.4" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" micromatch "^4.0.2" - pretty-format "^25.2.3" + pretty-format "^25.5.0" realpath-native "^2.0.0" -jest-diff@^25.1.0, jest-diff@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.2.3.tgz#54d601a0a754ef26e808a8c8dbadd278c215aa3f" - integrity sha512-VtZ6LAQtaQpFsmEzps15dQc5ELbJxy4L2DOSo2Ev411TUEtnJPkAMD7JneVypeMJQ1y3hgxN9Ao13n15FAnavg== +jest-diff@^25.2.1, jest-diff@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" + integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== dependencies: chalk "^3.0.0" - diff-sequences "^25.2.1" - jest-get-type "^25.2.1" - pretty-format "^25.2.3" + diff-sequences "^25.2.6" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" jest-docblock@^21.0.0: version "21.2.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" integrity sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw== -jest-docblock@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.2.3.tgz#ac45280c43d59e7139f9fbe5896c6e0320c01ebb" - integrity sha512-d3/tmjLLrH5fpRGmIm3oFa3vOaD/IjPxtXVOrfujpfJ9y1tCDB1x/tvunmdOVAyF03/xeMwburl6ITbiQT1mVA== +jest-docblock@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" + integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== dependencies: detect-newline "^3.0.0" -jest-each@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.2.3.tgz#64067ba1508ebbd07e9b126c173ab371e8e6309d" - integrity sha512-RTlmCjsBDK2c9T5oO4MqccA3/5Y8BUtiEy7OOQik1iyCgdnNdHbI0pNEpyapZPBG0nlvZ4mIu7aY6zNUvLraAQ== +jest-each@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.5.0.tgz#0c3c2797e8225cb7bec7e4d249dcd96b934be516" + integrity sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA== dependencies: - "@jest/types" "^25.2.3" + "@jest/types" "^25.5.0" chalk "^3.0.0" - jest-get-type "^25.2.1" - jest-util "^25.2.3" - pretty-format "^25.2.3" - -jest-environment-jsdom@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.2.4.tgz#f2783541d0538b1bc43641703372cea6a2e83611" - integrity sha512-5dm+tNwrLmhELdjAwiQnVGf/U9iFMWdTL4/wyrMg2HU6RQnCiuxpWbIigLHUhuP1P2Ak0F4k3xhjrikboKyShA== - dependencies: - "@jest/environment" "^25.2.4" - "@jest/fake-timers" "^25.2.4" - "@jest/types" "^25.2.3" - jest-mock "^25.2.3" - jest-util "^25.2.3" + jest-get-type "^25.2.6" + jest-util "^25.5.0" + pretty-format "^25.5.0" + +jest-environment-jsdom@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz#dcbe4da2ea997707997040ecf6e2560aec4e9834" + integrity sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" jsdom "^15.2.1" -jest-environment-node@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.2.4.tgz#dc211dfb0d8b66dfc1965a8f846e72e54ff0c430" - integrity sha512-Jkc5Y8goyXPrLRHnrUlqC7P4o5zn2m4zw6qWoRJ59kxV1f2a5wK+TTGhrhCwnhW/Ckpdl/pm+LufdvhJkvJbiw== +jest-environment-node@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.5.0.tgz#0f55270d94804902988e64adca37c6ce0f7d07a1" + integrity sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA== dependencies: - "@jest/environment" "^25.2.4" - "@jest/fake-timers" "^25.2.4" - "@jest/types" "^25.2.3" - jest-mock "^25.2.3" - jest-util "^25.2.3" + "@jest/environment" "^25.5.0" + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" semver "^6.3.0" jest-fetch-mock@3.0.3: @@ -4706,10 +4525,10 @@ jest-get-type@^24.9.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== -jest-get-type@^25.2.1: - version "25.2.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.1.tgz#6c83de603c41b1627e6964da2f5454e6aa3c13a6" - integrity sha512-EYjTiqcDTCRJDcSNKbLTwn/LcDPEE7ITk8yRMNAOjEsN6yp+Uu+V1gx4djwnuj/DvWg0YGmqaBqPVGsPxlvE7w== +jest-get-type@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" + integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== jest-haste-map@^24.7.1, jest-haste-map@^24.9.0: version "24.9.0" @@ -4730,18 +4549,19 @@ jest-haste-map@^24.7.1, jest-haste-map@^24.9.0: optionalDependencies: fsevents "^1.2.7" -jest-haste-map@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.2.3.tgz#2649392b5af191f0167a27bfb62e5d96d7eaaade" - integrity sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A== +jest-haste-map@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943" + integrity sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ== dependencies: - "@jest/types" "^25.2.3" + "@jest/types" "^25.5.0" + "@types/graceful-fs" "^4.1.2" anymatch "^3.0.3" fb-watchman "^2.0.0" - graceful-fs "^4.2.3" - jest-serializer "^25.2.1" - jest-util "^25.2.3" - jest-worker "^25.2.1" + graceful-fs "^4.2.4" + jest-serializer "^25.5.0" + jest-util "^25.5.0" + jest-worker "^25.5.0" micromatch "^4.0.2" sane "^4.0.3" walker "^1.0.7" @@ -4749,46 +4569,46 @@ jest-haste-map@^25.2.3: optionalDependencies: fsevents "^2.1.2" -jest-jasmine2@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.2.4.tgz#5f77de83e1027f0c7588137055a80da773872374" - integrity sha512-juoKrmNmLwaheNbAg71SuUF9ovwUZCFNTpKVhvCXWk+SSeORcIUMptKdPCoLXV3D16htzhTSKmNxnxSk4SrTjA== +jest-jasmine2@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968" + integrity sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^25.2.4" - "@jest/source-map" "^25.2.1" - "@jest/test-result" "^25.2.4" - "@jest/types" "^25.2.3" + "@jest/environment" "^25.5.0" + "@jest/source-map" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" chalk "^3.0.0" co "^4.6.0" - expect "^25.2.4" + expect "^25.5.0" is-generator-fn "^2.0.0" - jest-each "^25.2.3" - jest-matcher-utils "^25.2.3" - jest-message-util "^25.2.4" - jest-runtime "^25.2.4" - jest-snapshot "^25.2.4" - jest-util "^25.2.3" - pretty-format "^25.2.3" + jest-each "^25.5.0" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-runtime "^25.5.4" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + pretty-format "^25.5.0" throat "^5.0.0" -jest-leak-detector@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.2.3.tgz#4cf39f137925e0061c04c24ca65cae36465f0238" - integrity sha512-yblCMPE7NJKl7778Cf/73yyFWAas5St0iiEBwq7RDyaz6Xd4WPFnPz2j7yDb/Qce71A1IbDoLADlcwD8zT74Aw== +jest-leak-detector@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz#2291c6294b0ce404241bb56fe60e2d0c3e34f0bb" + integrity sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA== dependencies: - jest-get-type "^25.2.1" - pretty-format "^25.2.3" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" -jest-matcher-utils@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.2.3.tgz#59285bd6d6c810debc9caa585ed985e46a3f28fd" - integrity sha512-ZmiXiwQRVM9MoKjGMP5YsGGk2Th5ncyRxfXKz5AKsmU8m43kgNZirckVzaP61MlSa9LKmXbevdYqVp1ZKAw2Rw== +jest-matcher-utils@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz#fbc98a12d730e5d2453d7f1ed4a4d948e34b7867" + integrity sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw== dependencies: chalk "^3.0.0" - jest-diff "^25.2.3" - jest-get-type "^25.2.1" - pretty-format "^25.2.3" + jest-diff "^25.5.0" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" jest-message-util@^24.9.0: version "24.9.0" @@ -4804,16 +4624,16 @@ jest-message-util@^24.9.0: slash "^2.0.0" stack-utils "^1.0.1" -jest-message-util@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.2.4.tgz#b1441b9c82f5c11fc661303cbf200a2f136a7762" - integrity sha512-9wWMH3Bf+GVTv0GcQLmH/FRr0x0toptKw9TA8U5YFLVXx7Tq9pvcNzTyJrcTJ+wLqNbMPPJlJNft4MnlcrtF5Q== +jest-message-util@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.5.0.tgz#ea11d93204cc7ae97456e1d8716251185b8880ea" + integrity sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^25.2.4" - "@jest/types" "^25.2.3" + "@jest/types" "^25.5.0" "@types/stack-utils" "^1.0.1" chalk "^3.0.0" + graceful-fs "^4.2.4" micromatch "^4.0.2" slash "^3.0.0" stack-utils "^1.0.1" @@ -4825,12 +4645,12 @@ jest-mock@^24.9.0: dependencies: "@jest/types" "^24.9.0" -jest-mock@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.2.3.tgz#b37a581f59d61bd91db27a99bf7eb8b3e5e993d5" - integrity sha512-xlf+pyY0j47zoCs8zGGOGfWyxxLximE8YFOfEK8s4FruR8DtM/UjNj61um+iDuMAFEBDe1bhCXkqiKoCmWjJzg== +jest-mock@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.5.0.tgz#a91a54dabd14e37ecd61665d6b6e06360a55387a" + integrity sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA== dependencies: - "@jest/types" "^25.2.3" + "@jest/types" "^25.5.0" jest-pnp-resolver@^1.2.1: version "1.2.1" @@ -4842,83 +4662,87 @@ jest-regex-util@^24.9.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== -jest-regex-util@^25.2.1: - version "25.2.1" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.1.tgz#db64b0d15cd3642c93b7b9627801d7c518600584" - integrity sha512-wroFVJw62LdqTdkL508ZLV82FrJJWVJMIuYG7q4Uunl1WAPTf4ftPKrqqfec4SvOIlvRZUdEX2TFpWR356YG/w== +jest-regex-util@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" + integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== -jest-resolve-dependencies@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.2.4.tgz#2d904400387d74a366dff54badb40a2b3210e733" - integrity sha512-qhUnK4PfNHzNdca7Ub1mbAqE0j5WNyMTwxBZZJjQlUrdqsiYho/QGK65FuBkZuSoYtKIIqriR9TpGrPEc3P5Gg== +jest-resolve-dependencies@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz#85501f53957c8e3be446e863a74777b5a17397a7" + integrity sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw== dependencies: - "@jest/types" "^25.2.3" - jest-regex-util "^25.2.1" - jest-snapshot "^25.2.4" + "@jest/types" "^25.5.0" + jest-regex-util "^25.2.6" + jest-snapshot "^25.5.1" -jest-resolve@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.2.3.tgz#ababeaf2bb948cb6d2dea8453759116da0fb7842" - integrity sha512-1vZMsvM/DBH258PnpUNSXIgtzpYz+vCVCj9+fcy4akZl4oKbD+9hZSlfe9RIDpU0Fc28ozHQrmwX3EqFRRIHGg== +jest-resolve@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.5.1.tgz#0e6fbcfa7c26d2a5fe8f456088dc332a79266829" + integrity sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ== dependencies: - "@jest/types" "^25.2.3" + "@jest/types" "^25.5.0" browser-resolve "^1.11.3" chalk "^3.0.0" + graceful-fs "^4.2.4" jest-pnp-resolver "^1.2.1" + read-pkg-up "^7.0.1" realpath-native "^2.0.0" - resolve "^1.15.1" + resolve "^1.17.0" + slash "^3.0.0" -jest-runner@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.2.4.tgz#d0daf7c56b4a83b6b675863d5cdcd502c960f9a1" - integrity sha512-5xaIfqqxck9Wg2CV4b9KmJtf/sWO7zWQx7O+34GCLGPzoPcVmB3mZtdrQI1/jS3Reqjru9ycLjgLHSf6XoxRqA== +jest-runner@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d" + integrity sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg== dependencies: - "@jest/console" "^25.2.3" - "@jest/environment" "^25.2.4" - "@jest/test-result" "^25.2.4" - "@jest/types" "^25.2.3" + "@jest/console" "^25.5.0" + "@jest/environment" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" chalk "^3.0.0" exit "^0.1.2" - graceful-fs "^4.2.3" - jest-config "^25.2.4" - jest-docblock "^25.2.3" - jest-haste-map "^25.2.3" - jest-jasmine2 "^25.2.4" - jest-leak-detector "^25.2.3" - jest-message-util "^25.2.4" - jest-resolve "^25.2.3" - jest-runtime "^25.2.4" - jest-util "^25.2.3" - jest-worker "^25.2.1" + graceful-fs "^4.2.4" + jest-config "^25.5.4" + jest-docblock "^25.3.0" + jest-haste-map "^25.5.1" + jest-jasmine2 "^25.5.4" + jest-leak-detector "^25.5.0" + jest-message-util "^25.5.0" + jest-resolve "^25.5.1" + jest-runtime "^25.5.4" + jest-util "^25.5.0" + jest-worker "^25.5.0" source-map-support "^0.5.6" throat "^5.0.0" -jest-runtime@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.2.4.tgz#c66a421e115944426b377a7fd331f6c0902cfa56" - integrity sha512-6ehOUizgIghN+aV5YSrDzTZ+zJ9omgEjJbTHj3Jqes5D52XHfhzT7cSfdREwkNjRytrR7mNwZ7pRauoyNLyJ8Q== - dependencies: - "@jest/console" "^25.2.3" - "@jest/environment" "^25.2.4" - "@jest/source-map" "^25.2.1" - "@jest/test-result" "^25.2.4" - "@jest/transform" "^25.2.4" - "@jest/types" "^25.2.3" +jest-runtime@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab" + integrity sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ== + dependencies: + "@jest/console" "^25.5.0" + "@jest/environment" "^25.5.0" + "@jest/globals" "^25.5.2" + "@jest/source-map" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" "@types/yargs" "^15.0.0" chalk "^3.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" - graceful-fs "^4.2.3" - jest-config "^25.2.4" - jest-haste-map "^25.2.3" - jest-message-util "^25.2.4" - jest-mock "^25.2.3" - jest-regex-util "^25.2.1" - jest-resolve "^25.2.3" - jest-snapshot "^25.2.4" - jest-util "^25.2.3" - jest-validate "^25.2.3" + graceful-fs "^4.2.4" + jest-config "^25.5.4" + jest-haste-map "^25.5.1" + jest-message-util "^25.5.0" + jest-mock "^25.5.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" realpath-native "^2.0.0" slash "^3.0.0" strip-bom "^4.0.0" @@ -4929,29 +4753,32 @@ jest-serializer@^24.4.0, jest-serializer@^24.9.0: resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== -jest-serializer@^25.2.1: - version "25.2.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.2.1.tgz#51727a5fc04256f461abe0fa024a022ba165877a" - integrity sha512-fibDi7M5ffx6c/P66IkvR4FKkjG5ldePAK1WlbNoaU4GZmIAkS9Le/frAwRUFEX0KdnisSPWf+b1RC5jU7EYJQ== +jest-serializer@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.5.0.tgz#a993f484e769b4ed54e70e0efdb74007f503072b" + integrity sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA== + dependencies: + graceful-fs "^4.2.4" -jest-snapshot@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.2.4.tgz#08d4517579c864df4280bcc948ceea34327a4ded" - integrity sha512-nIwpW7FZCq5p0AE3Oyqyb6jL0ENJixXzJ5/CD/XRuOqp3gS5OM3O/k+NnTrniCXxPFV4ry6s9HNfiPQBi0wcoA== +jest-snapshot@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f" + integrity sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^25.2.3" + "@jest/types" "^25.5.0" "@types/prettier" "^1.19.0" chalk "^3.0.0" - expect "^25.2.4" - jest-diff "^25.2.3" - jest-get-type "^25.2.1" - jest-matcher-utils "^25.2.3" - jest-message-util "^25.2.4" - jest-resolve "^25.2.3" + expect "^25.5.0" + graceful-fs "^4.2.4" + jest-diff "^25.5.0" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-resolve "^25.5.1" make-dir "^3.0.0" natural-compare "^1.4.0" - pretty-format "^25.2.3" + pretty-format "^25.5.0" semver "^6.3.0" jest-util@^24.9.0: @@ -4972,13 +4799,14 @@ jest-util@^24.9.0: slash "^2.0.0" source-map "^0.6.0" -jest-util@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.2.3.tgz#0abf95a1d6b96f2de5a3ecd61b36c40a182dc256" - integrity sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw== +jest-util@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0" + integrity sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA== dependencies: - "@jest/types" "^25.2.3" + "@jest/types" "^25.5.0" chalk "^3.0.0" + graceful-fs "^4.2.4" is-ci "^2.0.0" make-dir "^3.0.0" @@ -4994,28 +4822,28 @@ jest-validate@^24.7.0: leven "^3.1.0" pretty-format "^24.9.0" -jest-validate@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.2.3.tgz#ecb0f093cf8ae71d15075fb48439b6f78f1fcb5a" - integrity sha512-GObn91jzU0B0Bv4cusAwjP6vnWy78hJUM8MOSz7keRfnac/ZhQWIsUjvk01IfeXNTemCwgR57EtdjQMzFZGREg== +jest-validate@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a" + integrity sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ== dependencies: - "@jest/types" "^25.2.3" + "@jest/types" "^25.5.0" camelcase "^5.3.1" chalk "^3.0.0" - jest-get-type "^25.2.1" + jest-get-type "^25.2.6" leven "^3.1.0" - pretty-format "^25.2.3" + pretty-format "^25.5.0" -jest-watcher@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.2.4.tgz#dda85b914d470fa4145164a8f70bda4f208bafb6" - integrity sha512-p7g7s3zqcy69slVzQYcphyzkB2FBmJwMbv6k6KjI5mqd6KnUnQPfQVKuVj2l+34EeuxnbXqnrjtUFmxhcL87rg== +jest-watcher@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.5.0.tgz#d6110d101df98badebe435003956fd4a465e8456" + integrity sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q== dependencies: - "@jest/test-result" "^25.2.4" - "@jest/types" "^25.2.3" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" ansi-escapes "^4.2.1" chalk "^3.0.0" - jest-util "^25.2.3" + jest-util "^25.5.0" string-length "^3.1.0" jest-worker@^24.6.0, jest-worker@^24.9.0: @@ -5026,22 +4854,22 @@ jest-worker@^24.6.0, jest-worker@^24.9.0: merge-stream "^2.0.0" supports-color "^6.1.0" -jest-worker@^25.2.1: - version "25.2.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.2.1.tgz#209617015c768652646aa33a7828cc2ab472a18a" - integrity sha512-IHnpekk8H/hCUbBlfeaPZzU6v75bqwJp3n4dUrQuQOAgOneI4tx3jV2o8pvlXnDfcRsfkFIUD//HWXpCmR+evQ== +jest-worker@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" + integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== dependencies: merge-stream "^2.0.0" supports-color "^7.0.0" jest@^25.2.4: - version "25.2.4" - resolved "https://registry.yarnpkg.com/jest/-/jest-25.2.4.tgz#d10941948a2b57eb7accc2e7ae78af4a0e11b40a" - integrity sha512-Lu4LXxf4+durzN/IFilcAoQSisOwgHIXgl9vffopePpSSwFqfj1Pj4y+k3nL8oTbnvjxgDIsEcepy6he4bWqnQ== + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db" + integrity sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ== dependencies: - "@jest/core" "^25.2.4" + "@jest/core" "^25.5.4" import-local "^3.0.2" - jest-cli "^25.2.4" + jest-cli "^25.5.4" jetifier@^1.6.2: version "1.6.5" @@ -5145,17 +4973,10 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" - integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== +json5@^2.1.0, json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== dependencies: minimist "^1.2.5" @@ -5189,9 +5010,9 @@ jsprim@^1.2.2: verror "1.10.0" jsrsasign@^8.0.14: - version "8.0.14" - resolved "https://registry.yarnpkg.com/jsrsasign/-/jsrsasign-8.0.14.tgz#6d5385fd97a9b9064c16fc859884cb7f776a4302" - integrity sha512-W2kger4StyvK5UWD5HCaSmOiJZXLgFflQYPlNtRC6zxu81QWBoW2A7kZvsWO1C5kqpxXL/7z4Mq7vWv/BsvGaA== + version "8.0.15" + resolved "https://registry.yarnpkg.com/jsrsasign/-/jsrsasign-8.0.15.tgz#0d56856efa75fad84b578655249700f500388112" + integrity sha512-6UKHqnNs5lYROn03wf1BTw7DQx5tW616DTigjbo0JHV97D3HzIqYmPVCBSNsfEfQOrfpFqmPZJvaC3cMNOT0Yw== jsx-ast-utils@^2.0.1, jsx-ast-utils@^2.1.0: version "2.2.3" @@ -5242,13 +5063,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -kuler@0.0.x: - version "0.0.0" - resolved "https://registry.yarnpkg.com/kuler/-/kuler-0.0.0.tgz#b66bb46b934e550f59d818848e0abba4f7f5553c" - integrity sha1-tmu0a5NOVQ9Z2BiEjgq7pPf1VTw= - dependencies: - colornames "0.0.2" - latlon-geohash@02.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/latlon-geohash/-/latlon-geohash-2.0.0.tgz#2b0203ab30ef56a18600b0312b8c3a627cbd17d1" @@ -5281,16 +5095,10 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -licenses@0.0.x: - version "0.0.20" - resolved "https://registry.yarnpkg.com/licenses/-/licenses-0.0.20.tgz#f18a57b26a78eaf28a873e2a378a33e81f59d136" - integrity sha1-8YpXsmp46vKKhz4qN4oz6B9Z0TY= - dependencies: - async "0.6.x" - debug "0.8.x" - fusing "0.2.x" - githulk "0.0.x" - npm-registry "0.1.x" +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= load-json-file@^2.0.0: version "2.0.0" @@ -5372,6 +5180,15 @@ log-symbols@^2.2.0: dependencies: chalk "^2.0.1" +logkitty@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/logkitty/-/logkitty-0.7.1.tgz#8e8d62f4085a826e8d38987722570234e33c6aa7" + integrity sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ== + dependencies: + ansi-fragments "^0.2.1" + dayjs "^1.8.15" + yargs "^15.1.0" + logkitty@^0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/logkitty/-/logkitty-0.6.1.tgz#fe29209669d261539cbd6bb998a136fc92a1a05c" @@ -5395,11 +5212,16 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4 dependencies: js-tokens "^3.0.0 || ^4.0.0" -lottie-ios@03.1.6, lottie-ios@^3.1.3: +lottie-ios@03.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/lottie-ios/-/lottie-ios-3.1.6.tgz#e70481f161666caf9f7ed9dba5ac715bc7ad8908" integrity sha512-pnwkPpM3e6CiHY/Mc1eXlDEfvv/CW9jx/TNsX/JWABVF0RiyEidQd8uXBiu5GUxY813pZJN53+k+/cOiAufE5A== +lottie-ios@^3.1.3: + version "3.1.8" + resolved "https://registry.yarnpkg.com/lottie-ios/-/lottie-ios-3.1.8.tgz#2e9b1f4eae0dfc10bf4c0b3ab6b402c1d590d0fa" + integrity sha512-9bgiVn1n+zqWjDPTk4MVWXA+DgVa91payxV2jz8B2dsDFqWtjEqTZaaVo5IqNUExsaC5XkRbziExtTOtzd39tQ== + lottie-react-native@03.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/lottie-react-native/-/lottie-react-native-3.3.2.tgz#de832d4d3207e4e5c92a55ec4cf0ce0fd03e02f3" @@ -5427,9 +5249,9 @@ make-dir@^2.0.0, make-dir@^2.1.0: semver "^5.6.0" make-dir@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" - integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" @@ -5440,19 +5262,6 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -mana@0.1.x: - version "0.1.41" - resolved "https://registry.yarnpkg.com/mana/-/mana-0.1.41.tgz#7cb13f73218668654229635c4fc5b17e26f93b7d" - integrity sha1-fLE/cyGGaGVCKWNcT8Wxfib5O30= - dependencies: - assign ">=0.1.7" - back "1.0.x" - diagnostics "1.0.x" - eventemitter3 "1.2.x" - fusing "1.0.x" - millisecond "0.1.x" - request "2.x.x" - map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -5995,15 +5804,10 @@ micromatch@^4.0.2: braces "^3.0.1" picomatch "^2.0.5" -millisecond@0.1.x: - version "0.1.2" - resolved "https://registry.yarnpkg.com/millisecond/-/millisecond-0.1.2.tgz#6cc5ad386241cab8e78aff964f87028eec92dac5" - integrity sha1-bMWtOGJByrjniv+WT4cCjuyS2sU= - -mime-db@1.43.0, "mime-db@>= 1.43.0 < 2": - version "1.43.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" - integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== +mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== mime-db@~1.23.0: version "1.23.0" @@ -6018,11 +5822,11 @@ mime-types@2.1.11: mime-db "~1.23.0" mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.26" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" - integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== dependencies: - mime-db "1.43.0" + mime-db "1.44.0" mime@1.6.0: version "1.6.0" @@ -6030,9 +5834,9 @@ mime@1.6.0: integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.4.1: - version "2.4.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + version "2.4.5" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.5.tgz#d8de2ecb92982dedbb6541c9b6841d7f218ea009" + integrity sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w== mimic-fn@^1.0.0: version "1.2.0" @@ -6058,11 +5862,6 @@ minimatch@^3.0.2, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" @@ -6076,12 +5875,12 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.1, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= +mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: - minimist "0.0.8" + minimist "^1.2.5" mock-async-storage@2.2.0: version "2.2.0" @@ -6097,21 +5896,26 @@ moment-timezone@0.5.28: dependencies: moment ">= 2.9.0" -moment@2.24.0, "moment@>= 2.9.0": +moment@2.24.0: version "2.24.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== +"moment@>= 2.9.0": + version "2.25.3" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.25.3.tgz#252ff41319cf41e47761a1a88cab30edfe9808c0" + integrity sha512-PuYv0PHxZvzc15Sp8ybUCoQ+xpyPWvjOuK72a5ovzp2LI32rJXOiIfyoFoYvG3s6EwwrdkMyWuRiEHSZRLJNdg== + morgan@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59" - integrity sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA== + version "1.10.0" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" + integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== dependencies: - basic-auth "~2.0.0" + basic-auth "~2.0.1" debug "2.6.9" - depd "~1.1.2" + depd "~2.0.0" on-finished "~2.3.0" - on-headers "~1.0.1" + on-headers "~1.0.2" ms@2.0.0: version "2.0.0" @@ -6134,15 +5938,20 @@ mute-stream@0.0.7: integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= nan@^2.12.1: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + version "2.14.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== nanoid@^2.1.0: version "2.1.11" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== +nanoid@^3.1.5: + version "3.1.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.7.tgz#3705ccf590b6a51fbd1794fcf204ce7b5dc46c01" + integrity sha512-ruOwuatdEf4BxQmZopZqhIMudQ9V83aKocr+q2Y7KasnDNvo2OgbgZBYago5hSD0tCmoSl4flIw9ytDLIVM2IQ== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -6220,7 +6029,7 @@ node-notifier@^6.0.0: shellwords "^0.1.1" which "^1.3.1" -normalize-package-data@^2.3.2: +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -6242,17 +6051,6 @@ normalize-path@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-registry@0.1.x, npm-registry@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/npm-registry/-/npm-registry-0.1.13.tgz#9e5d8b2fdfc1ab5990d47f7debbe231d79a9e822" - integrity sha1-nl2LL9/Bq1mQ1H99674jHXmp6CI= - dependencies: - debug "0.8.x" - extract-github "0.0.x" - licenses "0.0.x" - mana "0.1.x" - semver "2.2.x" - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -6375,7 +6173,7 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" -on-headers@~1.0.1, on-headers@~1.0.2: +on-headers@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== @@ -6498,9 +6296,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0, p-limit@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" - integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" @@ -6557,6 +6355,16 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + parse-node-version@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" @@ -6626,11 +6434,6 @@ pegjs@^0.10.0: resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd" integrity sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0= -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -6732,13 +6535,6 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -predefine@0.1.x: - version "0.1.2" - resolved "https://registry.yarnpkg.com/predefine/-/predefine-0.1.2.tgz#2aa92b4496bc1f8554e43a45f76bfbe50d33d37f" - integrity sha1-KqkrRJa8H4VU5DpF92v75Q0z038= - dependencies: - extendible "0.1.x" - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -6759,22 +6555,12 @@ pretty-format@^24.7.0, pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" -pretty-format@^25.1.0: - version "25.1.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.1.0.tgz#ed869bdaec1356fc5ae45de045e2c8ec7b07b0c8" - integrity sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ== - dependencies: - "@jest/types" "^25.1.0" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^16.12.0" - -pretty-format@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.2.3.tgz#ba6e9603a0d80fa2e470b1fed55de1f9bfd81421" - integrity sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w== +pretty-format@^25.1.0, pretty-format@^25.2.1, pretty-format@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" + integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== dependencies: - "@jest/types" "^25.2.3" + "@jest/types" "^25.5.0" ansi-regex "^5.0.0" ansi-styles "^4.0.0" react-is "^16.12.0" @@ -6812,14 +6598,6 @@ promise@^7.1.1: asap "~2.0.3" prompts@^2.0.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.1.tgz#b63a9ce2809f106fa9ae1277c275b167af46ea05" - integrity sha512-qIP2lQyCwYbdzcqHIUi2HAxiWixhoM9OdLCWf8txXsapC/X9YdsCoeyRIXE/GP+Q0J37Q7+XN/MFqbUa7IzXNA== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.4" - -prompts@^2.3.0: version "2.3.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== @@ -6842,9 +6620,9 @@ pseudomap@^1.0.2: integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.28: - version "1.7.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" - integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ== + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== pump@^3.0.0: version "3.0.0" @@ -6864,15 +6642,20 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -query-string@^6.10.1: - version "6.11.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.11.1.tgz#ab021f275d463ce1b61e88f0ce6988b3e8fe7c2c" - integrity sha512-1ZvJOUl8ifkkBxu2ByVM/8GijMIPx+cef7u3yroO3Ogm4DOdZcF5dcrWTIlSHe3Pg/mtlt6/eFjObDfJureZZA== +query-string@^6.12.1: + version "6.12.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.12.1.tgz#2ae4d272db4fba267141665374e49a1de09e8a7c" + integrity sha512-OHj+zzfRMyj3rmo/6G8a5Ifvw3AleL/EbcHMD27YA31Q+cO5lfmQxECkImuNVjcskLcvBRVHNAB3w6udMs1eAA== dependencies: decode-uri-component "^0.2.0" split-on-first "^1.0.0" strict-uri-encode "^2.0.0" +random-location@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/random-location/-/random-location-1.1.3.tgz#b33e236f86588a710f4aff686b63e0595f79828e" + integrity sha512-+9SZa8R0JTfjrdgImCyq4TJRDzGHfUM9qghsA3D7zrMnUaQVn/xIDtFI+yPegJGO7KuIkduNlL8JXqu3M7Au7w== + range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -6891,10 +6674,10 @@ react-devtools-core@^3.6.3: shell-quote "^1.6.1" ws "^3.3.1" -react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.9.0: - version "16.13.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527" - integrity sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA== +react-is@^16.12.0, react-is@^16.13.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.9.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-native-animatable@1.3.3: version "1.3.3" @@ -7010,26 +6793,25 @@ react-native-sha1@1.2.3: "react-native-splash-screen@https://github.com/greenyossi/react-native-splash-screen.git": version "3.4.0" - resolved "https://github.com/greenyossi/react-native-splash-screen.git#cf4cabb8e5269a18a764d8bfc7e66c737a0732ae" + resolved "https://github.com/greenyossi/react-native-splash-screen.git#e9c32d6c1fac8953ef80730ed69042b7c8068dd2" react-native-sqlite-storage@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/react-native-sqlite-storage/-/react-native-sqlite-storage-4.1.0.tgz#641780eef06bc90b853d3dcd628c0fe54b656d7b" integrity sha512-H8++CILlZQ2f2n+OvVmGyqMaV+UFKTRSTx9/3eIAxBg4d0rjeZogs6hgHlfADvEGNmrEyUBDpnX9+uHnDtwAHQ== -react-native-uuid-generator@6.1.1: +react-native-uuid-generator@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/react-native-uuid-generator/-/react-native-uuid-generator-6.1.1.tgz#59ca80f1eacd282311593af49fde34331d712b6e" integrity sha512-jWF0wiGTUTkCBTpspUZatC7wlhjN3GRbW9YblaxxpuMuhk0DEOQXOp1qgsDd2vLTL8GsM3i7Hnatvfj1kwf88w== -react-native-webview@9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-9.0.1.tgz#81ae3aa33e446f1c93586f972092f805ab07b03a" - integrity sha512-BAFjItI8hrhLRtG5TeN18s53SUJjyjhH4HlVbl9trZLzJVPqG/VQmG9AaAk88hzOR8QvKf8dOg8qDuoHhs0M8g== +react-native-webview@^9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-9.4.0.tgz#108da34a6c7e1c032dcabc942b7e4947ca1d8028" + integrity sha512-BBOFUuza0p04+7fNi7TJmB0arpDJzGxHYwTCgI4vj5n/fl7u4jbm7ETp88mf7lo9lP6C6HGLo38KnEy1aXCQkg== dependencies: escape-string-regexp "2.0.0" invariant "2.2.4" - rnpm-plugin-windows "^0.5.1-0" react-native-wifi-reborn@2.4.0: version "2.4.0" @@ -7139,6 +6921,15 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" @@ -7157,6 +6948,16 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -7229,9 +7030,9 @@ regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4: integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== regenerator-transform@^0.14.2: - version "0.14.3" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.3.tgz#54aebff2ef58c0ae61e695ad1b9a9d65995fff78" - integrity sha512-zXHNKJspmONxBViAb3ZUmFoFPnTBs3zFhCEZJiwp/gkNzxVbTqNJVjYKx6Qk1tQ1P4XLf4TbH9+KBB7wGoAaUw== + version "0.14.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" + integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== dependencies: "@babel/runtime" "^7.8.4" private "^0.1.8" @@ -7250,9 +7051,9 @@ regexpp@^2.0.1: integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== regexpp@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" - integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== regexpu-core@^4.7.0: version "4.7.0" @@ -7309,7 +7110,7 @@ request-promise-native@^1.0.7: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@2.x.x, request@^2.88.0: +request@^2.88.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -7382,10 +7183,10 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0: - version "1.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" @@ -7428,6 +7229,10 @@ rimraf@~2.2.6: resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI= +"rn-contact-tracing@https://github.com/wix-incubator/rn-contact-tracing.git#master": + version "0.0.3" + resolved "https://github.com/wix-incubator/rn-contact-tracing.git#4038ca8f41592a1f7ceb820a9fed4f2ba5356831" + rn-fetch-blob@0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/rn-fetch-blob/-/rn-fetch-blob-0.12.0.tgz#ec610d2f9b3f1065556b58ab9c106eeb256f3cba" @@ -7436,31 +7241,15 @@ rn-fetch-blob@0.12.0: base-64 "0.1.0" glob "7.0.6" -rnpm-plugin-windows@^0.5.1-0: - version "0.5.1-0" - resolved "https://registry.yarnpkg.com/rnpm-plugin-windows/-/rnpm-plugin-windows-0.5.1-0.tgz#9ffdd38653c6024c538a98a1046a37625d56eddb" - integrity sha512-0EX2shP1OI18MylpVHmZRhDX5GSdvHDgSQoFDZx/Ir73dt3dPVtz7iNviiz3vPa8/8HgTOog3Xzn/gXxfPRrnw== - dependencies: - chalk "^1.1.3" - extract-zip "^1.6.7" - fs-extra "^7.0.1" - npm-registry "^0.1.13" - prompts "^2.3.0" - request "^2.88.0" - semver "^6.1.1" - valid-url "^1.0.9" - rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== run-async@^2.2.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" - integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== - dependencies: - is-promise "^2.1.0" + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== rx-lite-aggregates@^4.0.8: version "4.0.8" @@ -7482,9 +7271,9 @@ rxjs@^5.4.3: symbol-observable "1.0.1" rxjs@^6.4.0: - version "6.5.4" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" - integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== + version "6.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" + integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== dependencies: tslib "^1.9.0" @@ -7494,9 +7283,9 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-buffer@^5.0.1, safe-buffer@^5.1.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex@^1.1.0: version "1.1.0" @@ -7555,17 +7344,12 @@ seedrandom@^3.0.5: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@2.2.x: - version "2.2.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-2.2.1.tgz#7941182b3ffcc580bff1c17942acdf7951c0d213" - integrity sha1-eUEYKz/8xYC/8cF5QqzfeVHA0hM= - semver@5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -7689,9 +7473,9 @@ shortid@^2.2.15: nanoid "^2.1.0" signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== simple-plist@^0.2.1: version "0.2.1" @@ -7719,9 +7503,9 @@ simple-swizzle@^0.2.2: is-arrayish "^0.3.1" sisteransi@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3" - integrity sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig== + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== slash@^2.0.0: version "2.0.0" @@ -7789,9 +7573,9 @@ source-map-resolve@^0.5.0: urix "^0.1.0" source-map-support@^0.5.16, source-map-support@^0.5.6: - version "0.5.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -7825,9 +7609,9 @@ spdx-correct@^3.0.0: spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: version "3.0.0" @@ -7880,9 +7664,9 @@ stack-utils@^1.0.1: integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== stacktrace-parser@^0.1.3: - version "0.1.9" - resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.9.tgz#11e6d61d42e8cfc87293143d0766408b7a87b00f" - integrity sha512-DRy03ljj0367Ud3OAJHD6eVS/+CvMK2u/djVYuU37fHYcYHoZ8tkFyhbRf7PNG1h3bWLsw+SNTSXrPFe07A7aQ== + version "0.1.10" + resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" + integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== dependencies: type-fest "^0.7.1" @@ -7957,21 +7741,39 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string.prototype.trimend@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimleft@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" - integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" string.prototype.trimright@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" - integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" string_decoder@~1.1.1: version "1.1.1" @@ -8029,19 +7831,14 @@ strip-final-newline@^2.0.0: integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-json-comments@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" - integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" + integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== sudo-prompt@^9.0.0: - version "9.1.1" - resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.1.1.tgz#73853d729770392caec029e2470db9c221754db0" - integrity sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA== - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + version "9.2.1" + resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.2.1.tgz#77efb84309c9ca489527a4e749f287e6bdd52afd" + integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw== supports-color@^5.3.0: version "5.5.0" @@ -8132,11 +7929,6 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -text-hex@0.0.x: - version "0.0.0" - resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-0.0.0.tgz#578fbc85a6a92636e42dd17b41d0218cce9eb2b3" - integrity sha1-V4+8haapJjbkLdF7QdAhjM6esrM= - text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -8254,9 +8046,9 @@ tslib@1.9.0: integrity sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ== tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + version "1.12.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.12.0.tgz#d1fc9cacd06a1456c62f2902b361573e83d66473" + integrity sha512-5rxCQkP0kytf4H1T4xz1imjxaUUPMvc5aWp0rJ/VMIN7ClRiH1FwFvBt8wOeMasp/epeUnmSW6CixSIePtiLqA== tslint-config-prettier@1.18.0: version "1.18.0" @@ -8341,11 +8133,21 @@ type-fest@^0.11.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + type-fest@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -8449,10 +8251,10 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -use-subscription@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.4.0.tgz#c4e808cfed6fe6e1ac875df1369c63f3ddae9522" - integrity sha512-R7P7JWpeHp+dtEYsgDzIIgOmVqRfJjRjLOO0YIYk6twctUkUYe6Tz0pcabyTDGcMMRt9uMbFMfwBfxKHg9gCSw== +use-subscription@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.4.1.tgz#edcbcc220f1adb2dd4fa0b2f61b6cc308e620069" + integrity sha512-7+IIwDG/4JICrWHL/Q/ZPK5yozEnvRm6vHImu0LKwQlmWGKeiF7mbAenLlK/cTNXrTtXHU/SFASQHzB6+oSJMQ== dependencies: object-assign "^4.1.1" @@ -8496,20 +8298,15 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== -v8-to-istanbul@^4.0.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz#22fe35709a64955f49a08a7c7c959f6520ad6f20" - integrity sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng== +v8-to-istanbul@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6" + integrity sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" source-map "^0.7.3" -valid-url@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" - integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA= - validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -8702,9 +8499,9 @@ ws@^3.3.1: ultron "~1.1.0" ws@^7.0.0: - version "7.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" - integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== + version "7.3.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" + integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== xcode@^0.9.1: version "0.9.3" @@ -8765,7 +8562,7 @@ xpipe@^1.0.5: resolved "https://registry.yarnpkg.com/xpipe/-/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf" integrity sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98= -xtend@^4.0.0, xtend@~4.0.1: +xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -8794,9 +8591,9 @@ yargs-parser@^11.1.1: decamelize "^1.2.0" yargs-parser@^18.1.1: - version "18.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1" - integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ== + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -8826,7 +8623,7 @@ yargs@^12.0.5: y18n "^3.2.1 || ^4.0.0" yargs-parser "^11.1.1" -yargs@^15.3.1: +yargs@^15.1.0, yargs@^15.3.1: version "15.3.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== @@ -8861,10 +8658,3 @@ yargs@^9.0.0: which-module "^2.0.0" y18n "^3.2.1" yargs-parser "^7.0.0" - -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" - integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= - dependencies: - fd-slicer "~1.0.1"