diff --git a/server/README.md b/server/README.md index efd3854..918b5aa 100644 --- a/server/README.md +++ b/server/README.md @@ -63,3 +63,13 @@ Source URL: http://updates-http.cdn-apple.com/2019FallSeed/mobileassets/061-2846 The cache server should then download the URL if it is not in the cache, and stream the results while downloading. All in all, it seems like a really interesting caching API. More to come soon. + +## Configuration Plist + +The configuration plist which provides a lot of metadata about the caching process (such as whitelists, type mappings, and apparently public keys for iCloud data) is provided at the following URL: + +```text +Configuration URL: http://suconfig.apple.com/resource/registration/v1/config.plist +``` + +The script in this directory (a [Dart](https://dart.dev/) script) called `download-config.dart` provides an example of decoding the plist part. A common occurence in the caching API is the use of this "signed plist" (unoffical name created by me) that appears to have a Apple signature around it. diff --git a/server/config.plist b/server/config.plist deleted file mode 100644 index a70eb9b..0000000 --- a/server/config.plist +++ /dev/null @@ -1,443 +0,0 @@ -MIJTBQYJKoZIhvcNAQcCoIJS9jCCUvICAQExDTALBglghkgBZQMEAgEwgkMeBgkq -hkiG9w0BBwGggkMPBIJDCzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU -Ri04Ij8+CjwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJ -U1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlM -aXN0LTEuMC5kdGQiPgo8cGxpc3QgdmVyc2lvbj0iMS4wIj4KPGRpY3Q+Cgk8a2V5 -PmNlcnRpZmljYXRlVVJMPC9rZXk+Cgk8c3RyaW5nPmh0dHBzOi8vbGNkbi1yZWdp -c3RyYXRpb24uYXBwbGUuY29tL3Jlc291cmNlL2NlcnQuY2VyPC9zdHJpbmc+Cgk8 -a2V5PmVzdGFibGlzaG1lbnRVUkw8L2tleT4KCTxzdHJpbmc+aHR0cHM6Ly9sY2Ru -LXJlZ2lzdHJhdGlvbi5hcHBsZS5jb20vbGNkbi9zZXNzaW9uPC9zdHJpbmc+Cgk8 -a2V5PnJlZ2lzdHJhdGlvblVSTDwva2V5PgoJPHN0cmluZz5odHRwczovL2xjZG4t -cmVnaXN0cmF0aW9uLmFwcGxlLmNvbS9sY2RuL3JlZ2lzdGVyPC9zdHJpbmc+Cgk8 -a2V5PmRlcmVnaXN0cmF0aW9uVVJMPC9rZXk+Cgk8c3RyaW5nPmh0dHBzOi8vbGNk -bi1yZWdpc3RyYXRpb24uYXBwbGUuY29tL2xjZG4vZGVyZWdpc3Rlcjwvc3RyaW5n -PgoJPGtleT5ibGFja0xpc3RVUkw8L2tleT4KCTxzdHJpbmc+aHR0cDovL3N1Y29u -ZmlnLmFwcGxlLmNvbS9yZXNvdXJjZS9yZWdpc3RyYXRpb24vdjEvYmxhY2tsaXN0 -LnBsaXN0PC9zdHJpbmc+Cgk8a2V5PnN0YXRpc3RpY3NVUkw8L2tleT4KCTxzdHJp -bmc+aHR0cHM6Ly94cC1jZG4uYXBwbGUuY29tL3JlcG9ydC8yL3hwX2Nkbl9yZWNl -aXB0PC9zdHJpbmc+Cgk8a2V5PndoaXRlTGlzdGVkSG9zdHM8L2tleT4KCTxhcnJh -eT4KCQk8c3RyaW5nPnN3Y2RuLmFwcGxlLmNvbTo4MDwvc3RyaW5nPgoJCTxzdHJp -bmc+dmFsaWRhdGlvbi5pc3UuYXBwbGUuY29tOjgwPC9zdHJpbmc+CgkJPHN0cmlu -Zz5hcHBsZG5sZC5hcHBsZS5jb206ODA8L3N0cmluZz4KCQk8c3RyaW5nPm9zY2Ru -LmFwcGxlLmNvbTo4MDwvc3RyaW5nPgoJCTxzdHJpbmc+c3dkaXN0LmFwcGxlLmNv -bTo0NDM8L3N0cmluZz4KCQk8c3RyaW5nPnN3ZG93bmxvYWQuYXBwbGUuY29tOjgw -PC9zdHJpbmc+CgkJPHN0cmluZz5zd2Rvd25sb2FkLmFwcGxlLmNvbTo0NDM8L3N0 -cmluZz4KCQk8c3RyaW5nPmF1ZGlvY29udGVudGRvd25sb2FkLmFwcGxlLmNvbTo4 -MDwvc3RyaW5nPgoJCTxzdHJpbmc+YXVkaW9jb250ZW50ZG93bmxvYWQuYXBwbGUu -Y29tOjQ0Mzwvc3RyaW5nPgoJCTxzdHJpbmc+ZGVpbW9zLmFwcGxlLmNvbTo4MDwv -c3RyaW5nPgoJCTxzdHJpbmc+ZGVpbW9zMy5hcHBsZS5jb206ODA8L3N0cmluZz4K -CQk8c3RyaW5nPmJhc2VqdW1wZXIuYXBwbGUuY29tOjgwPC9zdHJpbmc+CgkJPHN0 -cmluZz5iYXNlanVtcGVyLmFwcGxlLmNvbTo0NDM8L3N0cmluZz4KCQk8c3RyaW5n -PnBsYXlncm91bmRzLWFzc2V0cy1jZG4uYXBwbGUuY29tOjQ0Mzwvc3RyaW5nPgoJ -CTxzdHJpbmc+cGxheWdyb3VuZHMtY2RuLmFwcGxlLmNvbTo0NDM8L3N0cmluZz4K -CQk8c3RyaW5nPnVwZGF0ZXMuY2RuLWFwcGxlLmNvbTo0NDM8L3N0cmluZz4KCQk8 -c3RyaW5nPnVwZGF0ZXMtaHR0cC5jZG4tYXBwbGUuY29tOjgwPC9zdHJpbmc+CgkJ -PHN0cmluZz5zeWx2YW4uYXBwbGUuY29tOjgwPC9zdHJpbmc+CgkJPHN0cmluZz5z -eWx2YW4uYXBwbGUuY29tOjQ0Mzwvc3RyaW5nPgoJCTxzdHJpbmc+ZGV2aW1hZ2Vz -LWNkbi5hcHBsZS5jb206ODA8L3N0cmluZz4KCQk8c3RyaW5nPmRldmltYWdlcy1j -ZG4uYXBwbGUuY29tOjQ0Mzwvc3RyaW5nPgoJCTxzdHJpbmc+ZG93bmxvYWQuZGV2 -ZWxvcGVyLmFwcGxlLmNvbTo4MDwvc3RyaW5nPgoJCTxzdHJpbmc+ZG93bmxvYWQu -ZGV2ZWxvcGVyLmFwcGxlLmNvbTo0NDM8L3N0cmluZz4KCTwvYXJyYXk+Cgk8a2V5 -PndoaXRlTGlzdGVkRG9tYWluczwva2V5PgoJPGFycmF5PgoJCTxzdHJpbmc+cGhv -Ym9zLmFwcGxlLmNvbTo4MDwvc3RyaW5nPgoJCTxzdHJpbmc+aXR1bmVzLmFwcGxl -LmNvbTo4MDwvc3RyaW5nPgoJCTxzdHJpbmc+aXR1bmVzLmFwcGxlLmNvbTo0NDM8 -L3N0cmluZz4KCQk8c3RyaW5nPmFzc2V0cy5pdHVuZXMuY29tOjgwPC9zdHJpbmc+ -CgkJPHN0cmluZz5hc3NldHMuaXR1bmVzLmNvbTo0NDM8L3N0cmluZz4KCTwvYXJy -YXk+Cgk8a2V5PmFzc2V0VHlwZU1hcDwva2V5PgoJPGFycmF5PgoJCTxkaWN0PgoJ -CQk8a2V5Pmhvc3Q8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0cmluZz5zd2Rpc3Qu -YXBwbGUuY29tPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+bWFwPC9rZXk+ -CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+dHlwZTwva2V5PgoJCQkJ -CTxzdHJpbmc+c3dkaXN0PC9zdHJpbmc+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+ -CgkJPC9kaWN0PgoJCTxkaWN0PgoJCQk8a2V5Pmhvc3Q8L2tleT4KCQkJPGFycmF5 -PgoJCQkJPHN0cmluZz5zd2Rvd25sb2FkLmFwcGxlLmNvbTwvc3RyaW5nPgoJCQk8 -L2FycmF5PgoJCQk8a2V5Pm1hcDwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4K -CQkJCQk8a2V5PnR5cGU8L2tleT4KCQkJCQk8c3RyaW5nPnN3ZG93bmxvYWQ8L3N0 -cmluZz4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGRpY3Q+ -CgkJCTxrZXk+aG9zdDwva2V5PgoJCQk8YXJyYXk+CgkJCQk8c3RyaW5nPnN3Y2Ru -LmFwcGxlLmNvbTwvc3RyaW5nPgoJCQk8L2FycmF5PgoJCQk8a2V5Pm1hcDwva2V5 -PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PnR5cGU8L2tleT4KCQkJ -CQk8c3RyaW5nPnN3Y2RuPC9zdHJpbmc+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+ -CgkJPC9kaWN0PgoJCTxkaWN0PgoJCQk8a2V5Pmhvc3Q8L2tleT4KCQkJPGFycmF5 -PgoJCQkJPHN0cmluZz5vc2Nkbi5hcHBsZS5jb208L3N0cmluZz4KCQkJPC9hcnJh -eT4KCQkJPGtleT5tYXA8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJ -PGtleT50eXBlPC9rZXk+CgkJCQkJPHN0cmluZz5vc2Nkbjwvc3RyaW5nPgoJCQkJ -PC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8ZGljdD4KCQkJPGtleT5o -b3N0PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxzdHJpbmc+dmFsaWRhdGlvbi5pc3Uu -YXBwbGUuY29tPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+bWFwPC9rZXk+ -CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+dHlwZTwva2V5PgoJCQkJ -CTxzdHJpbmc+dmFsaWRhdGlvbjwvc3RyaW5nPgoJCQkJPC9kaWN0PgoJCQk8L2Fy -cmF5PgoJCTwvZGljdD4KCQk8ZGljdD4KCQkJPGtleT5ob3N0PC9rZXk+CgkJCTxh -cnJheT4KCQkJCTxzdHJpbmc+YXBwbGRubGQuYXBwbGUuY29tPC9zdHJpbmc+CgkJ -CTwvYXJyYXk+CgkJCTxrZXk+bWFwPC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0 -PgoJCQkJCTxrZXk+dHlwZTwva2V5PgoJCQkJCTxzdHJpbmc+YXBwbGRubGQ8L3N0 -cmluZz4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGRpY3Q+ -CgkJCTxrZXk+aG9zdDwva2V5PgoJCQk8YXJyYXk+CgkJCQk8c3RyaW5nPmJhc2Vq -dW1wZXIuYXBwbGUuY29tPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+bWFw -PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+dHlwZTwva2V5 -PgoJCQkJCTxzdHJpbmc+YmFzZWp1bXBlcjwvc3RyaW5nPgoJCQkJPC9kaWN0PgoJ -CQk8L2FycmF5PgoJCTwvZGljdD4KCQk8ZGljdD4KCQkJPGtleT5ob3N0PC9rZXk+ -CgkJCTxhcnJheT4KCQkJCTxzdHJpbmc+cGxheWdyb3VuZHMtYXNzZXRzLWNkbi5h -cHBsZS5jb208L3N0cmluZz4KCQkJCTxzdHJpbmc+cGxheWdyb3VuZHMtY2RuLmFw -cGxlLmNvbTwvc3RyaW5nPgoJCQk8L2FycmF5PgoJCQk8a2V5Pm1hcDwva2V5PgoJ -CQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PnR5cGU8L2tleT4KCQkJCQk8 -c3RyaW5nPnBsYXlncm91bmRzPC9zdHJpbmc+CgkJCQk8L2RpY3Q+CgkJCTwvYXJy -YXk+CgkJPC9kaWN0PgoJCTxkaWN0PgoJCQk8a2V5Pmhvc3Q8L2tleT4KCQkJPGFy -cmF5PgoJCQkJPHN0cmluZz5zeWx2YW4uYXBwbGUuY29tPC9zdHJpbmc+CgkJCTwv -YXJyYXk+CgkJCTxrZXk+bWFwPC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJ -CQkJCTxrZXk+dHlwZTwva2V5PgoJCQkJCTxzdHJpbmc+c3lsdmFuPC9zdHJpbmc+ -CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxkaWN0PgoJCQk8 -a2V5Pmhvc3Q8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0cmluZz5kZXZpbWFnZXMt -Y2RuLmFwcGxlLmNvbTwvc3RyaW5nPgoJCQkJPHN0cmluZz5kb3dubG9hZC5kZXZl -bG9wZXIuYXBwbGUuY29tPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+bWFw -PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+dHlwZTwva2V5 -PgoJCQkJCTxzdHJpbmc+ZGV2PC9zdHJpbmc+CgkJCQk8L2RpY3Q+CgkJCTwvYXJy -YXk+CgkJPC9kaWN0PgoJCTxkaWN0PgoJCQk8a2V5Pmhvc3Q8L2tleT4KCQkJPGFy -cmF5PgoJCQkJPHN0cmluZz5hdWRpb2NvbnRlbnRkb3dubG9hZC5hcHBsZS5jb208 -L3N0cmluZz4KCQkJPC9hcnJheT4KCQkJPGtleT5tYXA8L2tleT4KCQkJPGFycmF5 -PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT50eXBlPC9rZXk+CgkJCQkJPHN0cmluZz5n -Ym5kPC9zdHJpbmc+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJ -CTxkaWN0PgoJCQk8a2V5Pmhvc3Q8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0cmlu -Zz5vZHIuYXNzZXRzLml0dW5lcy5jb208L3N0cmluZz4KCQkJCTxzdHJpbmc+b2Ry -Lml0dW5lcy5hcHBsZS5jb208L3N0cmluZz4KCQkJPC9hcnJheT4KCQkJPGtleT5t -YXA8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT50eXBlPC9r -ZXk+CgkJCQkJPHN0cmluZz5vZHI8L3N0cmluZz4KCQkJCTwvZGljdD4KCQkJPC9h -cnJheT4KCQk8L2RpY3Q+CgkJPGRpY3Q+CgkJCTxrZXk+aG9zdDwva2V5PgoJCQk8 -YXJyYXk+CgkJCQk8c3RyaW5nPnAxLXUuaXR1bmVzLmFwcGxlLmNvbTwvc3RyaW5n -PgoJCQkJPHN0cmluZz5wMi11Lml0dW5lcy5hcHBsZS5jb208L3N0cmluZz4KCQkJ -CTxzdHJpbmc+ZGVpbW9zLmFwcGxlLmNvbTwvc3RyaW5nPgoJCQkJPHN0cmluZz5k -ZWltb3MzLmFwcGxlLmNvbTwvc3RyaW5nPgoJCQkJPHN0cmluZz5pdHVuZXN1LmFz -c2V0cy5pdHVuZXMuY29tPC9zdHJpbmc+CgkJCQk8c3RyaW5nPml0dW5lc3UuaXR1 -bmVzLmFwcGxlLmNvbTwvc3RyaW5nPgoJCQkJPHN0cmluZz5pdHVuZXN1LWFzc2V0 -cy5pdHVuZXMuYXBwbGUuY29tPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+ -bWFwPC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+dHlwZTwv -a2V5PgoJCQkJCTxzdHJpbmc+aXR1bmVzdTwvc3RyaW5nPgoJCQkJPC9kaWN0PgoJ -CQk8L2FycmF5PgoJCTwvZGljdD4KCQk8ZGljdD4KCQkJPGtleT5ob3N0PC9rZXk+ -CgkJCTxhcnJheT4KCQkJCTxzdHJpbmc+Ki5waG9ib3MuYXBwbGUuY29tPC9zdHJp -bmc+CgkJCQk8c3RyaW5nPioudi5waG9ib3MuYXBwbGUuY29tPC9zdHJpbmc+CgkJ -CQk8c3RyaW5nPiouYXNzZXRzLml0dW5lcy5jb208L3N0cmluZz4KCQkJCTxzdHJp -bmc+Ym9va3MuaXR1bmVzLmFwcGxlLmNvbTwvc3RyaW5nPgoJCQkJPHN0cmluZz5p -b3NhcHBzLml0dW5lcy5hcHBsZS5jb208L3N0cmluZz4KCQkJCTxzdHJpbmc+b3N4 -YXBwcy5pdHVuZXMuYXBwbGUuY29tPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxr -ZXk+bWFwPC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+cGF0 -aDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHN0cmluZz4vKi9QdXJwbGUqLyou -emlwPC9zdHJpbmc+CgkJCQkJCTxzdHJpbmc+LyovUHVycGxlKi8qLnBrZzwvc3Ry -aW5nPgoJCQkJCQk8c3RyaW5nPi8qL1B1cnBsZSovKi5pcGE8L3N0cmluZz4KCQkJ -CQk8L2FycmF5PgoJCQkJCTxrZXk+dHlwZTwva2V5PgoJCQkJCTxzdHJpbmc+QXBw -czwvc3RyaW5nPgoJCQkJPC9kaWN0PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5wYXRo -PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8c3RyaW5nPi8qL1B1YmxpY2F0aW9u -Ki8qPC9zdHJpbmc+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PnR5cGU8L2tleT4K -CQkJCQk8c3RyaW5nPmlCb29rczwvc3RyaW5nPgoJCQkJPC9kaWN0PgoJCQkJPGRp -Y3Q+CgkJCQkJPGtleT5wYXRoPC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8c3Ry -aW5nPi8qL1ZpZGVvLypmLm00djwvc3RyaW5nPgoJCQkJCQk8c3RyaW5nPi8qL1Zp -ZGVvLypmLm1vdjwvc3RyaW5nPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT50eXBl -PC9rZXk+CgkJCQkJPHN0cmluZz5Nb3ZpZXM8L3N0cmluZz4KCQkJCTwvZGljdD4K -CQkJCTxkaWN0PgoJCQkJCTxrZXk+cGF0aDwva2V5PgoJCQkJCTxhcnJheT4KCQkJ -CQkJPHN0cmluZz4vKi9GZWF0dXJlcy8qLm00cDwvc3RyaW5nPgoJCQkJCQk8c3Ry -aW5nPi8qL0ZlYXR1cmVzLyoubTRhPC9zdHJpbmc+CgkJCQkJCTxzdHJpbmc+Lyov -RmVhdHVyZXMvKi5tcDQ8L3N0cmluZz4KCQkJCQkJPHN0cmluZz4vKi9NdXNpYy8q -Lm00cDwvc3RyaW5nPgoJCQkJCQk8c3RyaW5nPi8qL011c2ljLyoubTRhPC9zdHJp -bmc+CgkJCQkJCTxzdHJpbmc+LyovTXVzaWMvKi5tcDQ8L3N0cmluZz4KCQkJCQk8 -L2FycmF5PgoJCQkJCTxrZXk+dHlwZTwva2V5PgoJCQkJCTxzdHJpbmc+U29uZ3M8 -L3N0cmluZz4KCQkJCTwvZGljdD4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+cGF0aDwv -a2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHN0cmluZz4vKi9Db2JhbHQqPC9zdHJp -bmc+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PnR5cGU8L2tleT4KCQkJCQk8c3Ry -aW5nPml0dW5lc3U8L3N0cmluZz4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8 -L2RpY3Q+CgkJPGRpY3Q+CgkJCTxrZXk+aG9zdDwva2V5PgoJCQk8YXJyYXk+CgkJ -CQk8c3RyaW5nPio8L3N0cmluZz4KCQkJPC9hcnJheT4KCQkJPGtleT5tYXA8L2tl -eT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT50eXBlPC9rZXk+CgkJ -CQkJPHN0cmluZz5pY2xvdWQ8L3N0cmluZz4KCQkJCQk8a2V5Pm5hbWVzcGFjZTwv -a2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHN0cmluZz5pY2xvdWQ8L3N0cmluZz4K -CQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+cGF0aDwva2V5PgoJCQkJCTxhcnJheT4K -CQkJCQkJPHN0cmluZz5uL2E8L3N0cmluZz4KCQkJCQk8L2FycmF5PgoJCQkJPC9k -aWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCTwvYXJyYXk+Cgk8a2V5Pm1lZGlh -VHlwZU1hcDwva2V5PgoJPGFycmF5PgoJCTxkaWN0PgoJCQk8a2V5Pm5hbWVzcGFj -ZTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8c3RyaW5nPmljbG91ZDwvc3RyaW5nPgoJ -CQk8L2FycmF5PgoJCQk8a2V5PnBhdGg8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0 -cmluZz5uL2E8L3N0cmluZz4KCQkJPC9hcnJheT4KCQkJPGtleT50eXBlPC9rZXk+ -CgkJCTxzdHJpbmc+aUNsb3VkPC9zdHJpbmc+CgkJPC9kaWN0PgoJCTxkaWN0PgoJ -CQk8a2V5PnBhdGg8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0cmluZz4vKi9Db2Jh -bHQqPC9zdHJpbmc+CgkJCQk8c3RyaW5nPi9XZWJPYmplY3RzL0NvcmUud29hL0Rv -d25sb2FkKjwvc3RyaW5nPgoJCQkJPHN0cmluZz4vV2ViT2JqZWN0cy9Db3JlLndv -YS9GZWVkKjwvc3RyaW5nPgoJCQkJPHN0cmluZz4vV2ViT2JqZWN0cy9Db3JlLndv -YS9TdWJzY3JpcHRpb24qPC9zdHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+dHlw -ZTwva2V5PgoJCQk8c3RyaW5nPmlUdW5lcyBVPC9zdHJpbmc+CgkJPC9kaWN0PgoJ -CTxkaWN0PgoJCQk8a2V5PnBhdGg8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0cmlu -Zz4qLmVwdWI8L3N0cmluZz4KCQkJCTxzdHJpbmc+Ki5pYm9va3M8L3N0cmluZz4K -CQkJPC9hcnJheT4KCQkJPGtleT50eXBlPC9rZXk+CgkJCTxzdHJpbmc+Qm9va3M8 -L3N0cmluZz4KCQk8L2RpY3Q+CgkJPGRpY3Q+CgkJCTxrZXk+cGF0aDwva2V5PgoJ -CQk8YXJyYXk+CgkJCQk8c3RyaW5nPipbYUFdcHBsZVt0VF1bdlZdKjwvc3RyaW5n -PgoJCQkJPHN0cmluZz4qdHZbb09dW3NTXSo8L3N0cmluZz4KCQkJCTxzdHJpbmc+ -Ki9WaWRlb3MvKi5bbU1dW29PXVt2Vl08L3N0cmluZz4KCQkJPC9hcnJheT4KCQkJ -PGtleT50eXBlPC9rZXk+CgkJCTxzdHJpbmc+QXBwbGUgVFYgU29mdHdhcmU8L3N0 -cmluZz4KCQk8L2RpY3Q+CgkJPGRpY3Q+CgkJCTxrZXk+cGF0aDwva2V5PgoJCQk8 -YXJyYXk+CgkJCQk8c3RyaW5nPiouaXBhPC9zdHJpbmc+CgkJCQk8c3RyaW5nPiou -aXBkPC9zdHJpbmc+CgkJCQk8c3RyaW5nPiouaXBzdzwvc3RyaW5nPgoJCQkJPHN0 -cmluZz4qLmFzc2V0cGFjazwvc3RyaW5nPgoJCQkJPHN0cmluZz4vaW9zKjwvc3Ry -aW5nPgoJCQkJPHN0cmluZz4vaU9TKjwvc3RyaW5nPgoJCQk8L2FycmF5PgoJCQk8 -a2V5PnR5cGU8L2tleT4KCQkJPHN0cmluZz5pT1MgU29mdHdhcmU8L3N0cmluZz4K -CQk8L2RpY3Q+CgkJPGRpY3Q+CgkJCTxrZXk+cGF0aDwva2V5PgoJCQk8YXJyYXk+ -CgkJCQk8c3RyaW5nPioucGtnPC9zdHJpbmc+CgkJCQk8c3RyaW5nPiouZG1nPC9z -dHJpbmc+CgkJCTwvYXJyYXk+CgkJCTxrZXk+dHlwZTwva2V5PgoJCQk8c3RyaW5n -Pk1hYyBTb2Z0d2FyZTwvc3RyaW5nPgoJCTwvZGljdD4KCQk8ZGljdD4KCQkJPGtl -eT5wYXRoPC9rZXk+CgkJCTxhcnJheT4KCQkJCTxzdHJpbmc+Ki5tNHY8L3N0cmlu -Zz4KCQkJCTxzdHJpbmc+Ki5tb3Y8L3N0cmluZz4KCQkJPC9hcnJheT4KCQkJPGtl -eT50eXBlPC9rZXk+CgkJCTxzdHJpbmc+TW92aWVzPC9zdHJpbmc+CgkJPC9kaWN0 -PgoJCTxkaWN0PgoJCQk8a2V5PnBhdGg8L2tleT4KCQkJPGFycmF5PgoJCQkJPHN0 -cmluZz4qLm00cDwvc3RyaW5nPgoJCQkJPHN0cmluZz4qLm00YTwvc3RyaW5nPgoJ -CQkJPHN0cmluZz4qLm1wNDwvc3RyaW5nPgoJCQk8L2FycmF5PgoJCQk8a2V5PnR5 -cGU8L2tleT4KCQkJPHN0cmluZz5NdXNpYzwvc3RyaW5nPgoJCTwvZGljdD4KCQk8 -ZGljdD4KCQkJPGtleT50eXBlPC9rZXk+CgkJCTxzdHJpbmc+T3RoZXI8L3N0cmlu -Zz4KCQk8L2RpY3Q+Cgk8L2FycmF5PgoJPGtleT5tZWRpYVR5cGVPcmRlcjwva2V5 -PgoJPGFycmF5PgoJCTxzdHJpbmc+TWFjIFNvZnR3YXJlPC9zdHJpbmc+CgkJPHN0 -cmluZz5pT1MgU29mdHdhcmU8L3N0cmluZz4KCQk8c3RyaW5nPkFwcGxlIFRWIFNv -ZnR3YXJlPC9zdHJpbmc+CgkJPHN0cmluZz5pQ2xvdWQ8L3N0cmluZz4KCQk8c3Ry -aW5nPkJvb2tzPC9zdHJpbmc+CgkJPHN0cmluZz5pVHVuZXMgVTwvc3RyaW5nPgoJ -CTxzdHJpbmc+TW92aWVzPC9zdHJpbmc+CgkJPHN0cmluZz5NdXNpYzwvc3RyaW5n -PgoJCTxzdHJpbmc+T3RoZXI8L3N0cmluZz4KCTwvYXJyYXk+Cgk8a2V5Pm1lZGlh -VHlwZVN0cmluZ3M8L2tleT4KCTxkaWN0PgoJCTxrZXk+ZGU8L2tleT4KCQk8ZGlj -dD4KCQkJPGtleT5BcHBsZSBUViBTb2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPkFw -cGxlIFRWLVNvZnR3YXJlPC9zdHJpbmc+CgkJCTxrZXk+Qm9va3M8L2tleT4KCQkJ -PHN0cmluZz5Cw7xjaGVyPC9zdHJpbmc+CgkJCTxrZXk+aUNsb3VkPC9rZXk+CgkJ -CTxzdHJpbmc+aUNsb3VkPC9zdHJpbmc+CgkJCTxrZXk+aU9TIFNvZnR3YXJlPC9r -ZXk+CgkJCTxzdHJpbmc+aU9TLVNvZnR3YXJlPC9zdHJpbmc+CgkJCTxrZXk+aVR1 -bmVzIFU8L2tleT4KCQkJPHN0cmluZz5pVHVuZXMgVTwvc3RyaW5nPgoJCQk8a2V5 -Pk1hYyBTb2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPk1hYy1Tb2Z0d2FyZTwvc3Ry -aW5nPgoJCQk8a2V5Pk1vdmllczwva2V5PgoJCQk8c3RyaW5nPkZpbG1lPC9zdHJp -bmc+CgkJCTxrZXk+TXVzaWM8L2tleT4KCQkJPHN0cmluZz5NdXNpazwvc3RyaW5n -PgoJCQk8a2V5Pk90aGVyPC9rZXk+CgkJCTxzdHJpbmc+QW5kZXJlczwvc3RyaW5n -PgoJCTwvZGljdD4KCQk8a2V5PmVuPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+QXBw -bGUgVFYgU29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5BcHBsZSBUViBTb2Z0d2Fy -ZTwvc3RyaW5nPgoJCQk8a2V5PkJvb2tzPC9rZXk+CgkJCTxzdHJpbmc+Qm9va3M8 -L3N0cmluZz4KCQkJPGtleT5pQ2xvdWQ8L2tleT4KCQkJPHN0cmluZz5pQ2xvdWQ8 -L3N0cmluZz4KCQkJPGtleT5pT1MgU29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5p -T1MgU29mdHdhcmU8L3N0cmluZz4KCQkJPGtleT5pVHVuZXMgVTwva2V5PgoJCQk8 -c3RyaW5nPmlUdW5lcyBVPC9zdHJpbmc+CgkJCTxrZXk+TWFjIFNvZnR3YXJlPC9r -ZXk+CgkJCTxzdHJpbmc+TWFjIFNvZnR3YXJlPC9zdHJpbmc+CgkJCTxrZXk+TW92 -aWVzPC9rZXk+CgkJCTxzdHJpbmc+TW92aWVzPC9zdHJpbmc+CgkJCTxrZXk+TXVz -aWM8L2tleT4KCQkJPHN0cmluZz5NdXNpYzwvc3RyaW5nPgoJCQk8a2V5Pk90aGVy -PC9rZXk+CgkJCTxzdHJpbmc+T3RoZXI8L3N0cmluZz4KCQk8L2RpY3Q+CgkJPGtl -eT5lczwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PkFwcGxlIFRWIFNvZnR3YXJlPC9r -ZXk+CgkJCTxzdHJpbmc+U29mdHdhcmUgQXBwbGUgVFY8L3N0cmluZz4KCQkJPGtl -eT5Cb29rczwva2V5PgoJCQk8c3RyaW5nPkxpYnJvczwvc3RyaW5nPgoJCQk8a2V5 -PmlDbG91ZDwva2V5PgoJCQk8c3RyaW5nPmlDbG91ZDwvc3RyaW5nPgoJCQk8a2V5 -PmlPUyBTb2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPlNvZnR3YXJlIGlPUzwvc3Ry -aW5nPgoJCQk8a2V5PmlUdW5lcyBVPC9rZXk+CgkJCTxzdHJpbmc+aVR1bmVzIFU8 -L3N0cmluZz4KCQkJPGtleT5NYWMgU29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5T -b2Z0d2FyZSBNYWM8L3N0cmluZz4KCQkJPGtleT5Nb3ZpZXM8L2tleT4KCQkJPHN0 -cmluZz5QZWzDrWN1bGFzPC9zdHJpbmc+CgkJCTxrZXk+TXVzaWM8L2tleT4KCQkJ -PHN0cmluZz5Nw7pzaWNhPC9zdHJpbmc+CgkJCTxrZXk+T3RoZXI8L2tleT4KCQkJ -PHN0cmluZz5PdHJvczwvc3RyaW5nPgoJCTwvZGljdD4KCQk8a2V5PmZyPC9rZXk+ -CgkJPGRpY3Q+CgkJCTxrZXk+QXBwbGUgVFYgU29mdHdhcmU8L2tleT4KCQkJPHN0 -cmluZz5Mb2dpY2llbHMgQXBwbGUgVFY8L3N0cmluZz4KCQkJPGtleT5Cb29rczwv -a2V5PgoJCQk8c3RyaW5nPkxpdnJlczwvc3RyaW5nPgoJCQk8a2V5PmlDbG91ZDwv -a2V5PgoJCQk8c3RyaW5nPmlDbG91ZDwvc3RyaW5nPgoJCQk8a2V5PmlPUyBTb2Z0 -d2FyZTwva2V5PgoJCQk8c3RyaW5nPkxvZ2ljaWVscyBpT1M8L3N0cmluZz4KCQkJ -PGtleT5pVHVuZXMgVTwva2V5PgoJCQk8c3RyaW5nPmlUdW5lcyBVPC9zdHJpbmc+ -CgkJCTxrZXk+TWFjIFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+TG9naWNpZWxz -IE1hYzwvc3RyaW5nPgoJCQk8a2V5Pk1vdmllczwva2V5PgoJCQk8c3RyaW5nPkZp -bG1zPC9zdHJpbmc+CgkJCTxrZXk+TXVzaWM8L2tleT4KCQkJPHN0cmluZz5NdXNp -cXVlPC9zdHJpbmc+CgkJCTxrZXk+T3RoZXI8L2tleT4KCQkJPHN0cmluZz5BdXRy -ZXM8L3N0cmluZz4KCQk8L2RpY3Q+CgkJPGtleT5pdDwva2V5PgoJCTxkaWN0PgoJ -CQk8a2V5PkFwcGxlIFRWIFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+U29mdHdh -cmUgQXBwbGUgVFY8L3N0cmluZz4KCQkJPGtleT5Cb29rczwva2V5PgoJCQk8c3Ry -aW5nPkxpYnJpPC9zdHJpbmc+CgkJCTxrZXk+aUNsb3VkPC9rZXk+CgkJCTxzdHJp -bmc+aUNsb3VkPC9zdHJpbmc+CgkJCTxrZXk+aU9TIFNvZnR3YXJlPC9rZXk+CgkJ -CTxzdHJpbmc+U29mdHdhcmUgaU9TPC9zdHJpbmc+CgkJCTxrZXk+aVR1bmVzIFU8 -L2tleT4KCQkJPHN0cmluZz5pVHVuZXMgVTwvc3RyaW5nPgoJCQk8a2V5Pk1hYyBT -b2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPlNvZnR3YXJlIE1hYzwvc3RyaW5nPgoJ -CQk8a2V5Pk1vdmllczwva2V5PgoJCQk8c3RyaW5nPkZpbG08L3N0cmluZz4KCQkJ -PGtleT5NdXNpYzwva2V5PgoJCQk8c3RyaW5nPk11c2ljYTwvc3RyaW5nPgoJCQk8 -a2V5Pk90aGVyPC9rZXk+CgkJCTxzdHJpbmc+QWx0cm88L3N0cmluZz4KCQk8L2Rp -Y3Q+CgkJPGtleT5qYTwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PkFwcGxlIFRWIFNv -ZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+QXBwbGUgVFYg44K944OV44OI44Km44Kn -44KiPC9zdHJpbmc+CgkJCTxrZXk+Qm9va3M8L2tleT4KCQkJPHN0cmluZz7jg5bj -g4Pjgq88L3N0cmluZz4KCQkJPGtleT5pQ2xvdWQ8L2tleT4KCQkJPHN0cmluZz5p -Q2xvdWQ8L3N0cmluZz4KCQkJPGtleT5pT1MgU29mdHdhcmU8L2tleT4KCQkJPHN0 -cmluZz5pT1Mg44K944OV44OI44Km44Kn44KiPC9zdHJpbmc+CgkJCTxrZXk+aVR1 -bmVzIFU8L2tleT4KCQkJPHN0cmluZz5pVHVuZXMgVTwvc3RyaW5nPgoJCQk8a2V5 -Pk1hYyBTb2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPk1hYyDjgr3jg5Xjg4jjgqbj -gqfjgqI8L3N0cmluZz4KCQkJPGtleT5Nb3ZpZXM8L2tleT4KCQkJPHN0cmluZz7j -g6Djg7zjg5Pjg7w8L3N0cmluZz4KCQkJPGtleT5NdXNpYzwva2V5PgoJCQk8c3Ry -aW5nPuODn+ODpeODvOOCuOODg+OCrzwvc3RyaW5nPgoJCQk8a2V5Pk90aGVyPC9r -ZXk+CgkJCTxzdHJpbmc+44Gd44Gu5LuWPC9zdHJpbmc+CgkJPC9kaWN0PgoJCTxr -ZXk+a288L2tleT4KCQk8ZGljdD4KCQkJPGtleT5BcHBsZSBUViBTb2Z0d2FyZTwv -a2V5PgoJCQk8c3RyaW5nPkFwcGxlIFRWIOyGjO2UhO2KuOybqOyWtDwvc3RyaW5n -PgoJCQk8a2V5PkJvb2tzPC9rZXk+CgkJCTxzdHJpbmc+7LGFPC9zdHJpbmc+CgkJ -CTxrZXk+aUNsb3VkPC9rZXk+CgkJCTxzdHJpbmc+aUNsb3VkPC9zdHJpbmc+CgkJ -CTxrZXk+aU9TIFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+aU9TIOyGjO2UhO2K -uOybqOyWtDwvc3RyaW5nPgoJCQk8a2V5PmlUdW5lcyBVPC9rZXk+CgkJCTxzdHJp -bmc+aVR1bmVzIFU8L3N0cmluZz4KCQkJPGtleT5NYWMgU29mdHdhcmU8L2tleT4K -CQkJPHN0cmluZz5NYWMg7IaM7ZSE7Yq47Juo7Ja0PC9zdHJpbmc+CgkJCTxrZXk+ -TW92aWVzPC9rZXk+CgkJCTxzdHJpbmc+64+Z7JiB7IOBPC9zdHJpbmc+CgkJCTxr -ZXk+TXVzaWM8L2tleT4KCQkJPHN0cmluZz7snYzslYU8L3N0cmluZz4KCQkJPGtl -eT5PdGhlcjwva2V5PgoJCQk8c3RyaW5nPuq4sO2DgDwvc3RyaW5nPgoJCTwvZGlj -dD4KCQk8a2V5Pm5sPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+QXBwbGUgVFYgU29m -dHdhcmU8L2tleT4KCQkJPHN0cmluZz5BcHBsZSBUVi1zb2Z0d2FyZTwvc3RyaW5n -PgoJCQk8a2V5PkJvb2tzPC9rZXk+CgkJCTxzdHJpbmc+Qm9la2VuPC9zdHJpbmc+ -CgkJCTxrZXk+aUNsb3VkPC9rZXk+CgkJCTxzdHJpbmc+aUNsb3VkPC9zdHJpbmc+ -CgkJCTxrZXk+aU9TIFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+aU9TLXNvZnR3 -YXJlPC9zdHJpbmc+CgkJCTxrZXk+aVR1bmVzIFU8L2tleT4KCQkJPHN0cmluZz5p -VHVuZXMgVTwvc3RyaW5nPgoJCQk8a2V5Pk1hYyBTb2Z0d2FyZTwva2V5PgoJCQk8 -c3RyaW5nPk1hYy1zb2Z0d2FyZTwvc3RyaW5nPgoJCQk8a2V5Pk1vdmllczwva2V5 -PgoJCQk8c3RyaW5nPkZpbG1zPC9zdHJpbmc+CgkJCTxrZXk+TXVzaWM8L2tleT4K -CQkJPHN0cmluZz5NdXppZWs8L3N0cmluZz4KCQkJPGtleT5PdGhlcjwva2V5PgoJ -CQk8c3RyaW5nPk92ZXJpZzwvc3RyaW5nPgoJCTwvZGljdD4KCQk8a2V5PnpoX0NO -PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+QXBwbGUgVFYgU29mdHdhcmU8L2tleT4K -CQkJPHN0cmluZz5BcHBsZSBUViDova/ku7Y8L3N0cmluZz4KCQkJPGtleT5Cb29r -czwva2V5PgoJCQk8c3RyaW5nPuWbvuS5pjwvc3RyaW5nPgoJCQk8a2V5PmlDbG91 -ZDwva2V5PgoJCQk8c3RyaW5nPmlDbG91ZDwvc3RyaW5nPgoJCQk8a2V5PmlPUyBT -b2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPmlPUyDova/ku7Y8L3N0cmluZz4KCQkJ -PGtleT5pVHVuZXMgVTwva2V5PgoJCQk8c3RyaW5nPmlUdW5lcyBVPC9zdHJpbmc+ -CgkJCTxrZXk+TWFjIFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+TWFjIOi9r+S7 -tjwvc3RyaW5nPgoJCQk8a2V5Pk1vdmllczwva2V5PgoJCQk8c3RyaW5nPuW9seeJ -hzwvc3RyaW5nPgoJCQk8a2V5Pk11c2ljPC9rZXk+CgkJCTxzdHJpbmc+6Z+z5LmQ -PC9zdHJpbmc+CgkJCTxrZXk+T3RoZXI8L2tleT4KCQkJPHN0cmluZz7lhbbku5Y8 -L3N0cmluZz4KCQk8L2RpY3Q+CgkJPGtleT56aC1DTjwva2V5PgoJCTxkaWN0PgoJ -CQk8a2V5PkFwcGxlIFRWIFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+QXBwbGUg -VFYg6L2v5Lu2PC9zdHJpbmc+CgkJCTxrZXk+Qm9va3M8L2tleT4KCQkJPHN0cmlu -Zz7lm77kuaY8L3N0cmluZz4KCQkJPGtleT5pQ2xvdWQ8L2tleT4KCQkJPHN0cmlu -Zz5pQ2xvdWQ8L3N0cmluZz4KCQkJPGtleT5pT1MgU29mdHdhcmU8L2tleT4KCQkJ -PHN0cmluZz5pT1Mg6L2v5Lu2PC9zdHJpbmc+CgkJCTxrZXk+aVR1bmVzIFU8L2tl -eT4KCQkJPHN0cmluZz5pVHVuZXMgVTwvc3RyaW5nPgoJCQk8a2V5Pk1hYyBTb2Z0 -d2FyZTwva2V5PgoJCQk8c3RyaW5nPk1hYyDova/ku7Y8L3N0cmluZz4KCQkJPGtl -eT5Nb3ZpZXM8L2tleT4KCQkJPHN0cmluZz7lvbHniYc8L3N0cmluZz4KCQkJPGtl -eT5NdXNpYzwva2V5PgoJCQk8c3RyaW5nPumfs+S5kDwvc3RyaW5nPgoJCQk8a2V5 -Pk90aGVyPC9rZXk+CgkJCTxzdHJpbmc+5YW25LuWPC9zdHJpbmc+CgkJPC9kaWN0 -PgoJCTxrZXk+emgtSGFuczwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PkFwcGxlIFRW -IFNvZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+QXBwbGUgVFYg6L2v5Lu2PC9zdHJp -bmc+CgkJCTxrZXk+Qm9va3M8L2tleT4KCQkJPHN0cmluZz7lm77kuaY8L3N0cmlu -Zz4KCQkJPGtleT5pQ2xvdWQ8L2tleT4KCQkJPHN0cmluZz5pQ2xvdWQ8L3N0cmlu -Zz4KCQkJPGtleT5pT1MgU29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5pT1Mg6L2v -5Lu2PC9zdHJpbmc+CgkJCTxrZXk+aVR1bmVzIFU8L2tleT4KCQkJPHN0cmluZz5p -VHVuZXMgVTwvc3RyaW5nPgoJCQk8a2V5Pk1hYyBTb2Z0d2FyZTwva2V5PgoJCQk8 -c3RyaW5nPk1hYyDova/ku7Y8L3N0cmluZz4KCQkJPGtleT5Nb3ZpZXM8L2tleT4K -CQkJPHN0cmluZz7lvbHniYc8L3N0cmluZz4KCQkJPGtleT5NdXNpYzwva2V5PgoJ -CQk8c3RyaW5nPumfs+S5kDwvc3RyaW5nPgoJCQk8a2V5Pk90aGVyPC9rZXk+CgkJ -CTxzdHJpbmc+5YW25LuWPC9zdHJpbmc+CgkJPC9kaWN0PgoJCTxrZXk+emhfVFc8 -L2tleT4KCQk8ZGljdD4KCQkJPGtleT5BcHBsZSBUViBTb2Z0d2FyZTwva2V5PgoJ -CQk8c3RyaW5nPkFwcGxlIFRWIOi7n+mrlDwvc3RyaW5nPgoJCQk8a2V5PkJvb2tz -PC9rZXk+CgkJCTxzdHJpbmc+5pu457GNPC9zdHJpbmc+CgkJCTxrZXk+aUNsb3Vk -PC9rZXk+CgkJCTxzdHJpbmc+aUNsb3VkPC9zdHJpbmc+CgkJCTxrZXk+aU9TIFNv -ZnR3YXJlPC9rZXk+CgkJCTxzdHJpbmc+aU9TIOi7n+mrlDwvc3RyaW5nPgoJCQk8 -a2V5PmlUdW5lcyBVPC9rZXk+CgkJCTxzdHJpbmc+aVR1bmVzIFU8L3N0cmluZz4K -CQkJPGtleT5NYWMgU29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5NYWMg6Luf6auU -PC9zdHJpbmc+CgkJCTxrZXk+TW92aWVzPC9rZXk+CgkJCTxzdHJpbmc+5b2x54mH -PC9zdHJpbmc+CgkJCTxrZXk+TXVzaWM8L2tleT4KCQkJPHN0cmluZz7pn7PmqII8 -L3N0cmluZz4KCQkJPGtleT5PdGhlcjwva2V5PgoJCQk8c3RyaW5nPuWFtuS7ljwv -c3RyaW5nPgoJCTwvZGljdD4KCQk8a2V5PnpoLVRXPC9rZXk+CgkJPGRpY3Q+CgkJ -CTxrZXk+QXBwbGUgVFYgU29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5BcHBsZSBU -ViDou5/pq5Q8L3N0cmluZz4KCQkJPGtleT5Cb29rczwva2V5PgoJCQk8c3RyaW5n -PuabuOexjTwvc3RyaW5nPgoJCQk8a2V5PmlDbG91ZDwva2V5PgoJCQk8c3RyaW5n -PmlDbG91ZDwvc3RyaW5nPgoJCQk8a2V5PmlPUyBTb2Z0d2FyZTwva2V5PgoJCQk8 -c3RyaW5nPmlPUyDou5/pq5Q8L3N0cmluZz4KCQkJPGtleT5pVHVuZXMgVTwva2V5 -PgoJCQk8c3RyaW5nPmlUdW5lcyBVPC9zdHJpbmc+CgkJCTxrZXk+TWFjIFNvZnR3 -YXJlPC9rZXk+CgkJCTxzdHJpbmc+TWFjIOi7n+mrlDwvc3RyaW5nPgoJCQk8a2V5 -Pk1vdmllczwva2V5PgoJCQk8c3RyaW5nPuW9seeJhzwvc3RyaW5nPgoJCQk8a2V5 -Pk11c2ljPC9rZXk+CgkJCTxzdHJpbmc+6Z+z5qiCPC9zdHJpbmc+CgkJCTxrZXk+ -T3RoZXI8L2tleT4KCQkJPHN0cmluZz7lhbbku5Y8L3N0cmluZz4KCQk8L2RpY3Q+ -CgkJPGtleT56aC1IYW50PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+QXBwbGUgVFYg -U29mdHdhcmU8L2tleT4KCQkJPHN0cmluZz5BcHBsZSBUViDou5/pq5Q8L3N0cmlu -Zz4KCQkJPGtleT5Cb29rczwva2V5PgoJCQk8c3RyaW5nPuabuOexjTwvc3RyaW5n -PgoJCQk8a2V5PmlDbG91ZDwva2V5PgoJCQk8c3RyaW5nPmlDbG91ZDwvc3RyaW5n -PgoJCQk8a2V5PmlPUyBTb2Z0d2FyZTwva2V5PgoJCQk8c3RyaW5nPmlPUyDou5/p -q5Q8L3N0cmluZz4KCQkJPGtleT5pVHVuZXMgVTwva2V5PgoJCQk8c3RyaW5nPmlU -dW5lcyBVPC9zdHJpbmc+CgkJCTxrZXk+TWFjIFNvZnR3YXJlPC9rZXk+CgkJCTxz -dHJpbmc+TWFjIOi7n+mrlDwvc3RyaW5nPgoJCQk8a2V5Pk1vdmllczwva2V5PgoJ -CQk8c3RyaW5nPuW9seeJhzwvc3RyaW5nPgoJCQk8a2V5Pk11c2ljPC9rZXk+CgkJ -CTxzdHJpbmc+6Z+z5qiCPC9zdHJpbmc+CgkJCTxrZXk+T3RoZXI8L2tleT4KCQkJ -PHN0cmluZz7lhbbku5Y8L3N0cmluZz4KCQk8L2RpY3Q+Cgk8L2RpY3Q+Cgk8a2V5 -PmFzc2V0TmFtZXNwYWNlczwva2V5PgoJPGFycmF5PgoJCTxzdHJpbmc+aWNsb3Vk -PC9zdHJpbmc+Cgk8L2FycmF5PgoJPGtleT5wdXNoVG9waWM8L2tleT4KCTxzdHJp -bmc+Y29tLmFwcGxlLmFzc2V0Y2FjaGU8L3N0cmluZz4KCTxrZXk+aWNsb3VkU2ln -bmF0dXJlSGVhZGVyPC9rZXk+Cgk8c3RyaW5nPlgtQXBwbGUtQ2FjaGUtaUNsb3Vk -PC9zdHJpbmc+Cgk8a2V5PmljbG91ZFNpZ25hdHVyZUtleXM8L2tleT4KCTxhcnJh -eT4KCQk8ZGljdD4KCQkJPGtleT52ZXJzaW9uPC9rZXk+CgkJCTxzdHJpbmc+MTwv -c3RyaW5nPgoJCQk8a2V5PnB1YmxpY0tleXM8L2tleT4KCQkJPGFycmF5PgoJCQkJ -PGRhdGE+TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFZ1hNS3FS -WWc5OU1XMm4yWUQ0Yi9sZnhMcDlUcGkxejYzMXJIZ0h3QkFHQi8vNU9rcEtVcVJ6 -UTRnR2IzQ0g4bXVHMnVjQ1cybTJCQU8rdlUzbDRzSXc9PTwvZGF0YT4KCQkJPC9h -cnJheT4KCQk8L2RpY3Q+Cgk8L2FycmF5Pgo8L2RpY3Q+CjwvcGxpc3Q+CqCCDREw -ggQTMIIC+6ADAgECAghgJU5WgRbP8TANBgkqhkiG9w0BAQsFADBiMQswCQYDVQQG -EwJVUzETMBEGA1UEChMKQXBwbGUgSW5jLjEmMCQGA1UECxMdQXBwbGUgQ2VydGlm -aWNhdGlvbiBBdXRob3JpdHkxFjAUBgNVBAMTDUFwcGxlIFJvb3QgQ0EwHhcNMTIw -OTEzMjIzNTM3WhcNMjcwOTEzMjIzNTM3WjCBhzE7MDkGA1UEAwwyQXBwbGUgU3lz -dGVtIEludGVncmF0aW9uIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxJjAkBgNV -BAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBs -ZSBJbmMuMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAJ5I9o+rG4mlnzRHtjgwp7BipJmEKnRLR1tmNWn+lwFkGJ0K+NczKmTYvANP -zU2AkNLDxdGMwXP2WlBwzeCUNYLEWcq6qZS9iDZ6Mt8IKeCcGRxoAmCH/C6KPDdN -fIG7bG9yRfWzlmZeq5dUUAPAQfy1qPd43kyaZ/RNJ1SeyHXqjHbBtXnjYM6YITh7 -mlPoV2kT8PCGkS6tdblTSjD2bZaOXufppRbntFvn6W5P5zjaUzlgDv3QCxlSXXk6 -XXsNGZFylA4DphTK3Xon7SIh62cBwJhP93iBNPsISLbspNtg052nRmxQphRKMO53 -h2S2srSS/EWzgFm9hZwv0ddZ4w8CAwEAAaOBpjCBozAdBgNVHQ4EFgQUEnV8R5L9 -g+O+LvxZf2dDgTUQRewwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBQr0GlH -lHYJ/vRrjS5ApvdHTX8IXjAuBgNVHR8EJzAlMCOgIaAfhh1odHRwOi8vY3JsLmFw -cGxlLmNvbS9yb290LmNybDAOBgNVHQ8BAf8EBAMCAQYwEAYKKoZIhvdjZAYCCgQC -BQAwDQYJKoZIhvcNAQELBQADggEBAKo9OIqWm8eUlz0+Wx8JQ+EabmpN1ji7im0A -yZPcPqLDKpfBTwegoxRs2QuazbHPfMBndRLuLrAoFxh+cz20BJE5fDf7vTQBoN53 -p1u2R45zOo97Y1jEo20ZTZ2e1j6+GFPpME3Sre9L9qSEzyX86g0zWFEA4kv+dNlH -E56n1zdq6icMbH6Kk+5gEDAb9VkqFE/Yf+ew5j3+cuDIUiEVNxhZ1HxcjVULm/s6 -dQ/2Bim2wn+Nlc5od3Ou3oH6zglysWzO5JSehfjcusRfd+meA5k0jczcn1aY7Sjt -BlaA6lI6lcRkjwzZV73CqY2gOuJsWip72vaBGgMXawwM2r2OIwYwggQ3MIIDH6AD -AgECAggKI1PJkLIDIjANBgkqhkiG9w0BAQsFADCBhzE7MDkGA1UEAwwyQXBwbGUg -U3lzdGVtIEludGVncmF0aW9uIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxJjAk -BgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApB -cHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0xMzA3MTcxOTU3MTlaFw0yMTA3MTUx -OTU3MTlaMF4xHzAdBgNVBAMMFkFwcGxlIFNVIENvbmZpZ3VyYXRpb24xGTAXBgNV -BAsMEFNVIENvbmZpZ3VyYXRpb24xEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNV -BAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArHdoifOOmfS3 -D0nsd9eYiqrhA1apQ9qGrN30RlJHZ5rcgTWUrQmICexnMU+7WRlJ8eWehvnVUe0B -EBp11T+qB9yu79lUcm/CCQe2OA2YD5HKrjCc2t/z+iF/XgYb65HFSf7wrUbiKs0H -krQ4mtHWKv3gfSoNsGXahVNE9hUAIltN+XIiwbw8OeosUxEX4IiJnMYWFtZzWwid -wA8RzpjnNeX3vYhdpeST7U30BeQMmdK9mTBj612GF+ceVusp4NgCZAb1K9G7OdEN -RKCaqJcWopMgxDr/DdyGHz5+eVmbDxdyIWu2ZfIclGfslkRljq1FIXCVOfl0RU8z -pfT0sYi7gwIDAQABo4HOMIHLMD4GCCsGAQUFBwEBBDIwMDAuBggrBgEFBQcwAYYi -aHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hc2kwMTAdBgNVHQ4EFgQUgHSc -hCeCa2GfwsYdwxLrqAqxMAIwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBQSdXxH -kv2D474u/Fl/Z0OBNRBF7DAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAwwCgYI -KwYBBQUHAwMwEwYKKoZIhvdjZAYSAQEB/wQCBQAwDQYJKoZIhvcNAQELBQADggEB -AJIPePTvAOZNA05LxoLuLOk8J7rq9OstKIoMtBV1GaVkkhJifxFljFdekD2fOXM4 -8HYaZHATetjSW1h8i/uy1va/t/6MU2gC0MQViChp70dTtYD4a/tDTQL9lw0t5Gsr -wYPQCnavUie0fQX/cDF9iceLTNFlqgRwnoAl7Uwyq1efcSpXQ7DhPBO3BI579R6d -kGqVAm3w9Fs4FchB9GDesDgfuzjEbl7BBFCluM99++hZySUGd506Nto0ewFsb0XW -cqK9V9YSTZ7E/XLozteHKgCGoKr+zYM/iyxfA6RocSBBUAALQElB4xi6h4JDuXUz -AwdQsUPrn31zw2yN+xkmEccwggS7MIIDo6ADAgECAgECMA0GCSqGSIb3DQEBBQUA -MGIxCzAJBgNVBAYTAlVTMRMwEQYDVQQKEwpBcHBsZSBJbmMuMSYwJAYDVQQLEx1B -cHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEWMBQGA1UEAxMNQXBwbGUgUm9v -dCBDQTAeFw0wNjA0MjUyMTQwMzZaFw0zNTAyMDkyMTQwMzZaMGIxCzAJBgNVBAYT -AlVTMRMwEQYDVQQKEwpBcHBsZSBJbmMuMSYwJAYDVQQLEx1BcHBsZSBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eTEWMBQGA1UEAxMNQXBwbGUgUm9vdCBDQTCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBAOSRqQkfkdseR1DrBe1eeYQt6zaiV0xV -7IsZid75S2z1B6siMALoGD74UAnTf0GomPnRymacJGsR0KO75Bsqwx+VnnoMpEeL -W9QWNzPLxA9NzhRp0ckZcvVdDtV/X5vyJQO6VY9NXQ3xZDUjFUsVWR2zlPf2nJ7P -ULrBWFBnjwi0IPfLrCwgb3C2PwEwjLdDzw+dPfMrSSgayP7OtbkO2V4c1ss9tTqt -9A8OAJILsSEWLnTVPA3bYharo3GSR1NVwa8vQbP4++NwzeajTEV+H0xrUJZBicR0 -YgsQg0GHM4qBsTBY7FoEMoxos48d3mVz/2deZbxJ2HafMxRloXeUyS0CAwEAAaOC -AXowggF2MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW -BBQr0GlHlHYJ/vRrjS5ApvdHTX8IXjAfBgNVHSMEGDAWgBQr0GlHlHYJ/vRrjS5A -pvdHTX8IXjCCAREGA1UdIASCAQgwggEEMIIBAAYJKoZIhvdjZAUBMIHyMCoGCCsG -AQUFBwIBFh5odHRwczovL3d3dy5hcHBsZS5jb20vYXBwbGVjYS8wgcMGCCsGAQUF -BwICMIG2GoGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFy -dHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3Rh -bmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBw -b2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wDQYJ -KoZIhvcNAQEFBQADggEBAFw2mUwteLftjJvc83eb8nbSdzBPwR+Fg4UbmT1HN/Kp -m0COLNSxkBLYvvRzm+7SZA/LeU802KI++Xj/a8gH7H05g4tTINM4xLG/mk8Ka/8r -/FmnBQl8F0BWER5007eLIztHo9VvJOLr0bdw3w9F4SfK8W147ee1Fxeo3H4iNcol -1dkP1mvUoiQjEfehrI9zgWDGG1sJL5Ky+ERI8GA4nhX1PSZnIIozavcNgs/e66Mv -+VNqW2TAYzN39zoHLFbr2g8hDtq6cxlPtdk2f8GHVdmnmbkyQvvY1XGefqFStxu9 -k0IkEirHDx22TZxeY8hLgBdQqorV2uT80AkHN7B1dSExggKlMIICoQIBATCBlDCB -hzE7MDkGA1UEAwwyQXBwbGUgU3lzdGVtIEludGVncmF0aW9uIDIgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUwIICiNTyZCy -AyIwCwYJYIZIAWUDBAIBoIHkMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJ -KoZIhvcNAQkFMQ8XDTE5MDExNDE3MTEwOFowLwYJKoZIhvcNAQkEMSIEIB/+QqKo -Jyfu4lS7yVn8FHatZiD0ZhGCtjTTiHfxKrGoMHkGCSqGSIb3DQEJDzFsMGowCwYJ -YIZIAWUDBAEqMAsGCWCGSAFlAwQBFjALBglghkgBZQMEAQIwCgYIKoZIhvcNAwcw -DgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3 -DQMCAgEoMA0GCSqGSIb3DQEBAQUABIIBAECw0JXXvwnceLt61TkzrBw0GUvl8NEW -jdG8pjNY8eNRCcv1SoQQIoLvvvW9smIoAuRtx2bpOUOjec/o2YfRS5JDk1LiUhW2 -WM1rOYoj0zgHHg/+ONYZ/m39Dvd2alijp5SnrCK9ehnplcSSqEvFs9BJK+tT6kIZ -Ts0IHY3EkGNrWetjVcOUMDYahzkb/NkVglf18vNzjUKV3im7+xrDNgihnYLmQj6w -fjnr0TrNA04Mgb/sBPbPmbZa2amc8WZx45iWT6RUfWK2uZ5WFUstLakSmkW7H4mN -aQ21ygj1RzeB+PE2dT9oFR2vyb45iRiOAS6/sg5mxN+4mD1zOrYppS8= diff --git a/server/config.real.plist b/server/config.real.plist new file mode 100644 index 0000000..95d7cc4 --- /dev/null +++ b/server/config.real.plist @@ -0,0 +1,734 @@ + + + + + certificateURL + https://lcdn-registration.apple.com/resource/cert.cer + establishmentURL + https://lcdn-registration.apple.com/lcdn/session + registrationURL + https://lcdn-registration.apple.com/lcdn/register + deregistrationURL + https://lcdn-registration.apple.com/lcdn/deregister + blackListURL + http://suconfig.apple.com/resource/registration/v1/blacklist.plist + statisticsURL + https://xp-cdn.apple.com/report/2/xp_cdn_receipt + whiteListedHosts + + swcdn.apple.com:80 + validation.isu.apple.com:80 + appldnld.apple.com:80 + oscdn.apple.com:80 + swdist.apple.com:443 + swdownload.apple.com:80 + swdownload.apple.com:443 + audiocontentdownload.apple.com:80 + audiocontentdownload.apple.com:443 + deimos.apple.com:80 + deimos3.apple.com:80 + basejumper.apple.com:80 + basejumper.apple.com:443 + playgrounds-assets-cdn.apple.com:443 + playgrounds-cdn.apple.com:443 + updates.cdn-apple.com:443 + updates-http.cdn-apple.com:80 + sylvan.apple.com:80 + sylvan.apple.com:443 + devimages-cdn.apple.com:80 + devimages-cdn.apple.com:443 + download.developer.apple.com:80 + download.developer.apple.com:443 + + whiteListedDomains + + phobos.apple.com:80 + itunes.apple.com:80 + itunes.apple.com:443 + assets.itunes.com:80 + assets.itunes.com:443 + + assetTypeMap + + + host + + swdist.apple.com + + map + + + type + swdist + + + + + host + + swdownload.apple.com + + map + + + type + swdownload + + + + + host + + swcdn.apple.com + + map + + + type + swcdn + + + + + host + + oscdn.apple.com + + map + + + type + oscdn + + + + + host + + validation.isu.apple.com + + map + + + type + validation + + + + + host + + appldnld.apple.com + + map + + + type + appldnld + + + + + host + + basejumper.apple.com + + map + + + type + basejumper + + + + + host + + playgrounds-assets-cdn.apple.com + playgrounds-cdn.apple.com + + map + + + type + playgrounds + + + + + host + + sylvan.apple.com + + map + + + type + sylvan + + + + + host + + devimages-cdn.apple.com + download.developer.apple.com + + map + + + type + dev + + + + + host + + audiocontentdownload.apple.com + + map + + + type + gbnd + + + + + host + + odr.assets.itunes.com + odr.itunes.apple.com + + map + + + type + odr + + + + + host + + p1-u.itunes.apple.com + p2-u.itunes.apple.com + deimos.apple.com + deimos3.apple.com + itunesu.assets.itunes.com + itunesu.itunes.apple.com + itunesu-assets.itunes.apple.com + + map + + + type + itunesu + + + + + host + + *.phobos.apple.com + *.v.phobos.apple.com + *.assets.itunes.com + books.itunes.apple.com + iosapps.itunes.apple.com + osxapps.itunes.apple.com + + map + + + path + + /*/Purple*/*.zip + /*/Purple*/*.pkg + /*/Purple*/*.ipa + + type + Apps + + + path + + /*/Publication*/* + + type + iBooks + + + path + + /*/Video/*f.m4v + /*/Video/*f.mov + + type + Movies + + + path + + /*/Features/*.m4p + /*/Features/*.m4a + /*/Features/*.mp4 + /*/Music/*.m4p + /*/Music/*.m4a + /*/Music/*.mp4 + + type + Songs + + + path + + /*/Cobalt* + + type + itunesu + + + + + host + + * + + map + + + type + icloud + namespace + + icloud + + path + + n/a + + + + + + mediaTypeMap + + + namespace + + icloud + + path + + n/a + + type + iCloud + + + path + + /*/Cobalt* + /WebObjects/Core.woa/Download* + /WebObjects/Core.woa/Feed* + /WebObjects/Core.woa/Subscription* + + type + iTunes U + + + path + + *.epub + *.ibooks + + type + Books + + + path + + *[aA]pple[tT][vV]* + *tv[oO][sS]* + */Videos/*.[mM][oO][vV] + + type + Apple TV Software + + + path + + *.ipa + *.ipd + *.ipsw + *.assetpack + /ios* + /iOS* + + type + iOS Software + + + path + + *.pkg + *.dmg + + type + Mac Software + + + path + + *.m4v + *.mov + + type + Movies + + + path + + *.m4p + *.m4a + *.mp4 + + type + Music + + + type + Other + + + mediaTypeOrder + + Mac Software + iOS Software + Apple TV Software + iCloud + Books + iTunes U + Movies + Music + Other + + mediaTypeStrings + + de + + Apple TV Software + Apple TV-Software + Books + Bücher + iCloud + iCloud + iOS Software + iOS-Software + iTunes U + iTunes U + Mac Software + Mac-Software + Movies + Filme + Music + Musik + Other + Anderes + + en + + Apple TV Software + Apple TV Software + Books + Books + iCloud + iCloud + iOS Software + iOS Software + iTunes U + iTunes U + Mac Software + Mac Software + Movies + Movies + Music + Music + Other + Other + + es + + Apple TV Software + Software Apple TV + Books + Libros + iCloud + iCloud + iOS Software + Software iOS + iTunes U + iTunes U + Mac Software + Software Mac + Movies + Películas + Music + Música + Other + Otros + + fr + + Apple TV Software + Logiciels Apple TV + Books + Livres + iCloud + iCloud + iOS Software + Logiciels iOS + iTunes U + iTunes U + Mac Software + Logiciels Mac + Movies + Films + Music + Musique + Other + Autres + + it + + Apple TV Software + Software Apple TV + Books + Libri + iCloud + iCloud + iOS Software + Software iOS + iTunes U + iTunes U + Mac Software + Software Mac + Movies + Film + Music + Musica + Other + Altro + + ja + + Apple TV Software + Apple TV ソフトウェア + Books + ブック + iCloud + iCloud + iOS Software + iOS ソフトウェア + iTunes U + iTunes U + Mac Software + Mac ソフトウェア + Movies + ムービー + Music + ミュージック + Other + その他 + + ko + + Apple TV Software + Apple TV 소프트웨어 + Books + + iCloud + iCloud + iOS Software + iOS 소프트웨어 + iTunes U + iTunes U + Mac Software + Mac 소프트웨어 + Movies + 동영상 + Music + 음악 + Other + 기타 + + nl + + Apple TV Software + Apple TV-software + Books + Boeken + iCloud + iCloud + iOS Software + iOS-software + iTunes U + iTunes U + Mac Software + Mac-software + Movies + Films + Music + Muziek + Other + Overig + + zh_CN + + Apple TV Software + Apple TV 软件 + Books + 图书 + iCloud + iCloud + iOS Software + iOS 软件 + iTunes U + iTunes U + Mac Software + Mac 软件 + Movies + 影片 + Music + 音乐 + Other + 其他 + + zh-CN + + Apple TV Software + Apple TV 软件 + Books + 图书 + iCloud + iCloud + iOS Software + iOS 软件 + iTunes U + iTunes U + Mac Software + Mac 软件 + Movies + 影片 + Music + 音乐 + Other + 其他 + + zh-Hans + + Apple TV Software + Apple TV 软件 + Books + 图书 + iCloud + iCloud + iOS Software + iOS 软件 + iTunes U + iTunes U + Mac Software + Mac 软件 + Movies + 影片 + Music + 音乐 + Other + 其他 + + zh_TW + + Apple TV Software + Apple TV 軟體 + Books + 書籍 + iCloud + iCloud + iOS Software + iOS 軟體 + iTunes U + iTunes U + Mac Software + Mac 軟體 + Movies + 影片 + Music + 音樂 + Other + 其他 + + zh-TW + + Apple TV Software + Apple TV 軟體 + Books + 書籍 + iCloud + iCloud + iOS Software + iOS 軟體 + iTunes U + iTunes U + Mac Software + Mac 軟體 + Movies + 影片 + Music + 音樂 + Other + 其他 + + zh-Hant + + Apple TV Software + Apple TV 軟體 + Books + 書籍 + iCloud + iCloud + iOS Software + iOS 軟體 + iTunes U + iTunes U + Mac Software + Mac 軟體 + Movies + 影片 + Music + 音樂 + Other + 其他 + + + assetNamespaces + + icloud + + pushTopic + com.apple.assetcache + icloudSignatureHeader + X-Apple-Cache-iCloud + icloudSignatureKeys + + + version + 1 + publicKeys + + MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgXMKqRYg99MW2n2YD4b/lfxLp9Tpi1z631rHgHwBAGB//5OkpKUqRzQ4gGb3CH8muG2ucCW2m2BAO+vU3l4sIw== + + + + + diff --git a/server/download-config.dart b/server/download-config.dart index d2125fe..6464e13 100644 --- a/server/download-config.dart +++ b/server/download-config.dart @@ -1,4 +1,3 @@ - import 'dart:async'; import 'dart:convert'; import 'dart:io'; @@ -7,9 +6,11 @@ Future main(List args) async { var client = new HttpClient(); var request = await client.getUrl(Uri.parse("http://suconfig.apple.com/resource/registration/v1/config.plist")); var response = await request.close(); - var signedXmlBase64 = await utf8.decodeStream(response); - var begin = signedXmlBase64.substring(85); - print(begin); + var signedXmlBase64 = (await utf8.decodeStream(response)).replaceAll("\n", ""); + var signedXmlContent = base64.decode(signedXmlBase64); + var xmlBytes = signedXmlContent.sublist(64); + var xml = const Utf8Decoder(allowMalformed: true).convert(xmlBytes); + xml = xml.substring(0, xml.lastIndexOf("") + 8); + print(xml); client.close(); } -