diff --git a/.gitignore b/.gitignore index 7866e9eb7797cfe9088982aa2fa822a452add7b8..e8ec7b70816a8eea0da8d4db5bb2cf7757dcca90 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ +.idea/ bin/ gen/ *.iml -.project .classpath +.project project.properties diff --git a/Android.bp b/Android.bp index 2314a74c32017c1bff59607fbad59c5352c8696d..05c44ed0597e3ac454f401d508ace1264b8d77a5 100644 --- a/Android.bp +++ b/Android.bp @@ -1,9 +1,52 @@ +// +// Copyright (C) 2019 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +genrule { + name: "statslog-permissioncontroller-java-gen", + tools: ["stats-log-api-gen"], + cmd: "$(location stats-log-api-gen) --java $(out) --module permissioncontroller --javaPackage com.android.packageinstaller --javaClass PermissionControllerStatsLog", + out: ["com/android/packageinstaller/PermissionControllerStatsLog.java"], +} + +java_library { + name: "permissioncontroller-statsd", + sdk_version: "system_current", + + srcs: [ + ":statslog-permissioncontroller-java-gen", + ], +} + android_app { - name: "PackageInstaller", - srcs: ["src/**/*.java"], + name: "PermissionController", + sdk_version: "system_current", + min_sdk_version: "28", + privileged: true, + certificate: "platform", + + srcs: [ + "src/**/*.java", + "src/**/*.proto", + ], + static_libs: [ - "androidx.car_car", + "iconloader", + "com.google.android.material_material", "androidx.transition_transition", + "androidx-constraintlayout_constraintlayout", "androidx.core_core", "androidx.media_media", "androidx.legacy_legacy-support-core-utils", @@ -15,17 +58,25 @@ android_app { "androidx.legacy_legacy-preference-v14", "androidx.leanback_leanback", "androidx.leanback_leanback-preference", - "car-list", - "SettingsLib", - "xz-java", + "androidx.lifecycle_lifecycle-extensions", + "androidx.lifecycle_lifecycle-common-java8", + "SettingsLibHelpUtils", + "SettingsLibRestrictedLockUtils", + "SettingsLibAppPreference", + "SettingsLibSearchWidget", + "SettingsLibLayoutPreference", + "SettingsLibBarChartPreference", + "SettingsLibActionBarShadow", + "SettingsLibProgressBar", "androidx.annotation_annotation", + "permissioncontroller-statsd" ], - certificate: "platform", - privileged: true, + + proto: { + type: "lite", + }, + optimize: { proguard_flags_files: ["proguard.flags"], }, - // Comment for now unitl all private API dependencies are removed - // LOCAL_SDK_VERSION := system_current - platform_apis: true, } diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 67e0b4cdea517d7059902a073beed023bf033917..9c4bf5bf7bdd313815f3f651c7f4aa28faa5c1a3 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,194 +1,312 @@ - + - + + + - - - - - - + + - - - + - - - - + + + + + + + + + + + + + - - + + + - - - - - - - - + + + + + + + + + + + + + + - + - - - + + + - + + + + - - - + - + + + + + + + - + + + + + + - + - + + - + - + - + - + - - + - - + - + + - - - + - + + + + + + + + + + + + + + - + + + + + + - + - + - + android:noHistory="true" + android:theme="@android:style/Theme.NoDisplay"> + + + + + + + - - - + - + + + + android:noHistory="true" + android:theme="@android:style/Theme.NoDisplay"> - + + - + + + + + - - + + + + + - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + - diff --git a/OWNERS b/OWNERS index bda45f606696095e0a5e8e07faa32c3addda69c4..021a6c2d22416a3075855841d4d8892a8586deb3 100644 --- a/OWNERS +++ b/OWNERS @@ -7,4 +7,7 @@ eugenesusla@google.com # For automotive related changes stenning@google.com -rogerxue@google.com +davidln@google.com + +# For incident report related changes +joeo@google.com diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg index 1a4ce243bc569a4922656fc275f583f6c470f77e..94e464042243db4e0ff5aa9e738a5dde0e56b1bf 100644 --- a/PREUPLOAD.cfg +++ b/PREUPLOAD.cfg @@ -4,4 +4,4 @@ commit_msg_changeid_field = true [Hook Scripts] checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT} - +strings_lint_hook = ${REPO_ROOT}/frameworks/base/tools/stringslint/stringslint_sha.sh ${PREUPLOAD_COMMIT} diff --git a/TEST_MAPPING b/TEST_MAPPING new file mode 100644 index 0000000000000000000000000000000000000000..4cb5d23d06a61929995d8c360eab937ab53cac76 --- /dev/null +++ b/TEST_MAPPING @@ -0,0 +1,21 @@ +{ + "presubmit": [ + { + "name": "CtsPermissionTestCases", + "options": [ + { + "include-filter": "android.permission.cts.BackgroundPermissionsTest" + } + ] + }, + { + "name": "CtsRoleTestCases", + "options": [ + { + "exclude-annotation": "androidx.test.filters.FlakyTest" + } + ], + "file_patterns": ["res/xml/roles\\.xml"] + } + ] +} diff --git a/proguard.flags b/proguard.flags index 46a929e383e05caf65be83959b3e6063f3566155..a2e58846e2057852bb959b483533dfe36484a1f5 100644 --- a/proguard.flags +++ b/proguard.flags @@ -6,3 +6,8 @@ *; } -dontwarn androidx.core.** + +# Keep classes that implements RoleBehavior, which are used by reflection. +-keep class * implements com.android.packageinstaller.role.model.RoleBehavior { + *; +} diff --git a/res/drawable-hdpi/ic_fail.png b/res/drawable-hdpi/ic_fail.png deleted file mode 100644 index 30f75632cb92f495a943fc6f9f4e1427399cdf9a..0000000000000000000000000000000000000000 Binary files a/res/drawable-hdpi/ic_fail.png and /dev/null differ diff --git a/res/drawable-hdpi/ic_success.png b/res/drawable-hdpi/ic_success.png deleted file mode 100644 index f36d491a6be7e0e78fac93d5ecb1d4c53fca4fc3..0000000000000000000000000000000000000000 Binary files a/res/drawable-hdpi/ic_success.png and /dev/null differ diff --git a/res/drawable-hdpi/tab_unselected_holo.9.png b/res/drawable-hdpi/tab_unselected_holo.9.png deleted file mode 100644 index 19532ab10d4fe414d597ed44ed50c91a3e3b9279..0000000000000000000000000000000000000000 Binary files a/res/drawable-hdpi/tab_unselected_holo.9.png and /dev/null differ diff --git a/res/drawable-mdpi/ic_fail.png b/res/drawable-mdpi/ic_fail.png deleted file mode 100644 index 12e269ea4fa664b4f8db5f48715368b67b250468..0000000000000000000000000000000000000000 Binary files a/res/drawable-mdpi/ic_fail.png and /dev/null differ diff --git a/res/drawable-mdpi/ic_success.png b/res/drawable-mdpi/ic_success.png deleted file mode 100644 index 51aab2e74242772a785f6ed6d87c3d6fe13c369f..0000000000000000000000000000000000000000 Binary files a/res/drawable-mdpi/ic_success.png and /dev/null differ diff --git a/res/drawable-mdpi/tab_unselected_holo.9.png b/res/drawable-mdpi/tab_unselected_holo.9.png deleted file mode 100644 index a2dbf42b74f7fafb6d8a057306a9c021867d035c..0000000000000000000000000000000000000000 Binary files a/res/drawable-mdpi/tab_unselected_holo.9.png and /dev/null differ diff --git a/res/drawable-xhdpi/ic_fail.png b/res/drawable-xhdpi/ic_fail.png deleted file mode 100644 index 6deb808c81f9881494e34291f7c9588037a78db6..0000000000000000000000000000000000000000 Binary files a/res/drawable-xhdpi/ic_fail.png and /dev/null differ diff --git a/res/drawable-xhdpi/ic_success.png b/res/drawable-xhdpi/ic_success.png deleted file mode 100644 index 25f8658f5c39e86a4bfe4438dacf7cb2b59a5d71..0000000000000000000000000000000000000000 Binary files a/res/drawable-xhdpi/ic_success.png and /dev/null differ diff --git a/res/drawable-xhdpi/tab_unselected_holo.9.png b/res/drawable-xhdpi/tab_unselected_holo.9.png deleted file mode 100644 index 9465173781eaa7fc9ab0e191904f928ad1c0b8f4..0000000000000000000000000000000000000000 Binary files a/res/drawable-xhdpi/tab_unselected_holo.9.png and /dev/null differ diff --git a/res/drawable-xxhdpi/tab_unselected_holo.9.png b/res/drawable-xxhdpi/tab_unselected_holo.9.png deleted file mode 100644 index 8fcecf76c1997917acacb7a5f4065614a9299512..0000000000000000000000000000000000000000 Binary files a/res/drawable-xxhdpi/tab_unselected_holo.9.png and /dev/null differ diff --git a/res/drawable/button_ripple_bg.xml b/res/drawable/button_ripple_bg.xml new file mode 100644 index 0000000000000000000000000000000000000000..a5d21f0773b14d5555b5677044f2af164308641e --- /dev/null +++ b/res/drawable/button_ripple_bg.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/res/drawable/car_ic_info.xml b/res/drawable/car_ic_info.xml new file mode 100644 index 0000000000000000000000000000000000000000..bc334fb0fb90b8e8b055ab1a18d33ec344368151 --- /dev/null +++ b/res/drawable/car_ic_info.xml @@ -0,0 +1,25 @@ + + + + diff --git a/res/drawable/car_ic_settings.xml b/res/drawable/car_ic_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..f278af91bc0acb565ec80dd66688dc32e7ea151a --- /dev/null +++ b/res/drawable/car_ic_settings.xml @@ -0,0 +1,34 @@ + + + + diff --git a/res/drawable/ic_android_92.xml b/res/drawable/ic_android_92.xml deleted file mode 100644 index 1d3791c1b26d1f3cd9b1c6f7856e4949b77553fd..0000000000000000000000000000000000000000 --- a/res/drawable/ic_android_92.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - diff --git a/res/drawable/ic_arrow_back.xml b/res/drawable/ic_arrow_back.xml index 81da87fd1d5d2fd721e0c537a3ca6dad24cdd1f7..36a3593d3687c433721e6f9efdc4fddf6dc29266 100644 --- a/res/drawable/ic_arrow_back.xml +++ b/res/drawable/ic_arrow_back.xml @@ -18,9 +18,9 @@ ~ does not provide a way to customize it. Here to center the icon in action bar, we make up ~ the margin by add the extra space in the icon itself --> diff --git a/res/drawable/ic_done_92.xml b/res/drawable/ic_arrow_down.xml similarity index 63% rename from res/drawable/ic_done_92.xml rename to res/drawable/ic_arrow_down.xml index 185b274dc36a15ebaa151d7a34839e01454dd1c0..a9ecf10460f2a8fe81042e9e8489d3a637c210ff 100644 --- a/res/drawable/ic_done_92.xml +++ b/res/drawable/ic_arrow_down.xml @@ -1,5 +1,4 @@ - - + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0" + android:tint="?android:attr/textColorPrimary"> - + android:pathData="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z" /> + + \ No newline at end of file diff --git a/res/drawable/ic_report_problem_92.xml b/res/drawable/ic_arrow_up.xml similarity index 64% rename from res/drawable/ic_report_problem_92.xml rename to res/drawable/ic_arrow_up.xml index c90a33ed68b2fb22432109d64dfac084a2c88259..8366f003b136c2e6db6899bcc45fb5e92216e2d6 100644 --- a/res/drawable/ic_report_problem_92.xml +++ b/res/drawable/ic_arrow_up.xml @@ -1,5 +1,4 @@ - - + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0" + android:tint="?android:attr/textColorPrimary"> - + android:pathData="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z" /> + + \ No newline at end of file diff --git a/res/drawable/ic_bug_report_black_24dp.xml b/res/drawable/ic_bug_report_black_24dp.xml new file mode 100644 index 0000000000000000000000000000000000000000..fe7e443bb79aca04f7c1d960796fcbb829e0ecfa --- /dev/null +++ b/res/drawable/ic_bug_report_black_24dp.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/res/drawable/ic_error.xml b/res/drawable/ic_error.xml deleted file mode 100644 index 28612a1c87ccd33135ea8e954fccd9ed7f9ac5b5..0000000000000000000000000000000000000000 --- a/res/drawable/ic_error.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - diff --git a/res/drawable/ic_info.xml b/res/drawable/ic_info.xml new file mode 100644 index 0000000000000000000000000000000000000000..365bd338aaefc5621889df18071906bc442b3e59 --- /dev/null +++ b/res/drawable/ic_info.xml @@ -0,0 +1,25 @@ + + + + \ No newline at end of file diff --git a/res/drawable/ic_info_outline.xml b/res/drawable/ic_info_outline.xml index 86597586d9e6ba0dbb1a79bc467f966465e180ed..b57df44955482150f91157db15cefba53605ecbc 100644 --- a/res/drawable/ic_info_outline.xml +++ b/res/drawable/ic_info_outline.xml @@ -1,24 +1,30 @@ - - http://www.apache.org/licenses/LICENSE-2.0 + - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - + android:fillColor="#FF000000" + android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z" /> diff --git a/res/drawable/ic_lock.xml b/res/drawable/ic_info_outline_accent.xml similarity index 56% rename from res/drawable/ic_lock.xml rename to res/drawable/ic_info_outline_accent.xml index 396bd988eb80a9fa523a60659b85c4cd60c15d5b..86597586d9e6ba0dbb1a79bc467f966465e180ed 100644 --- a/res/drawable/ic_lock.xml +++ b/res/drawable/ic_info_outline_accent.xml @@ -1,4 +1,3 @@ - - - + android:width="24.0dp" + android:height="24.0dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0"> + android:fillColor="?android:attr/colorAccent" + android:pathData="M11.0,17.0l2.0,0.0l0.0,-6.0l-2.0,0.0l0.0,6.0zm1.0,-15.0C6.48,2.0 2.0,6.48 2.0,12.0s4.48,10.0 10.0,10.0 10.0,-4.48 10.0,-10.0S17.52,2.0 12.0,2.0zm0.0,18.0c-4.41,0.0 -8.0,-3.59 -8.0,-8.0s3.59,-8.0 8.0,-8.0 8.0,3.59 8.0,8.0 -3.59,8.0 -8.0,8.0zM11.0,9.0l2.0,0.0L13.0,7.0l-2.0,0.0l0.0,2.0z"/> diff --git a/res/drawable/ic_permission_controller_app_icon.xml b/res/drawable/ic_permission_controller_app_icon.xml new file mode 100644 index 0000000000000000000000000000000000000000..0e758498ba808a01206fb12f03047331197d39e0 --- /dev/null +++ b/res/drawable/ic_permission_controller_app_icon.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/res/drawable/ic_settings_multiuser.xml b/res/drawable/ic_pin_drop.xml similarity index 51% rename from res/drawable/ic_settings_multiuser.xml rename to res/drawable/ic_pin_drop.xml index b24a5d434c54a889353e55c3bebd740d7b1ced0d..f28de800d24b5a51718ab26be2ea92828c2a2d3c 100644 --- a/res/drawable/ic_settings_multiuser.xml +++ b/res/drawable/ic_pin_drop.xml @@ -1,5 +1,6 @@ + + + android:viewportHeight="24.0"> + + android:fillColor="@color/system_notification_accent_color" + android:pathData="M12,7c-1.1,0 -2,0.9 -2,2s0.9,2 2,2a2,2 0,1 0,0 -4zM5,20h14v2H5v-2z"/> diff --git a/res/drawable/ic_refresh.xml b/res/drawable/ic_refresh.xml new file mode 100644 index 0000000000000000000000000000000000000000..d6dceaabc2ab1277c80c14be4cc7af083b0b19fb --- /dev/null +++ b/res/drawable/ic_refresh.xml @@ -0,0 +1,28 @@ + + + + + + \ No newline at end of file diff --git a/res/drawable/ic_remove.xml b/res/drawable/ic_remove.xml deleted file mode 100644 index dd46eda652673426f7210a9e5201235e9e104de6..0000000000000000000000000000000000000000 --- a/res/drawable/ic_remove.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - diff --git a/res/drawable/ic_remove_circle.xml b/res/drawable/ic_remove_circle.xml new file mode 100644 index 0000000000000000000000000000000000000000..8bceb9423e78956d1e652f23a30e59493a19cc77 --- /dev/null +++ b/res/drawable/ic_remove_circle.xml @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/res/drawable/ic_settings.xml b/res/drawable/ic_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..28fb10dfab5d7ee6bba4b7f03b9b0d6c2771b307 --- /dev/null +++ b/res/drawable/ic_settings.xml @@ -0,0 +1,34 @@ + + + + \ No newline at end of file diff --git a/res/drawable/ic_settings_outline.xml b/res/drawable/ic_settings_outline.xml new file mode 100644 index 0000000000000000000000000000000000000000..fd826b342bc5b5a556078cf3796aed5ded4cdc7d --- /dev/null +++ b/res/drawable/ic_settings_outline.xml @@ -0,0 +1,29 @@ + + + + + + \ No newline at end of file diff --git a/res/drawable/ic_settings_outline_accent.xml b/res/drawable/ic_settings_outline_accent.xml new file mode 100644 index 0000000000000000000000000000000000000000..06aefa8d1a1e24dad9d7dd3ba35f73a71eca628d --- /dev/null +++ b/res/drawable/ic_settings_outline_accent.xml @@ -0,0 +1,34 @@ + + + + + + + + + + diff --git a/res/drawable/ic_success_material.xml b/res/drawable/list_divider.xml similarity index 67% rename from res/drawable/ic_success_material.xml rename to res/drawable/list_divider.xml index ebcce3b5532c8755d13a65f5918103bd8894b2d1..f9dc5510fba17ff74f1a8d3075d2e9bda6363515 100644 --- a/res/drawable/ic_success_material.xml +++ b/res/drawable/list_divider.xml @@ -1,5 +1,5 @@ - - + + + + + diff --git a/res/drawable/list_divider_dark.xml b/res/drawable/list_divider_dark.xml new file mode 100644 index 0000000000000000000000000000000000000000..c5af982bd51c71ea4447140ba938e73fbd01abbb --- /dev/null +++ b/res/drawable/list_divider_dark.xml @@ -0,0 +1,24 @@ + + + + + + + \ No newline at end of file diff --git a/res/drawable/permission_controller_app_icon_foreground.xml b/res/drawable/permission_controller_app_icon_foreground.xml new file mode 100644 index 0000000000000000000000000000000000000000..1ad7eebc0bc43bbc27febf3aaee8af400330e8b4 --- /dev/null +++ b/res/drawable/permission_controller_app_icon_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + diff --git a/res/drawable/rectangle_ripple_mask.xml b/res/drawable/rectangle_ripple_mask.xml new file mode 100644 index 0000000000000000000000000000000000000000..15685823c166d69f7f96592d043b6589c97c3123 --- /dev/null +++ b/res/drawable/rectangle_ripple_mask.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/res/layout-television/app_details.xml b/res/layout-television/app_details.xml deleted file mode 100644 index 86923c5cb54acdbe80a9f3c2440b4af5fc5baa5e..0000000000000000000000000000000000000000 --- a/res/layout-television/app_details.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - diff --git a/res/layout-television/uninstall_progress.xml b/res/layout-television/uninstall_progress.xml deleted file mode 100644 index e24f63b5e108316800dc449a5689f901f6cc7bec..0000000000000000000000000000000000000000 --- a/res/layout-television/uninstall_progress.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + style="@style/PermissionGrantDescription"> + + - - - + android:id="@+id/permission_message" + style="@style/PermissionGrantTitleMessage" /> + - - - - - - - - - - + - + + + + + + + style="@style/PermissionReviewButtonBarSpace"> - + style="@style/PermissionReviewButtonBar"> - + diff --git a/res/layout/settings.xml b/res/layout/settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..bc34f2db5e95fcdba49aa3413c60ba4cd2ee813a --- /dev/null +++ b/res/layout/settings.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + diff --git a/res/layout/settings_button_preference_widget.xml b/res/layout/settings_button_preference_widget.xml new file mode 100644 index 0000000000000000000000000000000000000000..1c1025a21148176d9cadbc06ec70a950db01bd4e --- /dev/null +++ b/res/layout/settings_button_preference_widget.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + diff --git a/res/layout/settings_preference_widget.xml b/res/layout/settings_preference_widget.xml new file mode 100644 index 0000000000000000000000000000000000000000..70f8cd658a4228e05867faaa10ad2340dcad3855 --- /dev/null +++ b/res/layout/settings_preference_widget.xml @@ -0,0 +1,23 @@ + + + + diff --git a/res/layout/title_summary_image_view.xml b/res/layout/title_summary_image_view.xml new file mode 100644 index 0000000000000000000000000000000000000000..2aa144072cf8aacda1fe7aa9117d914d78b130bc --- /dev/null +++ b/res/layout/title_summary_image_view.xml @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/res/layout/two_target_preference.xml b/res/layout/two_target_preference.xml new file mode 100644 index 0000000000000000000000000000000000000000..4e3fce9e771c932727887ec91d19050e5ef0a023 --- /dev/null +++ b/res/layout/two_target_preference.xml @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/res/layout/uninstall_confirm.xml b/res/layout/uninstall_confirm.xml deleted file mode 100644 index 4c81771674643776d56d30c79b7b9156cb180882..0000000000000000000000000000000000000000 --- a/res/layout/uninstall_confirm.xml +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -