Fix problem with cache URL examples.

This commit is contained in:
Kenneth Endfinger
2019-10-12 05:22:22 -05:00
parent a6a7b443f1
commit 5fea4ca203
6 changed files with 474 additions and 13 deletions

View File

@@ -4,16 +4,13 @@ import 'dart:io';
Future<void> main(List<String> args) async {
var client = new HttpClient();
var request = await client.postUrl(Uri.parse("https://lcdn-locator.apple.com/lcdn/locate"));
var request = await client
.postUrl(Uri.parse("https://lcdn-locator.apple.com/lcdn/locate"));
request.writeln(json.encode({
"ranked-results": true,
"locator-tag": "#f5cfd4d0",
"local-addresses": [
args[0]
],
"public-address-ranges": [
[]
],
"local-addresses": [args[0]],
"public-address-ranges": [[]],
"locator-software": [
{
"build": "19A578c",

View File

@@ -57,7 +57,7 @@ A few things to note, the path of the request seems to be the path of the asset
```text
Cache URL: http://10.0.0.60:54439/2019FallSeed/mobileassets/061-28461/73D248DA-E92B-11E9-87BD-36A73FE00C7B/com_apple_MobileAsset_SoftwareUpdateDocumentation/a080e3173e75180afa7ea1a15f469ed839f60260.zip?source=updates-http.cdn-apple.com
Source URL: http://updates-http.cdn-apple.com:443/2019FallSeed/mobileassets/061-28461/73D248DA-E92B-11E9-87BD-36A73FE00C7B/com_apple_MobileAsset_SoftwareUpdateDocumentation/a080e3173e75180afa7ea1a15f469ed839f60260.zip
Source URL: http://updates-http.cdn-apple.com/2019FallSeed/mobileassets/061-28461/73D248DA-E92B-11E9-87BD-36A73FE00C7B/com_apple_MobileAsset_SoftwareUpdateDocumentation/a080e3173e75180afa7ea1a15f469ed839f60260.zip
```
The cache server should then download the URL if it is not in the cache, and stream the results while downloading.

View File

@@ -2,8 +2,9 @@ void main(List<String> args) {
var cacheServerUrl = Uri.parse(args[0]);
var sourceDataUrl = Uri.parse(args[1]);
var url = cacheServerUrl.replace(path: sourceDataUrl.path, queryParameters: {
"source": sourceDataUrl.host
}..addAll(sourceDataUrl.queryParameters));
var url = cacheServerUrl.replace(
path: sourceDataUrl.path,
queryParameters: {"source": sourceDataUrl.host}
..addAll(sourceDataUrl.queryParameters));
print(url);
}

View File

@@ -2,10 +2,15 @@ void main(List<String> args) {
var cacheServerUrl = Uri.parse(args[0]);
var sourceHost = cacheServerUrl.queryParameters["source"];
var newUrlParams = new Map<String, String>.from(cacheServerUrl.queryParameters);
var newUrlParams =
new Map<String, String>.from(cacheServerUrl.queryParameters);
newUrlParams.remove("source");
var url = cacheServerUrl.replace(scheme: "http", port: 443, host: sourceHost, queryParameters: newUrlParams);
var url = cacheServerUrl.replace(
scheme: "http",
port: 80,
host: sourceHost,
queryParameters: newUrlParams);
var urlString = url.toString();
if (urlString.endsWith("?")) {
urlString = urlString.substring(0, urlString.length - 1);

443
server/config.plist Normal file
View File

@@ -0,0 +1,443 @@
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=

View File

@@ -0,0 +1,15 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
Future<void> main(List<String> 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);
client.close();
}