)]}'
{
  "log": [
    {
      "commit": "448727bdae6a8225ed998d623d6e79c168603c4e",
      "tree": "80cd7bd936bc845991b8bf7843a616fdfbbef5d1",
      "parents": [
        "7e5205137cb9fd7b89d84f34a88e05f65ca7ff5a",
        "8049f3da712ea9c3154b57ce2276c97e749d1f2c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 05 20:43:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 05 20:43:23 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix pseudolocalization (again)\" into oc-dev"
    },
    {
      "commit": "7a7e415967ace2d554cedb4ceb76123324c0ef94",
      "tree": "9737df6901d0faa6ca8fb5b7a2d3ef5b6319cea0",
      "parents": [
        "6cf445bd3d97ea72f89bfbc7c1681f288cae28d5",
        "113ee097386380daa8f01d74916504a9a1338a63"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 19:14:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 19:14:47 2017 +0000"
      },
      "message": "Merge \"AAPT2: Allow multiple -c flags\" into oc-dev"
    },
    {
      "commit": "113ee097386380daa8f01d74916504a9a1338a63",
      "tree": "eec257e64dd728c8d4432c7ad08773d4821a92d6",
      "parents": [
        "881a623e3522e3e4f0905b606ca5c77cf899b21c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 03 19:38:25 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 03 19:38:25 2017 -0700"
      },
      "message": "AAPT2: Allow multiple -c flags\n\nAAPT allows multiple -c flags in addition to separating -c arguments\nwith commas.\n\nBug: 35671619\nTest: manual\nChange-Id: I90491968e8ea2b28e3cd6e9246bcdd62bd6d6a3c\n"
    },
    {
      "commit": "8049f3da712ea9c3154b57ce2276c97e749d1f2c",
      "tree": "cd4b22971ad876eb8421a7a5870da9e49d62c9f1",
      "parents": [
        "881a623e3522e3e4f0905b606ca5c77cf899b21c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 31 18:28:14 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 31 18:30:20 2017 -0700"
      },
      "message": "AAPT2: Fix pseudolocalization (again)\n\nPseudolocalization didn\u0027t properly handle spans in\nstrings like \"\u003csmall\u003e\u003csmall\u003eHello\u003c/small\u003e\u003c/small\u003e\".\n\nThe spans would be identical and when doing range checks\nonly one of them would be updated.\n\nSwitched to a more robust way of extracting the relevant\nchunks of a styled string. This uses a stack, which is more\nin line with the real representation in XML.\n\nBug: 34088357\nTest: make aapt2_tests\nChange-Id: Ia4e4501713e688c96a89e26e4e2b1384f4cd3889\n"
    },
    {
      "commit": "c26ace07545e5dfb830e9ea22bcdaf409acff627",
      "tree": "4353138c82dfcb7076e59154222f3b13f273f314",
      "parents": [
        "86cb762ae64d64244fe70aab01710a55a27ac205",
        "33af6c730f9f7fc51f04516c7a22cac82cb9823e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 30 00:30:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 30 00:31:01 2017 +0000"
      },
      "message": "Merge \"AAPT2: Parse an ID encoded as a map\" into oc-dev"
    },
    {
      "commit": "b1afa07745280c7a36077beda6293b69c6ba4ea2",
      "tree": "77483b34ca63be514c3ee1caa562c7fd503cd3da",
      "parents": [
        "22ea35187f7d8a55ad7ede0d0e97be65b83801be"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 29 13:52:38 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 29 20:56:32 2017 +0000"
      },
      "message": "AAPT2: Allow arbitrary entry names with aapt2 optimize\n\nPresumably, the apps build fine for the developers, so just\nfeed the existing names through without validation. Validation\nstill exists when building an app from source.\n\nBug: 36051854\nChange-Id: Idc64ee91b08dce67d3c28f3c5284a7afa1312df1\nTest: run aapt2 optimize on the apks from b/36051854 and build aapt2_tests\n"
    },
    {
      "commit": "33af6c730f9f7fc51f04516c7a22cac82cb9823e",
      "tree": "94f834ef6df06b8b534cb3a053de308f74793a09",
      "parents": [
        "c463bed8dbfbb5bbac791299e8997282685e64d2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 29 13:00:35 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 29 20:11:04 2017 +0000"
      },
      "message": "AAPT2: Parse an ID encoded as a map\n\nID types should not be encoded as a map. AAPT and AAPT2 emit\nIDs as boolean types.\n\nSome apps exist that for some reason have their ID types encoded\nas empty maps. This is the case only for the auto generated IDs\nfrom enum values in \u003cattr\u003e tags.\n\nAllow IDs as maps and ignore their content when processing an APK\nfor optimizing.\n\nAlso fixes an issue with expected size of the ResTable_package struct.\n\nBug: 35861796\nTest: tested against the APK in b/35861796\nChange-Id: I29a19cd9777bb10bed6766cd42e35e50e098797b\n"
    },
    {
      "commit": "27a01ef0632fc31d558d6cb91c98e6eb8457eb33",
      "tree": "4e8e43052384fbbd52334e35eae37b6f4132b4cc",
      "parents": [
        "4e8da712d9f92d207b6a23ed161d360abe477763",
        "06460ef0d7072114ea3280e1650f77f55e7223f4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 24 22:04:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 24 22:04:59 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix up file IO\""
    },
    {
      "commit": "06460ef0d7072114ea3280e1650f77f55e7223f4",
      "tree": "5045dafbd896153c191ee0ea14717359021175e2",
      "parents": [
        "3910adfb62b6db705878058ccbae52af0fecb172"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 14 18:52:13 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 20 16:53:46 2017 -0700"
      },
      "message": "AAPT2: Fix up file IO\n\nThis also enables an AAPT behavior that CTS tests have\ncome to depend on.\n\nSmall files that compress negatively (get larger) are stored\nuncompressed. Some CTS tests assume this and try to open these\nfiles by mmapping them, which is only possible if they are\nuncompressed.\n\nBug: 35461578\nTest: make aapt2_tests\nChange-Id: Id622a6150fe72477ad65d67d1bad897a8ee2ffb9\n"
    },
    {
      "commit": "ed69ce84bdfa5ba82008a9b66485ef71c953657a",
      "tree": "a255aa92ea253c3cc2ec575279d4e28adfca8c2a",
      "parents": [
        "5c690d55dd2d0286db1ba3331a64769c07636ff8"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 20 10:55:01 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 20 14:51:13 2017 -0700"
      },
      "message": "libandroidfw: Fix mass logspam of ResourceTypes warnings\n\nAn overlay was incorrectly leaking its own resources into the\nframework resource package, which caused warnings for every app\nthat tried to access framework resources (all of them).\n\nThis change skips including any resources that are not overlaying\nanything (not present in IDMAP).\n\nBug: 36256974\nTest: make libandroidfw_tests\nChange-Id: I8c710af6849bb848938825aacca02799ee96c003\n"
    },
    {
      "commit": "b0c47ef8779e445865e63355ab66265461e1f2a3",
      "tree": "b0823faa314d767d90f9f0d2120c56ca57653ed0",
      "parents": [
        "1665d0f028e3a225cb117d3e227bef5c5dace2d4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 06 20:05:57 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 16 15:45:16 2017 -0700"
      },
      "message": "AAPT2: Finish support for feature splits\n\n- Prefix the config split name generated from a feature split with the\n  name of the feature split.\n- Add the \u0027configForSplit\u0027 attribute to the \u003cmanifest\u003e tag of a config\n  split and give it the same name as the feature split it was generated\n  from.\n- Look for the featureSplit attribute in \u003cmanifest\u003e and automatically\n  convert it to \u0027split\u0027 and inject \u0027android:isFeatureSplit\u003d\"true\"\u0027.\n\n  Feature splits should be written like so:\n\n  \u003cmanifest xmlns:android\u003d\"http://schemas.android.com/apk/res/android\"\n            package\u003d\"com.foo.example\"\n            featureSplit\u003d\"feature_b\"\u003e\n\n        \u003cuses-split android:name\u003d\"feature_a\" /\u003e\n\n        ...\n  \u003c/manifest\u003e\n\nBug: 34703094\nTest: manual\nChange-Id: I01b5c4a9aa03a2d25ef1e87bc7874b57c9deede9\n"
    },
    {
      "commit": "b39ad7c9f66877f92ea8583aa8b7b5a8daa6031e",
      "tree": "8b444f19230497d8a12e940c2ecd7a6673386345",
      "parents": [
        "208e2644618af7474f399089c264f0da1cfb0c81"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 13 11:40:48 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 14 12:26:28 2017 -0700"
      },
      "message": "AAPT2: Add -A (assets) support\n\nLooks like the build system doesn\u0027t support assets/ for\nresources, so we will re-introduce them in aapt2, even though\nwe\u0027re just copying them around and they would be better\nsuited for inclusion in the APK when classes.dex gets inserted.\n\nBug: 35461578\nTest: CTS test android.content.res.cts.AssetManager#testAssetOperations should pass\nChange-Id: I18361d7367d476806bcf7154ee76df3f0e83b565\n"
    },
    {
      "commit": "f34b6f4f2b969b47a3f371eb9549e92ef1680d91",
      "tree": "ba2db0d2374464655c54dd7a3c24a65207e415a3",
      "parents": [
        "df2870df9ae6e5dbb7acfe3d5fd840a3317b0e66"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 03 16:33:26 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 07 11:06:16 2017 -0800"
      },
      "message": "AAPT2: Add --package-id flag for feature-split suppport\n\nBug: 35928935\nChange-Id: Ia8496505e61cfcfdb8f9f62366d2f36e453db111\nTest: make aapt2_tests\n"
    },
    {
      "commit": "df2870df9ae6e5dbb7acfe3d5fd840a3317b0e66",
      "tree": "0b25318bf65a84bb9cf9cb4f9cb59ec375395a3e",
      "parents": [
        "a3d279fa4b258498f3b7ee678e546a82e76cdaaf",
        "136fd0764faf7a588b4a1b479d7a8cc6fe18fcc6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 06 20:01:13 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 06 20:01:17 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix parsing ResTable_type\""
    },
    {
      "commit": "ae3c244944267e2fd5fdd7bd3e1cd09e599ee118",
      "tree": "db6a7ea886dedf49efb6ee236386eb5bd8705ed3",
      "parents": [
        "64979aacb51b7a577862b7069e2f89d7e0fe8062",
        "8f7c550e20a6edbc9af7bb48675afaf8bcb3783f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 04 00:50:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 04 00:50:51 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix Plural::Equals() method\""
    },
    {
      "commit": "136fd0764faf7a588b4a1b479d7a8cc6fe18fcc6",
      "tree": "91f7316861e5d879a627bd00578170791889c528",
      "parents": [
        "485c0feea53199b1d43db8782073044c846424c4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 03 13:50:21 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 03 14:01:09 2017 -0800"
      },
      "message": "AAPT2: Fix parsing ResTable_type\n\nResTable_type\u0027s size changes due to it containing\nResTable_config. Make sure we check for the minimum size\nrequired to read it.\n\nBug: 35861796\nTest: Manual (don\u0027t have an integration test harness setup yet)\nChange-Id: Ifb0cd1d732625f59835c8ed0449adb78129636de\n"
    },
    {
      "commit": "ac6edc501b61e14e3b70ccbbd4d8ed112d92b96c",
      "tree": "cadb08aa8c867bbcd359aaa8ce87997b53f9acf0",
      "parents": [
        "555bf41049bbc387d920704f7a1f23314bc84986"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 02 19:31:28 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 02 19:32:32 2017 -0800"
      },
      "message": "AAPT2: Fix escaping sequence processing in XML parsing\n\nBug: 35483813\nTest: make aapt2_tests\nChange-Id: I68baba17ab3639c220b734a2a68d86aad0dedf8c\n"
    },
    {
      "commit": "8f7c550e20a6edbc9af7bb48675afaf8bcb3783f",
      "tree": "7a04d263f79324e59a30fda3a78034159578c90d",
      "parents": [
        "555bf41049bbc387d920704f7a1f23314bc84986"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 02 17:45:01 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 02 17:45:51 2017 -0800"
      },
      "message": "AAPT2: Fix Plural::Equals() method\n\nTest: make aapt2_tests\nBug: 35902437\nChange-Id: I8797f89af58876f891f0b0c5cce85fd7781c4e24\n"
    },
    {
      "commit": "b5dc4bd49a036e3403ca17e961d2c8e13e038295",
      "tree": "e07c0d9a9718a34e2834fe6adbfd99e449cebb8b",
      "parents": [
        "9a53d03104c4535f512ec24e63afe9a965979812"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 22 19:29:29 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 22 19:54:43 2017 -0800"
      },
      "message": "AAPT2: Few tweaks to get shared-libraries working\n\nTest: manual (building shared support library demo)\nChange-Id: I4730645aa92ba1893baf67ffe35fbd4aac0f8e46\n"
    },
    {
      "commit": "d48944a745f9ed121e6bde22ef6feb3a44fbec39",
      "tree": "349c152caa68f1283535b2f9c49f5cd8a50eb59b",
      "parents": [
        "ceb9b2f80f853059233cdd29057f39a5960a74ae"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Feb 21 14:22:30 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 22 11:41:55 2017 -0800"
      },
      "message": "AAPT2: Rename strip phase to optimize\n\n- Allow resource deduping, version collapsing, and sparse resource\n  encoding.\n\nTest: manual\nChange-Id: Ia4aa892ab5b06ba1d5ea4a6efb51b00bc3a980c4\n"
    },
    {
      "commit": "ceb9b2f80f853059233cdd29057f39a5960a74ae",
      "tree": "9093e8537319a97d8a2cbd8d4f0042c81de5ff8e",
      "parents": [
        "f9bd2944694539f1dce74d420156cc50bbb4af14"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 16 12:05:42 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 22 11:16:13 2017 -0800"
      },
      "message": "AAPT2: Shared library support\n\nTest: make aapt2_tests\nChange-Id: I98dddf1367e6c0ac425bb20be46e6ff05f4f2f45\n"
    },
    {
      "commit": "c8f71aa67ea599cb80205496cb67e9e7a121299c",
      "tree": "2966aa97b09f04f9b7379fd93a7fc3ea1ae9009f",
      "parents": [
        "c535d122c6a58a152ff2581f936070c2695c45ba"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 08 07:03:50 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 15 12:40:02 2017 -0800"
      },
      "message": "Add ResTable_sparseTypeEntry support\n\nBenchmarks on bullhead-userdebug show that there is a negligent\nperformance impact when using sparse entries on a 30% loaded\nsparse type of 1000 resources.\n\nBenchmark                                             Time           CPU Iterations\n-----------------------------------------------------------------------------------\nBM_SparseEntryGetResourceSparseLarge                255 ns        254 ns    2751408\nBM_SparseEntryGetResourceNotSparseLarge             254 ns        254 ns    2756534\n\nBug: 27381711\nTest: make libandroidfw_tests aapt2_tests\nChange-Id: I051ea22f2f6b2bc3696e446adc9e2a34be18009f\n"
    },
    {
      "commit": "5b12734fb0d1c189ed9ab699bdb1a4d26c6ed8b8",
      "tree": "606403e46191c1a8855af7456f7ada99333b4535",
      "parents": [
        "f700fb1f23459ba0b4cfad12d0ef7291139c31b9",
        "672384b41e1fc7195424533b7aa6753fb771a6cb"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Sun Feb 12 18:43:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Feb 12 18:44:01 2017 +0000"
      },
      "message": "Merge \"Allow for multiple preferred densities in the strip command.\""
    },
    {
      "commit": "672384b41e1fc7195424533b7aa6753fb771a6cb",
      "tree": "2fa775cab3a3f4b0df5649b2f25e6c0577c0e44c",
      "parents": [
        "85a05cd9b5945c42f46ce1bcacb2d1e0aa8c7a44"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Mon Feb 06 10:29:02 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Sun Feb 12 15:57:41 2017 +0000"
      },
      "message": "Allow for multiple preferred densities in the strip command.\n\nTest: Unit tests pass.\n\nChange-Id: I1f27ac8c36ff3489e4c8e4fce7f3d9cb31df6906\n"
    },
    {
      "commit": "024d22fdb76a75f72ac1a421c4dd184bbfe2ba12",
      "tree": "074240054a9d37547ab9ddd3cac73a05e08b3f0e",
      "parents": [
        "34895c404b0153f021094d149cf36918edbd4552",
        "7542162cb1b1fd2ce8a26dd7f3fedc8de8160d38"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 09 16:17:15 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 09 16:17:18 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix pseudolocalization to respect \u003cxliff:g\u003e\""
    },
    {
      "commit": "7542162cb1b1fd2ce8a26dd7f3fedc8de8160d38",
      "tree": "0358684e3551d67eb93cb80ae81ef391ba1a9091",
      "parents": [
        "c270de85cc0c398d9ce165592908d2740219a708"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jan 06 15:20:04 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 08 06:23:45 2017 -0800"
      },
      "message": "AAPT2: Fix pseudolocalization to respect \u003cxliff:g\u003e\n\nThe XLIFF \u0027g\u0027 tag specifies content that should NOT be translated.\nAAPT2\u0027s pseudolocalization process should respect it.\n\nBug:34064599\nTest: make libandroidfw_tests\nChange-Id: Ice437d7f0ff246730ee04896fd035e2d846148fb\n"
    },
    {
      "commit": "929d6517dfd338f0d481dbe6587643d5aef27ec6",
      "tree": "b80a93b93946bd4e982b9f4abd97a4c3aa43feb3",
      "parents": [
        "c270de85cc0c398d9ce165592908d2740219a708"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 16 19:11:19 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 08 06:04:52 2017 -0800"
      },
      "message": "AssetManager2: Add GetResourceId\n\nAdd ability to lookup a resource by name.\n\nTest: make libandroidfw_tests\nChange-Id: I262ba5ce4c9892458226fbdb44cf21f9877fb92d\n"
    },
    {
      "commit": "0355dccc85b70ae6e68a11c0dd1e6b8fb2feb94b",
      "tree": "5c5d8a13dc0bb5dd6e02abe4a5ae2ddcb0c8e1ba",
      "parents": [
        "466149d78c8483094840db8c70976427a9dab0a7",
        "fa131d5312011fc1a95cc9a679dbe52f0a7dbe4d"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Sat Feb 04 03:54:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 04 03:54:43 2017 +0000"
      },
      "message": "Merge \"Only compress files that were already compressed in the original APK.\""
    },
    {
      "commit": "558a63056e55424c1033d078e950e5329288cb57",
      "tree": "92bc949903bfd210322d3eb36947843c6f018c43",
      "parents": [
        "a07efe52d59a8d9652140d44f1744a43fdb690a5",
        "86d67df8d57b9537666f9b54a9ca563779a2288b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sat Feb 04 03:44:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 04 03:44:25 2017 +0000"
      },
      "message": "Merge \"AAPT2: Support CtsContentTestCases build\""
    },
    {
      "commit": "fa131d5312011fc1a95cc9a679dbe52f0a7dbe4d",
      "tree": "f488c2401aab2030859d822c11efe1d5838823af",
      "parents": [
        "2a1232426826d08124502fc48101a8eae326fcc4"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Feb 03 19:15:03 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Feb 03 19:49:37 2017 +0000"
      },
      "message": "Only compress files that were already compressed in the original APK.\n\nAlso fix a log message.\n\nTest: Manually. Unit tests pass.\n\nChange-Id: Iea236bbcfbe1a0a0894ce1bfce09c19208c5a0bc\n"
    },
    {
      "commit": "2968cbf4aa67e952d79dd57e39806dbe92a0148e",
      "tree": "77988c62bdfe8ddd5215c71f956fb1ba7f73ea11",
      "parents": [
        "fc866baa333a60a988208293fa2eb99d7e90d427"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Thu Feb 02 22:38:40 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Feb 03 18:57:09 2017 +0000"
      },
      "message": "Strip the resources from the APK using the TableSplitter.\n\nTest: Unit tests pass.\n\nChange-Id: I1dd71581113fb9a6feeefa9c794cc282529c3754\n"
    },
    {
      "commit": "fc866baa333a60a988208293fa2eb99d7e90d427",
      "tree": "f9d164ee808e72896dffcab33b32a5582caeef2b",
      "parents": [
        "265066c51d3f0fcc924fb12482780231329c95f2",
        "880d65b4fdfcdc5ac24a3d697a2acfc8511d8b37"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Feb 03 18:51:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 18:51:42 2017 +0000"
      },
      "message": "Merge \"Iterate over the zip entries in order.\""
    },
    {
      "commit": "265066c51d3f0fcc924fb12482780231329c95f2",
      "tree": "29e881b39a307c95af0e1db765cb458024916331",
      "parents": [
        "1d23c581645c891f5d24247e766fe1f06c616d6d",
        "970732dc453f84bdf4e232490925ee7c48513734"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Fri Feb 03 18:50:13 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 18:50:16 2017 +0000"
      },
      "message": "Merge \"Expose whether a file was compressed before being loaded in memory.\""
    },
    {
      "commit": "970732dc453f84bdf4e232490925ee7c48513734",
      "tree": "78476848b1dc7f27eff82c7f9841aa6a57bba92c",
      "parents": [
        "ddb80216b9d536be0f2af287f44a41872aa1d809"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Thu Feb 02 23:13:58 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Thu Feb 02 23:39:24 2017 +0000"
      },
      "message": "Expose whether a file was compressed before being loaded in memory.\n\nThis is useful when we want to write an APK and keep the same\ncompression parameters as the original APK.\n\nTest: Unit tests pass.\n\nChange-Id: I3afcae1c8727e429b08c9ac7359cf0789ff4abfc\n"
    },
    {
      "commit": "880d65b4fdfcdc5ac24a3d697a2acfc8511d8b37",
      "tree": "afca5c8fd9417eac0f150585a64d4724089994d6",
      "parents": [
        "ddb80216b9d536be0f2af287f44a41872aa1d809"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Thu Feb 02 22:33:17 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Thu Feb 02 22:52:44 2017 +0000"
      },
      "message": "Iterate over the zip entries in order.\n\nTest: Unit tests pass.\n\nChange-Id: I0501fad51a87c6cc91f2fc22358cd356616e1a2e\n"
    },
    {
      "commit": "2599aa4dfd29627a5690460bdcd5568d1029d4dc",
      "tree": "e7cf03b50d729f80cb85ec15ba1dc68bda841759",
      "parents": [
        "ddb80216b9d536be0f2af287f44a41872aa1d809"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Wed Feb 01 22:47:03 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Thu Feb 02 21:35:21 2017 +0000"
      },
      "message": "Add a method LoadedApk::WriteToArchive.\n\nTest: Manually.\n\nChange-Id: I61717204e58ca2bbfba9a52c7aecf27882a853f8\n"
    },
    {
      "commit": "86d67df8d57b9537666f9b54a9ca563779a2288b",
      "tree": "d7498429238104f724b28ff68a84e7deeebef8af",
      "parents": [
        "a9285db08883dbbe7b5eb9276cb52b7e01b42aa3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 31 13:47:27 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 01 15:28:23 2017 -0800"
      },
      "message": "AAPT2: Support CtsContentTestCases build\n\n- Add \u003cfeature-group\u003e to ManifestFixer.\n- Support \u003cmeta-data\u003e in \u003cinstrumentation\u003e\n- Add support for \u003cbag\u003e and type\u003d\"configVarying\". Some CTS tests use this\n  old notation, we need to support it (even though configVarying isn\u0027t\n  anything supported by the framework convention).\n\nChange-Id: I6946fa633ce513ea8437c1496db883cf27dcf6de\nTest: make aapt2_tests\n"
    },
    {
      "commit": "8a7b4cb99290ec8c1b7d7df4f6e64999a9f4de6e",
      "tree": "19ec30b335440f6fd50e7b371c55261083bd5adc",
      "parents": [
        "df7278d842eb89e24b94305890c3932c77e27cf2"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Tue Jan 31 23:58:27 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Wed Feb 01 18:49:19 2017 +0000"
      },
      "message": "Backbone of the new aapt2 strip command.\n\nThe strip command takes an APK as argument and a --target-densities flag which\ncontains the list of screen densities for which to optimize the APK. All\nthe resources that would be unused for a device having the given\ndensities are stripped from the APK leaving only the ones actually being\nused.\n\nTest: Manual.\n\nChange-Id: I68368b00876a18ccdbbfc0a8dd265bd361117933\n"
    },
    {
      "commit": "ff759e6a6ef6dd741b174e58a0f01cb87accc897",
      "tree": "97d5fa59235dad2144b90caf5f3340b2b4ff566a",
      "parents": [
        "db88bfaa31a559921657cd255e31cde2e73c6f99"
      ],
      "author": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Wed Feb 01 00:29:25 2017 +0000"
      },
      "committer": {
        "name": "Pierre Lecesne",
        "email": "lecesne@google.com",
        "time": "Wed Feb 01 00:31:55 2017 +0000"
      },
      "message": "Moving the LoadedApk class to its own file.\n\nTest: Unit tests pass.\n\nChange-Id: Id706f9ad1f3406bb73a60a33139a04745d5d72c0\n"
    },
    {
      "commit": "e84ad491c82168228f042644285a2581fc619baf",
      "tree": "4c14b28f519d939da23578fc7b4935cfb5b1adb6",
      "parents": [
        "b7cab6a19096458a7fafa905eed52db83759b6c6",
        "4832745b84d6a358582f2264d22acacf25e01b07"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 25 01:20:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 25 01:20:28 2017 +0000"
      },
      "message": "Merge \"Add color mode to activity/window\""
    },
    {
      "commit": "4832745b84d6a358582f2264d22acacf25e01b07",
      "tree": "cde7e923e06892dfa7c9b1a10a10e8da91e007f1",
      "parents": [
        "a393ff7dc7e7e7002a400d37868e0d6c14507b43"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 23 17:03:35 2017 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jan 24 15:55:09 2017 -0800"
      },
      "message": "Add color mode to activity/window\n\nThe color mode lets an application request a wide color gamut for\na specific window. This will also be used in the future to request\nHDR. The color mode is currently either default (sRGB) or an undefined\nwide gamut color space chosen by the platform. These attributes could\nlater be used to choose a specific color space if we deem this important\nor useful.\n\nThis change also renames the various \"colorimetry\" attributes and\nconstants to \"color mode\" for consistency. These symbols were\nadded in O and can be safely renamed.\n\nTest: CtsColorModeTestCases\nBug: 32984164\nChange-Id: I4d4691dd12dbe3f3aa6a5cf893cff39aa16c739e\n"
    },
    {
      "commit": "4d35cca96ce55eb29d1948086214f91ae94e9adb",
      "tree": "2ddb5bd63163bf8806be9dc4773e66630b5c4712",
      "parents": [
        "9727f22fc092fe7ccdbf2929d697126f2095d62e"
      ],
      "author": {
        "name": "Yuichi Araki",
        "email": "yaraki@google.com",
        "time": "Wed Jan 18 20:42:17 2017 +0900"
      },
      "committer": {
        "name": "Yuichi Araki",
        "email": "yaraki@google.com",
        "time": "Tue Jan 24 14:59:51 2017 +0900"
      },
      "message": "AAPT: Add --no-version-transitions flag\n\nAdd a new flag to disable versioning of Transition related XMLs.\nTransition support library will use this to handle these XMLs on older\nAPI levels.\n\nTest: make libaapt_tests AaptTestAppOne\nBug: 34427868\nChange-Id: I66e81cca049e71ef6704177b2ca21c9cdeaff78f\n"
    },
    {
      "commit": "c9ba55902123be5abcf2dcda5af9995be0b8d3d8",
      "tree": "953bf264c1f748816ad8ebc4898f580d163ce959",
      "parents": [
        "a2b1774d758b58fc5977f631eff76fa21d303906"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 18 16:34:42 2017 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 19 18:44:00 2017 -0800"
      },
      "message": "Add wide color gamut and HDR resource qualifiers\n\nBug: 32984164\nTest: Config_test, AaptConfig_test and aapt2_tests\nChange-Id: Ie9c82bfe2d36b1d6180ee223250ab5bb2ce90dd4\n"
    },
    {
      "commit": "d5083f6f6b9bc76bbe64052bcec639eee752a321",
      "tree": "29b5dfb74c7e9b12164ced408315b0ad8d5cf527",
      "parents": [
        "04e7b6c6de620406348142ba9dd65bad094e264b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 16 15:07:21 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 17 18:55:51 2017 -0800"
      },
      "message": "Move StringPiece to libandroidfw\n\nlibandroidfw needs to make use of StringPiece, so\nmove it to libandroidfw and update all code referencing\nStringPiece in aapt2.\n\nTest: make libandroidfw_tests libaapt2_tests\nChange-Id: I68d7f0fc7c651b048d9d1f5e7971f10ef5349fa1\n"
    },
    {
      "commit": "d8cb7dcc4150b1ad2a087e8f3c9acf88b64e32d0",
      "tree": "f4a97d7eeba248400a693d006070d9a83059900f",
      "parents": [
        "1bb70191766c25a6463295c88bd2e2b5886dc2f8",
        "191602091bafb08228a6d3708871c314faff681e"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Tue Jan 17 16:34:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 17 16:34:06 2017 +0000"
      },
      "message": "Merge \"AAPT2: Convert Android.mk to Android.bp\""
    },
    {
      "commit": "191602091bafb08228a6d3708871c314faff681e",
      "tree": "07bd02f297a357950232e163cb7e7ff0dbe8fdc8",
      "parents": [
        "ba5124b48bff2455c089e803ea6ffcc197a26c51"
      ],
      "author": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Thu Jan 12 14:24:31 2017 -0500"
      },
      "committer": {
        "name": "Fabien Sanglard",
        "email": "sanglardf@google.com",
        "time": "Fri Jan 13 18:56:55 2017 -0500"
      },
      "message": "AAPT2: Convert Android.mk to Android.bp\n\nChange-Id: I6c563993b57e3f04165ca57743f9a2878aba556c\n"
    },
    {
      "commit": "1a6acdbb86c3e72bdb0a4dcab3bda58cbc4ea34c",
      "tree": "1b243f434a14a25dc0eb39097293c3f27b74a54a",
      "parents": [
        "3c6f28aa5968b1edb823495efa15e7358de5261e"
      ],
      "author": {
        "name": "Zak Cohen",
        "email": "zakcohen@google.com",
        "time": "Mon Dec 12 15:21:21 2016 -0800"
      },
      "committer": {
        "name": "Zak Cohen",
        "email": "zakcohen@google.com",
        "time": "Wed Jan 11 11:44:47 2017 -0800"
      },
      "message": "Introduce new UI_MODE_TYPE_VR_HEADSET and qualifier.\n\nBug: 30989383\nTest: Unit test for aapt2\nChange-Id: I66dc65af6327b94fed74538bee08cada0b8be4fa\n"
    },
    {
      "commit": "38665547bb10f65f72d3358fb16cdc63d5febf15",
      "tree": "6a8053ce0d89d81546ed966c0c6fed082d7ff4a9",
      "parents": [
        "db10a2094c7e12ea0f30972a91ed892e085c836f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 28 12:25:46 2016 -0500"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 28 12:40:35 2016 -0500"
      },
      "message": "AAPT2: Treat non-AAPT attributes as Attributes with no format specified.\n\nAttributes in XML like \"class\" should be treated as attributes with no\nformat specified. That means that something like \u0027version\u003d\"1\"\u0027 will\nbe interpreted as an Integer value instead of as a string.\n\nThis is more in line with the old AAPT behaviour.\nBug: 30763349\nTest: make libaapt2_tests\n\nChange-Id: I02fe41617e3c62c354714056198ef480d62afee7\n"
    },
    {
      "commit": "5119e517308b84011fbd4d1a013296f4f5ffb8e4",
      "tree": "e926e96418644b4af981623aa28d06ba376adc8e",
      "parents": [
        "7dbbf956f73012ad0ea50bba37a21555cccfc726"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Dec 05 19:48:20 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Dec 05 21:09:52 2016 -0800"
      },
      "message": "AAPT2: Allow \u003cmeta-data\u003e in \u003cmanifest\u003e\n\nBug:32171613\nTest: libaapt2_tests\nChange-Id: I30fdd9475ff7dff6ceb0ff46a4a00991b72db68b\n"
    },
    {
      "commit": "67387af732f1b5e9b9bc270f03dbb1aedd5632cc",
      "tree": "113d9d560a625cb3f622789b506b8f489f14ad31",
      "parents": [
        "2fb2556833d9f6384004be9cbce4ba8321820909",
        "383db5ebcc3a4a615faf249bf4f126f42e80b82e"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Wed Nov 09 13:38:50 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 09 13:38:58 2016 +0000"
      },
      "message": "Merge \"Update package names to work with the proto3 compiler\""
    },
    {
      "commit": "f96789d37c71064f3222d9a628af16f5711145e2",
      "tree": "e08cb8095f88d9b322e50f4558d3e2c146c74a69",
      "parents": [
        "80361c9ea7f3ff694425b6bd9e42e8c933b1196c",
        "c0c366394c658e3787b12e65833b520c9a9a34d9"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Nov 08 23:03:54 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 08 23:03:58 2016 +0000"
      },
      "message": "Merge \"Add font type to AAPT2\""
    },
    {
      "commit": "383db5ebcc3a4a615faf249bf4f126f42e80b82e",
      "tree": "75bf14fb2ad46cc7f0cdb8c9c008d1f8c37fa519",
      "parents": [
        "e7f6ca32de6eebfed88e31156f2e264dc72fc3f1"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Wed Jun 22 15:21:38 2016 +0100"
      },
      "committer": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Tue Nov 08 14:06:09 2016 +0000"
      },
      "message": "Update package names to work with the proto3 compiler\n\nBug: b/28974522\nChange-Id: I5f3adf4946ee4ba1e09e4f40afe83c151405972a\n"
    },
    {
      "commit": "a256408b243cc9851655b10d4a9d99ef44915e17",
      "tree": "64a6fe8f0a7ab61933cfe5ed7e91cc7ace2d972b",
      "parents": [
        "cb291f38f8aa1517ca66c7331765becb47442edd"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Fri Nov 04 11:28:44 2016 +0000"
      },
      "committer": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Fri Nov 04 11:28:44 2016 +0000"
      },
      "message": "Renamed Aapt2.java to Aapt2Jni.java.\n\nSee http://ag/1590668 for a discussion.\n\nTest: Done in tools\nChange-Id: I3bfced0da98ab24531c1c1a79970841b32bfa1fa\n"
    },
    {
      "commit": "573cccfea713d54bb6c962112b65fa1679e4e58c",
      "tree": "699093b2df068693b6fe3d7c3f134e7e1ae339b3",
      "parents": [
        "eff7a8e4aab1cccd5b961e5ff4343a3f32e06f31",
        "b555b59f2e53c18e8bd10b51fd963c849eff2cef"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Thu Nov 03 18:39:02 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 03 18:39:04 2016 +0000"
      },
      "message": "Merge \"Updated JNI interface.\""
    },
    {
      "commit": "b555b59f2e53c18e8bd10b51fd963c849eff2cef",
      "tree": "96cb13336317741a3800508ed2d6973f069cece4",
      "parents": [
        "88dea2dd23e3df5f87826aa6e524233f37b17588"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Tue Nov 01 14:50:46 2016 +0000"
      },
      "committer": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Thu Nov 03 10:14:42 2016 +0000"
      },
      "message": "Updated JNI interface.\n\nAdded new \"ping\" method used to detect if the shared\nlibrary has already been loaded.\n\nFixed a few bugs in the implementation (and now it works\nfrom the Java side).\n\nSee http://ag/1590668 for the implementation on devtools.\n\nTest: Done on the tools side\nChange-Id: Ifa41073dc3b6ac69cdb9f77e655bf261c3b4c3d1\n"
    },
    {
      "commit": "3497b265076f338e320fcf01d3e46379492669b2",
      "tree": "842d1f034b3f00afdb6f44ba1ae33ccce477e65e",
      "parents": [
        "88dea2dd23e3df5f87826aa6e524233f37b17588"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Tue Nov 01 17:07:06 2016 +0000"
      },
      "committer": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Thu Nov 03 09:39:43 2016 +0000"
      },
      "message": "Added Windows support for aapt/JNI.\n\nThis includes copying and slightly modifying\nlibnativehelper\u0027s ScopedUtfChars\u0027 implementation.\n\nTest: Done in studio-master-dev\nChange-Id: I2aacc67b444668478aaa5bb0db991a201c571d1f\n"
    },
    {
      "commit": "c0c366394c658e3787b12e65833b520c9a9a34d9",
      "tree": "0f8edb0b05d1d2899100fd114053ba1b8baa39a0",
      "parents": [
        "9212fc742ff4fc92561c8055388d119d8ef195ae"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 19 18:37:53 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 27 18:09:00 2016 -0700"
      },
      "message": "Add font type to AAPT2\n\nTest: make libaapt2_tests AaptTestAppOne\nChange-Id: I8fbf01675a218cc3c0b59598b6b1ec173851e946\n"
    },
    {
      "commit": "e343eb145c42d00c4fd3fdde93cd0be55cb5b855",
      "tree": "687304b2b9ca6106eaa7387c304ac4e46570ddc1",
      "parents": [
        "584264f6af08faea57653c65db4abcb8111009c0"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 27 16:31:58 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 27 16:31:58 2016 -0700"
      },
      "message": "AAPT2: Insert \u003cuses-sdk\u003e element before \u003capplication\u003e\n\nPackageParser on the device uses the targetSdkVersion of the\napp while it parses \u003capplication\u003e. That means that if the\n\u003cuses-sdk\u003e tag comes after \u003capplication\u003e, the targetSdkVersion\nis assumed to be 0.\n\nTest: make libaapt2_tests\nChange-Id: I60f2179a7ff44e7419217afb53f3d24f8c030f6e\n"
    },
    {
      "commit": "ce5e56e243d262a9b65459c3bd0bb9eaadd40628",
      "tree": "cf0ecea98883d090d8d2856fc6d32046c7e3d9e8",
      "parents": [
        "0f7cc4dc2c49a30c072cbc7aa6c0c5d5c31496d4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 21 17:56:45 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 26 19:30:23 2016 -0700"
      },
      "message": "AAPT2: Rename to match new style\n\nUse Google3 naming style to match new\nprojects\u0027 and open source google projects\u0027 style.\n\nPreferred to do this in a massive CL so as to avoid\nstyle inconsistencies that plague legacy code bases.\nThis is a relatively NEW code base, may as well keep\nit up to date.\n\nTest: name/style refactor - existing tests pass\nChange-Id: Ie80ecb78d46ec53efdfca2336bb57d96cbb7fb87\n"
    },
    {
      "commit": "418063c63f1af7ed5373c524fce7672cc84bd752",
      "tree": "6b2b8fd06dcadaf299537efffe63a0d63feb9157",
      "parents": [
        "ff356a5661422d6753ad4df74e807b76eb53067c",
        "255960857d7682fdad4fe461ac1348b618d1dbb2"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Sat Oct 22 08:19:16 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 22 08:19:19 2016 +0000"
      },
      "message": "Merge \"Added JNI interface for aapt2.\""
    },
    {
      "commit": "b366402a687193ae584ea0ff040b2a1231333e8c",
      "tree": "dd69d681212cd7c85e6bce2d3265ce766c1d392e",
      "parents": [
        "f524e1c67f34b3fe842eda16052861f522845f68",
        "b54ef10f55ab9f11fdc73b0436b708e518fb5029"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Oct 22 00:37:16 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 22 00:37:20 2016 +0000"
      },
      "message": "Merge \"AAPT2: Ensure string pool ordering is compact\""
    },
    {
      "commit": "b54ef10f55ab9f11fdc73b0436b708e518fb5029",
      "tree": "52b1225899d166dd1f65a576bdf7fcc6796f0224",
      "parents": [
        "011cef54ee0a8260f6b4381c7ea28a450cd3cbce"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 21 13:38:42 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 21 13:51:59 2016 -0700"
      },
      "message": "AAPT2: Ensure string pool ordering is compact\n\nKeep styledstrings at the beginning of the StringPool\nto reduce the padding in the StyledString array.\n\nBug:32336940\nTest: manual\nChange-Id: Iec820c21a54daac40ecc3b2f87517a0f1efc9d3d\n"
    },
    {
      "commit": "577e66cc432a348c5fe811b006472d2026c7d12a",
      "tree": "1809b85eed6c84fd51c720b1f579063e0a2c00ff",
      "parents": [
        "09731444e72aba92e248238ff361a4c2084e122c",
        "dfaecafbe9fb7c5800191edfe3aa5d5938705204"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 21 03:04:10 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 21 03:04:12 2016 +0000"
      },
      "message": "Merge \"AAPT2: Fail compile on bad output file/dir\""
    },
    {
      "commit": "dfaecafbe9fb7c5800191edfe3aa5d5938705204",
      "tree": "5e4c34cebdb64a146d4cb6ee91f0ed70060e9bf0",
      "parents": [
        "011cef54ee0a8260f6b4381c7ea28a450cd3cbce"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 20 17:08:51 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 20 17:08:51 2016 -0700"
      },
      "message": "AAPT2: Fail compile on bad output file/dir\n\nTest: manual\nChange-Id: I2578e32c52430a62df942822ddf6bd3f06357bce\n"
    },
    {
      "commit": "12bfe65410ba7f01f5d70038332467d061747263",
      "tree": "b0d8de73a345225eed4b8a8c98eb868d02ea9ba6",
      "parents": [
        "c9eb24ceab80639b015395fc19ce4805c5c66a89",
        "6a396c1abb4e52f5a8fed5fab204ebc7b8e16dec"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 20 23:58:13 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 20 23:58:15 2016 +0000"
      },
      "message": "Merge \"AAPT2: Error on uncompiled XML or PNG files in link phase\""
    },
    {
      "commit": "6a396c1abb4e52f5a8fed5fab204ebc7b8e16dec",
      "tree": "7494b207c6cc2a37a84ee988cec11b2ffc4831d4",
      "parents": [
        "011cef54ee0a8260f6b4381c7ea28a450cd3cbce"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 20 14:38:23 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 20 14:40:49 2016 -0700"
      },
      "message": "AAPT2: Error on uncompiled XML or PNG files in link phase\n\nIncorrectly passing text XML and unprocessed PNG files to\nthe AAPT2 link phase should raise an error.\n\nTest: manual incorrect invocation of aapt2\nChange-Id: Iab47f99bc378b5d1c4f4d87098f08243b9a4dc6a\n"
    },
    {
      "commit": "092db3c88ae5f2ba1b34516666c2b87ed7404965",
      "tree": "8d3b157d3a1336745afa8398d36d8806391ca885",
      "parents": [
        "3e934442faa0627d05ac45ee87c67792ff34d292",
        "281e9f30c05d033b49141922e438eb47afaa0e8f"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Oct 20 19:35:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 20 19:35:45 2016 +0000"
      },
      "message": "Merge \"Fix a static-analyzer warning.\" am: 63b4f6f5db am: ea4423b181\nam: 281e9f30c0\n\nChange-Id: If34a4265ceb5bc6f4bf31c35e82270f90e970457\n"
    },
    {
      "commit": "ea4423b181ab793b7ec9eebe5bc388abbc7be35a",
      "tree": "f6be23ebb39018cb6480eb5510b889f192b4b641",
      "parents": [
        "abfd527d0924b56bc2e4e8b4281300bfabd791f7",
        "63b4f6f5db4d5ea0114d195a0f33970e7070f21b"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Oct 20 19:19:15 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 20 19:19:15 2016 +0000"
      },
      "message": "Merge \"Fix a static-analyzer warning.\"\nam: 63b4f6f5db\n\nChange-Id: I85fd6d25733d59da76eb0bab381fdbd3b5a0430d\n"
    },
    {
      "commit": "255960857d7682fdad4fe461ac1348b618d1dbb2",
      "tree": "52f0e74f56c725a08c92bb86b7964f21c19dc5d0",
      "parents": [
        "c4ee093bf618cc73788ee07df1051054ac10b585"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Fri Oct 07 12:00:26 2016 +0100"
      },
      "committer": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Thu Oct 20 12:03:34 2016 +0100"
      },
      "message": "Added JNI interface for aapt2.\n\nTest: None (tests will be made on the Android Studio Tools project)\n"
    },
    {
      "commit": "cacb28f2d60858106e2819cc7d95a65e8bda890b",
      "tree": "c8ac4af72b0a9599983567029e5680c40f9883a3",
      "parents": [
        "733f0bc08ea0c93d095016a791c2914658d0cdde"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 19 12:18:14 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 19 12:18:14 2016 -0700"
      },
      "message": "Use Google3 style guide with .clang-format\n\nTest: style change only, builds ok\nChange-Id: I885180e24cb2e7b58cfb4967c3bcb40058ce4078\n"
    },
    {
      "commit": "56f5f7b79bca91d6b241d35be0f4bf56155cf855",
      "tree": "309a11ef2d9c053c79dcb20ec22f1014dd403a42",
      "parents": [
        "c98b34bdce1fb1b43755af7fb8538efb0d0dc953"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Oct 11 18:08:23 2016 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Thu Oct 13 15:52:34 2016 -0700"
      },
      "message": "Fix a static-analyzer warning.\n\nframeworks/base/tools/aapt2/util/Files.cpp:81:21: warning: Null pointer\npassed as an argument to a \u0027nonnull\u0027 parameter\n     while ((entry \u003d readdir(dir))) {\n\nBug: None.\nTest: Warning no longer appears.\nChange-Id: If242598405e995928378ce317a2e909654e1e985\n"
    },
    {
      "commit": "56f823be9ad6626234300e7c787a74eb0186ee18",
      "tree": "b7bdf447b958a937f150ea163aa83ee57893c134",
      "parents": [
        "7a31d42c5ded0e81839d5685facfbe14419b8a35",
        "437b8c95a803736a8917bd2b89c5653ba48976b6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 17:42:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 10 17:42:08 2016 +0000"
      },
      "message": "Merge \"Rely on the platform -std default.\" am: 66f15cc01b am: 5a989a504a am: 39ad1b92fa\nam: 437b8c95a8\n\nChange-Id: Idacd1cad6e0e241404c99b680974aae2b8f81926\n"
    },
    {
      "commit": "437b8c95a803736a8917bd2b89c5653ba48976b6",
      "tree": "ced0844dd0c946b2e05ad1a09b199888fd67ef97",
      "parents": [
        "3590533125d0f352104f2b0c739ee7ffffc89d0b",
        "39ad1b92fa808c5a4f67cc50d72531ad6ad8fdb5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Oct 08 22:03:56 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Oct 08 22:03:56 2016 +0000"
      },
      "message": "Merge \"Rely on the platform -std default.\" am: 66f15cc01b am: 5a989a504a\nam: 39ad1b92fa\n\nChange-Id: Iec4bca8e96c776d61c5da5540a74acc6773c2bce\n"
    },
    {
      "commit": "c08e32e0beb52400e3957f03429b83bbee1832de",
      "tree": "cf13fdbc53e7155db98b0ee36ad8c985fa0a96f1",
      "parents": [
        "f12c6e4f5e0eecef53a75b6f3eb323018ff2ec7c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 15:57:17 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 15:57:17 2016 -0700"
      },
      "message": "Rely on the platform -std default.\n\nBug: http://b/32019064\nTest: builds\nChange-Id: I7180f1eb539ff8cbe33832d010775f053a922946\n"
    },
    {
      "commit": "edba94106473b8d7b3aa8a4805d2e45497084755",
      "tree": "4d7dac70d4531859acde8f65931862903544265f",
      "parents": [
        "1b219d06e397880e65b7af25a000954a3a39567a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 04 17:33:04 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 04 17:50:19 2016 -0700"
      },
      "message": "AAPT2: Ensure PNG endianness in 9-patch serialization\n\n9-patch serialization requires PNG endianness\n\nBug:31942900\nTest: manual + added serialization test to libaapt2_tests\nChange-Id: Iea521718f88e80d3fa7a8723a47584973738748a\n"
    },
    {
      "commit": "ffa9656223c974191255dff3960f45e134f97c8c",
      "tree": "024099ef7c7656b0318b7882ca1f08b74479eee2",
      "parents": [
        "996b2083da1181fbfb61c6993329b84f9218099c",
        "21efb6827cede06c2ab708de6cdb64d052dddcce"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Oct 03 21:22:24 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 03 21:22:28 2016 +0000"
      },
      "message": "Merge \"AAPT2: Refactor PngCrunching\""
    },
    {
      "commit": "77788eb4cf0c5dba0f7370192e40364fe853050a",
      "tree": "58cfdb7a8c306a564984613b25b4226a9a544bf0",
      "parents": [
        "d67b4f53d5aa35579b5fb9326e86b5a1db7c5985"
      ],
      "author": {
        "name": "Alexandria Cornwall",
        "email": "acornwall@google.com",
        "time": "Tue Sep 06 15:16:49 2016 -0700"
      },
      "committer": {
        "name": "Alexandria Cornwall",
        "email": "acornwall@google.com",
        "time": "Fri Sep 30 18:27:13 2016 -0700"
      },
      "message": "AAPT2: Add dominator tree analysis and resource removal\n\nAdded dominator tree analysis of resource configurations for each\nresource entry to allow deduping of resource entries if:\n\n1. The configuration for the resource entry\u0027s value is dominated by\na configuration with an equivalent entry value.\n\n2. All compatible configurations for the entry (those not in conflict\nand unrelated by domination with the configuration for the entry\u0027s\nvalue) have an equivalent entry value.\n\nBug: 30051199\nTest: make libaapt2_tests \u0026\u0026 libaapt2_tests\nChange-Id: I66468d3014a2d6097a94b039ac1028f9f461c7d3\n"
    },
    {
      "commit": "21efb6827cede06c2ab708de6cdb64d052dddcce",
      "tree": "0e2ab9e6220b5d731efcb417a490cff47b4329f7",
      "parents": [
        "b0de46ef079b8fae781b40a5a67bd7552bd81ddd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Sep 14 17:35:43 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Sep 29 15:28:52 2016 -0700"
      },
      "message": "AAPT2: Refactor PngCrunching\n\nPngCrunching now has a slightly better heuristic of choosing to encode\nan image as a palette or RGB. For small images, RGB compresses much better\nthan a palette.\n\nThe original PNG is used as-is (minus some optional chunks being stripped)\nif the resulting crunched PNG is larger than the original.\n\n9-patch handling is abstracted away from PNGs, paving the way\nfor other 9-patches, like WebP.\n\nTODO: handle PNGs with 9-patch chunks already present, which\nshould just be passed through. This will allow for 3rd party\ntools to generate 9-patches.\n\nTODO: implement cheap transparency: when one color is used to represent\ntransparent, and all other colors are opaque.\n\nBug:30053276\nChange-Id: I5167f53b91d1efa462d9f03d6b9108d9b541c0c1\n"
    },
    {
      "commit": "b896ae72677773a73c7875b7c98d294e3c0a1cf4",
      "tree": "49cb682bd3938cba440f65323fd58511922260bf",
      "parents": [
        "89be94a417da8a69c325f40f8faa7b7c5463f04b",
        "c7ca55e27bc2c3884267a0dd4616a5ed22c191c2"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Tue Sep 27 21:33:53 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 27 21:33:56 2016 +0000"
      },
      "message": "Merge \"Added building libaapt2_jni.so.\""
    },
    {
      "commit": "c7ca55e27bc2c3884267a0dd4616a5ed22c191c2",
      "tree": "81675d9aa9b1ba26330f94f0206fff0e184b1753",
      "parents": [
        "682ad3b4d34c68152c32c1f5993a536a6512e9b3"
      ],
      "author": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Fri Sep 23 20:52:31 2016 +0100"
      },
      "committer": {
        "name": "Paulo Casanova",
        "email": "pasc@google.com",
        "time": "Tue Sep 27 18:34:54 2016 +0100"
      },
      "message": "Added building libaapt2_jni.so.\n\nChange-Id: Ica2769c08b4bb5c6cceebb8052c0dd7817ef4586\n"
    },
    {
      "commit": "a0b929d27f284be12ac70342cba984abe17f719c",
      "tree": "77051ca7a88d1e924c2eb7a0664800e47e3b4d14",
      "parents": [
        "b0de46ef079b8fae781b40a5a67bd7552bd81ddd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Sep 19 09:50:45 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Sep 19 09:50:45 2016 -0700"
      },
      "message": "AAPT2: Allow \u003ccompatible-screens\u003e\u003cscreen\u003e in AndroidManifest.xml\n\nChange-Id: I1e7c7211be1d9caea4174f7cac067c2565879d04\n"
    },
    {
      "commit": "8c3f31f022f7e094fd227ef0c2987e0846cb3e43",
      "tree": "d9550e3643a3eea0d0e323d3234edb52274a96fc",
      "parents": [
        "43321e02bc3553bdd7ea5f2af823080414d59b54"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Sep 07 13:45:13 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Sep 07 13:45:13 2016 -0700"
      },
      "message": "AAPT2: Fix issue with styled string indices\n\nStyled strings use spans to denote which part\nis styled (\u003cb\u003e, \u003ci\u003e, etc). Spans are simply a range\nof indices into the original string.\n\nIn Java, we use String and its internal representation, meaning\nwe must encode the indices using UTF16 lengths.\n\nWhen the internal AAPT2 representation of strings switched to UTF8,\nthe indices also began to index into the UTF8 string.\n\nThis change reverts the indices to use UTF16 lengths.\n\nBug:31170115\nChange-Id: I07b8b5b67d2542c7e0a855b601cdbd3ac4ebffb0\n"
    },
    {
      "commit": "5cb0530ca444ad070adfa10005bb9cabd4dbeeb7",
      "tree": "d3e7385507e7f577bb20bd44525a886a0b710a07",
      "parents": [
        "d98aba973e3f48046a03cbf464af9deb7a11407a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Sep 06 17:34:06 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Sep 06 17:34:06 2016 -0700"
      },
      "message": "AAPT2: Update version and readme\n\nUpdate version to 2.2 and update readme to reflect added\nsupport for inline complex XML resources.\n\nChange-Id: If825c96541952e95860d34390c6c36704a24129b\n"
    },
    {
      "commit": "871f2f5fc2a5664758a93408622ddb6defaa1052",
      "tree": "aba8b1436ca79e9a2d0e6a1a0a627b877eecf9c0",
      "parents": [
        "9af92f3cca4894190f2638dce21aef334c032ccd",
        "5eeaaddffd23d8d85aeb321e3ceea626e42cf9de"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Sep 02 18:49:43 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 02 18:49:46 2016 +0000"
      },
      "message": "Merge \"AAPT2: Add Inline Complex XML support\""
    },
    {
      "commit": "5eeaaddffd23d8d85aeb321e3ceea626e42cf9de",
      "tree": "dcd102c0f14825c34c2251427db84e48cb11d8a7",
      "parents": [
        "79758c8e7706f3cce265a881cc66df8771d3c456"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 25 12:26:56 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 31 18:32:34 2016 -0700"
      },
      "message": "AAPT2: Add Inline Complex XML support\n\nSee: https://developer.android.com/guide/topics/resources/complex-xml-resources.html\n\nChange-Id: I8274c85e25cabf90423141c228697e873167d136\n"
    },
    {
      "commit": "96692047e6fb0bf05c4efa8def51e5f4c61d1a39",
      "tree": "d3b37e37757cbd06c559fba41b6681467c3d4a1e",
      "parents": [
        "d47e4143ae31de8b74b1a77747bb596bc3ce4ba3",
        "085f4957477481038e0bfe141b62c7333a99fbe0"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 31 20:18:17 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 20:18:19 2016 +0000"
      },
      "message": "Merge \"AAPT2: Revert warning when merging packages\""
    },
    {
      "commit": "a6ad7d5cc37aad727b2e5044b8c978c47d28e38b",
      "tree": "0e7ff0a25435c8b5a91ac73dbde621380ee77ff4",
      "parents": [
        "3ddbf246bebaa6f9fd3790f4bdd6d95100f411da",
        "198cb0f048a770d4679c71d8885c76168a832c6f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 31 00:55:51 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 00:55:53 2016 +0000"
      },
      "message": "Merge \"AAPT2 tools: Fix logging in resource file fixer\""
    },
    {
      "commit": "7fd4eb7ff7ae637d984ed1d75672b018011c598d",
      "tree": "d193e7b5ed0a343775f0193ce321a9d0b328bb45",
      "parents": [
        "5355afde19bfdd4c2dd1c940e12b9e468a4cdcc9",
        "e3cd4b394c6334eb828e5bbc4d69de2896b76678"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 31 00:29:35 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 31 00:29:35 2016 +0000"
      },
      "message": "Merge \"Replace libziparchive-host with libziparchive\" am: 611e205bbe am: 8c8bb25089 am: 63dc310e6a\nam: e3cd4b394c\n\nChange-Id: Icc088a0cdd6a2ebc2b7bedb719ad7220d947273d\n"
    },
    {
      "commit": "198cb0f048a770d4679c71d8885c76168a832c6f",
      "tree": "6dc4c8b8a21b90b3d122c0f2516cf952f0baf955",
      "parents": [
        "79758c8e7706f3cce265a881cc66df8771d3c456"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Aug 30 13:11:40 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Aug 30 15:07:50 2016 -0700"
      },
      "message": "AAPT2 tools: Fix logging in resource file fixer\n\nChange-Id: I5113012229005c94e466f43a30932ebdc74d76fc\n"
    },
    {
      "commit": "085f4957477481038e0bfe141b62c7333a99fbe0",
      "tree": "b01da46cede7f1e097ae0df0555bd07bd04b9b7d",
      "parents": [
        "79758c8e7706f3cce265a881cc66df8771d3c456"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Aug 30 14:25:51 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Aug 30 14:25:51 2016 -0700"
      },
      "message": "AAPT2: Revert warning when merging packages\n\nA compiled ResourceTable may contain multiple packages.\nWhen referencing a framework attribute, for instance,\nthe compile phase has no idea if that attribute is a USE\nor a DECLARATION, like so:\n\n  \u003cdeclare-styleable name\u003d\"Foo\"\u003e\n    \u003citem name\u003d\"android:id\" /\u003e\n  \u003c/declare-styleable\u003e\n\nIf this file is compiled with the package \u0027android\u0027, then this\nis a declaration. If it is compiled with the package \u0027com.foo\u0027,\nthis is a reference that must resolve at link time.\n\nSince this is common, warning that the package \u0027android\u0027 is being\nignored during the merge phase is incorrect behaviour.\n\nThe warning was antroduced in ag/1363992\n\nChange-Id: I09254d79ac379439face177eb724df882d1d0ce1\n"
    },
    {
      "commit": "5c3464c75fc517c0306a4ffd39c59671ccfde544",
      "tree": "6a20580de33238d2c16a761f880a442eb5c74c0b",
      "parents": [
        "e637f31581787efc533b2115ca7d71fa8d92e98b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 24 16:03:48 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 26 19:40:50 2016 -0700"
      },
      "message": "AAPT2: Fix merging of styleables the right way\n\nStyleables should only be merged when processing overlays.\nThis moves the styleable merging code out of ResourceTable\nand into TableMerger.\n\nChange-Id: I3aae05cf4dd875cd25ac2ac744b61194409b2fee\n"
    },
    {
      "commit": "e3cd4b394c6334eb828e5bbc4d69de2896b76678",
      "tree": "0acbae0c0f3eb62cc51bd68c37e8ed50f0476a42",
      "parents": [
        "214f2fe7b41406e7ef8a342320e5e1fd3530b1a7",
        "63dc310e6acb5f63c24bd9536e4d173efe90bc04"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Aug 26 20:40:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 26 20:40:27 2016 +0000"
      },
      "message": "Merge \"Replace libziparchive-host with libziparchive\" am: 611e205bbe am: 8c8bb25089\nam: 63dc310e6a\n\nChange-Id: I645d077dd656f84446f77fd91c169fd7b977e661\n"
    },
    {
      "commit": "9a1a3bcb164d331480100bd815f3bd89230ff9bc",
      "tree": "d8ef53e61df3c2da9b332c7d145db1d99310ef0d",
      "parents": [
        "0a357a1a7353dc93f6e0c03fbf242231232948d8"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Aug 26 11:15:17 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Aug 26 11:15:17 2016 -0700"
      },
      "message": "Replace libziparchive-host with libziparchive\n\nlibziparchive-host is no longer necessary, and mixing libziparchive-host\nand libziparchive can cause ODR violations.\n\nChange-Id: I623c0c5579e28f26a6e1db7bd953f33ed1ca68cd\n"
    },
    {
      "commit": "2cc64692ceb30f171e4554eac0b69c9a8257fe3d",
      "tree": "6055270529eb50a2d6faaec1d036ffe081b86f18",
      "parents": [
        "2d484bab6137618bcdedadae1e92e721c4e9e5f8",
        "1657493c22ec6ed460d9e082ee52653f00baec62"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Aug 25 20:31:31 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 25 20:31:31 2016 +0000"
      },
      "message": "Merge changes from topic \u0027utf\u0027 am: 0a357a1a73 am: de8a6a66f6\nam: 1657493c22\n\nChange-Id: Ie675738a4f9042929d1ffb5e1ffcc7bbb5c7b217\n"
    },
    {
      "commit": "d90d8d615a99ad9f75e2911e98a166b396a89053",
      "tree": "a36708554d2e9010da4601b1930510926bcc2d42",
      "parents": [
        "8f7b8a1f6c5808ea205bfb3294a313e2bcaedf7f"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Tue Jun 28 18:26:10 2016 +0100"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Aug 25 12:19:12 2016 +0200"
      },
      "message": "Add bound checks to utf16_to_utf8\n\nTest: ran libaapt2_tests64\nBug: 29250543\nChange-Id: I1ebc017af623b6514cf0c493e8cd8e1d59ea26c3\n(cherry picked from commit 4781057e78f63e0e99af109cebf3b6a78f4bfbb6)\n"
    },
    {
      "commit": "8f7b8a1f6c5808ea205bfb3294a313e2bcaedf7f",
      "tree": "9ed3dfd1f059e1b87dc169a27159224eeda82c55",
      "parents": [
        "e71ecb2c4df15f727f51a0e1b65459f071853e35"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Thu Jul 21 14:44:07 2016 +0100"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Aug 25 12:04:40 2016 +0200"
      },
      "message": "Unicode: specify destination length in utf8_to_utf16 methods\n\nChange-Id: I5223caa7d42f4582a982609a898a02043265c6d3\n"
    },
    {
      "commit": "8197cc460e02c6445434eace435e3d38ebe475c6",
      "tree": "4d3a76e6bf511d3f6ef331fc9dcd89ebf1ebd0fe",
      "parents": [
        "aa0255da28675431c93593a8dd2d225538cbb3ac"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 19 12:16:49 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 19 13:29:40 2016 -0700"
      },
      "message": "AAPT2: Merge Styleables instead of overriding them\n\nStyleables merge in AAPT. Preserve this behavior.\n\nBug:30970091\nChange-Id: Ie68ca675aeecd873c0648682182e2fc574e329a0\n"
    },
    {
      "commit": "aa0255da28675431c93593a8dd2d225538cbb3ac",
      "tree": "ca931c2d4842c8fd7de48f6aadf3258771c38708",
      "parents": [
        "1ce859ee4c29adf68f25216c9866e964cfaba52b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Aug 02 11:32:45 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 18 14:05:44 2016 -0700"
      },
      "message": "AAPT2: Add tool to fix positional argument issues\n\nChange-Id: Ie8f733b70d561667cd25b38fb4c09d0837ef9b7f\n"
    },
    {
      "commit": "a7cc3f1d79eb7a02a68928381998137f2f9b10a3",
      "tree": "23b7c77188e2a7d12271565becf65f4132c7b6e6",
      "parents": [
        "58a00115d935ee44ac113ea68253e440dbd24087"
      ],
      "author": {
        "name": "Alexandria Cornwall",
        "email": "acornwall@google.com",
        "time": "Tue Aug 16 13:33:32 2016 -0700"
      },
      "committer": {
        "name": "Alexandria Cornwall",
        "email": "acornwall@google.com",
        "time": "Wed Aug 17 11:01:05 2016 -0700"
      },
      "message": "AAPT2: Add support to strip namespaces from XML\n\nThe --no-xml-namespaces flag will strip namespace information from\ncompiled binary XML files in res/* (excluding res/raw/*) and\nAndroidManifest.xml. It will also strip URI information from compiled\nbinary XML files in res/* (excluding res/raw/* and AndroidManifest.xml).\n\nAndroidManifest.xml URI information is retained due to PackageParser, which\nrequires the Android URI for intent filters.\n\nBug: 29115919\nChange-Id: I90cad6ed39ce02a69776f55314c1d4f38ad1aabe\n"
    },
    {
      "commit": "e42bc0587f82b42c466c1fc6baefc7113021fc4f",
      "tree": "03e2fe182dd824de0ee45af1761f512314adaaae",
      "parents": [
        "1d740812e657e92e5370b4162991a7e43ec43221",
        "470f8fcb5c0c59b28b5f73ee011a797b05085da7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 15 21:10:21 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 15 21:10:23 2016 +0000"
      },
      "message": "Merge \"Fix clang-tidy warnings in aapt and aapt2.\""
    }
  ],
  "next": "1d740812e657e92e5370b4162991a7e43ec43221"
}
