)]}'
{
  "log": [
    {
      "commit": "171c9cdc6addc3528733a47541ed7b93b139693b",
      "tree": "c3060f2f6d0447bdd1d8e0084506d2db575047f3",
      "parents": [
        "3ffdb26aa8da4778c10739049299a09d6d9febf5",
        "32885536233f16b1369d6cc93616de03d0e97559"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 28 22:15:35 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 28 22:15:35 2019 +0000"
      },
      "message": "Merge \"clang-format ManifestFixer_test.cpp\""
    },
    {
      "commit": "32885536233f16b1369d6cc93616de03d0e97559",
      "tree": "b00ccf9375f10eb244c103ff58ac8539e8e8071a",
      "parents": [
        "1b9de57f3844c8aa784a5163a4581851c2f17baf"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 11 13:20:17 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jan 25 21:33:02 2019 +0000"
      },
      "message": "clang-format ManifestFixer_test.cpp\n\nFix formatting errors introduced by Iee2bd9a3981c7d4681509f18b735c6e9e6c1a336.\n\nTest: m checkbuild\nChange-Id: I5d9a4cec277e31f4124bff281bf7a52cc97f73e3\nMerged-In: I10b27abb8fa8a99a41976c42c4d684b99978b4f9\n"
    },
    {
      "commit": "1fc78e1814d6e1ad8d49e905a569d2589bbb2b8f",
      "tree": "aed2dad2df847dd375759f3ab6378466a9abe482",
      "parents": [
        "bd7379858523c4e06175ee6cd92b46750d05b1dd"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Dec 20 13:37:44 2018 -0800"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jan 04 17:38:13 2019 +0000"
      },
      "message": "Fix/suppress aapt/aapt2 google-explicit-constructor warnings\n\n* Add explicit to conversion constructors/operators\n* Use NOLINT or NOLINTNEXTLINE to suppress warnings on intended converters\n\nBug: 28341362\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,google-explicit-constructor\nChange-Id: Ie02101ea7c422e8add535c111a30a2f21ead0ace\n"
    },
    {
      "commit": "e75f2f504e4d119dc83d077802e62031efb9d300",
      "tree": "7dc043ba5f0e34433e90d88249c1a4dfa1198b48",
      "parents": [
        "4d9823f3eb12d27610770ea315512e460d8dbab3",
        "f5c86dc1c113dc2a898311ee4d446a9ab3ed8e72"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 10 22:29:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 10 22:29:57 2018 +0000"
      },
      "message": "Merge changes from topic \"aapt2-manifest-elements\"\n\n* changes:\n  Remove workarounds for b/79755007\n  AAPT2: Add the rest of supported manifest elements\n  AAPT2: Add supported manifest elements\n"
    },
    {
      "commit": "5c541f6e36c049d2a00628083ca0534bf39db971",
      "tree": "b96859ed3ac2264eaae528d3eaf11f7a0901aeb0",
      "parents": [
        "61b9b6c9eb7acb7b5f260f43b04d31d17bb59557"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Wed Jun 20 08:46:41 2018 +0200"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Mon Oct 08 09:56:09 2018 -0700"
      },
      "message": "libandroidfw: move ConfigDescription from aapt2 to libandroidfw\n\nThis is to allow idmap2 to access ConfigDescription.\n\nTest: libandroidfw_tests\nTest: aapt2_tests\nChange-Id: I54210bbbd8dad5903cb7100807df977efa394ad5\nMerged-In: I54210bbbd8dad5903cb7100807df977efa394ad5\n"
    },
    {
      "commit": "00d5548355ed5a15219ad848ab7a947ea54f82de",
      "tree": "49f1b8b155c999aae5a2263a195efee25377a48f",
      "parents": [
        "48d009ad321efff9e3b43e1f5fc7477dc78a3ae4"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Sep 07 14:33:14 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 13 22:12:37 2018 -0700"
      },
      "message": "AAPT2: Add the rest of supported manifest elements\n\nAdds elemnts that are parsed in PackageParser to the manifest parsing of\nAAPT2.\n\n\u003cpackage\u003e found in \u003cmanifest\u003e\n\u003cpreferred\u003e found in \u003cmanifest\u003e\u003capplication\u003e\u003cactivity\u003e\n\nBug: 79755007\nTest: manual building of broken targets listed in the bug\nChange-Id: Ic7d17e62d04aa46757d2ed7482ec0aff93ce9ee5\nMerged-In: Ic7d17e62d04aa46757d2ed7482ec0aff93ce9ee5\n(cherry picked from commit 28afe682cd84c894c4da880ace41db77268400c4)\n"
    },
    {
      "commit": "48d009ad321efff9e3b43e1f5fc7477dc78a3ae4",
      "tree": "28c4d899141ac3aeb920a03d730184f14024c59b",
      "parents": [
        "741521940a1b0d0b05b20719a38e3970917dd5ef"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Jul 25 16:15:17 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 13 22:11:59 2018 -0700"
      },
      "message": "AAPT2: Add supported manifest elements\n\nAdds some elements present in res/values/attrs_manifest.xml to manifest\nparsing.\n\n\u003cadditional-certificate\u003e in \u003cmanifest\u003e\u003capplication\u003e\u003cuses-static-library\u003e\n\u003cmeta-data\u003e in \u003cmanifest\u003e\u003cpermission\u003e\n\u003cpackage-verifier\u003e in \u003cmanifest\u003e\n\u003crestrict-update\u003e in \u003cmanifest\u003e\n\nBug: 79755007\nTest: manual\nChange-Id: I50520a99ce5ced9908001430b2108d7a5c71f8a7\nMerged-In: I50520a99ce5ced9908001430b2108d7a5c71f8a7\n(cherry picked from commit 66f6cfb8a561a653db084b97adfa8c4d48979000)\n"
    },
    {
      "commit": "da02feaca2db055df1f52493edc9fe3ddf2aa88b",
      "tree": "c026c098de0792f3da4c3d979b11506fd55003b6",
      "parents": [
        "1d09efefebab4915e78dd06ba977c7ded4a46ab7"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 25 22:46:35 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed May 30 23:25:21 2018 +0000"
      },
      "message": "Add support for --replace-version to aapt2\n\nImplement --replace-version to match aapt1.\n\nBug: 79755007\nTest: aapt2_tests\nChange-Id: Iee2bd9a3981c7d4681509f18b735c6e9e6c1a336\nMerged-In: Iee2bd9a3981c7d4681509f18b735c6e9e6c1a336\n(cherry picked from commit dcd58c420771af75c625242985bd96ba828aca56)\n"
    },
    {
      "commit": "f7ae76d8451f1f9a4099c5fa5d3197b0f4763c75",
      "tree": "56f44cdb2c6ca7d11402da4d709d7f7560ca81ac",
      "parents": [
        "2f4bf5423d742ca6df4488d9df61f794ea2e82f1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 25 22:46:35 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed May 30 15:40:06 2018 -0700"
      },
      "message": "Add support for --replace-version to aapt2\n\nImplement --replace-version to match aapt1.\n\nBug: 79755007\nTest: aapt2_tests\nChange-Id: Iee2bd9a3981c7d4681509f18b735c6e9e6c1a336\nMerged-In: Iee2bd9a3981c7d4681509f18b735c6e9e6c1a336\n(cherry picked from commit dcd58c420771af75c625242985bd96ba828aca56)\n"
    },
    {
      "commit": "533c09b01b175b8b59e8f83c64a61d98ca808e75",
      "tree": "3d8a57967bed4ea1c6e1002a15716ab9c3d88c0d",
      "parents": [
        "b2b20f26db06c9d9f84b9801f27cb17ab7444e2f"
      ],
      "author": {
        "name": "Izabela Orlowska",
        "email": "imorlowska@google.com",
        "time": "Tue Dec 19 16:22:42 2017 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 21 19:51:50 2018 +0000"
      },
      "message": "AAPT2: treat manifest validation errors as warnings when asked\n\nBug: 65670329\nTest: updated\nChange-Id: Ic554cc20134fce66aa9ddf8d16ddffe0131c50e9\nMerged-In: Ic554cc20134fce66aa9ddf8d16ddffe0131c50e9\n(cherry picked from commit ad9e1324ff2c459d0ee6ee571d4a3e458c02cc81)\n"
    },
    {
      "commit": "ef506c73bb841d363060d2f0b52d56f3a28eea0e",
      "tree": "2204f7835543ecc7723a025ffb4ec5434c626a75",
      "parents": [
        "1e0a5d397dfce71c8541fd08d0215263fc9947a3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 06 10:44:46 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 21 19:48:36 2018 +0000"
      },
      "message": "AAPT2: Differentiate between Android and Java package names\n\nAndroid package names are more strict (ASCII only) than Java package names.\nAlso fixed an issue where trailing underscores were disallowed in Android\npackage names.\n\n(cherry picked from commit 96ea08f1e737e0d19e274e9a29f71c387d81b09a)\n\nAlso includes part of I357fb84941bfbb3892a8c46feb47f55b865b6649 to remove\nusage of FindNonAlphaNumericAndNotInSet.\n\nBug: 79481102\nTest: make aapt2_tests\nChange-Id: I1052e9e82b6617db6065ce448d9bf7972bb68d59\nMerged-In: I1052e9e82b6617db6065ce448d9bf7972bb68d59\n"
    },
    {
      "commit": "7cb82a86beda55a178d76dc8dd90d0b01a4b9c91",
      "tree": "32d4b8fc40aea3087d36ef451761c015652e2a71",
      "parents": [
        "1822926cfbf55cc68a85cdfd588802f4a106cdb5"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu May 10 15:35:31 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Thu May 10 15:37:37 2018 -0700"
      },
      "message": "AAPT2: Insert platformBuild information\n\nInserts platformBuildVersionName and platformBuildVersionName when the\nattributes are not currrently present. The attributes are set to\nthe values of versionName and versionCode.\n\nBug: 77541121\nTest: Build apk using aapt and appt2 and dumped using xmltree to confirm\nthe presence of the attributes\nChange-Id: I5330381905c878fb877214b42f83d7e2e48cd062\n"
    },
    {
      "commit": "325129964e5b0a9794cf5bb63a2d2d8774ea6a1b",
      "tree": "6916dd14dd937ad9650558c8afca42929acd26f2",
      "parents": [
        "a93ab56ed802f320cbf1ac9452cae75acbef47c3"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Wed Apr 25 16:45:59 2018 -0700"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Thu Apr 26 10:27:30 2018 -0700"
      },
      "message": "Allow using reserved package IDs\n\nPre-O, the platform treats negative resource IDs [those with\na package ID of 0x80 or higher] as invalid.  In order to work\naround this limitation, we allow the use of traditionally\nreserved resource IDs [those between 0x02 and 0x7E].\n\nBug: 78041707\nTest: ./out/host/linux-x86/nativetest64/aapt2_tests/aapt2_tests\nTest: ./out/host/linux-x86/nativetest/libandroidfw_tests/libandroidfw_tests\nTest: Manual. Create a feature split with a package ID of 0x7E and see it runs and can reference base resources.\n\nChange-Id: I3d9782cc05d3a55e1a2467bf39566788847e1160\n"
    },
    {
      "commit": "e5b38a676ce0fe6ee08635a7167ee5d76a225a06",
      "tree": "ca4c69d4f3f9c60225e9b28ff4572708a249b2b2",
      "parents": [
        "a926126a8bc89c1a6bd7fa8a76332476eba0d954"
      ],
      "author": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Fri Mar 23 13:35:00 2018 -0700"
      },
      "committer": {
        "name": "Ryan Mitchell",
        "email": "rtmitchell@google.com",
        "time": "Wed Apr 04 15:51:53 2018 +0000"
      },
      "message": "Added --debug-mode flag to AAPT2\n\nBug: 74968793\nTest: Tested for correct debuggable attribute presense with and without\nflag\n\nChange-Id: I0148d1caba62db8cf258926f1d9e87a849aa283f\n(cherry picked from commit 444f9bb6a18ff34b69cba504c8658b7013eaa53a)\n"
    },
    {
      "commit": "34a1687a67cfc08dd2baca6e92180e0930006c6f",
      "tree": "5f2d9f08a58c44faab6377bf02dc412dbf18daf3",
      "parents": [
        "c2c1d7094b9b4d22d99c62df234054b37548092b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Feb 23 16:18:10 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 01 11:18:23 2018 -0800"
      },
      "message": "AAPT2: Remove resources that define locales but no default values.\n\nAccording to our docs:\nhttps://developer.android.com/guide/topics/resources/localization.html#defaults-r-important\n\nSome resources *require* that there is a default definition. So far,\nthe pain is felt when doing translations for strings that have been\nrenamed, etc.\n\nThis CL strips out resources that don\u0027t have a default value and define\na resource for a locale. This is conservative, but should be expanded\nto other configuration properties moving forward.\n\nBug: 36572857\nTest: make aapt2_tests\nChange-Id: Ife94a1f8a2ee221f8532ffa856541a9c8c4e7143\n"
    },
    {
      "commit": "2eed52ecc0c2fa3e96530e4b5556eaa82f7c2dfc",
      "tree": "4e0a49770f684a2ca823d958c0f1a2b3adabcab9",
      "parents": [
        "e1094a2e232277a719025aa5c97c492502c34f5b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 21 15:55:58 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Feb 27 11:39:10 2018 -0800"
      },
      "message": "AAPT2: Fix styled string whitespace processing\n\nChange styled string whitespace processing to be like AAPT\u0027s was.\n\nMain changes:\n- whitespace around tags is preserved.\n- tags start exactly where they are supposed to, not off by one.\n\nBug: 72406283\nTest: make aapt2_tests\nChange-Id: I4d12728c493efd8c978e2e3d2718b56534ff52ef\n"
    },
    {
      "commit": "bbf429795d0558797e7ac8d1024fa5c16552e96c",
      "tree": "987ac3c405f420e07ff2fdaec3bc3f7037eca487",
      "parents": [
        "da9eba300b0f84505fe094374c14d4bc910880d2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 14 13:36:09 2018 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Feb 14 16:11:23 2018 -0800"
      },
      "message": "AAPT2: Fix issue with deserializing binary XML\n\nWe assumed that a raw text value set for an attribute meant there\nwere no compiled values set either.\n\nThis would only really happen for attributes that did not belong to any\nnamespace (no prefix:), since we always kept their raw string values\nin case some code relied on it.\n\nBug: 72700446\nTest: make aapt2_tests\nChange-Id: Icba40a1d4b181bfe7cad73131c4dbe5ba7f8b085\n"
    },
    {
      "commit": "e5b3296316b49bda30b2753025632bd8d9c3bf2e",
      "tree": "10ea488e40ec7b72d9cec7fcb80eb0aff8c27e59",
      "parents": [
        "f4e08c3efeda28ce7a9d839745dc14f2ca75d7f4",
        "cf5326fae1da55b9050834bb63bfa264a6d2af60"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 19 17:10:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 19 17:10:29 2018 +0000"
      },
      "message": "Merge \"Allow \u003cadopt-permissions\u003e tag in manifest\""
    },
    {
      "commit": "73bff1e8519bb73f17a801f45977d41b69b5b0d0",
      "tree": "9ac5f4e491ed617b6cefe118b91edb637c6c35a4",
      "parents": [
        "14c2ae4a6e62b78f2c994112d08dbe3d4de64695"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Dec 08 16:06:10 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 11 13:54:11 2018 -0800"
      },
      "message": "AAPT2: Allow compatible duplicate Attributes\n\nIf a resource XML file defines two compatible Attributes, they should\nbe merged without throwing an error. Ex:\n\n\u003cdeclare-styleable\u003e\n  \u003cattr name\u003d\"conflict\" format\u003d\"string\" /\u003e\n\u003c/declare-styleable\u003e\n\n\u003cdeclare-styleable\u003e\n  \u003cattr name\u003d\"conflict\" format\u003d\"string|reference\" /\u003e\n\u003c/declare-styleable\u003e\n\nIn this case, string|reference and string are the same, so these should\nmerge correctly.\n\nBug: 65699599\nTest: make aapt2_tests\nTest: make AaptBasicTest\nChange-Id: I7b0f956d2332f7f0b458acd59ca0a606b2cfdf95\n"
    },
    {
      "commit": "cf5326fae1da55b9050834bb63bfa264a6d2af60",
      "tree": "d71de994bad2da27695f001ffc74d486871084fc",
      "parents": [
        "0ff8dabf2c258389ee6a633b4c7f99477b63071a"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Jan 05 16:03:50 2018 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Jan 05 16:04:33 2018 -0500"
      },
      "message": "Allow \u003cadopt-permissions\u003e tag in manifest\n\nChange-Id: Ib595ab84da3a68e6a72f203ee51e3c86c7a3a3d1\nFixes: 71640901\nTest: migrate GoogleServicesFramework to AAPT2, build\n"
    },
    {
      "commit": "fca5e427e21f69e42a732600474bb97bf1f0eb7d",
      "tree": "51f368a6938bce83e1e68c860457ec9505c40c00",
      "parents": [
        "e6aa6d14212eee2261bec5b226bf673fd8985845"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 20 15:03:36 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Dec 28 08:17:51 2017 -0800"
      },
      "message": "AAPT2: \u003cuses-library /\u003e and \u003clibrary /\u003e don\u0027t need to be Java packages\n\n- Also fixes issue where a failure checking the Java package of an attribute\nwould yield no error message.\n\nBug: 70722199\nTest: make aapt2_tests\nChange-Id: I417d5ffe18c8d4ba2f1638f9fb9ba29278ec8e94\n"
    },
    {
      "commit": "ad9e1324ff2c459d0ee6ee571d4a3e458c02cc81",
      "tree": "52c46ddcc0902f3495cdfeb626b9e697fdb9456f",
      "parents": [
        "8226fd9e7d9bbf2b9d3f2293e788628ef229b136"
      ],
      "author": {
        "name": "Izabela Orlowska",
        "email": "imorlowska@google.com",
        "time": "Tue Dec 19 16:22:42 2017 +0000"
      },
      "committer": {
        "name": "Izabela Orlowska",
        "email": "imorlowska@google.com",
        "time": "Wed Dec 20 13:25:59 2017 +0000"
      },
      "message": "AAPT2: treat manifest validation errors as warnings when asked\n\nBug: 65670329\nTest: updated\nChange-Id: Ic554cc20134fce66aa9ddf8d16ddffe0131c50e9\n"
    },
    {
      "commit": "71be70507de9cb619b644e55eda1cc181e3f7e90",
      "tree": "1ad3c588be3dd06b39b1ba5c3229f80ca08d62bd",
      "parents": [
        "6bb6fad16d93a5859d47dcf962337c2719e585dd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Dec 12 16:48:07 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Dec 18 14:16:02 2017 -0800"
      },
      "message": "AAPT2: Propagate SPEC_OVERLAYABLE flag to final APK\n\nResources can be marked as overlayable, which means they can\nbe overlaid by runtime resource overlays.\n\nThis change propagates this state to the final resource table that\nis installed on device.\n\nFuture work:\n- Have the idmap tool respect the overlayable state and ignore\n  entries that overlay anything else.\n\nBug: 64980941\nTest: make aapt2_tests\nChange-Id: Id45b1e141a281be2ee32a4ac3096fcf1114d523b\n"
    },
    {
      "commit": "c6284379a5dde6bc5927409eff292db2f0add578",
      "tree": "be8da8977f7e1ae3339b9e6fd4dd4d60e80a19c1",
      "parents": [
        "36f46a87317be9c568649c423011b37e18698013"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Dec 04 13:46:23 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Dec 04 17:19:44 2017 -0800"
      },
      "message": "AAPT2: Embed version of framework an app was compiled against.\n\nThis change injects the \u0027android:compileSdkVersion\u0027 and\n\u0027android:compileSdkVersionCodename\u0027 into an app\u0027s AndroidManifest.xml,\nwhose values are dervied from the version name and version code of the\nframework AndroidManifest.xml that is being linked against.\n\nBug: 63388434\nTest: make aapt2_tests\nChange-Id: I7b607192ecb337307c4bcb5770e7f716c6d4c9d2\n"
    },
    {
      "commit": "1da6e70b7eb8b72908131534a15877dea3db3f42",
      "tree": "82d8a3b3b13839b01cf05484285de8c03bf00301",
      "parents": [
        "d583858adc586aee445cf9885b17f9c6b3aa64f6",
        "e2a0c1d062527cb06aa53e3f8e7274d77f3abe02"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Nov 30 23:51:04 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 30 23:51:04 2017 +0000"
      },
      "message": "Merge \"Fix warning from clang+mingw\" am: 7fce15dc5e am: 31bcd7acea\nam: e2a0c1d062\n\nChange-Id: I9212bf71035641d5efedf8f06627a62e9694806c\n"
    },
    {
      "commit": "e2a0c1d062527cb06aa53e3f8e7274d77f3abe02",
      "tree": "3a4284c3bdb2ae57e74c11e92bc0520405e00318",
      "parents": [
        "54a7cba93448ba2f8f809d8883706a1b390be2aa",
        "31bcd7acea8aa81d1364f04bb259c9f37418a63a"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Nov 30 23:26:44 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 30 23:26:44 2017 +0000"
      },
      "message": "Merge \"Fix warning from clang+mingw\" am: 7fce15dc5e\nam: 31bcd7acea\n\nChange-Id: Ibb5c891fe3c219d75be8c124c9be215a31b2a241\n"
    },
    {
      "commit": "31bcd7acea8aa81d1364f04bb259c9f37418a63a",
      "tree": "8aab869221efd58c3f5787d9112089709f229ca0",
      "parents": [
        "4f9f278341edff643540d0da5c6dd53ae92ee23c",
        "7fce15dc5e190859ceef8e6a46f3cd4133eb9c7d"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Nov 30 23:18:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 30 23:18:38 2017 +0000"
      },
      "message": "Merge \"Fix warning from clang+mingw\"\nam: 7fce15dc5e\n\nChange-Id: I1b318913c3ead77369bdb62c10e5e08803cb10b8\n"
    },
    {
      "commit": "fb4ed78bde052502861c913e1853f888ea297d2a",
      "tree": "f544fdfea82abf64851266041247a5d53550ad6f",
      "parents": [
        "06e314f6cc0d629f59579f8bd549915580f79b4b"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Nov 29 18:17:08 2017 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Nov 29 18:17:08 2017 -0800"
      },
      "message": "Fix warning from clang+mingw\n\nI suspect this is showing up in this configuration because we\u0027re now building\nwith -std\u003dgnu++14, but still using libstdc++.\n\nframeworks/base/tools/aapt2/link/ProductFilter_test.cpp:76:24: error: chosen constructor is explicit in copy-initialization\n  ProductFilter filter({});\n                       ^~\nprebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/x86_64-w64-mingw32/include/c++/4.8.3/bits/unordered_set.h:132:7: note: explicit constructor declared here\n      unordered_set(size_type __n \u003d 10,\n      ^\nframeworks/base/tools/aapt2/link/Linkers.h:114:58: note: passing argument to parameter \u0027products\u0027 here\n  explicit ProductFilter(std::unordered_set\u003cstd::string\u003e products) : products_(products) {\n                                                         ^\n\nBug: 69933068\nTest: mmma frameworks/base/tools/aapt2\nTest: out/host/linux-x86/nativetest[64]/aapt2_tests/aapt2_tests\nChange-Id: I2133e364dd11f64fd13239125f8a3eff70ebb69c\n"
    },
    {
      "commit": "23034b911c60d4a24ca036436b3a3c138d904255",
      "tree": "fccd1980dfd69073cdb5da6ca65cc8ce23d9c272",
      "parents": [
        "bd03daf5a44818d9fb7e51ebf532c53b9e2e0697"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 29 16:27:44 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 29 16:29:08 2017 -0800"
      },
      "message": "AAPT2: Fix overzealous AndroidManifest fully qualified class names\n\nManifestFixer would go and fully qualify all elements with the attribute\n\u0027android:name\u0027, which is not correct, especially for cases like\n\n  \u003cuses-split android:name\u003d\"foo\" /\u003e\n\nTest: make aapt2_tests\nChange-Id: I4bea2550d0025179d2d48dca8c64e0cbf4451e99\n"
    },
    {
      "commit": "cc8aa11f6c08ed621776dffc91bbbd6b21c6b6de",
      "tree": "d4489d7d4606485988653bebbd8d8f39ac2b2061",
      "parents": [
        "24f9ac4ecf1d0497d8175ba61b62d7fcfd9036b6",
        "07d8249c4bc1ac50ba1e81d99b39ce87ef4ed62c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Nov 10 17:50:49 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 10 17:50:49 2017 +0000"
      },
      "message": "Merge \"AAPT2: Differentiate between Android and Java package names\" into oc-mr1-dev\nam: 07d8249c4b\n\nChange-Id: I0a3235052cea9041cf6c944f71879d304bce5a56\n"
    },
    {
      "commit": "81e9ecfc0049883871ba72ecaf0908834e6ae3d5",
      "tree": "7c30097ed6ffce65efd3dc09e82deca3a335b198",
      "parents": [
        "97ff9f9d27277b4d94eef0caf1afaae691e0ba6d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 06 10:44:46 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Nov 09 01:49:58 2017 +0000"
      },
      "message": "AAPT2: Differentiate between Android and Java package names\n\nAndroid package names are more strict (ASCII only) than Java package names.\nAlso fixed an issue where trailing underscores were disallowed in Android\npackage names.\n\nBug: 68468089\nTest: make aapt2_tests\nMerged-In: I1052e9e82b6617db6065ce448d9bf7972bb68d59\nChange-Id: I1052e9e82b6617db6065ce448d9bf7972bb68d59\n"
    },
    {
      "commit": "96ea08f1e737e0d19e274e9a29f71c387d81b09a",
      "tree": "1e8f202dfd7f1dd1e46af2cebb1afb548fbd6890",
      "parents": [
        "b54be8de65b09c85992b30dbb1d52032f0498b6d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 06 10:44:46 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Nov 07 11:31:17 2017 -0800"
      },
      "message": "AAPT2: Differentiate between Android and Java package names\n\nAndroid package names are more strict (ASCII only) than Java package names.\nAlso fixed an issue where trailing underscores were disallowed in Android\npackage names.\n\nBug: 68468089\nTest: make aapt2_tests\nChange-Id: I1052e9e82b6617db6065ce448d9bf7972bb68d59\n"
    },
    {
      "commit": "8780eb6e4918ae24fb1ae74d631042c32e41dc3d",
      "tree": "938e18951a562fcd043ac779c7e758444b4bf0a8",
      "parents": [
        "4f340a4f8b50b29b562407e39563ee78a90bea3f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 31 17:44:39 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 01 10:58:28 2017 -0700"
      },
      "message": "AAPT2: Add convert command\n\nThis command allows a developer to convert their proto APK\n(generated from the link phase using --proto-format) into\na binary APK suitable for use on device.\n\n  aapt2 convert -o output.apk input.apk\n\nTest: manual + make aapt2_tests\nChange-Id: I10a7c33bb4b57006d01fe00a8bf92f78e04e7e50\n"
    },
    {
      "commit": "004511660671511ae88e0e837a6f92db28eadaef",
      "tree": "f8999414faa4488e165a3f86b51c73f58609212b",
      "parents": [
        "d6912500c34506b0bfd1c0e472cefc60195a15eb"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 03 07:44:08 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 19 12:50:53 2017 -0700"
      },
      "message": "AAPT2: Define and Implement AAPT Container Format\n\nAAPT Container Format (.apc) is a simple container that\nenumerates the various intermediate files that AAPT2 generates\nduring the compile phase.\n\nThe format is defined in formats.md.\n\nFor now, continue using the .flat extension for the container file,\nand keep making use of the .flata zip for storing multiple files.\nThis will allow easier integration with existing build systems and allow\nthe evolution of the APC format to better handle arbitrarily large\nfiles.\n\nTest: make aapt2_tests\nChange-Id: Id7216e5b76316bdd683f0fa4eaf2d2da273ba815\n"
    },
    {
      "commit": "d3ffa844f5a07756009f019e13806e253d1bb119",
      "tree": "75ebb146979439d850dd97b9645bae231923c5ca",
      "parents": [
        "43ddc05bbdbf8da73da2415b3ab4d68a0180f9b2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Sep 28 13:34:35 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Sep 28 14:08:50 2017 -0700"
      },
      "message": "AAPT2: Cleanup Visitors for XML and Values\n\nTest: make aapt2_tests\nChange-Id: Ib61f64c155a380115610edeaf2d65e60258a2426\n"
    },
    {
      "commit": "e33de76a16f6acc42858766460976f44e629657d",
      "tree": "ce962def3f718730407e6863a14aaf0df9a66787",
      "parents": [
        "d2d6c257f141ed38da2cf0d0a2f84c6f7f055e92",
        "e02983681ae85212c2263055fd4bcfd8097f19bc"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Sep 15 16:57:21 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 15 16:57:21 2017 +0000"
      },
      "message": "Merge changes Id8bdb14e,I573a6735,Ia804777f,Ia68122cb,Ia1997800, ... into oc-mr1-dev\nam: e02983681a\n\nChange-Id: I42369e6fb7bd121e45b5a002cd5f00e05221ead3\n"
    },
    {
      "commit": "5c33fb5408d6c02dc2c73f53d89d1494fe04f208",
      "tree": "b95bdb2f9855ebdc4fea99672c81c3b4f4a00509",
      "parents": [
        "5b54ca2d72c410aa34363b0f3bb0fe1666954aea"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 09 10:54:23 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Sep 14 11:30:38 2017 -0700"
      },
      "message": "AAPT2: Change XmlDom to exclude Namespace as a node\n\nIn preparation for exporting an XML proto format for UAM to consume,\nthis change brings the XML DOM API more in line with other APIs that\ndo not make the Namespace a separate node.\n\nTreating Namespace declarations as just properties of an Element\nnode makes the implementation of algorithms much simpler, as\nthe constraints that Namespace nodes have only one child\nare now built in and traversing to find Element nodes\nis much simpler.\n\nAlso made a bunch of quality of life improvements, like formatting and\ncomment style.\n\nTest: make aapt2_tests\nBug: 65645766\nChange-Id: Ib97ff1c4252b7907e2cc1f13a448dc4ca3b809a4\nMerged-In: Ib97ff1c4252b7907e2cc1f13a448dc4ca3b809a4\n"
    },
    {
      "commit": "58396d4e4903f0e9f7801d6c94e6284bfa387a0c",
      "tree": "1ba1e2ca2ac9e375696fff562b0ceee6f1753a71",
      "parents": [
        "bf5daf4565aa367017561b3768b9b1194f89d904",
        "4f4a3414028e97810af191a3628ec03ce0c3a609"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Thu Aug 31 23:18:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 31 23:18:09 2017 +0000"
      },
      "message": "Merge changes I7218f17a,I96b7340a am: 111c955d1d am: 96e763fe71 am: 38f0f5687f\nam: 4f4a341402\n\nChange-Id: Ibe4fdcdfaa1948001d884eaa099cc84258ad68bc\n"
    },
    {
      "commit": "4f4a3414028e97810af191a3628ec03ce0c3a609",
      "tree": "6194b0f277c2a3385dd31230a8eead9f112f2e40",
      "parents": [
        "b32153e3d2be154b36354765966da4c275f1620e",
        "38f0f5687f2e375f478e9c1732e9542e532ccb3c"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Thu Aug 31 22:03:11 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 31 22:03:11 2017 +0000"
      },
      "message": "Merge changes I7218f17a,I96b7340a am: 111c955d1d am: 96e763fe71\nam: 38f0f5687f\n\nChange-Id: I8d3c46d10463f4c64f7ef96006c31c1343710f53\n"
    },
    {
      "commit": "96e763fe71b4d4a0615fe4d68de1de48f4794d59",
      "tree": "9d55351f6348a6b9209f7367c8b66bd3d39404f1",
      "parents": [
        "c2351d1d40dc82844f6c963f9a32af3e29d74ed8",
        "111c955d1d07d9f448c4ec95985b56735f65c403"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Thu Aug 31 21:44:25 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 31 21:44:25 2017 +0000"
      },
      "message": "Merge changes I7218f17a,I96b7340a\nam: 111c955d1d\n\nChange-Id: I64cb964b751561e87115976866646b1db3858e14\n"
    },
    {
      "commit": "c903d2e7cdc74bd0573ecfb5f5dd35ee7c90249e",
      "tree": "067392c1c9a041c0366a8bcecdc75224eb4872b8",
      "parents": [
        "f08ad98acbb83abf7d30b6583bdfc188145a4215"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Fri Dec 09 00:23:41 2016 +0100"
      },
      "committer": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sony.com",
        "time": "Thu Aug 31 14:50:10 2017 +0200"
      },
      "message": "AAPT2: Allow \u003coverlay\u003e in AndroidManifest.xml\n\nTest: libaapt2_tests\nTest: manual (build an overlay package)\nChange-Id: I96b7340a53a7d4f1ca022065674fbf5bdaa273f2\n"
    },
    {
      "commit": "1ef0fa9d7242b1926543bc49e35905d1be02a781",
      "tree": "1e0d7a900b8e595dcb38b41e8f6cd8e7690cd747",
      "parents": [
        "668feb252a226f39acbad801bf8e256a04cb3e1f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Aug 15 21:32:49 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 23 11:30:54 2017 -0700"
      },
      "message": "AAPT2: Fixup namespace implementation\n\nA few pieces were missing in the namespace mangling implementation.\nNamespace aware libraries now work, along with R class generation.\n\nBug: 64706588\nTest: make AaptTestNamespace_App\nChange-Id: I12f78d6aa909e782c0faf7ceaa36058f2e6c864a\n"
    },
    {
      "commit": "6b372991296c9f2bd6f8f8847dcd23d50970d06d",
      "tree": "325fa6d275390fd3d0d9757545f128fbe9ed39f9",
      "parents": [
        "c10cc1185b0024a12660f4de7fbb6ad78bd1cfb7"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 09 10:54:23 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 17 17:43:08 2017 +0000"
      },
      "message": "AAPT2: Change XmlDom to exclude Namespace as a node\n\nIn preparation for exporting an XML proto format for UAM to consume,\nthis change brings the XML DOM API more in line with other APIs that\ndo not make the Namespace a separate node.\n\nTreating Namespace declarations as just properties of an Element\nnode makes the implementation of algorithms much simpler, as\nthe constraints that Namespace nodes have only one child\nare now built in and traversing to find Element nodes\nis much simpler.\n\nAlso made a bunch of quality of life improvements, like formatting and\ncomment style.\n\nTest: make aapt2_tests\nChange-Id: Ib97ff1c4252b7907e2cc1f13a448dc4ca3b809a4\n"
    },
    {
      "commit": "bb94f32a0042c8e2ab3d6e0de1b693713d2a6eab",
      "tree": "db48ae6d8e3dd04f28fa5b17ff1c0efcf1cd36a6",
      "parents": [
        "f7f48b17cbdfffa130cdb8991a9c2b09f7659664"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jul 12 07:41:55 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jul 12 07:42:01 2017 -0700"
      },
      "message": "Revert \"AAPT2: Auto-version adaptive-icon XML\"\n\nThis reverts commit 5b7337f77cf036dda2c7218ccf22dedc774dcf76.\n\nBug: 63579299\nTest: none\nChange-Id: Ib617c4edfc16eeae3507b59b2debeae4f8bbf9a5\n"
    },
    {
      "commit": "5b7337f77cf036dda2c7218ccf22dedc774dcf76",
      "tree": "b7aab8df43eeff70759f84e45da95b507edfddcc",
      "parents": [
        "8276d0e1527ad08aae3ec39529b10477358a1dae"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jun 26 14:57:22 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 28 11:20:17 2017 -0700"
      },
      "message": "AAPT2: Auto-version adaptive-icon XML\n\nAuto version adaptive-icon XML to v26.\n\nThis change makes the logic for generating versioned resources\nsimpler by changing the comparison function of ResTable_config\nto evaluate the sdkVersion property last, making configurations\nthat differ only in sdkVersion next to each other in a sorted vector.\n\nBug: 62316340\nTest: manual (verified output of tools/aapt2/integration-tests/AppOne)\nChange-Id: I977d45821722a65d2135efb4693304eacc565c9a\n"
    },
    {
      "commit": "87f1e0fd31585e0117715f451c379d25c5ef7cb8",
      "tree": "2d9164d349d9ac623d26da21c680e131336d7611",
      "parents": [
        "f3833d4ba05d47ee6b1a943b49a0769ea879cc8c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 27 16:21:58 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 28 10:27:06 2017 -0700"
      },
      "message": "AAPT2: Allow \u003ckey-sets\u003e tags in AndroidManifest.xml\n\nBug: 62839863\nTest: make aapt2_tests\nChange-Id: Ic38fadf3b204bf603f6770643735635cd1f1df7e\n"
    },
    {
      "commit": "3124e7ca0f582c8d54a9b4cf560c25dfef77ac2a",
      "tree": "be1af462cdec9a4808a49901cfb87fbe47b32a24",
      "parents": [
        "52feccbf41fe58921e66686077cb5ab20b2b0b13"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 13 16:03:55 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jun 15 11:14:47 2017 -0700"
      },
      "message": "AAPT2: Fix issue with enums and integer attributes\n\nWhen an attribute had the format \"enum|integer\", and a max or min\nallowed value set, any value set for this attribute would have its\nenum symbol\u0027s value checked against the valid integer range.\n\nThis would lead to the following:\n\nandroid:numColumns\u003d\"autofit\"\n\nbeing interpreted as an integer value of -1, which violated the minimum\nexpected value for numColumns, which was 0.\n\nBug: 62358540\nTest: make aapt2_tests\nChange-Id: I3150410448a533d3595a08ac6b2966264db874d8\n"
    },
    {
      "commit": "a45893a5c51cc26f1fd63ec1aa4c39f55911c85b",
      "tree": "7e54a8f6e5d328c642309b18c7dfffb083527ccc",
      "parents": [
        "594fda3161e492fb825d6bb47a8973344cc8e72e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 30 15:19:02 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jun 09 14:57:07 2017 -0700"
      },
      "message": "AAPT2: Clean up tests a bit\n\nSince the latest gtest has fixed support for\nexplicit bool operators, remvoe AAPT_ASSERT_* and AAPT_EXPECT_*.\n\nAlso switch to use NotNull() matchers, which are more legible.\n\nTest: make aapt2_tests\nChange-Id: Idce199ca9d567d70f7aae275fee15e04bb914c9e\n"
    },
    {
      "commit": "7a917a27ef1dae63e7747c9d00b4ff71b1a502e2",
      "tree": "ddf11d9444665c174c3cfd629117b4b3def42495",
      "parents": [
        "d034fec9cfd7521dc0edd315e7d8aef88496f9b3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jun 02 12:55:24 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 06 18:14:48 2017 +0000"
      },
      "message": "AAPT2: Allow \u003clayout\u003e in \u003cactivity\u003e tag in AndroidManifest.xml\n\nBug: 62189611\nTest: make AaptTestAppOne\nChange-Id: Ic090e4a002b24f2289f47dfba7439638e5848062\n"
    },
    {
      "commit": "90919978e7ccf7dc25622e9d039a7e87ebe7ba11",
      "tree": "d11e779893782ffc04c585912813e0e0ff2e1f06",
      "parents": [
        "76e76a5c269eab2596dfc72fa229af49be68e870"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jun 01 15:22:57 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jun 02 16:51:59 2017 -0700"
      },
      "message": "DO NOT MERGE: AAPT2: Allow undefined resources (placeholders)\n\nA resource defined like so:\n\n\u003citem type\u003d\"drawable\" name\u003d\"foo\" /\u003e\n\nshould be assigned the value @null.\n\nThe only exception is for \u003cstring\u003e resources, which are given the\nempty string value (since \u003cstring\u003e\u003c/string\u003e is ambiguous). The decision\nto use \"\" is based off the fact that old AAPT used to assign \"\" to all\nundefined resources, even non-string ones.\n\nBug: 38425050\nTest: make aapt2_tests\nChange-Id: Ib3e0f6f83d16ddd8b279c9fd44a07a37867b85e9\n"
    },
    {
      "commit": "bab4ef56d7803f3a50ccfaca2729509338fcbb23",
      "tree": "3d3c1ad103f88f6ca60c46fc31872dee40244b3e",
      "parents": [
        "d6fb3081d9ddd6384d7e764308e2967ce672d3e5"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jun 01 15:22:57 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jun 02 16:48:38 2017 -0700"
      },
      "message": "AAPT2: Allow undefined resources (placeholders)\n\nA resource defined like so:\n\n\u003citem type\u003d\"drawable\" name\u003d\"foo\" /\u003e\n\nshould be assigned the value @null.\n\nThe only exception is for \u003cstring\u003e resources, which are given the\nempty string value (since \u003cstring\u003e\u003c/string\u003e is ambiguous). The decision\nto use \"\" is based off the fact that old AAPT used to assign \"\" to all\nundefined resources, even non-string ones.\n\nBug: 38425050\nTest: make aapt2_tests\nChange-Id: Ib3e0f6f83d16ddd8b279c9fd44a07a37867b85e9\n"
    },
    {
      "commit": "f42c86660d15c50ff7431b89342e590bcc1bed37",
      "tree": "ba24281263894153ec1d89b53e9ead0b0687b603",
      "parents": [
        "d8d9758363524f454cfa1b39a460e461005c84a3",
        "5924d8c9ab7bd8614e8bd99864903ce9d50f3bf7"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 31 20:48:00 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 31 20:48:06 2017 +0000"
      },
      "message": "Merge \"AAPT2: Allow merging of Style attributes from overlays\" into oc-dev"
    },
    {
      "commit": "5924d8c9ab7bd8614e8bd99864903ce9d50f3bf7",
      "tree": "f094afb0142ab4a81faff62f37be306ca0587c33",
      "parents": [
        "bacaffa497de1877657f9cb3f59a82e3955f0f75"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 30 15:15:58 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 31 10:09:06 2017 -0700"
      },
      "message": "AAPT2: Allow merging of Style attributes from overlays\n\nPreviously style overlays would completely override an existing style.\nTo be compatible with AAPT, styles now merge with the overlay, allowing\nthe overlay\u0027s attributes and parent to take precedence.\n\nBug: 38355988\nTest: make aapt2_tests\nChange-Id: Id25c7240050a43e6a4a177c6e3d51e048d0cceb5\n"
    },
    {
      "commit": "4488f1c74a0f7df09f2b201f7caa228d729e8389",
      "tree": "84b28ff7c770f906f0a58cf280ec28ecc3a58f68",
      "parents": [
        "2354b568379fe31ba4e774f7a92d4c685a60a2ab"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 26 17:33:38 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 26 17:38:34 2017 -0700"
      },
      "message": "AAPT2: Fix \u003cadd-resource\u003e tag for overlays\n\nBug: 38355988\nTest: make aapt2_tests\nChange-Id: Iea8887f55f8ceb2c15bd963405fd132916173c0c\n"
    },
    {
      "commit": "c744ae8aca97edfb2422598ea620e8219449fa9b",
      "tree": "4e7c29d6b47c464dd5aa0af204d86a7340b0084f",
      "parents": [
        "0418b72fd2c91f32c42e3a406df2a866888fc766"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 17 19:28:38 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 24 15:14:29 2017 -0700"
      },
      "message": "AAPT2: Implement attribute compat versioning\n\nThis change defines some hardcoded rules to degrade\nattributes in newer SDKs to specific older attributes.\n\nAn attribute with a degrade rule will generate a new XML for the API\nin which the attribute resulting from the degradation was introduced.\n\nSince API 22 (Lollipop MR1), attributes are correctly ignored and do\nnot need to be versioned. In XML files defined for APIs 22+, the\noriginal and degraded attributes coexist in the same XML file.\n\nOne such example is paddingHorizontal, introduced in API 26.\npaddingHorizontal degrades to paddingLeft and paddingRight, which\nwere both introduced in API 1.\n\nBug: 35763493\nTest: make aapt2_tests\nChange-Id: I4aa8755a9ee2c0cc5afdc55c3d30093fd3a47f3d\n"
    },
    {
      "commit": "4b585db64f1dda5c343855e63d7d4b6fc0c6d729",
      "tree": "261819d242a66a86cde3922980d9a615fb2c772b",
      "parents": [
        "33532e020873e580c421342e38b2352b836d30d4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 12 15:25:50 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 12 15:25:50 2017 -0700"
      },
      "message": "AAPT2: Allow \u003cuses-permission-sdk-23\u003e in manifest\n\nBug: 38269610\nTest: build tools/aapt2/integration-tests/AppOne\nChange-Id: I1d0b87aa36f6bf82aab146339acf8848166b218d\n"
    },
    {
      "commit": "63699b128e009c65affe50995bd8f86eca1a8694",
      "tree": "43c4643a1d40161e1ef402cccaa195e3e03b5204",
      "parents": [
        "f93dc8b6504200d0b6d502d924a70a743f9b1411"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon May 08 18:36:33 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon May 08 18:36:33 2017 -0700"
      },
      "message": "AAPT2: Ignore namespaced elements in AndroidManifest.xml\n\nSome third party stores/tools expect manifest elements\nunder their namespace, and AAPT2 shouldn\u0027t fail if these\nare present.\n\nBug: 37943705\nTest: make aapt2_tests\nChange-Id: I87b7500c7da5e8e79fc2a78b30e8e4334124af3d\n"
    },
    {
      "commit": "7cf8ca95aa587894cb80a38f9a1e4245335a9a73",
      "tree": "e67da849f916912eee7b487a450d685fd2cb9a2f",
      "parents": [
        "35312fd4c6fccaf5869b8fbf7bef9b1a6def75ba",
        "c10c0d0db24f2d3fbdeabf7aebaabf527786bba5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Apr 30 14:31:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Apr 30 14:31:17 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix typo in manifest validation expectation\" into oc-dev"
    },
    {
      "commit": "c10c0d0db24f2d3fbdeabf7aebaabf527786bba5",
      "tree": "0da429493e44236f709f10ee9f7105397f5846d2",
      "parents": [
        "0ddca92018da69e7224b63cdedbf1944c63ddc34"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 28 12:54:08 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 28 12:54:08 2017 -0700"
      },
      "message": "AAPT2: Fix typo in manifest validation expectation\n\nChange expected tag from grant-uri-permissions -\u003e grant-uri-permission\n\nBug: 37714102\nTest: manual\nChange-Id: Ic0178b83fff8de961cb3fdfe38023eaf111237ee\n"
    },
    {
      "commit": "48448e8a310e72eb2846ad0f86672ce4f0b47e47",
      "tree": "42e2d993f2967ba5768530c826aab28eb12fb492",
      "parents": [
        "0ddca92018da69e7224b63cdedbf1944c63ddc34"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Apr 26 15:13:52 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 28 12:51:23 2017 -0700"
      },
      "message": "AAPT2: Fix string escaping\n\nWe were processing escaped strings too early, before\nparsing of values into types. Now the escaped strings get\nprocessed when they are being flattened.\n\nBug: 37715376\nTest: make aapt2_tests\nChange-Id: Ic59aa2e3a20c40756c219752ff74b2a4f8a602ba\n"
    },
    {
      "commit": "25783cab0b8a1e294d0706d3630756a16668a47b",
      "tree": "6c08bcb4af1dd470bd8dec7dcc6127f401410e52",
      "parents": [
        "3fc176913a947fae8df28d19d896216a07491a8f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 24 13:33:47 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 24 22:18:48 2017 +0000"
      },
      "message": "AAPT2: Allow \u003cpath-permission\u003e tag in \u003cprovider\u003e\n\nFix a typo where the wrong tag name was expected under \u003cprovider\u003e\nin AndroidManifest.xml.\n\nBug: 37627250\nTest: manual\nChange-Id: I45afd09b4ff25feb320f7991e16c4172e20dd417\n"
    },
    {
      "commit": "d0f492db038c6210c1138865d816bfb134376538",
      "tree": "1d4ed362037758111a28ecb453d527403d5d6815",
      "parents": [
        "0015a153536c51cdd66dce5e9f08d19eb517fab8"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 03 18:12:45 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 10 11:59:18 2017 -0700"
      },
      "message": "AAPT2: Share split functionality between link and optimize\n\nGenerating splits should be possible to do from the optimize command.\nThis means that a lot of infrastructure around split APKs can be\nshared by both the optimize and link phase.\n\nBug: 35925830\nChange-Id: Ia88b9e4bff300a56353b2f7a4a2547c8eb43a299\nTest: manual\n"
    },
    {
      "commit": "f4dacf29cc995fad4aea8e8f25811f9ee4685d91",
      "tree": "8b75908098416f6cee9505070e409f2c6c8777f1",
      "parents": [
        "ca73ff016f29bb091cd404717b5908db4cce10d0"
      ],
      "author": {
        "name": "Mihai Nita",
        "email": "mnita@google.com",
        "time": "Fri Apr 07 08:25:06 2017 -0700"
      },
      "committer": {
        "name": "Mihai Nita",
        "email": "mnita@google.com",
        "time": "Fri Apr 07 09:27:03 2017 -0700"
      },
      "message": "AAPT2: fixing the -c flag being ignored\n\nBug: 36999175\nTest: manual\n\nChange-Id: Id9a4a00a3b37bc088d86df7c75bbe711536b980f\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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.\""
    },
    {
      "commit": "1d740812e657e92e5370b4162991a7e43ec43221",
      "tree": "e4ca2b3aad366f36a9853c63e88b8a2a1be6e000",
      "parents": [
        "feef0e80035d263df55c4c480d2551ebd1f5364f",
        "36c73a595910e96f3552f938eeb81d46356067a1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 15 20:46:36 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 15 20:46:38 2016 +0000"
      },
      "message": "Merge \"AAPT2: Expose split support to command line\""
    },
    {
      "commit": "470f8fcb5c0c59b28b5f73ee011a797b05085da7",
      "tree": "94b3c5f77f57476c0f314edb53a01e90220cbfb0",
      "parents": [
        "af34bd5caeeaed956f3f6728a076799b11fe9406"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Aug 15 12:32:51 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Aug 15 12:32:51 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in aapt and aapt2.\n\n* Add explicit keyword to conversion constructors.\n* Add NOLINT(implicit) comments for implicit conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\n* Add NOLINT to suppress wrong clang-tidy warnings on macros.\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: Ibfafb23d9be463b4072745a51a6d9f1812dcac45\n"
    },
    {
      "commit": "36c73a595910e96f3552f938eeb81d46356067a1",
      "tree": "69632325f13ba59c48c9951b35abc3ef6e7ceda3",
      "parents": [
        "534376f3e9e302946d6f5aae883748107d466c50"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 11 13:39:24 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Aug 15 12:14:26 2016 -0700"
      },
      "message": "AAPT2: Expose split support to command line\n\nBug:30445078\nChange-Id: If4b8530dba71b9059b8e62c04757da99c1119d22\n"
    },
    {
      "commit": "c34027ec3d0e1d845c3469ed07044e8e622d9cda",
      "tree": "f9b8e5009ceb2005ae31ac841debdd0c4cbdbee0",
      "parents": [
        "9cce5d04cab53a9297dc098dfcb4a92df44be2f9",
        "6a1f8dbd51fcf169dcd237a0b369b5767719f6a4"
      ],
      "author": {
        "name": "Alexandria Cornwall",
        "email": "acornwall@google.com",
        "time": "Fri Aug 12 19:27:31 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 12 19:27:32 2016 +0000"
      },
      "message": "Merge \"AAPT2: Fix resource type id symbol merging\""
    },
    {
      "commit": "9b8528fee4eed35b8e887ded0851d08eb2b10db6",
      "tree": "36df1cee89b3689454e6b09a6bfa5eabfb3214b1",
      "parents": [
        "7310353aeb771c109e5aea2c5415fa502eb13a7b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 14:15:30 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Aug 11 15:16:41 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in aapt and aapt2.\n\n* Add explicit keyword to conversion constructors.\n* Add NOLINT(implicit) comments for implicit conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\n* Use const reference type to avoid unnecessary copy.\nBug: 30413862\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: Id6d21961f313a1ad92b15a37fdaa5be9e8ab48e1\n"
    },
    {
      "commit": "6a1f8dbd51fcf169dcd237a0b369b5767719f6a4",
      "tree": "3b27b512b1d4907d2cdb73db4439343648fb4b81",
      "parents": [
        "ce65646208c64f4181b091f8627b8e8b087c4952"
      ],
      "author": {
        "name": "Alexandria Cornwall",
        "email": "acornwall@google.com",
        "time": "Thu Aug 11 13:49:44 2016 -0700"
      },
      "committer": {
        "name": "Alexandria Cornwall",
        "email": "acornwall@google.com",
        "time": "Thu Aug 11 14:46:27 2016 -0700"
      },
      "message": "AAPT2: Fix resource type id symbol merging\n\nBy the looks of things, AAPT2 should be able to merge public type and entry\nsymbols iff their types and resource IDs match.\n\nChange-Id: Ie99071418aa89aad56de5e5b96e98b96d0d15d7a\n"
    },
    {
      "commit": "8eefa048269e798014fe7848db3bbea0f289a97d",
      "tree": "132064c0bb9568ed49524bcffbe9bece43b83cf5",
      "parents": [
        "ed45cf3c47b94d77fffbbdbf2beb418704898d18",
        "637b4820dc1858dacbf562ca65c13b4be0249e0e"
      ],
      "author": {
        "name": "Alexandria Cornwall",
        "email": "acornwall@google.com",
        "time": "Thu Aug 11 18:33:01 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 11 18:33:02 2016 +0000"
      },
      "message": "Merge \"AAPT2: Reorder link steps\""
    },
    {
      "commit": "637b4820dc1858dacbf562ca65c13b4be0249e0e",
      "tree": "ffe2680955b435e78a08da1a77282769fce31041",
      "parents": [
        "5e64600d8ea7bd7d2b94c3abb6c204929c885b63"
      ],
      "author": {
        "name": "Alexandria Cornwall",
        "email": "acornwall@google.com",
        "time": "Thu Aug 11 09:53:16 2016 -0700"
      },
      "committer": {
        "name": "Alexandria Cornwall",
        "email": "acornwall@google.com",
        "time": "Thu Aug 11 09:53:16 2016 -0700"
      },
      "message": "AAPT2: Reorder link steps\n\nAAPT2\u0027s link steps were writing the res/* files before optimizations to the\nresource table were performed (such as version collapsing). This was causing\nunreferenced res/* files to remain in the archive, even though they\u0027re no\nlonger necessary.\n\nBug: 30705740\nChange-Id: I50d7943ef7429b14e46587093855c15d54038299\n"
    },
    {
      "commit": "b80b6dabcbaa3ebd9b0889ff932bef9a05691ecb",
      "tree": "51c4cb8c5c2e6a15a20679c6c3da934531027f72",
      "parents": [
        "086184d6b1ed5cf54b7e3a4bea00c7f1f15cf08a",
        "6b17d2cec2cc3bd97c684b7da490e3f6eab0d980"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 10 19:52:22 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 10 19:52:24 2016 +0000"
      },
      "message": "Merge \"AAPT2: Parse coreApp in \u003cmanifest\u003e as boolean\""
    },
    {
      "commit": "6b17d2cec2cc3bd97c684b7da490e3f6eab0d980",
      "tree": "72626745ff87b0a28cfed85c4cead47ac3070886",
      "parents": [
        "18f4bd887fe7de4b5024316fe5df53034bc4f2d1"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 10 11:37:06 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 10 11:37:06 2016 -0700"
      },
      "message": "AAPT2: Parse coreApp in \u003cmanifest\u003e as boolean\n\nBug:30751662\nChange-Id: I283be5725426ee084944c1921df40d1bd6188028\n"
    }
  ],
  "next": "f6762fc22a15e54d869a3e8d7f80560d0dddedf9"
}
