chiark / gitweb /
consolidate all post-parse metadata checks
authorHans-Christoph Steiner <hans@eds.org>
Thu, 23 Jul 2015 22:09:57 +0000 (15:09 -0700)
committerHans-Christoph Steiner <hans@eds.org>
Tue, 1 Sep 2015 09:39:51 +0000 (11:39 +0200)
This puts all of the needed post parsing checks on the metadata into a
single method that is used by all parsing methods (.txt, JSON, XML, YAML).
This provides the single place to normalize the internal representation of
the metadata.

It would be good to also change the internal representation to use more Python
bool/int types so that less post parsing is needed for JSON, XML, and YAML.

The SMSSecure test .pickle was changed to account for the use of lstrip()
and rstrip() on all 'script' types.

This also changes the example JSON to use ints for versionCodes

fdroidserver/metadata.py
tests/metadata/org.adaway.json
tests/metadata/org.adaway.pickle
tests/metadata/org.smssecure.smssecure.pickle

index fa8628767f2903d124de6ef77a36dd402748a978..10976871edc474128e777365fedd6891a560540c 100644 (file)
@@ -585,14 +585,58 @@ def get_default_app_info_list():
 
 def post_metadata_parse(thisinfo):
 
+    supported_metadata = app_defaults.keys() + ['comments', 'builds', 'id']
+    for k, v in thisinfo.iteritems():
+        if k not in supported_metadata:
+            raise MetaDataException("Unrecognised metadata: {0}: {1}"
+                                    .format(k, v))
+        if type(v) in (float, int):
+            thisinfo[k] = str(v)
+
+    # convert to the odd internal format
+    for k in ('Description', 'Maintainer Notes'):
+        if isinstance(thisinfo[k], basestring):
+            text = thisinfo[k].rstrip().lstrip()
+            thisinfo[k] = text.split('\n')
+
+    supported_flags = (flag_defaults.keys()
+                       + ['vercode', 'version', 'versionCode', 'versionName'])
+    esc_newlines = re.compile('\\\\( |\\n)')
+
     for build in thisinfo['builds']:
-        for k, v in build.iteritems():
+        for k, v in build.items():
+            if k not in supported_flags:
+                raise MetaDataException("Unrecognised build flag: {0}={1}"
+                                        .format(k, v))
+
             if k == 'versionCode':
                 build['vercode'] = str(v)
                 del build['versionCode']
             elif k == 'versionName':
                 build['version'] = str(v)
                 del build['versionName']
+            elif type(v) in (float, int):
+                build[k] = str(v)
+            else:
+                keyflagtype = flagtype(k)
+                if keyflagtype == 'list':
+                    # these can be bools, strings or lists, but ultimately are lists
+                    if isinstance(v, basestring):
+                        build[k] = [v]
+                    elif isinstance(v, bool):
+                        if v:
+                            build[k] = ['yes']
+                        else:
+                            build[k] = ['no']
+                elif keyflagtype == 'script':
+                    build[k] = re.sub(esc_newlines, '', v).lstrip().rstrip()
+                elif keyflagtype == 'bool':
+                    # TODO handle this using <xsd:element type="xsd:boolean> in a schema
+                    if isinstance(v, basestring):
+                        if v == 'true':
+                            build[k] = True
+                        else:
+                            build[k] = False
 
     if not thisinfo['Description']:
         thisinfo['Description'].append('No description available')
@@ -667,27 +711,12 @@ def parse_json_metadata(metafile):
 
     # fdroid metadata is only strings and booleans, no floats or ints. And
     # json returns unicode, and fdroidserver still uses plain python strings
+    # TODO create schema using https://pypi.python.org/pypi/jsonschema
     jsoninfo = json.load(open(metafile, 'r'),
                          object_hook=_decode_dict,
                          parse_int=lambda s: s,
                          parse_float=lambda s: s)
-    supported_metadata = app_defaults.keys() + ['builds', 'comments']
-    for k, v in jsoninfo.iteritems():
-        if k not in supported_metadata:
-            logging.warn(metafile + ' contains unknown metadata key, ignoring: ' + k)
     thisinfo.update(jsoninfo)
-
-    for build in thisinfo['builds']:
-        for k, v in build.iteritems():
-            if k in ('buildjni', 'gradle', 'maven', 'kivy'):
-                # convert standard types to mixed datatype legacy format
-                if isinstance(v, bool):
-                    if v:
-                        build[k] = ['yes']
-                    else:
-                        build[k] = ['no']
-
-    # TODO create schema using https://pypi.python.org/pypi/jsonschema
     post_metadata_parse(thisinfo)
 
     return (appid, thisinfo)
@@ -740,30 +769,6 @@ def parse_xml_metadata(metafile):
         else:
             thisinfo['Requires Root'] = False
 
-    # convert to the odd internal format
-    for k in ('Description', 'Maintainer Notes'):
-        if isinstance(thisinfo[k], basestring):
-            text = thisinfo[k].rstrip().lstrip()
-            thisinfo[k] = text.split('\n')
-
-    supported_flags = flag_defaults.keys() + ['versionCode', 'versionName']
-    for build in thisinfo['builds']:
-        for k, v in build.iteritems():
-            if k not in supported_flags:
-                raise MetaDataException("Unrecognised build flag: {0}={1}"
-                                        .format(k, v))
-            keyflagtype = flagtype(k)
-            if keyflagtype == 'bool':
-                # TODO handle this using <xsd:element type="xsd:boolean> in a schema
-                if isinstance(v, basestring):
-                    if v == 'true':
-                        build[k] = True
-                    else:
-                        build[k] = False
-            elif keyflagtype == 'list':
-                if isinstance(v, basestring):
-                    build[k] = [v]
-
     post_metadata_parse(thisinfo)
 
     return (appid, thisinfo)
index ee9df7e2039d3215eade710739c5ea0d3d1bcf1a..954b21cf3942927602a68d2bf88cd85a25ab2e80 100644 (file)
@@ -3,7 +3,7 @@
     "Auto Update Mode": "Version v%v",
     "Categories": ["System", "Security"],
     "Current Version": "3.0",
-    "Current Version Code": "52",
+    "Current Version Code": 52,
     "Description": [
         "An ad blocker that uses the hosts file. The hosts file",
         "contains a list of mappings between hostnames and IP addresses. When",
@@ -37,7 +37,7 @@
             "buildjni": true,
             "commit": "ea5378a94ee0dc1d99d2cec95fae7e6d81afb2b9",
             "subdir": "org_adaway/",
-            "versionCode": "13",
+            "versionCode": 13,
             "versionName": "1.12"
         },
         {
@@ -45,7 +45,7 @@
             "commit": "4128e59da2eac5c2904c7c7568d298ca51e79540",
             "patch": ["defprop.patch"],
             "subdir": "org_adaway/",
-            "versionCode": "16",
+            "versionCode": 16,
             "versionName": "1.15"
         },
         {
@@ -53,7 +53,7 @@
             "commit": "0b9985398b9eef7baf6aadd0dbb12002bc199d2e",
             "patch": ["defprop.patch"],
             "subdir": "org_adaway/",
-            "versionCode": "19",
+            "versionCode": 19,
             "versionName": "1.18"
         },
         {
@@ -61,7 +61,7 @@
             "commit": "ab27f4dab5f3ea5e228cfb4a6b0e1fbf53695f22",
             "patch": ["defprop.patch"],
             "subdir": "org_adaway/",
-            "versionCode": "20",
+            "versionCode": 20,
             "versionName": "1.19"
         },
         {
@@ -69,7 +69,7 @@
             "commit": "695e3801e4081026c8f7213a2345fc451d5eb89c",
             "patch": ["defprop.patch"],
             "subdir": "org_adaway/",
-            "versionCode": "21",
+            "versionCode": 21,
             "versionName": "1.20"
         },
         {
             "commit": "65138c11cc8b6affd28b68e125fbc1dff0886a4e",
             "patch": ["defprop.patch"],
             "subdir": "org_adaway/",
-            "versionCode": "22",
+            "versionCode": 22,
             "versionName": "1.21"
         },
         {
             "commit": "unknown - see disabled",
             "disable": "no source in repo",
-            "versionCode": "24",
+            "versionCode": 24,
             "versionName": "1.23"
         },
         {
@@ -91,7 +91,7 @@
             "commit": "f811e53e1e1d2ee047b18715fd7d2072b90ae76b",
             "prebuild": "android update project -p ../com_actionbarsherlock",
             "subdir": "org_adaway/",
-            "versionCode": "25",
+            "versionCode": 25,
             "versionName": "1.24"
         },
         {
@@ -99,7 +99,7 @@
             "commit": "ff97932761cdee68638dc2550751a64b2cbe18e7",
             "prebuild": "android update project -p ../com_actionbarsherlock",
             "subdir": "org_adaway/",
-            "versionCode": "26",
+            "versionCode": 26,
             "versionName": "1.25"
         },
         {
             "commit": "33d4d80998f30bafc88c04c80cbae00b03916f99",
             "prebuild": "android update project -p ../com_actionbarsherlock",
             "subdir": "org_adaway/",
-            "versionCode": "27",
+            "versionCode": 27,
             "versionName": "1.26"
         },
         {
             "commit": "743d25a7e287505461f33f4b8e57e4cf988fffea",
             "prebuild": "android update project -p ../com_actionbarsherlock",
             "subdir": "org_adaway/",
-            "versionCode": "28",
+            "versionCode": 28,
             "versionName": "1.27"
         },
         {
             "commit": "eaa07f4",
             "prebuild": "android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/*",
             "subdir": "org_adaway/",
-            "versionCode": "30",
+            "versionCode": 30,
             "versionName": "1.29"
         },
         {
             "commit": "71ced3f",
             "prebuild": "android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && rm libs/android-support-v4.jar",
             "subdir": "org_adaway/",
-            "versionCode": "33",
+            "versionCode": 33,
             "versionName": "1.32"
         },
         {
             "commit": "9d63c18",
             "prebuild": "android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/*",
             "subdir": "org_adaway/",
-            "versionCode": "34",
+            "versionCode": 34,
             "versionName": "1.33"
         },
         {
             "commit": "f2568b1",
             "prebuild": "android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations",
             "subdir": "org_adaway/",
-            "versionCode": "35",
+            "versionCode": 35,
             "versionName": "1.34"
         },
         {
             "commit": "7442d5d",
             "prebuild": "android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations",
             "subdir": "org_adaway/",
-            "versionCode": "36",
+            "versionCode": 36,
             "versionName": "1.35"
         },
         {
             "commit": "83fc713",
             "prebuild": "android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations",
             "subdir": "org_adaway/",
-            "versionCode": "37",
+            "versionCode": 37,
             "versionName": "1.36"
         },
         {
             "commit": "70da32b567122b701cdcb1609b780eb85732028f",
             "prebuild": "android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations",
             "subdir": "org_adaway/",
-            "versionCode": "38",
+            "versionCode": 38,
             "versionName": "1.37"
         },
         {
                        "android-libs/Donations",
                        "android-libs/ActionBarSherlock",
                        "android-libs/HtmlSpanner/htmlspanner"],
-            "versionCode": "40",
+            "versionCode": 40,
             "versionName": "2.1"
         },
         {
                        "android-libs/Donations",
                        "android-libs/ActionBarSherlock",
                        "android-libs/HtmlSpanner/htmlspanner"],
-            "versionCode": "42",
+            "versionCode": 42,
             "versionName": "2.3"
         },
         {
             "gradle": true,
             "preassemble": ["renameExecutables"],
             "subdir": "AdAway",
-            "versionCode": "45",
+            "versionCode": 45,
             "versionName": "2.6"
         },
         {
             "gradle": true,
             "preassemble": ["renameExecutables"],
             "subdir": "AdAway",
-            "versionCode": "46",
+            "versionCode": 46,
             "versionName": "2.7"
         },
         {
             "gradle": true,
             "preassemble": ["renameExecutables"],
             "subdir": "AdAway",
-            "versionCode": "47",
+            "versionCode": 47,
             "versionName": "2.8"
         },
         {
             "gradle": true,
             "preassemble": ["renameExecutables"],
             "subdir": "AdAway",
-            "versionCode": "48",
+            "versionCode": 48,
             "versionName": "2.8.1"
         },
         {
             "gradle": true,
             "preassemble": ["renameExecutables"],
             "subdir": "AdAway",
-            "versionCode": "49",
+            "versionCode": 49,
             "versionName": "2.9"
         },
         {
             "gradle": true,
             "preassemble": ["renameExecutables"],
             "subdir": "AdAway",
-            "versionCode": "50",
+            "versionCode": 50,
             "versionName": "2.9.1"
         },
         {
             "gradle": true,
             "preassemble": ["renameExecutables"],
             "subdir": "AdAway",
-            "versionCode": "51",
+            "versionCode": 51,
             "versionName": "2.9.2"
         },
         {
             "gradle": true,
             "preassemble": ["renameExecutables"],
             "subdir": "AdAway",
-            "versionCode": "52",
+            "versionCode": 52,
             "versionName": "3.0"
         }
     ],
index e60769c07ff7ce8d4d046c69b53247f616dc41df..04cbd40930356082bfb8ee75b1a97829465f9924 100644 (file)
@@ -26,9 +26,9 @@ sS'Donate'
 p13
 S'http://sufficientlysecure.org/index.php/adaway'
 p14
-sS'Repo Type'
+sS'id'
 p15
-S'git'
+S'org.adaway'
 p16
 sS'Description'
 p17
@@ -60,111 +60,109 @@ aS'read-only.'
 p30
 asS'Requires Root'
 p31
-S'Yes'
-p32
+I01
 sS'comments'
-p33
+p32
+(lp33
 (lp34
-(lp35
 S'build:40'
-p36
+p35
 aS'#RootCommands srclib needs changing on fdroidserver'
-p37
-aa(lp38
+p36
+aa(lp37
 S'build:42'
-p39
+p38
 aS'#RootCommands srclib needs changing on fdroidserver'
+p39
+aasS'Repo Type'
 p40
-aasS'id'
+S'git'
 p41
-S'org.adaway'
-p42
 sS'Repo'
-p43
+p42
 S'https://github.com/dschuermann/ad-away.git'
-p44
+p43
 sS'No Source Since'
-p45
+p44
 g27
 sS'Auto Name'
-p46
+p45
 S'AdAway'
-p47
+p46
 sS'Categories'
-p48
-(lp49
+p47
+(lp48
 S'System'
-p50
+p49
 aS'Security'
-p51
+p50
 asS'Source Code'
-p52
+p51
 S'https://github.com/dschuermann/ad-away'
-p53
+p52
 sS'Litecoin'
-p54
+p53
 NsS'Update Check Ignore'
-p55
+p54
 NsS'Name'
-p56
+p55
 NsS'License'
-p57
+p56
 S'GPLv3'
-p58
+p57
 sS'Changelog'
-p59
+p58
 g27
 sS'Update Check Mode'
-p60
+p59
 S'Tags'
-p61
+p60
 sS'Summary'
-p62
+p61
 S'Block advertisements'
-p63
+p62
 sS'Dogecoin'
-p64
+p63
 NsS'Maintainer Notes'
-p65
-(lp66
+p64
+(lp65
 sS'Current Version Code'
-p67
+p66
 S'52'
-p68
+p67
 sS'Binaries'
-p69
+p68
 NsS'Archive Policy'
-p70
+p69
 NsS'builds'
-p71
-(lp72
-(dp73
+p70
+(lp71
+(dp72
 S'submodules'
-p74
+p73
 I00
 sS'vercode'
-p75
+p74
 S'13'
-p76
+p75
 sS'forceversion'
-p77
+p76
 I00
 sS'oldsdkloc'
-p78
-I00
-sS'kivy'
-p79
-I00
-sS'gradle'
-p80
+p77
 I00
 sS'scanignore'
-p81
-(lp82
+p78
+(lp79
+sS'patch'
+p80
+(lp81
 sS'srclibs'
-p83
-(lp84
-sS'encoding'
+p82
+(lp83
+sS'output'
+p84
+NsS'encoding'
 p85
 NsS'extlibs'
 p86
@@ -180,2056 +178,2057 @@ sS'subdir'
 p91
 S'org_adaway/'
 p92
-sS'rm'
+sS'ndk_path'
 p93
-(lp94
-sS'type'
-p95
-S'ant'
-p96
-sS'build'
-p97
 g27
-sS'ndk_path'
-p98
+sS'kivy'
+p94
+I00
+sS'build'
+p95
 g27
 sS'forcevercode'
-p99
+p96
 I00
 sS'preassemble'
-p100
-(lp101
+p97
+(lp98
 sS'update'
-p102
-(lp103
+p99
+(lp100
 S'auto'
-p104
+p101
 asS'maven'
-p105
+p102
 I00
 sS'disable'
-p106
+p103
 I00
-sS'commit'
-p107
-S'ea5378a94ee0dc1d99d2cec95fae7e6d81afb2b9'
-p108
+sS'rm'
+p104
+(lp105
 sS'scandelete'
-p109
-(lp110
+p106
+(lp107
 sS'buildjni'
-p111
-(lp112
+p108
+(lp109
 S'yes'
-p113
+p110
 asS'ndk'
-p114
+p111
 S'r10e'
-p115
+p112
 sS'target'
+p113
+NsS'type'
+p114
+S'ant'
+p115
+sS'antcommands'
 p116
-NsS'antcommands'
+NsS'gradle'
 p117
-NsS'patch'
-p118
-(lp119
+I00
 sS'prebuild'
-p120
+p118
 g27
 sS'novcheck'
-p121
+p119
 I00
-sS'output'
-p122
-Nsa(dp123
-g74
+sS'commit'
+p120
+S'ea5378a94ee0dc1d99d2cec95fae7e6d81afb2b9'
+p121
+sa(dp122
+g73
 I00
-sg75
+sg74
 S'16'
-p124
+p123
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
-sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g79
+sS'patch'
+p124
+(lp125
+S'defprop.patch'
+p126
+asg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.15'
-p125
+p127
 sS'subdir'
-p126
+p128
 S'org_adaway/'
-p127
+p129
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p128
-S'4128e59da2eac5c2904c7c7568d298ca51e79540'
-p129
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
 p130
 (lp131
-g113
-asg114
+g110
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-NsS'patch'
-p132
-(lp133
-S'defprop.patch'
-p134
-asg120
+I00
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-Nsa(dp135
-g74
+sS'commit'
+p132
+S'4128e59da2eac5c2904c7c7568d298ca51e79540'
+p133
+sa(dp134
+g73
 I00
-sg75
+sg74
 S'19'
-p136
+p135
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
-sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g79
+sS'patch'
+p136
+(lp137
+S'defprop.patch'
+p138
+asg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.18'
-p137
+p139
 sS'subdir'
-p138
+p140
 S'org_adaway/'
-p139
+p141
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p140
-S'0b9985398b9eef7baf6aadd0dbb12002bc199d2e'
-p141
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
 p142
 (lp143
-g113
-asg114
+g110
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-NsS'patch'
-p144
-(lp145
-S'defprop.patch'
-p146
-asg120
+I00
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-Nsa(dp147
-g74
+sS'commit'
+p144
+S'0b9985398b9eef7baf6aadd0dbb12002bc199d2e'
+p145
+sa(dp146
+g73
 I00
-sg75
+sg74
 S'20'
-p148
+p147
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
-sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g79
+sS'patch'
+p148
+(lp149
+S'defprop.patch'
+p150
+asg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.19'
-p149
+p151
 sS'subdir'
-p150
+p152
 S'org_adaway/'
-p151
+p153
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p152
-S'ab27f4dab5f3ea5e228cfb4a6b0e1fbf53695f22'
-p153
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
 p154
 (lp155
-g113
-asg114
+g110
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-NsS'patch'
-p156
-(lp157
-S'defprop.patch'
-p158
-asg120
+I00
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-Nsa(dp159
-g74
+sS'commit'
+p156
+S'ab27f4dab5f3ea5e228cfb4a6b0e1fbf53695f22'
+p157
+sa(dp158
+g73
 I00
-sg75
+sg74
 S'21'
-p160
+p159
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
-sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g79
+sS'patch'
+p160
+(lp161
+S'defprop.patch'
+p162
+asg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.20'
-p161
+p163
 sS'subdir'
-p162
+p164
 S'org_adaway/'
-p163
+p165
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p164
-S'695e3801e4081026c8f7213a2345fc451d5eb89c'
-p165
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
 p166
 (lp167
-g113
-asg114
+g110
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-NsS'patch'
-p168
-(lp169
-S'defprop.patch'
-p170
-asg120
+I00
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-Nsa(dp171
-g74
+sS'commit'
+p168
+S'695e3801e4081026c8f7213a2345fc451d5eb89c'
+p169
+sa(dp170
+g73
 I00
-sg75
+sg74
 S'22'
-p172
+p171
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
-sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g79
+sS'patch'
+p172
+(lp173
+S'defprop.patch'
+p174
+asg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.21'
-p173
+p175
 sS'subdir'
-p174
+p176
 S'org_adaway/'
-p175
+p177
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p176
-S'65138c11cc8b6affd28b68e125fbc1dff0886a4e'
-p177
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
 p178
 (lp179
-g113
-asg114
+g110
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-NsS'patch'
-p180
-(lp181
-S'defprop.patch'
-p182
-asg120
+I00
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-Nsa(dp183
-g74
+sS'commit'
+p180
+S'65138c11cc8b6affd28b68e125fbc1dff0886a4e'
+p181
+sa(dp182
+g73
 I00
-sg75
+sg74
 S'24'
-p184
+p183
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g81
+sg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.23'
-p185
+p184
 sS'subdir'
-p186
+p185
 Nsg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
 sS'disable'
-p187
+p186
 S'no source in repo'
-p188
-sS'commit'
-p189
-S'unknown - see disabled'
-p190
-sg109
-g110
+p187
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p191
-(lp192
-sg114
+p188
+(lp189
+sg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
-sg120
+I00
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-Nsa(dp193
-g74
+sS'commit'
+p190
+S'unknown - see disabled'
+p191
+sa(dp192
+g73
 I00
-sg75
+sg74
 S'25'
-p194
+p193
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g81
+sg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.24'
-p195
+p194
 sS'subdir'
-p196
+p195
 S'org_adaway/'
-p197
+p196
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p198
-S'f811e53e1e1d2ee047b18715fd7d2072b90ae76b'
-p199
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p200
-(lp201
-g113
-asg114
+p197
+(lp198
+g110
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
+I00
 sS'prebuild'
-p202
+p199
 S'android update project -p ../com_actionbarsherlock'
-p203
-sg121
+p200
+sg119
 I00
-sg122
-Nsa(dp204
-g74
+sS'commit'
+p201
+S'f811e53e1e1d2ee047b18715fd7d2072b90ae76b'
+p202
+sa(dp203
+g73
 I00
-sg75
+sg74
 S'26'
-p205
+p204
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g81
+sg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.25'
-p206
+p205
 sS'subdir'
-p207
+p206
 S'org_adaway/'
-p208
+p207
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p209
-S'ff97932761cdee68638dc2550751a64b2cbe18e7'
-p210
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p211
-(lp212
-g113
-asg114
+p208
+(lp209
+g110
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
+I00
 sS'prebuild'
-p213
+p210
 S'android update project -p ../com_actionbarsherlock'
-p214
-sg121
+p211
+sg119
 I00
-sg122
-Nsa(dp215
-g74
+sS'commit'
+p212
+S'ff97932761cdee68638dc2550751a64b2cbe18e7'
+p213
+sa(dp214
+g73
 I00
-sg75
+sg74
 S'27'
-p216
+p215
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g81
+sg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.26'
-p217
+p216
 sS'subdir'
-p218
+p217
 S'org_adaway/'
-p219
+p218
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p220
-S'33d4d80998f30bafc88c04c80cbae00b03916f99'
-p221
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p222
-(lp223
-g113
-asg114
+p219
+(lp220
+g110
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
+I00
 sS'prebuild'
-p224
+p221
 S'android update project -p ../com_actionbarsherlock'
-p225
-sg121
+p222
+sg119
 I00
-sg122
-Nsa(dp226
-g74
+sS'commit'
+p223
+S'33d4d80998f30bafc88c04c80cbae00b03916f99'
+p224
+sa(dp225
+g73
 I00
-sg75
+sg74
 S'28'
-p227
+p226
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g81
+sg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.27'
-p228
+p227
 sS'subdir'
-p229
+p228
 S'org_adaway/'
-p230
+p229
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p231
-S'743d25a7e287505461f33f4b8e57e4cf988fffea'
-p232
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p233
-(lp234
-g113
-asg114
+p230
+(lp231
+g110
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
+I00
 sS'prebuild'
-p235
+p232
 S'android update project -p ../com_actionbarsherlock'
-p236
-sg121
+p233
+sg119
 I00
-sg122
-Nsa(dp237
-g74
+sS'commit'
+p234
+S'743d25a7e287505461f33f4b8e57e4cf988fffea'
+p235
+sa(dp236
+g73
 I00
-sg75
+sg74
 S'30'
-p238
+p237
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g81
+sg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.29'
-p239
+p238
 sS'subdir'
-p240
+p239
 S'org_adaway/'
-p241
+p240
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p242
-S'eaa07f4'
-p243
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p244
-(lp245
-g113
-asg114
+p241
+(lp242
+g110
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
+I00
 sS'prebuild'
-p246
+p243
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/*'
-p247
-sg121
+p244
+sg119
 I00
-sg122
-Nsa(dp248
-g74
+sS'commit'
+p245
+S'eaa07f4'
+p246
+sa(dp247
+g73
 I00
-sg75
+sg74
 S'33'
-p249
+p248
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g81
+sg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.32'
-p250
+p249
 sS'subdir'
-p251
+p250
 S'org_adaway/'
-p252
+p251
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p253
-S'71ced3f'
-p254
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p255
-(lp256
+p252
+(lp253
 S'no'
-p257
-asg114
+p254
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
+I00
 sS'prebuild'
-p258
+p255
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && rm libs/android-support-v4.jar'
-p259
-sg121
+p256
+sg119
 I00
-sg122
-Nsa(dp260
-g74
+sS'commit'
+p257
+S'71ced3f'
+p258
+sa(dp259
+g73
 I00
-sg75
+sg74
 S'34'
-p261
+p260
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g81
+sg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.33'
-p262
+p261
 sS'subdir'
-p263
+p262
 S'org_adaway/'
-p264
+p263
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p265
-S'9d63c18'
-p266
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p267
-(lp268
-g257
-asg114
+p264
+(lp265
+g254
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
+I00
 sS'prebuild'
-p269
+p266
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/*'
-p270
-sg121
+p267
+sg119
 I00
-sg122
-Nsa(dp271
-g74
+sS'commit'
+p268
+S'9d63c18'
+p269
+sa(dp270
+g73
 I00
-sg75
+sg74
 S'35'
-p272
+p271
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g81
+sg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.34'
-p273
+p272
 sS'subdir'
-p274
+p273
 S'org_adaway/'
-p275
+p274
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p276
-S'f2568b1'
-p277
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p278
-(lp279
-g257
-asg114
+p275
+(lp276
+g254
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
+I00
 sS'prebuild'
-p280
+p277
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
-p281
-sg121
+p278
+sg119
 I00
-sg122
-Nsa(dp282
-g74
+sS'commit'
+p279
+S'f2568b1'
+p280
+sa(dp281
+g73
 I00
-sg75
+sg74
 S'36'
-p283
+p282
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g81
+sg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.35'
-p284
+p283
 sS'subdir'
-p285
+p284
 S'org_adaway/'
-p286
+p285
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p287
-S'7442d5d'
-p288
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p289
-(lp290
-g257
-asg114
+p286
+(lp287
+g254
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
+I00
 sS'prebuild'
-p291
+p288
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
-p292
-sg121
+p289
+sg119
 I00
-sg122
-Nsa(dp293
-g74
+sS'commit'
+p290
+S'7442d5d'
+p291
+sa(dp292
+g73
 I00
-sg75
+sg74
 S'37'
-p294
+p293
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g81
+sg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.36'
-p295
+p294
 sS'subdir'
-p296
+p295
 S'org_adaway/'
-p297
+p296
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p298
-S'83fc713'
-p299
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p300
-(lp301
-g257
-asg114
+p297
+(lp298
+g254
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
+I00
 sS'prebuild'
-p302
+p299
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
-p303
-sg121
+p300
+sg119
 I00
-sg122
-Nsa(dp304
-g74
+sS'commit'
+p301
+S'83fc713'
+p302
+sa(dp303
+g73
 I00
-sg75
+sg74
 S'38'
-p305
+p304
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
-sg83
-g84
-sg85
+g81
+sg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'1.37'
-p306
+p305
 sS'subdir'
-p307
+p306
 S'org_adaway/'
-p308
+p307
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
+sg99
+g100
 sg102
-g103
-sg105
 I00
-sg106
+sg103
 I00
-sS'commit'
-p309
-S'70da32b567122b701cdcb1609b780eb85732028f'
-p310
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p311
-(lp312
-g257
-asg114
+p308
+(lp309
+g254
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
+I00
 sS'prebuild'
-p313
+p310
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
-p314
-sg121
+p311
+sg119
 I00
-sg122
-Nsa(dp315
-g74
+sS'commit'
+p312
+S'70da32b567122b701cdcb1609b780eb85732028f'
+p313
+sa(dp314
+g73
 I00
-sg75
+sg74
 S'40'
-p316
+p315
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
+g81
 sS'srclibs'
-p317
-(lp318
+p316
+(lp317
 S'RootCommands@c940b0e503'
-p319
-asg85
+p318
+asg84
+Nsg85
 NsS'extlibs'
-p320
-(lp321
+p319
+(lp320
 S'htmlcleaner/htmlcleaner-2.2.jar'
-p322
+p321
 asS'init'
-p323
+p322
 S'rm android-libs/Donations/custom_rules.xml && git clone https://github.com/dschuermann/HtmlSpanner android-libs/HtmlSpanner'
-p324
+p323
 sg89
 S'2.1'
-p325
+p324
 sS'subdir'
-p326
+p325
 S'AdAway'
-p327
+p326
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
 sS'update'
-p328
-(lp329
+p327
+(lp328
 S'.'
-p330
+p329
 aS'android-libs/Donations'
-p331
+p330
 aS'android-libs/ActionBarSherlock'
-p332
+p331
 aS'android-libs/HtmlSpanner/htmlspanner'
-p333
-asg105
+p332
+asg102
 I00
-sg106
+sg103
 I00
-sS'commit'
-p334
-S'v2.1'
-p335
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p336
-(lp337
-g113
-asg114
+p333
+(lp334
+g110
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
+I00
 sS'prebuild'
-p338
+p335
 S'rm -rf ../update_zip libs/root-commands-1.2.jar libs/htmlspanner-0.2-fork.jar && cp -f libs/htmlcleaner-2.2.jar android-libs/HtmlSpanner/htmlspanner/libs/ && echo "android.library.reference.3=$$RootCommands$$" >> project.properties && echo "android.library.reference.4=android-libs/HtmlSpanner/htmlspanner" >> project.properties && find . -type f -print0 | xargs -0 sed -i \'s/org.rootcommands/org.sufficientlysecure.rootcommands/g\' && cp android-libs/Donations/ant-templates/other/DonationsConfig.java android-libs/Donations/src/org/donations/'
-p339
-sg121
+p336
+sg119
 I00
-sg122
-Nsa(dp340
-g74
+sS'commit'
+p337
+S'v2.1'
+p338
+sa(dp339
+g73
 I00
-sg75
+sg74
 S'42'
-p341
+p340
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
+g79
 sg80
-I00
-sg81
-g82
+g81
 sS'srclibs'
-p342
-(lp343
+p341
+(lp342
 S'RootCommands@c940b0e503'
-p344
-asg85
+p343
+asg84
+Nsg85
 NsS'extlibs'
-p345
-(lp346
+p344
+(lp345
 S'htmlcleaner/htmlcleaner-2.2.jar'
-p347
+p346
 asS'init'
-p348
+p347
 S'rm android-libs/Donations/custom_rules.xml && git clone https://github.com/dschuermann/HtmlSpanner android-libs/HtmlSpanner'
-p349
+p348
 sg89
 S'2.3'
-p350
+p349
 sS'subdir'
-p351
+p350
 S'AdAway'
-p352
+p351
 sg93
-g94
-sg95
-g96
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
-sg100
-g101
+sg97
+g98
 sS'update'
-p353
-(lp354
-g330
+p352
+(lp353
+g329
 aS'android-libs/Donations'
-p355
+p354
 aS'android-libs/ActionBarSherlock'
-p356
+p355
 aS'android-libs/HtmlSpanner/htmlspanner'
-p357
-asg105
+p356
+asg102
 I00
-sg106
+sg103
 I00
-sS'commit'
-p358
-S'v2.3'
-p359
-sg109
-g110
+sg104
+g105
+sg106
+g107
 sS'buildjni'
-p360
-(lp361
-g113
-asg114
+p357
+(lp358
+g110
+asg111
+g112
+sg113
+Nsg114
 g115
 sg116
 Nsg117
-Nsg118
-g119
+I00
 sS'prebuild'
-p362
+p359
 S'rm -rf ../update_zip libs/root-commands-1.2.jar libs/htmlspanner-0.2-fork.jar && cp -f libs/htmlcleaner-2.2.jar android-libs/HtmlSpanner/htmlspanner/libs/ && echo "android.library.reference.3=$$RootCommands$$" >> project.properties && echo "android.library.reference.4=android-libs/HtmlSpanner/htmlspanner" >> project.properties && find . -type f -print0 | xargs -0 sed -i \'s/org.rootcommands/org.sufficientlysecure.rootcommands/g\' && cp android-libs/Donations/ant-templates/other/DonationsConfig.java android-libs/Donations/src/org/donations/'
-p363
-sg121
+p360
+sg119
 I00
-sg122
-Nsa(dp364
-g74
+sS'commit'
+p361
+S'v2.3'
+p362
+sa(dp363
+g73
 I00
-sg75
+sg74
 S'45'
-p365
+p364
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
-sg118
-g119
-sg81
-g82
-sg83
-g84
-sg85
+g79
+sS'gradle'
+p365
+(lp366
+g110
+asg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'2.6'
-p366
-sS'subdir'
 p367
-S'AdAway'
+sS'subdir'
 p368
+S'AdAway'
+p369
 sg93
-g94
-sg95
-g80
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
 sS'preassemble'
-p369
-(lp370
+p370
+(lp371
 S'renameExecutables'
-p371
-asg102
-g103
-sg105
+p372
+asg99
+g100
+sg102
 I00
-sg106
+sg103
 I00
-sS'commit'
-p372
-S'v2.6'
+sg104
+g105
+sg106
+g107
+sS'buildjni'
 p373
-sg109
+(lp374
 g110
-sS'buildjni'
-p374
-(lp375
-g113
-asg114
-g115
+asg111
+g112
+sg113
+Nsg114
+g117
 sg116
-Nsg117
-NsS'gradle'
-p376
-(lp377
-g113
-asg120
+Nsg80
+g81
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-Nsa(dp378
-g74
+sS'commit'
+p375
+S'v2.6'
+p376
+sa(dp377
+g73
 I00
-sg75
+sg74
 S'46'
-p379
+p378
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
-sg118
-g119
-sg81
-g82
-sg83
-g84
-sg85
+g79
+sS'gradle'
+p379
+(lp380
+g110
+asg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'2.7'
-p380
-sS'subdir'
 p381
-S'AdAway'
+sS'subdir'
 p382
+S'AdAway'
+p383
 sg93
-g94
-sg95
-g80
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
 sS'preassemble'
-p383
-(lp384
+p384
+(lp385
 S'renameExecutables'
-p385
-asg102
-g103
-sg105
+p386
+asg99
+g100
+sg102
 I00
-sg106
+sg103
 I00
-sS'commit'
-p386
-S'v2.7'
+sg104
+g105
+sg106
+g107
+sS'buildjni'
 p387
-sg109
+(lp388
 g110
-sS'buildjni'
-p388
-(lp389
-g113
-asg114
-g115
+asg111
+g112
+sg113
+Nsg114
+g117
 sg116
-Nsg117
-NsS'gradle'
-p390
-(lp391
-g113
-asg120
+Nsg80
+g81
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-Nsa(dp392
-g74
+sS'commit'
+p389
+S'v2.7'
+p390
+sa(dp391
+g73
 I00
-sg75
+sg74
 S'47'
-p393
+p392
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
-sg118
-g119
-sg81
-g82
-sg83
-g84
-sg85
+g79
+sS'gradle'
+p393
+(lp394
+g110
+asg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'2.8'
-p394
-sS'subdir'
 p395
-S'AdAway'
+sS'subdir'
 p396
+S'AdAway'
+p397
 sg93
-g94
-sg95
-g80
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
 sS'preassemble'
-p397
-(lp398
+p398
+(lp399
 S'renameExecutables'
-p399
-asg102
-g103
-sg105
+p400
+asg99
+g100
+sg102
 I00
-sg106
+sg103
 I00
-sS'commit'
-p400
-S'v2.8'
+sg104
+g105
+sg106
+g107
+sS'buildjni'
 p401
-sg109
+(lp402
 g110
-sS'buildjni'
-p402
-(lp403
-g113
-asg114
-g115
+asg111
+g112
+sg113
+Nsg114
+g117
 sg116
-Nsg117
-NsS'gradle'
-p404
-(lp405
-g113
-asg120
+Nsg80
+g81
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-Nsa(dp406
-g74
+sS'commit'
+p403
+S'v2.8'
+p404
+sa(dp405
+g73
 I00
-sg75
+sg74
 S'48'
-p407
+p406
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
-sg118
-g119
-sg81
-g82
-sg83
-g84
-sg85
+g79
+sS'gradle'
+p407
+(lp408
+g110
+asg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'2.8.1'
-p408
-sS'subdir'
 p409
-S'AdAway'
+sS'subdir'
 p410
+S'AdAway'
+p411
 sg93
-g94
-sg95
-g80
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
 sS'preassemble'
-p411
-(lp412
+p412
+(lp413
 S'renameExecutables'
-p413
-asg102
-g103
-sg105
+p414
+asg99
+g100
+sg102
 I00
-sg106
+sg103
 I00
-sS'commit'
-p414
-S'v2.8.1'
+sg104
+g105
+sg106
+g107
+sS'buildjni'
 p415
-sg109
+(lp416
 g110
-sS'buildjni'
-p416
-(lp417
-g113
-asg114
-g115
+asg111
+g112
+sg113
+Nsg114
+g117
 sg116
-Nsg117
-NsS'gradle'
-p418
-(lp419
-g113
-asg120
+Nsg80
+g81
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-Nsa(dp420
-g74
+sS'commit'
+p417
+S'v2.8.1'
+p418
+sa(dp419
+g73
 I00
-sg75
+sg74
 S'49'
-p421
+p420
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
-sg118
-g119
-sg81
-g82
-sg83
-g84
-sg85
+g79
+sS'gradle'
+p421
+(lp422
+g110
+asg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'2.9'
-p422
-sS'subdir'
 p423
-S'AdAway'
+sS'subdir'
 p424
+S'AdAway'
+p425
 sg93
-g94
-sg95
-g80
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
 sS'preassemble'
-p425
-(lp426
+p426
+(lp427
 S'renameExecutables'
-p427
-asg102
-g103
-sg105
+p428
+asg99
+g100
+sg102
 I00
-sg106
+sg103
 I00
-sS'commit'
-p428
-S'v2.9'
+sg104
+g105
+sg106
+g107
+sS'buildjni'
 p429
-sg109
+(lp430
 g110
-sS'buildjni'
-p430
-(lp431
-g113
-asg114
-g115
+asg111
+g112
+sg113
+Nsg114
+g117
 sg116
-Nsg117
-NsS'gradle'
-p432
-(lp433
-g113
-asg120
+Nsg80
+g81
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-Nsa(dp434
-g74
+sS'commit'
+p431
+S'v2.9'
+p432
+sa(dp433
+g73
 I00
-sg75
+sg74
 S'50'
-p435
+p434
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
-sg118
-g119
-sg81
-g82
-sg83
-g84
-sg85
+g79
+sS'gradle'
+p435
+(lp436
+g110
+asg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'2.9.1'
-p436
-sS'subdir'
 p437
-S'AdAway'
+sS'subdir'
 p438
+S'AdAway'
+p439
 sg93
-g94
-sg95
-g80
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
 sS'preassemble'
-p439
-(lp440
+p440
+(lp441
 S'renameExecutables'
-p441
-asg102
-g103
-sg105
+p442
+asg99
+g100
+sg102
 I00
-sg106
+sg103
 I00
-sS'commit'
-p442
-S'v2.9.1'
+sg104
+g105
+sg106
+g107
+sS'buildjni'
 p443
-sg109
+(lp444
 g110
-sS'buildjni'
-p444
-(lp445
-g113
-asg114
-g115
+asg111
+g112
+sg113
+Nsg114
+g117
 sg116
-Nsg117
-NsS'gradle'
-p446
-(lp447
-g113
-asg120
+Nsg80
+g81
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-Nsa(dp448
-g74
+sS'commit'
+p445
+S'v2.9.1'
+p446
+sa(dp447
+g73
 I00
-sg75
+sg74
 S'51'
-p449
+p448
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
-sg118
-g119
-sg81
-g82
-sg83
-g84
-sg85
+g79
+sS'gradle'
+p449
+(lp450
+g110
+asg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'2.9.2'
-p450
-sS'subdir'
 p451
-S'AdAway'
+sS'subdir'
 p452
+S'AdAway'
+p453
 sg93
-g94
-sg95
-g80
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
 sS'preassemble'
-p453
-(lp454
+p454
+(lp455
 S'renameExecutables'
-p455
-asg102
-g103
-sg105
+p456
+asg99
+g100
+sg102
 I00
-sg106
+sg103
 I00
-sS'commit'
-p456
-S'v2.9.2'
+sg104
+g105
+sg106
+g107
+sS'buildjni'
 p457
-sg109
+(lp458
 g110
-sS'buildjni'
-p458
-(lp459
-g113
-asg114
-g115
+asg111
+g112
+sg113
+Nsg114
+g117
 sg116
-Nsg117
-NsS'gradle'
-p460
-(lp461
-g113
-asg120
+Nsg80
+g81
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-Nsa(dp462
-g74
+sS'commit'
+p459
+S'v2.9.2'
+p460
+sa(dp461
+g73
 I00
-sg75
+sg74
 S'52'
-p463
+p462
+sg76
+I00
 sg77
 I00
 sg78
-I00
-sg79
-I00
-sg118
-g119
-sg81
-g82
-sg83
-g84
-sg85
+g79
+sS'gradle'
+p463
+(lp464
+g110
+asg82
+g83
+sg84
+Nsg85
 Nsg86
 g87
 sg88
 g27
 sg89
 S'3.0'
-p464
-sS'subdir'
 p465
-S'AdAway'
+sS'subdir'
 p466
+S'AdAway'
+p467
 sg93
-g94
-sg95
-g80
-sg97
 g27
-sg98
+sg94
+I00
+sg95
 g27
-sg99
+sg96
 I00
 sS'preassemble'
-p467
-(lp468
+p468
+(lp469
 S'renameExecutables'
-p469
-asg102
-g103
-sg105
+p470
+asg99
+g100
+sg102
 I00
-sg106
+sg103
 I00
-sS'commit'
-p470
-S'v3.0'
+sg104
+g105
+sg106
+g107
+sS'buildjni'
 p471
-sg109
+(lp472
 g110
-sS'buildjni'
-p472
-(lp473
-g113
-asg114
-g115
+asg111
+g112
+sg113
+Nsg114
+g117
 sg116
-Nsg117
-NsS'gradle'
-p474
-(lp475
-g113
-asg120
+Nsg80
+g81
+sg118
 g27
-sg121
+sg119
 I00
-sg122
-NsasS'FlattrID'
-p476
+sS'commit'
+p473
+S'v3.0'
+p474
+sasS'FlattrID'
+p475
 S'369138'
-p477
+p476
 sS'Disabled'
-p478
+p477
 NsS'Update Check Name'
-p479
+p478
 NsS'Vercode Operation'
-p480
+p479
 NsS'Current Version'
-p481
+p480
 S'3.0'
-p482
-s.
+p481
+s.
\ No newline at end of file
index 8885d55e6b01259c49664d7d59daa6298dfb1a6c..860acaf7d7d0877419b7d93d6dff9400994cac00 100644 (file)
@@ -218,7 +218,7 @@ S'yes'
 p111
 asS'prebuild'
 p112
-S"touch signing.properties && pushd $$GradleWitness$$ && gradle jar && popd && cp $$GradleWitness$$/build/libs/GradleWitness.jar libs/gradle-witness.jar && sed -i -e '20,22d' build.gradle && pushd $$PreferenceFragment$$ && gradle uploadArchives && popd && sed -i -e '/5470f5872514a6226fa1fc6f4e000991f38805691c534cf0bd2778911fc773ad/d' build.gradle && mkdir smil && pushd smil && wget -c http://www.w3.org/TR/smil-boston-dom/java-binding.zip && unzip java-binding.zip && popd && cp -fR smil/java/org src/ && rm -fR smil && sed -i -e '/org.w3c.smil/d' build.gradle && cp -fR $$AospMms$$/src/org src/ "
+S"touch signing.properties && pushd $$GradleWitness$$ && gradle jar && popd && cp $$GradleWitness$$/build/libs/GradleWitness.jar libs/gradle-witness.jar && sed -i -e '20,22d' build.gradle && pushd $$PreferenceFragment$$ && gradle uploadArchives && popd && sed -i -e '/5470f5872514a6226fa1fc6f4e000991f38805691c534cf0bd2778911fc773ad/d' build.gradle && mkdir smil && pushd smil && wget -c http://www.w3.org/TR/smil-boston-dom/java-binding.zip && unzip java-binding.zip && popd && cp -fR smil/java/org src/ && rm -fR smil && sed -i -e '/org.w3c.smil/d' build.gradle && cp -fR $$AospMms$$/src/org src/"
 p113
 sS'novcheck'
 p114