ZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9SRUFETUUgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvUkVBRE1FCmluZGV4IDBmN2NjOWIuLjk3ZDBlOTQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9SRUFETUUKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL1JFQURNRQpAQCAtMTAsNjYgKzEwLDMxIEBACiBUaGlzIGxheWVyIGRlcGVuZHMgb246CiAKICAgVVJJOiBnaXQ6Ly9naXQub3BlbmVtYmVkZGVkLm9yZy9iaXRiYWtlCi0gIGJyYW5jaDogMS4zNgorICBicmFuY2g6IG1hc3RlcgogCiAgIFVSSTogZ2l0Oi8vZ2l0Lm9wZW5lbWJlZGRlZC5vcmcvb3BlbmVtYmVkZGVkLWNvcmUKICAgbGF5ZXJzOiBtZXRhCi0gIGJyYW5jaDogcm9ja28KKyAgYnJhbmNoOiBtYXN0ZXIKIAogICBVUkk6IGdpdDovL2dpdC5vcGVuZW1iZWRkZWQub3JnL21ldGEtb3BlbmVtYmVkZGVkCiAgIGxheWVyczogbWV0YS1vZQotICBicmFuY2g6IHJvY2tvCisgIGJyYW5jaDogbWFzdGVyCiAKIFBhdGNoZXMKID09PT09PT0KIAogUGxlYXNlIHN1Ym1pdCBhbnkgcGF0Y2hlcyBhZ2FpbnN0IHRoZSBmaWxlc3lzdGVtcyBsYXllciB0byB0aGUKIE9wZW5FbWJlZGRlZCBkZXZlbG9wbWVudCBtYWlsaW5nIGxpc3QgKG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnKQotd2l0aCAnW21ldGEtZmlsZXN5c3RlbXNdW3JvY2tvXScgaW4gdGhlIHN1YmplY3QuCit3aXRoICdbbWV0YS1maWxlc3lzdGVtc10nIGluIHRoZSBzdWJqZWN0LgogCi1NYWludGFpbmVycyBMaXN0OgotICBwaHlzZnMgICAgICBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci0KLSAgZnVzZSAgICAgICAgS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KLSAgICAgICAgICAgICAgUGhpbGlwIEJhbGlzdGVyIDxwaGlsaXBAYmFsaXN0ZXIub3JnPgotICAgICAgICAgICAgICBob25neHUgamlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+Ci0KLSAgaWZ1c2UgICAgICAgU2FuZGVyIHZhbiBHcmlla2VuIDxzYW5kZXJAb3V0cmlnaHRzb2x1dGlvbnMubmw+Ci0gICAgICAgICAgICAgIEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+Ci0KLSAgc3NoZnMtZnVzZSAgUGhpbGlwIEJhbGlzdGVyIDxwaGlsaXBAYmFsaXN0ZXIub3JnPgotICAgICAgICAgICAgICBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgotCi0gIG93ZnMgICAgICAgIE90YXZpbyBTYWx2YWRvciA8b3RhdmlvQG9zc3lzdGVtcy5jb20uYnI+Ci0gICAgICAgICAgICAgIEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+Ci0gICAgICAgICAgICAgIGhvbmd4dSBqaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KLQotICBudGZzLTNnLW50ZnNwcm9ncyAgT3RhdmlvIFNhbHZhZG9yIDxvdGF2aW9Ab3NzeXN0ZW1zLmNvbS5icj4KLSAgICAgICAgICAgICAgICAgICAgIGhvbmd4dSBqaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KLQotICBjcmFtZnMgICAgICBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgotCi0gIHNtYm5ldGZzICAgIFNhbmRlciB2YW4gR3JpZWtlbiA8c2FuZGVyQG91dHJpZ2h0c29sdXRpb25zLm5sPgotICAgICAgICAgICAgICBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgotCi0gIGZ1c2UtZXhmYXQgIGhvbmd4dSBqaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KLQotICBleGZhdC11dGlscyBob25neHUgamlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+Ci0KLSAgZjJmcy10b29scyAgTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgotICAgICAgICAgICAgICBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgotCi0gIHhmc3Byb2dzICAgIEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+Ci0gICAgICAgICAgICAgIGhvbmd4dSBqaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KK0xheWVyIG1haW50YWluZXI6IEFybWluIEt1c3RlciA8YWt1c3RlcjgwOEBnbWFpbC5jb20+CiAKIFdoZW4gc2VuZGluZyBzaW5nbGUgcGF0Y2hlcywgcGxlYXNlIHVzZSBzb21ldGhpbmcgbGlrZToKIAogICAgZ2l0IHNlbmQtZW1haWwgLTEgLU0gXAogICAgICAgICAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIFwKLSAgICAgICAgLS1zdWJqZWN0LXByZWZpeD1tZXRhLWZpbGVzeXN0ZW1zXVtyb2Nrb11bUEFUQ0gKKyAgICAgICAgLS1zdWJqZWN0LXByZWZpeD1tZXRhLWZpbGVzeXN0ZW1zXVtQQVRDSAogCi1yb2NrbyBCcmFuY2ggTWFpbnRhaW5lcjoKLUFybWluIEt1c3RlciA8YWt1c3RlcjgwOEBnbWFpbC5jb20+CiAKIFRhYmxlIG9mIENvbnRlbnRzCiA9PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL2NvbmYvbGF5ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9jb25mL2xheWVyLmNvbmYKaW5kZXggOWVkNmQxYi4uZGJjZmY0MiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL2NvbmYvbGF5ZXIuY29uZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvY29uZi9sYXllci5jb25mCkBAIC0xNCwzICsxNCw1IEBACiBMQVlFUlZFUlNJT05fZmlsZXN5c3RlbXMtbGF5ZXIgPSAiMSIKIAogTEFZRVJERVBFTkRTX2ZpbGVzeXN0ZW1zLWxheWVyID0gImNvcmUgb3BlbmVtYmVkZGVkLWxheWVyIgorCitMQVlFUlNFUklFU19DT01QQVRfZmlsZXN5c3RlbXMtbGF5ZXIgPSAic3VtbyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLWZpbGVzeXN0ZW1zL3NtYm5ldGZzL3NtYm5ldGZzL1VzaW5nLVBLR19DSEVDS19NT0RVTEVTLXRvLWZvdW5kLWhlYWRlcnMtYW5kLWxpYnJhcmllcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLWZpbGVzeXN0ZW1zL3NtYm5ldGZzL3NtYm5ldGZzL1VzaW5nLVBLR19DSEVDS19NT0RVTEVTLXRvLWZvdW5kLWhlYWRlcnMtYW5kLWxpYnJhcmllcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDYwYzlkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtZmlsZXN5c3RlbXMvc21ibmV0ZnMvc21ibmV0ZnMvVXNpbmctUEtHX0NIRUNLX01PRFVMRVMtdG8tZm91bmQtaGVhZGVycy1hbmQtbGlicmFyaWVzLnBhdGNoCkBAIC0wLDAgKzEsNDIgQEAKK0Zyb20gN2E1MjRkNDliM2Q0NDU5MjgwZjE4OTQyZGYyOTgwNjAzNDAwZWM1MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEJpYW4gTmFpbWVuZyA8Ymlhbm5tQGNuLmZ1aml0c3UuY29tPgorRGF0ZTogRnJpLCAxOSBKdW4gMjAxNSAxMTo1NDo0NCArMDkwMAorU3ViamVjdDogW1BBVENIXSBVc2luZyBQS0dfQ0hFQ0tfTU9EVUxFUyB0byBmb3VuZCBoZWFkZXJzIGFuZCBsaWJyYXJpZXMgb2YKKyBzbWJjbGllbnQKKworU2lnbmVkLW9mZi1ieTogQmlhbiBOYWltZW5nIDxiaWFubm1AY24uZnVqaXRzdS5jb20+CistLS0KKyBjb25maWd1cmUuaW4gICAgfCA1ICsrKysrCisgc3JjL01ha2VmaWxlLmFtIHwgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCA0YzAzNDA5Li44ZDIyZTcxIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0xMTksNiArMTE5LDExIEBAIEFDX0NIRUNLX0xJQihzbWJjbGllbnQsIHNtYmNfc2V0T3B0aW9uVXNlQ0NhY2hlLCBbXSwgWworIExJQlM9IiRMSUJTICRTTUJDTElFTlRfTElCUyIKKyBDRkxBR1M9IiRDRkxBR1MgJFNNQkNMSUVOVF9DRkxBR1MiCisgCisrZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrZG5sICoqKiBDaGVjayBsaWJzbWJjbGllbnQgYnkgcGtnY29uZmlnIHRvIGdldCBjZmxhZ3MgYW5kIGxkZmxhZ3MgKioqCisrZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrUEtHX0NIRUNLX01PRFVMRVMoU01CQ0xJRU5ULCBzbWJjbGllbnQpCisrCisgZG5sICoqKioqKioqKioqKioqKioqKgorIGRubCAqKiogRmluYWwgc3RlcCAqKioKKyBkbmwgKioqKioqKioqKioqKioqKioqCitkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlLmFtIGIvc3JjL01ha2VmaWxlLmFtCitpbmRleCBjY2FhOGMzLi42NTk4MzE3IDEwMDY0NAorLS0tIGEvc3JjL01ha2VmaWxlLmFtCisrKysgYi9zcmMvTWFrZWZpbGUuYW0KK0BAIC0xNywzICsxNyw2IEBAIHNtYm5ldGZzX1NPVVJDRVMgPSBcCisgCWV2ZW50LmMJCQlldmVudC5oCQkJXAorIAlyZWNvbmZpZ3VyZS5jCQlyZWNvbmZpZ3VyZS5oCQlcCisgCW1haW4uYworKworK3NtYm5ldGZzX0NGTEFHUz0ke1NNQkNMSUVOVF9DRkxBR1N9Cisrc21ibmV0ZnNfTERGTEFHUz0ke1NNQkNMSUVOVF9MREZMQUdTfQorLS0gCisxLjguNC4yCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLWZpbGVzeXN0ZW1zL3NtYm5ldGZzL3NtYm5ldGZzL2NvbmZpZ3VyZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLWZpbGVzeXN0ZW1zL3NtYm5ldGZzL3NtYm5ldGZzL2NvbmZpZ3VyZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTI3NTY2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtZmlsZXN5c3RlbXMvc21ibmV0ZnMvc21ibmV0ZnMvY29uZmlndXJlLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKK0luZGV4OiBnaXQvY29uZmlndXJlLmluCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2l0Lm9yaWcvY29uZmlndXJlLmFjCTIwMTQtMDYtMTggMTY6MDY6MTYuMDQwNzIxMzQ5ICswMDAwCisrKysgZ2l0L2NvbmZpZ3VyZS5hYwkyMDE0LTA3LTE4IDA3OjQ5OjE3LjA4NTU1MjI1NiArMDAwMAorQEAgLTEsNSArMSw1IEBACisgQUNfSU5JVChbU01CTmV0RlNdLFswLjYuMV0pCistQU1fSU5JVF9BVVRPTUFLRQorK0FNX0lOSVRfQVVUT01BS0UoW2ZvcmVpZ25dKQorIEFDX0NPTkZJR19IRUFERVJTKFtzcmMvY29uZmlnLmhdKQorIEFDX1BST0dfQ0MKKyAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLWZpbGVzeXN0ZW1zL3NtYm5ldGZzL3NtYm5ldGZzX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLWZpbGVzeXN0ZW1zL3NtYm5ldGZzL3NtYm5ldGZzX2dpdC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzI5MzZjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtZmlsZXN5c3RlbXMvc21ibmV0ZnMvc21ibmV0ZnNfZ2l0LmJiCkBAIC0wLDAgKzEsMzMgQEAKK1NVTU1BUlkgPSAiRlVTRSBtb2R1bGUgZm9yIG1vdW50aW5nIGFuIGVudGlyZSBTTUIvTk1CIG5ldHdvcmsgaW4gYSBzaW5nbGUgZGlyZWN0b3J5IgorREVTQ1JJUFRJT04gPSAiU01CTmV0RlMgaXMgYSBMaW51eC9GcmVlQlNEIGZpbGVzeXN0ZW0gdGhhdCBhbGxvdyB5b3UgdG8gdXNlIFwKKyAgICAgICAgICAgICAgIHNhbWJhL21pY3Jvc29mdCBuZXR3b3JrIGluIHRoZSBzYW1lIG1hbm5lciBhcyB0aGUgbmV0d29yayBcCisgICAgICAgICAgICAgICBuZWlnaGJvcmhvb2QgaW4gTWljcm9zb2Z0IFdpbmRvd3MuIFBsZWFzZSBkb25hdGUgbWUgdG8gaGVscCBcCisgICAgICAgICAgICAgICBpbiBTTUJOZXRGUyBkZXZlbG9wbWVudC4iCisKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1lYjcyM2I2MTUzOWZlZWYwMTNkZTQ3NmU2OGI1YzUwYSIKK0hPTUVQQUdFID0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9zbWJuZXRmcyIKKworREVQRU5EUyA9ICJmdXNlIHNhbWJhIgorREVQRU5EU19hcHBlbmRfbGliYy1tdXNsID0gIiBsaWJleGVjaW5mbyIKKworIyBzYW1iYSBkZXBlbmRzIG9uIGxpYnBhbQoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJwYW0iCisKK2luaGVyaXQgYXV0b3Rvb2xzIGdpdHBrZ3YgcGtnY29uZmlnCisKK1BLR1YgPSAiJHtHSVRQS0dWVEFHfSIKKworU1JDUkVWID0gImJjNmI5NGIwMTVmZGFmN2M0ZGFiNTZjY2I5OTZlZWNlYThiYzQzNzMiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vc21ibmV0ZnMuZ2l0LnNvdXJjZWZvcmdlLm5ldC9naXRyb290L3NtYm5ldGZzL3NtYm5ldGZzO2JyYW5jaD1tYXN0ZXIgXAorICAgICAgICAgICBmaWxlOi8vY29uZmlndXJlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL1VzaW5nLVBLR19DSEVDS19NT0RVTEVTLXRvLWZvdW5kLWhlYWRlcnMtYW5kLWxpYnJhcmllcy5wYXRjaCIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiIKK1BBQ0tBR0VDT05GSUdbbGlic2VjcmV0XSA9ICItLXdpdGgtbGlic2VjcmV0PXllcywtLXdpdGgtbGlic2VjcmV0PW5vLGxpYnNlY3JldCIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworTERGTEFHU19hcHBlbmRfbGliYy1tdXNsID0gIiAtbGV4ZWNpbmZvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMvYXVmcy11dGlsL2F1ZnMtdXRpbC8wMDAxLWxpYmF1LURlZmluZS1TVFJJUC13ZWFrbHkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy9hdWZzLXV0aWwvYXVmcy11dGlsLzAwMDEtbGliYXUtRGVmaW5lLVNUUklQLXdlYWtseS5wYXRjaAppbmRleCA5ZWZlYTgwLi42NzMyZGM0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy9hdWZzLXV0aWwvYXVmcy11dGlsLzAwMDEtbGliYXUtRGVmaW5lLVNUUklQLXdlYWtseS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy9hdWZzLXV0aWwvYXVmcy11dGlsLzAwMDEtbGliYXUtRGVmaW5lLVNUUklQLXdlYWtseS5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gYmI4ODAxZmIyMWFjOGQ3M2UzYjFhMTFhODU1NWFhZjgyMjE4MmE1MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZGFmMDRkYzljYTFmMmU0YzY1ZWMzMzhhYjQzOWUwYTc5MmUxYThhYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBUdWUsIDUgU2VwIDIwMTcgMTA6MzY6NTIgLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gbGliYXU6IERlZmluZSBTVFJJUCB3ZWFrbHkKQEAgLTYsMTAgKzYsMTEgQEAKIFNUUklQIGNhbiBiZSBzZXQgb24gZW52aXJvbm1lbnQgdG8gdXNlIGNyb3NzIHZlcnNpb24gb2Ygc3RyaXAgdXRpbGl0eQogaGFyZGNvZGluZyB0byBzdHJpcCBpcyBub3Qgd29ya2luZyBpbiBjcm9zcyBlbnZpcm9ubWVudAogCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCiBVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZAogCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCistLS0KICBsaWJhdS9NYWtlZmlsZSB8IDMgKystCiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogCkBAIC0zNCw2ICszNSwzIEBACiAgIwlyZWFkZWxmIC0tc3ltcyAtLXVzZS1keW5hbWljIGxpYmF1LnNvCiAgCiAgaW5zdGFsbF91bGliOiBGaWxlID0gJHtMaWJTb30uJHtMaWJTb01ham9yfS4ke0xpYlNvTWlub3J9Ci0tLSAKLTIuMTQuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy9hdWZzLXV0aWwvYXVmcy11dGlsL2F1ZnMtdXRpbC1hZGQtdG9vbC1jb25jZXB0LXRvLU1ha2VmaWxlLWZvci1jcm9zcy1jb20ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy9hdWZzLXV0aWwvYXVmcy11dGlsL2F1ZnMtdXRpbC1hZGQtdG9vbC1jb25jZXB0LXRvLU1ha2VmaWxlLWZvci1jcm9zcy1jb20ucGF0Y2gKaW5kZXggNWMzNTU4Ni4uYzgzMjY5NiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMvYXVmcy11dGlsL2F1ZnMtdXRpbC9hdWZzLXV0aWwtYWRkLXRvb2wtY29uY2VwdC10by1NYWtlZmlsZS1mb3ItY3Jvc3MtY29tLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL2F1ZnMtdXRpbC9hdWZzLXV0aWwvYXVmcy11dGlsLWFkZC10b29sLWNvbmNlcHQtdG8tTWFrZWZpbGUtZm9yLWNyb3NzLWNvbS5wYXRjaApAQCAtMSwzICsxLDYgQEAKK0Zyb20gMTNhNjBjNjMxZDdjZjZjN2UxOTI2NDczZDgwNjk3OTVjMGRlZjliNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IENoZW4gUWkgPFFpLkNoZW5Ad2luZHJpdmVyLmNvbT4KK0RhdGU6IFRodSwgMTkgSnVuIDIwMTQgMTU6MDk6NTYgKzAxMDAKIFN1YmplY3Q6IFtQQVRDSF0gYXVmcy11dGlsOiBhZGQgdG9vbCBjb25jZXB0IHRvIE1ha2VmaWxlIGZvciBjcm9zcyBjb21waWxpbmcKICBwdXJwb3NlCiAKQEAgLTcsMjMgKzEwLDIxIEBACiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAogU2lnbmVkLW9mZi1ieTogQ2hlbiBRaSA8UWkuQ2hlbkB3aW5kcml2ZXIuY29tPgorCiAtLS0KLSBNYWtlZmlsZSB8ICAgIDIgKy0KKyBNYWtlZmlsZSB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKLWluZGV4IDJmOTA1YWQuLjQ5YzNjZDUgMTAwNjQ0CitpbmRleCBkYmJlNDNkLi5hZmY5NjllIDEwMDY0NAogLS0tIGEvTWFrZWZpbGUKICsrKyBiL01ha2VmaWxlCi1AQCAtODUsNyArODUsNyBAQCBhdWZzLjU6IGF1ZnMuaW4uNSBjMnRtYWMKK0BAIC0xNTIsNyArMTUyLDcgQEAgYXVmcy41OiBhdWZzLmluLjUgYzJ0bWFjCiAgCWNobW9kIGEtdyAkQAogIAogIGMyc2ggYzJ0bWFjIHZlcjogQ0MgPSAke0hPU1RDQ30KIC0uSU5URVJNRURJQVRFOiBjMnNoIGMydG1hYyB2ZXIKICt0b29sczogYzJzaCBjMnRtYWMgdmVyCiAgCi0gSW5zdGFsbCA9IGluc3RhbGwgLW8gcm9vdCAtZyByb290IC1wCi0gaW5zdGFsbF9zYmluOiBGaWxlID0gYXVpYnVzeSBhdXBsaW5rIG1vdW50LmF1ZnMgdW1vdW50LmF1ZnMKLS0tIAotMS43LjkuNQotCisgaW5zdGFsbF9zYmluOiBGaWxlID0gYXVpYnVzeSBhdW12ZG93biBhdXBsaW5rIG1vdW50LmF1ZnMgdW1vdW50LmF1ZnMKKyBpZmVxICgke0dsaWJjfSxubykKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL2F1ZnMtdXRpbC9hdWZzLXV0aWwvYXVmcy11dGlsLWRvbi10LXN0cmlwLWV4ZWN1dGFibGVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMvYXVmcy11dGlsL2F1ZnMtdXRpbC9hdWZzLXV0aWwtZG9uLXQtc3RyaXAtZXhlY3V0YWJsZXMucGF0Y2gKaW5kZXggZmUyYTZhNS4uYjQwODIyYyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMvYXVmcy11dGlsL2F1ZnMtdXRpbC9hdWZzLXV0aWwtZG9uLXQtc3RyaXAtZXhlY3V0YWJsZXMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMvYXVmcy11dGlsL2F1ZnMtdXRpbC9hdWZzLXV0aWwtZG9uLXQtc3RyaXAtZXhlY3V0YWJsZXMucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDI0NDg2M2VjYTc3ZmNhYTExODc4ODQ4MzZjM2UyOGQ2YjZkMTUwNGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDlkNWU3ZWZmNGFlOTA2ZjFlYTZlNjUyNzA4MGZkZWQwYjU5NWZiZDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBCcnVjZSBBc2hmaWVsZCA8YnJ1Y2UuYXNoZmllbGRAd2luZHJpdmVyLmNvbT4KIERhdGU6IFR1ZSwgOSBBcHIgMjAxMyAxODo1MDozNCAtMDcwMAogU3ViamVjdDogW1BBVENIXSBhdWZzLXV0aWw6IGRvbid0IHN0cmlwIGV4ZWN1dGFibGVzCkBAIC0xNCwxNiArMTQsMTkgQEAKIAogVG8gcHJldmVudCB0aGlzLCB3ZSByZW1vdmUgLXMgZnJvbSBMREZMQUdTLgogCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW29lIHNwZWNpZmljXQorCiBTaWduZWQtb2ZmLWJ5OiBCcnVjZSBBc2hmaWVsZCA8YnJ1Y2UuYXNoZmllbGRAd2luZHJpdmVyLmNvbT4KKwogLS0tCi0gTWFrZWZpbGUgfCAgICAyICstCisgTWFrZWZpbGUgfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCi1pbmRleCAyZjkwNWFkLi5lMGM2ZGNkIDEwMDY0NAoraW5kZXggNTRmOGQ5Ny4uZGJiZTQzZCAxMDA2NDQKIC0tLSBhL01ha2VmaWxlCiArKysgYi9NYWtlZmlsZQotQEAgLTU2LDcgKzU2LDcgQEAgYWxsOiB2ZXJfdGVzdCAke01hbn0gJHtCaW59ICR7RXRjfQorQEAgLTExOCw3ICsxMTgsNyBAQCBjbGVhbjoKICB2ZXJfdGVzdDogdmVyCiAgCS4vdmVyCiAgCkBAIC0zMiw2ICszNSwzIEBACiAgJHtCaW59OiBMRExJQlMgPSAtTC4gLWxhdXRpbAogICR7QmluT2JqfTogJS5vOiAlLmMgJHtMaWJVdGlsSGRyfSAke0xpYlV0aWx9CiAgCi0tLSAKLTEuNy4xMC40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL3hmc2R1bXAveGZzZHVtcF8zLjEuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL3hmc2R1bXAveGZzZHVtcF8zLjEuNy5iYgppbmRleCAwYWM5OTFiLi4zOWYxMTg5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNkdW1wL3hmc2R1bXBfMy4xLjcuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzZHVtcC94ZnNkdW1wXzMuMS43LmJiCkBAIC0zNCw2ICszNCw4IEBACiAKIGRvX2NvbmZpZ3VyZSAoKSB7CiAgICAgZXhwb3J0IERFQlVHPSItRE5ERUJVRyIKKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtTVEFHSU5HX0RBVEFESVJfTkFUSVZFfS9nbnUtY29uZmlnL2NvbmZpZy5ndWVzcyAke1N9CisgICAgaW5zdGFsbCAtbSAwNzU1ICR7U1RBR0lOR19EQVRBRElSX05BVElWRX0vZ251LWNvbmZpZy9jb25maWcuc3ViICR7U30KICAgICBvZV9ydW5jb25mCiB9CiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL3hmc3Byb2dzL2ZpbGVzLzAwMDEtYnVpbGQtQ2hlY2stZm9yLXN5bmNfZmlsZV9yYW5nZS1saWJjLWZ1bmN0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMvMDAwMS1idWlsZC1DaGVjay1mb3Itc3luY19maWxlX3JhbmdlLWxpYmMtZnVuY3Rpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhmZjU1NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL3hmc3Byb2dzL2ZpbGVzLzAwMDEtYnVpbGQtQ2hlY2stZm9yLXN5bmNfZmlsZV9yYW5nZS1saWJjLWZ1bmN0aW9uLnBhdGNoCkBAIC0wLDAgKzEsODIgQEAKK0Zyb20gYWU3MTcyMTk0ZDNmYmI1NjNmZjhiYmU3YzAyZDM0ZjFiZDBlNWVjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBXZWQsIDMxIEphbiAyMDE4IDIxOjI4OjUzIC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIGJ1aWxkOiBDaGVjayBmb3Igc3luY19maWxlX3JhbmdlIGxpYmMgZnVuY3Rpb24KKworZ2xpYmMgMi4yNyBub3cgaGFzIHN5bmNfZmlsZV9yYW5nZSgpCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CistLS0KK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCisgaW5jbHVkZS9idWlsZGRlZnMuaW4gfCAxICsKKyBpby9NYWtlZmlsZSAgICAgICAgICB8IDUgKysrKy0KKyBpby9pby5oICAgICAgICAgICAgICB8IDIgKy0KKyBpby9zeW5jX2ZpbGVfcmFuZ2UuYyB8IDMgKysrCisgNCBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2J1aWxkZGVmcy5pbiBiL2luY2x1ZGUvYnVpbGRkZWZzLmluCitpbmRleCA5MmQ1MDc2Li41MDQyMjVhIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9idWlsZGRlZnMuaW4KKysrKyBiL2luY2x1ZGUvYnVpbGRkZWZzLmluCitAQCAtMTA1LDYgKzEwNSw3IEBAIEhBVkVfRklFTUFQID0gQGhhdmVfZmllbWFwQAorIEhBVkVfUFJFQURWID0gQGhhdmVfcHJlYWR2QAorIEhBVkVfUFdSSVRFVjIgPSBAaGF2ZV9wd3JpdGV2MkAKKyBIQVZFX0NPUFlfRklMRV9SQU5HRSA9IEBoYXZlX2NvcHlfZmlsZV9yYW5nZUAKKytIQVZFX05SX0NPUFlfRklMRV9SQU5HRSA9IEBoYXZlX25yX2NvcHlfZmlsZV9yYW5nZUAKKyBIQVZFX1NZTkNfRklMRV9SQU5HRSA9IEBoYXZlX3N5bmNfZmlsZV9yYW5nZUAKKyBIQVZFX1NZTkNGUyA9IEBoYXZlX3N5bmNmc0AKKyBIQVZFX1JFQURESVIgPSBAaGF2ZV9yZWFkZGlyQAorZGlmZiAtLWdpdCBhL2lvL01ha2VmaWxlIGIvaW8vTWFrZWZpbGUKK2luZGV4IDY3MjU5MzYuLjE4NzZlOTUgMTAwNjQ0CistLS0gYS9pby9NYWtlZmlsZQorKysrIGIvaW8vTWFrZWZpbGUKK0BAIC01OSwxMCArNTksMTMgQEAgQ0ZJTEVTICs9IGluamVjdC5jIHJlc2Jsa3MuYworIExDRkxBR1MgKz0gLURIQVZFX0lOSkVDVCAtREhBVkVfUkVTQkxLUworIGVuZGlmCisgCistaWZlcSAoJChIQVZFX0NPUFlfRklMRV9SQU5HRSkseWVzKQorK2lmZXEgKCQoSEFWRV9OUl9DT1BZX0ZJTEVfUkFOR0UpLHllcykKKyBDRklMRVMgKz0gY29weV9maWxlX3JhbmdlLmMKKytMQ0ZMQUdTICs9IC1ESEFWRV9OUl9DT1BZX0ZJTEVfUkFOR0UKKytpZmVxICgkKEhBVkVfQ09QWV9GSUxFX1JBTkdFKSx5ZXMpCisgTENGTEFHUyArPSAtREhBVkVfQ09QWV9GSUxFX1JBTkdFCisgZW5kaWYKKytlbmRpZgorIAorIGlmZXEgKCQoSEFWRV9TWU5DX0ZJTEVfUkFOR0UpLHllcykKKyBDRklMRVMgKz0gc3luY19maWxlX3JhbmdlLmMKK2RpZmYgLS1naXQgYS9pby9pby5oIGIvaW8vaW8uaAoraW5kZXggMzg2Mjk4NS4uNzlkZGM3YiAxMDA2NDQKKy0tLSBhL2lvL2lvLmgKKysrKyBiL2lvL2lvLmgKK0BAIC0xNTgsNyArMTU4LDcgQEAgZXh0ZXJuIHZvaWQJCWZpZW1hcF9pbml0KHZvaWQpOworICNkZWZpbmUgZmllbWFwX2luaXQoKQlkbyB7IH0gd2hpbGUgKDApCisgI2VuZGlmCisgCistI2lmZGVmIEhBVkVfQ09QWV9GSUxFX1JBTkdFCisrI2lmIGRlZmluZWQoSEFWRV9OUl9DT1BZX0ZJTEVfUkFOR0UpICYmICFkZWZpbmVkKEhBVkVfQ09QWV9GSUxFX1JBTkdFKQorIGV4dGVybiB2b2lkCQljb3B5X3JhbmdlX2luaXQodm9pZCk7CisgI2Vsc2UKKyAjZGVmaW5lIGNvcHlfcmFuZ2VfaW5pdCgpCWRvIHsgfSB3aGlsZSAoMCkKK2RpZmYgLS1naXQgYS9pby9zeW5jX2ZpbGVfcmFuZ2UuYyBiL2lvL3N5bmNfZmlsZV9yYW5nZS5jCitpbmRleCA3ZTRmM2U2Li5hYWZlYTAxIDEwMDY0NAorLS0tIGEvaW8vc3luY19maWxlX3JhbmdlLmMKKysrKyBiL2lvL3N5bmNfZmlsZV9yYW5nZS5jCitAQCAtMTYsNiArMTYsNyBAQAorICAqIEluYy4sICA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICAqLworIAorKyNpZm5kZWYgSEFWRV9DT1BZX0ZJTEVfUkFOR0UKKyAjaW5jbHVkZSAiY29tbWFuZC5oIgorICNpbmNsdWRlICJpbnB1dC5oIgorICNpbmNsdWRlICJpbml0LmgiCitAQCAtMTA0LDMgKzEwNSw1IEBAIHN5bmNfcmFuZ2VfaW5pdCh2b2lkKQorIAorIAlhZGRfY29tbWFuZCgmc3luY19yYW5nZV9jbWQpOworIH0KKysKKysjZW5kaWYKKy0tIAorMi4xNi4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL3hmc3Byb2dzL2ZpbGVzLzAwMDEteGZzLXJlbW92ZS1kb3VibGUtdW5kZXJzY29yZS1pbnRlZ2VyLXR5cGVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMvMDAwMS14ZnMtcmVtb3ZlLWRvdWJsZS11bmRlcnNjb3JlLWludGVnZXItdHlwZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0N2M0ODcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMvMDAwMS14ZnMtcmVtb3ZlLWRvdWJsZS11bmRlcnNjb3JlLWludGVnZXItdHlwZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMDgyICswLDAgQEAKLUZyb20gNGE0OTJlNzI1MTU1MDllZTcwMjI4NmE0MmFmZTdkOGY4OWQzNzYzNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ICJEYXJyaWNrIEouIFdvbmciIDxkYXJyaWNrLndvbmdAb3JhY2xlLmNvbT4KLURhdGU6IE1vbiwgMzEgSnVsIDIwMTcgMTU6MDg6MTAgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0geGZzOiByZW1vdmUgZG91YmxlLXVuZGVyc2NvcmUgaW50ZWdlciB0eXBlcwotCi1Tb3VyY2Uga2VybmVsIGNvbW1pdDogYzhjZTU0MGRiNWY2N2QyNTRhYWZiMTRiNWQ3NjQyMmM2MmE5MDZkZgotCi1UaGlzIGlzIGEgcHVyZWx5IG1lY2hhbmljYWwgcGF0Y2ggdGhhdCByZW1vdmVzIHRoZSBwcml2YXRlCi1fX3t1LH1pbnR7OCwxNiwzMiw2NH1fdCB0eXBlZGVmcyBpbiBmYXZvciBvZiB1c2luZyB0aGUgc3lzdGVtCi17dSx9aW50ezgsMTYsMzIsNjR9X3QgdHlwZWRlZnMuICBUaGlzIGlzIHRoZSBzZWQgc2NyaXB0IHVzZWQgdG8gcGVyZm9ybQotdGhlIHRyYW5zZm9ybWF0aW9uIGFuZCBmaXggdGhlIHJlc3VsdGluZyB3aGl0ZXNwYWNlIGFuZCBpbmRlbnRhdGlvbgotZXJyb3JzOgotCi1zL3R5cGVkZWZcdF9fdWludDhfdC90eXBlZGVmIF9fdWludDhfdFx0L2cKLXMvdHlwZWRlZlx0X191aW50L3R5cGVkZWYgX191aW50L2cKLXMvdHlwZWRlZlx0X19pbnRcKFswLTldKlwpX3QvdHlwZWRlZiBpbnRcMV90XHQvZwotcy9fX3VpbnQ4X3RcdC9fX3VpbnQ4X3RcdFx0L2cKLXMvX191aW50L3VpbnQvZwotcy9fX2ludFwoWzAtOV0qXClfdFx0L19faW50XDFfdFx0XHQvZwotcy9fX2ludC9pbnQvZwotL150eXBlZGVmLippbnRbMC05XSpfdDskL2QKLQotU2lnbmVkLW9mZi1ieTogRGFycmljayBKLiBXb25nIDxkYXJyaWNrLndvbmdAb3JhY2xlLmNvbT4KLVJldmlld2VkLWJ5OiBDaHJpc3RvcGggSGVsbHdpZyA8aGNoQGxzdC5kZT4KLVNpZ25lZC1vZmYtYnk6IEVyaWMgU2FuZGVlbiA8c2FuZGVlbkBzYW5kZWVuLm5ldD4KLS0tLQotIGxpYnhmcy9saWJ4ZnNfcHJpdi5oICAgICAgICB8ICAgMSArCi0gbGlieGZzL3hmc19hbGxvY19idHJlZS5jICAgIHwgIDIwICsrLS0KLSBsaWJ4ZnMveGZzX2F0dHJfcmVtb3RlLmMgICAgfCAgIDggKy0KLSBsaWJ4ZnMveGZzX2F0dHJfc2YuaCAgICAgICAgfCAgMTAgKy0KLSBsaWJ4ZnMveGZzX2JpdC5oICAgICAgICAgICAgfCAgMjQgKystLS0KLSBsaWJ4ZnMveGZzX2JtYXBfYnRyZWUuYyAgICAgfCAgIDggKy0KLSBsaWJ4ZnMveGZzX2J0cmVlLmMgICAgICAgICAgfCAgMjIgKystLQotIGxpYnhmcy94ZnNfYnRyZWUuaCAgICAgICAgICB8ICAxOCArKy0tCi0gbGlieGZzL3hmc19ja3N1bS5oICAgICAgICAgIHwgIDE2ICstLQotIGxpYnhmcy94ZnNfZGFfYnRyZWUuYyAgICAgICB8ICAgMiArLQotIGxpYnhmcy94ZnNfZGFfYnRyZWUuaCAgICAgICB8ICAgOCArLQotIGxpYnhmcy94ZnNfZGFfZm9ybWF0LmMgICAgICB8ICAyOCArKy0tLQotIGxpYnhmcy94ZnNfZGFfZm9ybWF0LmggICAgICB8ICA2NCArKysrKy0tLS0tLQotIGxpYnhmcy94ZnNfZGlyMi5oICAgICAgICAgICB8ICAgOCArLQotIGxpYnhmcy94ZnNfZGlyMl9sZWFmLmMgICAgICB8ICAxMiArLS0KLSBsaWJ4ZnMveGZzX2RpcjJfcHJpdi5oICAgICAgfCAgIDIgKy0KLSBsaWJ4ZnMveGZzX2RpcjJfc2YuYyAgICAgICAgfCAgIDQgKy0KLSBsaWJ4ZnMveGZzX2Zvcm1hdC5oICAgICAgICAgfCAxMTIgKysrKysrKysrLS0tLS0tLS0tLQotIGxpYnhmcy94ZnNfZnMuaCAgICAgICAgICAgICB8ICAxMiArLS0KLSBsaWJ4ZnMveGZzX2lhbGxvYy5jICAgICAgICAgfCAgIDYgKy0KLSBsaWJ4ZnMveGZzX2lhbGxvY19idHJlZS5jICAgfCAgIDQgKy0KLSBsaWJ4ZnMveGZzX2lub2RlX2J1Zi5jICAgICAgfCAgIDIgKy0KLSBsaWJ4ZnMveGZzX2lub2RlX2J1Zi5oICAgICAgfCAgMjggKystLS0KLSBsaWJ4ZnMveGZzX2xvZ19mb3JtYXQuaCAgICAgfCAyNTYgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBsaWJ4ZnMveGZzX3F1b3RhX2RlZnMuaCAgICAgfCAgIDQgKy0KLSBsaWJ4ZnMveGZzX3JlZmNvdW50X2J0cmVlLmMgfCAgIDggKy0KLSBsaWJ4ZnMveGZzX3JtYXAuYyAgICAgICAgICAgfCAgIDggKy0KLSBsaWJ4ZnMveGZzX3JtYXAuaCAgICAgICAgICAgfCAgIDggKy0KLSBsaWJ4ZnMveGZzX3JtYXBfYnRyZWUuYyAgICAgfCAgMzAgKysrLS0tCi0gbGlieGZzL3hmc19ydGJpdG1hcC5jICAgICAgIHwgICAyICstCi0gbGlieGZzL3hmc19zYi5jICAgICAgICAgICAgIHwgICA0ICstCi0gbGlieGZzL3hmc190eXBlcy5oICAgICAgICAgIHwgIDQ2ICsrKystLS0tCi0gMzIgZmlsZXMgY2hhbmdlZCwgMzkzIGluc2VydGlvbnMoKyksIDM5MiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYnhmcy9saWJ4ZnNfcHJpdi5oIGIvbGlieGZzL2xpYnhmc19wcml2LmgKLWluZGV4IDBiNGM0ODkwLi5iM2NjN2U1MyAxMDA2NDQKLS0tLSBhL2xpYnhmcy9saWJ4ZnNfcHJpdi5oCi0rKysgYi9saWJ4ZnMvbGlieGZzX3ByaXYuaAotQEAgLTUwNCw1ICs1MDQsNiBAQCBib29sIHhmc19sb2dfY2hlY2tfbHNuKHN0cnVjdCB4ZnNfbW91bnQgKiwgeGZzX2xzbl90KTsKLSAjZGVmaW5lIFhGU19TVEFUU19JTkNfT0ZGKG1wLCBvZmYpCi0gI2RlZmluZSBYRlNfU1RBVFNfQUREX09GRihtcCwgb2ZmLCB2YWwpCi0gCi0rdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHU4OwotIAotICNlbmRpZgkvKiBfX0xJQlhGU19JTlRFUk5BTF9YRlNfSF9fICovCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19hbGxvY19idHJlZS5jIGIvbGlieGZzL3hmc19hbGxvY19idHJlZS5jCi1pbmRleCBlMTFkODlhMy4uOGU3N2U2ZTMgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2FsbG9jX2J0cmVlLmMKLSsrKyBiL2xpYnhmcy94ZnNfYWxsb2NfYnRyZWUuYwotQEAgLTI1MSw3ICsyNTEsNyBAQCB4ZnNfYWxsb2NidF9pbml0X3B0cl9mcm9tX2N1cigKLSAJcHRyLT5zID0gYWdmLT5hZ2Zfcm9vdHNbY3VyLT5iY19idG51bV07Ci0gfQotIAotLVNUQVRJQyBfX2ludDY0X3QKLStTVEFUSUMgaW50NjRfdAotIHhmc19ibm9idF9rZXlfZGlmZigKLSAJc3RydWN0IHhmc19idHJlZV9jdXIJKmN1ciwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqa2V5KQotQEAgLTI1OSw0MiArMjU5LDQyIEBAIHhmc19ibm9idF9rZXlfZGlmZigKLSAJeGZzX2FsbG9jX3JlY19pbmNvcmVfdAkqcmVjID0gJmN1ci0+YmNfcmVjLmE7Ci0gCXhmc19hbGxvY19rZXlfdAkJKmtwID0gJmtleS0+YWxsb2M7Ci0gCi0tCXJldHVybiAoX19pbnQ2NF90KWJlMzJfdG9fY3B1KGtwLT5hcl9zdGFydGJsb2NrKSAtIHJlYy0+YXJfc3RhcnRibG9jazsKLSsJcmV0dXJuIChpbnQ2NF90KWJlMzJfdG9fY3B1KGtwLT5hcl9zdGFydGJsb2NrKSAtIHJlYy0+YXJfc3RhcnRibG9jazsKLSB9Ci0gCi0tU1RBVElDIF9faW50NjRfdAotK1NUQVRJQyBpbnQ2NF90Ci0geGZzX2NudGJ0X2tleV9kaWZmKAotIAlzdHJ1Y3QgeGZzX2J0cmVlX2N1cgkqY3VyLAotIAl1bmlvbiB4ZnNfYnRyZWVfa2V5CSprZXkpCi0gewotIAl4ZnNfYWxsb2NfcmVjX2luY29yZV90CSpyZWMgPSAmY3VyLT5iY19yZWMuYTsKLSAJeGZzX2FsbG9jX2tleV90CQkqa3AgPSAma2V5LT5hbGxvYzsKLS0JX19pbnQ2NF90CQlkaWZmOwotKwlpbnQ2NF90CQkJZGlmZjsKLSAKLS0JZGlmZiA9IChfX2ludDY0X3QpYmUzMl90b19jcHUoa3AtPmFyX2Jsb2NrY291bnQpIC0gcmVjLT5hcl9ibG9ja2NvdW50OwotKwlkaWZmID0gKGludDY0X3QpYmUzMl90b19jcHUoa3AtPmFyX2Jsb2NrY291bnQpIC0gcmVjLT5hcl9ibG9ja2NvdW50OwotIAlpZiAoZGlmZikKLSAJCXJldHVybiBkaWZmOwotIAotLQlyZXR1cm4gKF9faW50NjRfdCliZTMyX3RvX2NwdShrcC0+YXJfc3RhcnRibG9jaykgLSByZWMtPmFyX3N0YXJ0YmxvY2s7Ci0rCXJldHVybiAoaW50NjRfdCliZTMyX3RvX2NwdShrcC0+YXJfc3RhcnRibG9jaykgLSByZWMtPmFyX3N0YXJ0YmxvY2s7Ci0gfQotIAotLVNUQVRJQyBfX2ludDY0X3QKLStTVEFUSUMgaW50NjRfdAotIHhmc19ibm9idF9kaWZmX3R3b19rZXlzKAotIAlzdHJ1Y3QgeGZzX2J0cmVlX2N1cgkqY3VyLAotIAl1bmlvbiB4ZnNfYnRyZWVfa2V5CSprMSwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqazIpCi0gewotLQlyZXR1cm4gKF9faW50NjRfdCliZTMyX3RvX2NwdShrMS0+YWxsb2MuYXJfc3RhcnRibG9jaykgLQotKwlyZXR1cm4gKGludDY0X3QpYmUzMl90b19jcHUoazEtPmFsbG9jLmFyX3N0YXJ0YmxvY2spIC0KLSAJCQkgIGJlMzJfdG9fY3B1KGsyLT5hbGxvYy5hcl9zdGFydGJsb2NrKTsKLSB9Ci0gCi0tU1RBVElDIF9faW50NjRfdAotK1NUQVRJQyBpbnQ2NF90Ci0geGZzX2NudGJ0X2RpZmZfdHdvX2tleXMoCi0gCXN0cnVjdCB4ZnNfYnRyZWVfY3VyCSpjdXIsCi0gCXVuaW9uIHhmc19idHJlZV9rZXkJKmsxLAotIAl1bmlvbiB4ZnNfYnRyZWVfa2V5CSprMikKLSB7Ci0tCV9faW50NjRfdAkJZGlmZjsKLSsJaW50NjRfdAkJCWRpZmY7Ci0gCi0gCWRpZmYgPSAgYmUzMl90b19jcHUoazEtPmFsbG9jLmFyX2Jsb2NrY291bnQpIC0KLSAJCWJlMzJfdG9fY3B1KGsyLT5hbGxvYy5hcl9ibG9ja2NvdW50KTsKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2F0dHJfcmVtb3RlLmMgYi9saWJ4ZnMveGZzX2F0dHJfcmVtb3RlLmMKLWluZGV4IGFiZTE3MDUyLi4xZjI1ZTM2MyAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfYXR0cl9yZW1vdGUuYwotKysrIGIvbGlieGZzL3hmc19hdHRyX3JlbW90ZS5jCi1AQCAtMjQ4LDcgKzI0OCw3IEBAIHhmc19hdHRyX3JtdHZhbF9jb3B5b3V0KAotIAl4ZnNfaW5vX3QJaW5vLAotIAlpbnQJCSpvZmZzZXQsCi0gCWludAkJKnZhbHVlbGVuLAotLQlfX3VpbnQ4X3QJKipkc3QpCi0rCXVpbnQ4X3QJCSoqZHN0KQotIHsKLSAJY2hhcgkJKnNyYyA9IGJwLT5iX2FkZHI7Ci0gCXhmc19kYWRkcl90CWJubyA9IGJwLT5iX2JuOwotQEAgLTI5Niw3ICsyOTYsNyBAQCB4ZnNfYXR0cl9ybXR2YWxfY29weWluKAotIAl4ZnNfaW5vX3QJaW5vLAotIAlpbnQJCSpvZmZzZXQsCi0gCWludAkJKnZhbHVlbGVuLAotLQlfX3VpbnQ4X3QJKipzcmMpCi0rCXVpbnQ4X3QJCSoqc3JjKQotIHsKLSAJY2hhcgkJKmRzdCA9IGJwLT5iX2FkZHI7Ci0gCXhmc19kYWRkcl90CWJubyA9IGJwLT5iX2JuOwotQEAgLTM1MCw3ICszNTAsNyBAQCB4ZnNfYXR0cl9ybXR2YWxfZ2V0KAotIAlzdHJ1Y3QgeGZzX21vdW50CSptcCA9IGFyZ3MtPmRwLT5pX21vdW50OwotIAlzdHJ1Y3QgeGZzX2J1ZgkJKmJwOwotIAl4ZnNfZGFibGtfdAkJbGJsa25vID0gYXJncy0+cm10Ymxrbm87Ci0tCV9fdWludDhfdAkJKmRzdCA9IGFyZ3MtPnZhbHVlOwotKwl1aW50OF90CQkJKmRzdCA9IGFyZ3MtPnZhbHVlOwotIAlpbnQJCQl2YWx1ZWxlbjsKLSAJaW50CQkJbm1hcDsKLSAJaW50CQkJZXJyb3I7Ci1AQCAtNDE2LDcgKzQxNiw3IEBAIHhmc19hdHRyX3JtdHZhbF9zZXQoCi0gCXN0cnVjdCB4ZnNfYm1idF9pcmVjCW1hcDsKLSAJeGZzX2RhYmxrX3QJCWxibGtubzsKLSAJeGZzX2ZpbGVvZmZfdAkJbGZpbGVvZmYgPSAwOwotLQlfX3VpbnQ4X3QJCSpzcmMgPSBhcmdzLT52YWx1ZTsKLSsJdWludDhfdAkJCSpzcmMgPSBhcmdzLT52YWx1ZTsKLSAJaW50CQkJYmxrY250OwotIAlpbnQJCQl2YWx1ZWxlbjsKLSAJaW50CQkJbm1hcDsKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2F0dHJfc2YuaCBiL2xpYnhmcy94ZnNfYXR0cl9zZi5oCi1pbmRleCA5MDkyOGJiZS4uYWZkNjg0YWUgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2F0dHJfc2YuaAotKysrIGIvbGlieGZzL3hmc19hdHRyX3NmLmgKLUBAIC0zMSwxMCArMzEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX2F0dHJfc2ZfZW50cnkgeGZzX2F0dHJfc2ZfZW50cnlfdDsKLSAgKiBXZSBnZW5lcmF0ZSB0aGlzIHRoZW4gc29ydCBpdCwgYXR0cl9saXN0KCkgbXVzdCByZXR1cm4gdGhpbmdzIGluIGhhc2gtb3JkZXIuCi0gICovCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2F0dHJfc2Zfc29ydCB7Ci0tCV9fdWludDhfdAllbnRubzsJCS8qIGVudHJ5IG51bWJlciBpbiBvcmlnaW5hbCBsaXN0ICovCi0tCV9fdWludDhfdAluYW1lbGVuOwkvKiBsZW5ndGggb2YgbmFtZSB2YWx1ZSAobm8gbnVsbCkgKi8KLS0JX191aW50OF90CXZhbHVlbGVuOwkvKiBsZW5ndGggb2YgdmFsdWUgKi8KLS0JX191aW50OF90CWZsYWdzOwkJLyogZmxhZ3MgYml0cyAoc2VlIHhmc19hdHRyX2xlYWYuaCkgKi8KLSsJdWludDhfdAkJZW50bm87CQkvKiBlbnRyeSBudW1iZXIgaW4gb3JpZ2luYWwgbGlzdCAqLwotKwl1aW50OF90CQluYW1lbGVuOwkvKiBsZW5ndGggb2YgbmFtZSB2YWx1ZSAobm8gbnVsbCkgKi8KLSsJdWludDhfdAkJdmFsdWVsZW47CS8qIGxlbmd0aCBvZiB2YWx1ZSAqLwotKwl1aW50OF90CQlmbGFnczsJCS8qIGZsYWdzIGJpdHMgKHNlZSB4ZnNfYXR0cl9sZWFmLmgpICovCi0gCXhmc19kYWhhc2hfdAloYXNoOwkJLyogdGhpcyBlbnRyeSdzIGhhc2ggdmFsdWUgKi8KLSAJdW5zaWduZWQgY2hhcgkqbmFtZTsJCS8qIG5hbWUgdmFsdWUsIHBvaW50ZXIgaW50byBidWZmZXIgKi8KLSB9IHhmc19hdHRyX3NmX3NvcnRfdDsKLUBAIC00Miw3ICs0Miw3IEBAIHR5cGVkZWYgc3RydWN0IHhmc19hdHRyX3NmX3NvcnQgewotICNkZWZpbmUgWEZTX0FUVFJfU0ZfRU5UU0laRV9CWU5BTUUobmxlbix2bGVuKQkvKiBzcGFjZSBuYW1lL3ZhbHVlIHVzZXMgKi8gXAotIAkoKChpbnQpc2l6ZW9mKHhmc19hdHRyX3NmX2VudHJ5X3QpLTEgKyAobmxlbikrKHZsZW4pKSkKLSAjZGVmaW5lIFhGU19BVFRSX1NGX0VOVFNJWkVfTUFYCQkJLyogbWF4IHNwYWNlIGZvciBuYW1lJnZhbHVlICovIFwKLS0JKCgxIDw8IChOQkJZKihpbnQpc2l6ZW9mKF9fdWludDhfdCkpKSAtIDEpCi0rCSgoMSA8PCAoTkJCWSooaW50KXNpemVvZih1aW50OF90KSkpIC0gMSkKLSAjZGVmaW5lIFhGU19BVFRSX1NGX0VOVFNJWkUoc2ZlcCkJCS8qIHNwYWNlIGFuIGVudHJ5IHVzZXMgKi8gXAotIAkoKGludClzaXplb2YoeGZzX2F0dHJfc2ZfZW50cnlfdCktMSArIChzZmVwKS0+bmFtZWxlbisoc2ZlcCktPnZhbHVlbGVuKQotICNkZWZpbmUgWEZTX0FUVFJfU0ZfTkVYVEVOVFJZKHNmZXApCQkvKiBuZXh0IGVudHJ5IGluIHN0cnVjdCAqLyBcCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19iaXQuaCBiL2xpYnhmcy94ZnNfYml0LmgKLWluZGV4IGUxNjQ5YzBkLi42MWM2YjIwMiAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfYml0LmgKLSsrKyBiL2xpYnhmcy94ZnNfYml0LmgKLUBAIC0yNSw0NyArMjUsNDcgQEAKLSAvKgotICAqIG1hc2tzIHdpdGggbiBoaWdoL2xvdyBiaXRzIHNldCwgNjQtYml0IHZhbHVlcwotICAqLwotLXN0YXRpYyBpbmxpbmUgX191aW50NjRfdCB4ZnNfbWFzazY0aGkoaW50IG4pCi0rc3RhdGljIGlubGluZSB1aW50NjRfdCB4ZnNfbWFzazY0aGkoaW50IG4pCi0gewotLQlyZXR1cm4gKF9fdWludDY0X3QpLTEgPDwgKDY0IC0gKG4pKTsKLSsJcmV0dXJuICh1aW50NjRfdCktMSA8PCAoNjQgLSAobikpOwotIH0KLS1zdGF0aWMgaW5saW5lIF9fdWludDMyX3QgeGZzX21hc2szMmxvKGludCBuKQotK3N0YXRpYyBpbmxpbmUgdWludDMyX3QgeGZzX21hc2szMmxvKGludCBuKQotIHsKLS0JcmV0dXJuICgoX191aW50MzJfdCkxIDw8IChuKSkgLSAxOwotKwlyZXR1cm4gKCh1aW50MzJfdCkxIDw8IChuKSkgLSAxOwotIH0KLS1zdGF0aWMgaW5saW5lIF9fdWludDY0X3QgeGZzX21hc2s2NGxvKGludCBuKQotK3N0YXRpYyBpbmxpbmUgdWludDY0X3QgeGZzX21hc2s2NGxvKGludCBuKQotIHsKLS0JcmV0dXJuICgoX191aW50NjRfdCkxIDw8IChuKSkgLSAxOwotKwlyZXR1cm4gKCh1aW50NjRfdCkxIDw8IChuKSkgLSAxOwotIH0KLSAKLSAvKiBHZXQgaGlnaCBiaXQgc2V0IG91dCBvZiAzMi1iaXQgYXJndW1lbnQsIC0xIGlmIG5vbmUgc2V0ICovCi0tc3RhdGljIGlubGluZSBpbnQgeGZzX2hpZ2hiaXQzMihfX3VpbnQzMl90IHYpCi0rc3RhdGljIGlubGluZSBpbnQgeGZzX2hpZ2hiaXQzMih1aW50MzJfdCB2KQotIHsKLSAJcmV0dXJuIGZscyh2KSAtIDE7Ci0gfQotIAotIC8qIEdldCBoaWdoIGJpdCBzZXQgb3V0IG9mIDY0LWJpdCBhcmd1bWVudCwgLTEgaWYgbm9uZSBzZXQgKi8KLS1zdGF0aWMgaW5saW5lIGludCB4ZnNfaGlnaGJpdDY0KF9fdWludDY0X3QgdikKLStzdGF0aWMgaW5saW5lIGludCB4ZnNfaGlnaGJpdDY0KHVpbnQ2NF90IHYpCi0gewotIAlyZXR1cm4gZmxzNjQodikgLSAxOwotIH0KLSAKLSAvKiBHZXQgbG93IGJpdCBzZXQgb3V0IG9mIDMyLWJpdCBhcmd1bWVudCwgLTEgaWYgbm9uZSBzZXQgKi8KLS1zdGF0aWMgaW5saW5lIGludCB4ZnNfbG93Yml0MzIoX191aW50MzJfdCB2KQotK3N0YXRpYyBpbmxpbmUgaW50IHhmc19sb3diaXQzMih1aW50MzJfdCB2KQotIHsKLSAJcmV0dXJuIGZmcyh2KSAtIDE7Ci0gfQotIAotIC8qIEdldCBsb3cgYml0IHNldCBvdXQgb2YgNjQtYml0IGFyZ3VtZW50LCAtMSBpZiBub25lIHNldCAqLwotLXN0YXRpYyBpbmxpbmUgaW50IHhmc19sb3diaXQ2NChfX3VpbnQ2NF90IHYpCi0rc3RhdGljIGlubGluZSBpbnQgeGZzX2xvd2JpdDY0KHVpbnQ2NF90IHYpCi0gewotLQlfX3VpbnQzMl90CXcgPSAoX191aW50MzJfdCl2OwotKwl1aW50MzJfdAl3ID0gKHVpbnQzMl90KXY7Ci0gCWludAkJbiA9IDA7Ci0gCi0gCWlmICh3KSB7CS8qIGxvd2VyIGJpdHMgKi8KLSAJCW4gPSBmZnModyk7Ci0gCX0gZWxzZSB7CS8qIHVwcGVyIGJpdHMgKi8KLS0JCXcgPSAoX191aW50MzJfdCkodiA+PiAzMik7Ci0rCQl3ID0gKHVpbnQzMl90KSh2ID4+IDMyKTsKLSAJCWlmICh3KSB7Ci0gCQkJbiA9IGZmcyh3KTsKLSAJCQlpZiAobikKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2JtYXBfYnRyZWUuYyBiL2xpYnhmcy94ZnNfYm1hcF9idHJlZS5jCi1pbmRleCBjNDhjYmVjMS4uOWVlNDBkOGIgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2JtYXBfYnRyZWUuYwotKysrIGIvbGlieGZzL3hmc19ibWFwX2J0cmVlLmMKLUBAIC05MSw4ICs5MSw4IEBAIHhmc19ibWRyX3RvX2JtYnQoCi0gICovCi0gU1RBVElDIHZvaWQKLSBfX3hmc19ibWJ0X2dldF9hbGwoCi0tCQlfX3VpbnQ2NF90IGwwLAotLQkJX191aW50NjRfdCBsMSwKLSsJCXVpbnQ2NF90IGwwLAotKwkJdWludDY0X3QgbDEsCi0gCQl4ZnNfYm1idF9pcmVjX3QgKnMpCi0gewotIAlpbnQJZXh0X2ZsYWc7Ci1AQCAtNTg1LDEyICs1ODUsMTIgQEAgeGZzX2JtYnRfaW5pdF9wdHJfZnJvbV9jdXIoCi0gCXB0ci0+bCA9IDA7Ci0gfQotIAotLVNUQVRJQyBfX2ludDY0X3QKLStTVEFUSUMgaW50NjRfdAotIHhmc19ibWJ0X2tleV9kaWZmKAotIAlzdHJ1Y3QgeGZzX2J0cmVlX2N1cgkqY3VyLAotIAl1bmlvbiB4ZnNfYnRyZWVfa2V5CSprZXkpCi0gewotLQlyZXR1cm4gKF9faW50NjRfdCliZTY0X3RvX2NwdShrZXktPmJtYnQuYnJfc3RhcnRvZmYpIC0KLSsJcmV0dXJuIChpbnQ2NF90KWJlNjRfdG9fY3B1KGtleS0+Ym1idC5icl9zdGFydG9mZikgLQotIAkJCQkgICAgICBjdXItPmJjX3JlYy5iLmJyX3N0YXJ0b2ZmOwotIH0KLSAKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2J0cmVlLmMgYi9saWJ4ZnMveGZzX2J0cmVlLmMKLWluZGV4IDNkMjkzNTIwLi41NmI1MGE1YiAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfYnRyZWUuYwotKysrIGIvbGlieGZzL3hmc19idHJlZS5jCi1AQCAtMzksNyArMzksNyBAQCBrbWVtX3pvbmVfdAkqeGZzX2J0cmVlX2N1cl96b25lOwotIC8qCi0gICogQnRyZWUgbWFnaWMgbnVtYmVycy4KLSAgKi8KLS1zdGF0aWMgY29uc3QgX191aW50MzJfdCB4ZnNfbWFnaWNzWzJdW1hGU19CVE5VTV9NQVhdID0gewotK3N0YXRpYyBjb25zdCB1aW50MzJfdCB4ZnNfbWFnaWNzWzJdW1hGU19CVE5VTV9NQVhdID0gewotIAl7IFhGU19BQlRCX01BR0lDLCBYRlNfQUJUQ19NQUdJQywgMCwgWEZTX0JNQVBfTUFHSUMsIFhGU19JQlRfTUFHSUMsCi0gCSAgWEZTX0ZJQlRfTUFHSUMsIDAgfSwKLSAJeyBYRlNfQUJUQl9DUkNfTUFHSUMsIFhGU19BQlRDX0NSQ19NQUdJQywgWEZTX1JNQVBfQ1JDX01BR0lDLAotQEAgLTQ3LDEyICs0NywxMiBAQCBzdGF0aWMgY29uc3QgX191aW50MzJfdCB4ZnNfbWFnaWNzWzJdW1hGU19CVE5VTV9NQVhdID0gewotIAkgIFhGU19SRUZDX0NSQ19NQUdJQyB9Ci0gfTsKLSAKLS1fX3VpbnQzMl90Ci0rdWludDMyX3QKLSB4ZnNfYnRyZWVfbWFnaWMoCi0gCWludAkJCWNyYywKLSAJeGZzX2J0bnVtX3QJCWJ0bnVtKQotIHsKLS0JX191aW50MzJfdAkJbWFnaWMgPSB4ZnNfbWFnaWNzW2NyY11bYnRudW1dOwotKwl1aW50MzJfdAkJbWFnaWMgPSB4ZnNfbWFnaWNzW2NyY11bYnRudW1dOwotIAotIAkvKiBFbnN1cmUgd2UgYXNrZWQgZm9yIGNyYyBmb3IgY3JjLW9ubHkgbWFnaWNzLiAqLwotIAlBU1NFUlQobWFnaWMgIT0gMCk7Ci1AQCAtNzc0LDE0ICs3NzQsMTQgQEAgeGZzX2J0cmVlX2xhc3RyZWMoCi0gICovCi0gdm9pZAotIHhmc19idHJlZV9vZmZzZXRzKAotLQlfX2ludDY0X3QJZmllbGRzLAkJLyogYml0bWFzayBvZiBmaWVsZHMgKi8KLSsJaW50NjRfdAkJZmllbGRzLAkJLyogYml0bWFzayBvZiBmaWVsZHMgKi8KLSAJY29uc3Qgc2hvcnQJKm9mZnNldHMsCS8qIHRhYmxlIG9mIGZpZWxkIG9mZnNldHMgKi8KLSAJaW50CQluYml0cywJCS8qIG51bWJlciBvZiBiaXRzIHRvIGluc3BlY3QgKi8KLSAJaW50CQkqZmlyc3QsCQkvKiBvdXRwdXQ6IGZpcnN0IGJ5dGUgb2Zmc2V0ICovCi0gCWludAkJKmxhc3QpCQkvKiBvdXRwdXQ6IGxhc3QgYnl0ZSBvZmZzZXQgKi8KLSB7Ci0gCWludAkJaTsJCS8qIGN1cnJlbnQgYml0IG51bWJlciAqLwotLQlfX2ludDY0X3QJaW1hc2s7CQkvKiBtYXNrIGZvciBjdXJyZW50IGJpdCBudW1iZXIgKi8KLSsJaW50NjRfdAkJaW1hc2s7CQkvKiBtYXNrIGZvciBjdXJyZW50IGJpdCBudW1iZXIgKi8KLSAKLSAJQVNTRVJUKGZpZWxkcyAhPSAwKTsKLSAJLyoKLUBAIC0xODQyLDcgKzE4NDIsNyBAQCB4ZnNfYnRyZWVfbG9va3VwKAotIAlpbnQJCQkqc3RhdCkJLyogc3VjY2Vzcy9mYWlsdXJlICovCi0gewotIAlzdHJ1Y3QgeGZzX2J0cmVlX2Jsb2NrCSpibG9jazsJLyogY3VycmVudCBidHJlZSBibG9jayAqLwotLQlfX2ludDY0X3QJCWRpZmY7CS8qIGRpZmZlcmVuY2UgZm9yIHRoZSBjdXJyZW50IGtleSAqLwotKwlpbnQ2NF90CQkJZGlmZjsJLyogZGlmZmVyZW5jZSBmb3IgdGhlIGN1cnJlbnQga2V5ICovCi0gCWludAkJCWVycm9yOwkvKiBlcnJvciByZXR1cm4gdmFsdWUgKi8KLSAJaW50CQkJa2V5bm87CS8qIGN1cnJlbnQga2V5IG51bWJlciAqLwotIAlpbnQJCQlsZXZlbDsJLyogbGV2ZWwgaW4gdGhlIGJ0cmVlICovCi1AQCAtNDQzNSw3ICs0NDM1LDcgQEAgeGZzX2J0cmVlX3Zpc2l0X2Jsb2NrcygKLSAgKiByZWNvdmVyeSBjb21wbGV0aW9uIHdyaXRlcyB0aGUgY2hhbmdlcyB0byBkaXNrLgotICAqLwotIHN0cnVjdCB4ZnNfYnRyZWVfYmxvY2tfY2hhbmdlX293bmVyX2luZm8gewotLQlfX3VpbnQ2NF90CQluZXdfb3duZXI7Ci0rCXVpbnQ2NF90CQluZXdfb3duZXI7Ci0gCXN0cnVjdCBsaXN0X2hlYWQJKmJ1ZmZlcl9saXN0OwotIH07Ci0gCi1AQCAtNDQ4MSw3ICs0NDgxLDcgQEAgeGZzX2J0cmVlX2Jsb2NrX2NoYW5nZV9vd25lcigKLSBpbnQKLSB4ZnNfYnRyZWVfY2hhbmdlX293bmVyKAotIAlzdHJ1Y3QgeGZzX2J0cmVlX2N1cgkqY3VyLAotLQlfX3VpbnQ2NF90CQluZXdfb3duZXIsCi0rCXVpbnQ2NF90CQluZXdfb3duZXIsCi0gCXN0cnVjdCBsaXN0X2hlYWQJKmJ1ZmZlcl9saXN0KQotIHsKLSAJc3RydWN0IHhmc19idHJlZV9ibG9ja19jaGFuZ2Vfb3duZXJfaW5mbwliYmNvaTsKLUBAIC00NTg1LDcgKzQ1ODUsNyBAQCB4ZnNfYnRyZWVfc2ltcGxlX3F1ZXJ5X3JhbmdlKAotIHsKLSAJdW5pb24geGZzX2J0cmVlX3JlYwkJKnJlY3A7Ci0gCXVuaW9uIHhmc19idHJlZV9rZXkJCXJlY19rZXk7Ci0tCV9faW50NjRfdAkJCWRpZmY7Ci0rCWludDY0X3QJCQkJZGlmZjsKLSAJaW50CQkJCXN0YXQ7Ci0gCWJvb2wJCQkJZmlyc3RyZWMgPSB0cnVlOwotIAlpbnQJCQkJZXJyb3I7Ci1AQCAtNDY4Miw4ICs0NjgyLDggQEAgeGZzX2J0cmVlX292ZXJsYXBwZWRfcXVlcnlfcmFuZ2UoCi0gCXVuaW9uIHhmc19idHJlZV9rZXkJCSpoa3A7Ci0gCXVuaW9uIHhmc19idHJlZV9yZWMJCSpyZWNwOwotIAlzdHJ1Y3QgeGZzX2J0cmVlX2Jsb2NrCQkqYmxvY2s7Ci0tCV9faW50NjRfdAkJCWxkaWZmOwotLQlfX2ludDY0X3QJCQloZGlmZjsKLSsJaW50NjRfdAkJCQlsZGlmZjsKLSsJaW50NjRfdAkJCQloZGlmZjsKLSAJaW50CQkJCWxldmVsOwotIAlzdHJ1Y3QgeGZzX2J1ZgkJCSpicDsKLSAJaW50CQkJCWk7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19idHJlZS5oIGIvbGlieGZzL3hmc19idHJlZS5oCi1pbmRleCAwNWNmMzViNS4uM2MxZmVkMjMgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2J0cmVlLmgKLSsrKyBiL2xpYnhmcy94ZnNfYnRyZWUuaAotQEAgLTc2LDcgKzc2LDcgQEAgdW5pb24geGZzX2J0cmVlX3JlYyB7Ci0gI2RlZmluZQlYRlNfQlROVU1fUk1BUAkoKHhmc19idG51bV90KVhGU19CVE5VTV9STUFQaSkKLSAjZGVmaW5lCVhGU19CVE5VTV9SRUZDCSgoeGZzX2J0bnVtX3QpWEZTX0JUTlVNX1JFRkNpKQotIAotLV9fdWludDMyX3QgeGZzX2J0cmVlX21hZ2ljKGludCBjcmMsIHhmc19idG51bV90IGJ0bnVtKTsKLSt1aW50MzJfdCB4ZnNfYnRyZWVfbWFnaWMoaW50IGNyYywgeGZzX2J0bnVtX3QgYnRudW0pOwotIAotIC8qCi0gICogRm9yIGxvZ2dpbmcgcmVjb3JkIGZpZWxkcy4KLUBAIC0xNTAsMTQgKzE1MCwxNCBAQCBzdHJ1Y3QgeGZzX2J0cmVlX29wcyB7Ci0gCQkJCQkgIHVuaW9uIHhmc19idHJlZV9yZWMgKnJlYyk7Ci0gCi0gCS8qIGRpZmZlcmVuY2UgYmV0d2VlbiBrZXkgdmFsdWUgYW5kIGN1cnNvciB2YWx1ZSAqLwotLQlfX2ludDY0X3QgKCprZXlfZGlmZikoc3RydWN0IHhmc19idHJlZV9jdXIgKmN1ciwKLSsJaW50NjRfdCAoKmtleV9kaWZmKShzdHJ1Y3QgeGZzX2J0cmVlX2N1ciAqY3VyLAotIAkJCSAgICAgIHVuaW9uIHhmc19idHJlZV9rZXkgKmtleSk7Ci0gCi0gCS8qCi0gCSAqIERpZmZlcmVuY2UgYmV0d2VlbiBrZXkyIGFuZCBrZXkxIC0tIHBvc2l0aXZlIGlmIGtleTEgPiBrZXkyLAotIAkgKiBuZWdhdGl2ZSBpZiBrZXkxIDwga2V5MiwgYW5kIHplcm8gaWYgZXF1YWwuCi0gCSAqLwotLQlfX2ludDY0X3QgKCpkaWZmX3R3b19rZXlzKShzdHJ1Y3QgeGZzX2J0cmVlX2N1ciAqY3VyLAotKwlpbnQ2NF90ICgqZGlmZl90d29fa2V5cykoc3RydWN0IHhmc19idHJlZV9jdXIgKmN1ciwKLSAJCQkJICAgdW5pb24geGZzX2J0cmVlX2tleSAqa2V5MSwKLSAJCQkJICAgdW5pb24geGZzX2J0cmVlX2tleSAqa2V5Mik7Ci0gCi1AQCAtMjEzLDExICsyMTMsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX2J0cmVlX2N1cgotIAl1bmlvbiB4ZnNfYnRyZWVfaXJlYwliY19yZWM7CS8qIGN1cnJlbnQgaW5zZXJ0L3NlYXJjaCByZWNvcmQgdmFsdWUgKi8KLSAJc3RydWN0IHhmc19idWYJKmJjX2J1ZnNbWEZTX0JUUkVFX01BWExFVkVMU107CS8qIGJ1ZiBwdHIgcGVyIGxldmVsICovCi0gCWludAkJYmNfcHRyc1tYRlNfQlRSRUVfTUFYTEVWRUxTXTsJLyoga2V5L3JlY29yZCAjICovCi0tCV9fdWludDhfdAliY19yYVtYRlNfQlRSRUVfTUFYTEVWRUxTXTsJLyogcmVhZGFoZWFkIGJpdHMgKi8KLSsJdWludDhfdAkJYmNfcmFbWEZTX0JUUkVFX01BWExFVkVMU107CS8qIHJlYWRhaGVhZCBiaXRzICovCi0gI2RlZmluZQlYRlNfQlRDVVJfTEVGVFJBCTEJLyogbGVmdCBzaWJsaW5nIGhhcyBiZWVuIHJlYWQtYWhlYWQgKi8KLSAjZGVmaW5lCVhGU19CVENVUl9SSUdIVFJBCTIJLyogcmlnaHQgc2libGluZyBoYXMgYmVlbiByZWFkLWFoZWFkICovCi0tCV9fdWludDhfdAliY19ubGV2ZWxzOwkvKiBudW1iZXIgb2YgbGV2ZWxzIGluIHRoZSB0cmVlICovCi0tCV9fdWludDhfdAliY19ibG9ja2xvZzsJLyogbG9nMihibG9ja3NpemUpIG9mIGJ0cmVlIGJsb2NrcyAqLwotKwl1aW50OF90CQliY19ubGV2ZWxzOwkvKiBudW1iZXIgb2YgbGV2ZWxzIGluIHRoZSB0cmVlICovCi0rCXVpbnQ4X3QJCWJjX2Jsb2NrbG9nOwkvKiBsb2cyKGJsb2Nrc2l6ZSkgb2YgYnRyZWUgYmxvY2tzICovCi0gCXhmc19idG51bV90CWJjX2J0bnVtOwkvKiBpZGVudGlmaWVzIHdoaWNoIGJ0cmVlIHR5cGUgKi8KLSAJaW50CQliY19zdGF0b2ZmOwkvKiBvZmZzZXQgb2YgYnRyZSBzdGF0cyBhcnJheSAqLwotIAl1bmlvbiB7Ci1AQCAtMzMwLDcgKzMzMCw3IEBAIHhmc19idHJlZV9pc2xhc3RibG9jaygKLSAgKi8KLSB2b2lkCi0geGZzX2J0cmVlX29mZnNldHMoCi0tCV9faW50NjRfdAkJZmllbGRzLAkvKiBiaXRtYXNrIG9mIGZpZWxkcyAqLwotKwlpbnQ2NF90CQkJZmllbGRzLAkvKiBiaXRtYXNrIG9mIGZpZWxkcyAqLwotIAljb25zdCBzaG9ydAkJKm9mZnNldHMsLyogdGFibGUgb2YgZmllbGQgb2Zmc2V0cyAqLwotIAlpbnQJCQluYml0cywJLyogbnVtYmVyIG9mIGJpdHMgdG8gaW5zcGVjdCAqLwotIAlpbnQJCQkqZmlyc3QsCS8qIG91dHB1dDogZmlyc3QgYnl0ZSBvZmZzZXQgKi8KLUBAIC00MDgsNyArNDA4LDcgQEAgaW50IHhmc19idHJlZV9uZXdfaXJvb3Qoc3RydWN0IHhmc19idHJlZV9jdXIgKiwgaW50ICosIGludCAqKTsKLSBpbnQgeGZzX2J0cmVlX2luc2VydChzdHJ1Y3QgeGZzX2J0cmVlX2N1ciAqLCBpbnQgKik7Ci0gaW50IHhmc19idHJlZV9kZWxldGUoc3RydWN0IHhmc19idHJlZV9jdXIgKiwgaW50ICopOwotIGludCB4ZnNfYnRyZWVfZ2V0X3JlYyhzdHJ1Y3QgeGZzX2J0cmVlX2N1ciAqLCB1bmlvbiB4ZnNfYnRyZWVfcmVjICoqLCBpbnQgKik7Ci0taW50IHhmc19idHJlZV9jaGFuZ2Vfb3duZXIoc3RydWN0IHhmc19idHJlZV9jdXIgKmN1ciwgX191aW50NjRfdCBuZXdfb3duZXIsCi0raW50IHhmc19idHJlZV9jaGFuZ2Vfb3duZXIoc3RydWN0IHhmc19idHJlZV9jdXIgKmN1ciwgdWludDY0X3QgbmV3X293bmVyLAotIAkJCSAgIHN0cnVjdCBsaXN0X2hlYWQgKmJ1ZmZlcl9saXN0KTsKLSAKLSAvKgotQEAgLTQzNCw3ICs0MzQsNyBAQCBzdGF0aWMgaW5saW5lIGludCB4ZnNfYnRyZWVfZ2V0X251bXJlY3Moc3RydWN0IHhmc19idHJlZV9ibG9jayAqYmxvY2spCi0gfQotIAotIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZnNfYnRyZWVfc2V0X251bXJlY3Moc3RydWN0IHhmc19idHJlZV9ibG9jayAqYmxvY2ssCi0tCQlfX3VpbnQxNl90IG51bXJlY3MpCi0rCQl1aW50MTZfdCBudW1yZWNzKQotIHsKLSAJYmxvY2stPmJiX251bXJlY3MgPSBjcHVfdG9fYmUxNihudW1yZWNzKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19ja3N1bS5oIGIvbGlieGZzL3hmc19ja3N1bS5oCi1pbmRleCBhNDE2YzdjYi4uODIxMWY0OGIgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2Nrc3VtLmgKLSsrKyBiL2xpYnhmcy94ZnNfY2tzdW0uaAotQEAgLTEsNyArMSw3IEBACi0gI2lmbmRlZiBfWEZTX0NLU1VNX0gKLSAjZGVmaW5lIF9YRlNfQ0tTVU1fSCAxCi0gCi0tI2RlZmluZSBYRlNfQ1JDX1NFRUQJKH4oX191aW50MzJfdCkwKQotKyNkZWZpbmUgWEZTX0NSQ19TRUVECSh+KHVpbnQzMl90KTApCi0gCi0gLyoKLSAgKiBDYWxjdWxhdGUgdGhlIGludGVybWVkaWF0ZSBjaGVja3N1bSBmb3IgYSBidWZmZXIgdGhhdCBoYXMgdGhlIENSQyBmaWVsZAotQEAgLTksMTEgKzksMTEgQEAKLSAgKiBja3N1bV9vZmZzZXQgcGFyYW1ldGVyLiBXZSBkbyBub3QgbW9kaWZ5IHRoZSBidWZmZXIgZHVyaW5nIHZlcmlmaWNhdGlvbiwKLSAgKiBoZW5jZSB3ZSBoYXZlIHRvIHNwbGl0IHRoZSBDUkMgY2FsY3VsYXRpb24gYWNyb3NzIHRoZSBja3N1bV9vZmZzZXQuCi0gICovCi0tc3RhdGljIGlubGluZSBfX3VpbnQzMl90Ci0rc3RhdGljIGlubGluZSB1aW50MzJfdAotIHhmc19zdGFydF9ja3N1bV9zYWZlKGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCwgdW5zaWduZWQgbG9uZyBja3N1bV9vZmZzZXQpCi0gewotLQlfX3VpbnQzMl90IHplcm8gPSAwOwotLQlfX3VpbnQzMl90IGNyYzsKLSsJdWludDMyX3QgemVybyA9IDA7Ci0rCXVpbnQzMl90IGNyYzsKLSAKLSAJLyogQ2FsY3VsYXRlIENSQyB1cCB0byB0aGUgY2hlY2tzdW0uICovCi0gCWNyYyA9IGNyYzMyYyhYRlNfQ1JDX1NFRUQsIGJ1ZmZlciwgY2tzdW1fb2Zmc2V0KTsKLUBAIC0zMCw3ICszMCw3IEBAIHhmc19zdGFydF9ja3N1bV9zYWZlKGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCwgdW5zaWduZWQgbG9uZyBja3N1bV9vZmZzZXQpCi0gICogRmFzdCBDUkMgbWV0aG9kIHdoZXJlIHRoZSBidWZmZXIgaXMgbW9kaWZpZWQuIENhbGxlcnMgbXVzdCBoYXZlIGV4Y2x1c2l2ZQotICAqIGFjY2VzcyB0byB0aGUgYnVmZmVyIHdoaWxlIHRoZSBjYWxjdWxhdGlvbiB0YWtlcyBwbGFjZS4KLSAgKi8KLS1zdGF0aWMgaW5saW5lIF9fdWludDMyX3QKLStzdGF0aWMgaW5saW5lIHVpbnQzMl90Ci0geGZzX3N0YXJ0X2Nrc3VtX3VwZGF0ZShjaGFyICpidWZmZXIsIHNpemVfdCBsZW5ndGgsIHVuc2lnbmVkIGxvbmcgY2tzdW1fb2Zmc2V0KQotIHsKLSAJLyogemVybyB0aGUgQ1JDIGZpZWxkICovCi1AQCAtNDgsNyArNDgsNyBAQCB4ZnNfc3RhcnRfY2tzdW1fdXBkYXRlKGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCwgdW5zaWduZWQgbG9uZyBja3N1bV9vZmZzZXQpCi0gICogc28gdGhhdCBpdCBpcyBjb25zaXN0ZW50IG9uIGRpc2suCi0gICovCi0gc3RhdGljIGlubGluZSBfX2xlMzIKLS14ZnNfZW5kX2Nrc3VtKF9fdWludDMyX3QgY3JjKQotK3hmc19lbmRfY2tzdW0odWludDMyX3QgY3JjKQotIHsKLSAJcmV0dXJuIH5jcHVfdG9fbGUzMihjcmMpOwotIH0KLUBAIC02Miw3ICs2Miw3IEBAIHhmc19lbmRfY2tzdW0oX191aW50MzJfdCBjcmMpCi0gc3RhdGljIGlubGluZSB2b2lkCi0geGZzX3VwZGF0ZV9ja3N1bShjaGFyICpidWZmZXIsIHNpemVfdCBsZW5ndGgsIHVuc2lnbmVkIGxvbmcgY2tzdW1fb2Zmc2V0KQotIHsKLS0JX191aW50MzJfdCBjcmMgPSB4ZnNfc3RhcnRfY2tzdW1fdXBkYXRlKGJ1ZmZlciwgbGVuZ3RoLCBja3N1bV9vZmZzZXQpOwotKwl1aW50MzJfdCBjcmMgPSB4ZnNfc3RhcnRfY2tzdW1fdXBkYXRlKGJ1ZmZlciwgbGVuZ3RoLCBja3N1bV9vZmZzZXQpOwotIAotIAkqKF9fbGUzMiAqKShidWZmZXIgKyBja3N1bV9vZmZzZXQpID0geGZzX2VuZF9ja3N1bShjcmMpOwotIH0KLUBAIC03Myw3ICs3Myw3IEBAIHhmc191cGRhdGVfY2tzdW0oY2hhciAqYnVmZmVyLCBzaXplX3QgbGVuZ3RoLCB1bnNpZ25lZCBsb25nIGNrc3VtX29mZnNldCkKLSBzdGF0aWMgaW5saW5lIGludAotIHhmc192ZXJpZnlfY2tzdW0oY2hhciAqYnVmZmVyLCBzaXplX3QgbGVuZ3RoLCB1bnNpZ25lZCBsb25nIGNrc3VtX29mZnNldCkKLSB7Ci0tCV9fdWludDMyX3QgY3JjID0geGZzX3N0YXJ0X2Nrc3VtX3NhZmUoYnVmZmVyLCBsZW5ndGgsIGNrc3VtX29mZnNldCk7Ci0rCXVpbnQzMl90IGNyYyA9IHhmc19zdGFydF9ja3N1bV9zYWZlKGJ1ZmZlciwgbGVuZ3RoLCBja3N1bV9vZmZzZXQpOwotIAotIAlyZXR1cm4gKihfX2xlMzIgKikoYnVmZmVyICsgY2tzdW1fb2Zmc2V0KSA9PSB4ZnNfZW5kX2Nrc3VtKGNyYyk7Ci0gfQotZGlmZiAtLWdpdCBhL2xpYnhmcy94ZnNfZGFfYnRyZWUuYyBiL2xpYnhmcy94ZnNfZGFfYnRyZWUuYwotaW5kZXggYmMxMmY1OGYuLjA4NDQ3YmU4IDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19kYV9idHJlZS5jCi0rKysgYi9saWJ4ZnMveGZzX2RhX2J0cmVlLmMKLUBAIC0xOTQ3LDcgKzE5NDcsNyBAQCB4ZnNfZGEzX3BhdGhfc2hpZnQoCi0gICogVGhpcyBpcyBpbXBsZW1lbnRlZCB3aXRoIHNvbWUgc291cmNlLWxldmVsIGxvb3AgdW5yb2xsaW5nLgotICAqLwotIHhmc19kYWhhc2hfdAotLXhmc19kYV9oYXNobmFtZShjb25zdCBfX3VpbnQ4X3QgKm5hbWUsIGludCBuYW1lbGVuKQotK3hmc19kYV9oYXNobmFtZShjb25zdCB1aW50OF90ICpuYW1lLCBpbnQgbmFtZWxlbikKLSB7Ci0gCXhmc19kYWhhc2hfdCBoYXNoOwotIAotZGlmZiAtLWdpdCBhL2xpYnhmcy94ZnNfZGFfYnRyZWUuaCBiL2xpYnhmcy94ZnNfZGFfYnRyZWUuaAotaW5kZXggNGUyOWNiNmEuLmFlNmRlMTc0IDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19kYV9idHJlZS5oCi0rKysgYi9saWJ4ZnMveGZzX2RhX2J0cmVlLmgKLUBAIC02MCwxMCArNjAsMTAgQEAgZW51bSB4ZnNfZGFjbXAgewotICAqLwotIHR5cGVkZWYgc3RydWN0IHhmc19kYV9hcmdzIHsKLSAJc3RydWN0IHhmc19kYV9nZW9tZXRyeSAqZ2VvOwkvKiBkYSBibG9jayBnZW9tZXRyeSAqLwotLQljb25zdCBfX3VpbnQ4X3QJKm5hbWU7CQkvKiBzdHJpbmcgKG1heWJlIG5vdCBOVUxMIHRlcm1pbmF0ZWQpICovCi0rCWNvbnN0IHVpbnQ4X3QJCSpuYW1lOwkJLyogc3RyaW5nIChtYXliZSBub3QgTlVMTCB0ZXJtaW5hdGVkKSAqLwotIAlpbnQJCW5hbWVsZW47CS8qIGxlbmd0aCBvZiBzdHJpbmcgKG1heWJlIG5vIE5VTEwpICovCi0tCV9fdWludDhfdAlmaWxldHlwZTsJLyogZmlsZXR5cGUgb2YgaW5vZGUgZm9yIGRpcmVjdG9yaWVzICovCi0tCV9fdWludDhfdAkqdmFsdWU7CQkvKiBzZXQgb2YgYnl0ZXMgKG1heWJlIGNvbnRhaW4gTlVMTHMpICovCi0rCXVpbnQ4X3QJCWZpbGV0eXBlOwkvKiBmaWxldHlwZSBvZiBpbm9kZSBmb3IgZGlyZWN0b3JpZXMgKi8KLSsJdWludDhfdAkJKnZhbHVlOwkJLyogc2V0IG9mIGJ5dGVzIChtYXliZSBjb250YWluIE5VTExzKSAqLwotIAlpbnQJCXZhbHVlbGVuOwkvKiBsZW5ndGggb2YgdmFsdWUgKi8KLSAJaW50CQlmbGFnczsJCS8qIGFyZ3VtZW50IGZsYWdzIChlZzogQVRUUl9OT0NSRUFURSkgKi8KLSAJeGZzX2RhaGFzaF90CWhhc2h2YWw7CS8qIGhhc2ggdmFsdWUgb2YgbmFtZSAqLwotQEAgLTIwNyw3ICsyMDcsNyBAQCBpbnQJeGZzX2RhX3JlYWRhX2J1ZihzdHJ1Y3QgeGZzX2lub2RlICpkcCwgeGZzX2RhYmxrX3QgYm5vLAotIGludAl4ZnNfZGFfc2hyaW5rX2lub2RlKHhmc19kYV9hcmdzX3QgKmFyZ3MsIHhmc19kYWJsa190IGRlYWRfYmxrbm8sCi0gCQkJCQkgIHN0cnVjdCB4ZnNfYnVmICpkZWFkX2J1Zik7Ci0gCi0tdWludCB4ZnNfZGFfaGFzaG5hbWUoY29uc3QgX191aW50OF90ICpuYW1lX3N0cmluZywgaW50IG5hbWVfbGVuZ3RoKTsKLSt1aW50IHhmc19kYV9oYXNobmFtZShjb25zdCB1aW50OF90ICpuYW1lX3N0cmluZywgaW50IG5hbWVfbGVuZ3RoKTsKLSBlbnVtIHhmc19kYWNtcCB4ZnNfZGFfY29tcG5hbWUoc3RydWN0IHhmc19kYV9hcmdzICphcmdzLAotIAkJCQljb25zdCB1bnNpZ25lZCBjaGFyICpuYW1lLCBpbnQgbGVuKTsKLSAKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2RhX2Zvcm1hdC5jIGIvbGlieGZzL3hmc19kYV9mb3JtYXQuYwotaW5kZXggMmI3MzJiM2MuLmYzMDAwNGY2IDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19kYV9mb3JtYXQuYwotKysrIGIvbGlieGZzL3hmc19kYV9mb3JtYXQuYwotQEAgLTQ5LDcgKzQ5LDcgQEAgeGZzX2RpcjNfc2ZfZW50c2l6ZSgKLSAJc3RydWN0IHhmc19kaXIyX3NmX2hkcgkqaGRyLAotIAlpbnQJCQlsZW4pCi0gewotLQlyZXR1cm4geGZzX2RpcjJfc2ZfZW50c2l6ZShoZHIsIGxlbikgKyBzaXplb2YoX191aW50OF90KTsKLSsJcmV0dXJuIHhmc19kaXIyX3NmX2VudHNpemUoaGRyLCBsZW4pICsgc2l6ZW9mKHVpbnQ4X3QpOwotIH0KLSAKLSBzdGF0aWMgc3RydWN0IHhmc19kaXIyX3NmX2VudHJ5ICoKLUBAIC03Nyw3ICs3Nyw3IEBAIHhmc19kaXIzX3NmX25leHRlbnRyeSgKLSAgKiBub3QgbmVjZXNzYXJ5LiBGb3Igbm9uLWZpbGV0eXBlIGVuYWJsZSBkaXJlY3RvcmllcywgdGhlIHR5cGUgaXMgYWx3YXlzCi0gICogdW5rbm93biBhbmQgd2UgbmV2ZXIgc3RvcmUgdGhlIHZhbHVlLgotICAqLwotLXN0YXRpYyBfX3VpbnQ4X3QKLStzdGF0aWMgdWludDhfdAotIHhmc19kaXIyX3NmZV9nZXRfZnR5cGUoCi0gCXN0cnVjdCB4ZnNfZGlyMl9zZl9lbnRyeSAqc2ZlcCkKLSB7Ci1AQCAtODcsMTYgKzg3LDE2IEBAIHhmc19kaXIyX3NmZV9nZXRfZnR5cGUoCi0gc3RhdGljIHZvaWQKLSB4ZnNfZGlyMl9zZmVfcHV0X2Z0eXBlKAotIAlzdHJ1Y3QgeGZzX2RpcjJfc2ZfZW50cnkgKnNmZXAsCi0tCV9fdWludDhfdAkJZnR5cGUpCi0rCXVpbnQ4X3QJCQlmdHlwZSkKLSB7Ci0gCUFTU0VSVChmdHlwZSA8IFhGU19ESVIzX0ZUX01BWCk7Ci0gfQotIAotLXN0YXRpYyBfX3VpbnQ4X3QKLStzdGF0aWMgdWludDhfdAotIHhmc19kaXIzX3NmZV9nZXRfZnR5cGUoCi0gCXN0cnVjdCB4ZnNfZGlyMl9zZl9lbnRyeSAqc2ZlcCkKLSB7Ci0tCV9fdWludDhfdAlmdHlwZTsKLSsJdWludDhfdAkJZnR5cGU7Ci0gCi0gCWZ0eXBlID0gc2ZlcC0+bmFtZVtzZmVwLT5uYW1lbGVuXTsKLSAJaWYgKGZ0eXBlID49IFhGU19ESVIzX0ZUX01BWCkKLUBAIC0xMDcsNyArMTA3LDcgQEAgeGZzX2RpcjNfc2ZlX2dldF9mdHlwZSgKLSBzdGF0aWMgdm9pZAotIHhmc19kaXIzX3NmZV9wdXRfZnR5cGUoCi0gCXN0cnVjdCB4ZnNfZGlyMl9zZl9lbnRyeSAqc2ZlcCwKLS0JX191aW50OF90CQlmdHlwZSkKLSsJdWludDhfdAkJCWZ0eXBlKQotIHsKLSAJQVNTRVJUKGZ0eXBlIDwgWEZTX0RJUjNfRlRfTUFYKTsKLSAKLUBAIC0xMjQsNyArMTI0LDcgQEAgeGZzX2RpcjNfc2ZlX3B1dF9mdHlwZSgKLSBzdGF0aWMgeGZzX2lub190Ci0geGZzX2RpcjJfc2ZfZ2V0X2lubygKLSAJc3RydWN0IHhmc19kaXIyX3NmX2hkcgkqaGRyLAotLQlfX3VpbnQ4X3QJCSpmcm9tKQotKwl1aW50OF90CQkJKmZyb20pCi0gewotIAlpZiAoaGRyLT5pOGNvdW50KQotIAkJcmV0dXJuIGdldF91bmFsaWduZWRfYmU2NChmcm9tKSAmIDB4MDBmZmZmZmZmZmZmZmZmZlVMTDsKLUBAIC0xMzUsNyArMTM1LDcgQEAgeGZzX2RpcjJfc2ZfZ2V0X2lubygKLSBzdGF0aWMgdm9pZAotIHhmc19kaXIyX3NmX3B1dF9pbm8oCi0gCXN0cnVjdCB4ZnNfZGlyMl9zZl9oZHIJKmhkciwKLS0JX191aW50OF90CQkqdG8sCi0rCXVpbnQ4X3QJCQkqdG8sCi0gCXhmc19pbm9fdAkJaW5vKQotIHsKLSAJQVNTRVJUKChpbm8gJiAweGZmMDAwMDAwMDAwMDAwMDBVTEwpID09IDApOwotQEAgLTIyNSw3ICsyMjUsNyBAQCB4ZnNfZGlyM19zZmVfcHV0X2lubygKLSAKLSAjZGVmaW5lIFhGU19ESVIzX0RBVEFfRU5UU0laRShuKQkJCQkJXAotIAlyb3VuZF91cCgob2Zmc2V0b2Yoc3RydWN0IHhmc19kaXIyX2RhdGFfZW50cnksIG5hbWVbMF0pICsgKG4pICsJXAotLQkJIHNpemVvZih4ZnNfZGlyMl9kYXRhX29mZl90KSArIHNpemVvZihfX3VpbnQ4X3QpKSwJXAotKwkJIHNpemVvZih4ZnNfZGlyMl9kYXRhX29mZl90KSArIHNpemVvZih1aW50OF90KSksCVwKLSAJCVhGU19ESVIyX0RBVEFfQUxJR04pCi0gCi0gc3RhdGljIGludAotQEAgLTI0Miw3ICsyNDIsNyBAQCB4ZnNfZGlyM19kYXRhX2VudHNpemUoCi0gCXJldHVybiBYRlNfRElSM19EQVRBX0VOVFNJWkUobik7Ci0gfQotIAotLXN0YXRpYyBfX3VpbnQ4X3QKLStzdGF0aWMgdWludDhfdAotIHhmc19kaXIyX2RhdGFfZ2V0X2Z0eXBlKAotIAlzdHJ1Y3QgeGZzX2RpcjJfZGF0YV9lbnRyeSAqZGVwKQotIHsKLUBAIC0yNTIsMTYgKzI1MiwxNiBAQCB4ZnNfZGlyMl9kYXRhX2dldF9mdHlwZSgKLSBzdGF0aWMgdm9pZAotIHhmc19kaXIyX2RhdGFfcHV0X2Z0eXBlKAotIAlzdHJ1Y3QgeGZzX2RpcjJfZGF0YV9lbnRyeSAqZGVwLAotLQlfX3VpbnQ4X3QJCWZ0eXBlKQotKwl1aW50OF90CQkJZnR5cGUpCi0gewotIAlBU1NFUlQoZnR5cGUgPCBYRlNfRElSM19GVF9NQVgpOwotIH0KLSAKLS1zdGF0aWMgX191aW50OF90Ci0rc3RhdGljIHVpbnQ4X3QKLSB4ZnNfZGlyM19kYXRhX2dldF9mdHlwZSgKLSAJc3RydWN0IHhmc19kaXIyX2RhdGFfZW50cnkgKmRlcCkKLSB7Ci0tCV9fdWludDhfdAlmdHlwZSA9IGRlcC0+bmFtZVtkZXAtPm5hbWVsZW5dOwotKwl1aW50OF90CQlmdHlwZSA9IGRlcC0+bmFtZVtkZXAtPm5hbWVsZW5dOwotIAotIAlpZiAoZnR5cGUgPj0gWEZTX0RJUjNfRlRfTUFYKQotIAkJcmV0dXJuIFhGU19ESVIzX0ZUX1VOS05PV047Ci1AQCAtMjcxLDcgKzI3MSw3IEBAIHhmc19kaXIzX2RhdGFfZ2V0X2Z0eXBlKAotIHN0YXRpYyB2b2lkCi0geGZzX2RpcjNfZGF0YV9wdXRfZnR5cGUoCi0gCXN0cnVjdCB4ZnNfZGlyMl9kYXRhX2VudHJ5ICpkZXAsCi0tCV9fdWludDhfdAkJdHlwZSkKLSsJdWludDhfdAkJCXR5cGUpCi0gewotIAlBU1NFUlQodHlwZSA8IFhGU19ESVIzX0ZUX01BWCk7Ci0gCUFTU0VSVChkZXAtPm5hbWVsZW4gIT0gMCk7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19kYV9mb3JtYXQuaCBiL2xpYnhmcy94ZnNfZGFfZm9ybWF0LmgKLWluZGV4IDlhNDkyYTllLi4zNzcxZWRjYiAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfZGFfZm9ybWF0LmgKLSsrKyBiL2xpYnhmcy94ZnNfZGFfZm9ybWF0LmgKLUBAIC0xMTEsMTEgKzExMSwxMSBAQCBzdHJ1Y3QgeGZzX2RhM19pbnRub2RlIHsKLSAgKiBhcHByb3ByaWF0ZS4KLSAgKi8KLSBzdHJ1Y3QgeGZzX2RhM19pY25vZGVfaGRyIHsKLS0JX191aW50MzJfdAlmb3J3OwotLQlfX3VpbnQzMl90CWJhY2s7Ci0tCV9fdWludDE2X3QJbWFnaWM7Ci0tCV9fdWludDE2X3QJY291bnQ7Ci0tCV9fdWludDE2X3QJbGV2ZWw7Ci0rCXVpbnQzMl90CWZvcnc7Ci0rCXVpbnQzMl90CWJhY2s7Ci0rCXVpbnQxNl90CW1hZ2ljOwotKwl1aW50MTZfdAljb3VudDsKLSsJdWludDE2X3QJbGV2ZWw7Ci0gfTsKLSAKLSAvKgotQEAgLTE4NywxNCArMTg3LDE0IEBAIHN0cnVjdCB4ZnNfZGEzX2ljbm9kZV9oZHIgewotIC8qCi0gICogQnl0ZSBvZmZzZXQgaW4gZGF0YSBibG9jayBhbmQgc2hvcnRmb3JtIGVudHJ5LgotICAqLwotLXR5cGVkZWYJX191aW50MTZfdAl4ZnNfZGlyMl9kYXRhX29mZl90OwotK3R5cGVkZWYgdWludDE2X3QJeGZzX2RpcjJfZGF0YV9vZmZfdDsKLSAjZGVmaW5lCU5VTExEQVRBT0ZGCTB4ZmZmZlUKLSB0eXBlZGVmIHVpbnQJCXhmc19kaXIyX2RhdGFfYW9mZl90OwkvKiBhcmd1bWVudCBmb3JtICovCi0gCi0gLyoKLSAgKiBPZmZzZXQgaW4gZGF0YSBzcGFjZSBvZiBhIGRhdGEgZW50cnkuCi0gICovCi0tdHlwZWRlZglfX3VpbnQzMl90CXhmc19kaXIyX2RhdGFwdHJfdDsKLSt0eXBlZGVmIHVpbnQzMl90CXhmc19kaXIyX2RhdGFwdHJfdDsKLSAjZGVmaW5lCVhGU19ESVIyX01BWF9EQVRBUFRSCSgoeGZzX2RpcjJfZGF0YXB0cl90KTB4ZmZmZmZmZmYpCi0gI2RlZmluZQlYRlNfRElSMl9OVUxMX0RBVEFQVFIJKCh4ZnNfZGlyMl9kYXRhcHRyX3QpMCkKLSAKLUBAIC0yMDYsNyArMjA2LDcgQEAgdHlwZWRlZgl4ZnNfb2ZmX3QJeGZzX2RpcjJfb2ZmX3Q7Ci0gLyoKLSAgKiBEaXJlY3RvcnkgYmxvY2sgbnVtYmVyIChsb2dpY2FsIGRpcmJsayBpbiBmaWxlKQotICAqLwotLXR5cGVkZWYJX191aW50MzJfdAl4ZnNfZGlyMl9kYl90OwotK3R5cGVkZWYgdWludDMyX3QJeGZzX2RpcjJfZGJfdDsKLSAKLSAjZGVmaW5lIFhGU19JTk8zMl9TSVpFCTQKLSAjZGVmaW5lIFhGU19JTk82NF9TSVpFCTgKLUBAIC0yMjYsOSArMjI2LDkgQEAgdHlwZWRlZglfX3VpbnQzMl90CXhmc19kaXIyX2RiX3Q7Ci0gICogb3ZlciB0aGVtLgotICAqLwotIHR5cGVkZWYgc3RydWN0IHhmc19kaXIyX3NmX2hkciB7Ci0tCV9fdWludDhfdAkJY291bnQ7CQkvKiBjb3VudCBvZiBlbnRyaWVzICovCi0tCV9fdWludDhfdAkJaThjb3VudDsJLyogY291bnQgb2YgOC1ieXRlIGlub2RlICNzICovCi0tCV9fdWludDhfdAkJcGFyZW50WzhdOwkvKiBwYXJlbnQgZGlyIGlub2RlIG51bWJlciAqLwotKwl1aW50OF90CQkJY291bnQ7CQkvKiBjb3VudCBvZiBlbnRyaWVzICovCi0rCXVpbnQ4X3QJCQlpOGNvdW50OwkvKiBjb3VudCBvZiA4LWJ5dGUgaW5vZGUgI3MgKi8KLSsJdWludDhfdAkJCXBhcmVudFs4XTsJLyogcGFyZW50IGRpciBpbm9kZSBudW1iZXIgKi8KLSB9IF9fcGFja2VkIHhmc19kaXIyX3NmX2hkcl90OwotIAotIHR5cGVkZWYgc3RydWN0IHhmc19kaXIyX3NmX2VudHJ5IHsKLUBAIC00NDcsMTEgKzQ0NywxMSBAQCBzdHJ1Y3QgeGZzX2RpcjNfbGVhZl9oZHIgewotIH07Ci0gCi0gc3RydWN0IHhmc19kaXIzX2ljbGVhZl9oZHIgewotLQlfX3VpbnQzMl90CQlmb3J3OwotLQlfX3VpbnQzMl90CQliYWNrOwotLQlfX3VpbnQxNl90CQltYWdpYzsKLS0JX191aW50MTZfdAkJY291bnQ7Ci0tCV9fdWludDE2X3QJCXN0YWxlOwotKwl1aW50MzJfdAkJZm9ydzsKLSsJdWludDMyX3QJCWJhY2s7Ci0rCXVpbnQxNl90CQltYWdpYzsKLSsJdWludDE2X3QJCWNvdW50OwotKwl1aW50MTZfdAkJc3RhbGU7Ci0gfTsKLSAKLSAvKgotQEAgLTUzOCwxMCArNTM4LDEwIEBAIHN0cnVjdCB4ZnNfZGlyM19mcmVlIHsKLSAgKiB4ZnNfZGlyM19mcmVlX2hkcl9mcm9tX2Rpc2sveGZzX2RpcjNfZnJlZV9oZHJfdG9fZGlzay4KLSAgKi8KLSBzdHJ1Y3QgeGZzX2RpcjNfaWNmcmVlX2hkciB7Ci0tCV9fdWludDMyX3QJbWFnaWM7Ci0tCV9fdWludDMyX3QJZmlyc3RkYjsKLS0JX191aW50MzJfdAludmFsaWQ7Ci0tCV9fdWludDMyX3QJbnVzZWQ7Ci0rCXVpbnQzMl90CW1hZ2ljOwotKwl1aW50MzJfdAlmaXJzdGRiOwotKwl1aW50MzJfdAludmFsaWQ7Ci0rCXVpbnQzMl90CW51c2VkOwotIAotIH07Ci0gCi1AQCAtNjMyLDEwICs2MzIsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX2F0dHJfc2hvcnRmb3JtIHsKLSAJCV9fdTgJcGFkZGluZzsKLSAJfSBoZHI7Ci0gCXN0cnVjdCB4ZnNfYXR0cl9zZl9lbnRyeSB7Ci0tCQlfX3VpbnQ4X3QgbmFtZWxlbjsJLyogYWN0dWFsIGxlbmd0aCBvZiBuYW1lIChubyBOVUxMKSAqLwotLQkJX191aW50OF90IHZhbHVlbGVuOwkvKiBhY3R1YWwgbGVuZ3RoIG9mIHZhbHVlIChubyBOVUxMKSAqLwotLQkJX191aW50OF90IGZsYWdzOwkvKiBmbGFncyBiaXRzIChzZWUgeGZzX2F0dHJfbGVhZi5oKSAqLwotLQkJX191aW50OF90IG5hbWV2YWxbMV07CS8qIG5hbWUgJiB2YWx1ZSBieXRlcyBjb25jYXRlbmF0ZWQgKi8KLSsJCXVpbnQ4X3QgbmFtZWxlbjsJLyogYWN0dWFsIGxlbmd0aCBvZiBuYW1lIChubyBOVUxMKSAqLwotKwkJdWludDhfdCB2YWx1ZWxlbjsJLyogYWN0dWFsIGxlbmd0aCBvZiB2YWx1ZSAobm8gTlVMTCkgKi8KLSsJCXVpbnQ4X3QgZmxhZ3M7CS8qIGZsYWdzIGJpdHMgKHNlZSB4ZnNfYXR0cl9sZWFmLmgpICovCi0rCQl1aW50OF90IG5hbWV2YWxbMV07CS8qIG5hbWUgJiB2YWx1ZSBieXRlcyBjb25jYXRlbmF0ZWQgKi8KLSAJfSBsaXN0WzFdOwkJCS8qIHZhcmlhYmxlIHNpemVkIGFycmF5ICovCi0gfSB4ZnNfYXR0cl9zaG9ydGZvcm1fdDsKLSAKLUBAIC03MjUsMjIgKzcyNSwyMiBAQCBzdHJ1Y3QgeGZzX2F0dHIzX2xlYWZibG9jayB7Ci0gICogaW5jb3JlLCBuZXV0cmFsIHZlcnNpb24gb2YgdGhlIGF0dHJpYnV0ZSBsZWFmIGhlYWRlcgotICAqLwotIHN0cnVjdCB4ZnNfYXR0cjNfaWNsZWFmX2hkciB7Ci0tCV9fdWludDMyX3QJZm9ydzsKLS0JX191aW50MzJfdAliYWNrOwotLQlfX3VpbnQxNl90CW1hZ2ljOwotLQlfX3VpbnQxNl90CWNvdW50OwotLQlfX3VpbnQxNl90CXVzZWRieXRlczsKLSsJdWludDMyX3QJZm9ydzsKLSsJdWludDMyX3QJYmFjazsKLSsJdWludDE2X3QJbWFnaWM7Ci0rCXVpbnQxNl90CWNvdW50OwotKwl1aW50MTZfdAl1c2VkYnl0ZXM7Ci0gCS8qCi0gCSAqIGZpcnN0dXNlZCBpcyAzMi1iaXQgaGVyZSBpbnN0ZWFkIG9mIDE2LWJpdCBsaWtlIHRoZSBvbi1kaXNrIHZhcmlhbnQKLSAJICogdG8gc3VwcG9ydCBtYXhpbXVtIGZzYiBzaXplIG9mIDY0ayB3aXRob3V0IG92ZXJmbG93IGlzc3VlcyB0aHJvdWdob3V0Ci0gCSAqIHRoZSBhdHRyIGNvZGUuIEluc3RlYWQsIHRoZSBvdmVyZmxvdyBjb25kaXRpb24gaXMgaGFuZGxlZCBvbgotIAkgKiBjb252ZXJzaW9uIHRvL2Zyb20gZGlzay4KLSAJICovCi0tCV9fdWludDMyX3QJZmlyc3R1c2VkOwotKwl1aW50MzJfdAlmaXJzdHVzZWQ7Ci0gCV9fdTgJCWhvbGVzOwotIAlzdHJ1Y3QgewotLQkJX191aW50MTZfdAliYXNlOwotLQkJX191aW50MTZfdAlzaXplOwotKwkJdWludDE2X3QJYmFzZTsKLSsJCXVpbnQxNl90CXNpemU7Ci0gCX0gZnJlZW1hcFtYRlNfQVRUUl9MRUFGX01BUFNJWkVdOwotIH07Ci0gCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19kaXIyLmggYi9saWJ4ZnMveGZzX2RpcjIuaAotaW5kZXggZDZlNmQ5ZDEuLjIxYzhmOGJmIDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19kaXIyLmgKLSsrKyBiL2xpYnhmcy94ZnNfZGlyMi5oCi1AQCAtNDcsOSArNDcsOSBAQCBzdHJ1Y3QgeGZzX2Rpcl9vcHMgewotIAlzdHJ1Y3QgeGZzX2RpcjJfc2ZfZW50cnkgKgotIAkJKCpzZl9uZXh0ZW50cnkpKHN0cnVjdCB4ZnNfZGlyMl9zZl9oZHIgKmhkciwKLSAJCQkJc3RydWN0IHhmc19kaXIyX3NmX2VudHJ5ICpzZmVwKTsKLS0JX191aW50OF90ICgqc2ZfZ2V0X2Z0eXBlKShzdHJ1Y3QgeGZzX2RpcjJfc2ZfZW50cnkgKnNmZXApOwotKwl1aW50OF90ICgqc2ZfZ2V0X2Z0eXBlKShzdHJ1Y3QgeGZzX2RpcjJfc2ZfZW50cnkgKnNmZXApOwotIAl2b2lkCSgqc2ZfcHV0X2Z0eXBlKShzdHJ1Y3QgeGZzX2RpcjJfc2ZfZW50cnkgKnNmZXAsCi0tCQkJCV9fdWludDhfdCBmdHlwZSk7Ci0rCQkJCXVpbnQ4X3QgZnR5cGUpOwotIAl4ZnNfaW5vX3QgKCpzZl9nZXRfaW5vKShzdHJ1Y3QgeGZzX2RpcjJfc2ZfaGRyICpoZHIsCi0gCQkJCXN0cnVjdCB4ZnNfZGlyMl9zZl9lbnRyeSAqc2ZlcCk7Ci0gCXZvaWQJKCpzZl9wdXRfaW5vKShzdHJ1Y3QgeGZzX2RpcjJfc2ZfaGRyICpoZHIsCi1AQCAtNjAsOSArNjAsOSBAQCBzdHJ1Y3QgeGZzX2Rpcl9vcHMgewotIAkJCQkgICAgIHhmc19pbm9fdCBpbm8pOwotIAotIAlpbnQJKCpkYXRhX2VudHNpemUpKGludCBsZW4pOwotLQlfX3VpbnQ4X3QgKCpkYXRhX2dldF9mdHlwZSkoc3RydWN0IHhmc19kaXIyX2RhdGFfZW50cnkgKmRlcCk7Ci0rCXVpbnQ4X3QgKCpkYXRhX2dldF9mdHlwZSkoc3RydWN0IHhmc19kaXIyX2RhdGFfZW50cnkgKmRlcCk7Ci0gCXZvaWQJKCpkYXRhX3B1dF9mdHlwZSkoc3RydWN0IHhmc19kaXIyX2RhdGFfZW50cnkgKmRlcCwKLS0JCQkJX191aW50OF90IGZ0eXBlKTsKLSsJCQkJdWludDhfdCBmdHlwZSk7Ci0gCV9fYmUxNiAqICgqZGF0YV9lbnRyeV90YWdfcCkoc3RydWN0IHhmc19kaXIyX2RhdGFfZW50cnkgKmRlcCk7Ci0gCXN0cnVjdCB4ZnNfZGlyMl9kYXRhX2ZyZWUgKgotIAkJKCpkYXRhX2Jlc3RmcmVlX3ApKHN0cnVjdCB4ZnNfZGlyMl9kYXRhX2hkciAqaGRyKTsKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2RpcjJfbGVhZi5jIGIvbGlieGZzL3hmc19kaXIyX2xlYWYuYwotaW5kZXggZjgwZDkxZmMuLjQwYTM1Yjg0IDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19kaXIyX2xlYWYuYwotKysrIGIvbGlieGZzL3hmc19kaXIyX2xlYWYuYwotQEAgLTE0Miw3ICsxNDIsNyBAQCB4ZnNfZGlyM19sZWFmX2NoZWNrX2ludCgKLSBzdGF0aWMgYm9vbAotIHhmc19kaXIzX2xlYWZfdmVyaWZ5KAotIAlzdHJ1Y3QgeGZzX2J1ZgkJKmJwLAotLQlfX3VpbnQxNl90CQltYWdpYykKLSsJdWludDE2X3QJCW1hZ2ljKQotIHsKLSAJc3RydWN0IHhmc19tb3VudAkqbXAgPSBicC0+Yl90YXJnZXQtPmJ0X21vdW50OwotIAlzdHJ1Y3QgeGZzX2RpcjJfbGVhZgkqbGVhZiA9IGJwLT5iX2FkZHI7Ci1AQCAtMTUxLDcgKzE1MSw3IEBAIHhmc19kaXIzX2xlYWZfdmVyaWZ5KAotIAotIAlpZiAoeGZzX3NiX3ZlcnNpb25faGFzY3JjKCZtcC0+bV9zYikpIHsKLSAJCXN0cnVjdCB4ZnNfZGlyM19sZWFmX2hkciAqbGVhZjMgPSBicC0+Yl9hZGRyOwotLQkJX191aW50MTZfdAkJbWFnaWMzOwotKwkJdWludDE2X3QJCW1hZ2ljMzsKLSAKLSAJCW1hZ2ljMyA9IChtYWdpYyA9PSBYRlNfRElSMl9MRUFGMV9NQUdJQykgPyBYRlNfRElSM19MRUFGMV9NQUdJQwotIAkJCQkJCQkgOiBYRlNfRElSM19MRUFGTl9NQUdJQzsKLUBAIC0xNzUsNyArMTc1LDcgQEAgeGZzX2RpcjNfbGVhZl92ZXJpZnkoCi0gc3RhdGljIHZvaWQKLSBfX3JlYWRfdmVyaWZ5KAotIAlzdHJ1Y3QgeGZzX2J1ZiAgKmJwLAotLQlfX3VpbnQxNl90CW1hZ2ljKQotKwl1aW50MTZfdAltYWdpYykKLSB7Ci0gCXN0cnVjdCB4ZnNfbW91bnQJKm1wID0gYnAtPmJfdGFyZ2V0LT5idF9tb3VudDsKLSAKLUBAIC0xOTIsNyArMTkyLDcgQEAgX19yZWFkX3ZlcmlmeSgKLSBzdGF0aWMgdm9pZAotIF9fd3JpdGVfdmVyaWZ5KAotIAlzdHJ1Y3QgeGZzX2J1ZiAgKmJwLAotLQlfX3VpbnQxNl90CW1hZ2ljKQotKwl1aW50MTZfdAltYWdpYykKLSB7Ci0gCXN0cnVjdCB4ZnNfbW91bnQJKm1wID0gYnAtPmJfdGFyZ2V0LT5idF9tb3VudDsKLSAJc3RydWN0IHhmc19idWZfbG9nX2l0ZW0JKmJpcCA9IGJwLT5iX2ZzcHJpdjsKLUBAIC0yOTYsNyArMjk2LDcgQEAgeGZzX2RpcjNfbGVhZl9pbml0KAotIAlzdHJ1Y3QgeGZzX3RyYW5zCSp0cCwKLSAJc3RydWN0IHhmc19idWYJCSpicCwKLSAJeGZzX2lub190CQlvd25lciwKLS0JX191aW50MTZfdAkJdHlwZSkKLSsJdWludDE2X3QJCXR5cGUpCi0gewotIAlzdHJ1Y3QgeGZzX2RpcjJfbGVhZgkqbGVhZiA9IGJwLT5iX2FkZHI7Ci0gCi1AQCAtMzQwLDcgKzM0MCw3IEBAIHhmc19kaXIzX2xlYWZfZ2V0X2J1ZigKLSAJeGZzX2RhX2FyZ3NfdAkJKmFyZ3MsCi0gCXhmc19kaXIyX2RiX3QJCWJubywKLSAJc3RydWN0IHhmc19idWYJCSoqYnBwLAotLQlfX3VpbnQxNl90CQltYWdpYykKLSsJdWludDE2X3QJCW1hZ2ljKQotIHsKLSAJc3RydWN0IHhmc19pbm9kZQkqZHAgPSBhcmdzLT5kcDsKLSAJc3RydWN0IHhmc190cmFucwkqdHAgPSBhcmdzLT50cmFuczsKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2RpcjJfcHJpdi5oIGIvbGlieGZzL3hmc19kaXIyX3ByaXYuaAotaW5kZXggMzlmODYwNGYuLjAxMWRmNGRhIDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19kaXIyX3ByaXYuaAotKysrIGIvbGlieGZzL3hmc19kaXIyX3ByaXYuaAotQEAgLTY5LDcgKzY5LDcgQEAgZXh0ZXJuIHZvaWQgeGZzX2RpcjNfbGVhZl9jb21wYWN0X3gxKHN0cnVjdCB4ZnNfZGlyM19pY2xlYWZfaGRyICpsZWFmaGRyLAotIAkJc3RydWN0IHhmc19kaXIyX2xlYWZfZW50cnkgKmVudHMsIGludCAqaW5kZXhwLAotIAkJaW50ICpsb3dzdGFsZXAsIGludCAqaGlnaHN0YWxlcCwgaW50ICpsb3dsb2dwLCBpbnQgKmhpZ2hsb2dwKTsKLSBleHRlcm4gaW50IHhmc19kaXIzX2xlYWZfZ2V0X2J1ZihzdHJ1Y3QgeGZzX2RhX2FyZ3MgKmFyZ3MsIHhmc19kaXIyX2RiX3QgYm5vLAotLQkJc3RydWN0IHhmc19idWYgKipicHAsIF9fdWludDE2X3QgbWFnaWMpOwotKwkJc3RydWN0IHhmc19idWYgKipicHAsIHVpbnQxNl90IG1hZ2ljKTsKLSBleHRlcm4gdm9pZCB4ZnNfZGlyM19sZWFmX2xvZ19lbnRzKHN0cnVjdCB4ZnNfZGFfYXJncyAqYXJncywKLSAJCXN0cnVjdCB4ZnNfYnVmICpicCwgaW50IGZpcnN0LCBpbnQgbGFzdCk7Ci0gZXh0ZXJuIHZvaWQgeGZzX2RpcjNfbGVhZl9sb2dfaGVhZGVyKHN0cnVjdCB4ZnNfZGFfYXJncyAqYXJncywKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2RpcjJfc2YuYyBiL2xpYnhmcy94ZnNfZGlyMl9zZi5jCi1pbmRleCAxOTVmODE2ZC4uMGM0NTM5ODggMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2RpcjJfc2YuYwotKysrIGIvbGlieGZzL3hmc19kaXIyX3NmLmMKLUBAIC0xMjUsNyArMTI1LDcgQEAgeGZzX2RpcjJfYmxvY2tfc2ZzaXplKAotIAkJICogQ2FsY3VsYXRlIHRoZSBuZXcgc2l6ZSwgc2VlIGlmIHdlIHNob3VsZCBnaXZlIHVwIHlldC4KLSAJCSAqLwotIAkJc2l6ZSA9IHhmc19kaXIyX3NmX2hkcl9zaXplKGk4Y291bnQpICsJLyogaGVhZGVyICovCi0tCQkgICAgICAgY291bnQgKiAzICogc2l6ZW9mKF9fdTgpICsJLyogbmFtZWxlbiArIG9mZnNldCAqLwotKwkJICAgICAgIGNvdW50ICogMyAqIHNpemVvZih1OCkgKwkJLyogbmFtZWxlbiArIG9mZnNldCAqLwotIAkJICAgICAgIG5hbWVsZW4gKwkJCS8qIG5hbWUgKi8KLSAJCSAgICAgICAoaThjb3VudCA/CQkJLyogaW51bWJlciAqLwotIAkJCQljb3VudCAqIFhGU19JTk82NF9TSVpFIDoKLUBAIC02NDUsNyArNjQ1LDcgQEAgeGZzX2RpcjJfc2ZfdmVyaWZ5KAotIAlpbnQJCQkJb2Zmc2V0OwotIAlpbnQJCQkJc2l6ZTsKLSAJaW50CQkJCWVycm9yOwotLQlfX3VpbnQ4X3QJCQlmaWxldHlwZTsKLSsJdWludDhfdAkJCQlmaWxldHlwZTsKLSAKLSAJQVNTRVJUKGlwLT5pX2QuZGlfZm9ybWF0ID09IFhGU19ESU5PREVfRk1UX0xPQ0FMKTsKLSAJLyoKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX2Zvcm1hdC5oIGIvbGlieGZzL3hmc19mb3JtYXQuaAotaW5kZXggNGMzZWQxZmQuLmE1M2YwMzVmIDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19mb3JtYXQuaAotKysrIGIvbGlieGZzL3hmc19mb3JtYXQuaAotQEAgLTEwMyw4ICsxMDMsOCBAQCBzdHJ1Y3QgeGZzX2lmb3JrOwotICAqIE11c3QgYmUgcGFkZGVkIHRvIDY0IGJpdCBhbGlnbm1lbnQuCi0gICovCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX3NiIHsKLS0JX191aW50MzJfdAlzYl9tYWdpY251bTsJLyogbWFnaWMgbnVtYmVyID09IFhGU19TQl9NQUdJQyAqLwotLQlfX3VpbnQzMl90CXNiX2Jsb2Nrc2l6ZTsJLyogbG9naWNhbCBibG9jayBzaXplLCBieXRlcyAqLwotKwl1aW50MzJfdAlzYl9tYWdpY251bTsJLyogbWFnaWMgbnVtYmVyID09IFhGU19TQl9NQUdJQyAqLwotKwl1aW50MzJfdAlzYl9ibG9ja3NpemU7CS8qIGxvZ2ljYWwgYmxvY2sgc2l6ZSwgYnl0ZXMgKi8KLSAJeGZzX3Jmc2Jsb2NrX3QJc2JfZGJsb2NrczsJLyogbnVtYmVyIG9mIGRhdGEgYmxvY2tzICovCi0gCXhmc19yZnNibG9ja190CXNiX3JibG9ja3M7CS8qIG51bWJlciBvZiByZWFsdGltZSBibG9ja3MgKi8KLSAJeGZzX3J0YmxvY2tfdAlzYl9yZXh0ZW50czsJLyogbnVtYmVyIG9mIHJlYWx0aW1lIGV4dGVudHMgKi8KLUBAIC0xMTgsNDUgKzExOCw0NSBAQCB0eXBlZGVmIHN0cnVjdCB4ZnNfc2IgewotIAl4ZnNfYWdudW1iZXJfdAlzYl9hZ2NvdW50OwkvKiBudW1iZXIgb2YgYWxsb2NhdGlvbiBncm91cHMgKi8KLSAJeGZzX2V4dGxlbl90CXNiX3JibWJsb2NrczsJLyogbnVtYmVyIG9mIHJ0IGJpdG1hcCBibG9ja3MgKi8KLSAJeGZzX2V4dGxlbl90CXNiX2xvZ2Jsb2NrczsJLyogbnVtYmVyIG9mIGxvZyBibG9ja3MgKi8KLS0JX191aW50MTZfdAlzYl92ZXJzaW9ubnVtOwkvKiBoZWFkZXIgdmVyc2lvbiA9PSBYRlNfU0JfVkVSU0lPTiAqLwotLQlfX3VpbnQxNl90CXNiX3NlY3RzaXplOwkvKiB2b2x1bWUgc2VjdG9yIHNpemUsIGJ5dGVzICovCi0tCV9fdWludDE2X3QJc2JfaW5vZGVzaXplOwkvKiBpbm9kZSBzaXplLCBieXRlcyAqLwotLQlfX3VpbnQxNl90CXNiX2lub3BibG9jazsJLyogaW5vZGVzIHBlciBibG9jayAqLwotKwl1aW50MTZfdAlzYl92ZXJzaW9ubnVtOwkvKiBoZWFkZXIgdmVyc2lvbiA9PSBYRlNfU0JfVkVSU0lPTiAqLwotKwl1aW50MTZfdAlzYl9zZWN0c2l6ZTsJLyogdm9sdW1lIHNlY3RvciBzaXplLCBieXRlcyAqLwotKwl1aW50MTZfdAlzYl9pbm9kZXNpemU7CS8qIGlub2RlIHNpemUsIGJ5dGVzICovCi0rCXVpbnQxNl90CXNiX2lub3BibG9jazsJLyogaW5vZGVzIHBlciBibG9jayAqLwotIAljaGFyCQlzYl9mbmFtZVsxMl07CS8qIGZpbGUgc3lzdGVtIG5hbWUgKi8KLS0JX191aW50OF90CXNiX2Jsb2NrbG9nOwkvKiBsb2cyIG9mIHNiX2Jsb2Nrc2l6ZSAqLwotLQlfX3VpbnQ4X3QJc2Jfc2VjdGxvZzsJLyogbG9nMiBvZiBzYl9zZWN0c2l6ZSAqLwotLQlfX3VpbnQ4X3QJc2JfaW5vZGVsb2c7CS8qIGxvZzIgb2Ygc2JfaW5vZGVzaXplICovCi0tCV9fdWludDhfdAlzYl9pbm9wYmxvZzsJLyogbG9nMiBvZiBzYl9pbm9wYmxvY2sgKi8KLS0JX191aW50OF90CXNiX2FnYmxrbG9nOwkvKiBsb2cyIG9mIHNiX2FnYmxvY2tzIChyb3VuZGVkIHVwKSAqLwotLQlfX3VpbnQ4X3QJc2JfcmV4dHNsb2c7CS8qIGxvZzIgb2Ygc2JfcmV4dGVudHMgKi8KLS0JX191aW50OF90CXNiX2lucHJvZ3Jlc3M7CS8qIG1rZnMgaXMgaW4gcHJvZ3Jlc3MsIGRvbid0IG1vdW50ICovCi0tCV9fdWludDhfdAlzYl9pbWF4X3BjdDsJLyogbWF4ICUgb2YgZnMgZm9yIGlub2RlIHNwYWNlICovCi0rCXVpbnQ4X3QJCXNiX2Jsb2NrbG9nOwkvKiBsb2cyIG9mIHNiX2Jsb2Nrc2l6ZSAqLwotKwl1aW50OF90CQlzYl9zZWN0bG9nOwkvKiBsb2cyIG9mIHNiX3NlY3RzaXplICovCi0rCXVpbnQ4X3QJCXNiX2lub2RlbG9nOwkvKiBsb2cyIG9mIHNiX2lub2Rlc2l6ZSAqLwotKwl1aW50OF90CQlzYl9pbm9wYmxvZzsJLyogbG9nMiBvZiBzYl9pbm9wYmxvY2sgKi8KLSsJdWludDhfdAkJc2JfYWdibGtsb2c7CS8qIGxvZzIgb2Ygc2JfYWdibG9ja3MgKHJvdW5kZWQgdXApICovCi0rCXVpbnQ4X3QJCXNiX3JleHRzbG9nOwkvKiBsb2cyIG9mIHNiX3JleHRlbnRzICovCi0rCXVpbnQ4X3QJCXNiX2lucHJvZ3Jlc3M7CS8qIG1rZnMgaXMgaW4gcHJvZ3Jlc3MsIGRvbid0IG1vdW50ICovCi0rCXVpbnQ4X3QJCXNiX2ltYXhfcGN0OwkvKiBtYXggJSBvZiBmcyBmb3IgaW5vZGUgc3BhY2UgKi8KLSAJCQkJCS8qIHN0YXRpc3RpY3MgKi8KLSAJLyoKLSAJICogVGhlc2UgZmllbGRzIG11c3QgcmVtYWluIGNvbnRpZ3VvdXMuICBJZiB5b3UgcmVhbGx5Ci0gCSAqIHdhbnQgdG8gY2hhbmdlIHRoZWlyIGxheW91dCwgbWFrZSBzdXJlIHlvdSBmaXggdGhlCi0gCSAqIGNvZGUgaW4geGZzX3RyYW5zX2FwcGx5X3NiX2RlbHRhcygpLgotIAkgKi8KLS0JX191aW50NjRfdAlzYl9pY291bnQ7CS8qIGFsbG9jYXRlZCBpbm9kZXMgKi8KLS0JX191aW50NjRfdAlzYl9pZnJlZTsJLyogZnJlZSBpbm9kZXMgKi8KLS0JX191aW50NjRfdAlzYl9mZGJsb2NrczsJLyogZnJlZSBkYXRhIGJsb2NrcyAqLwotLQlfX3VpbnQ2NF90CXNiX2ZyZXh0ZW50czsJLyogZnJlZSByZWFsdGltZSBleHRlbnRzICovCi0rCXVpbnQ2NF90CXNiX2ljb3VudDsJLyogYWxsb2NhdGVkIGlub2RlcyAqLwotKwl1aW50NjRfdAlzYl9pZnJlZTsJLyogZnJlZSBpbm9kZXMgKi8KLSsJdWludDY0X3QJc2JfZmRibG9ja3M7CS8qIGZyZWUgZGF0YSBibG9ja3MgKi8KLSsJdWludDY0X3QJc2JfZnJleHRlbnRzOwkvKiBmcmVlIHJlYWx0aW1lIGV4dGVudHMgKi8KLSAJLyoKLSAJICogRW5kIGNvbnRpZ3VvdXMgZmllbGRzLgotIAkgKi8KLSAJeGZzX2lub190CXNiX3VxdW90aW5vOwkvKiB1c2VyIHF1b3RhIGlub2RlICovCi0gCXhmc19pbm9fdAlzYl9ncXVvdGlubzsJLyogZ3JvdXAgcXVvdGEgaW5vZGUgKi8KLS0JX191aW50MTZfdAlzYl9xZmxhZ3M7CS8qIHF1b3RhIGZsYWdzICovCi0tCV9fdWludDhfdAlzYl9mbGFnczsJLyogbWlzYy4gZmxhZ3MgKi8KLS0JX191aW50OF90CXNiX3NoYXJlZF92bjsJLyogc2hhcmVkIHZlcnNpb24gbnVtYmVyICovCi0rCXVpbnQxNl90CXNiX3FmbGFnczsJLyogcXVvdGEgZmxhZ3MgKi8KLSsJdWludDhfdAkJc2JfZmxhZ3M7CS8qIG1pc2MuIGZsYWdzICovCi0rCXVpbnQ4X3QJCXNiX3NoYXJlZF92bjsJLyogc2hhcmVkIHZlcnNpb24gbnVtYmVyICovCi0gCXhmc19leHRsZW5fdAlzYl9pbm9hbGlnbm10OwkvKiBpbm9kZSBjaHVuayBhbGlnbm1lbnQsIGZzYmxvY2tzICovCi0tCV9fdWludDMyX3QJc2JfdW5pdDsJLyogc3RyaXBlIG9yIHJhaWQgdW5pdCAqLwotLQlfX3VpbnQzMl90CXNiX3dpZHRoOwkvKiBzdHJpcGUgb3IgcmFpZCB3aWR0aCAqLwotLQlfX3VpbnQ4X3QJc2JfZGlyYmxrbG9nOwkvKiBsb2cyIG9mIGRpciBibG9jayBzaXplIChmc2JzKSAqLwotLQlfX3VpbnQ4X3QJc2JfbG9nc2VjdGxvZzsJLyogbG9nMiBvZiB0aGUgbG9nIHNlY3RvciBzaXplICovCi0tCV9fdWludDE2X3QJc2JfbG9nc2VjdHNpemU7CS8qIHNlY3RvciBzaXplIGZvciB0aGUgbG9nLCBieXRlcyAqLwotLQlfX3VpbnQzMl90CXNiX2xvZ3N1bml0OwkvKiBzdHJpcGUgdW5pdCBzaXplIGZvciB0aGUgbG9nICovCi0tCV9fdWludDMyX3QJc2JfZmVhdHVyZXMyOwkvKiBhZGRpdGlvbmFsIGZlYXR1cmUgYml0cyAqLwotKwl1aW50MzJfdAlzYl91bml0OwkvKiBzdHJpcGUgb3IgcmFpZCB1bml0ICovCi0rCXVpbnQzMl90CXNiX3dpZHRoOwkvKiBzdHJpcGUgb3IgcmFpZCB3aWR0aCAqLwotKwl1aW50OF90CQlzYl9kaXJibGtsb2c7CS8qIGxvZzIgb2YgZGlyIGJsb2NrIHNpemUgKGZzYnMpICovCi0rCXVpbnQ4X3QJCXNiX2xvZ3NlY3Rsb2c7CS8qIGxvZzIgb2YgdGhlIGxvZyBzZWN0b3Igc2l6ZSAqLwotKwl1aW50MTZfdAlzYl9sb2dzZWN0c2l6ZTsJLyogc2VjdG9yIHNpemUgZm9yIHRoZSBsb2csIGJ5dGVzICovCi0rCXVpbnQzMl90CXNiX2xvZ3N1bml0OwkvKiBzdHJpcGUgdW5pdCBzaXplIGZvciB0aGUgbG9nICovCi0rCXVpbnQzMl90CXNiX2ZlYXR1cmVzMjsJLyogYWRkaXRpb25hbCBmZWF0dXJlIGJpdHMgKi8KLSAKLSAJLyoKLSAJICogYmFkIGZlYXR1cmVzMiBmaWVsZCBhcyBhIHJlc3VsdCBvZiBmYWlsaW5nIHRvIHBhZCB0aGUgc2Igc3RydWN0dXJlIHRvCi1AQCAtMTY3LDE3ICsxNjcsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX3NiIHsKLSAJICogdGhlIHZhbHVlIGluIHNiX2ZlYXR1cmVzMiB3aGVuIGZvcm1hdHRpbmcgdGhlIGluY29yZSBzdXBlcmJsb2NrIHRvCi0gCSAqIHRoZSBkaXNrIGJ1ZmZlci4KLSAJICovCi0tCV9fdWludDMyX3QJc2JfYmFkX2ZlYXR1cmVzMjsKLSsJdWludDMyX3QJc2JfYmFkX2ZlYXR1cmVzMjsKLSAKLSAJLyogdmVyc2lvbiA1IHN1cGVyYmxvY2sgZmllbGRzIHN0YXJ0IGhlcmUgKi8KLSAKLSAJLyogZmVhdHVyZSBtYXNrcyAqLwotLQlfX3VpbnQzMl90CXNiX2ZlYXR1cmVzX2NvbXBhdDsKLS0JX191aW50MzJfdAlzYl9mZWF0dXJlc19yb19jb21wYXQ7Ci0tCV9fdWludDMyX3QJc2JfZmVhdHVyZXNfaW5jb21wYXQ7Ci0tCV9fdWludDMyX3QJc2JfZmVhdHVyZXNfbG9nX2luY29tcGF0OwotKwl1aW50MzJfdAlzYl9mZWF0dXJlc19jb21wYXQ7Ci0rCXVpbnQzMl90CXNiX2ZlYXR1cmVzX3JvX2NvbXBhdDsKLSsJdWludDMyX3QJc2JfZmVhdHVyZXNfaW5jb21wYXQ7Ci0rCXVpbnQzMl90CXNiX2ZlYXR1cmVzX2xvZ19pbmNvbXBhdDsKLSAKLS0JX191aW50MzJfdAlzYl9jcmM7CQkvKiBzdXBlcmJsb2NrIGNyYyAqLwotKwl1aW50MzJfdAlzYl9jcmM7CQkvKiBzdXBlcmJsb2NrIGNyYyAqLwotIAl4ZnNfZXh0bGVuX3QJc2Jfc3Bpbm9fYWxpZ247CS8qIHNwYXJzZSBpbm9kZSBjaHVuayBhbGlnbm1lbnQgKi8KLSAKLSAJeGZzX2lub190CXNiX3BxdW90aW5vOwkvKiBwcm9qZWN0IHF1b3RhIGlub2RlICovCi1AQCAtNDQ5LDcgKzQ0OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZnNfc2JfdmVyc2lvbl9hZGRwcm9qaWQzMmJpdChzdHJ1Y3QgeGZzX3NiICpzYnApCi0gc3RhdGljIGlubGluZSBib29sCi0geGZzX3NiX2hhc19jb21wYXRfZmVhdHVyZSgKLSAJc3RydWN0IHhmc19zYgkqc2JwLAotLQlfX3VpbnQzMl90CWZlYXR1cmUpCi0rCXVpbnQzMl90CWZlYXR1cmUpCi0gewotIAlyZXR1cm4gKHNicC0+c2JfZmVhdHVyZXNfY29tcGF0ICYgZmVhdHVyZSkgIT0gMDsKLSB9Ci1AQCAtNDY1LDcgKzQ2NSw3IEBAIHhmc19zYl9oYXNfY29tcGF0X2ZlYXR1cmUoCi0gc3RhdGljIGlubGluZSBib29sCi0geGZzX3NiX2hhc19yb19jb21wYXRfZmVhdHVyZSgKLSAJc3RydWN0IHhmc19zYgkqc2JwLAotLQlfX3VpbnQzMl90CWZlYXR1cmUpCi0rCXVpbnQzMl90CWZlYXR1cmUpCi0gewotIAlyZXR1cm4gKHNicC0+c2JfZmVhdHVyZXNfcm9fY29tcGF0ICYgZmVhdHVyZSkgIT0gMDsKLSB9Ci1AQCAtNDgyLDcgKzQ4Miw3IEBAIHhmc19zYl9oYXNfcm9fY29tcGF0X2ZlYXR1cmUoCi0gc3RhdGljIGlubGluZSBib29sCi0geGZzX3NiX2hhc19pbmNvbXBhdF9mZWF0dXJlKAotIAlzdHJ1Y3QgeGZzX3NiCSpzYnAsCi0tCV9fdWludDMyX3QJZmVhdHVyZSkKLSsJdWludDMyX3QJZmVhdHVyZSkKLSB7Ci0gCXJldHVybiAoc2JwLT5zYl9mZWF0dXJlc19pbmNvbXBhdCAmIGZlYXR1cmUpICE9IDA7Ci0gfQotQEAgLTQ5Miw3ICs0OTIsNyBAQCB4ZnNfc2JfaGFzX2luY29tcGF0X2ZlYXR1cmUoCi0gc3RhdGljIGlubGluZSBib29sCi0geGZzX3NiX2hhc19pbmNvbXBhdF9sb2dfZmVhdHVyZSgKLSAJc3RydWN0IHhmc19zYgkqc2JwLAotLQlfX3VpbnQzMl90CWZlYXR1cmUpCi0rCXVpbnQzMl90CWZlYXR1cmUpCi0gewotIAlyZXR1cm4gKHNicC0+c2JfZmVhdHVyZXNfbG9nX2luY29tcGF0ICYgZmVhdHVyZSkgIT0gMDsKLSB9Ci1AQCAtNTk0LDggKzU5NCw4IEBAIHhmc19pc19xdW90YV9pbm9kZShzdHJ1Y3QgeGZzX3NiICpzYnAsIHhmc19pbm9fdCBpbm8pCi0gICovCi0gI2RlZmluZSBYRlNfRlNCX1RPX0IobXAsZnNibm8pCSgoeGZzX2ZzaXplX3QpKGZzYm5vKSA8PCAobXApLT5tX3NiLnNiX2Jsb2NrbG9nKQotICNkZWZpbmUgWEZTX0JfVE9fRlNCKG1wLGIpCVwKLS0JKCgoKF9fdWludDY0X3QpKGIpKSArIChtcCktPm1fYmxvY2ttYXNrKSA+PiAobXApLT5tX3NiLnNiX2Jsb2NrbG9nKQotLSNkZWZpbmUgWEZTX0JfVE9fRlNCVChtcCxiKQkoKChfX3VpbnQ2NF90KShiKSkgPj4gKG1wKS0+bV9zYi5zYl9ibG9ja2xvZykKLSsJKCgoKHVpbnQ2NF90KShiKSkgKyAobXApLT5tX2Jsb2NrbWFzaykgPj4gKG1wKS0+bV9zYi5zYl9ibG9ja2xvZykKLSsjZGVmaW5lIFhGU19CX1RPX0ZTQlQobXAsYikJKCgodWludDY0X3QpKGIpKSA+PiAobXApLT5tX3NiLnNiX2Jsb2NrbG9nKQotICNkZWZpbmUgWEZTX0JfRlNCX09GRlNFVChtcCxiKQkoKGIpICYgKG1wKS0+bV9ibG9ja21hc2spCi0gCi0gLyoKLUBAIC0xMDcyLDcgKzEwNzIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGZzX2Rpbm9kZV9wdXRfcmRldihzdHJ1Y3QgeGZzX2Rpbm9kZSAqZGlwLCB4ZnNfZGV2X3QgcmRldikKLSAgKiBuZXh0IGFnbm9fbG9nIGJpdHMgLSBhZyBudW1iZXIKLSAgKiBoaWdoIGFnbm9fbG9nLWFnYmxrbG9nLWlub3BibG9nIGJpdHMgLSAwCi0gICovCi0tI2RlZmluZQlYRlNfSU5PX01BU0soaykJCQkoX191aW50MzJfdCkoKDFVTEwgPDwgKGspKSAtIDEpCi0rI2RlZmluZQlYRlNfSU5PX01BU0soaykJCQkodWludDMyX3QpKCgxVUxMIDw8IChrKSkgLSAxKQotICNkZWZpbmUJWEZTX0lOT19PRkZTRVRfQklUUyhtcCkJCShtcCktPm1fc2Iuc2JfaW5vcGJsb2cKLSAjZGVmaW5lCVhGU19JTk9fQUdCTk9fQklUUyhtcCkJCShtcCktPm1fc2Iuc2JfYWdibGtsb2cKLSAjZGVmaW5lCVhGU19JTk9fQUdJTk9fQklUUyhtcCkJCShtcCktPm1fYWdpbm9fbG9nCi1AQCAtMTI2OSwxNiArMTI2OSwxNiBAQCB0eXBlZGVmIF9fYmUzMiB4ZnNfYWxsb2NfcHRyX3Q7Ci0gI2RlZmluZQlYRlNfRklCVF9NQUdJQwkJMHg0NjQ5NDI1NAkvKiAnRklCVCcgKi8KLSAjZGVmaW5lCVhGU19GSUJUX0NSQ19NQUdJQwkweDQ2NDk0MjMzCS8qICdGSUIzJyAqLwotIAotLXR5cGVkZWYJX191aW50NjRfdAl4ZnNfaW5vZnJlZV90OwotK3R5cGVkZWYgdWludDY0X3QJeGZzX2lub2ZyZWVfdDsKLSAjZGVmaW5lCVhGU19JTk9ERVNfUEVSX0NIVU5LCQkoTkJCWSAqIHNpemVvZih4ZnNfaW5vZnJlZV90KSkKLSAjZGVmaW5lCVhGU19JTk9ERVNfUEVSX0NIVU5LX0xPRwkoWEZTX05CQllMT0cgKyAzKQotICNkZWZpbmUJWEZTX0lOT0JUX0FMTF9GUkVFCQkoKHhmc19pbm9mcmVlX3QpLTEpCi0gI2RlZmluZQlYRlNfSU5PQlRfTUFTSyhpKQkJKCh4ZnNfaW5vZnJlZV90KTEgPDwgKGkpKQotIAotICNkZWZpbmUgWEZTX0lOT0JUX0hPTEVNQVNLX0ZVTEwJCTAJLyogaG9sZW1hc2sgZm9yIGZ1bGwgY2h1bmsgKi8KLS0jZGVmaW5lIFhGU19JTk9CVF9IT0xFTUFTS19CSVRTCQkoTkJCWSAqIHNpemVvZihfX3VpbnQxNl90KSkKLSsjZGVmaW5lIFhGU19JTk9CVF9IT0xFTUFTS19CSVRTCQkoTkJCWSAqIHNpemVvZih1aW50MTZfdCkpCi0gI2RlZmluZSBYRlNfSU5PREVTX1BFUl9IT0xFTUFTS19CSVQJXAotLQkoWEZTX0lOT0RFU19QRVJfQ0hVTksgLyAoTkJCWSAqIHNpemVvZihfX3VpbnQxNl90KSkpCi0rCShYRlNfSU5PREVTX1BFUl9DSFVOSyAvIChOQkJZICogc2l6ZW9mKHVpbnQxNl90KSkpCi0gCi0gc3RhdGljIGlubGluZSB4ZnNfaW5vZnJlZV90IHhmc19pbm9idF9tYXNrbihpbnQgaSwgaW50IG4pCi0gewotQEAgLTEzMTIsOSArMTMxMiw5IEBAIHR5cGVkZWYgc3RydWN0IHhmc19pbm9idF9yZWMgewotIAotIHR5cGVkZWYgc3RydWN0IHhmc19pbm9idF9yZWNfaW5jb3JlIHsKLSAJeGZzX2FnaW5vX3QJaXJfc3RhcnRpbm87CS8qIHN0YXJ0aW5nIGlub2RlIG51bWJlciAqLwotLQlfX3VpbnQxNl90CWlyX2hvbGVtYXNrOwkvKiBob2xlIG1hc2sgZm9yIHNwYXJzZSBjaHVua3MgKi8KLS0JX191aW50OF90CWlyX2NvdW50OwkvKiB0b3RhbCBpbm9kZSBjb3VudCAqLwotLQlfX3VpbnQ4X3QJaXJfZnJlZWNvdW50OwkvKiBjb3VudCBvZiBmcmVlIGlub2RlcyAoc2V0IGJpdHMpICovCi0rCXVpbnQxNl90CWlyX2hvbGVtYXNrOwkvKiBob2xlIG1hc2sgZm9yIHNwYXJzZSBjaHVua3MgKi8KLSsJdWludDhfdAkJaXJfY291bnQ7CS8qIHRvdGFsIGlub2RlIGNvdW50ICovCi0rCXVpbnQ4X3QJCWlyX2ZyZWVjb3VudDsJLyogY291bnQgb2YgZnJlZSBpbm9kZXMgKHNldCBiaXRzKSAqLwotIAl4ZnNfaW5vZnJlZV90CWlyX2ZyZWU7CS8qIGZyZWUgaW5vZGUgbWFzayAqLwotIH0geGZzX2lub2J0X3JlY19pbmNvcmVfdDsKLSAKLUBAIC0xMzk3LDE1ICsxMzk3LDE1IEBAIHN0cnVjdCB4ZnNfcm1hcF9yZWMgewotICAqICBybV9vZmZzZXQ6NTQtNjAgYXJlbid0IHVzZWQgYW5kIHNob3VsZCBiZSB6ZXJvCi0gICogIHJtX29mZnNldDowLTUzIGlzIHRoZSBibG9jayBvZmZzZXQgd2l0aGluIHRoZSBpbm9kZQotICAqLwotLSNkZWZpbmUgWEZTX1JNQVBfT0ZGX0FUVFJfRk9SSwkoKF9fdWludDY0X3QpMVVMTCA8PCA2MykKLS0jZGVmaW5lIFhGU19STUFQX09GRl9CTUJUX0JMT0NLCSgoX191aW50NjRfdCkxVUxMIDw8IDYyKQotLSNkZWZpbmUgWEZTX1JNQVBfT0ZGX1VOV1JJVFRFTgkoKF9fdWludDY0X3QpMVVMTCA8PCA2MSkKLSsjZGVmaW5lIFhGU19STUFQX09GRl9BVFRSX0ZPUksJKCh1aW50NjRfdCkxVUxMIDw8IDYzKQotKyNkZWZpbmUgWEZTX1JNQVBfT0ZGX0JNQlRfQkxPQ0sJKCh1aW50NjRfdCkxVUxMIDw8IDYyKQotKyNkZWZpbmUgWEZTX1JNQVBfT0ZGX1VOV1JJVFRFTgkoKHVpbnQ2NF90KTFVTEwgPDwgNjEpCi0gCi0tI2RlZmluZSBYRlNfUk1BUF9MRU5fTUFYCSgoX191aW50MzJfdCl+MFUpCi0rI2RlZmluZSBYRlNfUk1BUF9MRU5fTUFYCSgodWludDMyX3QpfjBVKQotICNkZWZpbmUgWEZTX1JNQVBfT0ZGX0ZMQUdTCShYRlNfUk1BUF9PRkZfQVRUUl9GT1JLIHwgXAotIAkJCQkgWEZTX1JNQVBfT0ZGX0JNQlRfQkxPQ0sgfCBcCi0gCQkJCSBYRlNfUk1BUF9PRkZfVU5XUklUVEVOKQotLSNkZWZpbmUgWEZTX1JNQVBfT0ZGX01BU0sJKChfX3VpbnQ2NF90KTB4M0ZGRkZGRkZGRkZGRkZVTEwpCi0rI2RlZmluZSBYRlNfUk1BUF9PRkZfTUFTSwkoKHVpbnQ2NF90KTB4M0ZGRkZGRkZGRkZGRkZVTEwpCi0gCi0gI2RlZmluZSBYRlNfUk1BUF9PRkYob2ZmKQkJKChvZmYpICYgWEZTX1JNQVBfT0ZGX01BU0spCi0gCi1AQCAtMTQzMSw4ICsxNDMxLDggQEAgc3RydWN0IHhmc19ybWFwX3JlYyB7Ci0gc3RydWN0IHhmc19ybWFwX2lyZWMgewotIAl4ZnNfYWdibG9ja190CXJtX3N0YXJ0YmxvY2s7CS8qIGV4dGVudCBzdGFydCBibG9jayAqLwotIAl4ZnNfZXh0bGVuX3QJcm1fYmxvY2tjb3VudDsJLyogZXh0ZW50IGxlbmd0aCAqLwotLQlfX3VpbnQ2NF90CXJtX293bmVyOwkvKiBleHRlbnQgb3duZXIgKi8KLS0JX191aW50NjRfdAlybV9vZmZzZXQ7CS8qIG9mZnNldCB3aXRoaW4gdGhlIG93bmVyICovCi0rCXVpbnQ2NF90CXJtX293bmVyOwkvKiBleHRlbnQgb3duZXIgKi8KLSsJdWludDY0X3QJcm1fb2Zmc2V0OwkvKiBvZmZzZXQgd2l0aGluIHRoZSBvd25lciAqLwotIAl1bnNpZ25lZCBpbnQJcm1fZmxhZ3M7CS8qIHN0YXRlIGZsYWdzICovCi0gfTsKLSAKLUBAIC0xNTQ0LDExICsxNTQ0LDExIEBAIHR5cGVkZWYgc3RydWN0IHhmc19ibWJ0X3JlYyB7Ci0gCV9fYmU2NAkJCWwwLCBsMTsKLSB9IHhmc19ibWJ0X3JlY190OwotIAotLXR5cGVkZWYgX191aW50NjRfdAl4ZnNfYm1idF9yZWNfYmFzZV90OwkvKiB1c2UgdGhpcyBmb3IgY2FzdHMgKi8KLSt0eXBlZGVmIHVpbnQ2NF90CXhmc19ibWJ0X3JlY19iYXNlX3Q7CS8qIHVzZSB0aGlzIGZvciBjYXN0cyAqLwotIHR5cGVkZWYgeGZzX2JtYnRfcmVjX3QgeGZzX2JtZHJfcmVjX3Q7Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2JtYnRfcmVjX2hvc3QgewotLQlfX3VpbnQ2NF90CQlsMCwgbDE7Ci0rCXVpbnQ2NF90CQlsMCwgbDE7Ci0gfSB4ZnNfYm1idF9yZWNfaG9zdF90OwotIAotIC8qCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19mcy5oIGIvbGlieGZzL3hmc19mcy5oCi1pbmRleCA5OWY3Zjg4MS4uOGEwYzBlZWMgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2ZzLmgKLSsrKyBiL2xpYnhmcy94ZnNfZnMuaAotQEAgLTMyMywxMCArMzIzLDEwIEBAIHR5cGVkZWYgc3RydWN0IHhmc19ic3RhdCB7Ci0gICogYW5kIHVzaW5nIHR3byAxNmJpdCB2YWx1ZXMgdG8gaG9sZCBuZXcgMzJiaXQgcHJvamlkIHdhcyBjaG9vc2VuCi0gICogdG8gcmV0YWluIGNvbXBhdGliaWxpdHkgd2l0aCAib2xkIiBmaWxlc3lzdGVtcykuCi0gICovCi0tc3RhdGljIGlubGluZSBfX3VpbnQzMl90Ci0rc3RhdGljIGlubGluZSB1aW50MzJfdAotIGJzdGF0X2dldF9wcm9qaWQoc3RydWN0IHhmc19ic3RhdCAqYnMpCi0gewotLQlyZXR1cm4gKF9fdWludDMyX3QpYnMtPmJzX3Byb2ppZF9oaSA8PCAxNiB8IGJzLT5ic19wcm9qaWRfbG87Ci0rCXJldHVybiAodWludDMyX3QpYnMtPmJzX3Byb2ppZF9oaSA8PCAxNiB8IGJzLT5ic19wcm9qaWRfbG87Ci0gfQotIAotIC8qCi1AQCAtNDcyLDEwICs0NzIsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX2hhbmRsZSB7Ci0gICovCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX3N3YXBleHQKLSB7Ci0tCV9faW50NjRfdAlzeF92ZXJzaW9uOwkvKiB2ZXJzaW9uICovCi0rCWludDY0X3QJCXN4X3ZlcnNpb247CS8qIHZlcnNpb24gKi8KLSAjZGVmaW5lIFhGU19TWF9WRVJTSU9OCQkwCi0tCV9faW50NjRfdAlzeF9mZHRhcmdldDsJLyogZmQgb2YgdGFyZ2V0IGZpbGUgKi8KLS0JX19pbnQ2NF90CXN4X2ZkdG1wOwkvKiBmZCBvZiB0bXAgZmlsZSAqLwotKwlpbnQ2NF90CQlzeF9mZHRhcmdldDsJLyogZmQgb2YgdGFyZ2V0IGZpbGUgKi8KLSsJaW50NjRfdAkJc3hfZmR0bXA7CS8qIGZkIG9mIHRtcCBmaWxlICovCi0gCXhmc19vZmZfdAlzeF9vZmZzZXQ7CS8qIG9mZnNldCBpbnRvIGZpbGUgKi8KLSAJeGZzX29mZl90CXN4X2xlbmd0aDsJLyogbGVuZyBmcm9tIG9mZnNldCAqLwotIAljaGFyCQlzeF9wYWRbMTZdOwkvKiBwYWQgc3BhY2UsIHVudXNlZCAqLwotQEAgLTU2Miw3ICs1NjIsNyBAQCB0eXBlZGVmIHN0cnVjdCB4ZnNfc3dhcGV4dAotICNkZWZpbmUgWEZTX0lPQ19BVFRSTElTVF9CWV9IQU5ETEUgICBfSU9XICgnWCcsIDEyMiwgc3RydWN0IHhmc19mc29wX2F0dHJsaXN0X2hhbmRsZXJlcSkKLSAjZGVmaW5lIFhGU19JT0NfQVRUUk1VTFRJX0JZX0hBTkRMRSAgX0lPVyAoJ1gnLCAxMjMsIHN0cnVjdCB4ZnNfZnNvcF9hdHRybXVsdGlfaGFuZGxlcmVxKQotICNkZWZpbmUgWEZTX0lPQ19GU0dFT01FVFJZCSAgICAgX0lPUiAoJ1gnLCAxMjQsIHN0cnVjdCB4ZnNfZnNvcF9nZW9tKQotLSNkZWZpbmUgWEZTX0lPQ19HT0lOR0RPV04JICAgICBfSU9SICgnWCcsIDEyNSwgX191aW50MzJfdCkKLSsjZGVmaW5lIFhGU19JT0NfR09JTkdET1dOCSAgICAgX0lPUiAoJ1gnLCAxMjUsIHVpbnQzMl90KQotIC8qCVhGU19JT0NfR0VURlNVVUlEIC0tLS0tLS0tLS0gZGVwcmVjYXRlZCAxNDAJICovCi0gCi0gLyogcmVmbGluayBpb2N0bHM7IHRoZXNlIE1VU1QgbWF0Y2ggdGhlIGJ0cmZzIGlvY3RsIGRlZmluaXRpb25zICovCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19pYWxsb2MuYyBiL2xpYnhmcy94ZnNfaWFsbG9jLmMKLWluZGV4IDU1Y2M0NTA3Li44ZDI0NTE4NCAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfaWFsbG9jLmMKLSsrKyBiL2xpYnhmcy94ZnNfaWFsbG9jLmMKLUBAIC0xMzQsOSArMTM0LDkgQEAgeGZzX2lub2J0X2dldF9yZWMoCi0gU1RBVElDIGludAotIHhmc19pbm9idF9pbnNlcnRfcmVjKAotIAlzdHJ1Y3QgeGZzX2J0cmVlX2N1cgkqY3VyLAotLQlfX3VpbnQxNl90CQlob2xlbWFzaywKLS0JX191aW50OF90CQljb3VudCwKLS0JX19pbnQzMl90CQlmcmVlY291bnQsCi0rCXVpbnQxNl90CQlob2xlbWFzaywKLSsJdWludDhfdAkJCWNvdW50LAotKwlpbnQzMl90CQkJZnJlZWNvdW50LAotIAl4ZnNfaW5vZnJlZV90CQlmcmVlLAotIAlpbnQJCQkqc3RhdCkKLSB7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19pYWxsb2NfYnRyZWUuYyBiL2xpYnhmcy94ZnNfaWFsbG9jX2J0cmVlLmMKLWluZGV4IDdiNGJlNzY2Li41YjI4MTA1NCAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfaWFsbG9jX2J0cmVlLmMKLSsrKyBiL2xpYnhmcy94ZnNfaWFsbG9jX2J0cmVlLmMKLUBAIC0yMTgsMTIgKzIxOCwxMiBAQCB4ZnNfZmlub2J0X2luaXRfcHRyX2Zyb21fY3VyKAotIAlwdHItPnMgPSBhZ2ktPmFnaV9mcmVlX3Jvb3Q7Ci0gfQotIAotLVNUQVRJQyBfX2ludDY0X3QKLStTVEFUSUMgaW50NjRfdAotIHhmc19pbm9idF9rZXlfZGlmZigKLSAJc3RydWN0IHhmc19idHJlZV9jdXIJKmN1ciwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqa2V5KQotIHsKLS0JcmV0dXJuIChfX2ludDY0X3QpYmUzMl90b19jcHUoa2V5LT5pbm9idC5pcl9zdGFydGlubykgLQotKwlyZXR1cm4gKGludDY0X3QpYmUzMl90b19jcHUoa2V5LT5pbm9idC5pcl9zdGFydGlubykgLQotIAkJCSAgY3VyLT5iY19yZWMuaS5pcl9zdGFydGlubzsKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19pbm9kZV9idWYuYyBiL2xpYnhmcy94ZnNfaW5vZGVfYnVmLmMKLWluZGV4IDI5NzI3MDFkLi5mY2M2ZmI4ZSAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfaW5vZGVfYnVmLmMKLSsrKyBiL2xpYnhmcy94ZnNfaW5vZGVfYnVmLmMKLUBAIC00NDIsNyArNDQyLDcgQEAgeGZzX2Rpbm9kZV9jYWxjX2NyYygKLSAJc3RydWN0IHhmc19tb3VudAkqbXAsCi0gCXN0cnVjdCB4ZnNfZGlub2RlCSpkaXApCi0gewotLQlfX3VpbnQzMl90CQljcmM7Ci0rCXVpbnQzMl90CQljcmM7Ci0gCi0gCWlmIChkaXAtPmRpX3ZlcnNpb24gPCAzKQotIAkJcmV0dXJuOwotZGlmZiAtLWdpdCBhL2xpYnhmcy94ZnNfaW5vZGVfYnVmLmggYi9saWJ4ZnMveGZzX2lub2RlX2J1Zi5oCi1pbmRleCA2ODQ4YTBhZi4uMDgyN2Q3ZGUgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX2lub2RlX2J1Zi5oCi0rKysgYi9saWJ4ZnMveGZzX2lub2RlX2J1Zi5oCi1AQCAtMjgsMjYgKzI4LDI2IEBAIHN0cnVjdCB4ZnNfZGlub2RlOwotICAqIGZvcm1hdCBzcGVjaWZpYyBzdHJ1Y3R1cmVzIGF0IHRoZSBhcHByb3ByaWF0ZSB0aW1lLgotICAqLwotIHN0cnVjdCB4ZnNfaWNkaW5vZGUgewotLQlfX2ludDhfdAlkaV92ZXJzaW9uOwkvKiBpbm9kZSB2ZXJzaW9uICovCi0tCV9faW50OF90CWRpX2Zvcm1hdDsJLyogZm9ybWF0IG9mIGRpX2MgZGF0YSAqLwotLQlfX3VpbnQxNl90CWRpX2ZsdXNoaXRlcjsJLyogaW5jcmVtZW50ZWQgb24gZmx1c2ggKi8KLS0JX191aW50MzJfdAlkaV91aWQ7CQkvKiBvd25lcidzIHVzZXIgaWQgKi8KLS0JX191aW50MzJfdAlkaV9naWQ7CQkvKiBvd25lcidzIGdyb3VwIGlkICovCi0tCV9fdWludDE2X3QJZGlfcHJvamlkX2xvOwkvKiBsb3dlciBwYXJ0IG9mIG93bmVyJ3MgcHJvamVjdCBpZCAqLwotLQlfX3VpbnQxNl90CWRpX3Byb2ppZF9oaTsJLyogaGlnaGVyIHBhcnQgb2Ygb3duZXIncyBwcm9qZWN0IGlkICovCi0rCWludDhfdAkJZGlfdmVyc2lvbjsJLyogaW5vZGUgdmVyc2lvbiAqLwotKwlpbnQ4X3QJCWRpX2Zvcm1hdDsJLyogZm9ybWF0IG9mIGRpX2MgZGF0YSAqLwotKwl1aW50MTZfdAlkaV9mbHVzaGl0ZXI7CS8qIGluY3JlbWVudGVkIG9uIGZsdXNoICovCi0rCXVpbnQzMl90CWRpX3VpZDsJCS8qIG93bmVyJ3MgdXNlciBpZCAqLwotKwl1aW50MzJfdAlkaV9naWQ7CQkvKiBvd25lcidzIGdyb3VwIGlkICovCi0rCXVpbnQxNl90CWRpX3Byb2ppZF9sbzsJLyogbG93ZXIgcGFydCBvZiBvd25lcidzIHByb2plY3QgaWQgKi8KLSsJdWludDE2X3QJZGlfcHJvamlkX2hpOwkvKiBoaWdoZXIgcGFydCBvZiBvd25lcidzIHByb2plY3QgaWQgKi8KLSAJeGZzX2ZzaXplX3QJZGlfc2l6ZTsJLyogbnVtYmVyIG9mIGJ5dGVzIGluIGZpbGUgKi8KLSAJeGZzX3Jmc2Jsb2NrX3QJZGlfbmJsb2NrczsJLyogIyBvZiBkaXJlY3QgJiBidHJlZSBibG9ja3MgdXNlZCAqLwotIAl4ZnNfZXh0bGVuX3QJZGlfZXh0c2l6ZTsJLyogYmFzaWMvbWluaW11bSBleHRlbnQgc2l6ZSBmb3IgZmlsZSAqLwotIAl4ZnNfZXh0bnVtX3QJZGlfbmV4dGVudHM7CS8qIG51bWJlciBvZiBleHRlbnRzIGluIGRhdGEgZm9yayAqLwotIAl4ZnNfYWV4dG51bV90CWRpX2FuZXh0ZW50czsJLyogbnVtYmVyIG9mIGV4dGVudHMgaW4gYXR0cmlidXRlIGZvcmsqLwotLQlfX3VpbnQ4X3QJZGlfZm9ya29mZjsJLyogYXR0ciBmb3JrIG9mZnMsIDw8MyBmb3IgNjRiIGFsaWduICovCi0tCV9faW50OF90CWRpX2Fmb3JtYXQ7CS8qIGZvcm1hdCBvZiBhdHRyIGZvcmsncyBkYXRhICovCi0tCV9fdWludDMyX3QJZGlfZG1ldm1hc2s7CS8qIERNSUcgZXZlbnQgbWFzayAqLwotLQlfX3VpbnQxNl90CWRpX2Rtc3RhdGU7CS8qIERNSUcgc3RhdGUgaW5mbyAqLwotLQlfX3VpbnQxNl90CWRpX2ZsYWdzOwkvKiByYW5kb20gZmxhZ3MsIFhGU19ESUZMQUdfLi4uICovCi0rCXVpbnQ4X3QJCWRpX2ZvcmtvZmY7CS8qIGF0dHIgZm9yayBvZmZzLCA8PDMgZm9yIDY0YiBhbGlnbiAqLwotKwlpbnQ4X3QJCWRpX2Fmb3JtYXQ7CS8qIGZvcm1hdCBvZiBhdHRyIGZvcmsncyBkYXRhICovCi0rCXVpbnQzMl90CWRpX2RtZXZtYXNrOwkvKiBETUlHIGV2ZW50IG1hc2sgKi8KLSsJdWludDE2X3QJZGlfZG1zdGF0ZTsJLyogRE1JRyBzdGF0ZSBpbmZvICovCi0rCXVpbnQxNl90CWRpX2ZsYWdzOwkvKiByYW5kb20gZmxhZ3MsIFhGU19ESUZMQUdfLi4uICovCi0gCi0tCV9fdWludDY0X3QJZGlfZmxhZ3MyOwkvKiBtb3JlIHJhbmRvbSBmbGFncyAqLwotLQlfX3VpbnQzMl90CWRpX2Nvd2V4dHNpemU7CS8qIGJhc2ljIGNvdyBleHRlbnQgc2l6ZSBmb3IgZmlsZSAqLwotKwl1aW50NjRfdAlkaV9mbGFnczI7CS8qIG1vcmUgcmFuZG9tIGZsYWdzICovCi0rCXVpbnQzMl90CWRpX2Nvd2V4dHNpemU7CS8qIGJhc2ljIGNvdyBleHRlbnQgc2l6ZSBmb3IgZmlsZSAqLwotIAotIAl4ZnNfaWN0aW1lc3RhbXBfdCBkaV9jcnRpbWU7CS8qIHRpbWUgY3JlYXRlZCAqLwotIH07Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc19sb2dfZm9ybWF0LmggYi9saWJ4ZnMveGZzX2xvZ19mb3JtYXQuaAotaW5kZXggN2FlNTcxZjguLjgzNzJlOWJjIDEwMDY0NAotLS0tIGEvbGlieGZzL3hmc19sb2dfZm9ybWF0LmgKLSsrKyBiL2xpYnhmcy94ZnNfbG9nX2Zvcm1hdC5oCi1AQCAtMzEsNyArMzEsNyBAQCBzdHJ1Y3QgeGZzX3RyYW5zX3JlczsKLSAgKiB0aHJvdWdoIGFsbCB0aGUgbG9nIGl0ZW1zIGRlZmluaXRpb25zIGFuZCBldmVyeXRoaW5nIHRoZXkgZW5jb2RlIGludG8gdGhlCi0gICogbG9nLgotICAqLwotLXR5cGVkZWYgX191aW50MzJfdCB4bG9nX3RpZF90OwotK3R5cGVkZWYgdWludDMyX3QgeGxvZ190aWRfdDsKLSAKLSAjZGVmaW5lIFhMT0dfTUlOX0lDTE9HUwkJMgotICNkZWZpbmUgWExPR19NQVhfSUNMT0dTCQk4Ci1AQCAtMjExLDcgKzIxMSw3IEBAIHR5cGVkZWYgc3RydWN0IHhmc19sb2dfaW92ZWMgewotIHR5cGVkZWYgc3RydWN0IHhmc190cmFuc19oZWFkZXIgewotIAl1aW50CQl0aF9tYWdpYzsJCS8qIG1hZ2ljIG51bWJlciAqLwotIAl1aW50CQl0aF90eXBlOwkJLyogdHJhbnNhY3Rpb24gdHlwZSAqLwotLQlfX2ludDMyX3QJdGhfdGlkOwkJCS8qIHRyYW5zYWN0aW9uIGlkICh1bnVzZWQpICovCi0rCWludDMyX3QJCXRoX3RpZDsJCQkvKiB0cmFuc2FjdGlvbiBpZCAodW51c2VkKSAqLwotIAl1aW50CQl0aF9udW1faXRlbXM7CQkvKiBudW0gaXRlbXMgbG9nZ2VkIGJ5IHRyYW5zICovCi0gfSB4ZnNfdHJhbnNfaGVhZGVyX3Q7Ci0gCi1AQCAtMjY1LDUyICsyNjUsNTIgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX3RyYW5zX2hlYWRlciB7Ci0gICogbXVzdCBiZSBhZGRlZCBvbiB0byB0aGUgZW5kLgotICAqLwotIHR5cGVkZWYgc3RydWN0IHhmc19pbm9kZV9sb2dfZm9ybWF0IHsKLS0JX191aW50MTZfdAkJaWxmX3R5cGU7CS8qIGlub2RlIGxvZyBpdGVtIHR5cGUgKi8KLS0JX191aW50MTZfdAkJaWxmX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0tCV9fdWludDMyX3QJCWlsZl9maWVsZHM7CS8qIGZsYWdzIGZvciBmaWVsZHMgbG9nZ2VkICovCi0tCV9fdWludDE2X3QJCWlsZl9hc2l6ZTsJLyogc2l6ZSBvZiBhdHRyIGQvZXh0L3Jvb3QgKi8KLS0JX191aW50MTZfdAkJaWxmX2RzaXplOwkvKiBzaXplIG9mIGRhdGEvZXh0L3Jvb3QgKi8KLS0JX191aW50NjRfdAkJaWxmX2lubzsJLyogaW5vZGUgbnVtYmVyICovCi0rCXVpbnQxNl90CQlpbGZfdHlwZTsJLyogaW5vZGUgbG9nIGl0ZW0gdHlwZSAqLwotKwl1aW50MTZfdAkJaWxmX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0rCXVpbnQzMl90CQlpbGZfZmllbGRzOwkvKiBmbGFncyBmb3IgZmllbGRzIGxvZ2dlZCAqLwotKwl1aW50MTZfdAkJaWxmX2FzaXplOwkvKiBzaXplIG9mIGF0dHIgZC9leHQvcm9vdCAqLwotKwl1aW50MTZfdAkJaWxmX2RzaXplOwkvKiBzaXplIG9mIGRhdGEvZXh0L3Jvb3QgKi8KLSsJdWludDY0X3QJCWlsZl9pbm87CS8qIGlub2RlIG51bWJlciAqLwotIAl1bmlvbiB7Ci0tCQlfX3VpbnQzMl90CWlsZnVfcmRldjsJLyogcmRldiB2YWx1ZSBmb3IgZGV2IGlub2RlKi8KLSsJCXVpbnQzMl90CWlsZnVfcmRldjsJLyogcmRldiB2YWx1ZSBmb3IgZGV2IGlub2RlKi8KLSAJCXV1aWRfdAkJaWxmdV91dWlkOwkvKiBtb3VudCBwb2ludCB2YWx1ZSAqLwotIAl9IGlsZl91OwotLQlfX2ludDY0X3QJCWlsZl9ibGtubzsJLyogYmxrbm8gb2YgaW5vZGUgYnVmZmVyICovCi0tCV9faW50MzJfdAkJaWxmX2xlbjsJLyogbGVuIG9mIGlub2RlIGJ1ZmZlciAqLwotLQlfX2ludDMyX3QJCWlsZl9ib2Zmc2V0OwkvKiBvZmYgb2YgaW5vZGUgaW4gYnVmZmVyICovCi0rCWludDY0X3QJCQlpbGZfYmxrbm87CS8qIGJsa25vIG9mIGlub2RlIGJ1ZmZlciAqLwotKwlpbnQzMl90CQkJaWxmX2xlbjsJLyogbGVuIG9mIGlub2RlIGJ1ZmZlciAqLwotKwlpbnQzMl90CQkJaWxmX2JvZmZzZXQ7CS8qIG9mZiBvZiBpbm9kZSBpbiBidWZmZXIgKi8KLSB9IHhmc19pbm9kZV9sb2dfZm9ybWF0X3Q7Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2lub2RlX2xvZ19mb3JtYXRfMzIgewotLQlfX3VpbnQxNl90CQlpbGZfdHlwZTsJLyogaW5vZGUgbG9nIGl0ZW0gdHlwZSAqLwotLQlfX3VpbnQxNl90CQlpbGZfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLS0JX191aW50MzJfdAkJaWxmX2ZpZWxkczsJLyogZmxhZ3MgZm9yIGZpZWxkcyBsb2dnZWQgKi8KLS0JX191aW50MTZfdAkJaWxmX2FzaXplOwkvKiBzaXplIG9mIGF0dHIgZC9leHQvcm9vdCAqLwotLQlfX3VpbnQxNl90CQlpbGZfZHNpemU7CS8qIHNpemUgb2YgZGF0YS9leHQvcm9vdCAqLwotLQlfX3VpbnQ2NF90CQlpbGZfaW5vOwkvKiBpbm9kZSBudW1iZXIgKi8KLSsJdWludDE2X3QJCWlsZl90eXBlOwkvKiBpbm9kZSBsb2cgaXRlbSB0eXBlICovCi0rCXVpbnQxNl90CQlpbGZfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLSsJdWludDMyX3QJCWlsZl9maWVsZHM7CS8qIGZsYWdzIGZvciBmaWVsZHMgbG9nZ2VkICovCi0rCXVpbnQxNl90CQlpbGZfYXNpemU7CS8qIHNpemUgb2YgYXR0ciBkL2V4dC9yb290ICovCi0rCXVpbnQxNl90CQlpbGZfZHNpemU7CS8qIHNpemUgb2YgZGF0YS9leHQvcm9vdCAqLwotKwl1aW50NjRfdAkJaWxmX2lubzsJLyogaW5vZGUgbnVtYmVyICovCi0gCXVuaW9uIHsKLS0JCV9fdWludDMyX3QJaWxmdV9yZGV2OwkvKiByZGV2IHZhbHVlIGZvciBkZXYgaW5vZGUqLwotKwkJdWludDMyX3QJaWxmdV9yZGV2OwkvKiByZGV2IHZhbHVlIGZvciBkZXYgaW5vZGUqLwotIAkJdXVpZF90CQlpbGZ1X3V1aWQ7CS8qIG1vdW50IHBvaW50IHZhbHVlICovCi0gCX0gaWxmX3U7Ci0tCV9faW50NjRfdAkJaWxmX2Jsa25vOwkvKiBibGtubyBvZiBpbm9kZSBidWZmZXIgKi8KLS0JX19pbnQzMl90CQlpbGZfbGVuOwkvKiBsZW4gb2YgaW5vZGUgYnVmZmVyICovCi0tCV9faW50MzJfdAkJaWxmX2JvZmZzZXQ7CS8qIG9mZiBvZiBpbm9kZSBpbiBidWZmZXIgKi8KLSsJaW50NjRfdAkJCWlsZl9ibGtubzsJLyogYmxrbm8gb2YgaW5vZGUgYnVmZmVyICovCi0rCWludDMyX3QJCQlpbGZfbGVuOwkvKiBsZW4gb2YgaW5vZGUgYnVmZmVyICovCi0rCWludDMyX3QJCQlpbGZfYm9mZnNldDsJLyogb2ZmIG9mIGlub2RlIGluIGJ1ZmZlciAqLwotIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSkgeGZzX2lub2RlX2xvZ19mb3JtYXRfMzJfdDsKLSAKLSB0eXBlZGVmIHN0cnVjdCB4ZnNfaW5vZGVfbG9nX2Zvcm1hdF82NCB7Ci0tCV9fdWludDE2X3QJCWlsZl90eXBlOwkvKiBpbm9kZSBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCWlsZl9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQlpbGZfZmllbGRzOwkvKiBmbGFncyBmb3IgZmllbGRzIGxvZ2dlZCAqLwotLQlfX3VpbnQxNl90CQlpbGZfYXNpemU7CS8qIHNpemUgb2YgYXR0ciBkL2V4dC9yb290ICovCi0tCV9fdWludDE2X3QJCWlsZl9kc2l6ZTsJLyogc2l6ZSBvZiBkYXRhL2V4dC9yb290ICovCi0tCV9fdWludDMyX3QJCWlsZl9wYWQ7CS8qIHBhZCBmb3IgNjQgYml0IGJvdW5kYXJ5ICovCi0tCV9fdWludDY0X3QJCWlsZl9pbm87CS8qIGlub2RlIG51bWJlciAqLwotKwl1aW50MTZfdAkJaWxmX3R5cGU7CS8qIGlub2RlIGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCWlsZl9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotKwl1aW50MzJfdAkJaWxmX2ZpZWxkczsJLyogZmxhZ3MgZm9yIGZpZWxkcyBsb2dnZWQgKi8KLSsJdWludDE2X3QJCWlsZl9hc2l6ZTsJLyogc2l6ZSBvZiBhdHRyIGQvZXh0L3Jvb3QgKi8KLSsJdWludDE2X3QJCWlsZl9kc2l6ZTsJLyogc2l6ZSBvZiBkYXRhL2V4dC9yb290ICovCi0rCXVpbnQzMl90CQlpbGZfcGFkOwkvKiBwYWQgZm9yIDY0IGJpdCBib3VuZGFyeSAqLwotKwl1aW50NjRfdAkJaWxmX2lubzsJLyogaW5vZGUgbnVtYmVyICovCi0gCXVuaW9uIHsKLS0JCV9fdWludDMyX3QJaWxmdV9yZGV2OwkvKiByZGV2IHZhbHVlIGZvciBkZXYgaW5vZGUqLwotKwkJdWludDMyX3QJaWxmdV9yZGV2OwkvKiByZGV2IHZhbHVlIGZvciBkZXYgaW5vZGUqLwotIAkJdXVpZF90CQlpbGZ1X3V1aWQ7CS8qIG1vdW50IHBvaW50IHZhbHVlICovCi0gCX0gaWxmX3U7Ci0tCV9faW50NjRfdAkJaWxmX2Jsa25vOwkvKiBibGtubyBvZiBpbm9kZSBidWZmZXIgKi8KLS0JX19pbnQzMl90CQlpbGZfbGVuOwkvKiBsZW4gb2YgaW5vZGUgYnVmZmVyICovCi0tCV9faW50MzJfdAkJaWxmX2JvZmZzZXQ7CS8qIG9mZiBvZiBpbm9kZSBpbiBidWZmZXIgKi8KLSsJaW50NjRfdAkJCWlsZl9ibGtubzsJLyogYmxrbm8gb2YgaW5vZGUgYnVmZmVyICovCi0rCWludDMyX3QJCQlpbGZfbGVuOwkvKiBsZW4gb2YgaW5vZGUgYnVmZmVyICovCi0rCWludDMyX3QJCQlpbGZfYm9mZnNldDsJLyogb2ZmIG9mIGlub2RlIGluIGJ1ZmZlciAqLwotIH0geGZzX2lub2RlX2xvZ19mb3JtYXRfNjRfdDsKLSAKLSAKLUBAIC0zNzksOCArMzc5LDggQEAgc3RhdGljIGlubGluZSBpbnQgeGZzX2lsb2dfZmRhdGEoaW50IHcpCi0gICogaW5mb3JtYXRpb24uCi0gICovCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2ljdGltZXN0YW1wIHsKLS0JX19pbnQzMl90CXRfc2VjOwkJLyogdGltZXN0YW1wIHNlY29uZHMgKi8KLS0JX19pbnQzMl90CXRfbnNlYzsJCS8qIHRpbWVzdGFtcCBuYW5vc2Vjb25kcyAqLwotKwlpbnQzMl90CQl0X3NlYzsJCS8qIHRpbWVzdGFtcCBzZWNvbmRzICovCi0rCWludDMyX3QJCXRfbnNlYzsJCS8qIHRpbWVzdGFtcCBuYW5vc2Vjb25kcyAqLwotIH0geGZzX2ljdGltZXN0YW1wX3Q7Ci0gCi0gLyoKLUBAIC0zODgsMTggKzM4OCwxOCBAQCB0eXBlZGVmIHN0cnVjdCB4ZnNfaWN0aW1lc3RhbXAgewotICAqIGtlcHQgaWRlbnRpY2FsIHRvIHN0cnVjdCB4ZnNfZGlub2RlIGV4Y2VwdCBmb3IgdGhlIGVuZGlhbm5lc3MgYW5ub3RhdGlvbnMuCi0gICovCi0gc3RydWN0IHhmc19sb2dfZGlub2RlIHsKLS0JX191aW50MTZfdAlkaV9tYWdpYzsJLyogaW5vZGUgbWFnaWMgIyA9IFhGU19ESU5PREVfTUFHSUMgKi8KLS0JX191aW50MTZfdAlkaV9tb2RlOwkvKiBtb2RlIGFuZCB0eXBlIG9mIGZpbGUgKi8KLS0JX19pbnQ4X3QJZGlfdmVyc2lvbjsJLyogaW5vZGUgdmVyc2lvbiAqLwotLQlfX2ludDhfdAlkaV9mb3JtYXQ7CS8qIGZvcm1hdCBvZiBkaV9jIGRhdGEgKi8KLS0JX191aW50OF90CWRpX3BhZDNbMl07CS8qIHVudXNlZCBpbiB2Mi8zIGlub2RlcyAqLwotLQlfX3VpbnQzMl90CWRpX3VpZDsJCS8qIG93bmVyJ3MgdXNlciBpZCAqLwotLQlfX3VpbnQzMl90CWRpX2dpZDsJCS8qIG93bmVyJ3MgZ3JvdXAgaWQgKi8KLS0JX191aW50MzJfdAlkaV9ubGluazsJLyogbnVtYmVyIG9mIGxpbmtzIHRvIGZpbGUgKi8KLS0JX191aW50MTZfdAlkaV9wcm9qaWRfbG87CS8qIGxvd2VyIHBhcnQgb2Ygb3duZXIncyBwcm9qZWN0IGlkICovCi0tCV9fdWludDE2X3QJZGlfcHJvamlkX2hpOwkvKiBoaWdoZXIgcGFydCBvZiBvd25lcidzIHByb2plY3QgaWQgKi8KLS0JX191aW50OF90CWRpX3BhZFs2XTsJLyogdW51c2VkLCB6ZXJvZWQgc3BhY2UgKi8KLS0JX191aW50MTZfdAlkaV9mbHVzaGl0ZXI7CS8qIGluY3JlbWVudGVkIG9uIGZsdXNoICovCi0rCXVpbnQxNl90CWRpX21hZ2ljOwkvKiBpbm9kZSBtYWdpYyAjID0gWEZTX0RJTk9ERV9NQUdJQyAqLwotKwl1aW50MTZfdAlkaV9tb2RlOwkvKiBtb2RlIGFuZCB0eXBlIG9mIGZpbGUgKi8KLSsJaW50OF90CQlkaV92ZXJzaW9uOwkvKiBpbm9kZSB2ZXJzaW9uICovCi0rCWludDhfdAkJZGlfZm9ybWF0OwkvKiBmb3JtYXQgb2YgZGlfYyBkYXRhICovCi0rCXVpbnQ4X3QJCWRpX3BhZDNbMl07CS8qIHVudXNlZCBpbiB2Mi8zIGlub2RlcyAqLwotKwl1aW50MzJfdAlkaV91aWQ7CQkvKiBvd25lcidzIHVzZXIgaWQgKi8KLSsJdWludDMyX3QJZGlfZ2lkOwkJLyogb3duZXIncyBncm91cCBpZCAqLwotKwl1aW50MzJfdAlkaV9ubGluazsJLyogbnVtYmVyIG9mIGxpbmtzIHRvIGZpbGUgKi8KLSsJdWludDE2X3QJZGlfcHJvamlkX2xvOwkvKiBsb3dlciBwYXJ0IG9mIG93bmVyJ3MgcHJvamVjdCBpZCAqLwotKwl1aW50MTZfdAlkaV9wcm9qaWRfaGk7CS8qIGhpZ2hlciBwYXJ0IG9mIG93bmVyJ3MgcHJvamVjdCBpZCAqLwotKwl1aW50OF90CQlkaV9wYWRbNl07CS8qIHVudXNlZCwgemVyb2VkIHNwYWNlICovCi0rCXVpbnQxNl90CWRpX2ZsdXNoaXRlcjsJLyogaW5jcmVtZW50ZWQgb24gZmx1c2ggKi8KLSAJeGZzX2ljdGltZXN0YW1wX3QgZGlfYXRpbWU7CS8qIHRpbWUgbGFzdCBhY2Nlc3NlZCAqLwotIAl4ZnNfaWN0aW1lc3RhbXBfdCBkaV9tdGltZTsJLyogdGltZSBsYXN0IG1vZGlmaWVkICovCi0gCXhmc19pY3RpbWVzdGFtcF90IGRpX2N0aW1lOwkvKiB0aW1lIGNyZWF0ZWQvaW5vZGUgbW9kaWZpZWQgKi8KLUBAIC00MDgsMjMgKzQwOCwyMyBAQCBzdHJ1Y3QgeGZzX2xvZ19kaW5vZGUgewotIAl4ZnNfZXh0bGVuX3QJZGlfZXh0c2l6ZTsJLyogYmFzaWMvbWluaW11bSBleHRlbnQgc2l6ZSBmb3IgZmlsZSAqLwotIAl4ZnNfZXh0bnVtX3QJZGlfbmV4dGVudHM7CS8qIG51bWJlciBvZiBleHRlbnRzIGluIGRhdGEgZm9yayAqLwotIAl4ZnNfYWV4dG51bV90CWRpX2FuZXh0ZW50czsJLyogbnVtYmVyIG9mIGV4dGVudHMgaW4gYXR0cmlidXRlIGZvcmsqLwotLQlfX3VpbnQ4X3QJZGlfZm9ya29mZjsJLyogYXR0ciBmb3JrIG9mZnMsIDw8MyBmb3IgNjRiIGFsaWduICovCi0tCV9faW50OF90CWRpX2Fmb3JtYXQ7CS8qIGZvcm1hdCBvZiBhdHRyIGZvcmsncyBkYXRhICovCi0tCV9fdWludDMyX3QJZGlfZG1ldm1hc2s7CS8qIERNSUcgZXZlbnQgbWFzayAqLwotLQlfX3VpbnQxNl90CWRpX2Rtc3RhdGU7CS8qIERNSUcgc3RhdGUgaW5mbyAqLwotLQlfX3VpbnQxNl90CWRpX2ZsYWdzOwkvKiByYW5kb20gZmxhZ3MsIFhGU19ESUZMQUdfLi4uICovCi0tCV9fdWludDMyX3QJZGlfZ2VuOwkJLyogZ2VuZXJhdGlvbiBudW1iZXIgKi8KLSsJdWludDhfdAkJZGlfZm9ya29mZjsJLyogYXR0ciBmb3JrIG9mZnMsIDw8MyBmb3IgNjRiIGFsaWduICovCi0rCWludDhfdAkJZGlfYWZvcm1hdDsJLyogZm9ybWF0IG9mIGF0dHIgZm9yaydzIGRhdGEgKi8KLSsJdWludDMyX3QJZGlfZG1ldm1hc2s7CS8qIERNSUcgZXZlbnQgbWFzayAqLwotKwl1aW50MTZfdAlkaV9kbXN0YXRlOwkvKiBETUlHIHN0YXRlIGluZm8gKi8KLSsJdWludDE2X3QJZGlfZmxhZ3M7CS8qIHJhbmRvbSBmbGFncywgWEZTX0RJRkxBR18uLi4gKi8KLSsJdWludDMyX3QJZGlfZ2VuOwkJLyogZ2VuZXJhdGlvbiBudW1iZXIgKi8KLSAKLSAJLyogZGlfbmV4dF91bmxpbmtlZCBpcyB0aGUgb25seSBub24tY29yZSBmaWVsZCBpbiB0aGUgb2xkIGRpbm9kZSAqLwotIAl4ZnNfYWdpbm9fdAlkaV9uZXh0X3VubGlua2VkOy8qIGFnaSB1bmxpbmtlZCBsaXN0IHB0ciAqLwotIAotIAkvKiBzdGFydCBvZiB0aGUgZXh0ZW5kZWQgZGlub2RlLCB3cml0YWJsZSBmaWVsZHMgKi8KLS0JX191aW50MzJfdAlkaV9jcmM7CQkvKiBDUkMgb2YgdGhlIGlub2RlICovCi0tCV9fdWludDY0X3QJZGlfY2hhbmdlY291bnQ7CS8qIG51bWJlciBvZiBhdHRyaWJ1dGUgY2hhbmdlcyAqLwotKwl1aW50MzJfdAlkaV9jcmM7CQkvKiBDUkMgb2YgdGhlIGlub2RlICovCi0rCXVpbnQ2NF90CWRpX2NoYW5nZWNvdW50OwkvKiBudW1iZXIgb2YgYXR0cmlidXRlIGNoYW5nZXMgKi8KLSAJeGZzX2xzbl90CWRpX2xzbjsJCS8qIGZsdXNoIHNlcXVlbmNlICovCi0tCV9fdWludDY0X3QJZGlfZmxhZ3MyOwkvKiBtb3JlIHJhbmRvbSBmbGFncyAqLwotLQlfX3VpbnQzMl90CWRpX2Nvd2V4dHNpemU7CS8qIGJhc2ljIGNvdyBleHRlbnQgc2l6ZSBmb3IgZmlsZSAqLwotLQlfX3VpbnQ4X3QJZGlfcGFkMlsxMl07CS8qIG1vcmUgcGFkZGluZyBmb3IgZnV0dXJlIGV4cGFuc2lvbiAqLwotKwl1aW50NjRfdAlkaV9mbGFnczI7CS8qIG1vcmUgcmFuZG9tIGZsYWdzICovCi0rCXVpbnQzMl90CWRpX2Nvd2V4dHNpemU7CS8qIGJhc2ljIGNvdyBleHRlbnQgc2l6ZSBmb3IgZmlsZSAqLwotKwl1aW50OF90CQlkaV9wYWQyWzEyXTsJLyogbW9yZSBwYWRkaW5nIGZvciBmdXR1cmUgZXhwYW5zaW9uICovCi0gCi0gCS8qIGZpZWxkcyBvbmx5IHdyaXR0ZW4gdG8gZHVyaW5nIGlub2RlIGNyZWF0aW9uICovCi0gCXhmc19pY3RpbWVzdGFtcF90IGRpX2NydGltZTsJLyogdGltZSBjcmVhdGVkICovCi1AQCAtNDgzLDcgKzQ4Myw3IEBAIHR5cGVkZWYgc3RydWN0IHhmc19idWZfbG9nX2Zvcm1hdCB7Ci0gCXVuc2lnbmVkIHNob3J0CWJsZl9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotIAl1bnNpZ25lZCBzaG9ydAlibGZfZmxhZ3M7CS8qIG1pc2Mgc3RhdGUgKi8KLSAJdW5zaWduZWQgc2hvcnQJYmxmX2xlbjsJLyogbnVtYmVyIG9mIGJsb2NrcyBpbiB0aGlzIGJ1ZiAqLwotLQlfX2ludDY0X3QJYmxmX2Jsa25vOwkvKiBzdGFydGluZyBibGtubyBvZiB0aGlzIGJ1ZiAqLwotKwlpbnQ2NF90CQlibGZfYmxrbm87CS8qIHN0YXJ0aW5nIGJsa25vIG9mIHRoaXMgYnVmICovCi0gCXVuc2lnbmVkIGludAlibGZfbWFwX3NpemU7CS8qIHVzZWQgc2l6ZSBvZiBkYXRhIGJpdG1hcCBpbiB3b3JkcyAqLwotIAl1bnNpZ25lZCBpbnQJYmxmX2RhdGFfbWFwW1hGU19CTEZfREFUQU1BUF9TSVpFXTsgLyogZGlydHkgYml0bWFwICovCi0gfSB4ZnNfYnVmX2xvZ19mb3JtYXRfdDsKLUBAIC01MzMsNyArNTMzLDcgQEAgeGZzX2JsZnRfdG9fZmxhZ3Moc3RydWN0IHhmc19idWZfbG9nX2Zvcm1hdCAqYmxmLCBlbnVtIHhmc19ibGZ0IHR5cGUpCi0gCWJsZi0+YmxmX2ZsYWdzIHw9ICgodHlwZSA8PCBYRlNfQkxGVF9TSElGVCkgJiBYRlNfQkxGVF9NQVNLKTsKLSB9Ci0gCi0tc3RhdGljIGlubGluZSBfX3VpbnQxNl90Ci0rc3RhdGljIGlubGluZSB1aW50MTZfdAotIHhmc19ibGZ0X2Zyb21fZmxhZ3Moc3RydWN0IHhmc19idWZfbG9nX2Zvcm1hdCAqYmxmKQotIHsKLSAJcmV0dXJuIChibGYtPmJsZl9mbGFncyAmIFhGU19CTEZUX01BU0spID4+IFhGU19CTEZUX1NISUZUOwotQEAgLTU1NCwxNCArNTU0LDE0IEBAIHR5cGVkZWYgc3RydWN0IHhmc19leHRlbnQgewotICAqIGNvbnZlcnNpb24gcm91dGluZS4KLSAgKi8KLSB0eXBlZGVmIHN0cnVjdCB4ZnNfZXh0ZW50XzMyIHsKLS0JX191aW50NjRfdAlleHRfc3RhcnQ7Ci0tCV9fdWludDMyX3QJZXh0X2xlbjsKLSsJdWludDY0X3QJZXh0X3N0YXJ0OwotKwl1aW50MzJfdAlleHRfbGVuOwotIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSkgeGZzX2V4dGVudF8zMl90OwotIAotIHR5cGVkZWYgc3RydWN0IHhmc19leHRlbnRfNjQgewotLQlfX3VpbnQ2NF90CWV4dF9zdGFydDsKLS0JX191aW50MzJfdAlleHRfbGVuOwotLQlfX3VpbnQzMl90CWV4dF9wYWQ7Ci0rCXVpbnQ2NF90CWV4dF9zdGFydDsKLSsJdWludDMyX3QJZXh0X2xlbjsKLSsJdWludDMyX3QJZXh0X3BhZDsKLSB9IHhmc19leHRlbnRfNjRfdDsKLSAKLSAvKgotQEAgLTU3MCwyNiArNTcwLDI2IEBAIHR5cGVkZWYgc3RydWN0IHhmc19leHRlbnRfNjQgewotICAqIHNpemUgaXMgZ2l2ZW4gYnkgZWZpX25leHRlbnRzLgotICAqLwotIHR5cGVkZWYgc3RydWN0IHhmc19lZmlfbG9nX2Zvcm1hdCB7Ci0tCV9fdWludDE2X3QJCWVmaV90eXBlOwkvKiBlZmkgbG9nIGl0ZW0gdHlwZSAqLwotLQlfX3VpbnQxNl90CQllZmlfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLS0JX191aW50MzJfdAkJZWZpX25leHRlbnRzOwkvKiAjIGV4dGVudHMgdG8gZnJlZSAqLwotLQlfX3VpbnQ2NF90CQllZmlfaWQ7CQkvKiBlZmkgaWRlbnRpZmllciAqLwotKwl1aW50MTZfdAkJZWZpX3R5cGU7CS8qIGVmaSBsb2cgaXRlbSB0eXBlICovCi0rCXVpbnQxNl90CQllZmlfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLSsJdWludDMyX3QJCWVmaV9uZXh0ZW50czsJLyogIyBleHRlbnRzIHRvIGZyZWUgKi8KLSsJdWludDY0X3QJCWVmaV9pZDsJCS8qIGVmaSBpZGVudGlmaWVyICovCi0gCXhmc19leHRlbnRfdAkJZWZpX2V4dGVudHNbMV07CS8qIGFycmF5IG9mIGV4dGVudHMgdG8gZnJlZSAqLwotIH0geGZzX2VmaV9sb2dfZm9ybWF0X3Q7Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2VmaV9sb2dfZm9ybWF0XzMyIHsKLS0JX191aW50MTZfdAkJZWZpX3R5cGU7CS8qIGVmaSBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCWVmaV9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQllZmlfbmV4dGVudHM7CS8qICMgZXh0ZW50cyB0byBmcmVlICovCi0tCV9fdWludDY0X3QJCWVmaV9pZDsJCS8qIGVmaSBpZGVudGlmaWVyICovCi0rCXVpbnQxNl90CQllZmlfdHlwZTsJLyogZWZpIGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCWVmaV9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotKwl1aW50MzJfdAkJZWZpX25leHRlbnRzOwkvKiAjIGV4dGVudHMgdG8gZnJlZSAqLwotKwl1aW50NjRfdAkJZWZpX2lkOwkJLyogZWZpIGlkZW50aWZpZXIgKi8KLSAJeGZzX2V4dGVudF8zMl90CQllZmlfZXh0ZW50c1sxXTsJLyogYXJyYXkgb2YgZXh0ZW50cyB0byBmcmVlICovCi0gfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSB4ZnNfZWZpX2xvZ19mb3JtYXRfMzJfdDsKLSAKLSB0eXBlZGVmIHN0cnVjdCB4ZnNfZWZpX2xvZ19mb3JtYXRfNjQgewotLQlfX3VpbnQxNl90CQllZmlfdHlwZTsJLyogZWZpIGxvZyBpdGVtIHR5cGUgKi8KLS0JX191aW50MTZfdAkJZWZpX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0tCV9fdWludDMyX3QJCWVmaV9uZXh0ZW50czsJLyogIyBleHRlbnRzIHRvIGZyZWUgKi8KLS0JX191aW50NjRfdAkJZWZpX2lkOwkJLyogZWZpIGlkZW50aWZpZXIgKi8KLSsJdWludDE2X3QJCWVmaV90eXBlOwkvKiBlZmkgbG9nIGl0ZW0gdHlwZSAqLwotKwl1aW50MTZfdAkJZWZpX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0rCXVpbnQzMl90CQllZmlfbmV4dGVudHM7CS8qICMgZXh0ZW50cyB0byBmcmVlICovCi0rCXVpbnQ2NF90CQllZmlfaWQ7CQkvKiBlZmkgaWRlbnRpZmllciAqLwotIAl4ZnNfZXh0ZW50XzY0X3QJCWVmaV9leHRlbnRzWzFdOwkvKiBhcnJheSBvZiBleHRlbnRzIHRvIGZyZWUgKi8KLSB9IHhmc19lZmlfbG9nX2Zvcm1hdF82NF90OwotIAotQEAgLTU5OSwyNiArNTk5LDI2IEBAIHR5cGVkZWYgc3RydWN0IHhmc19lZmlfbG9nX2Zvcm1hdF82NCB7Ci0gICogc2l6ZSBpcyBnaXZlbiBieSBlZmRfbmV4dGVudHM7Ci0gICovCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2VmZF9sb2dfZm9ybWF0IHsKLS0JX191aW50MTZfdAkJZWZkX3R5cGU7CS8qIGVmZCBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCWVmZF9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQllZmRfbmV4dGVudHM7CS8qICMgb2YgZXh0ZW50cyBmcmVlZCAqLwotLQlfX3VpbnQ2NF90CQllZmRfZWZpX2lkOwkvKiBpZCBvZiBjb3JyZXNwb25kaW5nIGVmaSAqLwotKwl1aW50MTZfdAkJZWZkX3R5cGU7CS8qIGVmZCBsb2cgaXRlbSB0eXBlICovCi0rCXVpbnQxNl90CQllZmRfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLSsJdWludDMyX3QJCWVmZF9uZXh0ZW50czsJLyogIyBvZiBleHRlbnRzIGZyZWVkICovCi0rCXVpbnQ2NF90CQllZmRfZWZpX2lkOwkvKiBpZCBvZiBjb3JyZXNwb25kaW5nIGVmaSAqLwotIAl4ZnNfZXh0ZW50X3QJCWVmZF9leHRlbnRzWzFdOwkvKiBhcnJheSBvZiBleHRlbnRzIGZyZWVkICovCi0gfSB4ZnNfZWZkX2xvZ19mb3JtYXRfdDsKLSAKLSB0eXBlZGVmIHN0cnVjdCB4ZnNfZWZkX2xvZ19mb3JtYXRfMzIgewotLQlfX3VpbnQxNl90CQllZmRfdHlwZTsJLyogZWZkIGxvZyBpdGVtIHR5cGUgKi8KLS0JX191aW50MTZfdAkJZWZkX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0tCV9fdWludDMyX3QJCWVmZF9uZXh0ZW50czsJLyogIyBvZiBleHRlbnRzIGZyZWVkICovCi0tCV9fdWludDY0X3QJCWVmZF9lZmlfaWQ7CS8qIGlkIG9mIGNvcnJlc3BvbmRpbmcgZWZpICovCi0rCXVpbnQxNl90CQllZmRfdHlwZTsJLyogZWZkIGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCWVmZF9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotKwl1aW50MzJfdAkJZWZkX25leHRlbnRzOwkvKiAjIG9mIGV4dGVudHMgZnJlZWQgKi8KLSsJdWludDY0X3QJCWVmZF9lZmlfaWQ7CS8qIGlkIG9mIGNvcnJlc3BvbmRpbmcgZWZpICovCi0gCXhmc19leHRlbnRfMzJfdAkJZWZkX2V4dGVudHNbMV07CS8qIGFycmF5IG9mIGV4dGVudHMgZnJlZWQgKi8KLSB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIHhmc19lZmRfbG9nX2Zvcm1hdF8zMl90OwotIAotIHR5cGVkZWYgc3RydWN0IHhmc19lZmRfbG9nX2Zvcm1hdF82NCB7Ci0tCV9fdWludDE2X3QJCWVmZF90eXBlOwkvKiBlZmQgbG9nIGl0ZW0gdHlwZSAqLwotLQlfX3VpbnQxNl90CQllZmRfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLS0JX191aW50MzJfdAkJZWZkX25leHRlbnRzOwkvKiAjIG9mIGV4dGVudHMgZnJlZWQgKi8KLS0JX191aW50NjRfdAkJZWZkX2VmaV9pZDsJLyogaWQgb2YgY29ycmVzcG9uZGluZyBlZmkgKi8KLSsJdWludDE2X3QJCWVmZF90eXBlOwkvKiBlZmQgbG9nIGl0ZW0gdHlwZSAqLwotKwl1aW50MTZfdAkJZWZkX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0rCXVpbnQzMl90CQllZmRfbmV4dGVudHM7CS8qICMgb2YgZXh0ZW50cyBmcmVlZCAqLwotKwl1aW50NjRfdAkJZWZkX2VmaV9pZDsJLyogaWQgb2YgY29ycmVzcG9uZGluZyBlZmkgKi8KLSAJeGZzX2V4dGVudF82NF90CQllZmRfZXh0ZW50c1sxXTsJLyogYXJyYXkgb2YgZXh0ZW50cyBmcmVlZCAqLwotIH0geGZzX2VmZF9sb2dfZm9ybWF0XzY0X3Q7Ci0gCi1AQCAtNjI2LDExICs2MjYsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX2VmZF9sb2dfZm9ybWF0XzY0IHsKLSAgKiBSVUkvUlVEIChyZXZlcnNlIG1hcHBpbmcpIGxvZyBmb3JtYXQgZGVmaW5pdGlvbnMKLSAgKi8KLSBzdHJ1Y3QgeGZzX21hcF9leHRlbnQgewotLQlfX3VpbnQ2NF90CQltZV9vd25lcjsKLS0JX191aW50NjRfdAkJbWVfc3RhcnRibG9jazsKLS0JX191aW50NjRfdAkJbWVfc3RhcnRvZmY7Ci0tCV9fdWludDMyX3QJCW1lX2xlbjsKLS0JX191aW50MzJfdAkJbWVfZmxhZ3M7Ci0rCXVpbnQ2NF90CQltZV9vd25lcjsKLSsJdWludDY0X3QJCW1lX3N0YXJ0YmxvY2s7Ci0rCXVpbnQ2NF90CQltZV9zdGFydG9mZjsKLSsJdWludDMyX3QJCW1lX2xlbjsKLSsJdWludDMyX3QJCW1lX2ZsYWdzOwotIH07Ci0gCi0gLyogcm1hcCBtZV9mbGFnczogdXBwZXIgYml0cyBhcmUgZmxhZ3MsIGxvd2VyIGJ5dGUgaXMgdHlwZSBjb2RlICovCi1AQCAtNjU5LDEwICs2NTksMTAgQEAgc3RydWN0IHhmc19tYXBfZXh0ZW50IHsKLSAgKiBzaXplIGlzIGdpdmVuIGJ5IHJ1aV9uZXh0ZW50cy4KLSAgKi8KLSBzdHJ1Y3QgeGZzX3J1aV9sb2dfZm9ybWF0IHsKLS0JX191aW50MTZfdAkJcnVpX3R5cGU7CS8qIHJ1aSBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCXJ1aV9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQlydWlfbmV4dGVudHM7CS8qICMgZXh0ZW50cyB0byBmcmVlICovCi0tCV9fdWludDY0X3QJCXJ1aV9pZDsJCS8qIHJ1aSBpZGVudGlmaWVyICovCi0rCXVpbnQxNl90CQlydWlfdHlwZTsJLyogcnVpIGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCXJ1aV9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotKwl1aW50MzJfdAkJcnVpX25leHRlbnRzOwkvKiAjIGV4dGVudHMgdG8gZnJlZSAqLwotKwl1aW50NjRfdAkJcnVpX2lkOwkJLyogcnVpIGlkZW50aWZpZXIgKi8KLSAJc3RydWN0IHhmc19tYXBfZXh0ZW50CXJ1aV9leHRlbnRzW107CS8qIGFycmF5IG9mIGV4dGVudHMgdG8gcm1hcCAqLwotIH07Ci0gCi1AQCAtNjgwLDE5ICs2ODAsMTkgQEAgeGZzX3J1aV9sb2dfZm9ybWF0X3NpemVvZigKLSAgKiBzaXplIGlzIGdpdmVuIGJ5IHJ1ZF9uZXh0ZW50czsKLSAgKi8KLSBzdHJ1Y3QgeGZzX3J1ZF9sb2dfZm9ybWF0IHsKLS0JX191aW50MTZfdAkJcnVkX3R5cGU7CS8qIHJ1ZCBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCXJ1ZF9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQlfX3BhZDsKLS0JX191aW50NjRfdAkJcnVkX3J1aV9pZDsJLyogaWQgb2YgY29ycmVzcG9uZGluZyBydWkgKi8KLSsJdWludDE2X3QJCXJ1ZF90eXBlOwkvKiBydWQgbG9nIGl0ZW0gdHlwZSAqLwotKwl1aW50MTZfdAkJcnVkX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0rCXVpbnQzMl90CQlfX3BhZDsKLSsJdWludDY0X3QJCXJ1ZF9ydWlfaWQ7CS8qIGlkIG9mIGNvcnJlc3BvbmRpbmcgcnVpICovCi0gfTsKLSAKLSAvKgotICAqIENVSS9DVUQgKHJlZmNvdW50IHVwZGF0ZSkgbG9nIGZvcm1hdCBkZWZpbml0aW9ucwotICAqLwotIHN0cnVjdCB4ZnNfcGh5c19leHRlbnQgewotLQlfX3VpbnQ2NF90CQlwZV9zdGFydGJsb2NrOwotLQlfX3VpbnQzMl90CQlwZV9sZW47Ci0tCV9fdWludDMyX3QJCXBlX2ZsYWdzOwotKwl1aW50NjRfdAkJcGVfc3RhcnRibG9jazsKLSsJdWludDMyX3QJCXBlX2xlbjsKLSsJdWludDMyX3QJCXBlX2ZsYWdzOwotIH07Ci0gCi0gLyogcmVmY291bnQgcGVfZmxhZ3M6IHVwcGVyIGJpdHMgYXJlIGZsYWdzLCBsb3dlciBieXRlIGlzIHR5cGUgY29kZSAqLwotQEAgLTcwNywxMCArNzA3LDEwIEBAIHN0cnVjdCB4ZnNfcGh5c19leHRlbnQgewotICAqIHNpemUgaXMgZ2l2ZW4gYnkgY3VpX25leHRlbnRzLgotICAqLwotIHN0cnVjdCB4ZnNfY3VpX2xvZ19mb3JtYXQgewotLQlfX3VpbnQxNl90CQljdWlfdHlwZTsJLyogY3VpIGxvZyBpdGVtIHR5cGUgKi8KLS0JX191aW50MTZfdAkJY3VpX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0tCV9fdWludDMyX3QJCWN1aV9uZXh0ZW50czsJLyogIyBleHRlbnRzIHRvIGZyZWUgKi8KLS0JX191aW50NjRfdAkJY3VpX2lkOwkJLyogY3VpIGlkZW50aWZpZXIgKi8KLSsJdWludDE2X3QJCWN1aV90eXBlOwkvKiBjdWkgbG9nIGl0ZW0gdHlwZSAqLwotKwl1aW50MTZfdAkJY3VpX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0rCXVpbnQzMl90CQljdWlfbmV4dGVudHM7CS8qICMgZXh0ZW50cyB0byBmcmVlICovCi0rCXVpbnQ2NF90CQljdWlfaWQ7CQkvKiBjdWkgaWRlbnRpZmllciAqLwotIAlzdHJ1Y3QgeGZzX3BoeXNfZXh0ZW50CWN1aV9leHRlbnRzW107CS8qIGFycmF5IG9mIGV4dGVudHMgKi8KLSB9OwotIAotQEAgLTcyOCwxMCArNzI4LDEwIEBAIHhmc19jdWlfbG9nX2Zvcm1hdF9zaXplb2YoCi0gICogc2l6ZSBpcyBnaXZlbiBieSBjdWRfbmV4dGVudHM7Ci0gICovCi0gc3RydWN0IHhmc19jdWRfbG9nX2Zvcm1hdCB7Ci0tCV9fdWludDE2X3QJCWN1ZF90eXBlOwkvKiBjdWQgbG9nIGl0ZW0gdHlwZSAqLwotLQlfX3VpbnQxNl90CQljdWRfc2l6ZTsJLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLS0JX191aW50MzJfdAkJX19wYWQ7Ci0tCV9fdWludDY0X3QJCWN1ZF9jdWlfaWQ7CS8qIGlkIG9mIGNvcnJlc3BvbmRpbmcgY3VpICovCi0rCXVpbnQxNl90CQljdWRfdHlwZTsJLyogY3VkIGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCWN1ZF9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotKwl1aW50MzJfdAkJX19wYWQ7Ci0rCXVpbnQ2NF90CQljdWRfY3VpX2lkOwkvKiBpZCBvZiBjb3JyZXNwb25kaW5nIGN1aSAqLwotIH07Ci0gCi0gLyoKLUBAIC03NTUsMTAgKzc1NSwxMCBAQCBzdHJ1Y3QgeGZzX2N1ZF9sb2dfZm9ybWF0IHsKLSAgKiBzaXplIGlzIGdpdmVuIGJ5IGJ1aV9uZXh0ZW50cy4KLSAgKi8KLSBzdHJ1Y3QgeGZzX2J1aV9sb2dfZm9ybWF0IHsKLS0JX191aW50MTZfdAkJYnVpX3R5cGU7CS8qIGJ1aSBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCWJ1aV9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQlidWlfbmV4dGVudHM7CS8qICMgZXh0ZW50cyB0byBmcmVlICovCi0tCV9fdWludDY0X3QJCWJ1aV9pZDsJCS8qIGJ1aSBpZGVudGlmaWVyICovCi0rCXVpbnQxNl90CQlidWlfdHlwZTsJLyogYnVpIGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCWJ1aV9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotKwl1aW50MzJfdAkJYnVpX25leHRlbnRzOwkvKiAjIGV4dGVudHMgdG8gZnJlZSAqLwotKwl1aW50NjRfdAkJYnVpX2lkOwkJLyogYnVpIGlkZW50aWZpZXIgKi8KLSAJc3RydWN0IHhmc19tYXBfZXh0ZW50CWJ1aV9leHRlbnRzW107CS8qIGFycmF5IG9mIGV4dGVudHMgdG8gYm1hcCAqLwotIH07Ci0gCi1AQCAtNzc2LDEwICs3NzYsMTAgQEAgeGZzX2J1aV9sb2dfZm9ybWF0X3NpemVvZigKLSAgKiBzaXplIGlzIGdpdmVuIGJ5IGJ1ZF9uZXh0ZW50czsKLSAgKi8KLSBzdHJ1Y3QgeGZzX2J1ZF9sb2dfZm9ybWF0IHsKLS0JX191aW50MTZfdAkJYnVkX3R5cGU7CS8qIGJ1ZCBsb2cgaXRlbSB0eXBlICovCi0tCV9fdWludDE2X3QJCWJ1ZF9zaXplOwkvKiBzaXplIG9mIHRoaXMgaXRlbSAqLwotLQlfX3VpbnQzMl90CQlfX3BhZDsKLS0JX191aW50NjRfdAkJYnVkX2J1aV9pZDsJLyogaWQgb2YgY29ycmVzcG9uZGluZyBidWkgKi8KLSsJdWludDE2X3QJCWJ1ZF90eXBlOwkvKiBidWQgbG9nIGl0ZW0gdHlwZSAqLwotKwl1aW50MTZfdAkJYnVkX3NpemU7CS8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0rCXVpbnQzMl90CQlfX3BhZDsKLSsJdWludDY0X3QJCWJ1ZF9idWlfaWQ7CS8qIGlkIG9mIGNvcnJlc3BvbmRpbmcgYnVpICovCi0gfTsKLSAKLSAvKgotQEAgLTc4OSwxMiArNzg5LDEyIEBAIHN0cnVjdCB4ZnNfYnVkX2xvZ19mb3JtYXQgewotICAqIDMyIGJpdHMgOiBsb2dfcmVjb3ZlcnkgY29kZSBhc3N1bWVzIHRoYXQuCi0gICovCi0gdHlwZWRlZiBzdHJ1Y3QgeGZzX2RxX2xvZ2Zvcm1hdCB7Ci0tCV9fdWludDE2X3QJCXFsZl90eXBlOyAgICAgIC8qIGRxdW90IGxvZyBpdGVtIHR5cGUgKi8KLS0JX191aW50MTZfdAkJcWxmX3NpemU7ICAgICAgLyogc2l6ZSBvZiB0aGlzIGl0ZW0gKi8KLSsJdWludDE2X3QJCXFsZl90eXBlOyAgICAgIC8qIGRxdW90IGxvZyBpdGVtIHR5cGUgKi8KLSsJdWludDE2X3QJCXFsZl9zaXplOyAgICAgIC8qIHNpemUgb2YgdGhpcyBpdGVtICovCi0gCXhmc19kcWlkX3QJCXFsZl9pZDsJICAgICAgIC8qIHVzci9ncnAvcHJvaiBpZCA6IDMyIGJpdHMgKi8KLS0JX19pbnQ2NF90CQlxbGZfYmxrbm87ICAgICAvKiBibGtubyBvZiBkcXVvdCBidWZmZXIgKi8KLS0JX19pbnQzMl90CQlxbGZfbGVuOyAgICAgICAvKiBsZW4gb2YgZHF1b3QgYnVmZmVyICovCi0tCV9fdWludDMyX3QJCXFsZl9ib2Zmc2V0OyAgIC8qIG9mZiBvZiBkcXVvdCBpbiBidWZmZXIgKi8KLSsJaW50NjRfdAkJCXFsZl9ibGtubzsgICAgIC8qIGJsa25vIG9mIGRxdW90IGJ1ZmZlciAqLwotKwlpbnQzMl90CQkJcWxmX2xlbjsgICAgICAgLyogbGVuIG9mIGRxdW90IGJ1ZmZlciAqLwotKwl1aW50MzJfdAkJcWxmX2JvZmZzZXQ7ICAgLyogb2ZmIG9mIGRxdW90IGluIGJ1ZmZlciAqLwotIH0geGZzX2RxX2xvZ2Zvcm1hdF90OwotIAotIC8qCi1AQCAtODUzLDggKzg1Myw4IEBAIHR5cGVkZWYgc3RydWN0IHhmc19xb2ZmX2xvZ2Zvcm1hdCB7Ci0gICogZGVjb2RpbmcgY2FuIGJlIGRvbmUgY29ycmVjdGx5LgotICAqLwotIHN0cnVjdCB4ZnNfaWNyZWF0ZV9sb2cgewotLQlfX3VpbnQxNl90CWljbF90eXBlOwkvKiB0eXBlIG9mIGxvZyBmb3JtYXQgc3RydWN0dXJlICovCi0tCV9fdWludDE2X3QJaWNsX3NpemU7CS8qIHNpemUgb2YgbG9nIGZvcm1hdCBzdHJ1Y3R1cmUgKi8KLSsJdWludDE2X3QJaWNsX3R5cGU7CS8qIHR5cGUgb2YgbG9nIGZvcm1hdCBzdHJ1Y3R1cmUgKi8KLSsJdWludDE2X3QJaWNsX3NpemU7CS8qIHNpemUgb2YgbG9nIGZvcm1hdCBzdHJ1Y3R1cmUgKi8KLSAJX19iZTMyCQlpY2xfYWc7CQkvKiBhZyBiZWluZyBhbGxvY2F0ZWQgaW4gKi8KLSAJX19iZTMyCQlpY2xfYWdibm87CS8qIHN0YXJ0IGJsb2NrIG9mIGlub2RlIHJhbmdlICovCi0gCV9fYmUzMgkJaWNsX2NvdW50OwkvKiBudW1iZXIgb2YgaW5vZGVzIHRvIGluaXRpYWxpc2UgKi8KLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX3F1b3RhX2RlZnMuaCBiL2xpYnhmcy94ZnNfcXVvdGFfZGVmcy5oCi1pbmRleCA4ZWVkNTEyNy4uZDY5Yzc3MjIgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX3F1b3RhX2RlZnMuaAotKysrIGIvbGlieGZzL3hmc19xdW90YV9kZWZzLmgKLUBAIC0yNyw4ICsyNyw4IEBACi0gICogdGhleSBtYXkgbmVlZCA2NC1iaXQgYWNjb3VudGluZy4gSGVuY2UsIDY0LWJpdCBxdW90YS1jb3VudGVycywKLSAgKiBhbmQgcXVvdGEtbGltaXRzLiBUaGlzIGlzIGEgd2FzdGUgaW4gdGhlIGNvbW1vbiBjYXNlLCBidXQgaGV5IC4uLgotICAqLwotLXR5cGVkZWYgX191aW50NjRfdAl4ZnNfcWNudF90OwotLXR5cGVkZWYgX191aW50MTZfdAl4ZnNfcXdhcm5jbnRfdDsKLSt0eXBlZGVmIHVpbnQ2NF90CXhmc19xY250X3Q7Ci0rdHlwZWRlZiB1aW50MTZfdAl4ZnNfcXdhcm5jbnRfdDsKLSAKLSAvKgotICAqIGZsYWdzIGZvciBxX2ZsYWdzIGZpZWxkIGluIHRoZSBkcXVvdC4KLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX3JlZmNvdW50X2J0cmVlLmMgYi9saWJ4ZnMveGZzX3JlZmNvdW50X2J0cmVlLmMKLWluZGV4IDI4MTRmOTRmLi5iZDFhOGYyZCAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfcmVmY291bnRfYnRyZWUuYwotKysrIGIvbGlieGZzL3hmc19yZWZjb3VudF9idHJlZS5jCi1AQCAtMjAxLDcgKzIwMSw3IEBAIHhmc19yZWZjb3VudGJ0X2luaXRfcHRyX2Zyb21fY3VyKAotIAlwdHItPnMgPSBhZ2YtPmFnZl9yZWZjb3VudF9yb290OwotIH0KLSAKLS1TVEFUSUMgX19pbnQ2NF90Ci0rU1RBVElDIGludDY0X3QKLSB4ZnNfcmVmY291bnRidF9rZXlfZGlmZigKLSAJc3RydWN0IHhmc19idHJlZV9jdXIJKmN1ciwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqa2V5KQotQEAgLTIwOSwxNiArMjA5LDE2IEBAIHhmc19yZWZjb3VudGJ0X2tleV9kaWZmKAotIAlzdHJ1Y3QgeGZzX3JlZmNvdW50X2lyZWMJKnJlYyA9ICZjdXItPmJjX3JlYy5yYzsKLSAJc3RydWN0IHhmc19yZWZjb3VudF9rZXkJCSprcCA9ICZrZXktPnJlZmM7Ci0gCi0tCXJldHVybiAoX19pbnQ2NF90KWJlMzJfdG9fY3B1KGtwLT5yY19zdGFydGJsb2NrKSAtIHJlYy0+cmNfc3RhcnRibG9jazsKLSsJcmV0dXJuIChpbnQ2NF90KWJlMzJfdG9fY3B1KGtwLT5yY19zdGFydGJsb2NrKSAtIHJlYy0+cmNfc3RhcnRibG9jazsKLSB9Ci0gCi0tU1RBVElDIF9faW50NjRfdAotK1NUQVRJQyBpbnQ2NF90Ci0geGZzX3JlZmNvdW50YnRfZGlmZl90d29fa2V5cygKLSAJc3RydWN0IHhmc19idHJlZV9jdXIJKmN1ciwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqazEsCi0gCXVuaW9uIHhmc19idHJlZV9rZXkJKmsyKQotIHsKLS0JcmV0dXJuIChfX2ludDY0X3QpYmUzMl90b19jcHUoazEtPnJlZmMucmNfc3RhcnRibG9jaykgLQotKwlyZXR1cm4gKGludDY0X3QpYmUzMl90b19jcHUoazEtPnJlZmMucmNfc3RhcnRibG9jaykgLQotIAkJCSAgYmUzMl90b19jcHUoazItPnJlZmMucmNfc3RhcnRibG9jayk7Ci0gfQotIAotZGlmZiAtLWdpdCBhL2xpYnhmcy94ZnNfcm1hcC5jIGIvbGlieGZzL3hmc19ybWFwLmMKLWluZGV4IGY3ODc3MWQxLi4wZDZiNWQ0MSAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfcm1hcC5jCi0rKysgYi9saWJ4ZnMveGZzX3JtYXAuYwotQEAgLTIwNTksNyArMjA1OSw3IEBAIGludAotIHhmc19ybWFwX2ZpbmlzaF9vbmUoCi0gCXN0cnVjdCB4ZnNfdHJhbnMJCSp0cCwKLSAJZW51bSB4ZnNfcm1hcF9pbnRlbnRfdHlwZQl0eXBlLAotLQlfX3VpbnQ2NF90CQkJb3duZXIsCi0rCXVpbnQ2NF90CQkJb3duZXIsCi0gCWludAkJCQl3aGljaGZvcmssCi0gCXhmc19maWxlb2ZmX3QJCQlzdGFydG9mZiwKLSAJeGZzX2ZzYmxvY2tfdAkJCXN0YXJ0YmxvY2ssCi1AQCAtMjE4MCw3ICsyMTgwLDcgQEAgX194ZnNfcm1hcF9hZGQoCi0gCXN0cnVjdCB4ZnNfbW91bnQJCSptcCwKLSAJc3RydWN0IHhmc19kZWZlcl9vcHMJCSpkZm9wcywKLSAJZW51bSB4ZnNfcm1hcF9pbnRlbnRfdHlwZQl0eXBlLAotLQlfX3VpbnQ2NF90CQkJb3duZXIsCi0rCXVpbnQ2NF90CQkJb3duZXIsCi0gCWludAkJCQl3aGljaGZvcmssCi0gCXN0cnVjdCB4ZnNfYm1idF9pcmVjCQkqYm1hcCkKLSB7Ci1AQCAtMjI2NCw3ICsyMjY0LDcgQEAgeGZzX3JtYXBfYWxsb2NfZXh0ZW50KAotIAl4ZnNfYWdudW1iZXJfdAkJYWdubywKLSAJeGZzX2FnYmxvY2tfdAkJYm5vLAotIAl4ZnNfZXh0bGVuX3QJCWxlbiwKLS0JX191aW50NjRfdAkJb3duZXIpCi0rCXVpbnQ2NF90CQlvd25lcikKLSB7Ci0gCXN0cnVjdCB4ZnNfYm1idF9pcmVjCWJtYXA7Ci0gCi1AQCAtMjI4OCw3ICsyMjg4LDcgQEAgeGZzX3JtYXBfZnJlZV9leHRlbnQoCi0gCXhmc19hZ251bWJlcl90CQlhZ25vLAotIAl4ZnNfYWdibG9ja190CQlibm8sCi0gCXhmc19leHRsZW5fdAkJbGVuLAotLQlfX3VpbnQ2NF90CQlvd25lcikKLSsJdWludDY0X3QJCW93bmVyKQotIHsKLSAJc3RydWN0IHhmc19ibWJ0X2lyZWMJYm1hcDsKLSAKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX3JtYXAuaCBiL2xpYnhmcy94ZnNfcm1hcC5oCi1pbmRleCA5OGY5MDhmZS4uMjY1MTE2ZDAgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX3JtYXAuaAotKysrIGIvbGlieGZzL3hmc19ybWFwLmgKLUBAIC0xNzksNyArMTc5LDcgQEAgZW51bSB4ZnNfcm1hcF9pbnRlbnRfdHlwZSB7Ci0gc3RydWN0IHhmc19ybWFwX2ludGVudCB7Ci0gCXN0cnVjdCBsaXN0X2hlYWQJCQlyaV9saXN0OwotIAllbnVtIHhmc19ybWFwX2ludGVudF90eXBlCQlyaV90eXBlOwotLQlfX3VpbnQ2NF90CQkJCXJpX293bmVyOwotKwl1aW50NjRfdAkJCQlyaV9vd25lcjsKLSAJaW50CQkJCQlyaV93aGljaGZvcms7Ci0gCXN0cnVjdCB4ZnNfYm1idF9pcmVjCQkJcmlfYm1hcDsKLSB9OwotQEAgLTE5NiwxNSArMTk2LDE1IEBAIGludCB4ZnNfcm1hcF9jb252ZXJ0X2V4dGVudChzdHJ1Y3QgeGZzX21vdW50ICptcCwgc3RydWN0IHhmc19kZWZlcl9vcHMgKmRmb3BzLAotIAkJc3RydWN0IHhmc19ibWJ0X2lyZWMgKmltYXApOwotIGludCB4ZnNfcm1hcF9hbGxvY19leHRlbnQoc3RydWN0IHhmc19tb3VudCAqbXAsIHN0cnVjdCB4ZnNfZGVmZXJfb3BzICpkZm9wcywKLSAJCXhmc19hZ251bWJlcl90IGFnbm8sIHhmc19hZ2Jsb2NrX3QgYm5vLCB4ZnNfZXh0bGVuX3QgbGVuLAotLQkJX191aW50NjRfdCBvd25lcik7Ci0rCQl1aW50NjRfdCBvd25lcik7Ci0gaW50IHhmc19ybWFwX2ZyZWVfZXh0ZW50KHN0cnVjdCB4ZnNfbW91bnQgKm1wLCBzdHJ1Y3QgeGZzX2RlZmVyX29wcyAqZGZvcHMsCi0gCQl4ZnNfYWdudW1iZXJfdCBhZ25vLCB4ZnNfYWdibG9ja190IGJubywgeGZzX2V4dGxlbl90IGxlbiwKLS0JCV9fdWludDY0X3Qgb3duZXIpOwotKwkJdWludDY0X3Qgb3duZXIpOwotIAotIHZvaWQgeGZzX3JtYXBfZmluaXNoX29uZV9jbGVhbnVwKHN0cnVjdCB4ZnNfdHJhbnMgKnRwLAotIAkJc3RydWN0IHhmc19idHJlZV9jdXIgKnJjdXIsIGludCBlcnJvcik7Ci0gaW50IHhmc19ybWFwX2ZpbmlzaF9vbmUoc3RydWN0IHhmc190cmFucyAqdHAsIGVudW0geGZzX3JtYXBfaW50ZW50X3R5cGUgdHlwZSwKLS0JCV9fdWludDY0X3Qgb3duZXIsIGludCB3aGljaGZvcmssIHhmc19maWxlb2ZmX3Qgc3RhcnRvZmYsCi0rCQl1aW50NjRfdCBvd25lciwgaW50IHdoaWNoZm9yaywgeGZzX2ZpbGVvZmZfdCBzdGFydG9mZiwKLSAJCXhmc19mc2Jsb2NrX3Qgc3RhcnRibG9jaywgeGZzX2ZpbGJsa3NfdCBibG9ja2NvdW50LAotIAkJeGZzX2V4bnRzdF90IHN0YXRlLCBzdHJ1Y3QgeGZzX2J0cmVlX2N1ciAqKnBjdXIpOwotIAotZGlmZiAtLWdpdCBhL2xpYnhmcy94ZnNfcm1hcF9idHJlZS5jIGIvbGlieGZzL3hmc19ybWFwX2J0cmVlLmMKLWluZGV4IGExODZjODcyLi40NWFjNDM2ZiAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfcm1hcF9idHJlZS5jCi0rKysgYi9saWJ4ZnMveGZzX3JtYXBfYnRyZWUuYwotQEAgLTE5Nyw3ICsxOTcsNyBAQCB4ZnNfcm1hcGJ0X2luaXRfaGlnaF9rZXlfZnJvbV9yZWMoCi0gCXVuaW9uIHhmc19idHJlZV9rZXkJKmtleSwKLSAJdW5pb24geGZzX2J0cmVlX3JlYwkqcmVjKQotIHsKLS0JX191aW50NjRfdAkJb2ZmOwotKwl1aW50NjRfdAkJb2ZmOwotIAlpbnQJCQlhZGo7Ci0gCi0gCWFkaiA9IGJlMzJfdG9fY3B1KHJlYy0+cm1hcC5ybV9ibG9ja2NvdW50KSAtIDE7Ci1AQCAtMjM5LDcgKzIzOSw3IEBAIHhmc19ybWFwYnRfaW5pdF9wdHJfZnJvbV9jdXIoCi0gCXB0ci0+cyA9IGFnZi0+YWdmX3Jvb3RzW2N1ci0+YmNfYnRudW1dOwotIH0KLSAKLS1TVEFUSUMgX19pbnQ2NF90Ci0rU1RBVElDIGludDY0X3QKLSB4ZnNfcm1hcGJ0X2tleV9kaWZmKAotIAlzdHJ1Y3QgeGZzX2J0cmVlX2N1cgkqY3VyLAotIAl1bmlvbiB4ZnNfYnRyZWVfa2V5CSprZXkpCi1AQCAtMjQ3LDkgKzI0Nyw5IEBAIHhmc19ybWFwYnRfa2V5X2RpZmYoCi0gCXN0cnVjdCB4ZnNfcm1hcF9pcmVjCSpyZWMgPSAmY3VyLT5iY19yZWMucjsKLSAJc3RydWN0IHhmc19ybWFwX2tleQkqa3AgPSAma2V5LT5ybWFwOwotIAlfX3U2NAkJCXgsIHk7Ci0tCV9faW50NjRfdAkJZDsKLSsJaW50NjRfdAkJCWQ7Ci0gCi0tCWQgPSAoX19pbnQ2NF90KWJlMzJfdG9fY3B1KGtwLT5ybV9zdGFydGJsb2NrKSAtIHJlYy0+cm1fc3RhcnRibG9jazsKLSsJZCA9IChpbnQ2NF90KWJlMzJfdG9fY3B1KGtwLT5ybV9zdGFydGJsb2NrKSAtIHJlYy0+cm1fc3RhcnRibG9jazsKLSAJaWYgKGQpCi0gCQlyZXR1cm4gZDsKLSAKLUBAIC0yNjksNyArMjY5LDcgQEAgeGZzX3JtYXBidF9rZXlfZGlmZigKLSAJcmV0dXJuIDA7Ci0gfQotIAotLVNUQVRJQyBfX2ludDY0X3QKLStTVEFUSUMgaW50NjRfdAotIHhmc19ybWFwYnRfZGlmZl90d29fa2V5cygKLSAJc3RydWN0IHhmc19idHJlZV9jdXIJKmN1ciwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqazEsCi1AQCAtMjc3LDEwICsyNzcsMTAgQEAgeGZzX3JtYXBidF9kaWZmX3R3b19rZXlzKAotIHsKLSAJc3RydWN0IHhmc19ybWFwX2tleQkqa3AxID0gJmsxLT5ybWFwOwotIAlzdHJ1Y3QgeGZzX3JtYXBfa2V5CSprcDIgPSAmazItPnJtYXA7Ci0tCV9faW50NjRfdAkJZDsKLSsJaW50NjRfdAkJCWQ7Ci0gCV9fdTY0CQkJeCwgeTsKLSAKLS0JZCA9IChfX2ludDY0X3QpYmUzMl90b19jcHUoa3AxLT5ybV9zdGFydGJsb2NrKSAtCi0rCWQgPSAoaW50NjRfdCliZTMyX3RvX2NwdShrcDEtPnJtX3N0YXJ0YmxvY2spIC0KLSAJCSAgICAgICBiZTMyX3RvX2NwdShrcDItPnJtX3N0YXJ0YmxvY2spOwotIAlpZiAoZCkKLSAJCXJldHVybiBkOwotQEAgLTM4MiwxMCArMzgyLDEwIEBAIHhmc19ybWFwYnRfa2V5c19pbm9yZGVyKAotIAl1bmlvbiB4ZnNfYnRyZWVfa2V5CSprMSwKLSAJdW5pb24geGZzX2J0cmVlX2tleQkqazIpCi0gewotLQlfX3VpbnQzMl90CQl4OwotLQlfX3VpbnQzMl90CQl5OwotLQlfX3VpbnQ2NF90CQlhOwotLQlfX3VpbnQ2NF90CQliOwotKwl1aW50MzJfdAkJeDsKLSsJdWludDMyX3QJCXk7Ci0rCXVpbnQ2NF90CQlhOwotKwl1aW50NjRfdAkJYjsKLSAKLSAJeCA9IGJlMzJfdG9fY3B1KGsxLT5ybWFwLnJtX3N0YXJ0YmxvY2spOwotIAl5ID0gYmUzMl90b19jcHUoazItPnJtYXAucm1fc3RhcnRibG9jayk7Ci1AQCAtNDEyLDEwICs0MTIsMTAgQEAgeGZzX3JtYXBidF9yZWNzX2lub3JkZXIoCi0gCXVuaW9uIHhmc19idHJlZV9yZWMJKnIxLAotIAl1bmlvbiB4ZnNfYnRyZWVfcmVjCSpyMikKLSB7Ci0tCV9fdWludDMyX3QJCXg7Ci0tCV9fdWludDMyX3QJCXk7Ci0tCV9fdWludDY0X3QJCWE7Ci0tCV9fdWludDY0X3QJCWI7Ci0rCXVpbnQzMl90CQl4OwotKwl1aW50MzJfdAkJeTsKLSsJdWludDY0X3QJCWE7Ci0rCXVpbnQ2NF90CQliOwotIAotIAl4ID0gYmUzMl90b19jcHUocjEtPnJtYXAucm1fc3RhcnRibG9jayk7Ci0gCXkgPSBiZTMyX3RvX2NwdShyMi0+cm1hcC5ybV9zdGFydGJsb2NrKTsKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX3J0Yml0bWFwLmMgYi9saWJ4ZnMveGZzX3J0Yml0bWFwLmMKLWluZGV4IGRiZDJmODgxLi44ZjhhOTlkNiAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfcnRiaXRtYXAuYwotKysrIGIvbGlieGZzL3hmc19ydGJpdG1hcC5jCi1AQCAtMTAwNiw3ICsxMDA2LDcgQEAgeGZzX3J0ZnJlZV9leHRlbnQoCi0gCSAgICBtcC0+bV9zYi5zYl9yZXh0ZW50cykgewotIAkJaWYgKCEobXAtPm1fcmJtaXAtPmlfZC5kaV9mbGFncyAmIFhGU19ESUZMQUdfTkVXUlRCTSkpCi0gCQkJbXAtPm1fcmJtaXAtPmlfZC5kaV9mbGFncyB8PSBYRlNfRElGTEFHX05FV1JUQk07Ci0tCQkqKF9fdWludDY0X3QgKikmVkZTX0kobXAtPm1fcmJtaXApLT5pX2F0aW1lID0gMDsKLSsJCSoodWludDY0X3QgKikmVkZTX0kobXAtPm1fcmJtaXApLT5pX2F0aW1lID0gMDsKLSAJCXhmc190cmFuc19sb2dfaW5vZGUodHAsIG1wLT5tX3JibWlwLCBYRlNfSUxPR19DT1JFKTsKLSAJfQotIAlyZXR1cm4gMDsKLWRpZmYgLS1naXQgYS9saWJ4ZnMveGZzX3NiLmMgYi9saWJ4ZnMveGZzX3NiLmMKLWluZGV4IDkzYTE4MTkwLi41MWY2OTcwNCAxMDA2NDQKLS0tLSBhL2xpYnhmcy94ZnNfc2IuYwotKysrIGIvbGlieGZzL3hmc19zYi5jCi1AQCAtNDMwLDcgKzQzMCw3IEBAIHhmc19zYl9xdW90YV90b19kaXNrKAotIAlzdHJ1Y3QgeGZzX2RzYgkqdG8sCi0gCXN0cnVjdCB4ZnNfc2IJKmZyb20pCi0gewotLQlfX3VpbnQxNl90CXFmbGFncyA9IGZyb20tPnNiX3FmbGFnczsKLSsJdWludDE2X3QJcWZsYWdzID0gZnJvbS0+c2JfcWZsYWdzOwotIAotIAl0by0+c2JfdXF1b3Rpbm8gPSBjcHVfdG9fYmU2NChmcm9tLT5zYl91cXVvdGlubyk7Ci0gCWlmICh4ZnNfc2JfdmVyc2lvbl9oYXNfcHF1b3Rpbm8oZnJvbSkpIHsKLUBAIC03MzgsNyArNzM4LDcgQEAgeGZzX3NiX21vdW50X2NvbW1vbigKLSAJbXAtPm1fcmVmY19tbnJbMV0gPSBtcC0+bV9yZWZjX214clsxXSAvIDI7Ci0gCi0gCW1wLT5tX2JzaXplID0gWEZTX0ZTQl9UT19CQihtcCwgMSk7Ci0tCW1wLT5tX2lhbGxvY19pbm9zID0gKGludClNQVgoKF9fdWludDE2X3QpWEZTX0lOT0RFU19QRVJfQ0hVTkssCi0rCW1wLT5tX2lhbGxvY19pbm9zID0gKGludClNQVgoKHVpbnQxNl90KVhGU19JTk9ERVNfUEVSX0NIVU5LLAotIAkJCQkJc2JwLT5zYl9pbm9wYmxvY2spOwotIAltcC0+bV9pYWxsb2NfYmxrcyA9IG1wLT5tX2lhbGxvY19pbm9zID4+IHNicC0+c2JfaW5vcGJsb2c7Ci0gCi1kaWZmIC0tZ2l0IGEvbGlieGZzL3hmc190eXBlcy5oIGIvbGlieGZzL3hmc190eXBlcy5oCi1pbmRleCA3MTc5MDlmMi4uMDIyMDE1OWIgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMveGZzX3R5cGVzLmgKLSsrKyBiL2xpYnhmcy94ZnNfdHlwZXMuaAotQEAgLTE4LDM0ICsxOCwzNCBAQAotICNpZm5kZWYgX19YRlNfVFlQRVNfSF9fCi0gI2RlZmluZQlfX1hGU19UWVBFU19IX18KLSAKLS10eXBlZGVmIF9fdWludDMyX3QJcHJpZF90OwkJLyogcHJvamVjdCBJRCAqLwotK3R5cGVkZWYgdWludDMyX3QJcHJpZF90OwkJLyogcHJvamVjdCBJRCAqLwotIAotLXR5cGVkZWYgX191aW50MzJfdAl4ZnNfYWdibG9ja190OwkvKiBibG9ja25vIGluIGFsbG9jLiBncm91cCAqLwotLXR5cGVkZWYJX191aW50MzJfdAl4ZnNfYWdpbm9fdDsJLyogaW5vZGUgIyB3aXRoaW4gYWxsb2NhdGlvbiBncnAgKi8KLS10eXBlZGVmCV9fdWludDMyX3QJeGZzX2V4dGxlbl90OwkvKiBleHRlbnQgbGVuZ3RoIGluIGJsb2NrcyAqLwotLXR5cGVkZWYJX191aW50MzJfdAl4ZnNfYWdudW1iZXJfdDsJLyogYWxsb2NhdGlvbiBncm91cCBudW1iZXIgKi8KLS10eXBlZGVmIF9faW50MzJfdAl4ZnNfZXh0bnVtX3Q7CS8qICMgb2YgZXh0ZW50cyBpbiBhIGZpbGUgKi8KLS10eXBlZGVmIF9faW50MTZfdAl4ZnNfYWV4dG51bV90OwkvKiAjIGV4dGVudHMgaW4gYW4gYXR0cmlidXRlIGZvcmsgKi8KLS10eXBlZGVmCV9faW50NjRfdAl4ZnNfZnNpemVfdDsJLyogYnl0ZXMgaW4gYSBmaWxlICovCi0tdHlwZWRlZiBfX3VpbnQ2NF90CXhmc191ZnNpemVfdDsJLyogdW5zaWduZWQgYnl0ZXMgaW4gYSBmaWxlICovCi0rdHlwZWRlZiB1aW50MzJfdAl4ZnNfYWdibG9ja190OwkvKiBibG9ja25vIGluIGFsbG9jLiBncm91cCAqLwotK3R5cGVkZWYgdWludDMyX3QJeGZzX2FnaW5vX3Q7CS8qIGlub2RlICMgd2l0aGluIGFsbG9jYXRpb24gZ3JwICovCi0rdHlwZWRlZiB1aW50MzJfdAl4ZnNfZXh0bGVuX3Q7CS8qIGV4dGVudCBsZW5ndGggaW4gYmxvY2tzICovCi0rdHlwZWRlZiB1aW50MzJfdAl4ZnNfYWdudW1iZXJfdDsJLyogYWxsb2NhdGlvbiBncm91cCBudW1iZXIgKi8KLSt0eXBlZGVmIGludDMyX3QJCXhmc19leHRudW1fdDsJLyogIyBvZiBleHRlbnRzIGluIGEgZmlsZSAqLwotK3R5cGVkZWYgaW50MTZfdAkJeGZzX2FleHRudW1fdDsJLyogIyBleHRlbnRzIGluIGFuIGF0dHJpYnV0ZSBmb3JrICovCi0rdHlwZWRlZiBpbnQ2NF90CQl4ZnNfZnNpemVfdDsJLyogYnl0ZXMgaW4gYSBmaWxlICovCi0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfdWZzaXplX3Q7CS8qIHVuc2lnbmVkIGJ5dGVzIGluIGEgZmlsZSAqLwotIAotLXR5cGVkZWYJX19pbnQzMl90CXhmc19zdW1pbmZvX3Q7CS8qIHR5cGUgb2YgYml0bWFwIHN1bW1hcnkgaW5mbyAqLwotLXR5cGVkZWYJX19pbnQzMl90CXhmc19ydHdvcmRfdDsJLyogd29yZCB0eXBlIGZvciBiaXRtYXAgbWFuaXB1bGF0aW9ucyAqLwotK3R5cGVkZWYgaW50MzJfdAkJeGZzX3N1bWluZm9fdDsJLyogdHlwZSBvZiBiaXRtYXAgc3VtbWFyeSBpbmZvICovCi0rdHlwZWRlZiBpbnQzMl90CQl4ZnNfcnR3b3JkX3Q7CS8qIHdvcmQgdHlwZSBmb3IgYml0bWFwIG1hbmlwdWxhdGlvbnMgKi8KLSAKLS10eXBlZGVmCV9faW50NjRfdAl4ZnNfbHNuX3Q7CS8qIGxvZyBzZXF1ZW5jZSBudW1iZXIgKi8KLS10eXBlZGVmCV9faW50MzJfdAl4ZnNfdGlkX3Q7CS8qIHRyYW5zYWN0aW9uIGlkZW50aWZpZXIgKi8KLSt0eXBlZGVmIGludDY0X3QJCXhmc19sc25fdDsJLyogbG9nIHNlcXVlbmNlIG51bWJlciAqLwotK3R5cGVkZWYgaW50MzJfdAkJeGZzX3RpZF90OwkvKiB0cmFuc2FjdGlvbiBpZGVudGlmaWVyICovCi0gCi0tdHlwZWRlZglfX3VpbnQzMl90CXhmc19kYWJsa190OwkvKiBkaXIvYXR0ciBibG9jayBudW1iZXIgKGluIGZpbGUpICovCi0tdHlwZWRlZglfX3VpbnQzMl90CXhmc19kYWhhc2hfdDsJLyogZGlyL2F0dHIgaGFzaCB2YWx1ZSAqLwotK3R5cGVkZWYgdWludDMyX3QJeGZzX2RhYmxrX3Q7CS8qIGRpci9hdHRyIGJsb2NrIG51bWJlciAoaW4gZmlsZSkgKi8KLSt0eXBlZGVmIHVpbnQzMl90CXhmc19kYWhhc2hfdDsJLyogZGlyL2F0dHIgaGFzaCB2YWx1ZSAqLwotIAotLXR5cGVkZWYJX191aW50NjRfdAl4ZnNfZnNibG9ja190OwkvKiBibG9ja25vIGluIGZpbGVzeXN0ZW0gKGFnbm98YWdibm8pICovCi0tdHlwZWRlZiBfX3VpbnQ2NF90CXhmc19yZnNibG9ja190OwkvKiBibG9ja25vIGluIGZpbGVzeXN0ZW0gKHJhdykgKi8KLS10eXBlZGVmIF9fdWludDY0X3QJeGZzX3J0YmxvY2tfdDsJLyogZXh0ZW50IChibG9jaykgaW4gcmVhbHRpbWUgYXJlYSAqLwotLXR5cGVkZWYgX191aW50NjRfdAl4ZnNfZmlsZW9mZl90OwkvKiBibG9jayBudW1iZXIgaW4gYSBmaWxlICovCi0tdHlwZWRlZiBfX3VpbnQ2NF90CXhmc19maWxibGtzX3Q7CS8qIG51bWJlciBvZiBibG9ja3MgaW4gYSBmaWxlICovCi0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfZnNibG9ja190OwkvKiBibG9ja25vIGluIGZpbGVzeXN0ZW0gKGFnbm98YWdibm8pICovCi0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfcmZzYmxvY2tfdDsJLyogYmxvY2tubyBpbiBmaWxlc3lzdGVtIChyYXcpICovCi0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfcnRibG9ja190OwkvKiBleHRlbnQgKGJsb2NrKSBpbiByZWFsdGltZSBhcmVhICovCi0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfZmlsZW9mZl90OwkvKiBibG9jayBudW1iZXIgaW4gYSBmaWxlICovCi0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfZmlsYmxrc190OwkvKiBudW1iZXIgb2YgYmxvY2tzIGluIGEgZmlsZSAqLwotIAotLXR5cGVkZWYJX19pbnQ2NF90CXhmc19zcnRibG9ja190OwkvKiBzaWduZWQgdmVyc2lvbiBvZiB4ZnNfcnRibG9ja190ICovCi0tdHlwZWRlZiBfX2ludDY0X3QJeGZzX3NmaWxvZmZfdDsJLyogc2lnbmVkIGJsb2NrIG51bWJlciBpbiBhIGZpbGUgKi8KLSt0eXBlZGVmIGludDY0X3QJCXhmc19zcnRibG9ja190OwkvKiBzaWduZWQgdmVyc2lvbiBvZiB4ZnNfcnRibG9ja190ICovCi0rdHlwZWRlZiBpbnQ2NF90CQl4ZnNfc2ZpbG9mZl90OwkvKiBzaWduZWQgYmxvY2sgbnVtYmVyIGluIGEgZmlsZSAqLwotIAotIC8qCi0gICogTnVsbCB2YWx1ZXMgZm9yIHRoZSB0eXBlcy4KLUBAIC0xMjUsNyArMTI1LDcgQEAgc3RydWN0IHhmc19uYW1lIHsKLSAgKiB1aWRfdCBhbmQgZ2lkX3QgYXJlIGhhcmQtY29kZWQgdG8gMzIgYml0cyBpbiB0aGUgaW5vZGUuCi0gICogSGVuY2UsIGFuICdpZCcgaW4gYSBkcXVvdCBpcyAzMiBiaXRzLi4KLSAgKi8KLS10eXBlZGVmIF9fdWludDMyX3QJeGZzX2RxaWRfdDsKLSt0eXBlZGVmIHVpbnQzMl90CXhmc19kcWlkX3Q7Ci0gCi0gLyoKLSAgKiBDb25zdGFudHMgZm9yIGJpdCBtYW5pcHVsYXRpb25zLgotLS0gCi0yLjE0LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMvMDAwMS14ZnNwcm9ncy1yZW1vdmUtZG91YmxlLXVuZGVyc2NvcmUtaW50ZWdlci10eXBlcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1maWxlc3lzdGVtcy9yZWNpcGVzLXV0aWxzL3hmc3Byb2dzL2ZpbGVzLzAwMDEteGZzcHJvZ3MtcmVtb3ZlLWRvdWJsZS11bmRlcnNjb3JlLWludGVnZXItdHlwZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlMDhmMGQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMvMDAwMS14ZnNwcm9ncy1yZW1vdmUtZG91YmxlLXVuZGVyc2NvcmUtaW50ZWdlci10eXBlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM4MDAgKzAsMCBAQAotRnJvbSAxNGY4YjY4MTBiZDI0MGNjNTgxMzE0ODM3OTBhMDk5ZmNmNTZjMDczIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogIkRhcnJpY2sgSi4gV29uZyIgPGRhcnJpY2sud29uZ0BvcmFjbGUuY29tPgotRGF0ZTogRnJpLCA0IEF1ZyAyMDE3IDE2OjMzOjUxIC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHhmc3Byb2dzOiByZW1vdmUgZG91YmxlLXVuZGVyc2NvcmUgaW50ZWdlciB0eXBlcwotCi1UaGlzIGlzIGEgcHVyZWx5IG1lY2hhbmljYWwgcGF0Y2ggdGhhdCByZW1vdmVzIHRoZSBwcml2YXRlCi1fX3t1LH1pbnR7OCwxNiwzMiw2NH1fdCB0eXBlZGVmcyBpbiBmYXZvciBvZiB1c2luZyB0aGUgc3lzdGVtCi17dSx9aW50ezgsMTYsMzIsNjR9X3QgdHlwZWRlZnMuICBUaGlzIGlzIHRoZSBzZWQgc2NyaXB0IHVzZWQgdG8gcGVyZm9ybQotdGhlIHRyYW5zZm9ybWF0aW9uIGFuZCBmaXggdGhlIHJlc3VsdGluZyB3aGl0ZXNwYWNlIGFuZCBpbmRlbnRhdGlvbgotZXJyb3JzOgotCi1zL3R5cGVkZWZcdF9fdWludDhfdC90eXBlZGVmIF9fdWludDhfdFx0L2cKLXMvdHlwZWRlZlx0X191aW50L3R5cGVkZWYgX191aW50L2cKLXMvdHlwZWRlZlx0X19pbnRcKFswLTldKlwpX3QvdHlwZWRlZiBpbnRcMV90XHQvZwotcy9fX3VpbnQ4X3RcdC9fX3VpbnQ4X3RcdFx0L2cKLXMvX191aW50L3VpbnQvZwotcy9fX2ludFwoWzAtOV0qXClfdFx0L19faW50XDFfdFx0XHQvZwotcy9fX2ludC9pbnQvZwotL150eXBlZGVmLippbnRbMC05XSpfdDskL2QKLQotU2lnbmVkLW9mZi1ieTogRGFycmljayBKLiBXb25nIDxkYXJyaWNrLndvbmdAb3JhY2xlLmNvbT4KLVJldmlld2VkLWJ5OiBDYXJsb3MgTWFpb2xpbm8gPGNtYWlvbGlub0ByZWRoYXQuY29tPgotW3NhbmRlZW46IGZpeCB3aGl0ZXNwYWNlIGluY2lkZW50YWxzXQotUmV2aWV3ZWQtYnk6IERhcnJpY2sgSi4gV29uZyA8ZGFycmljay53b25nQG9yYWNsZS5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBFcmljIFNhbmRlZW4gPHNhbmRlZW5Ac2FuZGVlbi5uZXQ+Ci0tLS0KLSBjb3B5L3hmc19jb3B5LmMgICAgICAgICAgIHwgMTQgKysrKy0tLS0tCi0gY29weS94ZnNfY29weS5oICAgICAgICAgICB8ICAyICstCi0gZGIvYXR0ci5jICAgICAgICAgICAgICAgICB8ICA4ICsrLS0tCi0gZGIvYXR0cnNob3J0LmMgICAgICAgICAgICB8ICA0ICstLQotIGRiL2JpdC5jICAgICAgICAgICAgICAgICAgfCAgNCArLS0KLSBkYi9iaXQuaCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSBkYi9ibG9jay5jICAgICAgICAgICAgICAgIHwgIDggKystLS0KLSBkYi9jaGVjay5jICAgICAgICAgICAgICAgIHwgMTggKysrKystLS0tLS0KLSBkYi9jb252ZXJ0LmMgICAgICAgICAgICAgIHwgMjggKysrKysrKystLS0tLS0tLS0KLSBkYi9mYWRkci5jICAgICAgICAgICAgICAgIHwgMTQgKysrKy0tLS0tCi0gZGIvZmllbGQuYyAgICAgICAgICAgICAgICB8IDQ0ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQotIGRiL2ZwcmludC5jICAgICAgICAgICAgICAgfCAgOCArKy0tLQotIGRiL2ZyYWcuYyAgICAgICAgICAgICAgICAgfCAgOCArKy0tLQotIGRiL2lub2RlLmMgICAgICAgICAgICAgICAgfCAzNCArKysrKysrKysrLS0tLS0tLS0tLS0KLSBkYi9pby5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSBkYi9pby5oICAgICAgICAgICAgICAgICAgIHwgIDYgKystLQotIGRiL21ldGFkdW1wLmMgICAgICAgICAgICAgfCAxMiArKysrLS0tLQotIGRiL3NiLmMgICAgICAgICAgICAgICAgICAgfCAgNiArKy0tCi0gZnNyL3hmc19mc3IuYyAgICAgICAgICAgICB8ICAyICstCi0gaW5jbHVkZS9kYXJ3aW4uaCAgICAgICAgICB8IDE4ICsrKysrLS0tLS0tCi0gaW5jbHVkZS9mcmVlYnNkLmggICAgICAgICB8ICA2ICsrLS0KLSBpbmNsdWRlL2dudWtmcmVlYnNkLmggICAgIHwgIDYgKystLQotIGluY2x1ZGUvbGlieGNtZC5oICAgICAgICAgfCAgNiArKy0tCi0gaW5jbHVkZS9saW51eC5oICAgICAgICAgICB8ICA4ICsrLS0tCi0gaW5jbHVkZS94ZnNfYXJjaC5oICAgICAgICB8IDIyICsrKysrKystLS0tLS0tCi0gaW5jbHVkZS94ZnNfaW5vZGUuaCAgICAgICB8ICA0ICstLQotIGluY2x1ZGUveGZzX2xvZ19yZWNvdmVyLmggfCAgMiArLQotIGluY2x1ZGUveGZzX21ldGFkdW1wLmggICAgfCAgNCArLS0KLSBpbmNsdWRlL3hmc19tb3VudC5oICAgICAgIHwgMjIgKysrKysrKy0tLS0tLS0KLSBsaWJoYW5kbGUvaGFuZGxlLmMgICAgICAgIHwgIDIgKy0KLSBsaWJoYW5kbGUvamRtLmMgICAgICAgICAgIHwgIDIgKy0KLSBsaWJ4Y21kL3RvcG9sb2d5LmMgICAgICAgIHwgMTQgKysrKy0tLS0tCi0gbGlieGZzL2Rhcndpbi5jICAgICAgICAgICB8ICAyICstCi0gbGlieGZzL2ZyZWVic2QuYyAgICAgICAgICB8ICAyICstCi0gbGlieGZzL2luaXQuYyAgICAgICAgICAgICB8ICAyICstCi0gbGlieGZzL2lyaXguYyAgICAgICAgICAgICB8ICAyICstCi0gbGlieGZzL2xpYnhmc19wcml2LmggICAgICB8ICA0ICstLQotIGxpYnhmcy9saW51eC5jICAgICAgICAgICAgfCAgMiArLQotIGxpYnhmcy9sb2dpdGVtLmMgICAgICAgICAgfCAgMiArLQotIGxpYnhmcy9yYWRpeC10cmVlLmMgICAgICAgfCAgOCArKy0tLQotIGxpYnhmcy9yZHdyLmMgICAgICAgICAgICAgfCAgNiArKy0tCi0gbGlieGZzL3V0aWwuYyAgICAgICAgICAgICB8ICA4ICsrLS0tCi0gbG9ncHJpbnQvbG9nX21pc2MuYyAgICAgICB8ICA2ICsrLS0KLSBtZHJlc3RvcmUveGZzX21kcmVzdG9yZS5jIHwgIDIgKy0KLSBta2ZzL3Byb3RvLmMgICAgICAgICAgICAgIHwgIDIgKy0KLSBta2ZzL3hmc19ta2ZzLmMgICAgICAgICAgIHwgNzYgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBxdW90YS9lZGl0LmMgICAgICAgICAgICAgIHwgNjQgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gcXVvdGEvZnJlZS5jICAgICAgICAgICAgICB8IDQ0ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQotIHF1b3RhL3F1b3QuYyAgICAgICAgICAgICAgfCAyNCArKysrKysrLS0tLS0tLS0KLSBxdW90YS9xdW90YS5jICAgICAgICAgICAgIHwgIDQgKy0tCi0gcXVvdGEvcXVvdGEuaCAgICAgICAgICAgICB8IDEyICsrKystLS0tCi0gcXVvdGEvcmVwb3J0LmMgICAgICAgICAgICB8ICA0ICstLQotIHF1b3RhL3N0YXRlLmMgICAgICAgICAgICAgfCAgMiArLQotIHF1b3RhL3V0aWwuYyAgICAgICAgICAgICAgfCA2NiArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVwYWlyL1JFQURNRSAgICAgICAgICAgICB8ICAyICstCi0gcmVwYWlyL2FnaGVhZGVyLmggICAgICAgICB8IDE0ICsrKystLS0tLQotIHJlcGFpci9hdHRyX3JlcGFpci5oICAgICAgfCAyNiArKysrKysrKy0tLS0tLS0tCi0gcmVwYWlyL2F2bDY0LmMgICAgICAgICAgICB8IDM4ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQotIHJlcGFpci9hdmw2NC5oICAgICAgICAgICAgfCAxOCArKysrKy0tLS0tLQotIHJlcGFpci9kaW5vZGUuYyAgICAgICAgICAgfCAzOCArKysrKysrKysrKystLS0tLS0tLS0tLS0KLSByZXBhaXIvZGlub2RlLmggICAgICAgICAgIHwgIDQgKy0tCi0gcmVwYWlyL2RpcjIuYyAgICAgICAgICAgICB8ICAyICstCi0gcmVwYWlyL2dsb2JhbHMuaCAgICAgICAgICB8IDE4ICsrKysrLS0tLS0tCi0gcmVwYWlyL2luY29yZS5jICAgICAgICAgICB8IDEwICsrKy0tLS0KLSByZXBhaXIvaW5jb3JlLmggICAgICAgICAgIHwgNDYgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQotIHJlcGFpci9pbmNvcmVfZXh0LmMgICAgICAgfCAgNiArKy0tCi0gcmVwYWlyL2luY29yZV9pbm8uYyAgICAgICB8IDcyICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVwYWlyL3BoYXNlMi5jICAgICAgICAgICB8ICAyICstCi0gcmVwYWlyL3BoYXNlMy5jICAgICAgICAgICB8ICA2ICsrLS0KLSByZXBhaXIvcGhhc2U0LmMgICAgICAgICAgIHwgIDQgKy0tCi0gcmVwYWlyL3BoYXNlNS5jICAgICAgICAgICB8IDI4ICsrKysrKysrLS0tLS0tLS0tCi0gcmVwYWlyL3BoYXNlNi5jICAgICAgICAgICB8IDE2ICsrKysrLS0tLS0KLSByZXBhaXIvcGhhc2U3LmMgICAgICAgICAgIHwgIDYgKystLQotIHJlcGFpci9wcm9ncmVzcy5jICAgICAgICAgfCAzMCArKysrKysrKystLS0tLS0tLS0tCi0gcmVwYWlyL3Byb2dyZXNzLmggICAgICAgICB8ICA0ICstLQotIHJlcGFpci9ybWFwLmMgICAgICAgICAgICAgfCAxOCArKysrKy0tLS0tLQotIHJlcGFpci9ybWFwLmggICAgICAgICAgICAgfCAgMiArLQotIHJlcGFpci9zYi5jICAgICAgICAgICAgICAgfCAyNCArKysrKysrLS0tLS0tLS0KLSByZXBhaXIvc2Nhbi5jICAgICAgICAgICAgIHwgNTAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQotIHJlcGFpci9zY2FuLmggICAgICAgICAgICAgfCAxMiArKysrLS0tLQotIDgwIGZpbGVzIGNoYW5nZWQsIDU5MCBpbnNlcnRpb25zKCspLCA1OTAgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9jb3B5L3hmc19jb3B5LmMgYi9jb3B5L3hmc19jb3B5LmMKLWluZGV4IGE3ZGE4MjRmLi4zM2UwNWRmZCAxMDA2NDQKLS0tLSBhL2NvcHkveGZzX2NvcHkuYwotKysrIGIvY29weS94ZnNfY29weS5jCi1AQCAtNDMsNyArNDMsNyBAQCB1bnNpZ25lZCBpbnQJc291cmNlX3NlY3RvcnNpemU7CS8qIHNvdXJjZSBkaXNrIHNlY3RvcnNpemUgKi8KLSAKLSB4ZnNfYWdibG9ja190CWZpcnN0X2FnYm5vOwotIAotLV9fdWludDY0X3QJYmFyY291bnRbMTFdOwotK3VpbnQ2NF90CWJhcmNvdW50WzExXTsKLSAKLSB1bnNpZ25lZCBpbnQJbnVtX3RhcmdldHM7Ci0gdGFyZ2V0X2NvbnRyb2wJKnRhcmdldDsKLUBAIC0zMTMsNyArMzEzLDcgQEAgdXNhZ2Uodm9pZCkKLSB9Ci0gCi0gdm9pZAotLWluaXRfYmFyKF9fdWludDY0X3Qgc291cmNlX2Jsb2NrcykKLStpbml0X2Jhcih1aW50NjRfdCBzb3VyY2VfYmxvY2tzKQotIHsKLSAJaW50CWk7Ci0gCi1AQCAtMzIyLDcgKzMyMiw3IEBAIGluaXRfYmFyKF9fdWludDY0X3Qgc291cmNlX2Jsb2NrcykKLSB9Ci0gCi0gaW50Ci0tYnVtcF9iYXIoaW50IHRlbnRocywgX191aW50NjRfdCBudW1ibG9ja3MpCi0rYnVtcF9iYXIoaW50IHRlbnRocywgdWludDY0X3QgbnVtYmxvY2tzKQotIHsKLSAJc3RhdGljIGNoYXIgKmJhclsxMV0gPSB7Ci0gCQkiIDAlICIsCi1AQCAtNTM0LDggKzUzNCw4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAl4ZnNfb2ZmX3QJcG9zOwotIAlzaXplX3QJCWxlbmd0aDsKLSAJaW50CQljOwotLQlfX3VpbnQ2NF90CXNpemUsIHNpemViOwotLQlfX3VpbnQ2NF90CW51bWJsb2NrcyA9IDA7Ci0rCXVpbnQ2NF90CXNpemUsIHNpemViOwotKwl1aW50NjRfdAludW1ibG9ja3MgPSAwOwotIAlpbnQJCXdibG9ja3MgPSAwOwotIAlpbnQJCW51bV90aHJlYWRzID0gMDsKLSAJc3RydWN0IGRpb2F0dHIJZDsKLUBAIC05NTEsOCArOTUxLDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gCW51bV9hZ3MgPSBtcC0+bV9zYi5zYl9hZ2NvdW50OwotIAotIAlpbml0X2JhcihtcC0+bV9zYi5zYl9ibG9ja3NpemUgLyBCQlNJWkUKLS0JCQkqICgoX191aW50NjRfdCltcC0+bV9zYi5zYl9kYmxvY2tzCi0tCQkJICAgIC0gKF9fdWludDY0X3QpbXAtPm1fc2Iuc2JfZmRibG9ja3MgKyAxMCAqIG51bV9hZ3MpKTsKLSsJCQkqICgodWludDY0X3QpbXAtPm1fc2Iuc2JfZGJsb2NrcwotKwkJCSAgICAtICh1aW50NjRfdCltcC0+bV9zYi5zYl9mZGJsb2NrcyArIDEwICogbnVtX2FncykpOwotIAotIAlraWRzID0gbnVtX3RhcmdldHM7Ci0gCi1kaWZmIC0tZ2l0IGEvY29weS94ZnNfY29weS5oIGIvY29weS94ZnNfY29weS5oCi1pbmRleCAyNzM3MDY4OC4uNTNjNmU0MmMgMTAwNjQ0Ci0tLS0gYS9jb3B5L3hmc19jb3B5LmgKLSsrKyBiL2NvcHkveGZzX2NvcHkuaAotQEAgLTc2LDcgKzc2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewotIAotIHR5cGVkZWYgaW50IHRocmVhZF9pZDsKLSB0eXBlZGVmIGludCB0bV9pbmRleDsJCQkvKiBpbmRleCBpbnRvIHRocmVhZCBtYXNrIGFycmF5ICovCi0tdHlwZWRlZiBfX3VpbnQzMl90IHRocmVhZF9tYXNrOwkJLyogYSB0aHJlYWQgbWFzayAqLwotK3R5cGVkZWYgdWludDMyX3QgdGhyZWFkX21hc2s7CQkvKiBhIHRocmVhZCBtYXNrICovCi0gCi0gdHlwZWRlZiBzdHJ1Y3QgewotIAljaGFyCQkqbmFtZTsKLWRpZmYgLS1naXQgYS9kYi9hdHRyLmMgYi9kYi9hdHRyLmMKLWluZGV4IDMxNTM2YThiLi4yM2ZmY2Q1ZiAxMDA2NDQKLS0tLSBhL2RiL2F0dHIuYwotKysrIGIvZGIvYXR0ci5jCi1AQCAtNzcsMTYgKzc3LDE2IEBAIGNvbnN0IGZpZWxkX3QJYXR0cl9sZWFmX2VudHJ5X2ZsZHNbXSA9IHsKLSAJeyAibmFtZWlkeCIsIEZMRFRfVUlOVDE2RCwgT0koTEVPRkYobmFtZWlkeCkpLCBDMSwgMCwgVFlQX05PTkUgfSwKLSAJeyAiZmxhZ3MiLCBGTERUX1VJTlQ4WCwgT0koTEVPRkYoZmxhZ3MpKSwgQzEsIEZMRF9TS0lQQUxMLCBUWVBfTk9ORSB9LAotIAl7ICJpbmNvbXBsZXRlIiwgRkxEVF9VSU5UMSwKLS0JICBPSShMRU9GRihmbGFncykgKyBiaXRzeihfX3VpbnQ4X3QpIC0gWEZTX0FUVFJfSU5DT01QTEVURV9CSVQgLSAxKSwgQzEsCi0rCSAgT0koTEVPRkYoZmxhZ3MpICsgYml0c3oodWludDhfdCkgLSBYRlNfQVRUUl9JTkNPTVBMRVRFX0JJVCAtIDEpLCBDMSwKLSAJICAwLCBUWVBfTk9ORSB9LAotIAl7ICJyb290IiwgRkxEVF9VSU5UMSwKLS0JICBPSShMRU9GRihmbGFncykgKyBiaXRzeihfX3VpbnQ4X3QpIC0gWEZTX0FUVFJfUk9PVF9CSVQgLSAxKSwgQzEsIDAsCi0rCSAgT0koTEVPRkYoZmxhZ3MpICsgYml0c3oodWludDhfdCkgLSBYRlNfQVRUUl9ST09UX0JJVCAtIDEpLCBDMSwgMCwKLSAJICBUWVBfTk9ORSB9LAotIAl7ICJzZWN1cmUiLCBGTERUX1VJTlQxLAotLQkgIE9JKExFT0ZGKGZsYWdzKSArIGJpdHN6KF9fdWludDhfdCkgLSBYRlNfQVRUUl9TRUNVUkVfQklUIC0gMSksIEMxLCAwLAotKwkgIE9JKExFT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQ4X3QpIC0gWEZTX0FUVFJfU0VDVVJFX0JJVCAtIDEpLCBDMSwgMCwKLSAJICBUWVBfTk9ORSB9LAotIAl7ICJsb2NhbCIsIEZMRFRfVUlOVDEsCi0tCSAgT0koTEVPRkYoZmxhZ3MpICsgYml0c3ooX191aW50OF90KSAtIFhGU19BVFRSX0xPQ0FMX0JJVCAtIDEpLCBDMSwgMCwKLSsJICBPSShMRU9GRihmbGFncykgKyBiaXRzeih1aW50OF90KSAtIFhGU19BVFRSX0xPQ0FMX0JJVCAtIDEpLCBDMSwgMCwKLSAJICBUWVBfTk9ORSB9LAotIAl7ICJwYWQyIiwgRkxEVF9VSU5UOFgsIE9JKExFT0ZGKHBhZDIpKSwgQzEsIEZMRF9TS0lQQUxMLCBUWVBfTk9ORSB9LAotIAl7IE5VTEwgfQotZGlmZiAtLWdpdCBhL2RiL2F0dHJzaG9ydC5jIGIvZGIvYXR0cnNob3J0LmMKLWluZGV4IGQ4MjU1OWNjLi4yZWYzNThmNSAxMDA2NDQKLS0tLSBhL2RiL2F0dHJzaG9ydC5jCi0rKysgYi9kYi9hdHRyc2hvcnQuYwotQEAgLTUxLDEwICs1MSwxMCBAQCBjb25zdCBmaWVsZF90CWF0dHJfc2ZfZW50cnlfZmxkc1tdID0gewotIAl7ICJ2YWx1ZWxlbiIsIEZMRFRfVUlOVDhELCBPSShFT0ZGKHZhbHVlbGVuKSksIEMxLCAwLCBUWVBfTk9ORSB9LAotIAl7ICJmbGFncyIsIEZMRFRfVUlOVDhYLCBPSShFT0ZGKGZsYWdzKSksIEMxLCBGTERfU0tJUEFMTCwgVFlQX05PTkUgfSwKLSAJeyAicm9vdCIsIEZMRFRfVUlOVDEsCi0tCSAgT0koRU9GRihmbGFncykgKyBiaXRzeihfX3VpbnQ4X3QpIC0gWEZTX0FUVFJfUk9PVF9CSVQgLSAxKSwgQzEsIDAsCi0rCSAgT0koRU9GRihmbGFncykgKyBiaXRzeih1aW50OF90KSAtIFhGU19BVFRSX1JPT1RfQklUIC0gMSksIEMxLCAwLAotIAkgIFRZUF9OT05FIH0sCi0gCXsgInNlY3VyZSIsIEZMRFRfVUlOVDEsCi0tCSAgT0koRU9GRihmbGFncykgKyBiaXRzeihfX3VpbnQ4X3QpIC0gWEZTX0FUVFJfU0VDVVJFX0JJVCAtIDEpLCBDMSwgMCwKLSsJICBPSShFT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQ4X3QpIC0gWEZTX0FUVFJfU0VDVVJFX0JJVCAtIDEpLCBDMSwgMCwKLSAJICBUWVBfTk9ORSB9LAotIAl7ICJuYW1lIiwgRkxEVF9DSEFSTlMsIE9JKEVPRkYobmFtZXZhbCkpLCBhdHRyX3NmX2VudHJ5X25hbWVfY291bnQsCi0gCSAgRkxEX0NPVU5ULCBUWVBfTk9ORSB9LAotZGlmZiAtLWdpdCBhL2RiL2JpdC5jIGIvZGIvYml0LmMKLWluZGV4IDI0ODcyYmY3Li5mNWViZjY4MSAxMDA2NDQKLS0tLSBhL2RiL2JpdC5jCi0rKysgYi9kYi9iaXQuYwotQEAgLTYwLDcgKzYwLDcgQEAgc2V0Yml0KAotIAl9Ci0gfQotIAotLV9faW50NjRfdAotK2ludDY0X3QKLSBnZXRiaXR2YWwoCi0gCXZvaWQJCSpvYmosCi0gCWludAkJYml0b2ZmLAotQEAgLTcwLDcgKzcwLDcgQEAgZ2V0Yml0dmFsKAotIAlpbnQJCWJpdDsKLSAJaW50CQlpOwotIAljaGFyCQkqcDsKLS0JX19pbnQ2NF90CXJ2YWw7Ci0rCWludDY0X3QJCXJ2YWw7Ci0gCWludAkJc2lnbmV4dDsKLSAJaW50CQl6MSwgejIsIHozLCB6NDsKLSAKLWRpZmYgLS1naXQgYS9kYi9iaXQuaCBiL2RiL2JpdC5oCi1pbmRleCA4MGJhMjRjNC4uOWZkNzFmNGIgMTAwNjQ0Ci0tLS0gYS9kYi9iaXQuaAotKysrIGIvZGIvYml0LmgKLUBAIC0yNSw1ICsyNSw1IEBACi0gI2RlZmluZQlCVlVOU0lHTkVECTAKLSAjZGVmaW5lCUJWU0lHTkVECTEKLSAKLS1leHRlcm4gX19pbnQ2NF90CWdldGJpdHZhbCh2b2lkICpvYmosIGludCBiaXRvZmYsIGludCBuYml0cywgaW50IGZsYWdzKTsKLStleHRlcm4gaW50NjRfdAkJZ2V0Yml0dmFsKHZvaWQgKm9iaiwgaW50IGJpdG9mZiwgaW50IG5iaXRzLCBpbnQgZmxhZ3MpOwotIGV4dGVybiB2b2lkICAgICAgICAgICAgIHNldGJpdHZhbCh2b2lkICpvYnVmLCBpbnQgYml0b2ZmLCBpbnQgbmJpdHMsIHZvaWQgKmlidWYpOwotZGlmZiAtLWdpdCBhL2RiL2Jsb2NrLmMgYi9kYi9ibG9jay5jCi1pbmRleCA0YTM1N2NlZC4uNWVjZDY4N2EgMTAwNjQ0Ci0tLS0gYS9kYi9ibG9jay5jCi0rKysgYi9kYi9ibG9jay5jCi1AQCAtOTgsNyArOTgsNyBAQCBhYmxvY2tfZigKLSAJfQotIAlkZnNibm8gPSBibS5zdGFydGJsb2NrICsgKGJubyAtIGJtLnN0YXJ0b2ZmKTsKLSAJQVNTRVJUKHR5cHRhYltUWVBfQVRUUl0udHlwbm0gPT0gVFlQX0FUVFIpOwotLQlzZXRfY3VyKCZ0eXB0YWJbVFlQX0FUVFJdLCAoX19pbnQ2NF90KVhGU19GU0JfVE9fREFERFIobXAsIGRmc2JubyksCi0rCXNldF9jdXIoJnR5cHRhYltUWVBfQVRUUl0sIChpbnQ2NF90KVhGU19GU0JfVE9fREFERFIobXAsIGRmc2JubyksCi0gCQlibGtiYiwgREJfUklOR19BREQsIE5VTEwpOwotIAlyZXR1cm4gMDsKLSB9Ci1AQCAtMTI4LDE0ICsxMjgsMTQgQEAgZGFkZHJfZigKLSAJaW50CQlhcmdjLAotIAljaGFyCQkqKmFyZ3YpCi0gewotLQlfX2ludDY0X3QJZDsKLSsJaW50NjRfdAkJZDsKLSAJY2hhcgkJKnA7Ci0gCi0gCWlmIChhcmdjID09IDEpIHsKLSAJCWRicHJpbnRmKF8oImN1cnJlbnQgZGFkZHIgaXMgJWxsZFxuIiksIGlvY3VyX3RvcC0+b2ZmID4+IEJCU0hJRlQpOwotIAkJcmV0dXJuIDA7Ci0gCX0KLS0JZCA9IChfX2ludDY0X3Qpc3RydG91bGwoYXJndlsxXSwgJnAsIDApOwotKwlkID0gKGludDY0X3Qpc3RydG91bGwoYXJndlsxXSwgJnAsIDApOwotIAlpZiAoKnAgIT0gJ1wwJyB8fAotIAkgICAgZCA+PSBtcC0+bV9zYi5zYl9kYmxvY2tzIDw8IChtcC0+bV9zYi5zYl9ibG9ja2xvZyAtIEJCU0hJRlQpKSB7Ci0gCQlkYnByaW50ZihfKCJiYWQgZGFkZHIgJXNcbiIpLCBhcmd2WzFdKTsKLUBAIC0xOTcsNyArMTk3LDcgQEAgZGJsb2NrX2YoCi0gCUFTU0VSVCh0eXB0YWJbdHlwZV0udHlwbm0gPT0gdHlwZSk7Ci0gCWlmIChuZXggPiAxKQotIAkJbWFrZV9iYm1hcCgmYmJtYXAsIG5leCwgYm1wKTsKLS0Jc2V0X2N1cigmdHlwdGFiW3R5cGVdLCAoX19pbnQ2NF90KVhGU19GU0JfVE9fREFERFIobXAsIGRmc2JubyksCi0rCXNldF9jdXIoJnR5cHRhYlt0eXBlXSwgKGludDY0X3QpWEZTX0ZTQl9UT19EQUREUihtcCwgZGZzYm5vKSwKLSAJCW5iICogYmxrYmIsIERCX1JJTkdfQURELCBuZXggPiAxID8gJmJibWFwIDogTlVMTCk7Ci0gCWZyZWUoYm1wKTsKLSAJcmV0dXJuIDA7Ci1kaWZmIC0tZ2l0IGEvZGIvY2hlY2suYyBiL2RiL2NoZWNrLmMKLWluZGV4IDhlNjE4YTIzLi44MWJhNjNhNiAxMDA2NDQKLS0tLSBhL2RiL2NoZWNrLmMKLSsrKyBiL2RiL2NoZWNrLmMKLUBAIC0xMTQsOCArMTE0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgZGlyaGFzaCB7Ci0gCi0gc3RhdGljIHhmc19leHRsZW5fdAlhZ2ZmcmVlYmxrczsKLSBzdGF0aWMgeGZzX2V4dGxlbl90CWFnZmxvbmdlc3Q7Ci0tc3RhdGljIF9fdWludDY0X3QJYWdmX2FnZ3JfZnJlZWJsa3M7CS8qIGFnZ3JlZ2F0ZSBjb3VudCBvdmVyIGFsbCAqLwotLXN0YXRpYyBfX3VpbnQzMl90CWFnZmJ0cmVlYmxrczsKLStzdGF0aWMgdWludDY0X3QJYWdmX2FnZ3JfZnJlZWJsa3M7CS8qIGFnZ3JlZ2F0ZSBjb3VudCBvdmVyIGFsbCAqLwotK3N0YXRpYyB1aW50MzJfdAlhZ2ZidHJlZWJsa3M7Ci0gc3RhdGljIGludAkJbGF6eWNvdW50OwotIHN0YXRpYyB4ZnNfYWdpbm9fdAlhZ2ljb3VudDsKLSBzdGF0aWMgeGZzX2FnaW5vX3QJYWdpZnJlZWNvdW50OwotQEAgLTEyNCwxMCArMTI0LDEwIEBAIHN0YXRpYyBpbnQJCWJsaXN0X3NpemU7Ci0gc3RhdGljIGNoYXIJCSoqZGJtYXA7CS8qIHJlYWxseSBkYm1fdDo4ICovCi0gc3RhdGljIGRpcmhhc2hfdAkqKmRpcmhhc2g7Ci0gc3RhdGljIGludAkJZXJyb3I7Ci0tc3RhdGljIF9fdWludDY0X3QJZmRibG9ja3M7Ci0tc3RhdGljIF9fdWludDY0X3QJZnJleHRlbnRzOwotLXN0YXRpYyBfX3VpbnQ2NF90CWljb3VudDsKLS1zdGF0aWMgX191aW50NjRfdAlpZnJlZTsKLStzdGF0aWMgdWludDY0X3QJZmRibG9ja3M7Ci0rc3RhdGljIHVpbnQ2NF90CWZyZXh0ZW50czsKLStzdGF0aWMgdWludDY0X3QJaWNvdW50OwotK3N0YXRpYyB1aW50NjRfdAlpZnJlZTsKLSBzdGF0aWMgaW5vZGF0YV90CSoqKmlub2RhdGE7Ci0gc3RhdGljIGludAkJaW5vZGF0YV9oYXNoX3NpemU7Ci0gc3RhdGljIGlub2RhdGFfdAkqKippbm9tYXA7Ci1AQCAtMTE4Nyw3ICsxMTg3LDcgQEAgYmxvY2t0cmFzaF9mKAotIAkJZ290byBvdXQ7Ci0gCX0KLSAJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLS0JCXJhbmRiID0gKHhmc19yZnNibG9ja190KSgoKChfX2ludDY0X3QpcmFuZG9tKCkgPDwgMzIpIHwKLSsJCXJhbmRiID0gKHhmc19yZnNibG9ja190KSgoKChpbnQ2NF90KXJhbmRvbSgpIDw8IDMyKSB8Ci0gCQkJCQkgcmFuZG9tKCkpICUgYmxvY2tzKTsKLSAJCWZvciAoYmkgPSAwLCBhZ25vID0gMCwgZG9uZSA9IDA7Ci0gCQkgICAgICFkb25lICYmIGFnbm8gPCBtcC0+bV9zYi5zYl9hZ2NvdW50OwotQEAgLTMwMzIsNyArMzAzMiw3IEBAIHByb2Nlc3NfbGVhZl9ub2RlX2Rpcl92MigKLSAJCX0KLSAJCWlmICh2KQotIAkJCWRicHJpbnRmKF8oImRpciBpbm9kZSAlbGxkIGJsb2NrICV1PSVsbHVcbiIpLCBpZC0+aW5vLAotLQkJCQkoX191aW50MzJfdClkYm5vLAotKwkJCQkodWludDMyX3QpZGJubywKLSAJCQkJKHhmc19mc2Jsb2NrX3QpYm1wLT5zdGFydGJsb2NrKTsKLSAJCXB1c2hfY3VyKCk7Ci0gCQlpZiAobmV4ID4gMSkKLUBAIC0zMDQ1LDcgKzMwNDUsNyBAQCBwcm9jZXNzX2xlYWZfbm9kZV9kaXJfdjIoCi0gCQkJaWYgKCFzZmxhZyB8fCB2KQotIAkJCQlkYnByaW50ZihfKCJjYW4ndCByZWFkIGJsb2NrICV1IGZvciBkaXJlY3RvcnkgIgotIAkJCQkJICJpbm9kZSAlbGxkXG4iKSwKLS0JCQkJCShfX3VpbnQzMl90KWRibm8sIGlkLT5pbm8pOwotKwkJCQkJKHVpbnQzMl90KWRibm8sIGlkLT5pbm8pOwotIAkJCWVycm9yKys7Ci0gCQkJcG9wX2N1cigpOwotIAkJCWRibm8gKz0gbXAtPm1fZGlyX2dlby0+ZnNiY291bnQgLSAxOwotZGlmZiAtLWdpdCBhL2RiL2NvbnZlcnQuYyBiL2RiL2NvbnZlcnQuYwotaW5kZXggYTMzN2FiZWEuLmZhNGY5NjIzIDEwMDY0NAotLS0tIGEvZGIvY29udmVydC5jCi0rKysgYi9kYi9jb252ZXJ0LmMKLUBAIC0yNCwxMyArMjQsMTMgQEAKLSAKLSAjZGVmaW5lCU0oQSkJKDEgPDwgQ1RfICMjIEEpCi0gI2RlZmluZQlhZ2Jsb2NrX3RvX2J5dGVzKHgpCVwKLS0JKChfX3VpbnQ2NF90KSh4KSA8PCBtcC0+bV9zYi5zYl9ibG9ja2xvZykKLSsJKCh1aW50NjRfdCkoeCkgPDwgbXAtPm1fc2Iuc2JfYmxvY2tsb2cpCi0gI2RlZmluZQlhZ2lub190b19ieXRlcyh4KQlcCi0tCSgoX191aW50NjRfdCkoeCkgPDwgbXAtPm1fc2Iuc2JfaW5vZGVsb2cpCi0rCSgodWludDY0X3QpKHgpIDw8IG1wLT5tX3NiLnNiX2lub2RlbG9nKQotICNkZWZpbmUJYWdudW1iZXJfdG9fYnl0ZXMoeCkJXAotLQlhZ2Jsb2NrX3RvX2J5dGVzKChfX3VpbnQ2NF90KSh4KSAqIG1wLT5tX3NiLnNiX2FnYmxvY2tzKQotKwlhZ2Jsb2NrX3RvX2J5dGVzKCh1aW50NjRfdCkoeCkgKiBtcC0+bV9zYi5zYl9hZ2Jsb2NrcykKLSAjZGVmaW5lCWRhZGRyX3RvX2J5dGVzKHgpCVwKLS0JKChfX3VpbnQ2NF90KSh4KSA8PCBCQlNISUZUKQotKwkoKHVpbnQ2NF90KSh4KSA8PCBCQlNISUZUKQotICNkZWZpbmUJZnNibG9ja190b19ieXRlcyh4KQlcCi0gCShhZ251bWJlcl90b19ieXRlcyhYRlNfRlNCX1RPX0FHTk8obXAsICh4KSkpICsgXAotIAkgYWdibG9ja190b19ieXRlcyhYRlNfRlNCX1RPX0FHQk5PKG1wLCAoeCkpKSkKLUBAIC0zOCw3ICszOCw3IEBACi0gCShhZ251bWJlcl90b19ieXRlcyhYRlNfSU5PX1RPX0FHTk8obXAsICh4KSkpICsgXAotIAkgYWdpbm9fdG9fYnl0ZXMoWEZTX0lOT19UT19BR0lOTyhtcCwgKHgpKSkpCi0gI2RlZmluZQlpbm9pZHhfdG9fYnl0ZXMoeCkJXAotLQkoKF9fdWludDY0X3QpKHgpIDw8IG1wLT5tX3NiLnNiX2lub2RlbG9nKQotKwkoKHVpbnQ2NF90KSh4KSA8PCBtcC0+bV9zYi5zYl9pbm9kZWxvZykKLSAKLSB0eXBlZGVmIGVudW0gewotIAlDVF9OT05FID0gLTEsCi1AQCAtNjgsNyArNjgsNyBAQCB0eXBlZGVmIHVuaW9uIHsKLSAJeGZzX2FnbnVtYmVyX3QJYWdudW1iZXI7Ci0gCWludAkJYmJvZmY7Ci0gCWludAkJYmxrb2ZmOwotLQlfX3VpbnQ2NF90CWJ5dGU7Ci0rCXVpbnQ2NF90CWJ5dGU7Ci0gCXhmc19kYWRkcl90CWRhZGRyOwotIAl4ZnNfZnNibG9ja190CWZzYmxvY2s7Ci0gCXhmc19pbm9fdAlpbm87Ci1AQCAtNzYsNyArNzYsNyBAQCB0eXBlZGVmIHVuaW9uIHsKLSAJaW50CQlpbm9vZmY7Ci0gfSBjdmFsX3Q7Ci0gCi0tc3RhdGljIF9fdWludDY0X3QJCWJ5dGV2YWx1ZShjdHlwZV90IGN0eXBlLCBjdmFsX3QgKnZhbCk7Ci0rc3RhdGljIHVpbnQ2NF90CQlieXRldmFsdWUoY3R5cGVfdCBjdHlwZSwgY3ZhbF90ICp2YWwpOwotIHN0YXRpYyBpbnQJCWNvbnZlcnRfZihpbnQgYXJnYywgY2hhciAqKmFyZ3YpOwotIHN0YXRpYyBpbnQJCWdldHZhbHVlKGNoYXIgKnMsIGN0eXBlX3QgY3R5cGUsIGN2YWxfdCAqdmFsKTsKLSBzdGF0aWMgY3R5cGVfdAkJbG9va3VwY3R5KGNoYXIgKmN0eW5hbWUpOwotQEAgLTExOCw3ICsxMTgsNyBAQCBzdGF0aWMgY29uc3QgY21kaW5mb190CWNvbnZlcnRfY21kID0KLSAJeyAiY29udmVydCIsIE5VTEwsIGNvbnZlcnRfZiwgMywgOSwgMCwgInR5cGUgbnVtIFt0eXBlIG51bV0uLi4gdHlwZSIsCi0gCSAgImNvbnZlcnQgZnJvbSBvbmUgYWRkcmVzcyBmb3JtIHRvIGFub3RoZXIiLCBOVUxMIH07Ci0gCi0tc3RhdGljIF9fdWludDY0X3QKLStzdGF0aWMgdWludDY0X3QKLSBieXRldmFsdWUoY3R5cGVfdCBjdHlwZSwgY3ZhbF90ICp2YWwpCi0gewotIAlzd2l0Y2ggKGN0eXBlKSB7Ci1AQCAtMTI5LDkgKzEyOSw5IEBAIGJ5dGV2YWx1ZShjdHlwZV90IGN0eXBlLCBjdmFsX3QgKnZhbCkKLSAJY2FzZSBDVF9BR05VTUJFUjoKLSAJCXJldHVybiBhZ251bWJlcl90b19ieXRlcyh2YWwtPmFnbnVtYmVyKTsKLSAJY2FzZSBDVF9CQk9GRjoKLS0JCXJldHVybiAoX191aW50NjRfdCl2YWwtPmJib2ZmOwotKwkJcmV0dXJuICh1aW50NjRfdCl2YWwtPmJib2ZmOwotIAljYXNlIENUX0JMS09GRjoKLS0JCXJldHVybiAoX191aW50NjRfdCl2YWwtPmJsa29mZjsKLSsJCXJldHVybiAodWludDY0X3QpdmFsLT5ibGtvZmY7Ci0gCWNhc2UgQ1RfQllURToKLSAJCXJldHVybiB2YWwtPmJ5dGU7Ci0gCWNhc2UgQ1RfREFERFI6Ci1AQCAtMTQzLDcgKzE0Myw3IEBAIGJ5dGV2YWx1ZShjdHlwZV90IGN0eXBlLCBjdmFsX3QgKnZhbCkKLSAJY2FzZSBDVF9JTk9JRFg6Ci0gCQlyZXR1cm4gaW5vaWR4X3RvX2J5dGVzKHZhbC0+aW5vaWR4KTsKLSAJY2FzZSBDVF9JTk9PRkY6Ci0tCQlyZXR1cm4gKF9fdWludDY0X3QpdmFsLT5pbm9vZmY7Ci0rCQlyZXR1cm4gKHVpbnQ2NF90KXZhbC0+aW5vb2ZmOwotIAljYXNlIENUX05PTkU6Ci0gCWNhc2UgTkNUUzoKLSAJCWJyZWFrOwotQEAgLTE2MCw3ICsxNjAsNyBAQCBjb252ZXJ0X2YoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAljdmFsX3QJCWN2YWxzW05DVFNdID0ge307Ci0gCWludAkJaTsKLSAJaW50CQltYXNrOwotLQlfX3VpbnQ2NF90CXY7Ci0rCXVpbnQ2NF90CXY7Ci0gCWN0eXBlX3QJCXd0eXBlOwotIAotIAkvKiBtb3ZlIHBhc3QgdGhlICJjb252ZXJ0IiBjb21tYW5kICovCi1AQCAtMjYyLDcgKzI2Miw3IEBAIHN0YXRpYyBpbnQKLSBnZXR2YWx1ZShjaGFyICpzLCBjdHlwZV90IGN0eXBlLCBjdmFsX3QgKnZhbCkKLSB7Ci0gCWNoYXIJCSpwOwotLQlfX3VpbnQ2NF90CXY7Ci0rCXVpbnQ2NF90CXY7Ci0gCi0gCXYgPSBzdHJ0b3VsbChzLCAmcCwgMCk7Ci0gCWlmICgqcCAhPSAnXDAnKSB7Ci1AQCAtMjg2LDcgKzI4Niw3IEBAIGdldHZhbHVlKGNoYXIgKnMsIGN0eXBlX3QgY3R5cGUsIGN2YWxfdCAqdmFsKQotIAkJdmFsLT5ibGtvZmYgPSAoaW50KXY7Ci0gCQlicmVhazsKLSAJY2FzZSBDVF9CWVRFOgotLQkJdmFsLT5ieXRlID0gKF9fdWludDY0X3QpdjsKLSsJCXZhbC0+Ynl0ZSA9ICh1aW50NjRfdCl2OwotIAkJYnJlYWs7Ci0gCWNhc2UgQ1RfREFERFI6Ci0gCQl2YWwtPmRhZGRyID0gKHhmc19kYWRkcl90KXY7Ci1kaWZmIC0tZ2l0IGEvZGIvZmFkZHIuYyBiL2RiL2ZhZGRyLmMKLWluZGV4IDg3NzIwMGJmLi41NjIwNzY0OCAxMDA2NDQKLS0tLSBhL2RiL2ZhZGRyLmMKLSsrKyBiL2RiL2ZhZGRyLmMKLUBAIC03OSwxMSArNzksMTEgQEAgZmFfYXR0cmJsb2NrKAotIAl0eXBubV90CQluZXh0KQotIHsKLSAJYm1hcF9leHRfdAlibTsKLS0JX191aW50MzJfdAlibm87Ci0rCXVpbnQzMl90CWJubzsKLSAJeGZzX2ZzYmxvY2tfdAlkZnNibm87Ci0gCWludAkJbmV4OwotIAotLQlibm8gPSAoX191aW50MzJfdClnZXRiaXR2YWwob2JqLCBiaXQsIGJpdHN6KGJubyksIEJWVU5TSUdORUQpOwotKwlibm8gPSAodWludDMyX3QpZ2V0Yml0dmFsKG9iaiwgYml0LCBiaXRzeihibm8pLCBCVlVOU0lHTkVEKTsKLSAJaWYgKGJubyA9PSAwKSB7Ci0gCQlkYnByaW50ZihfKCJudWxsIGF0dHJpYnV0ZSBibG9jayBudW1iZXIsIGNhbm5vdCBzZXQgbmV3IGFkZHJcbiIpKTsKLSAJCXJldHVybjsKLUBAIC05Niw3ICs5Niw3IEBAIGZhX2F0dHJibG9jaygKLSAJfQotIAlkZnNibm8gPSBibS5zdGFydGJsb2NrICsgKGJubyAtIGJtLnN0YXJ0b2ZmKTsKLSAJQVNTRVJUKHR5cHRhYltuZXh0XS50eXBubSA9PSBuZXh0KTsKLS0Jc2V0X2N1cigmdHlwdGFiW25leHRdLCAoX19pbnQ2NF90KVhGU19GU0JfVE9fREFERFIobXAsIGRmc2JubyksIGJsa2JiLAotKwlzZXRfY3VyKCZ0eXB0YWJbbmV4dF0sIChpbnQ2NF90KVhGU19GU0JfVE9fREFERFIobXAsIGRmc2JubyksIGJsa2JiLAotIAkJREJfUklOR19BREQsIE5VTEwpOwotIH0KLSAKLUBAIC0yNzYsMTEgKzI3NiwxMSBAQCBmYV9kaXJibG9jaygKLSB7Ci0gCWJibWFwX3QJCWJibWFwOwotIAlibWFwX2V4dF90CSpibXA7Ci0tCV9fdWludDMyX3QJYm5vOwotKwl1aW50MzJfdAlibm87Ci0gCXhmc19mc2Jsb2NrX3QJZGZzYm5vOwotIAlpbnQJCW5leDsKLSAKLS0JYm5vID0gKF9fdWludDMyX3QpZ2V0Yml0dmFsKG9iaiwgYml0LCBiaXRzeihibm8pLCBCVlVOU0lHTkVEKTsKLSsJYm5vID0gKHVpbnQzMl90KWdldGJpdHZhbChvYmosIGJpdCwgYml0c3ooYm5vKSwgQlZVTlNJR05FRCk7Ci0gCWlmIChibm8gPT0gMCkgewotIAkJZGJwcmludGYoXygibnVsbCBkaXJlY3RvcnkgYmxvY2sgbnVtYmVyLCBjYW5ub3Qgc2V0IG5ldyBhZGRyXG4iKSk7Ci0gCQlyZXR1cm47Ci1AQCAtMjk3LDcgKzI5Nyw3IEBAIGZhX2RpcmJsb2NrKAotIAlBU1NFUlQodHlwdGFiW25leHRdLnR5cG5tID09IG5leHQpOwotIAlpZiAobmV4ID4gMSkKLSAJCW1ha2VfYmJtYXAoJmJibWFwLCBuZXgsIGJtcCk7Ci0tCXNldF9jdXIoJnR5cHRhYltuZXh0XSwgKF9faW50NjRfdClYRlNfRlNCX1RPX0RBRERSKG1wLCBkZnNibm8pLAotKwlzZXRfY3VyKCZ0eXB0YWJbbmV4dF0sIChpbnQ2NF90KVhGU19GU0JfVE9fREFERFIobXAsIGRmc2JubyksCi0gCQlYRlNfRlNCX1RPX0JCKG1wLCBtcC0+bV9kaXJfZ2VvLT5mc2Jjb3VudCksIERCX1JJTkdfQURELAotIAkJbmV4ID4gMSA/ICZiYm1hcCA6IE5VTEwpOwotIAlmcmVlKGJtcCk7Ci1AQCAtMzE3LDcgKzMxNyw3IEBAIGZhX2RyZnNibm8oCi0gCQlyZXR1cm47Ci0gCX0KLSAJQVNTRVJUKHR5cHRhYltuZXh0XS50eXBubSA9PSBuZXh0KTsKLS0Jc2V0X2N1cigmdHlwdGFiW25leHRdLCAoX19pbnQ2NF90KVhGU19GU0JfVE9fQkIobXAsIGJubyksIGJsa2JiLAotKwlzZXRfY3VyKCZ0eXB0YWJbbmV4dF0sIChpbnQ2NF90KVhGU19GU0JfVE9fQkIobXAsIGJubyksIGJsa2JiLAotIAkJREJfUklOR19BREQsIE5VTEwpOwotIH0KLSAKLWRpZmYgLS1naXQgYS9kYi9maWVsZC5jIGIvZGIvZmllbGQuYwotaW5kZXggODY1YjBiNzEuLmYxZTVmMzVlIDEwMDY0NAotLS0tIGEvZGIvZmllbGQuYwotKysrIGIvZGIvZmllbGQuYwotQEAgLTgzLDcgKzgzLDcgQEAgY29uc3QgZnRhdHRyX3QJZnRhdHRydGFiW10gPSB7Ci0gCSAgYXR0cl9zZl9lbnRyeV9zaXplLCBGVEFSR19TSVpFLCBOVUxMLCBhdHRyX3NmX2VudHJ5X2ZsZHMgfSwKLSAJeyBGTERUX0FUVFJfU0ZfSERSLCAiYXR0cl9zZl9oZHIiLCBOVUxMLCAoY2hhciAqKWF0dHJfc2ZfaGRyX2ZsZHMsCi0gCSAgU0koYml0c3ooc3RydWN0IHhmc19hdHRyX3NmX2hkcikpLCAwLCBOVUxMLCBhdHRyX3NmX2hkcl9mbGRzIH0sCi0tCXsgRkxEVF9BVFRSQkxPQ0ssICJhdHRyYmxvY2siLCBmcF9udW0sICIldSIsIFNJKGJpdHN6KF9fdWludDMyX3QpKSwgMCwKLSsJeyBGTERUX0FUVFJCTE9DSywgImF0dHJibG9jayIsIGZwX251bSwgIiV1IiwgU0koYml0c3oodWludDMyX3QpKSwgMCwKLSAJICBmYV9hdHRyYmxvY2ssIE5VTEwgfSwKLSAJeyBGTERUX0FUVFJTSE9SVCwgImF0dHJzaG9ydCIsIE5VTEwsIChjaGFyICopYXR0cl9zaG9ydGZvcm1fZmxkcywKLSAJICBhdHRyc2hvcnRfc2l6ZSwgRlRBUkdfU0laRSwgTlVMTCwgYXR0cl9zaG9ydGZvcm1fZmxkcyB9LAotQEAgLTE5OSw3ICsxOTksNyBAQCBjb25zdCBmdGF0dHJfdAlmdGF0dHJ0YWJbXSA9IHsKLSAJICBTSShiaXRzeihzdHJ1Y3QgeGZzX3JlZmNvdW50X3JlYykpLCAwLCBOVUxMLCByZWZjYnRfcmVjX2ZsZHMgfSwKLSAKLSAvKiBDUkMgZmllbGQgKi8KLS0JeyBGTERUX0NSQywgImNyYyIsIGZwX2NyYywgIiUjeCAoJXMpIiwgU0koYml0c3ooX191aW50MzJfdCkpLAotKwl7IEZMRFRfQ1JDLCAiY3JjIiwgZnBfY3JjLCAiJSN4ICglcykiLCBTSShiaXRzeih1aW50MzJfdCkpLAotIAkgIDAsIE5VTEwsIE5VTEwgfSwKLSAKLSAJeyBGTERUX0RFViwgImRldiIsIGZwX251bSwgIiUjeCIsIFNJKGJpdHN6KHhmc19kZXZfdCkpLCAwLCBOVUxMLCBOVUxMIH0sCi1AQCAtMjE0LDcgKzIxNCw3IEBAIGNvbnN0IGZ0YXR0cl90CWZ0YXR0cnRhYltdID0gewotIAl7IEZMRFRfRElOT0RFX0NPUkUsICJkaW5vZGVfY29yZSIsIE5VTEwsIChjaGFyICopaW5vZGVfY29yZV9mbGRzLAotIAkgIFNJKGJpdHN6KHhmc19kaW5vZGVfdCkpLCAwLCBOVUxMLCBpbm9kZV9jb3JlX2ZsZHMgfSwKLSAJeyBGTERUX0RJTk9ERV9GTVQsICJkaW5vZGVfZm10IiwgZnBfZGlub2RlX2ZtdCwgTlVMTCwKLS0JICBTSShiaXRzeihfX2ludDhfdCkpLCAwLCBOVUxMLCBOVUxMIH0sCi0rCSAgU0koYml0c3ooaW50OF90KSksIDAsIE5VTEwsIE5VTEwgfSwKLSAJeyBGTERUX0RJTk9ERV9VLCAiZGlub2RlX3UiLCBOVUxMLCAoY2hhciAqKWlub2RlX3VfZmxkcywgaW5vZGVfdV9zaXplLAotIAkgIEZUQVJHX1NJWkV8RlRBUkdfT0tFTVBUWSwgTlVMTCwgaW5vZGVfdV9mbGRzIH0sCi0gCXsgRkxEVF9ESU5PREVfVjMsICJkaW5vZGVfdjMiLCBOVUxMLCAoY2hhciAqKWlub2RlX3YzX2ZsZHMsCi1AQCAtMjk1LDcgKzI5NSw3IEBAIGNvbnN0IGZ0YXR0cl90CWZ0YXR0cnRhYltdID0gewotIAl7IEZMRFRfREEzX05PREVfSERSLCAiZGlyX25vZGVfaGRyIiwgTlVMTCwgKGNoYXIgKilkYTNfbm9kZV9oZHJfZmxkcywKLSAJICBTSShiaXRzeihzdHJ1Y3QgeGZzX2RhM19ub2RlX2hkcikpLCAwLCBOVUxMLCBkYTNfbm9kZV9oZHJfZmxkcyB9LAotIAotLQl7IEZMRFRfRElSQkxPQ0ssICJkaXJibG9jayIsIGZwX251bSwgIiV1IiwgU0koYml0c3ooX191aW50MzJfdCkpLCAwLAotKwl7IEZMRFRfRElSQkxPQ0ssICJkaXJibG9jayIsIGZwX251bSwgIiV1IiwgU0koYml0c3oodWludDMyX3QpKSwgMCwKLSAJICBmYV9kaXJibG9jaywgTlVMTCB9LAotIAl7IEZMRFRfRElTS19EUVVPVCwgImRpc2tfZHF1b3QiLCBOVUxMLCAoY2hhciAqKWRpc2tfZHF1b3RfZmxkcywKLSAJICBTSShiaXRzeih4ZnNfZGlza19kcXVvdF90KSksIDAsIE5VTEwsIGRpc2tfZHF1b3RfZmxkcyB9LAotQEAgLTMzNSwxNSArMzM1LDE1IEBAIGNvbnN0IGZ0YXR0cl90CWZ0YXR0cnRhYltdID0gewotIAkgIEZUQVJHX1NJWkUsIE5VTEwsIGlub2RlX2NyY19mbGRzIH0sCi0gCXsgRkxEVF9JTk9GUkVFLCAiaW5vZnJlZSIsIGZwX251bSwgIiUjbGx4IiwgU0koYml0c3ooeGZzX2lub2ZyZWVfdCkpLCAwLAotIAkgIE5VTEwsIE5VTEwgfSwKLS0JeyBGTERUX0lOVDE2RCwgImludDE2ZCIsIGZwX251bSwgIiVkIiwgU0koYml0c3ooX19pbnQxNl90KSksCi0rCXsgRkxEVF9JTlQxNkQsICJpbnQxNmQiLCBmcF9udW0sICIlZCIsIFNJKGJpdHN6KGludDE2X3QpKSwKLSAJICBGVEFSR19TSUdORUQsIE5VTEwsIE5VTEwgfSwKLS0JeyBGTERUX0lOVDMyRCwgImludDMyZCIsIGZwX251bSwgIiVkIiwgU0koYml0c3ooX19pbnQzMl90KSksCi0rCXsgRkxEVF9JTlQzMkQsICJpbnQzMmQiLCBmcF9udW0sICIlZCIsIFNJKGJpdHN6KGludDMyX3QpKSwKLSAJICBGVEFSR19TSUdORUQsIE5VTEwsIE5VTEwgfSwKLS0JeyBGTERUX0lOVDY0RCwgImludDY0ZCIsIGZwX251bSwgIiVsbGQiLCBTSShiaXRzeihfX2ludDY0X3QpKSwKLSsJeyBGTERUX0lOVDY0RCwgImludDY0ZCIsIGZwX251bSwgIiVsbGQiLCBTSShiaXRzeihpbnQ2NF90KSksCi0gCSAgRlRBUkdfU0lHTkVELCBOVUxMLCBOVUxMIH0sCi0tCXsgRkxEVF9JTlQ4RCwgImludDhkIiwgZnBfbnVtLCAiJWQiLCBTSShiaXRzeihfX2ludDhfdCkpLCBGVEFSR19TSUdORUQsCi0rCXsgRkxEVF9JTlQ4RCwgImludDhkIiwgZnBfbnVtLCAiJWQiLCBTSShiaXRzeihpbnQ4X3QpKSwgRlRBUkdfU0lHTkVELAotIAkgIE5VTEwsIE5VTEwgfSwKLS0JeyBGTERUX05TRUMsICJuc2VjIiwgZnBfbnVtLCAiJTA5ZCIsIFNJKGJpdHN6KF9faW50MzJfdCkpLCBGVEFSR19TSUdORUQsCi0rCXsgRkxEVF9OU0VDLCAibnNlYyIsIGZwX251bSwgIiUwOWQiLCBTSShiaXRzeihpbnQzMl90KSksIEZUQVJHX1NJR05FRCwKLSAJICBOVUxMLCBOVUxMIH0sCi0gCXsgRkxEVF9RQ05ULCAicWNudCIsIGZwX251bSwgIiVsbHUiLCBTSShiaXRzeih4ZnNfcWNudF90KSksIDAsIE5VTEwsCi0gCSAgTlVMTCB9LAotQEAgLTM1NiwzNCArMzU2LDM0IEBAIGNvbnN0IGZ0YXR0cl90CWZ0YXR0cnRhYltdID0gewotIAl7IEZMRFRfU1lNTElOS19DUkMsICJzeW1saW5rIiwgTlVMTCwgKGNoYXIgKilzeW1saW5rX2NyY19mbGRzLAotIAkgIHN5bWxpbmtfc2l6ZSwgRlRBUkdfU0laRSwgTlVMTCwgc3ltbGlua19jcmNfZmxkcyB9LAotIAotLQl7IEZMRFRfVElNRSwgInRpbWUiLCBmcF90aW1lLCBOVUxMLCBTSShiaXRzeihfX2ludDMyX3QpKSwgRlRBUkdfU0lHTkVELAotKwl7IEZMRFRfVElNRSwgInRpbWUiLCBmcF90aW1lLCBOVUxMLCBTSShiaXRzeihpbnQzMl90KSksIEZUQVJHX1NJR05FRCwKLSAJICBOVUxMLCBOVUxMIH0sCi0gCXsgRkxEVF9USU1FU1RBTVAsICJ0aW1lc3RhbXAiLCBOVUxMLCAoY2hhciAqKXRpbWVzdGFtcF9mbGRzLAotIAkgIFNJKGJpdHN6KHhmc190aW1lc3RhbXBfdCkpLCAwLCBOVUxMLCB0aW1lc3RhbXBfZmxkcyB9LAotIAl7IEZMRFRfVUlOVDEsICJ1aW50MSIsIGZwX251bSwgIiV1IiwgU0koMSksIDAsIE5VTEwsIE5VTEwgfSwKLS0JeyBGTERUX1VJTlQxNkQsICJ1aW50MTZkIiwgZnBfbnVtLCAiJXUiLCBTSShiaXRzeihfX3VpbnQxNl90KSksIDAsIE5VTEwsCi0rCXsgRkxEVF9VSU5UMTZELCAidWludDE2ZCIsIGZwX251bSwgIiV1IiwgU0koYml0c3oodWludDE2X3QpKSwgMCwgTlVMTCwKLSAJICBOVUxMIH0sCi0tCXsgRkxEVF9VSU5UMTZPLCAidWludDE2byIsIGZwX251bSwgIiUjbyIsIFNJKGJpdHN6KF9fdWludDE2X3QpKSwgMCwKLSsJeyBGTERUX1VJTlQxNk8sICJ1aW50MTZvIiwgZnBfbnVtLCAiJSNvIiwgU0koYml0c3oodWludDE2X3QpKSwgMCwKLSAJICBOVUxMLCBOVUxMIH0sCi0tCXsgRkxEVF9VSU5UMTZYLCAidWludDE2eCIsIGZwX251bSwgIiUjeCIsIFNJKGJpdHN6KF9fdWludDE2X3QpKSwgMCwKLSsJeyBGTERUX1VJTlQxNlgsICJ1aW50MTZ4IiwgZnBfbnVtLCAiJSN4IiwgU0koYml0c3oodWludDE2X3QpKSwgMCwKLSAJICBOVUxMLCBOVUxMIH0sCi0tCXsgRkxEVF9VSU5UMzJELCAidWludDMyZCIsIGZwX251bSwgIiV1IiwgU0koYml0c3ooX191aW50MzJfdCkpLCAwLCBOVUxMLAotKwl7IEZMRFRfVUlOVDMyRCwgInVpbnQzMmQiLCBmcF9udW0sICIldSIsIFNJKGJpdHN6KHVpbnQzMl90KSksIDAsIE5VTEwsCi0gCSAgTlVMTCB9LAotLQl7IEZMRFRfVUlOVDMyTywgInVpbnQzMm8iLCBmcF9udW0sICIlI28iLCBTSShiaXRzeihfX3VpbnQzMl90KSksIDAsCi0rCXsgRkxEVF9VSU5UMzJPLCAidWludDMybyIsIGZwX251bSwgIiUjbyIsIFNJKGJpdHN6KHVpbnQzMl90KSksIDAsCi0gCSAgTlVMTCwgTlVMTCB9LAotLQl7IEZMRFRfVUlOVDMyWCwgInVpbnQzMngiLCBmcF9udW0sICIlI3giLCBTSShiaXRzeihfX3VpbnQzMl90KSksIDAsCi0rCXsgRkxEVF9VSU5UMzJYLCAidWludDMyeCIsIGZwX251bSwgIiUjeCIsIFNJKGJpdHN6KHVpbnQzMl90KSksIDAsCi0gCSAgTlVMTCwgTlVMTCB9LAotLQl7IEZMRFRfVUlOVDY0RCwgInVpbnQ2NGQiLCBmcF9udW0sICIlbGx1IiwgU0koYml0c3ooX191aW50NjRfdCkpLCAwLAotKwl7IEZMRFRfVUlOVDY0RCwgInVpbnQ2NGQiLCBmcF9udW0sICIlbGx1IiwgU0koYml0c3oodWludDY0X3QpKSwgMCwKLSAJICBOVUxMLCBOVUxMIH0sCi0tCXsgRkxEVF9VSU5UNjRPLCAidWludDY0byIsIGZwX251bSwgIiUjbGxvIiwgU0koYml0c3ooX191aW50NjRfdCkpLCAwLAotKwl7IEZMRFRfVUlOVDY0TywgInVpbnQ2NG8iLCBmcF9udW0sICIlI2xsbyIsIFNJKGJpdHN6KHVpbnQ2NF90KSksIDAsCi0gCSAgTlVMTCwgTlVMTCB9LAotLQl7IEZMRFRfVUlOVDY0WCwgInVpbnQ2NHgiLCBmcF9udW0sICIlI2xseCIsIFNJKGJpdHN6KF9fdWludDY0X3QpKSwgMCwKLSsJeyBGTERUX1VJTlQ2NFgsICJ1aW50NjR4IiwgZnBfbnVtLCAiJSNsbHgiLCBTSShiaXRzeih1aW50NjRfdCkpLCAwLAotIAkgIE5VTEwsIE5VTEwgfSwKLS0JeyBGTERUX1VJTlQ4RCwgInVpbnQ4ZCIsIGZwX251bSwgIiV1IiwgU0koYml0c3ooX191aW50OF90KSksIDAsIE5VTEwsCi0rCXsgRkxEVF9VSU5UOEQsICJ1aW50OGQiLCBmcF9udW0sICIldSIsIFNJKGJpdHN6KHVpbnQ4X3QpKSwgMCwgTlVMTCwKLSAJICBOVUxMIH0sCi0tCXsgRkxEVF9VSU5UOE8sICJ1aW50OG8iLCBmcF9udW0sICIlI28iLCBTSShiaXRzeihfX3VpbnQ4X3QpKSwgMCwgTlVMTCwKLSsJeyBGTERUX1VJTlQ4TywgInVpbnQ4byIsIGZwX251bSwgIiUjbyIsIFNJKGJpdHN6KHVpbnQ4X3QpKSwgMCwgTlVMTCwKLSAJICBOVUxMIH0sCi0tCXsgRkxEVF9VSU5UOFgsICJ1aW50OHgiLCBmcF9udW0sICIlI3giLCBTSShiaXRzeihfX3VpbnQ4X3QpKSwgMCwgTlVMTCwKLSsJeyBGTERUX1VJTlQ4WCwgInVpbnQ4eCIsIGZwX251bSwgIiUjeCIsIFNJKGJpdHN6KHVpbnQ4X3QpKSwgMCwgTlVMTCwKLSAJICBOVUxMIH0sCi0gCXsgRkxEVF9VVUlELCAidXVpZCIsIGZwX3V1aWQsIE5VTEwsIFNJKGJpdHN6KHV1aWRfdCkpLCAwLCBOVUxMLCBOVUxMIH0sCi0gCXsgRkxEVF9aWlosIE5VTEwgfQotZGlmZiAtLWdpdCBhL2RiL2ZwcmludC5jIGIvZGIvZnByaW50LmMKLWluZGV4IGZkN2U3ZjQ1Li4yNjFhMzFlZiAxMDA2NDQKLS0tLSBhL2RiL2ZwcmludC5jCi0rKysgYi9kYi9mcHJpbnQuYwotQEAgLTgwLDcgKzgwLDcgQEAgZnBfbnVtKAotIAlpbnQJCWJpdHBvczsKLSAJaW50CQlpOwotIAlpbnQJCWlzbnVsbDsKLS0JX19pbnQ2NF90CXZhbDsKLSsJaW50NjRfdAkJdmFsOwotIAotIAlmb3IgKGkgPSAwLCBiaXRwb3MgPSBiaXQ7Ci0gCSAgICAgaSA8IGNvdW50ICYmICFzZWVuaW50KCk7Ci1AQCAtMTAwLDcgKzEwMCw3IEBAIGZwX251bSgKLSAJCWVsc2UgaWYgKHNpemUgPiAzMikKLSAJCQlkYnByaW50ZihmbXRzdHIsIHZhbCk7Ci0gCQllbHNlCi0tCQkJZGJwcmludGYoZm10c3RyLCAoX19pbnQzMl90KXZhbCk7Ci0rCQkJZGJwcmludGYoZm10c3RyLCAoaW50MzJfdCl2YWwpOwotIAkJaWYgKGkgPCBjb3VudCAtIDEpCi0gCQkJZGJwcmludGYoIiAiKTsKLSAJfQotQEAgLTIwMyw3ICsyMDMsNyBAQCBmcF9jcmMoCi0gewotIAlpbnQJCWJpdHBvczsKLSAJaW50CQlpOwotLQlfX2ludDY0X3QJdmFsOwotKwlpbnQ2NF90CQl2YWw7Ci0gCWNoYXIJCSpvazsKLSAKLSAJc3dpdGNoIChpb2N1cl9jcmNfdmFsaWQoKSkgewotQEAgLTIzMCw3ICsyMzAsNyBAQCBmcF9jcmMoCi0gCQlpZiAoc2l6ZSA+IDMyKQotIAkJCWRicHJpbnRmKGZtdHN0ciwgdmFsLCBvayk7Ci0gCQllbHNlCi0tCQkJZGJwcmludGYoZm10c3RyLCAoX19pbnQzMl90KXZhbCwgb2spOwotKwkJCWRicHJpbnRmKGZtdHN0ciwgKGludDMyX3QpdmFsLCBvayk7Ci0gCQlpZiAoaSA8IGNvdW50IC0gMSkKLSAJCQlkYnByaW50ZigiICIpOwotIAl9Ci1kaWZmIC0tZ2l0IGEvZGIvZnJhZy5jIGIvZGIvZnJhZy5jCi1pbmRleCA4MDA1ZTQ1ZC4uZDIyNGYwYzIgMTAwNjQ0Ci0tLS0gYS9kYi9mcmFnLmMKLSsrKyBiL2RiL2ZyYWcuYwotQEAgLTQyLDggKzQyLDggQEAgdHlwZWRlZglzdHJ1Y3QgZXh0bWFwIHsKLSAKLSBzdGF0aWMgaW50CQlhZmxhZzsKLSBzdGF0aWMgaW50CQlkZmxhZzsKLS1zdGF0aWMgX191aW50NjRfdAlleHRjb3VudF9hY3R1YWw7Ci0tc3RhdGljIF9fdWludDY0X3QJZXh0Y291bnRfaWRlYWw7Ci0rc3RhdGljIHVpbnQ2NF90CWV4dGNvdW50X2FjdHVhbDsKLStzdGF0aWMgdWludDY0X3QJZXh0Y291bnRfaWRlYWw7Ci0gc3RhdGljIGludAkJZmZsYWc7Ci0gc3RhdGljIGludAkJbGZsYWc7Ci0gc3RhdGljIGludAkJcWZsYWc7Ci1AQCAtMzEwLDggKzMxMCw4IEBAIHByb2Nlc3NfaW5vZGUoCi0gCXhmc19hZ2lub190CQlhZ2lubywKLSAJeGZzX2Rpbm9kZV90CQkqZGlwKQotIHsKLS0JX191aW50NjRfdAkJYWN0dWFsOwotLQlfX3VpbnQ2NF90CQlpZGVhbDsKLSsJdWludDY0X3QJCWFjdHVhbDsKLSsJdWludDY0X3QJCWlkZWFsOwotIAl4ZnNfaW5vX3QJCWlubzsKLSAJaW50CQkJc2tpcGE7Ci0gCWludAkJCXNraXBkOwotZGlmZiAtLWdpdCBhL2RiL2lub2RlLmMgYi9kYi9pbm9kZS5jCi1pbmRleCA4YjdhNDFlNC4uNmNjNDdkNmEgMTAwNjQ0Ci0tLS0gYS9kYi9pbm9kZS5jCi0rKysgYi9kYi9pbm9kZS5jCi1AQCAtMTE5LDQ5ICsxMTksNDkgQEAgY29uc3QgZmllbGRfdAlpbm9kZV9jb3JlX2ZsZHNbXSA9IHsKLSAJeyAiZG1zdGF0ZSIsIEZMRFRfVUlOVDE2RCwgT0koQ09GRihkbXN0YXRlKSksIEMxLCAwLCBUWVBfTk9ORSB9LAotIAl7ICJmbGFncyIsIEZMRFRfVUlOVDE2WCwgT0koQ09GRihmbGFncykpLCBDMSwgRkxEX1NLSVBBTEwsIFRZUF9OT05FIH0sCi0gCXsgIm5ld3J0Ym0iLCBGTERUX1VJTlQxLAotLQkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3ooX191aW50MTZfdCkgLSBYRlNfRElGTEFHX05FV1JUQk1fQklUIC0gMSksIEMxLAotKwkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3oodWludDE2X3QpIC0gWEZTX0RJRkxBR19ORVdSVEJNX0JJVCAtIDEpLCBDMSwKLSAJICAwLCBUWVBfTk9ORSB9LAotIAl7ICJwcmVhbGxvYyIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfUFJFQUxMT0NfQklUIC0gMSksIEMxLAotKwkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3oodWludDE2X3QpIC0gWEZTX0RJRkxBR19QUkVBTExPQ19CSVQgLSAxKSwgQzEsCi0gCSAgMCwgVFlQX05PTkUgfSwKLSAJeyAicmVhbHRpbWUiLCBGTERUX1VJTlQxLAotLQkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3ooX191aW50MTZfdCkgLSBYRlNfRElGTEFHX1JFQUxUSU1FX0JJVCAtIDEpLCBDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfUkVBTFRJTUVfQklUIC0gMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgImltbXV0YWJsZSIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfSU1NVVRBQkxFX0JJVC0xKSwgQzEsCi0rCSAgT0koQ09GRihmbGFncykgKyBiaXRzeih1aW50MTZfdCkgLSBYRlNfRElGTEFHX0lNTVVUQUJMRV9CSVQtMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgImFwcGVuZCIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfQVBQRU5EX0JJVCAtIDEpLCBDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfQVBQRU5EX0JJVCAtIDEpLCBDMSwKLSAJICAwLCBUWVBfTk9ORSB9LAotIAl7ICJzeW5jIiwgRkxEVF9VSU5UMSwKLS0JICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KF9fdWludDE2X3QpIC0gWEZTX0RJRkxBR19TWU5DX0JJVCAtIDEpLCBDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfU1lOQ19CSVQgLSAxKSwgQzEsCi0gCSAgMCwgVFlQX05PTkUgfSwKLSAJeyAibm9hdGltZSIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfTk9BVElNRV9CSVQgLSAxKSwgQzEsCi0rCSAgT0koQ09GRihmbGFncykgKyBiaXRzeih1aW50MTZfdCkgLSBYRlNfRElGTEFHX05PQVRJTUVfQklUIC0gMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgIm5vZHVtcCIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfTk9EVU1QX0JJVCAtIDEpLCBDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfTk9EVU1QX0JJVCAtIDEpLCBDMSwKLSAJICAwLCBUWVBfTk9ORSB9LAotIAl7ICJydGluaGVyaXQiLCBGTERUX1VJTlQxLAotLQkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3ooX191aW50MTZfdCkgLSBYRlNfRElGTEFHX1JUSU5IRVJJVF9CSVQtMSksIEMxLAotKwkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3oodWludDE2X3QpIC0gWEZTX0RJRkxBR19SVElOSEVSSVRfQklULTEpLCBDMSwKLSAJICAwLCBUWVBfTk9ORSB9LAotIAl7ICJwcm9qaW5oZXJpdCIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfUFJPSklOSEVSSVRfQklULTEpLEMxLAotKwkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3oodWludDE2X3QpIC0gWEZTX0RJRkxBR19QUk9KSU5IRVJJVF9CSVQtMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgIm5vc3ltbGlua3MiLCBGTERUX1VJTlQxLAotLQkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3ooX191aW50MTZfdCkgLSBYRlNfRElGTEFHX05PU1lNTElOS1NfQklULTEpLCBDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfTk9TWU1MSU5LU19CSVQtMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgImV4dHN6IiwgRkxEVF9VSU5UMSwKLS0JICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KF9fdWludDE2X3QpIC0gWEZTX0RJRkxBR19FWFRTSVpFX0JJVC0xKSxDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfRVhUU0laRV9CSVQtMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgImV4dHN6aW5oZXJpdCIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFncykgKyBiaXRzeihfX3VpbnQxNl90KSAtIFhGU19ESUZMQUdfRVhUU1pJTkhFUklUX0JJVC0xKSxDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfRVhUU1pJTkhFUklUX0JJVC0xKSwgQzEsCi0gCSAgMCwgVFlQX05PTkUgfSwKLSAJeyAibm9kZWZyYWciLCBGTERUX1VJTlQxLAotLQkgIE9JKENPRkYoZmxhZ3MpICsgYml0c3ooX191aW50MTZfdCkgLSBYRlNfRElGTEFHX05PREVGUkFHX0JJVC0xKSxDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfTk9ERUZSQUdfQklULTEpLCBDMSwKLSAJICAwLCBUWVBfTk9ORSB9LAotIAl7ICJmaWxlc3RyZWFtIiwgRkxEVF9VSU5UMSwKLS0JICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KF9fdWludDE2X3QpIC0gWEZTX0RJRkxBR19GSUxFU1RSRUFNX0JJVC0xKSxDMSwKLSsJICBPSShDT0ZGKGZsYWdzKSArIGJpdHN6KHVpbnQxNl90KSAtIFhGU19ESUZMQUdfRklMRVNUUkVBTV9CSVQtMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgImdlbiIsIEZMRFRfVUlOVDMyRCwgT0koQ09GRihnZW4pKSwgQzEsIDAsIFRZUF9OT05FIH0sCi0gCXsgTlVMTCB9Ci1AQCAtMTc3LDEwICsxNzcsMTAgQEAgY29uc3QgZmllbGRfdAlpbm9kZV92M19mbGRzW10gPSB7Ci0gCXsgImludW1iZXIiLCBGTERUX0lOTywgT0koQ09GRihpbm8pKSwgQzEsIDAsIFRZUF9OT05FIH0sCi0gCXsgInV1aWQiLCBGTERUX1VVSUQsIE9JKENPRkYodXVpZCkpLCBDMSwgMCwgVFlQX05PTkUgfSwKLSAJeyAicmVmbGluayIsIEZMRFRfVUlOVDEsCi0tCSAgT0koQ09GRihmbGFnczIpICsgYml0c3ooX191aW50NjRfdCkgLSBYRlNfRElGTEFHMl9SRUZMSU5LX0JJVC0xKSwgQzEsCi0rCSAgT0koQ09GRihmbGFnczIpICsgYml0c3oodWludDY0X3QpIC0gWEZTX0RJRkxBRzJfUkVGTElOS19CSVQtMSksIEMxLAotIAkgIDAsIFRZUF9OT05FIH0sCi0gCXsgImNvd2V4dHN6IiwgRkxEVF9VSU5UMSwKLS0JICBPSShDT0ZGKGZsYWdzMikgKyBiaXRzeihfX3VpbnQ2NF90KSAtIFhGU19ESUZMQUcyX0NPV0VYVFNJWkVfQklULTEpLCBDMSwKLSsJICBPSShDT0ZGKGZsYWdzMikgKyBiaXRzeih1aW50NjRfdCkgLSBYRlNfRElGTEFHMl9DT1dFWFRTSVpFX0JJVC0xKSwgQzEsCi0gCSAgMCwgVFlQX05PTkUgfSwKLSAJeyBOVUxMIH0KLSB9OwotZGlmZiAtLWdpdCBhL2RiL2lvLmMgYi9kYi9pby5jCi1pbmRleCAxZjI3ZjZiMy4uZmQ5YjlmNGIgMTAwNjQ0Ci0tLS0gYS9kYi9pby5jCi0rKysgYi9kYi9pby5jCi1AQCAtNTQ1LDcgKzU0NSw3IEBAIHNldF9jdXIoCi0gCXN0cnVjdCB4ZnNfYnVmCSpicDsKLSAJeGZzX2lub190CWRpcmlubzsKLSAJeGZzX2lub190CWlubzsKLS0JX191aW50MTZfdAltb2RlOwotKwl1aW50MTZfdAltb2RlOwotIAljb25zdCBzdHJ1Y3QgeGZzX2J1Zl9vcHMgKm9wcyA9IHR5cGUgPyB0eXBlLT5ib3BzIDogTlVMTDsKLSAKLSAJaWYgKGlvY3VyX3NwIDwgMCkgewotZGlmZiAtLWdpdCBhL2RiL2lvLmggYi9kYi9pby5oCi1pbmRleCA5OTczMDA0OC4uZGYwZmRkNzUgMTAwNjQ0Ci0tLS0gYS9kYi9pby5oCi0rKysgYi9kYi9pby5oCi1AQCAtMjUsNyArMjUsNyBAQCB0eXBlZGVmIHN0cnVjdCBiYm1hcCB7Ci0gfSBiYm1hcF90OwotIAotIHR5cGVkZWYgc3RydWN0IGlvY3VyIHsKLS0JX19pbnQ2NF90CQliYjsJLyogQkIgbnVtYmVyIGluIGZpbGVzeXN0ZW0gb2YgYnVmICovCi0rCWludDY0X3QJCQliYjsJLyogQkIgbnVtYmVyIGluIGZpbGVzeXN0ZW0gb2YgYnVmICovCi0gCWludAkJCWJsZW47CS8qIGxlbmd0aCBvZiAiYnVmIiwgYmIncyAqLwotIAlpbnQJCQlib2ZmOwkvKiBkYXRhIC0gYnVmICovCi0gCXZvaWQJCQkqYnVmOwkvKiBiYXNlIGFkZHJlc3Mgb2YgYnVmZmVyICovCi1AQCAtMzMsNyArMzMsNyBAQCB0eXBlZGVmIHN0cnVjdCBpb2N1ciB7Ci0gCXhmc19pbm9fdAkJZGlyaW5vOwkvKiBjdXJyZW50IGRpcmVjdG9yeSBpbm9kZSBudW1iZXIgKi8KLSAJeGZzX2lub190CQlpbm87CS8qIGN1cnJlbnQgaW5vZGUgbnVtYmVyICovCi0gCWludAkJCWxlbjsJLyogbGVuZ3RoIG9mICJkYXRhIiwgYnl0ZXMgKi8KLS0JX191aW50MTZfdAkJbW9kZTsJLyogY3VycmVudCBpbm9kZSdzIG1vZGUgKi8KLSsJdWludDE2X3QJCW1vZGU7CS8qIGN1cnJlbnQgaW5vZGUncyBtb2RlICovCi0gCXhmc19vZmZfdAkJb2ZmOwkvKiBmcyBvZmZzZXQgb2YgImRhdGEiIGluIGJ5dGVzICovCi0gCWNvbnN0IHN0cnVjdCB0eXAJKnR5cDsJLyogdHlwZSBvZiAiZGF0YSIgKi8KLSAJYmJtYXBfdAkJCSpiYm1hcDsJLyogbWFwIGRhZGRyIGlmIGZyYWdtZW50ZWQgKi8KLUBAIC01Nyw3ICs1Nyw3IEBAIGV4dGVybiB2b2lkCW9mZl9jdXIoaW50IG9mZiwgaW50IGxlbik7Ci0gZXh0ZXJuIHZvaWQJcG9wX2N1cih2b2lkKTsKLSBleHRlcm4gdm9pZAlwcmludF9pb2N1cihjaGFyICp0YWcsIGlvY3VyX3QgKmlvYyk7Ci0gZXh0ZXJuIHZvaWQJcHVzaF9jdXIodm9pZCk7Ci0tZXh0ZXJuIGludAlyZWFkX2J1ZihfX2ludDY0X3QgZGFkZHIsIGludCBjb3VudCwgdm9pZCAqYnVmcCk7Ci0rZXh0ZXJuIGludAlyZWFkX2J1ZihpbnQ2NF90IGRhZGRyLCBpbnQgY291bnQsIHZvaWQgKmJ1ZnApOwotIGV4dGVybiB2b2lkICAgICB3cml0ZV9jdXIodm9pZCk7Ci0gZXh0ZXJuIHZvaWQJc2V0X2N1cihjb25zdCBzdHJ1Y3QgdHlwICp0eXBlLCB4ZnNfZGFkZHJfdCBibGtudW0sCi0gCQkJaW50IGxlbiwgaW50IHJpbmdfYWRkLCBiYm1hcF90ICpiYm1hcCk7Ci1kaWZmIC0tZ2l0IGEvZGIvbWV0YWR1bXAuYyBiL2RiL21ldGFkdW1wLmMKLWluZGV4IDMxYmI1OTU5Li42N2JkZjE0ZSAxMDA2NDQKLS0tLSBhL2RiL21ldGFkdW1wLmMKLSsrKyBiL2RiL21ldGFkdW1wLmMKLUBAIC0xNzUsNyArMTc1LDcgQEAgd3JpdGVfaW5kZXgodm9pZCkKLSBzdGF0aWMgaW50Ci0gd3JpdGVfYnVmX3NlZ21lbnQoCi0gCWNoYXIJCSpkYXRhLAotLQlfX2ludDY0X3QJb2ZmLAotKwlpbnQ2NF90CQlvZmYsCi0gCWludAkJbGVuKQotIHsKLSAJaW50CQlpOwotQEAgLTEyNTYsNyArMTI1Niw3IEBAIHByb2Nlc3Nfc2ZfZGlyKAotIHsKLSAJc3RydWN0IHhmc19kaXIyX3NmX2hkcgkqc2ZwOwotIAl4ZnNfZGlyMl9zZl9lbnRyeV90CSpzZmVwOwotLQlfX3VpbnQ2NF90CQlpbm9fZGlyX3NpemU7Ci0rCXVpbnQ2NF90CQlpbm9fZGlyX3NpemU7Ci0gCWludAkJCWk7Ci0gCi0gCXNmcCA9IChzdHJ1Y3QgeGZzX2RpcjJfc2ZfaGRyICopWEZTX0RGT1JLX0RQVFIoZGlwKTsKLUBAIC0xMzIyLDcgKzEzMjIsNyBAQCBwcm9jZXNzX3NmX2RpcigKLSBzdGF0aWMgdm9pZAotIG9iZnVzY2F0ZV9wYXRoX2NvbXBvbmVudHMoCi0gCWNoYXIJCQkqYnVmLAotLQlfX3VpbnQ2NF90CQlsZW4pCi0rCXVpbnQ2NF90CQlsZW4pCi0gewotIAl1bnNpZ25lZCBjaGFyCQkqY29tcCA9ICh1bnNpZ25lZCBjaGFyICopYnVmOwotIAl1bnNpZ25lZCBjaGFyCQkqZW5kID0gY29tcCArIGxlbjsKLUBAIC0xMzU5LDcgKzEzNTksNyBAQCBzdGF0aWMgdm9pZAotIHByb2Nlc3Nfc2Zfc3ltbGluaygKLSAJeGZzX2Rpbm9kZV90CQkqZGlwKQotIHsKLS0JX191aW50NjRfdAkJbGVuOwotKwl1aW50NjRfdAkJbGVuOwotIAljaGFyCQkJKmJ1ZjsKLSAKLSAJbGVuID0gYmU2NF90b19jcHUoZGlwLT5kaV9zaXplKTsKLUBAIC0xNjMxLDcgKzE2MzEsNyBAQCBwcm9jZXNzX2F0dHJfYmxvY2soCi0gCXhmc19hdHRyX2xlYWZfZW50cnlfdCAJCSplbnRyeTsKLSAJeGZzX2F0dHJfbGVhZl9uYW1lX2xvY2FsX3QgCSpsb2NhbDsKLSAJeGZzX2F0dHJfbGVhZl9uYW1lX3JlbW90ZV90IAkqcmVtb3RlOwotLQlfX3VpbnQzMl90CQkJYnMgPSBtcC0+bV9zYi5zYl9ibG9ja3NpemU7Ci0rCXVpbnQzMl90CQkJYnMgPSBtcC0+bV9zYi5zYl9ibG9ja3NpemU7Ci0gCWNoYXIJCQkJKmZpcnN0X25hbWU7Ci0gCi0gCi1AQCAtMjI3MCw3ICsyMjcwLDcgQEAgZG9uZToKLSAJcmV0dXJuIHN1Y2Nlc3M7Ci0gfQotIAotLXN0YXRpYyBfX3VpbnQzMl90CWlub2Rlc19jb3BpZWQgPSAwOwotK3N0YXRpYyB1aW50MzJfdAlpbm9kZXNfY29waWVkOwotIAotIHN0YXRpYyBpbnQKLSBjb3B5X2lub2RlX2NodW5rKAotZGlmZiAtLWdpdCBhL2RiL3NiLmMgYi9kYi9zYi5jCi1pbmRleCA4ZTc3MjJjZC4uZjE5MjQ4ZDcgMTAwNjQ0Ci0tLS0gYS9kYi9zYi5jCi0rKysgYi9kYi9zYi5jCi1AQCAtNjA2LDcgKzYwNiw3IEBAIHZlcnNpb25faGVscCh2b2lkKQotIH0KLSAKLSBzdGF0aWMgaW50Ci0tZG9fdmVyc2lvbih4ZnNfYWdudW1iZXJfdCBhZ25vLCBfX3VpbnQxNl90IHZlcnNpb24sIF9fdWludDMyX3QgZmVhdHVyZXMpCi0rZG9fdmVyc2lvbih4ZnNfYWdudW1iZXJfdCBhZ25vLCB1aW50MTZfdCB2ZXJzaW9uLCB1aW50MzJfdCBmZWF0dXJlcykKLSB7Ci0gCXhmc19zYl90CXRzYjsKLSAKLUBAIC03MTAsOCArNzEwLDggQEAgdmVyc2lvbl9mKAotIAlpbnQJCWFyZ2MsCi0gCWNoYXIJCSoqYXJndikKLSB7Ci0tCV9fdWludDE2X3QJdmVyc2lvbiA9IDA7Ci0tCV9fdWludDMyX3QJZmVhdHVyZXMgPSAwOwotKwl1aW50MTZfdAl2ZXJzaW9uID0gMDsKLSsJdWludDMyX3QJZmVhdHVyZXMgPSAwOwotIAl4ZnNfYWdudW1iZXJfdAlhZzsKLSAKLSAJaWYgKGFyZ2MgPT0gMikgewkvKiBXUklURSBWRVJTSU9OICovCi1kaWZmIC0tZ2l0IGEvZnNyL3hmc19mc3IuYyBiL2Zzci94ZnNfZnNyLmMKLWluZGV4IDUxN2I3NWYwLi5kNDg0NmEzMiAxMDA2NDQKLS0tLSBhL2Zzci94ZnNfZnNyLmMKLSsrKyBiL2Zzci94ZnNfZnNyLmMKLUBAIC01NCw3ICs1NCw3IEBAIHN0cnVjdCBnZXRibWFwICAqb3V0bWFwID0gTlVMTDsKLSBpbnQgICAgICAgICAgICAgb3V0bWFwX3NpemUgPSAwOwotIGludAkJUmVhbFVpZDsKLSBpbnQJCXRtcF9hZ2k7Ci0tc3RhdGljIF9faW50NjRfdAltaW5pbXVtZnJlZSA9IDIwNDg7Ci0rc3RhdGljIGludDY0X3QJCW1pbmltdW1mcmVlID0gMjA0ODsKLSAKLSAjZGVmaW5lIE1OVFRZUEVfWEZTICAgICAgICAgICAgICJ4ZnMiCi0gCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9kYXJ3aW4uaCBiL2luY2x1ZGUvZGFyd2luLmgKLWluZGV4IDdiYmQ1NzY0Li41MTAzMWM0MiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvZGFyd2luLmgKLSsrKyBiL2luY2x1ZGUvZGFyd2luLmgKLUBAIC0xMjUsMTUgKzEyNSwxNSBAQCB0eXBlZGVmIHNpZ25lZCBpbnQJCV9fczMyOwotIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludAlfX3U2NDsKLSB0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgaW50CV9fczY0OwotIAotLSNkZWZpbmUgX19pbnQ4X3QJaW50OF90Ci0tI2RlZmluZSBfX2ludDE2X3QJaW50MTZfdAotLSNkZWZpbmUgX19pbnQzMl90CWludDMyX3QKLS0jZGVmaW5lIF9faW50MzJfdAlpbnQzMl90Ci0tI2RlZmluZSBfX2ludDY0X3QJaW50NjRfdAotLSNkZWZpbmUgX191aW50OF90CXVfaW50OF90Ci0tI2RlZmluZSBfX3VpbnQxNl90CXVfaW50MTZfdAotLSNkZWZpbmUgX191aW50MzJfdAl1X2ludDMyX3QKLS0jZGVmaW5lIF9fdWludDY0X3QJdV9pbnQ2NF90Ci0rI2RlZmluZSBpbnQ4X3QJCWludDhfdAotKyNkZWZpbmUgaW50MTZfdAkJaW50MTZfdAotKyNkZWZpbmUgaW50MzJfdAkJaW50MzJfdAotKyNkZWZpbmUgaW50MzJfdAkJaW50MzJfdAotKyNkZWZpbmUgaW50NjRfdAkJaW50NjRfdAotKyNkZWZpbmUgdWludDhfdAkJdV9pbnQ4X3QKLSsjZGVmaW5lIHVpbnQxNl90CXVfaW50MTZfdAotKyNkZWZpbmUgdWludDMyX3QJdV9pbnQzMl90Ci0rI2RlZmluZSB1aW50NjRfdAl1X2ludDY0X3QKLSAKLSB0eXBlZGVmIG9mZl90CQl4ZnNfb2ZmX3Q7Ci0gdHlwZWRlZiB1X2ludDY0X3QJeGZzX2lub190OwotZGlmZiAtLWdpdCBhL2luY2x1ZGUvZnJlZWJzZC5oIGIvaW5jbHVkZS9mcmVlYnNkLmgKLWluZGV4IGZiMzE4Yjg5Li5mNTJlZDBhOSAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvZnJlZWJzZC5oCi0rKysgYi9pbmNsdWRlL2ZyZWVic2QuaAotQEAgLTUwLDkgKzUwLDkgQEAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50CV9fdTY0OwotIHR5cGVkZWYgc2lnbmVkIGxvbmcgbG9uZyBpbnQJX19zNjQ7Ci0gCi0gdHlwZWRlZiBvZmZfdAkJeGZzX29mZl90OwotLXR5cGVkZWYgX191aW50NjRfdAl4ZnNfaW5vX3Q7Ci0tdHlwZWRlZiBfX3VpbnQzMl90CXhmc19kZXZfdDsKLS10eXBlZGVmIF9faW50NjRfdAl4ZnNfZGFkZHJfdDsKLSt0eXBlZGVmIHVpbnQ2NF90CXhmc19pbm9fdDsKLSt0eXBlZGVmIHVpbnQzMl90CXhmc19kZXZfdDsKLSt0eXBlZGVmIGludDY0X3QJCXhmc19kYWRkcl90OwotIHR5cGVkZWYgX191MzIJCXhmc19ubGlua190OwotIAotICNkZWZpbmUJT19MQVJHRUZJTEUJMAotZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ251a2ZyZWVic2QuaCBiL2luY2x1ZGUvZ251a2ZyZWVic2QuaAotaW5kZXggNjkxNmU2NWEuLjFkYjNmNGYwIDEwMDY0NAotLS0tIGEvaW5jbHVkZS9nbnVrZnJlZWJzZC5oCi0rKysgYi9pbmNsdWRlL2dudWtmcmVlYnNkLmgKLUBAIC00Niw5ICs0Niw5IEBAIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludAlfX3U2NDsKLSB0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgaW50CV9fczY0OwotIAotIHR5cGVkZWYgb2ZmX3QJCXhmc19vZmZfdDsKLS10eXBlZGVmIF9fdWludDY0X3QJeGZzX2lub190OwotLXR5cGVkZWYgX191aW50MzJfdAl4ZnNfZGV2X3Q7Ci0tdHlwZWRlZiBfX2ludDY0X3QJeGZzX2RhZGRyX3Q7Ci0rdHlwZWRlZiB1aW50NjRfdAl4ZnNfaW5vX3Q7Ci0rdHlwZWRlZiB1aW50MzJfdAl4ZnNfZGV2X3Q7Ci0rdHlwZWRlZiBpbnQ2NF90CQl4ZnNfZGFkZHJfdDsKLSB0eXBlZGVmIF9fdTMyCQl4ZnNfbmxpbmtfdDsKLSAKLSAjZGVmaW5lIEhBVkVfRklECTEKLWRpZmYgLS1naXQgYS9pbmNsdWRlL2xpYnhjbWQuaCBiL2luY2x1ZGUvbGlieGNtZC5oCi1pbmRleCBlOGQyZmZjOC4uNjgwNjM4MGMgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL2xpYnhjbWQuaAotKysrIGIvaW5jbHVkZS9saWJ4Y21kLmgKLUBAIC00MiwxMCArNDIsMTAgQEAgZ2V0X3RvcG9sb2d5KAotIGV4dGVybiB2b2lkCi0gY2FsY19kZWZhdWx0X2FnX2dlb21ldHJ5KAotIAlpbnQJCWJsb2NrbG9nLAotLQlfX3VpbnQ2NF90CWRibG9ja3MsCi0rCXVpbnQ2NF90CWRibG9ja3MsCi0gCWludAkJbXVsdGlkaXNrLAotLQlfX3VpbnQ2NF90CSphZ3NpemUsCi0tCV9fdWludDY0X3QJKmFnY291bnQpOwotKwl1aW50NjRfdAkqYWdzaXplLAotKwl1aW50NjRfdAkqYWdjb3VudCk7Ci0gCi0gZXh0ZXJuIGludAotIGNoZWNrX292ZXJ3cml0ZSgKLWRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4LmggYi9pbmNsdWRlL2xpbnV4LmgKLWluZGV4IDk2MTFhMzdmLi42Y2UzNDRjNSAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvbGludXguaAotKysrIGIvaW5jbHVkZS9saW51eC5oCi1AQCAtMTMyLDcgKzEzMiw3IEBAIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgcGxhdGZvcm1fdXVpZF9jb3B5KHV1aWRfdCAqZHN0LCB1dWlkX3QgKnNyYykKLSBzdGF0aWMgX19pbmxpbmVfXyBpbnQKLSBwbGF0Zm9ybV9kaXNjYXJkX2Jsb2NrcyhpbnQgZmQsIHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBsZW4pCi0gewotLQlfX3VpbnQ2NF90IHJhbmdlWzJdID0geyBzdGFydCwgbGVuIH07Ci0rCXVpbnQ2NF90IHJhbmdlWzJdID0geyBzdGFydCwgbGVuIH07Ci0gCi0gCWlmIChpb2N0bChmZCwgQkxLRElTQ0FSRCwgJnJhbmdlKSA8IDApCi0gCQlyZXR1cm4gZXJybm87Ci1AQCAtMTQ0LDkgKzE0NCw5IEBAIHBsYXRmb3JtX2Rpc2NhcmRfYmxvY2tzKGludCBmZCwgdWludDY0X3Qgc3RhcnQsIHVpbnQ2NF90IGxlbikKLSAjZGVmaW5lIEVGU0JBRENSQwlFQkFETVNHCS8qIEJhZCBDUkMgZGV0ZWN0ZWQgKi8KLSAKLSB0eXBlZGVmIG9mZl90CQl4ZnNfb2ZmX3Q7Ci0tdHlwZWRlZiBfX3VpbnQ2NF90CXhmc19pbm9fdDsKLS10eXBlZGVmIF9fdWludDMyX3QJeGZzX2Rldl90OwotLXR5cGVkZWYgX19pbnQ2NF90CXhmc19kYWRkcl90OwotK3R5cGVkZWYgdWludDY0X3QJeGZzX2lub190OwotK3R5cGVkZWYgdWludDMyX3QJeGZzX2Rldl90OwotK3R5cGVkZWYgaW50NjRfdAkJeGZzX2RhZGRyX3Q7Ci0gdHlwZWRlZiBfX3UzMgkJeGZzX25saW5rX3Q7Ci0gCi0gLyoqCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZnNfYXJjaC5oIGIvaW5jbHVkZS94ZnNfYXJjaC5oCi1pbmRleCAxMmNkNDNlNi4uMTg2Y2FkYmEgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3hmc19hcmNoLmgKLSsrKyBiL2luY2x1ZGUveGZzX2FyY2guaAotQEAgLTI0NCwzOSArMjQ0LDM5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBiZTY0X2FkZF9jcHUoX19iZTY0ICphLCBfX3M2NCBiKQotIAkqYSA9IGNwdV90b19iZTY0KGJlNjRfdG9fY3B1KCphKSArIGIpOwotIH0KLSAKLS1zdGF0aWMgaW5saW5lIF9fdWludDE2X3QgZ2V0X3VuYWxpZ25lZF9iZTE2KHZvaWQgKnApCi0rc3RhdGljIGlubGluZSB1aW50MTZfdCBnZXRfdW5hbGlnbmVkX2JlMTYodm9pZCAqcCkKLSB7Ci0tCV9fdWludDhfdCAqX19wID0gcDsKLSsJdWludDhfdCAqX19wID0gcDsKLSAJcmV0dXJuIF9fcFswXSA8PCA4IHwgX19wWzFdOwotIH0KLSAKLS1zdGF0aWMgaW5saW5lIF9fdWludDMyX3QgZ2V0X3VuYWxpZ25lZF9iZTMyKHZvaWQgKnApCi0rc3RhdGljIGlubGluZSB1aW50MzJfdCBnZXRfdW5hbGlnbmVkX2JlMzIodm9pZCAqcCkKLSB7Ci0tCV9fdWludDhfdCAqX19wID0gcDsKLSsJdWludDhfdCAqX19wID0gcDsKLSAgICAgICAgIHJldHVybiBfX3BbMF0gPDwgMjQgfCBfX3BbMV0gPDwgMTYgfCBfX3BbMl0gPDwgOCB8IF9fcFszXTsKLSB9Ci0gCi0tc3RhdGljIGlubGluZSBfX3VpbnQ2NF90IGdldF91bmFsaWduZWRfYmU2NCh2b2lkICpwKQotK3N0YXRpYyBpbmxpbmUgdWludDY0X3QgZ2V0X3VuYWxpZ25lZF9iZTY0KHZvaWQgKnApCi0gewotLQlyZXR1cm4gKF9fdWludDY0X3QpZ2V0X3VuYWxpZ25lZF9iZTMyKHApIDw8IDMyIHwKLSsJcmV0dXJuICh1aW50NjRfdClnZXRfdW5hbGlnbmVkX2JlMzIocCkgPDwgMzIgfAotIAkJCSAgIGdldF91bmFsaWduZWRfYmUzMihwICsgNCk7Ci0gfQotIAotLXN0YXRpYyBpbmxpbmUgdm9pZCBwdXRfdW5hbGlnbmVkX2JlMTYoX191aW50MTZfdCB2YWwsIHZvaWQgKnApCi0rc3RhdGljIGlubGluZSB2b2lkIHB1dF91bmFsaWduZWRfYmUxNih1aW50MTZfdCB2YWwsIHZvaWQgKnApCi0gewotLQlfX3VpbnQ4X3QgKl9fcCA9IHA7Ci0rCXVpbnQ4X3QgKl9fcCA9IHA7Ci0gCSpfX3ArKyA9IHZhbCA+PiA4OwotIAkqX19wKysgPSB2YWw7Ci0gfQotIAotLXN0YXRpYyBpbmxpbmUgdm9pZCBwdXRfdW5hbGlnbmVkX2JlMzIoX191aW50MzJfdCB2YWwsIHZvaWQgKnApCi0rc3RhdGljIGlubGluZSB2b2lkIHB1dF91bmFsaWduZWRfYmUzMih1aW50MzJfdCB2YWwsIHZvaWQgKnApCi0gewotLQlfX3VpbnQ4X3QgKl9fcCA9IHA7Ci0rCXVpbnQ4X3QgKl9fcCA9IHA7Ci0gCXB1dF91bmFsaWduZWRfYmUxNih2YWwgPj4gMTYsIF9fcCk7Ci0gCXB1dF91bmFsaWduZWRfYmUxNih2YWwsIF9fcCArIDIpOwotIH0KLSAKLS1zdGF0aWMgaW5saW5lIHZvaWQgcHV0X3VuYWxpZ25lZF9iZTY0KF9fdWludDY0X3QgdmFsLCB2b2lkICpwKQotK3N0YXRpYyBpbmxpbmUgdm9pZCBwdXRfdW5hbGlnbmVkX2JlNjQodWludDY0X3QgdmFsLCB2b2lkICpwKQotIHsKLSAJcHV0X3VuYWxpZ25lZF9iZTMyKHZhbCA+PiAzMiwgcCk7Ci0gCXB1dF91bmFsaWduZWRfYmUzMih2YWwsIHAgKyA0KTsKLWRpZmYgLS1naXQgYS9pbmNsdWRlL3hmc19pbm9kZS5oIGIvaW5jbHVkZS94ZnNfaW5vZGUuaAotaW5kZXggZmI2YjU0MjkuLjg3NjYwMjRlIDEwMDY0NAotLS0tIGEvaW5jbHVkZS94ZnNfaW5vZGUuaAotKysrIGIvaW5jbHVkZS94ZnNfaW5vZGUuaAotQEAgLTEyMyw4ICsxMjMsOCBAQCB4ZnNfZ2V0X3Byb2ppZChzdHJ1Y3QgeGZzX2ljZGlub2RlICppZCkKLSBzdGF0aWMgaW5saW5lIHZvaWQKLSB4ZnNfc2V0X3Byb2ppZChzdHJ1Y3QgeGZzX2ljZGlub2RlICppZCwgcHJpZF90IHByb2ppZCkKLSB7Ci0tCWlkLT5kaV9wcm9qaWRfaGkgPSAoX191aW50MTZfdCkgKHByb2ppZCA+PiAxNik7Ci0tCWlkLT5kaV9wcm9qaWRfbG8gPSAoX191aW50MTZfdCkgKHByb2ppZCAmIDB4ZmZmZik7Ci0rCWlkLT5kaV9wcm9qaWRfaGkgPSAodWludDE2X3QpIChwcm9qaWQgPj4gMTYpOwotKwlpZC0+ZGlfcHJvamlkX2xvID0gKHVpbnQxNl90KSAocHJvamlkICYgMHhmZmZmKTsKLSB9Ci0gCi0gc3RhdGljIGlubGluZSBib29sIHhmc19pc19yZWZsaW5rX2lub2RlKHN0cnVjdCB4ZnNfaW5vZGUgKmlwKQotZGlmZiAtLWdpdCBhL2luY2x1ZGUveGZzX2xvZ19yZWNvdmVyLmggYi9pbmNsdWRlL3hmc19sb2dfcmVjb3Zlci5oCi1pbmRleCA3NTgyNjc2Yi4uMGQwOTg2MjggMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3hmc19sb2dfcmVjb3Zlci5oCi0rKysgYi9pbmNsdWRlL3hmc19sb2dfcmVjb3Zlci5oCi1AQCAtMjYsNyArMjYsNyBAQAotICNkZWZpbmUgWExPR19SSEFTSF9TSVpFCTE2Ci0gI2RlZmluZSBYTE9HX1JIQVNIX1NISUZUIDIKLSAjZGVmaW5lIFhMT0dfUkhBU0godGlkKQlcCi0tCSgoKChfX3VpbnQzMl90KXRpZCk+PlhMT0dfUkhBU0hfU0hJRlQpICYgKFhMT0dfUkhBU0hfU0laRS0xKSkKLSsJKCgoKHVpbnQzMl90KXRpZCk+PlhMT0dfUkhBU0hfU0hJRlQpICYgKFhMT0dfUkhBU0hfU0laRS0xKSkKLSAKLSAjZGVmaW5lIFhMT0dfTUFYX1JFR0lPTlNfSU5fSVRFTSAgIChYRlNfTUFYX0JMT0NLU0laRSAvIFhGU19CTEZfQ0hVTksgLyAyICsgMSkKLSAKLWRpZmYgLS1naXQgYS9pbmNsdWRlL3hmc19tZXRhZHVtcC5oIGIvaW5jbHVkZS94ZnNfbWV0YWR1bXAuaAotaW5kZXggN2YzMDM5ZWIuLjEzYWZiOGRkIDEwMDY0NAotLS0tIGEvaW5jbHVkZS94ZnNfbWV0YWR1bXAuaAotKysrIGIvaW5jbHVkZS94ZnNfbWV0YWR1bXAuaAotQEAgLTI0LDggKzI0LDggQEAKLSB0eXBlZGVmIHN0cnVjdCB4ZnNfbWV0YWJsb2NrIHsKLSAJX19iZTMyCQltYl9tYWdpYzsKLSAJX19iZTE2CQltYl9jb3VudDsKLS0JX191aW50OF90CW1iX2Jsb2NrbG9nOwotLQlfX3VpbnQ4X3QJbWJfaW5mbzsKLSsJdWludDhfdAkJbWJfYmxvY2tsb2c7Ci0rCXVpbnQ4X3QJCW1iX2luZm87Ci0gCS8qIGZvbGxvd2VkIGJ5IGFuIGFycmF5IG9mIHhmc19kYWRkcl90ICovCi0gfSB4ZnNfbWV0YWJsb2NrX3Q7Ci0gCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZnNfbW91bnQuaCBiL2luY2x1ZGUveGZzX21vdW50LmgKLWluZGV4IDVmZjI0ZWJmLi41YjMyM2JiMSAxMDA2NDQKLS0tLSBhL2luY2x1ZGUveGZzX21vdW50LmgKLSsrKyBiL2luY2x1ZGUveGZzX21vdW50LmgKLUBAIC00OCwxMiArNDgsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX21vdW50IHsKLSAjZGVmaW5lIG1fZGV2CQltX2RkZXZfdGFyZ3AKLSAjZGVmaW5lIG1fbG9nZGV2CW1fbG9nZGV2X3RhcmdwCi0gI2RlZmluZSBtX3J0ZGV2CQltX3J0ZGV2X3RhcmdwCi0tCV9fdWludDhfdAkJbV9kaXJjb29rX2Vsb2c7CS8qIGxvZyBkLWNvb2tpZSBlbnRyeSBiaXRzICovCi0tCV9fdWludDhfdAkJbV9ibGtiaXRfbG9nOwkvKiBibG9ja2xvZyArIE5CQlkgKi8KLS0JX191aW50OF90CQltX2Jsa2JiX2xvZzsJLyogYmxvY2tsb2cgLSBCQlNISUZUICovCi0tCV9fdWludDhfdAkJbV9zZWN0YmJfbG9nOwkvKiBzZWN0b3Jsb2cgLSBCQlNISUZUICovCi0tCV9fdWludDhfdAkJbV9hZ25vX2xvZzsJLyogbG9nICNhZydzICovCi0tCV9fdWludDhfdAkJbV9hZ2lub19sb2c7CS8qICNiaXRzIGZvciBhZ2lubyBpbiBpbnVtICovCi0rCXVpbnQ4X3QJCQltX2RpcmNvb2tfZWxvZzsJLyogbG9nIGQtY29va2llIGVudHJ5IGJpdHMgKi8KLSsJdWludDhfdAkJCW1fYmxrYml0X2xvZzsJLyogYmxvY2tsb2cgKyBOQkJZICovCi0rCXVpbnQ4X3QJCQltX2Jsa2JiX2xvZzsJLyogYmxvY2tsb2cgLSBCQlNISUZUICovCi0rCXVpbnQ4X3QJCQltX3NlY3RiYl9sb2c7CS8qIHNlY3RvcmxvZyAtIEJCU0hJRlQgKi8KLSsJdWludDhfdAkJCW1fYWdub19sb2c7CS8qIGxvZyAjYWcncyAqLwotKwl1aW50OF90CQkJbV9hZ2lub19sb2c7CS8qICNiaXRzIGZvciBhZ2lubyBpbiBpbnVtICovCi0gCXVpbnQJCQltX2lub2RlX2NsdXN0ZXJfc2l6ZTsvKiBtaW4gaW5vZGUgYnVmIHNpemUgKi8KLSAJdWludAkJCW1fYmxvY2ttYXNrOwkvKiBzYl9ibG9ja3NpemUtMSAqLwotIAl1aW50CQkJbV9ibG9ja3dzaXplOwkvKiBzYl9ibG9ja3NpemUgaW4gd29yZHMgKi8KLUBAIC04OCw3ICs4OCw3IEBAIHR5cGVkZWYgc3RydWN0IHhmc19tb3VudCB7Ci0gCWludAkJCW1fbGl0aW5vOwkvKiBzaXplIG9mIGlub2RlIHVuaW9uIGFyZWEgKi8KLSAJaW50CQkJbV9pbm9hbGlnbl9tYXNrOy8qIG1hc2sgc2JfaW5vYWxpZ25tdCBpZiB1c2VkICovCi0gCXN0cnVjdCB4ZnNfdHJhbnNfcmVzdgltX3Jlc3Y7CQkvKiBwcmVjb21wdXRlZCByZXMgdmFsdWVzICovCi0tCV9fdWludDY0X3QJCW1fbWF4aWNvdW50OwkvKiBtYXhpbXVtIGlub2RlIGNvdW50ICovCi0rCXVpbnQ2NF90CQltX21heGljb3VudDsJLyogbWF4aW11bSBpbm9kZSBjb3VudCAqLwotIAlpbnQJCQltX2RhbGlnbjsJLyogc3RyaXBlIHVuaXQgKi8KLSAJaW50CQkJbV9zd2lkdGg7CS8qIHN0cmlwZSB3aWR0aCAqLwotIAlpbnQJCQltX3Npbm9hbGlnbjsJLyogc3RyaXBlIHVuaXQgaW5vZGUgYWxpZ25tbnQgKi8KLUBAIC0xNDQsMTIgKzE0NCwxMiBAQCB0eXBlZGVmIHN0cnVjdCB4ZnNfcGVyYWcgewotIAljaGFyCQlwYWdpX2luaXQ7CS8qIHRoaXMgYWdpJ3MgZW50cnkgaXMgaW5pdGlhbGl6ZWQgKi8KLSAJY2hhcgkJcGFnZl9tZXRhZGF0YTsJLyogdGhlIGFnZiBpcyBwcmVmZXJyZWQgdG8gYmUgbWV0YWRhdGEgKi8KLSAJY2hhcgkJcGFnaV9pbm9kZW9rOwkvKiBUaGUgYWdpIGlzIG9rIGZvciBpbm9kZXMgKi8KLS0JX191aW50OF90CXBhZ2ZfbGV2ZWxzW1hGU19CVE5VTV9BR0ZdOwotKwl1aW50OF90CQlwYWdmX2xldmVsc1tYRlNfQlROVU1fQUdGXTsKLSAJCQkJCS8qICMgb2YgbGV2ZWxzIGluIGJubyAmIGNudCBidHJlZSAqLwotLQlfX3VpbnQzMl90CXBhZ2ZfZmxjb3VudDsJLyogY291bnQgb2YgYmxvY2tzIGluIGZyZWVsaXN0ICovCi0rCXVpbnQzMl90CXBhZ2ZfZmxjb3VudDsJLyogY291bnQgb2YgYmxvY2tzIGluIGZyZWVsaXN0ICovCi0gCXhmc19leHRsZW5fdAlwYWdmX2ZyZWVibGtzOwkvKiB0b3RhbCBmcmVlIGJsb2NrcyAqLwotIAl4ZnNfZXh0bGVuX3QJcGFnZl9sb25nZXN0OwkvKiBsb25nZXN0IGZyZWUgc3BhY2UgKi8KLS0JX191aW50MzJfdAlwYWdmX2J0cmVlYmxrczsJLyogIyBvZiBibG9ja3MgaGVsZCBpbiBBR0YgYnRyZWVzICovCi0rCXVpbnQzMl90CXBhZ2ZfYnRyZWVibGtzOwkvKiAjIG9mIGJsb2NrcyBoZWxkIGluIEFHRiBidHJlZXMgKi8KLSAJeGZzX2FnaW5vX3QJcGFnaV9mcmVlY291bnQ7CS8qIG51bWJlciBvZiBmcmVlIGlub2RlcyAqLwotIAl4ZnNfYWdpbm9fdAlwYWdpX2NvdW50OwkvKiBudW1iZXIgb2YgYWxsb2NhdGVkIGlub2RlcyAqLwotIAotQEAgLTE2OSw3ICsxNjksNyBAQCB0eXBlZGVmIHN0cnVjdCB4ZnNfcGVyYWcgewotIAlzdHJ1Y3QgeGZzX2FnX3Jlc3YJcGFnX2FnZmxfcmVzdjsKLSAKLSAJLyogcmVmZXJlbmNlIGNvdW50ICovCi0tCV9fdWludDhfdAlwYWdmX3JlZmNvdW50X2xldmVsOwotKwl1aW50OF90CQlwYWdmX3JlZmNvdW50X2xldmVsOwotIH0geGZzX3BlcmFnX3Q7Ci0gCi0gc3RhdGljIGlubGluZSBzdHJ1Y3QgeGZzX2FnX3Jlc3YgKgotZGlmZiAtLWdpdCBhL2xpYmhhbmRsZS9oYW5kbGUuYyBiL2xpYmhhbmRsZS9oYW5kbGUuYwotaW5kZXggMjM2ZWQyMmEuLjAwMTI3YjNjIDEwMDY0NAotLS0tIGEvbGliaGFuZGxlL2hhbmRsZS5jCi0rKysgYi9saWJoYW5kbGUvaGFuZGxlLmMKLUBAIC0yMzIsNyArMjMyLDcgQEAgb2JqX3RvX2hhbmRsZSgKLSB7Ci0gCWNoYXIJCWhidWYgW01BWEhBTlNJWl07Ci0gCWludAkJcmV0OwotLQlfX3VpbnQzMl90CWhhbmRsZW47Ci0rCXVpbnQzMl90CWhhbmRsZW47Ci0gCXhmc19mc29wX2hhbmRsZXJlcV90IGhyZXE7Ci0gCi0gCWlmIChvcGNvZGUgPT0gWEZTX0lPQ19GRF9UT19IQU5ETEUpIHsKLWRpZmYgLS1naXQgYS9saWJoYW5kbGUvamRtLmMgYi9saWJoYW5kbGUvamRtLmMKLWluZGV4IGU1MmY1ZDgzLi44MjEwNjFiNCAxMDA2NDQKLS0tLSBhL2xpYmhhbmRsZS9qZG0uYwotKysrIGIvbGliaGFuZGxlL2pkbS5jCi1AQCAtMzYsNyArMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBmaWxlaGFuZGxlIHsKLSAJZnNoYW5kbGVfdCBmaF9mc2hhbmRsZTsJCS8qIGhhbmRsZSBvZiBmcyBjb250YWluaW5nIHRoaXMgaW5vZGUgKi8KLSAJaW50MTZfdCBmaF9zel9mb2xsb3dpbmc7CS8qIGJ5dGVzIGluIGhhbmRsZSBhZnRlciB0aGlzIG1lbWJlciAqLwotIAljaGFyIGZoX3BhZFtGSUxFSEFORExFX1NaX1BBRF07CS8qIHBhZGRpbmcsIG11c3QgYmUgemVyb2VkICovCi0tCV9fdWludDMyX3QgZmhfZ2VuOwkJLyogZ2VuZXJhdGlvbiBjb3VudCAqLwotKwl1aW50MzJfdCBmaF9nZW47CQkvKiBnZW5lcmF0aW9uIGNvdW50ICovCi0gCXhmc19pbm9fdCBmaF9pbm87CQkvKiA2NCBiaXQgaW5vICovCi0gfSBmaWxlaGFuZGxlX3Q7Ci0gCi1kaWZmIC0tZ2l0IGEvbGlieGNtZC90b3BvbG9neS5jIGIvbGlieGNtZC90b3BvbG9neS5jCi1pbmRleCA4YjAyNzZhNy4uZjY2ZGQxYmMgMTAwNjQ0Ci0tLS0gYS9saWJ4Y21kL3RvcG9sb2d5LmMKLSsrKyBiL2xpYnhjbWQvdG9wb2xvZ3kuYwotQEAgLTIzLDE5ICsyMywxOSBAQAotICNlbmRpZiAvKiBFTkFCTEVfQkxLSUQgKi8KLSAjaW5jbHVkZSAieGZzX211bHRpZGlzay5oIgotIAotLSNkZWZpbmUgVEVSQUJZVEVTKGNvdW50LCBibG9nKQkoKF9fdWludDY0X3QpKGNvdW50KSA8PCAoNDAgLSAoYmxvZykpKQotLSNkZWZpbmUgR0lHQUJZVEVTKGNvdW50LCBibG9nKQkoKF9fdWludDY0X3QpKGNvdW50KSA8PCAoMzAgLSAoYmxvZykpKQotLSNkZWZpbmUgTUVHQUJZVEVTKGNvdW50LCBibG9nKQkoKF9fdWludDY0X3QpKGNvdW50KSA8PCAoMjAgLSAoYmxvZykpKQotKyNkZWZpbmUgVEVSQUJZVEVTKGNvdW50LCBibG9nKQkoKHVpbnQ2NF90KShjb3VudCkgPDwgKDQwIC0gKGJsb2cpKSkKLSsjZGVmaW5lIEdJR0FCWVRFUyhjb3VudCwgYmxvZykJKCh1aW50NjRfdCkoY291bnQpIDw8ICgzMCAtIChibG9nKSkpCi0rI2RlZmluZSBNRUdBQllURVMoY291bnQsIGJsb2cpCSgodWludDY0X3QpKGNvdW50KSA8PCAoMjAgLSAoYmxvZykpKQotIAotIHZvaWQKLSBjYWxjX2RlZmF1bHRfYWdfZ2VvbWV0cnkoCi0gCWludAkJYmxvY2tsb2csCi0tCV9fdWludDY0X3QJZGJsb2NrcywKLSsJdWludDY0X3QJZGJsb2NrcywKLSAJaW50CQltdWx0aWRpc2ssCi0tCV9fdWludDY0X3QJKmFnc2l6ZSwKLS0JX191aW50NjRfdAkqYWdjb3VudCkKLSsJdWludDY0X3QJKmFnc2l6ZSwKLSsJdWludDY0X3QJKmFnY291bnQpCi0gewotLQlfX3VpbnQ2NF90CWJsb2NrcyA9IDA7Ci0rCXVpbnQ2NF90CWJsb2NrcyA9IDA7Ci0gCWludAkJc2hpZnQgPSAwOwotIAotIAkvKgotZGlmZiAtLWdpdCBhL2xpYnhmcy9kYXJ3aW4uYyBiL2xpYnhmcy9kYXJ3aW4uYwotaW5kZXggNzQ1MDdlODEuLjE2ZDJjMzVjIDEwMDY0NAotLS0tIGEvbGlieGZzL2Rhcndpbi5jCi0rKysgYi9saWJ4ZnMvZGFyd2luLmMKLUBAIC02OCw3ICs2OCw3IEBAIHBsYXRmb3JtX2ZsdXNoX2RldmljZShpbnQgZmQsIGRldl90IGRldmljZSkKLSB2b2lkCi0gcGxhdGZvcm1fZmluZHNpemVzKGNoYXIgKnBhdGgsIGludCBmZCwgbG9uZyBsb25nICpzeiwgaW50ICpic3opCi0gewotLQlfX3VpbnQ2NF90CXNpemU7Ci0rCXVpbnQ2NF90CXNpemU7Ci0gCXN0cnVjdCBzdGF0CXN0OwotIAotIAlpZiAoZnN0YXQoZmQsICZzdCkgPCAwKSB7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL2ZyZWVic2QuYyBiL2xpYnhmcy9mcmVlYnNkLmMKLWluZGV4IDQ2NjdkMWY1Li5kN2JjYTE0MiAxMDA2NDQKLS0tLSBhL2xpYnhmcy9mcmVlYnNkLmMKLSsrKyBiL2xpYnhmcy9mcmVlYnNkLmMKLUBAIC0xMDksNyArMTA5LDcgQEAgdm9pZAotIHBsYXRmb3JtX2ZpbmRzaXplcyhjaGFyICpwYXRoLCBpbnQgZmQsIGxvbmcgbG9uZyAqc3osIGludCAqYnN6KQotIHsKLSAJc3RydWN0IHN0YXQJc3Q7Ci0tCV9faW50NjRfdAlzaXplOwotKwlpbnQ2NF90CQlzaXplOwotIAl1X2ludAkJc3NpemU7Ci0gCi0gCWlmIChmc3RhdChmZCwgJnN0KSA8IDApIHsKLWRpZmYgLS1naXQgYS9saWJ4ZnMvaW5pdC5jIGIvbGlieGZzL2luaXQuYwotaW5kZXggZmMxNGM1ZTQuLjBmNDFhODUzIDEwMDY0NAotLS0tIGEvbGlieGZzL2luaXQuYwotKysrIGIvbGlieGZzL2luaXQuYwotQEAgLTU0Niw3ICs1NDYsNyBAQCBsaWJ4ZnNfaW5pdGlhbGl6ZV9wZXJhZygKLSAJCSAqIHRoZSBtYXggaW5vZGUgcGVyY2VudGFnZS4KLSAJCSAqLwotIAkJaWYgKG1wLT5tX21heGljb3VudCkgewotLQkJCV9fdWludDY0X3QJaWNvdW50OwotKwkJCXVpbnQ2NF90CWljb3VudDsKLSAKLSAJCQlpY291bnQgPSBzYnAtPnNiX2RibG9ja3MgKiBzYnAtPnNiX2ltYXhfcGN0OwotIAkJCWRvX2RpdihpY291bnQsIDEwMCk7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL2lyaXguYyBiL2xpYnhmcy9pcml4LmMKLWluZGV4IDMyZmNiM2U1Li4wZjE0YWVjNyAxMDA2NDQKLS0tLSBhL2xpYnhmcy9pcml4LmMKLSsrKyBiL2xpYnhmcy9pcml4LmMKLUBAIC0yMiw3ICsyMiw3IEBACi0gCi0gaW50IHBsYXRmb3JtX2hhc191dWlkID0gMDsKLSBleHRlcm4gY2hhciAqcHJvZ25hbWU7Ci0tZXh0ZXJuIF9faW50NjRfdCBmaW5kc2l6ZShjaGFyICopOwotK2V4dGVybiBpbnQ2NF90IGZpbmRzaXplKGNoYXIgKik7Ci0gCi0gaW50Ci0gcGxhdGZvcm1fY2hlY2tfaXNtb3VudGVkKGNoYXIgKm5hbWUsIGNoYXIgKmJsb2NrLCBzdHJ1Y3Qgc3RhdCAqcywgaW50IHZlcmJvc2UpCi1kaWZmIC0tZ2l0IGEvbGlieGZzL2xpYnhmc19wcml2LmggYi9saWJ4ZnMvbGlieGZzX3ByaXYuaAotaW5kZXggYjRmNzY2ZGIuLmQ1MjViNjY3IDEwMDY0NAotLS0tIGEvbGlieGZzL2xpYnhmc19wcml2LmgKLSsrKyBiL2xpYnhmcy9saWJ4ZnNfcHJpdi5oCi1AQCAtMjk2LDggKzI5Niw4IEBAIHJvdW5kdXBfcG93X29mX3R3byh1aW50IHYpCi0gCXJldHVybiAwOwotIH0KLSAKLS1zdGF0aWMgaW5saW5lIF9fdWludDY0X3QKLS1yb3VuZHVwXzY0KF9fdWludDY0X3QgeCwgX191aW50MzJfdCB5KQotK3N0YXRpYyBpbmxpbmUgdWludDY0X3QKLStyb3VuZHVwXzY0KHVpbnQ2NF90IHgsIHVpbnQzMl90IHkpCi0gewotIAl4ICs9IHkgLSAxOwotIAlkb19kaXYoeCwgeSk7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL2xpbnV4LmMgYi9saWJ4ZnMvbGludXguYwotaW5kZXggNjlmMDRhZDkuLjBiYWNlM2ViIDEwMDY0NAotLS0tIGEvbGlieGZzL2xpbnV4LmMKLSsrKyBiL2xpYnhmcy9saW51eC5jCi1AQCAtMTYzLDcgKzE2Myw3IEBAIHZvaWQKLSBwbGF0Zm9ybV9maW5kc2l6ZXMoY2hhciAqcGF0aCwgaW50IGZkLCBsb25nIGxvbmcgKnN6LCBpbnQgKmJzeikKLSB7Ci0gCXN0cnVjdCBzdGF0CXN0OwotLQlfX3VpbnQ2NF90CXNpemU7Ci0rCXVpbnQ2NF90CXNpemU7Ci0gCWludAkJZXJyb3I7Ci0gCi0gCWlmIChmc3RhdChmZCwgJnN0KSA8IDApIHsKLWRpZmYgLS1naXQgYS9saWJ4ZnMvbG9naXRlbS5jIGIvbGlieGZzL2xvZ2l0ZW0uYwotaW5kZXggN2U5M2Y2MDkuLjQ2NmI0NDIxIDEwMDY0NAotLS0tIGEvbGlieGZzL2xvZ2l0ZW0uYwotKysrIGIvbGlieGZzL2xvZ2l0ZW0uYwotQEAgLTEyMSw3ICsxMjEsNyBAQCB4ZnNfYnVmX2l0ZW1faW5pdCgKLSAJYmlwLT5ibGlfaXRlbS5saV9tb3VudHAgPSBtcDsKLSAJYmlwLT5ibGlfYnVmID0gYnA7Ci0gCWJpcC0+YmxpX2Zvcm1hdC5ibGZfdHlwZSA9IFhGU19MSV9CVUY7Ci0tCWJpcC0+YmxpX2Zvcm1hdC5ibGZfYmxrbm8gPSAoX19pbnQ2NF90KVhGU19CVUZfQUREUihicCk7Ci0rCWJpcC0+YmxpX2Zvcm1hdC5ibGZfYmxrbm8gPSAoaW50NjRfdClYRlNfQlVGX0FERFIoYnApOwotIAliaXAtPmJsaV9mb3JtYXQuYmxmX2xlbiA9ICh1bnNpZ25lZCBzaG9ydClCVE9CQihYRlNfQlVGX0NPVU5UKGJwKSk7Ci0gCVhGU19CVUZfU0VUX0ZTUFJJVkFURShicCwgYmlwKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3JhZGl4LXRyZWUuYyBiL2xpYnhmcy9yYWRpeC10cmVlLmMKLWluZGV4IGVlZjljMzZkLi4zZjAyNTdmZSAxMDA2NDQKLS0tLSBhL2xpYnhmcy9yYWRpeC10cmVlLmMKLSsrKyBiL2xpYnhmcy9yYWRpeC10cmVlLmMKLUBAIC02NiwyMSArNjYsMjEgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgaGVpZ2h0X3RvX21heGluZGV4W1JBRElYX1RSRUVfTUFYX1BBVEhdOwotIHN0YXRpYyBpbmxpbmUgdm9pZCB0YWdfc2V0KHN0cnVjdCByYWRpeF90cmVlX25vZGUgKm5vZGUsIHVuc2lnbmVkIGludCB0YWcsCi0gCQlpbnQgb2Zmc2V0KQotIHsKLS0JKigoX191aW50MzJfdCAqKW5vZGUtPnRhZ3NbdGFnXSArIChvZmZzZXQgPj4gNSkpIHw9ICgxIDw8IChvZmZzZXQgJiAzMSkpOwotKwkqKCh1aW50MzJfdCAqKW5vZGUtPnRhZ3NbdGFnXSArIChvZmZzZXQgPj4gNSkpIHw9ICgxIDw8IChvZmZzZXQgJiAzMSkpOwotIH0KLSAKLSBzdGF0aWMgaW5saW5lIHZvaWQgdGFnX2NsZWFyKHN0cnVjdCByYWRpeF90cmVlX25vZGUgKm5vZGUsIHVuc2lnbmVkIGludCB0YWcsCi0gCQlpbnQgb2Zmc2V0KQotIHsKLS0JX191aW50MzJfdCAJKnAgPSAoX191aW50MzJfdCopbm9kZS0+dGFnc1t0YWddICsgKG9mZnNldCA+PiA1KTsKLS0JX191aW50MzJfdCAJbSA9IDEgPDwgKG9mZnNldCAmIDMxKTsKLSsJdWludDMyX3QgCSpwID0gKHVpbnQzMl90Kilub2RlLT50YWdzW3RhZ10gKyAob2Zmc2V0ID4+IDUpOwotKwl1aW50MzJfdCAJbSA9IDEgPDwgKG9mZnNldCAmIDMxKTsKLSAJKnAgJj0gfm07Ci0gfQotIAotIHN0YXRpYyBpbmxpbmUgaW50IHRhZ19nZXQoc3RydWN0IHJhZGl4X3RyZWVfbm9kZSAqbm9kZSwgdW5zaWduZWQgaW50IHRhZywKLSAJCWludCBvZmZzZXQpCi0gewotLQlyZXR1cm4gMSAmICgoKGNvbnN0IF9fdWludDMyX3QgKilub2RlLT50YWdzW3RhZ10pW29mZnNldCA+PiA1XSA+PiAob2Zmc2V0ICYgMzEpKTsKLSsJcmV0dXJuIDEgJiAoKChjb25zdCB1aW50MzJfdCAqKW5vZGUtPnRhZ3NbdGFnXSlbb2Zmc2V0ID4+IDVdID4+IChvZmZzZXQgJiAzMSkpOwotIH0KLSAKLSAvKgotZGlmZiAtLWdpdCBhL2xpYnhmcy9yZHdyLmMgYi9saWJ4ZnMvcmR3ci5jCi1pbmRleCAyMWM0MmYxNC4uNDc0ZTVlYmMgMTAwNjQ0Ci0tLS0gYS9saWJ4ZnMvcmR3ci5jCi0rKysgYi9saWJ4ZnMvcmR3ci5jCi1AQCAtMTE4LDkgKzExOCw5IEBAIHN0YXRpYyB2b2lkIHVubW91bnRfcmVjb3JkKHZvaWQgKnApCi0gCXhsb2dfb3BfaGVhZGVyX3QJKm9wID0gKHhsb2dfb3BfaGVhZGVyX3QgKilwOwotIAkvKiB0aGUgZGF0YSBzZWN0aW9uIG11c3QgYmUgMzIgYml0IHNpemUgYWxpZ25lZCAqLwotIAlzdHJ1Y3QgewotLQkgICAgX191aW50MTZfdCBtYWdpYzsKLS0JICAgIF9fdWludDE2X3QgcGFkMTsKLS0JICAgIF9fdWludDMyX3QgcGFkMjsgLyogbWF5IGFzIHdlbGwgbWFrZSBpdCA2NCBiaXRzICovCi0rCSAgICB1aW50MTZfdCBtYWdpYzsKLSsJICAgIHVpbnQxNl90IHBhZDE7Ci0rCSAgICB1aW50MzJfdCBwYWQyOyAvKiBtYXkgYXMgd2VsbCBtYWtlIGl0IDY0IGJpdHMgKi8KLSAJfSBtYWdpYyA9IHsgWExPR19VTk1PVU5UX1RZUEUsIDAsIDAgfTsKLSAKLSAJbWVtc2V0KHAsIDAsIEJCU0laRSk7Ci1kaWZmIC0tZ2l0IGEvbGlieGZzL3V0aWwuYyBiL2xpYnhmcy91dGlsLmMKLWluZGV4IGRjZmNhMzk3Li43OTM4ZTMxNyAxMDA2NDQKLS0tLSBhL2xpYnhmcy91dGlsLmMKLSsrKyBiL2xpYnhmcy91dGlsLmMKLUBAIC0xNzAsOCArMTcwLDggQEAgbGlieGZzX3RyYW5zX2ljaGd0aW1lKAotIAlpZiAoZmxhZ3MgJiBYRlNfSUNIR1RJTUVfQ0hHKQotIAkJVkZTX0koaXApLT5pX2N0aW1lID0gdHY7Ci0gCWlmIChmbGFncyAmIFhGU19JQ0hHVElNRV9DUkVBVEUpIHsKLS0JCWlwLT5pX2QuZGlfY3J0aW1lLnRfc2VjID0gKF9faW50MzJfdCl0di50dl9zZWM7Ci0tCQlpcC0+aV9kLmRpX2NydGltZS50X25zZWMgPSAoX19pbnQzMl90KXR2LnR2X25zZWM7Ci0rCQlpcC0+aV9kLmRpX2NydGltZS50X3NlYyA9IChpbnQzMl90KXR2LnR2X3NlYzsKLSsJCWlwLT5pX2QuZGlfY3J0aW1lLnRfbnNlYyA9IChpbnQzMl90KXR2LnR2X25zZWM7Ci0gCX0KLSB9Ci0gCi1AQCAtMjYxLDggKzI2MSw4IEBAIGxpYnhmc19pYWxsb2MoCi0gCQlBU1NFUlQodXVpZF9lcXVhbCgmaXAtPmlfZC5kaV91dWlkLCAmbXAtPm1fc2Iuc2JfbWV0YV91dWlkKSk7Ci0gCQlWRlNfSShpcCktPmlfdmVyc2lvbiA9IDE7Ci0gCQlpcC0+aV9kLmRpX2ZsYWdzMiA9IDA7Ci0tCQlpcC0+aV9kLmRpX2NydGltZS50X3NlYyA9IChfX2ludDMyX3QpVkZTX0koaXApLT5pX210aW1lLnR2X3NlYzsKLS0JCWlwLT5pX2QuZGlfY3J0aW1lLnRfbnNlYyA9IChfX2ludDMyX3QpVkZTX0koaXApLT5pX210aW1lLnR2X25zZWM7Ci0rCQlpcC0+aV9kLmRpX2NydGltZS50X3NlYyA9IChpbnQzMl90KVZGU19JKGlwKS0+aV9tdGltZS50dl9zZWM7Ci0rCQlpcC0+aV9kLmRpX2NydGltZS50X25zZWMgPSAoaW50MzJfdClWRlNfSShpcCktPmlfbXRpbWUudHZfbnNlYzsKLSAJfQotIAotIAlmbGFncyA9IFhGU19JTE9HX0NPUkU7Ci1kaWZmIC0tZ2l0IGEvbG9ncHJpbnQvbG9nX21pc2MuYyBiL2xvZ3ByaW50L2xvZ19taXNjLmMKLWluZGV4IDBkZmNmZDE5Li4yZmQwMWNlYiAxMDA2NDQKLS0tLSBhL2xvZ3ByaW50L2xvZ19taXNjLmMKLSsrKyBiL2xvZ3ByaW50L2xvZ19taXNjLmMKLUBAIC0xNjYsMTIgKzE2NiwxMiBAQCB4bG9nX3ByaW50X3RyYW5zX2hlYWRlcihjaGFyICoqcHRyLCBpbnQgbGVuKQotIHsKLSAgICAgeGZzX3RyYW5zX2hlYWRlcl90ICAqaDsKLSAgICAgY2hhcgkJKmNwdHIgPSAqcHRyOwotLSAgICBfX3VpbnQzMl90ICAgICAgICAgIG1hZ2ljOwotKyAgICB1aW50MzJfdCAgICAgICAgICBtYWdpYzsKLSAgICAgY2hhciAgICAgICAgICAgICAgICAqbWFnaWNfYyA9IChjaGFyICopJm1hZ2ljOwotIAotICAgICAqcHRyICs9IGxlbjsKLSAKLS0gICAgbWFnaWM9KihfX3VpbnQzMl90KiljcHRyOyAvKiBYWFggYmUzMl90b19jcHUgc29vbiAqLwotKyAgICBtYWdpYyA9ICoodWludDMyX3QgKiljcHRyOyAvKiBYWFggYmUzMl90b19jcHUgc29vbiAqLwotIAotICAgICBpZiAobGVuID49IDQpIHsKLSAjaWYgX19CWVRFX09SREVSID09IF9fTElUVExFX0VORElBTgotQEAgLTIwMSw3ICsyMDEsNyBAQCB4bG9nX3ByaW50X3RyYW5zX2J1ZmZlcihjaGFyICoqcHRyLCBpbnQgbGVuLCBpbnQgKmksIGludCBudW1fb3BzKQotICAgICBpbnQJCQkgbnVtLCBza2lwOwotICAgICBpbnQJCQkgc3VwZXJfYmxvY2sgPSAwOwotICAgICBpbnQJCQkgYnVja2V0LCBjb2wsIGJ1Y2tldHM7Ci0tICAgIF9faW50NjRfdAkJIGJsa25vOwotKyAgICBpbnQ2NF90CQkJIGJsa25vOwotICAgICB4ZnNfYnVmX2xvZ19mb3JtYXRfdCBsYnVmOwotICAgICBpbnQJCQkgc2l6ZSwgYmxlbiwgbWFwX3NpemUsIHN0cnVjdF9zaXplOwotICAgICBfX2JlNjQJCSB4LCB5OwotZGlmZiAtLWdpdCBhL21kcmVzdG9yZS94ZnNfbWRyZXN0b3JlLmMgYi9tZHJlc3RvcmUveGZzX21kcmVzdG9yZS5jCi1pbmRleCA5ZDFiNGU4MC4uYzQ5YzEzYWEgMTAwNjQ0Ci0tLS0gYS9tZHJlc3RvcmUveGZzX21kcmVzdG9yZS5jCi0rKysgYi9tZHJlc3RvcmUveGZzX21kcmVzdG9yZS5jCi1AQCAtNjYsNyArNjYsNyBAQCBwZXJmb3JtX3Jlc3RvcmUoCi0gCWludAkJCW1iX2NvdW50OwotIAl4ZnNfbWV0YWJsb2NrX3QJCXRtYjsKLSAJeGZzX3NiX3QJCXNiOwotLQlfX2ludDY0X3QJCWJ5dGVzX3JlYWQ7Ci0rCWludDY0X3QJCQlieXRlc19yZWFkOwotIAotIAkvKgotIAkgKiByZWFkIGluIGZpcnN0IGJsb2NrcyAoc3VwZXJibG9jayAwKSwgc2V0ICJpbnByb2dyZXNzIiBmbGFnIGZvciBpdCwKLWRpZmYgLS1naXQgYS9ta2ZzL3Byb3RvLmMgYi9ta2ZzL3Byb3RvLmMKLWluZGV4IDg5Y2QyMzc5Li5jZjhjYzM5MSAxMDA2NDQKLS0tLSBhL21rZnMvcHJvdG8uYwotKysrIGIvbWtmcy9wcm90by5jCi1AQCAtNjY3LDcgKzY2Nyw3IEBAIHJ0aW5pdCgKLSAJbXAtPm1fc2Iuc2JfcmJtaW5vID0gcmJtaXAtPmlfaW5vOwotIAlyYm1pcC0+aV9kLmRpX3NpemUgPSBtcC0+bV9zYi5zYl9yYm1ibG9ja3MgKiBtcC0+bV9zYi5zYl9ibG9ja3NpemU7Ci0gCXJibWlwLT5pX2QuZGlfZmxhZ3MgPSBYRlNfRElGTEFHX05FV1JUQk07Ci0tCSooX191aW50NjRfdCAqKSZWRlNfSShyYm1pcCktPmlfYXRpbWUgPSAwOwotKwkqKHVpbnQ2NF90ICopJlZGU19JKHJibWlwKS0+aV9hdGltZSA9IDA7Ci0gCWxpYnhmc190cmFuc19sb2dfaW5vZGUodHAsIHJibWlwLCBYRlNfSUxPR19DT1JFKTsKLSAJbGlieGZzX2xvZ19zYih0cCk7Ci0gCW1wLT5tX3JibWlwID0gcmJtaXA7Ci1kaWZmIC0tZ2l0IGEvbWtmcy94ZnNfbWtmcy5jIGIvbWtmcy94ZnNfbWtmcy5jCi1pbmRleCBiNWMzYTU3ZS4uN2JiNjQwOGYgMTAwNjQ0Ci0tLS0gYS9ta2ZzL3hmc19ta2ZzLmMKLSsrKyBiL21rZnMveGZzX21rZnMuYwotQEAgLTcwNSw5ICs3MDUsOSBAQCBzdHJ1Y3Qgb3B0X3BhcmFtcyBtb3B0cyA9IHsKLSAJfSwKLSB9OwotIAotLSNkZWZpbmUgVEVSQUJZVEVTKGNvdW50LCBibG9nKQkoKF9fdWludDY0X3QpKGNvdW50KSA8PCAoNDAgLSAoYmxvZykpKQotLSNkZWZpbmUgR0lHQUJZVEVTKGNvdW50LCBibG9nKQkoKF9fdWludDY0X3QpKGNvdW50KSA8PCAoMzAgLSAoYmxvZykpKQotLSNkZWZpbmUgTUVHQUJZVEVTKGNvdW50LCBibG9nKQkoKF9fdWludDY0X3QpKGNvdW50KSA8PCAoMjAgLSAoYmxvZykpKQotKyNkZWZpbmUgVEVSQUJZVEVTKGNvdW50LCBibG9nKQkoKHVpbnQ2NF90KShjb3VudCkgPDwgKDQwIC0gKGJsb2cpKSkKLSsjZGVmaW5lIEdJR0FCWVRFUyhjb3VudCwgYmxvZykJKCh1aW50NjRfdCkoY291bnQpIDw8ICgzMCAtIChibG9nKSkpCi0rI2RlZmluZSBNRUdBQllURVMoY291bnQsIGJsb2cpCSgodWludDY0X3QpKGNvdW50KSA8PCAoMjAgLSAoYmxvZykpKQotIAotIC8qCi0gICogVXNlIHRoaXMgbWFjcm8gYmVmb3JlIHdlIGhhdmUgc3VwZXJibG9jayBhbmQgbW91bnQgc3RydWN0dXJlCi1AQCAtODc4LDcgKzg3OCw3IEBAIGZpeHVwX2xvZ19zdHJpcGVfdW5pdCgKLSAJeGZzX3Jmc2Jsb2NrX3QJKmxvZ2Jsb2NrcywKLSAJaW50CQlibG9ja2xvZykKLSB7Ci0tCV9fdWludDY0X3QJdG1wX2xvZ2Jsb2NrczsKLSsJdWludDY0X3QJdG1wX2xvZ2Jsb2NrczsKLSAKLSAJLyoKLSAJICogTWFrZSBzdXJlIHRoYXQgdGhlIGxvZyBzaXplIGlzIGEgbXVsdGlwbGUgb2YgdGhlIHN0cmlwZSB1bml0Ci1AQCAtOTEwLDcgKzkxMCw3IEBAIGZpeHVwX2ludGVybmFsX2xvZ19zdHJpcGUoCi0gCXhmc19tb3VudF90CSptcCwKLSAJaW50CQlsc2ZsYWcsCi0gCXhmc19mc2Jsb2NrX3QJbG9nc3RhcnQsCi0tCV9fdWludDY0X3QJYWdzaXplLAotKwl1aW50NjRfdAlhZ3NpemUsCi0gCWludAkJc3VuaXQsCi0gCXhmc19yZnNibG9ja190CSpsb2dibG9ja3MsCi0gCWludAkJYmxvY2tsb2csCi1AQCAtOTM0LDcgKzkzNCw3IEBAIGZpeHVwX2ludGVybmFsX2xvZ19zdHJpcGUoCi0gfQotIAotIHZvaWQKLS12YWxpZGF0ZV9sb2dfc2l6ZShfX3VpbnQ2NF90IGxvZ2Jsb2NrcywgaW50IGJsb2NrbG9nLCBpbnQgbWluX2xvZ2Jsb2NrcykKLSt2YWxpZGF0ZV9sb2dfc2l6ZSh1aW50NjRfdCBsb2dibG9ja3MsIGludCBibG9ja2xvZywgaW50IG1pbl9sb2dibG9ja3MpCi0gewotIAlpZiAobG9nYmxvY2tzIDwgbWluX2xvZ2Jsb2NrcykgewotIAkJZnByaW50ZihzdGRlcnIsCi1AQCAtOTU5LDcgKzk1OSw3IEBAIHZhbGlkYXRlX2xvZ19zaXplKF9fdWludDY0X3QgbG9nYmxvY2tzLCBpbnQgYmxvY2tsb2csIGludCBtaW5fbG9nYmxvY2tzKQotIHN0YXRpYyBpbnQKLSBjYWxjX2RlZmF1bHRfaW1heHBjdCgKLSAJaW50CQlibG9ja2xvZywKLS0JX191aW50NjRfdAlkYmxvY2tzKQotKwl1aW50NjRfdAlkYmxvY2tzKQotIHsKLSAJLyoKLSAJICogVGhpcyByZXR1cm5zIHRoZSAlIG9mIHRoZSBkaXNrIHNwYWNlIHRoYXQgaXMgdXNlZCBmb3IKLUBAIC05ODEsOSArOTgxLDkgQEAgY2FsY19kZWZhdWx0X2ltYXhwY3QoCi0gc3RhdGljIHZvaWQKLSB2YWxpZGF0ZV9hZ19nZW9tZXRyeSgKLSAJaW50CQlibG9ja2xvZywKLS0JX191aW50NjRfdAlkYmxvY2tzLAotLQlfX3VpbnQ2NF90CWFnc2l6ZSwKLS0JX191aW50NjRfdAlhZ2NvdW50KQotKwl1aW50NjRfdAlkYmxvY2tzLAotKwl1aW50NjRfdAlhZ3NpemUsCi0rCXVpbnQ2NF90CWFnY291bnQpCi0gewotIAlpZiAoYWdzaXplIDwgWEZTX0FHX01JTl9CTE9DS1MoYmxvY2tsb2cpKSB7Ci0gCQlmcHJpbnRmKHN0ZGVyciwKLUBAIC0xMDU5LDcgKzEwNTksNyBAQCB6ZXJvX29sZF94ZnNfc3RydWN0dXJlcygKLSB7Ci0gCXZvaWQgCQkJKmJ1ZjsKLSAJeGZzX3NiX3QgCQlzYjsKLS0JX191aW50MzJfdAkJYnNpemU7Ci0rCXVpbnQzMl90CQlic2l6ZTsKLSAJaW50CQkJaTsKLSAJeGZzX29mZl90CQlvZmY7Ci0gCi1AQCAtMTExMiw4ICsxMTEyLDggQEAgemVyb19vbGRfeGZzX3N0cnVjdHVyZXMoCi0gCQkJaSAhPSBzYi5zYl9ibG9ja2xvZykKLSAJCWdvdG8gZG9uZTsKLSAKLS0JaWYgKHNiLnNiX2RibG9ja3MgPiAoKF9fdWludDY0X3Qpc2Iuc2JfYWdjb3VudCAqIHNiLnNiX2FnYmxvY2tzKSB8fAotLQkJCXNiLnNiX2RibG9ja3MgPCAoKF9fdWludDY0X3QpKHNiLnNiX2FnY291bnQgLSAxKSAqCi0rCWlmIChzYi5zYl9kYmxvY2tzID4gKCh1aW50NjRfdClzYi5zYl9hZ2NvdW50ICogc2Iuc2JfYWdibG9ja3MpIHx8Ci0rCQkJc2Iuc2JfZGJsb2NrcyA8ICgodWludDY0X3QpKHNiLnNiX2FnY291bnQgLSAxKSAqCi0gCQkJCQkgc2Iuc2JfYWdibG9ja3MgKyBYRlNfTUlOX0FHX0JMT0NLUykpCi0gCQlnb3RvIGRvbmU7Ci0gCi1AQCAtMTEzMyw3ICsxMTMzLDcgQEAgZG9uZToKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLS1kaXNjYXJkX2Jsb2NrcyhkZXZfdCBkZXYsIF9fdWludDY0X3QgbnNlY3RvcnMpCi0rZGlzY2FyZF9ibG9ja3MoZGV2X3QgZGV2LCB1aW50NjRfdCBuc2VjdG9ycykKLSB7Ci0gCWludCBmZDsKLSAKLUBAIC0xMzk1LDExICsxMzk1LDExIEBAIG1haW4oCi0gCWludAkJCWFyZ2MsCi0gCWNoYXIJCQkqKmFyZ3YpCi0gewotLQlfX3VpbnQ2NF90CQlhZ2NvdW50OwotKwl1aW50NjRfdAkJYWdjb3VudDsKLSAJeGZzX2FnZl90CQkqYWdmOwotIAl4ZnNfYWdpX3QJCSphZ2k7Ci0gCXhmc19hZ251bWJlcl90CQlhZ25vOwotLQlfX3VpbnQ2NF90CQlhZ3NpemU7Ci0rCXVpbnQ2NF90CQlhZ3NpemU7Ci0gCXhmc19hbGxvY19yZWNfdAkJKmFyZWM7Ci0gCXN0cnVjdCB4ZnNfYnRyZWVfYmxvY2sJKmJsb2NrOwotIAlpbnQJCQlibGZsYWc7Ci1AQCAtMTQ3NSwxMCArMTQ3NSwxMCBAQCBtYWluKAotIAljaGFyCQkJKnJ0c2l6ZTsKLSAJeGZzX3NiX3QJCSpzYnA7Ci0gCWludAkJCXNlY3RvcmxvZzsKLS0JX191aW50NjRfdAkJc2VjdG9yX21hc2s7Ci0rCXVpbnQ2NF90CQlzZWN0b3JfbWFzazsKLSAJaW50CQkJc2xmbGFnOwotIAlpbnQJCQlzc2ZsYWc7Ci0tCV9fdWludDY0X3QJCXRtcF9hZ3NpemU7Ci0rCXVpbnQ2NF90CQl0bXBfYWdzaXplOwotIAl1dWlkX3QJCQl1dWlkOwotIAlpbnQJCQl3b3JzdF9mcmVlbGlzdDsKLSAJbGlieGZzX2luaXRfdAkJeGk7Ci1AQCAtMjE2Nyw3ICsyMTY3LDcgQEAgXygicm1hcGJ0IG5vdCBzdXBwb3J0ZWQgd2l0aCByZWFsdGltZSBkZXZpY2VzXG4iKSk7Ci0gCi0gCi0gCWlmIChkc2l6ZSkgewotLQkJX191aW50NjRfdCBkYnl0ZXM7Ci0rCQl1aW50NjRfdCBkYnl0ZXM7Ci0gCi0gCQlkYnl0ZXMgPSBnZXRudW0oZHNpemUsICZkb3B0cywgRF9TSVpFKTsKLSAJCWlmIChkYnl0ZXMgJSBYRlNfTUlOX0JMT0NLU0laRSkgewotQEAgLTIxOTksNyArMjE5OSw3IEBAIF8oInJtYXBidCBub3Qgc3VwcG9ydGVkIHdpdGggcmVhbHRpbWUgZGV2aWNlc1xuIikpOwotIAl9Ci0gCi0gCWlmIChsb2dzaXplKSB7Ci0tCQlfX3VpbnQ2NF90IGxvZ2J5dGVzOwotKwkJdWludDY0X3QgbG9nYnl0ZXM7Ci0gCi0gCQlsb2dieXRlcyA9IGdldG51bShsb2dzaXplLCAmbG9wdHMsIExfU0laRSk7Ci0gCQlpZiAobG9nYnl0ZXMgJSBYRlNfTUlOX0JMT0NLU0laRSkgewotQEAgLTIyMTYsNyArMjIxNiw3IEBAIF8oInJtYXBidCBub3Qgc3VwcG9ydGVkIHdpdGggcmVhbHRpbWUgZGV2aWNlc1xuIikpOwotIAkJCQkobG9uZyBsb25nKShsb2dibG9ja3MgPDwgYmxvY2tsb2cpKTsKLSAJfQotIAlpZiAocnRzaXplKSB7Ci0tCQlfX3VpbnQ2NF90IHJ0Ynl0ZXM7Ci0rCQl1aW50NjRfdCBydGJ5dGVzOwotIAotIAkJcnRieXRlcyA9IGdldG51bShydHNpemUsICZyb3B0cywgUl9TSVpFKTsKLSAJCWlmIChydGJ5dGVzICUgWEZTX01JTl9CTE9DS1NJWkUpIHsKLUBAIC0yMjM2LDcgKzIyMzYsNyBAQCBfKCJybWFwYnQgbm90IHN1cHBvcnRlZCB3aXRoIHJlYWx0aW1lIGRldmljZXNcbiIpKTsKLSAJICogSWYgc3BlY2lmaWVkLCBjaGVjayBydCBleHRlbnQgc2l6ZSBhZ2FpbnN0IGl0cyBjb25zdHJhaW50cy4KLSAJICovCi0gCWlmIChydGV4dHNpemUpIHsKLS0JCV9fdWludDY0X3QgcnRleHRieXRlczsKLSsJCXVpbnQ2NF90IHJ0ZXh0Ynl0ZXM7Ci0gCi0gCQlydGV4dGJ5dGVzID0gZ2V0bnVtKHJ0ZXh0c2l6ZSwgJnJvcHRzLCBSX0VYVFNJWkUpOwotIAkJaWYgKHJ0ZXh0Ynl0ZXMgJSBibG9ja3NpemUpIHsKLUBAIC0yMjUyLDggKzIyNTIsOCBAQCBfKCJybWFwYnQgbm90IHN1cHBvcnRlZCB3aXRoIHJlYWx0aW1lIGRldmljZXNcbiIpKTsKLSAJCSAqIGFuZCB0aGUgdW5kZXJseWluZyB2b2x1bWUgaXMgc3RyaXBlZCwgdGhlbiBzZXQgcnRleHRibG9ja3MKLSAJCSAqIHRvIHRoZSBzdHJpcGUgd2lkdGguCi0gCQkgKi8KLS0JCV9fdWludDY0X3QJcnN3aWR0aDsKLS0JCV9fdWludDY0X3QJcnRleHRieXRlczsKLSsJCXVpbnQ2NF90CXJzd2lkdGg7Ci0rCQl1aW50NjRfdAlydGV4dGJ5dGVzOwotIAotIAkJaWYgKCFub3JzZmxhZyAmJiAheGkucmlzZmlsZSAmJiAhKCFydHNpemUgJiYgeGkuZGlzZmlsZSkpCi0gCQkJcnN3aWR0aCA9IGZ0LnJ0c3dpZHRoOwotQEAgLTIzMzUsMTAgKzIzMzUsMTAgQEAgXygicm1hcGJ0IG5vdCBzdXBwb3J0ZWQgd2l0aCByZWFsdGltZSBkZXZpY2VzXG4iKSk7Ci0gCSAqIG11bHRpcGxlIG9mIHRoZSBzZWN0b3Igc2l6ZSwgb3IgMTAyNCwgd2hpY2hldmVyIGlzIGxhcmdlci4KLSAJICovCi0gCi0tCXNlY3Rvcl9tYXNrID0gKF9fdWludDY0X3QpLTEgPDwgKE1BWChzZWN0b3Jsb2csIDEwKSAtIEJCU0hJRlQpOwotKwlzZWN0b3JfbWFzayA9ICh1aW50NjRfdCktMSA8PCAoTUFYKHNlY3RvcmxvZywgMTApIC0gQkJTSElGVCk7Ci0gCXhpLmRzaXplICY9IHNlY3Rvcl9tYXNrOwotIAl4aS5ydHNpemUgJj0gc2VjdG9yX21hc2s7Ci0tCXhpLmxvZ0JCc2l6ZSAmPSAoX191aW50NjRfdCktMSA8PCAoTUFYKGxzZWN0b3Jsb2csIDEwKSAtIEJCU0hJRlQpOwotKwl4aS5sb2dCQnNpemUgJj0gKHVpbnQ2NF90KS0xIDw8IChNQVgobHNlY3RvcmxvZywgMTApIC0gQkJTSElGVCk7Ci0gCi0gCi0gCS8qIGRvbid0IGRvIGRpc2NhcmRzIG9uIHByaW50LW9ubHkgcnVucyBvciBvbiBmaWxlcyAqLwotQEAgLTI2OTYsOSArMjY5Niw5IEBAIF8oInNpemUgJXMgc3BlY2lmaWVkIGZvciBsb2cgc3Vidm9sdW1lIGlzIHRvbyBsYXJnZSwgbWF4aW11bSBpcyAlbGxkIGJsb2Nrc1xuIiksCi0gCW1wID0gJm1idWY7Ci0gCXNicCA9ICZtcC0+bV9zYjsKLSAJbWVtc2V0KG1wLCAwLCBzaXplb2YoeGZzX21vdW50X3QpKTsKLS0Jc2JwLT5zYl9ibG9ja2xvZyA9IChfX3VpbnQ4X3QpYmxvY2tsb2c7Ci0tCXNicC0+c2Jfc2VjdGxvZyA9IChfX3VpbnQ4X3Qpc2VjdG9ybG9nOwotLQlzYnAtPnNiX2FnYmxrbG9nID0gKF9fdWludDhfdClsaWJ4ZnNfbG9nMl9yb3VuZHVwKCh1bnNpZ25lZCBpbnQpYWdzaXplKTsKLSsJc2JwLT5zYl9ibG9ja2xvZyA9ICh1aW50OF90KWJsb2NrbG9nOwotKwlzYnAtPnNiX3NlY3Rsb2cgPSAodWludDhfdClzZWN0b3Jsb2c7Ci0rCXNicC0+c2JfYWdibGtsb2cgPSAodWludDhfdClsaWJ4ZnNfbG9nMl9yb3VuZHVwKCh1bnNpZ25lZCBpbnQpYWdzaXplKTsKLSAJc2JwLT5zYl9hZ2Jsb2NrcyA9ICh4ZnNfYWdibG9ja190KWFnc2l6ZTsKLSAJbXAtPm1fYmxrYmJfbG9nID0gc2JwLT5zYl9ibG9ja2xvZyAtIEJCU0hJRlQ7Ci0gCW1wLT5tX3NlY3RiYl9sb2cgPSBzYnAtPnNiX3NlY3Rsb2cgLSBCQlNISUZUOwotQEAgLTI4MDUsMTQgKzI4MDUsMTQgQEAgXygic2l6ZSAlcyBzcGVjaWZpZWQgZm9yIGxvZyBzdWJ2b2x1bWUgaXMgdG9vIGxhcmdlLCBtYXhpbXVtIGlzICVsbGQgYmxvY2tzXG4iKSwKLSAJc2JwLT5zYl9hZ2NvdW50ID0gKHhmc19hZ251bWJlcl90KWFnY291bnQ7Ci0gCXNicC0+c2JfcmJtYmxvY2tzID0gbmJtYmxvY2tzOwotIAlzYnAtPnNiX2xvZ2Jsb2NrcyA9ICh4ZnNfZXh0bGVuX3QpbG9nYmxvY2tzOwotLQlzYnAtPnNiX3NlY3RzaXplID0gKF9fdWludDE2X3Qpc2VjdG9yc2l6ZTsKLS0Jc2JwLT5zYl9pbm9kZXNpemUgPSAoX191aW50MTZfdClpc2l6ZTsKLS0Jc2JwLT5zYl9pbm9wYmxvY2sgPSAoX191aW50MTZfdCkoYmxvY2tzaXplIC8gaXNpemUpOwotLQlzYnAtPnNiX3NlY3Rsb2cgPSAoX191aW50OF90KXNlY3RvcmxvZzsKLS0Jc2JwLT5zYl9pbm9kZWxvZyA9IChfX3VpbnQ4X3QpaW5vZGVsb2c7Ci0tCXNicC0+c2JfaW5vcGJsb2cgPSAoX191aW50OF90KShibG9ja2xvZyAtIGlub2RlbG9nKTsKLSsJc2JwLT5zYl9zZWN0c2l6ZSA9ICh1aW50MTZfdClzZWN0b3JzaXplOwotKwlzYnAtPnNiX2lub2Rlc2l6ZSA9ICh1aW50MTZfdClpc2l6ZTsKLSsJc2JwLT5zYl9pbm9wYmxvY2sgPSAodWludDE2X3QpKGJsb2Nrc2l6ZSAvIGlzaXplKTsKLSsJc2JwLT5zYl9zZWN0bG9nID0gKHVpbnQ4X3Qpc2VjdG9ybG9nOwotKwlzYnAtPnNiX2lub2RlbG9nID0gKHVpbnQ4X3QpaW5vZGVsb2c7Ci0rCXNicC0+c2JfaW5vcGJsb2cgPSAodWludDhfdCkoYmxvY2tsb2cgLSBpbm9kZWxvZyk7Ci0gCXNicC0+c2JfcmV4dHNsb2cgPQotLQkJKF9fdWludDhfdCkocnRleHRlbnRzID8KLSsJCSh1aW50OF90KShydGV4dGVudHMgPwotIAkJCWxpYnhmc19oaWdoYml0MzIoKHVuc2lnbmVkIGludClydGV4dGVudHMpIDogMCk7Ci0gCXNicC0+c2JfaW5wcm9ncmVzcyA9IDE7CS8qIG1rZnMgaXMgaW4gcHJvZ3Jlc3MgKi8KLSAJc2JwLT5zYl9pbWF4X3BjdCA9IGltYXhwY3Q7Ci1AQCAtMjg0MCw4ICsyODQwLDggQEAgXygic2l6ZSAlcyBzcGVjaWZpZWQgZm9yIGxvZyBzdWJ2b2x1bWUgaXMgdG9vIGxhcmdlLCBtYXhpbXVtIGlzICVsbGQgYmxvY2tzXG4iKSwKLSAJfSBlbHNlCi0gCQlzYnAtPnNiX2lub2FsaWdubXQgPSAwOwotIAlpZiAobHNlY3RvcnNpemUgIT0gQkJTSVpFIHx8IHNlY3RvcnNpemUgIT0gQkJTSVpFKSB7Ci0tCQlzYnAtPnNiX2xvZ3NlY3Rsb2cgPSAoX191aW50OF90KWxzZWN0b3Jsb2c7Ci0tCQlzYnAtPnNiX2xvZ3NlY3RzaXplID0gKF9fdWludDE2X3QpbHNlY3RvcnNpemU7Ci0rCQlzYnAtPnNiX2xvZ3NlY3Rsb2cgPSAodWludDhfdClsc2VjdG9ybG9nOwotKwkJc2JwLT5zYl9sb2dzZWN0c2l6ZSA9ICh1aW50MTZfdClsc2VjdG9yc2l6ZTsKLSAJfSBlbHNlIHsKLSAJCXNicC0+c2JfbG9nc2VjdGxvZyA9IDA7Ci0gCQlzYnAtPnNiX2xvZ3NlY3RzaXplID0gMDsKLWRpZmYgLS1naXQgYS9xdW90YS9lZGl0LmMgYi9xdW90YS9lZGl0LmMKLWluZGV4IDM2YjMyN2E1Li44NDE4ZTg1OCAxMDA2NDQKLS0tLSBhL3F1b3RhL2VkaXQuYwotKysrIGIvcXVvdGEvZWRpdC5jCi1AQCAtMTE1LDE2ICsxMTUsMTYgQEAgd2Fybl9oZWxwKHZvaWQpCi0gCi0gc3RhdGljIHZvaWQKLSBzZXRfbGltaXRzKAotLQlfX3VpbnQzMl90CWlkLAotKwl1aW50MzJfdAlpZCwKLSAJdWludAkJdHlwZSwKLSAJdWludAkJbWFzaywKLSAJY2hhcgkJKmRldiwKLS0JX191aW50NjRfdAkqYnNvZnQsCi0tCV9fdWludDY0X3QJKmJoYXJkLAotLQlfX3VpbnQ2NF90CSppc29mdCwKLS0JX191aW50NjRfdAkqaWhhcmQsCi0tCV9fdWludDY0X3QJKnJ0YnNvZnQsCi0tCV9fdWludDY0X3QJKnJ0YmhhcmQpCi0rCXVpbnQ2NF90CSpic29mdCwKLSsJdWludDY0X3QJKmJoYXJkLAotKwl1aW50NjRfdAkqaXNvZnQsCi0rCXVpbnQ2NF90CSppaGFyZCwKLSsJdWludDY0X3QJKnJ0YnNvZnQsCi0rCXVpbnQ2NF90CSpydGJoYXJkKQotIHsKLSAJZnNfZGlza19xdW90YV90CWQ7Ci0gCi1AQCAtMTUyLDEyICsxNTIsMTIgQEAgc2V0X3VzZXJfbGltaXRzKAotIAljaGFyCQkqbmFtZSwKLSAJdWludAkJdHlwZSwKLSAJdWludAkJbWFzaywKLS0JX191aW50NjRfdAkqYnNvZnQsCi0tCV9fdWludDY0X3QJKmJoYXJkLAotLQlfX3VpbnQ2NF90CSppc29mdCwKLS0JX191aW50NjRfdAkqaWhhcmQsCi0tCV9fdWludDY0X3QJKnJ0YnNvZnQsCi0tCV9fdWludDY0X3QJKnJ0YmhhcmQpCi0rCXVpbnQ2NF90CSpic29mdCwKLSsJdWludDY0X3QJKmJoYXJkLAotKwl1aW50NjRfdAkqaXNvZnQsCi0rCXVpbnQ2NF90CSppaGFyZCwKLSsJdWludDY0X3QJKnJ0YnNvZnQsCi0rCXVpbnQ2NF90CSpydGJoYXJkKQotIHsKLSAJdWlkX3QJCXVpZCA9IHVpZF9mcm9tX3N0cmluZyhuYW1lKTsKLSAKLUBAIC0xNzUsMTIgKzE3NSwxMiBAQCBzZXRfZ3JvdXBfbGltaXRzKAotIAljaGFyCQkqbmFtZSwKLSAJdWludAkJdHlwZSwKLSAJdWludAkJbWFzaywKLS0JX191aW50NjRfdAkqYnNvZnQsCi0tCV9fdWludDY0X3QJKmJoYXJkLAotLQlfX3VpbnQ2NF90CSppc29mdCwKLS0JX191aW50NjRfdAkqaWhhcmQsCi0tCV9fdWludDY0X3QJKnJ0YnNvZnQsCi0tCV9fdWludDY0X3QJKnJ0YmhhcmQpCi0rCXVpbnQ2NF90CSpic29mdCwKLSsJdWludDY0X3QJKmJoYXJkLAotKwl1aW50NjRfdAkqaXNvZnQsCi0rCXVpbnQ2NF90CSppaGFyZCwKLSsJdWludDY0X3QJKnJ0YnNvZnQsCi0rCXVpbnQ2NF90CSpydGJoYXJkKQotIHsKLSAJZ2lkX3QJCWdpZCA9IGdpZF9mcm9tX3N0cmluZyhuYW1lKTsKLSAKLUBAIC0xOTgsMTIgKzE5OCwxMiBAQCBzZXRfcHJvamVjdF9saW1pdHMoCi0gCWNoYXIJCSpuYW1lLAotIAl1aW50CQl0eXBlLAotIAl1aW50CQltYXNrLAotLQlfX3VpbnQ2NF90CSpic29mdCwKLS0JX191aW50NjRfdAkqYmhhcmQsCi0tCV9fdWludDY0X3QJKmlzb2Z0LAotLQlfX3VpbnQ2NF90CSppaGFyZCwKLS0JX191aW50NjRfdAkqcnRic29mdCwKLS0JX191aW50NjRfdAkqcnRiaGFyZCkKLSsJdWludDY0X3QJKmJzb2Z0LAotKwl1aW50NjRfdAkqYmhhcmQsCi0rCXVpbnQ2NF90CSppc29mdCwKLSsJdWludDY0X3QJKmloYXJkLAotKwl1aW50NjRfdAkqcnRic29mdCwKLSsJdWludDY0X3QJKnJ0YmhhcmQpCi0gewotIAlwcmlkX3QJCXByaWQgPSBwcmlkX2Zyb21fc3RyaW5nKG5hbWUpOwotIAotQEAgLTIyNCw3ICsyMjQsNyBAQCBleHRyYWN0YigKLSAJaW50CQlsZW5ndGgsCi0gCXVpbnQJCWJsb2Nrc2l6ZSwKLSAJdWludAkJc2VjdG9yc2l6ZSwKLS0JX191aW50NjRfdAkqdmFsdWUpCi0rCXVpbnQ2NF90CSp2YWx1ZSkKLSB7Ci0gCWxvbmcgbG9uZwl2OwotIAljaGFyCQkqcyA9IHN0cmluZzsKLUBAIC0yMzgsNyArMjM4LDcgQEAgZXh0cmFjdGIoCi0gCQkJCXByb2duYW1lLCBzKTsKLSAJCQlyZXR1cm4gMDsKLSAJCX0KLS0JCSp2YWx1ZSA9IChfX3VpbnQ2NF90KXYgPj4gOTsJLyogc3lzY2FsbHMgdXNlIGJhc2ljIGJsb2NrcyAqLwotKwkJKnZhbHVlID0gKHVpbnQ2NF90KXYgPj4gOTsJLyogc3lzY2FsbHMgdXNlIGJhc2ljIGJsb2NrcyAqLwotIAkJaWYgKHYgPiAwICYmICp2YWx1ZSA9PSAwKQotIAkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogV2FybmluZzogYCVzJyBpbiBxdW90YSBibG9ja3MgaXMgMCAodW5saW1pdGVkKS5cbiIpLCBwcm9nbmFtZSwgcyk7Ci0gCQlyZXR1cm4gMTsKLUBAIC0yNTIsNyArMjUyLDcgQEAgZXh0cmFjdGkoCi0gCWNoYXIJCSpzdHJpbmcsCi0gCWNvbnN0IGNoYXIJKnByZWZpeCwKLSAJaW50CQlsZW5ndGgsCi0tCV9fdWludDY0X3QJKnZhbHVlKQotKwl1aW50NjRfdAkqdmFsdWUpCi0gewotIAljaGFyCQkqc3AsICpzID0gc3RyaW5nOwotIAotQEAgLTI3MCw3ICsyNzAsNyBAQCBsaW1pdF9mKAotIAljaGFyCQkqKmFyZ3YpCi0gewotIAljaGFyCQkqbmFtZTsKLS0JX191aW50NjRfdAlic29mdCwgYmhhcmQsIGlzb2Z0LCBpaGFyZCwgcnRic29mdCwgcnRiaGFyZDsKLSsJdWludDY0X3QJYnNvZnQsIGJoYXJkLCBpc29mdCwgaWhhcmQsIHJ0YnNvZnQsIHJ0YmhhcmQ7Ci0gCWludAkJYywgdHlwZSA9IDAsIG1hc2sgPSAwLCBmbGFncyA9IDA7Ci0gCXVpbnQJCWJzaXplLCBzc2l6ZSwgZW5kb3B0aW9uczsKLSAKLUBAIC0zODQsOCArMzg0LDggQEAgcmVzdG9yZV9maWxlKAotIAljaGFyCQkqZGV2ID0gTlVMTDsKLSAJdWludAkJbWFzazsKLSAJaW50CQljbnQ7Ci0tCV9fdWludDMyX3QJaWQ7Ci0tCV9fdWludDY0X3QJYnNvZnQsIGJoYXJkLCBpc29mdCwgaWhhcmQsIHJ0YnNvZnQsIHJ0YmhhcmQ7Ci0rCXVpbnQzMl90CWlkOwotKwl1aW50NjRfdAlic29mdCwgYmhhcmQsIGlzb2Z0LCBpaGFyZCwgcnRic29mdCwgcnRiaGFyZDsKLSAKLSAJd2hpbGUgKGZnZXRzKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIGZwKSAhPSBOVUxMKSB7Ci0gCQlpZiAoc3RybmNtcCgiZnMgPSAiLCBidWZmZXIsIDUpID09IDApIHsKLUBAIC01NDYsNyArNTQ2LDcgQEAgdGltZXJfZigKLSAKLSBzdGF0aWMgdm9pZAotIHNldF93YXJuaW5ncygKLS0JX191aW50MzJfdAlpZCwKLSsJdWludDMyX3QJaWQsCi0gCXVpbnQJCXR5cGUsCi0gCXVpbnQJCW1hc2ssCi0gCWNoYXIJCSpkZXYsCi1kaWZmIC0tZ2l0IGEvcXVvdGEvZnJlZS5jIGIvcXVvdGEvZnJlZS5jCi1pbmRleCBjZWUxNWVlOS4uMWY4Mzc4ZDIgMTAwNjQ0Ci0tLS0gYS9xdW90YS9mcmVlLmMKLSsrKyBiL3F1b3RhL2ZyZWUuYwotQEAgLTQ5LDIwICs0OSwyMCBAQCBmcmVlX2hlbHAodm9pZCkKLSBzdGF0aWMgaW50Ci0gbW91bnRfZnJlZV9zcGFjZV9kYXRhKAotIAlzdHJ1Y3QgZnNfcGF0aAkJKm1vdW50LAotLQlfX3VpbnQ2NF90CQkqYmNvdW50LAotLQlfX3VpbnQ2NF90CQkqYnVzZWQsCi0tCV9fdWludDY0X3QJCSpiZnJlZSwKLS0JX191aW50NjRfdAkJKmljb3VudCwKLS0JX191aW50NjRfdAkJKml1c2VkLAotLQlfX3VpbnQ2NF90CQkqaWZyZWUsCi0tCV9fdWludDY0X3QJCSpyY291bnQsCi0tCV9fdWludDY0X3QJCSpydXNlZCwKLS0JX191aW50NjRfdAkJKnJmcmVlKQotKwl1aW50NjRfdAkJKmJjb3VudCwKLSsJdWludDY0X3QJCSpidXNlZCwKLSsJdWludDY0X3QJCSpiZnJlZSwKLSsJdWludDY0X3QJCSppY291bnQsCi0rCXVpbnQ2NF90CQkqaXVzZWQsCi0rCXVpbnQ2NF90CQkqaWZyZWUsCi0rCXVpbnQ2NF90CQkqcmNvdW50LAotKwl1aW50NjRfdAkJKnJ1c2VkLAotKwl1aW50NjRfdAkJKnJmcmVlKQotIHsKLSAJc3RydWN0IHhmc19mc29wX2NvdW50cwlmc2NvdW50czsKLSAJc3RydWN0IHhmc19mc29wX2dlb20JZnNnZW87Ci0gCXN0cnVjdCBzdGF0ZnMJCXN0OwotLQlfX3VpbnQ2NF90CQlsb2dzaXplLCBjb3VudCwgZnJlZTsKLSsJdWludDY0X3QJCWxvZ3NpemUsIGNvdW50LCBmcmVlOwotIAlpbnQJCQlmZDsKLSAKLSAJaWYgKChmZCA9IG9wZW4obW91bnQtPmZzX2RpciwgT19SRE9OTFkpKSA8IDApIHsKLUBAIC0xMzIsMTUgKzEzMiwxNSBAQCBtb3VudF9mcmVlX3NwYWNlX2RhdGEoCi0gc3RhdGljIGludAotIHByb2plY3RzX2ZyZWVfc3BhY2VfZGF0YSgKLSAJc3RydWN0IGZzX3BhdGgJCSpwYXRoLAotLQlfX3VpbnQ2NF90CQkqYmNvdW50LAotLQlfX3VpbnQ2NF90CQkqYnVzZWQsCi0tCV9fdWludDY0X3QJCSpiZnJlZSwKLS0JX191aW50NjRfdAkJKmljb3VudCwKLS0JX191aW50NjRfdAkJKml1c2VkLAotLQlfX3VpbnQ2NF90CQkqaWZyZWUsCi0tCV9fdWludDY0X3QJCSpyY291bnQsCi0tCV9fdWludDY0X3QJCSpydXNlZCwKLS0JX191aW50NjRfdAkJKnJmcmVlKQotKwl1aW50NjRfdAkJKmJjb3VudCwKLSsJdWludDY0X3QJCSpidXNlZCwKLSsJdWludDY0X3QJCSpiZnJlZSwKLSsJdWludDY0X3QJCSppY291bnQsCi0rCXVpbnQ2NF90CQkqaXVzZWQsCi0rCXVpbnQ2NF90CQkqaWZyZWUsCi0rCXVpbnQ2NF90CQkqcmNvdW50LAotKwl1aW50NjRfdAkJKnJ1c2VkLAotKwl1aW50NjRfdAkJKnJmcmVlKQotIHsKLSAJZnNfcXVvdGFfc3RhdF90CQlxZnM7Ci0gCWZzX2Rpc2tfcXVvdGFfdAkJZDsKLUBAIC0yMjYsOSArMjI2LDkgQEAgZnJlZV9zcGFjZSgKLSAJZnNfcGF0aF90CSpwYXRoLAotIAl1aW50CQlmbGFncykKLSB7Ci0tCV9fdWludDY0X3QJYmNvdW50LCBidXNlZCwgYmZyZWU7Ci0tCV9fdWludDY0X3QJaWNvdW50LCBpdXNlZCwgaWZyZWU7Ci0tCV9fdWludDY0X3QJcmNvdW50LCBydXNlZCwgcmZyZWU7Ci0rCXVpbnQ2NF90CWJjb3VudCwgYnVzZWQsIGJmcmVlOwotKwl1aW50NjRfdAlpY291bnQsIGl1c2VkLCBpZnJlZTsKLSsJdWludDY0X3QJcmNvdW50LCBydXNlZCwgcmZyZWU7Ci0gCWNoYXIJCWFbOF0sIHNbOF0sIHVbOF0sIHBbOF07Ci0gCWludAkJY291bnQ7Ci0gCi1kaWZmIC0tZ2l0IGEvcXVvdGEvcXVvdC5jIGIvcXVvdGEvcXVvdC5jCi1pbmRleCBjY2MxNTRmNS4uNjM3OGZiYjcgMTAwNjQ0Ci0tLS0gYS9xdW90YS9xdW90LmMKLSsrKyBiL3F1b3RhL3F1b3QuYwotQEAgLTI2LDE3ICsyNiwxNyBAQAotIAotIHR5cGVkZWYgc3RydWN0IGR1IHsKLSAJc3RydWN0IGR1CSpuZXh0OwotLQlfX3VpbnQ2NF90CWJsb2NrczsKLS0JX191aW50NjRfdAlibG9ja3MzMDsKLS0JX191aW50NjRfdAlibG9ja3M2MDsKLS0JX191aW50NjRfdAlibG9ja3M5MDsKLS0JX191aW50NjRfdAluZmlsZXM7Ci0tCV9fdWludDMyX3QJaWQ7Ci0rCXVpbnQ2NF90CWJsb2NrczsKLSsJdWludDY0X3QJYmxvY2tzMzA7Ci0rCXVpbnQ2NF90CWJsb2NrczYwOwotKwl1aW50NjRfdAlibG9ja3M5MDsKLSsJdWludDY0X3QJbmZpbGVzOwotKwl1aW50MzJfdAlpZDsKLSB9IGR1X3Q7Ci0gCi0gI2RlZmluZQlUU0laRQkJNTAwCi0tc3RhdGljIF9fdWludDY0X3QJc2l6ZXNbVFNJWkVdOwotLXN0YXRpYyBfX3VpbnQ2NF90CW92ZXJmbG93OwotK3N0YXRpYyB1aW50NjRfdAlzaXplc1tUU0laRV07Ci0rc3RhdGljIHVpbnQ2NF90CW92ZXJmbG93OwotIAotICNkZWZpbmUJTkRVCQk2MDAwMAotICNkZWZpbmUJRFVIQVNICQk4MjA5Ci1AQCAtODQsOCArODQsOCBAQCBxdW90X2J1bGtzdGF0X2FkZCgKLSB7Ci0gCWR1X3QJCSpkcDsKLSAJZHVfdAkJKipocDsKLS0JX191aW50NjRfdAlzaXplOwotLQlfX3VpbnQzMl90CWksIGlkOwotKwl1aW50NjRfdAlzaXplOwotKwl1aW50MzJfdAlpLCBpZDsKLSAKLSAJaWYgKChwLT5ic19tb2RlICYgU19JRk1UKSA9PSAwKQotIAkJcmV0dXJuOwotQEAgLTIwMyw3ICsyMDMsNyBAQCBxY29tcGFyZSgKLSAJcmV0dXJuIDA7Ci0gfQotIAotLXR5cGVkZWYgY2hhciAqKCppZHRvbmFtZV90KShfX3VpbnQzMl90KTsKLSt0eXBlZGVmIGNoYXIgKigqaWR0b25hbWVfdCkodWludDMyX3QpOwotIAotIHN0YXRpYyB2b2lkCi0gcXVvdF9yZXBvcnRfbW91bnRfYW55X3R5cGUoCi1AQCAtMjkxLDcgKzI5MSw3IEBAIHF1b3RfaGlzdG9ncmFtX21vdW50KAotIAlmc19wYXRoX3QJKm1vdW50LAotIAl1aW50CQlmbGFncykKLSB7Ci0tCV9fdWludDY0X3QJdCA9IDA7Ci0rCXVpbnQ2NF90CXQgPSAwOwotIAlpbnQJCWk7Ci0gCi0gCWZwcmludGYoZnAsIF8oIiVzICglcyk6XG4iKSwgbW91bnQtPmZzX25hbWUsIG1vdW50LT5mc19kaXIpOwotZGlmZiAtLWdpdCBhL3F1b3RhL3F1b3RhLmMgYi9xdW90YS9xdW90YS5jCi1pbmRleCBkMDllMjM5Yi4uNDc5Yjk3MGUgMTAwNjQ0Ci0tLS0gYS9xdW90YS9xdW90YS5jCi0rKysgYi9xdW90YS9xdW90YS5jCi1AQCAtNTIsNyArNTIsNyBAQCBxdW90YV9oZWxwKHZvaWQpCi0gc3RhdGljIGludAotIHF1b3RhX21vdW50KAotIAlGSUxFCQkqZnAsCi0tCV9fdWludDMyX3QJaWQsCi0rCXVpbnQzMl90CWlkLAotIAljaGFyCQkqbmFtZSwKLSAJdWludAkJZm9ybSwKLSAJdWludAkJdHlwZSwKLUBAIC0xODEsNyArMTgxLDcgQEAgcXVvdGFfbW91bnQoCi0gc3RhdGljIHZvaWQKLSBxdW90YSgKLSAJRklMRQkJKmZwLAotLQlfX3VpbnQzMl90CWlkLAotKwl1aW50MzJfdAlpZCwKLSAJY2hhcgkJKm5hbWUsCi0gCXVpbnQJCWZvcm0sCi0gCXVpbnQJCXR5cGUsCi1kaWZmIC0tZ2l0IGEvcXVvdGEvcXVvdGEuaCBiL3F1b3RhL3F1b3RhLmgKLWluZGV4IDRiZGUzNTEzLi45ZWQyOGJlZSAxMDA2NDQKLS0tLSBhL3F1b3RhL3F1b3RhLmgKLSsrKyBiL3F1b3RhL3F1b3RhLmgKLUBAIC01Myw5ICs1Myw5IEBAIGVudW0gewotIGV4dGVybiBjaGFyICp0eXBlX3RvX3N0cmluZyh1aW50IF9fdHlwZSk7Ci0gZXh0ZXJuIGNoYXIgKmZvcm1fdG9fc3RyaW5nKHVpbnQgX19mb3JtKTsKLSBleHRlcm4gY2hhciAqdGltZV90b19zdHJpbmcodGltZV90IF9fdGltZSwgdWludCBfX2ZsYWdzKTsKLS1leHRlcm4gY2hhciAqYmJzX3RvX3N0cmluZyhfX3VpbnQ2NF90IF9fdiwgY2hhciAqX19jLCB1aW50IF9fc2l6ZSk7Ci0tZXh0ZXJuIGNoYXIgKm51bV90b19zdHJpbmcoX191aW50NjRfdCBfX3YsIGNoYXIgKl9fYywgdWludCBfX3NpemUpOwotLWV4dGVybiBjaGFyICpwY3RfdG9fc3RyaW5nKF9fdWludDY0X3QgX192LCBfX3VpbnQ2NF90IF9fdCwgY2hhciAqX19jLCB1aW50IF9fcyk7Ci0rZXh0ZXJuIGNoYXIgKmJic190b19zdHJpbmcodWludDY0X3QgX192LCBjaGFyICpfX2MsIHVpbnQgX19zaXplKTsKLStleHRlcm4gY2hhciAqbnVtX3RvX3N0cmluZyh1aW50NjRfdCBfX3YsIGNoYXIgKl9fYywgdWludCBfX3NpemUpOwotK2V4dGVybiBjaGFyICpwY3RfdG9fc3RyaW5nKHVpbnQ2NF90IF9fdiwgdWludDY0X3QgX190LCBjaGFyICpfX2MsIHVpbnQgX19zKTsKLSAKLSBleHRlcm4gRklMRSAqZm9wZW5fd3JpdGVfc2VjdXJlKGNoYXIgKl9fZmlsZW5hbWUpOwotIAotQEAgLTgxLDcgKzgxLDcgQEAgZW51bSB7Ci0gICogSWRlbnRpZmllciAodWlkL2dpZC9wcmlkKSBjYWNoZSByb3V0aW5lcwotICAqLwotICNkZWZpbmUgTk1BWCAzMgotLWV4dGVybiBjaGFyICp1aWRfdG9fbmFtZShfX3VpbnQzMl90IF9fdWlkKTsKLS1leHRlcm4gY2hhciAqZ2lkX3RvX25hbWUoX191aW50MzJfdCBfX2dpZCk7Ci0tZXh0ZXJuIGNoYXIgKnByaWRfdG9fbmFtZShfX3VpbnQzMl90IF9fcHJpZCk7Ci0rZXh0ZXJuIGNoYXIgKnVpZF90b19uYW1lKHVpbnQzMl90IF9fdWlkKTsKLStleHRlcm4gY2hhciAqZ2lkX3RvX25hbWUodWludDMyX3QgX19naWQpOwotK2V4dGVybiBjaGFyICpwcmlkX3RvX25hbWUodWludDMyX3QgX19wcmlkKTsKLSBleHRlcm4gYm9vbCBpc2RpZ2l0c19vbmx5KGNvbnN0IGNoYXIgKik7Ci1kaWZmIC0tZ2l0IGEvcXVvdGEvcmVwb3J0LmMgYi9xdW90YS9yZXBvcnQuYwotaW5kZXggZDA1MDljMjUuLmIyZWEzYmJlIDEwMDY0NAotLS0tIGEvcXVvdGEvcmVwb3J0LmMKLSsrKyBiL3F1b3RhL3JlcG9ydC5jCi1AQCAtMzMzLDkgKzMzMyw5IEBAIHJlcG9ydF9oZWFkZXIoCi0gc3RhdGljIGludAotIHJlcG9ydF9tb3VudCgKLSAJRklMRQkJKmZwLAotLQlfX3VpbnQzMl90CWlkLAotKwl1aW50MzJfdAlpZCwKLSAJY2hhcgkJKm5hbWUsCi0tCV9fdWludDMyX3QJKm9pZCwKLSsJdWludDMyX3QJKm9pZCwKLSAJdWludAkJZm9ybSwKLSAJdWludAkJdHlwZSwKLSAJZnNfcGF0aF90CSptb3VudCwKLWRpZmYgLS1naXQgYS9xdW90YS9zdGF0ZS5jIGIvcXVvdGEvc3RhdGUuYwotaW5kZXggMDlkZmE3MDUuLmIwOGJmNTBiIDEwMDY0NAotLS0tIGEvcXVvdGEvc3RhdGUuYwotKysrIGIvcXVvdGEvc3RhdGUuYwotQEAgLTEzNSw3ICsxMzUsNyBAQCBzdGF0aWMgdm9pZAotIHN0YXRlX3RpbWVsaW1pdCgKLSAJRklMRQkJKmZwLAotIAl1aW50CQlmb3JtLAotLQlfX3VpbnQzMl90CXRpbWVsaW1pdCkKLSsJdWludDMyX3QJdGltZWxpbWl0KQotIHsKLSAJZnByaW50ZihmcCwgXygiJXMgZ3JhY2UgdGltZTogJXNcbiIpLAotIAkJZm9ybV90b19zdHJpbmcoZm9ybSksCi1kaWZmIC0tZ2l0IGEvcXVvdGEvdXRpbC5jIGIvcXVvdGEvdXRpbC5jCi1pbmRleCBjYWZkNDVmNS4uMzc4NDBhODYgMTAwNjQ0Ci0tLS0gYS9xdW90YS91dGlsLmMKLSsrKyBiL3F1b3RhL3V0aWwuYwotQEAgLTk0LDggKzk0LDggQEAgcm91bmRfc25wcmludGYoCi0gCXNpemVfdAkJc2l6ZSwKLSAJY29uc3QgY2hhcgkqZm10X3JvdW5kLAotIAljb25zdCBjaGFyCSpmbXRfbm90X3JvdW5kLAotLQlfX3VpbnQ2NF90CXZhbHVlLAotLQlfX3VpbnQ2NF90CWRpdmlzb3IpCi0rCXVpbnQ2NF90CXZhbHVlLAotKwl1aW50NjRfdAlkaXZpc29yKQotIHsKLSAJZG91YmxlCQl2ID0gKGRvdWJsZSl2YWx1ZSAvIGRpdmlzb3I7Ci0gCi1AQCAtMTA3LDIzICsxMDcsMjMgQEAgcm91bmRfc25wcmludGYoCi0gfQotIAotIC8qIEJhc2ljIGJsb2NrcyAoNTEyKSBieXRlcyBhcmUgcmV0dXJuZWQgZnJvbSBxdW90YWN0bCAqLwotLSNkZWZpbmUgQkJTX1RPX0VYQUJZVEVTKGJicykJKChfX3VpbnQ2NF90KShiYnMpPj41MSkKLS0jZGVmaW5lIEJCU19UT19QRVRBQllURVMoYmJzKQkoKF9fdWludDY0X3QpKGJicyk+PjQxKQotLSNkZWZpbmUgQkJTX1RPX1RFUkFCWVRFUyhiYnMpCSgoX191aW50NjRfdCkoYmJzKT4+MzEpCi0tI2RlZmluZSBCQlNfVE9fR0lHQUJZVEVTKGJicykJKChfX3VpbnQ2NF90KShiYnMpPj4yMSkKLS0jZGVmaW5lIEJCU19UT19NRUdBQllURVMoYmJzKQkoKF9fdWludDY0X3QpKGJicyk+PjExKQotLSNkZWZpbmUgQkJTX1RPX0tJTE9CWVRFUyhiYnMpCSgoX191aW50NjRfdCkoYmJzKT4+MSkKLS0KLS0jZGVmaW5lIEJCRVhBQllURQkJKChfX3VpbnQ2NF90KTE8PDUxKQotLSNkZWZpbmUgQkJQRVRBQllURQkJKChfX3VpbnQ2NF90KTE8PDQxKQotLSNkZWZpbmUgQkJURVJBQllURQkJKChfX3VpbnQ2NF90KTE8PDMxKQotLSNkZWZpbmUgQkJHSUdBQllURQkJKChfX3VpbnQ2NF90KTE8PDIxKQotLSNkZWZpbmUgQkJNRUdBQllURQkJKChfX3VpbnQ2NF90KTE8PDExKQotLSNkZWZpbmUgQkJLSUxPQllURQkJKChfX3VpbnQ2NF90KTE8PCAxKQotKyNkZWZpbmUgQkJTX1RPX0VYQUJZVEVTKGJicykJKCh1aW50NjRfdCkoYmJzKT4+NTEpCi0rI2RlZmluZSBCQlNfVE9fUEVUQUJZVEVTKGJicykJKCh1aW50NjRfdCkoYmJzKT4+NDEpCi0rI2RlZmluZSBCQlNfVE9fVEVSQUJZVEVTKGJicykJKCh1aW50NjRfdCkoYmJzKT4+MzEpCi0rI2RlZmluZSBCQlNfVE9fR0lHQUJZVEVTKGJicykJKCh1aW50NjRfdCkoYmJzKT4+MjEpCi0rI2RlZmluZSBCQlNfVE9fTUVHQUJZVEVTKGJicykJKCh1aW50NjRfdCkoYmJzKT4+MTEpCi0rI2RlZmluZSBCQlNfVE9fS0lMT0JZVEVTKGJicykJKCh1aW50NjRfdCkoYmJzKT4+MSkKLSsKLSsjZGVmaW5lIEJCRVhBQllURQkJKCh1aW50NjRfdCkxPDw1MSkKLSsjZGVmaW5lIEJCUEVUQUJZVEUJCSgodWludDY0X3QpMTw8NDEpCi0rI2RlZmluZSBCQlRFUkFCWVRFCQkoKHVpbnQ2NF90KTE8PDMxKQotKyNkZWZpbmUgQkJHSUdBQllURQkJKCh1aW50NjRfdCkxPDwyMSkKLSsjZGVmaW5lIEJCTUVHQUJZVEUJCSgodWludDY0X3QpMTw8MTEpCi0rI2RlZmluZSBCQktJTE9CWVRFCQkoKHVpbnQ2NF90KTE8PCAxKQotIAotIGNoYXIgKgotIGJic190b19zdHJpbmcoCi0tCV9fdWludDY0X3QJdiwKLSsJdWludDY0X3QJdiwKLSAJY2hhcgkJKnNwLAotIAl1aW50CQlzaXplKQotIHsKLUBAIC0xNDYsMTcgKzE0NiwxNyBAQCBiYnNfdG9fc3RyaW5nKAotIAlyZXR1cm4gc3A7Ci0gfQotIAotLSNkZWZpbmUgVEhPVVNBTkQJCSgoX191aW50NjRfdCkxMDAwKQotLSNkZWZpbmUgTUlMTElPTgkJCSgoX191aW50NjRfdCkxMDAwKjEwMDApCi0tI2RlZmluZSBCSUxMSU9OCQkJKChfX3VpbnQ2NF90KTEwMDAqMTAwMCoxMDAwKQotLSNkZWZpbmUgVFJJTExJT04JCSgoX191aW50NjRfdCkxMDAwKjEwMDAqMTAwMCoxMDAwKQotLSNkZWZpbmUgR0FaSUxMSU9OCQkoKF9fdWludDY0X3QpMTAwMCoxMDAwKjEwMDAqMTAwMCoxMDAwKQotLSNkZWZpbmUgUklESUNVTE9VUwkJKChfX3VpbnQ2NF90KTEwMDAqMTAwMCoxMDAwKjEwMDAqMTAwMCoxMDAwKQotLSNkZWZpbmUgU1RPUEFMUkVBRFkJCSgoX191aW50NjRfdCkxMDAwKjEwMDAqMTAwMCoxMDAwKjEwMDAqMTAwMCoxMDAwKQotKyNkZWZpbmUgVEhPVVNBTkQJCSgodWludDY0X3QpMTAwMCkKLSsjZGVmaW5lIE1JTExJT04JCQkoKHVpbnQ2NF90KTEwMDAqMTAwMCkKLSsjZGVmaW5lIEJJTExJT04JCQkoKHVpbnQ2NF90KTEwMDAqMTAwMCoxMDAwKQotKyNkZWZpbmUgVFJJTExJT04JCSgodWludDY0X3QpMTAwMCoxMDAwKjEwMDAqMTAwMCkKLSsjZGVmaW5lIEdBWklMTElPTgkJKCh1aW50NjRfdCkxMDAwKjEwMDAqMTAwMCoxMDAwKjEwMDApCi0rI2RlZmluZSBSSURJQ1VMT1VTCQkoKHVpbnQ2NF90KTEwMDAqMTAwMCoxMDAwKjEwMDAqMTAwMCoxMDAwKQotKyNkZWZpbmUgU1RPUEFMUkVBRFkJCSgodWludDY0X3QpMTAwMCoxMDAwKjEwMDAqMTAwMCoxMDAwKjEwMDAqMTAwMCkKLSAKLSBjaGFyICoKLSBudW1fdG9fc3RyaW5nKAotLQlfX3VpbnQ2NF90CXYsCi0rCXVpbnQ2NF90CXYsCi0gCWNoYXIJCSpzcCwKLSAJdWludAkJc2l6ZSkKLSB7Ci1AQCAtMTgzLDggKzE4Myw4IEBAIG51bV90b19zdHJpbmcoCi0gCi0gY2hhciAqCi0gcGN0X3RvX3N0cmluZygKLS0JX191aW50NjRfdAlwb3J0aW9uLAotLQlfX3VpbnQ2NF90CXdob2xlLAotKwl1aW50NjRfdAlwb3J0aW9uLAotKwl1aW50NjRfdAl3aG9sZSwKLSAJY2hhcgkJKmJ1ZiwKLSAJdWludAkJc2l6ZSkKLSB7Ci1AQCAtMjM3LDcgKzIzNyw3IEBAIHR5cGVfdG9fc3RyaW5nKAotICNkZWZpbmUgSURNQVNLCQkoTklELTEpCi0gCi0gdHlwZWRlZiBzdHJ1Y3QgewotLQlfX3VpbnQzMl90CWlkOwotKwl1aW50MzJfdAlpZDsKLSAJY2hhcgkJbmFtZVtOTUFYKzFdOwotIH0gaWRjYWNoZV90OwotIAotQEAgLTI1MCw3ICsyNTAsNyBAQCBzdGF0aWMgaW50CQlwZW50cmllc2xlZnQgPSBOSUQ7Ci0gCi0gc3RhdGljIGlkY2FjaGVfdCAqCi0gZ2V0bmV4dHB3ZW50KAotLQlfX3VpbnQzMl90CWlkLAotKwl1aW50MzJfdAlpZCwKLSAJaW50CQlieWlkKQotIHsKLSAJc3RydWN0IHBhc3N3ZAkqcHc7Ci1AQCAtMjY2LDcgKzI2Niw3IEBAIGdldG5leHRwd2VudCgKLSAKLSBzdGF0aWMgaWRjYWNoZV90ICoKLSBnZXRuZXh0Z3JlbnQoCi0tCV9fdWludDMyX3QJaWQsCi0rCXVpbnQzMl90CWlkLAotIAlpbnQJCWJ5aWQpCi0gewotIAlzdHJ1Y3QgZ3JvdXAJKmdyOwotQEAgLTI4MSw3ICsyODEsNyBAQCBnZXRuZXh0Z3JlbnQoCi0gCi0gc3RhdGljIGlkY2FjaGVfdCAqCi0gZ2V0bmV4dHByZW50KAotLQlfX3VpbnQzMl90CWlkLAotKwl1aW50MzJfdAlpZCwKLSAJaW50CQlieWlkKQotIHsKLSAJZnNfcHJvamVjdF90CSpwcjsKLUBAIC0yOTYsNyArMjk2LDcgQEAgZ2V0bmV4dHByZW50KAotIAotIGNoYXIgKgotIHVpZF90b19uYW1lKAotLQlfX3VpbnQzMl90CWlkKQotKwl1aW50MzJfdAlpZCkKLSB7Ci0gCWlkY2FjaGVfdAkqbmNwLCAqaWRwOwotIAotQEAgLTMzMyw3ICszMzMsNyBAQCB1aWRfdG9fbmFtZSgKLSAKLSBjaGFyICoKLSBnaWRfdG9fbmFtZSgKLS0JX191aW50MzJfdAlpZCkKLSsJdWludDMyX3QJaWQpCi0gewotIAlpZGNhY2hlX3QJKm5jcCwgKmlkcDsKLSAKLUBAIC0zNzAsNyArMzcwLDcgQEAgZ2lkX3RvX25hbWUoCi0gCi0gY2hhciAqCi0gcHJpZF90b19uYW1lKAotLQlfX3VpbnQzMl90CWlkKQotKwl1aW50MzJfdAlpZCkKLSB7Ci0gCWlkY2FjaGVfdAkqbmNwLCAqaWRwOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9SRUFETUUgYi9yZXBhaXIvUkVBRE1FCi1pbmRleCA3ZjE2OGU2OS4uNDY5MjQ2M2QgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvUkVBRE1FCi0rKysgYi9yZXBhaXIvUkVBRE1FCi1AQCAtMTg5LDcgKzE4OSw3IEBAIEQgLSAwKSBsb29rIGF0IHVzYWdlIG9mIFhGU19NQUtFX0lQVFIoKS4gIEl0IGRvZXMgdGhlIHJpZ2h0Ci0gCi0gCi0gRCAtIDApIGxvb2sgYXQgcmVmZXJlbmNlcyB0byBYRlNfSU5PREVTX1BFUl9DSFVOSy4gIGNoYW5nZSB0aGUKLS0Jb25lcyB0aGF0IHJlYWxseSBtZWFuIHNpemVvZihfX3VpbnQ2NF90KSpOQkJZIHRvCi0rCW9uZXMgdGhhdCByZWFsbHkgbWVhbiBzaXplb2YodWludDY0X3QpKk5CQlkgdG8KLSAJc29tZXRoaW5nIGVsc2UgKGxpa2UgdGhhdCBvbmx5IGRlZmluZWQgYXMgYSBjb25zdGFudAotIAlJTk9TX1BFUl9JUkVDLiB0aGlzIGlzbid0IGFzIGltcG9ydGFudCBzaW5jZQotIAlYRlNfSU5PREVTX1BFUl9DSFVOSyB3aWxsIG5ldmVyIGNoYW5nCi1kaWZmIC0tZ2l0IGEvcmVwYWlyL2FnaGVhZGVyLmggYi9yZXBhaXIvYWdoZWFkZXIuaAotaW5kZXggNmIyOTc0Y2EuLjJmNzI0NmQyIDEwMDY0NAotLS0tIGEvcmVwYWlyL2FnaGVhZGVyLmgKLSsrKyBiL3JlcGFpci9hZ2hlYWRlci5oCi1AQCAtMjAsNyArMjAsNyBAQCB0eXBlZGVmIHN0cnVjdCBmc19nZW9tZXRyeSAgewotIAkvKgotIAkgKiB0aGVzZSB0eXBlcyBzaG91bGQgbWF0Y2ggdGhlIHN1cGVyYmxvY2sgdHlwZXMKLSAJICovCi0tCV9fdWludDMyX3QJc2JfYmxvY2tzaXplOwkvKiBibG9ja3NpemUgKGJ5dGVzKSAqLwotKwl1aW50MzJfdAlzYl9ibG9ja3NpemU7CS8qIGJsb2Nrc2l6ZSAoYnl0ZXMpICovCi0gCXhmc19yZnNibG9ja190CXNiX2RibG9ja3M7CS8qICMgZGF0YSBibG9ja3MgKi8KLSAJeGZzX3Jmc2Jsb2NrX3QJc2JfcmJsb2NrczsJLyogIyByZWFsdGltZSBibG9ja3MgKi8KLSAJeGZzX3J0YmxvY2tfdAlzYl9yZXh0ZW50czsJLyogIyByZWFsdGltZSBleHRlbnRzICovCi1AQCAtMzAsOSArMzAsOSBAQCB0eXBlZGVmIHN0cnVjdCBmc19nZW9tZXRyeSAgewotIAl4ZnNfYWdudW1iZXJfdAlzYl9hZ2NvdW50OwkvKiAjIG9mIGFncyAqLwotIAl4ZnNfZXh0bGVuX3QJc2JfcmJtYmxvY2tzOwkvKiAjIG9mIHJ0IGJpdG1hcCBibG9ja3MgKi8KLSAJeGZzX2V4dGxlbl90CXNiX2xvZ2Jsb2NrczsJLyogIyBvZiBsb2cgYmxvY2tzICovCi0tCV9fdWludDE2X3QJc2Jfc2VjdHNpemU7CS8qIHZvbHVtZSBzZWN0b3Igc2l6ZSAoYnl0ZXMpICovCi0tCV9fdWludDE2X3QJc2JfaW5vZGVzaXplOwkvKiBpbm9kZSBzaXplIChieXRlcykgKi8KLS0JX191aW50OF90CXNiX2ltYXhfcGN0OwkvKiBtYXggJSBvZiBmcyBmb3IgaW5vZGUgc3BhY2UgKi8KLSsJdWludDE2X3QJc2Jfc2VjdHNpemU7CS8qIHZvbHVtZSBzZWN0b3Igc2l6ZSAoYnl0ZXMpICovCi0rCXVpbnQxNl90CXNiX2lub2Rlc2l6ZTsJLyogaW5vZGUgc2l6ZSAoYnl0ZXMpICovCi0rCXVpbnQ4X3QJCXNiX2ltYXhfcGN0OwkvKiBtYXggJSBvZiBmcyBmb3IgaW5vZGUgc3BhY2UgKi8KLSAKLSAJLyoKLSAJICogdGhlc2UgZG9uJ3QgaGF2ZSB0byBtYXRjaCB0aGUgc3VwZXJibG9jayB0eXBlcyBidXQgYXJlIHBsYWNlZAotQEAgLTQ5LDEwICs0OSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBmc19nZW9tZXRyeSAgewotIAkvKgotIAkgKiBmaWVsZHMgYWZ0ZXIgdGhpcyBwb2ludCBoYXZlIHRvIGJlIGNoZWNrZWQgbWFudWFsbHkgaW4gY29tcGFyZV9zYigpCi0gCSAqLwotLQlfX3VpbnQ4X3QJc2Jfc2hhcmVkX3ZuOwkvKiBzaGFyZWQgdmVyc2lvbiBudW1iZXIgKi8KLSsJdWludDhfdAkJc2Jfc2hhcmVkX3ZuOwkvKiBzaGFyZWQgdmVyc2lvbiBudW1iZXIgKi8KLSAJeGZzX2V4dGxlbl90CXNiX2lub2FsaWdubXQ7CS8qIGlub2RlIGNodW5rIGFsaWdubWVudCwgZnNibG9ja3MgKi8KLS0JX191aW50MzJfdAlzYl91bml0OwkvKiBzdHJpcGUgb3IgcmFpZCB1bml0ICovCi0tCV9fdWludDMyX3QJc2Jfd2lkdGg7CS8qIHN0cmlwZSBvciB3aWR0aCB1bml0ICovCi0rCXVpbnQzMl90CXNiX3VuaXQ7CS8qIHN0cmlwZSBvciByYWlkIHVuaXQgKi8KLSsJdWludDMyX3QJc2Jfd2lkdGg7CS8qIHN0cmlwZSBvciB3aWR0aCB1bml0ICovCi0gCi0gCS8qCi0gCSAqIHRoZXNlIGRvbid0IGhhdmUgdG8gbWF0Y2gsIHRoZXkgdHJhY2sgc3VwZXJibG9jayBwcm9wZXJ0aWVzCi1kaWZmIC0tZ2l0IGEvcmVwYWlyL2F0dHJfcmVwYWlyLmggYi9yZXBhaXIvYXR0cl9yZXBhaXIuaAotaW5kZXggNzAxMGU0ZmYuLjI5NGZhZDQ0IDEwMDY0NAotLS0tIGEvcmVwYWlyL2F0dHJfcmVwYWlyLmgKLSsrKyBiL3JlcGFpci9hdHRyX3JlcGFpci5oCi1AQCAtMzIsMTAgKzMyLDEwIEBACi0gI2RlZmluZSBBQ0xfV1JJVEUJMDIKLSAjZGVmaW5lIEFDTF9FWEVDVVRFCTAxCi0gCi0tdHlwZWRlZiBfX3VpbnQxNl90CXhmc19hY2xfcGVybV90OwotLXR5cGVkZWYgX19pbnQzMl90CXhmc19hY2xfdHlwZV90OwotLXR5cGVkZWYgX19pbnQzMl90CXhmc19hY2xfdGFnX3Q7Ci0tdHlwZWRlZiBfX2ludDMyX3QJeGZzX2FjbF9pZF90OwotK3R5cGVkZWYgdWludDE2X3QJeGZzX2FjbF9wZXJtX3Q7Ci0rdHlwZWRlZiBpbnQzMl90CQl4ZnNfYWNsX3R5cGVfdDsKLSt0eXBlZGVmIGludDMyX3QJCXhmc19hY2xfdGFnX3Q7Ci0rdHlwZWRlZiBpbnQzMl90CQl4ZnNfYWNsX2lkX3Q7Ci0gCi0gLyoKLSAgKiAiaWNhY2wiID0gaW4tY29yZSBBQ0wuIFRoZXJlIGlzIG5vIGVxdWl2YWxlbnQgaW4gdGhlIFhGUyBrZXJuZWwgY29kZSwKLUBAIC01MCw3ICs1MCw3IEBAIHN0cnVjdCB4ZnNfaWNhY2xfZW50cnkgewotIH07Ci0gCi0gc3RydWN0IHhmc19pY2FjbCB7Ci0tCV9faW50MzJfdAkJYWNsX2NudDsKLSsJaW50MzJfdAkJCWFjbF9jbnQ7Ci0gCXN0cnVjdCB4ZnNfaWNhY2xfZW50cnkJYWNsX2VudHJ5WzBdOwotIH07Ci0gCi1AQCAtNTksMTQgKzU5LDE0IEBAIHN0cnVjdCB4ZnNfaWNhY2wgewotICAqLwotICNkZWZpbmUgWEZTX01BQ19NQVhfU0VUUwkyNTAKLSB0eXBlZGVmIHN0cnVjdCB4ZnNfbWFjX2xhYmVsIHsKLS0JX191aW50OF90ICAgICAgIG1sX21zZW5fdHlwZTsJLyogTVNFTiBsYWJlbCB0eXBlICovCi0tCV9fdWludDhfdCAgICAgICBtbF9taW50X3R5cGU7CS8qIE1JTlQgbGFiZWwgdHlwZSAqLwotLQlfX3VpbnQ4X3QgICAgICAgbWxfbGV2ZWw7CS8qIEhpZXJhcmNoaWNhbCBsZXZlbCAqLwotLQlfX3VpbnQ4X3QgICAgICAgbWxfZ3JhZGU7CS8qIEhpZXJhcmNoaWNhbCBncmFkZSAqLwotLQlfX3VpbnQxNl90ICAgICAgbWxfY2F0Y291bnQ7CS8qIENhdGVnb3J5IGNvdW50ICovCi0tCV9fdWludDE2X3QgICAgICBtbF9kaXZjb3VudDsJLyogRGl2aXNpb24gY291bnQgKi8KLSsJdWludDhfdCAgICAgICBtbF9tc2VuX3R5cGU7CS8qIE1TRU4gbGFiZWwgdHlwZSAqLwotKwl1aW50OF90ICAgICAgIG1sX21pbnRfdHlwZTsJLyogTUlOVCBsYWJlbCB0eXBlICovCi0rCXVpbnQ4X3QgICAgICAgbWxfbGV2ZWw7CS8qIEhpZXJhcmNoaWNhbCBsZXZlbCAqLwotKwl1aW50OF90ICAgICAgIG1sX2dyYWRlOwkvKiBIaWVyYXJjaGljYWwgZ3JhZGUgKi8KLSsJdWludDE2X3QgICAgICBtbF9jYXRjb3VudDsJLyogQ2F0ZWdvcnkgY291bnQgKi8KLSsJdWludDE2X3QgICAgICBtbF9kaXZjb3VudDsJLyogRGl2aXNpb24gY291bnQgKi8KLSAJCQkJCS8qIENhdGVnb3J5IHNldCwgdGhlbiBEaXZpc2lvbiBzZXQgKi8KLS0JX191aW50MTZfdCAgICAgIG1sX2xpc3RbWEZTX01BQ19NQVhfU0VUU107Ci0rCXVpbnQxNl90ICAgICAgbWxfbGlzdFtYRlNfTUFDX01BWF9TRVRTXTsKLSB9IHhmc19tYWNfbGFiZWxfdDsKLSAKLSAvKiBNU0VOIGxhYmVsIHR5cGUgbmFtZXMuIENob29zZSBhbiB1cHBlciBjYXNlIEFTQ0lJIGNoYXJhY3Rlci4gICovCi1AQCAtOTMsNyArOTMsNyBAQCB0eXBlZGVmIHN0cnVjdCB4ZnNfbWFjX2xhYmVsIHsKLSAvKgotICAqIENhcGFiaWxpdGllcyAoSVJJWCkKLSAgKi8KLS10eXBlZGVmIF9fdWludDY0X3QgeGZzX2NhcF92YWx1ZV90OwotK3R5cGVkZWYgdWludDY0X3QgeGZzX2NhcF92YWx1ZV90OwotIAotIHR5cGVkZWYgc3RydWN0IHhmc19jYXBfc2V0IHsKLSAJeGZzX2NhcF92YWx1ZV90CWNhcF9lZmZlY3RpdmU7ICAvKiB1c2UgaW4gY2FwYWJpbGl0eSBjaGVja3MgKi8KLWRpZmYgLS1naXQgYS9yZXBhaXIvYXZsNjQuYyBiL3JlcGFpci9hdmw2NC5jCi1pbmRleCA1MWNkNjI0Yy4uOGY0YTEyMTEgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvYXZsNjQuYwotKysrIGIvcmVwYWlyL2F2bDY0LmMKLUBAIC03MCw4ICs3MCw4IEBAIGF2bDY0X2NoZWNrdHJlZSgKLSAJYXZsNjRub2RlX3QgKnJvb3QpCi0gewotIAlhdmw2NG5vZGVfdCAqbmxhc3QsICpubmV4dCwgKm5wOwotLQlfX3VpbnQ2NF90IG9mZnNldCA9IDA7Ci0tCV9fdWludDY0X3QgZW5kOwotKwl1aW50NjRfdCBvZmZzZXQgPSAwOwotKwl1aW50NjRfdCBlbmQ7Ci0gCi0gCW5sYXN0ID0gbm5leHQgPSByb290OwotIAotQEAgLTU4Myw4ICs1ODMsOCBAQCBhdHRhY2g6Ci0gYXZsNjRub2RlX3QgKgotIGF2bDY0X2ZpbmRhbnlyYW5nZSgKLSAJYXZsNjR0cmVlX2Rlc2NfdCAqdHJlZSwKLS0JX191aW50NjRfdCBzdGFydCwKLS0JX191aW50NjRfdCBlbmQsCi0rCXVpbnQ2NF90IHN0YXJ0LAotKwl1aW50NjRfdCBlbmQsCi0gCWludAljaGVja2xlbikKLSB7Ci0gCWF2bDY0bm9kZV90ICpucCA9IHRyZWUtPmF2bF9yb290OwotQEAgLTY1NSw3ICs2NTUsNyBAQCBhdmw2NF9maW5kYW55cmFuZ2UoCi0gYXZsNjRub2RlX3QgKgotIGF2bDY0X2ZpbmRyYW5nZSgKLSAJYXZsNjR0cmVlX2Rlc2NfdCAqdHJlZSwKLS0JX191aW50NjRfdCB2YWx1ZSkKLSsJdWludDY0X3QgdmFsdWUpCi0gewotIAlhdmw2NG5vZGVfdCAqbnAgPSB0cmVlLT5hdmxfcm9vdDsKLSAKLUBAIC02ODIsMTAgKzY4MiwxMCBAQCBhdmw2NF9maW5kcmFuZ2UoCi0gYXZsNjRub2RlX3QgKgotIGF2bDY0X2ZpbmQoCi0gCWF2bDY0dHJlZV9kZXNjX3QgKnRyZWUsCi0tCV9fdWludDY0X3QgdmFsdWUpCi0rCXVpbnQ2NF90IHZhbHVlKQotIHsKLSAJYXZsNjRub2RlX3QgKm5wID0gdHJlZS0+YXZsX3Jvb3Q7Ci0tCV9fdWludDY0X3QgbnZhbHVlOwotKwl1aW50NjRfdCBudmFsdWU7Ci0gCi0gCXdoaWxlIChucCkgewotIAkJbnZhbHVlID0gQVZMX1NUQVJUKHRyZWUsIG5wKTsKLUBAIC05MDksOCArOTA5LDggQEAgc3RhdGljCi0gYXZsNjRub2RlX3QgKgotIGF2bDY0X2luc2VydF9maW5kX2dyb3d0aCgKLSAJCWF2bDY0dHJlZV9kZXNjX3QgKnRyZWUsCi0tCQlfX3VpbnQ2NF90IHN0YXJ0LAkvKiByYW5nZSBzdGFydCBhdCBzdGFydCwgKi8KLS0JCV9fdWludDY0X3QgZW5kLAkvKiBleGNsdXNpdmUgKi8KLSsJCXVpbnQ2NF90IHN0YXJ0LAkvKiByYW5nZSBzdGFydCBhdCBzdGFydCwgKi8KLSsJCXVpbnQ2NF90IGVuZCwJLyogZXhjbHVzaXZlICovCi0gCQlpbnQgICAqZ3Jvd3RocCkJLyogT1VUICovCi0gewotIAlhdmw2NG5vZGVfdCAqcm9vdCA9IHRyZWUtPmF2bF9yb290OwotQEAgLTk2Myw3ICs5NjMsNyBAQCBhdmw2NF9pbnNlcnRfZ3JvdygKLSAJaW50IGdyb3d0aCkKLSB7Ci0gCWF2bDY0bm9kZV90ICpubmV4dDsKLS0JX191aW50NjRfdCBzdGFydCA9IEFWTF9TVEFSVCh0cmVlLCBuZXdub2RlKTsKLSsJdWludDY0X3Qgc3RhcnQgPSBBVkxfU1RBUlQodHJlZSwgbmV3bm9kZSk7Ci0gCi0gCWlmIChncm93dGggPT0gQVZMX0JBQ0spIHsKLSAKLUBAIC0xMDA1LDggKzEwMDUsOCBAQCBhdmw2NF9pbnNlcnQoCi0gCWF2bDY0bm9kZV90ICpuZXdub2RlKQotIHsKLSAJYXZsNjRub2RlX3QgKm5wOwotLQlfX3VpbnQ2NF90IHN0YXJ0ID0gQVZMX1NUQVJUKHRyZWUsIG5ld25vZGUpOwotLQlfX3VpbnQ2NF90IGVuZCA9IEFWTF9FTkQodHJlZSwgbmV3bm9kZSk7Ci0rCXVpbnQ2NF90IHN0YXJ0ID0gQVZMX1NUQVJUKHRyZWUsIG5ld25vZGUpOwotKwl1aW50NjRfdCBlbmQgPSBBVkxfRU5EKHRyZWUsIG5ld25vZGUpOwotIAlpbnQgZ3Jvd3RoOwotIAotIAlBU1NFUlQobmV3bm9kZSk7Ci1AQCAtMTE1OSwxNiArMTE1OSwxNiBAQCBhdmw2NG9wc190IGF2bF9kZWJ1Z19vcHMgPSB7Ci0gCWF2bF9kZWJ1Z19lbmQsCi0gfQotIAotLXN0YXRpYyBfX3VpbnQ2NF90Ci0rc3RhdGljIHVpbnQ2NF90Ci0gYXZsNjRfZGVidWdfc3RhcnQoYXZsNjRub2RlX3QgKm5vZGUpCi0gewotLQlyZXR1cm4gKF9fdWludDY0X3QpKHN0cnVjdCBhdmxfZGVidWdfbm9kZSAqKW5vZGUtPmF2bF9zdGFydDsKLSsJcmV0dXJuICh1aW50NjRfdCkoc3RydWN0IGF2bF9kZWJ1Z19ub2RlICopbm9kZS0+YXZsX3N0YXJ0OwotIH0KLSAKLS1zdGF0aWMgX191aW50NjRfdAotK3N0YXRpYyB1aW50NjRfdAotIGF2bDY0X2RlYnVnX2VuZChhdmw2NG5vZGVfdCAqbm9kZSkKLSB7Ci0tCXJldHVybiAoX191aW50NjRfdCkKLSsJcmV0dXJuICh1aW50NjRfdCkKLSAJCSgoc3RydWN0IGF2bF9kZWJ1Z19ub2RlICopbm9kZS0+YXZsX3N0YXJ0ICsKLSAJCSAoc3RydWN0IGF2bF9kZWJ1Z19ub2RlICopbm9kZS0+YXZsX3NpemUpOwotIH0KLUBAIC0xMzA0LDcgKzEzMDQsNyBAQCBtYWluKCkKLSBhdmw2NG5vZGVfdCAqCi0gYXZsNjRfZmluZGFkamFjZW50KAotIAlhdmw2NHRyZWVfZGVzY190ICp0cmVlLAotLQlfX3VpbnQ2NF90IHZhbHVlLAotKwl1aW50NjRfdCB2YWx1ZSwKLSAJaW50CQlkaXIpCi0gewotIAlhdmw2NG5vZGVfdCAqbnAgPSB0cmVlLT5hdmxfcm9vdDsKLUBAIC0xMzc4LDggKzEzNzgsOCBAQCBhdmw2NF9maW5kYWRqYWNlbnQoCi0gdm9pZAotIGF2bDY0X2ZpbmRyYW5nZXMoCi0gCWF2bDY0dHJlZV9kZXNjX3QgKnRyZWUsCi0tCV9fdWludDY0X3Qgc3RhcnQsCi0tCV9fdWludDY0X3QgZW5kLAotKwl1aW50NjRfdCBzdGFydCwKLSsJdWludDY0X3QgZW5kLAotIAlhdmw2NG5vZGVfdAkgICAgICAgICoqc3RhcnRwLAotIAlhdmw2NG5vZGVfdAkJKiplbmRwKQotIHsKLWRpZmYgLS1naXQgYS9yZXBhaXIvYXZsNjQuaCBiL3JlcGFpci9hdmw2NC5oCi1pbmRleCBmZDE5MzIxOC4uY2QwNzlhMDAgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvYXZsNjQuaAotKysrIGIvcmVwYWlyL2F2bDY0LmgKLUBAIC0zMiw4ICszMiw4IEBAIHR5cGVkZWYgc3RydWN0CWF2bDY0bm9kZSB7Ci0gICogYXZsLXRyZWUgb3BlcmF0aW9ucwotICAqLwotIHR5cGVkZWYgc3RydWN0IGF2bDY0b3BzIHsKLS0JX191aW50NjRfdAkoKmF2bF9zdGFydCkoYXZsNjRub2RlX3QgKik7Ci0tCV9fdWludDY0X3QJKCphdmxfZW5kKShhdmw2NG5vZGVfdCAqKTsKLSsJdWludDY0X3QJKCphdmxfc3RhcnQpKGF2bDY0bm9kZV90ICopOwotKwl1aW50NjRfdAkoKmF2bF9lbmQpKGF2bDY0bm9kZV90ICopOwotIH0gYXZsNjRvcHNfdDsKLSAKLSAvKgotQEAgLTg5LDMyICs4OSwzMiBAQCBhdmw2NF9pbml0X3RyZWUoCi0gYXZsNjRub2RlX3QgKgotIGF2bDY0X2ZpbmRyYW5nZSgKLSAJYXZsNjR0cmVlX2Rlc2NfdCAqdHJlZSwKLS0JX191aW50NjRfdCB2YWx1ZSk7Ci0rCXVpbnQ2NF90IHZhbHVlKTsKLSAKLSBhdmw2NG5vZGVfdCAqCi0gYXZsNjRfZmluZCgKLSAJYXZsNjR0cmVlX2Rlc2NfdCAqdHJlZSwKLS0JX191aW50NjRfdCB2YWx1ZSk7Ci0rCXVpbnQ2NF90IHZhbHVlKTsKLSAKLSBhdmw2NG5vZGVfdCAqCi0gYXZsNjRfZmluZGFueXJhbmdlKAotIAlhdmw2NHRyZWVfZGVzY190ICp0cmVlLAotLQlfX3VpbnQ2NF90CXN0YXJ0LAotLQlfX3VpbnQ2NF90CWVuZCwKLSsJdWludDY0X3QJc3RhcnQsCi0rCXVpbnQ2NF90CWVuZCwKLSAJaW50ICAgICBjaGVja2xlbik7Ci0gCi0gCi0gYXZsNjRub2RlX3QgKgotIGF2bDY0X2ZpbmRhZGphY2VudCgKLSAJYXZsNjR0cmVlX2Rlc2NfdCAqdHJlZSwKLS0JX191aW50NjRfdAl2YWx1ZSwKLSsJdWludDY0X3QJdmFsdWUsCi0gCWludAkJZGlyKTsKLSAKLSB2b2lkCi0gYXZsNjRfZmluZHJhbmdlcygKLSAJYXZsNjR0cmVlX2Rlc2NfdCAqdHJlZSwKLS0JX191aW50NjRfdAlzdGFydCwKLS0JX191aW50NjRfdAllbmQsCi0rCXVpbnQ2NF90CXN0YXJ0LAotKwl1aW50NjRfdAllbmQsCi0gCWF2bDY0bm9kZV90CSAgICAgICAgKipzdGFydHAsCi0gCWF2bDY0bm9kZV90CQkqKmVuZHApOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9kaW5vZGUuYyBiL3JlcGFpci9kaW5vZGUuYwotaW5kZXggZDY2NGY4N2EuLmRhODcyMTc4IDEwMDY0NAotLS0tIGEvcmVwYWlyL2Rpbm9kZS5jCi0rKysgYi9yZXBhaXIvZGlub2RlLmMKLUBAIC03NDYsNyArNzQ2LDcgQEAgXygiJXMgZm9yayBpbiBpbm8gJSIgUFJJdTY0ICIgY2xhaW1zIGR1cCBleHRlbnQsICIKLSAJCQljYXNlIFhSX0VfRlJFRTE6Ci0gCQkJCWRvX3dhcm4oCi0gXygiJXMgZm9yayBpbiBpbm8gJSIgUFJJdTY0ICIgY2xhaW1zIGZyZWUgYmxvY2sgJSIgUFJJdTY0ICJcbiIpLAotLQkJCQkJZm9ya25hbWUsIGlubywgKF9fdWludDY0X3QpIGIpOwotKwkJCQkJZm9ya25hbWUsIGlubywgKHVpbnQ2NF90KSBiKTsKLSAJCQkJLyogZmFsbCB0aHJvdWdoIC4uLiAqLwotIAkJCWNhc2UgWFJfRV9JTlVTRTE6CS8qIHNlZW4gYnkgcm1hcCAqLwotIAkJCWNhc2UgWFJfRV9VTktOT1dOOgotQEAgLTkyMyw3ICs5MjMsNyBAQCBwcm9jZXNzX2J0aW5vZGUoCi0gCWludAkJCXR5cGUsCi0gCWludAkJCSpkaXJ0eSwKLSAJeGZzX3Jmc2Jsb2NrX3QJCSp0b3QsCi0tCV9fdWludDY0X3QJCSpuZXgsCi0rCXVpbnQ2NF90CQkqbmV4LAotIAlibGttYXBfdAkJKipibGttYXBwLAotIAlpbnQJCQl3aGljaGZvcmssCi0gCWludAkJCWNoZWNrX2R1cHMpCi1AQCAtOTM5LDcgKzkzOSw3IEBAIHByb2Nlc3NfYnRpbm9kZSgKLSAJaW50CQkJbGV2ZWw7Ci0gCWludAkJCW51bXJlY3M7Ci0gCWJtYXBfY3Vyc29yX3QJCWN1cnNvcjsKLS0JX191aW50NjRfdAkJbWFnaWM7Ci0rCXVpbnQ2NF90CQltYWdpYzsKLSAKLSAJZGliID0gKHhmc19ibWRyX2Jsb2NrX3QgKilYRlNfREZPUktfUFRSKGRpcCwgd2hpY2hmb3JrKTsKLSAJbGlubyA9IFhGU19BR0lOT19UT19JTk8obXAsIGFnbm8sIGlubyk7Ci1AQCAtMTA5OCw3ICsxMDk4LDcgQEAgcHJvY2Vzc19leGlub2RlKAotIAlpbnQJCQl0eXBlLAotIAlpbnQJCQkqZGlydHksCi0gCXhmc19yZnNibG9ja190CQkqdG90LAotLQlfX3VpbnQ2NF90CQkqbmV4LAotKwl1aW50NjRfdAkJKm5leCwKLSAJYmxrbWFwX3QJCSoqYmxrbWFwcCwKLSAJaW50CQkJd2hpY2hmb3JrLAotIAlpbnQJCQljaGVja19kdXBzKQotQEAgLTEyMDAsMTQgKzEyMDAsMTQgQEAgcHJvY2Vzc19zeW1saW5rX2V4dGxpc3QoeGZzX21vdW50X3QgKm1wLCB4ZnNfaW5vX3QgbGlubywgeGZzX2Rpbm9kZV90ICpkaW5vKQotIAkJZG9fd2FybigKLSBfKCJtaXNtYXRjaCBiZXR3ZWVuIGZvcm1hdCAoJWQpIGFuZCBzaXplICglIiBQUklkNjQgIikgaW4gc3ltbGluayBpbm8gJSIgUFJJdTY0ICJcbiIpLAotIAkJCWRpbm8tPmRpX2Zvcm1hdCwKLS0JCQkoX19pbnQ2NF90KWJlNjRfdG9fY3B1KGRpbm8tPmRpX3NpemUpLCBsaW5vKTsKLSsJCQkoaW50NjRfdCliZTY0X3RvX2NwdShkaW5vLT5kaV9zaXplKSwgbGlubyk7Ci0gCQlyZXR1cm4gMTsKLSAJfQotIAlpZiAoZGluby0+ZGlfZm9ybWF0ID09IFhGU19ESU5PREVfRk1UX0xPQ0FMKSB7Ci0gCQlkb193YXJuKAotIF8oIm1pc21hdGNoIGJldHdlZW4gZm9ybWF0ICglZCkgYW5kIHNpemUgKCUiIFBSSWQ2NCAiKSBpbiBzeW1saW5rIGlub2RlICUiIFBSSXU2NCAiXG4iKSwKLSAJCQlkaW5vLT5kaV9mb3JtYXQsCi0tCQkJKF9faW50NjRfdCliZTY0X3RvX2NwdShkaW5vLT5kaV9zaXplKSwgbGlubyk7Ci0rCQkJKGludDY0X3QpYmU2NF90b19jcHUoZGluby0+ZGlfc2l6ZSksIGxpbm8pOwotIAkJcmV0dXJuIDE7Ci0gCX0KLSAKLUBAIC0xNDU0LDIyICsxNDU0LDIyIEBAIF8oImlub2RlICUiIFBSSXU2NCAiIGhhcyBiYWQgaW5vZGUgdHlwZSAoSUZNTlQpXG4iKSwgbGlubyk7Ci0gCQljYXNlIFhSX0lOT19DSFJERVY6Ci0gCQkJZG9fd2FybigKLSBfKCJzaXplIG9mIGNoYXJhY3RlciBkZXZpY2UgaW5vZGUgJSIgUFJJdTY0ICIgIT0gMCAoJSIgUFJJZDY0ICIgYnl0ZXMpXG4iKSwgbGlubywKLS0JCQkJKF9faW50NjRfdCliZTY0X3RvX2NwdShkaW5vLT5kaV9zaXplKSk7Ci0rCQkJCShpbnQ2NF90KWJlNjRfdG9fY3B1KGRpbm8tPmRpX3NpemUpKTsKLSAJCQlicmVhazsKLSAJCWNhc2UgWFJfSU5PX0JMS0RFVjoKLSAJCQlkb193YXJuKAotIF8oInNpemUgb2YgYmxvY2sgZGV2aWNlIGlub2RlICUiIFBSSXU2NCAiICE9IDAgKCUiIFBSSWQ2NCAiIGJ5dGVzKVxuIiksIGxpbm8sCi0tCQkJCShfX2ludDY0X3QpYmU2NF90b19jcHUoZGluby0+ZGlfc2l6ZSkpOwotKwkJCQkoaW50NjRfdCliZTY0X3RvX2NwdShkaW5vLT5kaV9zaXplKSk7Ci0gCQkJYnJlYWs7Ci0gCQljYXNlIFhSX0lOT19TT0NLOgotIAkJCWRvX3dhcm4oCi0gXygic2l6ZSBvZiBzb2NrZXQgaW5vZGUgJSIgUFJJdTY0ICIgIT0gMCAoJSIgUFJJZDY0ICIgYnl0ZXMpXG4iKSwgbGlubywKLS0JCQkJKF9faW50NjRfdCliZTY0X3RvX2NwdShkaW5vLT5kaV9zaXplKSk7Ci0rCQkJCShpbnQ2NF90KWJlNjRfdG9fY3B1KGRpbm8tPmRpX3NpemUpKTsKLSAJCQlicmVhazsKLSAJCWNhc2UgWFJfSU5PX0ZJRk86Ci0gCQkJZG9fd2FybigKLSBfKCJzaXplIG9mIGZpZm8gaW5vZGUgJSIgUFJJdTY0ICIgIT0gMCAoJSIgUFJJZDY0ICIgYnl0ZXMpXG4iKSwgbGlubywKLS0JCQkJKF9faW50NjRfdCliZTY0X3RvX2NwdShkaW5vLT5kaV9zaXplKSk7Ci0rCQkJCShpbnQ2NF90KWJlNjRfdG9fY3B1KGRpbm8tPmRpX3NpemUpKTsKLSAJCQlicmVhazsKLSAJCWRlZmF1bHQ6Ci0gCQkJZG9fd2FybihfKCJJbnRlcm5hbCBlcnJvciAtIHByb2Nlc3NfbWlzY19pbm9fdHlwZXMsICIKLUBAIC0xNzQzLDEyICsxNzQzLDEyIEBAIF8oImZvdW5kIGlub2RlICUiIFBSSXU2NCAiIGNsYWltaW5nIHRvIGJlIGEgcmVhbC10aW1lIGZpbGVcbiIpLCBsaW5vKTsKLSAJCWJyZWFrOwotIAotIAljYXNlIFhSX0lOT19SVEJJVE1BUDoKLS0JCWlmIChzaXplICE9IChfX2ludDY0X3QpbXAtPm1fc2Iuc2JfcmJtYmxvY2tzICoKLSsJCWlmIChzaXplICE9IChpbnQ2NF90KW1wLT5tX3NiLnNiX3JibWJsb2NrcyAqCi0gCQkJCQltcC0+bV9zYi5zYl9ibG9ja3NpemUpIHsKLSAJCQlkb193YXJuKAotIF8oInJlYWx0aW1lIGJpdG1hcCBpbm9kZSAlIiBQUkl1NjQgIiBoYXMgYmFkIHNpemUgJSIgUFJJZDY0ICIgKHNob3VsZCBiZSAlIiBQUkl1NjQgIilcbiIpLAotIAkJCQlsaW5vLCBzaXplLAotLQkJCQkoX19pbnQ2NF90KSBtcC0+bV9zYi5zYl9yYm1ibG9ja3MgKgotKwkJCQkoaW50NjRfdCkgbXAtPm1fc2Iuc2JfcmJtYmxvY2tzICoKLSAJCQkJCW1wLT5tX3NiLnNiX2Jsb2Nrc2l6ZSk7Ci0gCQkJcmV0dXJuIDE7Ci0gCQl9Ci1AQCAtMTgxNyw4ICsxODE3LDggQEAgc3RhdGljIGludAotIHByb2Nlc3NfaW5vZGVfYmxvY2tzX2FuZF9leHRlbnRzKAotIAl4ZnNfZGlub2RlX3QJKmRpbm8sCi0gCXhmc19yZnNibG9ja190CW5ibG9ja3MsCi0tCV9fdWludDY0X3QJbmV4dGVudHMsCi0tCV9fdWludDY0X3QJYW5leHRlbnRzLAotKwl1aW50NjRfdAluZXh0ZW50cywKLSsJdWludDY0X3QJYW5leHRlbnRzLAotIAl4ZnNfaW5vX3QJbGlubywKLSAJaW50CQkqZGlydHkpCi0gewotQEAgLTE5MDgsNyArMTkwOCw3IEBAIHByb2Nlc3NfaW5vZGVfZGF0YV9mb3JrKAotIAlpbnQJCXR5cGUsCi0gCWludAkJKmRpcnR5LAotIAl4ZnNfcmZzYmxvY2tfdAkqdG90YmxvY2tzLAotLQlfX3VpbnQ2NF90CSpuZXh0ZW50cywKLSsJdWludDY0X3QJKm5leHRlbnRzLAotIAlibGttYXBfdAkqKmRibGttYXAsCi0gCWludAkJY2hlY2tfZHVwcykKLSB7Ci1AQCAtMjAxNyw3ICsyMDE3LDcgQEAgcHJvY2Vzc19pbm9kZV9hdHRyX2ZvcmsoCi0gCWludAkJdHlwZSwKLSAJaW50CQkqZGlydHksCi0gCXhmc19yZnNibG9ja190CSphdG90YmxvY2tzLAotLQlfX3VpbnQ2NF90CSphbmV4dGVudHMsCi0rCXVpbnQ2NF90CSphbmV4dGVudHMsCi0gCWludAkJY2hlY2tfZHVwcywKLSAJaW50CQlleHRyYV9hdHRyX2NoZWNrLAotIAlpbnQJCSpyZXR2YWwpCi1AQCAtMjIyOCw4ICsyMjI4LDggQEAgcHJvY2Vzc19kaW5vZGVfaW50KHhmc19tb3VudF90ICptcCwKLSAJaW50CQkJZGlfbW9kZTsKLSAJaW50CQkJdHlwZTsKLSAJaW50CQkJcmV0dmFsID0gMDsKLS0JX191aW50NjRfdAkJbmV4dGVudHM7Ci0tCV9fdWludDY0X3QJCWFuZXh0ZW50czsKLSsJdWludDY0X3QJCW5leHRlbnRzOwotKwl1aW50NjRfdAkJYW5leHRlbnRzOwotIAl4ZnNfaW5vX3QJCWxpbm87Ci0gCWNvbnN0IGludAkJaXNfZnJlZSA9IDA7Ci0gCWNvbnN0IGludAkJaXNfdXNlZCA9IDE7Ci1AQCAtMjM0Niw3ICsyMzQ2LDcgQEAgXygiaW5vZGUgaWRlbnRpZmllciAlbGx1IG1pc21hdGNoIG9uIGlub2RlICUiIFBSSXU2NCAiXG4iKSwKLSAJCWlmICghdW5jZXJ0YWluKQotIAkJCWRvX3dhcm4oCi0gXygiYmFkIChuZWdhdGl2ZSkgc2l6ZSAlIiBQUklkNjQgIiBvbiBpbm9kZSAlIiBQUkl1NjQgIlxuIiksCi0tCQkJCShfX2ludDY0X3QpYmU2NF90b19jcHUoZGluby0+ZGlfc2l6ZSksCi0rCQkJCShpbnQ2NF90KWJlNjRfdG9fY3B1KGRpbm8tPmRpX3NpemUpLAotIAkJCQlsaW5vKTsKLSAJCWlmICh2ZXJpZnlfbW9kZSkKLSAJCQlyZXR1cm4gMTsKLWRpZmYgLS1naXQgYS9yZXBhaXIvZGlub2RlLmggYi9yZXBhaXIvZGlub2RlLmgKLWluZGV4IDYxZDA3MzYzLi4zOWQ2YTcyZiAxMDA2NDQKLS0tLSBhL3JlcGFpci9kaW5vZGUuaAotKysrIGIvcmVwYWlyL2Rpbm9kZS5oCi1AQCAtNDYsOCArNDYsOCBAQCBwcm9jZXNzX2JtYnRfcmVjbGlzdCh4ZnNfbW91bnRfdAkqbXAsCi0gCQl4ZnNfaW5vX3QJCWlubywKLSAJCXhmc19yZnNibG9ja190CQkqdG90LAotIAkJc3RydWN0IGJsa21hcAkJKipibGttYXBwLAotLQkJX191aW50NjRfdAkJKmZpcnN0X2tleSwKLS0JCV9fdWludDY0X3QJCSpsYXN0X2tleSwKLSsJCXVpbnQ2NF90CQkqZmlyc3Rfa2V5LAotKwkJdWludDY0X3QJCSpsYXN0X2tleSwKLSAJCWludAkJCXdoaWNoZm9yayk7Ci0gCi0gaW50Ci1kaWZmIC0tZ2l0IGEvcmVwYWlyL2RpcjIuYyBiL3JlcGFpci9kaXIyLmMKLWluZGV4IGU2NDE1ZTQ5Li43M2RmZjkwMiAxMDA2NDQKLS0tLSBhL3JlcGFpci9kaXIyLmMKLSsrKyBiL3JlcGFpci9kaXIyLmMKLUBAIC0xNjAsNyArMTYwLDcgQEAgcHJvY2Vzc19zZl9kaXIyKAotIAlpbnQJCQliYWRfc2ZuYW1lbGVuOwotIAlpbnQJCQlpOwotIAlpbnQJCQlpODsKLS0JX19pbnQ2NF90CQlpbm9fZGlyX3NpemU7Ci0rCWludDY0X3QJCQlpbm9fZGlyX3NpemU7Ci0gCWludAkJCWlub19vZmY7Ci0gCWlub190cmVlX25vZGVfdAkJKmlyZWNfcDsKLSAJaW50CQkJanVua2l0OwotZGlmZiAtLWdpdCBhL3JlcGFpci9nbG9iYWxzLmggYi9yZXBhaXIvZ2xvYmFscy5oCi1pbmRleCA0MDg1Y2NjNC4uYzdiYmU2ZjEgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvZ2xvYmFscy5oCi0rKysgYi9yZXBhaXIvZ2xvYmFscy5oCi1AQCAtMTQxLDcgKzE0MSw3IEBAIEVYVEVSTiBpbnQJCWlub2Rlc19wZXJfY2x1c3RlcjsKLSBFWFRFUk4gdW5zaWduZWQgaW50CWdsb2JfYWdjb3VudDsKLSBFWFRFUk4gaW50CQljaHVua3NfcGJsb2NrOwkvKiAjIG9mIDY0LWlubyBjaHVua3MgcGVyIGFsbG9jYXRpb24gKi8KLSBFWFRFUk4gaW50CQltYXhfc3ltbGlua19ibG9ja3M7Ci0tRVhURVJOIF9faW50NjRfdAlmc19tYXhfZmlsZV9vZmZzZXQ7Ci0rRVhURVJOIGludDY0X3QJCWZzX21heF9maWxlX29mZnNldDsKLSAKLSAvKiByZWFsdGltZSBpbmZvICovCi0gCi1AQCAtMTYxLDI0ICsxNjEsMjQgQEAgRVhURVJOIGludAkJZnVsbF9pbm9fZXhfZGF0YTsvKgotIAotIC8qIHN1cGVyYmxvY2sgY291bnRlcnMgKi8KLSAKLS1FWFRFUk4gX191aW50NjRfdAlzYl9pY291bnQ7CS8qIGFsbG9jYXRlZCAobWFkZSkgaW5vZGVzICovCi0tRVhURVJOIF9fdWludDY0X3QJc2JfaWZyZWU7CS8qIGZyZWUgaW5vZGVzICovCi0tRVhURVJOIF9fdWludDY0X3QJc2JfZmRibG9ja3M7CS8qIGZyZWUgZGF0YSBibG9ja3MgKi8KLS1FWFRFUk4gX191aW50NjRfdAlzYl9mcmV4dGVudHM7CS8qIGZyZWUgcmVhbHRpbWUgZXh0ZW50cyAqLwotK0VYVEVSTiB1aW50NjRfdAlzYl9pY291bnQ7CS8qIGFsbG9jYXRlZCAobWFkZSkgaW5vZGVzICovCi0rRVhURVJOIHVpbnQ2NF90CXNiX2lmcmVlOwkvKiBmcmVlIGlub2RlcyAqLwotK0VYVEVSTiB1aW50NjRfdAlzYl9mZGJsb2NrczsJLyogZnJlZSBkYXRhIGJsb2NrcyAqLwotK0VYVEVSTiB1aW50NjRfdAlzYl9mcmV4dGVudHM7CS8qIGZyZWUgcmVhbHRpbWUgZXh0ZW50cyAqLwotIAotIC8qIHN1cGVyYmxvY2sgZ2VvbWV0cnkgaW5mbyAqLwotIAotIEVYVEVSTiB4ZnNfZXh0bGVuX3QJc2JfaW5vYWxpZ25tdDsKLS1FWFRFUk4gX191aW50MzJfdAlzYl91bml0OwotLUVYVEVSTiBfX3VpbnQzMl90CXNiX3dpZHRoOwotK0VYVEVSTiB1aW50MzJfdAlzYl91bml0OwotK0VYVEVSTiB1aW50MzJfdAlzYl93aWR0aDsKLSAKLSBzdHJ1Y3QgYWdsb2NrIHsKLSAJcHRocmVhZF9tdXRleF90CWxvY2sgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oNjQpKSk7Ci0gfTsKLSBFWFRFUk4gc3RydWN0IGFnbG9jawkqYWdfbG9ja3M7Ci0gCi0tRVhURVJOIGludCAJCXJlcG9ydF9pbnRlcnZhbDsKLS1FWFRFUk4gX191aW50NjRfdCAJKnByb2dfcnB0X2RvbmU7Ci0rRVhURVJOIGludAkJcmVwb3J0X2ludGVydmFsOwotK0VYVEVSTiB1aW50NjRfdAkJKnByb2dfcnB0X2RvbmU7Ci0gCi0gRVhURVJOIGludAkJYWdfc3RyaWRlOwotIEVYVEVSTiBpbnQJCXRocmVhZF9jb3VudDsKLWRpZmYgLS1naXQgYS9yZXBhaXIvaW5jb3JlLmMgYi9yZXBhaXIvaW5jb3JlLmMKLWluZGV4IGNiNTczMTY1Li5hOTE5MWFlMiAxMDA2NDQKLS0tLSBhL3JlcGFpci9pbmNvcmUuYwotKysrIGIvcmVwYWlyL2luY29yZS5jCi1AQCAtMTc5LDcgKzE3OSw3IEBAIGdldF9ibWFwX2V4dCgKLSBzdGF0aWMgdWludDY0X3QJCSpydF9ibWFwOwotIHN0YXRpYyBzaXplX3QJCXJ0X2JtYXBfc2l6ZTsKLSAKLS0vKiBibG9jayByZWNvcmRzIGZpdCBpbnRvIF9fdWludDY0X3QncyB1bml0cyAqLwotKy8qIGJsb2NrIHJlY29yZHMgZml0IGludG8gdWludDY0X3QncyB1bml0cyAqLwotICNkZWZpbmUgWFJfQkJfVU5JVAk2NAkJCS8qIG51bWJlciBvZiBiaXRzL3VuaXQgKi8KLSAjZGVmaW5lIFhSX0JCCQk0CQkJLyogYml0cyBwZXIgYmxvY2sgcmVjb3JkICovCi0gI2RlZmluZSBYUl9CQl9OVU0JKFhSX0JCX1VOSVQvWFJfQkIpCS8qIG51bWJlciBvZiByZWNvcmRzIHBlciB1bml0ICovCi1AQCAtMjAzLDggKzIwMyw4IEBAIHNldF9ydGJtYXAoCi0gewotIAkqKHJ0X2JtYXAgKyBibm8gLyBYUl9CQl9OVU0pID0KLSAJICgoKihydF9ibWFwICsgYm5vIC8gWFJfQkJfTlVNKSAmCi0tCSAgKH4oKF9fdWludDY0X3QpIFhSX0JCX01BU0sgPDwgKChibm8gJSBYUl9CQl9OVU0pICogWFJfQkIpKSkpIHwKLS0JICgoKF9fdWludDY0X3QpIHN0YXRlKSA8PCAoKGJubyAlIFhSX0JCX05VTSkgKiBYUl9CQikpKTsKLSsJICAofigodWludDY0X3QpIFhSX0JCX01BU0sgPDwgKChibm8gJSBYUl9CQl9OVU0pICogWFJfQkIpKSkpIHwKLSsJICgoKHVpbnQ2NF90KSBzdGF0ZSkgPDwgKChibm8gJSBYUl9CQl9OVU0pICogWFJfQkIpKSk7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi1AQCAtMjIyLDkgKzIyMiw5IEBAIGluaXRfcnRfYm1hcCgKLSAJCXJldHVybjsKLSAKLSAJcnRfYm1hcF9zaXplID0gcm91bmR1cChtcC0+bV9zYi5zYl9yZXh0ZW50cyAvIChOQkJZIC8gWFJfQkIpLAotLQkJCSAgICAgICBzaXplb2YoX191aW50NjRfdCkpOwotKwkJCSAgICAgICBzaXplb2YodWludDY0X3QpKTsKLSAKLS0JcnRfYm1hcCA9IG1lbWFsaWduKHNpemVvZihfX3VpbnQ2NF90KSwgcnRfYm1hcF9zaXplKTsKLSsJcnRfYm1hcCA9IG1lbWFsaWduKHNpemVvZih1aW50NjRfdCksIHJ0X2JtYXBfc2l6ZSk7Ci0gCWlmICghcnRfYm1hcCkgewotIAkJZG9fZXJyb3IoCi0gCV8oImNvdWxkbid0IGFsbG9jYXRlIHJlYWx0aW1lIGJsb2NrIG1hcCwgc2l6ZSA9ICUiIFBSSXU2NCAiXG4iKSwKLWRpZmYgLS1naXQgYS9yZXBhaXIvaW5jb3JlLmggYi9yZXBhaXIvaW5jb3JlLmgKLWluZGV4IGMyM2EzYTNjLi5mZDY2MDg0ZiAxMDA2NDQKLS0tLSBhL3JlcGFpci9pbmNvcmUuaAotKysrIGIvcmVwYWlyL2luY29yZS5oCi1AQCAtMjU3LDcgKzI1Nyw3IEBAIHR5cGVkZWYgeGZzX2lub190IHBhcmVudF9lbnRyeV90OwotIHN0cnVjdCBubGlua19vcHM7Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QgcGFyZW50X2xpc3QgIHsKLS0JX191aW50NjRfdAkJcG1hc2s7Ci0rCXVpbnQ2NF90CQlwbWFzazsKLSAJcGFyZW50X2VudHJ5X3QJCSpwZW50cmllczsKLSAjaWZkZWYgREVCVUcKLSAJc2hvcnQJCQljbnQ7Ci1AQCAtMjY1LDE0ICsyNjUsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgcGFyZW50X2xpc3QgIHsKLSB9IHBhcmVudF9saXN0X3Q7Ci0gCi0gdW5pb24gaW5vX25saW5rIHsKLS0JX191aW50OF90CSp1bjg7Ci0tCV9fdWludDE2X3QJKnVuMTY7Ci0tCV9fdWludDMyX3QJKnVuMzI7Ci0rCXVpbnQ4X3QJCSp1bjg7Ci0rCXVpbnQxNl90CSp1bjE2OwotKwl1aW50MzJfdAkqdW4zMjsKLSB9OwotIAotIHR5cGVkZWYgc3RydWN0IGlub19leF9kYXRhICB7Ci0tCV9fdWludDY0X3QJCWlub19yZWFjaGVkOwkvKiBiaXQgPT0gMSBpZiByZWFjaGVkICovCi0tCV9fdWludDY0X3QJCWlub19wcm9jZXNzZWQ7CS8qIHJlZmVyZW5jZSBjaGVja2VkIGJpdCBtYXNrICovCi0rCXVpbnQ2NF90CQlpbm9fcmVhY2hlZDsJLyogYml0ID09IDEgaWYgcmVhY2hlZCAqLwotKwl1aW50NjRfdAkJaW5vX3Byb2Nlc3NlZDsJLyogcmVmZXJlbmNlIGNoZWNrZWQgYml0IG1hc2sgKi8KLSAJcGFyZW50X2xpc3RfdAkJKnBhcmVudHM7Ci0gCXVuaW9uIGlub19ubGluawkJY291bnRlZF9ubGlua3M7LyogY291bnRlZCBubGlua3MgaW4gUDYgKi8KLSB9IGlub19leF9kYXRhX3Q7Ci1AQCAtMjgxLDIyICsyODEsMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgaW5vX3RyZWVfbm9kZSAgewotIAlhdmxub2RlX3QJCWF2bF9ub2RlOwotIAl4ZnNfYWdpbm9fdAkJaW5vX3N0YXJ0bnVtOwkvKiBzdGFydGluZyBpbm9kZSAjICovCi0gCXhmc19pbm9mcmVlX3QJCWlyX2ZyZWU7CS8qIGlub2RlIGZyZWUgYml0IG1hc2sgKi8KLS0JX191aW50NjRfdAkJaXJfc3BhcnNlOwkvKiBzcGFyc2UgaW5vZGUgYml0bWFzayAqLwotLQlfX3VpbnQ2NF90CQlpbm9fY29uZmlybWVkOwkvKiBjb25maXJtZWQgYml0bWFzayAqLwotLQlfX3VpbnQ2NF90CQlpbm9faXNhX2RpcjsJLyogYml0ID09IDEgaWYgYSBkaXJlY3RvcnkgKi8KLS0JX191aW50NjRfdAkJaW5vX3dhc19ybDsJLyogYml0ID09IDEgaWYgcmVmbGluayBmbGFnIHNldCAqLwotLQlfX3VpbnQ2NF90CQlpbm9faXNfcmw7CS8qIGJpdCA9PSAxIGlmIHJlZmxpbmsgZmxhZyBzaG91bGQgYmUgc2V0ICovCi0tCV9fdWludDhfdAkJbmxpbmtfc2l6ZTsKLSsJdWludDY0X3QJCWlyX3NwYXJzZTsJLyogc3BhcnNlIGlub2RlIGJpdG1hc2sgKi8KLSsJdWludDY0X3QJCWlub19jb25maXJtZWQ7CS8qIGNvbmZpcm1lZCBiaXRtYXNrICovCi0rCXVpbnQ2NF90CQlpbm9faXNhX2RpcjsJLyogYml0ID09IDEgaWYgYSBkaXJlY3RvcnkgKi8KLSsJdWludDY0X3QJCWlub193YXNfcmw7CS8qIGJpdCA9PSAxIGlmIHJlZmxpbmsgZmxhZyBzZXQgKi8KLSsJdWludDY0X3QJCWlub19pc19ybDsJLyogYml0ID09IDEgaWYgcmVmbGluayBmbGFnIHNob3VsZCBiZSBzZXQgKi8KLSsJdWludDhfdAkJCW5saW5rX3NpemU7Ci0gCXVuaW9uIGlub19ubGluawkJZGlza19ubGlua3M7CS8qIG9uLWRpc2sgbmxpbmtzLCBzZXQgaW4gUDMgKi8KLSAJdW5pb24gIHsKLSAJCWlub19leF9kYXRhX3QJKmV4X2RhdGE7CS8qIHBoYXNlcyA2LDcgKi8KLSAJCXBhcmVudF9saXN0X3QJKnBsaXN0OwkJLyogcGhhc2VzIDItNSAqLwotIAl9IGlub191bjsKLS0JX191aW50OF90CQkqZnR5cGVzOwkvKiBwaGFzZXMgMyw2ICovCi0rCXVpbnQ4X3QJCQkqZnR5cGVzOwkvKiBwaGFzZXMgMyw2ICovCi0gfSBpbm9fdHJlZV9ub2RlX3Q7Ci0gCi0tI2RlZmluZSBJTk9TX1BFUl9JUkVDCShzaXplb2YoX191aW50NjRfdCkgKiBOQkJZKQotLSNkZWZpbmUJSVJFQ19NQVNLKGkpCSgoX191aW50NjRfdCkxIDw8IChpKSkKLSsjZGVmaW5lIElOT1NfUEVSX0lSRUMJKHNpemVvZih1aW50NjRfdCkgKiBOQkJZKQotKyNkZWZpbmUJSVJFQ19NQVNLKGkpCSgodWludDY0X3QpMSA8PCAoaSkpCi0gCi0gdm9pZAkJYWRkX2lub19leF9kYXRhKHhmc19tb3VudF90ICptcCk7Ci0gCi1AQCAtNTQzLDEwICs1NDMsMTAgQEAgc3RhdGljIGlubGluZSBpbnQgaW5vZGVfaXNfcmwoc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBvZmZzZXQpCi0gICovCi0gdm9pZCBhZGRfaW5vZGVfcmVmKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgb2Zmc2V0KTsKLSB2b2lkIGRyb3BfaW5vZGVfcmVmKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgb2Zmc2V0KTsKLS1fX3VpbnQzMl90IG51bV9pbm9kZV9yZWZlcmVuY2VzKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgb2Zmc2V0KTsKLSt1aW50MzJfdCBudW1faW5vZGVfcmVmZXJlbmNlcyhzdHJ1Y3QgaW5vX3RyZWVfbm9kZSAqaXJlYywgaW50IG9mZnNldCk7Ci0gCi0tdm9pZCBzZXRfaW5vZGVfZGlza19ubGlua3Moc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBvZmZzZXQsIF9fdWludDMyX3QgbmxpbmtzKTsKLS1fX3VpbnQzMl90IGdldF9pbm9kZV9kaXNrX25saW5rcyhzdHJ1Y3QgaW5vX3RyZWVfbm9kZSAqaXJlYywgaW50IG9mZnNldCk7Ci0rdm9pZCBzZXRfaW5vZGVfZGlza19ubGlua3Moc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBvZmZzZXQsIHVpbnQzMl90IG5saW5rcyk7Ci0rdWludDMyX3QgZ2V0X2lub2RlX2Rpc2tfbmxpbmtzKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgb2Zmc2V0KTsKLSAKLSBzdGF0aWMgaW5saW5lIGludCBpc19pbm9kZV9yZWFjaGVkKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgb2Zmc2V0KQotIHsKLUBAIC01NjcsMTMgKzU2NywxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkX2lub2RlX3JlYWNoZWQoc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBvZmZzZXQpCi0gc3RhdGljIGlubGluZSB2b2lkCi0gc2V0X2lub2RlX2Z0eXBlKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLAotIAlpbnQJCWlub19vZmZzZXQsCi0tCV9fdWludDhfdAlmdHlwZSkKLSsJdWludDhfdAkJZnR5cGUpCi0gewotIAlpZiAoaXJlYy0+ZnR5cGVzKQotIAkJaXJlYy0+ZnR5cGVzW2lub19vZmZzZXRdID0gZnR5cGU7Ci0gfQotIAotLXN0YXRpYyBpbmxpbmUgX191aW50OF90Ci0rc3RhdGljIGlubGluZSB1aW50OF90Ci0gZ2V0X2lub2RlX2Z0eXBlKAotIAlzdHJ1Y3QgaW5vX3RyZWVfbm9kZSAqaXJlYywKLSAJaW50CQlpbm9fb2Zmc2V0KQotQEAgLTYwNiwxMSArNjA2LDExIEBAIHR5cGVkZWYgc3RydWN0IGJtX2xldmVsX3N0YXRlICB7Ci0gCXhmc19mc2Jsb2NrX3QJCWZzYm5vOwotIAl4ZnNfZnNibG9ja190CQlsZWZ0X2ZzYm5vOwotIAl4ZnNfZnNibG9ja190CQlyaWdodF9mc2JubzsKLS0JX191aW50NjRfdAkJZmlyc3Rfa2V5OwotLQlfX3VpbnQ2NF90CQlsYXN0X2tleTsKLSsJdWludDY0X3QJCWZpcnN0X2tleTsKLSsJdWludDY0X3QJCWxhc3Rfa2V5OwotIC8qCi0gCWludAkJCWxldmVsOwotLQlfX3VpbnQ2NF90CQlwcmV2X2xhc3Rfa2V5OwotKwl1aW50NjRfdAkJcHJldl9sYXN0X2tleTsKLSAJeGZzX2J1Zl90CQkqYnA7Ci0gCXhmc19ibWJ0X2Jsb2NrX3QJKmJsb2NrOwotICovCi1kaWZmIC0tZ2l0IGEvcmVwYWlyL2luY29yZV9leHQuYyBiL3JlcGFpci9pbmNvcmVfZXh0LmMKLWluZGV4IDdlNjc4NmM1Li4wYTgxMzhhOSAxMDA2NDQKLS0tLSBhL3JlcGFpci9pbmNvcmVfZXh0LmMKLSsrKyBiL3JlcGFpci9pbmNvcmVfZXh0LmMKLUBAIC03MjEsMTMgKzcyMSwxMyBAQCBzZWFyY2hfcnRfZHVwX2V4dGVudCh4ZnNfbW91bnRfdCAqbXAsIHhmc19ydGJsb2NrX3QgYm5vKQotIAlyZXR1cm4ocmV0KTsKLSB9Ci0gCi0tc3RhdGljIF9fdWludDY0X3QKLStzdGF0aWMgdWludDY0X3QKLSBhdmw2NF9ydF9leHRfc3RhcnQoYXZsNjRub2RlX3QgKm5vZGUpCi0gewotIAlyZXR1cm4oKChydF9leHRlbnRfdHJlZV9ub2RlX3QgKikgbm9kZSktPnJ0X3N0YXJ0YmxvY2spOwotIH0KLSAKLS1zdGF0aWMgX191aW50NjRfdAotK3N0YXRpYyB1aW50NjRfdAotIGF2bDY0X2V4dF9lbmQoYXZsNjRub2RlX3QgKm5vZGUpCi0gewotIAlyZXR1cm4oKChydF9leHRlbnRfdHJlZV9ub2RlX3QgKikgbm9kZSktPnJ0X3N0YXJ0YmxvY2sgKwotQEAgLTgzNCw3ICs4MzQsNyBAQCBjb3VudF9leHRlbnRzKHhmc19hZ251bWJlcl90IGFnbm8sIGF2bHRyZWVfZGVzY190ICp0cmVlLCBpbnQgd2hpY2h0cmVlKQotIGludAotIGNvdW50X2Jub19leHRlbnRzX2Jsb2Nrcyh4ZnNfYWdudW1iZXJfdCBhZ25vLCB1aW50ICpudW1ibG9ja3MpCi0gewotLQlfX3VpbnQ2NF90IG5ibG9ja3M7Ci0rCXVpbnQ2NF90IG5ibG9ja3M7Ci0gCWV4dGVudF90cmVlX25vZGVfdCAqbm9kZTsKLSAJaW50IGkgPSAwOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9pbmNvcmVfaW5vLmMgYi9yZXBhaXIvaW5jb3JlX2luby5jCi1pbmRleCAyZWMxNzY1Ny4uM2I2YjQ0ZDQgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvaW5jb3JlX2luby5jCi0rKysgYi9yZXBhaXIvaW5jb3JlX2luby5jCi1AQCAtMzgsNyArMzgsNyBAQCBzdGF0aWMgYXZsdHJlZV9kZXNjX3QJKippbm9kZV91bmNlcnRhaW5fdHJlZV9wdHJzOwotIC8qIG1lbW9yeSBvcHRpbWlzZWQgbmxpbmsgY291bnRpbmcgZm9yIGFsbCBpbm9kZXMgKi8KLSAKLSBzdGF0aWMgdm9pZCAqCi0tYWxsb2NfbmxpbmtfYXJyYXkoX191aW50OF90IG5saW5rX3NpemUpCi0rYWxsb2NfbmxpbmtfYXJyYXkodWludDhfdCBubGlua19zaXplKQotIHsKLSAJdm9pZCAqcHRyOwotIAotQEAgLTUxLDEwICs1MSwxMCBAQCBhbGxvY19ubGlua19hcnJheShfX3VpbnQ4X3Qgbmxpbmtfc2l6ZSkKLSBzdGF0aWMgdm9pZAotIG5saW5rX2dyb3dfOF90b18xNihpbm9fdHJlZV9ub2RlX3QgKmlyZWMpCi0gewotLQlfX3VpbnQxNl90CSpuZXdfbmxpbmtzOwotKwl1aW50MTZfdAkqbmV3X25saW5rczsKLSAJaW50CQlpOwotIAotLQlpcmVjLT5ubGlua19zaXplID0gc2l6ZW9mKF9fdWludDE2X3QpOwotKwlpcmVjLT5ubGlua19zaXplID0gc2l6ZW9mKHVpbnQxNl90KTsKLSAKLSAJbmV3X25saW5rcyA9IGFsbG9jX25saW5rX2FycmF5KGlyZWMtPm5saW5rX3NpemUpOwotIAlmb3IgKGkgPSAwOyBpIDwgWEZTX0lOT0RFU19QRVJfQ0hVTks7IGkrKykKLUBAIC03NiwxMCArNzYsMTAgQEAgbmxpbmtfZ3Jvd184X3RvXzE2KGlub190cmVlX25vZGVfdCAqaXJlYykKLSBzdGF0aWMgdm9pZAotIG5saW5rX2dyb3dfMTZfdG9fMzIoaW5vX3RyZWVfbm9kZV90ICppcmVjKQotIHsKLS0JX191aW50MzJfdAkqbmV3X25saW5rczsKLSsJdWludDMyX3QJKm5ld19ubGlua3M7Ci0gCWludAkJaTsKLSAKLS0JaXJlYy0+bmxpbmtfc2l6ZSA9IHNpemVvZihfX3VpbnQzMl90KTsKLSsJaXJlYy0+bmxpbmtfc2l6ZSA9IHNpemVvZih1aW50MzJfdCk7Ci0gCi0gCW5ld19ubGlua3MgPSBhbGxvY19ubGlua19hcnJheShpcmVjLT5ubGlua19zaXplKTsKLSAJZm9yIChpID0gMDsgaSA8IFhGU19JTk9ERVNfUEVSX0NIVU5LOyBpKyspCi1AQCAtMTA0LDIxICsxMDQsMjEgQEAgdm9pZCBhZGRfaW5vZGVfcmVmKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgaW5vX29mZnNldCkKLSAJQVNTRVJUKGlyZWMtPmlub191bi5leF9kYXRhICE9IE5VTEwpOwotIAotIAlzd2l0Y2ggKGlyZWMtPm5saW5rX3NpemUpIHsKLS0JY2FzZSBzaXplb2YoX191aW50OF90KToKLSsJY2FzZSBzaXplb2YodWludDhfdCk6Ci0gCQlpZiAoaXJlYy0+aW5vX3VuLmV4X2RhdGEtPmNvdW50ZWRfbmxpbmtzLnVuOFtpbm9fb2Zmc2V0XSA8IDB4ZmYpIHsKLSAJCQlpcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW44W2lub19vZmZzZXRdKys7Ci0gCQkJYnJlYWs7Ci0gCQl9Ci0gCQlubGlua19ncm93XzhfdG9fMTYoaXJlYyk7Ci0gCQkvKkZBTExUSFJVKi8KLS0JY2FzZSBzaXplb2YoX191aW50MTZfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQxNl90KToKLSAJCWlmIChpcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW4xNltpbm9fb2Zmc2V0XSA8IDB4ZmZmZikgewotIAkJCWlyZWMtPmlub191bi5leF9kYXRhLT5jb3VudGVkX25saW5rcy51bjE2W2lub19vZmZzZXRdKys7Ci0gCQkJYnJlYWs7Ci0gCQl9Ci0gCQlubGlua19ncm93XzE2X3RvXzMyKGlyZWMpOwotIAkJLypGQUxMVEhSVSovCi0tCWNhc2Ugc2l6ZW9mKF9fdWludDMyX3QpOgotKwljYXNlIHNpemVvZih1aW50MzJfdCk6Ci0gCQlpcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW4zMltpbm9fb2Zmc2V0XSsrOwotIAkJYnJlYWs7Ci0gCWRlZmF1bHQ6Ci1AQCAtMTI4LDIwICsxMjgsMjAgQEAgdm9pZCBhZGRfaW5vZGVfcmVmKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgaW5vX29mZnNldCkKLSAKLSB2b2lkIGRyb3BfaW5vZGVfcmVmKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgaW5vX29mZnNldCkKLSB7Ci0tCV9fdWludDMyX3QJcmVmcyA9IDA7Ci0rCXVpbnQzMl90CXJlZnMgPSAwOwotIAotIAlBU1NFUlQoaXJlYy0+aW5vX3VuLmV4X2RhdGEgIT0gTlVMTCk7Ci0gCi0gCXN3aXRjaCAoaXJlYy0+bmxpbmtfc2l6ZSkgewotLQljYXNlIHNpemVvZihfX3VpbnQ4X3QpOgotKwljYXNlIHNpemVvZih1aW50OF90KToKLSAJCUFTU0VSVChpcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW44W2lub19vZmZzZXRdID4gMCk7Ci0gCQlyZWZzID0gLS1pcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW44W2lub19vZmZzZXRdOwotIAkJYnJlYWs7Ci0tCWNhc2Ugc2l6ZW9mKF9fdWludDE2X3QpOgotKwljYXNlIHNpemVvZih1aW50MTZfdCk6Ci0gCQlBU1NFUlQoaXJlYy0+aW5vX3VuLmV4X2RhdGEtPmNvdW50ZWRfbmxpbmtzLnVuMTZbaW5vX29mZnNldF0gPiAwKTsKLSAJCXJlZnMgPSAtLWlyZWMtPmlub191bi5leF9kYXRhLT5jb3VudGVkX25saW5rcy51bjE2W2lub19vZmZzZXRdOwotIAkJYnJlYWs7Ci0tCWNhc2Ugc2l6ZW9mKF9fdWludDMyX3QpOgotKwljYXNlIHNpemVvZih1aW50MzJfdCk6Ci0gCQlBU1NFUlQoaXJlYy0+aW5vX3VuLmV4X2RhdGEtPmNvdW50ZWRfbmxpbmtzLnVuMzJbaW5vX29mZnNldF0gPiAwKTsKLSAJCXJlZnMgPSAtLWlyZWMtPmlub191bi5leF9kYXRhLT5jb3VudGVkX25saW5rcy51bjMyW2lub19vZmZzZXRdOwotIAkJYnJlYWs7Ci1AQCAtMTUzLDE2ICsxNTMsMTYgQEAgdm9pZCBkcm9wX2lub2RlX3JlZihzdHJ1Y3QgaW5vX3RyZWVfbm9kZSAqaXJlYywgaW50IGlub19vZmZzZXQpCi0gCQlpcmVjLT5pbm9fdW4uZXhfZGF0YS0+aW5vX3JlYWNoZWQgJj0gfklSRUNfTUFTSyhpbm9fb2Zmc2V0KTsKLSB9Ci0gCi0tX191aW50MzJfdCBudW1faW5vZGVfcmVmZXJlbmNlcyhzdHJ1Y3QgaW5vX3RyZWVfbm9kZSAqaXJlYywgaW50IGlub19vZmZzZXQpCi0rdWludDMyX3QgbnVtX2lub2RlX3JlZmVyZW5jZXMoc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBpbm9fb2Zmc2V0KQotIHsKLSAJQVNTRVJUKGlyZWMtPmlub191bi5leF9kYXRhICE9IE5VTEwpOwotIAotIAlzd2l0Y2ggKGlyZWMtPm5saW5rX3NpemUpIHsKLS0JY2FzZSBzaXplb2YoX191aW50OF90KToKLSsJY2FzZSBzaXplb2YodWludDhfdCk6Ci0gCQlyZXR1cm4gaXJlYy0+aW5vX3VuLmV4X2RhdGEtPmNvdW50ZWRfbmxpbmtzLnVuOFtpbm9fb2Zmc2V0XTsKLS0JY2FzZSBzaXplb2YoX191aW50MTZfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQxNl90KToKLSAJCXJldHVybiBpcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW4xNltpbm9fb2Zmc2V0XTsKLS0JY2FzZSBzaXplb2YoX191aW50MzJfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQzMl90KToKLSAJCXJldHVybiBpcmVjLT5pbm9fdW4uZXhfZGF0YS0+Y291bnRlZF9ubGlua3MudW4zMltpbm9fb2Zmc2V0XTsKLSAJZGVmYXVsdDoKLSAJCUFTU0VSVCgwKTsKLUBAIC0xNzEsMjQgKzE3MSwyNCBAQCBfX3VpbnQzMl90IG51bV9pbm9kZV9yZWZlcmVuY2VzKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgaW5vX29mZnNldCkKLSB9Ci0gCi0gdm9pZCBzZXRfaW5vZGVfZGlza19ubGlua3Moc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBpbm9fb2Zmc2V0LAotLQkJX191aW50MzJfdCBubGlua3MpCi0rCQl1aW50MzJfdCBubGlua3MpCi0gewotIAlzd2l0Y2ggKGlyZWMtPm5saW5rX3NpemUpIHsKLS0JY2FzZSBzaXplb2YoX191aW50OF90KToKLSsJY2FzZSBzaXplb2YodWludDhfdCk6Ci0gCQlpZiAobmxpbmtzIDwgMHhmZikgewotIAkJCWlyZWMtPmRpc2tfbmxpbmtzLnVuOFtpbm9fb2Zmc2V0XSA9IG5saW5rczsKLSAJCQlicmVhazsKLSAJCX0KLSAJCW5saW5rX2dyb3dfOF90b18xNihpcmVjKTsKLSAJCS8qRkFMTFRIUlUqLwotLQljYXNlIHNpemVvZihfX3VpbnQxNl90KToKLSsJY2FzZSBzaXplb2YodWludDE2X3QpOgotIAkJaWYgKG5saW5rcyA8IDB4ZmZmZikgewotIAkJCWlyZWMtPmRpc2tfbmxpbmtzLnVuMTZbaW5vX29mZnNldF0gPSBubGlua3M7Ci0gCQkJYnJlYWs7Ci0gCQl9Ci0gCQlubGlua19ncm93XzE2X3RvXzMyKGlyZWMpOwotIAkJLypGQUxMVEhSVSovCi0tCWNhc2Ugc2l6ZW9mKF9fdWludDMyX3QpOgotKwljYXNlIHNpemVvZih1aW50MzJfdCk6Ci0gCQlpcmVjLT5kaXNrX25saW5rcy51bjMyW2lub19vZmZzZXRdID0gbmxpbmtzOwotIAkJYnJlYWs7Ci0gCWRlZmF1bHQ6Ci1AQCAtMTk2LDE0ICsxOTYsMTQgQEAgdm9pZCBzZXRfaW5vZGVfZGlza19ubGlua3Moc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBpbm9fb2Zmc2V0LAotIAl9Ci0gfQotIAotLV9fdWludDMyX3QgZ2V0X2lub2RlX2Rpc2tfbmxpbmtzKHN0cnVjdCBpbm9fdHJlZV9ub2RlICppcmVjLCBpbnQgaW5vX29mZnNldCkKLSt1aW50MzJfdCBnZXRfaW5vZGVfZGlza19ubGlua3Moc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBpbm9fb2Zmc2V0KQotIHsKLSAJc3dpdGNoIChpcmVjLT5ubGlua19zaXplKSB7Ci0tCWNhc2Ugc2l6ZW9mKF9fdWludDhfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQ4X3QpOgotIAkJcmV0dXJuIGlyZWMtPmRpc2tfbmxpbmtzLnVuOFtpbm9fb2Zmc2V0XTsKLS0JY2FzZSBzaXplb2YoX191aW50MTZfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQxNl90KToKLSAJCXJldHVybiBpcmVjLT5kaXNrX25saW5rcy51bjE2W2lub19vZmZzZXRdOwotLQljYXNlIHNpemVvZihfX3VpbnQzMl90KToKLSsJY2FzZSBzaXplb2YodWludDMyX3QpOgotIAkJcmV0dXJuIGlyZWMtPmRpc2tfbmxpbmtzLnVuMzJbaW5vX29mZnNldF07Ci0gCWRlZmF1bHQ6Ci0gCQlBU1NFUlQoMCk7Ci1AQCAtMjExLDExICsyMTEsMTEgQEAgX191aW50MzJfdCBnZXRfaW5vZGVfZGlza19ubGlua3Moc3RydWN0IGlub190cmVlX25vZGUgKmlyZWMsIGludCBpbm9fb2Zmc2V0KQotIAlyZXR1cm4gMDsKLSB9Ci0gCi0tc3RhdGljIF9fdWludDhfdCAqCi0rc3RhdGljIHVpbnQ4X3QgKgotIGFsbG9jX2Z0eXBlc19hcnJheSgKLSAJc3RydWN0IHhmc19tb3VudCAqbXApCi0gewotLQlfX3VpbnQ4X3QJKnB0cjsKLSsJdWludDhfdAkJKnB0cjsKLSAKLSAJaWYgKCF4ZnNfc2JfdmVyc2lvbl9oYXNmdHlwZSgmbXAtPm1fc2IpKQotIAkJcmV0dXJuIE5VTEw7Ci1AQCAtMjYyLDIzICsyNjIsMjMgQEAgYWxsb2NfaW5vX25vZGUoCi0gCWlyZWMtPmlyX2ZyZWUgPSAoeGZzX2lub2ZyZWVfdCkgLSAxOwotIAlpcmVjLT5pcl9zcGFyc2UgPSAwOwotIAlpcmVjLT5pbm9fdW4uZXhfZGF0YSA9IE5VTEw7Ci0tCWlyZWMtPm5saW5rX3NpemUgPSBzaXplb2YoX191aW50OF90KTsKLSsJaXJlYy0+bmxpbmtfc2l6ZSA9IHNpemVvZih1aW50OF90KTsKLSAJaXJlYy0+ZGlza19ubGlua3MudW44ID0gYWxsb2NfbmxpbmtfYXJyYXkoaXJlYy0+bmxpbmtfc2l6ZSk7Ci0gCWlyZWMtPmZ0eXBlcyA9IGFsbG9jX2Z0eXBlc19hcnJheShtcCk7Ci0gCXJldHVybiBpcmVjOwotIH0KLSAKLSBzdGF0aWMgdm9pZAotLWZyZWVfbmxpbmtfYXJyYXkodW5pb24gaW5vX25saW5rIG5saW5rcywgX191aW50OF90IG5saW5rX3NpemUpCi0rZnJlZV9ubGlua19hcnJheSh1bmlvbiBpbm9fbmxpbmsgbmxpbmtzLCB1aW50OF90IG5saW5rX3NpemUpCi0gewotIAlzd2l0Y2ggKG5saW5rX3NpemUpIHsKLS0JY2FzZSBzaXplb2YoX191aW50OF90KToKLSsJY2FzZSBzaXplb2YodWludDhfdCk6Ci0gCQlmcmVlKG5saW5rcy51bjgpOwotIAkJYnJlYWs7Ci0tCWNhc2Ugc2l6ZW9mKF9fdWludDE2X3QpOgotKwljYXNlIHNpemVvZih1aW50MTZfdCk6Ci0gCQlmcmVlKG5saW5rcy51bjE2KTsKLSAJCWJyZWFrOwotLQljYXNlIHNpemVvZihfX3VpbnQzMl90KToKLSsJY2FzZSBzaXplb2YodWludDMyX3QpOgotIAkJZnJlZShubGlua3MudW4zMik7Ci0gCQlicmVhazsKLSAJZGVmYXVsdDoKLUBAIC02MDksNyArNjA5LDcgQEAgc2V0X2lub2RlX3BhcmVudCgKLSAJaW50CQkJaTsKLSAJaW50CQkJY250OwotIAlpbnQJCQl0YXJnZXQ7Ci0tCV9fdWludDY0X3QJCWJpdG1hc2s7Ci0rCXVpbnQ2NF90CQliaXRtYXNrOwotIAlwYXJlbnRfZW50cnlfdAkJKnRtcDsKLSAKLSAJaWYgKGZ1bGxfaW5vX2V4X2RhdGEpCi1AQCAtNjk5LDcgKzY5OSw3IEBAIHNldF9pbm9kZV9wYXJlbnQoCi0geGZzX2lub190Ci0gZ2V0X2lub2RlX3BhcmVudChpbm9fdHJlZV9ub2RlX3QgKmlyZWMsIGludCBvZmZzZXQpCi0gewotLQlfX3VpbnQ2NF90CWJpdG1hc2s7Ci0rCXVpbnQ2NF90CWJpdG1hc2s7Ci0gCXBhcmVudF9saXN0X3QJKnB0Ymw7Ci0gCWludAkJaTsKLSAJaW50CQl0YXJnZXQ7Ci1AQCAtNzQwLDE1ICs3NDAsMTUgQEAgYWxsb2NfZXhfZGF0YShpbm9fdHJlZV9ub2RlX3QgKmlyZWMpCi0gCWlyZWMtPmlub191bi5leF9kYXRhLT5wYXJlbnRzID0gcHRibDsKLSAKLSAJc3dpdGNoIChpcmVjLT5ubGlua19zaXplKSB7Ci0tCWNhc2Ugc2l6ZW9mKF9fdWludDhfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQ4X3QpOgotIAkJaXJlYy0+aW5vX3VuLmV4X2RhdGEtPmNvdW50ZWRfbmxpbmtzLnVuOCA9Ci0gCQkJYWxsb2NfbmxpbmtfYXJyYXkoaXJlYy0+bmxpbmtfc2l6ZSk7Ci0gCQlicmVhazsKLS0JY2FzZSBzaXplb2YoX191aW50MTZfdCk6Ci0rCWNhc2Ugc2l6ZW9mKHVpbnQxNl90KToKLSAJCWlyZWMtPmlub191bi5leF9kYXRhLT5jb3VudGVkX25saW5rcy51bjE2ID0KLSAJCQlhbGxvY19ubGlua19hcnJheShpcmVjLT5ubGlua19zaXplKTsKLSAJCWJyZWFrOwotLQljYXNlIHNpemVvZihfX3VpbnQzMl90KToKLSsJY2FzZSBzaXplb2YodWludDMyX3QpOgotIAkJaXJlYy0+aW5vX3VuLmV4X2RhdGEtPmNvdW50ZWRfbmxpbmtzLnVuMzIgPQotIAkJCWFsbG9jX25saW5rX2FycmF5KGlyZWMtPm5saW5rX3NpemUpOwotIAkJYnJlYWs7Ci1kaWZmIC0tZ2l0IGEvcmVwYWlyL3BoYXNlMi5jIGIvcmVwYWlyL3BoYXNlMi5jCi1pbmRleCBjMjE3NzhiOC4uMDA4NTczMmIgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvcGhhc2UyLmMKLSsrKyBiL3JlcGFpci9waGFzZTIuYwotQEAgLTE3OSw3ICsxNzksNyBAQCBwaGFzZTIoCi0gCi0gCWJhZF9pbm9fYnRyZWUgPSAwOwotIAotLQlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX1NDQU5fQUcsIChfX3VpbnQ2NF90KSBnbG9iX2FnY291bnQpOwotKwlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX1NDQU5fQUcsICh1aW50NjRfdCkgZ2xvYl9hZ2NvdW50KTsKLSAKLSAJc2Nhbl9hZ3MobXAsIHNjYW5fdGhyZWFkcyk7Ci0gCi1kaWZmIC0tZ2l0IGEvcmVwYWlyL3BoYXNlMy5jIGIvcmVwYWlyL3BoYXNlMy5jCi1pbmRleCAwODkwYTI3ZC4uMTdiMWMyOGQgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvcGhhc2UzLmMKLSsrKyBiL3JlcGFpci9waGFzZTMuYwotQEAgLTEyMiw3ICsxMjIsNyBAQCBwaGFzZTMoCi0gCWVsc2UKLSAJCWRvX2xvZyhfKCIgICAgICAgIC0gc2NhbiAoYnV0IGRvbid0IGNsZWFyKSBhZ2kgdW5saW5rZWQgbGlzdHMuLi5cbiIpKTsKLSAKLS0Jc2V0X3Byb2dyZXNzX21zZyhQUk9HX0ZNVF9BR0lfVU5MSU5LRUQsIChfX3VpbnQ2NF90KSBnbG9iX2FnY291bnQpOwotKwlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX0FHSV9VTkxJTktFRCwgKHVpbnQ2NF90KSBnbG9iX2FnY291bnQpOwotIAotIAkvKiBmaXJzdCBjbGVhciB0aGUgYWdpIHVubGlua2VkIEFHSSBsaXN0ICovCi0gCWlmICghbm9fbW9kaWZ5KSB7Ci1AQCAtMTQyLDcgKzE0Miw3IEBAIHBoYXNlMygKLSAJZG9fbG9nKF8oCi0gCSAgICAiICAgICAgICAtIHByb2Nlc3Mga25vd24gaW5vZGVzIGFuZCBwZXJmb3JtIGlub2RlIGRpc2NvdmVyeS4uLlxuIikpOwotIAotLQlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX1BST0NFU1NfSU5PLCAoX191aW50NjRfdCkgbXAtPm1fc2Iuc2JfaWNvdW50KTsKLSsJc2V0X3Byb2dyZXNzX21zZyhQUk9HX0ZNVF9QUk9DRVNTX0lOTywgKHVpbnQ2NF90KSBtcC0+bV9zYi5zYl9pY291bnQpOwotIAotIAlwcm9jZXNzX2FncyhtcCk7Ci0gCi1AQCAtMTUyLDcgKzE1Miw3IEBAIHBoYXNlMygKLSAJICogcHJvY2VzcyBuZXdseSBkaXNjb3ZlcmVkIGlub2RlIGNodW5rcwotIAkgKi8KLSAJZG9fbG9nKF8oIiAgICAgICAgLSBwcm9jZXNzIG5ld2x5IGRpc2NvdmVyZWQgaW5vZGVzLi4uXG4iKSk7Ci0tCXNldF9wcm9ncmVzc19tc2coUFJPR19GTVRfTkVXX0lOT0RFUywgKF9fdWludDY0X3QpIGdsb2JfYWdjb3VudCk7Ci0rCXNldF9wcm9ncmVzc19tc2coUFJPR19GTVRfTkVXX0lOT0RFUywgKHVpbnQ2NF90KSBnbG9iX2FnY291bnQpOwotIAotIAljb3VudHMgPSBjYWxsb2Moc2l6ZW9mKCpjb3VudHMpLCBtcC0+bV9zYi5zYl9hZ2NvdW50KTsKLSAJaWYgKCFjb3VudHMpIHsKLWRpZmYgLS1naXQgYS9yZXBhaXIvcGhhc2U0LmMgYi9yZXBhaXIvcGhhc2U0LmMKLWluZGV4IGU1OTQ2NGIxLi5jYzE3ZWMwMyAxMDA2NDQKLS0tLSBhL3JlcGFpci9waGFzZTQuYwotKysrIGIvcmVwYWlyL3BoYXNlNC5jCi1AQCAtMjkwLDcgKzI5MCw3IEBAIHBoYXNlNCh4ZnNfbW91bnRfdCAqbXApCi0gCWRvX2xvZyhfKCJQaGFzZSA0IC0gY2hlY2sgZm9yIGR1cGxpY2F0ZSBibG9ja3MuLi5cbiIpKTsKLSAJZG9fbG9nKF8oIiAgICAgICAgLSBzZXR0aW5nIHVwIGR1cGxpY2F0ZSBleHRlbnQgbGlzdC4uLlxuIikpOwotIAotLQlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX0RVUF9FWFRFTlQsIChfX3VpbnQ2NF90KSBnbG9iX2FnY291bnQpOwotKwlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX0RVUF9FWFRFTlQsICh1aW50NjRfdCkgZ2xvYl9hZ2NvdW50KTsKLSAKLSAJaXJlYyA9IGZpbmRfaW5vZGVfcmVjKG1wLCBYRlNfSU5PX1RPX0FHTk8obXAsIG1wLT5tX3NiLnNiX3Jvb3Rpbm8pLAotIAkJCQlYRlNfSU5PX1RPX0FHSU5PKG1wLCBtcC0+bV9zYi5zYl9yb290aW5vKSk7Ci1AQCAtNDA0LDcgKzQwNCw3IEBAIHBoYXNlNCh4ZnNfbW91bnRfdCAqbXApCi0gCXJlc2V0X2JtYXBzKG1wKTsKLSAKLSAJZG9fbG9nKF8oIiAgICAgICAgLSBjaGVjayBmb3IgaW5vZGVzIGNsYWltaW5nIGR1cGxpY2F0ZSBibG9ja3MuLi5cbiIpKTsKLS0Jc2V0X3Byb2dyZXNzX21zZyhQUk9HX0ZNVF9EVVBfQkxPQ0tTLCAoX191aW50NjRfdCkgbXAtPm1fc2Iuc2JfaWNvdW50KTsKLSsJc2V0X3Byb2dyZXNzX21zZyhQUk9HX0ZNVF9EVVBfQkxPQ0tTLCAodWludDY0X3QpIG1wLT5tX3NiLnNiX2ljb3VudCk7Ci0gCi0gCS8qCi0gCSAqIG9rLCBub3cgcHJvY2VzcyB0aGUgaW5vZGVzIC0tIHNpZ25hbCAyLXBhc3MgY2hlY2sgcGVyIGlub2RlLgotZGlmZiAtLWdpdCBhL3JlcGFpci9waGFzZTUuYyBiL3JlcGFpci9waGFzZTUuYwotaW5kZXggMGI4MzNmMTMuLjIxZGNlNjdhIDEwMDY0NAotLS0tIGEvcmVwYWlyL3BoYXNlNS5jCi0rKysgYi9yZXBhaXIvcGhhc2U1LmMKLUBAIC04Niw5ICs4Niw5IEBAIHN0cnVjdCBhZ2lfc3RhdCB7Ci0gCXhmc19hZ2lub190CQlmcmVlY291bnQ7Ci0gfTsKLSAKLS1zdGF0aWMgX191aW50NjRfdAkqc2JfaWNvdW50X2FnOwkJLyogYWxsb2NhdGVkIGlub2RlcyBwZXIgYWcgKi8KLS1zdGF0aWMgX191aW50NjRfdAkqc2JfaWZyZWVfYWc7CQkvKiBmcmVlIGlub2RlcyBwZXIgYWcgKi8KLS1zdGF0aWMgX191aW50NjRfdAkqc2JfZmRibG9ja3NfYWc7CS8qIGZyZWUgZGF0YSBibG9ja3MgcGVyIGFnICovCi0rc3RhdGljIHVpbnQ2NF90CSpzYl9pY291bnRfYWc7CQkvKiBhbGxvY2F0ZWQgaW5vZGVzIHBlciBhZyAqLwotK3N0YXRpYyB1aW50NjRfdAkqc2JfaWZyZWVfYWc7CQkvKiBmcmVlIGlub2RlcyBwZXIgYWcgKi8KLStzdGF0aWMgdWludDY0X3QJKnNiX2ZkYmxvY2tzX2FnOwkvKiBmcmVlIGRhdGEgYmxvY2tzIHBlciBhZyAqLwotIAotIHN0YXRpYyBpbnQKLSBta19pbmNvcmVfZnN0cmVlKHhmc19tb3VudF90ICptcCwgeGZzX2FnbnVtYmVyX3QgYWdubykKLUBAIC04ODYsMTAgKzg4NiwxMCBAQCBidWlsZF9mcmVlc3BhY2VfdHJlZSh4ZnNfbW91bnRfdCAqbXAsIHhmc19hZ251bWJlcl90IGFnbm8sCi0gICovCi0gc3RhdGljIHZvaWQKLSBpbml0X2lub19jdXJzb3IoeGZzX21vdW50X3QgKm1wLCB4ZnNfYWdudW1iZXJfdCBhZ25vLCBidF9zdGF0dXNfdCAqYnRyZWVfY3VycywKLS0JCV9fdWludDY0X3QgKm51bV9pbm9zLCBfX3VpbnQ2NF90ICpudW1fZnJlZV9pbm9zLCBpbnQgZmlub2J0KQotKwkJdWludDY0X3QgKm51bV9pbm9zLCB1aW50NjRfdCAqbnVtX2ZyZWVfaW5vcywgaW50IGZpbm9idCkKLSB7Ci0tCV9fdWludDY0X3QJCW5pbm9zOwotLQlfX3VpbnQ2NF90CQluZmlub3M7Ci0rCXVpbnQ2NF90CQluaW5vczsKLSsJdWludDY0X3QJCW5maW5vczsKLSAJaW50CQkJcmVjX25maW5vczsKLSAJaW50CQkJcmVjX25pbm9zOwotIAlpbm9fdHJlZV9ub2RlX3QJCSppbm9fcmVjOwotQEAgLTIxOTMsMTAgKzIxOTMsMTAgQEAgcGhhc2U1X2Z1bmMoCi0gCXhmc19hZ251bWJlcl90CWFnbm8sCi0gCXN0cnVjdCB4ZnNfc2xhYgkqbG9zdF9mc2IpCi0gewotLQlfX3VpbnQ2NF90CW51bV9pbm9zOwotLQlfX3VpbnQ2NF90CW51bV9mcmVlX2lub3M7Ci0tCV9fdWludDY0X3QJZmlub2J0X251bV9pbm9zOwotLQlfX3VpbnQ2NF90CWZpbm9idF9udW1fZnJlZV9pbm9zOwotKwl1aW50NjRfdAludW1faW5vczsKLSsJdWludDY0X3QJbnVtX2ZyZWVfaW5vczsKLSsJdWludDY0X3QJZmlub2J0X251bV9pbm9zOwotKwl1aW50NjRfdAlmaW5vYnRfbnVtX2ZyZWVfaW5vczsKLSAJYnRfc3RhdHVzX3QJYm5vX2J0cmVlX2N1cnM7Ci0gCWJ0X3N0YXR1c190CWJjbnRfYnRyZWVfY3VyczsKLSAJYnRfc3RhdHVzX3QJaW5vX2J0cmVlX2N1cnM7Ci1AQCAtMjQ3MSw3ICsyNDcxLDcgQEAgcGhhc2U1KHhmc19tb3VudF90ICptcCkKLSAJaW50CQkJZXJyb3I7Ci0gCi0gCWRvX2xvZyhfKCJQaGFzZSA1IC0gcmVidWlsZCBBRyBoZWFkZXJzIGFuZCB0cmVlcy4uLlxuIikpOwotLQlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX1JFQlVJTERfQUcsIChfX3VpbnQ2NF90IClnbG9iX2FnY291bnQpOwotKwlzZXRfcHJvZ3Jlc3NfbXNnKFBST0dfRk1UX1JFQlVJTERfQUcsICh1aW50NjRfdClnbG9iX2FnY291bnQpOwotIAotICNpZmRlZiBYUl9CTERfRlJFRV9UUkFDRQotIAlmcHJpbnRmKHN0ZGVyciwgImlub2J0IGxldmVsIDEsIG1heHJlYyA9ICVkLCBtaW5yZWMgPSAlZFxuIiwKLUBAIC0yNDk3LDE1ICsyNDk3LDE1IEBAIHBoYXNlNSh4ZnNfbW91bnRfdCAqbXApCi0gCWtlZXBfZnNpbm9zKG1wKTsKLSAKLSAJLyogYWxsb2NhdGUgcGVyIGFnIGNvdW50ZXJzICovCi0tCXNiX2ljb3VudF9hZyA9IGNhbGxvYyhtcC0+bV9zYi5zYl9hZ2NvdW50LCBzaXplb2YoX191aW50NjRfdCkpOwotKwlzYl9pY291bnRfYWcgPSBjYWxsb2MobXAtPm1fc2Iuc2JfYWdjb3VudCwgc2l6ZW9mKHVpbnQ2NF90KSk7Ci0gCWlmIChzYl9pY291bnRfYWcgPT0gTlVMTCkKLSAJCWRvX2Vycm9yKF8oImNhbm5vdCBhbGxvYyBzYl9pY291bnRfYWcgYnVmZmVyc1xuIikpOwotIAotLQlzYl9pZnJlZV9hZyA9IGNhbGxvYyhtcC0+bV9zYi5zYl9hZ2NvdW50LCBzaXplb2YoX191aW50NjRfdCkpOwotKwlzYl9pZnJlZV9hZyA9IGNhbGxvYyhtcC0+bV9zYi5zYl9hZ2NvdW50LCBzaXplb2YodWludDY0X3QpKTsKLSAJaWYgKHNiX2lmcmVlX2FnID09IE5VTEwpCi0gCQlkb19lcnJvcihfKCJjYW5ub3QgYWxsb2Mgc2JfaWZyZWVfYWcgYnVmZmVyc1xuIikpOwotIAotLQlzYl9mZGJsb2Nrc19hZyA9IGNhbGxvYyhtcC0+bV9zYi5zYl9hZ2NvdW50LCBzaXplb2YoX191aW50NjRfdCkpOwotKwlzYl9mZGJsb2Nrc19hZyA9IGNhbGxvYyhtcC0+bV9zYi5zYl9hZ2NvdW50LCBzaXplb2YodWludDY0X3QpKTsKLSAJaWYgKHNiX2ZkYmxvY2tzX2FnID09IE5VTEwpCi0gCQlkb19lcnJvcihfKCJjYW5ub3QgYWxsb2Mgc2JfZmRibG9ja3NfYWcgYnVmZmVyc1xuIikpOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9waGFzZTYuYyBiL3JlcGFpci9waGFzZTYuYwotaW5kZXggMDg2MzZkY2YuLjM3M2IxYTViIDEwMDY0NAotLS0tIGEvcmVwYWlyL3BoYXNlNi5jCi0rKysgYi9yZXBhaXIvcGhhc2U2LmMKLUBAIC04Miw3ICs4Miw3IEBAIHR5cGVkZWYgc3RydWN0IGRpcl9oYXNoX2VudCB7Ci0gCXN0cnVjdCBkaXJfaGFzaF9lbnQJKm5leHRieWhhc2g7CS8qIG5leHQgaW4gbmFtZSBidWNrZXQgKi8KLSAJc3RydWN0IGRpcl9oYXNoX2VudAkqbmV4dGJ5b3JkZXI7CS8qIG5leHQgaW4gb3JkZXIgYWRkZWQgKi8KLSAJeGZzX2RhaGFzaF90CQloYXNodmFsOwkvKiBoYXNoIHZhbHVlIG9mIG5hbWUgKi8KLS0JX191aW50MzJfdAkJYWRkcmVzczsJLyogb2Zmc2V0IG9mIGRhdGEgZW50cnkgKi8KLSsJdWludDMyX3QJCWFkZHJlc3M7CS8qIG9mZnNldCBvZiBkYXRhIGVudHJ5ICovCi0gCXhmc19pbm9fdCAJCWludW07CQkvKiBpbm9kZSBudW0gb2YgZW50cnkgKi8KLSAJc2hvcnQJCQlqdW5raXQ7CQkvKiBuYW1lIHN0YXJ0cyB3aXRoIC8gKi8KLSAJc2hvcnQJCQlzZWVuOwkJLyogaGF2ZSBzZWVuIGxlYWYgZW50cnkgKi8KLUBAIC0xNzAsMTEgKzE3MCwxMSBAQCBzdGF0aWMgaW50Ci0gZGlyX2hhc2hfYWRkKAotIAl4ZnNfbW91bnRfdAkJKm1wLAotIAlkaXJfaGFzaF90YWJfdAkJKmhhc2h0YWIsCi0tCV9fdWludDMyX3QJCWFkZHIsCi0rCXVpbnQzMl90CQlhZGRyLAotIAl4ZnNfaW5vX3QJCWludW0sCi0gCWludAkJCW5hbWVsZW4sCi0gCXVuc2lnbmVkIGNoYXIJCSpuYW1lLAotLQlfX3VpbnQ4X3QJCWZ0eXBlKQotKwl1aW50OF90CQkJZnR5cGUpCi0gewotIAl4ZnNfZGFoYXNoX3QJCWhhc2ggPSAwOwotIAlpbnQJCQlieWFkZHI7Ci1AQCAtMzU3LDcgKzM1Nyw3IEBAIHN0YXRpYyB2b2lkCi0gZGlyX2hhc2hfdXBkYXRlX2Z0eXBlKAotIAlkaXJfaGFzaF90YWJfdAkJKmhhc2h0YWIsCi0gCXhmc19kaXIyX2RhdGFwdHJfdAlhZGRyLAotLQlfX3VpbnQ4X3QJCWZ0eXBlKQotKwl1aW50OF90CQkJZnR5cGUpCi0gewotIAlpbnQJCQlpOwotIAlkaXJfaGFzaF9lbnRfdAkJKnA7Ci1AQCAtMTc5MSw4ICsxNzkxLDggQEAgbG9uZ2Zvcm1fZGlyMl9lbnRyeV9jaGVja19kYXRhKAotIAotIAkJLyogdmFsaWRhdGUgZnR5cGUgZmllbGQgaWYgc3VwcG9ydGVkICovCi0gCQlpZiAoeGZzX3NiX3ZlcnNpb25faGFzZnR5cGUoJm1wLT5tX3NiKSkgewotLQkJCV9fdWludDhfdCBkaXJfZnR5cGU7Ci0tCQkJX191aW50OF90IGlub19mdHlwZTsKLSsJCQl1aW50OF90IGRpcl9mdHlwZTsKLSsJCQl1aW50OF90IGlub19mdHlwZTsKLSAKLSAJCQlkaXJfZnR5cGUgPSBNX0RJUk9QUyhtcCktPmRhdGFfZ2V0X2Z0eXBlKGRlcCk7Ci0gCQkJaW5vX2Z0eXBlID0gZ2V0X2lub2RlX2Z0eXBlKGlyZWMsIGlub19vZmZzZXQpOwotQEAgLTI3MDMsOCArMjcwMyw4IEBAIF8oImVudHJ5IFwiJXNcIiAoaW5vICUiIFBSSXU2NCAiKSBpbiBkaXIgJSIgUFJJdTY0ICIgaXMgYSBkdXBsaWNhdGUgbmFtZSIpLAotIAotIAkJLyogdmFsaWRhdGUgZnR5cGUgZmllbGQgaWYgc3VwcG9ydGVkICovCi0gCQlpZiAoeGZzX3NiX3ZlcnNpb25faGFzZnR5cGUoJm1wLT5tX3NiKSkgewotLQkJCV9fdWludDhfdCBkaXJfZnR5cGU7Ci0tCQkJX191aW50OF90IGlub19mdHlwZTsKLSsJCQl1aW50OF90IGRpcl9mdHlwZTsKLSsJCQl1aW50OF90IGlub19mdHlwZTsKLSAKLSAJCQlkaXJfZnR5cGUgPSBNX0RJUk9QUyhtcCktPnNmX2dldF9mdHlwZShzZmVwKTsKLSAJCQlpbm9fZnR5cGUgPSBnZXRfaW5vZGVfZnR5cGUoaXJlYywgaW5vX29mZnNldCk7Ci1kaWZmIC0tZ2l0IGEvcmVwYWlyL3BoYXNlNy5jIGIvcmVwYWlyL3BoYXNlNy5jCi1pbmRleCA4YmNlMTE3ZC4uNGZmYjgxYTggMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvcGhhc2U3LmMKLSsrKyBiL3JlcGFpci9waGFzZTcuYwotQEAgLTMyLDcgKzMyLDcgQEAgc3RhdGljIHZvaWQKLSB1cGRhdGVfaW5vZGVfbmxpbmtzKAotIAl4ZnNfbW91bnRfdCAJCSptcCwKLSAJeGZzX2lub190CQlpbm8sCi0tCV9fdWludDMyX3QJCW5saW5rcykKLSsJdWludDMyX3QJCW5saW5rcykKLSB7Ci0gCXhmc190cmFuc190CQkqdHA7Ci0gCXhmc19pbm9kZV90CQkqaXA7Ci1AQCAtMTA0LDcgKzEwNCw3IEBAIGRvX2xpbmtfdXBkYXRlcygKLSB7Ci0gCWlub190cmVlX25vZGVfdAkJKmlyZWM7Ci0gCWludAkJCWo7Ci0tCV9fdWludDMyX3QJCW5yZWZzOwotKwl1aW50MzJfdAkJbnJlZnM7Ci0gCi0gCWZvciAoaXJlYyA9IGZpbmRmaXJzdF9pbm9kZV9yZWMoYWdubyk7IGlyZWM7Ci0gCSAgICAgaXJlYyA9IG5leHRfaW5vX3JlYyhpcmVjKSkgewotQEAgLTE0Myw3ICsxNDMsNyBAQCBwaGFzZTcoCi0gCWVsc2UKLSAJCWRvX2xvZyhfKCJQaGFzZSA3IC0gdmVyaWZ5IGxpbmsgY291bnRzLi4uXG4iKSk7Ci0gCi0tCXNldF9wcm9ncmVzc19tc2coUFJPR1JFU1NfRk1UX0NPUlJfTElOSywgKF9fdWludDY0X3QpIGdsb2JfYWdjb3VudCk7Ci0rCXNldF9wcm9ncmVzc19tc2coUFJPR1JFU1NfRk1UX0NPUlJfTElOSywgKHVpbnQ2NF90KSBnbG9iX2FnY291bnQpOwotIAotIAljcmVhdGVfd29ya19xdWV1ZSgmd3EsIG1wLCBzY2FuX3RocmVhZHMpOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9wcm9ncmVzcy5jIGIvcmVwYWlyL3Byb2dyZXNzLmMKLWluZGV4IDJhMDliMjM5Li45OWQyNjU4YyAxMDA2NDQKLS0tLSBhL3JlcGFpci9wcm9ncmVzcy5jCi0rKysgYi9yZXBhaXIvcHJvZ3Jlc3MuYwotQEAgLTg1LDggKzg1LDggQEAgcHRocmVhZF90CXJlcG9ydF90aHJlYWQ7Ci0gdHlwZWRlZiBzdHJ1Y3QgbXNnX2Jsb2NrX3MgewotIAlwdGhyZWFkX211dGV4X3QJbXV0ZXg7Ci0gCXByb2dyZXNzX3JwdF90CSpmb3JtYXQ7Ci0tCV9fdWludDY0X3QJKmRvbmU7Ci0tCV9fdWludDY0X3QJKnRvdGFsOwotKwl1aW50NjRfdAkqZG9uZTsKLSsJdWludDY0X3QJKnRvdGFsOwotIAlpbnQJCWNvdW50OwotIAlpbnQJCWludGVydmFsOwotIH0gbXNnX2Jsb2NrX3Q7Ci1AQCAtOTYsMTQgKzk2LDE0IEBAIHR5cGVkZWYgc3RydWN0IHBoYXNlX3RpbWVzX3MgewotIAl0aW1lX3QJCXN0YXJ0OwotIAl0aW1lX3QJCWVuZDsKLSAJdGltZV90CQlkdXJhdGlvbjsKLS0JX191aW50NjRfdAlpdGVtX2NvdW50c1s0XTsKLSsJdWludDY0X3QJaXRlbV9jb3VudHNbNF07Ci0gfSBwaGFzZV90aW1lc190OwotIHN0YXRpYyBwaGFzZV90aW1lc190IHBoYXNlX3RpbWVzWzhdOwotIAotIHN0YXRpYyB2b2lkICpwcm9ncmVzc19ycHRfdGhyZWFkKHZvaWQgKik7Ci0gc3RhdGljIGludCBjdXJyZW50X3BoYXNlOwotIHN0YXRpYyBpbnQgcnVubmluZzsKLS1zdGF0aWMgX191aW50NjRfdCBwcm9nX3JwdF90b3RhbDsKLStzdGF0aWMgdWludDY0X3QgcHJvZ19ycHRfdG90YWw7Ci0gCi0gdm9pZAotIGluaXRfcHJvZ3Jlc3NfcnB0ICh2b2lkKQotQEAgLTExMywxMSArMTEzLDExIEBAIGluaXRfcHJvZ3Jlc3NfcnB0ICh2b2lkKQotIAkgKiAgYWxsb2NhdGUgdGhlIGRvbmUgdmVjdG9yCi0gCSAqLwotIAotLQlpZiAoKHByb2dfcnB0X2RvbmUgPSAoX191aW50NjRfdCAqKQotLQkJbWFsbG9jKHNpemVvZihfX3VpbnQ2NF90KSpnbG9iX2FnY291bnQpKSA9PSBOVUxMICkgewotKwlpZiAoKHByb2dfcnB0X2RvbmUgPSAodWludDY0X3QgKikKLSsJCW1hbGxvYyhzaXplb2YodWludDY0X3QpKmdsb2JfYWdjb3VudCkpID09IE5VTEwpIHsKLSAJCWRvX2Vycm9yKF8oImNhbm5vdCBtYWxsb2MgcG9pbnRlciB0byBkb25lIHZlY3RvclxuIikpOwotIAl9Ci0tCWJ6ZXJvKHByb2dfcnB0X2RvbmUsIHNpemVvZihfX3VpbnQ2NF90KSpnbG9iX2FnY291bnQpOwotKwliemVybyhwcm9nX3JwdF9kb25lLCBzaXplb2YodWludDY0X3QpKmdsb2JfYWdjb3VudCk7Ci0gCi0gCS8qCi0gCSAqICBTZXR1cCBjb21tIGJsb2NrLCBzdGFydCB0aGUgdGhyZWFkCi1AQCAtMTY1LDEwICsxNjUsMTAgQEAgcHJvZ3Jlc3NfcnB0X3RocmVhZCAodm9pZCAqcCkKLSAJdGltZXJfdCB0aW1lcmlkOwotIAlzdHJ1Y3QgaXRpbWVyc3BlYyB0aW1lc3BlYzsKLSAJY2hhciAqbXNnYnVmOwotLQlfX3VpbnQ2NF90ICpkb25lcDsKLS0JX191aW50NjRfdCBzdW07Ci0rCXVpbnQ2NF90ICpkb25lcDsKLSsJdWludDY0X3Qgc3VtOwotIAltc2dfYmxvY2tfdCAqbXNncCA9IChtc2dfYmxvY2tfdCAqKXA7Ci0tCV9fdWludDY0X3QgcGVyY2VudDsKLSsJdWludDY0X3QgcGVyY2VudDsKLSAKLSAJLyogSXQncyBwb3NzaWJsZSB0byBnZXQgaGVyZSB2ZXJ5IGVhcmx5IHcvIG5vIHByb2dyZXNzIG1zZyBzZXQgKi8KLSAJaWYgKCFtc2dwLT5mb3JtYXQpCi1AQCAtMjg2LDcgKzI4Niw3IEBAIHByb2dyZXNzX3JwdF90aHJlYWQgKHZvaWQgKnApCi0gfQotIAotIGludAotLXNldF9wcm9ncmVzc19tc2cgKGludCByZXBvcnQsIF9fdWludDY0X3QgdG90YWwpCi0rc2V0X3Byb2dyZXNzX21zZyhpbnQgcmVwb3J0LCB1aW50NjRfdCB0b3RhbCkKLSB7Ci0gCi0gCWlmICghYWdfc3RyaWRlKQotQEAgLTMwMCw3ICszMDAsNyBAQCBzZXRfcHJvZ3Jlc3NfbXNnIChpbnQgcmVwb3J0LCBfX3VpbnQ2NF90IHRvdGFsKQotIAotIAkvKiByZXNldCBhbGwgdGhlIGFjY3VtdWxhdGl2ZSB0b3RhbHMgKi8KLSAJaWYgKHByb2dfcnB0X2RvbmUpCi0tCQliemVybyhwcm9nX3JwdF9kb25lLCBzaXplb2YoX191aW50NjRfdCkqZ2xvYl9hZ2NvdW50KTsKLSsJCWJ6ZXJvKHByb2dfcnB0X2RvbmUsIHNpemVvZih1aW50NjRfdCkqZ2xvYl9hZ2NvdW50KTsKLSAKLSAJaWYgKHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZnbG9iYWxfbXNncy5tdXRleCkpCi0gCQlkb19lcnJvcihfKCJzZXRfcHJvZ3Jlc3NfbXNnOiBjYW5ub3QgdW5sb2NrIHByb2dyZXNzIG11dGV4XG4iKSk7Ci1AQCAtMzA4LDE0ICszMDgsMTQgQEAgc2V0X3Byb2dyZXNzX21zZyAoaW50IHJlcG9ydCwgX191aW50NjRfdCB0b3RhbCkKLSAJcmV0dXJuICgwKTsKLSB9Ci0gCi0tX191aW50NjRfdAotK3VpbnQ2NF90Ci0gcHJpbnRfZmluYWxfcnB0KHZvaWQpCi0gewotIAlpbnQgaTsKLSAJc3RydWN0IHRtICp0bXA7Ci0gCXRpbWVfdCBub3c7Ci0tCV9fdWludDY0X3QgKmRvbmVwOwotLQlfX3VpbnQ2NF90IHN1bTsKLSsJdWludDY0X3QgKmRvbmVwOwotKwl1aW50NjRfdCBzdW07Ci0gCW1zZ19ibG9ja190IAkqbXNncCA9ICZnbG9iYWxfbXNnczsKLSAJY2hhcgkJbXNnYnVmW0RVUkFUSU9OX0JVRl9TSVpFXTsKLSAKLWRpZmYgLS1naXQgYS9yZXBhaXIvcHJvZ3Jlc3MuaCBiL3JlcGFpci9wcm9ncmVzcy5oCi1pbmRleCAzM2RiODM0NC4uNTE1MjY0ODMgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvcHJvZ3Jlc3MuaAotKysrIGIvcmVwYWlyL3Byb2dyZXNzLmgKLUBAIC0zMiw4ICszMiw4IEBACi0gZXh0ZXJuIHZvaWQgaW5pdF9wcm9ncmVzc19ycHQodm9pZCk7Ci0gZXh0ZXJuIHZvaWQgc3RvcF9wcm9ncmVzc19ycHQodm9pZCk7Ci0gZXh0ZXJuIHZvaWQgc3VtbWFyeV9yZXBvcnQodm9pZCk7Ci0tZXh0ZXJuIGludCAgc2V0X3Byb2dyZXNzX21zZyhpbnQgcmVwb3J0LCBfX3VpbnQ2NF90IHRvdGFsKTsKLS1leHRlcm4gX191aW50NjRfdCBwcmludF9maW5hbF9ycHQodm9pZCk7Ci0rZXh0ZXJuIGludCAgc2V0X3Byb2dyZXNzX21zZyhpbnQgcmVwb3J0LCB1aW50NjRfdCB0b3RhbCk7Ci0rZXh0ZXJuIHVpbnQ2NF90IHByaW50X2ZpbmFsX3JwdCh2b2lkKTsKLSBleHRlcm4gY2hhciAqdGltZXN0YW1wKGludCBlbmQsIGludCBwaGFzZSwgY2hhciAqYnVmKTsKLSBleHRlcm4gY2hhciAqZHVyYXRpb24oaW50IHZhbCwgY2hhciAqYnVmKTsKLSBleHRlcm4gaW50IGRvX3BhcmFsbGVsOwotZGlmZiAtLWdpdCBhL3JlcGFpci9ybWFwLmMgYi9yZXBhaXIvcm1hcC5jCi1pbmRleCBhYjZlNTgzOS4uMDFkNmYwZmMgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvcm1hcC5jCi0rKysgYi9yZXBhaXIvcm1hcC5jCi1AQCAtMzQzLDcgKzM0Myw3IEBAIGVycjoKLSAKLSBzdGF0aWMgaW50Ci0gZmluZF9maXJzdF96ZXJvX2JpdCgKLS0JX191aW50NjRfdAltYXNrKQotKwl1aW50NjRfdAltYXNrKQotIHsKLSAJaW50CQluOwotIAlpbnQJCWIgPSAwOwotQEAgLTM1Niw3ICszNTYsNyBAQCBmaW5kX2ZpcnN0X3plcm9fYml0KAotIAotIHN0YXRpYyBpbnQKLSBwb3BjbnQoCi0tCV9fdWludDY0X3QJbWFzaykKLSsJdWludDY0X3QJbWFzaykKLSB7Ci0gCWludAkJbjsKLSAJaW50CQliID0gMDsKLUBAIC0xMDY0LDE0ICsxMDY0LDE0IEBAIGVycjoKLSAgKiBDb21wYXJlIHRoZSBrZXkgZmllbGRzIG9mIHR3byBybWFwIHJlY29yZHMgLS0gcG9zaXRpdmUgaWYga2V5MSA+IGtleTIsCi0gICogbmVnYXRpdmUgaWYga2V5MSA8IGtleTIsIGFuZCB6ZXJvIGlmIGVxdWFsLgotICAqLwotLV9faW50NjRfdAotK2ludDY0X3QKLSBybWFwX2RpZmZrZXlzKAotIAlzdHJ1Y3QgeGZzX3JtYXBfaXJlYwkqa3AxLAotIAlzdHJ1Y3QgeGZzX3JtYXBfaXJlYwkqa3AyKQotIHsKLSAJX191NjQJCQlvYTsKLSAJX191NjQJCQlvYjsKLS0JX19pbnQ2NF90CQlkOwotKwlpbnQ2NF90CQkJZDsKLSAJc3RydWN0IHhmc19ybWFwX2lyZWMJdG1wOwotIAotIAl0bXAgPSAqa3AxOwotQEAgLTEwODEsNyArMTA4MSw3IEBAIHJtYXBfZGlmZmtleXMoCi0gCXRtcC5ybV9mbGFncyAmPSB+WEZTX1JNQVBfUkVDX0ZMQUdTOwotIAlvYiA9IGxpYnhmc19ybWFwX2lyZWNfb2Zmc2V0X3BhY2soJnRtcCk7Ci0gCi0tCWQgPSAoX19pbnQ2NF90KWtwMS0+cm1fc3RhcnRibG9jayAtIGtwMi0+cm1fc3RhcnRibG9jazsKLSsJZCA9IChpbnQ2NF90KWtwMS0+cm1fc3RhcnRibG9jayAtIGtwMi0+cm1fc3RhcnRibG9jazsKLSAJaWYgKGQpCi0gCQlyZXR1cm4gZDsKLSAKLUBAIC0xMTkyLDEwICsxMTkyLDEwIEBAIGZpeF9pbm9kZV9yZWZsaW5rX2ZsYWdzKAotIHsKLSAJc3RydWN0IGlub190cmVlX25vZGUJKmlyZWM7Ci0gCWludAkJCWJpdDsKLS0JX191aW50NjRfdAkJd2FzOwotLQlfX3VpbnQ2NF90CQlpczsKLS0JX191aW50NjRfdAkJZGlmZjsKLS0JX191aW50NjRfdAkJbWFzazsKLSsJdWludDY0X3QJCXdhczsKLSsJdWludDY0X3QJCWlzOwotKwl1aW50NjRfdAkJZGlmZjsKLSsJdWludDY0X3QJCW1hc2s7Ci0gCWludAkJCWVycm9yID0gMDsKLSAJeGZzX2FnaW5vX3QJCWFnaW5vOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9ybWFwLmggYi9yZXBhaXIvcm1hcC5oCi1pbmRleCA3NTJlY2U4Mi4uMTYxNmFiN2QgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvcm1hcC5oCi0rKysgYi9yZXBhaXIvcm1hcC5oCi1AQCAtNDQsNyArNDQsNyBAQCBleHRlcm4gaW50IHJtYXBfaW5pdF9jdXJzb3IoeGZzX2FnbnVtYmVyX3QsIHN0cnVjdCB4ZnNfc2xhYl9jdXJzb3IgKiopOwotIGV4dGVybiB2b2lkIHJtYXBfYXZvaWRfY2hlY2sodm9pZCk7Ci0gZXh0ZXJuIGludCBybWFwc192ZXJpZnlfYnRyZWUoc3RydWN0IHhmc19tb3VudCAqLCB4ZnNfYWdudW1iZXJfdCk7Ci0gCi0tZXh0ZXJuIF9faW50NjRfdCBybWFwX2RpZmZrZXlzKHN0cnVjdCB4ZnNfcm1hcF9pcmVjICprcDEsCi0rZXh0ZXJuIGludDY0X3Qgcm1hcF9kaWZma2V5cyhzdHJ1Y3QgeGZzX3JtYXBfaXJlYyAqa3AxLAotIAkJc3RydWN0IHhmc19ybWFwX2lyZWMgKmtwMik7Ci0gZXh0ZXJuIHZvaWQgcm1hcF9oaWdoX2tleV9mcm9tX3JlYyhzdHJ1Y3QgeGZzX3JtYXBfaXJlYyAqcmVjLAotIAkJc3RydWN0IHhmc19ybWFwX2lyZWMgKmtleSk7Ci1kaWZmIC0tZ2l0IGEvcmVwYWlyL3NiLmMgYi9yZXBhaXIvc2IuYwotaW5kZXggNzdlNTE1NDYuLmFjYzkyODM5IDEwMDY0NAotLS0tIGEvcmVwYWlyL3NiLmMKLSsrKyBiL3JlcGFpci9zYi5jCi1AQCAtNDAsNyArNDAsNyBAQCBjb3B5X3NiKHhmc19zYl90ICpzb3VyY2UsIHhmc19zYl90ICpkZXN0KQotIAl4ZnNfaW5vX3QJdXF1b3Rpbm87Ci0gCXhmc19pbm9fdAlncXVvdGlubzsKLSAJeGZzX2lub190CXBxdW90aW5vOwotLQlfX3VpbnQxNl90CXZlcnNpb25udW07Ci0rCXVpbnQxNl90CXZlcnNpb25udW07Ci0gCi0gCXJvb3Rpbm8gPSBkZXN0LT5zYl9yb290aW5vOwotIAlyYm1pbm8gPSBkZXN0LT5zYl9yYm1pbm87Ci1AQCAtMTA2LDggKzEwNiw4IEBAIHZlcmlmeV9zYl9ibG9ja3NpemUoeGZzX3NiX3QgKnNiKQotIHN0YXRpYyBpbnQKLSBfX2ZpbmRfc2Vjb25kYXJ5X3NiKAotIAl4ZnNfc2JfdAkqcnNiLAotLQlfX3VpbnQ2NF90CXN0YXJ0LAotLQlfX3VpbnQ2NF90CXNraXApCi0rCXVpbnQ2NF90CXN0YXJ0LAotKwl1aW50NjRfdAlza2lwKQotIHsKLSAJeGZzX29mZl90CW9mZjsKLSAJeGZzX3NiX3QJKnNiOwotQEAgLTE4NywxMyArMTg3LDEzIEBAIF9fZmluZF9zZWNvbmRhcnlfc2IoCi0gCi0gc3RhdGljIGludAotIGd1ZXNzX2RlZmF1bHRfZ2VvbWV0cnkoCi0tCV9fdWludDY0X3QJCSphZ3NpemUsCi0tCV9fdWludDY0X3QJCSphZ2NvdW50LAotKwl1aW50NjRfdAkJKmFnc2l6ZSwKLSsJdWludDY0X3QJCSphZ2NvdW50LAotIAlsaWJ4ZnNfaW5pdF90CQkqeCkKLSB7Ci0gCXN0cnVjdCBmc190b3BvbG9neQlmdDsKLSAJaW50CQkJYmxvY2tsb2c7Ci0tCV9fdWludDY0X3QJCWRibG9ja3M7Ci0rCXVpbnQ2NF90CQlkYmxvY2tzOwotIAlpbnQJCQltdWx0aWRpc2s7Ci0gCi0gCW1lbXNldCgmZnQsIDAsIHNpemVvZihmdCkpOwotQEAgLTIxNiw5ICsyMTYsOSBAQCBpbnQKLSBmaW5kX3NlY29uZGFyeV9zYih4ZnNfc2JfdCAqcnNiKQotIHsKLSAJaW50CQlyZXR2YWwgPSAwOwotLQlfX3VpbnQ2NF90CWFnY291bnQ7Ci0tCV9fdWludDY0X3QJYWdzaXplOwotLQlfX3VpbnQ2NF90CXNraXA7Ci0rCXVpbnQ2NF90CWFnY291bnQ7Ci0rCXVpbnQ2NF90CWFnc2l6ZTsKLSsJdWludDY0X3QJc2tpcDsKLSAJaW50CQlibG9ja2xvZzsKLSAKLSAJLyoKLUBAIC0yMjksNyArMjI5LDcgQEAgZmluZF9zZWNvbmRhcnlfc2IoeGZzX3NiX3QgKnJzYikKLSAJZG9fd2FybihfKCJcbmF0dGVtcHRpbmcgdG8gZmluZCBzZWNvbmRhcnkgc3VwZXJibG9jay4uLlxuIikpOwotIAotIAlpZiAodmVyaWZ5X3NiX2Jsb2Nrc2l6ZShyc2IpID09IDApIHsKLS0JCXNraXAgPSAoX191aW50NjRfdClyc2ItPnNiX2FnYmxvY2tzICogcnNiLT5zYl9ibG9ja3NpemU7Ci0rCQlza2lwID0gKHVpbnQ2NF90KXJzYi0+c2JfYWdibG9ja3MgKiByc2ItPnNiX2Jsb2Nrc2l6ZTsKLSAJCWlmIChza2lwID49IFhGU19BR19NSU5fQllURVMgJiYgc2tpcCA8PSBYRlNfQUdfTUFYX0JZVEVTKQotIAkJCXJldHZhbCA9IF9fZmluZF9zZWNvbmRhcnlfc2IocnNiLCBza2lwLCBza2lwKTsKLSAJfQotQEAgLTM0Myw3ICszNDMsNyBAQCBzYl92YWxpZGF0ZV9pbm9fYWxpZ24oc3RydWN0IHhmc19zYiAqc2IpCi0gaW50Ci0gdmVyaWZ5X3NiKGNoYXIgKnNiX2J1ZiwgeGZzX3NiX3QgKnNiLCBpbnQgaXNfcHJpbWFyeV9zYikKLSB7Ci0tCV9fdWludDMyX3QJYnNpemU7Ci0rCXVpbnQzMl90CWJzaXplOwotIAlpbnQJCWk7Ci0gCWludAkJcmV0OwotIAotQEAgLTM5OSw3ICszOTksNyBAQCB2ZXJpZnlfc2IoY2hhciAqc2JfYnVmLCB4ZnNfc2JfdCAqc2IsIGludCBpc19wcmltYXJ5X3NiKQotIAkJc2ItPnNiX2RibG9ja3MgPCBYRlNfTUlOX0RCTE9DS1Moc2IpKQotIAkJcmV0dXJuKFhSX0JBRF9GU19TSVpFX0RBVEEpOwotIAotLQlpZiAoc2ItPnNiX2FnYmxrbG9nICE9IChfX3VpbnQ4X3QpbGlieGZzX2xvZzJfcm91bmR1cChzYi0+c2JfYWdibG9ja3MpKQotKwlpZiAoc2ItPnNiX2FnYmxrbG9nICE9ICh1aW50OF90KWxpYnhmc19sb2cyX3JvdW5kdXAoc2ItPnNiX2FnYmxvY2tzKSkKLSAJCXJldHVybihYUl9CQURfRlNfU0laRV9EQVRBKTsKLSAKLSAJaWYgKHNiLT5zYl9pbm9kZXNpemUgPCBYRlNfRElOT0RFX01JTl9TSVpFICAgICAgICAgICAgICAgICAgICAgfHwKLWRpZmYgLS1naXQgYS9yZXBhaXIvc2Nhbi5jIGIvcmVwYWlyL3NjYW4uYwotaW5kZXggYjllZjRkYzMuLjQ0NzYxMWFjIDEwMDY0NAotLS0tIGEvcmVwYWlyL3NjYW4uYwotKysrIGIvcmVwYWlyL3NjYW4uYwotQEAgLTQyLDEzICs0MiwxMyBAQCBzdHJ1Y3QgYWdoZHJfY250cyB7Ci0gCXhmc19hZ251bWJlcl90CWFnbm87Ci0gCXhmc19leHRsZW5fdAlhZ2ZmcmVlYmxrczsKLSAJeGZzX2V4dGxlbl90CWFnZmxvbmdlc3Q7Ci0tCV9fdWludDY0X3QJYWdmYnRyZWVibGtzOwotLQlfX3VpbnQzMl90CWFnaWNvdW50OwotLQlfX3VpbnQzMl90CWFnaWZyZWVjb3VudDsKLS0JX191aW50NjRfdAlmZGJsb2NrczsKLS0JX191aW50NjRfdAl1c2VkYmxvY2tzOwotLQlfX3VpbnQ2NF90CWlmcmVlY291bnQ7Ci0tCV9fdWludDMyX3QJZmlidGZyZWVjb3VudDsKLSsJdWludDY0X3QJYWdmYnRyZWVibGtzOwotKwl1aW50MzJfdAlhZ2ljb3VudDsKLSsJdWludDMyX3QJYWdpZnJlZWNvdW50OwotKwl1aW50NjRfdAlmZGJsb2NrczsKLSsJdWludDY0X3QJdXNlZGJsb2NrczsKLSsJdWludDY0X3QJaWZyZWVjb3VudDsKLSsJdWludDMyX3QJZmlidGZyZWVjb3VudDsKLSB9OwotIAotIHZvaWQKLUBAIC03MCwxMCArNzAsMTAgQEAgc2Nhbl9zYnRyZWUoCi0gCQkJCXhmc19hZ251bWJlcl90CQlhZ25vLAotIAkJCQlpbnQJCQlzdXNwZWN0LAotIAkJCQlpbnQJCQlpc3Jvb3QsCi0tCQkJCV9fdWludDMyX3QJCW1hZ2ljLAotKwkJCQl1aW50MzJfdAkJbWFnaWMsCi0gCQkJCXZvaWQJCQkqcHJpdiksCi0gCWludAkJaXNyb290LAotLQlfX3VpbnQzMl90CW1hZ2ljLAotKwl1aW50MzJfdAltYWdpYywKLSAJdm9pZAkJKnByaXYsCi0gCWNvbnN0IHN0cnVjdCB4ZnNfYnVmX29wcyAqb3BzKQotIHsKLUBAIC0xMTAsMjMgKzExMCwyMyBAQCBzY2FuX2xidHJlZSgKLSAJCQkJeGZzX2ZzYmxvY2tfdAkJYm5vLAotIAkJCQl4ZnNfaW5vX3QJCWlubywKLSAJCQkJeGZzX3Jmc2Jsb2NrX3QJCSp0b3QsCi0tCQkJCV9fdWludDY0X3QJCSpuZXgsCi0rCQkJCXVpbnQ2NF90CQkqbmV4LAotIAkJCQlibGttYXBfdAkJKipibGttYXBwLAotIAkJCQlibWFwX2N1cnNvcl90CQkqYm1fY3Vyc29yLAotIAkJCQlpbnQJCQlpc3Jvb3QsCi0gCQkJCWludAkJCWNoZWNrX2R1cHMsCi0gCQkJCWludAkJCSpkaXJ0eSwKLS0JCQkJX191aW50NjRfdAkJbWFnaWMpLAotKwkJCQl1aW50NjRfdAkJbWFnaWMpLAotIAlpbnQJCXR5cGUsCi0gCWludAkJd2hpY2hmb3JrLAotIAl4ZnNfaW5vX3QJaW5vLAotIAl4ZnNfcmZzYmxvY2tfdAkqdG90LAotLQlfX3VpbnQ2NF90CSpuZXgsCi0rCXVpbnQ2NF90CSpuZXgsCi0gCWJsa21hcF90CSoqYmxrbWFwcCwKLSAJYm1hcF9jdXJzb3JfdAkqYm1fY3Vyc29yLAotIAlpbnQJCWlzcm9vdCwKLSAJaW50CQljaGVja19kdXBzLAotLQlfX3VpbnQ2NF90CW1hZ2ljLAotKwl1aW50NjRfdAltYWdpYywKLSAJY29uc3Qgc3RydWN0IHhmc19idWZfb3BzICpvcHMpCi0gewotIAl4ZnNfYnVmX3QJKmJwOwotQEAgLTE3OSwxMyArMTc5LDEzIEBAIHNjYW5fYm1hcGJ0KAotIAl4ZnNfZnNibG9ja190CQlibm8sCi0gCXhmc19pbm9fdAkJaW5vLAotIAl4ZnNfcmZzYmxvY2tfdAkJKnRvdCwKLS0JX191aW50NjRfdAkJKm5leCwKLSsJdWludDY0X3QJCSpuZXgsCi0gCWJsa21hcF90CQkqKmJsa21hcHAsCi0gCWJtYXBfY3Vyc29yX3QJCSpibV9jdXJzb3IsCi0gCWludAkJCWlzcm9vdCwKLSAJaW50CQkJY2hlY2tfZHVwcywKLSAJaW50CQkJKmRpcnR5LAotLQlfX3VpbnQ2NF90CQltYWdpYykKLSsJdWludDY0X3QJCW1hZ2ljKQotIHsKLSAJaW50CQkJaTsKLSAJaW50CQkJZXJyOwotQEAgLTU0OCw3ICs1NDgsNyBAQCBzY2FuX2FsbG9jYnQoCi0gCXhmc19hZ251bWJlcl90CQlhZ25vLAotIAlpbnQJCQlzdXNwZWN0LAotIAlpbnQJCQlpc3Jvb3QsCi0tCV9fdWludDMyX3QJCW1hZ2ljLAotKwl1aW50MzJfdAkJbWFnaWMsCi0gCXZvaWQJCQkqcHJpdikKLSB7Ci0gCXN0cnVjdCBhZ2hkcl9jbnRzCSphZ2NudHMgPSBwcml2OwotQEAgLTkzMCw3ICs5MzAsNyBAQCBzY2FuX3JtYXBidCgKLSAJeGZzX2FnbnVtYmVyX3QJCWFnbm8sCi0gCWludAkJCXN1c3BlY3QsCi0gCWludAkJCWlzcm9vdCwKLS0JX191aW50MzJfdAkJbWFnaWMsCi0rCXVpbnQzMl90CQltYWdpYywKLSAJdm9pZAkJCSpwcml2KQotIHsKLSAJY29uc3QgY2hhcgkJKm5hbWUgPSAicm1hcCI7Ci1AQCAtMTIzMyw3ICsxMjMzLDcgQEAgc2Nhbl9yZWZjYnQoCi0gCXhmc19hZ251bWJlcl90CQlhZ25vLAotIAlpbnQJCQlzdXNwZWN0LAotIAlpbnQJCQlpc3Jvb3QsCi0tCV9fdWludDMyX3QJCW1hZ2ljLAotKwl1aW50MzJfdAkJbWFnaWMsCi0gCXZvaWQJCQkqcHJpdikKLSB7Ci0gCWNvbnN0IGNoYXIJCSpuYW1lID0gInJlZmNvdW50IjsKLUBAIC0xOTM5LDcgKzE5MzksNyBAQCBzY2FuX2lub2J0KAotIAl4ZnNfYWdudW1iZXJfdAkJYWdubywKLSAJaW50CQkJc3VzcGVjdCwKLSAJaW50CQkJaXNyb290LAotLQlfX3VpbnQzMl90CQltYWdpYywKLSsJdWludDMyX3QJCW1hZ2ljLAotIAl2b2lkCQkJKnByaXYpCi0gewotIAlzdHJ1Y3QgYWdoZHJfY250cwkqYWdjbnRzID0gcHJpdjsKLUBAIC0yMTc2LDcgKzIxNzYsNyBAQCB2YWxpZGF0ZV9hZ2YoCi0gCXN0cnVjdCBhZ2hkcl9jbnRzCSphZ2NudHMpCi0gewotIAl4ZnNfYWdibG9ja190CQlibm87Ci0tCV9fdWludDMyX3QJCW1hZ2ljOwotKwl1aW50MzJfdAkJbWFnaWM7Ci0gCi0gCWJubyA9IGJlMzJfdG9fY3B1KGFnZi0+YWdmX3Jvb3RzW1hGU19CVE5VTV9CTk9dKTsKLSAJaWYgKGJubyAhPSAwICYmIHZlcmlmeV9hZ2JubyhtcCwgYWdubywgYm5vKSkgewotQEAgLTIyNzQsNyArMjI3NCw3IEBAIHZhbGlkYXRlX2FnaSgKLSB7Ci0gCXhmc19hZ2Jsb2NrX3QJCWJubzsKLSAJaW50CQkJaTsKLS0JX191aW50MzJfdAkJbWFnaWM7Ci0rCXVpbnQzMl90CQltYWdpYzsKLSAKLSAJYm5vID0gYmUzMl90b19jcHUoYWdpLT5hZ2lfcm9vdCk7Ci0gCWlmIChibm8gIT0gMCAmJiB2ZXJpZnlfYWdibm8obXAsIGFnbm8sIGJubykpIHsKLUBAIC0yNDk5LDEwICsyNDk5LDEwIEBAIHNjYW5fYWdzKAotIAlpbnQJCQlzY2FuX3RocmVhZHMpCi0gewotIAlzdHJ1Y3QgYWdoZHJfY250cyAqYWdjbnRzOwotLQlfX3VpbnQ2NF90CWZkYmxvY2tzID0gMDsKLS0JX191aW50NjRfdAlpY291bnQgPSAwOwotLQlfX3VpbnQ2NF90CWlmcmVlY291bnQgPSAwOwotLQlfX3VpbnQ2NF90CXVzZWRibG9ja3MgPSAwOwotKwl1aW50NjRfdAlmZGJsb2NrcyA9IDA7Ci0rCXVpbnQ2NF90CWljb3VudCA9IDA7Ci0rCXVpbnQ2NF90CWlmcmVlY291bnQgPSAwOwotKwl1aW50NjRfdAl1c2VkYmxvY2tzID0gMDsKLSAJeGZzX2FnbnVtYmVyX3QJaTsKLSAJd29ya19xdWV1ZV90CXdxOwotIAotZGlmZiAtLWdpdCBhL3JlcGFpci9zY2FuLmggYi9yZXBhaXIvc2Nhbi5oCi1pbmRleCBlYThjMGJmMi4uOWJiZTFlNjkgMTAwNjQ0Ci0tLS0gYS9yZXBhaXIvc2Nhbi5oCi0rKysgYi9yZXBhaXIvc2Nhbi5oCi1AQCAtMzAsMjMgKzMwLDIzIEBAIGludCBzY2FuX2xidHJlZSgKLSAJCQkJeGZzX2ZzYmxvY2tfdAkJYm5vLAotIAkJCQl4ZnNfaW5vX3QJCWlubywKLSAJCQkJeGZzX3Jmc2Jsb2NrX3QJCSp0b3QsCi0tCQkJCV9fdWludDY0X3QJCSpuZXgsCi0rCQkJCXVpbnQ2NF90CQkqbmV4LAotIAkJCQlzdHJ1Y3QgYmxrbWFwCQkqKmJsa21hcHAsCi0gCQkJCWJtYXBfY3Vyc29yX3QJCSpibV9jdXJzb3IsCi0gCQkJCWludAkJCWlzcm9vdCwKLSAJCQkJaW50CQkJY2hlY2tfZHVwcywKLSAJCQkJaW50CQkJKmRpcnR5LAotLQkJCQlfX3VpbnQ2NF90CQltYWdpYyksCi0rCQkJCXVpbnQ2NF90CQltYWdpYyksCi0gCWludAkJdHlwZSwKLSAJaW50CQl3aGljaGZvcmssCi0gCXhmc19pbm9fdAlpbm8sCi0gCXhmc19yZnNibG9ja190CSp0b3QsCi0tCV9fdWludDY0X3QJKm5leCwKLSsJdWludDY0X3QJKm5leCwKLSAJc3RydWN0IGJsa21hcAkqKmJsa21hcHAsCi0gCWJtYXBfY3Vyc29yX3QJKmJtX2N1cnNvciwKLSAJaW50CQlpc3Jvb3QsCi0gCWludAkJY2hlY2tfZHVwcywKLS0JX191aW50NjRfdAltYWdpYywKLSsJdWludDY0X3QJbWFnaWMsCi0gCWNvbnN0IHN0cnVjdCB4ZnNfYnVmX29wcyAqb3BzKTsKLSAKLSBpbnQgc2Nhbl9ibWFwYnQoCi1AQCAtNTcsMTMgKzU3LDEzIEBAIGludCBzY2FuX2JtYXBidCgKLSAJeGZzX2ZzYmxvY2tfdAkJYm5vLAotIAl4ZnNfaW5vX3QJCWlubywKLSAJeGZzX3Jmc2Jsb2NrX3QJCSp0b3QsCi0tCV9fdWludDY0X3QJCSpuZXgsCi0rCXVpbnQ2NF90CQkqbmV4LAotIAlzdHJ1Y3QgYmxrbWFwCQkqKmJsa21hcHAsCi0gCWJtYXBfY3Vyc29yX3QJCSpibV9jdXJzb3IsCi0gCWludAkJCWlzcm9vdCwKLSAJaW50CQkJY2hlY2tfZHVwcywKLSAJaW50CQkJKmRpcnR5LAotLQlfX3VpbnQ2NF90CQltYWdpYyk7Ci0rCXVpbnQ2NF90CQltYWdpYyk7Ci0gCi0gdm9pZAotIHNjYW5fYWdzKAotLS0gCi0yLjE0LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMvcmVtb3ZlX2ZsYWdzX2Zyb21fYnVpbGRfZmxhZ3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy9maWxlcy9yZW1vdmVfZmxhZ3NfZnJvbV9idWlsZF9mbGFncy5wYXRjaAppbmRleCBiYmE5YTI1Li5iZDJkMDI1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy9maWxlcy9yZW1vdmVfZmxhZ3NfZnJvbV9idWlsZF9mbGFncy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy9maWxlcy9yZW1vdmVfZmxhZ3NfZnJvbV9idWlsZF9mbGFncy5wYXRjaApAQCAtMSwxMyArMSwxMyBAQAotSW5kZXg6IHhmc3Byb2dzLTQuMTIuMC9pbmNsdWRlL2J1aWxkZGVmcy5pbgorSW5kZXg6IHhmc3Byb2dzLTQuMTQuMC9pbmNsdWRlL2J1aWxkZGVmcy5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHhmc3Byb2dzLTQuMTIuMC5vcmlnL2luY2x1ZGUvYnVpbGRkZWZzLmluCi0rKysgeGZzcHJvZ3MtNC4xMi4wL2luY2x1ZGUvYnVpbGRkZWZzLmluCi1AQCAtMTY0LDcgKzE2NCw3IEBAIGlmZXEgKCQoRU5BQkxFX0dFVFRFWFQpLHllcykKKy0tLSB4ZnNwcm9ncy00LjE0LjAub3JpZy9pbmNsdWRlL2J1aWxkZGVmcy5pbgorKysrIHhmc3Byb2dzLTQuMTQuMC9pbmNsdWRlL2J1aWxkZGVmcy5pbgorQEAgLTE2OCw3ICsxNjgsNyBAQCBpZmVxICgkKEVOQUJMRV9HRVRURVhUKSx5ZXMpCiAgR0NGTEFHUyArPSAtREVOQUJMRV9HRVRURVhUCiAgZW5kaWYKICAKIC1CVUlMRF9DRkxBR1MgKz0gJChHQ0ZMQUdTKSAkKFBDRkxBR1MpCiArQlVJTERfQ0ZMQUdTICs9ICQoR0NGTEFHUykKLSAjIEZpcnN0LCBHbG9iYWwsIFBsYXRmb3JtLCBMb2NhbCBDRkxBR1MKLSBDRkxBR1MgKz0gJChGQ0ZMQUdTKSAkKE9QVElNSVpFUikgJChHQ0ZMQUdTKSAkKFBDRkxBR1MpICQoTENGTEFHUykKKyAjIEZpcnN0LCBTYW5pdGl6ZXIsIEdsb2JhbCwgUGxhdGZvcm0sIExvY2FsIENGTEFHUworIENGTEFHUyArPSAkKEZDRkxBR1MpICQoU0FOSVRJWkVSX0NGTEFHUykgJChPUFRJTUlaRVIpICQoR0NGTEFHUykgJChQQ0ZMQUdTKSAkKExDRkxBR1MpCiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy9maWxlcy94ZnNwcm9ncy00LjEyLjAtZml4X211c2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy9maWxlcy94ZnNwcm9ncy00LjEyLjAtZml4X211c2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmYzU3ZTQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MvZmlsZXMveGZzcHJvZ3MtNC4xMi4wLWZpeF9tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTE3ICswLDAgQEAKLUZyb20gMjEyNTM2MTBmOWVmODdkYjhlMmE3NWI4NjNiN2ZjZmJkMGNkYjQyMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ICJEYXJyaWNrIEouIFdvbmciIDxkYXJyaWNrLndvbmdAb3JhY2xlLmNvbT4KLURhdGU6IFR1ZSwgMjUgSnVsIDIwMTcgMTM6NDU6MDEgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gSW4gcGF0Y2ggNDk0NGRlZmFkNCAoInhmc19kYjogcmVkaXJlY3QgcHJpbnRmcyB3aGVuCi0gbWV0YWR1bXBpbmcgdG8gc3Rkb3V0IiksIHdlIHNvbHZlZCB0aGUgcHJvYmxlbSBvZiB4ZnNfZGIgcHJpbnRmcyBlbmRpbmcgdXAgaW4KLSB0aGUgbWV0YWR1bXAgc3RyZWFtIGJ5IHJlYXNzaWduaW5nIHN0ZG91dCBmb3IgdGhlIGR1cmF0aW9uIG9mIGEgc3Rkb3V0Ci0gbWV0YWR1bXAuICBVbmZvcnR1bmF0ZWx5LCBtdXNsIGRvZXNuJ3QgYWxsb3cgc3Rkb3V0IHRvIGJlIHJlYXNzaWduZWQgKGluCi0gdGhlaXIgdmlldyAiZXh0ZXJuIEZJTEUgKnN0ZG91dCIgbWVhbnMgImV4dGVybiBGSUxFICogY29uc3Qgc3Rkb3V0IiksIHNvIHdlCi0gYWJhbmRvbiB0aGUgb2xkIGFwcHJvYWNoIGluIGZhdm9yIG9mIHBsYXlpbmcgZ2FtZXMgd2l0aCBkdXAoKSB0byBzd2l0Y2ggdGhlCi0gcmF3IGZpbGUgZGVzY3JpcHRvcnMuCi0KLVdoaWxlIHdlJ3JlIGF0IGl0LCBmaXggYSByZWdyZXNzaW9uIHdoZXJlIGFuIHVuY29udmVydGVkIG91dGYgdGVzdAotYWxsb3dzIHByb2dyZXNzIGluZm8gdG8gZW5kIHVwIGluIHRoZSBtZXRhZHVtcCBzdHJlYW0uCi0KLVNpZ25lZC1vZmYtYnk6IERhcnJpY2sgSi4gV29uZyA8ZGFycmljay53b25nQG9yYWNsZS5jb20+Ci0tLS0KLSBkYi9tZXRhZHVtcC5jIHwgNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kYi9tZXRhZHVtcC5jIGIvZGIvbWV0YWR1bXAuYwotaW5kZXggOTY2NDFlMC4uNGUyZjY0OCAxMDA2NDQKLS0tLSBhL2RiL21ldGFkdW1wLmMKLSsrKyBiL2RiL21ldGFkdW1wLmMKLUBAIC03OCw2ICs3OCw3IEBAIHN0YXRpYyBpbnQJCW9iZnVzY2F0ZSA9IDE7Ci0gc3RhdGljIGludAkJemVyb19zdGFsZV9kYXRhID0gMTsKLSBzdGF0aWMgaW50CQlzaG93X3dhcm5pbmdzID0gMDsKLSBzdGF0aWMgaW50CQlwcm9ncmVzc19zaW5jZV93YXJuaW5nID0gMDsKLStzdGF0aWMgYm9vbAkJc3Rkb3V0X21ldGFkdW1wOwotIAotIHZvaWQKLSBtZXRhZHVtcF9pbml0KHZvaWQpCi1AQCAtMTM3LDcgKzEzOCw3IEBAIHByaW50X3Byb2dyZXNzKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotIAl2YV9lbmQoYXApOwotIAlidWZbc2l6ZW9mKGJ1ZiktMV0gPSAnXDAnOwotIAotLQlmID0gKG91dGYgPT0gc3Rkb3V0KSA/IHN0ZGVyciA6IHN0ZG91dDsKLSsJZiA9IHN0ZG91dF9tZXRhZHVtcCA/IHN0ZGVyciA6IHN0ZG91dDsKLSAJZnByaW50ZihmLCAiXHIlLTU5cyIsIGJ1Zik7Ci0gCWZmbHVzaChmKTsKLSAJcHJvZ3Jlc3Nfc2luY2Vfd2FybmluZyA9IDE7Ci1AQCAtMjc1MCw3ICsyNzUxLDggQEAgbWV0YWR1bXBfZigKLSAJeGZzX2FnbnVtYmVyX3QJYWdubzsKLSAJaW50CQljOwotIAlpbnQJCXN0YXJ0X2lvY3VyX3NwOwotLQlib29sCQlzdGRvdXRfbWV0YWR1bXAgPSBmYWxzZTsKLSsJaW50CQlvdXRmZCA9IC0xOwotKwlpbnQJCXJldDsKLSAJY2hhcgkJKnA7Ci0gCi0gCWV4aXRjb2RlID0gMTsKLUBAIC0yODcwLDE2ICsyODcyLDM1IEBAIG1ldGFkdW1wX2YoCi0gCQkgKiBtZXRhZHVtcCBvcGVyYXRpb24gc28gdGhhdCBkYnByaW50ZiBhbmQgb3RoZXIgbWVzc2FnZXMKLSAJCSAqIGFyZSBzZW50IHRvIHRoZSBjb25zb2xlIGluc3RlYWQgb2YgcG9sbHV0aW5nIHRoZQotIAkJICogbWV0YWR1bXAgc3RyZWFtLgotKwkJICoKLSsJCSAqIFdlIGdldCB0byBkbyB0aGlzIHRoZSBoYXJkIHdheSBiZWNhdXNlIG11c2wgZG9lc24ndAotKwkJICogYWxsb3cgcmVhc3NpZ25tZW50IG9mIHN0ZG91dC4KLSAJCSAqLwotLQkJb3V0ZiA9IHN0ZG91dDsKLS0JCXN0ZG91dCA9IHN0ZGVycjsKLSsJCWZmbHVzaChzdGRvdXQpOwotKwkJb3V0ZmQgPSBkdXAoU1RET1VUX0ZJTEVOTyk7Ci0rCQlpZiAob3V0ZmQgPCAwKSB7Ci0rCQkJcGVycm9yKCJvcGVuaW5nIGR1bXAgc3RyZWFtIik7Ci0rCQkJZ290byBvdXQ7Ci0rCQl9Ci0rCQlyZXQgPSBkdXAyKFNUREVSUl9GSUxFTk8sIFNURE9VVF9GSUxFTk8pOwotKwkJaWYgKHJldCA8IDApIHsKLSsJCQlwZXJyb3IoInJlZGlyZWN0aW5nIHN0ZG91dCIpOwotKwkJCWNsb3NlKG91dGZkKTsKLSsJCQlnb3RvIG91dDsKLSsJCX0KLSsJCW91dGYgPSBmZG9wZW4ob3V0ZmQsICJhIik7Ci0rCQlpZiAob3V0ZiA9PSBOVUxMKSB7Ci0rCQkJZnByaW50ZihzdGRlcnIsICJjYW5ub3QgY3JlYXRlIGR1bXAgc3RyZWFtXG4iKTsKLSsJCQlkdXAyKG91dGZkLCAxKTsKLSsJCQljbG9zZShvdXRmZCk7Ci0rCQkJZ290byBvdXQ7Ci0rCQl9Ci0gCQlzdGRvdXRfbWV0YWR1bXAgPSB0cnVlOwotIAl9IGVsc2UgewotIAkJb3V0ZiA9IGZvcGVuKGFyZ3Zbb3B0aW5kXSwgIndiIik7Ci0gCQlpZiAob3V0ZiA9PSBOVUxMKSB7Ci0gCQkJcHJpbnRfd2FybmluZygiY2Fubm90IGNyZWF0ZSBkdW1wIGZpbGUiKTsKLS0JCQlmcmVlKG1ldGFibG9jayk7Ci0tCQkJcmV0dXJuIDA7Ci0rCQkJZ290byBvdXQ7Ci0gCQl9Ci0gCX0KLSAKLUBAIC0yOTA3LDE1ICsyOTI4LDE5IEBAIG1ldGFkdW1wX2YoCi0gCWlmIChwcm9ncmVzc19zaW5jZV93YXJuaW5nKQotIAkJZnB1dGMoJ1xuJywgc3Rkb3V0X21ldGFkdW1wID8gc3RkZXJyIDogc3Rkb3V0KTsKLSAKLS0JaWYgKHN0ZG91dF9tZXRhZHVtcCkKLS0JCXN0ZG91dCA9IG91dGY7Ci0tCWVsc2UKLS0JCWZjbG9zZShvdXRmKTsKLSsJaWYgKHN0ZG91dF9tZXRhZHVtcCkgewotKwkJZmZsdXNoKG91dGYpOwotKwkJZmZsdXNoKHN0ZG91dCk7Ci0rCQlyZXQgPSBkdXAyKG91dGZkLCBTVERPVVRfRklMRU5PKTsKLSsJCWlmIChyZXQgPCAwKQotKwkJCXBlcnJvcigidW4tcmVkaXJlY3Rpbmcgc3Rkb3V0Iik7Ci0rCX0KLSsJZmNsb3NlKG91dGYpOwotIAotIAkvKiBjbGVhbnVwIGlvY3VyIHN0YWNrICovCi0gCXdoaWxlIChpb2N1cl9zcCA+IHN0YXJ0X2lvY3VyX3NwKQotIAkJcG9wX2N1cigpOwotLQotK291dDoKLSAJZnJlZShtZXRhYmxvY2spOwotIAotIAlyZXR1cm4gMDsKLS0tIAotMi4xMy4zCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy94ZnNwcm9nc180LjEyLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy94ZnNwcm9nc180LjEyLjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3ODg2OTUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MveGZzcHJvZ3NfNC4xMi4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotU1VNTUFSWSA9ICJYRlMgRmlsZXN5c3RlbSBVdGlsaXRpZXMiCi1IT01FUEFHRSA9ICJodHRwOi8vb3NzLnNnaS5jb20vcHJvamVjdHMveGZzIgotU0VDVElPTiA9ICJiYXNlIgotTElDRU5TRSA9ICJHUEx2MiAmIExHUEx2Mi4xIgotTElDRU5TRV9saWJoYW5kbGUgPSAiTEdQTHYyLjEiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9kb2MvQ09QWUlORzttZDU9MTAyZjdmZWMzZDUzYzdjOGYwYjdiYWY5YmY5ZDc2YTgiCi1ERVBFTkRTID0gInV0aWwtbGludXggdXRpbC1saW51eC1uYXRpdmUiCi1TUkNfVVJJID0gImh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL2ZzL3hmcy94ZnNwcm9ncy8ke0JQfS50YXIueHogXAotICAgICAgICAgICBmaWxlOi8vMDAwMS14ZnNwcm9ncy1yZW1vdmUtZG91YmxlLXVuZGVyc2NvcmUtaW50ZWdlci10eXBlcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLXhmcy1yZW1vdmUtZG91YmxlLXVuZGVyc2NvcmUtaW50ZWdlci10eXBlcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9yZW1vdmVfZmxhZ3NfZnJvbV9idWlsZF9mbGFncy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly94ZnNwcm9ncy00LjEyLjAtZml4X211c2wucGF0Y2ggXAotICAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiZTM0OGIwZTFkN2JkMWNkODJkNjRiOTFmZjM3ZTcyN2UiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjMzMGFkOGQ3MzdmNDE1MmFlNTExNTgwMTAyZTJmYzQ5MjEyYmI1MWRmYjRiNjE0MDg0MzQ0YWJhZTQ2ZDBkZiIKLQotaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwCi0KLVBBQ0tBR0VTID0rICIke1BOfS1mc2NrICR7UE59LW1rZnMgJHtQTn0tcmVwYWlyIGxpYmhhbmRsZSIKLQotREVQRU5EUyArPSAidXRpbC1saW51eCIKLQotUkRFUEVORFNfJHtQTn0gPSAiJHtQTn0tZnNjayAke1BOfS1ta2ZzICR7UE59LXJlcGFpciIKLQotRklMRVNfJHtQTn0tZnNjayA9ICIke2Jhc2Vfc2JpbmRpcn0vZnNjay54ZnMiCi1GSUxFU18ke1BOfS1ta2ZzID0gIiR7YmFzZV9zYmluZGlyfS9ta2ZzLnhmcyIKLUZJTEVTXyR7UE59LXJlcGFpciA9ICIke2Jhc2Vfc2JpbmRpcn0veGZzX3JlcGFpciIKLQotRklMRVNfbGliaGFuZGxlID0gIiR7YmFzZV9saWJkaXJ9L2xpYmhhbmRsZSR7U09MSUJTfSIKLQotRVhUUkFfT0VDT05GID0gIi0tZW5hYmxlLWdldHRleHQ9bm8gXAotICAgICAgICAgICAgICAgIElOU1RBTExfVVNFUj1yb290IFwKLSAgICAgICAgICAgICAgICBJTlNUQUxMX0dST1VQPXJvb3QgXAotICAgICAgICAgICAgICAgIGFjX2N2X2hlYWRlcl9haW9faD15ZXMgXAotICAgICAgICAgICAgICAgIGFjX2N2X2xpYl9ydF9saW9fbGlzdGlvPXllcyBcCi0iCi0KLURJU0FCTEVfU1RBVElDID0gIiIKLUVYVFJBX0FVVE9SRUNPTkYgKz0gIi1JICR7U30vbTQgLS1leGNsdWRlPWF1dG9oZWFkZXIiCi0KLVBBQ0tBR0VDT05GSUcgPz89ICJyZWFkbGluZSBibGtpZCIKLQotUEFDS0FHRUNPTkZJR1tyZWFkbGluZV0gPSAiLS1lbmFibGUtcmVhZGxpbmU9eWVzLC0tZW5hYmxlLXJlYWRsaW5lPW5vLHJlYWRsaW5lIgotUEFDS0FHRUNPTkZJR1tibGtpZF0gPSAiLS1lbmFibGUtYmxraWQ9eWVzLC0tZW5hYmxlLWJsa2lkPW5vLHV0aWwtbGludXgiCi0KLWV4cG9ydCBERUJVRz0iLUROREVCVUciCi1leHBvcnQgQlVJTERfVkVSQk9TRT0iMSIKLWV4cG9ydCB0YWduYW1lPSJDQyIKLQotRVhUUkFfT0VNQUtFID0gIkRJU1RfUk9PVD0nJHtEfSciCi0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKLSAgICBleHBvcnQgQlVJTERfQ0M9IiR7QlVJTERfQ0N9ICR7QlVJTERfQ0ZMQUdTfSIKLSAgICAjIFByZXZlbnQgTWFrZWZpbGUgZnJvbSBjYWxsaW5nIGNvbmZpZ3VyZSB3aXRob3V0IGFyZ3VtZW50cywKLSAgICAjIHdoZW4gZG9fY29uZmlndXJlIGdldHMgY2FsbGVkIGZvciBhIHNlY29uZCB0aW1lLgotICAgIHJtIC1mICR7Qn0vaW5jbHVkZS9idWlsZGRlZnMgJHtCfS9pbmNsdWRlL3BsYXRmb3JtX2RlZnMuaCAke0J9L2NvbmZpZ3VyZQotICAgICMgUmVjcmVhdGUgY29uZmlndXJlIHNjcmlwdC4KLSAgICBvZV9ydW5tYWtlIGNvbmZpZ3VyZQotfQotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICAgICAgb2VfcnVubWFrZSAnREVTVERJUj0ke0R9JyBpbnN0YWxsLWRldgotICAgICAgICBybSAke0R9JHtsaWJkaXJ9LyoubGEKLSAgICAgICAgcm1kaXIgLS1pZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkgJHtEfSR7bGliZGlyfQotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MveGZzcHJvZ3NfNC4xNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWZpbGVzeXN0ZW1zL3JlY2lwZXMtdXRpbHMveGZzcHJvZ3MveGZzcHJvZ3NfNC4xNC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkNzZhZmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZmlsZXN5c3RlbXMvcmVjaXBlcy11dGlscy94ZnNwcm9ncy94ZnNwcm9nc180LjE0LjAuYmIKQEAgLTAsMCArMSw2MyBAQAorU1VNTUFSWSA9ICJYRlMgRmlsZXN5c3RlbSBVdGlsaXRpZXMiCitIT01FUEFHRSA9ICJodHRwOi8vb3NzLnNnaS5jb20vcHJvamVjdHMveGZzIgorU0VDVElPTiA9ICJiYXNlIgorTElDRU5TRSA9ICJHUEx2MiAmIExHUEx2Mi4xIgorTElDRU5TRV9saWJoYW5kbGUgPSAiTEdQTHYyLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9kb2MvQ09QWUlORzttZDU9MTAyZjdmZWMzZDUzYzdjOGYwYjdiYWY5YmY5ZDc2YTgiCitERVBFTkRTID0gInV0aWwtbGludXggdXRpbC1saW51eC1uYXRpdmUiCitTUkNfVVJJID0gImh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL2ZzL3hmcy94ZnNwcm9ncy8ke0JQfS50YXIueHogXAorICAgICAgICAgICBmaWxlOi8vcmVtb3ZlX2ZsYWdzX2Zyb21fYnVpbGRfZmxhZ3MucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1idWlsZC1DaGVjay1mb3Itc3luY19maWxlX3JhbmdlLWxpYmMtZnVuY3Rpb24ucGF0Y2ggXAorICAgICAgICAgICAiCitTUkNfVVJJW21kNXN1bV0gPSAiMmQ1MGUzNzUxY2M5OGU2YzkzNjRiYzNkMjI5N2I5ZmQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjFiNzEwYjI2OGJjOTVkNmY0NWVjYTA2ZTEyNjJjMjllYjM4ODY1YTE5Y2Q0NDA0ZTQ4YmE0NDZlMDQzYjdlYyIKKworaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwCisKK1BBQ0tBR0VTID0rICIke1BOfS1mc2NrICR7UE59LW1rZnMgJHtQTn0tcmVwYWlyIGxpYmhhbmRsZSIKKworREVQRU5EUyArPSAidXRpbC1saW51eCIKKworUkRFUEVORFNfJHtQTn0gPSAiJHtQTn0tZnNjayAke1BOfS1ta2ZzICR7UE59LXJlcGFpciIKKworRklMRVNfJHtQTn0tZnNjayA9ICIke2Jhc2Vfc2JpbmRpcn0vZnNjay54ZnMiCitGSUxFU18ke1BOfS1ta2ZzID0gIiR7YmFzZV9zYmluZGlyfS9ta2ZzLnhmcyIKK0ZJTEVTXyR7UE59LXJlcGFpciA9ICIke2Jhc2Vfc2JpbmRpcn0veGZzX3JlcGFpciIKKworRklMRVNfbGliaGFuZGxlID0gIiR7YmFzZV9saWJkaXJ9L2xpYmhhbmRsZSR7U09MSUJTfSIKKworRVhUUkFfT0VDT05GID0gIi0tZW5hYmxlLWdldHRleHQ9bm8gXAorICAgICAgICAgICAgICAgIElOU1RBTExfVVNFUj1yb290IFwKKyAgICAgICAgICAgICAgICBJTlNUQUxMX0dST1VQPXJvb3QgXAorICAgICAgICAgICAgICAgIGFjX2N2X2hlYWRlcl9haW9faD15ZXMgXAorICAgICAgICAgICAgICAgIGFjX2N2X2xpYl9ydF9saW9fbGlzdGlvPXllcyBcCisiCisKK0RJU0FCTEVfU1RBVElDID0gIiIKK0VYVFJBX0FVVE9SRUNPTkYgKz0gIi1JICR7U30vbTQgLS1leGNsdWRlPWF1dG9oZWFkZXIiCisKK1BBQ0tBR0VDT05GSUcgPz89ICJyZWFkbGluZSBibGtpZCIKKworUEFDS0FHRUNPTkZJR1tyZWFkbGluZV0gPSAiLS1lbmFibGUtcmVhZGxpbmU9eWVzLC0tZW5hYmxlLXJlYWRsaW5lPW5vLHJlYWRsaW5lIgorUEFDS0FHRUNPTkZJR1tibGtpZF0gPSAiLS1lbmFibGUtYmxraWQ9eWVzLC0tZW5hYmxlLWJsa2lkPW5vLHV0aWwtbGludXgiCisKK2V4cG9ydCBERUJVRz0iLUROREVCVUciCitleHBvcnQgQlVJTERfVkVSQk9TRT0iMSIKK2V4cG9ydCB0YWduYW1lPSJDQyIKKworRVhUUkFfT0VNQUtFID0gIkRJU1RfUk9PVD0nJHtEfSciCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKKyAgICBleHBvcnQgQlVJTERfQ0M9IiR7QlVJTERfQ0N9ICR7QlVJTERfQ0ZMQUdTfSIKKyAgICAjIFByZXZlbnQgTWFrZWZpbGUgZnJvbSBjYWxsaW5nIGNvbmZpZ3VyZSB3aXRob3V0IGFyZ3VtZW50cywKKyAgICAjIHdoZW4gZG9fY29uZmlndXJlIGdldHMgY2FsbGVkIGZvciBhIHNlY29uZCB0aW1lLgorICAgIHJtIC1mICR7Qn0vaW5jbHVkZS9idWlsZGRlZnMgJHtCfS9pbmNsdWRlL3BsYXRmb3JtX2RlZnMuaCAke0J9L2NvbmZpZ3VyZQorICAgICMgUmVjcmVhdGUgY29uZmlndXJlIHNjcmlwdC4KKyAgICBvZV9ydW5tYWtlIGNvbmZpZ3VyZQorfQorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICAgICAgb2VfcnVubWFrZSAnREVTVERJUj0ke0R9JyBpbnN0YWxsLWRldgorICAgICAgICBybSAke0R9JHtsaWJkaXJ9LyoubGEKKyAgICAgICAgcm1kaXIgLS1pZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkgJHtEfSR7bGliZGlyfQorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL1JFQURNRSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9SRUFETUUKaW5kZXggMjVlZjg1ZC4uMmE2ODJlNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL1JFQURNRQorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvUkVBRE1FCkBAIC0xLDE3ICsxLDM4IEBACittZXRhLWdub21lCis9PT09PT09PT09PQorCitUaGUgcmVjaXBlIGluIHRoaXMgbGF5ZXIgbmVlZHMgdG8gaGF2ZSAneDExJyBpbiBESVNUUk9fRkVBVFVSRVMgCit0byBoYXZlIGVmZmVjdC4gVG8gZW5hYmxlIHRoZW0sIGFkZCBpbiBjb25maWd1cmF0aW9uIGZpbGUgdGhlIGZvbGxvd2luZyBsaW5lLgorCisgIERJU1RST19GRUFUVVJFU19hcHBlbmQgPSAiIHgxMSIKKworSWYgbWV0YS1nbm9tZSBpcyBpbmNsdWRlZCwgYnV0IHgxMSBpcyBub3QgZW5hYmxlZCBhcyBhCitkaXN0cm8gZmVhdHVyZSBhIHdhcm5pbmcgaXMgcHJpbnRlZCBhdCBwYXJzZSB0aW1lOgorCisgICAgWW91IGhhdmUgaW5jbHVkZWQgdGhlIG1ldGEtZ25vbWUgbGF5ZXIsIGJ1dAorICAgICd4MTEnIGhhcyBub3QgYmVlbiBlbmFibGVkIGluIHlvdXIgRElTVFJPX0ZFQVRVUkVTLgorCitJZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcsIHRoaXMgd2FybmluZyBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyB0aGUgZm9sbG93aW5nCit2YXJpYWJsZSBpbiB5b3VyIGNvbmZpZ3VyYXRpb246CisKKyAgU0tJUF9NRVRBX0dOT01FX1NBTklUWV9DSEVDSyA9IDEKKworCitEZXBlbmRlbmNpZXMKKy0tLS0tLS0tLS0tLQogVGhpcyBsYXllciBkZXBlbmRzIG9uOgogCiBVUkk6IGdpdDovL2dpdGh1Yi5jb20vb3BlbmVtYmVkZGVkL29lLWNvcmUuZ2l0Ci1icmFuY2g6IHJvY2tvCiticmFuY2g6IG1hc3RlcgogcmV2aXNpb246IEhFQUQKIAogVVJJOiBnaXQ6Ly9naXRodWIuY29tL29wZW5lbWJlZGRlZC9tZXRhLW9lLmdpdAotYnJhbmNoOiByb2NrbworYnJhbmNoOiBtYXN0ZXIKIHJldmlzaW9uOiBIRUFECiAKLVNlbmQgcHVsbCByZXF1ZXN0cyB0byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyB3aXRoICdbbWV0YS1nbm9tZV1bcm9ja29dJyBpbiB0aGUgc3ViamVjdCcKK1NlbmQgcHVsbCByZXF1ZXN0cyB0byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyB3aXRoICdbbWV0YS1nbm9tZV0nIGluIHRoZSBzdWJqZWN0JwogCiBXaGVuIHNlbmRpbmcgc2luZ2xlIHBhdGNoZXMsIHBsZWFzZSB1c2luZyBzb21ldGhpbmcgbGlrZToKLSdnaXQgc2VuZC1lbWFpbCAtTSAtMSAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIC0tc3ViamVjdC1wcmVmaXg9bWV0YS1nbm9tZV1bcm9ja29dW1BBVENIJworJ2dpdCBzZW5kLWVtYWlsIC1NIC0xIC0tdG8gb3BlbmVtYmVkZGVkLWRldmVsQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcgLS1zdWJqZWN0LXByZWZpeD1tZXRhLWdub21lXVtQQVRDSCcKIAotcm9ja28gQnJhbmNoIE1haW50YWluZXI6Ci1Bcm1pbiBLdXN0ZXIgPGFrdXN0ZXI4MDhAZ21haWwuY29tPgorTGF5ZXIgbWFpbnRhaW5lcjogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL2NsYXNzZXMvc2FuaXR5LW1ldGEtZ25vbWUuYmJjbGFzcyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9jbGFzc2VzL3Nhbml0eS1tZXRhLWdub21lLmJiY2xhc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzMxZWExOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9jbGFzc2VzL3Nhbml0eS1tZXRhLWdub21lLmJiY2xhc3MKQEAgLTAsMCArMSwxMCBAQAorYWRkaGFuZGxlciBnbm9tZV9iYmFwcGVuZF9kaXN0cm9jaGVjaworZ25vbWVfYmJhcHBlbmRfZGlzdHJvY2hlY2tbZXZlbnRtYXNrXSA9ICJiYi5ldmVudC5TYW5pdHlDaGVjayIKK3B5dGhvbiBnbm9tZV9iYmFwcGVuZF9kaXN0cm9jaGVjaygpIHsKKyAgICBza2lwX2NoZWNrID0gZS5kYXRhLmdldFZhcignU0tJUF9NRVRBX0dOT01FX1NBTklUWV9DSEVDSycpID09ICIxIgorICAgIGlmICd4MTEnIG5vdCBpbiBlLmRhdGEuZ2V0VmFyKCdESVNUUk9fRkVBVFVSRVMnKS5zcGxpdCgpIGFuZCBub3Qgc2tpcF9jaGVjazoKKyAgICAgICAgYmIud2FybigiWW91IGhhdmUgaW5jbHVkZWQgdGhlIG1ldGEtZ25vbWUgbGF5ZXIsIGJ1dCBcCisneDExJyBoYXMgbm90IGJlZW4gZW5hYmxlZCBpbiB5b3VyIERJU1RST19GRUFUVVJFUy4gU29tZSBiYmFwcGVuZCBmaWxlcyBcCittYXkgbm90IHRha2UgZWZmZWN0LiBTZWUgdGhlIG1ldGEtZ25vbWUgUkVBRE1FIGZvciBkZXRhaWxzIG9uIGVuYWJsaW5nIFwKK21ldGEtZ25vbWUgc3VwcG9ydC4iKQorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL2NvbmYvbGF5ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9jb25mL2xheWVyLmNvbmYKaW5kZXggYTEzODgxOC4uZTZlOTUzMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL2NvbmYvbGF5ZXIuY29uZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvY29uZi9sYXllci5jb25mCkBAIC0xNCw0ICsxNCw4IEBACiAKIExBWUVSREVQRU5EU19nbm9tZS1sYXllciA9ICJjb3JlIG9wZW5lbWJlZGRlZC1sYXllciBuZXR3b3JraW5nLWxheWVyIgogCi1BVkFISV9HVEtfcG4tYXZhaGktdWkgPSAiZ3RrIGd0azMiCitMQVlFUlNFUklFU19DT01QQVRfZ25vbWUtbGF5ZXIgPSAic3VtbyIKKworIyBTYW5pdHkgY2hlY2sgZm9yIG1ldGEtZ25vbWUgbGF5ZXIuCisjIFNldHRpbmcgU0tJUF9NRVRBX0dOT01FX1NBTklUWV9DSEVDSyB0byAiMSIgd291bGQgc2tpcCB0aGUgYmJhcHBlbmQgZmlsZXMgY2hlY2suCitJTkhFUklUICs9ICJzYW5pdHktbWV0YS1nbm9tZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrLW1hbmFnZXItYXBwbGV0L25ldHdvcmstbWFuYWdlci1hcHBsZXRfMS40LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29yay1tYW5hZ2VyLWFwcGxldC9uZXR3b3JrLW1hbmFnZXItYXBwbGV0XzEuNC40LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNGIzMzZhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrLW1hbmFnZXItYXBwbGV0L25ldHdvcmstbWFuYWdlci1hcHBsZXRfMS40LjQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1TVU1NQVJZID0gIkdUSysgYXBwbGV0IGZvciBOZXR3b3JrTWFuYWdlciIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT01OTUzMGJkZjMzNjU5YjI5ZTczZDRhZGI5ZjlmNjU1MiIKLQotREVQRU5EUyA9ICJndGsrMyBsaWJub3RpZnkgbGlic2VjcmV0IG5ldHdvcmttYW5hZ2VyIGRidXMtZ2xpYiBcCi0gICAgICAgICAgIGdjb25mIGxpYmdub21lLWtleXJpbmcgaXNvLWNvZGVzIG5zcyBcCi0gICAgICAgICAgIGludGx0b29sLW5hdGl2ZSBcCi0iCi0KLWluaGVyaXQgZ25vbWViYXNlIGdzZXR0aW5ncyBndGstaWNvbi1jYWNoZSBnb2JqZWN0LWludHJvc3BlY3Rpb24KLQotR05PTUVfQ09NUFJFU1NfVFlQRSA9ICJ4eiIKLQotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiM2Y4MmNlZGM0NzAzZGYwMjc3Yzc2ZDlmZWI1YmYyYzgiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICI2OTM4NDZlZWFlMDk4NmU3OWViMWNlZGZiYzQ5OWYxMzJmMjdhOTk3NmVmMTg5YTBmMTY5MzhhYzU5ZWMzMjI2IgotCi1QQUNLQUdFQ09ORklHW21vZGVtbWFuYWdlcl0gPSAiLS13aXRoLXd3YW4sLS13aXRob3V0LXd3YW4sbW9kZW1tYW5hZ2VyIgotUEFDS0FHRUNPTkZJRyA/Pz0gIiIKLQotR0lfREFUQV9FTkFCTEVEX2xpYmMtbXVzbCA9ICJGYWxzZSIKLQotZG9fY29uZmlndXJlX2FwcGVuZCgpIHsKLSAgICAjIFNpZ2guLi4gLS1lbmFibGUtY29tcGlsZS13YXJuaW5ncz1ubyBkb2Vzbid0IGFjdHVhbGx5IHR1cm4gb2ZmIC1XZXJyb3IKLSAgICBmb3IgaSBpbiAkKGZpbmQgJHtCfSAtbmFtZSAiTWFrZWZpbGUiKSA7IGRvCi0gICAgICAgIHNlZCAtaSAtZSBzJS1XZXJyb3JbXls6c3BhY2U6XV0qJSVnICRpCi0gICAgZG9uZQotfQotCi1SREVQRU5EU18ke1BOfSA9KyAibmV0d29ya21hbmFnZXIiCi0KLUZJTEVTXyR7UE59ICs9ICIgXAotICAgICR7ZGF0YWRpcn0vYXBwZGF0YSBcCi0gICAgJHtkYXRhZGlyfS9ubS1hcHBsZXQvIFwKLSAgICAke2RhdGFkaXJ9L2xpYm5tLWd0ay93aWZpLnVpIFwKLSAgICAke2RhdGFkaXJ9L2xpYm5tYS93aWZpLnVpIFwKLSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrLW1hbmFnZXItYXBwbGV0L25ldHdvcmstbWFuYWdlci1hcHBsZXRfMS44LjEwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmstbWFuYWdlci1hcHBsZXQvbmV0d29yay1tYW5hZ2VyLWFwcGxldF8xLjguMTAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMyYjk2NAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrLW1hbmFnZXItYXBwbGV0L25ldHdvcmstbWFuYWdlci1hcHBsZXRfMS44LjEwLmJiCkBAIC0wLDAgKzEsNDUgQEAKK1NVTU1BUlkgPSAiR1RLKyBhcHBsZXQgZm9yIE5ldHdvcmtNYW5hZ2VyIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgorCitERVBFTkRTID0gImd0ayszIGxpYm5vdGlmeSBsaWJzZWNyZXQgbmV0d29ya21hbmFnZXIgZGJ1cy1nbGliIFwKKyAgICAgICAgICAgZ2NvbmYgbGliZ25vbWUta2V5cmluZyBpc28tY29kZXMgbnNzIFwKKyAgICAgICAgICAgaW50bHRvb2wtbmF0aXZlIFwKKyIKKworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgZ25vbWViYXNlIGdzZXR0aW5ncyBndGstaWNvbi1jYWNoZSBnb2JqZWN0LWludHJvc3BlY3Rpb24KKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiZWFlM2JlNzVlNzdmZjFhN2VhMzE3NGJlMjVlNjJkMDMiCitTUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICIwYWRjNGJmYWU4YjQ5ZjdhMWQ5MjljMjJlZjIwOTMzYmQ0MWZiNGE4YjQ1ODI4MGY0NGM2NWY5ZTQ1YjRjOWMzIgorCitQQUNLQUdFQ09ORklHW21vZGVtbWFuYWdlcl0gPSAiLS13aXRoLXd3YW4sLS13aXRob3V0LXd3YW4sbW9kZW1tYW5hZ2VyIgorUEFDS0FHRUNPTkZJRyA/Pz0gIiIKKworRVhUUkFfT0VDT05GID0gIiBcCisgICAgLS13aXRob3V0LXNlbGludXggXAorIgorCitkb19jb25maWd1cmVfYXBwZW5kKCkgeworICAgICMgU2lnaC4uLiAtLWVuYWJsZS1jb21waWxlLXdhcm5pbmdzPW5vIGRvZXNuJ3QgYWN0dWFsbHkgdHVybiBvZmYgLVdlcnJvcgorICAgIGZvciBpIGluICQoZmluZCAke0J9IC1uYW1lICJNYWtlZmlsZSIpIDsgZG8KKyAgICAgICAgc2VkIC1pIC1lIHMlLVdlcnJvclteWzpzcGFjZTpdXSolJWcgJGkKKyAgICBkb25lCit9CisKKyMgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHJlbGF0ZWQKK0dJX0RBVEFfRU5BQkxFRF9saWJjLW11c2wgPSAiRmFsc2UiCisKK2RvX2NvbXBpbGVfcHJlcGVuZCgpIHsKKyAgICBleHBvcnQgR0lSX0VYVFJBX0xJQlNfUEFUSD0iJHtCfS9zcmMvbGlibm1hLy5saWJzOiR7Qn0vc3JjL2xpYm5tLWd0ay8ubGlicyIKK30KKworUkRFUEVORFNfJHtQTn0gPSsgIm5ldHdvcmttYW5hZ2VyIgorCitGSUxFU18ke1BOfSArPSAiIFwKKyAgICAke2RhdGFkaXJ9L2FwcGRhdGEgXAorICAgICR7ZGF0YWRpcn0vbm0tYXBwbGV0LyBcCisgICAgJHtkYXRhZGlyfS9saWJubS1ndGsvd2lmaS51aSBcCisgICAgJHtkYXRhZGlyfS9saWJubWEvd2lmaS51aSBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleC9vYmV4ZC9zc2l6ZV90X2RlZmluaXRpb24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleC9vYmV4ZC9zc2l6ZV90X2RlZmluaXRpb24ucGF0Y2gKaW5kZXggMjAwOWRjZC4uNTcwY2I5ZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtY29ubmVjdGl2aXR5L29iZXgvb2JleGQvc3NpemVfdF9kZWZpbml0aW9uLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9vYmV4L29iZXhkL3NzaXplX3RfZGVmaW5pdGlvbi5wYXRjaApAQCAtMSw0ICsxLDcgQEAKLWluY2x1ZGUgdW5pc3RkLmggdG8gZ2V0IHNzaXplX3QgZGVmaW5pdGlvbnMKK0Zyb20gZmI1MDU2ZmVhOTU1OWIzZWMzYmI2MTk2N2ExMTJiNmM3OTNiNzAwZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDggSmFuIDIwMTMgMjE6MzM6MzQgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gaW5jbHVkZSB1bmlzdGQuaCB0byBnZXQgc3NpemVfdCBkZWZpbml0aW9ucwogCiBGaXhlcyBlcnJvcnMgbGlrZQogCkBAIC0xOCwxNSArMjEsMjAgQEAKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotSW5kZXg6IG9iZXhkLTAuNDQvcGx1Z2lucy9tYXMuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIG9iZXhkLTAuNDQub3JpZy9wbHVnaW5zL21hcy5jCTIwMTItMDEtMTEgMTQ6NTM6NTMuMDAwMDAwMDAwIC0wODAwCi0rKysgb2JleGQtMC40NC9wbHVnaW5zL21hcy5jCTIwMTMtMDEtMDggMTI6NTE6MTIuNjgxODgyMTc0IC0wODAwCi1AQCAtMjksNiArMjksNyBAQAorCistLS0KKyBwbHVnaW5zL21hcy5jIHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS9wbHVnaW5zL21hcy5jIGIvcGx1Z2lucy9tYXMuYworaW5kZXggMWIxODA1OS4uYjUxOTUwNyAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvbWFzLmMKKysrKyBiL3BsdWdpbnMvbWFzLmMKK0BAIC0zMCw2ICszMCw3IEBACiAgI2luY2x1ZGUgPGdsaWIuaD4KICAjaW5jbHVkZSA8ZmNudGwuaD4KICAjaW5jbHVkZSA8aW50dHlwZXMuaD4KICsjaW5jbHVkZSA8dW5pc3RkLmg+CiAgCi0gI2luY2x1ZGUgIm9iZXhkLmgiCi0gI2luY2x1ZGUgInBsdWdpbi5oIgorICNpbmNsdWRlIDxnb2JleC9nb2JleC5oPgorICNpbmNsdWRlIDxnb2JleC9nb2JleC1hcHBhcmFtLmg+CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZTMvMDAwMS1BZGQtR19HTlVDX1BSSU5URi1vbi1mdW5jdGlvbnMtd2l0aC1mb3JtYXQtc3RyaW5ncy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlMy8wMDAxLUFkZC1HX0dOVUNfUFJJTlRGLW9uLWZ1bmN0aW9ucy13aXRoLWZvcm1hdC1zdHJpbmdzLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZTMvMDAwMS1BZGQtR19HTlVDX1BSSU5URi1vbi1mdW5jdGlvbnMtd2l0aC1mb3JtYXQtc3RyaW5ncy5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzLzAwMDEtQWRkLUdfR05VQ19QUklOVEYtb24tZnVuY3Rpb25zLXdpdGgtZm9ybWF0LXN0cmluZ3MucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlMy8wMDAxLWdub21lLWRvYy11dGlscy5tYWtlLXN5c3Jvb3RlZC1wa2ctY29uZmlnLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzLzAwMDEtZ25vbWUtZG9jLXV0aWxzLm1ha2Utc3lzcm9vdGVkLXBrZy1jb25maWcucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlMy8wMDAxLWdub21lLWRvYy11dGlscy5tYWtlLXN5c3Jvb3RlZC1wa2ctY29uZmlnLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZTMvMDAwMS1nbm9tZS1kb2MtdXRpbHMubWFrZS1zeXNyb290ZWQtcGtnLWNvbmZpZy5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzLzAwMDItZml4LWdjYy02LWJ1aWxkLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzLzAwMDItZml4LWdjYy02LWJ1aWxkLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZTMvMDAwMi1maXgtZ2NjLTYtYnVpbGQucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlMy8wMDAyLWZpeC1nY2MtNi1idWlsZC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzXyUuYmJhcHBlbmQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZTNfJS5iYmFwcGVuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FiYWNmYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZTNfJS5iYmFwcGVuZAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVBBQ0tBR0VDT05GSUcgPz89ICJnbm9tZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlM18zLjguNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlM18zLjguNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2RhM2U5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzXzMuOC41LmJiCkBAIC0wLDAgKzEsMjMgQEAKK1NVTU1BUlkgPSAiR2xhZGUgLSBBIFVzZXIgSW50ZXJmYWNlIERlc2lnbmVyIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2duYXNoIgorTElDRU5TRSA9ICJHUEx2MiAmIExHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWFhYmU4NzU5MWNiOGFlMGYzYzY4YmU2OTc3YmI1NTIyIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuR1BMO21kNT05YWMyZTdjZmYxZGRhZjQ4YjZlYWI2MDI4ZjIzZWY4OCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkxHUEw7bWQ1PTI1Mjg5MGQ5ZWVlMjZhYWI3YjQzMmU4YjhhNjE2NDc1IgorREVQRU5EUyA9ICJndGsrIGdub21lLWRvYy11dGlscyBnbm9tZS1jb21tb24gbGlieG1sMiBpbnRsdG9vbC1uYXRpdmUiCisKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcgcHl0aG9ubmF0aXZlIGd0ay1pY29uLWNhY2hlCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK1NSQ19VUkkgPSAiaHR0cDovL2Z0cC5nbm9tZS5vcmcvcHViL0dOT01FL3NvdXJjZXMvZ2xhZGUzLzMuOC9nbGFkZTMtJHtQVn0udGFyLnh6IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtZ25vbWUtZG9jLXV0aWxzLm1ha2Utc3lzcm9vdGVkLXBrZy1jb25maWcucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMi1maXgtZ2NjLTYtYnVpbGQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1BZGQtR19HTlVDX1BSSU5URi1vbi1mdW5jdGlvbnMtd2l0aC1mb3JtYXQtc3RyaW5ncy5wYXRjaCBcCisgICAgICAgICAgICIKK1NSQ19VUklbbWQ1c3VtXSA9ICI0ZTRiNGY1ZWUzNGEwM2UwMTdlNGNlZjk3ZDc5NmMxZiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1OGE1ZjZlNGRmNDAyODIzMGRkZWNjNzRjNTY0ODA4YjdlYzQ0NzFiMTkyNTA1OGUyOTMwNGY3NzhiNmIyNzM1IgorCitFWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1zY3JvbGxrZWVwZXIiCisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2ljb25zIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZXh0ZW5kZWQvZ3BhcnRlZC9ncGFydGVkXzAuMjguMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWV4dGVuZGVkL2dwYXJ0ZWQvZ3BhcnRlZF8wLjI4LjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzYWI2ZjIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZXh0ZW5kZWQvZ3BhcnRlZC9ncGFydGVkXzAuMjguMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLVNVTU1BUlkgPSAiQSBwYXJ0aXRpb24gZWRpdG9yIHRvIGdyYXBoaWNhbGx5IG1hbmFnZSBkaXNrIHBhcnRpdGlvbnMgIgotSE9NRVBBR0UgPSAiaHR0cDovL2dwYXJ0ZWQub3JnL2luZGV4LnBocCIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGd0ay1pY29uLWNhY2hlCi0KLVNSQ19VUkkgPSAiIFwKLSAgICAke1NPVVJDRUZPUkdFX01JUlJPUn0vcHJvamVjdC8ke0JQTn0vJHtCUE59LyR7QlBOfS0ke1BWfS8ke0JQTn0tJHtQVn0udGFyLmd6IFwKLSAgICBmaWxlOi8vb3JnLnlvY3RvcHJvamVjdC5wa2V4ZWMucnVuLWdwYXJ0ZWQucG9saWN5IFwKLSAgICBmaWxlOi8vZ3BhcnRlZF9wb2xraXQgXAotIgotU1JDX1VSSVttZDVzdW1dID0gImFiNzI0NjRhM2FiMjEzNzY2NGQ5ZGY4NDYyYmVmZDNmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjc2ODkxZjE0Mzk0NzU0ZjdkNmVjY2ViYTJhZjBlNTg1YmY4OWY5ZDc4MGMzODlhMjU1ZGNkNDFhMmY0NWQzMzMiCi0KLURFUEVORFMgPSAiZ2xpYi0yLjAgZ2xpYi0yLjAtbmF0aXZlIGd0a21tIHBhcnRlZCBnbm9tZS1kb2MtdXRpbHMgaW50bHRvb2wtbmF0aXZlIgotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICAjIEFkZCBhIHNjcmlwdCB3aGljaCBjaGVja3MgaWYgcG9sa2l0IGlzIGluc3RhbGxlZC4KLSAgICAjIElmIHllczogYSBwb2xpY3kgaXMgcmVxdWVzdGVkIGZyb20gcG9sa2l0IC8gb3RoZXJ3aXNlIHN0YXJ0IGFzIHVzdWFsCi0gICAgaW5zdGFsbCAke1dPUktESVJ9L2dwYXJ0ZWRfcG9sa2l0ICR7RH0ke3NiaW5kaXJ9Ci0gICAgc2VkIC1pICdzOiVzYmluZGlyJToke3NiaW5kaXJ9OmcnICR7RH0ke3NiaW5kaXJ9L2dwYXJ0ZWRfcG9sa2l0Ci0gICAgIyByZWxpbmsgbWVudSBlbnRyeSB0byB1c2Ugb3VyIHNjcmlwdAotICAgIHNlZCAtaSAnczoke3NiaW5kaXJ9L2dwYXJ0ZWQ6JHtzYmluZGlyfS9ncGFydGVkX3BvbGtpdDpnJyAke0R9JHtkYXRhZGlyfS9hcHBsaWNhdGlvbnMvZ3BhcnRlZC5kZXNrdG9wCi0KLSAgICBpbnN0YWxsIC1kICR7RH0ke2RhdGFkaXJ9L3BvbGtpdC0xL2FjdGlvbnMKLSAgICBpbnN0YWxsICR7V09SS0RJUn0vb3JnLnlvY3RvcHJvamVjdC5wa2V4ZWMucnVuLWdwYXJ0ZWQucG9saWN5ICR7RH0ke2RhdGFkaXJ9L3BvbGtpdC0xL2FjdGlvbnMvb3JnLnlvY3RvcHJvamVjdC5wa2V4ZWMucnVuLWdwYXJ0ZWQucG9saWN5Ci19Ci0KLUVYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtc2Nyb2xsa2VlcGVyIC0tZGlzYWJsZS1kb2MiCi0KLUZJTEVTXyR7UE59ICs9ICIgXAotICAgICR7ZGF0YWRpcn0vYXBwZGF0YSBcCi0gICAgJHtkYXRhZGlyfS9pY29ucyBcCi0gICAgJHtkYXRhZGlyfS9wb2xraXQtMSBcCi0iCi0KLVJERVBFTkRTXyR7UE59ID0gImRvc2ZzdG9vbHMgbXRvb2xzIGUyZnNwcm9ncyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWV4dGVuZGVkL2dwYXJ0ZWQvZ3BhcnRlZF8wLjMxLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1leHRlbmRlZC9ncGFydGVkL2dwYXJ0ZWRfMC4zMS4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4YmVhZjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1leHRlbmRlZC9ncGFydGVkL2dwYXJ0ZWRfMC4zMS4wLmJiCkBAIC0wLDAgKzEsNDAgQEAKK1NVTU1BUlkgPSAiQSBwYXJ0aXRpb24gZWRpdG9yIHRvIGdyYXBoaWNhbGx5IG1hbmFnZSBkaXNrIHBhcnRpdGlvbnMgIgorSE9NRVBBR0UgPSAiaHR0cDovL2dwYXJ0ZWQub3JnL2luZGV4LnBocCIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiIKKworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBndGstaWNvbi1jYWNoZQorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJID0gIiBcCisgICAgJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3Byb2plY3QvJHtCUE59LyR7QlBOfS8ke0JQTn0tJHtQVn0vJHtCUE59LSR7UFZ9LnRhci5neiBcCisgICAgZmlsZTovL29yZy55b2N0b3Byb2plY3QucGtleGVjLnJ1bi1ncGFydGVkLnBvbGljeSBcCisgICAgZmlsZTovL2dwYXJ0ZWRfcG9sa2l0IFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJjNTU0Y2M1NzM0YzUwNDU5ZGQ1NTFiZDNmYTEwNzEwZSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzYjdiNDlhNDM0ZDllNGIzOTdiYzQxYTFmNWFjYWI4NTM5YjlmZjQwMmI0NzJkZmQ4M2FkNzdiMmRlY2QwN2JhIgorCitERVBFTkRTID0gImdsaWItMi4wIGdsaWItMi4wLW5hdGl2ZSBndGttbSBwYXJ0ZWQgZ25vbWUtZG9jLXV0aWxzIGludGx0b29sLW5hdGl2ZSIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgIyBBZGQgYSBzY3JpcHQgd2hpY2ggY2hlY2tzIGlmIHBvbGtpdCBpcyBpbnN0YWxsZWQuCisgICAgIyBJZiB5ZXM6IGEgcG9saWN5IGlzIHJlcXVlc3RlZCBmcm9tIHBvbGtpdCAvIG90aGVyd2lzZSBzdGFydCBhcyB1c3VhbAorICAgIGluc3RhbGwgJHtXT1JLRElSfS9ncGFydGVkX3BvbGtpdCAke0R9JHtzYmluZGlyfQorICAgIHNlZCAtaSAnczolc2JpbmRpciU6JHtzYmluZGlyfTpnJyAke0R9JHtzYmluZGlyfS9ncGFydGVkX3BvbGtpdAorICAgICMgcmVsaW5rIG1lbnUgZW50cnkgdG8gdXNlIG91ciBzY3JpcHQKKyAgICBzZWQgLWkgJ3M6JHtzYmluZGlyfS9ncGFydGVkOiR7c2JpbmRpcn0vZ3BhcnRlZF9wb2xraXQ6ZycgJHtEfSR7ZGF0YWRpcn0vYXBwbGljYXRpb25zL2dwYXJ0ZWQuZGVza3RvcAorCisgICAgaW5zdGFsbCAtZCAke0R9JHtkYXRhZGlyfS9wb2xraXQtMS9hY3Rpb25zCisgICAgaW5zdGFsbCAke1dPUktESVJ9L29yZy55b2N0b3Byb2plY3QucGtleGVjLnJ1bi1ncGFydGVkLnBvbGljeSAke0R9JHtkYXRhZGlyfS9wb2xraXQtMS9hY3Rpb25zL29yZy55b2N0b3Byb2plY3QucGtleGVjLnJ1bi1ncGFydGVkLnBvbGljeQorfQorCitFWFRSQV9PRUNPTkYgPSAiLS1kaXNhYmxlLXNjcm9sbGtlZXBlciAtLWRpc2FibGUtZG9jIgorCitGSUxFU18ke1BOfSArPSAiIFwKKyAgICAke2RhdGFkaXJ9L2FwcGRhdGEgXAorICAgICR7ZGF0YWRpcn0vaWNvbnMgXAorICAgICR7ZGF0YWRpcn0vcG9sa2l0LTEgXAorIgorCitSREVQRU5EU18ke1BOfSA9ICJkb3Nmc3Rvb2xzIG10b29scyBlMmZzcHJvZ3MiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9hYml3b3JkL2FiaXdvcmRfMy4wLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9hYml3b3JkL2FiaXdvcmRfMy4wLjIuYmIKaW5kZXggMmExM2U0OC4uZDJjMDE4NiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYWJpd29yZC9hYml3b3JkXzMuMC4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2FiaXdvcmQvYWJpd29yZF8zLjAuMi5iYgpAQCAtOCw3ICs4LDYgQEAKICAgICBndGsrIFwKICAgICBndGttYXRodmlldyBcCiAgICAgd3YgXAotICAgIGxpYmdsYWRlIFwKICAgICBsaWJmcmliaWRpIFwKICAgICBqcGVnIFwKICAgICBsaWJwbmcgXApAQCAtMzgsNyArMzcsOSBAQAogI3dhbnQgMy54IGZyb20gMy54LnkgZm9yIHRoZSBpbnN0YWxsYXRpb24gZGlyZWN0b3J5CiBTSFJUX1ZFUiA9ICIke0BkLmdldFZhcignUFYnKS5zcGxpdCgnLicpWzBdfS4ke0BkLmdldFZhcignUFYnKS5zcGxpdCgnLicpWzFdfSIKIAotaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIHBrZ2NvbmZpZworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogUEFDS0FHRUNPTkZJRyA/Pz0gIiBcCiAgICAgY29sbGFiLWJhY2tlbmQteG1wcCBjb2xsYWItYmFja2VuZC10Y3AgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2ZpbGVzLzAwMDEtYm9ub2JvLXVpLW5vZGUtcXVhbGlmeS1mdW5jdGlvbnMtd2l0aC1HX0dOVUNfUFJJTlRGLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2ZpbGVzLzAwMDEtYm9ub2JvLXVpLW5vZGUtcXVhbGlmeS1mdW5jdGlvbnMtd2l0aC1HX0dOVUNfUFJJTlRGLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOWFlYmI4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9maWxlcy8wMDAxLWJvbm9iby11aS1ub2RlLXF1YWxpZnktZnVuY3Rpb25zLXdpdGgtR19HTlVDX1BSSU5URi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLUZyb20gYjc1ODc5ZThjM2UyNGQzMzhjMGU1ODQzZDYxNmJjOWIwMmRhNGQwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBTYXQsIDI2IEF1ZyAyMDE3IDA5OjUyOjE3IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIGJvbm9iby11aS1ub2RlOiBxdWFsaWZ5IGZ1bmN0aW9ucyB3aXRoIEdfR05VQ19QUklOVEYKLQotVGhpcyBoZWxwcyBjb21waWxlciBpbiBkb2luZyBmb3JtYXQgY2hlY2tpbmcgY29ycmVjdGx5Ci1GaXhlcwotYm9ub2JvLXVpLW5vZGUuYzo4NjQ6Mzg6IGVycm9yOiBmb3JtYXQgc3RyaW5nIGlzIG5vdCBhIHN0cmluZyBsaXRlcmFsIFstV2Vycm9yLC1XZm9ybWF0LW5vbmxpdGVyYWxdCi18ICAgICAgICAgZ19sb2d2ICAgKCJYTUwiLCBHX0xPR19MRVZFTF9FUlJPUiwgbXNnLCBhcmdzKTsKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIGJvbm9iby9ib25vYm8tdWktbm9kZS5jIHwgNiArKystLS0KLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvYm9ub2JvL2Jvbm9iby11aS1ub2RlLmMgYi9ib25vYm8vYm9ub2JvLXVpLW5vZGUuYwotaW5kZXggOWJhYjVlNS4uNmVjNjZlMiAxMDA2NDQKLS0tLSBhL2Jvbm9iby9ib25vYm8tdWktbm9kZS5jCi0rKysgYi9ib25vYm8vYm9ub2JvLXVpLW5vZGUuYwotQEAgLTgzNSw3ICs4MzUsNyBAQCB1aUNoYXJhY3RlcnMgKFBhcnNlU3RhdGUgKnBzLCBjb25zdCB4bWxDaGFyICpjaGFycywgaW50IGxlbikKLSAJZ19zdHJpbmdfYXBwZW5kX2xlbiAocHMtPmNvbnRlbnQsIGNoYXJzLCBsZW4pOwotIH0KLSAKLS1zdGF0aWMgdm9pZAotK3N0YXRpYyBHX0dOVUNfUFJJTlRGKDIsIDMpIHZvaWQKLSB1aVdhcm5pbmcgKFBhcnNlU3RhdGUgKnBzLCBjb25zdCBjaGFyICptc2csIC4uLikKLSB7Ci0gCXZhX2xpc3QgYXJnczsKLUBAIC04NDUsNyArODQ1LDcgQEAgdWlXYXJuaW5nIChQYXJzZVN0YXRlICpwcywgY29uc3QgY2hhciAqbXNnLCAuLi4pCi0gCXZhX2VuZCAgIChhcmdzKTsKLSB9Ci0gCi0tc3RhdGljIHZvaWQKLStzdGF0aWMgR19HTlVDX1BSSU5URigyLCAzKSB2b2lkCi0gdWlFcnJvciAoUGFyc2VTdGF0ZSAqcHMsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQotIHsKLSAJdmFfbGlzdCBhcmdzOwotQEAgLTg1NSw3ICs4NTUsNyBAQCB1aUVycm9yIChQYXJzZVN0YXRlICpwcywgY29uc3QgY2hhciAqbXNnLCAuLi4pCi0gCXZhX2VuZCAgIChhcmdzKTsKLSB9Ci0gCi0tc3RhdGljIHZvaWQKLStzdGF0aWMgR19HTlVDX1BSSU5URigyLCAzKSB2b2lkCi0gdWlGYXRhbEVycm9yIChQYXJzZVN0YXRlICpwcywgY29uc3QgY2hhciAqbXNnLCAuLi4pCi0gewotIAl2YV9saXN0IGFyZ3M7Ci0tLSAKLTIuMTQuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vZmlsZXMvZ2NjNS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9maWxlcy9nY2M1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNzUyOGFkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9maWxlcy9nY2M1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotSW5kZXg6IGxpYmJvbm9ib3VpLTIuMjQuNS90b29scy9icm93c2VyL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbGliYm9ub2JvdWktMi4yNC41Lm9yaWcvdG9vbHMvYnJvd3Nlci9NYWtlZmlsZS5hbQotKysrIGxpYmJvbm9ib3VpLTIuMjQuNS90b29scy9icm93c2VyL01ha2VmaWxlLmFtCi1AQCAtMiw3ICsyLDYgQEAgSU5DTFVERVMgPQlcCi0gCS1EQk9OT0JPX0JST1dTRVJfREFUQURJUj1cIiIkKGRhdGFkaXIpIlwiCVwKLSAgICAgICAgIC1EQk9OT0JPX1NVUFBPUlRfTE9DQUxFRElSPVwiIiQoZGF0YWRpcikvbG9jYWxlIlwiICAgICAgICBcCi0gCS1JJChzcmNkaXIpIC1JJCh0b3Bfc3JjZGlyKSAJCQlcCi0tCS1JJCh0b3Bfc3JjZGlyKS9ib25vYm8tYnJvd3NlcgkJCVwKLSAJJChCT05PQk9VSV9DRkxBR1MpCQkJCVwKLSAJJChXQVJOX0NGTEFHUykKLSAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9maWxlcy9ndGstZG9jLm00IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2ZpbGVzL2d0ay1kb2MubTQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlYzQxNjYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2ZpbGVzL2d0ay1kb2MubTQKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi1kbmwgLSotIG1vZGU6IGF1dG9jb25mIC0qLQotCi0jIHNlcmlhbCAxCi0KLWRubCBVc2FnZToKLWRubCAgIEdUS19ET0NfQ0hFQ0soW21pbmltdW0tZ3RrLWRvYy12ZXJzaW9uXSkKLUFDX0RFRlVOKFtHVEtfRE9DX0NIRUNLXSwKLVsKLSAgQUNfQkVGT1JFKFtBQ19QUk9HX0xJQlRPT0xdLFskMF0pZG5sIHNldHVwIGxpYnRvb2wgZmlyc3QKLSAgQUNfQkVGT1JFKFtBTV9QUk9HX0xJQlRPT0xdLFskMF0pZG5sIHNldHVwIGxpYnRvb2wgZmlyc3QKLSAgZG5sIGZvciBvdmVycmlkaW5nIHRoZSBkb2N1bWVudGF0aW9uIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkKLSAgQUNfQVJHX1dJVEgoaHRtbC1kaXIsCi0gICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1odG1sLWRpcj1QQVRIXSwgW3BhdGggdG8gaW5zdGFsbGVkIGRvY3NdKSwsCi0gICAgW3dpdGhfaHRtbF9kaXI9JyR7ZGF0YWRpcn0vZ3RrLWRvYy9odG1sJ10pCi0gIEhUTUxfRElSPSIkd2l0aF9odG1sX2RpciIKLSAgQUNfU1VCU1QoSFRNTF9ESVIpCi0KLSAgZG5sIGVuYWJsZS9kaXNhYmxlIGRvY3VtZW50YXRpb24gYnVpbGRpbmcKLSAgQUNfQVJHX0VOQUJMRShndGstZG9jLAotICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1ndGstZG9jXSwKLSAgICAgICAgICAgICAgICAgICBbdXNlIGd0ay1kb2MgdG8gYnVpbGQgZG9jdW1lbnRhdGlvbiBbZGVmYXVsdD1ub11dKSwsCi0gICAgZW5hYmxlX2d0a19kb2M9bm8pCi0KLSAgaGF2ZV9ndGtfZG9jPW5vCi0gIGlmIHRlc3QgLXogIiRQS0dfQ09ORklHIjsgdGhlbgotICAgIEFDX1BBVEhfUFJPRyhQS0dfQ09ORklHLCBwa2ctY29uZmlnLCBubykKLSAgZmkKLSAgaWYgdGVzdCAiJFBLR19DT05GSUciICE9ICJubyIgJiYgJFBLR19DT05GSUcgLS1leGlzdHMgZ3RrLWRvYzsgdGhlbgotICAgIGhhdmVfZ3RrX2RvYz15ZXMKLSAgZmkKLQotICBkbmwgZG8gd2Ugd2FudCB0byBkbyBhIHZlcnNpb24gY2hlY2s/Ci1pZmVsc2UoWyQxXSxbXSwsCi0gIFtndGtfZG9jX21pbl92ZXJzaW9uPSQxCi0gIGlmIHRlc3QgIiRoYXZlX2d0a19kb2MiID0geWVzOyB0aGVuCi0gICAgQUNfTVNHX0NIRUNLSU5HKFtndGstZG9jIHZlcnNpb24gPj0gJGd0a19kb2NfbWluX3ZlcnNpb25dKQotICAgIGlmICRQS0dfQ09ORklHIC0tYXRsZWFzdC12ZXJzaW9uICRndGtfZG9jX21pbl92ZXJzaW9uIGd0ay1kb2M7IHRoZW4KLSAgICAgIEFDX01TR19SRVNVTFQoeWVzKQotICAgIGVsc2UKLSAgICAgIEFDX01TR19SRVNVTFQobm8pCi0gICAgICBoYXZlX2d0a19kb2M9bm8KLSAgICBmaQotICBmaQotXSkKLSAgaWYgdGVzdCB4JGVuYWJsZV9ndGtfZG9jID0geHllczsgdGhlbgotICAgIGlmIHRlc3QgIiRoYXZlX2d0a19kb2MiICE9IHllczsgdGhlbgotICAgICAgZW5hYmxlX2d0a19kb2M9bm8KLSAgICBmaQotICBmaQotCi0gIEFNX0NPTkRJVElPTkFMKEVOQUJMRV9HVEtfRE9DLCB0ZXN0IHgkZW5hYmxlX2d0a19kb2MgPSB4eWVzKQotICBBTV9DT05ESVRJT05BTChHVEtfRE9DX1VTRV9MSUJUT09MLCB0ZXN0IC1uICIkTElCVE9PTCIpCi1dKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2ZpbGVzL2d0ay1kb2MubWFrZSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9maWxlcy9ndGstZG9jLm1ha2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1NGZmYjcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2ZpbGVzL2d0ay1kb2MubWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDE3MyArMCwwIEBACi0jIC0qLSBtb2RlOiBtYWtlZmlsZSAtKi0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIEV2ZXJ5dGhpbmcgYmVsb3cgaGVyZSBpcyBnZW5lcmljICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1pZiBHVEtfRE9DX1VTRV9MSUJUT09MCi1HVEtET0NfQ0MgPSAkKExJQlRPT0wpIC0tbW9kZT1jb21waWxlICQoQ0MpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKLUdUS0RPQ19MRCA9ICQoTElCVE9PTCkgLS1tb2RlPWxpbmsgJChDQykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpICQoTERGTEFHUykKLWVsc2UKLUdUS0RPQ19DQyA9ICQoQ0MpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKLUdUS0RPQ19MRCA9ICQoQ0MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSAkKExERkxBR1MpCi1lbmRpZgotCi0jIFdlIHNldCBHUEFUSCBoZXJlOyB0aGlzIGdpdmVzIHVzIHNlbWFudGljcyBmb3IgR05VIG1ha2UKLSMgd2hpY2ggYXJlIG1vcmUgbGlrZSBvdGhlciBtYWtlJ3MgVlBBVEgsIHdoZW4gaXQgY29tZXMgdG8KLSMgd2hldGhlciBhIHNvdXJjZSB0aGF0IGlzIGEgdGFyZ2V0IG9mIG9uZSBydWxlIGlzIHRoZW4KLSMgc2VhcmNoZWQgZm9yIGluIFZQQVRIL0dQQVRILgotIwotR1BBVEggPSAkKHNyY2RpcikKLQotVEFSR0VUX0RJUj0kKEhUTUxfRElSKS8kKERPQ19NT0RVTEUpCi0KLUVYVFJBX0RJU1QgPSAJCQkJXAotCSQoY29udGVudF9maWxlcykJCVwKLQkkKEhUTUxfSU1BR0VTKQkJCVwKLQkkKERPQ19NQUlOX1NHTUxfRklMRSkJCVwKLQkkKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dAlcCi0JJChET0NfTU9EVUxFKS1vdmVycmlkZXMudHh0Ci0KLURPQ19TVEFNUFM9c2Nhbi1idWlsZC5zdGFtcCB0bXBsLWJ1aWxkLnN0YW1wIHNnbWwtYnVpbGQuc3RhbXAgaHRtbC1idWlsZC5zdGFtcCBcCi0JICAgJChzcmNkaXIpL3RtcGwuc3RhbXAgJChzcmNkaXIpL3NnbWwuc3RhbXAgJChzcmNkaXIpL2h0bWwuc3RhbXAKLQotU0NBTk9CSl9GSUxFUyA9IAkJIFwKLQkkKERPQ19NT0RVTEUpLmFyZ3MgCSBcCi0JJChET0NfTU9EVUxFKS5oaWVyYXJjaHkgIFwKLQkkKERPQ19NT0RVTEUpLmludGVyZmFjZXMgXAotCSQoRE9DX01PRFVMRSkucHJlcmVxdWlzaXRlcyBcCi0JJChET0NfTU9EVUxFKS5zaWduYWxzCi0KLVJFUE9SVF9GSUxFUyA9IFwKLQkkKERPQ19NT0RVTEUpLXVuZG9jdW1lbnRlZC50eHQgXAotCSQoRE9DX01PRFVMRSktdW5kZWNsYXJlZC50eHQgXAotCSQoRE9DX01PRFVMRSktdW51c2VkLnR4dAotCi1DTEVBTkZJTEVTID0gJChTQ0FOT0JKX0ZJTEVTKSAkKFJFUE9SVF9GSUxFUykgJChET0NfU1RBTVBTKQotCi1pZiBFTkFCTEVfR1RLX0RPQwotYWxsLWxvY2FsOiBodG1sLWJ1aWxkLnN0YW1wCi1lbHNlCi1hbGwtbG9jYWw6Ci1lbmRpZgotCi1kb2NzOiBodG1sLWJ1aWxkLnN0YW1wCi0KLSMjIyMgc2NhbiAjIyMjCi0KLXNjYW4tYnVpbGQuc3RhbXA6ICQoSEZJTEVfR0xPQikgJChDRklMRV9HTE9CKQotCUBlY2hvICdndGstZG9jOiBTY2FubmluZyBoZWFkZXIgZmlsZXMnCi0JQC1jaG1vZCAtUiB1K3cgJChzcmNkaXIpCi0JY2QgJChzcmNkaXIpICYmIFwKLQkgIGd0a2RvYy1zY2FuIC0tbW9kdWxlPSQoRE9DX01PRFVMRSkgLS1zb3VyY2UtZGlyPSQoRE9DX1NPVVJDRV9ESVIpIC0taWdub3JlLWhlYWRlcnM9IiQoSUdOT1JFX0hGSUxFUykiICQoU0NBTl9PUFRJT05TKSAkKEVYVFJBX0hGSUxFUykKLQlpZiBncmVwIC1sICdeLi4qJCQnICQoc3JjZGlyKS8kKERPQ19NT0RVTEUpLnR5cGVzID4gL2Rldi9udWxsIDI+JjEgOyB0aGVuIFwKLQkgICAgQ0M9IiQoR1RLRE9DX0NDKSIgTEQ9IiQoR1RLRE9DX0xEKSIgQ0ZMQUdTPSIkKEdUS0RPQ19DRkxBR1MpIiBMREZMQUdTPSIkKEdUS0RPQ19MSUJTKSIgZ3RrZG9jLXNjYW5nb2JqICQoU0NBTkdPQkpfT1BUSU9OUykgLS1tb2R1bGU9JChET0NfTU9EVUxFKSAtLW91dHB1dC1kaXI9JChzcmNkaXIpIDsgXAotCWVsc2UgXAotCSAgICBjZCAkKHNyY2RpcikgOyBcCi0JICAgIGZvciBpIGluICQoU0NBTk9CSl9GSUxFUykgOyBkbyBcCi0gICAgICAgICAgICAgICB0ZXN0IC1mICQkaSB8fCB0b3VjaCAkJGkgOyBcCi0JICAgIGRvbmUgXAotCWZpCi0JdG91Y2ggc2Nhbi1idWlsZC5zdGFtcAotCi0kKERPQ19NT0RVTEUpLWRlY2wudHh0ICQoU0NBTk9CSl9GSUxFUykgJChET0NfTU9EVUxFKS1zZWN0aW9ucy50eHQgJChET0NfTU9EVUxFKS1vdmVycmlkZXMudHh0OiBzY2FuLWJ1aWxkLnN0YW1wCi0JQHRydWUKLQotIyMjIyB0ZW1wbGF0ZXMgIyMjIwotCi10bXBsLWJ1aWxkLnN0YW1wOiAkKERPQ19NT0RVTEUpLWRlY2wudHh0ICQoU0NBTk9CSl9GSUxFUykgJChET0NfTU9EVUxFKS1zZWN0aW9ucy50eHQgJChET0NfTU9EVUxFKS1vdmVycmlkZXMudHh0Ci0JQGVjaG8gJ2d0ay1kb2M6IFJlYnVpbGRpbmcgdGVtcGxhdGUgZmlsZXMnCi0JQC1jaG1vZCAtUiB1K3cgJChzcmNkaXIpCi0JY2QgJChzcmNkaXIpICYmIGd0a2RvYy1ta3RtcGwgLS1tb2R1bGU9JChET0NfTU9EVUxFKSAkKE1LVE1QTF9PUFRJT05TKQotCXRvdWNoIHRtcGwtYnVpbGQuc3RhbXAKLQotdG1wbC5zdGFtcDogdG1wbC1idWlsZC5zdGFtcAotCUB0cnVlCi0KLXRtcGwvKi5zZ21sOgotCUB0cnVlCi0KLQotIyMjIyB4bWwgIyMjIwotCi1zZ21sLWJ1aWxkLnN0YW1wOiB0bXBsLnN0YW1wICQoSEZJTEVfR0xPQikgJChDRklMRV9HTE9CKSAkKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dCAkKHNyY2RpcikvdG1wbC8qLnNnbWwgJChleHBhbmRfY29udGVudF9maWxlcykKLQlAZWNobyAnZ3RrLWRvYzogQnVpbGRpbmcgWE1MJwotCUAtY2htb2QgLVIgdSt3ICQoc3JjZGlyKQotCWNkICQoc3JjZGlyKSAmJiBcCi0JZ3RrZG9jLW1rZGIgLS1tb2R1bGU9JChET0NfTU9EVUxFKSAtLXNvdXJjZS1kaXI9JChET0NfU09VUkNFX0RJUikgLS1vdXRwdXQtZm9ybWF0PXhtbCAtLWV4cGFuZC1jb250ZW50LWZpbGVzPSIkKGV4cGFuZF9jb250ZW50X2ZpbGVzKSIgLS1tYWluLXNnbWwtZmlsZT0kKERPQ19NQUlOX1NHTUxfRklMRSkgJChNS0RCX09QVElPTlMpCi0JdG91Y2ggc2dtbC1idWlsZC5zdGFtcAotCi1zZ21sLnN0YW1wOiBzZ21sLWJ1aWxkLnN0YW1wCi0JQHRydWUKLQotIyMjIyBodG1sICMjIyMKLQotaHRtbC1idWlsZC5zdGFtcDogc2dtbC5zdGFtcCAkKERPQ19NQUlOX1NHTUxfRklMRSkgJChjb250ZW50X2ZpbGVzKQotCUBlY2hvICdndGstZG9jOiBCdWlsZGluZyBIVE1MJwotCUAtY2htb2QgLVIgdSt3ICQoc3JjZGlyKQotCXJtIC1yZiAkKHNyY2RpcikvaHRtbAotCW1rZGlyICQoc3JjZGlyKS9odG1sCi0JY2QgJChzcmNkaXIpL2h0bWwgJiYgZ3RrZG9jLW1raHRtbCAkKERPQ19NT0RVTEUpIC4uLyQoRE9DX01BSU5fU0dNTF9GSUxFKQotCXRlc3QgIngkKEhUTUxfSU1BR0VTKSIgPSAieCIgfHwgKCBjZCAkKHNyY2RpcikgJiYgY3AgJChIVE1MX0lNQUdFUykgaHRtbCApCi0JQGVjaG8gJ2d0ay1kb2M6IEZpeGluZyBjcm9zcy1yZWZlcmVuY2VzJwotCWNkICQoc3JjZGlyKSAmJiBndGtkb2MtZml4eHJlZiAtLW1vZHVsZS1kaXI9aHRtbCAtLWh0bWwtZGlyPSQoSFRNTF9ESVIpICQoRklYWFJFRl9PUFRJT05TKQotCXRvdWNoIGh0bWwtYnVpbGQuc3RhbXAKLQotIyMjIyMjIyMjIyMjIyMKLQotY2xlYW4tbG9jYWw6Ci0Jcm0gLWYgKn4gKi5iYWsKLQlybSAtcmYgLmxpYnMKLQotZGlzdGNsZWFuLWxvY2FsOgotCWNkICQoc3JjZGlyKSAmJiBcCi0JICBybSAtcmYgeG1sICQoUkVQT1JUX0ZJTEVTKSBcCi0JICAgICAgICAgJChET0NfTU9EVUxFKS1kZWNsLWxpc3QudHh0ICQoRE9DX01PRFVMRSktZGVjbC50eHQKLQotbWFpbnRhaW5lci1jbGVhbi1sb2NhbDogY2xlYW4KLQljZCAkKHNyY2RpcikgJiYgcm0gLXJmIHhtbCBodG1sCi0KLWluc3RhbGwtZGF0YS1sb2NhbDoKLQktaW5zdGFsbGZpbGVzPWBlY2hvICQoc3JjZGlyKS9odG1sLypgOyBcCi0JaWYgdGVzdCAiJCRpbnN0YWxsZmlsZXMiID0gJyQoc3JjZGlyKS9odG1sLyonOyBcCi0JdGhlbiBlY2hvICctLSBOb3RoaW5nIHRvIGluc3RhbGwnIDsgXAotCWVsc2UgXAotCSAgJChta2luc3RhbGxkaXJzKSAkKERFU1RESVIpJChUQVJHRVRfRElSKTsgXAotCSAgZm9yIGkgaW4gJCRpbnN0YWxsZmlsZXM7IGRvIFwKLQkgICAgZWNobyAnLS0gSW5zdGFsbGluZyAnJCRpIDsgXAotCSAgICAkKElOU1RBTExfREFUQSkgJCRpICQoREVTVERJUikkKFRBUkdFVF9ESVIpOyBcCi0JICBkb25lOyBcCi0JICBlY2hvICctLSBJbnN0YWxsaW5nICQoc3JjZGlyKS9odG1sL2luZGV4LnNnbWwnIDsgXAotCSAgJChJTlNUQUxMX0RBVEEpICQoc3JjZGlyKS9odG1sL2luZGV4LnNnbWwgJChERVNURElSKSQoVEFSR0VUX0RJUikgfHwgOjsgXAotCSAgd2hpY2ggZ3RrZG9jLXJlYmFzZSA+L2Rldi9udWxsICYmIFwKLQkgICAgZ3RrZG9jLXJlYmFzZSAtLXJlbGF0aXZlIC0tZGVzdC1kaXI9JChERVNURElSKSAtLWh0bWwtZGlyPSQoREVTVERJUikkKFRBUkdFVF9ESVIpIDsgXAotCWZpCi0JCi0KLXVuaW5zdGFsbC1sb2NhbDoKLQlybSAtZiAkKERFU1RESVIpJChUQVJHRVRfRElSKS8qCi0KLSMKLSMgUmVxdWlyZSBndGstZG9jIHdoZW4gbWFraW5nIGRpc3QKLSMKLWlmIEVOQUJMRV9HVEtfRE9DCi1kaXN0LWNoZWNrLWd0a2RvYzoKLWVsc2UKLWRpc3QtY2hlY2stZ3RrZG9jOgotCUBlY2hvICIqKiogZ3RrLWRvYyBtdXN0IGJlIGluc3RhbGxlZCBhbmQgZW5hYmxlZCBpbiBvcmRlciB0byBtYWtlIGRpc3QiCi0JQGZhbHNlCi1lbmRpZgotCi1kaXN0LWhvb2s6IGRpc3QtY2hlY2stZ3RrZG9jIGRpc3QtaG9vay1sb2NhbAotCW1rZGlyICQoZGlzdGRpcikvdG1wbAotCW1rZGlyICQoZGlzdGRpcikveG1sCi0JbWtkaXIgJChkaXN0ZGlyKS9odG1sCi0JLWNwICQoc3JjZGlyKS90bXBsLyouc2dtbCAkKGRpc3RkaXIpL3RtcGwKLQktY3AgJChzcmNkaXIpL3htbC8qLnhtbCAkKGRpc3RkaXIpL3htbAotCWNwICQoc3JjZGlyKS9odG1sLyogJChkaXN0ZGlyKS9odG1sCi0JLWNwICQoc3JjZGlyKS8kKERPQ19NT0RVTEUpLnR5cGVzICQoZGlzdGRpcikvCi0JLWNwICQoc3JjZGlyKS8kKERPQ19NT0RVTEUpLXNlY3Rpb25zLnR4dCAkKGRpc3RkaXIpLwotCWNkICQoZGlzdGRpcikgJiYgcm0gLWYgJChESVNUQ0xFQU5GSUxFUykKLQktZ3RrZG9jLXJlYmFzZSAtLW9ubGluZSAtLXJlbGF0aXZlIC0taHRtbC1kaXI9JChkaXN0ZGlyKS9odG1sCi0KLS5QSE9OWSA6IGRpc3QtaG9vay1sb2NhbCBkb2NzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vbGliYm9ub2JvLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9saWJib25vYm8uaW5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDc1OWE4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9saWJib25vYm8uaW5jCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiQm9ub2JvIENPUkJBIGludGVyZmFjZXMgbGlicmFyeSIKLUxJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIuMSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuTElCO21kNT03ZmJjMzM4MzA5YWMzOGZlZmNkNjRiMDRiYjkwM2UzNCIKLVNFQ1RJT04gPSAieDExL2dub21lL2xpYnMiCi1ERVBFTkRTID0gImdub21lLWNvbW1vbi1uYXRpdmUgZ2xpYi0yLjAgb3JiaXQyLW5hdGl2ZSBvcmJpdDIgaW50bHRvb2wtbmF0aXZlIGxpYnhtbDIgZGJ1cyBkYnVzLWdsaWIiCi0KLWluaGVyaXQgZ25vbWViYXNlIGd0ay1kb2MgbGliX3BhY2thZ2UKLQotRVhUUkFfT0VDT05GICs9ICInUEVSTF9QQVRIPSR7VVNSQklOUEFUSH0vZW52IHBlcmwnIgotT1JCSVRfSURMX1NSQyA9ICIke1NUQUdJTkdfQklORElSX05BVElWRX0vb3JiaXQtaWRsLTIiCi0KLVJERVBFTkRTXyR7UE59LWJpbiA9ICIke1BOfSBwZXJsIgotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9vcmJpdC0yLjAvKi5zbyAke2xpYmRpcn0vYm9ub2JvL21vbmlrZXJzLyouc28iCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9ib25vYm8vbW9uaWtlcnMvLmRlYnVnIFwKLSAgICAke2xpYmRpcn0vYm9ub2JvLTIuMC9zYW1wbGVzLy5kZWJ1ZyAke2xpYmRpcn0vb3JiaXQtMi4wLy5kZWJ1ZyIKLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L29yYml0LTIuMC8qLmxhICR7bGliZGlyfS9ib25vYm8vbW9uaWtlcnMvKi5sYSAke2xpYmRpcn0vYm9ub2JvLTIuMC9zYW1wbGVzIgotRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIke2xpYmRpcn0vb3JiaXQtMi4wLyouYSAke2xpYmRpcn0vYm9ub2JvL21vbmlrZXJzLyouYSIKLQotTEVBRF9TT05BTUUgPSAibGliYm9ub2JvLTIuc28iCi0KLVBBUkFMTEVMX01BS0UgPSAiIgotCi1kb19jb21waWxlKCkgewotICAgIG9lX3J1bm1ha2UgT1JCSVRfSURMPSIke09SQklUX0lETF9TUkN9IgotfQotCi1kb19pbnN0YWxsKCkgewotICAgIG9lX3J1bm1ha2UgT1JCSVRfSURMPSIke09SQklUX0lETF9TUkN9IiBERVNURElSPSIke0R9IiBpbnN0YWxsCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vbGliYm9ub2JvLzAwMDEtUmVtb3ZlLXVzZS1vZi1HX0RJU0FCTEVfREVQUkVDQVRFRC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9saWJib25vYm8vMDAwMS1SZW1vdmUtdXNlLW9mLUdfRElTQUJMRV9ERVBSRUNBVEVELnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NGNmMWY5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9saWJib25vYm8vMDAwMS1SZW1vdmUtdXNlLW9mLUdfRElTQUJMRV9ERVBSRUNBVEVELnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotRnJvbSBmZWYxM2EzNzFmYzkxZjZkOWI0MjUxODEyNmMyYThiNDU5ZmRmMGU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQ29saW4gV2FsdGVycyA8d2FsdGVyc0B2ZXJidW0ub3JnPgotRGF0ZTogVGh1LCAyIE1heSAyMDEzIDE0OjE3OjM4IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIFJlbW92ZSB1c2Ugb2YgR19ESVNBQkxFX0RFUFJFQ0FURUQKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotVGhpcyBub3cgdHJpcHMgdXAgb24gR1N0YXRpY1JlY011dGV4OyBJJ20gbm90IGdvaW5nIHRvIGJvdGhlciB0byBwb3J0LAotcmVhbGlzdGljYWxseSBubyBvbmUgaXMgYWN0aXZlbHkgbWFpbnRhaW5pbmcgdGhpcyBjb2RlIGFueW1vcmUuCi0KLVVwc3RyZWFtLVN0YXR1czogQXBwbGllZAotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci0tLS0KLSBhY3RpdmF0aW9uLXNlcnZlci9NYWtlZmlsZS5hbSB8ICAgIDEgLQotIGNvbmZpZ3VyZS5pbiAgICAgICAgICAgICAgICAgIHwgICAgMiArLQotIDIgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvYWN0aXZhdGlvbi1zZXJ2ZXIvTWFrZWZpbGUuYW0gYi9hY3RpdmF0aW9uLXNlcnZlci9NYWtlZmlsZS5hbQotaW5kZXggZWZiMThhOC4uZmZhOTBmNiAxMDA2NDQKLS0tLSBhL2FjdGl2YXRpb24tc2VydmVyL01ha2VmaWxlLmFtCi0rKysgYi9hY3RpdmF0aW9uLXNlcnZlci9NYWtlZmlsZS5hbQotQEAgLTE3LDcgKzE3LDYgQEAgSU5DTFVERVM9CQkJCQlcCi0gCSQoU0VSVkVSX0NGTEFHUykJCQlcCi0gCSQoV0FSTl9DRkxBR1MpCQkJCVwKLSAJLURTRVJWRVJfQ09ORkRJUj1cIiQoc3lzY29uZmRpcilcIglcCi0tCS1ER19ESVNBQkxFX0RFUFJFQ0FURUQJCQlcCi0gCS1ER19MT0dfRE9NQUlOPVwiQm9ub2JvLUFjdGl2YXRpb24tU2VydmVyXCIgXAotIAkkKE5VTEwpCi0gCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCi1pbmRleCA3MGE0ZTI2Li42YmUyYmNhIDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmluCi0rKysgYi9jb25maWd1cmUuaW4KLUBAIC0xMzIsNyArMTMyLDcgQEAgQUNfU1VCU1QoU0VSVkVSX0xJQlMpCi0gQUNfU1VCU1QoU0VSVkVSX0NGTEFHUykKLSAKLSBpZiB0ZXN0ICIkZW5hYmxlX21haW50YWluZXJfbW9kZSIgPSAieWVzIjsgdGhlbgotLQlESVNBQkxFX0RFUFJFQ0FURURfQ0ZMQUdTPSItREdfRElTQUJMRV9ERVBSRUNBVEVEIC1ER19ESVNBQkxFX1NJTkdMRV9JTkNMVURFUyIKLSsJRElTQUJMRV9ERVBSRUNBVEVEX0NGTEFHUz0iLURHX0RJU0FCTEVfU0lOR0xFX0lOQ0xVREVTIgotIAlBQ19TVUJTVChESVNBQkxFX0RFUFJFQ0FURURfQ0ZMQUdTKQotIGZpCi0gCi0tLSAKLTEuNy42LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2xpYmJvbm9iby9kby1ub3QtdXNlLXNyY2Rpci12YXJpYWJsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9saWJib25vYm8vZG8tbm90LXVzZS1zcmNkaXItdmFyaWFibGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyMGVkZGEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2xpYmJvbm9iby9kby1ub3QtdXNlLXNyY2Rpci12YXJpYWJsZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLXwgdGVzdHMvTWFrZWZpbGUuYW06NTU6IGVycm9yOiB1c2luZyAnJChzcmNkaXIpJyBpbiBURVNUUyBpcyBjdXJyZW50bHkgYnJva2VuOiAnJChzcmNkaXIpL3RlCi1zdC1wcm9wZXJ0aWVzLnNoJwotfCB0ZXN0cy90ZXN0LWFjdGl2YXRpb24vTWFrZWZpbGUuYW06NzY6IHdhcm5pbmc6ICdJTkNMVURFUycgaXMgdGhlIG9sZCBuYW1lIGZvciAnQU1fQ1BQRkxBR1MKLScgKG9yICcqX0NQUEZMQUdTJykKLXwgdXRpbHMvTWFrZWZpbGUuYW06OTogd2FybmluZzogJ0lOQ0xVREVTJyBpcyB0aGUgb2xkIG5hbWUgZm9yICdBTV9DUFBGTEFHUycgKG9yICcqX0NQUEZMQUdTCi0nKQotfCBhdXRvcmVjb25mOiBhdXRvbWFrZSBmYWlsZWQgd2l0aCBleGl0IHN0YXR1czogMQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotVXBzdHJlYW0tU3RhdHVzOiBOb3QgU3VibWl0dGVkCi0KLUluZGV4OiBsaWJib25vYm8tMi4zMi4xL3Rlc3RzL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbGliYm9ub2JvLTIuMzIuMS5vcmlnL3Rlc3RzL01ha2VmaWxlLmFtCTIwMTAtMDgtMjkgMDQ6NTY6MDAuMDAwMDAwMDAwIC0wNzAwCi0rKysgbGliYm9ub2JvLTIuMzIuMS90ZXN0cy9NYWtlZmlsZS5hbQkyMDE0LTA0LTI1IDE1OjM4OjIyLjAyNDc0NDM4NCAtMDcwMAotQEAgLTU1LDcgKzU1LDcgQEAKLSAJTU9ERUxTX0RJUj0iJChzcmNkaXIpL21vZGVscyIKLSAKLSBURVNUUyA9IHRlc3QtbW9uaWtlciQoRVhFRVhUKSB0ZXN0LWV2ZW50LXNvdXJjZSQoRVhFRVhUKSB0ZXN0LW9iamVjdCQoRVhFRVhUKSBcCi0tCXRlc3Qtc3RyZWFtLW1lbSQoRVhFRVhUKSAkKHNyY2RpcikvdGVzdC1wcm9wZXJ0aWVzLnNoIHRlc3Qtc3RvcmFnZS1tZW0kKEVYRUVYVCkgXAotKwl0ZXN0LXN0cmVhbS1tZW0kKEVYRUVYVCkgdGVzdC1wcm9wZXJ0aWVzLnNoIHRlc3Qtc3RvcmFnZS1tZW0kKEVYRUVYVCkgXAotIAl0ZXN0LW1haW4tbG9vcCQoRVhFRVhUKQotIAotICMgVEVTVFMgKz0gdGVzdC1nZW5lcmljLWZhY3Rvcnkuc2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Jvbm9iby9saWJib25vYm8vZml4LW5vbmxpdGVyYWwtaW4tc3RyaW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2xpYmJvbm9iby9maXgtbm9ubGl0ZXJhbC1pbi1zdHJpbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwZGI2NzEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2xpYmJvbm9iby9maXgtbm9ubGl0ZXJhbC1pbi1zdHJpbmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1UaGlzIGNoZWNrcyB3aGV0aGVyIHRoZSBmb3JtYXQgc3RyaW5nIGlzIGEgbGl0ZXJhbCBvbiB0aGUgY2FsbGluZyBmdW5jdGlvbi4gQXMgYm9ub2JvX2RlYnVnX3ByaW50KCkKLXRha2VzIGFscmVhZHkgYSB2YV9saXN0LCB3ZSBzcGVjaWZ5IHRoZSBmb3JtYXQgb24gdGhlIGZ1bmN0aW9ucyB0aGF0IGNhbGwgaXQKLVRoZSBzZWNvbmQgbnVtYmVyLCB3aGljaCBpcyAwIGhlcmUsIHNob3VsZCB0aGVuIGJlIHRoZSBhcmd1bWVudCBpbmRleCBvZiB0aGUgdmFyaWFkaWMgYXJndW1lbnQKLQotRml4ZWQgd2FybmluZyB3aXRoIGNsYW5nCi0KLXwgLi4vLi4vbGliYm9ub2JvLTIuMzIuMS9ib25vYm8vYm9ub2JvLWRlYnVnLmM6NTg6MzI6IGVycm9yOiBmb3JtYXQgc3RyaW5nIGlzIG5vdCBhIHN0cmluZyBsaXRlcmFsIFstV2Vycm9yLC1XZm9ybWF0LW5vbmxpdGVyYWxdCi18ICAgICAgICAgdmZwcmludGYgKF9ib25vYm9fZGVidWdfZmlsZSwgZm10LCBhcmdzKTsKLXwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn4KLXwgMSBlcnJvciBnZW5lcmF0ZWQuCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLQotSW5kZXg6IGxpYmJvbm9iby0yLjMyLjEvYm9ub2JvL2Jvbm9iby1kZWJ1Zy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbGliYm9ub2JvLTIuMzIuMS5vcmlnL2Jvbm9iby9ib25vYm8tZGVidWcuYwotKysrIGxpYmJvbm9iby0yLjMyLjEvYm9ub2JvL2Jvbm9iby1kZWJ1Zy5jCi1AQCAtNDcsNiArNDcsNyBAQCBib25vYm9fZGVidWdfaW5pdCh2b2lkKQotIAkgIF9ib25vYm9fZGVidWdfZmlsZSA9IHN0ZGVycjsKLSB9Ci0gCi0rX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyAocHJpbnRmLCAyLCAwKSkpCi0gdm9pZAotIGJvbm9ib19kZWJ1Z19wcmludCAoY29uc3QgY2hhciAqbmFtZSwgY2hhciAqZm10LCAuLi4pCi0gewpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2xpYmJvbm9ib18yLjMyLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vbGliYm9ub2JvXzIuMzIuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGUwMGViNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vbGliYm9ub2JvXzIuMzIuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotcmVxdWlyZSBsaWJib25vYm8uaW5jCi0KLVNSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLVJlbW92ZS11c2Utb2YtR19ESVNBQkxFX0RFUFJFQ0FURUQucGF0Y2ggXAotICAgICAgICAgICAgZmlsZTovL2RvLW5vdC11c2Utc3JjZGlyLXZhcmlhYmxlLnBhdGNoIFwKLSAgICAgICAgICAgIGZpbGU6Ly9maXgtbm9ubGl0ZXJhbC1pbi1zdHJpbmcucGF0Y2ggXAotICAgICAgICAgICAiCi1TUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICIyN2ZhOTAyZDRmZGY2NzYyZWUwMTBlNzA1M2FhZjc3YiIKLVNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjkxNjBkNGYyNzc2NDY0MDBkM2JiNmI0ZmE3MzYzNmNjNmQxYTg2NWEzMmI5ZDA3NjBlMWU5ZTZlZTYyNDk3NmIiCi1HTk9NRV9DT01QUkVTU19UWVBFPSJiejIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vbGliYm9ub2JvdWlfMi4yNC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvYm9ub2JvL2xpYmJvbm9ib3VpXzIuMjQuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjNjYTBhNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ib25vYm8vbGliYm9ub2JvdWlfMi4yNC41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotU0VDVElPTiA9ICJ4MTEvZ25vbWUvbGlicyIKLUxJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIuMSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuTElCO21kNT03ZmJjMzM4MzA5YWMzOGZlZmNkNjRiMDRiYjkwM2UzNCIKLQotaW5oZXJpdCBnbm9tZWJhc2UgcGtnY29uZmlnIGd0ay1kb2MKLQotU1JDX1VSSSArPSAiZmlsZTovL2djYzUucGF0Y2ggXAotICAgICAgICAgICAgZmlsZTovLzAwMDEtYm9ub2JvLXVpLW5vZGUtcXVhbGlmeS1mdW5jdGlvbnMtd2l0aC1HX0dOVUNfUFJJTlRGLnBhdGNoIFwKLSAgICAgICAgICAgICIKLQotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiODUzYmU4ZTI4YWFhNGNlNDhiYTYwYmU3ZDkwNDZiZjQiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICJmYWI1ZjJhYzZjODQyZDk0OTg2MWMwN2NiNTIwYWZlNWJlZTNkY2U1NTgwNTE1MWNlOWNkMDFiZTBlYzQ2ZmNkIgotR05PTUVfQ09NUFJFU1NfVFlQRT0iYnoyIgotCi1ERVBFTkRTID0gImxpYmdub21lY2FudmFzIGxpYmJvbm9ibyBsaWJnbm9tZSBnbGliLTIuMCBnY29uZiBsaWJ4bWwyIGxpYmdsYWRlIGdub21lLWNvbW1vbiBpbnRsdG9vbC1uYXRpdmUiCi0KLUZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vbGliZ2xhZGUvMi4wLyouc28iCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9saWJnbGFkZS8yLjAvKi5sYSAke2RhdGFkaXJ9L2dub21lLTIuMC91aSBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ib25vYm8tMi4wL3NhbXBsZXMiCi1GSUxFU18ke1BOfS1zdGF0aWNkZXYgKz0gIiR7bGliZGlyfS9saWJnbGFkZS8yLjAvKi5hIgotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vYm9ub2JvLTIuMC9zYW1wbGVzLy5kZWJ1ZyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9saWJnbGFkZS8yLjAvLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZGV2aWxzcGllL2Rldmlsc3BpZTJfMC40Mi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Rldmlsc3BpZS9kZXZpbHNwaWUyXzAuNDIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlMmVjNWEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZGV2aWxzcGllL2Rldmlsc3BpZTJfMC40Mi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLURFU0NSSVBUSU9OID0gIkRldmlsc3BpZTIgaXMgYSB3aW5kb3cgbWF0Y2hpbmcgdXRpbGl0eSwgYWxsb3dpbmcgdGhlIHVzZXIgdG8gcGVyZm9ybSBzY3JpcHRlZCBhY3Rpb25zIG9uIHdpbmRvd3MgYXMgdGhleSBhcmUgY3JlYXRlZCIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ3VzbmFuLnNlL2Rldmlsc3BpZTIiCi1MSUNFTlNFID0gIkdQTHYzIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MDBhZWZhYTUwYWFkNzVjMjEzNjdkZjY2MTAyZDU0MmMgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vR1BMMy50eHQ7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgotCi1ERVBFTkRTID0gImd0aysgZ2xpYi0yLjAgbGlid25jayBsdWEgdmlydHVhbC9saWJ4MTEiCi0KLVNSQ19VUkkgPSAiIFwKLSAgICBodHRwOi8vZG93bmxvYWQuc2F2YW5uYWguZ251Lm9yZy9yZWxlYXNlcy8ke0JQTn0vJHtCUE59XyR7UFZ9LXNyYy50YXIuZ3ogXAotICAgIGZpbGU6Ly9kZWZhdWx0Lmx1YSBcCi0gICAgZmlsZTovL2Rldmlsc3BpZTIuZGVza3RvcCBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiZjIwNTQwOWU5MjFhYTJkODY0ODFmMWI4ZDUxOGRhNDUiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTFmNWJjMzEwZmJhNGRmNDA0YzA1NzQ2MWZmYjNmYWRhYzhlZjUxZDIxMTAwOGM2NjVjNDhmNTg3YTVhM2Y4NSIKLQotaW5oZXJpdCBwa2djb25maWcgZ2V0dGV4dAotCi1kb19jb21waWxlKCkgewotICAgIGV4cG9ydCBHVEsyPTEKLSAgICBvZV9ydW5tYWtlIENDPSIke0NDfSIgQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9IiBMREZMQUdTPSIgLWxkbCAtbG0gJHtMREZMQUdTfSIKLX0KLQotZG9faW5zdGFsbCgpIHsKLSAgICBvZV9ydW5tYWtlIERFU1RESVI9IiR7RH0iIFBSRUZJWD0iJHtwcmVmaXh9IiBpbnN0YWxsCi0gICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vZGV2aWxzcGllMgotICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vZGVmYXVsdC5sdWEgJHtEfS8ke3N5c2NvbmZkaXJ9L2Rldmlsc3BpZTIKLSAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS94ZGcvYXV0b3N0YXJ0Ci0gICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9kZXZpbHNwaWUyLmRlc2t0b3AgJHtEfS8ke3N5c2NvbmZkaXJ9L3hkZy9hdXRvc3RhcnQKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Rldmlsc3BpZS9kZXZpbHNwaWUyXzAuNDMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9kZXZpbHNwaWUvZGV2aWxzcGllMl8wLjQzLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlZjhlOGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9kZXZpbHNwaWUvZGV2aWxzcGllMl8wLjQzLmJiCkBAIC0wLDAgKzEsMzIgQEAKK0RFU0NSSVBUSU9OID0gIkRldmlsc3BpZTIgaXMgYSB3aW5kb3cgbWF0Y2hpbmcgdXRpbGl0eSwgYWxsb3dpbmcgdGhlIHVzZXIgdG8gcGVyZm9ybSBzY3JpcHRlZCBhY3Rpb25zIG9uIHdpbmRvd3MgYXMgdGhleSBhcmUgY3JlYXRlZCIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuZ3VzbmFuLnNlL2Rldmlsc3BpZTIiCitMSUNFTlNFID0gIkdQTHYzIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MDBhZWZhYTUwYWFkNzVjMjEzNjdkZjY2MTAyZDU0MmMgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vR1BMMy50eHQ7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgorCitERVBFTkRTID0gImd0aysgZ2xpYi0yLjAgbGlid25jayBsdWEgdmlydHVhbC9saWJ4MTEiCisKK1NSQ19VUkkgPSAiIFwKKyAgICBodHRwOi8vZG93bmxvYWQuc2F2YW5uYWguZ251Lm9yZy9yZWxlYXNlcy8ke0JQTn0vJHtCUE59XyR7UFZ9LXNyYy50YXIuZ3ogXAorICAgIGZpbGU6Ly9kZWZhdWx0Lmx1YSBcCisgICAgZmlsZTovL2Rldmlsc3BpZTIuZGVza3RvcCBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiMjZlZWQwYjViNGFmNWM3ZTEzYzU1MWVjZWFlYWI4MzIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZWNmZmMxN2M2MmI0MWUxOTZiNzIzNDAxOTJhOTBjNDIyMzMyOWRmMDQxZjEzNWU3NGMwOTkwODYwNTk1ZjgyOCIKKworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgcGtnY29uZmlnIGdldHRleHQKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworZG9fY29tcGlsZSgpIHsKKyAgICBleHBvcnQgR1RLMj0xCisgICAgb2VfcnVubWFrZSBDQz0iJHtDQ30iIENQUEZMQUdTPSIke0NQUEZMQUdTfSIgTERGTEFHUz0iIC1sZGwgLWxtICR7TERGTEFHU30iCit9CisKK2RvX2luc3RhbGwoKSB7CisgICAgb2VfcnVubWFrZSBERVNURElSPSIke0R9IiBQUkVGSVg9IiR7cHJlZml4fSIgaW5zdGFsbAorICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2Rldmlsc3BpZTIKKyAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L2RlZmF1bHQubHVhICR7RH0vJHtzeXNjb25mZGlyfS9kZXZpbHNwaWUyCisgICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0veGRnL2F1dG9zdGFydAorICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vZGV2aWxzcGllMi5kZXNrdG9wICR7RH0vJHtzeXNjb25mZGlyfS94ZGcvYXV0b3N0YXJ0Cit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9kZXZpbHNwaWUvZmlsZXMvZGV2aWxzcGllMi5kZXNrdG9wIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZGV2aWxzcGllL2ZpbGVzL2Rldmlsc3BpZTIuZGVza3RvcAppbmRleCBlMzRlODgxLi5iODA5MDRhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9kZXZpbHNwaWUvZmlsZXMvZGV2aWxzcGllMi5kZXNrdG9wCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Rldmlsc3BpZS9maWxlcy9kZXZpbHNwaWUyLmRlc2t0b3AKQEAgLTEsNSArMSw2IEBACiBbRGVza3RvcCBFbnRyeV0KIFR5cGU9QXBwbGljYXRpb24KIE5hbWU9RGV2aWxzcGllMgorQ29tbWVudD1QZXJmb3JtIHNjcmlwdGVkIGFjdGlvbnMgb24gd2luZG93cyBhcyB0aGV5IGFyZSBjcmVhdGVkCiBFeGVjPWRldmlsc3BpZTIgLWYgL2V0Yy9kZXZpbHNwaWUyCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwMS1DTWFrZUxpc3RzLnR4dC1SZW1vdmUtVFJZX1JVTi1mb3ItaWNvbnYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDEtQ01ha2VMaXN0cy50eHQtUmVtb3ZlLVRSWV9SVU4tZm9yLWljb252LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4MjFhMTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDEtQ01ha2VMaXN0cy50eHQtUmVtb3ZlLVRSWV9SVU4tZm9yLWljb252LnBhdGNoCkBAIC0wLDAgKzEsMzkgQEAKK0Zyb20gMTMxYjg4YTgxYWJhM2Q3MmQ1NjZiYzhhOWQ5Njg5NDFhOThlMDAwNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDE5IERlYyAyMDE3IDE2OjM3OjIwICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIENNYWtlTGlzdHMudHh0OiBSZW1vdmUgVFJZX1JVTiBmb3IgaWNvbnYKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworfCBDTWFrZSBFcnJvcjogVFJZX1JVTigpIGludm9rZWQgaW4gY3Jvc3MtY29tcGlsaW5nIG1vZGUsIHBsZWFzZSBzZXQgdGhlIGZvbGxvd2luZyBjYWNoZSB2YXJpYWJsZXMgYXBwcm9wcmlhdGVseToKK3wgICAgX2NvcnJlY3RfaWNvbnZfRVhJVENPREUgKGFkdmFuY2VkKQorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgQ01ha2VMaXN0cy50eHQgfCA1IC0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0CitpbmRleCA4ZDA3NzcyLi5hMjM5NmYyIDEwMDY0NAorLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrKyBiL0NNYWtlTGlzdHMudHh0CitAQCAtNTIxLDEzICs1MjEsOCBAQCBpZihOT1QgSEFWRV9JQ09OVikKKyBlbmRpZihOT1QgSEFWRV9JQ09OVikKKyAKKyBzZXQoQ01BS0VfUkVRVUlSRURfTElCUkFSSUVTICR7SUNPTlZfTElCU30pCistQ0hFQ0tfQ19TT1VSQ0VfUlVOUygiI2luY2x1ZGUgXCIke0NNQUtFX1NPVVJDRV9ESVJ9L2ljb252LWRldGVjdC5jXCIiIF9jb3JyZWN0X2ljb252KQorIHVuc2V0KENNQUtFX1JFUVVJUkVEX0xJQlJBUklFUykKKyAKKy1pZihOT1QgX2NvcnJlY3RfaWNvbnYpCistCW1lc3NhZ2UoRkFUQUxfRVJST1IgIllvdSBuZWVkIHRvIGluc3RhbGwgYSB3b3JraW5nIGljb252IGltcGxlbWVudGF0aW9uLCBzdWNoIGFzIGZ0cDovL2Z0cC5nbnUub3JnL3B1Yi9nbnUvbGliaWNvbnYiKQorLWVuZGlmKE5PVCBfY29ycmVjdF9pY29udikKKy0KKyAjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICMgQmFja3RyYWNlcyBmb3IgZGVidWdnaW5nCisgIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwMS1jb250YWN0LVJlcGxhY2UtdGhlLU5vdmVsbC1zYW1wbGUtY29udGFjdC13aXRoLXNvbWV0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAxLWNvbnRhY3QtUmVwbGFjZS10aGUtTm92ZWxsLXNhbXBsZS1jb250YWN0LXdpdGgtc29tZXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3N2U3YjkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAxLWNvbnRhY3QtUmVwbGFjZS10aGUtTm92ZWxsLXNhbXBsZS1jb250YWN0LXdpdGgtc29tZXQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMTUgKzAsMCBAQAotRnJvbSA0ZGY4YmQ4YWU0MjU4Mjg5NjYzYjI3YWYxMjA3MDI3YzdlZTA2MzQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgotRGF0ZTogU3VuLCA0IEF1ZyAyMDEzIDA5OjEzOjI1ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMS81XSBjb250YWN0OiBSZXBsYWNlIHRoZSBOb3ZlbGwgc2FtcGxlIGNvbnRhY3Qgd2l0aCBzb21ldGhpbmcKLSBtb3JlIGFwcHJvcHJpYXRlCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLVNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KLS0tLQotIGFkZHJlc3Nib29rL2JhY2tlbmRzL2ZpbGUvTWFrZWZpbGUuYW0gICAgfCAgIDEgKwotIGFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2sveGltaWFuLXZjYXJkLmggfCAxNzkgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDc3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvYWRkcmVzc2Jvb2svYmFja2VuZHMvZmlsZS9NYWtlZmlsZS5hbSBiL2FkZHJlc3Nib29rL2JhY2tlbmRzL2ZpbGUvTWFrZWZpbGUuYW0KLWluZGV4IDA4Y2Y1OGYuLjE3ZTcxNDkgMTAwNjQ0Ci0tLS0gYS9hZGRyZXNzYm9vay9iYWNrZW5kcy9maWxlL01ha2VmaWxlLmFtCi0rKysgYi9hZGRyZXNzYm9vay9iYWNrZW5kcy9maWxlL01ha2VmaWxlLmFtCi1AQCAtMiw2ICsyLDcgQEAgZWJvb2tfYmFja2VuZF9MVExJQlJBUklFUyA9IGxpYmVib29rYmFja2VuZGZpbGUubGEKLSAKLSBsaWJlYm9va2JhY2tlbmRmaWxlX2xhX0NQUEZMQUdTID0gXAotIAkkKEFNX0NQUEZMQUdTKQkJCQkJXAotKwktRENSRUFURV9ERUZBVUxUX1ZDQVJEIFwKLSAJLURHX0xPR19ET01BSU49XCJsaWJlYm9va2JhY2tlbmRcIgkJXAotIAktSSQodG9wX3NyY2RpcikJCQkJCVwKLSAJLUkkKHRvcF9idWlsZGRpcikJCQkJXAotZGlmZiAtLWdpdCBhL2FkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2sveGltaWFuLXZjYXJkLmggYi9hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL3hpbWlhbi12Y2FyZC5oCi1pbmRleCA3ODJkMzdiLi41YjBiMjUwIDEwMDY0NAotLS0tIGEvYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay94aW1pYW4tdmNhcmQuaAotKysrIGIvYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay94aW1pYW4tdmNhcmQuaAotQEAgLTEsODAgKzEsMTA1IEBACi0gI2RlZmluZSBYSU1JQU5fVkNBUkQgXAotICJCRUdJTjpWQ0FSRFxuIiBcCi0tIlgtRVZPTFVUSU9OLUZJTEUtQVM6Tm92ZWxsIFhpbWlhbiBHcm91cFxuIiBcCi0tIkFEUjtUWVBFPVdPUks6O1N1aXRlIDUwMDs4IENhbWJyaWRnZSBDZW50ZXI7Q2FtYnJpZGdlO01BOzAyMTQyO1VTQVxuIiBcCi0tIkxBQkVMO1RZUEU9V09SSzo4IENhbWJyaWRnZSBDZW50ZXIsIFN1aXRlIDUwMFxcbkNhbWJyaWRnZVxcLCBNQVxcbjAyMTQyXFxuVVNBXG4iIFwKLS0iVEVMO1dPUks7Vk9JQ0U6KDYxNykgNjEzLTIwMDBcbiIgXAotLSJURUw7V09SSztGQVg6KDYxNykgNjEzLTIwMDFcbiIgXAotLSJFTUFJTDtJTlRFUk5FVDpoZWxsb0B4aW1pYW4uY29tXG4iIFwKLS0iVVJMOmh0dHA6Ly93d3cueGltaWFuLmNvbS9cbiIgXAotLSJPUkc6Tm92ZWxsO1hpbWlhbiBHcm91cFxuIiBcCi0tIlBIT1RPO0VOQ09ESU5HPWI7VFlQRT1KUEVHOi85ai80QUFRU2taSlJnQUJBUUVBUndCSEFBRC8vZ0FYUTNKbFlYUmxaQ0IzYVhSb1xuIiBcCi0tIiBJRlJvWlNCSFNVMVEvOXNBUXdBSUJnWUhCZ1VJQndjSENRa0lDZ3dVRFF3TEN3d1pFaE1QRkIwYUh4NGRHaHdjSUNRdUp5QWlMQ01cbiIgXAotLSIgY0hDZzNLU3d3TVRRME5COG5PVDA0TWp3dU16UXkvOXNBUXdFSkNRa01Dd3dZRFEwWU1pRWNJVEl5TWpJeU1qSXlNakl5TWpJeU1qXG4iIFwKLS0iIEl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXkvOEFBRVFnQWJnQmtBd0VpQUFJUkFRTVJBZi9FQVxuIiBcCi0tIiBCd0FBQUlEQVFFQkFRQUFBQUFBQUFBQUFBQUhCUVlJQkFNQkF2L0VBRVlRQUFFREF3RUZCZ01FQmdRUEFBQUFBQUVDQXdRQUJSRUdcbiIgXAotLSIgQnhJaE1XRVRJa0ZSY1lFVWthRUlNa0xCRlNOU3NiTFJGbUp5ZFJna016WTNRMFJHZ3BLVG9zTGg4UC9FQUJzQkFRQUNBd0VCQUFBXG4iIFwKLS0iIEFBQUFBQUFBQUFBQUVCUUlEQmdFSC84UUFMUkVBQVFNQ0F3WUdBZ01BQUFBQUFBQUFBUUFDQXdRUkVpRlJCUk1pTVVGaE1uR0JrYlxuIiBcCi0tIiBIUkJzRVVvZkQvMmdBTUF3RUFBaEVERVFBL0FIL1JSUlJFVndYZTlXMnd3RnpicE5aaXhrYzF1cXdQUWVaNkNvSFhldkxmb20xZHNcbiIgXAotLSIgOWg2YTZEOFBHQ3NGWkhNaytDUjRuODZ5emRicnFmYVpxWUJTbnAwaFJQWk1vRzYyeW5vT1NSMVB1YThMZzBYUEplZ1g1SnY2ayswXG4iIFwKLS0iIGJCanJXeHAyMkxsa2NCSWxIczBIcUVqaVI2NHBlVDl1bXVwcXlXcmhIaHBQNFdJNmVIdXJlTlc3VG13K0RHYVRJMUZKVkpkeGtzTVxuIiBcCi0tIiBxS0cwOUNybWZiRk1DSHBDdzJ4QVREczhKckg0Z3lrcStaNG1xaWZiTVVac3hwZC9RVWxsSzUzTTJTQ2IyeGErYlh2ZjBnY1YwVXdcbiIgXAotLSIgMFIvRFZrdEgyaGRVd2xwRnhqUXJnMTQ5MHRMUHVPSDBwdnYycUU0amRjaHgxcDhsTkFqOTFWYTg3T3RNM1JDdCsyTngzRHljaS9xXG4iIFwKLS0iIHlQWWNEN2cxRVorUlI0clNNSTliL1MybWhkYmhLc21rZHRXbU5UdU54blhWVzJjdmdHWlJBU28rU1Y4ajc0UFNtT2xRVU1wT1JXUFxuIiBcCi0tIiBOVTdNcmpZMHJsUUZtZERUeE9FNGNRT284UjFIeXFlMlo3WkoybTMyYlhmSG5KVnBKQ1V1cU84dVA3K0tlbmg0ZVZYa0ZSRlVNeHhcbiIgXAotLSIgRzRVT1NOMFpzNExVMUZlRU9XeE9pdHlZenFIV1hFaFNGb09Rb0hrUWE5NjNyQkZGRkZFUlVkZnIxRTA5WTVkMW1yM1k4WnNyVjVuXG4iIFwKLS0iIHlBNms0QTZtcEdrTDlvalV5bTBXL1RyTG1Bc0dVK0FlWUJ3Z2ZQSi80UlJFcXJyY2IxdEoxb1VwQlhMbU9icVVaN3JTQnlUMFNrWlxuIiBcCi0tIiBKOHprMXBIUW1pTFhvK3pwYmFiQzNTQXA1NVE3enl2TTlQSVV1ZGlHbVVSYlM3ZnBDTXZ6RkZ0b244TFNUeHg2cUgwRk03VlY5VllcbiIgXAotLSIgOU16WjdhUXQ1dEFTdzMrMjZvaEtCL3pFVlNWRlZ2WnpHTXcwMnRxZS9rcGJJOExNUjYvQy9YeHE5UWFnZmJiUCtJVzFRUTRSeWNmXG4iIFwKLS0iIHhuY0hSQUlKL3JFZnNtdTJhOUZnc2wyWElaanRqOGJxd2dmTTErOUwyVkZrc0VTQVY5bzZoRzg4NmVianFqdkxXZXBVU2FydXRkblxuIiBcCi0tIiBNWFYrb2JSY1prcy9Dd0NRNURLTXBlQk9UeHp3emdBOUt3ZlR0ZnhQT1NCNUdRVVhjOXBPam9DK3pYZTJIVjV4aU9DNlBta0VmV3BcbiIgXAotLSIgeGU2dEFXZ2hTVkRJSU9RUlh4ZWtOT3g0YjBXUFpZTExUcmFtMTltd2xKS1NNSGpqTlV6UWQyZFpNN1NOeGN6Y0xPc3R0cVZ6ZFl6XG4iIFwKLS0iIDNGZXdJOWlLcEsybWpNWmRGZTdlZDlOZlQ5cVpESTRPQWQxVmtrbzUwbmRvdWkyMmt1WHEyTkJPTzlKWlNPSDlzRDkvejg2YzhnY1xuIiBcCi0tIiBEVUpOUWxhRkpVa0tTb1lJSTRFVkdvS3A5UElIdDllNmx5Uk5sWmhjcWxzSjJndVFweWRMM0Y0bU83a3cxS1AzRmN5ajBQRWpybnpcbiIgXAotLSIgclNBSUl5T1ZZZnZzSjNUR3FsQ0twVGZZdUpmakxITURPUjhqdzlxMkZveStvMUZwV0Jja1kvWE1wVW9lUnh4SHNjaXUvamVKR0I3XG4iIFwKLS0iIGVSWFB2YVd1TFQwVS9SUlJXYXhRZVZZODJ4M0JWdzJvWGJKeWhnb1pSMEFRTS9VbXRoSys2ZlNzV2JSUVc5cFY3M3gvdFpQdHdORVxuIiBcCi0tIiBXajlOdzBXdXd3SUtRQUdJNkcvY0FaK3RSVzBseDVuVEVXNE50cWRhdDl4ank1Q0VqSkxTRlpQNUgycWFZZENrcFVrNUJHUWE3QXBcbiIgXAotLSIgRHJTbTNFcFdoWUtWSlVNZ2c4d1JYeitrcXl5VEc3VlhVc1YyMkNscmZjNDgrQ3pNaVBJZWp2SUMyM0VISVVEWE5lNzliN0hiWGJoXG4iIFwKLS0iIGM1U0k4WnZtdFo1bnlBNWs5QlM3ZDBuZmRNUHVTZEQzSnRFWmFpdGRvbTVVem54M0R6VDZjUFdrdnEvVjE2MTFmR1c1blp0QkNneVxuIiBcCi0tIiB6RmJYaHRDeWNFNUp4a254UGhYUjA3UlVlQjNEMTFIKzlsQWZ3Y3htcnJxTGJ4Y0hwaWtXR0F3MUZTY0J5VWtxV3ZyZ0VCUHB4cWlcbiIgXAotLSIgenRkWFdkcW1OcUlJang3Z3lrSlVwaEpDWEFNL2VCSjVnNFBRQ21CWk5pREtXRXUzNjR1RjBqSlloNEFUNnFVRG4yRlZ1NmJQSWtUXG4iIFwKLS0iIGFUQjA4eEtlTU9VMkg5OWVDdEtSdlpHUU1aN2h3Y2VOWnhWR3pzYm1NeklCdjVkZk5lT2puc0NkVXdiVHRLc1Y4bkpnSWNjWmtxd1xuIiBcCi0tIiBsSmNUaERxdkpKejhzNHpVdExWenBjMnZaWkt0K3FCSWt5VUt0MFYwT05LU2UrN2c1U0NQRHI5S3YwdHpuWFAxY05NeVFmeG5YQkNcbiIgXAotLSIgdHFVeXVCM2dzbGZ0UGpKTGtHV0IzdTgyby9Jajg2YmYyZTdpcVJveHlJcFdmaHBDMEpIUTRWLzVHbFZ0SmNCdDBSUGlYaWYrMDB3XG4iIFwKLS0iIFBzNUJRdE54UDRUSlA4S2E2clpaSnBXMzcvS3E2OEFUbFBlaWlpckJRMEhsV1I5dDlxVmJ0cEVwL2R3aVkwaDVKOE1nYnAvaCt0YVxuIiBcCi0tIiA0cE03ZmRLTHVtbjJyeEdiS240QktsNEhFdG43M3l3RDdHaUw3bzI4SnV1bExiS0NzcUxLVUwvdEo3cCtvcXlJZTRjNlJHeXpVNGdcbiIgXAotLSIgVEhMTkpjM1dwQ3Q5Z2s4QTU0ajNHUGNkYVp1b29zeTgyVjIzUXBhWXBrRUlkZUlKS1VlSUFIaWVYUGtUWEExMUR1YXNzSnNDZWZZXG4iIFwKLS0iIC9TdllaTjVGaUdaVTllZFJ3TERBWEpueTJtUnVrb1N0UUJXUU9RSGpTamc3UFlFN1ptemNaYjdjRzZLSzVDWkQ2dHhPQ2NKUXZQZ1xuIiBcCi0tIiBRQVFmQW4ycTZSTk9XaTFEOUozUjVkd2xSMnhtWlBWdjltbEk4QnlUajU5YXIwOUxtMGpVSVFsNVkwekFVTXJRU1BpWGZISHB5ejRcbiIgXAotLSIgRDFxVFJ2TVFJaWVRQVFYT3RsbGZJRHJlL1gyV3FWbUk4UXo2RDlxMGJQOVNPMzdTclNwVzhaVVZYdzdxK1ljS2VTZ2VSeU1aNjVxXG4iIFwKLS0iIHFhbW12V1RhbEV2MXlqT0p0YVdmaDI1Q0J2Qk9Va0hQbHhVZUhseXEvTWlQQ2l0eG9yU0dXRzA3cUcwREFTSzQ1eFpseDNHSkRhSFxuIiBcCi0tIiBXbGpDa0xHUVI2Vkdpblkyb2ZJRzhMcmkyZ09pMzdoeFlHM3pDK3VUMkhZNlpEYnlGTXJBVWx3SzdwQjVITlJjcDdueHFwemROM0dcbiIgXAotLSIgQ0ZRN05PYlRhM25BcGNhU04vc3VPZTRTRHc2VkszTzRzd29qc3A5V0dteGs5ZklEclc0VXpXa2J0MksvdjY5MXZqZWM4WXRaVVRhXG4iIFwKLS0iIEJMK0l1TWFJamlXV3l0WFFuL3dCRDYwOHRndHJWQzBXMit0T0ZTRnFkOWljRDZBVm5tRkZsNm4xQWhvQW1SUGR3Y2ZnUjRuMkg3cVxuIiBcCi0tIiAyUHBpMU4yZXhSb2phUWxLRUJJSGtBSzdHbWkzTVRXYUxuNmlUZVNGK3FtYUtLSzNyU2l1ZWRFYW5RM0k3cVFwQzBrRUVaelhSUlJcbiIgXAotLSIgRmpuYVJvU1ZvcS9LY1lRdjlIT3IzbUhCL3F6ejNTZW5oVmkwZnRBYm5OTndMbzZHNWlRRW9kVWNKZDlmSlg3NjBacUxUa0hVZHNkXG4iIFwKLS0iIGhUV0VPdHVKd1FvVmwvWEd5UzdhYWtPUHdHbkpjRE9SdWpLMERxUEgycUpWMGNkVXpDLzBPaTNRVHVoZGRxWTg0SXVGdWt3bkZGS1xuIiBcCi0tIiBKRFNtbEVjd0ZER1I4NklTSTF0Z3RRNGpZYVlhVHVvU1AvdWRKUzFhenZGb0FaTG5ic3A0ZG0va2xQUUhtS3MwZmFWRVdrZkV3MzJcbiIgXAotLSIgMWYxQ0ZqOHE1NlhaTlN3WUc1dDdmU3Q0NnlCNXVjaW1NNUw0YzY0M3BYV3FVNXRDdGVNcFJLVWZJSUg4NmlwbXZubkFVd29RU2YyXG4iIFwKLS0iIDNsWitnL25XRWV5NXlmQ3RycXVCbzhTdTArNHNRNDZwRXAxTFRTZVpVZm9QT2xuZnI2N2ZaS1FsSzBRa0svVnRmaWNWNW5yWE9rWFxuIiBcCi0tIiBYVWs5S1FIcDBnbmdoSTdxUHlBcDFiT2RrQ21IMnJuZVFISHh4UWpIZGI5T3ZXcjJqMmMyRGlkbTc0VlpWVnBsR0Z1UVhSc2MyZk9cbiIgXAotLSIgUWdiMWNtc1NYUU4xSkgrVFQ0RCtkUEVBQUFEa0s4NDhkdU15bHBwSVNrREdCWHJWa29DS0tLS0lpaXFycmJYOW0wSkFSSXVhMXJlXG4iIFwKLS0iIGRKRE1kb0FyY0k1OCtBQTh6VkxzTzI2UnFpUzlHc3VrcGN0NWxIYUtiVExhU3JkOHdGRVo5czBSTjZ2R1JHWmt0bERxQW9IekZLcVxuIiBcCi0tIiBKdG9tenJQT3V6R2padndFQlJUSmZja3R0cGJVT2FlOWpKNWNCazhSNTE0V3JibzdlNDg5KzNhVGx2dFFHVElrcUVsc2RtMk1rcTRcbiIgXAotLSIgNHp5UEtpS2YxSHNqMDlmbEtkWEVRaDQvalIzVmZNVXZKLzJldDFaTU9lOGtlU2dGZnlxejJMYmZKMU05SVpzMmtKc3gyTzBYbkVOXG4iIFwKLS0iIHlFQWhBNFp3Y1o1OGh4cjdaZHRrdlVTNVNiVG8yZkpNUnN1UGtQb1NHMGp6S3NEUFBoejRIeW9pcERld0M0NytGWEZXT2pZSDUxWVxuIiBcCi0tIiBiVHNBZ3RyU3FjODgvandXckErUXhVbFl0dWp1cFo2b05vMG5MbFNVdHFkS0V5VzA0U01aT1ZZSGlLalA4QUNVdDUvd0IzcFgvWFRcbiIgXAotLSIgL0tpSm5XTFExbnNUU1VSb3JhZDM5bElGV1pLVW9UaElBSFNsTnFEYkxQMHNpS3U5Nk1uUTB5Z1N5VnlHenZZeG5sbkI0amdhODdGXG4iIFwKLS0iIHR0bGFtWEpiczJqNTB4Y1p2dFhVdHlFWkNmUEI1K2d5YUltOVJTZXRtM0o2OFJiaEpnYVNtUE0yNXZ0WmF2aVcwOWtuanhJT004alxuIiBcCi0tIiB5OHE3TEh0enN0d3YvQU9ocmxCZnRra3Vka0ZPTFM0M3Y1eGdxU2VISHg1ZGFJbXJSWDVRdEswaFNUa0dpaUxNUDJobzh3YTFpU25cbiIgXAotLSIgUW94VlJRMjBmQUtDbEZROWVJcXE3TExKZTd2cmVHN1paQ29aaHFEOGlaanVzdGpubndPUmtZOGMrV2ExWnFiU3R0MVBCTWE0TUlkXG4iIFwKLS0iIFJ6N3d6ZytkTDhiRWJBMXZwYTdSdEsrQ2twZFdBZlhqUkZCN1VwQ05lNktkbTZObkpmdDFxbHVLdVVKbHZkS3puUGJZSDNoelBYSlxuIiBcCi0tIiBQTUdxWnNrL3pjMmdmM0c1L0N1bWMzc1JzVE85MlJjYjN1QjNYVmpQMXI0allmWUd3b043NlFzWVVFdXJHUjVIalJFdWRoVXQyQlBcbiIgXAotLSIgMVRNWUlEMGV5dXVvSkdSdkpJSStvcTk2STJpd3RWejdyYjdaWldiYWx5enlKOXdLVWpMc3JLRWtqSDRjRTgrSnowNDliZXcrd05iXG4iIFwKLS0iIDNaNzZONFlPNjZzWkhsem9iMkgyQmtrdGI2Q1JnbExxeGtlWE9pSlpiQXY5SU1qKzdYL3dCNmFnOWxHbkVhajE3Q1JKQStCaFpteVxuIiBcCi0tIiBsSys2RUk0NFBRcTNSNkUwNlc5aDlnWlZ2TmI2Rll4bExxd2NmT2h2WWhZV3Q3czk5RzhNSzNYVmpJNjhhSW83VXhnYlI5SWFqaFFcbiIgXAotLSIgNy9EdTl5aVNGM1MzdE1OclN0bGtBQXQ5NERQREk0ZUpGVXZZZk5ldHFOWXo0eEFmaldaeDVza1pBVW5KSEQxRk1WclloWVdWYnpXXG4iIFwKLS0iICsyb2pHVU9yQng4NkViRDdBMEZCdmZSdkRDdDExWXlQSThhSW8yM3pkUDZpMmU2MjFUYVVKaVhDZmExSXVjRlBKdDVLVm5mSFJXU1xuIiBcCi0tIiBldVBQTloyWWFkZmtOc3NwVXAxYWdsQ1U4eVR5clRTTmg5Z2JDZ2pmU0ZqQ2dsMVl5UEk4YWw5UGJJdFAyV2FtVXl3a3VKNUtPVkVcbiIgXAotLSIgZW1lVkVWdzAyWkg5SDRZa0VxZERZQ2lmRTRvcVhiYVMwMmxDUmhJR0JSUkYvL1pcbiIgXAotKyJWRVJTSU9OOjMuMFxuIiBcCi0rIkZOOllvY3RvIFByb2plY3RcbiIgXAotKyJVUkw6aHR0cDovL3d3dy55b2N0b3Byb2plY3Qub3JnL1xuIiBcCi0rIkVNQUlMOnlvY3RvQHlvY3RvcHJvamVjdC5vcmdcbiIgXAotKyJURUw7VFlQRT1WT0lDRTorMDAgMDAwIDAwMCAwMDAwXG4iIFwKLSsiQURSO1RZUEU9SE9NRTo7MTcyMCBCZWF2ZXIgQ3JlZWs7RGFtICM0O1BsYW5ldCBFYXJ0aFxuIiBcCi0rIkxBQkVMOjE3MjAgQmVhdmVyIENyZWVrXFxuRGFtICM0XFxuUGxhbmV0IEVhcnRoXG4iIFwKLSsiUEhPVE87RU5DT0RJTkc9YjppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBR1FBQUFCa0NBWUFBQUJ3NHBWXG4iIFwKLSsiIFVBQUFBQkhOQ1NWUUlDQWdJZkFoa2lBQUFBQWx3U0ZsekFBQUxFd0FBQ3hNQkFKcWNHQUFBRkU5SlJFRlVlSnp0blhtUUhOVjl4elxuIiBcCi0rIiArdmU4NmR2VS90YW5VaUNWd1JRdWFJaFNFT01zSWlFc2JHUnRpVkdGeTRFc2RVNGJJTk9JQ1BVdGtRSE94Z1lvaURUVkp4Q0Jpd01cbiIgXAotKyIgQ0J4QmpBbHNJVWxFUXpJU0FoWk41SlcybDN0dmJOejlKVS9mdS9ON0N3Z1ZxdVZtRXIxOTQvdDdlbnU5N3A3M3ZmOXp2Y2JDQkVpXG4iIFwKLSsiIFJJZ1FJVUtFQ0RINVVCLzBEWXdYd1p2L01oOEFLM0lTZ0JzNEF3QVIyOW9Dd053RmZRQktMWFkvbUR1Y0hGZ2Y5QTJFS0VYWk1pVFxuIiBcCi0rIiBZZHRkVUFEZmYrUUNBNVEvOUJRQitYazd3OWEyN3ZweFA4ZzBBTzlKNElZQTY0L3FPRTNtL2s0V1FJV1dHc21KSS9xMGZuMlArdDVcbiIgXAotKyIgemVyd0ZZREswQUNBZ0NBTXNYUnVDTHFQRFRRN0x2QmdvZ1NEWThET0RXTHZndVFPTGt2OXQ2UW01K2toQXlwTXdRZmlGbGhrbVpzXG4iIFwKLSsiIHZZLzlyT3pBWEs1OUVrQUVjODdCREQ5Yzk5Y0M2Q1U4dDd0dW1EL1BRMEEvdUNPSHdGNFZtNnBPV2JuYzIwQWx2SURPVG5RRjhuVVxuIiBcCi0rIiBoSk9UM1hRL0FLN2p5SlJXVVNYSEl3MXZBUVFWMDc4QkVKMS83ZjlNd3FNZWQ0UU1LVE5NaUNGL3VQL09OZ0M3WS9PREFGNTJZQ0VcbiIgXAotKyIgQXJoY0J3TUlEaU1aaUxrQXNWWDhmd0NsZnZmT3JBTGxkZDV3R1lHZTZIZ1JRUWZwa0FCWHhpL2ZqQ0trQ1g2aWh0SjZydEZBUDhpXG4iIFwKLSsiIE55M25BZkFKNGRrL09pQ1FCc1pTbjV2TG9YSUorYWV6VkF4Znh2UERDUlp6NVJDQmxTWnBnUVF6YmUrcVh6QVlMY3dBTUFnUk0wQVxuIiBcCi0rIiBVVFEwNzJTZjZKS21vOEhXUVZnTlNjN0FVNitZRzRBRUxpWktYSVRJaWM4Z3NMOTJKNXV5elhpeHpCR2J4MXRJQTczeUlNa0syVnJcbiIgXAotKyIgeC9SNWNnOUthWFU0MGdDQUgyLy9sT2tqc20zV2t3Qjk3S29FeU9IVUEyVFR3OUo1VTBNV3dObTVydzlnM3RmdXpCM2xxenBxaEF3XG4iIFwKLSsiIHBNMFFtY2xFMGtuSUJ2T3l3RCtBcEI0QkFHMnUyRW1vRW5udyt4RUFBc09ERDdTMEF1R0xNS1pSUm5ZUkJScE1DZk1NTUxUTlVJUFxuIiBcCi0rIiB2S2MwdTJXUG9hU3orS2JldVBQUVhnZThJKzVYZUxEQXFzWDVrK09uSzdid0p3ZTUwYkFITFpmQldBbzl2MkRuZkszZG54dFFDdjNcbiIgXAotKyIgdkgxV3dCMlRQbm9Xb0RMTHJ2c1hiWEhZMEhJa0RMRGhCaGl6engxSjRDN3RYY1lRQVZPQzRDdFJZQVZ5S2gyL0RRQTg4NlpvUUFTXG4iIFwKLSsiIFZWR2dhRXFvc1RKc0ZFT1VOOGFKeU5qQjZKZGVZK214RlpRMnFTd3RRenc1MGM0ZVNKaGpVVy93SHdGMjc1TytVcFgxSXRzMHc3MlxuIiBcCi0rIiA4OGVTUExBWndvaU1mQVdqMTEzMWFIM2lPU1ViSWtETERoQmh5Mm1lL3ZCOWd3MjFYUFFRUUg4emNBT0FybWRBREo2TUFwcDVTQjBcbiIgXAotKyIgRDFsS3FTNnd0ak9EQkd1TFl0L0ZHeEpTTTdmRE5tZ2xGL1FSa2ZvMmFPUmVsNVpsdnN5OU5NS2ZiUjBDTFhKUFpJRzQ0bjUxaEtQXG4iIFwKLSsiIG5jTGZjcCszc2tuQUx4TXVuYnNPNWtzaEF3cE0weUlJUWFMcnIzclJvRDF0MTVaQjVBWTZ2eDdnR2hLUmx4TmU2MW9PTFl0bzFOZlxuIiBcCi0rIiBGMmhtS0UvTEJUTnFOVk5nbFAzaHl2eXVDdGZJdm0vY1l5cXB0N1krVDJ0OFk1bFN1cXN2RWY2MHo0Z0Q4TWFyWXZWWDFXaWJSWi9cbiIgXAotKyIgc2FIbmxxT1FXZ0ZqRHpGZmUrNjBjRzBLR2xCa21OVUMxL3Q5WG5nZlExblRnMXdEVFo5aml6UzNNMjNwNCtxWnozWDFFeG9XeTdFXG4iIFwKLSsiIEpiZ1hIeWF1MUpHLzBvZjB4YnVvM0ExWjk3cFpaOWdYM3VtQzJnSFFSa2hySUF2THhlTEhUYkVvWVlabnRXYkJqQXI1dDZIY0RIclxuIiBcCi0rIiA3Mzk1MGQ0RGNlRWtDRmxobU9TSVdPeDZMd3FtWXl6TmRVQVhyYXY1TGl5cFRzVkUzOVR3WVl3RTd3M3lnN1JtbzdSdGdqTXlEZlhcbiIgXAotKyIgMkhyUDdCc21HYzFJVThwWThyYnBzaWluREl0aUNmRVUxOWFMemRMWktZeEpWTmJ0QW5BcTYzOENjTUZ4WklaQnlKQXl3NlRJa0dEXG4iIFwKLSsiIHZjN01Cdk01bk5nQ29ZS0FKSU5ERDFkSWVWeFBMQU5HRUtQaXJITlBTcUVhTnZESE1VS1ZiWTVuYmhpbWFJZnE0cjRJeFZ3VzZ1VlxuIiBcCi0rIiBFV3Z5ZjNZMmxaMHROcmRRRnMzaGI3S1lDVGFINFU0SUpyYjMvai9kN0JaQ0ZrU0psaFVtUklMdWNrQUdLRDJTWUFuQXdBRm1MNVpcbiIgXAotKyIgaktaQUNDVEZncytPeXpIczNrSkx6ZzYyUzJmTHhMVzA4eXd0V3lJeHVSWUxDRzNYQkdYYlZWMUJRQ3BTbjJ0bGhXV0hkVlBLR0l0XG4iIFwKLSsiIE1IWktpU0VpYmZpYWJUWE5FbFA1eTJtTmp3R29qOXh5d3BoaEVES2t6REFwREVuTVcvWW1RRzdERHlTMlBzQlhBRjdkc1BOaWdEZVxuIiBcCi0rIiAyN21zRENJemZ5WlpSYSttUkdURXhqRkVTelZLeGtqNk0xVnp3ZTNuQ01pZmZyOXVRNHczVjBuWnpzelRXV0M5OU5EYks2RTlXSmdcbiIgXAotKyIgdHRxbWhDN0k3S2F2Rmh4V3FiQWR4STVaU2pmUWVUaFpBaFpZYndDeWt6VEtwaEdGOTA0eWI5NzFVQXYxbDVoUVBRM3VaZExaMUp0XG4iIFwKLSsiIEtuZ1hOVCtFRXVaZ0ZWeGZQZ0ZoZFVJWWF0a3oxenJHL1ZZcTdNNVR4U0Z2UWRsZjlOMjJSL0pTRGkycnFvNEw4NmNKcHJBd3ZsMlxuIiBcCi0rIiBMMEJGVzYzNFZXS1JEMnlOU2NpUU1zT2tNc1JnNjdyVlZRREQ2OWFjQm9DcTF1NzNVb2VnNzVlNlE3eFJyaE8vNElmVXpzUFJIZytcbiIgXAotKyIgS0xETlgrSmFja05UcWJqd3FSNnFyZExCSkc2WDVVUUdxL2YzNjJyMlYxd0Y4dEw3MWZ3RmluVE0rc0l6NWtDRmxodVBDa054YlcyXG4iIFwKLSsiIFlBSk94WUcwQ3Z0dFllZldVbkFHZk9xQWZnOUZiWjVyWGowTE9MODd1dktlSWFFVkhJdWRZdWtESG5LVzM0WVJ0bm96eGFqelpDYVxuIiBcCi0rIiA1S2k3bGFNMHFhcjRub24wWm9CaUMvOTV1YUpQTzlrSW1SSW1lRzRNQ1RpWldZRHhKT1JhUURQYnBUbGZ2c2xLNGhVcDR6YXMyYktcbiIgXAotKyIgZkI5eFNtVUxGSTFFSXpzSzNuaHZqTE5SbFRMSDRNMkRBd0E4c1drL0FPZDlxQTJBRDArckw1NmtVNHlpNUMvV256dzQ3b2M4VGdnXG4iIFwKLSsiIFpVbVk0TGd5eExXOHVnQjk0Y1lBRGc3bVNsRkVUTklwb0duZzZkQnRSeGZIaGFvZWpqdTdpR1FZWWQzc3BJUXBhbVFsb2RROEtDMVxuIiBcCi0rIiAwdFcvYjN5ZjZIV29wYVZrVlNaSWliSFQ3bDZKL3krQ0JrU0psaFVobnlwNmVlaWdQazl2NTJGa0JVQjZDMHg1eitySXplMlkyU09cbiIgXAotKyIgS2ZHV095ajAwQk53b01KYXBuQWs5TDZsVFZHN0pnb3NHRktiVXEwS3MrWDVRb1pSNi9hOVlvR2phOTVGbmhPSlVBUUJERjlQL21qXG4iIFwKLSsiIGZmYkpRc2lRTXNPa01pVGEyYWtBMGs1T2ZPQ09oR2FYelc4SG9DY3QrNmUzMXdDUTBkcFZYc3NMTmRyL3J1VkpvQmxpWklySkIxS1xuIiBcCi0rIiAyRHRrV0JyejhZM1N3MlUzQ3duazY2TlNpQTFteGFIRU1LbDhDYUs0bm5XMS8rajZUaUIweUpJUmdVaG15WitaTUY2Qnl5NVp1S09cbiIgXAotKyIgYWtUYXVTK1h4NmpXek5xRGJtaHhmSXVPanVPbHhvSzFtUkFxRDV6TE1CbURwL0FRQWRMNjRGWUhEUGRnQmM3WnVLeG9XVVJpdExhXG4iIFwKLSsiIGF0LytmeHBRSEhrR2M4eWdHdXFReWpsQXN4YmR2bmdCQjZiVFpzMnRBTllGZkU1QVBQbkxQeURPYWFVR2pxYXRrS0dsQmttbFNHTFxuIiBcCi0rIiBGMHV0cWcwL3ZlNEZBS1dpVndQa0E2Y0tJSEI4bmFxcFN1SWlSdk5wYkdnb3RHVmtRVldyUkZOcnBrNEg0R0M3YkwwZGtuOFFUMVNcbiIgXAotKyIgVTNvUnhaV2taRkxlTWJGSHZjQWQ0bnZ3Zmo5ZE1hS24wczgvZmZ6SEFhNXMycmdGNGZOVWFBQm9hRzNhYmMzNTg2OHJMQUs2NS9uXG4iIFwKLSsiIHZqU3RBT0dWSm1PQzdWZ0ZZR0loVE8vK2RyN2dESURYZCtDU0RpZVVtQVNDRnp1dlF1N0ZGdEZPWjhiVTNiS2RITVJnWWxQVFdxbFxuIiBcCi0rIiA1c1pKY3ZFTzR5WmtkTlpFYjVlaE9QcDR6a1ZLZGo0cXFMdUJZRFBmdS91angvTjh6M3g5SDJma3JiZFZRQjczejRZQTNqdThhY0RcbiIgXAotKyIgZ1A3dW5zSjdiWm5TbGdHWWZmS3NDd0Z1dmUzdTN4NnA3WkFoWllZVFVpOXJ6YzFmL2k1QTk4RzN2dzlRb3hmM1Z5VkZoTVVMRHF2XG4iIFwKLSsiIFJscnA4WmhWU1FzZEVHOGZFMU0zV0swUUc1ZXlzRitRQVBNdCtIY0NKVmo1aSt2aWJXLzd6Tm5qdjRqanZlSTQxdjFnRTRPRkxUU1xuIiBcCi0rIiA3c05nQmxpOTlnb0g5UUFUeTMrcWtDQy9kczI2a0FtcWMwRHdFc1hYclJKUUJYWDNmOTgrL1dSOGlRTXNOeDhmWWFHTi9RdlhkZGRcbiIgXAotKyIgVDdBenIxaUFPL2F1UWNBMXhHcFlldlJQbTltTVlrdEVaTllTVElxVzlzczNERk1jT1VhTnllRGV5QXQrNFBhK0xGMDRraGVXLy8xXG4iIFwKLSsiIDdXM2JBU0puVC85WDA4ZDRtZkhMWDk4MUZ5RHZ1cUtOUld5ZCtJZStGNkYyTWlVYTMrS0xMaXhRL1luMDZnQmdzS3VyQ3VCM3YzdlxuIiBcCi0rIiB1aC9yUUdlL1dWOGlRTWtQNGhaUVpqb3RRZitXWFAyOEVjQlArendDRzRzR25BUWI2aHkyQTdsMWJGY0NpT2dtdmJ1OFdqOFhhdDRcbiIgXAotKyIgdkZkbXJycWdGSUpIWDFCMU1WVm1jOVpMSzZqc3FRVElOYnRzdituc095L2N4WmNuMGtJVnBCcXFWT0FiVEhwejFtK3ZqS2QvNnRVXG4iIFwKLSsiIEJubzNmRG9vdzlNQTNDOVlVa0FqRnAxVUhUMWVEckRJZ2hNdFFoOTRTZ25hVzVFVm1QOTZyL3VsUlhKbVh3SHdBL3Z1dk4wZ0lVTFxuIiBcCi0rIiB6K2thM1dmSWtETERNVEhrOWYrK05nVVFUMGVhQUVhYzNKVUF2VjJIdmc2d3IzZWdHbUQzaUl6cXM1Yi9GUUNSRVVuclBDc2lBeStcbiIgXAotKyIgYmwxRjB5N3FCUXR0VnpiTFVwTEpDQy9Xb0tBQ09OZ2hIUm9RSiszZDFBOUN4UjVneU5DTEgvM3lPRkI0NmMzNHJBTnM2RHdZQUZmXG4iIFwKLSsiIDNGUlNnTnplMXZBY1NUa1JzQWFsTXRVclo4U25zR3dHK3MzZ2hnUlcwcDZteXEyMm5YajZldFVNOGtYaGdhQjZNV29VVEZ5OW5YSVxuIiBcCi0rIiBVUjQ1dUhIZmdUdzlBdnIvK0dkYnpSa1NObGhRbXJ2bHYvNDlneUE2TkR3N1FENWJOOGxBUDZ3ZUpyTmlMZWFXZ0tBenRlM0s0QzhcbiIgXAotKyIgL3Y0N0IyVUFSZE5TTjNISktjS0NsOTRxRW5hN1R1YTBJaWJaUWE2SmE4OUhoVFlZRzRma2VJMU9mcWhOeVNPOThiYUVicmQzU3I1XG4iIFwKLSsiIG9kVlJtZ3puVnNjTG9qWFh2UHdVZ24waXNCaGlwRXBiVlRtMEdRTnV0T05vTGFsbldFV2VVSUNobEVJQ24xZkRtbHRiVjhON01NQVxuIiBcCi0rIiBnWlVtWVlOME4yci8xRm9jNVVkc3RyM3dJZzEzOEpRS0FUQ054QWhyRUtaQ1E1VmxJQlhMcmtQQUNhRHUwRFlPZm1IUUFNVzVJNUZcbiIgXAotKyIgM3hZNXZtVkZ4YjcrLzRhMGJqbWF0blJwalBtRHVkbGdMK281VktWem1xb1RzanhYcDFDR3RHR3Bha0UwWmVUZXp3MFZKUWhsUWxwXG4iIFwKLSsiIE82bXJHRkhmcUFBMmJKVDQwdnd6VHBmN250cXFRNzI2M3VPWUZLUmdUT1ozYVdLNDlSaUFXMnQ5Z1hFZ1pFaVpZZHdNNmQzOFppRVxuIiBcCi0rIiBITTU0Zk9nUEF6NHVtazhuTE1NMjdrcHZwT1RKRU5xMlhtRXhTajV6elc4UzFVTjhqMmxUUGRBbTdabDRUTzJUKzFtSUk5NThxcElcbiIgXAotKyIgMldLYUp0RGMrZUFVRHQxbDBBL0cxQzJLVUNHZm1ObWtrSHRVUCtxUkhaZjEzSGlXdDBGUWwzT0Yzb3c2L1hOWDRyRXJKYVdBZTc5XG4iIFwKLSsiIHU0USsyalg5cjBBWEhMNVpkSjNrd1RRWExPK1BpalpvSFN1VWhDbzlhWVAyL2EvQ25ERjBpdUtIUjhCSVVQS0RPUFhzcExGVUdrbVxuIiBcCi0rIiBJM091bjVYUm1kYWpNSzBaTTVBVmJhVnJVT1RBcW95TXFGUHJKQ1VuMXlvMnd1dC9FdDI4dFVPT1Z3Y0ZNVVd0a1MvYVl1OCtZeEVcbiIgXAotKyIgQVRYdEVEalZybVJCVElpdFNNV0hFYkoxZ2w5ZDFmZGYzeTNrOVNOdFd0dWdObUszbGo2MDFvYmdlbmhWVmNwOTkzYUtwcmI1M0ZRXG4iIFwKLSsiIENYWGlsaUlGa3RDUmllWG1Ga0dkUGNzZzRDcEpJMTE1cytWbnh5eGRzY0JVS0dsQm5HelpEVFR6cXY0SE41cVhmVml3QlpWNTBKTVxuIiBcCi0rIiBKeVJ5dFdET1dISTdsNUpiTjZha2U5N2Q4MXNrVEUxTFFyZzJrcy9Cc0NUOXowTndPWStzYmFYbnJ1ZzBOK2RhMzRQd0VVN0pHUTdcbiIgXAotKyIgYzc5NHZuZG9QOUtkL1JMU25hYlhvWDl4a1NUalBmdWFlQUVlN2hkWnNsV1plcjV5WHJLWTdNRDJuaEVGVUY4aHNpeldJOWI4U1hPXG4iIFwKLSsiIG1LNEJYKzZSdk55c090R2RXUDZrQVBuSEo4Z0Fna1VwcUg1YnFBckR0eE9jQlZueHl4ZS9lODBXK0QwS0dsQm5HelJDMXVQaHpkQ1xuIiBcCi0rIiAvKzlOcy9BUmdlR0pnRzBER1VYUUxRUFRCOEFHQnp0NVN1UGhodE9CM0FyMnRJQUd3NEpNeDUvaFd4UTdweTB2MzZQZ25wTHBvenRcbiIgXAotKyIgOURmN21ZWjZWY2YwcmxyR1pNWVljSyt3b0FmekpIOXRDK3k1TzREMGxaWFhJSmRrWlNNZnMvOFJGSXVVN0JEdGcxazBnRFZLYWNYXG4iIFwKLSsiIGdNN04wd0RtbkhsbUw4Q2ZMWndmQS9qank1c3FBYm9QQ0lOZWVuYXRBamgzNlpKQmdHZ3NjVG5BRnk3OXdoRVRHTWFEa0NGbGhtUFxuIiBcCi0rIiB5OXI2OTZyWWt3TStmV2Y5NWdHMjc5bjhPb0xNL1BSV2dJOGZKQUoycEtWR0FrWHBKZWl2UVVudExuUkhScU02ZTExWm9lNXRla3RcbiIgXAotKyIgYVRMeTB1WUl6aXVPUXVzRVRjVGd4cEwvRHZlNlQxSUtLMytnbmpmUWNCYUJvcDJqcXRGWFplTjVvR1VMNWJCekI5U3VQTkFCZC84XG4iIFwKLSsiIFl1L0FYanQ1WmNmQVhqemozK3NCMUJXMEFmd2llVVhYUW53dFd1K3MyWWNyMnRjQ0JsU1pqZ21odHowN2V0T0F0ajg2c2FOQUU1bVxuIiBcCi0rIiBwQllnbDNjdEFFL242Z3hsWlVuYnpueEtBZlEwekFJZ1NJaHRZR3IwV243UlNSUW9QZWZyeXRhQitYVUVuU0pxS2xtYktrQW1MY2pcbiIgXAotKyIgVG4xczZDVHZaSzNiTDlMeUlpY1pVdE5DSnJiTXJ6SEs1dkY0RVdsRlZHUUMwejVwMUdzQTU1eXcrQU9BNzJjVUE2ZXp3YXdEWFhIXG4iIFwKLSsiIFBqcnFONFhlTkN5SkF5d3pFeDVJcFBmZndKQUMrZld3YVExZFp6b050Tlp5VXVNcUxqMzNrZEQrOTBSZk01VksxL1RpUXFscS95aVxuIiBcCi0rIiBwRTJXN21PZk9abUFHeE5FVTlYQ0Fnc0t3bmdXenJyenBLTjBuSHU2TkJCQlRBekl6Wk9veTZZR28wVXgyQ2hyS1BldXRwR3NYVzlcbiIgXAotKyIgM3FiVzF1Y0JWajM2NUpLamZ6c1RROGlRTXNPRUlvYmYrUEpmbndyUXNYZjNxUUM1aktoQ3Z2NlZtNXoyYWJsQmFjVnFTeThOYUxJXG4iIFwKLSsiIGtVaGpway9tOVh6UEVpaGZyWGl6NzJNZHVCVml4NU55SEFKWXRXOVlGOE1JTEx6UUIvT1NCeHk4QzJMWjMzMFVBblFOREN3R0M5RVxuIiBcCi0rIiBBS29DVXYybFM5RHZ0RkREUFVhSVlZUWhiY3R2SWNPdTZSVDQrY2UzUnY1dGdSTXFUTUVINGhaWVlKVFZtZUU5UUErTDVVcWpTcmFcbiIgXAotKyIgQU5MVi9YeFNqUFNpOSs3V1cwcmJvNXFXODVQZXBMMW9MTEZja0NucE94ZkFTeGZ2bnpMbU80NzlYWXp3THAxNng0QytPYjFOejRDXG4iIFwKLSsiIE1KVHZXUUNRaXBycVFEcExYdCtUc2tiOUpJYXBZbDVZQTE5YU44Vng4L0gzZXhlVGpaQWhaWVlKTVNUcmN4Z2c3MHVCdytJYURUblxuIiBcCi0rIiB1amQyYVdsZGFyVFNWNUZ5OVR0d1B4RUNyYjZqOWplbmorcHR1ZWhQZ2hwdHZQdUs5WkxxNitnSHN3QlVkVzdQUTlXU3MyVnJWRG1cbiIgXAotKyIgenpHMGtsWTFCU1FZMkRaVXhsb1ZpOFlrS3JjbzhGSVVQS0RCTml5SmV1dXJ3RDRJNWJidDhJTUpMdWJnZklaWE1XaktxWGFLckNtXG4iIFwKLSsiIGExWnVLNUxOdFRVMWg4R2FHK2Z0aExnL29jZXVzdjBvVlF4a0hRa1hQQ1p6L1FBM0hQUFBTc0Fubjd5OFNzQmVyb09ud3RnNHk4QVxuIiBcCi0rIiB5T2V6OHFPUmpsdVFDK1lISkgxZmxsMUY3VWdPSUpsSzdnT1lQbXZ1YlhMbXBQODYzbnNpWkVpWllWS1dJNnhjK2EyRkFIdi90UDFcbiIgXAotKyIgY2dNN096bXFBd0xkYUFSelA2UUNvYmFqckE1Z3phKzVMQUxmZWZ1SitCc0tndDdkM3h0alA2dXJxeFAydTFPRjNYbkZpRVRJa1JJXG4iIFwKLSsiIGdRSVVLRStIK0Mvd01HWDhJYXMxczZDUUFBQUFCSlJVNUVya0pnZ2c9PVxuIiBcCi0gIkVORDpWQ0FSRCIKLS0tIAotMS44LjMuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDEtaW1hcHgtRml4LXNpZ25hdHVyZS1mb3ItaW1hcHhfdG9rZW5pc2Vfc3RydWN0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAxLWltYXB4LUZpeC1zaWduYXR1cmUtZm9yLWltYXB4X3Rva2VuaXNlX3N0cnVjdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjgyYTc2ZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDEtaW1hcHgtRml4LXNpZ25hdHVyZS1mb3ItaW1hcHhfdG9rZW5pc2Vfc3RydWN0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotRnJvbSAwZTEwZTk3NjAyNWIyMWQxMmRmMDk5ZTgyOTUxZjc1OTAyNGFkNjQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFRodSwgMjQgQXVnIDIwMTcgMjI6MDQ6NTYgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gaW1hcHg6IEZpeCBzaWduYXR1cmUgZm9yIGltYXB4X3Rva2VuaXNlX3N0cnVjdCgpCi0KLWNsYW5nIGNvbXBsYWlucyBhYm91dCBkaWZmZXJlbnQgc2lnbmF0dXJlIGZvciB0aGlzIHBhdGNoCi0KLUZpeGVzCi1jYW1lbC9wcm92aWRlcnMvaW1hcHgvY2FtZWwtaW1hcHgtdG9rZW5zLnR4dDo1NjoxOiBlcnJvcjogY29uZmxpY3RpbmcgdHlwZXMgZm9yICdpbWFweF90b2tlbmlzZV9zdHJ1Y3QnCi18IGltYXB4X3Rva2VuaXNlX3N0cnVjdCAocmVnaXN0ZXIgY29uc3QgY2hhciAqc3RyLCByZWdpc3RlciBzaXplX3QgbGVuKQotfCBeCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBjYW1lbC9wcm92aWRlcnMvaW1hcHgvY2FtZWwtaW1hcHgtdG9rZW5zLnR4dCB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2NhbWVsL3Byb3ZpZGVycy9pbWFweC9jYW1lbC1pbWFweC10b2tlbnMudHh0IGIvY2FtZWwvcHJvdmlkZXJzL2ltYXB4L2NhbWVsLWltYXB4LXRva2Vucy50eHQKLWluZGV4IGQ0ODUwMTg2NS4uOTk0YzM2OGMwIDEwMDY0NAotLS0tIGEvY2FtZWwvcHJvdmlkZXJzL2ltYXB4L2NhbWVsLWltYXB4LXRva2Vucy50eHQKLSsrKyBiL2NhbWVsL3Byb3ZpZGVycy9pbWFweC9jYW1lbC1pbWFweC10b2tlbnMudHh0Ci1AQCAtMSw3ICsxLDcgQEAKLSAvKiBUaGlzIGNvbnRhaW5zIGFsbCBvZiB0aGUga2V5d29yZHMgd2UgY2FyZSBhYm91dC4gIFRoZXNlCi0gICAgY2FuIGJlIGNvbnZlcnRlZCB0byBhbiBpZCB2ZXJ5IGVmZmljaWVudGx5ICovCi0gc3RydWN0IF9pbWFweF9rZXl3b3JkIHtjb25zdCBnY2hhciAqbmFtZTsgY2FtZWxfaW1hcHhfaWRfdCBpZDsgfTsKLS1zdHJ1Y3QgX2ltYXB4X2tleXdvcmQgKmltYXB4X3Rva2VuaXNlX3N0cnVjdCAocmVnaXN0ZXIgY29uc3QgY2hhciAqc3RyLCByZWdpc3RlciB1bnNpZ25lZCBpbnQgbGVuKTsKLStzdHJ1Y3QgX2ltYXB4X2tleXdvcmQgKmltYXB4X3Rva2VuaXNlX3N0cnVjdCAocmVnaXN0ZXIgY29uc3QgY2hhciAqc3RyLCByZWdpc3RlciBzaXplX3QgbGVuKTsKLSAlJQotIEFMRVJULCAgICAgICAgICBJTUFQWF9BTEVSVAotIEFQUEVORFVJRCwJSU1BUFhfQVBQRU5EVUlECi0tLSAKLTIuMTQuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDItQ01ha2VMaXN0cy50eHQtcmVtb3ZlLUNIRUNLX0NfU09VUkNFX1JVTlMtY2hlY2sucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDItQ01ha2VMaXN0cy50eHQtcmVtb3ZlLUNIRUNLX0NfU09VUkNFX1JVTlMtY2hlY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhkYzdlMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwMi1DTWFrZUxpc3RzLnR4dC1yZW1vdmUtQ0hFQ0tfQ19TT1VSQ0VfUlVOUy1jaGVjay5wYXRjaApAQCAtMCwwICsxLDUzIEBACitGcm9tIDIxMGIyMDRkOWVkZDcxMjAyNDU0ZmYwNDAxM2NjNTJiMjNjNTk4ZTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogVHVlLCAxOSBEZWMgMjAxNyAxNjo1NToxMyArMDEwMAorU3ViamVjdDogW1BBVENIXSBDTWFrZUxpc3RzLnR4dDogcmVtb3ZlIENIRUNLX0NfU09VUkNFX1JVTlMgY2hlY2sKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworKiBUUllfUlVOOiBkb2VzIG5vdCB3b3JrIGZvciBPRQorKiBIQVZFX0xLU1RSRlRJTUUgaXMgc2V0IGJ5IHJlY2lwZSBhcyBjb25maWd1cmUgb3B0aW9uCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CistLS0KKyBDTWFrZUxpc3RzLnR4dCB8IDIzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggYTIzOTZmMi4uZjNiMjcxYiAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTU3MywyOSArNTczLDYgQEAgQ0hFQ0tfQ19TT1VSQ0VfQ09NUElMRVMoIiNpbmNsdWRlIDxsYW5naW5mby5oPgorIENIRUNLX0NfU09VUkNFX0NPTVBJTEVTKCIjaW5jbHVkZSA8bGFuZ2luZm8uaD4KKyAJCQlpbnQgbWFpbih2b2lkKSB7IGNoYXIgKmRldGFpbCA9IG5sX2xhbmdpbmZvIChfTkxfQUREUkVTU19DT1VOVFJZX0FCMik7IHJldHVybiAwOyB9IiBIQVZFX19OTF9BRERSRVNTX0NPVU5UUllfQUIyKQorIAorLSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLSMgQ2hlY2sgdG8gc2VlIGlmIHN0cmZ0aW1lIHN1cHBvcnRzIHRoZSB1c2Ugb2YgJWwgYW5kICVrCistIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCistCistQ0hFQ0tfQ19TT1VSQ0VfUlVOUygiCistCSNpbmNsdWRlIDxzdGRsaWIuaD4KKy0JI2luY2x1ZGUgPHN0cmluZy5oPgorLQkjaW5jbHVkZSA8dGltZS5oPgorLQlpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCXsKKy0JY2hhciBidWZbMTBdOworLQl0aW1lX3QgcmF3dGltZTsKKy0Jc3RydWN0IHRtICp0aW1laW5mbzsKKy0KKy0JdGltZSgmcmF3dGltZSk7CistCXRpbWVpbmZvPWxvY2FsdGltZSgmcmF3dGltZSk7CistCWJ1ZlswXSA9IDA7CistCXN0cmZ0aW1lKGJ1ZiwgMTAsIFwiJWx4JWtcIiwgdGltZWluZm8pOworLQorLQlpZiAoIWJ1ZlswXSB8fCBidWZbMF0gPT0gJ3gnIHx8IHN0cnN0cihidWYsIFwibFwiKSB8fCBzdHJzdHIoYnVmLCBcImtcIikpCistCQlyZXR1cm4gMTsKKy0JcmV0dXJuIDA7CistCX0iIEhBVkVfTEtTVFJGVElNRSkKKy0KKyAjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICMgc3lzdGVtIG1haWwgc3R1ZmYKKyAjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLS0gCisyLjE0LjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAyLUZpeC1mb3ItYXV0b21ha2UtMS4xMi54LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAyLUZpeC1mb3ItYXV0b21ha2UtMS4xMi54LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZjIyMmFlLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwMi1GaXgtZm9yLWF1dG9tYWtlLTEuMTIueC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLUZyb20gZjQ2NDIzYzllNGI4YjE5ZWRhMjdiMzA3NDU2YTcxN2RlNzliNzVmMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE5pdGluIEEgS2FtYmxlIDxuaXRpbi5hLmthbWJsZUBpbnRlbC5jb20+Ci1EYXRlOiBTdW4sIDQgQXVnIDIwMTMgMDk6MTU6NDMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAyLzVdIEZpeCBmb3IgYXV0b21ha2UtMS4xMi54Ci0KLUZpeGVkIHRoZXNlIGtpbmRzIGlmIHdhcm5pbmctZXJyb3JzCi0KLXdhcm5pbmc6ICdsaWJlYm9va2JhY2tlbmRmaWxlLmxhJzogbGlua2luZyBsaWJ0b29sIGxpYnJhcmllcyB1c2luZyBhIG5vbi1QT1NJWCBhcmNoaXZlciByZXF1aXJlcyAnQU1fUFJPR19BUicgaW4gJ2NvbmZpZ3VyZS5hYycKLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1PZmYtQnk6IE5pdGluIEEgS2FtYmxlIDxuaXRpbi5hLmthbWJsZUBpbnRlbC5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+Ci0tLS0KLSBjb25maWd1cmUuYWMgfCAxICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggOWJkOTdkYi4uNDlkNzUwNiAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMzEsNiArMzEsNyBAQCBBQ19MQU5HKEMpCi0gCi0gZG5sIEF1dG9tYWtlIDEuMTEgLSBTaWxlbnQgQnVpbGQgUnVsZXMKLSBtNF9pZmRlZihbQU1fU0lMRU5UX1JVTEVTXSwgW0FNX1NJTEVOVF9SVUxFUyhbeWVzXSldKQotK200X2lmZGVmKFtBTV9QUk9HX0FSXSwgW0FNX1BST0dfQVJdKSAjIHJlcXVpcmVkIGJ5IGF1dG9tYWtlIDEuMTIKLSAKLSBkbmwgUmVxdWlyZWQgUGFja2FnZSBWZXJzaW9ucwotIG00X2RlZmluZShbZ2xpYl9taW5pbXVtX3ZlcnNpb25dLCBbMi4yOF0pCi0tLSAKLTEuOC4zLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAzLURpc2FibGUtV2Vycm9yLWZvci1hdXRvbWFrZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwMy1EaXNhYmxlLVdlcnJvci1mb3ItYXV0b21ha2UucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExODJkNGQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAzLURpc2FibGUtV2Vycm9yLWZvci1hdXRvbWFrZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLUZyb20gMzdiMjI3Y2ZmNzhmZDRjNjUyNjUxNjYyZGFmZDcxNTM3MjgwODI0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE5pdGluIEEgS2FtYmxlIDxuaXRpbi5hLmthbWJsZUBpbnRlbC5jb20+Ci1EYXRlOiBTdW4sIDQgQXVnIDIwMTMgMDk6MTY6NTkgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAzLzVdIERpc2FibGUgV2Vycm9yIGZvciBhdXRvbWFrZQotCi1Bdm9pZCB0aGVzZSB3YXJuaW5nLWVycm9ycwotCi1hdXRvbWFrZTogd2FybmluZ3MgYXJlIHRyZWF0ZWQgYXMgZXJyb3JzCi1NYWtlZmlsZS5hbToxNTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1NYWtlZmlsZS5hbToyMTogd2FybmluZzogcGtnY29uZmlnX0RBVEE6LSQoQVBJX1ZFUlNJT046IG5vbi1QT1NJWCB2YXJpYWJsZSBuYW1lCi1hZGRyZXNzYm9vay9iYWNrZW5kcy9maWxlL01ha2VmaWxlLmFtOiBpbnN0YWxsaW5nICcuL2RlcGNvbXAnCi1hZGRyZXNzYm9vay9saWJlYm9vay9NYWtlZmlsZS5hbTo1NTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1hZGRyZXNzYm9vay9saWJlYm9vay9NYWtlZmlsZS5hbTo2NTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1hZGRyZXNzYm9vay9saWJlYm9vay9NYWtlZmlsZS5hbTo2Njogd2FybmluZzogc3Vic3QgLSxfLCQqOiBub24tUE9TSVggdmFyaWFibGUgbmFtZQotYWRkcmVzc2Jvb2svbGliZWJvb2svTWFrZWZpbGUuYW06NjY6IChwcm9iYWJseSBhIEdOVSBtYWtlIGV4dGVuc2lvbikKLWFkZHJlc3Nib29rL2xpYmVib29rL01ha2VmaWxlLmFtOjcyOiB3YXJuaW5nOiBwa2djb25maWdfREFUQTotJChBUElfVkVSU0lPTjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLWFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2svTWFrZWZpbGUuYW06Mjogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL01ha2VmaWxlLmFtOjM6IHdhcm5pbmc6IHN1YnN0IC0sXywkKjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLWFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2svTWFrZWZpbGUuYW06MzogKHByb2JhYmx5IGEgR05VIG1ha2UgZXh0ZW5zaW9uKQotZ2xpYi1nZW4ubWFrOjk6IHdhcm5pbmc6ICclJy1zdHlsZSBwYXR0ZXJuIHJ1bGVzIGFyZSBhIEdOVSBtYWtlIGV4dGVuc2lvbgotYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay9NYWtlZmlsZS5hbTo1OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjEzOiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2svTWFrZWZpbGUuYW06NTogICAnZ2xpYi1nZW4ubWFrJyBpbmNsdWRlZCBmcm9tIGhlcmUKLWdsaWItZ2VuLm1hazoxODogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL01ha2VmaWxlLmFtOjU6ICAgJ2dsaWItZ2VuLm1haycgaW5jbHVkZWQgZnJvbSBoZXJlCi1nbGliLWdlbi5tYWs6MjY6IHdhcm5pbmc6ICclJy1zdHlsZSBwYXR0ZXJuIHJ1bGVzIGFyZSBhIEdOVSBtYWtlIGV4dGVuc2lvbgotYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay9NYWtlZmlsZS5hbTo1OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjM4OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2svTWFrZWZpbGUuYW06NTogICAnZ2xpYi1nZW4ubWFrJyBpbmNsdWRlZCBmcm9tIGhlcmUKLWdsaWItZ2VuLm1hazo0MTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL01ha2VmaWxlLmFtOjU6ICAgJ2dsaWItZ2VuLm1haycgaW5jbHVkZWQgZnJvbSBoZXJlCi1hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL01ha2VmaWxlLmFtOjg2OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWFkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2svTWFrZWZpbGUuYW06MTAxOiB3YXJuaW5nOiBwa2djb25maWdfREFUQTotJChBUElfVkVSU0lPTjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLWNhbGVuZGFyL2JhY2tlbmRzL3dlYXRoZXIvTWFrZWZpbGUuYW06NDQ6IHdhcm5pbmc6ICclJy1zdHlsZSBwYXR0ZXJuIHJ1bGVzIGFyZSBhIEdOVSBtYWtlIGV4dGVuc2lvbgotY2FsZW5kYXIvbGliZWNhbC9NYWtlZmlsZS5hbTo1Mzogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1jYWxlbmRhci9saWJlY2FsL01ha2VmaWxlLmFtOjYxOiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVjYWwvTWFrZWZpbGUuYW06NjI6IHdhcm5pbmc6IHN1YnN0IC0sXywkKjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLWNhbGVuZGFyL2xpYmVjYWwvTWFrZWZpbGUuYW06NjI6IChwcm9iYWJseSBhIEdOVSBtYWtlIGV4dGVuc2lvbikgY2FsZW5kYXIvbGliZWNhbC9NYWtlZmlsZS5hbTo2ODogd2FybmluZzogcGtnY29uZmlnX0RBVEE6LSQoQVBJX1ZFUlNJT046IG5vbi1QT1NJWCB2YXJpYWJsZSBuYW1lCi1jYWxlbmRhci9saWJlZGF0YS1jYWwvTWFrZWZpbGUuYW06NTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1jYWxlbmRhci9saWJlZGF0YS1jYWwvTWFrZWZpbGUuYW06Njogd2FybmluZzogc3Vic3QgLSxfLCQqOiBub24tUE9TSVggdmFyaWFibGUgbmFtZQotY2FsZW5kYXIvbGliZWRhdGEtY2FsL01ha2VmaWxlLmFtOjY6IChwcm9iYWJseSBhIEdOVSBtYWtlIGV4dGVuc2lvbikKLWdsaWItZ2VuLm1hazo5OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjEzOiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjE4OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjI2OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjM4OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotZ2xpYi1nZW4ubWFrOjQxOiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4OiAgICdnbGliLWdlbi5tYWsnIGluY2x1ZGVkIGZyb20gaGVyZQotY2FsZW5kYXIvbGliZWRhdGEtY2FsL01ha2VmaWxlLmFtOjcxOiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLWNhbGVuZGFyL2xpYmVkYXRhLWNhbC9NYWtlZmlsZS5hbTo4Njogd2FybmluZzogcGtnY29uZmlnX0RBVEE6LSQoQVBJX1ZFUlNJT046IG5vbi1QT1NJWCB2YXJpYWJsZSBuYW1lCi1jYW1lbC9NYWtlZmlsZS5hbToxNzogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1saWJlYmFja2VuZC9NYWtlZmlsZS5hbTozNTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1saWJlYmFja2VuZC9NYWtlZmlsZS5hbTo0MTogd2FybmluZzogcGtnY29uZmlnX0RBVEE6LSQoQVBJX1ZFUlNJT046IG5vbi1QT1NJWCB2YXJpYWJsZSBuYW1lCi1saWJlZGF0YXNlcnZlci9NYWtlZmlsZS5hbTo5MTogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1saWJlZGF0YXNlcnZlci9NYWtlZmlsZS5hbTo5Nzogd2FybmluZzogcGtnY29uZmlnX0RBVEE6LSQoQVBJX1ZFUlNJT046IG5vbi1QT1NJWCB2YXJpYWJsZSBuYW1lCi1saWJlZGF0YXNlcnZlcnVpL01ha2VmaWxlLmFtOjEwODogd2FybmluZzogJyUnLXN0eWxlIHBhdHRlcm4gcnVsZXMgYXJlIGEgR05VIG1ha2UgZXh0ZW5zaW9uCi1saWJlZGF0YXNlcnZlcnVpL01ha2VmaWxlLmFtOjExODogd2FybmluZzogcGtnY29uZmlnX0RBVEE6LSQoQVBJX1ZFUlNJT046IG5vbi1QT1NJWCB2YXJpYWJsZSBuYW1lCi1zZXJ2ZXJzL2dvb2dsZS9saWJnZGF0YS1nb29nbGUvTWFrZWZpbGUuYW06Mjc6IHdhcm5pbmc6ICclJy1zdHlsZSBwYXR0ZXJuIHJ1bGVzIGFyZSBhIEdOVSBtYWtlIGV4dGVuc2lvbgotc2VydmVycy9nb29nbGUvbGliZ2RhdGEtZ29vZ2xlL01ha2VmaWxlLmFtOjMzOiB3YXJuaW5nOiBwa2djb25maWdfREFUQTotJChBUElfVkVSU0lPTjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLXNlcnZlcnMvZ29vZ2xlL2xpYmdkYXRhL01ha2VmaWxlLmFtOjMxOiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLXNlcnZlcnMvZ29vZ2xlL2xpYmdkYXRhL01ha2VmaWxlLmFtOjM3OiB3YXJuaW5nOiBwa2djb25maWdfREFUQTotJChBUElfVkVSU0lPTjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLXNlcnZlcnMvZ3JvdXB3aXNlL01ha2VmaWxlLmFtOjg1OiB3YXJuaW5nOiAnJSctc3R5bGUgcGF0dGVybiBydWxlcyBhcmUgYSBHTlUgbWFrZSBleHRlbnNpb24KLXNlcnZlcnMvZ3JvdXB3aXNlL01ha2VmaWxlLmFtOjkxOiB3YXJuaW5nOiBwa2djb25maWdfREFUQTotJChBUElfVkVSU0lPTjogbm9uLVBPU0lYIHZhcmlhYmxlIG5hbWUKLWF1dG9yZWNvbmY6IGF1dG9tYWtlIGZhaWxlZCB3aXRoIGV4aXQgc3RhdHVzOiAxCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCi0KLVNpZ25lZC1PZmYtQnk6IE5pdGluIEEgS2FtYmxlIDxuaXRpbi5hLmthbWJsZUBpbnRlbC5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+Ci0KLUNvbmZsaWN0czoKLQljb25maWd1cmUuYWMKLS0tLQotIGNvbmZpZ3VyZS5hYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggNDlkNzUwNi4uMWM4MDJmZiAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMjEsNyArMjEsNyBAQCBtNF9kZWZpbmUoW2FwaV92ZXJzaW9uXSwgWzEuMl0pCi0gZG5sIEF1dG9jb25mIC8gQXV0b21ha2UgSW5pdGlhbGl6YXRpb24KLSBBQ19QUkVSRVEoMi42MikKLSBBQ19JTklUKFtldm9sdXRpb24tZGF0YS1zZXJ2ZXJdLFtlZHNfdmVyc2lvbl0sW2h0dHA6Ly9idWd6aWxsYS5nbm9tZS5vcmcvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PUV2b2x1dGlvbi1EYXRhLVNlcnZlcl0pCi0tQU1fSU5JVF9BVVRPTUFLRShbZ251IDEuMTAgdGFyLXVzdGFyIGRpc3QteHogbm8tZGlzdC1nemlwIC1XYWxsIC1Xbm8tcG9ydGFiaWxpdHkgLVdlcnJvciBmb3JlaWduXSkKLStBTV9JTklUX0FVVE9NQUtFKFtnbnUgMS4xMCB0YXItdXN0YXIgZGlzdC14eiBuby1kaXN0LWd6aXAgLVdhbGwgLVduby1wb3J0YWJpbGl0eSBmb3JlaWduXSkKLSBBQ19DT05GSUdfTUFDUk9fRElSKFttNF0pCi0gQUNfQ09ORklHX1NSQ0RJUihSRUFETUUpCi0gQUNfQ09ORklHX0hFQURFUlMoY29uZmlnLmgpCi0tLSAKLTEuOC4zLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAzLWNvbnRhY3QtUmVwbGFjZS10aGUtTm92ZWxsLXNhbXBsZS1jb250YWN0LXdpdGgtc29tZXQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDMtY29udGFjdC1SZXBsYWNlLXRoZS1Ob3ZlbGwtc2FtcGxlLWNvbnRhY3Qtd2l0aC1zb21ldC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zY2RmYThiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDAzLWNvbnRhY3QtUmVwbGFjZS10aGUtTm92ZWxsLXNhbXBsZS1jb250YWN0LXdpdGgtc29tZXQucGF0Y2gKQEAgLTAsMCArMSwyMDIgQEAKK0Zyb20gNGRmOGJkOGFlNDI1ODI4OTY2M2IyN2FmMTIwNzAyN2M3ZWUwNjM0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KK0RhdGU6IFN1biwgNCBBdWcgMjAxMyAwOToxMzoyNSArMDIwMAorU3ViamVjdDogW1BBVENIIDEvNV0gY29udGFjdDogUmVwbGFjZSB0aGUgTm92ZWxsIHNhbXBsZSBjb250YWN0IHdpdGggc29tZXRoaW5nCisgbW9yZSBhcHByb3ByaWF0ZQorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCitTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+CistLS0KKyBzcmMvYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay94aW1pYW4tdmNhcmQuaCB8IDE3OSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvYWRkcmVzc2Jvb2svbGliZWRhdGEtYm9vay94aW1pYW4tdmNhcmQuaCBiL3NyYy9hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL3hpbWlhbi12Y2FyZC5oCitpbmRleCA3ODJkMzdiLi41YjBiMjUwIDEwMDY0NAorLS0tIGEvc3JjL2FkZHJlc3Nib29rL2xpYmVkYXRhLWJvb2sveGltaWFuLXZjYXJkLmgKKysrKyBiL3NyYy9hZGRyZXNzYm9vay9saWJlZGF0YS1ib29rL3hpbWlhbi12Y2FyZC5oCitAQCAtMSw4MCArMSwxMDUgQEAKKyAjZGVmaW5lIFhJTUlBTl9WQ0FSRCBcCisgIkJFR0lOOlZDQVJEXG4iIFwKKy0iWC1FVk9MVVRJT04tRklMRS1BUzpOb3ZlbGwgWGltaWFuIEdyb3VwXG4iIFwKKy0iQURSO1RZUEU9V09SSzo7U3VpdGUgNTAwOzggQ2FtYnJpZGdlIENlbnRlcjtDYW1icmlkZ2U7TUE7MDIxNDI7VVNBXG4iIFwKKy0iTEFCRUw7VFlQRT1XT1JLOjggQ2FtYnJpZGdlIENlbnRlciwgU3VpdGUgNTAwXFxuQ2FtYnJpZGdlXFwsIE1BXFxuMDIxNDJcXG5VU0FcbiIgXAorLSJURUw7V09SSztWT0lDRTooNjE3KSA2MTMtMjAwMFxuIiBcCistIlRFTDtXT1JLO0ZBWDooNjE3KSA2MTMtMjAwMVxuIiBcCistIkVNQUlMO0lOVEVSTkVUOmhlbGxvQHhpbWlhbi5jb21cbiIgXAorLSJVUkw6aHR0cDovL3d3dy54aW1pYW4uY29tL1xuIiBcCistIk9SRzpOb3ZlbGw7WGltaWFuIEdyb3VwXG4iIFwKKy0iUEhPVE87RU5DT0RJTkc9YjtUWVBFPUpQRUc6LzlqLzRBQVFTa1pKUmdBQkFRRUFSd0JIQUFELy9nQVhRM0psWVhSbFpDQjNhWFJvXG4iIFwKKy0iIElGUm9aU0JIU1UxUS85c0FRd0FJQmdZSEJnVUlCd2NIQ1FrSUNnd1VEUXdMQ3d3WkVoTVBGQjBhSHg0ZEdod2NJQ1F1SnlBaUxDTVxuIiBcCistIiBjSENnM0tTd3dNVFEwTkI4bk9UMDRNand1TXpReS85c0FRd0VKQ1FrTUN3d1lEUTBZTWlFY0lUSXlNakl5TWpJeU1qSXlNakl5TWpcbiIgXAorLSIgSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeU1qSXlNakl5TWpJeS84QUFFUWdBYmdCa0F3RWlBQUlSQVFNUkFmL0VBXG4iIFwKKy0iIEJ3QUFBSURBUUVCQVFBQUFBQUFBQUFBQUFBSEJRWUlCQU1CQXYvRUFFWVFBQUVEQXdFRkJnTUVCZ1FQQUFBQUFBRUNBd1FBQlJFR1xuIiBcCistIiBCeEloTVdFVElrRlJjWUVVa2FFSU1rTEJGU05Tc2JMUkZtSnlkUmdrTXpZM1EwUkdncEtUb3NMaDhQL0VBQnNCQVFBQ0F3RUJBQUFcbiIgXAorLSIgQUFBQUFBQUFBQUFBRUJRSURCZ0VILzhRQUxSRUFBUU1DQXdZR0FnTUFBQUFBQUFBQUFRQUNBd1FSRWlGUkJSTWlNVUZoTW5HQmtiXG4iIFwKKy0iIEhSQnNFVW9mRC8yZ0FNQXdFQUFoRURFUUEvQUgvUlJSUkVWd1hlOVcyd3dGemJwTlppeGtjMXVxd1BRZVo2Q29IWGV2TGZvbTFkc1xuIiBcCistIiA5aDZhNkQ4UEdDc0ZaSE1rK0NSNG44Nnl6ZGJycWZhWnFZQlNucDBoUlBaTW9HNjJ5bm9PU1IxUHVhOExnMFhQSmVnWDVKdjZrKzBcbiIgXAorLSIgYkJqcld4cDIyTGxrY0JJbEhzMEhxRWppUjY0cGVUOXVtdXBxeVdyaEhocFA0V0k2ZUh1cmVOVzdUbXcrREdhVEkxRkpWSmR4a3NNXG4iIFwKKy0iIHFLRzA5Q3JtZmJGTUNIcEN3MnhBVERzOEpySDRneWtxK1o0bXFpZmJNVVpzeHBkL1FVbGxLNTNNMlNDYjJ4YStiWHZmMGdjVjBVd1xuIiBcCistIiAwUi9EVmt0SDJoZFV3bHBGeGpRcmcxNDkwdExQdU9IMHB2djJxRTRqZGNoeDFwOGxOQWo5MVZhODdPdE0zUkN0KzJOeDNEeWNpL3FcbiIgXAorLSIgeVBZY0Q3ZzFFWitSUjRyU01JOWIvUzJtaGRiaEtzbWtkdFdtTlR1TnhuWFZXMmN2Z0daUkFTbytTVjhqNzRQU21PbFFVTXBPUldQXG4iIFwKKy0iIE5VN01yalkwcmxRRm1kRFR4T0U0Y1FPbzhSMUh5cWUyWjdaSjJtMzJiWGZIbkpWcEpDVXVxTzh1UDcrS2VuaDRlVlhrRlJGVU14eFxuIiBcCistIiBHNFVPU04wWnM0TFUxRmVFT1d4T2l0eVl6cUhXWEVoU0ZvT1FvSGtRYTk2M3JCRkZGRkVSVWRmcjFFMDlZNWQxbXIzWThac3JWNW5cbiIgXAorLSIgeUE2azRBNm1wR2tMOW9qVXltMFcvVHJMbUFzR1UrQWVZQndnZlBKLzRSUkVxcnJjYjF0SjFvVXBCWExtT2JxVVo3clNCeVQwU2taXG4iIFwKKy0iIEo4emsxcEhRbWlMWG8renBiYWJDM1NBcDU1UTd6eXZNOVBJVXVkaUdtVVJiUzdmcENNdnpGRnRvbjhMU1R4eDZxSDBGTTdWVjlWWVxuIiBcCistIiA5TXpaN2FRdDV0QVN3MysyNm9oS0IvekVWU1ZGVnZaekdNdzAydHFlL2twYkk4TE1SNi9DL1h4cTlRYWdmYmJQK0lXMVFRNFJ5Y2ZcbiIgXAorLSIgeG5jSFJBSUovckVmc211MmE5RmdzbDJYSVpqdGo4YnF3Z2ZNMSs5TDJWRmtzRVNBVjlvNmhHODg2ZWJqcWp2TFdlcFVTYXJ1dGRuXG4iIFwKKy0iIE1YVitvYlJjWmtzL0N3Q1E1REtNcGVCT1R4end6Z0E5S3dmVHRmeFBPU0I1R1FVWGM5cE9qb0MrelhlMkhWNXhpT0M2UG1rRWZXcFxuIiBcCistIiB4ZTZ0QVdnaFNWRElJT1FSWHhla05PeDRiMFdQWllMTFRyYW0xOW13bEpLU01IampOVXpRZDJkWk03U054Y3pjTE9zdHRxVnpkWXpcbiIgXAorLSIgM0Zld0k5aUtwSzJtak1aZEZlN2VkOU5mVDlxWkRJNE9BZDFWa2tvNTBuZG91aTIya3VYcTJOQk9POUpaU09IOXNEOS96ODZjOGdjXG4iIFwKKy0iIERVSk5RbGFGSlVrS1NvWUlJNEVWR29LcDlQSUh0OWU2bHlSTmxaaGNxbHNKMmd1UXB5ZEwzRjRtTzdrdzFLUDNGY3lqMFBFanJuelxuIiBcCistIiByU0FJSXlPVllmdnNKM1RHcWxDS3BUZll1SmZqTEhNRE9SOGp3OXEyRm95K28xRnBXQmNrWS9YTXBVb2VSeHhIc2NpdS9qZUpHQjdcbiIgXAorLSIgZVJYUHZhV3VMVDBVL1JSUldheFFlVlk4MngzQlZ3Mm9YYkp5aGdvWlIwQVFNL1VtdGhLKzZmU3NXYlJRVzlwVjczeC90WlB0d05FXG4iIFwKKy0iIFdqOU53MFd1d3dJS1FBR0k2Ry9jQVordFJXMGx4NW5URVc0TnRxZGF0OXhqeTVDRWpKTFNGWlA1SDJxYVlkQ2twVWs1QkdRYTdBcFxuIiBcCistIiBEclNtM0VwV2hZS1ZKVU1nZzh3Ulh6K2txeXlURzdWWFVzVjIyQ2xyZmM0OCtDek1pUEllanZJQzIzRUhJVURYTmU3OWI3SGJYYmhcbiIgXAorLSIgYzVTSThadm10WjVueUE1azlCUzdkMG5mZE1QdVNkRDNKdEVaYWl0ZG9tNVV6bngzRHpUNmNQV2t2cS9WMTYxMWZHVzVuWnRCQ2d5XG4iIFwKKy0iIHpGYlhodEN5Y0U1SnhrbnhQaFhSMDdSVWVCM0QxMUgrOWxBZndjeG1ycnFMYnhjSHBpa1dHQXcxRlNjQnlVa3FXdnJnRUJQcHhxaVxuIiBcCistIiB6dGRYV2RxbU5xSUlqeDdneWtKVXBoSkNYQU0vZUJKNWc0UFFDbUJaTmlES1dFdTM2NHVGMGpKWWg0QVQ2cVVEbjJGVnU2YlBJa1RcbiIgXAorLSIgYVRCMDh4S2VNT1UySDk5ZUN0S1J2WkdRTVo3aHdjZU5aeFZHenNibU16SUJ2NWRmTmVPam5zQ2RVd2JUdEtzVjhuSmdJY2Naa3F3XG4iIFwKKy0iIGxKY1RoRHF2Skp6OHM0elV0TFZ6cGMydlpaS3QrcUJJa3lVS3QwVjBPTktTZSs3ZzVTQ1BEcjlLdjB0em5YUDFjTk15UWZ4blhCQ1xuIiBcCistIiB0cVV5dUIzZ3NsZnRQakpMa0dXQjN1ODJvL0lqODZiZjJlN2lxUm94eUlwV2ZocEMwSkhRNFYvNUdsVnRKY0J0MFJQaVhpZiswMHdcbiIgXAorLSIgUHM1QlF0TnhQNFRKUDhLYTZyWlpKcFczNy9LcTY4QVRsUGVpaWlyQlEwSGxXUjl0OXFWYnRwRXAvZHdpWTBoNUo4TWdicC9oK3RhXG4iIFwKKy0iIDRwTTdmZEtMdW1uMnJ4R2JLbjRCS2w0SEV0bjczeXdEN0dpTDdvMjhKdXVsTGJLQ3NxTEtVTC90SjdwK29xeUllNGM2Ukd5elU0Z1xuIiBcCistIiBUSExOSmMzV3BDdDlnazhBNTRqM0dQY2RhWnVvb3N5ODJWMjNRcGFZcGtFSWRlSUpLVWVJQUhpZVhQa1RYQTExRHVhc3NKc0NlZllcbiIgXAorLSIgL1N2WVpONUZpR1pVOWVkUndMREFYSm55Mm1SdWtvU3RRQldRT1FIalNqZzdQWUU3Wm16Y1piN2NHNktLNUNaRDZ0eE9DY0pRdlBnXG4iIFwKKy0iIFFBUWZBbjJxNlJOT1dpMUQ5SjNSNWR3bFIyeG1aUFZ2OW1sSThCeVRqNTlhcjA5TG0walVJUWw1WTB6QVVNclFTUGlYZkhIcHl6NFxuIiBcCistIiBEMXFUUnZNUUlpZVFBUVhPdGxsZklEcmUvWDJXcVZtSThRejZEOXEwYlA5U08zN1NyU3BXOFpVVlh3N3ErWWNLZVNnZVJ5TVo2NXFcbiIgXAorLSIgcWFtbXZXVGFsRXYxeWpPSnRhV2ZoMjVDQnZCT1VrSFBseFVlSGx5cS9NaVBDaXR4b3JTR1dHMDdxRzBEQVNLNDV4Wmx4M0dKRGFIXG4iIFwKKy0iIFdsakNrTEdRUjZWR2luWTJvZklHOExyaTJnT2kzN2h4WUczekMrdVQySFk2WkRieUZNckFVbHdLN3BCNUhOUmNwN254cXB6ZE4zR1xuIiBcCistIiBDRlE3Tk9iVGEzbkFwY2FTTi9zdU9lNFNEdzZWSzNPNHN3b2pzcDlXR214azlmSURyVzRVeldrYnQySy92NjkxdmplYzhZdFpVVGFcbiIgXAorLSIgQkwrSXVNYUlqaVdXeXRYUW4vd0JENjA4dGd0clZDMFcyK3RPRlNGcWQ5aWNENkFWbm1GRmw2bjFBaG9BbVJQZHdjZmdSNG4ySDdxXG4iIFwKKy0iIDJQcGkxTjJleFJvamFRbEtFQklIa0FLN0dtaTNNVFdhTG42aVRlU0YrcW1hS0tLM3JTaXVlZEVhblEzSTdxUXBDMGtFRVp6WFJSUlxuIiBcCistIiBGam5hUm9TVm9xL0tjWVF2OUhPcjNtSEIvcXp6M1NlbmhWaTBmdEFibk5Od0xvNkc1aVFFb2RVY0pkOWZKWDc2MFpxTFRrSFVkc2RcbiIgXAorLSIgaFRXRU90dUp3UW9WbC9YR3lTN2Fha09Qd0duSmNET1J1akswRHFQSDJxSlYwY2RVekMvME9pM1FUdWhkZHFZODRJdUZ1a3duRkZLXG4iIFwKKy0iIEpEU21sRWN3RkRHUjg2SVNJMXRndFE0allhWWFUdW9TUC91ZEpTMWF6dkZvQVpMbmJzcDRkbS9rbFBRSG1LczBmYVZFV2tmRXczMlxuIiBcCistIiAxZjFDRmo4cTU2WFpOU3dZRzV0N2ZTdDQ2eUI1dWNpbU01TDRjNjQzcFhXcVU1dEN0ZU1wUktVZklJSDg2aXBtdm5uQVV3b1FTZjJcbiIgXAorLSIgM2xaK2cvbldFZXk1eWZDdHJxdUJvOFN1MCs0c1E0NnBFcDFMVFNlWlVmb1BPbG5mcjY3ZlpLUWxLMFFrSy9WdGZpY1Y1bnJYT2tYXG4iIFwKKy0iIFhVazlLUUhwMGduZ2hJN3FQeUFwMWJPZGtDbUgycm5lUUhIeHhRakhkYjlPdldyMmoyYzJEaWRtNzRWWlZWcGxHRnVRWFJzYzJmT1xuIiBcCistIiBRZ2IxY21zU1hRTjFKSCtUVDREK2RQRUFBQURrSzg0OGR1TXlscHBJU2tER0JYclZrb0NLS0tLSWlpcXJyYlg5bTBKQVJJdWExcmVcbiIgXAorLSIgZEpETWRvQXJjSTU4K0FBOHpWTHNPMjZScWlTOUdzdWtwY3Q1bEhhS2JUTGFTcmQ4d0ZFWjlzMFJONnZHUkdaa3RsRHFBb0h6RktxXG4iIFwKKy0iIEp0b216clBPdXpHalp2d0VCUlRKZmNrdHRwYlVPYWU5ako1Y0JrOFI1MTRXcmJvN2U0ODkrM2FUbHZ0UUdUSWtxRWxzZG0yTWtxNFxuIiBcCistIiA0enlQS2lLZjFIc2owOWZsS2RYRVFoNC9qUjNWZk1VdkovMmV0MVpNT2U4a2VTZ0ZmeXF6MkxiZkoxTTlJWnMya0pzeDJPMFhuRU5cbiIgXAorLSIgeUVBaEE0WndjWjU4aHhyN1pkdGt2VVM1U2JUbzJmSk1Sc3VQa1BvU0cwanpLc0RQUGh6NEh5b2lwRGV3QzQ3K0ZYRldPallINTFZXG4iIFwKKy0iIGJUc0FndHJTcWM4OC9qd1dyQStReFVsWXR1anVwWjZvTm8wbkxsU1V0cWRLRXlXMDRTTVpPVllIaUtqUDhBQ1V0NS93QjNwWC9YVFxuIiBcCistIiAvS2lKbldMUTFuc1RTVVJvcmFkMzlsSUZXWktVb1RoSUFIU2xOcURiTFAwc2lLdTk2TW5RMHlnU3lWeUd6dll4bmxuQjRqZ2E4N0ZcbiIgXAorLSIgdHRsYW1YSmJzMmo1MHhjWnZ0WFV0eUVaQ2ZQQjUrZ3lhSW05UlNldG0zSjY4UmJoSmdhU21QTTI1dnRaYXZpVzA5a25qeElPTThqXG4iIFwKKy0iIHk4cTdMSHR6c3R3di9BT2hybEJmdGtrdWRrRk9MUzQzdjV4Z3FTZUhIeDVkYUltclJYNVF0SzBoU1RrR2lpTE1QMmhvOHdhMWlTblxuIiBcCistIiBRb3hWUlEyMGZBS0NsRlE5ZUlxcTdMTEplN3ZyZUc3WlpDb1pocUQ4aVpqdXN0am5ud09Sa1k4YytXYTFacWJTdHQxUEJNYTRNSWRcbiIgXAorLSIgUno3d3pnK2RMOGJFYkExdnBhN1J0SytDa3BkV0FmWGpSRkI3VXBDTmU2S2RtNk5uSmZ0MXFsdUt1VUpsdmRLem5QYllIM2h6UFhKXG4iIFwKKy0iIFBNR3Fac2svemMyZ2YzRzUvQ3VtYzNzUnNUTzkyUmNiM3VCM1hWalAxcjRqWWZZR3dvTjc2UXNZVUV1ckdSNUhqUkV1ZGhVdDJCUFxuIiBcCistIiAxVE1ZSUQwZXl1dW9KR1J2SklJK29xOTZJMml3dFZ6N3JiN1paV2JhbHl6eUo5d0tVakxzcktFa2pINGNFOCtKejA0OWJldyt3TmJcbiIgXAorLSIgM1o3Nk40WU82NnNaSGx6b2IySDJCa2t0YjZDUmdsTHF4a2VYT2lKWmJBdjlJTWorN1gvd0I2YWc5bEduRWFqMTdDUkpBK0JoWm15XG4iIFwKKy0iIGxLKzZFSTQ0UFFxM1I2RTA2VzloOWdaVnZOYjZGWXhsTHF3Y2ZPaHZZaFlXdDdzOTlHOE1LM1hWakk2OGFJbzdVeGdiUjlJYWpoUVxuIiBcCistIiA3L0R1OXlpU0YzUzN0TU5yU3Rsa0FBdDk0RFBESTRlSkZVdllmTmV0cU5ZejR4QWZqV1p4NXNrWkFVbkpIRDFGTVZyWWhZV1ZieldcbiIgXAorLSIgKzJvakdVT3JCeDg2RWJEN0EwRkJ2ZlJ2REN0MTFZeVBJOGFJbzIzemRQNmkyZTYyMVRhVUppWENmYTFJdWNGUEp0NUtWbmZIUldTXG4iIFwKKy0iIGV1UFBOWjJZYWRma05zc3BVcDFhZ2xDVTh5VHlyVFNOaDlnYkNnamZTRmpDZ2wxWXlQSThhbDlQYkl0UDJXYW1VeXdrdUo1S09WRVxuIiBcCistIiBlbWVWRVZ3MDJaSDlINFlrRXFkRFlDaWZFNG9xWGJhUzAybENSaElHQlJSRi8vWlxuIiBcCisrIlZFUlNJT046My4wXG4iIFwKKysiRk46WW9jdG8gUHJvamVjdFxuIiBcCisrIlVSTDpodHRwOi8vd3d3LnlvY3RvcHJvamVjdC5vcmcvXG4iIFwKKysiRU1BSUw6eW9jdG9AeW9jdG9wcm9qZWN0Lm9yZ1xuIiBcCisrIlRFTDtUWVBFPVZPSUNFOiswMCAwMDAgMDAwIDAwMDBcbiIgXAorKyJBRFI7VFlQRT1IT01FOjsxNzIwIEJlYXZlciBDcmVlaztEYW0gIzQ7UGxhbmV0IEVhcnRoXG4iIFwKKysiTEFCRUw6MTcyMCBCZWF2ZXIgQ3JlZWtcXG5EYW0gIzRcXG5QbGFuZXQgRWFydGhcbiIgXAorKyJQSE9UTztFTkNPRElORz1iOmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHUUFBQUJrQ0FZQUFBQnc0cFZcbiIgXAorKyIgVUFBQUFCSE5DU1ZRSUNBZ0lmQWhraUFBQUFBbHdTRmx6QUFBTEV3QUFDeE1CQUpxY0dBQUFGRTlKUkVGVWVKenRuWG1RSE5WOXh6XG4iIFwKKysiICt2ZTg2ZHZVL3RhblVpQ1Z3UlF1YUloU0VPTXNJaUVzYkdSdGlWR0Z5NEVzZFU0YklOT0lDUFV0a1FIT3hnWW9pRFRWSnhDQml3TVxuIiBcCisrIiBDQnhCakFsc0lVbEVReklTQWhaTjVKVzJsM3R2Yk56OUpVL2Z1L043Q3dnVnF1Vm1FcjE5NC90N2VudTk3cDczdmY5enZjYkNCRWlcbiIgXAorKyIgUklnUUlVS0VDREg1VUIvMERZd1h3WnYvTWg4QUszSVNnQnM0QXdBUjI5b0N3TndGZlFCS0xYWS9tRHVjSEZnZjlBMkVLRVhaTWlUXG4iIFwKKysiIFlkdGRVQURmZitRQ0E1US85QlFCK1hrN3c5YTI3dnB4UDhnMEFPOUo0SVlBNjQvcU9FM20vazRXUUlXV0dzbUpJL3EwZm4yUCt0NVxuIiBcCisrIiB6ZXJ3RllESzBBQ0FnQ0FNc1hSdUNMcVBEVFE3THZCZ29nU0RZOERPRFdMdmd1UU9Ma3Y5dDZRbTUra2hBeXBNd1FmaUZsaGttWnNcbiIgXAorKyIgdlkvOXJPekFYSzU5RWtBRWM4N0JERDljOTljQzZDVTh0N3R1bUQvUFEwQS91Q09Id0Y0Vm02cE9XYm5jMjBBbHZJRE9UblFGOG5VXG4iIFwKKysiIGhKT1QzWFEvQUs3anlKUldVU1hISXcxdkFRUVYwNzhCRUoxLzdmOU13cU1lZDRRTUtUTk1pQ0YvdVAvT05nQzdZL09EQUY1MllDRVxuIiBcCisrIiBBcmhjQndNSURpTVppTGtBc1ZYOGZ3Q2xmdmZPckFMbGRkNXdHWUdlNkhnUlFRZnBrQUJYeGkvZmpDS2tDWDZpaHRKNnJ0RkFQOGlcbiIgXAorKyIgTnkzbkFmQUo0ZGsvT2lDUUJzWlNuNXZMb1hJSithZXpWQXhmeHZQRENSWno1UkNCbFNacGdRUXpiZStxWHpBWUxjd0FNQWdSTTBBXG4iIFwKKysiIFVUUTA3MlNmNkpLbW84SFdRVmdOU2M3QVU2K1lHNEFFTGlaS1hJVElpYzhnc0w5Mko1dXl6WGl4ekJHYngxdElBNzN5SU1rSzJWclxuIiBcCisrIiB4L1I1Y2c5S2FYVTQwZ0NBSDIvL2xPa2pzbTNXa3dCOTdLb0V5T0hVQTJUVHc5SjVVME1Xd05tNXJ3OWczdGZ1ekIzbHF6cHFoQXdcbiIgXAorKyIgcE0wUW1jbEUwa25JQnZPeXdEK0FwQjRCQUcydTJFbW9Fbm53K3hFQUFzT0REN1MwQXVHTE1LWlJSbllSQlJwTUNmTU1NTFROVUlQXG4iIFwKKysiIHZLYzB1MldQb2FTeitLYmV1UFBRWGdlOEkrNVhlTERBcXNYNWsrT25LN2J3SndlNTBiQUhMWmZCV0FvOXYyRG5mSzNkbnh0UUN2M1xuIiBcCisrIiB2SDFXd0IyVFBub1dvRExMcnZzWGJYSFkwSElrRExEaEJoaXp6eDFKNEM3dFhjWVFBVk9DNEN0UllBVnlLaDIvRFFBODg2Wm9RQVNcbiIgXAorKyIgVlZHZ2FFcW9zVEpzRkVPVU44YUp5TmpCNkpkZVkrbXhGWlEycVN3dFF6dzUwYzRlU0poalVXL3dId0YyNzVPK1VwWDFJdHMwdzcyXG4iIFwKKysiIDg4ZVNQTEFad29pTWZBV2oxMTMxYUgzaU9TVWJJa0RMRGhCaHkybWUvdkI5Z3cyMVhQUVFRSDh6Y0FPQXJtZEFESjZNQXBwNVNCMFxuIiBcCisrIiBEMWxLcVM2d3RqT0RCR3VMWXQvRkd4SlNNN2ZETm1nbEYvUVJrZm8yYU9SZWw1Wmx2c3k5Tk1LZmJSMENMWEpQWklHNDRuNTFoS1BcbiIgXAorKyIgbmNMZmNwKzNza25BTHhNdW5ic081a3NoQXdwTTB5SUlRYUxycjNyUm9EMXQxNVpCNUFZNnZ4N2dHaEtSbHhOZTYxb09MWXRvMU5mXG4iIFwKKysiIEYyaG1LRS9MQlROcU5WTmdsUDNoeXZ5dUN0Zkl2bS9jWXlxcHQ3WStUMnQ4WTVsU3Vxc3ZFZjYwejRnRDhNYXJZdlZYMVdpYlJaL1xuIiBcCisrIiBzYUhubHFPUVdnRmpEekZmZSs2MGNHMEtHbEJrbU5VQzEvdDlYbmdmUTFuVGcxd0RUWjlqaXpTM00yM3A0K3FaejNYMUV4b1d5N0VcbiIgXAorKyIgSmJnWEh5YXUxSkcvMG9mMHhidW8zQTFaOTdwWlo5Z1gzdW1DMmdIUVJraHJJQXZMeGVMSFRiRW9ZWVpudFdiQmpBcjV0NkhjREhyXG4iIFwKKysiIDczOTUwZDREY2VFa0NGbGhtT1NJV094Nkx3cW1ZeXpOZFVBWHJhdjVMaXlwVHNWRTM5VHdZWXdFN3czeWc3Um1vN1J0Z2pNeURmWFxuIiBcCisrIiAySHJQN0JzbUdjMUlVOHBZOHJicHNpaW5ESXRpQ2ZFVTE5YUx6ZExaS1l4SlZOYnRBbkFxNjM4Q2NNRnhaSVpCeUpBeXc2VElrR0RcbiIgXAorKyIgdmM3TUJ2TTVuTmdDb1lLQUpJTkREMWRJZVZ4UExBTkdFS1BpckhOUFNxRWFOdkRITVVLVmJZNW5iaGltYUlmcTRyNEl4VndXNnVWXG4iIFwKKysiIEVXdnlmM1kybFowdE5yZFFGczNoYjdLWUNUYUg0VTRJSnJiMy9qL2Q3QlpDRmtTSmxoVW1SSUx1Y2tBR0tEMlNZQW5Bd0FGbUw1WlxuIiBcCisrIiBqS1pBQ0NURmdzK095ekhzM2tKTHpnNjJTMmZMeExXMDh5d3RXeUl4dVJZTENHM1hCR1hiVlYxQlFDcFNuMnRsaFdXSGRWUEtHSXRcbiIgXAorKyIgTUhaS2lTRWliZmlhYlRYTkVsUDV5Mm1OandHb2o5eHl3cGhoRURLa3pEQXBERW5NVy9ZbVFHN0REeVMyUHNCWEFGN2RzUE5pZ0RlXG4iIFwKKysiIDI3bXNEQ0l6ZnlaWlJhK21SR1RFeGpGRVN6Vkt4a2o2TTFWendlM25DTWlmZnI5dVE0dzNWMG5aenN6VFdXQzk5TkRiSzZFOVdKZ1xuIiBcCisrIiB0dHFtaEM3STdLYXZGaHhXcWJBZHhJNVpTamZRZVRoWkFoWllid0N5a3pUS3BoR0Y5MDR5Yjk3MVVBdjFsNWhRUFEzdVpkTFoxSnRcbiIgXAorKyIgS25nWE5UK0VFdVpnRlZ4ZlBnRmhkVUlZYXRrejF6ckcvVllxN001VHhTRnZRZGxmOU4yMlIvSlNEaTJycW80TDg2Y0pwckF3dmwyXG4iIFwKKysiIEwwQkZXNjM0VldLUkQyeU5TY2lRTXNPa01zUmc2N3JWVlFERDY5YWNCb0NxMXU3M1VvZWc3NWU2UTd4UnJoTy80SWZVenNQUkhnK1xuIiBcCisrIiBLTEROWCtKYWNrTlRxYmp3cVI2cXJkTEJKRzZYNVVRR3EvZjM2MnIyVjF3Rjh0TDcxZndGaW5UTStzSXo1a0NGbGh1UENrTnhiVzJcbiIgXAorKyIgWUFKT3hZRzBDdnR0WWVmV1VuQUdmT3FBZmc5RmJaNXJYajBMT0w4N3V2S2VJYUVWSEl1ZFl1a0RIbktXMzRZUnRub3p4YWp6WkNhXG4iIFwKKysiIDVLaTdsYU0wcWFyNG5vbjBab0JpQy85NXVhSlBPOWtJbVJJbWVHNE1DVGlaV1lEeEpPUmFRRFBicFRsZnZzbEs0aFVwNHphczJiS1xuIiBcCisrIiBmQjl4U21VTEZJMUVJenNLM25odmpMTlJsVExINE0yREF3QThzV2svQU9kOXFBMkFEMCtyTDU2a1U0eWk1Qy9Xbnp3NDdvYzhUZ2dcbiIgXAorKyIgWlVtWTRMZ3l4TFc4dWdCOTRjWUFEZzdtU2xGRVROSXBvR25nNmRCdFJ4ZkhoYW9lamp1N2lHUVlZZDNzcElRcGFtUWxvZFE4S0MxXG4iIFwKKysiIDB0Vy9iM3lmNkhXb3BhVmtWU1pJaWJIVDdsNkoveStDQmtTSmxoVWhueXA2ZWVpZ1BrOXY1MkZrQlVCNkMweDV6K3JJemUyWTJTT1xuIiBcCisrIiBLZkdXT3lqMDBCTndvTUphcG5BazlMNmxUVkc3Smdvc0dGS2JVcTBLcytYNVFvWlI2L2E5WW9HamE5NUZuaE9KVUFRQkRGOVAvbWpcbiIgXAorKyIgZmZiSlFzaVFNc09rTWlUYTJha0EwazVPZk9DT2hHYVh6VzhIb0NjdCs2ZTMxd0NRMGRwVlhzc0xOZHIvcnVWSm9CbGlaSXJKQjFLXG4iIFwKKysiIDJEdGtXQnJ6OFkzU3cyVTNDd25rNjZOU2lBMW14YUhFTUtsOENhSzRublcxLytqNlRpQjB5SklSZ1VobXlaK1pNRjZCeXk1WnVLT1xuIiBcCisrIiBha1RhdVMrWHg2ald6TnFEYm1oeGZJdU9qdU9seG9LMW1SQXFENXpMTUJtRHAvQVFBZEw2NEZZSERQZGdCYzdadUt4b1dVUml0TGFcbiIgXAorKyIgYXQvK2Z4cFFISGtHYzh5Z0d1cVF5amxBc3hiZHZuZ0JCNmJUWnMydEFOWUZmRTVBUFBuTFB5RE9hYVVHanFhdGtLR2xCa21sU0dMXG4iIFwKKysiIEYwdXRxZzAvdmU0RkFLV2lWd1BrQTZjS0lIQjhuYXFwU3VJaVJ2TnBiR2dvdEdWa1FWV3JSRk5ycGs0SDRHQzdiTDBka244UVQxU1xuIiBcCisrIiBVM29SeFpXa1pGTGVNYkZIdmNBZDRudndmajlkTWFLbjBzOC9mZnpIQWE1czJyZ0Y0Zk5VYUFCb2FHM2FiYzM1ODY4ckxBSzY1L25cbiIgXAorKyIgdmpTdEFPR1ZKbU9DN1ZnRllHSWhUTy8rZHI3Z0RJRFhkK0NTRGllVW1BU0NGenV2UXU3RkZ0Rk9aOGJVM2JLZEhNUmdZbFBUV3FsXG4iIFwKKysiIDVzWkpjdkVPNHlaa2ROWkViNWVoT1BwNHprVktkajRxcUx1QllEUGZ1L3VqeC9OOHozeDlIMmZrcmJkVlFCNzN6NFlBM2p1OGFjRFxuIiBcCisrIiBnUDd1bnNKN2JablNsZ0dZZmZLc0N3RnV2ZTN1M3g2cDdaQWhaWVlUVWk5cnpjMWYvaTVBOThHM3Z3OVFveGYzVnlWRmhNVUxEcXZcbiIgXAorKyIgUmxycDhaaFZTUXNkRUc4ZkUxTTNXSzBRRzVleXNGK1FBUE10K0hjQ0pWajVpK3ZpYlcvN3pObmp2NGpqdmVJNDF2MWdFNE9GTFRTXG4iIFwKKysiIDdzTmdCbGk5OWdvSDlRQVR5Mytxa0NDL2RzMjZrQW1xYzBEd0VzWFhyUkpRQlhYM2Y5OCsvV1I4aVFNc054OGZZYUdOL1F2WGRkZFxuIiBcCisrIiBUN0F6cjFpQU8vYXVRY0ExeEdwWWV2UlBtOW1NWWt0RVpOWVNUSXFXOXNzM0RGTWNPVWFOeWVEZXlBdCs0UGErTEYwNGtoZVcvLzFcbiIgXAorKyIgN1czYkFTSm5ULzlYMDhkNG1mSExYOTgxRnlEdnVxS05SV3lkK0llK0Y2RjJNaVVhMytLTExpeFEvWW4wNmdCZ3NLdXJDdUIzdjN2XG4iIFwKKysiIHVoL3JRR2UvV1Y4aVFNa1A0aFpRWmpvdFFmK1dYUDI4RWNCUCt6d0NHNHNHbkFRYjZoeTJBN2wxYkZjQ2lPZ212YnU4V2o4WGF0NFxuIiBcCisrIiB2RmRtcnJxZ0ZJSkhYMUIxTVZWbWM5WkxLNmpzcVFUSU5idHN2K25zT3kvY3haY24wa0lWcEJxcVZPQWJUSHB6MW0rdmpLZC82dFVcbiIgXAorKyIgQm5vM2ZEb293OU1BM0M5WVVrQWpGcDFVSFQxZURyRElnaE10UWg5NFNnbmFXNUVWbVA5NnIvdWxSWEptWHdId0EvdnV2TjBnSVVMXG4iIFwKKysiIHora2EzV2ZJa0RMRE1USGs5ZisrTmdVUVQwZWFBRWFjM0pVQXZWMkh2ZzZ3cjNlZ0dtRDNpSXpxczViL0ZRQ1JFVW5yUENzaUF5K1xuIiBcCisrIiBibDFGMHk3cUJRdHRWemJMVXBMSkNDL1dvS0FDT05naEhSb1FKKzNkMUE5Q3hSNWd5TkNMSC8zeU9GQjQ2YzM0ckFOczZEd1lBRmZcbiIgXAorKyIgM0ZSU2dOemUxdkFjU1RrUnNBYWxNdFVyWjhTbnNHd0crczNnaGdSVzBwNm15cTIyblhqNmV0VU04a1hoZ2FCNk1Xb1VURnk5blhJXG4iIFwKKysiIFVSNDV1SEhmZ1R3OUF2ci8rR2RielJrU05saFFtcnZsdi80OWd5QTZORHc3UUQ1Yk44bEFQNndlSnJOaUxlYVdnS0F6dGUzSzRDOFxuIiBcCisrIiAvdjQ3QjJVQVJkTlNOM0hKS2NLQ2w5NHFFbmE3VHVhMElpYlpRYTZKYTg5SGhUWVlHNGZrZUkxT2ZxaE55U085OGJhRWJyZDNTcjVcbiIgXAorKyIgb2RWUm1nem5Wc2NMb2pYWHZQd1VnbjBpc0JoaXBFcGJWVG0wR1FOdXRPTm9MYWxuV0VXZVVJQ2hsRUlDbjFmRG1sdGJWOE43TU1BXG4iIFwKKysiIGdaVW1ZWU4wTjJyLzFGb2M1VWRzdHIzd0lnMTM4SlFLQVRDTnhBaHJFS1pDUTVWbElCWExya1BBQ2FEdTBEWU9mbUhRQU1XNUk1RlxuIiBcCisrIiAzeFk1dm1WRnhiNysvNGEwYmptYXRuUnBqUG1EdWRsZ0wrbzVWS1Z6bXFvVHNqeFhwMUNHdEdHcGFrRTBaZVRlencwVkpRaGxRbHBcbiIgXAorKyIgTzZtckdGSGZxQUEyYkpUNDB2d3pUcGY3bnRxcVE3MjYzdU9ZRktSZ1RPWjNhV0s0OVJpQVcydDlnWEVnWkVpWllkd002ZDM4WmlFXG4iIFwKKysiIEhNNTRmT2dQQXo0dW1rOG5MTU0yN2twdnBPVEpFTnEyWG1FeFNqNXp6VzhTMVVOOGoybFRQZEFtN1psNFRPMlQrMW1JSTk1OHFwSVxuIiBcCisrIiAyV0thSnREYytlQVVEdDFsMEEvRzFDMktVQ0dmbU5ta2tIdFVQK3FSSFpmMTNIaVd0MEZRbDNPRjNvdzYvWE5YNHJFckphV0FlNzlcbiIgXAorKyIgdTRRKzJqWDlyMEFYSEw1WmRKM2t3VFFYTE8rUGlqWm9IU3VVaENvOWFZUDIvYS9DbkRGMGl1S0hSOEJJVVBLRE9QWHNwTEZVR2ttXG4iIFwKKysiIEkzT3VuNVhSbWRhak1LMFpNNUFWYmFWclVPVEFxb3lNcUZQckpDVW4xeW8yd3V0L0V0Mjh0VU9PVndjRk1VV3RrUy9hWXU4K1l4RVxuIiBcCisrIiBBVFh0RURqVnJtUkJUSWl0U01XSEViSjFnbDlkMWZkZjN5M2s5U050V3R1Z05tSzNsajYwMW9iZ2VuaFZWY3A5OTNhS3ByYjUzRlFcbiIgXAorKyIgQ1hYaWxpSUZrdENSaWVYbUZrR2RQY3NnNENwSkkxMTVzK1ZueHl4ZHNjQlVLR2xCbkd6WkRUVHpxdjRITjVxWGZWaXdCWlY1MEpNXG4iIFwKKysiIEp5Unl0V0RPV0hJN2w1SmJONmFrZTk3ZDgxc2tURTFMUXJnMmtzL0JzQ1Q5ejBOd09ZK3NiYVhucnVnME4rZGEzNFB3RVU3SkdRN1xuIiBcCisrIiBjNzk0dm5kb1A5S2QvUkxTbmFiWG9YOXhrU1RqUGZ1YWVBRWU3aGRac2xXWmVyNXlYcktZN01EMm5oRUZVRjhoc2l6V0k5YjhTWE9cbiIgXAorKyIgbUs0QlgrNlJ2TnlzT3RHZFdQNmtBUG5ISjhnQWdrVXBxSDVicUFyRHR4T2NCVm54eXhlL2U4MFcrRDBLR2xCbkd6UkMxdVBoemRDXG4iIFwKKysiIC8rOU5zL0FSZ2VHSmdHMERHVVhRTFFQVEI4QUdCenQ1U3VQaGh0T0IzQXIydElBR3c0Sk14NS9oV3hRN3B5MHYzNlBnbnBMcG96dFxuIiBcCisrIiA5RGY3bVlaNlZjZjBybHJHWk1ZWWNLK3dvQWZ6Skg5dEMreTVPNEQwbFpYWElKZGtaU01mcy84UkZJdVU3QkR0ZzFrMGdEVkthY1hcbiIgXAorKyIgZ003TjB3RG1uSGxtTDhDZkxad2ZBL2pqeTVzcUFib1BDSU5lZW5hdEFqaDM2WkpCZ0dnc2NUbkFGeTc5d2hFVEdNYURrQ0ZsaG1QXG4iIFwKKysiIHk5cjY5NnJZa3dNK2ZXZjk1Z0cyNzluOE9vTE0vUFJXZ0k4ZkpBSjJwS1ZHQWtYcEplaXZRVW50TG5SSFJxTTZlMTFab2U1dGVrdFxuIiBcCisrIiBhVEx5MHVZSXppdU9RdXNFVGNUZ3hwTC9EdmU2VDFJS0szK2duamZRY0JhQm9wMmpxdEZYWmVONW9HVUw1YkJ6QjlTdVBOQUJkLzhcbiIgXAorKyIgWXUvQVhqdDVaY2ZBWGp6ajMrc0IxQlcwQWZ3aWVVWFhRbnd0V3UrczJZY3IydGNDQmxTWmpnbWh0ejA3ZXRPQXRqODZzYU5BRTVtXG4iIFwKKysiIHBCWWdsM2N0QUUvbjZneGxaVW5iem54S0FmUTB6QUlnU0lodFlHcjBXbjdSU1JRb1BlZnJ5dGFCK1hVRW5TSnFLbG1iS2tBbUxjalxuIiBcCisrIiBUbjFzNkNUdlpLM2JMOUx5SWljWlV0TkNKcmJNcnpISzV2RjRFV2xGVkdRQzB6NXAxR3NBNTV5dytBT0E3MmNVQTZlendhd0RYWEhcbiIgXAorKyIgUGpycU40WGVOQ3lKQXl3ekV4NUlwUGZmd0pBQytmV3dhUTFkWnpvTnROWnlVdU1xTGozM2tkRCs5MFJmTTVWSzEvVGlRcWxxL3lpXG4iIFwKKysiIHBFMlc3bU9mT1ptQUd4TkVVOVhDQWdzS3duZ1d6cnJ6cEtOMG5IdTZOQkJCVEF6SXpaT295NllHbzBVeDJDaHJLUGV1dHBHc1hXOVxuIiBcCisrIiAzcWJXMXVjQlZqMzY1SktqZnpzVFE4aVFNc09FSW9iZitQSmZud3JRc1hmM3FRQzVqS2hDdnY2Vm01ejJhYmxCYWNWcVN5OE5hTElcbiIgXAorKyIga1VoanBrL205WHpQRWloZnJYaXo3Mk1kdUJWaXg1TnlIQUpZdFc5WUY4TUlMTHpRQi9PU0J4eThDMkxaMzMwVUFuUU5EQ3dHQzlFXG4iIFwKKysiIEFLb0NVdjJsUzlEdnRGRERQVWFJWVlRaGJjdHZJY091NlJUNCtjZTNSdjV0Z1JNcVRNRUg0aFpZWUpUVm1lRTlRQStMNVVxalNyYVxuIiBcCisrIiBBTkxWL1h4U2pQU2k5KzdXVzByYm81cVc4NVBlcEwxb0xMRmNrQ25wT3hmQVN4ZnZuekxtTzQ3OVhZendMcDE2eDRDK09iMU56NENcbiIgXAorKyIgTUpUdldRQ1FpcHJxUURwTFh0K1Rza2I5SklhcFlsNVlBMTlhTjhWeDgvSDNleGVUalpBaFpZWUpNU1RyY3hnZzcwdUJ3K0lhRFRuXG4iIFwKKysiIHVqZDJhV2xkYXJUU1Y1Rnk5VHR3UHhFQ3JiNmo5amVuaitwdHVlaFBnaHB0dlB1SzlaTHE2K2dIc3dCVWRXN1BROVdTczJWclZEbVxuIiBcCisrIiB6ekcwa2xZMUJTUVkyRFpVeGxvVmk4WWtLcmNvOEZJVVBLREJOaXlKZXV1cndENEk1YmJ0OElNSkx1YmdmSVpYTVdqS3FYYUtyQ21cbiIgXAorKyIgYTFadUs1TE50VFUxaDhHYUcrZnRoTGcvb2NldXN2MG9WUXhrSFFrWFBDWnovUUEzSFBQUFNzQW5uN3k4U3NCZXJvT253dGc0eThBXG4iIFwKKysiIHlPZXo4cU9Samx1UUMrWUhKSDFmbGwxRjdVZ09JSmxLN2dPWVBtdnViWExtcFA4NjNuc2laRWlaWVZLV0k2eGMrYTJGQUh2L3RQMVxuIiBcCisrIiBjZ003T3ptcUF3TGRhQVJ6UDZRQ29iYWpyQTVnemErNUxBTGZlZnVKK0JzS2d0N2QzeHRqUDZ1cnF4UDJ1MU9GM1huRmlFVElrUklcbiIgXAorKyIgZ1FJVUtFK0grQy93TUdYOElhczFzNkNRQUFBQUJKUlU1RXJrSmdnZz09XG4iIFwKKyAiRU5EOlZDQVJEIgorLS0gCisxLjguMy4yCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwNC1jb25maWd1cmUtRml4LWxpYmljYWwtcGtnLWNvbmZpZy10cnlpbmctdG8tdXNlLWhvc3QtLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDA0LWNvbmZpZ3VyZS1GaXgtbGliaWNhbC1wa2ctY29uZmlnLXRyeWluZy10by11c2UtaG9zdC0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzODMzNDcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDA0LWNvbmZpZ3VyZS1GaXgtbGliaWNhbC1wa2ctY29uZmlnLXRyeWluZy10by11c2UtaG9zdC0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi1Gcm9tIDJjNzNiNTg4YjkwMThjYjU5YzY2NmVhZTNhMTVmYTFhZjQyYzU2YmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+Ci1EYXRlOiBTdW4sIDQgQXVnIDIwMTMgMTA6NTc6MDggKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCA0LzVdIGNvbmZpZ3VyZTogRml4IGxpYmljYWwgcGtnLWNvbmZpZyB0cnlpbmcgdG8gdXNlIGhvc3QKLSBwYXRocwotCi1TaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+Ci0tLS0KLSBjYWxlbmRhci9saWJlY2FsL2xpYmVjYWwucGMuaW4gfCAyICstCi0gY29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAgIHwgMyArKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NhbGVuZGFyL2xpYmVjYWwvbGliZWNhbC5wYy5pbiBiL2NhbGVuZGFyL2xpYmVjYWwvbGliZWNhbC5wYy5pbgotaW5kZXggZmM2YjM1OS4uZDM0MzViYiAxMDA2NDQKLS0tLSBhL2NhbGVuZGFyL2xpYmVjYWwvbGliZWNhbC5wYy5pbgotKysrIGIvY2FsZW5kYXIvbGliZWNhbC9saWJlY2FsLnBjLmluCi1AQCAtMTIsNCArMTIsNCBAQCBEZXNjcmlwdGlvbjogQ2xpZW50IGxpYnJhcnkgZm9yIGV2b2x1dGlvbiBjYWxlbmRhcnMKLSBWZXJzaW9uOiBAVkVSU0lPTkAKLSBSZXF1aXJlczogbGliaWNhbCA+PSBATElCSUNBTF9SRVFVSVJFREAgbGliZWRhdGFzZXJ2ZXItMS4yIGdpby0yLjAKLSBMaWJzOiAtTCR7bGliZGlyfSAtbGVjYWwtMS4yCi0tQ2ZsYWdzOiAtSSR7cHJpdmluY2x1ZGVkaXJ9IEBMSUJJQ0FMX0VYVFJBX0NGTEFHU0AKLStDZmxhZ3M6IC1JJHtwcml2aW5jbHVkZWRpcn0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDFjODAyZmYuLmYxZDRjZTggMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTEzNTEsNyArMTM1MSw4IEBAIGRubCB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gPGxpYmljYWwvaWNhbC5oPiBhbmQgPGljYWwuaD4KLSBkbmwgV2UgaGF2ZSBmaXhlZCBhbGwgb3VyIGluc3RhbmNlcyB0byB1c2UgPGxpYmljYWwvaWNhbC5oPi4gVW50aWwgdGhlIC5wYyBmcm9tCi0gZG5sIGxpYmljYWwgaXMgZml4ZWQsIHdlIGhhdmUgdG8gd29yay1hcm91bmQgdGhlIGJ1Z2d5IENGbGFncy4KLSBkbmwgKioqKioKLS0JTElCSUNBTF9FWFRSQV9DRkxBR1M9IiAtSWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPWluY2x1ZGVkaXIgbGliaWNhbGAgIgotKwltNF9wYXR0ZXJuX2FsbG93KFteUEtHX0NPTkZJR19TWVNST09UX0RJUiRdKQotKwlMSUJJQ0FMX0VYVFJBX0NGTEFHUz0iIC1JJFBLR19DT05GSUdfU1lTUk9PVF9ESVJgJFBLR19DT05GSUcgLS12YXJpYWJsZT1pbmNsdWRlZGlyIGxpYmljYWxgICIKLSAJTElCSUNBTF9FWFRSQV9MSUJTPSIiCi0gCUFDX1NVQlNUKExJQklDQUxfRVhUUkFfQ0ZMQUdTKQotIAlBQ19TVUJTVChMSUJJQ0FMX0VYVFJBX0xJQlMpCi0tLSAKLTEuOC4zLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci8wMDA1LXNvdXAtYWRhcHQtdG8tbmV3LWxpYnhtbDItQVBJLWZyb20tMi45LjAucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDUtc291cC1hZGFwdC10by1uZXctbGlieG1sMi1BUEktZnJvbS0yLjkuMC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRkZjJlZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDUtc291cC1hZGFwdC10by1uZXctbGlieG1sMi1BUEktZnJvbS0yLjkuMC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLUZyb20gYWM5NWU4OTc0OWEwMTYxOGY5OGI1NTRhOThlNzhkN2M5ODhiZmMxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMjcgTm92IDIwMTIgMDg6NDY6NTEgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA1LzVdIHNvdXA6IGFkYXB0IHRvIG5ldyBsaWJ4bWwyIEFQSSBmcm9tIDIuOS4wCi0KLSogZm9yIG1vcmUgaW5mbyBzZWUKLSAgaHR0cHM6Ly9tYWlsLmdub21lLm9yZy9hcmNoaXZlcy94bWwvMjAxMi1BdWd1c3QvbXNnMDAwMDUuaHRtbAotCi1TaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+Ci0tLS0KLSBjYWxlbmRhci9iYWNrZW5kcy9jYWxkYXYvZS1jYWwtYmFja2VuZC1jYWxkYXYuYyB8IDIxICsrKysrKysrKysrKysrKysrKysrKwotIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9jYWxlbmRhci9iYWNrZW5kcy9jYWxkYXYvZS1jYWwtYmFja2VuZC1jYWxkYXYuYyBiL2NhbGVuZGFyL2JhY2tlbmRzL2NhbGRhdi9lLWNhbC1iYWNrZW5kLWNhbGRhdi5jCi1pbmRleCAxMmY4ZjIyLi41NTU1YTNlIDEwMDY0NAotLS0tIGEvY2FsZW5kYXIvYmFja2VuZHMvY2FsZGF2L2UtY2FsLWJhY2tlbmQtY2FsZGF2LmMKLSsrKyBiL2NhbGVuZGFyL2JhY2tlbmRzL2NhbGRhdi9lLWNhbC1iYWNrZW5kLWNhbGRhdi5jCi1AQCAtMTE3Miw4ICsxMTcyLDEzIEBAIGNoZWNrX2NhbGVuZGFyX2NoYW5nZWRfb25fc2VydmVyIChFQ2FsQmFja2VuZENhbERBViAqY2JkYXYpCi0gCXNvdXBfbWVzc2FnZV9zZXRfcmVxdWVzdCAobWVzc2FnZSwKLSAJCQkJICAiYXBwbGljYXRpb24veG1sIiwKLSAJCQkJICBTT1VQX01FTU9SWV9DT1BZLAotKyNpZmRlZiBMSUJYTUwyX05FV19CVUZGRVIKLSsJCQkJICAoZ2NoYXIgKikgeG1sT3V0cHV0QnVmZmVyR2V0Q29udGVudChidWYpLAotKwkJCQkgIHhtbE91dHB1dEJ1ZmZlckdldFNpemUoYnVmKSk7Ci0rI2Vsc2UKLSAJCQkJICAoZ2NoYXIgKikgYnVmLT5idWZmZXItPmNvbnRlbnQsCi0gCQkJCSAgYnVmLT5idWZmZXItPnVzZSk7Ci0rI2VuZGlmCi0gCi0gCS8qIFNlbmQgdGhlIHJlcXVlc3Qgbm93ICovCi0gCXNlbmRfYW5kX2hhbmRsZV9yZWRpcmVjdGlvbiAocHJpdi0+c2Vzc2lvbiwgbWVzc2FnZSwgTlVMTCk7Ci1AQCAtMTMyMSw4ICsxMzI2LDEzIEBAIGNhbGRhdl9zZXJ2ZXJfbGlzdF9vYmplY3RzIChFQ2FsQmFja2VuZENhbERBViAqY2JkYXYsCi0gCXNvdXBfbWVzc2FnZV9zZXRfcmVxdWVzdCAobWVzc2FnZSwKLSAJCQkJICAiYXBwbGljYXRpb24veG1sIiwKLSAJCQkJICBTT1VQX01FTU9SWV9DT1BZLAotKyNpZmRlZiBMSUJYTUwyX05FV19CVUZGRVIKLSsJCQkJICAoZ2NoYXIgKikgeG1sT3V0cHV0QnVmZmVyR2V0Q29udGVudChidWYpLAotKwkJCQkgIHhtbE91dHB1dEJ1ZmZlckdldFNpemUoYnVmKSk7Ci0rI2Vsc2UKLSAJCQkJICAoZ2NoYXIgKikgYnVmLT5idWZmZXItPmNvbnRlbnQsCi0gCQkJCSAgYnVmLT5idWZmZXItPnVzZSk7Ci0rI2VuZGlmCi0gCi0gCS8qIFNlbmQgdGhlIHJlcXVlc3Qgbm93ICovCi0gCXNlbmRfYW5kX2hhbmRsZV9yZWRpcmVjdGlvbiAocHJpdi0+c2Vzc2lvbiwgbWVzc2FnZSwgTlVMTCk7Ci1AQCAtMTcxNSw4ICsxNzI1LDE0IEBAIGNhbGRhdl9yZWNlaXZlX3NjaGVkdWxlX291dGJveF91cmwgKEVDYWxCYWNrZW5kQ2FsREFWICpjYmRhdikKLSAJc291cF9tZXNzYWdlX3NldF9yZXF1ZXN0IChtZXNzYWdlLAotIAkJCQkgICJhcHBsaWNhdGlvbi94bWwiLAotIAkJCQkgIFNPVVBfTUVNT1JZX0NPUFksCi0rI2lmZGVmIExJQlhNTDJfTkVXX0JVRkZFUgotKwkJCQkgIChnY2hhciAqKSB4bWxPdXRwdXRCdWZmZXJHZXRDb250ZW50KGJ1ZiksCi0rCQkJCSAgeG1sT3V0cHV0QnVmZmVyR2V0U2l6ZShidWYpKTsKLSsjZWxzZQotIAkJCQkgIChnY2hhciAqKSBidWYtPmJ1ZmZlci0+Y29udGVudCwKLSAJCQkJICBidWYtPmJ1ZmZlci0+dXNlKTsKLSsjZW5kaWYKLSsKLSAKLSAJLyogU2VuZCB0aGUgcmVxdWVzdCBub3cgKi8KLSAJc2VuZF9hbmRfaGFuZGxlX3JlZGlyZWN0aW9uIChwcml2LT5zZXNzaW9uLCBtZXNzYWdlLCBOVUxMKTsKLUBAIC0xNzY1LDggKzE3ODEsMTMgQEAgY2FsZGF2X3JlY2VpdmVfc2NoZWR1bGVfb3V0Ym94X3VybCAoRUNhbEJhY2tlbmRDYWxEQVYgKmNiZGF2KQotIAkJc291cF9tZXNzYWdlX3NldF9yZXF1ZXN0IChtZXNzYWdlLAotIAkJCQkgICJhcHBsaWNhdGlvbi94bWwiLAotIAkJCQkgIFNPVVBfTUVNT1JZX0NPUFksCi0rI2lmZGVmIExJQlhNTDJfTkVXX0JVRkZFUgotKwkJCQkgIChnY2hhciAqKSB4bWxPdXRwdXRCdWZmZXJHZXRDb250ZW50KGJ1ZiksCi0rCQkJCSAgeG1sT3V0cHV0QnVmZmVyR2V0U2l6ZShidWYpKTsKLSsjZWxzZQotIAkJCQkgIChnY2hhciAqKSBidWYtPmJ1ZmZlci0+Y29udGVudCwKLSAJCQkJICBidWYtPmJ1ZmZlci0+dXNlKTsKLSsjZW5kaWYKLSAKLSAJCS8qIFNlbmQgdGhlIHJlcXVlc3Qgbm93ICovCi0gCQlzZW5kX2FuZF9oYW5kbGVfcmVkaXJlY3Rpb24gKHByaXYtPnNlc3Npb24sIG1lc3NhZ2UsIE5VTEwpOwotLS0gCi0xLjguMy4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwNi1jb25maWd1cmUuYWMtZG8tbm90LW92ZXJ3cml0ZS1sb2NhbGVkaXIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyLzAwMDYtY29uZmlndXJlLmFjLWRvLW5vdC1vdmVyd3JpdGUtbG9jYWxlZGlyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NDFlNWU5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvMDAwNi1jb25maWd1cmUuYWMtZG8tbm90LW92ZXJ3cml0ZS1sb2NhbGVkaXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi1Gcm9tIDNmZWFlYThlODRiM2FkOGRjMmQ1NTFlNDIyMjRmM2I0YTk0MTNlN2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBUaHUsIDMgU2VwIDIwMTUgMTE6MTQ6MjQgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gY29uZmlndXJlLmFjOiBkbyBub3Qgb3ZlcndyaXRlIGxvY2FsZWRpcgotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFsxXQotCi1bMV0gaHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdHJlZS9jb25maWd1cmUuYWMjbjI5OAotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci0tLS0KLSBjb25maWd1cmUuYWMgfCAzIC0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCBmMWQ0Y2U4Li5jZWU4NDdmIDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC0yNTcsOSArMjU3LDYgQEAgR0VUVEVYVF9QQUNLQUdFPWV2b2x1dGlvbi1kYXRhLXNlcnZlci0kQkFTRV9WRVJTSU9OCi0gQUNfU1VCU1QoR0VUVEVYVF9QQUNLQUdFKQotIEFDX0RFRklORV9VTlFVT1RFRChHRVRURVhUX1BBQ0tBR0UsICIkR0VUVEVYVF9QQUNLQUdFIiwgW1BhY2thZ2UgbmFtZSBmb3IgZ2V0dGV4dF0pCi0gCi0tbG9jYWxlZGlyPSckKHByZWZpeCkvJChEQVRBRElSTkFNRSkvbG9jYWxlJwotLUFDX1NVQlNUKGxvY2FsZWRpcikKLS0KLSBkbmwgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gZG5sIEluaXRpYWxpemUgbGlidG9vbAotIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLS0tIAotMi4xLjAKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlcl8zLjI2LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyXzMuMjYuMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzAzYjhmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZWRzL2V2b2x1dGlvbi1kYXRhLXNlcnZlcl8zLjI2LjMuYmIKQEAgLTAsMCArMSwxMzAgQEAKK1NVTU1BUlkgPSAiRXZvbHV0aW9uIGRhdGFiYXNlIGJhY2tlbmQgc2VydmVyIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbm9tZS5vcmcvcHJvamVjdHMvZXZvbHV0aW9uLyIKK0JVR1RSQUNLRVIgPSAiaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvIgorCitMSUNFTlNFID0gIkxHUEx2MiAmIExHUEx2MisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT02YTZlNjg5ZDE5MjU1Y2YwNTU3ZjNmZTdkNzA2ODIxMiBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvY2FtZWwvY2FtZWwuaDtlbmRsaW5lPTI0O21kNT0zNDJmYzVlOTM1NzI1NGJjMzBjMjRlNDNhZTQ3ZDlhMSBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvbGliZWRhdGFzZXJ2ZXIvZS1kYXRhLXNlcnZlci11dGlsLmg7ZW5kbGluZT0yMDttZDU9OGYyMWE5YzgwZWE4MmE0ZmI4MGI1Zjk1OWY2NzI1NDMgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vc3JjL2NhbGVuZGFyL2xpYmVjYWwvZS1jYWwuaDtlbmRsaW5lPTI0O21kNT1lNjk5ZWMzODY2ZjczZjEyOWY3YTRmZmZmZGNmYzE5NiIKKworREVQRU5EUyA9ICIgXAorICAgIGludGx0b29sLW5hdGl2ZSBncGVyZi1uYXRpdmUgXAorICAgIGdsaWItMi4wIGd0ayszIGdjb25mIGxpYmdub21lLWtleXJpbmcgbGliZ2RhdGEgXAorICAgIGRidXMgZGIgdmlydHVhbC9saWJpY29udiB6bGliIGxpYnNvdXAtMi40IGxpYmljYWwgbnNzIGxpYnNlY3JldCBcCisiCisKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGdub21lYmFzZSBjbWFrZSBndGstZG9jIGdldHRleHQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHBlcmxuYXRpdmUgcHl0aG9ubmF0aXZlCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK1NSQ19VUkkgKz0gIiBcCisgICAgZmlsZTovLzAwMDEtQ01ha2VMaXN0cy50eHQtUmVtb3ZlLVRSWV9SVU4tZm9yLWljb252LnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMi1DTWFrZUxpc3RzLnR4dC1yZW1vdmUtQ0hFQ0tfQ19TT1VSQ0VfUlVOUy1jaGVjay5wYXRjaCBcCisgICAgZmlsZTovLzAwMDMtY29udGFjdC1SZXBsYWNlLXRoZS1Ob3ZlbGwtc2FtcGxlLWNvbnRhY3Qtd2l0aC1zb21ldC5wYXRjaCBcCisgICAgZmlsZTovL2ljb252LWRldGVjdC5oIFwKKyIKK1NSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gIjU2OGEyMWE0ZGY0ZTBlYzk4NWM4NDliMzhmYzY2OTA4IgorU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiNjNiMWFlNWY3NmJlODE4ODYyZjQ1NWJmODQxYjVlYmIxZWMzZTFmNGRmNmQzYTE2ZGMyYmUzNDhiN2UwYTFjNSIKKworTEtTVFJGVElNRSA9ICJIQVZFX0xLU1RSRlRJTUU9T04iCitMS1NUUkZUSU1FX2xpYmMtbXVzbCA9ICJIQVZFX0xLU1RSRlRJTUU9T0ZGIgorCitFWFRSQV9PRUNNQUtFID0gIiBcCisgICAgLURXSVRIX0tSQjU9T0ZGIFwKKyAgICAtREVOQUJMRV9HT0E9T0ZGIFwKKyAgICAtREVOQUJMRV9VT0E9T0ZGIFwKKyAgICAtREVOQUJMRV9HT09HTEVfQVVUSD1PRkYgXAorICAgIC1ERU5BQkxFX1dFQVRIRVI9T0ZGIFwKKyAgICAtRCR7TEtTVFJGVElNRX0gXAorIgorCitQQUNLQUdFQ09ORklHID8/PSAiIgorUEFDS0FHRUNPTkZJR1tvcGVubGRhcF0gPSAiLURXSVRIX09QRU5MREFQPU9OLC1EV0lUSF9PUEVOTERBUD1PRkYsb3BlbmxkYXAiCisKK0VYVFJBX09FQ09ORiA9ICItLXdpdGgtbGliZGI9JHtTVEFHSU5HX0RJUl9IT1NUfSR7cHJlZml4fSBcCisgICAgICAgICAgICAgICAgLS1kaXNhYmxlLW5udHAgLS1kaXNhYmxlLWd0ay1kb2MiCisKKyMgLWxkYiBuZWVkcyB0aGlzIG9uIHNvbWUgcGxhdGZvcm1zCitMREZMQUdTICs9ICItbHB0aHJlYWQgLWxnbW9kdWxlLTIuMCAtbGd0aHJlYWQtMi4wIgorCitkb19jb25maWd1cmVfYXBwZW5kICgpIHsKKyAgICBjcCAke1dPUktESVJ9L2ljb252LWRldGVjdC5oICR7U30vc3JjCisKKyAgICAjIGZpeCBuYXRpdmUgcGVybCBzaGViYW5nCisgICAgc2VkIC1pICdzOiR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9wZXJsLW5hdGl2ZToke2JpbmRpcn06JyAke0J9L3NyYy90b29scy9hZGRyZXNzYm9vay1leHBvcnQvY3N2MnZjYXJkCit9CisKK2RvX2NvbXBpbGVfcHJlcGVuZCgpIHsKKyAgICBleHBvcnQgR0lSX0VYVFJBX0xJQlNfUEFUSD0iJHtCfS9jYW1lbC8ubGliczoke0J9L2xpYmVkYXRhc2VydmVyLy5saWJzIgorfQorCisKK1BBQ0tBR0VTID0rICJsaWJjYW1lbCBsaWJjYW1lbC1kZXYgbGliZWJvb2sgbGliZWJvb2stZGV2IGxpYmVjYWwgbGliZWNhbC1kZXYgXAorICAgICAgICAgICAgIGxpYmVkYXRhLWJvb2sgbGliZWRhdGEtYm9vay1kZXYgbGliZWRhdGEtY2FsIGxpYmVkYXRhLWNhbC1kZXYgXAorICAgICAgICAgICAgIGxpYmVkYXRhc2VydmVyIGxpYmVkYXRhc2VydmVyLWRldiBcCisgICAgICAgICAgICAgbGliZWRhdGFzZXJ2ZXJ1aSBsaWJlZGF0YXNlcnZlcnVpLWRldiIKKworRklMRVNfJHtQTn0gPSsgIiR7c3lzdGVtZF91c2VyX3VuaXRkaXJ9IFwKKyAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2RidXMtMSBcCisgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItKi91aS8iCitSREVQRU5EU18ke1BOfSArPSAicGVybCIKKworRklMRVNfJHtQTn0tZGV2ID0rICIke2xpYmRpcn0vcGtnY29uZmlnL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qLnBjIgorRklMRVNfJHtQTn0tZGJnID0rICIke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyKi9jYW1lbC1wcm92aWRlcnMvLmRlYnVnIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovY2FsZW5kYXItYmFja2VuZHMvLmRlYnVnIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovYWRkcmVzc2Jvb2stYmFja2VuZHMvLmRlYnVnIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovZXh0ZW5zaW9ucy8uZGVidWcvIgorCitSUkVDT01NRU5EU18ke1BOfS1kZXYgKz0gImxpYmVjYWwtZGV2IGxpYmVib29rLWRldiIKKworRklMRVNfbGliY2FtZWwgPSAiJHtsaWJkaXJ9L2xpYmNhbWVsLSouc28uKiBcCisgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vbGliY2FtZWwtcHJvdmlkZXItKi5zby4qIFwKKyAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2NhbWVsLXByb3ZpZGVycy8qLnNvIFwKKyAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2NhbWVsLXByb3ZpZGVycy8qLnVybHMiCitGSUxFU19saWJjYW1lbC1kZXYgPSAiJHtsaWJkaXJ9L2xpYmNhbWVsLSouc28gJHtsaWJkaXJ9L2xpYmNhbWVsLXByb3ZpZGVyLSouc28gXAorICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9wa2djb25maWcvY2FtZWwqcGMgXAorICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2NhbWVsLXByb3ZpZGVycy8qLmxhIFwKKyAgICAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovY2FtZWwiCisKK0ZJTEVTX2xpYmVib29rID0gIiR7bGliZGlyfS9saWJlYm9vay0qLnNvLioiCitGSUxFU19saWJlYm9vay1kZXYgPSAiJHtsaWJkaXJ9L2xpYmVib29rLTEuMi5zbyBcCisgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3BrZ2NvbmZpZy9saWJlYm9vay0qLnBjIFwKKyAgICAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovbGliZWJvb2svKi5oIgorUlJFQ09NTUVORFNfbGliZWJvb2sgPSAibGliZWRhdGEtYm9vayIKKworRklMRVNfbGliZWNhbCA9ICIke2xpYmRpcn0vbGliZWNhbC0qLnNvLiogXAorICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0xLjQvem9uZWluZm8iCitGSUxFU19saWJlY2FsLWRldiA9ICIke2xpYmRpcn0vbGliZWNhbC0qLnNvICR7bGliZGlyfS9wa2djb25maWcvbGliZWNhbC0qLnBjIFwKKyAgICAgICAgICAgICAgICAgICAgICR7aW5jbHVkZWRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyKi9saWJlY2FsLyouaCBcCisgICAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovbGliaWNhbC8qLmgiCitSUkVDT01NRU5EU19saWJlY2FsID0gImxpYmVkYXRhLWNhbCB0emRhdGEiCisKK0ZJTEVTX2xpYmVkYXRhLWJvb2sgPSAiJHtsaWJleGVjZGlyfS9lLWFkZHJlc3Nib29rLWZhY3RvcnkgXAorICAgICAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2RidXMtMS9zZXJ2aWNlcy8qLkFkZHJlc3NCb29rLnNlcnZpY2UgXAorICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vbGliZWRhdGEtYm9vay0qLnNvLiogXAorICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovZXh0ZW5zaW9ucy9saWJlYm9vayouc28gXAorICAgICAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0xLjQvd2VhdGhlci9Mb2NhdGlvbnMueG1sIgorRklMRVNfbGliZWRhdGEtYm9vay1kZXYgPSAiJHtsaWJkaXJ9L2xpYmVkYXRhLWJvb2stKi5zbyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vcGtnY29uZmlnL2xpYmVkYXRhLWJvb2stKi5wYyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovZXh0ZW5zaW9ucy9saWJlYm9vayoubGEgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItKi9saWJlZGF0YS1ib29rIgorCitGSUxFU19saWJlZGF0YS1jYWwgPSAiJHtsaWJleGVjZGlyfS9lLWNhbGVuZGFyLWZhY3RvcnkgXAorICAgICAgICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vZGJ1cy0xL3NlcnZpY2VzLyouQ2FsZW5kYXIuc2VydmljZSBcCisgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2xpYmVkYXRhLWNhbC0qLnNvLiogXAorICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItKi9leHRlbnNpb25zL2xpYmVjYWwqLnNvIgorRklMRVNfbGliZWRhdGEtY2FsLWRldiA9ICIke2xpYmRpcn0vbGliZWRhdGEtY2FsLSouc28gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vcGtnY29uZmlnL2xpYmVkYXRhLWNhbC0qLnBjIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItKi9saWJlZGF0YS1jYWwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovZXh0ZW5zaW9ucy9saWJlY2FsKi5sYSIKKworRklMRVNfbGliZWRhdGFzZXJ2ZXIgPSAiJHtsaWJkaXJ9L2xpYmVkYXRhc2VydmVyLSouc28uKiIKK0ZJTEVTX2xpYmVkYXRhc2VydmVyLWRldiA9ICIke2xpYmRpcn0vbGliZWRhdGFzZXJ2ZXItKi5zbyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3BrZ2NvbmZpZy9saWJlZGF0YXNlcnZlci0qLnBjIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qL2xpYmVkYXRhc2VydmVyLyouaCIKKworRklMRVNfbGliZWRhdGFzZXJ2ZXJ1aSA9ICIke2xpYmRpcn0vbGliZWRhdGFzZXJ2ZXJ1aS0qLnNvLiogJHtkYXRhZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMS40L2dsYWRlLyouZ2xhZGUiCitGSUxFU19saWJlZGF0YXNlcnZlcnVpLWRldiA9ICIke2xpYmRpcn0vbGliZWRhdGFzZXJ2ZXJ1aS0qLnNvIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9wa2djb25maWcvbGliZWRhdGFzZXJ2ZXJ1aS0qLnBjIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aW5jbHVkZWRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovbGliZWRhdGFzZXJ2ZXJ1aS8qLmgiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9lZHMvZXZvbHV0aW9uLWRhdGEtc2VydmVyX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXJfZ2l0LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYWRjNGI1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2Vkcy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXJfZ2l0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTE2ICswLDAgQEAKLVNVTU1BUlkgPSAiRXZvbHV0aW9uIGRhdGFiYXNlIGJhY2tlbmQgc2VydmVyIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbm9tZS5vcmcvcHJvamVjdHMvZXZvbHV0aW9uLyIKLUJVR1RSQUNLRVIgPSAiaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvIgotCi1MSUNFTlNFID0gIkxHUEx2MiAmIExHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT02YTZlNjg5ZDE5MjU1Y2YwNTU3ZjNmZTdkNzA2ODIxMiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9jYW1lbC9jYW1lbC5oO2VuZGxpbmU9MjQ7bWQ1PWIwMjE3NWM4OGY4MjEyMjQ3NDZiMzQ3YTg5NzMxYTJiIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2xpYmVkYXRhc2VydmVyL2UtZGF0YS1zZXJ2ZXItdXRpbC5oO2VuZGxpbmU9MjA7bWQ1PTkzNDUwMmYwM2M4NDUyM2FhMDU5ZDQ4MjU4ODdiMzgwIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2NhbGVuZGFyL2xpYmVjYWwvZS1jYWwuaDtlbmRsaW5lPTI0O21kNT01ZDQ5NmI5YjZmZDJhNGZkYmJmYzMxZWY5NDU1YzlkMCIKLQotREVQRU5EUyA9ICJpbnRsdG9vbC1uYXRpdmUgZ2xpYi0yLjAgZ3RrKzMgZ2NvbmYgZGJ1cyBkYiB2aXJ0dWFsL2xpYmljb252IHpsaWIgbGlic291cC0yLjQgbGliZ2xhZGUgbGliaWNhbCBsaWJnbm9tZS1rZXlyaW5nIGdwZXJmLW5hdGl2ZSBsaWJnZGF0YSBuc3MiCi0KLVNSQ1JFViA9ICJhOWU0ZTc0ZWM0NDczYTRmZDA5ZTU2YjY5MGJkNGZhNzJmNjg2Njg3IgotCi0jIDMuNCBzZXJpZXMgbmVlZHMgbGliZ2RhdGEtMC4xMCosIDMuOCBzZXJpZXMgbmVlZHMgYWxzbyBsaWJzZWNyZXQgaW5zdGVhZCBvZiBnbm9tZS1rZXlyaW5nCi1QViA9ICIzLjIuMytnaXQke1NSQ1BWfSIKLQotU1JDX1VSSSA9ICJnaXQ6Ly9naXQuZ25vbWUub3JnL2V2b2x1dGlvbi1kYXRhLXNlcnZlcjticmFuY2g9Z25vbWUtMy0yIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtY29udGFjdC1SZXBsYWNlLXRoZS1Ob3ZlbGwtc2FtcGxlLWNvbnRhY3Qtd2l0aC1zb21ldC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAyLUZpeC1mb3ItYXV0b21ha2UtMS4xMi54LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDMtRGlzYWJsZS1XZXJyb3ItZm9yLWF1dG9tYWtlLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDQtY29uZmlndXJlLUZpeC1saWJpY2FsLXBrZy1jb25maWctdHJ5aW5nLXRvLXVzZS1ob3N0LS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA1LXNvdXAtYWRhcHQtdG8tbmV3LWxpYnhtbDItQVBJLWZyb20tMi45LjAucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwNi1jb25maWd1cmUuYWMtZG8tbm90LW92ZXJ3cml0ZS1sb2NhbGVkaXIucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vaWNvbnYtZGV0ZWN0LmggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1pbWFweC1GaXgtc2lnbmF0dXJlLWZvci1pbWFweF90b2tlbmlzZV9zdHJ1Y3QucGF0Y2ggXAotICAgICAgICAgICAiCi0KLVMgPSAiJHtXT1JLRElSfS9naXQiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIGd0ay1kb2MgcGtnY29uZmlnIGdldHRleHQgZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0KLSMgLWxkYiBuZWVkcyB0aGlzIG9uIHNvbWUgcGxhdGZvcm1zCi1MREZMQUdTICs9ICItbHB0aHJlYWQgLWxnbW9kdWxlLTIuMCAtbGd0aHJlYWQtMi4wIgotCi0jIFBhcmFsbGVsIG1ha2Ugc2hvd3MgbWFueSBpc3N1ZXMgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLgotIyBDdXJyZW50IHByb2JsZW1zIHNlZW0gdG8gYmUgZHVwbGljYXRlIGV4ZWN1dGlvbiBvZiB0aGUgY2FsYW5kZXIvYmFja2VuZHMKLSMgZGlyZWN0b3JpZXMgYnkgbWFrZSByZXN1bHRpbmcgaW4gdHJ1bmNhdGVkL2NvcnJ1cHQgLmxhIGZpbGVzCi0jUEFSQUxMRUxfTUFLRSA9ICIiCi0KLWRvX2NvbmZpZ3VyZV9hcHBlbmQgKCkgewotICAgIGNwICR7V09SS0RJUn0vaWNvbnYtZGV0ZWN0LmggJHtTfQotfQotCi1kb19jb21waWxlX3ByZXBlbmQoKSB7Ci0gICAgICAgIGV4cG9ydCBHSVJfRVhUUkFfTElCU19QQVRIPSIke0J9L2NhbWVsLy5saWJzOiR7Qn0vbGliZWRhdGFzZXJ2ZXIvLmxpYnMiCi19Ci0KLUVYVFJBX09FQ09ORiA9ICItLXdpdGhvdXQtb3BlbmxkYXAgXAotICAgICAgICAgICAgICAgIC0td2l0aC1saWJkYj0ke1NUQUdJTkdfRElSX0hPU1R9JHtwcmVmaXh9IFwKLSAgICAgICAgICAgICAgICAtLWRpc2FibGUtbm50cCAtLWRpc2FibGUtZ29hIC0tZGlzYWJsZS13ZWF0aGVyIC0tZGlzYWJsZS1ndGstZG9jIgotCi1QQUNLQUdFUyA9KyAibGliY2FtZWwgbGliY2FtZWwtZGV2IGxpYmVib29rIGxpYmVib29rLWRldiBsaWJlY2FsIGxpYmVjYWwtZGV2IFwKLSAgICAgICAgICAgICBsaWJlZGF0YS1ib29rIGxpYmVkYXRhLWJvb2stZGV2IGxpYmVkYXRhLWNhbCBsaWJlZGF0YS1jYWwtZGV2IFwKLSAgICAgICAgICAgICBsaWJlZGF0YXNlcnZlciBsaWJlZGF0YXNlcnZlci1kZXYgXAotICAgICAgICAgICAgIGxpYmVkYXRhc2VydmVydWkgbGliZWRhdGFzZXJ2ZXJ1aS1kZXYiCi0KLUZJTEVTXyR7UE59ID0rICIke2RhdGFkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qL3VpLyIKLUZJTEVTXyR7UE59LWRldiA9KyAiJHtsaWJkaXJ9L3BrZ2NvbmZpZy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItKi5wYyIKLUZJTEVTXyR7UE59LWRiZyA9KyAiJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovY2FtZWwtcHJvdmlkZXJzLy5kZWJ1ZyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2NhbGVuZGFyLWJhY2tlbmRzLy5kZWJ1ZyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2FkZHJlc3Nib29rLWJhY2tlbmRzLy5kZWJ1ZyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2V4dGVuc2lvbnMvLmRlYnVnLyIKLQotUlJFQ09NTUVORFNfJHtQTn0tZGV2ICs9ICJsaWJlY2FsLWRldiBsaWJlYm9vay1kZXYiCi0KLUZJTEVTX2xpYmNhbWVsID0gIiR7bGliZGlyfS9saWJjYW1lbC0qLnNvLiogXAotICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2xpYmNhbWVsLXByb3ZpZGVyLSouc28uKiBcCi0gICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyKi9jYW1lbC1wcm92aWRlcnMvKi5zbyBcCi0gICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyKi9jYW1lbC1wcm92aWRlcnMvKi51cmxzIgotRklMRVNfbGliY2FtZWwtZGV2ID0gIiR7bGliZGlyfS9saWJjYW1lbC0qLnNvICR7bGliZGlyfS9saWJjYW1lbC1wcm92aWRlci0qLnNvIFwKLSAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vcGtnY29uZmlnL2NhbWVsKnBjIFwKLSAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyKi9jYW1lbC1wcm92aWRlcnMvKi5sYSBcCi0gICAgICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2NhbWVsIgotCi1GSUxFU19saWJlYm9vayA9ICIke2xpYmRpcn0vbGliZWJvb2stKi5zby4qIgotRklMRVNfbGliZWJvb2stZGV2ID0gIiR7bGliZGlyfS9saWJlYm9vay0xLjIuc28gXAotICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9wa2djb25maWcvbGliZWJvb2stKi5wYyBcCi0gICAgICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2xpYmVib29rLyouaCIKLVJSRUNPTU1FTkRTX2xpYmVib29rID0gImxpYmVkYXRhLWJvb2siCi0KLUZJTEVTX2xpYmVjYWwgPSAiJHtsaWJkaXJ9L2xpYmVjYWwtKi5zby4qIFwKLSAgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMS40L3pvbmVpbmZvIgotRklMRVNfbGliZWNhbC1kZXYgPSAiJHtsaWJkaXJ9L2xpYmVjYWwtKi5zbyAke2xpYmRpcn0vcGtnY29uZmlnL2xpYmVjYWwtKi5wYyBcCi0gICAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlciovbGliZWNhbC8qLmggXAotICAgICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIqL2xpYmljYWwvKi5oIgotUlJFQ09NTUVORFNfbGliZWNhbCA9ICJsaWJlZGF0YS1jYWwgdHpkYXRhIgotCi1GSUxFU19saWJlZGF0YS1ib29rID0gIiR7bGliZXhlY2Rpcn0vZS1hZGRyZXNzYm9vay1mYWN0b3J5IFwKLSAgICAgICAgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS9kYnVzLTEvc2VydmljZXMvKi5BZGRyZXNzQm9vay5zZXJ2aWNlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2xpYmVkYXRhLWJvb2stKi5zby4qIFwKLSAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qL2V4dGVuc2lvbnMvbGliZWJvb2sqLnNvIFwKLSAgICAgICAgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMS40L3dlYXRoZXIvTG9jYXRpb25zLnhtbCIKLUZJTEVTX2xpYmVkYXRhLWJvb2stZGV2ID0gIiR7bGliZGlyfS9saWJlZGF0YS1ib29rLSouc28gXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3BrZ2NvbmZpZy9saWJlZGF0YS1ib29rLSoucGMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qL2V4dGVuc2lvbnMvbGliZWJvb2sqLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aW5jbHVkZWRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovbGliZWRhdGEtYm9vayIKLQotRklMRVNfbGliZWRhdGEtY2FsID0gIiR7bGliZXhlY2Rpcn0vZS1jYWxlbmRhci1mYWN0b3J5IFwKLSAgICAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2RidXMtMS9zZXJ2aWNlcy8qLkNhbGVuZGFyLnNlcnZpY2UgXAotICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9saWJlZGF0YS1jYWwtKi5zby4qIFwKLSAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovZXh0ZW5zaW9ucy9saWJlY2FsKi5zbyIKLUZJTEVTX2xpYmVkYXRhLWNhbC1kZXYgPSAiJHtsaWJkaXJ9L2xpYmVkYXRhLWNhbC0qLnNvIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3BrZ2NvbmZpZy9saWJlZGF0YS1jYWwtKi5wYyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICR7aW5jbHVkZWRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLSovbGliZWRhdGEtY2FsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qL2V4dGVuc2lvbnMvbGliZWNhbCoubGEiCi0KLUZJTEVTX2xpYmVkYXRhc2VydmVyID0gIiR7bGliZGlyfS9saWJlZGF0YXNlcnZlci0qLnNvLioiCi1GSUxFU19saWJlZGF0YXNlcnZlci1kZXYgPSAiJHtsaWJkaXJ9L2xpYmVkYXRhc2VydmVyLSouc28gXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9wa2djb25maWcvbGliZWRhdGFzZXJ2ZXItKi5wYyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItKi9saWJlZGF0YXNlcnZlci8qLmgiCi0KLUZJTEVTX2xpYmVkYXRhc2VydmVydWkgPSAiJHtsaWJkaXJ9L2xpYmVkYXRhc2VydmVydWktKi5zby4qICR7ZGF0YWRpcn0vZXZvbHV0aW9uLWRhdGEtc2VydmVyLTEuNC9nbGFkZS8qLmdsYWRlIgotRklMRVNfbGliZWRhdGFzZXJ2ZXJ1aS1kZXYgPSAiJHtsaWJkaXJ9L2xpYmVkYXRhc2VydmVydWktKi5zbyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vcGtnY29uZmlnL2xpYmVkYXRhc2VydmVydWktKi5wYyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0qL2xpYmVkYXRhc2VydmVydWkvKi5oIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZXZpbmNlL2V2aW5jZV8zLjI0LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ldmluY2UvZXZpbmNlXzMuMjQuMC5iYgppbmRleCA3OGE5NDk1Li5jN2VjZjJiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ldmluY2UvZXZpbmNlXzMuMjQuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ldmluY2UvZXZpbmNlXzMuMjQuMC5iYgpAQCAtNyw2ICs3LDggQEAKIAogaW5oZXJpdCBnbm9tZSBwa2djb25maWcgZ3RrLWljb24tY2FjaGUgZ3NldHRpbmdzIGdvYmplY3QtaW50cm9zcGVjdGlvbiBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgc3lzdGVtZAogCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCiBTUkNfVVJJID0gIiR7R05PTUVfTUlSUk9SfS8ke0dOT01FQk59LyR7QGdub21lX3ZlcmRpcigiJHtQVn0iKX0vJHtHTk9NRUJOfS0ke1BWfS50YXIuJHtHTk9NRV9DT01QUkVTU19UWVBFfTtuYW1lPWFyY2hpdmUgXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1oZWxwLXJlbW92ZS1ZRUxQLW1hY3JvLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtQWRkLWZvcm1hdC1hdHRyaWJ1dGUtdG8tX3N5bmN0ZXhfbWFsbG9jLnBhdGNoIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vJWdjb25mLXRyZWUueG1sIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS8lZ2NvbmYtdHJlZS54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4YzJlOWMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS8lZ2NvbmYtdHJlZS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OTIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+Ci08Z2NvbmY+Ci0gICAgICAgIDxkaXIgbmFtZT0iZGVza3RvcCI+Ci0gICAgICAgICAgICAgICAgPGRpciBuYW1lPSJnbm9tZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9InVybC1oYW5kbGVycyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0ieW1zZ3IiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9InhtcHAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9IndlYmNhbCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0idXZveCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0idHJhc2giPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9InNpcCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0icnRzcCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0icnRwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJwbm0iPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Im5vdGUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Im5ldCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0ibXNuaW0iPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Im1tc2giPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Im1tcyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0ibWFuIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJtYWlsdG8iPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Imxhc3RmbSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iaXRwYyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iaXRtcyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iaXJjIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJpbmZvIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJpY3l4Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJpY3kiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImljcSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iaHR0cHMiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Imh0dHAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImgzMjMiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImdoZWxwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJnZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iZnRwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJmaWxlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJmZWVkIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJjZGRhIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJjYWxsdG8iPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImFpbSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iYWJvdXQiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT4vYmluL3RydWU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImxvY2tkb3duIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImRpc2FibGVfdXJsX2hhbmRsZXJzIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0iYm9vbCIgdmFsdWU9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iZGlzYWJsZV9zYXZlX3RvX2Rpc2siIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJib29sIiB2YWx1ZT0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJkaXNhYmxlX3ByaW50X3NldHVwIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0iYm9vbCIgdmFsdWU9InRydWUiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iZGlzYWJsZV9wcmludGluZyIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9ImJvb2wiIHZhbHVlPSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImRpc2FibGVfbG9ja19zY3JlZW4iIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJib29sIiB2YWx1ZT0idHJ1ZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJkaXNhYmxlX2NvbW1hbmRfbGluZSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9ImJvb2wiIHZhbHVlPSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJhcHBsaWNhdGlvbnMiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9InRlcm1pbmFsIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iZXhlYyIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+L2Jpbi90cnVlPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJhY2Nlc3NpYmlsaXR5Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJrZXlib2FyZCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImVuYWJsZSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9ImJvb2wiIHZhbHVlPSJ0cnVlIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICA8L2Rpcj4KLSAgICAgICAgPGRpciBuYW1lPSJhcHBzIj4KLSAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9Imdub21lX3NldHRpbmdzX2RhZW1vbiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImtleWJpbmRpbmdzIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9Ind3dyIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJzdG9wIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InNsZWVwIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InNlYXJjaCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJzY3JlZW5zYXZlciIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJwcmV2aW91cyIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJwb3dlciIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJwbGF5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InBhdXNlIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9Im5leHQiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT48L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0ibWVkaWEiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT48L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iaG9tZSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJoZWxwIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImVtYWlsIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNhbGN1bGF0b3IiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT48L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iZWplY3QiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT48L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPGRpciBuYW1lPSJtZXRhY2l0eSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImtleWJpbmRpbmdfY29tbWFuZHMiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZF93aW5kb3dfc2NyZWVuc2hvdCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPi9iaW4vdHJ1ZTwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kX3NjcmVlbnNob3QiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5nZG0tc2NyZWVuc2hvdDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0iZ2xvYmFsX2tleWJpbmRpbmdzIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InN3aXRjaF90b193b3Jrc3BhY2VfdXAiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5kaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJzd2l0Y2hfdG9fd29ya3NwYWNlX3JpZ2h0IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+ZGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0ic3dpdGNoX3RvX3dvcmtzcGFjZV9sZWZ0IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+ZGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0ic3dpdGNoX3RvX3dvcmtzcGFjZV9kb3duIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+ZGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0ic3dpdGNoX2dyb3VwIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+ZGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0ic2hvd19kZXNrdG9wIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+ZGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmRfd2luZG93X3NjcmVlbnNob3QiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5kaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZF9zY3JlZW5zaG90IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+UHJpbnQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icGFuZWxfcnVuX2RpYWxvZyIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPmRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InBhbmVsX21haW5fbWVudSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPmRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpciBuYW1lPSJnZW5lcmFsIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9Im51bV93b3Jrc3BhY2VzIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0iaW50IiB2YWx1ZT0iMSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImNvbXBpeiI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImdlbmVyYWwiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9ImFsbHNjcmVlbnMiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0ib3B0aW9ucyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQxMV9rZXkiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDExX2J1dHRvbiIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kMTBfa2V5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQxMF9idXR0b24iIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDhfa2V5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQ4X2J1dHRvbiIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kN19rZXkiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDdfYnV0dG9uIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQ2X2tleSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kNl9idXR0b24iIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDVfa2V5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQ1X2J1dHRvbiIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kNF9rZXkiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDRfYnV0dG9uIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQzX2tleSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kM19idXR0b24iIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDJfa2V5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQyX2J1dHRvbiIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kMV9rZXkiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fY29tbWFuZDFfYnV0dG9uIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2NvbW1hbmQwX2tleSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InJ1bl9jb21tYW5kMF9idXR0b24iIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJydW5fa2V5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icnVuX2J1dHRvbiIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5EaXNhYmxlZDwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9Im1haW5fbWVudV9rZXkiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+RGlzYWJsZWQ8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJtYWluX21lbnVfYnV0dG9uIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPkRpc2FibGVkPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZF93aW5kb3dfc2NyZWVuc2hvdCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT48L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lbnRyeT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbnRyeSBuYW1lPSJjb21tYW5kMTEiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZDEwIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQ5IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQ4IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQ3IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQ2IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQ1IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQ0IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQzIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQyIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQxIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmQwIiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9ImNvbW1hbmRfdGVybWluYWwiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iY29tbWFuZF9zY3JlZW5zaG90IiBtdGltZT0iMTIyNzE3MzE5NyIgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPmdkbS1zY3JlZW5zaG90PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0iYWN0aXZlX3BsdWdpbnMiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJsaXN0IiBsdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPmN1YmU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+ZGVjb3JhdGlvbjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5nY29uZjwvc3RyaW5ndmFsdWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSB0eXBlPSJzdHJpbmciPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJpbmd2YWx1ZT5nbGliPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPm1vdmU8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+cGxhY2U8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+cmVzaXplPC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHR5cGU9InN0cmluZyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cmluZ3ZhbHVlPnNjcmVlbnNob3Q8L3N0cmluZ3ZhbHVlPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgdHlwZT0ic3RyaW5nIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3RyaW5ndmFsdWU+d29iYmx5PC9zdHJpbmd2YWx1ZT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGlyPgotICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPGRpciBuYW1lPSJnbm9tZS1wb3dlci1tYW5hZ2VyIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXIgbmFtZT0idWkiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0ic2hvd19jb250ZXh0X21lbnUiIG10aW1lPSIxMjI3MTczMTk3IiB0eXBlPSJib29sIiB2YWx1ZT0iZmFsc2UiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VudHJ5PgotICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPGRpciBuYW1lPSJnbm9tZS1zY3JlZW5zYXZlciI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZW50cnkgbmFtZT0icG93ZXJfbWFuYWdlbWVudF9kZWxheSIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9ImludCIgdmFsdWU9IjMwIj4KLSAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgPC9kaXI+Ci0gICAgICAgICAgICAgICAgPGRpciBuYW1lPSJuYXV0aWx1cyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGlyIG5hbWU9InByZWZlcmVuY2VzIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVudHJ5IG5hbWU9InNob3dfZGVza3RvcCIgbXRpbWU9IjEyMjcxNzMxOTciIHR5cGU9ImJvb2wiIHZhbHVlPSJmYWxzZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZW50cnk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgICAgICAgICA8L2Rpcj4KLSAgICAgICAgPC9kaXI+Ci08L2djb25mPgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9EZWZhdWx0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9EZWZhdWx0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBhN2E3ZmNmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vRGVmYXVsdAorKysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLSMhL2Jpbi9zaAotIyBTdG9sZW4gZnJvbSB0aGUgZGViaWFuIGtkbSBzZXR1cCwgYXJlbid0IEkgc25lYWt5Ci0jIFBsdXMgYSBsb3Qgb2YgZnVuIHN0dWZmIGFkZGVkCi0jICAtR2VvcmdlCi0KLVBBVEg9Ii91c3IvYmluOiRQQVRIIgotT0xEX0lGUz0kSUZTCi0KLWdkbXdoaWNoICgpIHsKLSAgQ09NTUFORD0iJDEiCi0gIE9VVFBVVD0KLSAgSUZTPToKLSAgZm9yIGRpciBpbiAkUEFUSAotICBkbwotICAgIGlmIHRlc3QgLXggIiRkaXIvJENPTU1BTkQiIDsgdGhlbgotICAgICAgaWYgdGVzdCAieCRPVVRQVVQiID0gIngiIDsgdGhlbgotICAgICAgICBPVVRQVVQ9IiRkaXIvJENPTU1BTkQiCi0gICAgICBmaQotICAgIGZpCi0gIGRvbmUKLSAgSUZTPSRPTERfSUZTCi0gIGVjaG8gIiRPVVRQVVQiCi19Ci0KLXN5c3Jlc291cmNlcz0vZXRjL1gxMS9YcmVzb3VyY2VzCi0KLSMgbWVyZ2UgaW4gZGVmYXVsdHMKLWlmIFsgLWYgIiRzeXNyZXNvdXJjZXMiIF07IHRoZW4KLSAgICB4cmRiIC1tZXJnZSAiJHN5c3Jlc291cmNlcyIKLWZpCi0KLXN5c21vZG1hcD0vZXRjL1gxMS9YbW9kbWFwCi0KLVhNT0RNQVA9YGdkbXdoaWNoIHhtb2RtYXBgCi1pZiBbICJ4JFhNT0RNQVAiICE9ICJ4IiBdIDsgdGhlbgotICBpZiBbICJ4JEdETV9QQVJFTlRfRElTUExBWSIgPSAieCIgXTsgdGhlbgotICAgIGlmIFsgLWYgJHN5c21vZG1hcCBdOyB0aGVuCi0gICAgICAkWE1PRE1BUCAkc3lzbW9kbWFwCi0gICAgZmkKLSAgZWxzZQotICAgICggRElTUExBWT0kR0RNX1BBUkVOVF9ESVNQTEFZIFhBVVRIT1JJVFk9JEdETV9QQVJFTlRfWEFVVEhPUklUWSAkWE1PRE1BUCAtcGtlICkgfCAkWE1PRE1BUCAtCi0gIGZpCi0KLSAgIwotICAjIFN3aXRjaCBTdW4ncyBBbHQgYW5kIE1ldGEgbW9kIG1hcHBpbmdzCi0gICMKLQotICBVTkFNRT1gZ2Rtd2hpY2ggdW5hbWVgCi0gIFBST0NFU1NPUj1gJFVOQU1FIC1wYAotICBpZiBbICJ4JFBST0NFU1NPUiIgPSAieHNwYXJjIiBdOyB0aGVuCi0gICAgaWYgJFhNT0RNQVAgfCAvdXNyL2Jpbi9ncmVwIG1vZDQgfCAvdXNyL2Jpbi9ncmVwIEFsdCA+IC9kZXYvbnVsbCAyPi9kZXYvbnVsbAotICAgIHRoZW4KLSAgICAgICRYTU9ETUFQIC1lICJjbGVhciBNb2QxIiBcCi0gICAgICAgICAgICAgICAtZSAiY2xlYXIgTW9kNCIgXAotICAgICAgICAgICAgICAgLWUgImFkZCBNb2QxID0gQWx0X0wiIFwKLSAgICAgICAgICAgICAgIC1lICJhZGQgTW9kMSA9IEFsdF9SIiBcCi0gICAgICAgICAgICAgICAtZSAiYWRkIE1vZDQgPSBNZXRhX0wiIFwKLSAgICAgICAgICAgICAgIC1lICJhZGQgTW9kNCA9IE1ldGFfUiIKLSAgICBmaQotICBmaQotZmkKLQotU0VUWEtCTUFQPWBnZG13aGljaCBzZXR4a2JtYXBgCi1pZiBbICJ4JFNFVFhLQk1BUCIgIT0gIngiIF0gOyB0aGVuCi0gICMgRklYTUU6IGlzIHRoaXMgYWxsIHJpZ2h0PyAgSXMgdGhpcyBjb21wbGV0ZWx5IG9uIGNyYWNrPwotICAjIFdoYXQgdGhpcyBkb2VzIGlzIG1vdmUgdGhlIHhrYiBjb25maWd1cmF0aW9uIGZyb20gdGhlIEdETV9QQVJFTlRfRElTUExBWQotICAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBkb25lIGluIGNvZGUuICBPciB0aGVyZSBtdXN0IGJlIGFuIGVhc2llciB3YXkgLi4uCi0gIGlmIFsgLW4gIiRHRE1fUEFSRU5UX0RJU1BMQVkiIF07IHRoZW4KLSAgICBYS0JTRVRVUD1gKCBESVNQTEFZPSRHRE1fUEFSRU5UX0RJU1BMQVkgWEFVVEhPUklUWT0kR0RNX1BBUkVOVF9YQVVUSE9SSVRZICRTRVRYS0JNQVAgLXYgKWAKLSAgICBpZiBbIC1uICIkWEtCU0VUVVAiIF07IHRoZW4KLSAgICAgIFhLQktFWU1BUD1gZWNobyAiJFhLQlNFVFVQIiB8IGdyZXAgJ15rZXltYXAnIHwgYXdrICd7IHByaW50ICQyIH0nYAotICAgICAgWEtCVFlQRVM9YGVjaG8gIiRYS0JTRVRVUCIgfCBncmVwICdedHlwZXMnIHwgYXdrICd7IHByaW50ICQyIH0nYAotICAgICAgWEtCQ09NUEFUPWBlY2hvICIkWEtCU0VUVVAiIHwgZ3JlcCAnXmNvbXBhdCcgfCBhd2sgJ3sgcHJpbnQgJDIgfSdgCi0gICAgICBYS0JTWU1CT0xTPWBlY2hvICIkWEtCU0VUVVAiIHwgZ3JlcCAnXnN5bWJvbHMnIHwgYXdrICd7IHByaW50ICQyIH0nYAotICAgICAgWEtCR0VPTUVUUlk9YGVjaG8gIiRYS0JTRVRVUCIgfCBncmVwICdeZ2VvbWV0cnknIHwgYXdrICd7IHByaW50ICQyIH0nYAotICAgICAgaWYgWyAtbiAiJFhLQktFWU1BUCIgXTsgdGhlbgotICAgICAgICAkU0VUWEtCTUFQIC1rZXltYXAgIiRYS0JLRVlNQVAiCi0gICAgICBlbGlmIFsgLW4gIiRYS0JUWVBFUyIgLWEgLW4gIiRYS0JDT01QQVQiIC1hIC1uICIkWEtCU1lNQk9MUyIgLWEgLW4gIiRYS0JHRU9NRVRSWSIgXTsgdGhlbgotICAgICAgICAkU0VUWEtCTUFQIC10eXBlcyAiJFhLQlRZUEVTIiAtY29tcGF0ICIkWEtCQ09NUEFUIiAtc3ltYm9scyAiJFhLQlNZTUJPTFMiIC1nZW9tZXRyeSAiJFhLQkdFT01FVFJZIgotICAgICAgZWxpZiBbIC1uICIkWEtCVFlQRVMiIC1hIC1uICIkWEtCQ09NUEFUIiAtYSAtbiAiJFhLQlNZTUJPTFMiIF07IHRoZW4KLSAgICAgICAgJFNFVFhLQk1BUCAtdHlwZXMgIiRYS0JUWVBFUyIgLWNvbXBhdCAiJFhLQkNPTVBBVCIgLXN5bWJvbHMgIiRYS0JTWU1CT0xTIgotICAgICAgZWxpZiBbIC1uICIkWEtCU1lNQk9MUyIgXTsgdGhlbgotICAgICAgICAkU0VUWEtCTUFQIC1zeW1ib2xzICIkWEtCU1lNQk9MUyIKLSAgICAgIGZpCi0gICAgZmkKLSAgZmkKLWZpCi0KLSMgRklYTUU6IHRoZSBob3VzZWtlZXBpbmcgYmVsb3cgcmVhbGx5IHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgcG9zdGluc3Qgb2YgcGFja2FnZXMgdGhhdCByZXF1aXJlIGl0Ci0jIGJydXRlIGZvcmNlIGFwcHJvYWNoIGZvciBub3cKLXVwZGF0ZS1kZXNrdG9wLWRhdGFiYXNlCi1nbGliLWNvbXBpbGUtc2NoZW1hcyAvdXNyL3NoYXJlL2dsaWItMi4wL3NjaGVtYXMvCi0KLSN4MTF2bmMgIC1xIC1iZyAtZGlzcGxheSA6MCAtZm9yZXZlciAtYXZhaGkgLXhrYgotCi1leGl0IDAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vY3Jvc3MteGRldGVjdGlvbi5kaWZmIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9jcm9zcy14ZGV0ZWN0aW9uLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlZTM1MTEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9jcm9zcy14ZGV0ZWN0aW9uLmRpZmYKKysrIC9kZXYvbnVsbApAQCAtMSw5NiArMCwwIEBACi1Gcm9tIDYwMDg0ZTdlOTczNjM0OTcxYzk2NDNmMjQ1OWU1ZDNlMjQ4ZWUzZjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgotRGF0ZTogVGh1LCA5IEp1biAyMDExIDE4OjEyOjQ1ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGJ1aWxkLXN5czogaGFyZGNvZGUgeCBwYXRocyB0byBmaXggY3Jvc3Njb21waWxpbmcKLQotU2lnbmVkLW9mZi1ieTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KLS0tLQotIGNvbmZpZ3VyZS5hYyB8ICAgNzIgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDY3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCBlZWFmM2RjLi44NDFlZmUwIDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC0xMTAxLDczICsxMTAxLDExIEBAIGRubCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBkbmwgLSBDaGVjayBmb3IgWCBTZXJ2ZXIgbG9jYXRpb24KLSBkbmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gCi0tIyBGaXJzdCBjaGVjayB3aXRoICIhIC1oIiBmb3IgL3Vzci9YMTFSNiBhbmQgL3Vzci9YMTEgc2luY2UgdGhleSBvZnRlbgotLSMgc3ltbGluayB0byBlYWNoIG90aGVyLCBhbmQgY29uZmlndXJlIHNob3VsZCB1c2UgdGhlIG1vcmUgc3RhYmxlCi0tIyBsb2NhdGlvbiAodGhlIHJlYWwgZGlyZWN0b3J5KSBpZiBwb3NzaWJsZS4KLS0jCi0tIyBPbiBTb2xhcmlzLCB0aGUgL3Vzci9iaW4vWHNlcnZlciBzY3JpcHQgaXMgdXNlZCB0byBkZWNpZGUgd2hldGhlciB0bwotLSMgdXNlIFhzdW4gb3IgWG9yZywgc28gdGhpcyBpcyB1c2VkIG9uIFNvbGFyaXMuCi0tIwotLSMgV2hlbiB0ZXN0aW5nIGZvciAvdXNyL1gxMVI2LCBmaXJzdCBjaGVjayB3aXRoICIhIC1oIiBmb3IgL3Vzci9YMTFSNgotLSMgYW5kIC91c3IvWDExIHNpbmNlIHRoZXkgb2Z0ZW4gc3ltbGluayB0byBlYWNoIG90aGVyLCBhbmQgY29uZmlndXJlCi0tIyBzaG91bGQgdXNlIHRoZSBtb3JlIHN0YWJsZSBsb2NhdGlvbiAodGhlIHJlYWwgZGlyZWN0b3J5KSBpZiBwb3NzaWJsZS4KLS0jCi0taWYgdGVzdCAteCAvdXNyL1gxMS9iaW4vWHNlcnZlcjsgdGhlbgotLSAgIFhfUEFUSD0iL3Vzci9YMTEvYmluIgotLSAgIFhfU0VSVkVSX1BBVEg9Ii91c3IvWDExL2JpbiIKLS0gICBYX1NFUlZFUj0iL3Vzci9YMTEvYmluL1hzZXJ2ZXIiCi0tICAgWF9DT05GSUdfT1BUSU9OUz0iLWF1ZGl0IDAiCi0tZWxpZiB0ZXN0ICEgLWggL3Vzci9YMTFSNiAtYSAteCAvdXNyL1gxMVI2L2Jpbi9YOyB0aGVuCi0tICAgWF9QQVRIPSIvdXNyL1gxMVI2L2JpbiIKLS0gICBYX1NFUlZFUl9QQVRIPSIvdXNyL1gxMVI2L2JpbiIKLS0gICBYX1NFUlZFUj0iL3Vzci9YMTFSNi9iaW4vWCIKLS0gICBYX0NPTkZJR19PUFRJT05TPSItYXVkaXQgMCIKLS1lbGlmIHRlc3QgISAtaCAvdXNyL1gxMSAtYSAteCAvdXNyL1gxMS9iaW4vWDsgdGhlbgotLSAgIFhfUEFUSD0iL3Vzci9YMTEvYmluIgotLSAgIFhfU0VSVkVSX1BBVEg9Ii91c3IvWDExL2JpbiIKLS0gICBYX1NFUlZFUj0iL3Vzci9YMTEvYmluL1giCi0tICAgWF9DT05GSUdfT1BUSU9OUz0iLWF1ZGl0IDAiCi0tZWxpZiB0ZXN0IC14IC91c3IvWDExUjYvYmluL1g7IHRoZW4KLS0gICBYX1BBVEg9Ii91c3IvWDExUjYvYmluIgotLSAgIFhfU0VSVkVSX1BBVEg9Ii91c3IvWDExUjYvYmluIgotLSAgIFhfU0VSVkVSPSIvdXNyL1gxMVI2L2Jpbi9YIgotLSAgIFhfQ09ORklHX09QVElPTlM9Ii1hdWRpdCAwIgotLWVsaWYgdGVzdCAteCAvdXNyL2Jpbi9Yb3JnOyB0aGVuCi0tICAgWF9QQVRIPSIvdXNyL2JpbiIKLS0gICBYX1NFUlZFUl9QQVRIPSIvdXNyL2JpbiIKLS0gICBYX1NFUlZFUj0iL3Vzci9iaW4vWG9yZyIKLS0gICBYX0NPTkZJR19PUFRJT05TPSItYXVkaXQgMCIKLS1lbGlmIHRlc3QgLXggL3Vzci9YMTEvYmluL1g7IHRoZW4KLS0gICBYX1BBVEg9Ii91c3IvWDExL2JpbiIKLS0gICBYX1NFUlZFUl9QQVRIPSIvdXNyL1gxMS9iaW4iCi0tICAgWF9TRVJWRVI9Ii91c3IvWDExL2Jpbi9YIgotLSAgIFhfQ09ORklHX09QVElPTlM9Ii1hdWRpdCAwIgotLWVsaWYgdGVzdCAteCAvdXNyL29wZW53aW4vYmluL1hzdW47IHRoZW4KLS0gICAjIERvIG5vdCBhZGQgL3Vzci9vcGVud2luL2JpbiBoZXJlIGJlY2F1c2Ugb24gU29sYXJpcyB5b3UgbmVlZAotLSAgICMgL3Vzci9vcGVud2luL2JpbiBpbiB5b3VyIFBBVEggZXZlbiBpZiB5b3UgYXJlIHVzaW5nIHRoZSBYb3JnCi0tICAgIyBYc2VydmVyLiAgV2UgYWRkIHRoaXMgdG8gdGhlIHBhdGggYmVsb3cuCi0tICAgWF9QQVRIPSIvdXNyL29wZW53aW4vYmluIgotLSAgIFhfU0VSVkVSX1BBVEg9Ii91c3Ivb3Blbndpbi9iaW4iCi0tICAgWF9TRVJWRVI9Ii91c3Ivb3Blbndpbi9iaW4vWHN1biIKLS0gICBYX0NPTkZJR19PUFRJT05TPSItYXVkaXQgMCAtbm9iYW5uZXIiCi0tZWxpZiB0ZXN0IC14IC9vcHQvWDExUjYvYmluL1g7IHRoZW4KLS0gICBYX1BBVEg9Ii9vcHQvWDExUjYvYmluIgotLSAgIFhfU0VSVkVSX1BBVEg9Ii9vcHQvWDExUjYvYmluIgotLSAgIFhfU0VSVkVSPSIvb3B0L1gxMVI2L2Jpbi9YIgotLSAgIFhfQ09ORklHX09QVElPTlM9Ii1hdWRpdCAwIgotLWVsaWYgdGVzdCAteCAvdXNyL2Jpbi9YOyB0aGVuCi0tICAgWF9QQVRIPSIvdXNyL2JpbiIKLS0gICBYX1NFUlZFUl9QQVRIPSIvdXNyL2JpbiIKLS0gICBYX1NFUlZFUj0iL3Vzci9iaW4vWCIKLS0gICBYX0NPTkZJR19PUFRJT05TPSItYXVkaXQgMCIKLS1lbHNlCi0tICAgIyB3aGF0IHRvIGRvLCB3aGF0IHRvIGRvLCB0aGlzIGlzIHdyb25nLCBidXQgdGhpcyBqdXN0IHNldHMgdGhlCi0tICAgIyBkZWZhdWx0cywgcGVyaGFwcyB0aGlzIHVzZXIgaXMgY3Jvc3MgY29tcGlsaW5nIG9yIHNvbWUgc3VjaAotLSAgIFhfUEFUSD0iL3Vzci9iaW4vWDExOi91c3IvWDExUjYvYmluOi9vcHQvWDExUjYvYmluIgotLSAgIFhfU0VSVkVSX1BBVEg9Ii91c3IvYmluIgotLSAgIFhfU0VSVkVSPSIvdXNyL2Jpbi9YIgotLSAgIFhfQ09ORklHX09QVElPTlM9Ii1hdWRpdCAwIgotLWZpCi0rIyBXZSBoYXJkY29kZSB0aGUgWCBwYXRocyBzaW5jZSB3ZSBrbm93IHdoZXJlIGl0IHdpbGwgYmUgaW4gdGhlIE9FIHVuaXZlcnMKLStYX1BBVEg9Ii91c3IvYmluIgotK1hfU0VSVkVSX1BBVEg9Ii91c3IvYmluIgotK1hfU0VSVkVSPSIvdXNyL2Jpbi9YIgotK1hfQ09ORklHX09QVElPTlM9Ii1hdWRpdCAwIgotIAotIGRubCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBkbmwgLSBDaGVjayBmb3IgWG5lc3QgLyBYZXBoeXIgc3VwcG9ydAotLS0gCi0xLjYuNi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vZ2RtIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9nZG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGJiNWI0MTguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9nZG0KKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0jISAvYmluL3NoCi0jIyMgQkVHSU4gSU5JVCBJTkZPCi0jIFByb3ZpZGVzOiAgICAgICAgICBnZG0KLSMgU2hvdWxkLVN0YXJ0OiAgICAgIGNvbnNvbGUtc2NyZWVuIGFjcGlkIGRidXMgaGFsIG5ldHdvcmstbWFuYWdlcgotIyBSZXF1aXJlZC1TdGFydDogICAgJGxvY2FsX2ZzICRyZW1vdGVfZnMKLSMgUmVxdWlyZWQtU3RvcDogICAgICRsb2NhbF9mcyAkcmVtb3RlX2ZzCi0jIERlZmF1bHQtU3RhcnQ6ICAgICA1Ci0jIERlZmF1bHQtU3RvcDogICAgICAwIDEgMiAzIDYKLSMgU2hvcnQtRGVzY3JpcHRpb246IEdOT01FIERpc3BsYXkgTWFuYWdlcgotIyBEZXNjcmlwdGlvbjogICAgICAgRGViaWFuIGluaXQgc2NyaXB0IGZvciB0aGUgR05PTUUgRGlzcGxheSBNYW5hZ2VyCi0jIyMgRU5EIElOSVQgSU5GTwotIwotIyBBdXRob3I6ICAgICAgIFJ5YW4gTXVycmF5IDxybXVycmF5QGRlYmlhbi5vcmc+Ci0jCi1zZXQgLWUKLQotUEFUSD0vc2JpbjovYmluOi91c3Ivc2JpbjovdXNyL2JpbgotREFFTU9OPS91c3Ivc2Jpbi9nZG0KLQotdGVzdCAteCAkREFFTU9OIHx8IGV4aXQgMAotCi1pZiBbIC1yIC9ldGMvZGVmYXVsdC9sb2NhbGUgXTsgdGhlbgotICAuIC9ldGMvZGVmYXVsdC9sb2NhbGUKLSAgZXhwb3J0IExBTkcgTEFOR1VBR0UKLWZpCi0KLSMgVG8gc3RhcnQgZ2RtIGV2ZW4gaWYgaXQgaXMgbm90IHRoZSBkZWZhdWx0IGRpc3BsYXkgbWFuYWdlciwgY2hhbmdlCi0jIEhFRURfREVGQVVMVF9ESVNQTEFZX01BTkFHRVIgdG8gImZhbHNlLiIKLUhFRURfREVGQVVMVF9ESVNQTEFZX01BTkFHRVI9dHJ1ZQotREVGQVVMVF9ESVNQTEFZX01BTkFHRVJfRklMRT0vZXRjL1gxMS9kZWZhdWx0LWRpc3BsYXktbWFuYWdlcgotCi1jYXNlICIkMSIgaW4KLSAgc3RhcnQpCi0JIyBtYWtlIG5lZWRlZCBkaXJlY3RvcmllcyBpbiB2b2xhdGlsZQotCi0JaWYgWyAtZSAvdmFyL2xvZy9nZG0gXSA7IHRoZW4gCi0JCXJtIC1yZiAvdmFyL2xvZy9nZG0KLQlmaQotCi0JbWtkaXIgLW0gMDE3NzAgL3Zhci9sb2cvZ2RtCi0JY2hvd24gZ2RtOmdkbSAvdmFyL2xvZy9nZG0KLQotCWlmIFsgLWUgL3RtcC8uSUNFLXVuaXggXSA7IHRoZW4gCi0JCXJtIC1yZiAvdG1wLy5JQ0UtdW5peAotCWZpCi0KLQlta2RpciAtbSAwMTc3NyAvdG1wLy5JQ0UtdW5peAotCWNob3duIHJvb3Q6cm9vdCAvdG1wLy5JQ0UtdW5peAotCi0gICAgICAgIENPTkZJR1VSRURfREFFTU9OPSQoYmFzZW5hbWUgIiQoY2F0ICRERUZBVUxUX0RJU1BMQVlfTUFOQUdFUl9GSUxFIDI+IC9kZXYvbnVsbCkiKQotICAgICAgICBpZiBncmVwIC13cXMgdGV4dCAvcHJvYy9jbWRsaW5lOyB0aGVuCi0gICAgICAgICAgICBlY2hvICJOb3Qgc3RhcnRpbmcgR05PTUUgRGlzcGxheSBNYW5hZ2VyIChnZG0pOyBmb3VuZCAndGV4dCcgaW4ga2VybmVsIGNvbW1hbmRsaW5lLiIKLSAgICAgICAgZWxpZiBbIC1lICIkREVGQVVMVF9ESVNQTEFZX01BTkFHRVJfRklMRSIgXSAmJiBcCi0gICAgICAgICAgIFsgIiRIRUVEX0RFRkFVTFRfRElTUExBWV9NQU5BR0VSIiA9ICJ0cnVlIiBdICYmIFwKLSAgICAgICAgICAgWyAiJENPTkZJR1VSRURfREFFTU9OIiAhPSBnZG0gXSA7IHRoZW4KLSAgICAgICAgICAgICAgICBlY2hvICJOb3Qgc3RhcnRpbmcgR05PTUUgRGlzcGxheSBNYW5hZ2VyOyBpdCBpcyBub3QgdGhlIGRlZmF1bHQgZGlzcGxheSBtYW5hZ2VyIgotICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZWNobyAiU3RhcnRpbmcgR05PTUUgRGlzcGxheSBNYW5hZ2VyIiAiZ2RtIgotICAgICAgICAgICAgICAgIHN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RhcnQgLWIgLS1leGVjICREQUVNT04gCi0gICAgICAgIGZpCi0gIDs7Ci0gIHN0b3ApCi0gICAgICAgIGVjaG8gIlN0b3BwaW5nIEdOT01FIERpc3BsYXkgTWFuYWdlciIgImdkbSIKLSAgICAgICAgc2V0ICtlCi0gICAgICAgIHN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAtLXF1aWV0IC0tcGlkZmlsZSAvdmFyL3J1bi9nZG0ucGlkIFwKLSAgICAgICAgICAgICAgICAtLW5hbWUgZ2RtIC0tcmV0cnkgNQotICAgICAgICBzZXQgLWUKLSAgOzsKLSAgcmVsb2FkKQotICAgICAgICBlY2hvICJTY2hlZHVsaW5nIHJlbG9hZCBvZiBHTk9NRSBEaXNwbGF5IE1hbmFnZXIgY29uZmlndXJhdGlvbiIgImdkbSIKLSAgICAgICAgc2V0ICtlCi0gICAgICAgIHN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAtLXNpZ25hbCBVU1IxIC0tcXVpZXQgLS1waWRmaWxlIFwKLSAgICAgICAgICAgICAgICAvdmFyL3J1bi9nZG0ucGlkIC0tbmFtZSBnZG0KLSAgICAgICAgc2V0IC1lCi0gIDs7Ci0gIHN0YXR1cykKLSAgICAgICAgc3RhdHVzX29mX3Byb2MgLXAgIiRQSURGSUxFIiAiJERBRU1PTiIgZ2RtICYmIGV4aXQgMCB8fCBleGl0ICQ/Ci0gIDs7Ci0gIHJlc3RhcnR8Zm9yY2UtcmVsb2FkKQotICAgICAgICAkMCBzdG9wCi0gICAgICAgICQwIHN0YXJ0Ci0gIDs7Ci0gICopCi0gICAgICAgIGVjaG8gIlVzYWdlOiAvZXRjL2luaXQuZC9nZG0ge3N0YXJ0fHN0b3B8cmVzdGFydHxyZWxvYWR8Zm9yY2UtcmVsb2FkfHN0YXR1c30iCi0gICAgICAgIGV4aXQgMQotICA7OwotZXNhYwotCi1leGl0IDAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vZ2RtLXBhbSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vZ2RtLXBhbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjlmYWZlZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nZG0vZ2RtL2dkbS1wYW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0jCi0jIGRlZmF1bHQ7IHN0YW5kYXJkIFVOKlggYWNjZXNzCi0jCi1hdXRoICAgICByZXF1aXJlZCAgICAgICBwYW1fdW5peC5zbwotYWNjb3VudCAgcmVxdWlyZWQgICAgICAgcGFtX3VuaXguc28KLXBhc3N3b3JkIHJlcXVpcmVkICAgICAgIHBhbV91bml4LnNvCi1zZXNzaW9uICByZXF1aXJlZCAgICAgICBwYW1fdW5peC5zbwotCi1hdXRoICAgICBvcHRpb25hbCAgICAgICBwYW1fZ25vbWVfa2V5cmluZy5zbwotc2Vzc2lvbiAgb3B0aW9uYWwgICAgICAgcGFtX2dub21lX2tleXJpbmcuc28gIGF1dG9fc3RhcnQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9nZG0uY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dkbS9nZG0vZ2RtLmNvbmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1OTgyM2IuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9nZG0uY29uZgorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLSMgR0RNIEN1c3RvbSBDb25maWd1cmF0aW9uIGZpbGUuCi0jCi0jIFRoaXMgZmlsZSBpcyB0aGUgYXBwcm9wcmlhdGUgcGxhY2UgZm9yIHNwZWNpZnlpbmcgeW91ciBjdXN0b21pemF0aW9ucyB0byB0aGUKLSMgR0RNIGNvbmZpZ3VyYXRpb24uICAgSWYgeW91IHJ1biBnZG1zZXR1cCwgaXQgd2lsbCBhdXRvbWF0aWNhbGx5IGVkaXQgdGhpcwotIyBmaWxlIGZvciB5b3UgYW5kIHdpbGwgY2F1c2UgdGhlIGRhZW1vbiBhbmQgYW55IHJ1bm5pbmcgR0RNIEdVSSBwcm9ncmFtcyB0bwotIyBhdXRvbWF0aWNhbGx5IHVwZGF0ZSB3aXRoIHRoZSBuZXcgY29uZmlndXJhdGlvbi4gIE5vdCBhbGwgY29uZmlndXJhdGlvbgotIyBvcHRpb25zIGFyZSBzdXBwb3J0ZWQgYnkgZ2Rtc2V0dXAsIHNvIHRvIG1vZGlmeSBzb21lIHZhbHVlcyBpdCBtYXkgYmUKLSMgbmVjZXNzYXJ5IHRvIG1vZGlmeSB0aGlzIGZpbGUgZGlyZWN0bHkgYnkgaGFuZC4KLSMKLSMgVGhpcyBmaWxlIG92ZXJyaWRlcyB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHNldHRpbmdzLiAgVGhlc2Ugc2V0dGluZ3MgCi0jIGFyZSBzdG9yZWQgaW4gdGhlIEdETSBTeXN0ZW0gRGVmYXVsdHMgY29uZmlndXJhdGlvbiBmaWxlLCB3aGljaCBpcyBmb3VuZAotIyBhdCB0aGUgZm9sbG93aW5nIGxvY2F0aW9uLgotIwotIyAvdXNyL3NoYXJlL2dkbS9kZWZhdWx0cy5jb25mLiAgCi0jCi0jIFRoaXMgZmlsZSBjb250YWlucyBjb21tZW50cyBhYm91dCB0aGUgbWVhbmluZyBvZiBlYWNoIGNvbmZpZ3VyYXRpb24gb3B0aW9uLAotIyBzbyBpcyBhbHNvIGEgdXNlZnVsIHJlZmVyZW5jZS4gIEFsc28gcmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gbGlua3MgYXQKLSMgdGhlIGVuZCBvZiB0aGlzIGNvbW1lbnQgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24uICBJbiBzaG9ydCwgdG8gaGFuZC1lZGl0Ci0jIHRoaXMgZmlsZSwgc2ltcGx5IGFkZCBvciBtb2RpZnkgdGhlIGtleT12YWx1ZSBjb21iaW5hdGlvbiBpbiB0aGUKLSMgYXBwcm9wcmlhdGUgc2VjdGlvbiBpbiB0aGUgdGVtcGxhdGUgYmVsb3cgdGhpcyBjb21tZW50IHNlY3Rpb24uCi0jCi0jIEZvciBleGFtcGxlLCBpZiB5b3Ugd2FudCB0byBzcGVjaWZ5IGEgZGlmZmVyZW50IHZhbHVlIGZvciB0aGUgRW5hYmxlIGtleQotIyBpbiB0aGUgIltkZWJ1Z10iIHNlY3Rpb24gb2YgeW91ciBHRE0gU3lzdGVtIERlZmF1bHRzIGNvbmZpZ3VyYXRpb24gZmlsZSwKLSMgdGhlbiBhZGQgIkVuYWJsZT10cnVlIiBpbiB0aGUgIltkZWJ1Z10iIHNlY3Rpb24gb2YgdGhpcyBmaWxlLiAgSWYgdGhlCi0jIGtleSBhbHJlYWR5IGV4aXN0cyBpbiB0aGlzIGZpbGUsIHRoZW4gc2ltcGx5IG1vZGlmeSBpdC4KLSMKLSMgT2xkZXIgdmVyc2lvbnMgb2YgR0RNIHVzZWQgdGhlICJnZG0uY29uZiIgZmlsZSBmb3IgY29uZmlndXJhdGlvbi4gIElmIHlvdXIKLSMgc3lzdGVtIGhhcyBhbiBvbGQgZ2RtLmNvbmYgZmlsZSBvbiB0aGUgc3lzdGVtLCBpdCB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZgotIyB0aGlzIGZpbGUgLSBzbyBjaGFuZ2VzIG1hZGUgdG8gdGhpcyBmaWxlIHdpbGwgbm90IHRha2UgZWZmZWN0LiAgQ29uc2lkZXIKLSMgbWlncmF0aW5nIHlvdXIgY29uZmlndXJhdGlvbiB0byB0aGlzIGZpbGUgYW5kIHJlbW92aW5nIHRoZSBnZG0uY29uZiBmaWxlLgotIwotIyBJZiB5b3UgaGFuZCBlZGl0IGEgR0RNIGNvbmZpZ3VyYXRpb24gZmlsZSwgeW91IGNhbiBydW4gdGhlIGZvbGxvd2luZwotIyBjb21tYW5kIGFuZCB0aGUgR0RNIGRhZW1vbiB3aWxsIGltbWVkaWF0ZWx5IHJlZmxlY3QgdGhlIGNoYW5nZS4gIEFueQotIyBydW5uaW5nIEdETSBHVUkgcHJvZ3JhbXMgd2lsbCBhbHNvIGJlIG5vdGlmaWVkIHRvIHVwZGF0ZSB3aXRoIHRoZSBuZXcKLSMgY29uZmlndXJhdGlvbi4KLSMKLSMgZ2RtZmxleGlzZXJ2ZXIgLS1jb21tYW5kPSJVUERBVEVfQ09ORklHIDxjb25maWd1cmF0aW9uIGtleT4iCi0jCi0jIGUuZywgdGhlICJFbmFibGUiIGtleSBpbiB0aGUgIltkZWJ1Z10iIHNlY3Rpb24gd291bGQgYmUgImRlYnVnL0VuYWJsZSIuCi0jCi0jIFlvdSBjYW4gYWxzbyBydW4gZ2RtLXJlc3RhcnQgb3IgZ2RtLXNhZmUtcmVzdGFydCB0byBjYXVzZSBHRE0gdG8gcmVzdGFydCBhbmQKLSMgcmUtcmVhZCB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuICBZb3UgY2FuIGFsc28gcmVzdGFydCBHRE0gYnkgc2VuZGluZwotIyBhIEhVUCBvciBVU1IxIHNpZ25hbCB0byB0aGUgZGFlbW9uLiAgSFVQIGJlaGF2ZXMgbGlrZSBnZG0tcmVzdGFydCBhbmQgY2F1c2VzCi0jIGFueSB1c2VyIHNlc3Npb24gc3RhcnRlZCBieSBHRE0gdG8gZXhpdCBpbW1lZGlhdGVseSB3aGlsZSBVU1IxIGJlaGF2ZXMgbGlrZQotIyBnZG0tc2FmZS1yZXN0YXJ0IGFuZCB3aWxsIHdhaXQgdW50aWwgYWxsIHVzZXJzIGxvZyBvdXQgYmVmb3JlIHJlc3RhcnRpbmcgR0RNLgotIwotIyBGb3IgZnVsbCByZWZlcmVuY2UgZG9jdW1lbnRhdGlvbiBzZWUgdGhlIGdub21lIGhlbHAgYnJvd3NlciB1bmRlcgotIyBHTk9NRXxTeXN0ZW0gY2F0ZWdvcnkuICBZb3UgY2FuIGFsc28gZmluZCB0aGUgZG9jcyBpbiBIVE1MIGZvcm0gb24KLSMgaHR0cDovL3d3dy5nbm9tZS5vcmcvcHJvamVjdHMvZ2RtLwotIwotIyBOT1RFOiBMaW5lcyB0aGF0IGJlZ2luIHdpdGggIiMiIGFyZSBjb25zaWRlcmVkIGNvbW1lbnRzLgotIwotIyBIYXZlIGZ1biEKLQotW2RhZW1vbl0KLQotW3NlY3VyaXR5XQotCi1beGRtY3BdCi0KLVtndWldCi0KLVtncmVldGVyXQotCi1bY2hvb3Nlcl0KLQotW2RlYnVnXQotCi0jIE5vdGUgdGhhdCB0byBkaXNhYmxlIHNlcnZlcnMgZGVmaW5lZCBpbiB0aGUgR0RNIFN5c3RlbSBEZWZhdWx0cwotIyBjb25maWd1cmF0aW9uIGZpbGUgKHN1Y2ggYXMgMD1TdGFuZGFyZCwgeW91IG11c3QgcHV0IGEgbGluZSBpbiB0aGlzIGZpbGUKLSMgdGhhdCBzYXlzIDA9aW5hY3RpdmUsIGFzIGRlc2NyaWJlZCBpbiB0aGUgQ29uZmlndXJhdGlvbiBzZWN0aW9uIG9mIHRoZSBHRE0KLSMgZG9jdW1lbnRhdGlvbi4KLSMKLVtzZXJ2ZXJzXQotCi0jIEFsc28gbm90ZSwgdGhhdCBpZiB5b3UgcmVkZWZpbmUgYSBbc2VydmVyLWZvb10gc2VjdGlvbiwgdGhlbiBHRE0gd2lsbAotIyB1c2UgdGhlIGRlZmluaXRpb24gaW4gdGhpcyBmaWxlLCBub3QgdGhlIEdETSBTeXN0ZW0gRGVmYXVsdHMgY29uZmlndXJhdGlvbgotIyBmaWxlLiAgSXQgaXMgY3VycmVudGx5IG5vdCBwb3NzaWJsZSB0byBkaXNhYmxlIGEgW3NlcnZlci1mb29dIHNlY3Rpb24KLSMgZGVmaW5lZCBpbiB0aGUgR0RNIFN5c3RlbSBEZWZhdWx0cyBjb25maWd1cmF0aW9uIGZpbGUuCi0jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nZG0vZ2RtL2dkbS5zZXJ2aWNlLmluIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2RtL2dkbS9nZG0uc2VydmljZS5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2UxNTU2YS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nZG0vZ2RtL2dkbS5zZXJ2aWNlLmluCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotW1VuaXRdCi1EZXNjcmlwdGlvbj1Hbm9tZSBEaXNwbGF5IE1hbmFnZXIKLUFmdGVyPXN5c3RlbWQtdXNlci1zZXNzaW9ucy5zZXJ2aWNlCi0KLVtTZXJ2aWNlXQotRXhlY1N0YXJ0PSVzYmluZGlyJS9nZG0gLW5vZGFlbW9uCi1TdGFuZGFyZE91dHB1dD1zeXNsb2cKLQotW0luc3RhbGxdCi1BbGlhcz1kaXNwbGF5LW1hbmFnZXIuc2VydmljZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2VkaXQvZ2VkaXRfMi4zMC40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ2VkaXQvZ2VkaXRfMi4zMC40LmJiCmluZGV4IDVkMjQ0ZGUuLmJhNDI1YWQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dlZGl0L2dlZGl0XzIuMzAuNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nZWRpdC9nZWRpdF8yLjMwLjQuYmIKQEAgLTcsNyArNywxMCBAQAogCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiIKIAotaW5oZXJpdCBnbm9tZSBnZXR0ZXh0IHB5dGhvbm5hdGl2ZQoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgZ25vbWUgZ2V0dGV4dCBweXRob25uYXRpdmUKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKwogU1JDX1VSSSA9ICIke0dOT01FX01JUlJPUn0vJHtHTk9NRUJOfS8ke0Bnbm9tZV92ZXJkaXIoIiR7UFZ9Iil9LyR7R05PTUVCTn0tJHtQVn0udGFyLiR7R05PTUVfQ09NUFJFU1NfVFlQRX07bmFtZT1hcmNoaXZlIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtd29ya2Fyb3VuZC12b2lkLXBvaW50ZXItYXJpdGhtZXRpYy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLVJlbW92ZS1oZWxwLWRpcmVjdG9yeS1mcm9tLWJ1aWxkLnBhdGNoIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLWtleXJpbmcvZ25vbWUta2V5cmluZy9lZ2ctYXNuMXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS1rZXlyaW5nL2dub21lLWtleXJpbmcvZWdnLWFzbjF4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDhhNDBjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLWtleXJpbmcvZ25vbWUta2V5cmluZy9lZ2ctYXNuMXgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi1GaXhlZCBidWlsZCBlcnJvciB3aXRoIGdjYyA0LjgKLQotRXJyb3JzIGxpa2UgYmVsb3cKLQotZWdnLWFzbjF4LmM6IEluIGZ1bmN0aW9uICdhbm9kZV9lbmNvZGVfYnVpbGQnOgotZWdnLWFzbjF4LmM6MTI4MDo3OiB3YXJuaW5nOiB2YXJpYWJsZSAndHlwZScgc2V0IGJ1dCBub3QgdXNlZCBbLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KLWVnZy1hc24xeC5jOiBJbiBmdW5jdGlvbiAndHJhdmVyc2VfYW5kX3ByZXBhcmUnOgotZWdnLWFzbjF4LmM6MzM1NDozOiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ2VnZ19hc24xeF9jcmVhdGUnIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSBbZW5hYmxlZCBieSBkZWZhdWx0XQotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGVnZy1hc24xeC5jOjUwOjA6Ci1lZ2ctYXNuMXguaDozODo4OiBub3RlOiBleHBlY3RlZCAnY29uc3Qgc3RydWN0IHN0YXRpY19zdHJ1Y3RfYXNuIConIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlICdjb25zdCBzdHJ1Y3QgYXNuMV9zdGF0aWNfbm9kZSAqJwotZWdnLWFzbjF4LmM6IEF0IHRvcCBsZXZlbDoKLWVnZy1hc24xeC5jOjM1MDk6MTogZXJyb3I6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciAnZWdnX2FzbjF4X2NyZWF0ZScKLUluIGZpbGUgaW5jbHVkZWQgZnJvbSBlZ2ctYXNuMXguYzo1MDowOgotZWdnLWFzbjF4Lmg6Mzg6ODogbm90ZTogcHJldmlvdXMgZGVjbGFyYXRpb24gb2YgJ2VnZ19hc24xeF9jcmVhdGUnIHdhcyBoZXJlCi1lZ2ctYXNuMXguYzozNTcyOjE6IGVycm9yOiBjb25mbGljdGluZyB0eXBlcyBmb3IgJ2VnZ19hc24xeF9jcmVhdGVfcXVhcmsnCi1JbiBmaWxlIGluY2x1ZGVkIGZyb20gZWdnLWFzbjF4LmM6NTA6MDoKLWVnZy1hc24xeC5oOjQxOjg6IG5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdlZ2dfYXNuMXhfY3JlYXRlX3F1YXJrJyB3YXMgaGVyZQotZWdnLWFzbjF4LmM6MzU3OToxOiBlcnJvcjogY29uZmxpY3RpbmcgdHlwZXMgZm9yICdlZ2dfYXNuMXhfY3JlYXRlX2FuZF9kZWNvZGUnCi1JbiBmaWxlIGluY2x1ZGVkIGZyb20gZWdnLWFzbjF4LmM6NTA6MDoKLWVnZy1hc24xeC5oOjQ0Ojg6IG5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdlZ2dfYXNuMXhfY3JlYXRlX2FuZF9kZWNvZGUnIHdhcyBoZXJlCi1tYWtlWzRdOiAqKiogW2xpYmVnZ19sYS1lZ2ctYXNuMXgubG9dIEVycm9yIDEKLQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLUluZGV4OiBnbm9tZS1rZXlyaW5nLTIuMzIuMS9lZ2cvZWdnLWFzbjF4LmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnbm9tZS1rZXlyaW5nLTIuMzIuMS5vcmlnL2VnZy9lZ2ctYXNuMXguaAkyMDEwLTEwLTE4IDE5OjExOjM4LjAwMDAwMDAwMCAtMDcwMAotKysrIGdub21lLWtleXJpbmctMi4zMi4xL2VnZy9lZ2ctYXNuMXguaAkyMDEzLTA2LTExIDE1OjE1OjAwLjY3NTM5OTI2MyAtMDcwMAotQEAgLTI1LDYgKzI1LDcgQEAKLSAjZGVmaW5lIEVHR19BU04xWF9IXwotIAotICNpbmNsdWRlIDxnbGliLmg+Ci0rI2luY2x1ZGUgPGxpYnRhc24xLmg+Ci0gCi0gI2lmbmRlZiBIQVZFX0VHR19BTExPQ0FUT1IKLSB0eXBlZGVmIHZvaWQqICgqRWdnQWxsb2NhdG9yKSAodm9pZCogcCwgZ3NpemUpOwotQEAgLTM1LDEzICszNiwxMyBAQAotIAotIHN0cnVjdCBzdGF0aWNfc3RydWN0X2FzbjsKLSAKLS1HTm9kZSogICAgICAgICAgICAgIGVnZ19hc24xeF9jcmVhdGUgICAgICAgICAgICAgICAgIChjb25zdCBzdHJ1Y3Qgc3RhdGljX3N0cnVjdF9hc24gKmRlZnMsCi0rR05vZGUqICAgICAgICAgICAgICBlZ2dfYXNuMXhfY3JlYXRlICAgICAgICAgICAgICAgICAoY29uc3QgQVNOMV9BUlJBWV9UWVBFICpkZWZzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICp0eXBlKTsKLSAKLS1HTm9kZSogICAgICAgICAgICAgIGVnZ19hc24xeF9jcmVhdGVfcXVhcmsgICAgICAgICAgIChjb25zdCBzdHJ1Y3Qgc3RhdGljX3N0cnVjdF9hc24gKmRlZnMsCi0rR05vZGUqICAgICAgICAgICAgICBlZ2dfYXNuMXhfY3JlYXRlX3F1YXJrICAgICAgICAgICAoY29uc3QgQVNOMV9BUlJBWV9UWVBFICpkZWZzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdRdWFyayB0eXBlKTsKLSAKLS1HTm9kZSogICAgICAgICAgICAgIGVnZ19hc24xeF9jcmVhdGVfYW5kX2RlY29kZSAgICAgIChjb25zdCBzdHJ1Y3Qgc3RhdGljX3N0cnVjdF9hc24gKmRlZnMsCi0rR05vZGUqICAgICAgICAgICAgICBlZ2dfYXNuMXhfY3JlYXRlX2FuZF9kZWNvZGUgICAgICAoY29uc3QgQVNOMV9BUlJBWV9UWVBFICpkZWZzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICp0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjb25zdHBvaW50ZXIgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc2l6ZSBuX2RhdGEpOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9nbm9tZS1rZXlyaW5nXzIuMzIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLWtleXJpbmcvZ25vbWUta2V5cmluZ18yLjMyLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkNmNhNzMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9nbm9tZS1rZXlyaW5nXzIuMzIuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLVNVTU1BUlkgPSAiUGFzc3dvcmQgYW5kIGtleXJpbmcgbWFuYWdpbmcgZGFlbW9uIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbm9tZS5vcmcvIgotQlVHVFJBQ0tFUiA9ICJodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8iCi0KLUxJQ0VOU0UgPSAiR1BMdjIrICYgTEdQTHYyKyAmIExHUEx2Mi4xKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2djci9nY3IuaDtlbmRsaW5lPTIyO21kNT1hMjcyZGYxZTYzM2UyN2VjZjM1ZTc0ZmI1NTc2MjUwZSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9lZ2cvZWdnLWRidXMuaDtlbmRsaW5lPTI1O21kNT1lYjZmNTMxYWYzNzE2NWRjNTM0MjBjMDczZDc3NGU2MSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9ncDExL2dwMTEuaDtlbmRsaW5lPTI0O21kNT1iZDhjN2E4YTIxZDZjMjhkNDA1MzZkOTZhMzVlMzQ2OSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9wa2NzMTEvcGtjczExaS5oO2VuZGxpbmU9MjQ7bWQ1PWU3MmNmYmI3MTgzODliNzZhNGRhZTgzOGQxYzFmNDM5IgotCi1TRUNUSU9OID0gIngxMS9nbm9tZSIKLQotUFIgPSAicjEyIgotCi1pbmhlcml0IGF1dG90b29scyBnbm9tZSBndGstZG9jIHBrZ2NvbmZpZyBnc2V0dGluZ3MKLQotU1JDX1VSSSArPSAiZmlsZTovL2VnZy1hc24xeC5wYXRjaCBcCi0gICAgICAgICAgICBmaWxlOi8vbXVzbC5wYXRjaCBcCi0iCi0KLURFUEVORFMgPSAiZ3RrKyBsaWJnY3J5cHQgbGlidGFzbjEgbGlidGFzbjEtbmF0aXZlIGdjb25mICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgJ2xpYnBhbScsICcnLCBkKX0gaW50bHRvb2wtbmF0aXZlIgotUkRFUEVORFNfJHtQTn0gPSAibGliZ25vbWUta2V5cmluZyBnbGliLTIuMC11dGlscyIKLQotTERGTEFHUyArPSAiLWxnbW9kdWxlLTIuMCIKLQotRVhUUkFfT0VDT05GID0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgJy0tZW5hYmxlLXBhbSAtLXdpdGgtcGFtLWRpcj0ke2Jhc2VfbGliZGlyfS9zZWN1cml0eScsICctLWRpc2FibGUtcGFtJywgZCl9IgotCi1TUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICI5YThhYTc0ZTAzMzYxNjc2ZjI5ZDZlNzMxNTU3ODZmYyIKLVNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjMxZmVjZWMxNDMwYTk3ZjU5YTYxNTlhNWEyZWE4ZDZhMWI0NDI4N2YxZTllNTk1YjM1OTRkZjQ2YmY3ZjE4ZjkiCi1HTk9NRV9DT01QUkVTU19UWVBFPSJiejIiCi0KLUZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2RidXMtMS9zZXJ2aWNlcyAke2RhdGFkaXJ9L2djciBcCi0gICAgICAgICAgICAgICAgJHtiYXNlX2xpYmRpcn0vc2VjdXJpdHkvKiR7U09MSUJTREVWfSBcCi0gICAgICAgICAgICAgICAiCi0KLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9LyR7QlBOfS9kZXZlbC8qLmxhIFwKLSAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9LyR7QlBOfS9kZXZlbC8qJHtTT0xJQlNERVZ9IFwKLSAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9LyR7QlBOfS9zdGFuZGFsb25lLyoubGEgXAotICAgICAgICAgICAgICAgICAgICAke2Jhc2VfbGliZGlyfS9zZWN1cml0eS8qLmxhIFwKLSAgICAgICAgICAgICAgICAgICAiCi0KLUlOU0FORV9TS0lQXyR7UE59LWRldiArPSAiZGV2LWVsZiIKLQotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vJHtCUE59L3N0YW5kYWxvbmUvLmRlYnVnLyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS8ke0JQTn0vZGV2ZWwvLmRlYnVnLyBcCi0gICAgICAgICAgICAgICAgICAgICR7YmFzZV9saWJkaXJ9L3NlY3VyaXR5Ly5kZWJ1Zy8iCi0KLSMgTWFrZSBjb21wYXRpYmxlIHdpdGggZ2NyIHZlcnNpb24gMyBvciBuZXdlciBieSByZW1vdmluZwotIyBvcmcuZ25vbWUuY3J5cHRvLnBncC4qLCB3aGljaCBpcyB0aGUgcHJvdmlkZXIgZm9yIHRoaXMgb3B0aW9uYWwKLSMgZnVuY3Rpb25hbGl0eS4KLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0Jcm0gJHtEfSR7ZGF0YWRpcn0vR0NvbmYvZ3NldHRpbmdzL29yZy5nbm9tZS5jcnlwdG8ucGdwLmNvbnZlcnQKLQlybSAke0R9JHtkYXRhZGlyfS9nbGliLTIuMC9zY2hlbWFzL29yZy5nbm9tZS5jcnlwdG8ucGdwLmdzY2hlbWEueG1sCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS1rZXlyaW5nL2dub21lLWtleXJpbmdfMy4yMC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9nbm9tZS1rZXlyaW5nXzMuMjAuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTY0MDYyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9nbm9tZS1rZXlyaW5nXzMuMjAuMC5iYgpAQCAtMCwwICsxLDQyIEBACitTVU1NQVJZID0gIlBhc3N3b3JkIGFuZCBrZXlyaW5nIG1hbmFnaW5nIGRhZW1vbiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuZ25vbWUub3JnLyIKK0JVR1RSQUNLRVIgPSAiaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvIgorU0VDVElPTiA9ICJ4MTEvZ25vbWUiCisKK0xJQ0VOU0UgPSAiR1BMdjIrICYgTEdQTHYyKyAmIExHUEx2Mi4xKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiIFwKKyAgICBmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMgXAorICAgIGZpbGU6Ly9DT1BZSU5HLkxJQjttZDU9NGZiZDY1MzgwY2RkMjU1OTUxMDc5MDA4YjM2NDUxNmMgXAorIgorCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBnbm9tZWJhc2UgcmVtb3ZlLWxpYnRvb2wKKworREVQRU5EUyA9ICIgXAorICAgIGludGx0b29sLW5hdGl2ZSBcCisgICAgZ2xpYi0yLjAtbmF0aXZlIFwKKyAgICBndGsrMyBcCisgICAgZ2NyIFwKKyAgICBsaWJnY3J5cHQgXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgJ2xpYnBhbScsICcnLCBkKX0gXAorIgorCitTUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJlMDllZmU4MDIxOTQ0ZGFlNDA0NzM2YjVhMmFkYjk4ZSIKK1NSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gImJjMTdjZWNkNzQ4YTBlNDZlMzAyMTcxZDExYzNhZTNkNzZiYmE1MjU4YzQ0MWZhYmVjMzc4NmY0MThlN2VjOTkiCitTUkNfVVJJICs9ICJmaWxlOi8vbXVzbC5wYXRjaCIKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworUkRFUEVORFNfJHtQTn0gPSAibGliZ25vbWUta2V5cmluZyBnbGliLTIuMC11dGlscyIKKworRVhUUkFfT0VDT05GID0gIiBcCisgICAgLS1kaXNhYmxlLWRvYyBcCisgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdwYW0nLCAnLS1lbmFibGUtcGFtIC0td2l0aC1wYW0tZGlyPSR7YmFzZV9saWJkaXJ9L3NlY3VyaXR5JywgJy0tZGlzYWJsZS1wYW0nLCBkKX0gXAorIgorCisKK0ZJTEVTXyR7UE59ICs9ICIgXAorICAgICR7ZGF0YWRpcn0vZGJ1cy0xL3NlcnZpY2VzIFwKKyAgICAke2RhdGFkaXJ9L3AxMS1raXQgXAorICAgICR7YmFzZV9saWJkaXJ9L3NlY3VyaXR5Lyoke1NPTElCU0RFVn0gXAorICAgICR7bGliZGlyfS9wa2NzMTEvZ25vbWUta2V5cmluZy1wa2NzMTEuc28gXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9saWJnbm9tZS1rZXlyaW5nXzIuMzIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLWtleXJpbmcvbGliZ25vbWUta2V5cmluZ18yLjMyLjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyNDE4ODIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9saWJnbm9tZS1rZXlyaW5nXzIuMzIuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVNVTU1BUlkgPSAiQ29tcGF0aWJpbGl0eSBsaWJyYXJ5IGZvciBhY2Nlc3Npbmcgc2VjcmV0cyIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ25vbWUub3JnLyIKLUJVR1RSQUNLRVIgPSAiaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvIgotCi1MSUNFTlNFID0gIkxHUEx2MiAmIExHUEx2MisgJiBMR1BMdjIuMSsiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0wOTE0YjlkM2ViYWJhNDFlZjJlM2UwYWUxNmYyOTZjZiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9saWJyYXJ5L2dub21lLWtleXJpbmcuaDtlbmRsaW5lPTI1O21kNT02OGVhNjRmODFjMTYwZDY3MGMzN2RhNWYxMzdiZTRmYiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9saWJyYXJ5L2dub21lLWtleXJpbmcuYztlbmRsaW5lPTI2O21kNT04ZDdhNGZiNjc0YWFhMDEyZWE1YTk4ZTdjMzY4YjRhNSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9lZ2cvZWdnLWRoLmg7ZW5kbGluZT0yMjttZDU9MTYyNmMxNmFmMmE4ZGExZjg4MzI0Y2YzY2VkMzNmMDgiCi0KLVNFQ1RJT04gPSAieDExL2dub21lL2xpYnMiCi1QUiA9ICJyMyIKLQotaW5oZXJpdCBnbm9tZWJhc2UgZ3RrLWRvYwotCi1ERVBFTkRTID0gImRidXMgbGliZ2NyeXB0IGdsaWItMi4wIGludGx0b29sLW5hdGl2ZSIKLQotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiYzQyYjJjYTY2MjA0ODM1ZDkwMWQzZGJmYzFmYTVhZTYiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICI1NjM4OGMwZDgxZGRmZGI1N2QzMGU0OTYzYzgzZWNjMWMxODQ5OGFhYjk5Mzk1NDIwZTBmZmY2OTkyOWEwZjBjIgotR05PTUVfQ09NUFJFU1NfVFlQRT0iYnoyIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUta2V5cmluZy9saWJnbm9tZS1rZXlyaW5nXzMuMTIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLWtleXJpbmcvbGliZ25vbWUta2V5cmluZ18zLjEyLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJhYmUzMwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLWtleXJpbmcvbGliZ25vbWUta2V5cmluZ18zLjEyLjAuYmIKQEAgLTAsMCArMSwxNyBAQAorU1VNTUFSWSA9ICJDb21wYXRpYmlsaXR5IGxpYnJhcnkgZm9yIGFjY2Vzc2luZyBzZWNyZXRzIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbm9tZS5vcmcvIgorQlVHVFJBQ0tFUiA9ICJodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8iCisKK0xJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gIiBcCisgICAgZmlsZTovL0NPUFlJTkc7bWQ1PTA5MTRiOWQzZWJhYmE0MWVmMmUzZTBhZTE2ZjI5NmNmIFwKKyAgICBmaWxlOi8vQ09QWUlORy5HUEw7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIFwKKyIKK1NFQ1RJT04gPSAieDExL2dub21lL2xpYnMiCisKK2luaGVyaXQgZ25vbWViYXNlIGd0ay1kb2MgZ29iamVjdC1pbnRyb3NwZWN0aW9uCisKK0RFUEVORFMgPSAiZGJ1cyBsaWJnY3J5cHQgZ2xpYi0yLjAgZ2xpYi0yLjAtbmF0aXZlIGludGx0b29sLW5hdGl2ZSIKKworU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiNjY5NmU0ZjJlOWFlZDQ2MjVjZGMzYWYzMGJkOGMyMzgiCitTUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICJjNGMxNzhmYmIwNWY3MmFjYzQ4NGQyMmRkYjA1NjhmNzUzMmM0MDliMGExM2UwNjUxM2ZmNTRiOTFlOTQ3NzgzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtbWVudXMvZ25vbWUtbWVudXMzXzMuMTAuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLW1lbnVzL2dub21lLW1lbnVzM18zLjEwLjEuYmIKaW5kZXggMDFkYTM0Ny4uNjQ3YWU5MSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtbWVudXMvZ25vbWUtbWVudXMzXzMuMTAuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS1tZW51cy9nbm9tZS1tZW51czNfMy4xMC4xLmJiCkBAIC02LDcgKzYsOSBAQAogCiBERVBFTkRTID0gInB5dGhvbiBsaWJ4bWwyIGdjb25mIHBvcHQgZ3RrKzMgaW50bHRvb2wtbmF0aXZlIGdub21lLWNvbW1vbi1uYXRpdmUiCiAKLWluaGVyaXQgZ25vbWViYXNlIHBrZ2NvbmZpZyBweXRob24tZGlyIHB5dGhvbm5hdGl2ZSBnb2JqZWN0LWludHJvc3BlY3Rpb24KK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGdub21lYmFzZSBwa2djb25maWcgcHl0aG9uLWRpciBweXRob25uYXRpdmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIEJQTiA9ICJnbm9tZS1tZW51cyIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtbWltZS1kYXRhL2dub21lLW1pbWUtZGF0YS9wa2djb25maWcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS1taW1lLWRhdGEvZ25vbWUtbWltZS1kYXRhL3BrZ2NvbmZpZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDkwMzQyNS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS1taW1lLWRhdGEvZ25vbWUtbWltZS1kYXRhL3BrZ2NvbmZpZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLQotSW5kZXg6IGdub21lLW1pbWUtZGF0YS0yLjE4LjAvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnbm9tZS1taW1lLWRhdGEtMi4xOC4wLm9yaWcvTWFrZWZpbGUuYW0JMjAwOS0wNi0xMSAxNzoyNzo0OC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnbm9tZS1taW1lLWRhdGEtMi4xOC4wL01ha2VmaWxlLmFtCTIwMDktMDYtMTEgMTc6Mjc6NTkuMDAwMDAwMDAwICswMTAwCi1AQCAtMSw2ICsxLDYgQEAKLSBTVUJESVJTID0gbWFuIHBvCi0gCi0tcGtnY29uZmlnZGlyID0gJChkYXRhZGlyKS9wa2djb25maWcKLStwa2djb25maWdkaXIgPSAkKGxpYmRpcikvcGtnY29uZmlnCi0gcGtnY29uZmlnX0RBVEEgPSBnbm9tZS1taW1lLWRhdGEtMi4wLnBjCi0gCi0gTlVMTD0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLW1pbWUtZGF0YS9nbm9tZS1taW1lLWRhdGFfMi4xOC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtbWltZS1kYXRhL2dub21lLW1pbWUtZGF0YV8yLjE4LjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlYWMxYmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtbWltZS1kYXRhL2dub21lLW1pbWUtZGF0YV8yLjE4LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1TVU1NQVJZID0gIkJhc2UgTUlNRSBhbmQgQXBwbGljYXRpb24gZGF0YWJhc2UgZm9yIEdOT01FIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbm9tZS5vcmcvIgotQlVHVFJBQ0tFUiA9ICJodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8iCi0KLUxJQ0VOU0UgPSAiR1BMdjIgJiBHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT01OTUzMGJkZjMzNjU5YjI5ZTczZDRhZGI5ZjlmNjU1MiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9jaGVjay1taW1lLnBsO2VuZGxpbmU9MjY7bWQ1PWE5NWI2M2M5MmMzM2Q0Y2ExYWY2MWEzMTU4ODhmNDUwIgotCi1pbmhlcml0IGdub21lYmFzZSBtaW1lCi1QUiA9ICJyNCIKLQotU1JDX1VSSSArPSAiZmlsZTovL3BrZ2NvbmZpZy5wYXRjaCIKLQotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiNTQxODU4MTg4ZjgwMDkwZDEyYTMzYjVhN2MzNGQ0MmMiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICIzNzE5NmI1YjM3MDg1YmJjZDQ1YzMzOGMzNmUyNjg5OGZlMzVkZDU5NzUyOTVmNjlmNDgwMjhiMWU4NDM2ZmQ3IgotR05PTUVfQ09NUFJFU1NfVFlQRT0iYnoyIgotCi1ERVBFTkRTICs9ICJzaGFyZWQtbWltZS1pbmZvIGludGx0b29sLW5hdGl2ZSBnbGliLTIuMC1uYXRpdmUiCi1SREVQRU5EU18ke1BOfSA9ICJzaGFyZWQtbWltZS1pbmZvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtc3lzdGVtLW1vbml0b3IvZmlsZXMvMDAwMS1oZWxwLXJlbW92ZS1ZRUxQLW1hY3JvLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtc3lzdGVtLW1vbml0b3IvZmlsZXMvMDAwMS1oZWxwLXJlbW92ZS1ZRUxQLW1hY3JvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3YjYwYTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS1zeXN0ZW0tbW9uaXRvci9maWxlcy8wMDAxLWhlbHAtcmVtb3ZlLVlFTFAtbWFjcm8ucGF0Y2gKQEAgLTAsMCArMSwyOCBAQAorRnJvbSA0YTNlZThiNDZkMjViM2QzMTA0NDhiZmE0NDQ2ZTE1YTY4NmZjNjg1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMjMgTWFyIDIwMTggMTM6NTA6MTggKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gaGVscDogcmVtb3ZlIFlFTFAgbWFjcm8KK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZC1zcGVjaWZpY10KKworU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KKy0tLQorIGhlbHAvTWFrZWZpbGUuYW0gfCAyIC0tCisgMSBmaWxlIGNoYW5nZWQsIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9oZWxwL01ha2VmaWxlLmFtIGIvaGVscC9NYWtlZmlsZS5hbQoraW5kZXggYzVjZDBkMy4uNGI4M2FkZiAxMDA2NDQKKy0tLSBhL2hlbHAvTWFrZWZpbGUuYW0KKysrKyBiL2hlbHAvTWFrZWZpbGUuYW0KK0BAIC0xLDUgKzEsMyBAQAorLUBZRUxQX0hFTFBfUlVMRVNACistCisgSEVMUF9JRCA9IGdub21lLXN5c3RlbS1tb25pdG9yCisgCisgSEVMUF9GSUxFUyA9IFwKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXN5c3RlbS1tb25pdG9yL2dub21lLXN5c3RlbS1tb25pdG9yXzMuMjYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXN5c3RlbS1tb25pdG9yL2dub21lLXN5c3RlbS1tb25pdG9yXzMuMjYuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjZjZTE3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtc3lzdGVtLW1vbml0b3IvZ25vbWUtc3lzdGVtLW1vbml0b3JfMy4yNi4wLmJiCkBAIC0wLDAgKzEsMzQgQEAKK1NVTU1BUlkgPSAiR25vbWUgc3lzdGVtIG1vbml0b3IiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCisKK0RFUEVORFMgPSAiIFwKKyAgICBpbnRsdG9vbC1uYXRpdmUgXAorICAgIGdub21lLWNvbW1vbi1uYXRpdmUgXAorICAgIGdsaWItMi4wLW5hdGl2ZSBcCisgICAgZ3RrbW0zIFwKKyAgICBsaWJndG9wIFwKKyAgICBsaWJyc3ZnIFwKKyAgICBsaWJ3bmNrMyBcCisiCisKK2luaGVyaXQgZ25vbWViYXNlIGRpc3Ryb19mZWF0dXJlc19jaGVjaworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJmY2Q1OTg2N2MwN2Y4YzQ4NTNiMWUyOGQ2MGNiYzAzNyIKK1NSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gImY4NDhhOGMyY2E1ZTE2NGNmMDlkM2EyMDVkZDQ5ZTRlNGJmNGI2MGQ0M2IwOTY5YzEwNDQzZWI1MTlkMGU2YjMiCitTUkNfVVJJICs9ICJmaWxlOi8vMDAwMS1oZWxwLXJlbW92ZS1ZRUxQLW1hY3JvLnBhdGNoIgorCitSUkVDT01NRU5EU18ke1BOfSA9ICJhZHdhaXRhLWljb24tdGhlbWUiCisKK0ZJTEVTXyR7UE59ICs9ICIgXAorICAgICR7ZGF0YWRpcn0vaWNvbnMgXAorICAgICR7ZGF0YWRpcn0vZGJ1cy0xIFwKKyAgICAke2RhdGFkaXJ9L2dub21lL2F1dG9zdGFydCBcCisiCisKK0ZJTEVTXyR7UE59LWRvYyArPSAiIFwKKyAgICAke2RhdGFkaXJ9L29tZiBcCisgICAgJHtkYXRhZGlyfS9nbm9tZS9oZWxwIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnMtMi4yNC40LzAwMDEtbXVsdGlwbGUtTWFrZWZpbGUuYW0tcmVtb3ZlLURHX0RJU0FCTEVfREVQUkVDQVRFRC10by5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnMtMi4yNC40LzAwMDEtbXVsdGlwbGUtTWFrZWZpbGUuYW0tcmVtb3ZlLURHX0RJU0FCTEVfREVQUkVDQVRFRC10by5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzgzMzI5OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS12ZnMvZ25vbWUtdmZzLTIuMjQuNC8wMDAxLW11bHRpcGxlLU1ha2VmaWxlLmFtLXJlbW92ZS1ER19ESVNBQkxFX0RFUFJFQ0FURUQtdG8ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi1Gcm9tIDUzNmU5YjU3Y2FkYTRhOWY5MmUwNzNmZGYwMWNkZjFkZWY0MzViNmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDcgTWF5IDIwMTMgMTQ6NTY6MDYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gbXVsdGlwbGUgTWFrZWZpbGUuYW06IHJlbW92ZSAtREdfRElTQUJMRV9ERVBSRUNBVEVEIHRvIGZpeAotIGJ1aWxkIHdpdGggZ2xpYi0yLjM2Ci1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLS0tLQotIGRhZW1vbi9NYWtlZmlsZS5hbSAgICAgIHwgICAgMSAtCi0gbGliZ25vbWV2ZnMvTWFrZWZpbGUuYW0gfCAgICAxIC0KLSAyIGZpbGVzIGNoYW5nZWQsIDAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotSW5kZXg6IGdub21lLXZmcy0yLjI0LjQvZGFlbW9uL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ25vbWUtdmZzLTIuMjQuNC5vcmlnL2RhZW1vbi9NYWtlZmlsZS5hbQkyMDEzLTEwLTE3IDE2OjM5OjM5LjA4MTAyNDc5OCAtMDcwMAotKysrIGdub21lLXZmcy0yLjI0LjQvZGFlbW9uL01ha2VmaWxlLmFtCTIwMTMtMTAtMTcgMTY6Mzk6MzkuMjEzMDI0Nzk0IC0wNzAwCi1AQCAtOCw3ICs4LDYgQEAKLSAJLURfTEFSR0VGSUxFNjRfU09VUkNFICAgICAgICAgICAgICAgICAgIFwKLSAJLURfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MJCVwKLSAJLURfUkVFTlRSQU5UCQkJCVwKLS0JLURHX0RJU0FCTEVfREVQUkVDQVRFRAkJCVwKLSAJLURHTk9NRV9WRlNfUFJFRklYPVwiJChwcmVmaXgpXCIJXAotIAktREdOT01FX1ZGU19EQVRBRElSPVwiJChkYXRhZGlyKVwiCVwKLSAJLURHTk9NRV9WRlNfTElCRElSPVwiJChsaWJkaXIpXCIJXAotSW5kZXg6IGdub21lLXZmcy0yLjI0LjQvbGliZ25vbWV2ZnMvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnbm9tZS12ZnMtMi4yNC40Lm9yaWcvbGliZ25vbWV2ZnMvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjozOTozOS4wODEwMjQ3OTggLTA3MDAKLSsrKyBnbm9tZS12ZnMtMi4yNC40L2xpYmdub21ldmZzL01ha2VmaWxlLmFtCTIwMTMtMTAtMTcgMTY6Mzk6MzkuMjEzMDI0Nzk0IC0wNzAwCi1AQCAtMTksNyArMTksNiBAQAotIAktRF9MQVJHRUZJTEU2NF9TT1VSQ0UgICAgICAgICAgICAgICAgICAgXAotIAktRF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUwkJXAotIAktRF9SRUVOVFJBTlQJCQkJXAotLQktREdfRElTQUJMRV9ERVBSRUNBVEVECQkJXAotIAktREdOT01FX1ZGU19QUkVGSVg9XCIkKHByZWZpeClcIglcCi0gCS1ER05PTUVfVkZTX0JJTkRJUj1cIiQoYmluZGlyKVwiCVwKLSAJLURHTk9NRV9WRlNfREFUQURJUj1cIiQoZGF0YWRpcilcIglcCi1JbmRleDogZ25vbWUtdmZzLTIuMjQuNC9tb2R1bGVzL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ25vbWUtdmZzLTIuMjQuNC5vcmlnL21vZHVsZXMvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjozOTozOS4wODEwMjQ3OTggLTA3MDAKLSsrKyBnbm9tZS12ZnMtMi4yNC40L21vZHVsZXMvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjozOTozOS4yMTMwMjQ3OTQgLTA3MDAKLUBAIC0xOCw3ICsxOCw2IEBACi0gCS1EX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTCQlcCi0gCS1EX1JFRU5UUkFOVAkJCQlcCi0gCS1EU1NIX1BST0dSQU09XCIkKFNTSF9QUk9HUkFNKVwiCVwKLS0JLURHX0RJU0FCTEVfREVQUkVDQVRFRAkJCVwKLSAJLURHTk9NRV9WRlNfUFJFRklYPVwiJChwcmVmaXgpXCIJXAotIAktREdOT01FX1ZGU19EQVRBRElSPVwiJChkYXRhZGlyKVwiCVwKLSAJLURHTk9NRV9WRlNfTElCRElSPVwiJChsaWJkaXIpXCIJXAotSW5kZXg6IGdub21lLXZmcy0yLjI0LjQvcHJvZ3JhbXMvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnbm9tZS12ZnMtMi4yNC40Lm9yaWcvcHJvZ3JhbXMvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjozOTozOS4wODEwMjQ3OTggLTA3MDAKLSsrKyBnbm9tZS12ZnMtMi4yNC40L3Byb2dyYW1zL01ha2VmaWxlLmFtCTIwMTMtMTAtMTcgMTY6Mzk6MzkuMjEzMDI0Nzk0IC0wNzAwCi1AQCAtNCw4ICs0LDcgQEAKLSAJLUkkKHRvcF9zcmNkaXIpCQkJCVwKLSAJLUkkKHRvcF9idWlsZGRpcikJCQlcCi0gCSQoVEVTVF9DRkxBR1MpCQkJCVwKLS0JJChWRlNfQ0ZMQUdTKQkJCQlcCi0tCS1ER19ESVNBQkxFX0RFUFJFQ0FURUQKLSsJJChWRlNfQ0ZMQUdTKQotIAotIGxpYnJhcmllcyA9CQkJCQkJXAotIAkkKHRvcF9idWlsZGRpcikvbGliZ25vbWV2ZnMvbGliZ25vbWV2ZnMtMi5sYQlcCi1JbmRleDogZ25vbWUtdmZzLTIuMjQuNC90ZXN0L01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ25vbWUtdmZzLTIuMjQuNC5vcmlnL3Rlc3QvTWFrZWZpbGUuYW0JMjAxMC0wMi0wOSAwNDoxNjoxNC4wMDAwMDAwMDAgLTA4MDAKLSsrKyBnbm9tZS12ZnMtMi4yNC40L3Rlc3QvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjo0Mjo0OS4xMDkwMTkxNzIgLTA3MDAKLUBAIC02LDcgKzYsNiBAQAotIAktSSQodG9wX2J1aWxkZGlyKS9saWJnbm9tZXZmcyAgICAgICAgICAgXAotIAkkKFRFU1RfQ0ZMQUdTKQkJCQlcCi0gCSQoVkZTX0NGTEFHUykJCQkJXAotLQktREdfRElTQUJMRV9ERVBSRUNBVEVECQkJXAotIAktRE1PRFVMRVNfUEFUSD1cIiQobGliZGlyKS92ZnMvbW9kdWxlc1wiCi0gCi0gaWYgT1NfV0lOMzIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnMtMi4yNC40L2RvLW5vdC11c2Utc3JjZGlyLXZhcmlhYmxlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtdmZzL2dub21lLXZmcy0yLjI0LjQvZG8tbm90LXVzZS1zcmNkaXItdmFyaWFibGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwY2EyOWIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtdmZzL2dub21lLXZmcy0yLjI0LjQvZG8tbm90LXVzZS1zcmNkaXItdmFyaWFibGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1GaXhlcyBlcnJvcnMgd2l0aCBuZXcgYXV0b3Rvb2xzCi0KLXwgYXV0b21ha2U6IGVycm9yOiB1c2luZyAnJChzcmNkaXIpJyBpbiBURVNUUyBpcyBjdXJyZW50bHkgYnJva2VuOiAnJChzcmNkaXIpL2F1dG8tdGVzdCcKLXwgYXV0b3JlY29uZjogYXV0b21ha2UgZmFpbGVkIHdpdGggZXhpdCBzdGF0dXM6IDEKLXwgRVJST1I6IGF1dG9yZWNvbmYgZXhlY3V0aW9uIGZhaWxlZC4KLQotVXBzdHJlYW0tU3RhdHVzOiBOb3QgU3VibWl0dGVkCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotCi1JbmRleDogZ25vbWUtdmZzLTIuMjQuNC90ZXN0L01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ25vbWUtdmZzLTIuMjQuNC5vcmlnL3Rlc3QvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjo0MzozNi42NzcwMTc3NjQgLTA3MDAKLSsrKyBnbm9tZS12ZnMtMi4yNC40L3Rlc3QvTWFrZWZpbGUuYW0JMjAxMy0xMC0xNyAxNjo0ODo0Ny4zNjkwMDg1NjYgLTA3MDAKLUBAIC02NCw3ICs2NCw3IEBACi0gCXRlc3QtYXN5bmMtY2FuY2VsIFwKLSAJdGVzdC1lc2NhcGUgICAgICAgXAotIAl0ZXN0LXVyaSAgICAgICAJICBcCi0tCSQoc3JjZGlyKS9hdXRvLXRlc3QJCi0rCWF1dG8tdGVzdAotIAotIGxpYnJhcmllcyA9CQkJCQkJXAotIAkkKHRvcF9idWlsZGRpcikvbGliZ25vbWV2ZnMvbGliZ25vbWV2ZnMtMi5sYQlcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS12ZnMvZ25vbWUtdmZzLTIuMjQuNC9nY29uZnRvb2wtbG9zc2FnZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnMtMi4yNC40L2djb25mdG9vbC1sb3NzYWdlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjUyMTM2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnMtMi4yNC40L2djb25mdG9vbC1sb3NzYWdlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQotCi0tLS0gZ25vbWUtdmZzLTIuNi4wL2NvbmZpZ3VyZS5pbn4JMjAwNC0wMy0yMiAxMjozNjoyMy4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnbm9tZS12ZnMtMi42LjAvY29uZmlndXJlLmluCTIwMDQtMDYtMDcgMTY6MDQ6MzQuMDAwMDAwMDAwICswMTAwCi1AQCAtMTU0LDcgKzE1NCw3IEBACi0gQUNfUEFUSF9QUk9HKEdDT05GVE9PTCwgZ2NvbmZ0b29sLTIsIG5vKQotIAotIGlmIHRlc3QgeCIkR0NPTkZUT09MIiA9IHhubzsgdGhlbgotLSAgQUNfTVNHX0VSUk9SKFtnY29uZnRvb2wtMiBleGVjdXRhYmxlIG5vdCBmb3VuZCBpbiB5b3VyIHBhdGggLSBzaG91bGQgYmUgaW5zdGFsbGVkIHdpdGggR0NvbmZdKQotKyAgQUNfTVNHX1dBUk4oW2djb25mdG9vbC0yIGV4ZWN1dGFibGUgbm90IGZvdW5kIGluIHlvdXIgcGF0aCAtIHNob3VsZCBiZSBpbnN0YWxsZWQgd2l0aCBHQ29uZl0pCi0gZmkKLSAKLSBBTV9HQ09ORl9TT1VSQ0VfMgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtdmZzL2dub21lLXZmcy0yLjI0LjQvZ25vbWUtdmZzLW5vLWtlcmJlcm9zLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtdmZzL2dub21lLXZmcy0yLjI0LjQvZ25vbWUtdmZzLW5vLWtlcmJlcm9zLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYWJlYzMyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnMtMi4yNC40L2dub21lLXZmcy1uby1rZXJiZXJvcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLQotcmVtb3ZlcyBrZXJiZXJvcyBjb21wbGV0ZWx5IHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIGluc3RhbGxlZCBrZXJiZXJvcwotLS0tIGNvbmZpZ3VyZS5pbi5vcmlnCTIwMDctMDEtMDUgMTk6NDI6MjYuNDE4NTQxNjEwICswMjAwCi0rKysgY29uZmlndXJlLmluCTIwMDctMDEtMDUgMTk6NDI6NTYuNjA0MjYxNzk3ICswMjAwCi1AQCAtNDM2LDQ3ICs0MzYsNiBAQAotIF0pCi0gQU1fQ09ORElUSU9OQUwoSEFWRV9DRERBLCB0ZXN0ICRoYXZlX2NkZGEgPSB5ZXMpCi0gQUNfU1VCU1QoQ0REQV9MSUJTKQotLQotLWRubCBHU1NBUEkKLS1kbmwgQ2hlY2sgZm9yIEtlcmJlcm9zIGluc3RhbGxhdGlvbgotLWhhdmVfZ3NzYXBpPW5vCi0tQUNfUEFUSF9QUk9HKFtLUkI1X0NPTkZJR10sIGtyYjUtY29uZmlnLCBub25lLCAkUEFUSDovdXNyL2tlcmJlcm9zL2JpbikKLS0JCQkJCSAgIAotLWlmIHRlc3QgIngkS1JCNV9DT05GSUciICE9ICJ4bm9uZSI7IHRoZW4KLS0gICBHU1NBUElfTElCUz0iYCR7S1JCNV9DT05GSUd9IC0tbGlicyBnc3NhcGlgIgotLSAgIEdTU0FQSV9DRkxBR1M9ImAke0tSQjVfQ09ORklHfSAtLWNmbGFncyBnc3NhcGlgIgotLSAgIAotLSAgIHNhdmVkX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0tICAgc2F2ZWRfTElCUz0iJExJQlMiCi0tICAgTElCUz0iJExJQlMgJEdTU0FQSV9MSUJTIgotLSAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgJEdTU0FQSV9DRkxBR1MiCi0tICAgIyBNSVQgYW5kIEhlaW1kYWwgcHV0IGdzc2FwaS5oIGluIGRpZmZlcmVudCBwbGFjZXMKLS0gICBBQ19DSEVDS19IRUFERVJTKGdzc2FwaS9nc3NhcGkuaCBnc3NhcGkuaCwgWwotLSAgICAgICBBQ19DSEVDS19GVU5DUyhnc3NfaW5pdF9zZWNfY29udGV4dCwgWwotLSAgICAgICAgICAgQUNfTVNHX05PVElDRShbR1NTQVBJIGF1dGhlbnRpY2F0aW9uIHN1cHBvcnQgZW5hYmxlZF0pCi0tICAgICAgICAgICBBQ19ERUZJTkUoSEFWRV9HU1NBUEksIDEsIFtEZWZpbmUgaWYgR1NTQVBJIHN1cHBvcnQgaXMgZW5hYmxlZF0pCi0tICAgICAgICAgICBBQ19DSEVDS19IRUFERVJTKGdzc2FwaS9nc3NhcGlfZ2VuZXJpYy5oKQotLQkJIGhhdmVfZ3NzYXBpPXllcwotLQkgCi0tICAgICAgICMgTUlUIEtlcmJlcm9zIGxhY2tzIEdTU19DX05UX0hPU1RCQVNFRF9TRVJWSUNFCi0tICAgICAgIEFDX0NIRUNLX0RFQ0woW0dTU19DX05UX0hPU1RCQVNFRF9TRVJWSUNFXSwsCi0tICAgICAgICAgIFtBQ19ERUZJTkUoW0dTU19DX05UX0hPU1RCQVNFRF9TRVJWSUNFXSwgZ3NzX250X3NlcnZpY2VfbmFtZSwgCi0tICAgICAgICAgICAgIFtEZWZpbmUgaWYgR1NTX0NfTlRfSE9TVEJBU0VEX1NFUlZJQ0UgaXMgbm90IGRlZmluZWQgb3RoZXJ3aXNlXSkKLS0JCV0sIFsKLS0JCSAgICAjaWZkZWYgSEFWRV9HU1NBUElfR1NTQVBJX0gKLS0JCSAgICAjaW5jbHVkZSA8Z3NzYXBpL2dzc2FwaS5oPgotLQkJICAgICNlbHNlCSAgIAotLQkJICAgICNpbmNsdWRlIDxnc3NhcGkuaD4KLS0JCSAgICAjZW5kaWYKLS0JCV0pCi0tCSAgXSkKLS0gICAgIGJyZWFrCi0tICAgXSkKLS0gICBMSUJTPSIkc2F2ZWRfTElCUyIgCi0tICAgQ1BQRkxBR1M9IiRzYXZlZF9DUFBGTEFHUyIgCi0tZmkgICAKLS1BQ19TVUJTVChHU1NBUElfTElCUykKLS1BQ19TVUJTVChHU1NBUElfQ0ZMQUdTKQotIAkgICAKLSBkbmwgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gZG5sIGh0dHAtbWV0aG9kIChuZW9uIGNoZWNrcykKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lLXZmcy9nbm9tZS12ZnNfMi4yNC40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtdmZzL2dub21lLXZmc18yLjI0LjQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlYzY0NjYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ25vbWUtdmZzL2dub21lLXZmc18yLjI0LjQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi1TVU1NQVJZID0gImEgdXNlcnNwYWNlIHZpcnR1YWwgZmlsZXN5c3RlbSIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ25vbWUub3JnLyIKLUJVR1RSQUNLRVIgPSAiaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvIgotCi1MSUNFTlNFID0gIkdQTHYyKyAmIExHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9saWJnbm9tZXZmcy9nbm9tZS12ZnMuaDtlbmRsaW5lPTI1O21kNT0xNzA3MWU2OTcwN2E4ZjQyODg3ZDg4NDEzZjI2MjNjYiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9wcm9ncmFtcy9nbm9tZXZmcy1scy5jO2VuZGxpbmU9MjM7bWQ1PTY3OGEyZThiZWRhZWY1ODE4Y2NhYmU2MzM4NDAxOTZiIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2RhZW1vbi92ZnMtZGFlbW9uLmM7ZW5kbGluZT0yMTttZDU9NWYyYzYxNTUzZmIxNmFiYjA3ZmM5NDk4Y2EwM2ZlMWYgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vbW9kdWxlcy9jZGRhLWNkZGIuaDtlbmRsaW5lPTIyO21kNT0yMGVkMzI0Y2E2NDkwN2MzNjZlY2Q3ZjIyYjhlMGM1NCIKLQotREVQRU5EUyA9ICJsaWJ4bWwyIGdjb25mIGRidXMgYnppcDIgZ25vbWUtbWltZS1kYXRhIHpsaWIgaW50bHRvb2wtbmF0aXZlIGdub21lLWNvbW1vbi1uYXRpdmUiCi1SUkVDT01NRU5EU18ke1BOfSA9ICJnbm9tZS12ZnMtcGx1Z2luLWZpbGUgc2hhcmVkLW1pbWUtaW5mbyIKLSMgU29tZSBsZWdhY3kgcGFja2FnZXMgd2lsbCByZXF1aXJlIGdub21lLW1pbWUtZGF0YSB0byBiZSBpbnN0YWxsZWQsIGJ1dCB1c2Ugb2YKLSMgaXQgaXMgZGVwcmVjYXRlZC4KLVBSID0gInIzIgotCi1pbmhlcml0IGdub21lCi0KLSMgVGhpcyBpcyB0byBwcm92aWRlIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgZ25vbWUtdmZzIERCdXMgZm9yawotUlBST1ZJREVTXyR7UE59ID0gImdub21lLXZmcy1wbHVnaW4tZGJ1cyIKLQotU1JDX1VSSSArPSAiIFwKLSAgICBmaWxlOi8vZ2NvbmZ0b29sLWxvc3NhZ2UucGF0Y2ggXAotICAgIGZpbGU6Ly9nbm9tZS12ZnMtbm8ta2VyYmVyb3MucGF0Y2g7c3RyaXBsZXZlbD0wIFwKLSAgICBmaWxlOi8vMDAwMS1tdWx0aXBsZS1NYWtlZmlsZS5hbS1yZW1vdmUtREdfRElTQUJMRV9ERVBSRUNBVEVELXRvLnBhdGNoIFwKLSAgICBmaWxlOi8vZG8tbm90LXVzZS1zcmNkaXItdmFyaWFibGUucGF0Y2ggXAotIgotCi1TUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJhMDVmYWIwM2VlZWYxMGE0N2RkMTU2Yjc1ODk4MmYyZSIKLVNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjYyZGU2NGI1YjgwNGViMDQxMDRmZjk4ZmNkNmE4YjcyNzZkNTEwYTQ5ZmJkOWMwZmViNTY4Zjg5OTY0NDRmYWEiCi1HTk9NRV9DT01QUkVTU19UWVBFPSJiejIiCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3plcm9jb25mJywgJ2F2YWhpJywgJycsIGQpfSIKLVBBQ0tBR0VDT05GSUdbYXZhaGldID0gIi0tZW5hYmxlLWF2YWhpLC0tZGlzYWJsZS1hdmFoaSxhdmFoaSIKLVBBQ0tBR0VDT05GSUdbZmFtXSA9ICItLWVuYWJsZS1mYW0sLS1kaXNhYmxlLWZhbSxnYW1pbiIKLQotRVhUUkFfT0VDT05GID0gIiAtLWRpc2FibGUtaGFsIFwKLSAgICAgICAgICAgICAgICAgLS1kaXNhYmxlLW9wZW5zc2wgXAotICAgICAgICAgICAgICAgICAtLWRpc2FibGUtc2FtYmEgXAotICAgICAgICAgICAgICAgICBhY19jdl9saWJfYWNsX2FjbF9nZXRfZmlsZT1ubyBcCi0gICAgICAgICAgICAgICAgIGFjX2N2X2xpYl9zZWNfYWNsPW5vIFwKLSAgICAgICAgICAgICAgICAgZ3Zmc19jdl9IQVZFX1NPTEFSSVNfQUNMUz1ubyBcCi0gICAgICAgICAgICAgICAgIGd2ZnNfY3ZfSEFWRV9QT1NJWF9BQ0xTPW5vIFwKLSIKLQotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS92ZnMgJHtkYXRhZGlyfS9kYnVzLTEvc2VydmljZXMiCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9nbm9tZS12ZnMtMi4wL21vZHVsZXMvLmRlYnVnIgotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vZ25vbWUtdmZzLTIuMC9pbmNsdWRlLyogJHtsaWJkaXJ9L2dub21lLXZmcy0yLjAvbW9kdWxlcy8qLmxhIgotRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIke2xpYmRpcn0vZ25vbWUtdmZzLTIuMC9tb2R1bGVzLyouYSIKLUZJTEVTXyR7UE59LWRvYyArPSAiJHtkYXRhZGlyfS9ndGstZG9jIgotCi1QQUNLQUdFU19EWU5BTUlDICs9ICJeZ25vbWUtdmZzLXBsdWdpbi0uKiIKLQotcHl0aG9uIHBvcHVsYXRlX3BhY2thZ2VzX3ByZXBlbmQgKCkgewotICAgIHBsdWdpbmRpciA9IGQuZXhwYW5kKCcke2xpYmRpcn0vZ25vbWUtdmZzLTIuMC9tb2R1bGVzLycpCi0gICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgcGx1Z2luZGlyLCAnXmxpYiguKilcLnNvJCcsICdnbm9tZS12ZnMtcGx1Z2luLSVzJywgJ0dOT01FIFZGUyBwbHVnaW4gZm9yICVzJykKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lL2xpYmdub21lY3Vwcy9saWJnbm9tZWN1cHMtMC4yLjMtY3Vwcy0xLjYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS9saWJnbm9tZWN1cHMvbGliZ25vbWVjdXBzLTAuMi4zLWN1cHMtMS42LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYmE2MGNhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lL2xpYmdub21lY3Vwcy9saWJnbm9tZWN1cHMtMC4yLjMtY3Vwcy0xLjYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyODggKzAsMCBAQAotSW1wb3J0ZWQgZnJvbSBnZW50b286Ci1odHRwOi8vc291cmNlcy5nZW50b28ub3JnL2NnaS1iaW4vdmlld3ZjLmNnaS9nZW50b28teDg2L25ldC1wcmludC9saWJnbm9tZWN1cHMvZmlsZXMvbGliZ25vbWVjdXBzLTAuMi4zLWN1cHMtMS42LnBhdGNoCi0KLUZyb20gYWU3ODNlZmRlNGZhNjk1Nzg2NTE5OTQ1MDU0NjJmMDJiODYzOTIyMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFsZXhhbmRyZSBSb3N0b3Z0c2V2IDx0ZXRyb21pbm9AZ2VudG9vLm9yZz4KLURhdGU6IFR1ZSwgNyBBdWcgMjAxMiAwNjo1MzowOSAtMDQwMAotU3ViamVjdDogW1BBVENIXSBVc2UgQ1VQUy0xLjYgSVBQIEFQSSBnZXR0ZXIvc2V0dGVyIGZ1bmN0aW9ucwotCi1DVVBTIDEuNiBtYWtlcyB2YXJpb3VzIHN0cnVjdHVyZXMgcHJpdmF0ZSBhbmQgaW50cm9kdWNlcyB0aGVzZSBpcHBHZXQKLWFuZCBpcHBTZXQgZnVuY3Rpb25zIGZvciBhbGwgb2YgdGhlIGZpZWxkcyBpbiB0aGVzZSBzdHJ1Y3R1cmVzLgotaHR0cDovL3d3dy5jdXBzLm9yZy9zdHIucGhwP0wzOTI4Ci0KLVdlIGRlZmluZSBvdXIgb3duIGFjY2Vzc29ycyB3aGVuIGJ1aWxkaW5nIGFnYWluc3QgQ1VQUyA8IDEuNi4KLQotQmFzZWQgb24gd29yayBieSBKaXJpIFBvcGVsa2EgPGpwb3BlbGthQHJlZGhhdC5jb20+IGF0Ci1odHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NzU5Ci0tLS0KLSBsaWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1wcmludGVyLmMgfCAgIDQ4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQotIGxpYmdub21lY3Vwcy9nbm9tZS1jdXBzLXF1ZXVlLmMgICB8ICAgNDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCi0gbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcmVxdWVzdC5jIHwgICA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYmdub21lY3Vwcy9nbm9tZS1jdXBzLXByaW50ZXIuYyBiL2xpYmdub21lY3Vwcy9nbm9tZS1jdXBzLXByaW50ZXIuYwotaW5kZXggYzkyNGFmMC4uZjVlMWVmNyAxMDA2NDQKLS0tLSBhL2xpYmdub21lY3Vwcy9nbm9tZS1jdXBzLXByaW50ZXIuYwotKysrIGIvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcHJpbnRlci5jCi1AQCAtMzcsNiArMzcsMzQgQEAKLSAKLSAjZGVmaW5lIFVQREFURV9USU1FT1VUIDUwMDAKLSAKLSsjaWYgKENVUFNfVkVSU0lPTl9NQUpPUiA+IDEpIHx8IChDVVBTX1ZFUlNJT05fTUlOT1IgPiA1KQotKyNkZWZpbmUgSEFWRV9DVVBTXzFfNiAxCi0rI2VuZGlmCi0rCi0rI2lmbmRlZiBIQVZFX0NVUFNfMV82Ci0rI2RlZmluZSBpcHBHZXRDb3VudChhdHRyKSAgICAgYXR0ci0+bnVtX3ZhbHVlcwotKyNkZWZpbmUgaXBwR2V0TmFtZShhdHRyKSAgICAgIGF0dHItPm5hbWUKLSsjZGVmaW5lIGlwcEdldEludGVnZXIoYXR0ciwgZWxlbWVudCkgYXR0ci0+dmFsdWVzW2VsZW1lbnRdLmludGVnZXIKLSsjZGVmaW5lIGlwcEdldFN0cmluZyhhdHRyLCBlbGVtZW50LCBsYW5ndWFnZSkgYXR0ci0+dmFsdWVzW2VsZW1lbnRdLnN0cmluZy50ZXh0Ci0rCi0rc3RhdGljIGlwcF9hdHRyaWJ1dGVfdCAqCi0raXBwRmlyc3RBdHRyaWJ1dGUoaXBwX3QgKmlwcCkKLSt7Ci0rICBpZiAoIWlwcCkKLSsgICAgcmV0dXJuIChOVUxMKTsKLSsgIHJldHVybiAoaXBwLT5jdXJyZW50ID0gaXBwLT5hdHRycyk7Ci0rfQotKwotK3N0YXRpYyBpcHBfYXR0cmlidXRlX3QgKgotK2lwcE5leHRBdHRyaWJ1dGUoaXBwX3QgKmlwcCkKLSt7Ci0rICBpZiAoIWlwcCB8fCAhaXBwLT5jdXJyZW50KQotKyAgICByZXR1cm4gKE5VTEwpOwotKyAgcmV0dXJuIChpcHAtPmN1cnJlbnQgPSBpcHAtPmN1cnJlbnQtPm5leHQpOwotK30KLSsjZW5kaWYKLSsKLSsKLSBzdHJ1Y3QgX0dub21lQ3Vwc1BQREZpbGUgewotIAljaGFyIG5hbWVbMV07Ci0gfTsKLUBAIC0xNzMsOSArMjAxLDkgQEAgbWFwX3JlYXNvbnMgKEdub21lQ3Vwc1ByaW50ZXIgKnByaW50ZXIsCi0gCXByaW50ZXItPmRldGFpbHMtPnN0YXRlX3JlYXNvbnMgPSBOVUxMOwotIAotIAkvKiBjZi4gUkZDMjkxMSA0LjQuMTIgKi8KLS0JZm9yIChpID0gMDsgaSA8IGF0dHItPm51bV92YWx1ZXM7IGkrKykgewotKwlmb3IgKGkgPSAwOyBpIDwgaXBwR2V0Q291bnQgKGF0dHIpOyBpKyspIHsKLSAJCWNvbnN0IGNoYXIgKnA7Ci0tCQljb25zdCBjaGFyICprZXl3b3JkID0gYXR0ci0+dmFsdWVzIFtpXS5zdHJpbmcudGV4dDsKLSsJCWNvbnN0IGNoYXIgKmtleXdvcmQgPSBpcHBHZXRTdHJpbmcgKGF0dHIsIGksIE5VTEwpOwotIAotIAkJcmVhc29uID0gZ19uZXcgKEdub21lQ3Vwc1ByaW50ZXJSZWFzb24sIDEpOwotIAotQEAgLTIyNCw4ICsyNTIsOCBAQCBnbm9tZV9jdXBzX3ByaW50ZXJfZ2V0X2luZm8gKEdub21lQ3Vwc1ByaW50ZXIgKnByaW50ZXIpCi0gCXJldHVybiBwcmludGVyLT5kZXRhaWxzLT5pbmZvOwotIH0KLSAKLS0jZGVmaW5lIE1BUF9JTlQodixhKSB7aWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAgKGF0dHItPm5hbWUsIChhKSkpIHsgaWYgKCh2KSAhPSBhdHRyLT52YWx1ZXNbMF0uaW50ZWdlcikgeyBjaGFuZ2VkID0gVFJVRTsgfSAodikgPSBhdHRyLT52YWx1ZXNbMF0uaW50ZWdlcjsgfX0KLS0jZGVmaW5lIE1BUF9TVFJJTkcodixhKSB7aWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAgKGF0dHItPm5hbWUsIChhKSkpIHsgaWYgKCF2IHx8IHN0cmNtcCAodiwgYXR0ci0+dmFsdWVzWzBdLnN0cmluZy50ZXh0KSkgeyBnX2ZyZWUgKHYpOyBjaGFuZ2VkID0gVFJVRTsgKHYpID0gZ19zdHJkdXAgKGF0dHItPnZhbHVlc1swXS5zdHJpbmcudGV4dCk7IH19fQotKyNkZWZpbmUgTUFQX0lOVCh2LGEpIHtpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcCAoaXBwR2V0TmFtZSAoYXR0ciksIChhKSkpIHsgaWYgKCh2KSAhPSBpcHBHZXRJbnRlZ2VyIChhdHRyLCAwKSkgeyBjaGFuZ2VkID0gVFJVRTsgfSAodikgPSBpcHBHZXRJbnRlZ2VyIChhdHRyLCAwKTsgfX0KLSsjZGVmaW5lIE1BUF9TVFJJTkcodixhKSB7aWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAgKGlwcEdldE5hbWUgKGF0dHIpLCAoYSkpKSB7IGlmICghdiB8fCBzdHJjbXAgKHYsIGlwcEdldFN0cmluZyAoYXR0ciwgMCwgTlVMTCkpKSB7IGdfZnJlZSAodik7IGNoYW5nZWQgPSBUUlVFOyAodikgPSBnX3N0cmR1cCAoaXBwR2V0U3RyaW5nIChhdHRyLCAwLCBOVUxMKSk7IH19fQotIAotIHN0YXRpYyB2b2lkCi0gYXR0cmlidXRlc191cGRhdGVfY2IgKGd1aW50IGlkLAotQEAgLTI0MywxNCArMjcxLDE0IEBAIGF0dHJpYnV0ZXNfdXBkYXRlX2NiIChndWludCBpZCwKLSAJY2hhbmdlZCA9IEZBTFNFOwotIAotIAlpZiAoIWVycm9yICYmIHJlc3BvbnNlKSB7Ci0tCQlmb3IgKGF0dHIgPSByZXNwb25zZS0+YXR0cnM7IGF0dHIgIT0gTlVMTDsgYXR0ciA9IGF0dHItPm5leHQpIHsKLS0JCQlpZiAoIWF0dHItPm5hbWUpIHsKLSsJCWZvciAoYXR0ciA9IGlwcEZpcnN0QXR0cmlidXRlIChyZXNwb25zZSk7IGF0dHIgIT0gTlVMTDsgYXR0ciA9IGlwcE5leHRBdHRyaWJ1dGUgKHJlc3BvbnNlKSkgewotKwkJCWlmICghaXBwR2V0TmFtZSAoYXR0cikpIHsKLSAJCQkJY29udGludWU7Ci0gCQkJfSAKLS0JCQlpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcCAoYXR0ci0+bmFtZSwgImF0dHJpYnV0ZXMtY2hhcnNldCIpIHx8ICFzdHJjbXAgKGF0dHItPm5hbWUsICJhdHRyaWJ1dGVzLWNoYXJzZXQiKSkgewotKwkJCWlmICghZ19hc2NpaV9zdHJjYXNlY21wIChpcHBHZXROYW1lIChhdHRyKSwgImF0dHJpYnV0ZXMtY2hhcnNldCIpIHx8ICFzdHJjbXAgKGlwcEdldE5hbWUgKGF0dHIpLCAiYXR0cmlidXRlcy1jaGFyc2V0IikpIHsKLSAJCQkJY29udGludWU7Ci0gCQkJfQotLQkJCWlmICghZ19hc2NpaV9zdHJjYXNlY21wIChhdHRyLT5uYW1lLCAicHJpbnRlci1zdGF0ZS1yZWFzb25zIikpIHsKLSsJCQlpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcCAoaXBwR2V0TmFtZSAoYXR0ciksICJwcmludGVyLXN0YXRlLXJlYXNvbnMiKSkgewotIAkJCQltYXBfcmVhc29ucyAocHJpbnRlciwgYXR0cik7Ci0gCQkJfQotIAkJCU1BUF9JTlQgKHByaW50ZXItPmRldGFpbHMtPnN0YXRlLCAicHJpbnRlci1zdGF0ZSIpOwotQEAgLTU3MCw3ICs1OTgsNyBAQCBnZXRfZGVmYXVsdCAodm9pZCkKLSAJCi0gCWF0dHIgPSBpcHBGaW5kQXR0cmlidXRlIChyZXNwb25zZSwgInByaW50ZXItbmFtZSIsIElQUF9UQUdfTkFNRSk7Ci0gCWlmIChhdHRyKSB7Ci0tCQluYW1lID0gZ19zdHJkdXAgKGF0dHItPnZhbHVlc1swXS5zdHJpbmcudGV4dCk7Ci0rCQluYW1lID0gZ19zdHJkdXAgKGlwcEdldFN0cmluZyAoYXR0ciwgMCwgTlVMTCkpOwotIAl9IGVsc2UgewotIAkJbmFtZSA9IE5VTEw7Ci0gCX0KLUBAIC02OTgsNyArNzI2LDcgQEAgZ2V0X3ByaW50ZXJfbmFtZXMgKHZvaWQpCi0gCWF0dHIgPSBpcHBGaW5kQXR0cmlidXRlIChyZXNwb25zZSwgInByaW50ZXItbmFtZSIsIElQUF9UQUdfTkFNRSk7Ci0gCXdoaWxlIChhdHRyKSB7Ci0gCQlyZXQgPSBnX2xpc3RfcHJlcGVuZCAocmV0LCAKLS0JCQkJICAgICAgZ19zdHJkdXAgKGF0dHItPnZhbHVlc1swXS5zdHJpbmcudGV4dCkpOwotKwkJCQkgICAgICBnX3N0cmR1cCAoaXBwR2V0U3RyaW5nIChhdHRyLCAwLCBOVUxMKSkpOwotIAkJCi0gCQlhdHRyID0gaXBwRmluZE5leHRBdHRyaWJ1dGUgKHJlc3BvbnNlLCAKLSAJCQkJCSAgICAgInByaW50ZXItbmFtZSIsIAotZGlmZiAtLWdpdCBhL2xpYmdub21lY3Vwcy9nbm9tZS1jdXBzLXF1ZXVlLmMgYi9saWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1xdWV1ZS5jCi1pbmRleCA5Zjk4ZWQ5Li4yOThkYjQyIDEwMDY0NAotLS0tIGEvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcXVldWUuYwotKysrIGIvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcXVldWUuYwotQEAgLTE1LDYgKzE1LDMzIEBACi0gCi0gI2RlZmluZSBVUERBVEVfVElNRU9VVCAzMDAwCi0gCi0rI2lmIChDVVBTX1ZFUlNJT05fTUFKT1IgPiAxKSB8fCAoQ1VQU19WRVJTSU9OX01JTk9SID4gNSkKLSsjZGVmaW5lIEhBVkVfQ1VQU18xXzYgMQotKyNlbmRpZgotKwotKyNpZm5kZWYgSEFWRV9DVVBTXzFfNgotKyNkZWZpbmUgaXBwR2V0TmFtZShhdHRyKSAgICAgIGF0dHItPm5hbWUKLSsjZGVmaW5lIGlwcEdldEludGVnZXIoYXR0ciwgZWxlbWVudCkgYXR0ci0+dmFsdWVzW2VsZW1lbnRdLmludGVnZXIKLSsjZGVmaW5lIGlwcEdldFN0cmluZyhhdHRyLCBlbGVtZW50LCBsYW5ndWFnZSkgYXR0ci0+dmFsdWVzW2VsZW1lbnRdLnN0cmluZy50ZXh0Ci0rCi0rc3RhdGljIGlwcF9hdHRyaWJ1dGVfdCAqCi0raXBwRmlyc3RBdHRyaWJ1dGUoaXBwX3QgKmlwcCkKLSt7Ci0rICBpZiAoIWlwcCkKLSsgICAgcmV0dXJuIChOVUxMKTsKLSsgIHJldHVybiAoaXBwLT5jdXJyZW50ID0gaXBwLT5hdHRycyk7Ci0rfQotKwotK3N0YXRpYyBpcHBfYXR0cmlidXRlX3QgKgotK2lwcE5leHRBdHRyaWJ1dGUoaXBwX3QgKmlwcCkKLSt7Ci0rICBpZiAoIWlwcCB8fCAhaXBwLT5jdXJyZW50KQotKyAgICByZXR1cm4gKE5VTEwpOwotKyAgcmV0dXJuIChpcHAtPmN1cnJlbnQgPSBpcHAtPmN1cnJlbnQtPm5leHQpOwotK30KLSsjZW5kaWYKLSsKLSsKLSBzdHJ1Y3QgX0dub21lQ3Vwc1F1ZXVlRGV0YWlscyB7Ci0gCWNoYXIgKnF1ZXVlX25hbWU7Ci0gCUdMaXN0ICpqb2JzOwotQEAgLTE5OSw4ICsyMjYsOCBAQCBmaW5pc2hfam9iIChHbm9tZUN1cHNKb2IgKmpvYikKLSAJam9iLT5zaXplID0gam9iLT5zaXplICogMTAyNDsKLSB9Ci0gCi0tI2RlZmluZSBNQVBfU1RSKGRlc3QsIHNyYykgeyBpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcCAoYXR0ci0+bmFtZSwgKHNyYykpKSB7IGlmICgoZGVzdCkgIT0gTlVMTCkgZ19mcmVlIChkZXN0KTsgKGRlc3QpID0gZ19zdHJkdXAgKGF0dHItPnZhbHVlc1swXS5zdHJpbmcudGV4dCk7fX0KLS0jZGVmaW5lIE1BUF9JTlQoZGVzdCwgc3JjKSB7IGlmICghZ19hc2NpaV9zdHJjYXNlY21wIChhdHRyLT5uYW1lLCAoc3JjKSkpIHsgKGRlc3QpID0gYXR0ci0+dmFsdWVzWzBdLmludGVnZXI7IH0gfQotKyNkZWZpbmUgTUFQX1NUUihkZXN0LCBzcmMpIHsgaWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAgKGlwcEdldE5hbWUgKGF0dHIpLCAoc3JjKSkpIHsgaWYgKChkZXN0KSAhPSBOVUxMKSBnX2ZyZWUgKGRlc3QpOyAoZGVzdCkgPSBnX3N0cmR1cCAoaXBwR2V0U3RyaW5nIChhdHRyLCAwLCBOVUxMKSk7fX0KLSsjZGVmaW5lIE1BUF9JTlQoZGVzdCwgc3JjKSB7IGlmICghZ19hc2NpaV9zdHJjYXNlY21wIChpcHBHZXROYW1lIChhdHRyKSwgKHNyYykpKSB7IChkZXN0KSA9IGlwcEdldEludGVnZXIgKGF0dHIsIDApOyB9IH0KLSAKLSBzdGF0aWMgdm9pZAotIGdldF9qb2JzX2NiIChndWludCBpZCwKLUBAIC0yMzEsOCArMjU4LDggQEAgZ2V0X2pvYnNfY2IgKGd1aW50IGlkLAotIAkKLSAJaWYgKHJlc3BvbnNlKSB7Ci0gCQlqb2IgPSBnX25ldzAgKEdub21lQ3Vwc0pvYiwgMSk7Ci0tCQlmb3IgKGF0dHIgPSByZXNwb25zZS0+YXR0cnM7IGF0dHIgIT0gTlVMTDsgYXR0ciA9IGF0dHItPm5leHQpIHsKLS0JCQlpZiAoYXR0ci0+bmFtZSA9PSBOVUxMKSB7Ci0rCQlmb3IgKGF0dHIgPSBpcHBGaXJzdEF0dHJpYnV0ZSAocmVzcG9uc2UpOyBhdHRyICE9IE5VTEw7IGF0dHIgPSBpcHBOZXh0QXR0cmlidXRlIChyZXNwb25zZSkpIHsKLSsJCQlpZiAoaXBwR2V0TmFtZSAoYXR0cikgPT0gTlVMTCkgewotIAkJCQlpZiAoam9iLT5uYW1lKSB7Ci0gCQkJCQlmaW5pc2hfam9iIChqb2IpOwotIAkJCQkJam9icyA9IGdfbGlzdF9wcmVwZW5kIChqb2JzLCBqb2IpOwkKLUBAIC0yNDQsNyArMjcxLDcgQEAgZ2V0X2pvYnNfY2IgKGd1aW50IGlkLAotIAkJCQljb250aW51ZTsKLSAJCQl9Ci0gCQkJCi0tCQkJaWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAgKGF0dHItPm5hbWUsICJhdHRyaWJ1dGVzLWNoYXJzZXQiKSB8fCAhZ19hc2NpaV9zdHJjYXNlY21wIChhdHRyLT5uYW1lLCAiYXR0cmlidXRlcy1jaGFyc2V0IikpIHsKLSsJCQlpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcCAoaXBwR2V0TmFtZSAoYXR0ciksICJhdHRyaWJ1dGVzLWNoYXJzZXQiKSB8fCAhZ19hc2NpaV9zdHJjYXNlY21wIChpcHBHZXROYW1lIChhdHRyKSwgImF0dHJpYnV0ZXMtY2hhcnNldCIpKSB7Ci0gCQkJCWNvbnRpbnVlOwotIAkJCQkKLSAJCQl9Ci1AQCAtMzU1LDggKzM4Miw4IEBAIGdub21lX2N1cHNfcXVldWVfZ2V0X2pvYl9ub2NhY2hlIChHbm9tZUN1cHNRdWV1ZSAqcXVldWUsCi0gCi0gCWlmIChyZXNwb25zZSkgewotIAkJam9iID0gZ19uZXcwIChHbm9tZUN1cHNKb2IsIDEpOwotLQkJZm9yIChhdHRyID0gcmVzcG9uc2UtPmF0dHJzOyBhdHRyICE9IE5VTEw7IGF0dHIgPSBhdHRyLT5uZXh0KSB7Ci0tCQkJaWYgKGF0dHItPm5hbWUgPT0gTlVMTCkgewotKwkJZm9yIChhdHRyID0gaXBwRmlyc3RBdHRyaWJ1dGUgKHJlc3BvbnNlKTsgYXR0ciAhPSBOVUxMOyBhdHRyID0gaXBwTmV4dEF0dHJpYnV0ZSAocmVzcG9uc2UpKSB7Ci0rCQkJaWYgKGlwcEdldE5hbWUgKGF0dHIpID09IE5VTEwpIHsKLSAJCQkJaWYgKGpvYi0+bmFtZSkgewotIAkJCQkJZmluaXNoX2pvYiAoam9iKTsKLSAJCQkJfSBlbHNlIHsKLUBAIC0zNjYsNyArMzkzLDcgQEAgZ25vbWVfY3Vwc19xdWV1ZV9nZXRfam9iX25vY2FjaGUgKEdub21lQ3Vwc1F1ZXVlICpxdWV1ZSwKLSAJCQkJYnJlYWs7Ci0gCQkJfQotIAkJCQotLQkJCWlmICghZ19hc2NpaV9zdHJjYXNlY21wIChhdHRyLT5uYW1lLCAiYXR0cmlidXRlcy1jaGFyc2V0IikgfHwgIWdfYXNjaWlfc3RyY2FzZWNtcCAoYXR0ci0+bmFtZSwgImF0dHJpYnV0ZXMtY2hhcnNldCIpKSB7Ci0rCQkJaWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAgKGlwcEdldE5hbWUgKGF0dHIpLCAiYXR0cmlidXRlcy1jaGFyc2V0IikgfHwgIWdfYXNjaWlfc3RyY2FzZWNtcCAoaXBwR2V0TmFtZSAoYXR0ciksICJhdHRyaWJ1dGVzLWNoYXJzZXQiKSkgewotIAkJCQljb250aW51ZTsKLSAJCQl9Ci0gCQkJCi1kaWZmIC0tZ2l0IGEvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcmVxdWVzdC5jIGIvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcmVxdWVzdC5jCi1pbmRleCBjOTRmNjIzLi4xM2YwOTQ4IDEwMDY0NAotLS0tIGEvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtcmVxdWVzdC5jCi0rKysgYi9saWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1yZXF1ZXN0LmMKLUBAIC0xOSw2ICsxOSwzNiBAQAotICNkZWZpbmUgU1RPUF9VTlVTRURfVEhSRUFEU19USU1FT1VUIDYwCi0gI2RlZmluZSBDTE9TRV9VTlVTRURfQ09OTkVDVElPTlNfVElNRU9VVCAzMAotIAotKyNpZiAoQ1VQU19WRVJTSU9OX01BSk9SID4gMSkgfHwgKENVUFNfVkVSU0lPTl9NSU5PUiA+IDUpCi0rI2RlZmluZSBIQVZFX0NVUFNfMV82IDEKLSsjZW5kaWYKLSsKLSsjaWZuZGVmIEhBVkVfQ1VQU18xXzYKLSsjZGVmaW5lIGlwcEdldENvdW50KGF0dHIpICAgICBhdHRyLT5udW1fdmFsdWVzCi0rI2RlZmluZSBpcHBHZXRWYWx1ZVRhZyhhdHRyKSAgYXR0ci0+dmFsdWVfdGFnCi0rI2RlZmluZSBpcHBHZXROYW1lKGF0dHIpICAgICAgYXR0ci0+bmFtZQotKyNkZWZpbmUgaXBwR2V0Qm9vbGVhbihhdHRyLCBlbGVtZW50KSBhdHRyLT52YWx1ZXNbZWxlbWVudF0uYm9vbGVhbgotKyNkZWZpbmUgaXBwR2V0SW50ZWdlcihhdHRyLCBlbGVtZW50KSBhdHRyLT52YWx1ZXNbZWxlbWVudF0uaW50ZWdlcgotKyNkZWZpbmUgaXBwR2V0U3RyaW5nKGF0dHIsIGVsZW1lbnQsIGxhbmd1YWdlKSBhdHRyLT52YWx1ZXNbZWxlbWVudF0uc3RyaW5nLnRleHQKLSsKLStzdGF0aWMgaXBwX2F0dHJpYnV0ZV90ICoKLStpcHBGaXJzdEF0dHJpYnV0ZShpcHBfdCAqaXBwKQotK3sKLSsgIGlmICghaXBwKQotKyAgICByZXR1cm4gKE5VTEwpOwotKyAgcmV0dXJuIChpcHAtPmN1cnJlbnQgPSBpcHAtPmF0dHJzKTsKLSt9Ci0rCi0rc3RhdGljIGlwcF9hdHRyaWJ1dGVfdCAqCi0raXBwTmV4dEF0dHJpYnV0ZShpcHBfdCAqaXBwKQotK3sKLSsgIGlmICghaXBwIHx8ICFpcHAtPmN1cnJlbnQpCi0rICAgIHJldHVybiAoTlVMTCk7Ci0rICByZXR1cm4gKGlwcC0+Y3VycmVudCA9IGlwcC0+Y3VycmVudC0+bmV4dCk7Ci0rfQotKyNlbmRpZgotKwotKwotIHR5cGVkZWYgc3RydWN0Ci0gewotIAlHTXV0ZXggKm11dGV4OwotQEAgLTI3NiwxNCArMzA2LDE0IEBAIGR1bXBfcmVxdWVzdCAoaXBwX3QgY29uc3QgKnJlcSkKLSAJdW5zaWduZWQgaTsKLSAJaXBwX2F0dHJpYnV0ZV90ICphdHRyOwotIAotLQlmb3IgKGF0dHIgPSByZXEtPmF0dHJzOyBhdHRyICE9IE5VTEw7IGF0dHIgPSBhdHRyLT5uZXh0KSB7Ci0tCQlnX3ByaW50ICgiJXMiLCBhdHRyLT5uYW1lKTsKLS0JCWZvciAoaSA9IDAgOyBpIDwgYXR0ci0+bnVtX3ZhbHVlcyA7IGkrKykgewotKwlmb3IgKGF0dHIgPSBpcHBGaXJzdEF0dHJpYnV0ZSAocmVxKTsgYXR0ciAhPSBOVUxMOyBhdHRyID0gaXBwTmV4dEF0dHJpYnV0ZSAocmVxKSkgewotKwkJZ19wcmludCAoIiVzIiwgaXBwR2V0TmFtZSAoYXR0cikpOwotKwkJZm9yIChpID0gMCA7IGkgPCBpcHBHZXRDb3VudCAoYXR0cikgOyBpKyspIHsKLSAJCQlnX3ByaW50ICgiXHRbJWRdID0gIiwgaSk7Ci0tCQkJc3dpdGNoIChhdHRyLT52YWx1ZV90YWcgJiB+SVBQX1RBR19DT1BZKSB7Ci0rCQkJc3dpdGNoIChpcHBHZXRWYWx1ZVRhZyAoYXR0cikgJiB+SVBQX1RBR19DT1BZKSB7Ci0gCQkJY2FzZSBJUFBfVEFHX0lOVEVHRVI6Ci0gCQkJY2FzZSBJUFBfVEFHX0VOVU06Ci0tCQkJCWdfcHJpbnQgKCIlZFxuIiwgYXR0ci0+dmFsdWVzW2ldLmludGVnZXIpOwotKwkJCQlnX3ByaW50ICgiJWRcbiIsIGlwcEdldEludGVnZXIgKGF0dHIsIGkpKTsKLSAJCQkJYnJlYWs7Ci0gCi0gCQkJY2FzZSBJUFBfVEFHX1NUUklORzoKLUBAIC0yOTQsMTEgKzMyNCwxMSBAQCBkdW1wX3JlcXVlc3QgKGlwcF90IGNvbnN0ICpyZXEpCi0gCQkJY2FzZSBJUFBfVEFHX0NIQVJTRVQ6Ci0gCQkJY2FzZSBJUFBfVEFHX0xBTkdVQUdFOgotIAkJCWNhc2UgSVBQX1RBR19NSU1FVFlQRToKLS0JCQkJZ19wcmludCAoIiclcydcbiIsIGF0dHItPnZhbHVlc1tpXS5zdHJpbmcudGV4dCk7Ci0rCQkJCWdfcHJpbnQgKCInJXMnXG4iLCBpcHBHZXRTdHJpbmcgKGF0dHIsIGksIE5VTEwpKTsKLSAJCQkJYnJlYWs7Ci0gCi0gCQkJY2FzZSBJUFBfVEFHX0JPT0xFQU46Ci0tCQkJCWdfcHJpbnQgKCIlc1xuIiwgKGludClhdHRyLT52YWx1ZXNbaV0uYm9vbGVhbiA/ICJ0cnVlIiA6ICJmYWxzZSIpOwotKwkJCQlnX3ByaW50ICgiJXNcbiIsIChpbnQpaXBwR2V0Qm9vbGVhbiAoYXR0ciwgaSkgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLSAJCQkJYnJlYWs7Ci0gCi0gCQkJZGVmYXVsdDoKLS0tIAotMS43LjguNgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9nbm9tZS9saWJnbm9tZWN1cHMvbGliZ25vbWVjdXBzLTAuMi4zLWdsaWIuaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lL2xpYmdub21lY3Vwcy9saWJnbm9tZWN1cHMtMC4yLjMtZ2xpYi5oLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2I2MTY1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2dub21lL2xpYmdub21lY3Vwcy9saWJnbm9tZWN1cHMtMC4yLjMtZ2xpYi5oLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotSW1wb3J0ZWQgZnJvbSBnZW50b286Ci0KLWh0dHA6Ly9zb3VyY2VzLmdlbnRvby5vcmcvY2dpLWJpbi92aWV3dmMuY2dpL2dlbnRvby14ODYvbmV0LXByaW50L2xpYmdub21lY3Vwcy9maWxlcy9saWJnbm9tZWN1cHMtMC4yLjMtZ2xpYi5oLnBhdGNoCi0KLUZyb20gZDg0ZWVlOTQ1MGIzYjZmNjE1NTA3NDkxNWVmYzYxYmVkY2M4ZDQ0NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERvbWluaXF1ZSBMZXVlbmJlcmdlciA8ZGltc3RhckBvcGVuc3VzZS5vcmc+Ci1EYXRlOiBTdW4sIDI3IE5vdiAyMDExIDIxOjM2OjQxICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeDogT25seSBnbGliLmggY2FuIGJlIGluY2x1ZGVkCi0KLS0tLQotIGxpYmdub21lY3Vwcy9nbm9tZS1jdXBzLWkxOG4uYyB8ICAgIDIgKy0KLSBsaWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1pbml0LmggfCAgICAzICstLQotIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtaTE4bi5jIGIvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtaTE4bi5jCi1pbmRleCA4OTg3YzVjLi4xMjc3NTZkIDEwMDY0NAotLS0tIGEvbGliZ25vbWVjdXBzL2dub21lLWN1cHMtaTE4bi5jCi0rKysgYi9saWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1pMThuLmMKLUBAIC0xLDUgKzEsNSBAQAotICNpbmNsdWRlIDxjb25maWcuaD4KLS0jaW5jbHVkZSA8Z2xpYi9nbWFjcm9zLmg+Ci0rI2luY2x1ZGUgPGdsaWIuaD4KLSAjaW5jbHVkZSAiZ25vbWUtY3Vwcy1pMThuLmgiCi0gCi0gI2lmZGVmIEVOQUJMRV9OTFMKLWRpZmYgLS1naXQgYS9saWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1pbml0LmggYi9saWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1pbml0LmgKLWluZGV4IDIyYjY4MmEuLmM0NjAwZmMgMTAwNjQ0Ci0tLS0gYS9saWJnbm9tZWN1cHMvZ25vbWUtY3Vwcy1pbml0LmgKLSsrKyBiL2xpYmdub21lY3Vwcy9nbm9tZS1jdXBzLWluaXQuaAotQEAgLTEsOCArMSw3IEBACi0gI2lmbmRlZiBHTk9NRV9DVVBTX0lOSVQKLSAjZGVmaW5lIEdOT01FX0NVUFNfSU5JVAotIAotLSNpbmNsdWRlIDxnbGliL2d0eXBlcy5oPgotLSNpbmNsdWRlIDxnbGliL2dtYWNyb3MuaD4KLSsjaW5jbHVkZSA8Z2xpYi5oPgotIAotIEdfQkVHSU5fREVDTFMKLSAKLS0tIAotMS43LjcKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3RrLWVuZ2luZXMvZmlsZXMvZ2xpYi0yLjMyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3RrLWVuZ2luZXMvZmlsZXMvZ2xpYi0yLjMyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMGI4NzhkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d0ay1lbmdpbmVzL2ZpbGVzL2dsaWItMi4zMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLUZyb20gOGQ0OWEzODZmNDY3Y2JmOGUwODQyZDIyMTgxMjZmNjQzZTUwZjgzNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERvbWluaXF1ZSBMZXVlbmJlcmdlciA8ZGltc3RhckBvcGVuc3VzZS5vcmc+Ci1EYXRlOiBTdW4sIDI3IE5vdiAyMDExIDE0OjI0OjU3ICswMDAwCi1TdWJqZWN0OiBGaXggYnVpbGQgd2l0aCBnbGliIDIuMzE6IE9ubHkgZ2xpYi5oIGNhbiBiZSAjaW5jbHVkZSdkLiBGaXhlcyBidWcgIzY2NDkxNAotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci0KLS0tLQotZGlmZiAtLWdpdCBhL2VuZ2luZXMvY2xlYXJsb29rcy9zcmMvYW5pbWF0aW9uLmMgYi9lbmdpbmVzL2NsZWFybG9va3Mvc3JjL2FuaW1hdGlvbi5jCi1pbmRleCAxZjdhNDFmLi41NmE5Mjg2IDEwMDY0NAotLS0tIGEvZW5naW5lcy9jbGVhcmxvb2tzL3NyYy9hbmltYXRpb24uYwotKysrIGIvZW5naW5lcy9jbGVhcmxvb2tzL3NyYy9hbmltYXRpb24uYwotQEAgLTI4LDcgKzI4LDcgQEAKLSAjaW5jbHVkZSAiYW5pbWF0aW9uLmgiCi0gCi0gI2lmZGVmIEhBVkVfV09SS0lOR19BTklNQVRJT04KLS0jaW5jbHVkZSA8Z2xpYi9ndGltZXIuaD4KLSsjaW5jbHVkZSA8Z2xpYi5oPgotIAotIHN0cnVjdCBfQW5pbWF0aW9uSW5mbyB7Ci0gCUdUaW1lciAqdGltZXI7Ci0tLQotY2dpdCB2MC45LjAuMgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3RrLWVuZ2luZXMvZmlsZXMvc3Vic3RpdHV0ZS10ZXN0cy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d0ay1lbmdpbmVzL2ZpbGVzL3N1YnN0aXR1dGUtdGVzdHMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjNTU3YmEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3RrLWVuZ2luZXMvZmlsZXMvc3Vic3RpdHV0ZS10ZXN0cy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBNYXJrbyBMaW5kcXZpc3QgPGNhemZpNzRAZ21haWwuY29tPgotZGlmZiAtTnVyZCBndGstZW5naW5lcy0yLjIwLjIvY29uZmlndXJlLmFjIGd0ay1lbmdpbmVzLTIuMjAuMi9jb25maWd1cmUuYWMKLS0tLSBndGstZW5naW5lcy0yLjIwLjIvY29uZmlndXJlLmFjCTIwMTAtMTAtMDEgMTU6NDI6MzcuMDAwMDAwMDAwICswMzAwCi0rKysgZ3RrLWVuZ2luZXMtMi4yMC4yL2NvbmZpZ3VyZS5hYwkyMDEzLTA4LTIwIDAyOjUwOjI3LjkzMDUxMDU2NSArMDMwMAotQEAgLTE2Niw2ICsxNjYsOSBAQAotCi0gQUNfU1VCU1QoREVWRUxPUE1FTlRfQ0ZMQUdTKQotCi0rQUNfU1VCU1QoW2V4cG9ydGVkX3N5bWJvbHNfdGVzdHNdLCBbWyQoRVhQT1JURURfU1lNQk9MU19URVNUUyldXSkKLStBQ19TVUJTVChbdG9ydHVyZV90ZXN0X3Rlc3RzXSwgW1skKFRPUlRVUkVfVEVTVF9URVNUUyldXSkKLSsKLSBBTV9DT05GSUdfSEVBREVSKFtlbmdpbmVzL3N1cHBvcnQvY29uZmlnLmhdKQotCi0gQUNfQ09ORklHX0ZJTEVTKFsKLWRpZmYgLU51cmQgZ3RrLWVuZ2luZXMtMi4yMC4yL3Rlc3QvTWFrZWZpbGUuYW0gZ3RrLWVuZ2luZXMtMi4yMC4yL3Rlc3QvTWFrZWZpbGUuYW0KLS0tLSBndGstZW5naW5lcy0yLjIwLjIvdGVzdC9NYWtlZmlsZS5hbQkyMDEwLTA5LTE5IDE4OjE4OjIxLjAwMDAwMDAwMCArMDMwMAotKysrIGd0ay1lbmdpbmVzLTIuMjAuMi90ZXN0L01ha2VmaWxlLmFtCTIwMTMtMDgtMjAgMDI6NTA6MzYuODQyNTEwODY1ICswMzAwCi1AQCAtNjYsNyArNjYsNyBAQAotICMgUHJlZml4IHdpdGggZXhwb3J0ZWRfCi0gRVhQT1JURURfU1lNQk9MU19URVNUUyA9ICQocGF0c3Vic3QgJSxleHBvcnRlZF8lLCQoQlVJTERfRU5HSU5FUykpCi0KLS1URVNUUyArPSAkKEVYUE9SVEVEX1NZTUJPTFNfVEVTVFMpCi0rVEVTVFMgKz0gQGV4cG9ydGVkX3N5bWJvbHNfdGVzdHNACi0KLQotICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLUBAIC04OCw3ICs4OCw3IEBACi0gVE9SVFVSRV9URVNUX1RFU1RTID0gdG9ydHVyZV9idWlsZGluICQocGF0c3Vic3QgJSx0b3J0dXJlXyUsJChUT1JUVVJFX1RFU1RfRU5HSU5FUykpCi0KLSAjIEFkZCBUT1JUVVJFX1RFU1RfRU5HSU5FUyB0byBsaXN0IG9mIHRlc3RzCi0tVEVTVFMgKz0gJChUT1JUVVJFX1RFU1RfVEVTVFMpCi0rVEVTVFMgKz0gQHRvcnR1cmVfdGVzdF90ZXN0c0AKLQotICMgUG9zc2libGUgb3RoZXIgdGVzdHM6Ci0gIyAgLSBBbiBleHRlbnNpdmUgdGhlbWUgc3dpdGNoIHRlc3RzIHRoYXQgbG9hZHMvdW5sb2FkcyB0aGUgZW5naW5lCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGstZW5naW5lcy9ndGstZW5naW5lc18yLjIwLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGstZW5naW5lcy9ndGstZW5naW5lc18yLjIwLjIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzYWE3NDkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3RrLWVuZ2luZXMvZ3RrLWVuZ2luZXNfMi4yMC4yLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotU1VNTUFSWSA9ICJHVEsrIHRoZW1lIGVuZ2luZXMiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3Lmdub21lLm9yZy8iCi1CVUdUUkFDS0VSID0gImh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLyIKLQotTElDRU5TRSA9ICJMR1BMdjIuMSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTJkNTAyNWQ0YWEzNDk1YmVmZWY4ZjE3MjA2YTViMGExIgotCi1TRUNUSU9OID0gIngxMS9iYXNlIgotREVQRU5EUyA9ICJpbnRsdG9vbC1uYXRpdmUgZ3RrKyBnZXR0ZXh0LW5hdGl2ZSBnbGliLTIuMC1uYXRpdmUiCi0KLVBSID0gInIzIgotCi1QQUNLQUdFUyArPSAiJHtQTn0tc2NoZW1hcyIKLVBBQ0tBR0VTX0RZTkFNSUMgKz0gIl5ndGstZW5naW5lLS4qIF5ndGstdGhlbWUtLioiCi0KLVJERVBFTkRTX2d0ay10aGVtZS1yZWRtb25kID0gImd0ay1lbmdpbmUtcmVkbW9uZDk1IgotUkRFUEVORFNfZ3RrLXRoZW1lLW1ldGFsID0gImd0ay1lbmdpbmUtbWV0YWwiCi1SREVQRU5EU19ndGstdGhlbWUtbWlzdCA9ICJndGstZW5naW5lLW1pc3QiCi1SREVQRU5EU19ndGstdGhlbWUtY3J1eCA9ICJndGstZW5naW5lLWNydXgtZW5naW5lIgotUkRFUEVORFNfZ3RrLXRoZW1lLWxpZ2h0aG91c2VibHVlID0gImd0ay1lbmdpbmUtbGlnaHRob3VzZWJsdWUiCi1SREVQRU5EU19ndGstdGhlbWUtdGhpbmljZSA9ICJndGstZW5naW5lLXRoaW5pY2UiCi1SREVQRU5EU19ndGstdGhlbWUtaW5kdXN0cmlhbCA9ICJndGstZW5naW5lLWluZHVzdHJpYWwiCi1SREVQRU5EU19ndGstdGhlbWUtY2xlYXJsb29rcyA9ICJndGstZW5naW5lLWNsZWFybG9va3MiCi0KLUZJTEVTXyR7UE59ID0gIiIKLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2d0ay0yLjAvKi9lbmdpbmVzLyoubGEiCi1GSUxFU18ke1BOfS1zY2hlbWFzID0gIiR7ZGF0YWRpcn0vZ3RrLWVuZ2luZXMvKi54bWwiCi0KLUNGTEFHU19wcmVwZW5kID0gIi1ESEFWRV9BTklNQVRJT04gIgotCi1SREVQRU5EU18ke1BOfS1kZXYgPSAiIgotCi1pbmhlcml0IGdub21lYmFzZQotR05PTUVfQ09NUFJFU1NfVFlQRT0iYnoyIgotCi1pbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjawotQU5ZX09GX0RJU1RST19GRUFUVVJFUyA9ICIke0dUSzJESVNUUk9GRUFUVVJFU30iCi0KLSMgVGhpcyBwaWNrcyBzdGFibGUgcmVsZWFzZXMgaW4gdGhlIDIueCBzZXJpZXMgKGJ1dCBub3QgMi45MCBvbndhcmRzLAotIyB3aGljaCB3ZXJlIEdOT01FIDMgYmV0YXMpLgotVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPSAiKD9QPHB2ZXI+MlwuKFswLThdKlswMjQ2OF0pKyhcLlxkKykrKSIKLQotcHl0aG9uIHBvcHVsYXRlX3BhY2thZ2VzX3ByZXBlbmQoKSB7Ci0gICAgZW5naW5lc19yb290ID0gb3MucGF0aC5qb2luKGQuZ2V0VmFyKCdsaWJkaXInKSwgImd0ay0yLjAvMi4xMC4wL2VuZ2luZXMiKQotICAgIHRoZW1lc19yb290ID0gb3MucGF0aC5qb2luKGQuZ2V0VmFyKCdkYXRhZGlyJyksICJ0aGVtZXMiKQotCi0gICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgZW5naW5lc19yb290LCAnXmxpYiguKilcLnNvJCcsICdndGstZW5naW5lLSVzJywgJ0dUSyAlcyB0aGVtZSBlbmdpbmUnLCBleHRyYV9kZXBlbmRzPScnKQotICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIHRoZW1lc19yb290LCAnKC4qKScsICdndGstdGhlbWUtJXMnLCAnR1RLIHRoZW1lICVzJywgYWxsb3dfZGlycz1UcnVlLCBleHRyYV9kZXBlbmRzPScnKQotICAgICMgVE9ETzogbWFyayB0aGVtZSBwYWNrYWdlcyBhcyBhcmNoIGFsbAotfQotCi1TUkNfVVJJICs9ICJmaWxlOi8vZ2xpYi0yLjMyLnBhdGNoIFwKLSAgICAgICAgICAgIGZpbGU6Ly9zdWJzdGl0dXRlLXRlc3RzLnBhdGNoIgotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiNWRlYjI4N2JjNjA3NWRjMjE4MTIxMzA2MDRjN2RjNGYiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICIxNWI2ODBhYmNhNmM3NzNlY2I4NTI1MzUyMWZhMTAwZGQzYjg1NDliZWZlZWNjNzU5NWIxMDIwOWQ2MmQ2NmI1IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3Rrc291cmNldmlldy9ndGtzb3VyY2V2aWV3LWNsYXNzaWMtbGlnaHQvY2xhc3NpYy1saWdodC54bWwgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGtzb3VyY2V2aWV3L2d0a3NvdXJjZXZpZXctY2xhc3NpYy1saWdodC9jbGFzc2ljLWxpZ2h0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2I0YjlhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3Rrc291cmNldmlldy9ndGtzb3VyY2V2aWV3LWNsYXNzaWMtbGlnaHQvY2xhc3NpYy1saWdodC54bWwKQEAgLTAsMCArMSwxMzEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCisKKyBCYXNlZCBvbiBndGtzb3VyY2V2aWV3ICdjbGFzc2ljJworIAorIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEd0a1NvdXJjZVZpZXcKKworIENvcHlyaWdodCAoQykgMjAwNi0yMDA3IEd0a1NvdXJjZVZpZXcgdGVhbQorIEF1dGhvcjogWWV2Z2VuIE11bnR5YW4gPG11bnR5YW5AdGFtdS5lZHU+CisKKyBHdGtTb3VyY2VWaWV3IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworIEd0a1NvdXJjZVZpZXcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKworLS0+Cis8c3R5bGUtc2NoZW1lIGlkPSJjbGFzc2ljLWxpZ2h0IiBfbmFtZT0iQ2xhc3NpYy1MaWdodCIgdmVyc2lvbj0iMS4wIj4KKyAgPGF1dGhvcj5HdGtTb3VyY2VWaWV3IHRlYW08L2F1dGhvcj4KKyAgPF9kZXNjcmlwdGlvbj5DbGFzc2ljIGNvbG9yIHNjaGVtZSBsaWdodDwvX2Rlc2NyaXB0aW9uPgorCisgIDwhLS0gVGhlIHNjaGVtZSB0cmllcyB0byBsb29rIGxpa2UgdGhlIGRlZmF1bHQgR1ZpbSBzY2hlbWUsCisgICAgICAgc2luY2UgaXQgaXMgYWxzbyB3aGF0IHRoZSBoYXJkd2lyZWQgR3RrU291cmNlVmlldyAxIGNvbG9yCisgICAgICAgc2NoZW1lIGRpZCAtLT4KKworICA8IS0tIFBhbGV0dGUgLS0+CisgIDxjb2xvciBuYW1lPSJibGFjayIgICAgICB2YWx1ZT0iIzAwMDAwMCIvPgorICA8Y29sb3IgbmFtZT0id2hpdGUiICAgICAgdmFsdWU9IiNGRkZGRkYiLz4KKyAgPGNvbG9yIG5hbWU9ImJsdWUiICAgICAgIHZhbHVlPSIjMDAwMEZGIi8+CisgIDxjb2xvciBuYW1lPSJtYWdlbnRhIiAgICB2YWx1ZT0iI0ZGMDBGRiIvPgorICA8Y29sb3IgbmFtZT0idmlvbGV0IiAgICAgdmFsdWU9IiM2QTVBQ0QiLz4KKyAgPGNvbG9yIG5hbWU9ImN5YW4iICAgICAgIHZhbHVlPSIjMDA4QThDIi8+CisgIDxjb2xvciBuYW1lPSJncmF5IiAgICAgICB2YWx1ZT0iI0JFQkVCRSIvPgorICA8Y29sb3IgbmFtZT0ibGlnaHRncmF5IiAgdmFsdWU9IiNFMEUwRTAiLz4KKyAgPGNvbG9yIG5hbWU9ImdyZWVuIiAgICAgIHZhbHVlPSIjMkU4QjU3Ii8+CisgIDxjb2xvciBuYW1lPSJib3JkZWF1eCIgICB2YWx1ZT0iI0E1MkEyQSIvPgorICA8Y29sb3IgbmFtZT0icmVkIiAgICAgICAgdmFsdWU9IiNGRjAwMDAiLz4KKyAgPGNvbG9yIG5hbWU9InllbGxvdyIgICAgIHZhbHVlPSIjRkZGRjAwIi8+CisgIDxjb2xvciBuYW1lPSJwdXJwbGUiICAgICB2YWx1ZT0iI0EwMjBGMCIvPgorCisgIDwhLS0gR2xvYmFsIFNldHRpbmdzIC0tPgorICA8c3R5bGUgbmFtZT0iY3VycmVudC1saW5lIiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPSIjZWVlZWVjIi8+CisgIDxzdHlsZSBuYW1lPSJjdXJyZW50LWxpbmUtbnVtYmVyIiAgICAgICAgIGJhY2tncm91bmQ9IiNlZWVlZWMiLz4KKyAgPHN0eWxlIG5hbWU9ImRyYXctc3BhY2VzIiAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZD0iI2JhYmRiNiIvPgorICA8c3R5bGUgbmFtZT0iYmFja2dyb3VuZC1wYXR0ZXJuIiAgICAgICAgICBiYWNrZ3JvdW5kPSIjZjNmM2YzIi8+CisgIDxzdHlsZSBuYW1lPSJ0ZXh0IiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmQ9ImJsYWNrIiBiYWNrZ3JvdW5kPSJ3aGl0ZSIvPgorICA8c3R5bGUgbmFtZT0ic2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPSJncmF5Ii8+CisgIDxzdHlsZSBuYW1lPSJjdXJzb3IiICAgICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmQ9ImJsYWNrIi8+CisgIDxzdHlsZSBuYW1lPSJsaW5lLW51bWJlcnMiICAgICAgICAgICAgICAgIGZvcmVncm91bmQ9ImJsYWNrIiBiYWNrZ3JvdW5kPSJncmF5Ii8+CisKKyAgPCEtLSBCcmFja2V0IE1hdGNoaW5nIC0tPgorICA8c3R5bGUgbmFtZT0iYnJhY2tldC1tYXRjaCIgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSJ3aGl0ZSIgYmFja2dyb3VuZD0iZ3JheSIvPgorICA8c3R5bGUgbmFtZT0iYnJhY2tldC1taXNtYXRjaCIgICAgICAgICAgICBmb3JlZ3JvdW5kPSJ3aGl0ZSIgYmFja2dyb3VuZD0icmVkIi8+CisKKyAgPCEtLSBSaWdodCBNYXJnaW4gLS0+CisgIDxzdHlsZSBuYW1lPSJyaWdodC1tYXJnaW4iICAgICAgICAgICAgICAgIGZvcmVncm91bmQ9IiMwMDAwMDAiIGJhY2tncm91bmQ9IiMwMDAwMDAiLz4KKworICA8IS0tIFNlYXJjaCBNYXRjaGluZyAtLT4KKyAgPHN0eWxlIG5hbWU9InNlYXJjaC1tYXRjaCIgICAgICAgICAgICAgICAgYmFja2dyb3VuZD0ieWVsbG93Ii8+CisKKyAgPCEtLSBDb21tZW50cyAtLT4KKyAgPHN0eWxlIG5hbWU9ImRlZjpjb21tZW50IiAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZD0iYmx1ZSIvPgorICA8c3R5bGUgbmFtZT0iZGVmOnNoZWJhbmciICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSJibHVlIiBib2xkPSJ0cnVlIi8+CisgIDxzdHlsZSBuYW1lPSJkZWY6ZG9jLWNvbW1lbnQtZWxlbWVudCIgICAgIGl0YWxpYz0idHJ1ZSIvPgorCisgIDwhLS0gQ29uc3RhbnRzIC0tPgorICA8c3R5bGUgbmFtZT0iZGVmOmNvbnN0YW50IiAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSJtYWdlbnRhIi8+CisgIDxzdHlsZSBuYW1lPSJkZWY6c3BlY2lhbC1jaGFyIiAgICAgICAgICAgIGZvcmVncm91bmQ9InZpb2xldCIvPgorCisgIDwhLS0gSWRlbnRpZmllcnMgLS0+CisgIDxzdHlsZSBuYW1lPSJkZWY6aWRlbnRpZmllciIgICAgICAgICAgICAgIGZvcmVncm91bmQ9ImN5YW4iLz4KKworICA8IS0tIFN0YXRlbWVudHMgLS0+CisgIDxzdHlsZSBuYW1lPSJkZWY6c3RhdGVtZW50IiAgICAgICAgICAgICAgIGZvcmVncm91bmQ9ImJvcmRlYXV4IiBib2xkPSJ0cnVlIi8+CisKKyAgPCEtLSBUeXBlcyAtLT4KKyAgPHN0eWxlIG5hbWU9ImRlZjp0eXBlIiAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZD0iZ3JlZW4iIGJvbGQ9InRydWUiLz4KKworICA8IS0tIE90aGVycyAtLT4KKyAgPHN0eWxlIG5hbWU9ImRlZjpwcmVwcm9jZXNzb3IiICAgICAgICAgICAgZm9yZWdyb3VuZD0icHVycGxlIi8+CisgIDxzdHlsZSBuYW1lPSJkZWY6ZXJyb3IiICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9InJlZCIgYm9sZD0idHJ1ZSIvPgorICA8c3R5bGUgbmFtZT0iZGVmOndhcm5pbmciICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPSJ5ZWxsb3ciLz4KKyAgPHN0eWxlIG5hbWU9ImRlZjpub3RlIiAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZD0iYmx1ZSIgYmFja2dyb3VuZD0ieWVsbG93IiBib2xkPSJ0cnVlIi8+CisgIDxzdHlsZSBuYW1lPSJkZWY6dW5kZXJsaW5lZCIgICAgICAgICAgICAgIGl0YWxpYz0idHJ1ZSIgdW5kZXJsaW5lPSJzaW5nbGUiLz4KKworICA8IS0tIEhlYWRpbmcgc3R5bGVzLCB1bmNvbW1lbnQgdG8gZW5hYmxlIC0tPgorICA8IS0tCisgIDxzdHlsZSBuYW1lPSJkZWY6aGVhZGluZzAiICAgICAgICAgICAgICAgIHNjYWxlPSI1LjAiLz4KKyAgPHN0eWxlIG5hbWU9ImRlZjpoZWFkaW5nMSIgICAgICAgICAgICAgICAgc2NhbGU9IjIuNSIvPgorICA8c3R5bGUgbmFtZT0iZGVmOmhlYWRpbmcyIiAgICAgICAgICAgICAgICBzY2FsZT0iMi4wIi8+CisgIDxzdHlsZSBuYW1lPSJkZWY6aGVhZGluZzMiICAgICAgICAgICAgICAgIHNjYWxlPSIxLjciLz4KKyAgPHN0eWxlIG5hbWU9ImRlZjpoZWFkaW5nNCIgICAgICAgICAgICAgICAgc2NhbGU9IjEuNSIvPgorICA8c3R5bGUgbmFtZT0iZGVmOmhlYWRpbmc1IiAgICAgICAgICAgICAgICBzY2FsZT0iMS4zIi8+CisgIDxzdHlsZSBuYW1lPSJkZWY6aGVhZGluZzYiICAgICAgICAgICAgICAgIHNjYWxlPSIxLjIiLz4KKyAgLS0+CisKKyAgPCEtLSBMYW5ndWFnZSBzcGVjaWZpYyBzdHlsZXMgLS0+CisgIDxzdHlsZSBuYW1lPSJkaWZmOmFkZGVkLWxpbmUiICAgICAgICAgICAgIGZvcmVncm91bmQ9IiMwMDhCOEIiLz4KKyAgPHN0eWxlIG5hbWU9ImRpZmY6cmVtb3ZlZC1saW5lIiAgICAgICAgICAgZm9yZWdyb3VuZD0iIzZBNUFDRCIvPgorICA8c3R5bGUgbmFtZT0iZGlmZjpjaGFuZ2VkLWxpbmUiICAgICAgICAgICB1c2Utc3R5bGU9ImRlZjpwcmVwcm9jZXNzb3IiLz4KKyAgPHN0eWxlIG5hbWU9ImRpZmY6c3BlY2lhbC1jYXNlIiAgICAgICAgICAgdXNlLXN0eWxlPSJkZWY6Y29uc3RhbnQiLz4KKyAgPHN0eWxlIG5hbWU9ImRpZmY6bG9jYXRpb24iICAgICAgICAgICAgICAgdXNlLXN0eWxlPSJkZWY6c3RhdGVtZW50Ii8+CisgIDxzdHlsZSBuYW1lPSJkaWZmOmRpZmYtZmlsZSIgICAgICAgICAgICAgIHVzZS1zdHlsZT0iZGVmOnR5cGUiLz4KKworICA8c3R5bGUgbmFtZT0ieG1sOnRhZ3MiICAgICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSJjeWFuIi8+CisgIDxzdHlsZSBuYW1lPSJ4bWw6YXR0cmlidXRlLW5hbWUiICAgICAgICAgIGZvcmVncm91bmQ9InZpb2xldCIvPgorICA8c3R5bGUgbmFtZT0ieG1sOm5hbWVzcGFjZSIgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSJncmVlbiIgYm9sZD0idHJ1ZSIvPgorCisgIDxzdHlsZSBuYW1lPSJqczpvYmplY3QiICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmQ9IiMyRThCNTciIGJvbGQ9InRydWUiLz4KKyAgPHN0eWxlIG5hbWU9ImpzOmNvbnN0cnVjdG9ycyIgICAgICAgICAgICAgZm9yZWdyb3VuZD0iIzAwOEI4QiIvPgorCisgIDxzdHlsZSBuYW1lPSJsYXRleDpkaXNwbGF5LW1hdGgiICAgICAgICAgIGZvcmVncm91bmQ9IiM2QTVBQ0QiLz4KKyAgPHN0eWxlIG5hbWU9ImxhdGV4OmNvbW1hbmQiICAgICAgICAgICAgICAgZm9yZWdyb3VuZD0iIzJFOEI1NyIgYm9sZD0idHJ1ZSIvPgorICA8c3R5bGUgbmFtZT0ibGF0ZXg6aW5jbHVkZSIgICAgICAgICAgICAgICB1c2Utc3R5bGU9ImRlZjpwcmVwcm9jZXNzb3IiLz4KKworICA8c3R5bGUgbmFtZT0ic2g6dmFyaWFibGUiICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSIjNkE1QUNEIi8+CisKKyAgPCEtLSBsZWdhY3kgc3R5bGVzIGZvciBvbGQgbGFuZyBmaWxlcyAtLT4KKyAgPHN0eWxlIG5hbWU9Ik90aGVycyIgICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZD0iIzJFOEI1NyIgYm9sZD0idHJ1ZSIvPgorICA8c3R5bGUgbmFtZT0iT3RoZXJzIDIiICAgICAgICAgICAgICAgICAgICBmb3JlZ3JvdW5kPSIjMDA4QjhCIi8+CisgIDxzdHlsZSBuYW1lPSJPdGhlcnMgMyIgICAgICAgICAgICAgICAgICAgIGZvcmVncm91bmQ9IiM2QTVBQ0QiLz4KKworPC9zdHlsZS1zY2hlbWU+CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGtzb3VyY2V2aWV3L2d0a3NvdXJjZXZpZXctY2xhc3NpYy1saWdodF8xLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGtzb3VyY2V2aWV3L2d0a3NvdXJjZXZpZXctY2xhc3NpYy1saWdodF8xLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdkYzBmOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d0a3NvdXJjZXZpZXcvZ3Rrc291cmNldmlldy1jbGFzc2ljLWxpZ2h0XzEuMC5iYgpAQCAtMCwwICsxLDIxIEBACitERVNDUklQVElPTiA9ICJHdGtzb3VyY2V2aWV3IENsYXNzaWMtTGlnaHQgdGhlbWUiCitMSUNFTlNFID0gIkxHUEx2Mi4xIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vY2xhc3NpYy1saWdodC54bWw7YmVnaW5saW5lPTY7ZW5kbGluZT0yMzttZDU9MmI0Zjc1MzY0ZmFkMDBhNGQ3NTIyMTRkY2JkN2Q3YzMiCisKK2luaGVyaXQgYWxsYXJjaAorCitTUkNfVVJJID0gImZpbGU6Ly9jbGFzc2ljLWxpZ2h0LnhtbCIKKworUyA9ICIke1dPUktESVJ9IgorCitkb19pbnN0YWxsKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vZ3Rrc291cmNldmlldy0yLjAvc3R5bGVzCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vY2xhc3NpYy1saWdodC54bWwgJHtEfSR7ZGF0YWRpcn0vZ3Rrc291cmNldmlldy0yLjAvc3R5bGVzLworICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vZ3Rrc291cmNldmlldy0zLjAvc3R5bGVzCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vY2xhc3NpYy1saWdodC54bWwgJHtEfSR7ZGF0YWRpcn0vZ3Rrc291cmNldmlldy0zLjAvc3R5bGVzLworfQorCitGSUxFU18ke1BOfSA9ICIgXAorICAgICR7ZGF0YWRpcn0vZ3Rrc291cmNldmlldy0yLjAvc3R5bGVzIFwKKyAgICAke2RhdGFkaXJ9L2d0a3NvdXJjZXZpZXctMy4wL3N0eWxlcyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGtzb3VyY2V2aWV3L2d0a3NvdXJjZXZpZXczXzMuMjQuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d0a3NvdXJjZXZpZXcvZ3Rrc291cmNldmlldzNfMy4yNC42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3ZTQ4ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9ndGtzb3VyY2V2aWV3L2d0a3NvdXJjZXZpZXczXzMuMjQuNi5iYgpAQCAtMCwwICsxLDIxIEBACitTVU1NQVJZID0gIlBvcnRhYmxlIEMgbGlicmFyeSBmb3IgbXVsdGlsaW5lIHRleHQgZWRpdGluZyIKK0hPTUVQQUdFID0gImh0dHA6Ly9wcm9qZWN0cy5nbm9tZS5vcmcvZ3Rrc291cmNldmlldy8iCisKK0xJQ0VOU0UgPSAiTEdQTHYyLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1mYmMwOTM5MDE4NTdmY2QxMThmMDY1ZjkwMDk4MmMyNCIKKworREVQRU5EUyA9ICJndGsrMyBsaWJ4bWwyIGludGx0b29sLW5hdGl2ZSBnbm9tZS1jb21tb24tbmF0aXZlIGdsaWItMi4wLW5hdGl2ZSIKKworUE5BTUUgPSAiZ3Rrc291cmNldmlldyIKKworUyA9ICIke1dPUktESVJ9LyR7UE5BTUV9LSR7UFZ9IgorCitpbmhlcml0IGdub21lYmFzZSBsaWJfcGFja2FnZSBnZXR0ZXh0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBndGstZG9jIGdvYmplY3QtaW50cm9zcGVjdGlvbgorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJID0gImh0dHA6Ly9mdHAuZ25vbWUub3JnL3B1Yi9nbm9tZS9zb3VyY2VzL2d0a3NvdXJjZXZpZXcvMy4yNC8ke1BOQU1FfS0ke1BWfS50YXIueHoiCitTUkNfVVJJW21kNXN1bV0gPSAiYzA5Y2NmYzgwZjc4MDgzODQxZjhmZTI2NmMxYWM1MmEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiN2FhNmJkZmViY2RjNzNhNzYzZGRkZWFhNDJmMTkwYzQwODM1ZTZmODQ5NWJiOWViOGY3ODU4N2UyNTc3YzE4OCIKKworRklMRVNfJHtQTn0gKz0gIiAke2RhdGFkaXJ9L2d0a3NvdXJjZXZpZXctMy4wIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3Zmcy9ndmZzXzEuMzIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d2ZnMvZ3Zmc18xLjMyLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzODA2ODguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3Zmcy9ndmZzXzEuMzIuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLURFU0NSSVBUSU9OID0gImd2ZnMgaXMgYSB1c2Vyc3BhY2UgdmlydHVhbCBmaWxlc3lzdGVtIgotTElDRU5TRSA9ICJMR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0wNWRmMzhkZDc3YzM1ZWM4NDMxZjIxMjQxMGEzMzI5ZSIKLQotaW5oZXJpdCBnbm9tZSBiYXNoLWNvbXBsZXRpb24gZ2V0dGV4dAotCi1ERVBFTkRTICs9ICJsaWJzZWNyZXQgZ2xpYi0yLjAgZ2NvbmYgaW50bHRvb2wtbmF0aXZlIGxpYmd1ZGV2IHVkaXNrczIgcG9sa2l0IHNoYWRvdy1uYXRpdmUiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9kb3dubG9hZC5nbm9tZS5vcmcvc291cmNlcy8ke0JQTn0vJHtAZ25vbWVfdmVyZGlyKCIke1BWfSIpfS8ke0JQTn0tJHtQVn0udGFyLnh6O25hbWU9YXJjaGl2ZSIKLQotU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiY2JlNzY2YjQ2ZjMyNGUxN2Q3YWJjZmI0YTg5YTE2ODQiCi1TUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICJkMGI2YzllZGFiMDlkNTI0NzIzNTU2NTdhMmYwYTE0ODMxYjJlNmM1OGNhYmEzOTVmNzIxYWI2ODNmODM2YWRlIgotCi1FWFRSQV9PRUNPTkYgPSAiIFwKLSAgICAtLWRpc2FibGUtZ2R1IFwKLSAgICAtLWVuYWJsZS11ZGlza3MyIFwKLSAgICAtLWRpc2FibGUtZG9jdW1lbnRhdGlvbiBcCi0gICAgLS13aXRoLWFyY2hpdmUtaW5jbHVkZXM9JHtTVEFHSU5HX0lOQ0RJUn0gXAotICAgIC0td2l0aC1hcmNoaXZlLWxpYnM9JHtTVEFHSU5HX0xJQkRJUn0gXAotIgotCi1QQUNLQUdFUyA9KyAiZ3Zmc2QtZnRwIGd2ZnNkLXNmdHAgZ3Zmc2QtdHJhc2giCi0KLUZJTEVTXyR7UE59ICs9ICIgXAotICAgICR7ZGF0YWRpcn0vZ2xpYi0yLjAgXAotICAgICR7ZGF0YWRpcn0vR0NvbmYgXAotICAgICR7ZGF0YWRpcn0vZGJ1cy0xL3NlcnZpY2VzIFwKLSAgICAke2xpYmRpcn0vZ2lvL21vZHVsZXMvKi5zbyBcCi0gICAgJHtsaWJkaXJ9L3RtcGZpbGVzLmQgXAotICAgICR7c3lzdGVtZF91c2VyX3VuaXRkaXJ9IFwKLSIKLVJERVBFTkRTXyR7UE59ID0gInVkaXNrczIiCi0KLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2dpby9tb2R1bGVzLy5kZWJ1Zy8qIgotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vZ2lvL21vZHVsZXMvKi5sYSIKLQotRklMRVNfZ3Zmc2QtZnRwID0gIiR7bGliZXhlY2Rpcn0vZ3Zmc2QtZnRwICR7ZGF0YWRpcn0vZ3Zmcy9tb3VudHMvZnRwLm1vdW50IgotRklMRVNfZ3Zmc2Qtc2Z0cCA9ICIke2xpYmV4ZWNkaXJ9L2d2ZnNkLXNmdHAgJHtkYXRhZGlyfS9ndmZzL21vdW50cy9zZnRwLm1vdW50IgotRklMRVNfZ3Zmc2QtdHJhc2ggPSAiJHtsaWJleGVjZGlyfS9ndmZzZC10cmFzaCAke2RhdGFkaXJ9L2d2ZnMvbW91bnRzL3RyYXNoLm1vdW50IgotCi1SUkVDT01NRU5EU19ndmZzZC1mdHAgKz0gIm9wZW5zc2gtc2Z0cCBvcGVuc3NoLXNzaCIKLQotUEFDS0FHRUNPTkZJRyA/PSAibGliZ3Bob3RvMiAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgZCl9IgotCi1QQUNLQUdFQ09ORklHW2FmY10gPSAiLS1lbmFibGUtYWZjLCAtLWRpc2FibGUtYWZjLCBsaWJpbW9iaWxlZGV2aWNlIGxpYnBsaXN0IgotUEFDS0FHRUNPTkZJR1thcmNoaXZlXSA9ICItLWVuYWJsZS1hcmNoaXZlLCAtLWRpc2FibGUtYXJjaGl2ZSwgbGliYXJjaGl2ZSIKLVBBQ0tBR0VDT05GSUdbYXZhaGldID0gIi0tZW5hYmxlLWF2YWhpLCAtLWRpc2FibGUtYXZhaGksIGF2YWhpIgotUEFDS0FHRUNPTkZJR1tnY3JdID0gIi0tZW5hYmxlLWdjciwgLS1kaXNhYmxlLWdjciwgZ2NyIgotUEFDS0FHRUNPTkZJR1tndGtdID0gIi0tZW5hYmxlLWd0aywgLS1kaXNhYmxlLWd0aywgZ3RrKzMiCi1QQUNLQUdFQ09ORklHW2h0dHBdID0gIi0tZW5hYmxlLWh0dHAsIC0tZGlzYWJsZS1odHRwLCBsaWJzb3VwLTIuNCIKLVBBQ0tBR0VDT05GSUdbbGlibXRwXSA9ICItLWVuYWJsZS1saWJtdHAsIC0tZGlzYWJsZS1saWJtdHAsIGxpYm10cCIKLVBBQ0tBR0VDT05GSUdbbGliZ3Bob3RvMl0gPSAiLS1lbmFibGUtZ3Bob3RvMiwgLS1kaXNhYmxlLWdwaG90bzIsIGxpYmdwaG90bzIiCi1QQUNLQUdFQ09ORklHW3NhbWJhXSA9ICItLWVuYWJsZS1zYW1iYSwgLS1kaXNhYmxlLXNhbWJhLCBzYW1iYSIKLVBBQ0tBR0VDT05GSUdbc3lzdGVtZF0gPSAiLS13aXRoLXN5c3RlbWR1c2VydW5pdGRpcj0ke3N5c3RlbWRfdXNlcl91bml0ZGlyfSwtLXdpdGhvdXQtc3lzdGVtZHVzZXJ1bml0ZGlyLHN5c3RlbWQiCi0KLSMgbmVlZHMgbWV0YS1maWxlc3lzdGVtcwotUEFDS0FHRUNPTkZJR1tmdXNlXSA9ICItLWVuYWJsZS1mdXNlLCAtLWRpc2FibGUtZnVzZSwgZnVzZSIKLQotIyBsaWJjZGlvLXBhcmFub2lhIHJlY2lwZSBkb2Vzbid0IGV4aXN0IHlldAotUEFDS0FHRUNPTkZJR1tjZGRhXSA9ICItLWVuYWJsZS1jZGRhLCAtLWRpc2FibGUtY2RkYSwgbGliY2Rpby1wYXJhbm9pYSIKLQotIyBGaXggdXAgcGVybWlzc2lvbnMgb24gcG9sa2l0IHJ1bGVzLmQgdG8gd29yayB3aXRoIHJwbTQgY29uc3RyYWludHMKLWRvX2luc3RhbGxfYXBwZW5kKCkgewotCWNobW9kIDcwMCAke0R9LyR7ZGF0YWRpcn0vcG9sa2l0LTEvcnVsZXMuZAotCWNob3duIHBvbGtpdGQ6cm9vdCAke0R9LyR7ZGF0YWRpcn0vcG9sa2l0LTEvcnVsZXMuZAotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvZ3Zmcy9ndmZzXzEuMzYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d2ZnMvZ3Zmc18xLjM2LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY3MzkxMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2d2ZnMvZ3Zmc18xLjM2LjAuYmIKQEAgLTAsMCArMSw2OCBAQAorREVTQ1JJUFRJT04gPSAiZ3ZmcyBpcyBhIHVzZXJzcGFjZSB2aXJ0dWFsIGZpbGVzeXN0ZW0iCitMSUNFTlNFID0gIkxHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTA1ZGYzOGRkNzdjMzVlYzg0MzFmMjEyNDEwYTMzMjllIgorCitpbmhlcml0IGdub21lIGJhc2gtY29tcGxldGlvbiBnZXR0ZXh0CisKK0RFUEVORFMgKz0gImxpYnNlY3JldCBnbGliLTIuMCBnY29uZiBpbnRsdG9vbC1uYXRpdmUgbGliZ3VkZXYgdWRpc2tzMiBwb2xraXQgc2hhZG93LW5hdGl2ZSIKKworU1JDX1VSSSA9ICJodHRwczovL2Rvd25sb2FkLmdub21lLm9yZy9zb3VyY2VzLyR7QlBOfS8ke0Bnbm9tZV92ZXJkaXIoIiR7UFZ9Iil9LyR7QlBOfS0ke1BWfS50YXIueHo7bmFtZT1hcmNoaXZlIgorCitTUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICIyMTZkNDYxYzVlOTZlMmNlYTc0MjUzYmU0MDdhZjZkYyIKK1NSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjllYzM4OGFmZWIzNzNhMjEzZjJjYzQ4OTE4NGY3NmExN2FlMjczYTAwMGU4YTRlYzcyMGMxOTk1OTQzMjU2YmIiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgeworICAgICMgbWFrZSBhdXRvbWFrZSBoYXBweS4uCisgICAgdG91Y2ggJHtTfS9BQk9VVC1OTFMKK30KKworRVhUUkFfT0VDT05GID0gIiBcCisgICAgLS1kaXNhYmxlLWdkdSBcCisgICAgLS1lbmFibGUtdWRpc2tzMiBcCisgICAgLS1kaXNhYmxlLWRvY3VtZW50YXRpb24gXAorIgorCitQQUNLQUdFUyA9KyAiZ3Zmc2QtZnRwIGd2ZnNkLXNmdHAgZ3Zmc2QtdHJhc2giCisKK0ZJTEVTXyR7UE59ICs9ICIgXAorICAgICR7ZGF0YWRpcn0vZ2xpYi0yLjAgXAorICAgICR7ZGF0YWRpcn0vR0NvbmYgXAorICAgICR7ZGF0YWRpcn0vZGJ1cy0xL3NlcnZpY2VzIFwKKyAgICAke2xpYmRpcn0vZ2lvL21vZHVsZXMvKi5zbyBcCisgICAgJHtsaWJkaXJ9L3RtcGZpbGVzLmQgXAorICAgICR7c3lzdGVtZF91c2VyX3VuaXRkaXJ9IFwKKyIKK1JERVBFTkRTXyR7UE59ID0gInVkaXNrczIiCisKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2dpby9tb2R1bGVzLy5kZWJ1Zy8qIgorRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vZ2lvL21vZHVsZXMvKi5sYSIKKworRklMRVNfZ3Zmc2QtZnRwID0gIiR7bGliZXhlY2Rpcn0vZ3Zmc2QtZnRwICR7ZGF0YWRpcn0vZ3Zmcy9tb3VudHMvZnRwLm1vdW50IgorRklMRVNfZ3Zmc2Qtc2Z0cCA9ICIke2xpYmV4ZWNkaXJ9L2d2ZnNkLXNmdHAgJHtkYXRhZGlyfS9ndmZzL21vdW50cy9zZnRwLm1vdW50IgorRklMRVNfZ3Zmc2QtdHJhc2ggPSAiJHtsaWJleGVjZGlyfS9ndmZzZC10cmFzaCAke2RhdGFkaXJ9L2d2ZnMvbW91bnRzL3RyYXNoLm1vdW50IgorCitSUkVDT01NRU5EU19ndmZzZC1mdHAgKz0gIm9wZW5zc2gtc2Z0cCBvcGVuc3NoLXNzaCIKKworUEFDS0FHRUNPTkZJRyA/PSAibGliZ3Bob3RvMiAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgZCl9IgorCitQQUNLQUdFQ09ORklHW2FmY10gPSAiLS1lbmFibGUtYWZjLCAtLWRpc2FibGUtYWZjLCBsaWJpbW9iaWxlZGV2aWNlIGxpYnBsaXN0IgorUEFDS0FHRUNPTkZJR1thcmNoaXZlXSA9ICItLWVuYWJsZS1hcmNoaXZlLCAtLWRpc2FibGUtYXJjaGl2ZSwgbGliYXJjaGl2ZSIKK1BBQ0tBR0VDT05GSUdbYXZhaGldID0gIi0tZW5hYmxlLWF2YWhpLCAtLWRpc2FibGUtYXZhaGksIGF2YWhpIgorUEFDS0FHRUNPTkZJR1tnY3JdID0gIi0tZW5hYmxlLWdjciwgLS1kaXNhYmxlLWdjciwgZ2NyIgorUEFDS0FHRUNPTkZJR1todHRwXSA9ICItLWVuYWJsZS1odHRwLCAtLWRpc2FibGUtaHR0cCwgbGlic291cC0yLjQiCitQQUNLQUdFQ09ORklHW2xpYm10cF0gPSAiLS1lbmFibGUtbGlibXRwLCAtLWRpc2FibGUtbGlibXRwLCBsaWJtdHAiCitQQUNLQUdFQ09ORklHW2xpYmdwaG90bzJdID0gIi0tZW5hYmxlLWdwaG90bzIsIC0tZGlzYWJsZS1ncGhvdG8yLCBsaWJncGhvdG8yIgorUEFDS0FHRUNPTkZJR1tzYW1iYV0gPSAiLS1lbmFibGUtc2FtYmEsIC0tZGlzYWJsZS1zYW1iYSwgc2FtYmEiCitQQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIi0td2l0aC1zeXN0ZW1kdXNlcnVuaXRkaXI9JHtzeXN0ZW1kX3VzZXJfdW5pdGRpcn0sLS13aXRob3V0LXN5c3RlbWR1c2VydW5pdGRpcixzeXN0ZW1kIgorCisjIG5lZWRzIG1ldGEtZmlsZXN5c3RlbXMKK1BBQ0tBR0VDT05GSUdbZnVzZV0gPSAiLS1lbmFibGUtZnVzZSwgLS1kaXNhYmxlLWZ1c2UsIGZ1c2UiCisKKyMgbGliY2Rpby1wYXJhbm9pYSByZWNpcGUgZG9lc24ndCBleGlzdCB5ZXQKK1BBQ0tBR0VDT05GSUdbY2RkYV0gPSAiLS1lbmFibGUtY2RkYSwgLS1kaXNhYmxlLWNkZGEsIGxpYmNkaW8tcGFyYW5vaWEiCisKKyMgRml4IHVwIHBlcm1pc3Npb25zIG9uIHBvbGtpdCBydWxlcy5kIHRvIHdvcmsgd2l0aCBycG00IGNvbnN0cmFpbnRzCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKwljaG1vZCA3MDAgJHtEfS8ke2RhdGFkaXJ9L3BvbGtpdC0xL3J1bGVzLmQKKwljaG93biBwb2xraXRkOnJvb3QgJHtEfS8ke2RhdGFkaXJ9L3BvbGtpdC0xL3J1bGVzLmQKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdkYXRhL2xpYmdkYXRhXzAuMTYuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdkYXRhL2xpYmdkYXRhXzAuMTYuMS5iYgppbmRleCBjMjE1N2RmLi44MGNiYWUzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnZGF0YS9saWJnZGF0YV8wLjE2LjEuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ2RhdGEvbGliZ2RhdGFfMC4xNi4xLmJiCkBAIC05LDEyICs5LDE4IEBACiAKIERFUEVORFMgPSAiZ25vbWUtY29tbW9uLW5hdGl2ZSBsaWJ4bWwyIGdsaWItMi4wIGxpYnNvdXAtMi40IGludGx0b29sLW5hdGl2ZSBsaWJvYXV0aCBnY3IganNvbi1nbGliIgogCi1pbmhlcml0IGdub21lYmFzZSBwa2djb25maWcgYXV0b3Rvb2xzLWJyb2tlbnNlcCBnZXR0ZXh0IGd0ay1kb2MgdmFsYSBnb2JqZWN0LWludHJvc3BlY3Rpb24KK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGdub21lYmFzZSBwa2djb25maWcgYXV0b3Rvb2xzLWJyb2tlbnNlcCBnZXR0ZXh0IGd0ay1kb2MgdmFsYSBnb2JqZWN0LWludHJvc3BlY3Rpb24KKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogZG9fY29uZmlndXJlX3ByZXBlbmRfY2xhc3MtdGFyZ2V0ICgpIHsKICAgICAjIGludHJvc3BlY3Rpb24ubTQgcHJlLXBhY2thZ2VkIHdpdGggdXBzdHJlYW0gdGFyYmFsbHMgZG9lcyBub3QgeWV0CiAgICAgIyBoYXZlIG91ciBmaXhlcwogICAgIHJtIC1mICR7U30vaW50cm9zcGVjdGlvbi5tNAorICAgIAorICAgICMgcmVtb3ZlIHRoZSBwcmUtYnVpbHQgZ3RrLWRvYyBmaWxlcywgYXMgdGhleSdyZSBpbnN0YWxsZWQgKG9yIGF0dGVtcHRlZCB0byBiZSBpbnN0YWxsZWQpCisgICAgIyBldmVuIGlmIGd0ay1kb2MgaXMgZXhwbGljaXRseSBkaXNhYmxlZAorICAgIHJtIC1yZiAke1N9L2RvY3MvcmVmZXJlbmNlL2h0bWwKIH0KIAogZG9fY29tcGlsZV9wcmVwZW5kKCkgewpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWUvMDAwMS1saWJnbm9tZS1NYWtlZmlsZS5hbS1hbGxvdy1kZXByZWNhdGVkLXN5bWJvbHMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZS8wMDAxLWxpYmdub21lLU1ha2VmaWxlLmFtLWFsbG93LWRlcHJlY2F0ZWQtc3ltYm9scy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjY1ODMwMy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZS8wMDAxLWxpYmdub21lLU1ha2VmaWxlLmFtLWFsbG93LWRlcHJlY2F0ZWQtc3ltYm9scy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLUZyb20gY2UxY2QyMGZjZWVhN2RiY2M1Yjk4M2Q5NGRlNzcxNDYxZWNjZjdjZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IE1vbiwgMjkgQXByIDIwMTMgMTQ6MTc6MTMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gbGliZ25vbWUvTWFrZWZpbGUuYW06IGFsbG93IGRlcHJlY2F0ZWQgc3ltYm9scwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1maXhlczoKLQotfCBnbm9tZS1wcm9ncmFtLmM6IEluIGZ1bmN0aW9uICdnbm9tZV9wcm9ncmFtX2luaXRfY29tbW9uJzoKLXwgZ25vbWUtcHJvZ3JhbS5jOjIwNjc6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdnX2F0ZXhpdCcgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLQotU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotLS0tCi0gbGliZ25vbWUvTWFrZWZpbGUuYW0gfCAgICAxIC0KLSAxIGZpbGVzIGNoYW5nZWQsIDAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYmdub21lL01ha2VmaWxlLmFtIGIvbGliZ25vbWUvTWFrZWZpbGUuYW0KLWluZGV4IDljOGNkM2UuLmFhMDFmNmMgMTAwNjQ0Ci0tLS0gYS9saWJnbm9tZS9NYWtlZmlsZS5hbQotKysrIGIvbGliZ25vbWUvTWFrZWZpbGUuYW0KLUBAIC0xNyw3ICsxNyw2IEBAIElOQ0xVREVTID0gXAotIAktSSQoc3JjZGlyKS8uLgkJCQkJCVwKLSAJJChXQVJOX0NGTEFHUykJCQkJCQlcCi0gCSQoTElCR05PTUVfQ0ZMQUdTKQkJCQkJXAotLQktREdfRElTQUJMRV9ERVBSRUNBVEVECQkJCQlcCi0gCS1ETElCR05PTUVfUFJFRklYPVwiIiQocHJlZml4KSJcIgkJCVwKLSAJLURMSUJHTk9NRV9MSUJESVI9XCIiJChsaWJkaXIpIlwiCQkJXAotIAktRExJQkdOT01FX0RBVEFESVI9XCIiJChkYXRhZGlyKSJcIgkJCVwKLS0tIAotMS43LjYuNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZV8yLjMyLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZV8yLjMyLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwNTViYTQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWVfMi4zMi4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotU1VNTUFSWSA9ICJHbm9tZSBhcHBsaWNhdGlvbiBwcm9ncmFtbWluZyBsaWJyYXJpZXMiCi1MSUNFTlNFID0gIkxHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkcuTElCO21kNT01NWNhODE3Y2NiN2Q1YjViNjYzNTU2OTBlOWFiYzYwNSIKLVNFQ1RJT04gPSAieDExL2dub21lL2xpYnMiCi0KLWluaGVyaXQgZ25vbWUgbGliX3BhY2thZ2UKLQotUFIgPSAicjIiCi0KLVNSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gImE0MzQ1ZTYwODdhZTYxOTVkNjVhNDY3NGZmZGNhNTU5IgotU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiYjJjNjM5MTY4NjY0ODU3OTNiODczOTgyNjZkZDc3Nzg1NDhjMTczNDkyM2MyNzJhOTRkODRlZTAxMWI2ZjdhNCIKLVNSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLWxpYmdub21lLU1ha2VmaWxlLmFtLWFsbG93LWRlcHJlY2F0ZWQtc3ltYm9scy5wYXRjaCIKLUdOT01FX0NPTVBSRVNTX1RZUEU9ImJ6MiIKLQotREVQRU5EUyArPSAibGliY2FuYmVycmEgZ2NvbmYtbmF0aXZlIGdub21lLXZmcyBsaWJib25vYm8gZXNvdW5kIGludGx0b29sLW5hdGl2ZSBnbm9tZS1jb21tb24tbmF0aXZlIgotCi1FWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1ndGstZG9jIgotCi1kb19jb25maWd1cmVfcHJlcGVuZCgpIHsKLSAgICBzZWQgLWkgLWUgczpkb2NzOjpnICR7U30vTWFrZWZpbGUuYW0KLSAgICBlY2hvICJFWFRSQV9ESVNUID0gdmVyc2lvbi54bWwiID4gZ25vbWUtZG9jLXV0aWxzLm1ha2UKLSAgICBlY2hvICJFWFRSQV9ESVNUID0gdmVyc2lvbi54bWwiID4gZ3RrLWRvYy5tYWtlCi19Ci0KLUZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vYm9ub2JvL3NlcnZlcnMgJHtsaWJkaXJ9L2Jvbm9iby9tb25pa2Vycy8qLnNvIFwKLSAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2dub21lLWJhY2tncm91bmQtcHJvcGVydGllcyAke2RhdGFkaXJ9L3BpeG1hcHMiCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9ib25vYm8vbW9uaWtlcnMvKi5sYSIKLUZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiJHtsaWJkaXJ9L2Jvbm9iby9tb25pa2Vycy8qLmEiCi0KLVBBQ0tBR0VTID0rICJnbm9tZS1jb21tb24tc2NoZW1hcyIKLQotRklMRVNfZ25vbWUtY29tbW9uLXNjaGVtYXMgPSAiJHtkYXRhZGlyfS9nbm9tZS1iYWNrZ3JvdW5kLXByb3BlcnRpZXMgJHtkYXRhZGlyfS9waXhtYXBzICR7c3lzY29uZmRpcn0iCi0KLVJERVBFTkRTXyR7UE59ID0gImdub21lLWNvbW1vbi1zY2hlbWFzIgotCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9ib25vYm8vbW9uaWtlcnMvLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWVjYW52YXNfMi4zMC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWVjYW52YXNfMi4zMC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MWE4OWNlLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdub21lL2xpYmdub21lY2FudmFzXzIuMzAuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVNVTU1BUlkgPSAiQSBwb3dlcmZ1bCBvYmplY3Qtb3JpZW50ZWQgZGlzcGxheSIKLUxJQ0VOU0UgPSAiTEdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORy5MSUI7bWQ1PTU1Y2E4MTdjY2I3ZDViNWI2NjM1NTY5MGU5YWJjNjA1IgotU0VDVElPTiA9ICJ4MTEvZ25vbWUvbGlicyIKLQotaW5oZXJpdCBnbm9tZWJhc2UgZ3RrLWRvYwotCi0jIGludGx0b29sIHRvIHByb3ZpZGUgSVRfUFJPR19JTlRMVE9PTAotIyBjb25maWd1cmU6IGxpbmUgMTI2NTQ6IHN5bnRheCBlcnJvciBuZWFyIHVuZXhwZWN0ZWQgdG9rZW4gYDAuMzUuMCcKLSMgY29uZmlndXJlOiBsaW5lIDEyNjU0OiBgSVRfUFJPR19JTlRMVE9PTCgwLjM1LjApJwotREVQRU5EUyA9ICJndGsrIGxpYmdsYWRlIGxpYmFydC1sZ3BsIHhpbmVyYW1hcHJvdG8gaW50bHRvb2wtbmF0aXZlIGdub21lLWNvbW1vbi1uYXRpdmUiCi0KLVNSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gImZmY2JiNzE5YzY3MWZmNWNkODZlNTlhZWJhOGQwYjkyIgotU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiODU5Yjc4ZTA4NDg5ZmNlNGQ1YzE1YzY3NmZlYzFjZDc5NzgyZjExNWY1MTZlOGFkOGJlZDZhYmNiOGRlZGQ0MCIKLUdOT01FX0NPTVBSRVNTX1RZUEU9ImJ6MiIKLQotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9saWJnbGFkZS8qL2xpYmNhbnZhcy5zbyIKLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2xpYmdsYWRlLyovLmRlYnVnLyIKLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2xpYmdsYWRlLyovbGliY2FudmFzKi5sYSIKLUZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiJHtsaWJkaXJ9L2xpYmdsYWRlLyovbGliY2FudmFzKi5hIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWVrYmRfMy4yMi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWVrYmRfMy4yMi4wLmJiCmluZGV4IDEyZWQ4MWQuLjQwMjQ5ZmQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdub21lL2xpYmdub21la2JkXzMuMjIuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZWtiZF8zLjIyLjAuYmIKQEAgLTYsNyArNiw5IEBACiAKIERFUEVORFMgPSAiZ2NvbmYgZ2xpYi0yLjAgbGlieGtsYXZpZXIgZ3RrKzMgaW50bHRvb2wtbmF0aXZlIgogCi1pbmhlcml0IGdub21lIGdvYmplY3QtaW50cm9zcGVjdGlvbiBnZXR0ZXh0Citpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBnbm9tZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gZ2V0dGV4dAorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBHTk9NRV9DT01QUkVTU19UWVBFID0gInh6IgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZXVpLzAwMDEtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmctdG8tZml4LWJ1aWxkLS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdub21lL2xpYmdub21ldWkvMDAwMS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy10by1maXgtYnVpbGQtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmM5YmRmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdub21lL2xpYmdub21ldWkvMDAwMS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy10by1maXgtYnVpbGQtLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotRnJvbSA2Njk3ZmNmOWQ3ZjUzMTI2YjQ0MmJmMTk4OTA2NDBiNWY4OGM4YWE0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotRGF0ZTogRnJpLCAyOSBKdWwgMjAxNiAyMToyNDoyMCArMDIwMAotU3ViamVjdDogW1BBVENIXSBzdXBwcmVzcyBzdHJpbmcgZm9ybWF0IGxpdGVyYWwgd2FybmluZyB0byBmaXggYnVpbGQgd2l0aCBnY2M2Ci1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLXdvcmtzIGFyb3VuZDoKLXwgLi4vLi4vbGliZ25vbWV1aS0yLjI0LjUvbGliZ25vbWV1aS9nbm9tZS1kYXRlZWRpdC5jOiBJbiBmdW5jdGlvbiAnZGF5X3NlbGVjdGVkJzoKLXwgLi4vLi4vbGliZ25vbWV1aS0yLjI0LjUvbGliZ25vbWV1aS9nbm9tZS1kYXRlZWRpdC5jOjE1Njo5OiBlcnJvcjogZm9ybWF0IG5vdCBhIHN0cmluZyBsaXRlcmFsLCBmb3JtYXQgc3RyaW5nIG5vdCBjaGVja2VkIFstV2Vycm9yPWZvcm1hdC1ub25saXRlcmFsXQotfCAgICAgICAgICBzdHJmdGltZV9kYXRlX2Zvcm1hdCwgJm10bSkgPT0gMCkKLXwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KLXwgLi4vLi4vbGliZ25vbWV1aS0yLjI0LjUvbGliZ25vbWV1aS9nbm9tZS1kYXRlZWRpdC5jOiBJbiBmdW5jdGlvbiAnZ25vbWVfZGF0ZV9lZGl0X3NldF90aW1lJzoKLXwgLi4vLi4vbGliZ25vbWV1aS0yLjI0LjUvbGliZ25vbWV1aS9nbm9tZS1kYXRlZWRpdC5jOjcwNDoyOiBlcnJvcjogZm9ybWF0IG5vdCBhIHN0cmluZyBsaXRlcmFsLCBmb3JtYXQgc3RyaW5nIG5vdCBjaGVja2VkIFstV2Vycm9yPWZvcm1hdC1ub25saXRlcmFsXQotfCAgIGlmIChzdHJmdGltZSAoYnVmZmVyLCBzaXplb2YgKGJ1ZmZlciksIHN0cmZ0aW1lX2RhdGVfZm9ybWF0LCBteXRtKSA9PSAwKQotfCAgIF5+Ci0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci0tLS0KLSBsaWJnbm9tZXVpL2dub21lLWRhdGVlZGl0LmMgfCA2ICsrKysrKwotIGxpYmdub21ldWkvZ25vbWUtZ2NvbmYtdWkuYyB8IDMgKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2xpYmdub21ldWkvZ25vbWUtZGF0ZWVkaXQuYyBiL2xpYmdub21ldWkvZ25vbWUtZGF0ZWVkaXQuYwotaW5kZXggNjlhYjY5OS4uNDE1NDFjMyAxMDA2NDQKLS0tLSBhL2xpYmdub21ldWkvZ25vbWUtZGF0ZWVkaXQuYwotKysrIGIvbGliZ25vbWV1aS9nbm9tZS1kYXRlZWRpdC5jCi1AQCAtMTUyLDkgKzE1MiwxMiBAQCBkYXlfc2VsZWN0ZWQgKEd0a0NhbGVuZGFyICpjYWxlbmRhciwgR25vbWVEYXRlRWRpdCAqZ2RlKQotIAllbHNlCi0gCQltdG0udG1feWVhciA9IHllYXI7Ci0gCi0rI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0rI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotIAlpZiAoc3RyZnRpbWUgKGJ1ZmZlciwgc2l6ZW9mIChidWZmZXIpLAotIAkJICAgICAgc3RyZnRpbWVfZGF0ZV9mb3JtYXQsICZtdG0pID09IDApCi0gCQlzdHJjcHkgKGJ1ZmZlciwgIj8/PyIpOwotKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0gCWJ1ZmZlcltzaXplb2YoYnVmZmVyKS0xXSA9ICdcMCc7Ci0gCi0gCS8qIEZJWE1FOiB3aGF0IGFib3V0IHNldCB0aW1lICovCi1AQCAtNzAxLDggKzcwNCwxMSBAQCBnbm9tZV9kYXRlX2VkaXRfc2V0X3RpbWUgKEdub21lRGF0ZUVkaXQgKmdkZSwgdGltZV90IHRoZV90aW1lKQotIAlteXRtID0gbG9jYWx0aW1lICgmdGhlX3RpbWUpOwotIAotIAkvKiBTZXQgdGhlIGRhdGUgKi8KLSsjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKLSsjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZm9ybWF0LW5vbmxpdGVyYWwiCi0gCWlmIChzdHJmdGltZSAoYnVmZmVyLCBzaXplb2YgKGJ1ZmZlciksIHN0cmZ0aW1lX2RhdGVfZm9ybWF0LCBteXRtKSA9PSAwKQotIAkJc3RyY3B5IChidWZmZXIsICI/Pz8iKTsKLSsjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotIAlidWZmZXJbc2l6ZW9mKGJ1ZmZlciktMV0gPSAnXDAnOwotIAotIAlzdHJfdXRmOCA9IGdfbG9jYWxlX3RvX3V0ZjggKGJ1ZmZlciwgLTEsIE5VTEwsIE5VTEwsIE5VTEwpOwotZGlmZiAtLWdpdCBhL2xpYmdub21ldWkvZ25vbWUtZ2NvbmYtdWkuYyBiL2xpYmdub21ldWkvZ25vbWUtZ2NvbmYtdWkuYwotaW5kZXggNDNjMGY0NC4uYTg0YjJjMCAxMDA2NDQKLS0tLSBhL2xpYmdub21ldWkvZ25vbWUtZ2NvbmYtdWkuYwotKysrIGIvbGliZ25vbWV1aS9nbm9tZS1nY29uZi11aS5jCi1AQCAtMTgwLDEyICsxODAsMTUgQEAgZXJyb3JfaWRsZV9mdW5jIChncG9pbnRlciBkYXRhKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgbWF5IG5vdCB3b3JrIHByb3Blcmx5LiIpOwotICAgICAgICAgICAgICAgICB9Ci0gCi0rI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0rI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgotICAgICAgICAgICAgICAgICBkaWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3IChOVUxMIC8qIHBhcmVudCAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAvKiBmbGFncyAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX01FU1NBR0VfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19CVVRUT05TX09LLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdub21lX3Byb2dyYW1fZ2V0X2h1bWFuX3JlYWRhYmxlX25hbWUoZ25vbWVfcHJvZ3JhbV9nZXQoKSkpOwotKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0gICAgICAgICAgICAgICAgIGd0a19kaWFsb2dfc2V0X2RlZmF1bHRfcmVzcG9uc2UgKEdUS19ESUFMT0cgKGRpYWxvZyksIEdUS19SRVNQT05TRV9PSyk7Ci0gICAgICAgICAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QgKGRpYWxvZywgInJlc3BvbnNlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoZ3RrX3dpZGdldF9kZXN0cm95KSwKLS0tIAotMi41LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWV1aS9nbm9tZS1zdG9jay1waXhidWZzLmggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZXVpL2dub21lLXN0b2NrLXBpeGJ1ZnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTUzYThhZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZXVpL2dub21lLXN0b2NrLXBpeGJ1ZnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDQwMzAgKzAsMCBAQAotLyogZ25vbWUgc3RvY2sgaWNvbnMgaW4gR2RtUGl4YnVmIHVzYWJsZSByZ2IgZGF0YQotICoKLSAqIENvcHlyaWdodCAoQykgMTk5NyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0gKgotICogdGhlIHBpeG1hcHMgZm9yIGJ1dHRvbl9jYW5jZWwsIHNhdmVfYXMsIHRyYXNoLCBtYWlsX3JlY2VpdmUsIHN0b3AKLSAqIHJpZ2h0X2Fycm93LCBob21lLCBzYXZlLCBib29rX2JsdWUsIHRyYXNoX2Z1bGwsIHVuZG8sIHNlYXJjaCwgbWFpbF9mb3J3YXJkCi0gKiByZXZlcnQsIG1haWxfY29tcG9zZSwgbWljLCBjb3B5LCBqdW1wX3RvLCBjb252ZXJ0LCBidXR0b25fYXBwbHksIHRpbWVyCi0gKiBtYWlsLCBib29rX3JlZCwgYm9va195ZWxsb3csIGhlbHAsIHJlZG8sIG5ldywgbWFpbF9zZW5kLCBidXR0b25feWVzLCBjdXQKLSAqIHByb3BlcnRpZXMsIHByaW50LCBtYWlsX3JlcGx5LCByZWZyZXNoLCBzZWFyY2hfcmVwbGFjZSwgb3BlbiwgcHJlZmVyZW5jZXMKLSAqIGxlZnRfYXJyb3csIHVuZGVsZXRlLCBjbG9zZSwgdm9sdW1lLCBidXR0b25fbm8sIGV4aXQsIGJvb2tfZ3JlZW4KLSAqIGJvb2tfb3BlbiwgcGFzdGUsIGxpbmVfaW4sIHNwZWxsY2hlY2ssIHRpbWVyX3N0b3BwZWQKLSAqIGFyZSBDb3B5cmlnaHQgKEMpIDE5OTggVHVvbWFzIEt1b3NtYW5lbgotICovCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfYXR0YWNoKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfYXR0YWNoW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19hdHRhY2hbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBjXDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwyNlwwIgotICAiXDBcMFwiXDBcMFwwJFwwXDBcMCVcMFwwXDAlXDBcMFwwXDM3N1wwXDBcMGxcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMFwxMFwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwiXDBcMFwwXDIwXDAiCi0gICJcMFwwJFwwXDBcMH5cMVwxXDFcMzc3UVFRXDM3N1wyMzJcMjMyXDIzMlwzNzdcMzE3XDMxN1wzMTdcMzc3b29vXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMTZcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDBcMFwweFwwXDBcMCIKLSAgIlwzNzdGRkZcMzc3XDI0NVwyNDVcMjQ1XDM3N1wzNDJcMzQyXDM0MlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNjZcMzY2XDM2NlwzNzdcMjEyXDIxMlwyMTJcMzc3OTk5XDM3N1wwXDBcMChcMFwwXDBcMTBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM0XDBcMFwwIgotICAiQlwwXDBcMFwzNzdcMzRcMzRcMzRcMzc3XDIxM1wyMTNcMjEzXDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzU2XDM1NlwzNTYiCi0gICJcMzc3XDM0MVwzNDFcMzQxXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzE0XDMxNFwzMTRcMzc3VlZWXDM3N1wwXDBcMF5cMFwwXDBcMTJcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBAXDBcMFwwXDM3Nz4+PlwzNzdcMjAxXDIwMVwyMDEiCi0gICJcMzc3XDMyNFwzMjRcMzI0XDM3N1wzNFwzNFwzNFwzNzdcMzQ3XDM0N1wzNDdcMzc3XDMyN1wzMjdcMzI3XDM3N1wzNzIiCi0gICJcMzcyXDM3MlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwXDM3N1wzMDJcMzAyXDMwMlwzNzdcMzEzXDMxMyIKLSAgIlwzMTNcMzc3XDM2NVwzNjVcMzY1XDM3N1wzMzFcMzMxXDMzMVwzNzdcMjAxXDIwMVwyMDFcMzc3XDBcMFwwXDM3N1wwIgotICAiXDBcMFwyNVwwXDBcMFwzXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwOlwzXDNcM1wzNzdUVFRcMzc3XDM0NlwzNDYiCi0gICJcMzQ2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMzI3IgotICAiXDMyN1wzMjdcMzc3XDMzNlwzMzZcMzM2XDM3N1wyNjNcMjYzXDI2M1wzNzd5eXlcMzc3XDBcMFwwXDM3N1wzNDJcMzQyIgotICAiXDM0MlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjRcMzY0XDM2NFwzNzdcMjM1XDIzNVwyMzUiCi0gICJcMzc3KCgoXDM3N1wwXDBcMClcMFwwXDBcMTBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM2NlwzNjYiCi0gICJcMzY2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzJcMzcyXDM3MiIKLSAgIlwzNzdcMzczXDM3M1wzNzNcMzc3XDBcMFwwXDM3N1wyNDZcMjQ2XDI0NlwzNzdcMzA1XDMwNVwzMDVcMzc3XDM2MFwzNjAiCi0gICJcMzYwXDM3N1wzNzBcMzcwXDM3MFwzNzdcMFwwXDBcMzc3XDM0MlwzNDJcMzQyXDM3N1wzMDJcMzAyXDMwMlwzNzdcMzEyIgotICAiXDMxMlwzMTJcMzc3XDM2NFwzNjRcMzY0XDM3N1wzMDdcMzA3XDMwN1wzNzdWVlZcMzc3XDBcMFwwXlwwXDBcMFwxMlwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzYyXDM2MlwzNjJcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzEiCi0gICJcMzcxXDM3MVwzNzdcMzE2XDMxNlwzMTZcMzc3XDMwNFwzMDRcMzA0XDM3N1wzMDVcMzA1XDMwNVwzNzdcMFwwXDBcMzc3IgotICAiXDMyNVwzMjVcMzI1XDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwXDM3N1wwXDAiCi0gICJcMFwzNzdcMjYzXDI2M1wyNjNcMzc3XDMzMlwzMzJcMzMyXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM2M1wzNjNcMzYzXDM3N3l5eVwzNzdcMFwwXDBcMzc3XDBcMFwwXDI1XDBcMFwwXDNcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwaFwyMDVcMjA1XDIwNVwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3MFwzNzBcMzcwXDM3N1wyNzZcMjc2XDI3NlwzNzciCi0gICJcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3N1wwXDBcMFwzNzdcMzIzXDMyM1wzMjNcMzc3XDMzNFwzMzRcMzM0IgotICAiXDM3N1wzMDJcMzAyXDMwMlwzNzdcMzAyXDMwMlwzMDJcMzc3XDBcMFwwXDM3N1wzNDJcMzQyXDM0MlwzNzdcMzY1XDM2NSIKLSAgIlwzNjVcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYyXDM2MlwzNjJcMzc3XDIzNFwyMzRcMjM0IgotICAiXDM3NygoKFwzNzdcMFwwXDApXDBcMFwwXDEwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw0MEhISFwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMjQ3XDI0N1wyNDdcMzc3XDMyNlwzMjZcMzI2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY2XDM2NlwzNjYiCi0gICJcMzc3XDBcMFwwXDM3N1wzNDJcMzQyXDM0MlwzNzdcMzY0XDM2NFwzNjRcMzc3XDMwNFwzMDRcMzA0XDM3N1wzMTBcMzEwIgotICAiXDMxMFwzNzdcMzYyXDM2MlwzNjJcMzc3XDMwNlwzMDZcMzA2XDM3N0xMTFwzNzdcMFwwXDBeXDBcMFwwXDEyXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NlwzNjYiCi0gICJcMzY2XDM3N1wyNzZcMjc2XDI3NlwzNzdcMzAyXDMwMlwzMDJcMzc3XDBcMFwwXDM3N1wzNDVcMzQ1XDM0NVwzNzdcMzMwIgotICAiXDMzMFwzMzBcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjVcMzY1XDM2NVwzNzdcMFwwXDBcMzc3XDI1NVwyNTVcMjU1XDM3NyIKLSAgIlwyNzRcMjc0XDI3NFwzNzdcMzUyXDM1MlwzNTJcMzc3XDM0MFwzNDBcMzQwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzUyIgotICAiXDM1MlwzNTJcMzc3XDIyMFwyMjBcMjIwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjVcMFwwXDBcM1wwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBpaGhoXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjYiCi0gICJcMzY2XDM2NlwzNzdcMjQyXDI0MlwyNDJcMzc3XDBcMFwwXDM3N1wzMDBcMzAwXDMwMFwzNzdcMzAxXDMwMVwzMDFcMzc3IgotICAiXDBcMFwwXDM3N3h4eFwzNzdcMzI2XDMyNlwzMjZcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYxIgotICAiXDM2MVwzNjFcMzc3XDM2MVwzNjFcMzYxXDM3N1wzMjVcMzI1XDMyNVwzNzdcMjU2XDI1NlwyNTZcMzc3XDI1XDI1XDI1IgotICAiXDM3N1wwXDBcMClcMFwwXDBcMTBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDQiIjk5OVwzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDMzMlwzMzJcMzMyXDM3N1wyMzIiCi0gICJcMjMyXDIzMlwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N3l5eVwzNzdcMzI2XDMyNlwzMjZcMzc3XDM2MlwzNjJcMzYyXDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDMyNlwzMjZcMzI2XDM3N1wzMjBcMzIwXDMyMFwzNzdcMjI3IgotICAiXDIyN1wyMjdcMzc3cnJyXDM3N0pKSlwzNzdcMFwwXDAuXDBcMFwwXDExXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NFwzNjRcMzY0XDM3N1wyNTRcMjU0XDI1NCIKLSAgIlwzNzdcMjcyXDI3MlwyNzJcMzc3XDMzNVwzMzVcMzM1XDM3N1wzNjNcMzYzXDM2M1wzNzdcMzE2XDMxNlwzMTZcMzc3IgotICAiXDMzM1wzMzNcMzMzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzI3XDMyN1wzMjdcMzc3XDMyNlwzMjZcMzI2XDM3N1wyNjEiCi0gICJcMjYxXDI2MVwzNzdcMjAxXDIwMVwyMDFcMzc3VlZWXDM3NyMjI1wzNzdcMFwwXDBcMzc3XDBcMFwwcVwwXDBcMClcMCIKLSAgIlwwXDBcMTBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBoaWlpXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2MlwzNjJcMzYyIgotICAiXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzI3XDMyN1wzMjdcMzc3XDI2N1wyNjdcMjY3XDM3N1wyMDJcMjAyXDIwMlwzNzciCi0gICJAQEBcMzc3IyMjXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjA0XDBcMFwwIiIyXDBcMFwwLlwwXDBcMClcMFwwXDBcMjVcMCIKLSAgIlwwXDBcM1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw0KCgoXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzI3XDMyN1wzMjdcMzc3XDI3NlwyNzZcMjc2IgotICAiXDM3N1wyMjZcMjI2XDIyNlwzNzcyMjJcMzc3IyMjXDM3N1wwXDBcMFwzNzdcMFwwXDB1XDBcMFwwSFwwXDBcMC9cMFwwIgotICAiXDAqXDBcMFwwXDMxXDBcMFwwXDEzXDBcMFwwXDEwXDBcMFwwXDNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzUwXDM1MFwzNTBcMzc3XDMxNFwzMTRcMzE0XDM3NyIKLSAgIlwyMzJcMjMyXDIzMlwzNzdAQEBcMzc3IyMjXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjIxXDBcMFwwSVwwXDBcMC9cMFwwIgotICAiXDAqXDBcMFwwXDMwXDBcMFwwXDE2XDBcMFwwXDExXDBcMFwwXDRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwOzk5OVwzNzdcMjAyXDIwMlwyMDJcMzc3OTk5XDM3NyIKLSAgIlwyMlwyMlwyMlwzNzdcMFwwXDBcMjA0XDBcMFwwSVwwXDBcMC9cMFwwXDAqXDBcMFwwXDMzXDBcMFwwXDE2XDBcMFwwIgotICAiXDExXDBcMFwwXDNcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMHVcMFwwIgotICAiXDAiIjFcMFwwXDAqXDBcMFwwXDMxXDBcMFwwXDE2XDBcMFwwXDExXDBcMFwwXDRcMFwwXDBcMVwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMTFcMFwwXDAmXDBcMFwwKVwwXDBcMFwyN1wwXDBcMCIKLSAgIlwxMlwwXDBcMFw0XDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcN1wwXDBcMFwxMFwwXDBcMFwzXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19ib29rX2JsdWUpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19ib29rX2JsdWVbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX2Jvb2tfYmx1ZVtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwIiI5XDBcMFwwXDMwMlwwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNTdcMFwwXDBcMzU2XDBcMFwwXDM0NlwwXDBcMFwzNDJcMFwwXDB3XDBcMFwwXDEzXDBcMCIKLSAgIlwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDMyXDIxXDI2XDM1XDM3N1wyMjciCi0gICJcMjUwXDI3NlwzNzd9XDIyM1wyNTRcMzc3c1wyMTJcMjQzXDM3N2xcMjA0XDIzNFwzNzdkfFwyMjZcMzc3XnZcMjE3XDM3NyIKLSAgIldvXDIxMFwzNzdQaVwyMDJcMzc3UGlcMjAyXDM3N1BpXDIwMlwzNzdQaVwyMDJcMzc3UGlcMjAyXDM3N1ZuXDIwNlwzNzciCi0gICJJWGlcMzc3XDIxXDMwXCJcMzc2XDBcMFwwLlwwXDBcMFwxMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMjczdlwyMTNcMjQyXDM3N1wyMTZcMjQyXDI3MFwzNzd2XDIxNVwyNDdcMzc3VnJcMjIwXDM3NyIKLSAgIk5qXDIxMFwzNzdGYlwyMDBcMzc3PVp4XDM3NzVScFwzNzcxTmtcMzc3MU5rXDM3NzZSb1wzNzc2Um9cMzc3PFdzXDM3NyIKLSAgIjZSb1wzNzczQE9cMzc3XDI1XDM0JVwzNzJcMFwwXDBOXDBcMFwwXDIwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMjJcMTJcMTVcMjFcMzc3XDIzMVwyNTRcMzAwXDM3N1wyMDBcMjI2XDI1NlwzNzdbdlwyMjRcMzc3IgotICAiU29cMjE1XDM3N0pnXDIwNVwzNzdCX31cMzc3Old1XDM3NzJPbVwzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzcxTmtcMzc3IgotICAiO1dyXDM3Ny1EXFxcMzc3Iy82XDM3N1wwXDBcMF5cMFwwXDBEXDBcMFwwXDE2XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMjU1W2l5XDM3N1wyMzFcMjU0XDMwMFwzNzd1XDIxNVwyNDZcMzc3V3NcMjIxXDM3N09rXDIxMCIKLSAgIlwzNzdHY1wyMDFcMzc3XDc3W3lcMzc3NlNxXDM3NzFOa1wzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzc0UG1cMzc3O1dyIgotICAiXDM3NylcNzdWXDM3NzU8QVwzNzVcMFwwXDBcMzc3XDBcMFwwJVwwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDIxXDBcMFwwXDM3N1wyMzFcMjU0XDMwMFwzNzdcMjAwXDIyN1wyNjBcMzc3XFx4XDIyNlwzNzdUcFwyMTYiCi0gICJcMzc3S2hcMjA2XDM3N0NgflwzNzc7WHZcMzc3M1BuXDM3NzFOa1wzNzcxTmtcMzc3M1BrXDM3NzFOa1wzNzc5VXFcMzc3IgotICAiLURcXFwzNzdcMjdcIixcMzc3flwyMDJcMjA1XDM3NzU3OFwzNzdcMFwwXDBGXDBcMFwwXDE1XDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDIzMltpeVwzNzdcMjE3XDI0M1wyNzFcMzc3dVwyMTVcMjQ2XDM3N1h0XDIyMlwzNzdQbCIKLSAgIlwyMTJcMzc3SGRcMjAyXDM3N0BcXHpcMzc3OFRyXDM3NzFOa1wzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzcyT2xcMzc3IgotICAiPVl0XDM3NylcNzdWXDM3NyEnLlwzNzZKTE1cMzc3XDIxNlwyMjBcMjIyXDM3N1wwXDBcMFFcMFwwXDBcMjBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDIwXDBcMFwwXDM3N1wyMzBcMjUzXDI3N1wzNzVcMTc3XDIyNlwyNTdcMzc3XXlcMjI3XDM3NyIKLSAgIlVxXDIxN1wzNzdNaVwyMDdcMzc3RGFcMTc3XDM3NzxZd1wzNzc0UW9cMzc3MU5rXDM3NzFOa1wzNzcxTmtcMzc3MU5rIgotICAiXDM3NzhUcFwzNzcvRl1cMzc3XDMwJC1cMzc3VFdZXDM2NmVpalwzNzczMzRcMzc3XDBcMFwwUVwwXDBcMFwyMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMzM1ZXVcMjAzXDM3N1wyMTVcMjQyXDI3MVwzNzd2XDIxNVwyNDdcMzc3WnVcMjIzXDM3NyIKLSAgIlFtXDIxM1wzNzdJZVwyMDNcMzc3QV17XDM3NzlVc1wzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzcxTmtcMzc3MU5rXDM3NyIKLSAgIjxXc1wzNzcqQlpcMzc3IysyXDM3N0ZISlwzNzdcMjIwXDIyMlwyMjVcMzc3XDBcMFwwXDM3N1wwXDBcMGNcMFwwXDBcMjEiCi0gICJcMFwwXDBcMFwwXDBcMCFcMFwwXDBcMzc3XDIzM1wyNTRcMjczXDM3N1wyMDdcMjM0XDI2NFwzNzdjflwyMzNcMzc3ViIKLSAgInJcMjIwXDM3N05qXDIxMFwzNzdGYlwyMDBcMzc3PVp4XDM3NzVScFwzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzcxTmtcMzc3IgotICAiNVJuXDM3NzRLYlwzNzdcMzEkLVwzNzdkaGtcMzc3bW9wXDM3NzBHXVwzNzdcMFwwXDBcMzczXDBcMFwwUlwwXDBcMFwyNSIKLSAgIlwwXDBcMFwwXDBcMFwwXDI0NWVwfVwzNzdcMjIxXDI0NVwyNzRcMzc3cVwyMTNcMjQ2XDM3N1xceFwyMjZcMzc3VHBcMjE2IgotICAiXDM3N0toXDIwNlwzNzdDYH5cMzc3O1h2XDM3NzNQblwzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzcxTmtcMzc3PVl0XDM3NyIKLSAgIilcNzdWXDM3NyYuM1wzNzdXWFlcMzc3XDIxM1wyMTdcMjI1XDM3N1wxMVwxNVwyMVwzNzJcMFwwXDBcMjM0XDBcMFwwIgotICAiSVwwXDBcMFwxN1wwXDBcMFwxM1wwXDBcMFwzNzd+XDIxNlwyMzdcMzM3XDIxMlwyMzdcMjY2XDM3N2xcMjA1XDI0MVwzNzciCi0gICJYdFwyMjJcMzc3UGxcMjEyXDM3N0hkXDIwMlwzNzdAXFx6XDM3NzhUclwzNzcxTmtcMzc3MU5rXDM3NzFOa1wzNzcxTiIKLSAgImtcMzc3MU5rXDM3NzVMY1wzNzdcMzIlMFwzNzdITE5cMzc3c3V2XDM3N0Nbc1wzNzBcMFwwXDBcMzY0XDBcMFwwVVwwIgotICAiXDBcMCtcMFwwXDBcN1wwXDBcMFwyMDZ1d3dcMzc3XDI3NVwzMDZcMzIzXDM3NVwyNTZcMjc2XDMxNFwzNzdcMjQ3XDI2NiIKLSAgIlwzMDZcMzc3XDI0M1wyNjJcMzAyXDM3N1wyMzZcMjU1XDI3NVwzNzdcMjMyXDI1MlwyNzFcMzc3XDIyMFwyNDBcMjYwIgotICAiXDM3N3tcMjE3XDI0MVwzNzd5XDIxNFwyMzdcMzc3eVwyMTRcMjM3XDM3N3lcMjE0XDIzN1wzNzd5XDIxNFwyMzdcMzc3IgotICAicFwyMDRcMjMxXDM3N1VmeVwzNzcyNTtcMzc3W15hXDM3N1wyMTZcMjIzXDIzMFwzNzdcMTJcMTZcMjFcMzcyXDBcMFwwIgotICAiXDIzM1wwXDBcMEdcMFwwXDBcMjFcMFwwXDBcMVwyXDdcMTFcMzMxXDI2MFwyNzJcMzA0XDM3Nyw+UVwzNzckNkpcMzc3IgotICAiJDZKXDM3NyQ2SlwzNzckNkpcMzc3JDZKXDM3NyQ2SlwzNzckNkpcMzc3JDZKXDM3NyQ2SlwzNzckNkpcMzc3JDZKXDM3NyIKLSAgIiQ2SlwzNzcrNVw3N1wzNzdeYmhcMzc3d3h6XDM3N0ZgelwzNzdcMFwwXDBcMzY1XDBcMFwwVVwwXDBcMCpcMFwwXDBcNiIKLSAgIlwwXDBcMFwwXDE1XDE3XDIxXDM3N1wyMDdcMjIzXDIzNVwzNzdAQUVcMzc3X2BgXDM3M3R0dFwzNzdcMjI2XDIyNlwyMjYiCi0gICJcMzc3XDI2MVwyNjFcMjYxXDM3N1wyNTdcMjU3XDI2MFwzNzdcMzA1XDMwNVwzMDZcMzc3XDMxNlwzMTZcMzE3XDM3NyIKLSAgIlwyNjRcMjczXDMwMVwzNzdcMjc0XDMwMlwzMTFcMzc3XDI3NVwzMDRcMzEyXDM3N1wzMDRcMzEzXDMyMlwzNzdcMzEzIgotICAiXDMyMlwzMzFcMzc3XDMyNlwzMzJcMzM2XDM3N1wyMjBcMjI2XDIzM1wzNzdcMjA1XDIxMlwyMTdcMzc3XDI0XDMzIVwzNzEiCi0gICJcMFwwXDBcMjM0XDBcMFwwSFwwXDBcMFwyMlwwXDBcMFwxXDBcMFwwXDBcMTRcMTZcMTdcMzc3a3tcMjEzXDM3N1dXVyIKLSAgIlwzNzd9flwyMDBcMzc3XDM0MlwzNDRcMzQ2XDM3N1wzNDJcMzQ0XDM0NlwzNzdcMzQxXDM0MVwzNDFcMzc3XDMzN1wzMzciCi0gICJcMzQwXDM3N1wzMzdcMzM3XDM0MFwzNzdcMzYyXDM2MlwzNjJcMzc3XDM3NVwzNzVcMzc2XDM3N1wzNjFcMzYzXDM2NSIKLSAgIlwzNzdcMzYxXDM2M1wzNjVcMzc3XDM2MVwzNjNcMzY1XDM3N1wyNDdcMjUwXDI1MlwzNzdcMjYyXDI2NVwyNzFcMzc3IgotICAiaW1xXDM3N0ZgelwzNzdcMFwxXDJcMzcwXDBcMFwwVVwwXDBcMCpcMFwwXDBcNlwwXDBcMFwwXDBcMFwwXDAkJSdcMzc3IgotICAiY3JcMjAxXDM3N2l8XDIxNlwzNzdUa1wyMDNcMzc3RV14XDM3N1wzMjZcMzM0XDM0MVwzNzdcMzQ3XDM1MlwzNTVcMzc3IgotICAiXDM1NVwzNTdcMzYxXDM3N1wzNTVcMzU3XDM2MlwzNzdcMzQ1XDM0NlwzNDdcMzc3XDMzNlwzMzZcMzM3XDM3N1wzNDEiCi0gICJcMzQxXDM0MlwzNzdcMzQxXDM0MVwzNDJcMzc3XDMzN1wzMzdcMzQwXDM3N1wzNDFcMzQyXDM0M1wzNzdyelwyMDNcMzc3IgotICAiXDIxM1wyMTdcMjI0XDM3N1wyNVwzMyFcMzY3XDBcMFwwXDIzNFwwXDBcMElcMFwwXDBcMjJcMFwwXDBcMVwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDAiIjlcMFwwXDBcMzc3XDRcNlwxMlwzNTQ4Sl1cMzYzTWJ4XDM1MVRoXDE3N1wzNTdTalwyMDIiCi0gICJcMzc3V29cMjA2XDM3N1wyMDdcMjI3XDI0N1wzNzdcMzI3XDMzNVwzNDFcMzc3XDM0MlwzNDZcMzUxXDM3N1wzNTFcMzU0IgotICAiXDM1NlwzNzdcMzcwXDM3MVwzNzJcMzc3XDM3MFwzNzFcMzcyXDM3N1wyMDFcMjA1XDIxMlwzNzdcMjQ1XDI0N1wyNTAiCi0gICJcMzc3XDIzNFwyNDJcMjUwXDM3N1wxXDJcM1wzNzBcMFwwXDBVXDBcMFwwKlwwXDBcMFw3XDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDAmXDBcMFwwZVwwXDBcMFwyNzZcMFwwXDBcMzQ2XDBcMFwwXDM2MFwwXDBcMFwzNjMiCi0gICI7S15cMzcxRFZpXDM3MVRnfVwzNjdVa1wyMDBcMzY2VmxcMjAzXDM3N1wyNTRcMjcwXDMwM1wzNzdcMzM0XDM0MVwzNDUiCi0gICJcMzc3XDM1MFwzNTNcMzU1XDM3N1wyMzdcMjQzXDI0NlwzNzdcMjVcMzUkXDM3M1wwXDBcMFwyMzRcMFwwXDBIXDBcMCIKLSAgIlwwXDIyXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw2XDBcMFwwXDE3XDBcMFwwIgotICAiXDM0XDBcMFwwIiI0XDBcMFwwQ1wwXDBcMGdcMFwwXDBcMjUxXDBcMFwwXDM0NFwwXDBcMFwzNjFcMFwwXDBcMzU2MD4iCi0gICJNXDM2NT1OYFwzNzFPX3NcMzcyU2V7XDM2N0xjfFwzNTdcMVwzXDVcMzY3XDBcMFwwVVwwXDBcMCtcMFwwXDBcN1wwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMTIiCi0gICJcMFwwXDBcMTVcMFwwXDBcMjBcMFwwXDBcMzNcMFwwXDAiIjBcMFwwXDBDXDBcMFwwX1wwXDBcMFwyMzVcMFwwXDBcMzI3IgotICAiXDBcMFwwXDM1NlwwXDBcMFwzNTRcMFwwXDBcMzQ3XDBcMFwwe1wwXDBcMEZcMFwwXDBcMjFcMFwwXDBcMVwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMFwxMFwwXDBcMFwxNVwwXDBcMFwyMFwwXDBcMFwzMFwwXDBcMCxcMFwwXDAiCi0gICJcNzdcMFwwXDBIXDBcMFwwSFwwXDBcMEBcMFwwXDBcMzdcMFwwXDBcNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcN1wwXDBcMFwxM1wwXDBcMFwxNlwwIgotICAiXDBcMFwxNlwwXDBcMFwxNFwwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19ib29rX2dyZWVuKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfYm9va19ncmVlbltdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfYm9va19ncmVlbltdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwIiI5XDBcMFwwXDMwMlwwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNTdcMFwwXDBcMzU2XDBcMFwwXDM0NlwwXDBcMFwzNDJcMFwwXDB3XDBcMFwwXDEzXDBcMCIKLSAgIlwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDMyXDIxXDM0XDIxXDM3N1wyMjUiCi0gICJcMjc2XDIyNVwzNzd5XDI1NXlcMzc3blwyNDZuXDM3N2VcMjQxZVwzNzdeXDIzM15cMzc3WVwyMjJZXDM3N1NcMjEyUyIKLSAgIlwzNzdPXDIwMk9cMzc3T1wyMDJPXDM3N09cMjAyT1wzNzdPXDIwMk9cMzc3T1wyMDJPXDM3N1JcMjEwUlwzNzdDbkNcMzc3IgotICAiXDIyXDM2XDIyXDM3NlwwXDBcMC5cMFwwXDBcMTBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDI3M29cMjQ3b1wzNzdcMjE0XDI3MVwyMTRcMzc3clwyNTFyXDM3N1ZcMjE2VlwzNzdQXDIwNFBcMzc3SnoiCi0gICJKXDM3N0NvQ1wzNzc9ZT1cMzc3OmA6XDM3NzpgOlwzNzc9ZT1cMzc3PWU9XDM3N0FrQVwzNzc9ZT1cMzc3MFAwXDM3NyIKLSAgIlwyNiNcMjZcMzcyXDBcMFwwTlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDIyIgotICAiXDExXDE3XDExXDM3N1wyMjdcMjc3XDIyN1wzNzd9XDI2MH1cMzc3WVwyMjNZXDM3N1RcMjEzVFwzNzdNXDE3N01cMzc3IgotICAiR3VHXDM3N0FrQVwzNzc7YTtcMzc3OmA6XDM3NzpgOlwzNzc6YDpcMzc3OmA6XDM3N0BqQFwzNzczVDNcMzc3ITYhXDM3NyIKLSAgIlwwXDBcMF5cMFwwXDBEXDBcMFwwXDE2XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjU1T1wyMDMiCi0gICJPXDM3N1wyMjdcMjc3XDIyN1wzNzdxXDI1MHFcMzc3V1wyMTdXXDM3N1BcMjA0UFwzNzdLfEtcMzc3RXJFXDM3Nz5mPiIKLSAgIlwzNzc6YDpcMzc3OmA6XDM3NzpgOlwzNzc6YDpcMzc3PGM8XDM3N0BqQFwzNzcvTi9cMzc3LEksXDM3NVwwXDBcMFwzNzciCi0gICJcMFwwXDAlXDBcMFwwXDVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjFcMFwwXDBcMzc3XDIyN1wyNzdcMjI3IgotICAiXDM3N35cMjYwflwzNzdbXDIyNltcMzc3VVwyMTRVXDM3N05cMjAxTlwzNzdId0hcMzc3Qm1CXDM3NzxjPFwzNzc6YDoiCi0gICJcMzc3OmA6XDM3NzthO1wzNzc6YDpcMzc3QGlAXDM3NzNUM1wzNzdcMzAoXDMwXDM3N1wyMDFcMjAxXDIwMVwzNzcoQiIKLSAgIihcMzc3XDBcMFwwRlwwXDBcMFwxNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyMzJPXDIwM09cMzc3XDIxNSIKLSAgIlwyNzFcMjE1XDM3N3FcMjUwcVwzNzdYXDIyMVhcMzc3UlwyMDdSXDM3N0x9TFwzNzdGc0ZcMzc3QGlAXDM3NzpgOlwzNzciCi0gICI6YDpcMzc3OmA6XDM3NzpgOlwzNzc7YTtcMzc3Qm1CXDM3Ny9OL1wzNzdcMzUiIjBcMzVcMzc2S0tLXDM3N1wyMjBcMjIwIgotICAiXDIyMFwzNzdcMFwwXDBRXDBcMFwwXDIwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyMFwwXDBcMFwzNzdcMjI2XDI3N1wyMjYiCi0gICJcMzc1fVwyNjB9XDM3N1xcXDIyN1xcXDM3N1ZcMjE1VlwzNzdPXDIwM09cMzc3SXhJXDM3N0NuQ1wzNzc9ZD1cMzc3OiIKLSAgImA6XDM3NzpgOlwzNzc6YDpcMzc3OmA6XDM3N1w3N2hcNzdcMzc3NFY0XDM3N1wzMSpcMzFcMzc3VlZWXDM2NmdnZ1wzNzciCi0gICIzMzNcMzc3XDBcMFwwUVwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzM1V1wyMTdXXDM3N1wyMTRcMjcxXDIxNCIKLSAgIlwzNzdyXDI1MXJcMzc3WVwyMjJZXDM3N1JcMjEwUlwzNzdMfkxcMzc3RnRGXDM3N0BqQFwzNzc6YDpcMzc3OmA6XDM3NyIKLSAgIjpgOlwzNzc6YDpcMzc3OmA6XDM3N0FrQVwzNzcxUTFcMzc3XDM3IiIzXDM3XDM3N0hISFwzNzd3XDI1NHdcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMGNcMFwwXDBcMjFcMFwwXDBcMFwwXDBcMCFcMFwwXDBcMzc3XDIyNlwyNzdcMjI2XDM3N1wyMDRcMjY0IgotICAiXDIwNFwzNzdfXDIzNV9cMzc3VlwyMTZWXDM3N1BcMjA0UFwzNzdKekpcMzc3Q29DXDM3Nz1lPVwzNzc6YDpcMzc3OmAiCi0gICI6XDM3NzpgOlwzNzc6YDpcMzc3PWQ9XDM3NzhdOFwzNzdcMzIrXDMyXDM3N2dnZ1wzNzdubm5cMzc3NFY0XDM3N1wwXDAiCi0gICJcMFwzNzNcMFwwXDBSXDBcMFwwXDI1XDBcMFwwXDBcMFwwXDBcMjQ1VVwyMTRVXDM3N1wyMjBcMjczXDIyMFwzNzduXDI0NiIKLSAgIm5cMzc3W1wyMjZbXDM3N1VcMjE0VVwzNzdOXDIwMU5cMzc3SHdIXDM3N0JtQlwzNzc8YzxcMzc3OmA6XDM3NzpgOlwzNzciCi0gICI6YDpcMzc3OmA6XDM3N0JtQlwzNzcvTi9cMzc3ITYhXDM3N1hYWFwzNzd0XDI1M3RcMzc3XDExXDE3XDExXDM3MlwwXDAiCi0gICJcMFwyMzRcMFwwXDBJXDBcMFwwXDE3XDBcMFwwXDEzXDBcMFwwXDM3N3RcMjQ3dFwzMzdcMjEwXDI2NlwyMTBcMzc3aCIKLSAgIlwyNDNoXDM3N1hcMjIxWFwzNzdSXDIwN1JcMzc3TH1MXDM3N0ZzRlwzNzdAaUBcMzc3OmA6XDM3NzpgOlwzNzc6YDpcMzc3IgotICAiOmA6XDM3NzpgOlwzNzc5XjlcMzc3XDMzLlwzM1wzNzdLS0tcMzc3dHR0XDM3N0VwRVwzNzBcMFwwXDBcMzY0XDBcMFwwIgotICAiVVwwXDBcMCtcMFwwXDBcN1wwXDBcMFwyMDZZXDIyMllcMzc3XDI3MlwzMjVcMjcyXDM3NVwyNTRcMzE0XDI1NFwzNzciCi0gICJcMjQzXDMwN1wyNDNcMzc3XDIzN1wzMDRcMjM3XDM3N1wyMzBcMzAwXDIzMFwzNzdcMjIzXDI3NVwyMjNcMzc3XDIxMCIKLSAgIlwyNjZcMjEwXDM3N3JcMjUxclwzNzdvXDI0N29cMzc3b1wyNDdvXDM3N29cMjQ3b1wzNzdvXDI0N29cMzc3ZVwyNDFlIgotICAiXDM3N01cMTc3TVwzNzcoQihcMzc3Xl5eXDM3N3hcMjU1eFwzNzdcMTFcMTdcMTFcMzcyXDBcMFwwXDIzM1wwXDBcMEciCi0gICJcMFwwXDBcMjFcMFwwXDBcMVwzXDVcM1wzMzFcMjUwXDMxMlwyNTBcMzc3LkwuXDM3NylEKVwzNzcpRClcMzc3KUQpXDM3NyIKLSAgIilEKVwzNzcpRClcMzc3KUQpXDM3NylEKVwzNzcpRClcMzc3KUQpXDM3NylEKVwzNzcpRClcMzc3KUQpXDM3NydBJ1wzNzciCi0gICJjY2NcMzc3eHh4XDM3N0h3SFwzNzdcMFwwXDBcMzY1XDBcMFwwVVwwXDBcMCpcMFwwXDBcNlwwXDBcMFwwXDEzXDIyXDEzIgotICAiXDM3N3dcMjU0d1wzNzcxUTFcMzc3X19fXDM3M3R0dFwzNzdcMjI2XDIyNlwyMjZcMzc3XDI2MVwyNjFcMjYxXDM3N1wyNTciCi0gICJcMjU3XDI1N1wzNzdcMzA1XDMwNVwzMDVcMzc3XDMxNlwzMTZcMzE2XDM3N1wyNzJcMjcyXDI3MlwzNzdcMzAyXDMwMiIKLSAgIlwzMDJcMzc3XDMwM1wzMDNcMzAzXDM3N1wzMTNcMzEzXDMxM1wzNzdcMzIyXDMyMlwzMjJcMzc3XDMzMlwzMzJcMzMyIgotICAiXDM3N1wyMjVcMjI1XDIyNVwzNzdtXDI0Nm1cMzc3XDIzXDM3XDIzXDM3MVwwXDBcMFwyMzRcMFwwXDBIXDBcMFwwXDIyIgotICAiXDBcMFwwXDFcMFwwXDBcMFwxMVwxN1wxMVwzNzdcXFwyMzBcXFwzNzdBa0FcMzc3fn5+XDM3N1wzNDRcMzQ0XDM0NFwzNzciCi0gICJcMzQ0XDM0NFwzNDRcMzc3XDM0MVwzNDFcMzQxXDM3N1wzMzdcMzM3XDMzN1wzNzdcMzM3XDMzN1wzMzdcMzc3XDM2MiIKLSAgIlwzNjJcMzYyXDM3N1wzNzVcMzc1XDM3NVwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzIgotICAiXDM2M1wzNzdcMjUwXDI1MFwyNTBcMzc3XDI2NVwyNjVcMjY1XDM3N21tbVwzNzdId0hcMzc3XDBcMVwwXDM3MFwwXDAiCi0gICJcMFVcMFwwXDAqXDBcMFwwXDZcMFwwXDBcMFwwXDBcMFwwXDMzLlwzM1wzNzdWXDIxNVZcMzc3XFxcMjMwXFxcMzc3UCIKLSAgIlwyMDRQXDM3N0Z0RlwzNzdcMzMzXDMzM1wzMzNcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzMzZcMzM2XDMzNlwzNzdcMzQxXDM0MVwzNDFcMzc3XDM0MVwzNDEiCi0gICJcMzQxXDM3N1wzMzdcMzM3XDMzN1wzNzdcMzQyXDM0MlwzNDJcMzc3enp6XDM3N3NcMjUyc1wzNzdcMjRcNDBcMjRcMzY3IgotICAiXDBcMFwwXDIzNFwwXDBcMElcMFwwXDBcMjJcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiIjlcMFwwXDBcMzc3IgotICAiXDVcMTBcNVwzNTQ4WzhcMzYzTXhNXDM1MVFcMjAwUVwzNTdPXDIwM09cMzc3UlwyMTBSXDM3N1wyMjdcMjI3XDIyN1wzNzciCi0gICJcMzM0XDMzNFwzMzRcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNTNcMzUzXDM1M1wzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wyMDVcMjA1XDIwNVwzNzdcMjQ2XDI0NlwyNDZcMzc3XDIxM1wyNzBcMjEzXDM3N1wxXDJcMVwzNzAiCi0gICJcMFwwXDBVXDBcMFwwKlwwXDBcMFw3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAmXDBcMFwwZSIKLSAgIlwwXDBcMFwyNzZcMFwwXDBcMzQ2XDBcMFwwXDM2MFwwXDBcMFwzNjM5XTlcMzcxQWpBXDM3MU9cMjAwT1wzNjdRXDIwMyIKLSAgIlFcMzY2UVwyMDZRXDM3N1wyNDVcMzEwXDI0NVwzNzdcMzQwXDM0MFwzNDBcMzc3XDM1MlwzNTJcMzUyXDM3N1wyMTNcMjcwIgotICAiXDIxM1wzNzdcMjVcIlwyNVwzNzNcMFwwXDBcMjM0XDBcMFwwSFwwXDBcMFwyMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcNlwwXDBcMFwxN1wwXDBcMFwzNFwwXDBcMCIiNFwwXDBcMENcMFwwXDBnXDAiCi0gICJcMFwwXDI1MVwwXDBcMFwzNDRcMFwwXDBcMzYxXDBcMFwwXDM1Ni9ML1wzNjU7YTtcMzcxSHZIXDM3Mk19TVwzNjdMeiIKLSAgIkxcMzU3XDJcM1wyXDM2N1wwXDBcMFVcMFwwXDArXDBcMFwwXDdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwXDEyXDBcMFwwXDE1XDBcMFwwXDIwXDBcMFwwXDMzIgotICAiXDBcMFwwIiIwXDBcMFwwQ1wwXDBcMF9cMFwwXDBcMjM1XDBcMFwwXDMyN1wwXDBcMFwzNTZcMFwwXDBcMzU0XDBcMFwwIgotICAiXDM0N1wwXDBcMHtcMFwwXDBGXDBcMFwwXDIxXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDAiCi0gICJcMTBcMFwwXDBcMTVcMFwwXDBcMjBcMFwwXDBcMzBcMFwwXDAsXDBcMFwwXDc3XDBcMFwwSFwwXDBcMEhcMFwwXDBAXDAiCi0gICJcMFwwXDM3XDBcMFwwXDVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwyXDBcMFwwXDdcMFwwXDBcMTNcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTRcMFwwXDBcNVwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfYm9va19vcGVuKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfYm9va19vcGVuW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19ib29rX29wZW5bXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcM09PT0RcMFwwXDBcMzc3XDRcNVw2IgotICAiXDM3N1wwXDBcMDtcMFwwXDBcMjBcMFwwXDBcNlwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNOTk5FXDEzXDE3XDIyXDM3N1wyMjVcMjM3XDI1MlwzNzdcMzAzXDMwNiIKLSAgIlwzMTJcMzU2XDBcMFwwXDM3N1wwXDBcMCZcMFwwXDBcMjJcMFwwXDBcNVwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMC5cMTNcMTdcMjJcMzc3XDIwMlwyMjBcMjM2XDM3N1wzNjFcMzYxIgotICAiXDM2MVwzNzdcMzI1XDMyN1wzMzBcMzc3XDEyXDE1XDIwXDM3N1wwXDBcMF9cMFwwXDBcNDBcMFwwXDBcMTNcMFwwXDAiCi0gICJcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwLlwyMVwyN1wzNFwzNzdcMjA2XDIyM1wyNDAiCi0gICJcMzc3XDM1N1wzNjBcMzYwXDM3N1wzMzZcMzM2XDMzNlwzNzdcMzI1XDMyNVwzMjVcMzc3XDIzM1wyMzdcMjQ0XDMyNCIKLSAgIlwwXDBcMFwzNzdcMFwwXDAvXDBcMFwwXDI0XDBcMFwwXDVcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDAiCi0gICIuXDE2XDIzXDI3XDM3N1wyMDVcMjIyXDIzN1wzNzdcMzU3XDM2MFwzNjBcMzc3XDMzM1wzMzNcMzMzXDM3N1wzMTJcMzEyIgotICAiXDMxMlwzNzdcMzEwXDMxMFwzMTBcMzc3XDMxMFwzMTFcMzEyXDM3N1wxNFwxN1wyM1wzNzdcMFwwXDBbXDBcMFwwXDQwIgotICAiXDBcMFwwXDEzXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMC5cMjRcMzJcNDBcMzc3eVwyMTBcMjI1XDM3MFwzNjFcMzYxIgotICAiXDM2MVwzNzdcMzI1XDMyNVwzMjVcMzc3XDMxMlwzMTJcMzEyXDM3N1wzMjJcMzIyXDMyMlwzNzdcMzAzXDMwM1wzMDMiCi0gICJcMzc3XDMxNVwzMTVcMzE1XDM3N3R5flwyNzVcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyNFwwXDBcMFw2XDBcMFwwXDIiCi0gICJcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwLVwyN1wzNyZcMzc3XDE3N1wyMTVcMjMyXDM2MVwzNTdcMzYwXDM2MFwzNzdcMzMyXDMzMlwzMzJcMzc3XDMyM1wzMjMiCi0gICJcMzIzXDM3N1wzMDRcMzA0XDMwNFwzNzdcMzE2XDMxNlwzMTZcMzc3XDMwMFwzMDBcMzAwXDM3N1wzMTJcMzEyXDMxMiIKLSAgIlwzNzdcMjYxXDI2MVwyNjFcMzM2XDE1XDIxXDI1XDM3N1wwXDBcMFlcMFwwXDAjXDBcMFwwXDIyXDBcMFwwXDE0XDBcMCIKLSAgIlwwXDEyXDBcMFwwXDEyXDBcMFwwXDEyXDBcMFwwXDExXDBcMFwwXDdcMFwwXDBcNFwwXDBcMFwxXDBcMFwwXDBcMFwwIgotICAiXDBcMzc3dlwyMDVcMjIyXDM1MFwzNTZcMzU3XDM1N1wzNzdcMzMxXDMzMVwzMzFcMzc3XDMyM1wzMjNcMzIzXDM3N1wzMjAiCi0gICJcMzIwXDMyMFwzNzdcMzAyXDMwMlwzMDJcMzc3XDMxM1wzMTNcMzEzXDM3N1wzMTFcMzExXDMxMVwzNzdcMjc0XDI3NCIKLSAgIlwyNzRcMzc3XDI0NFwyNDdcMjUxXDM0NGhrbFwzNTEzMzNcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzUyXDBcMFwwXDE3N1wwXDBcMD1cMFwwXDBcMjBcMFwwXDBcNlwwXDAiCi0gICJcMFwxQU9dXDM3N1wyNTVcMjY1XDI3NFwzNjNcMzUyXDM1MlwzNTJcMzc3XDMyMlwzMjJcMzIyXDM3N1wyNzdcMjc3XDI3NyIKLSAgIlwzNzdcMzE1XDMxNVwzMTVcMzc3XDMxM1wzMTNcMzEzXDM3N1wyNzVcMjc1XDI3NVwzNzdcMzA2XDMwNlwzMDZcMzc3IgotICAiXDI2NVwyNjZcMjY3XDM2NVwyMTFcMjIwXDIyNlwzNzBcMjcwXDI3MFwyNzBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N0BBQlwzNDJcMFwwXDBcMTc3XDBcMFwwJVwwXDBcMFwyMFwwXDBcMFw0XDBcMCIKLSAgIlwwXDM3N01gdFwzNDBcMzUzXDM1M1wzNTNcMzc3XDMyMVwzMjFcMzIxXDM3N1wzMDNcMzAzXDMwM1wzNzdcMzAxXDMwMSIKLSAgIlwzMDFcMzc3XDMxMFwzMTBcMzEwXDM3N1wyNjdcMjY3XDI2N1wzNzdcMzAzXDMwM1wzMDNcMzc3XDIyN1wyMzdcMjQ3IgotICAiXDM0N1wyNDFcMjQzXDI0NFwzNzZcMzc0XDM3NVwzNzVcMzc3XDM2M1wzNjRcMzY0XDM3N1wzNTNcMzU0XDM1NVwzNzciCi0gICJcMzUyXDM1M1wzNTRcMzc3XDM1MVwzNTJcMzUzXDM3N1wzNTZcMzU3XDM2MVwzNzdcMzY2XDM2N1wzNzBcMzc3XDM0NCIKLSAgIlwzNDVcMzQ2XDM3NlwyMjJcMjIzXDIyNVwzNzVcMFwwXDBcMzc3XDBcMFwwIiI5XDBcMFwwXDMzXDBcMFwwXDdcMFwwIgotICAiXDA9MkFPXDM3N1wyMTRcMjMwXDI0MlwzNjJcMzQ3XDM0N1wzNDdcMzc3XDMxMVwzMTFcMzExXDM3N1wyNzNcMjczXDI3MyIKLSAgIlwzNzdcMzA0XDMwNFwzMDRcMzc3XDMwMlwzMDJcMzAyXDM3N1wyNDRcMjQ3XDI1M1wzNDZcMjIzXDIyNlwyMzFcMzc1IgotICAiXDMyN1wzMzBcMzMwXDM3N1wzNzRcMzc1XDM3NVwzNzdcMzcyXDM3NFwzNzRcMzc3XDM3MVwzNzJcMzczXDM3N1wzNzAiCi0gICJcMzcxXDM3MlwzNzdcMzY3XDM3MFwzNzFcMzc3XDM2NVwzNjZcMzcwXDM3N1wzNjdcMzY3XDM3MVwzNzdcMzA2XDMwNyIKLSAgIlwzMDdcMzc3T15qXDM3NVwwXDBcMFwzNjBcMFwwXDBCXDBcMFwwXDM3XDBcMFwwXDExXDBcMFwwXDIzXDBcMFwwXDM3NyIKLSAgIkxfclwzNDBcMzUwXDM1MFwzNTBcMzc3XDMwNlwzMDZcMzA2XDM3N1wyNzZcMjc2XDI3NlwzNzdcMjcwXDI3MFwyNzBcMzc3IgotICAiXDI2NVwyNjVcMjY2XDM2MVwyMjdcMjM2XDI0NFwzNTZcMjUwXDI1MFwyNTBcMzc3XDM3NVwzNzZcMzc2XDM3N1wzNjUiCi0gICJcMzY2XDM2NlwzNzdcMzQ3XDM1MVwzNTFcMzc3XDM1M1wzNTRcMzU1XDM3N1wzNTJcMzUzXDM1NFwzNzdcMzYwXDM2MSIKLSAgIlwzNjJcMzc3XDM3MFwzNzFcMzcyXDM3N1wzNDBcMzQyXDM0M1wzNzdcMjE3XDIyNlwyMzVcMzc2XDI1XDM0XCJcMzc3IgotICAiXDBcMFwwXDIwMVwwXDBcMD5cMFwwXDBcMzRcMFwwXDBcMTBcMFwwXDBcMTNcMFwwXDBBNURTXDM3N1wyMTVcMjMxXDI0MiIKLSAgIlwzNjNcMzQzXDM0M1wzNDNcMzc3XDMwMVwzMDFcMzAxXDM3N1wyNzZcMjc2XDI3NlwzNzdcMjE2XDIyNFwyMzJcMzE2IgotICAiXDIzNVwyMzdcMjM3XDM3NlwzNzdcMzc3XDM3N1wzNzdcMzc1XDM3NlwzNzZcMzc3XDM3NFwzNzVcMzc1XDM3N1wzNzIiCi0gICJcMzc0XDM3NFwzNzdcMzYyXDM2M1wzNjRcMzc3XDM2MVwzNjJcMzYzXDM3N1wzNjdcMzcwXDM3MVwzNzdcMzY2XDM2NiIKLSAgIlwzNjdcMzc3XDI0NlwyNTBcMjUzXDM3N3NcMTc3XDIxMlwzNzZcNFw1XDZcMzc3XDBcMFwwUFwwXDBcMCIiMVwwXDBcMCIKLSAgIlwyNFwwXDBcMFw1XDBcMFwwXDVcMFwwXDBcMjRcMFwwXDBcMzc3S19xXDM0MFwzNDVcMzQ1XDM0NVwzNzdcMzAxXDMwMSIKLSAgIlwzMDFcMzc3XDIzNlwyMzdcMjQwXDMyNlwyMjdcMjMxXDIzM1wzNzVcMzMxXDMzMVwzMzFcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNDdcMzUwXDM1MFwzNzdcMzU2XDM1N1wzNTdcMzc3XDM2NFwzNjVcMzY1XDM3N1wzNzFcMzcyXDM3M1wzNzciCi0gICJcMzcwXDM3MVwzNzJcMzc3XDM3M1wzNzNcMzczXDM3N1wzMzBcMzMwXDMzMlwzNzdcMjIzXDIzM1wyNDNcMzc3XDE3XDI0IgotICAiXDMwXDM3N1wwXDBcMHRcMFwwXDBCXDBcMFwwXCJcMFwwXDBcMTRcMFwwXDBcM1wwXDBcMFwyXDBcMFwwXDEzXDBcMFwwIgotICAiQTlJV1wzNzdcMjAyXDIxN1wyMjdcMzYwXDMzM1wzMzNcMzMzXDM3MFwyMTJcMjE2XDIyMlwzNDdcMjY0XDI2NFwyNjQiCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc1XDM3NlwzNzZcMzc3XDM2NVwzNjZcMzY2XDM3NyIKLSAgIlwzNTRcMzU2XDM1NlwzNzdcMzQ2XDM0N1wzNTBcMzc3XDM3MlwzNzJcMzczXDM3N1wzNjVcMzY1XDM2N1wzNzdcMjU2IgotICAiXDI2MlwyNjZcMzc3XFxsfFwzNzdcMFwwXDBcMzc3XDBcMFwwUFwwXDBcMCIiMVwwXDBcMFwyNVwwXDBcMFw2XDBcMFwwIgotICAiXDFcMFwwXDBcMFwwXDBcMFw1XDBcMFwwXDI0XDBcMFwwXDM3N0pdcFwzMzZcMjczXDI3M1wyNzNcMzIxXDI1M1wyNTMiCi0gICJcMjUzXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNTdcMzYwXDM2MCIKLSAgIlwzNzdcMzc0XDM3NVwzNzVcMzc3XDM3MlwzNzNcMzczXDM3N1wzNzFcMzcyXDM3M1wzNzdcMzczXDM3NFwzNzRcMzc3IgotICAiXDMzNlwzNDFcMzQzXDM3N1wyMzVcMjQ2XDI1NlwzNzdcMTJcMTVcMjBcMzc3XDBcMFwwdFwwXDBcMEFcMFwwXDBcIlwwIgotICAiXDBcMFwxM1wwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDEzXDBcMFwwQSQvOlwzNzdpbXFcMzQ2IgotICAid3h5XDM3N1wzNjJcMzYzXDM2M1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzYwXDM2MFwzNjBcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNzNcMzc0XDM3NFwzNzdcMzcxXDM3MVwzNzJcMzc3XDI3MyIKLSAgIlwyNzdcMzA0XDM3N1ZneVwzNzdcMFwwXDBcMzc3XDBcMFwwUFwwXDBcMCIiMVwwXDBcMFwyNVwwXDBcMFw2XDBcMFwwIgotICAiXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcNVwwXDBcMFwyNFwwXDBcMFwzNzdKX3RcMzcwMT5LXDM3NlwyNjMiCi0gICJcMjc1XDMwNlwzNzVcMzIxXDMyN1wzMzVcMzc3XDMzMVwzMzZcMzQzXDM3N1wzNjZcMzY3XDM2N1wzNzdcMzY1XDM2NSIKLSAgIlwzNjVcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzIxXDMyMlwzMjRcMzc3XDIzMlwyNDNcMjU0IgotICAiXDM3N1w0XDVcNlwzNzdcMFwwXDB0XDBcMFwwQVwwXDBcMCFcMFwwXDBcMTNcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMTNcMFwwXDAiIjdcMFwwXDBcMjU2KzQ8XDM2NikyO1wzNzdPXyIKLSAgInBcMzc3XnFcMjA0XDM3NlwyMjFcMjM2XDI1M1wzNzVcMjM3XDI1M1wyNjZcMzc1XDI3N1wzMDdcMzIwXDM3N1wzNTBcMzU0IgotICAiXDM1NlwzNzdcMjYyXDI3MFwyNzZcMzc3cX1cMjEwXDM3NlwwXDBcMFwzNzdcMFwwXDBQXDBcMFwwIiIxXDBcMFwwXDI1IgotICAiXDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcNVwwXDAiCi0gICJcMFwyMlwwXDBcMCZcMFwwXDA6XDBcMFwwWVwwXDBcMFwyMDBcMFwwXDBcMzAxJS01XDM3N1FhclwzNzdWZ3lcMzc1eiIKLSAgIlwyMDZcMjI1XDM3NXZcMjA1XDIyNFwzNzRcMFwwXDBcMzc3XDBcMFwwclwwXDBcMFw3N1wwXDBcMCFcMFwwXDBcMTNcMCIKLSAgIlwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwIgotICAiXDZcMFwwXDBcMjBcMFwwXDBcMzRcMFwwXDAlXDBcMFwwLVwwXDBcMCIiOFwwXDBcMFhcMFwwXDBcMjAwXDBcMFwwXDI3NSIKLSAgIiw0PVwzNzchJy5cMzc3XDBcMFwwcFwwXDBcMERcMFwwXDAqXDBcMFwwXDIzXDBcMFwwXDVcMFwwXDBcMVwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNFwwXDAiCi0gICJcMFwxMFwwXDBcMFwxNFwwXDBcMFwyMVwwXDBcMFwzMVwwXDBcMFwiXDBcMFwwLFwwXDBcMCIiN1wwXDBcMEFcMFwwXDAiCi0gICJDXDBcMFwwO1wwXDBcMClcMFwwXDBcMjZcMFwwXDBcMTBcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMiIKLSAgIlwwXDBcMFw0XDBcMFwwXDZcMFwwXDBcMTNcMFwwXDBcMjBcMFwwXDBcMzBcMFwwXDBcMzdcMFwwXDBcNDBcMFwwXDBcMzMiCi0gICJcMFwwXDBcMjFcMFwwXDBcMTBcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDRcMFwwXDBcNlwwXDBcMFwxMFwwXDBcMFwxMVwwXDBcMFw3XDBcMFwwXDQiCi0gICJcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfYm9va19yZWQpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19ib29rX3JlZFtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfYm9va19yZWRbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMCIiOVwwXDBcMFwzMDJcMFwwXDBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwIgotICAiXDBcMFwzNzdcMFwwXDBcMzU3XDBcMFwwXDM1NlwwXDBcMFwzNDZcMFwwXDBcMzQyXDBcMFwwd1wwXDBcMFwxM1wwXDAiCi0gICJcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzMlwzN1wyMVwxNlwzNzdcMzEwIgotICAiXDIyNVwyMTNcMzc3XDI3MnltXDM3N1wyNjRuYFwzNzdcMjYwZldcMzc3XDI1Ml5PXDM3N1wyNDBZS1wzNzdcMjI2U0YiCi0gICJcMzc3XDIxNk9DXDM3N1wyMTZPQ1wzNzdcMjE2T0NcMzc3XDIxNk9DXDM3N1wyMTZPQ1wzNzdcMjI1UkZcMzc3eEM4XDM3NyIKLSAgIiFcMjJcMTdcMzc2XDBcMFwwLlwwXDBcMFwxMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMjczXDI2NXBiXDM3N1wzMDNcMjE0XDIwMVwzNzdcMjY2cmVcMzc3XDIzNFdJXDM3N1wyMjFQRFwzNzdcMjA2IgotICAiSj5cMzc3ekQ5XDM3N28+NFwzNzdpOzFcMzc3aTsxXDM3N28+NFwzNzdvPjRcMzc3dkE3XDM3N28+NFwzNzdYMClcMzc3IgotICAiJ1wyNlwyMlwzNzJcMFwwXDBOXDBcMFwwXDIwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjIiCi0gICJcMjFcMTFcMTBcMzc3XDMxMVwyMjdcMjE1XDM3N1wyNzR9cVwzNzdcMjQxWktcMzc3XDIzMFRHXDM3N1wyMTRNQVwzNzciCi0gICJcMjAxRzxcMzc3dkE3XDM3N2s7MlwzNzdpOzFcMzc3aTsxXDM3N2k7MVwzNzdpOzFcMzc3dEE2XDM3N1xcMytcMzc3OyIKLSAgIiFcMzNcMzc3XDBcMFwwXlwwXDBcMERcMFwwXDBcMTZcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwyNTVcMjE3T0NcMzc3XDMxMVwyMjdcMjE1XDM3N1wyNjVxY1wzNzdcMjM1V0lcMzc3XDIyMVBEXDM3N1wyMTBLXDc3IgotICAiXDM3N3xFOlwzNzdwPjRcMzc3aTsxXDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N2w8M1wzNzd0QTZcMzc3VS8oXDM3N08iCi0gICIsJVwzNzVcMFwwXDBcMzc3XDBcMFwwJVwwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDIxXDBcMCIKLSAgIlwwXDM3N1wzMTFcMjI3XDIxNVwzNzdcMjc1fnJcMzc3XDI0NFtMXDM3N1wyMzFVSFwzNzdcMjE1TkJcMzc3XDIwMkg8IgotICAiXDM3N3dCOFwzNzdsPDNcMzc3aTsxXDM3N2k7MVwzNzdrOzJcMzc3aTsxXDM3N3NANlwzNzdcXDMrXDM3NyxcMzBcMjQiCi0gICJcMzc3XDIwMVwyMDFcMjAxXDM3N0koXCJcMzc3XDBcMFwwRlwwXDBcMFwxNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwyMzJcMjE3T0NcMzc3XDMwNFwyMTVcMjAyXDM3N1wyNjVxY1wzNzdcMjM3WEpcMzc3XDIyM1JFXDM3N1wyMTEiCi0gICJMQFwzNzd+RjtcMzc3c0A2XDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N2k7MVwzNzdrOzJcMzc3d0I4XDM3N1UvKFwzNzciCi0gICI0XDM1XDMwXDM3NktLS1wzNzdcMjIwXDIyMFwyMjBcMzc3XDBcMFwwUVwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMjBcMFwwXDBcMzc3XDMxMFwyMjZcMjE0XDM3NVwyNzR9cVwzNzdcMjQ1XFxNXDM3N1wyMzJWSFwzNzdcMjE3IgotICAiT0NcMzc3XDIwM0k9XDM3N3hDOFwzNzdtPTNcMzc3aTsxXDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N3FcNzciIjVcMzc3IgotICAiXzQsXDM3Ny1cMzFcMjVcMzc3VlZWXDM2NmdnZ1wzNzczMzNcMzc3XDBcMFwwUVwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMzM1XDIzNVdJXDM3N1wzMDNcMjE0XDIwMVwzNzdcMjY2cmVcMzc3XDI0MFlLXDM3N1wyMjVSRlwzNzciCi0gICJcMjEyTEBcMzc3XDE3N0c7XDM3N3RBNlwzNzdpOzFcMzc3aTsxXDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N3ZBN1wzNzciCi0gICJZMSlcMzc3OFwzN1wzMlwzNzdISEhcMzc3XDI3MHdqXDM3N1wwXDBcMFwzNzdcMFwwXDBjXDBcMFwwXDIxXDBcMFwwXDAiCi0gICJcMFwwXDAhXDBcMFwwXDM3N1wzMTBcMjI2XDIxNFwzNzdcMzAwXDIwNXlcMzc3XDI1NGBQXDM3N1wyMzRXSVwzNzdcMjIxIgotICAiUERcMzc3XDIwNko+XDM3N3pEOVwzNzdvPjRcMzc3aTsxXDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N209M1wzNzdmOC8iCi0gICJcMzc3L1wzMlwyNlwzNzdnZ2dcMzc3bm5uXDM3N180LFwzNzdcMFwwXDBcMzczXDBcMFwwUlwwXDBcMFwyNVwwXDBcMCIKLSAgIlwwXDBcMFwwXDI0NVwyMzFVSFwzNzdcMzA1XDIyMFwyMDVcMzc3XDI2NG5gXDM3N1wyNDRbTFwzNzdcMjMxVUhcMzc3IgotICAiXDIxNU5CXDM3N1wyMDJIPFwzNzd3QjhcMzc3bDwzXDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N2k7MVwzNzd3QjhcMzc3IgotICAiVS8oXDM3NzshXDMzXDM3N1hYWFwzNzdcMjY3dGdcMzc3XDIxXDExXDEwXDM3MlwwXDBcMFwyMzRcMFwwXDBJXDBcMFwwIgotICAiXDE3XDBcMFwwXDEzXDBcMFwwXDM3N1wyNjJ0aFwzMzdcMzAyXDIxMH1cMzc3XDI2MWhZXDM3N1wyMzdYSlwzNzdcMjIzIgotICAiUkVcMzc3XDIxMUxAXDM3N35GO1wzNzdzQDZcMzc3aTsxXDM3N2k7MVwzNzdpOzFcMzc3aTsxXDM3N2k7MVwzNzdnOTAiCi0gICJcMzc3MlwzM1wyN1wzNzdLS0tcMzc3dHR0XDM3N3pFOlwzNzBcMFwwXDBcMzY0XDBcMFwwVVwwXDBcMCtcMFwwXDBcNyIKLSAgIlwwXDBcMFwyMDZcMjQwWUtcMzc3XDMzM1wyNzJcMjY0XDM3NVwzMjRcMjU0XDI0NFwzNzdcMzIwXDI0M1wyMzNcMzc3IgotICAiXDMxNVwyMzdcMjI2XDM3N1wzMTJcMjMxXDIxN1wzNzdcMzA3XDIyNFwyMTFcMzc3XDMwMlwyMTB9XDM3N1wyNjZyZVwzNzciCi0gICJcMjY1cGJcMzc3XDI2NXBiXDM3N1wyNjVwYlwzNzdcMjY1cGJcMzc3XDI2MGZXXDM3N1wyMTRNQVwzNzdJKFwiXDM3NyIKLSAgIl5eXlwzNzdcMjcxeGtcMzc3XDIxXDExXDEwXDM3MlwwXDBcMFwyMzNcMFwwXDBHXDBcMFwwXDIxXDBcMFwwXDFcNlwzIgotICAiXDNcMzMxXDMyMlwyNTBcMjQwXDM3N1QuJ1wzNzdKKSNcMzc3SikjXDM3N0opI1wzNzdKKSNcMzc3SikjXDM3N0opI1wzNzciCi0gICJKKSNcMzc3SikjXDM3N0opI1wzNzdKKSNcMzc3SikjXDM3N0opI1wzNzdHJyFcMzc3Y2NjXDM3N3h4eFwzNzdcMjAySCIKLSAgIjxcMzc3XDBcMFwwXDM2NVwwXDBcMFVcMFwwXDAqXDBcMFwwXDZcMFwwXDBcMFwyNFwxM1wxMVwzNzdcMjcwd2pcMzc3IgotICAiWTEpXDM3N19fX1wzNzN0dHRcMzc3XDIyNlwyMjZcMjI2XDM3N1wyNjFcMjYxXDI2MVwzNzdcMjU3XDI1N1wyNTdcMzc3IgotICAiXDMwNVwzMDVcMzA1XDM3N1wzMTZcMzE2XDMxNlwzNzdcMjcyXDI3MlwyNzJcMzc3XDMwMlwzMDJcMzAyXDM3N1wzMDMiCi0gICJcMzAzXDMwM1wzNzdcMzEzXDMxM1wzMTNcMzc3XDMyMlwzMjJcMzIyXDM3N1wzMzJcMzMyXDMzMlwzNzdcMjI1XDIyNSIKLSAgIlwyMjVcMzc3XDI2NG1fXDM3N1wiXDIzXDIwXDM3MVwwXDBcMFwyMzRcMFwwXDBIXDBcMFwwXDIyXDBcMFwwXDFcMFwwIgotICAiXDBcMFwyMVwxMVwxMFwzNzdcMjQ3XU5cMzc3dkE3XDM3N35+flwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0IgotICAiXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzM3XDMzN1wzMzdcMzc3XDMzN1wzMzdcMzM3XDM3N1wzNjJcMzYyXDM2MlwzNzciCi0gICJcMzc1XDM3NVwzNzVcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDI1MCIKLSAgIlwyNTBcMjUwXDM3N1wyNjVcMjY1XDI2NVwzNzdtbW1cMzc3XDIwMkg8XDM3N1wxXDBcMFwzNzBcMFwwXDBVXDBcMFwwIgotICAiKlwwXDBcMFw2XDBcMFwwXDBcMFwwXDBcMCIiMlwzM1wyN1wzNzdcMjMyVkhcMzc3XDI0N11OXDM3N1wyMjFQRFwzNzciCi0gICJcMTc3RztcMzc3XDMzM1wzMzNcMzMzXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1N1wzNTdcMzU3IgotICAiXDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzM2XDMzNlwzMzZcMzc3XDM0MVwzNDFcMzQxXDM3N1wzNDFcMzQxXDM0MVwzNzciCi0gICJcMzM3XDMzN1wzMzdcMzc3XDM0MlwzNDJcMzQyXDM3N3p6elwzNzdcMjY3c2ZcMzc3JFwyNFwyMVwzNjdcMFwwXDBcMjM0IgotICAiXDBcMFwwSVwwXDBcMFwyMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIiOVwwXDBcMFwzNzdcMTFcNVw0XDM1NCIKLSAgImM4MFwzNjNcMjAzTUJcMzUxXDIxNFFFXDM1N1wyMTdPQ1wzNzdcMjI1UkZcMzc3XDIyN1wyMjdcMjI3XDM3N1wzMzRcMzM0IgotICAiXDMzNFwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcxXDM3MVwzNzEiCi0gICJcMzc3XDIwNVwyMDVcMjA1XDM3N1wyNDZcMjQ2XDI0NlwzNzdcMzAzXDIxM1wyMDBcMzc3XDJcMVwxXDM3MFwwXDBcMCIKLSAgIlVcMFwwXDAqXDBcMFwwXDdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCZcMFwwXDBlXDBcMFwwIgotICAiXDI3NlwwXDBcMFwzNDZcMFwwXDBcMzYwXDBcMFwwXDM2M2Y6MVwzNzFzQTdcMzcxXDIxNE9DXDM2N1wyMTdRRVwzNjYiCi0gICJcMjIyUURcMzc3XDMyMFwyNDVcMjM0XDM3N1wzNDBcMzQwXDM0MFwzNzdcMzUyXDM1MlwzNTJcMzc3XDMwM1wyMTNcMjAwIgotICAiXDM3NyVcMjVcMjFcMzczXDBcMFwwXDIzNFwwXDBcMEhcMFwwXDBcMjJcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDZcMFwwXDBcMTdcMFwwXDBcMzRcMFwwXDAiIjRcMFwwXDBDXDBcMFwwZ1wwXDBcMFwyNTEiCi0gICJcMFwwXDBcMzQ0XDBcMFwwXDM2MVwwXDBcMFwzNTZTLyhcMzY1ajsyXDM3MVwyMDFJPVwzNzJcMjExTUJcMzY3XDIwNSIKLSAgIkxBXDM1N1wzXDJcMVwzNjdcMFwwXDBVXDBcMFwwK1wwXDBcMFw3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMFwxMlwwXDBcMFwxNVwwXDBcMFwyMFwwXDBcMFwzMyIKLSAgIlwwXDBcMCIiMFwwXDBcMENcMFwwXDBfXDBcMFwwXDIzNVwwXDBcMFwzMjdcMFwwXDBcMzU2XDBcMFwwXDM1NFwwXDBcMCIKLSAgIlwzNDdcMFwwXDB7XDBcMFwwRlwwXDBcMFwyMVwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwIgotICAiXDEwXDBcMFwwXDE1XDBcMFwwXDIwXDBcMFwwXDMwXDBcMFwwLFwwXDBcMFw3N1wwXDBcMEhcMFwwXDBIXDBcMFwwQFwwIgotICAiXDBcMFwzN1wwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMlwwXDBcMFw3XDBcMFwwXDEzXDBcMFwwXDE2XDBcMFwwXDE2XDBcMFwwXDE0XDBcMFwwXDVcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAifTsKLQotCi0vKiBHZGtQaXhidWYgUkdCQSBDLVNvdXJjZSBpbWFnZSBkdW1wICovCi0KLSNpZmRlZiBfX1NVTlBST19DCi0jcHJhZ21hIGFsaWduIDQgKHN0b2NrX2Jvb2tfeWVsbG93KQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfYm9va195ZWxsb3dbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX2Jvb2tfeWVsbG93W10gPSAKLSNlbmRpZgoteyAiIgotICAvKiBQaXhidWYgbWFnaWMgKDB4NDc2NDZiNTApICovCi0gICJHZGtQIgotICAvKiBsZW5ndGg6IGhlYWRlciAoMjQpICsgcGl4ZWxfZGF0YSAoMjMwNCkgKi8KLSAgIlwwXDBcMTFcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoOTYpICovCi0gICJcMFwwXDBgIgotICAvKiB3aWR0aCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIGhlaWdodCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDAiIjlcMFwwXDBcMzAyXDBcMFwwXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM1N1wwXDBcMFwzNTZcMFwwXDBcMzQ2XDBcMFwwXDM0MlwwXDBcMHdcMFwwXDBcMTNcMFwwIgotICAiXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzIoXDQwXDVcMzc3XDM1MlwzMTUiCi0gICJpXDM3N1wzNDRcMzAwQ1wzNzdcMzQyXDI3MzNcMzc3XDM0MVwyNjcmXDM3N1wzMzNcMjYxXDM2XDM3N1wzMTdcMjQ3XDM0IgotICAiXDM3N1wzMDNcMjM1XDMyXDM3N1wyNzBcMjI0XDMxXDM3N1wyNzBcMjI0XDMxXDM3N1wyNzBcMjI0XDMxXDM3N1wyNzAiCi0gICJcMjI0XDMxXDM3N1wyNzBcMjI0XDMxXDM3N1wzMDFcMjM0XDMyXDM3N1wyMzR+XDI1XDM3NypcIlw2XDM3NlwwXDBcMCIKLSAgIi5cMFwwXDBcMTBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDI3M1wzNDNcMjc0IgotICAiNFwzNzdcMzUwXDMxMV1cMzc3XDM0M1wyNzU4XDM3N1wzMTJcMjQzXDMzXDM3N1wyNzNcMjI3XDMyXDM3N1wyNTVcMjE0IgotICAiXDMwXDM3N1wyMzZcMTc3XDI1XDM3N1wyMjB0XDIzXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMjB0XDIzXDM3NyIKLSAgIlwyMjB0XDIzXDM3N1wyMzB7XDI1XDM3N1wyMjB0XDIzXDM3N3JcXFwxN1wzNzcxKFw3XDM3MlwwXDBcME5cMFwwXDBcMjAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyMlwyNlwyMlwzXDM3N1wzNTJcMzE2bVwzNzdcMzQ1IgotICAiXDMwMkhcMzc3XDMyMVwyNTBcMzRcMzc3XDMwNFwyMzZcMzNcMzc3XDI2NFwyMjJcMzFcMzc3XDI0NlwyMDZcMjdcMzc3IgotICAiXDIzMHtcMjVcMzc3XDIxMnBcMjNcMzc3XDIxMW5cMjJcMzc3XDIxMW5cMjJcMzc3XDIxMW5cMjJcMzc3XDIxMW5cMjIiCi0gICJcMzc3XDIyN3lcMjRcMzc3d2BcMjBcMzc3TT5cMTJcMzc3XDBcMFwwXlwwXDBcMERcMFwwXDBcMTZcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyNTVcMjcyXDIyNlwzMVwzNzdcMzUyXDMxNm1cMzc3XDM0M1wyNzQ2XDM3NyIKLSAgIlwzMTNcMjQ0XDM0XDM3N1wyNzNcMjI3XDMyXDM3N1wyNTdcMjE1XDMwXDM3N1wyNDFcMjAyXDI2XDM3N1wyMjF1XDI0IgotICAiXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTRxXDIzXDM3N1wyMjciCi0gICJ5XDI0XDM3N25ZXDE3XDM3N2ZSXDE2XDM3NVwwXDBcMFwzNzdcMFwwXDAlXDBcMFwwXDVcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMjFcMFwwXDBcMzc3XDM1MlwzMTZtXDM3N1wzNDVcMzAzSlwzNzdcMzI0XDI1M1wzNVwzNzdcMzA2IgotICAiXDI0MFwzM1wzNzdcMjY2XDIyM1wzMVwzNzdcMjUwXDIxMFwyN1wzNzdcMjMyfFwyNVwzNzdcMjE0cVwyM1wzNzdcMjExIgotICAiblwyMlwzNzdcMjExblwyMlwzNzdcMjEycFwyM1wzNzdcMjExblwyMlwzNzdcMjI1eFwyNFwzNzd3YFwyMFwzNzc5LlwxMCIKLSAgIlwzNzdcMjAxXDIwMVwyMDFcMzc3XkxcMTVcMzc3XDBcMFwwRlwwXDBcMFwxNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwyMzJcMjcyXDIyNlwzMVwzNzdcMzUwXDMxMl9cMzc3XDM0M1wyNzQ2XDM3N1wzMTVcMjQ1XDM0XDM3N1wyNzciCi0gICJcMjMyXDMyXDM3N1wyNjFcMjE3XDMwXDM3N1wyNDNcMjAzXDI2XDM3N1wyMjV4XDI0XDM3N1wyMTFuXDIyXDM3N1wyMTEiCi0gICJuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTJwXDIzXDM3N1wyMzJ8XDI1XDM3N25ZXDE3XDM3N0M2XDExIgotICAiXDM3NktLS1wzNzdcMjIwXDIyMFwyMjBcMzc3XDBcMFwwUVwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjAiCi0gICJcMFwwXDBcMzc3XDM1MVwzMTVrXDM3NVwzNDVcMzAySFwzNzdcMzI2XDI1NVwzNVwzNzdcMzEwXDI0MVwzM1wzNzdcMjcyIgotICAiXDIyNlwzMVwzNzdcMjUyXDIxMVwyN1wzNzdcMjM0flwyNVwzNzdcMjE2clwyM1wzNzdcMjExblwyMlwzNzdcMjExblwyMiIKLSAgIlwzNzdcMjExblwyMlwzNzdcMjExblwyMlwzNzdcMjIzd1wyNFwzNzd6Y1wyMVwzNzc7MFwxMFwzNzdWVlZcMzY2Z2dnIgotICAiXDM3NzMzM1wzNzdcMFwwXDBRXDBcMFwwXDIwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzMzVcMzEzXDI0NFwzNFwzNzciCi0gICJcMzUwXDMxMV1cMzc3XDM0M1wyNzU4XDM3N1wzMTdcMjQ3XDM0XDM3N1wzMDFcMjM0XDMyXDM3N1wyNjNcMjIwXDMwXDM3NyIKLSAgIlwyNDVcMjA1XDI2XDM3N1wyMjd5XDI0XDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuIgotICAiXDIyXDM3N1wyMTFuXDIyXDM3N1wyMzB7XDI1XDM3N3NdXDIwXDM3N0k7XDEyXDM3N0hISFwzNzdcMzQ0XDI3N1w3N1wzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwY1wwXDBcMFwyMVwwXDBcMFwwXDBcMFwwIVwwXDBcMFwzNzdcMzUyXDMxNmtcMzc3XDM0NyIKLSAgIlwzMDZSXDM3N1wzMzdcMjY0XDM2XDM3N1wzMTJcMjQzXDMzXDM3N1wyNzNcMjI3XDMyXDM3N1wyNTVcMjE0XDMwXDM3NyIKLSAgIlwyMzZcMTc3XDI1XDM3N1wyMjB0XDIzXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuIgotICAiXDIyXDM3N1wyMTZyXDIzXDM3N1wyMDNqXDIyXDM3Nz0xXDEwXDM3N2dnZ1wzNzdubm5cMzc3emNcMjFcMzc3XDBcMFwwIgotICAiXDM3M1wwXDBcMFJcMFwwXDBcMjVcMFwwXDBcMFwwXDBcMFwyNDVcMzA2XDI0MFwzM1wzNzdcMzUxXDMxM2JcMzc3XDM0MiIKLSAgIlwyNzMzXDM3N1wzMjRcMjUzXDM1XDM3N1wzMDZcMjQwXDMzXDM3N1wyNjZcMjIzXDMxXDM3N1wyNTBcMjEwXDI3XDM3NyIKLSAgIlwyMzJ8XDI1XDM3N1wyMTRxXDIzXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyXDM3N1wyMTFuXDIyIgotICAiXDM3N1wyMzJ8XDI1XDM3N25ZXDE3XDM3N00+XDEyXDM3N1hYWFwzNzdcMzQ0XDI3NjtcMzc3XDI1XDIxXDNcMzcyXDAiCi0gICJcMFwwXDIzNFwwXDBcMElcMFwwXDBcMTdcMFwwXDBcMTNcMFwwXDBcMzc3XDMyNlwyNjZEXDMzN1wzNDdcMzA3WFwzNzciCi0gICJcMzQxXDI3MCpcMzc3XDMxNVwyNDVcMzRcMzc3XDI3N1wyMzJcMzJcMzc3XDI2MVwyMTdcMzBcMzc3XDI0M1wyMDNcMjYiCi0gICJcMzc3XDIyNXhcMjRcMzc3XDIxMW5cMjJcMzc3XDIxMW5cMjJcMzc3XDIxMW5cMjJcMzc3XDIxMW5cMjJcMzc3XDIxMSIKLSAgIm5cMjJcMzc3XDIwNWtcMjJcMzc3QTRcMTBcMzc3S0tLXDM3N3R0dFwzNzdcMjM0XDE3N1wzMFwzNzBcMFwwXDBcMzY0IgotICAiXDBcMFwwVVwwXDBcMCtcMFwwXDBcN1wwXDBcMFwyMDZcMzE3XDI0N1wzNFwzNzdcMzYwXDMzNlwyMzZcMzc1XDM1NlwzMzAiCi0gICJcMjEzXDM3N1wzNTVcMzI0flwzNzdcMzU0XDMyMndcMzc3XDM1M1wzMTduXDM3N1wzNTJcMzE0Z1wzNzdcMzQ3XDMwNyIKLSAgIlhcMzc3XDM0M1wyNzU4XDM3N1wzNDNcMjc0NFwzNzdcMzQzXDI3NDRcMzc3XDM0M1wyNzQ0XDM3N1wzNDNcMjc0NFwzNzciCi0gICJcMzQxXDI2NyZcMzc3XDI2NFwyMjJcMzFcMzc3XkxcMTVcMzc3Xl5eXDM3N1wzNDRcMzAwQVwzNzdcMjVcMjFcM1wzNzIiCi0gICJcMFwwXDBcMjMzXDBcMFwwR1wwXDBcMFwyMVwwXDBcMFwxXDdcNlwxXDMzMVwzNTZcMzI2XDIwNVwzNzdsV1wxN1wzNzciCi0gICJgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNSIKLSAgIlwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzdgTlwxNVwzNzddS1wxNFwzNzdjY2NcMzc3eHh4XDM3N1wyNTBcMjEwIgotICAiXDI3XDM3N1wwXDBcMFwzNjVcMFwwXDBVXDBcMFwwKlwwXDBcMFw2XDBcMFwwXDBcMzJcMjVcM1wzNzdcMzQ0XDI3N1w3NyIKLSAgIlwzNzdzXVwyMFwzNzdfX19cMzczdHR0XDM3N1wyMjZcMjI2XDIyNlwzNzdcMjYxXDI2MVwyNjFcMzc3XDI1N1wyNTdcMjU3IgotICAiXDM3N1wzMDVcMzA1XDMwNVwzNzdcMzE2XDMxNlwzMTZcMzc3XDI3MlwyNzJcMjcyXDM3N1wzMDJcMzAyXDMwMlwzNzciCi0gICJcMzAzXDMwM1wzMDNcMzc3XDMxM1wzMTNcMzEzXDM3N1wzMjJcMzIyXDMyMlwzNzdcMzMyXDMzMlwzMzJcMzc3XDIyNSIKLSAgIlwyMjVcMjI1XDM3N1wzNDJcMjcyMVwzNzcsI1w2XDM3MVwwXDBcMFwyMzRcMFwwXDBIXDBcMFwwXDIyXDBcMFwwXDFcMCIKLSAgIlwwXDBcMFwyNlwyMlwzXDM3N1wzMzBcMjU2XDM1XDM3N1wyMzB7XDI1XDM3N35+flwzNzdcMzQ0XDM0NFwzNDRcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N1wzNDFcMzQxXDM0MVwzNzdcMzM3XDMzN1wzMzdcMzc3XDMzN1wzMzdcMzM3XDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdcMzc1XDM3NVwzNzVcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDI1MFwyNTBcMjUwXDM3N1wyNjVcMjY1XDI2NVwzNzdtbW1cMzc3XDI1MFwyMTBcMjdcMzc3XDFcMVwwIgotICAiXDM3MFwwXDBcMFVcMFwwXDAqXDBcMFwwXDZcMFwwXDBcMFwwXDBcMFwwQTRcMTBcMzc3XDMxMFwyNDFcMzNcMzc3XDMzMCIKLSAgIlwyNTZcMzVcMzc3XDI3M1wyMjdcMzJcMzc3XDI0NVwyMDVcMjZcMzc3XDMzM1wzMzNcMzMzXDM3N1wzNTJcMzUyXDM1MiIKLSAgIlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzM2XDMzNlwzMzZcMzc3IgotICAiXDM0MVwzNDFcMzQxXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzM3XDMzN1wzMzdcMzc3XDM0MlwzNDJcMzQyXDM3N3p6elwzNzciCi0gICJcMzQzXDI3NTpcMzc3LSVcN1wzNjdcMFwwXDBcMjM0XDBcMFwwSVwwXDBcMFwyMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMCIiOVwwXDBcMFwzNzdcMTNcMTBcMVwzNTR+ZVwyNVwzNjNcMjQzXDIwNiFcMzUxXDI2MFwyMjBcNDBcMzU3IgotICAiXDI3MlwyMjZcMzFcMzc3XDMwMVwyMzRcMzJcMzc3XDIyN1wyMjdcMjI3XDM3N1wzMzRcMzM0XDMzNFwzNzdcMzQ1XDM0NSIKLSAgIlwzNDVcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDIwNVwyMDVcMjA1IgotICAiXDM3N1wyNDZcMjQ2XDI0NlwzNzdcMzUwXDMxMFtcMzc3XDJcMlwwXDM3MFwwXDBcMFVcMFwwXDAqXDBcMFwwXDdcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCZcMFwwXDBlXDBcMFwwXDI3NlwwXDBcMFwzNDZcMFwwXDAiCi0gICJcMzYwXDBcMFwwXDM2M1wyMDJpXDI0XDM3MVwyMjR3XDI2XDM3MVwyNjJcMjIwXDM1XDM2N1wyNjZcMjI0XDM2XDM2NiIKLSAgIlwyNzVcMjMxXDMyXDM3N1wzNTVcMzI1XDIwMFwzNzdcMzQwXDM0MFwzNDBcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTBcMzEwIgotICAiW1wzNzcwJlw2XDM3M1wwXDBcMFwyMzRcMFwwXDBIXDBcMFwwXDIyXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFw2XDBcMFwwXDE3XDBcMFwwXDM0XDBcMFwwIiI0XDBcMFwwQ1wwXDBcMGdcMFwwXDBcMjUxIgotICAiXDBcMFwwXDM0NFwwXDBcMFwzNjFcMFwwXDBcMzU2aVVcMjFcMzY1XDIwN25cMjVcMzcxXDI0NVwyMDZcMzFcMzcyXDI1NyIKLSAgIlwyMTVcMzNcMzY3XDI1MFwyMTFcMzZcMzU3XDRcM1wwXDM2N1wwXDBcMFVcMFwwXDArXDBcMFwwXDdcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwXDEyXDBcMFwwIgotICAiXDE1XDBcMFwwXDIwXDBcMFwwXDMzXDBcMFwwIiIwXDBcMFwwQ1wwXDBcMF9cMFwwXDBcMjM1XDBcMFwwXDMyN1wwXDAiCi0gICJcMFwzNTZcMFwwXDBcMzU0XDBcMFwwXDM0N1wwXDBcMHtcMFwwXDBGXDBcMFwwXDIxXDBcMFwwXDFcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMTBcMFwwXDBcMTVcMFwwXDBcMjBcMFwwXDBcMzBcMFwwXDAsXDBcMFwwXDc3IgotICAiXDBcMFwwSFwwXDBcMEhcMFwwXDBAXDBcMFwwXDM3XDBcMFwwXDVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDdcMFwwXDBcMTNcMFwwXDBcMTZcMFwwIgotICAiXDBcMTZcMFwwXDBcMTRcMFwwXDBcNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfbGluZV9pbikKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX2xpbmVfaW5bXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX2xpbmVfaW5bXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwLS4uXDI1NyMjI1wzNzdcMTBcMTBcMTB4XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDI1XDI1XDI1XDM3N1wzNDVcMzQ1XDM0NlwzNzcjIyNcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwZmZmXDMxNVwzNTZcMzU2XDM1NlwzNzdNTU1cMjE3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDJcMlwyXDMzN1wyNzdcMjc3XDI3N1wzNzdcM1wzXDNcMzI1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzM1wwXDBcMGlcMFwwXDBzXDBcMFwwX1wwXDAiCi0gICJcMD1cMFwwXDAhXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjEiCi0gICJcMjFcMjJcMzc3XDM1NFwzNTRcMzU1XDM3N1wyMlwyMlwyMlwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMGBcMFwwXDBcMjYyXDIxNlwyMTZcMjE2XDI2MFwyMTBcMjEwXDIxMCIKLSAgIlwyMzNUVFRcMjEwJCQkdlwwXDBcMGJcMFwwXDBGXDBcMFwwJlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDAkJCVcMjQzXDI3M1wyNzNcMjczXDM3N1wwXDBcME9cMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjEybGxsXDMyNlwzMTZcMzE2XDMxNlwzMTFcMjQ1XDI0NVwyNDVcMjc0XDAiCi0gICJcMFwwXDI0MlwwXDBcMFwyMTRcMFwwXDB2XDBcMFwwVVwwXDBcMDtcMFwwXDArXDBcMFwwXCJcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzUyXDM1MlwzNTJcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjMwbW1tXDM0N1wzMTZcMzE2XDMxNlwzNDVcMTBcMTBcMTAiCi0gICJcMzEzXDEwXDEwXDEwXDIzMVwwXDBcMEdcMFwwXDA9XDBcMFwwIiIxXDBcMFwwOlwwXDBcMCIiMlwwXDBcMCNcMFwwXDAiCi0gICJcMzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3UlJSXDM3N1wzMzJcMzMyXDMzNFwzNzc9PT1cMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM0M1wyNjVcMjY1XDI2NVwzNjNLSyIKLSAgIktcMzUxXDBcMFwwTVwwXDBcMFwyMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzMiCi0gICJcMFwwXDBcMzVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMzczXDM3M1wzNzNcMzc3XDIzNFwyMzMiCi0gICJcMjM0XDM3N1wzMjRcMzI0XDMyNFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjMxIgotICAiR0dHXDM2MVwyNDRcMjQ0XDI0NFwzNjVcMFwwXDBcMjQyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMFwzMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDIyMVwyMjEiCi0gICJcMjIxXDM3Nz09PVwzNzc9PT1cMzc3XDM2XDM2XDM2XDM3N1w3N1w3N1w3N1wzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwzMzFfX19cMzY3IyMjXDM2MlwwXDBcMEJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wyMjEiCi0gICJcMjIxXDIyMVwzNzc9PT1cMzc3PT09XDM3N1wzNlwzNlwzNlwzNzdCQkJcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMzQyU1NTXDM1NVwwXDBcMFwzNTNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3IgotICAiXDIyMVwyMjFcMjIxXDM3Nz09PVwzNzc9PT1cMzc3XDM2XDM2XDM2XDM3N0JCQlwzNzdcMFwwXDBcMzc3XDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwzMzBTU1NcMzUzXDBcMFwwXDM1NVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwzNzdcMjIxXDIyMVwyMjFcMzc3PT09XDM3Nz09PVwzNzdcMzZcMzZcMzZcMzc3QkJCXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDI2MicnJ1wzMzJcIlwiXCJcMzY3XDBcMFwwPFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMzc3XDIyMVwyMjFcMjIxXDM3Nz09PVwzNzc9PT1cMzc3XDM2XDM2XDM2XDM3N0JCQlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMERcMFwwXDBcMzE1VVVVXDM2MlwwXDBcMFwzMTNcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDM3N1wyMjFcMjIxXDIyMVwzNzc9PT1cMzc3PT09XDM3N1wzNlwzNlwzNlwzNzdFRUVcMzc3XDBcMFwwIgotICAiXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyNDFMTExcMzIyRkZGXDMzNlwwXDBcMFwyMzRcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwzNzdBQUFcMzc3ZGRkXDM3NyUlJVwzNzcsLCxcMzc3PDw8XDM3N1wwXDBcMFwzNzdcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzVcMFwwXDBcMjM2WFhYXDI1N0ZGRlwyNzNcMFwwXDBxXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMzc3XDI1XDI1XDI1XDM3N1w3XDdcN1wzNzcoKChcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiIjlcMFwwXDBcMjA1WlpaXDIzM1wwXDBcMFwyMzZcMFwwXDBiXDBcMCIKLSAgIlwwXCJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMzc3KysrXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMEBcMFwwXDBjWFhYe1wwXDBcMHtcMFwwXDAiIjNcMFwwXDAlXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzMjQiCi0gICIrKytcMzI0XDBcMFwwXDMyNFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDAiIjdcMFwwXDBUXDBcMFwwX1wwXDBcMF5cMFwwXDAjXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyNTIrKytcMjUyXDBcMFwwXDI1MiIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMTNcMFwwXDBAXDBcMFwwRlwwXDBcMEpcMFwwXDAiIjJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDE3NysrK1wxNzdcMFwwXDBcMTc3XDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIiIxIgotICAiXDBcMFwwOlw3XDdcN0BcMFwwXDAsXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFUrKytVXDBcMFwwVVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjdcMFwwXDAvXDBcMFwwIiIyXDEwXDEwXDEwIiI1XDAiCi0gICJcMFwwK1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDAqKysrKlwwXDBcMCpcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwyM1wwXDBcMCIiMFwwXDBcMC1cMTRcMTRcMTQtXDBcMFwwK1wwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDAifTsKLQotCi0vKiBHZGtQaXhidWYgUkdCQSBDLVNvdXJjZSBpbWFnZSBkdW1wICovCi0KLSNpZmRlZiBfX1NVTlBST19DCi0jcHJhZ21hIGFsaWduIDQgKHN0b2NrX21haWwpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsW10gPSAKLSNlbmRpZgoteyAiIgotICAvKiBQaXhidWYgbWFnaWMgKDB4NDc2NDZiNTApICovCi0gICJHZGtQIgotICAvKiBsZW5ndGg6IGhlYWRlciAoMjQpICsgcGl4ZWxfZGF0YSAoMjMwNCkgKi8KLSAgIlwwXDBcMTFcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoOTYpICovCi0gICJcMFwwXDBgIgotICAvKiB3aWR0aCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIGhlaWdodCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDIiCi0gICJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMCIKLSAgIlwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMVwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwZlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwbVwwIgotICAiXDBcMFwxMFwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDM3N1NTU1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NlwzNzZcMzc2XDM3NyIKLSAgIlwzNzVcMzc1XDM3NVwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcwIgotICAiXDM3MFwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NFwzNjQiCi0gICJcMzY0XDM3N1wzNDNcMzQzXDM0M1wzNzdTU1NcMzc3XDBcMFwwXDM3N1wwXDBcMFwzMVwwXDBcMFwxMFwwXDBcMFwxXDAiCi0gICJcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzU2XDM1NlwzNTZcMzc3T09PXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NSIKLSAgIlwzNjVcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyIgotICAiXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1N1wzNzciCi0gICJcMzU2XDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNDNcMzQzXDM0M1wzNzdPT09cMzc3XDI1NlwyNTZcMjU2XDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDAoXDBcMFwwXDE3XDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzQ0XDM0NFwzNDRcMzc3Q0NDXDM3N1wzNzVcMzc1XDM3NVwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2MlwzNjIiCi0gICJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1NyIKLSAgIlwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzQzXDM0M1wzNDNcMzc3IgotICAiT09PXDM3N1wyNTRcMjU0XDI1NFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwIgotICAiXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NCIKLSAgIlwzNDRcMzc3T09PXDM3N1wzNzNcMzczXDM3M1wzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwIgotICAiXDM2MFwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU1XDM1NVwzNTUiCi0gICJcMzc3XDM0M1wzNDNcMzQzXDM3N0NDQ1wzNzdcMjQwXDI0MFwyNDBcMzc3XDMyNFwzMjRcMzI0XDM3N1wzMTBcMzEwXDMxMCIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3M1wzNzNcMzczXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3Q0NDXDM3N1wzNzAiCi0gICJcMzcwXDM3MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NSIKLSAgIlwzNTVcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNDNcMzQzXDM0M1wzNzdPT09cMzc3XDIyNVwyMjVcMjI1XDM3N1wzMjRcMzI0IgotICAiXDMyNFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDAiCi0gICJcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NSIKLSAgIlwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3Pj4+XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzU2IgotICAiXDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzQzXDM0M1wzNDNcMzc3TU1NXDM3N1wyMDEiCi0gICJcMjAxXDIwMVwzNzdcMzA2XDMwNlwzMDZcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMCIKLSAgIlwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzNcMzczXDM3M1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDQiCi0gICJcMzQ0XDM0NFwzNzdqampcMzc3Q0NDXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzU0XDM1NFwzNTRcMzc3XDM0M1wzNDNcMzQzIgotICAiXDM3N09PT1wzNzdqampcMzc3XDMwNlwzMDZcMzA2XDM3N1wzMDZcMzA2XDMwNlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NCIKLSAgIlwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwIgotICAiXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzciCi0gICJcMzQ0XDM0NFwzNDRcMzc3Y2NjXDM3N1wzNzdcMzc3XDM3N1wzNzdcMjcxXDI3MVwyNzFcMzc3T09PXDM3N1wzNjBcMzYwIgotICAiXDM2MFwzNzdPT09cMzc3XDIyNVwyMjVcMjI1XDM3N1wzMDZcMzA2XDMwNlwzNzdzc3NcMzc3XDMwNlwzMDZcMzA2XDM3NyIKLSAgIlwzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMCIKLSAgIlwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzczXDM3M1wzNzNcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N2NjY1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzciCi0gICJcMzI0XDMyNFwzMjRcMzc3T09PXDM3N1wyNTRcMjU0XDI1NFwzNzdcMzA2XDMwNlwzMDZcMzc3XDM0NFwzNDRcMzQ0XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzd8fHxcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMFwzMTBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNDRcMzQ0XDM0NFwzNzdzc3NcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NSIKLSAgIlwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzciCi0gICJ8fHxcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDAiCi0gICJcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3fHx8XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NCIKLSAgIlwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0IgotICAiXDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzd8fHxcMzc3XDMxMFwzMTAiCi0gICJcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3NyIKLSAgInNzc1wzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3IgotICAiXDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzQiCi0gICJcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NCIKLSAgIlwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdjY2NcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwIgotICAiXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBtXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMjA3XDBcMFwwKFwwXDBcMFwxN1wwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwxMFwwXDBcMFwzMSIKLSAgIlwwXDBcMChcMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMCIKLSAgIi1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAoXDBcMFwwXDMxXDBcMFwwXDEwIgotICAiXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMTBcMFwwXDBcMTZcMFwwXDBcMjFcMFwwXDBcMjEiCi0gICJcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDAiCi0gICJcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMTZcMFwwXDBcMTBcMCIKLSAgIlwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFwyXDBcMFwwIgotICAiXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDAiCi0gICJcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDFcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19tYWlsX2NvbXBvc2UpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsX2NvbXBvc2VbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21haWxfY29tcG9zZVtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wzMjFcMjU3IgotICAiYVwzNzdcMzYxXDM0M1wyNTRcMzc3XDM3M1wyNTFcMTdcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwVlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDI2NVwyNjUiCi0gICJcMjY1XDM3N1wyNDBrXDExXDM3N1wzNjFcMzQzXDI1NFwzNzdcMzczXDI1MVwxN1wzNzdcMjAxYFwwXDM3N1wwXDBcMCIKLSAgIlwzNzdcMzQwXDM0MFwzNDBcMzc3XDMwMVwzMDFcMzAxXDM3N1wwXDBcMFwzNzdcMFwwXDBEXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzVcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDBcMFwwXDM3N1wzNDZcMzAzcFwzNzdcMzYxXDMyM1wyMDdcMzc3IgotICAiXDMyNVwyMTdcMTRcMzc3XDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMzAzXDMwM1wzMDNcMzc3XDM3M1wzNzNcMzczIgotICAiXDM3N1wyNTBcMjUwXDI1MFwzNzdcMFwwXDBcMzc3XDBcMFwwVlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wyNjNcMjYzIgotICAiXDI2M1wzNzdcMjQwa1wxMVwzNzdcMzYxXDM0M1wyNTRcMzc3XDM3M1wyNTFcMTdcMzc3XDIwMWBcMFwzNzdcMFwwXDAiCi0gICJcMzc3XDM3MlwzNzJcMzcyXDM3N1wyNTVcMjU1XDI1NVwzNzd2dnZcMzc3XV1dXDM3N0BAQFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzNcMzczXDM3M1wzNzdcMzczXDM3M1wzNzNcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzNcMzczIgotICAiXDM3M1wzNzdcMzcwXDM3MFwzNzBcMzc3XDBcMFwwXDM3N1wzNDZcMzAzcFwzNzdcMzYxXDMyMH5cMzc3XDMyNVwyMTciCi0gICJcMTRcMzc3XDBcMFwwXDM3N1wyNTRcMjU0XDI1NFwzNzdcMzcwXDM3MFwzNjZcMzc3XDM0MlwzNDJcMzQyXDM3N1wyMDUiCi0gICJcMjA1XDIwNVwzNzdLS0lcMzc3XDI2XDI2XDI2XDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1IgotICAiXDM3N1wzNzNcMzczXDM3M1wzNzdcMzczXDM3M1wzNzNcMzc3XDM3M1wzNzNcMzcyXDM3N319fVwzNzdcMjQwa1wxMVwzNzciCi0gICJcMzYxXDM0M1wyNTRcMzc3XDM3M1wyNTFcMTdcMzc3XDIwMWBcMFwzNzdcMFwwXDBcMzc3XDM2NFwzNjRcMzY0XDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMzYwXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzMjVcMzI1XDMyNVwzNzdcMjU1IgotICAiXDI1NVwyNTVcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3NyIKLSAgIlwzNjZcMzY2XDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDBcMFwwXDM3N1wzNDZcMzAzcFwzNzdcMzYxXDMyMH5cMzc3IgotICAiXDMyNVwyMTdcMTRcMzc3XDBcMFwwXDM3N1wyMDdcMjA3XDIwNlwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM0MlwzNDJcMzQyIgotICAiXDM3N1wzMzdcMzM3XDMzN1wzNzdcMzUzXDM1M1wzNTNcMzc3XDM0MlwzNDJcMzQyXDM3N1wzMDFcMzAxXDMwMVwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MCIKLSAgIlwzNjBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzY2IgotICAiXDM3N1wyNTZcMjU2XDI1NlwzNzd7U1w3XDM3N1wzNjFcMzQzXDI1NFwzNzdcMzczXDI1MVwxN1wzNzdcMjAxYFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTNcMzUzXDM1MVwzNzdcMzUxXDM1MVwzNDciCi0gICJcMzc3XDM1MVwzNTFcMzQ3XDM3N1wzNDBcMzQwXDMzNlwzNzdcMjc3XDI3N1wyNzdcMzc3XDBcMFwwXDM3N1wwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjNcMzYzIgotICAiXDM2M1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzU1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMFwwXDBcMzc3XDM0NiIKLSAgIlwzMDNwXDM3N1wzNjFcMzIyXDIwNFwzNzdcMzEyXDIwN1wxM1wzNzdcMFwwXDBcMzc3XDIzNlwyMzZcMjM0XDM3N1wzMzQiCi0gICJcMzM0XDMzMVwzNzdcMzMxXDMzMVwzMzFcMzc3XDMzMVwzMzFcMzI2XDM3N1wzMjZcMzI2XDMyNFwzNzdcMzQ1XDM0NSIKLSAgIlwzNDRcMzc3XDMzMVwzMzFcMzI3XDM3N1wyNzJcMjcyXDI3MlwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzU1XDM1NVwzNTVcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjQiCi0gICJcMzY0XDM2NFwzNzdcMzYyXDM2MlwzNjJcMzc3XDI1MlwyNTJcMjUyXDM3N1wyNDBrXDExXDM3N1wzNjFcMzQzXDI1NCIKLSAgIlwzNzdcMzczXDI1MVwxN1wzNzdcMjAxYFwwXDM3N1wwXDBcMFwzNzdcMzQ3XDM0N1wzNDVcMzc3XDM0NVwzNDVcMzQ0IgotICAiXDM3N1wzNDVcMzQ1XDM0NFwzNzdcMzQ0XDM0NFwzNDJcMzc3XDM0MFwzNDBcMzM2XDM3N1wzNDJcMzQyXDM0MFwzNzciCi0gICJcMzMxXDMzMVwzMjdcMzc3XDI3MlwyNzJcMjcyXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU2XDM1NlwzNTRcMzc3XDM0N1wzNDdcMzQ1IgotICAiXDM3N1wzNDVcMzQ1XDM0NVwzNzdcMFwwXDBcMzc3XDM0NlwzMDNwXDM3N1wzNjFcMzIyXDIwNFwzNzdcMzEyXDIwN1wxMyIKLSAgIlwzNzdcMFwwXDBcMzc3XDIyN1wyMjdcMjI2XDM3N1wzMjRcMzI0XDMyMVwzNzdcMzQyXDM0MlwzNDBcMzc3XDM0MFwzNDAiCi0gICJcMzM2XDM3N1wzMzZcMzM2XDMzNFwzNzdcMzM2XDMzNlwzMzNcMzc3XDMzNlwzMzZcMzM0XDM3N1wzMzFcMzMxXDMyNyIKLSAgIlwzNzdcMjc1XDI3NVwyNzRcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM0N1wzNDdcMzQ3XDM3N1wzNTdcMzU3XDM1NVwzNzdcMzUzXDM1M1wzNTNcMzc3XDI0NlwyNDYiCi0gICJcMjQ1XDM3N1wyNzJ8XDEyXDM3N1wzNzNcMjUxXDE3XDM3N1wzNzNcMjUxXDE3XDM3N3pbXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwzNDJcMzQyXDM0MFwzNzdcMzQwXDM0MFwzMzZcMzc3XDMzNlwzMzZcMzM0XDM3N1wzMzZcMzM2XDMzM1wzNzdcMzM0IgotICAiXDMzNFwzMzFcMzc3XDMzM1wzMzNcMzMxXDM3N1wzMzNcMzMzXDMzMVwzNzdcMzI1XDMyNVwzMjNcMzc3XDI3NFwyNzQiCi0gICJcMjc0XDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNDVcMzQ1XDM0NVwzNzdcMzQzXDM0M1wzNDNcMzc3XDMzMVwzMzFcMzMxXDM3N1wwXDBcMFwzNzdcMzYyXDM0NlwyNjYiCi0gICJcMzc3e3t7XDM3N3BLXDVcMzc3XDBcMFwwXDM3N2dnZFwzNzdcMzEzXDMxM1wzMDdcMzc3XDMxMVwzMTFcMzA3XDM3NyIKLSAgIlwzMzRcMzM0XDMzMVwzNzdcMzMzXDMzM1wzMjdcMzc3XDMzMVwzMzFcMzI3XDM3N1wzMjdcMzI3XDMyNVwzNzdcMzMxIgotICAiXDMzMVwzMjdcMzc3XDMyN1wzMjdcMzIzXDM3N1wyNjRcMjY0XDI2NFwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzQyXDM0MlwzNDBcMzc3XDM0NVwzNDVcMzQ0XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzdcMFwwXDBcMzc3XDMzM1wzMjVcMzAxXDM3N35vV1wzNzd1WFwwXDM3N1wwXDBcMFwzNzdcMzM0IgotICAiXDMzNFwzMzFcMzc3XDMzM1wzMzNcMzMxXDM3N1wzMzNcMzMzXDMyN1wzNzdcMzMxXDMzMVwzMjVcMzc3XDMyN1wzMjciCi0gICJcMzIzXDM3N1wzMjVcMzI1XDMyM1wzNzdcMzI1XDMyNVwzMjFcMzc3XDMyN1wzMjdcMzIzXDM3N1wzMjBcMzIwXDMxNiIKLSAgIlwzNzdcMjcyXDI3MlwyNzBcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDMzNlwzMzZcMzM0XDM3N1wzMzVcMzM1XDMzM1wzNzdcMzIxXDMyMVwzMTdcMzc3XDE2XDE2XDE2IgotICAiXDM3N1NTU1wzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wyMTVcMjE1XDIxM1wzNzdcMzA0XDMwNFwzMDFcMzc3XDMwNFwzMDQiCi0gICJcMjc3XDM3N1wzMDFcMzAxXDI3NFwzNzdcMzI1XDMyNVwzMjFcMzc3XDMyNVwzMjVcMzIxXDM3N1wzMjNcMzIzXDMyMCIKLSAgIlwzNzdcMzIxXDMyMVwzMjBcMzc3XDMyM1wzMjNcMzIwXDM3N1wzMjBcMzIwXDMxNlwzNzdcMjcyXDI3MlwyNzBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDMzNFwzMzQiCi0gICJcMzMzXDM3N1wzNDBcMzQwXDMzNFwzNzdcMzM1XDMzNVwzMzNcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMjExXDIxMSIKLSAgIlwyMDdcMzc3XDMxMVwzMTFcMzA2XDM3N1wzMTVcMzE1XDMxMlwzNzdcMzIwXDMyMFwzMTVcMzc3XDMxNlwzMTZcMzEzIgotICAiXDM3N1wzMjBcMzIwXDMxNVwzNzdcMzIwXDMyMFwzMTVcMzc3XDMyMFwzMjBcMzE1XDM3N1wzMjBcMzIwXDMxNVwzNzciCi0gICJcMzE3XDMxN1wzMTRcMzc3XDMyMFwzMjBcMzE1XDM3N1wzMjBcMzIwXDMxNFwzNzdcMjY2XDI2NlwyNjZcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDMzM1wzMzNcMzMxIgotICAiXDM3N1wzMjRcMzI0XDMyMFwzNzdcMzAzXDMwM1wzMDBcMzc3W1tbXDM3N1wyMjFcMjIxXDIxNVwzNzdcMjIxXDIyMVwyMTciCi0gICJcMzc3XDIzN1wyMzdcMjM1XDM3N1wyNTdcMjU3XDI1NFwzNzdcMjcxXDI3MVwyNjZcMzc3XDI3NlwyNzZcMjczXDM3NyIKLSAgIlwzMDNcMzAzXDMwMFwzNzdcMzA1XDMwNVwzMDJcMzc3XDMxMFwzMTBcMzA1XDM3N1wzMTJcMzEyXDMwN1wzNzdcMzEzIgotICAiXDMxM1wzMTBcMzc3XDMxNFwzMTRcMzExXDM3N1wzMTRcMzE0XDMxMFwzNzdcMjYyXDI2MlwyNjJcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDMyMlwzMjJcMzIwXDM3N1wzMjIiCi0gICJcMzIyXDMxN1wzNzdcMzE3XDMxN1wzMTRcMzc3XDI3N1wyNzdcMjc1XDM3N1wyMzdcMjM3XDIzNFwzNzdcMjEwXDIxMCIKLSAgIlwyMDZcMzc3XDIwN1wyMDdcMjA1XDM3N1wyMTRcMjE0XDIxMlwzNzdcMjI1XDIyNVwyMjNcMzc3XDIzNFwyMzRcMjMyIgotICAiXDM3N1wyNTBcMjUwXDI0NVwzNzdcMjYxXDI2MVwyNTZcMzc3XDI2NVwyNjVcMjYzXDM3N1wyNzNcMjczXDI3MFwzNzciCi0gICJcMjc2XDI3NlwyNzNcMzc3XDI3N1wyNzdcMjc0XDM3N1wzMDJcMzAyXDI3NlwzNzdcMjYyXDI2MlwyNjJcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDMyMVwzMjFcMzE2IgotICAiXDM3N1wzMjBcMzIwXDMxNFwzNzdcMzE0XDMxNFwzMTFcMzc3XDMxN1wzMTdcMzE0XDM3N1wzMDNcMzAzXDMwMFwzNzciCi0gICJcMjU2XDI1NlwyNTNcMzc3XDIzNVwyMzVcMjMyXDM3N1wyMjdcMjI3XDIyNFwzNzdcMjI3XDIyN1wyMjRcMzc3XDIyNCIKLSAgIlwyMjRcMjIxXDM3N1wyMzJcMjMyXDIyN1wzNzdcMjM3XDIzN1wyMzRcMzc3XDI0M1wyNDNcMjQwXDM3N1wyNTBcMjUwIgotICAiXDI0NVwzNzdcMjUyXDI1MlwyNDdcMzc3XDI2MFwyNjBcMjU0XDM3N1wyNzBcMjcwXDI2NVwzNzdcMjYwXDI2MFwyNTYiCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDMyMiIKLSAgIlwzMjJcMzE3XDM3N1wzMjFcMzIxXDMxNlwzNzdcMzIxXDMyMVwzMTZcMzc3XDMyMVwzMjFcMzE2XDM3N1wzMTdcMzE3IgotICAiXDMxNVwzNzdcMzEzXDMxM1wzMTBcMzc3XDI3NlwyNzZcMjc0XDM3N1wyNjRcMjY0XDI2MFwzNzdcMjU0XDI1NFwyNTAiCi0gICJcMzc3XDI0NFwyNDRcMjQyXDM3N1wyNDBcMjQwXDIzNFwzNzdcMjQwXDI0MFwyMzRcMzc3XDI0NFwyNDRcMjQwXDM3NyIKLSAgIlwyNDRcMjQ0XDI0MlwzNzdcMjUwXDI1MFwyNDZcMzc3XDI1M1wyNTNcMjQ3XDM3N1wyNjJcMjYyXDI1NlwzNzdcMjQ0IgotICAiXDI0NFwyNDRcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDMyMVwzMjFcMzIwXDM3N1wzMjFcMzIxXDMxNlwzNzdcMzIwXDMyMFwzMTZcMzc3XDMxNlwzMTZcMzE0XDM3NyIKLSAgIlwzMTZcMzE2XDMxMlwzNzdcMzE2XDMxNlwzMTJcMzc3XDMxNFwzMTRcMzEwXDM3N1wzMDZcMzA2XDMwMlwzNzdcMjc0IgotICAiXDI3NFwyNzFcMzc3XDI2M1wyNjNcMjU3XDM3N1wyNjRcMjY0XDI2MFwzNzdcMjUzXDI1M1wyNTFcMzc3XDI0NlwyNDYiCi0gICJcMjQzXDM3N1wyNDBcMjQwXDIzNVwzNzdcMjQ2XDI0NlwyNDNcMzc3XDI1MlwyNTJcMjQ3XDM3N1wyNTRcMjU0XDI1MSIKLSAgIlwzNzdcMjQxXDI0MVwyNDFcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDI2MVwyNjFcMjU3XDM3N1wyNjRcMjY0XDI2M1wzNzdcMjY0XDI2NFwyNjFcMzc3XDI2NFwyNjQiCi0gICJcMjYxXDM3N1wyNjRcMjY0XDI2MVwzNzdcMjYzXDI2M1wyNjFcMzc3XDI2M1wyNjNcMjYxXDM3N1wyNjJcMjYyXDI1NiIKLSAgIlwzNzdcMjU2XDI1NlwyNTJcMzc3XDI0N1wyNDdcMjQ0XDM3N1wyNDJcMjQyXDI0MFwzNzdcMjQ1XDI0NVwyNDFcMzc3IgotICAiXDI0NVwyNDVcMjQxXDM3N1wyMzFcMjMxXDIyN1wzNzdcMjIyXDIyMlwyMjBcMzc3XDIyNFwyMjRcMjIwXDM3N1wyMzUiCi0gICJcMjM1XDIzM1wzNzdcMjA1XDIwNVwyMDNcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwclwwXDAiCi0gICJcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19tYWlsX2ZvcndhcmQpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsX2ZvcndhcmRbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21haWxfZm9yd2FyZFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxIgotICAiXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDAiCi0gICJcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMiIKLSAgIlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBmXDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBtXDBcMFwwXDEwXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMzc3IgotICAiU1NTXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc2XDM3NlwzNzZcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzRcMzc0XDM3NFwzNzdcMzczXDM3M1wzNzNcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM0M1wzNDNcMzQzXDM3N1NTU1wzNzdcMFwwXDBcMzc3XDBcMFwwXDMxXDAiCi0gICJcMFwwXDEwXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNTZcMzU2XDM1NlwzNzdPT09cMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjJcMzYyIgotICAiXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3XDM0M1wzNDNcMzQzXDM3NyIKLSAgIk9PT1wzNzdcMjU2XDI1NlwyNTZcMzc3XDBcMFwwXDM3N1wwXDBcMChcMFwwXDBcMTdcMFwwXDBcMlwwXDBcMFwwXDBcMCIKLSAgIlwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3XDM3NVwzNzVcMzc1XDM3NyIKLSAgIlwzNjNcMzYzXDM2M1wzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYwIgotICAiXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NVwzNTUiCi0gICJcMzU1XDM3N1wzNDNcMzQzXDM0M1wzNzdPT09cMzc3XDI1NFwyNTRcMjU0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDAiCi0gICJcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdPT09cMzc3XDM3M1wzNzNcMzczXDM3N1wzNjFcMzYxXDM2MVwzNzciCi0gICJcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NSIKLSAgIlwzNTVcMzU1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzQzXDM0M1wzNDNcMzc3Q0NDXDM3N1wyNDBcMjQwXDI0MFwzNzdcMzI0IgotICAiXDMyNFwzMjRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDAiCi0gICJcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzczXDM3M1wzNzNcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzU3XDM1N1wzNTdcMzc3IgotICAiXDM1NlwzNTZcMzU2XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU0XDM1NFwzNTRcMzc3XDM0M1wzNDNcMzQzXDM3N09PT1wzNzciCi0gICJcMjI1XDIyNVwyMjVcMzc3XDMyNFwzMjRcMzI0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzciCi0gICI+Pj5cMzc3XDM2NVwzNjVcMzY1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NFwzNTRcMzU0XDM3NyIKLSAgIlwzNDNcMzQzXDM0M1wzNzdNTU1cMzc3XDIwMVwyMDFcMjAxXDM3N1wzMDZcMzA2XDMwNlwzNzdcMzQ0XDM0NFwzNDRcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDAiCi0gICJcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3M1wzNzNcMzczXDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N2pqalwzNzdDQ0NcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNTQiCi0gICJcMzU0XDM1NFwzNzdcMzQzXDM0M1wzNDNcMzc3T09PXDM3N2pqalwzNzdcMzA2XDMwNlwzMDZcMzc3XDMwNlwzMDZcMzA2IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMFwwXDBcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwIgotICAiXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3IgotICAiXDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdjY2NcMzc3XDM3N1wzNzdcMzc3XDM3N1wyNzFcMjcxXDI3MVwzNzciCi0gICJPT09cMzc3XDM2MFwzNjBcMzYwXDM3N09PT1wzNzdcMjI1XDIyNVwyMjVcMzc3XDMwNlwzMDZcMzA2XDM3N3Nzc1wzNzciCi0gICJcMzA2XDMwNlwzMDZcMzc3XDM2NVwzNjVcMzY1XDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMCIKLSAgIi1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzNcMzczIgotICAiXDM3M1wzNzdcMzQ0XDM0NFwzNDRcMzc3Y2NjXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDQiCi0gICJcMzQ0XDM3N1wzMjRcMzI0XDMyNFwzNzdPT09cMzc3XDI1NFwyNTRcMjU0XDM3N1wzMDZcMzA2XDMwNlwzNzdcMzQ0XDM0NCIKLSAgIlwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N3x8fFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDBcMFwwXDM3N1tcMjEwXDI2MlwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM0NFwzNDRcMzQ0XDM3N3Nzc1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDIzNlwyNzBcMzIxIgotICAiXDM3N1BcMjAwXDI1NVwzNzdcMFwwXDBcMzc3XDBcMFwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzd8fHxcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wwXDAiCi0gICJcMFwzNzdcMjY1XDMxMVwzMzRcMzc3XDI1N1wzMDVcMzMyXDM3N1wyNjJcMzA3XDMzM1wzNzdcMjY2XDMxMlwzMzVcMzc3IgotICAiXDI2NlwzMTJcMzM1XDM3N1wyNjZcMzEyXDMzNVwzNzdcMjQ0XDI3NVwzMjVcMzc3XDIzNFwyNjdcMzIxXDM3N1BcMjAwIgotICAiXDI1NVwzNzdcMTBcMTVcMjFcMzc3XDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N3Nzc1wzNzdcMjc0XDI3NCIKLSAgIlwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0IgotICAiXDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wwXDBcMFwzNzdcMjMzXDI2NiIKLSAgIlwzMjBcMzc3XDI0MFwyNzJcMzIzXDM3N1wyMzRcMjY3XDMyMVwzNzdcMjM0XDI2N1wzMjFcMzc3XDIzM1wyNjZcMzIwIgotICAiXDM3N1wyMzJcMjY1XDMxN1wzNzdcMjQwXDI3MlwzMjNcMzc3XDIzNFwyNjdcMzIxXDM3N1wyMjdcMjYzXDMxNlwzNzciCi0gICJfXDIxM1wyNjRcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDJcMFwwXDBtXDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wyMjFcMjYwXDMxNFwzNzdcMjM2XDI3MFwzMjFcMzc3XDIzMlwyNjVcMzE3XDM3N1wyMzJcMjY1XDMxNyIKLSAgIlwzNzdcMjMzXDI2NlwzMjBcMzc3XDIzNFwyNjdcMzIxXDM3N1wyMzRcMjY3XDMyMVwzNzdcMjM0XDI2N1wzMjFcMzc3IgotICAiXDI0MFwyNzJcMzIzXDM3N1wyMjVcMjYyXDMxNlwzNzdMeVwyNDNcMzc3XDBcMFwwXDM3N1wwXDBcMFwxXDBcMFwwXDEwIgotICAiXDBcMFwwXDMxXDBcMFwwKFwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwIgotICAiXDBcMzc3SXRcMjM0XDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2UiCi0gICJcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3NypDW1wzNzdcMFwwXDBcMzc3XDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDEwXDBcMFwwXDE2XDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxIgotICAiXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDM3N0VvXDIyNlwzNzc3WXhcMzc3N1l4XDM3NzdZeFwzNzciCi0gICI3WXhcMzc3N1l4XDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3NypDW1wzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMCIKLSAgIlwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDc3ZVwyMTBcMzc3KkNbXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDM3NypDW1wzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzciCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAifTsKLQotCi0vKiBHZGtQaXhidWYgUkdCQSBDLVNvdXJjZSBpbWFnZSBkdW1wICovCi0KLSNpZmRlZiBfX1NVTlBST19DCi0jcHJhZ21hIGFsaWduIDQgKHN0b2NrX21haWxfcmVjZWl2ZSkKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21haWxfcmVjZWl2ZVtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfbWFpbF9yZWNlaXZlW10gPSAKLSNlbmRpZgoteyAiIgotICAvKiBQaXhidWYgbWFnaWMgKDB4NDc2NDZiNTApICovCi0gICJHZGtQIgotICAvKiBsZW5ndGg6IGhlYWRlciAoMjQpICsgcGl4ZWxfZGF0YSAoMjMwNCkgKi8KLSAgIlwwXDBcMTFcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoOTYpICovCi0gICJcMFwwXDBgIgotICAvKiB3aWR0aCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIGhlaWdodCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMzc3XDMxMVwzMzNcMzA3XDM3N1wzMTFcMzMyXDMwN1wzNzdcMzExXDMzMlwzMDdcMzc3XDIwMVwyMzJ5XDM3NyIKLSAgIlh1TVwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMjYyXDMxMVwyNjBcMzc3XDI1MVwzMDRcMjQ3XDM3N1wyNTVcMzEwXDI1MyIKLSAgIlwzNzdbeVBcMzc3TWdEXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wyNzNcMzIwXDI3MVwzNzdcMjU2XDMwN1wyNTRcMzc3IgotICAiXDI1NlwzMDdcMjU0XDM3N1t5UFwzNzdNZ0RcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzI0XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDI3MVwzMTZcMjY3IgotICAiXDM3N1wyNTZcMzA3XDI1NFwzNzdcMjUyXDMwN1wyNTBcMzc3W3lQXDM3N01nRFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzMTVcMzM2XDMxMyIKLSAgIlwzNzdcMjYxXDMxMVwyNjBcMzc3XDI2NVwzMTZcMjY1XDM3N1wyNjBcMzExXDI2MFwzNzdcMjU1XDMwNlwyNTNcMzc3IgotICAiW3lQXDM3N1t5UFwzNzdbeVBcMzc3TWhEXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDJcMCIKLSAgIlwwXDBcMlwwXDBcMFwyXDBcMFwwXDM3N1wzMTVcMzM2XDMxM1wzNzdcMjY0XDMxM1wyNjJcMzc3XDI2M1wzMTJcMjYxIgotICAiXDM3N1wyNTVcMzA2XDI1M1wzNzdbeVBcMzc3W3lQXDM3N01oRFwzNzdcMFwwXDBcMzc3XDBcMFwwXDJcMFwwXDBcMlwwIgotICAiXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJmXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDMxNVwzMzYiCi0gICJcMzEzXDM3N1wyNTJcMzA3XDI1MFwzNzdcMjYwXDMwN1wyNTZcMzc3W3lQXDM3N01oRFwzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBtXDBcMFwwXDEwXDBcMFwwIgotICAiXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMzc3U1NTXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc2XDM3NlwzNzZcMzc3XDBcMFwwXDM3N1wzMTVcMzM2IgotICAiXDMxM1wzNzdcMjU1XDMxMFwyNTNcMzc3VHFKXDM3N1wwXDBcMFwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NlwzNjZcMzY2IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM0M1wzNDNcMzQzXDM3N1NTU1wzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDMxXDBcMFwwXDEwXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNTZcMzU2XDM1NlwzNzciCi0gICJPT09cMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2M1wzNjNcMzYzXDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMFwwXDBcMzc3XDMxN1wzMzdcMzE0XDM3N1wwXDBcMFwzNzdcMzYwXDM2MFwzNjBcMzc3IgotICAiXDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3XDM0M1wzNDNcMzQzXDM3N09PT1wzNzciCi0gICJcMjU2XDI1NlwyNTZcMzc3XDBcMFwwXDM3N1wwXDBcMChcMFwwXDBcMTdcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMCIKLSAgIlwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNjNcMzYzIgotICAiXDM2M1wzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjFcMzYxXDM2MVwzNzctLS1cMzc3XDM1N1wzNTciCi0gICJcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNDNcMzQzXDM0MyIKLSAgIlwzNzdPT09cMzc3XDI1NFwyNTRcMjU0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMSIKLSAgIlwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDQiCi0gICJcMzQ0XDM0NFwzNzdPT09cMzc3XDM3M1wzNzNcMzczXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MCIKLSAgIlwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTVcMzU1IgotICAiXDM1NVwzNzdcMzQzXDM0M1wzNDNcMzc3Q0NDXDM3N1wyNDBcMjQwXDI0MFwzNzdcMzI0XDMyNFwzMjRcMzc3XDMxMFwzMTAiCi0gICJcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzczXDM3M1wzNzNcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3IgotICAiXDM3MFwzNzBcMzcwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTUiCi0gICJcMzU1XDM1NVwzNzdcMzU0XDM1NFwzNTRcMzc3XDM0M1wzNDNcMzQzXDM3N09PT1wzNzdcMjI1XDIyNVwyMjVcMzc3XDMyNCIKLSAgIlwzMjRcMzI0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjEiCi0gICJcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1IgotICAiXDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzc+Pj5cMzc3XDM2NVwzNjVcMzY1XDM3N1wzNTYiCi0gICJcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNDNcMzQzXDM0M1wzNzdNTU1cMzc3XDIwMSIKLSAgIlwyMDFcMjAxXDM3N1wzMDZcMzA2XDMwNlwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwIgotICAiXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3M1wzNzNcMzczXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NCIKLSAgIlwzNDRcMzQ0XDM3N2pqalwzNzdDQ0NcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzQzXDM0M1wzNDMiCi0gICJcMzc3T09PXDM3N2pqalwzNzdcMzA2XDMwNlwzMDZcMzc3XDMwNlwzMDZcMzA2XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0IgotICAiXDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDAiCi0gICJcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzdjY2NcMzc3XDM3N1wzNzdcMzc3XDM3N1wyNzFcMjcxXDI3MVwzNzdPT09cMzc3XDM2MFwzNjAiCi0gICJcMzYwXDM3N09PT1wzNzdcMjI1XDIyNVwyMjVcMzc3XDMwNlwzMDZcMzA2XDM3N3Nzc1wzNzdcMzA2XDMwNlwzMDZcMzc3IgotICAiXDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwIgotICAiXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzNcMzczXDM3M1wzNzciCi0gICJcMzQ0XDM0NFwzNDRcMzc3Y2NjXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3NyIKLSAgIlwzMjRcMzI0XDMyNFwzNzdPT09cMzc3XDI1NFwyNTRcMjU0XDM3N1wzMDZcMzA2XDMwNlwzNzdcMzQ0XDM0NFwzNDRcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N3x8fFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM0NFwzNDRcMzQ0XDM3N3Nzc1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDQiCi0gICJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3NyIKLSAgInx8fFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMCIKLSAgIlwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzd8fHxcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0IgotICAiXDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDQiCi0gICJcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N3x8fFwzNzdcMzEwXDMxMCIKLSAgIlwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3IgotICAic3NzXDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzciCi0gICJcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NCIKLSAgIlwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0IgotICAiXDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N2NjY1wzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDAiCi0gICJcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMG1cMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwyMDdcMFwwXDAoXDBcMFwwXDE3XDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDEwXDBcMFwwXDMxIgotICAiXDBcMFwwKFwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwIgotICAiLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMChcMFwwXDBcMzFcMFwwXDBcMTAiCi0gICJcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwxMFwwXDBcMFwxNlwwXDBcMFwyMVwwXDBcMFwyMSIKLSAgIlwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMCIKLSAgIlwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwyMVwwXDBcMFwxNlwwXDBcMFwxMFwwIgotICAiXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDJcMFwwXDAiCi0gICJcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMCIKLSAgIlwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMVwwXDBcMFwwXDBcMFwwIgotICAiXDAifTsKLQotCi0vKiBHZGtQaXhidWYgUkdCQSBDLVNvdXJjZSBpbWFnZSBkdW1wICovCi0KLSNpZmRlZiBfX1NVTlBST19DCi0jcHJhZ21hIGFsaWduIDQgKHN0b2NrX21haWxfcmVwbHkpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsX3JlcGx5W10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsX3JlcGx5W10gPSAKLSNlbmRpZgoteyAiIgotICAvKiBQaXhidWYgbWFnaWMgKDB4NDc2NDZiNTApICovCi0gICJHZGtQIgotICAvKiBsZW5ndGg6IGhlYWRlciAoMjQpICsgcGl4ZWxfZGF0YSAoMjMwNCkgKi8KLSAgIlwwXDBcMTFcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoOTYpICovCi0gICJcMFwwXDBgIgotICAvKiB3aWR0aCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIGhlaWdodCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMCIKLSAgIlwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyIgotICAiXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBmXDBcMFwwIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBtXDBcMFwwXDEwXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDFcMFwwXDBcMzc3U1NTXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc2XDM3NlwzNzZcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzRcMzc0XDM3NFwzNzciCi0gICJcMzczXDM3M1wzNzNcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NiIKLSAgIlwzNjZcMzY2XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM0M1wzNDNcMzQzXDM3N1NTU1wzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDMxXDBcMFwwXDEwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNTZcMzU2IgotICAiXDM1NlwzNzdPT09cMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjBcMzYwXDM2MCIKLSAgIlwzNzdcMzYwXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3IgotICAiXDM0M1wzNDNcMzQzXDM3N09PT1wzNzdcMjU2XDI1NlwyNTZcMzc3XDBcMFwwXDM3N1wwXDBcMChcMFwwXDBcMTdcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3IgotICAiXDM3NVwzNzVcMzc1XDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjEiCi0gICJcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU2XDM1NiIKLSAgIlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNDNcMzQzXDM0M1wzNzdPT09cMzc3XDI1NFwyNTRcMjU0XDM3N1wzMTBcMzEwIgotICAiXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdPT09cMzc3XDM3M1wzNzNcMzczXDM3NyIKLSAgIlwzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU2IgotICAiXDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzQzXDM0M1wzNDNcMzc3Q0NDXDM3N1wyNDAiCi0gICJcMjQwXDI0MFwzNzdcMzI0XDMyNFwzMjRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzczXDM3M1wzNzNcMzc3XDM2NSIKLSAgIlwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU0XDM1NFwzNTRcMzc3XDM0M1wzNDMiCi0gICJcMzQzXDM3N09PT1wzNzdcMjI1XDIyNVwyMjVcMzc3XDMyNFwzMjRcMzI0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMCIKLSAgIlwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDQiCi0gICJcMzQ0XDM0NFwzNzc+Pj5cMzc3XDM2NVwzNjVcMzY1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NCIKLSAgIlwzNTRcMzU0XDM3N1wzNDNcMzQzXDM0M1wzNzdNTU1cMzc3XDIwMVwyMDFcMjAxXDM3N1wzMDZcMzA2XDMwNlwzNzdcMzQ0IgotICAiXDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMSIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3M1wzNzNcMzczXDM3Nz1cMzIiCi0gICJcMjNcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzdqampcMzc3Q0NDXDM3N1wzNjNcMzYzXDM2M1wzNzciCi0gICJcMzU0XDM1NFwzNTRcMzc3XDM0M1wzNDNcMzQzXDM3N09PT1wzNzdqampcMzc3XDMwNlwzMDZcMzA2XDM3N1wzMDZcMzA2IgotICAiXDMwNlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwLVwwXDBcMFwyMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwzNzdcMzQ0XDM0NFwzNDRcMzc3Y2NjXDM3N1wzNzdcMzc3XDM3N1wzNzdcMjcxXDI3MVwyNzFcMzc3IgotICAiT09PXDM3N1wzNjBcMzYwXDM2MFwzNzdPT09cMzc3XDIyNVwyMjVcMjI1XDM3N1wzMDZcMzA2XDMwNlwzNzdzc3NcMzc3IgotICAiXDMwNlwzMDZcMzA2XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wwXDBcMFwzNzdcMzUyIgotICAiXDMwMFwyNzJcMzc3XDBcMFwwXDM3N2NjY1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0IgotICAiXDM0NFwzNzdcMzI0XDMyNFwzMjRcMzc3T09PXDM3N1wyNTRcMjU0XDI1NFwzNzdcMzA2XDMwNlwzMDZcMzc3XDM0NFwzNDQiCi0gICJcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzd8fHxcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMCIKLSAgIlwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3IgotICAiXDM1MlwzMDBcMjcyXDM3N1wzMzdcMjM2XDIyNVwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1IgotICAiXDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0XDM0NFwzNzd8fHxcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTAiCi0gICJcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM1MiIKLSAgIlwzMDBcMjcyXDM3N1wzNDBcMjQxXDIzMFwzNzdcMzQxXDI0NVwyMzVcMzc3XDM0MlwyNDdcMjM2XDM3N1wzNDNcMjUzIgotICAiXDI0M1wzNzdcMzQyXDI0N1wyMzZcMzc3XDM0M1wyNTJcMjQyXDM3N1wzMzdcMjM2XDIyNVwzNzdcMzE0YlNcMzc3XDAiCi0gICJcMFwwXDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NCIKLSAgIlwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N3x8fFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMFwwXDBcMFwzNzdcMzUyXDMwMFwyNzJcMzc3XDMzNVwyMjdcMjE1XDM3N1wzMzciCi0gICJcMjM3XDIyN1wzNzdcMzM3XDIzNlwyMjVcMzc3XDMzNlwyMzJcMjIwXDM3N1wzMzVcMjI2XDIxNFwzNzdcMzM1XDIyNiIKLSAgIlwyMTRcMzc3XDMzNlwyMzJcMjIwXDM3N1wzMzVcMjI0XDIxMlwzNzdcMjYxQzRcMzc3XDBcMFwwXDM3N1wyNzRcMjc0IgotICAiXDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzQiCi0gICJcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdjY2NcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjEiCi0gICJDXDMxXDIzXDM3N1wzNTJcMzAyXDI3NFwzNzdcMzM2XDIzMlwyMjBcMzc3XDMzN1wyMzRcMjIyXDM3N1wzMzVcMjMxXDIxNyIKLSAgIlwzNzdcMzM1XDIzMVwyMTdcMzc3XDMzNVwyMjdcMjE1XDM3N1wzMzZcMjMyXDIyMFwzNzdcMzM2XDIzMlwyMjBcMzc3IgotICAiXDMzNlwyMzJcMjIwXDM3N1wzMzZcMjMyXDIyMFwzNzdcMjY1RTVcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwXDIwN1wwXDBcMChcMFwwXDBcMTdcMFwwXDBcMFwwXDBcMFwzNzdlJlwzNVwzNzdcMjMwOixcMzc3XDIzMDosXDM3NyIKLSAgIlwyMzA6LFwzNzdcMjMwOixcMzc3XDIzMDosXDM3N1wyMzA6LFwzNzdcMjMwOixcMzc3XDIzMDosXDM3N3wvJFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwIgotICAiXDAoXDBcMFwwXDMxXDBcMFwwXDEwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdlJlwzNVwzNzdcMjMwOixcMzc3XDIzMCIKLSAgIjosXDM3N2MlXDM1XDM3N2MlXDM1XDM3N2MlXDM1XDM3N2MlXDM1XDM3N2MlXDM1XDM3N2wpXDM3XDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDBcMjFcMFwwXDAiCi0gICJcMjFcMFwwXDBcMTZcMFwwXDBcMTBcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdlJlwzNSIKLSAgIlwzNzdcMjMwOixcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDAiCi0gICJcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwzNzdlJlwzNVwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfbWFpbF9zZW5kKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfbWFpbF9zZW5kW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tYWlsX3NlbmRbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBPXDc3XDEyXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3NyIKLSAgIlwzNjRcMzQ2XDI2NVwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzY0XDM0NSIKLSAgIlwyNjNcMzc3XDM1NVwzMjZcMjA0XDM3N3VfXDIwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM2NFwzNDUiCi0gICJcMjYzXDM3N1wzNTVcMzI1XDIwMFwzNzdcMzU2XDMyNlwyMDVcMzc3XDI1N1wyMTVcMzBcMzc3dV9cMjBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDM3N1wzNjRcMzQ1XDI2M1wzNzdcMzU3XDMzMVwyMTRcMzc3XDM1NlwzMzBcMjEzXDM3N1wzNTVcMzI1XDIwMiIKLSAgIlwzNzdcMjU3XDIxNVwzMFwzNzdcMjU3XDIxNVwzMFwzNzd1X1wyMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwxXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwzNzdcMzY0XDM0NVwyNjNcMzc3XDM1NlwzMzBcMjExXDM3NyIKLSAgIlwzNTdcMzMyXDIyMlwzNzdcMzU2XDMzMFwyMTFcMzc3XDM1NVwzMjVcMjAyXDM3N1wyNTdcMjE1XDMwXDM3N1wyNTdcMjE1IgotICAiXDMwXDM3N1wyNTdcMjE1XDMwXDM3N3VfXDIwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwIgotICAiXDBcMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBmXDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM2MFwzMzNcMjIzXDM3N1wzNTVcMzI2XDIwNCIKLSAgIlwzNzdcMzU1XDMyNVwyMDBcMzc3XDI1N1wyMTVcMzBcMzc3c11cMjBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwbVwwXDBcMFwxMFwwXDBcMFwyXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDM3N1NTU1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDBcMFwwXDM3N1wzNjBcMzM0XDIyN1wzNzdcMzU1XDMyNlwyMDRcMzc3IgotICAiXDM1NVwzMjZcMjA0XDM3N1wyNTdcMjE1XDMwXDM3N3NdXDIwXDM3N1wwXDBcMFwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NSIKLSAgIlwzNjVcMzY1XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzQzXDM0M1wzNDNcMzc3U1NTXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzEiCi0gICJcMFwwXDBcMTBcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM1NlwzNTZcMzU2XDM3N09PT1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjRcMzY0XDM2NFwzNzdcMFwwXDBcMzc3XDM1NlwzMzBcMjExXDM3NyIKLSAgIlwzNTVcMzIzfFwzNzdcMzU1XDMyNlwyMDRcMzc3XDI1N1wyMTVcMzBcMzc3c11cMjBcMzc3XDBcMFwwXDM3N1wzNTZcMzU2IgotICAiXDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3XDM0M1wzNDNcMzQzXDM3N09PT1wzNzdcMjU2XDI1NlwyNTZcMzc3XDBcMFwwIgotICAiXDM3N1wwXDBcMChcMFwwXDBcMTdcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzdDQ0NcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNjNcMzYzXDM2M1wzNzdcMFwwXDBcMzc3XDM0NCIKLSAgIlwyNzc9XDM3N1wzMTNcMjQ0XDM0XDM3N1wzMjFcMjUwXDM0XDM3N1wyMjB0XDIzXDM3N3xkXDIxXDM3N1wwXDBcMFwzNzciCi0gICJcMzU1XDM1NVwzNTVcMzc3XDM0M1wzNDNcMzQzXDM3N09PT1wzNzdcMjU0XDI1NFwyNTRcMzc3XDMxMFwzMTBcMzEwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N09PT1wzNzdcMzczXDM3M1wzNzNcMzc3XDBcMFwwIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wzNDMiCi0gICJcMzQzXDM0M1wzNzdDQ0NcMzc3XDI0MFwyNDBcMjQwXDM3N1wzMjRcMzI0XDMyNFwzNzdcMzEwXDMxMFwzMTBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzNcMzczXDM3M1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N0NDQ1wzNzdcMzcwXDM3MFwzNzAiCi0gICJcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3NyIKLSAgIlwzNTRcMzU0XDM1NFwzNzdcMzQzXDM0M1wzNDNcMzc3T09PXDM3N1wyMjVcMjI1XDIyNVwzNzdcMzI0XDMyNFwzMjRcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDAiCi0gICJcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3Nz4+PlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM1NlwzNTZcMzU2IgotICAiXDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU0XDM1NFwzNTRcMzc3XDM0M1wzNDNcMzQzXDM3N01NTVwzNzdcMjAxXDIwMVwyMDEiCi0gICJcMzc3XDMwNlwzMDZcMzA2XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzczXDM3M1wzNzNcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDQiCi0gICJcMzc3ampqXDM3N0NDQ1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNDNcMzQzXDM0M1wzNzdPTyIKLSAgIk9cMzc3ampqXDM3N1wzMDZcMzA2XDMwNlwzNzdcMzA2XDMwNlwzMDZcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNDRcMzQ0IgotICAiXDM0NFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwXDBcMFwwXDAiCi0gICJcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NCIKLSAgIlwzNDRcMzQ0XDM3N2NjY1wzNzdcMzc3XDM3N1wzNzdcMzc3XDI3MVwyNzFcMjcxXDM3N09PT1wzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3T09PXDM3N1wyMjVcMjI1XDIyNVwzNzdcMzA2XDMwNlwzMDZcMzc3c3NzXDM3N1wzMDZcMzA2XDMwNlwzNzdcMzY1IgotICAiXDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzMTBcMzEwXDMxMFwzNzdcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMSIKLSAgIlwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3M1wzNzNcMzczXDM3N1wzNDQiCi0gICJcMzQ0XDM0NFwzNzdjY2NcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMyNCIKLSAgIlwzMjRcMzI0XDM3N09PT1wzNzdcMjU0XDI1NFwyNTRcMzc3XDMwNlwzMDZcMzA2XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0IgotICAiXDM0NFwzNDRcMzc3fHx8XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDMxMFwzMTBcMzEwXDM3N1wwIgotICAiXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzQ0XDM0NFwzNDRcMzc3c3NzXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzciCi0gICJcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3fHx8XDM3NyIKLSAgIlwzNDRcMzQ0XDM0NFwzNzdcMzEwXDMxMFwzMTBcMzc3XDBcMFwwXDM3N1wwXDBcMC1cMFwwXDBcMjFcMFwwXDBcMlwwIgotICAiXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N3x8fFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM0NFwzNDQiCi0gICJcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NCIKLSAgIlwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ0XDM0NFwzNDRcMzc3fHx8XDM3N1wzMTBcMzEwXDMxMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwLVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzNzdzc3NcMzc3XDI3NCIKLSAgIlwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0IgotICAiXDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzQiCi0gICJcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3XDI3NFwyNzRcMjc0XDM3NyIKLSAgIlwyNzRcMjc0XDI3NFwzNzdcMjc0XDI3NFwyNzRcMzc3Y2NjXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDBcMFwwXDIxXDBcMCIKLSAgIlwwXDJcMFwwXDBcMFwwXDBcMFwyXDBcMFwwbVwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDIwNyIKLSAgIlwwXDBcMChcMFwwXDBcMTdcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMTBcMFwwXDBcMzFcMFwwXDAoXDBcMCIKLSAgIlwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwLVwwIgotICAiXDBcMC1cMFwwXDAtXDBcMFwwLVwwXDBcMC1cMFwwXDAtXDBcMFwwKFwwXDBcMFwzMVwwXDBcMFwxMFwwXDBcMFwxXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDEwXDBcMFwwXDE2XDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDAiCi0gICJcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxIgotICAiXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDIxXDBcMFwwXDE2XDBcMFwwXDEwXDBcMFwwXDJcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMCIKLSAgIlwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwIgotICAiXDJcMFwwXDBcMlwwXDBcMFwyXDBcMFwwXDJcMFwwXDBcMlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfbWVudV9hYm91dCkKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21lbnVfYWJvdXRbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21lbnVfYWJvdXRbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgxMDI0KSAqLwotICAiXDBcMFw0XDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDY0KSAqLwotICAiXDBcMFwwQCIKLSAgLyogd2lkdGggKDE2KSAqLwotICAiXDBcMFwwXDIwIgotICAvKiBoZWlnaHQgKDE2KSAqLwotICAiXDBcMFwwXDIwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCFcIlwxMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMExOXDIzbFwwXDBcMFwzNzdcMjVcMjZcNiNcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMTFcMFwwXDBcMzc3XDM1NlwzNjY+XDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjBcMjFcNFw3ZGdcMzIiCi0gICJ4XDBcMFwwXDM3N1wwXDBcMFwzNzdcMzUyXDM2MT1cMzc3XDM2MFwzNzBcNzdcMzc3XDMxM1wzMjI1XDM3MFwwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3SkxcMjNrXDBcMFwwXDBcMjBcMjFcNFwwZGdcMzJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwzNFwzNVw3XDBcMFwwXDBcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MCIKLSAgIlwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM1MVwzNjA9XDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzN1wzN1wxMCVcMFwwXDAiCi0gICJcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM2MFwzNzBcNzdcMzc3XDM0NSIKLSAgIlwzNTQ8XDM3N1wwXDBcMFwzNzdcNVw1XDFcN1wwXDBcMFwwXDBcMFwwXDBcMzdcMzdcMTBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM1MFwzNjA9XDM3N1wzNjBcMzcwXDc3XDM3N1wzNjAiCi0gICJcMzcwXDc3XDM3N1wzNjBcMzcwXDc3XDM3N1wyNTNcMjYwLVwzNzJcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNjBcMzcwIgotICAiXDc3XDM3N1wzNTRcMzYzPlwzNzdcMFwwXDBcMzc3XDM1N1wzNjdcNzdcMzc3XDMxNlwzMjY2XDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMzc3XDI2NFwyNzIvXDM2M1wwXDBcMFwzNzdcMzBcMzBcNlw3N1wwXDBcMFwzNzdcMzE1XDMyNDVcMzc1IgotICAiXDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwzNlwzN1wxMGdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3NyIKLSAgIlwyNlwyN1w1RlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19tZW51X2JsYW5rKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfbWVudV9ibGFua1tdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfbWVudV9ibGFua1tdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDEwMjQpICovCi0gICJcMFwwXDRcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoNjQpICovCi0gICJcMFwwXDBAIgotICAvKiB3aWR0aCAoMTYpICovCi0gICJcMFwwXDBcMjAiCi0gIC8qIGhlaWdodCAoMTYpICovCi0gICJcMFwwXDBcMjAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfc2NvcmVzKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfc2NvcmVzW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19zY29yZXNbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDNcMFwwXDBcNFwwXDBcMFw0XDBcMFwwXDRcMFwwIgotICAiXDBcM1wwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMjE1XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMjI3XDBcMFwwXDIyXDBcMFwwXDZcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNDFcMzQxXDM0MVwzNzdcMFwwXDBcMzc3XDBcMFwwIiIyXDBcMFwwXDIyXDBcMFwwXDJcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzUzIgotICAiXDM1M1wzNTNcMzc3XDBcMFwwXDM3N1wzNTVcMzU1XDM1NVwzNzdcMzIyXDMyMlwzMjJcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMExcMFwwXDBcMzRcMFwwXDBcNFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDRcMFwwIgotICAiXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM1NlwzNTZcMzU2XDM3N1wzMjJcMzIyXDMyMiIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwVFwwXDBcMFw0MFwwXDBcMFw0XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwzXDAiCi0gICJcMFwwXDRcMFwwXDBcMTBcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTVcMzU1XDM1NVwzNzdcMFwwXDBcMzc3XDM1NyIKLSAgIlwzNTdcMzU3XDM3N1wzMjNcMzIzXDMyM1wzNzdcMFwwXDBcMzc3XDBcMFwwVVwwXDBcMFw0MFwwXDBcMFw0XDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDIxNVwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNTZcMzU2XDM1NlwzNzdcMFwwXDBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzMjRcMzI0XDMyNFwzNzdcMFwwXDAiCi0gICJcMzc3XDBcMFwwV1wwXDBcMCRcMFwwXDBcMTBcMFwwXDBcNFwwXDBcMFwzXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDMyNVwzMjVcMzI1XDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDIwNVwwXDBcMFwyMFwwXDBcMFw1XDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDBcMFwwXDM3N1wwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MVwzNjEiCi0gICJcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiMVwwXDBcMFwyMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDRcMFwwXDBcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU0XDM1NFwzNTRcMzc3XDBcMFwwXDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjQiCi0gICJcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMzMzXDMzM1wzMzNcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMEtcMFwwXDBcMzRcMFwwXDBcNFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw0XDAiCi0gICJcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMzU3XDM1N1wzNTdcMzc3IgotICAiXDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjUiCi0gICJcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMFwwXDBcMzc3IgotICAiXDMzNFwzMzRcMzM0XDM3N1wwXDBcMFwzNzdcMFwwXDBUXDBcMFwwXDQwXDBcMFwwXDRcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcNFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDBcMFwwXDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wzMzVcMzM1XDMzNVwzNzdcMFwwXDBcMzc3XDBcMFwwVVwwXDBcMFw0MFwwIgotICAiXDBcMFw0XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDRcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzIgotICAiXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzciCi0gICJcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wwXDBcMFwzNzdcMzM2XDMzNlwzMzZcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFVcMFwwXDBcNDBcMFwwXDBcNFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw0XDBcMFwwXDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MiIKLSAgIlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2IgotICAiXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDMzNyIKLSAgIlwzMzdcMzM3XDM3N1wwXDBcMFwzNzdcMFwwXDBVXDBcMFwwXDQwXDBcMFwwXDRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcNFwwXDBcMFwzNzdcMzQxXDM0MVwzNDFcMzc3XDMyM1wzMjNcMzIzXDM3N1wzMjRcMzI0XDMyNFwzNzciCi0gICJcMzI1XDMyNVwzMjVcMzc3XDMyNlwzMjZcMzI2XDM3N1wzMjdcMzI3XDMyN1wzNzdcMzMwXDMzMFwzMzBcMzc3XDMzMSIKLSAgIlwzMzFcMzMxXDM3N1wzMzFcMzMxXDMzMVwzNzdcMzMyXDMzMlwzMzJcMzc3XDMzM1wzMzNcMzMzXDM3N1wzMzRcMzM0IgotICAiXDMzNFwzNzdcMzM1XDMzNVwzMzVcMzc3XDMzN1wzMzdcMzM3XDM3N1wzNDBcMzQwXDM0MFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwVFwwXDBcMFw0MFwwXDBcMFw0XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDRcMFwwXDBcMjU0XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwIgotICAiXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDI3M1wwXDBcMExcMFwwXDBcMzRcMFwwXDBcNFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwyXDBcMFwwXDIzXDBcMFwwIiI1XDBcMFwwTVwwXDBcMFRcMFwwXDBVXDBcMFwwVVwwXDBcMFVcMFwwXDBVIgotICAiXDBcMFwwVVwwXDBcMFVcMFwwXDBVXDBcMFwwVVwwXDBcMFVcMFwwXDBVXDBcMFwwVVwwXDBcMFRcMFwwXDBMXDBcMFwwIgotICAiMlwwXDBcMFwyMlwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcNlwwXDBcMFwyM1wwIgotICAiXDBcMFwzNVwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MCIKLSAgIlwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFw0MFwwXDBcMFwzN1wwXDBcMFwzNFwwXDBcMCIKLSAgIlwyMlwwXDBcMFw2XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDJcMCIKLSAgIlwwXDBcM1wwXDBcMFw0XDBcMFwwXDRcMFwwXDBcNFwwXDBcMFw0XDBcMFwwXDRcMFwwXDBcNFwwXDBcMFw0XDBcMFwwIgotICAiXDRcMFwwXDBcNFwwXDBcMFw0XDBcMFwwXDRcMFwwXDBcNFwwXDBcMFw0XDBcMFwwXDNcMFwwXDBcMlwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfbWljKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfbWljW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19taWNbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDA8XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDA8XDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDA8UlJSXDM3N1wzMzIiCi0gICJcMzMyXDMzM1wzNzdcMzcyXDM3MlwzNzNcMzc3XDM2MVwzNjFcMzYzXDM3N1wzNzBcMzcwXDM3MVwzNzdcMzM1XDMzNCIKLSAgIlwzMzVcMzc3XDBcMFwwXDM3N1wwXDBcMEVcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMzc3XDMzMlwzMzFcMzMyXDM3N1wzNjNcMzYyXDM2NVwzNzdcMzI2XDMyNVwzMzRcMzc3XDM1MCIKLSAgIlwzNTBcMzUzXDM3N1wyNjdcMjY1XDI3NVwzNzdcMzI0XDMyMlwzMjdcMzc3aWZsXDM3N1wwXDBcMFwzNzdcMFwwXDBcMTMiCi0gICJcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzJcMzcyXDM3M1wzNzciCi0gICJcMzM0XDMzNFwzNDJcMzc3XDM1NFwzNTNcMzU2XDM3N1wzMDFcMjc3XDMwN1wzNzdcMzMwXDMyNlwzMzNcMzc3XDIyMCIKLSAgIlwyMTdcMjI2XDM3N1wyMTRcMjEyXDIxN1wzNzdcMFwwXDBcMzc3XDBcMFwwXDI2XDBcMFwwXDRcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzYzXDM2MVwzNjRcMzc3XDM1N1wzNTdcMzYyXDM3N1wzMTIiCi0gICJcMzA3XDMyMVwzNzdcMzM3XDMzNlwzNDNcMzc3XDIzNVwyMzRcMjQ0XDM3N1wyNzVcMjczXDMwMVwzNzdDQkZcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzMVwwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBJXDBcMFwwXVwwXDBcMFwxXDBcMFwwXDM3NyIKLSAgIlwzNzJcMzcyXDM3MlwzNzdcMzI0XDMyMlwzMzFcMzc3XDM1MFwzNDZcMzUzXDM3N1wyNjFcMjYwXDI3MlwzNzdcMzExIgotICAiXDMwN1wzMTZcMzc3dHF6XDM3N3FwdlwzNzdcMFwwXDBcMzc3XDBcMFwwXDMxXDBcMFwwX1wwXDBcMEpcMFwwXDBcMVwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJdXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM2MVwzNjBcMzYzXDM3N1wzNTVcMzU0XDM2MFwzNzdcMzAzXDMwMSIKLSAgIlwzMTJcMzc3XDMzMFwzMjZcMzM1XDM3N1wyMTRcMjExXDIyNVwzNzdcMjUwXDI0NlwyNTdcMzc3MjI2XDM3N1wwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMGJcMFwwXDBcN1wwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwzNzdcMFwwXDBcMjZcMFwwXDBcMzc3IgotICAiXDM3MVwzNzFcMzcyXDM3N1wzMTdcMzE2XDMyNlwzNzdcMzQ0XDM0MlwzNDdcMzc3XDI1MFwyNDdcMjYxXDM3N1wzMDMiCi0gICJcMzAxXDMxMFwzNzdlYmxcMzc3YWFlXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzRcMFwwXDBcMzc3XDBcMFwwXDI3XDBcMCIKLSAgIlwwXDEyXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwyNVwwXDBcMFwzNzdcMzYwXDM1NlwzNjFcMzc3XDM1M1wzNTJcMzU2XDM3NyIKLSAgIlwyNzZcMjczXDMwNlwzNzdcMzI1XDMyNFwzMzJcMzc3XDIwNFwyMDBcMjE0XDM3N1wyMzZcMjM1XDI0NlwzNzctLDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzMlwwXDBcMFwzNzdcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMFwwXDBcMjQiCi0gICJcMFwwXDBcMzc3XDM3MFwzNzBcMzcxXDM3N1wzMTJcMzA3XDMyMVwzNzdcMzM3XDMzNlwzNDJcMzc3XDIzNFwyMzJcMjQ0IgotICAiXDM3N1wyNzBcMjY2XDI3NlwzNzdZV19cMzc3XVthXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzFcMFwwXDBcMzc3XDBcMFwwIgotICAiXDI0XDBcMFwwXDVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDBcMFwwXDI0XDBcMFwwXDM3N1wzNTRcMzUyXDM1NVwzNzdcMzQzXDM0MlwzNDYiCi0gICJcMzc3XDI1MFwyNDdcMjYwXDM3N1wzMDdcMzA1XDMxNFwzNzdycXhcMzc3XDIyMlwyMjBcMjMxXDM3NygmKlwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDMxXDBcMFwwXDM3N1wwXDBcMFwyNFwwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwyNFwwIgotICAiXDBcMFwzNzdcMzUwXDM0N1wzNTJcMzc3XDI2NVwyNjNcMjcyXDM3N1wzMTRcMzE0XDMyMlwzNzdcMjA1XDIwNFwyMTIiCi0gICJcMzc3XDI0NVwyNDRcMjUzXDM3N0pJT1wzNzdNTFFcMzc3XDBcMFwwXDM3N1wwXDBcMFwzMVwwXDBcMFwzNzdcMFwwXDAiCi0gICJcMjRcMFwwXDBcNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMFwwXDBcMjRcMFwwXDBDXDBcMFwwXDM3N1wyMDZcMjA0XDIxMFwzNzc3NiIKLSAgIjpcMzc3YWFjXDM3NyQjJlwzNzdERElcMzc3XDBcMFwwXDM3N1wwXDBcMFwyMzJcMFwwXDBcMzBcMFwwXDBcMzc3XDBcMCIKLSAgIlwwXDI0XDBcMFwwXDVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDBcMFwwXDI0XDBcMFwwXDZcMFwwXDBEXDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjMyXDBcMFwwXDMyXDBcMFwwXDE3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwyNFwwXDBcMFw1XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwa1wwXDBcMFwyMDZcMFwwXDBcNlwwXDBcMFwzXDBcMFwwXDEzXDBcMFwwIgotICAiXDI2XDBcMFwwe1wwXDBcMFwzMlwwXDBcMFwzMVwwXDBcMFwyN1wwXDBcMFwxN1wwXDBcMFwyMDBcMFwwXDBtXDBcMFwwIgotICAiXDIyXDBcMFwwXDRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMG9cMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBtXDBcMFwwXDEzXDAiCi0gICJcMFwwXDEzXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwXDEzXDBcMFwwXDIyXDBcMFwwXDI0S0tLXDM3NyIKLSAgImFhYVwzNzdcMFwwXDBcMzc3XDBcMFwwXDMwXDBcMFwwXDI1XDBcMFwwXDI0XDBcMFwwXDIyXDBcMFwwXDEzXDBcMFwwIgotICAiXDNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFw0XDBcMFwwXDVLS0tcMzc3XDE3N1wxNzciCi0gICJcMTc3XDM3N1wwXDBcMFwzNzdcMFwwXDBtXDBcMFwwO1wwXDBcMFw2XDBcMFwwXDVcMFwwXDBcMlwwXDBcMFwzM1wwXDAiCi0gICJcMF1cMFwwXDBcMzRcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMEtLS1wzNzdcMTc3XDE3N1wxNzdcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzMlwwXDBcMFwxMlwwXDBcMExcMFwwXDBcMlwwXDBcMFwwXDBcMFwwSVwwXDBcMFw0XDAiCi0gICJcMFwwTVwwXDBcMFwzN1wwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiIjNcNDBcNDBcNDBcMzc3aGhoXDM3N1wwXDBcMCIKLSAgIlwzNzdcMFwwXDBHXDBcMFwwXDdcMFwwXDBcMlwwXDBcMGtcMFwwXDBdXDBcMFwwXDJcMFwwXDBcNVwwXDBcMFwzXDBcMCIKLSAgIlwwbFwwXDBcMFw0XDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcXFwwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N2dkW1wzNzdcMFwwXDBcMzc3VlJIXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMGBcMFwwXDAiCi0gICJcMlwwXDBcMG9cMFwwXDBcN1wwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDMzXDMzXDMzXDM3N1wyNTdcMjU1IgotICAiXDI1MVwzNzdcMjA1XDIwMntcMzc3d3RsXDM3N1ZSSFwzNzdWUkhcMzc3VlJIXDM3N1ZSSFwzNzdWUkhcMzc3VlJIXDM3NyIKLSAgIlZSSFwzNzdWUkhcMzc3VlJIXDM3N0xJQFwzNzc7OjJcMzc3XDQwXDM3XDMyXDM3N1wwXDBcMFwzNzdcMFwwXDBcMTRcMCIKLSAgIlwwXDBcMzdcMFwwXDBcN1wwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMjdcMFwwXDBcNVwwXDBcMEtcMFwwXDBXXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDRcMFwwXDBcMjVcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMCIKLSAgIlwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzFcMFwwXDBcMzEiCi0gICJcMFwwXDBcMzFcMFwwXDBcMjVcMFwwXDBcNFwwXDBcMFwxXDBcMFwwXDUifTsKLQotCi0vKiBHZGtQaXhidWYgUkdCQSBDLVNvdXJjZSBpbWFnZSBkdW1wICovCi0KLSNpZmRlZiBfX1NVTlBST19DCi0jcHJhZ21hIGFsaWduIDQgKHN0b2NrX211bHRpcGxlX2ZpbGUpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tdWx0aXBsZV9maWxlW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19tdWx0aXBsZV9maWxlW10gPSAKLSNlbmRpZgoteyAiIgotICAvKiBQaXhidWYgbWFnaWMgKDB4NDc2NDZiNTApICovCi0gICJHZGtQIgotICAvKiBsZW5ndGg6IGhlYWRlciAoMjQpICsgcGl4ZWxfZGF0YSAoNDA5NikgKi8KLSAgIlwwXDBcMjBcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoMTI4KSAqLwotICAiXDBcMFwwXDIwMCIKLSAgLyogd2lkdGggKDMyKSAqLwotICAiXDBcMFwwXDQwIgotICAvKiBoZWlnaHQgKDMyKSAqLwotICAiXDBcMFwwXDQwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDMzXDBcMFwwXDE0XDBcMFwwXDJcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDBcMzQwXDM0MFwzNzciCi0gICJcMzAxXDMwMVwzMDFcMzc3XDBcMFwwXDM3N1wwXDBcMCtcMFwwXDBcMTZcMFwwXDBcM1wwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDAtXDAiCi0gICJcMFwwXDE2XDBcMFwwXDNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzQwXDM0MFwzNDBcMzc3XDMwMVwzMDFcMzAxXDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICItXDBcMFwwXDE2XDBcMFwwXDNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzNcMzczXDM3M1wzNzciCi0gICJcMzcyXDM3MlwzNzFcMzc3XDMwM1wzMDNcMzAzXDM3N1wzNzNcMzczXDM3M1wzNzdcMjUwXDI1MFwyNTBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMC1cMFwwXDBcMjBcMFwwXDBcNlwwXDBcMFw0XDBcMFwwXDNcMFwwXDBcMVwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzNcMFwwXDBcMTRcMFwwXDBcMlwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDBcMFwwXDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDBcMzQwXDM0MFwzNzdcMzAxXDMwMSIKLSAgIlwzMDFcMzc3XDBcMFwwXDM3N1wwXDBcMCtcMFwwXDBcMTZcMFwwXDBcM1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc1XDM3NVwzNzVcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzIiCi0gICJcMzcyXDM3MVwzNzdcMzAzXDMwM1wzMDNcMzc3XDM3M1wzNzNcMzczXDM3N1wyNTBcMjUwXDI1MFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwLVwwXDBcMFwxNlwwXDBcMFwzXDBcMFwwXDBcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMjFcMzIxXDMyMVwzNzciCi0gICJcMjUyXDI1MlwyNTJcMzc3XDMyM1wzMjNcMzIzXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzIzXDMyM1wzMjNcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wyNTJcMjUyXDI1MlwzNzdcMjUyXDI1MlwyNTJcMzc3XDM3NVwzNzVcMzc1XDM3N1wzMjBcMzIwIgotICAiXDMyMFwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3MVwzNzFcMzcwXDM3N1wzNjdcMzY3XDM2NlwzNzdcMjU1XDI1NVwyNTUiCi0gICJcMzc3dnZ2XDM3N11dXVwzNzdAQEBcMzc3XDBcMFwwXDM3N1wwXDBcMCtcMFwwXDBcMTRcMFwwXDBcMFwwXDBcMFwzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc0XDM3NFwzNzRcMzc3XDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNzRcMzc0XDM3NFwzNzciCi0gICJcMzczXDM3M1wzNzJcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY2XDM2NlwzNjVcMzc3XDM2NCIKLSAgIlwzNjRcMzY0XDM3N1wzNDJcMzQyXDM0MlwzNzdcMjA1XDIwNVwyMDVcMzc3S0tJXDM3N1wyNlwyNlwyNlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwTlwwXDBcMFwzM1wwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3M1wzNzNcMzcyXDM3N1wzNzFcMzcxIgotICAiXDM3MVwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMjUyXDI1MlwyNTJcMzc3XDI3MSIKLSAgIlwyNzFcMjcxXDM3N1wzMjNcMzIzXDMyM1wzNzdcMzIzXDMyM1wzMjNcMzc3XDM3NlwzNzZcMzc2XDM3N1wyNTBcMjUwIgotICAiXDI1MFwzNzdcMjM2XDIzNlwyMzZcMzc3XDIzNVwyMzVcMjM1XDM3N1wyNDVcMjQ1XDI0NFwzNzdcMzY2XDM2NlwzNjYiCi0gICJcMzc3XDI0M1wyNDNcMjQyXDM3N1wzMTFcMzExXDMxMFwzNzdcMzYyXDM2MlwzNjFcMzc3XDM2MFwzNjBcMzU3XDM3NyIKLSAgIlwzNTZcMzU2XDM1NVwzNzdcMzU1XDM1NVwzNTNcMzc3XDIzNVwyMzVcMjM1XDM3N1wwXDBcMFwzNzdcMFwwXDBdXDBcMCIKLSAgIlwwI1wwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzNcMzczIgotICAiXDM3M1wzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzY3XDM3N1wzNjZcMzY2XDM2NlwzNzdcMFwwXDBcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc1XDM3NVwzNzVcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzJcMzcyXDM3MVwzNzdcMzcwXDM3MFwzNzAiCi0gICJcMzc3XDM2N1wzNjdcMzY2XDM3N1wzNjVcMzY1XDM2NFwzNzdcMzY0XDM2NFwzNjNcMzc3XDM2MlwzNjJcMzYxXDM3NyIKLSAgIlwzNjBcMzYwXDM1N1wzNzdcMzU3XDM1N1wzNTZcMzc3XDM1NVwzNTVcMzU0XDM3N1wzNTRcMzU0XDM1MlwzNzdcMzUyIgotICAiXDM1MlwzNTBcMzc3XDI0NFwyNDRcMjQzXDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY3XDM2N1wzNjYiCi0gICJcMzc3XDM2NVwzNjVcMzY0XDM3N1wzNjRcMzY0XDM2M1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMjUyXDI1MlwyNTJcMzc3XDMyMVwzMjFcMzIxXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzE2XDMxNlwzMTYiCi0gICJcMzc3XDM3MVwzNzFcMzcwXDM3N1wyNDRcMjQ0XDI0NFwzNzdcMjQzXDI0M1wyNDNcMzc3XDIzMlwyMzJcMjMxXDM3NyIKLSAgIlwyNTdcMjU3XDI1NlwzNzdcMzYxXDM2MVwzNjBcMzc3XDIzN1wyMzdcMjM2XDM3N3JycVwzNzdcMjI1XDIyNVwyMjRcMzc3IgotICAiXDIyM1wyMjNcMjIzXDM3N1wzNTFcMzUxXDM0N1wzNzdcMzQ3XDM0N1wzNDZcMzc3XDI0NFwyNDRcMjQ0XDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjNcMzc3XDM2MlwzNjJcMzYxXDM3N1wzNjFcMzYxIgotICAiXDM2MFwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3MyIKLSAgIlwzNzNcMzcyXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NlwzNjZcMzY1XDM3N1wzNjRcMzY0IgotICAiXDM2NFwzNzdcMzYzXDM2M1wzNjJcMzc3XDM2MVwzNjFcMzYwXDM3N1wzNjBcMzYwXDM1NlwzNzdcMzU2XDM1NlwzNTUiCi0gICJcMzc3XDM1NFwzNTRcMzUzXDM3N1wzNTNcMzUzXDM1MVwzNzdcMzUxXDM1MVwzNTBcMzc3XDM1MFwzNTBcMzQ2XDM3NyIKLSAgIlwzNDZcMzQ2XDM0NFwzNzdcMzQ1XDM0NVwzNDNcMzc3XDI0MlwyNDJcMjQyXDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMCIKLSAgIlwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjNcMzYzIgotICAiXDM2MlwzNzdcMzYxXDM2MVwzNjBcMzc3XDM2MFwzNjBcMzU2XDM3N1wzNTZcMzU2XDM1NVwzNzdcMFwwXDBcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzNcMzczXDM3M1wzNzdcMjY0XDI2NFwyNjRcMzc3XDI2M1wyNjNcMjYzXDM3N1wzNjZcMzY2IgotICAiXDM2NlwzNzdcMjYxXDI2MVwyNjFcMzc3XDI2MFwyNjBcMjU3XDM3N1wyMzBcMjMwXDIzMFwzNzdcMjI3XDIyN1wyMjYiCi0gICJcMzc3XDM1NlwzNTZcMzU1XDM3N29vblwzNzdubm5cMzc3bm5tXDM3N21tbFwzNzdsbGtcMzc3a2tqXDM3N1wzNDNcMzQzIgotICAiXDM0MVwzNzdcMzQyXDM0MlwzNDBcMzc3XDI0MlwyNDJcMjQyXDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDAiCi0gICJcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjBcMzYwXDM1NyIKLSAgIlwzNzdcMzU2XDM1NlwzNTVcMzc3XDM1NVwzNTVcMzUzXDM3N1wzNTNcMzUzXDM1MlwzNzdcMFwwXDBcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY3XDM2N1wzNjZcMzc3XDM2NVwzNjVcMzY0XDM3N1wzNjRcMzY0XDM2MyIKLSAgIlwzNzdcMzYyXDM2MlwzNjFcMzc3XDM2MFwzNjBcMzU3XDM3N1wzNTdcMzU3XDM1NlwzNzdcMzU1XDM1NVwzNTRcMzc3IgotICAiXDM1NFwzNTRcMzUyXDM3N25ubVwzNzdcMjA3XDIyNlwyNDVcMzc3XDIwNlwyMjZcMjQ0XDM3N1wyMDVcMjI1XDI0M1wzNzciCi0gICJcMjA1XDIyNFwyNDNcMzc3amppXDM3N1wzNDFcMzQxXDMzNlwzNzdcMzM3XDMzN1wzMzVcMzc3XDI0M1wyNDNcMjQyXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNTVcMzU1XDM1NFwzNzdcMzU0XDM1NFwzNTJcMzc3XDM1MlwzNTJcMzUwXDM3N1wzNTEiCi0gICJcMzUxXDM0N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMjYxXDI2MVwyNjBcMzc3IgotICAiXDIzMFwyMzBcMjMwXDM3N1wzMDdcMzA3XDMwNlwzNzdcMzA1XDMwNVwzMDRcMzc3XDM1NlwzNTZcMzU0XDM3N1wzMDMiCi0gICJcMzAzXDMwMlwzNzdcMzAxXDMwMVwzMDBcMzc3XDM1MVwzNTFcMzQ3XDM3N2xsbFwzNzdcMjE3XDIzNlwyNTRcMzc3XDI3NSIKLSAgIlwyNzBcMjI1XDM3N3B8aVwzNzdcMjE0XDIzM1wyNTJcMzc3aWloXDM3N1wzMzZcMzM2XDMzM1wzNzdcMzM0XDMzNFwzMzIiCi0gICJcMzc3XDI0M1wyNDNcMjQyXDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTJcMzUyXDM1MVwzNzdcMzUxXDM1MVwzNDdcMzc3XDM0NyIKLSAgIlwzNDdcMzQ2XDM3N1wzNDZcMzQ2XDM0NFwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjNcMzYzXDM2MlwzNzciCi0gICJcMzYxXDM2MVwzNjBcMzc3XDM2MFwzNjBcMzU2XDM3N1wzNTZcMzU2XDM1NVwzNzdcMzU0XDM1NFwzNTNcMzc3XDM1MyIKLSAgIlwzNTNcMzUxXDM3N1wzNTFcMzUxXDM1MFwzNzdcMzUwXDM1MFwzNDZcMzc3XDM0NlwzNDZcMzQ0XDM3N2tralwzNzdcMjI2IgotICAiXDI0NVwyNjRcMzc3XDMyM1wzMDdcMjE1XDM3N1wyMzdcMjM0ZFwzNzdvXDE3N3dcMzc3aGhmXDM3N1wzMzNcMzMzXDMzMCIKLSAgIlwzNzdcMzMyXDMzMlwzMjdcMzc3XDI0MFwyNDBcMjM3XDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwIgotICAiXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTBcMzUwXDM0NlwzNzciCi0gICJcMzQ2XDM0NlwzNDRcMzc3XDM0NVwzNDVcMzQzXDM3N1wzNDNcMzQzXDM0MVwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNjBcMzYwXDM1N1wzNzdcMjQzXDI0M1wyNDJcMzc3XDIyNVwyMjVcMjI0XDM3N1wyMjRcMjI0XDIyM1wzNzciCi0gICJcMjUxXDI1MVwyNTBcMzc3XDIzMlwyMzJcMjMxXDM3N1wyNDdcMjQ3XDI0NlwzNzdcMjc1XDI3NVwyNzNcMzc3XDM0MyIKLSAgIlwzNDNcMzQxXDM3N2pqaVwzNzdcMjM1XDI1NFwyNzNcMzc3XDMxNVwzMDRcMjI2XDM3N2ZzV1wzNzdcMjMzXDI1MlwyNzEiCi0gICJcMzc3ZmZlXDM3N1wzMzBcMzMwXDMyNVwzNzdcMzI3XDMyN1wzMjRcMzc3XDI0MlwyNDJcMjQxXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNDVcMzQ1XDM0M1wzNzdcMzQzXDM0M1wzNDFcMzc3XDM0MlwzNDJcMzQwXDM3N1wzNDBcMzQwXDMzNlwzNzciCi0gICJcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTVcMzU1XDM1NFwzNzdcMzU0XDM1NFwzNTJcMzc3XDM1MlwzNTJcMzUwIgotICAiXDM3N1wzNTFcMzUxXDM0N1wzNzdcMzQ3XDM0N1wzNDVcMzc3XDM0NVwzNDVcMzQzXDM3N1wzNDRcMzQ0XDM0MlwzNzciCi0gICJcMzQyXDM0MlwzNDBcMzc3XDM0MVwzNDFcMzM2XDM3N2hoaFwzNzdcMjQ1XDI2NFwzMDNcMzc3XDMxM1wzMDVcMjM1XDM3NyIKLSAgImx9b1wzNzdvXDIwMHNcMzc3ZWVjXDM3N1wzMjZcMzI2XDMyMlwzNzdcMzI0XDMyNFwzMjFcMzc3XDI0MlwyNDJcMjQxIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDAiCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDJcMzQyXDM0MFwzNzdcMzQxXDM0MVwzMzZcMzc3XDMzN1wzMzdcMzM1XDM3NyIKLSAgIlwzMzZcMzM2XDMzM1wzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTJcMzUyXDM1MVwzNzdcMjMzXDIzM1wyMzIiCi0gICJcMzc3XDIxNVwyMTVcMjE0XDM3N1wzNDZcMzQ2XDM0NFwzNzdcMjc0XDI3NFwyNzNcMzc3XDIxN1wyMTdcMjE1XDM3NyIKLSAgIlwyMTZcMjE2XDIxNFwzNzdcMjcxXDI3MVwyNjZcMzc3XDMzNlwzMzZcMzMzXDM3N2dnZlwzNzdnZ2VcMzc3ZmZkXDM3NyIKLSAgImVlZFwzNzdkZGNcMzc3ZGRiXDM3N1wzMjNcMzIzXDMyMFwzNzdcMzIxXDMyMVwzMTZcMzc3XDI0MVwyNDFcMjQwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wzMjBcMzIwXDMyMFwzNzdcMFwwXDBcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNDBcMzQwXDMzNVwzNzdcMzM2XDMzNlwzMzNcMzc3XDMzNFwzMzRcMzMyXDM3N1wzMzMiCi0gICJcMzMzXDMzMFwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTBcMzUwXDM0NlwzNzdcMzQ2XDM0NlwzNDRcMzc3IgotICAiXDM0NVwzNDVcMzQzXDM3N1wzNDNcMzQzXDM0MVwzNzdcMzQxXDM0MVwzMzdcMzc3XDM0MFwzNDBcMzM2XDM3N1wzMzYiCi0gICJcMzM2XDMzNFwzNzdcMzM1XDMzNVwzMzJcMzc3XDMzM1wzMzNcMzMwXDM3N1wzMzJcMzMyXDMyN1wzNzdcMzMwXDMzMCIKLSAgIlwzMjVcMzc3XDMyNlwzMjZcMzIzXDM3N1wzMjVcMzI1XDMyMlwzNzdcMzIzXDMyM1wzMjBcMzc3XDMyMlwzMjJcMzE2IgotICAiXDM3N1wzMjBcMzIwXDMxNVwzNzdcMzE3XDMxN1wzMTNcMzc3XDI0MFwyNDBcMjM3XDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICJfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMzVcMzM1IgotICAiXDMzMlwzNzdcMzMzXDMzM1wzMzBcMzc3XDMzMlwzMzJcMzI3XDM3N1wzMzBcMzMwXDMyNVwzNzdcMFwwXDBcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNDVcMzQ1XDM0M1wzNzdcMjI3XDIyN1wyMjZcMzc3XDIxNlwyMTZcMjE1XDM3N1wyMTVcMjE1IgotICAiXDIxNFwzNzdcMjE0XDIxNFwyMTJcMzc3XDMzNVwzMzVcMzMzXDM3N1wyMjJcMjIyXDIyMFwzNzdcMjM2XDIzNlwyMzMiCi0gICJcMzc3XDIzNFwyMzRcMjMyXDM3N1wyMDdcMjA3XDIwNVwzNzdcMzI1XDMyNVwzMjJcMzc3XDI1N1wyNTdcMjU0XDM3NyIKLSAgIlwyMzBcMjMwXDIyNlwzNzdcMjEzXDIxM1wyMTBcMzc3XDI1M1wyNTNcMjQ3XDM3N1wzMTVcMzE1XDMxMlwzNzdcMzE0IgotICAiXDMxNFwzMTBcMzc3XDI0MlwyNDJcMjQxXDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDQwIgotICAiXDBcMFwwVFwwXDBcMFwzNzdcMzIwXDMyMFwzMjBcMzc3XDI2MVwyNjFcMjU3XDM3N1wyNjRcMjY0XDI2M1wzNzdcMjY0IgotICAiXDI2NFwyNjFcMzc3XDI0MFwyNDBcMjM1XDM3N1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM0MlwzNDJcMzQwXDM3NyIKLSAgIlwzNDFcMzQxXDMzNlwzNzdcMzM3XDMzN1wzMzVcMzc3XDMzNlwzMzZcMzMzXDM3N1wzMzRcMzM0XDMzMVwzNzdcMzMyIgotICAiXDMzMlwzMzBcMzc3XDMzMVwzMzFcMzI2XDM3N1wzMjdcMzI3XDMyNFwzNzdcMzI2XDMyNlwzMjJcMzc3XDMyNFwzMjQiCi0gICJcMzIxXDM3N1wzMjNcMzIzXDMxN1wzNzdcMzIxXDMyMVwzMTVcMzc3XDMxN1wzMTdcMzE0XDM3N1wzMTZcMzE2XDMxMiIKLSAgIlwzNzdcMzE0XDMxNFwzMTBcMzc3XDMxNFwzMTRcMzA3XDM3N1wzMTRcMzE0XDMwN1wzNzdcMjQyXDI0MlwyNDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMF9cMFwwXDAkXDBcMFwwXDBcMFwwXDBcMTJcMFwwXDBcMzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNDAiCi0gICJcMzQwXDMzNVwzNzdcMjI0XDIyNFwyMjJcMzc3XDI2NlwyNjZcMjY0XDM3N1wzMzNcMzMzXDMzMFwzNzdcMjM1XDIzNSIKLSAgIlwyMzNcMzc3XDIxMFwyMTBcMjA2XDM3N1wzMjZcMzI2XDMyM1wzNzdcMzI1XDMyNVwzMjFcMzc3XDIxNFwyMTRcMjEyIgotICAiXDM3N1wyMTdcMjE3XDIxNVwzNzdcMjAzXDIwM1wyMDBcMzc3XDMxNlwzMTZcMzEyXDM3N1wyMjRcMjI0XDIyMVwzNzciCi0gICJcMjI0XDIyNFwyMjBcMzc3XDMxNFwzMTRcMzA3XDM3N1wzMTRcMzE0XDMwN1wzNzdcMzE0XDMxNFwzMDdcMzc3XDIzNyIKLSAgIlwyMzdcMjM3XDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMTBcMFwwXDAlIgotICAiXDBcMFwwVFwwXDBcMGpcMFwwXDBtXDBcMFwwbVwwXDBcMG9cMFwwXDBcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMzVcMzM1IgotICAiXDMzMlwzNzdcMzMzXDMzM1wzMzBcMzc3XDMzMlwzMzJcMzI3XDM3N1wzMzBcMzMwXDMyNVwzNzdcMzI2XDMyNlwzMjMiCi0gICJcMzc3XDMyNVwzMjVcMzIyXDM3N1wzMjNcMzIzXDMyMFwzNzdcMzIyXDMyMlwzMTZcMzc3XDMyMFwzMjBcMzE1XDM3NyIKLSAgIlwzMTdcMzE3XDMxM1wzNzdcMzE1XDMxNVwzMTFcMzc3XDMxNFwzMTRcMzA3XDM3N1wzMTRcMzE0XDMwN1wzNzdcMzE0IgotICAiXDMxNFwzMDdcMzc3XDMxNFwzMTRcMzA3XDM3N1wzMTRcMzE0XDMwN1wzNzdcMzE0XDMxNFwzMDdcMzc3XDI0MFwyNDAiCi0gICJcMjM3XDM3N1wwXDBcMFwzNzdcMFwwXDBfXDBcMFwwJFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwxM1wwXDAiCi0gICJcMFwzNFwwXDBcMCZcMFwwXDAoXDBcMFwwKFwwXDBcMCxcMFwwXDBcMzc3XDMyMFwzMjBcMzIwXDM3N1wyNjFcMjYxXDI1NyIKLSAgIlwzNzdcMjY0XDI2NFwyNjNcMzc3XDI2NFwyNjRcMjYxXDM3N1wyNDBcMjQwXDIzNVwzNzdcMjQwXDI0MFwyMzVcMzc3IgotICAiXDIzN1wyMzdcMjM1XDM3N1wyMzdcMjM3XDIzNVwzNzdcMjM3XDIzN1wyMzNcMzc3XDIzMVwyMzFcMjI1XDM3N1wyMTUiCi0gICJcMjE1XDIxMVwzNzdcMjEzXDIxM1wyMTFcMzc3XDIxM1wyMTNcMjExXDM3N1wyMTNcMjEzXDIxMVwzNzdcMjExXDIxMSIKLSAgIlwyMTFcMzc3XDIxMVwyMTFcMjExXDM3N1wyMDNcMjAzXDE3N1wzNzdcMjA0XDIwNFwyMDJcMzc3XV1cXFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXlwwXDBcMCRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFw0XDBcMFwwXDYiCi0gICJcMFwwXDBcN1wwXDBcMFw3XDBcMFwwXDEzXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjYzXDBcMFwwVFwwXDBcMFwzN1wwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcNFwwXDBcMCFcMFwwXDBTXDBcMCIKLSAgIlwwaVwwXDBcMG1cMFwwXDBtXDBcMFwwbVwwXDBcMG5cMFwwXDBuXDBcMFwwblwwXDBcMG5cMFwwXDBuXDBcMFwwblwwIgotICAiXDBcMG5cMFwwXDBuXDBcMFwwblwwXDBcMG5cMFwwXDBuXDBcMFwwblwwXDBcMG5cMFwwXDBsXDBcMFwwYFwwXDBcMDoiCi0gICJcMFwwXDBcMjNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDFcMFwwXDBcMTJcMFwwXDBcMzRcMFwwXDAmXDBcMFwwKFwwXDBcMChcMFwwXDAoXDBcMFwwKVwwXDAiCi0gICJcMClcMFwwXDApXDBcMFwwKVwwXDBcMClcMFwwXDApXDBcMFwwKVwwXDBcMClcMFwwXDApXDBcMFwwKVwwXDBcMClcMCIKLSAgIlwwXDApXDBcMFwwKVwwXDBcMChcMFwwXDAjXDBcMFwwXDI1XDBcMFwwXDdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFw0XDBcMFwwIgotICAiXDZcMFwwXDBcN1wwXDBcMFw3XDBcMFwwXDdcMFwwXDBcN1wwXDBcMFw3XDBcMFwwXDdcMFwwXDBcN1wwXDBcMFw3XDAiCi0gICJcMFwwXDdcMFwwXDBcN1wwXDBcMFw3XDBcMFwwXDdcMFwwXDBcN1wwXDBcMFw3XDBcMFwwXDdcMFwwXDBcN1wwXDBcMCIKLSAgIlw3XDBcMFwwXDZcMFwwXDBcNFwwXDBcMFwxIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19ub3QpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19ub3RbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX25vdFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBiXDBcMFwwXDI2MFwwXDBcMFwzNDIiCi0gICJcMFwwXDBcMzczXDBcMFwwXDM3M1wwXDBcMFwzNDNcMFwwXDBcMjYzXDBcMFwwalwwXDBcMFwxM1wwXDBcMFw1XDBcMCIKLSAgIlwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwYlwwXDBcMFwzNDFuXDM1XDE1XDM3N1wyNjcwXDI1XDM3N1wzMTUiCi0gICI0XDI3XDM3N1wzMTczXDI3XDM3N1wzMTUyXDI2XDM3N1wzMTAvXDI1XDM3N1wyNjAoXDIyXDM3N2hcMjdcMTJcMzc3XDAiCi0gICJcMFwwXDM0NVwwXDBcMG9cMFwwXDBcMTRcMFwwXDBcNFwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyMjVLXDI0XDExXDM3N1wzMTA1XDI3XDM3NyIKLSAgIlwzMjM3XDMxXDM3N1wzMjE1XDMwXDM3N1wzMTczXDI3XDM3N1wzMTUxXDI2XDM3N1wzMTQwXDI1XDM3N1wzMTIuXDI1IgotICAiXDM3N1wzMTAsXDI0XDM3N1wzMDYrXDIzXDM3N1wyNzAnXDIxXDM3N0RcMTZcNVwzNzdcMFwwXDBcMjQzXDBcMFwwXDI0IgotICAiXDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDAiCi0gICJcMFwyMjVvXDM2XDE1XDM3N1wzMjM4XDMxXDM3N1wzMjM2XDMwXDM3N1wzMzFfSFwzNzdcMzYxXDMxN1wzMTFcMzc3XDM3MSIKLSAgIlwzNjRcMzYzXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzY0XDM1M1wzNTJcMzc3XDM1MFwyNzNcMjY1XDM3N1wzMjV2alwzNzciCi0gICJcMzA3XDc3LVwzNzdcMzAyJ1wyMVwzNzdcMzAwJVwyMVwzNzdjXDIyXDEwXDM3N1wwXDBcMFwyNDZcMFwwXDBcMjZcMCIKLSAgIlwwXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBiS1wyNFwxMVwzNzdcMzIzIgotICAiOFwzMVwzNzdcMzIyNlwzMFwzNzdcMzUzXDI2MVwyNDZcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzJcMzcyXDM3MlwzNzciCi0gICJcMzcyXDM3MlwzNzJcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM1NSIKLSAgIlwzMjRcMzIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzYjXDIwXDM3N1wyNzQhXDE3XDM3N0JcMTNcNVwzNzciCi0gICJcMFwwXDB8XDBcMFwwXDI0XDBcMFwwXDRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwzNDFcMzA3IgotICAiNFwyN1wzNzdcMzIyNlwzMFwzNzdcMzUzXDI2MVwyNDZcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzJcMzcyXDM3MlwzNzciCi0gICJcMzcyXDM3MlwzNzJcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM1NSIKLSAgIlwzMjRcMzIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzJcMzdcMTYiCi0gICJcMzc3XDI1NVwzNFwxNFwzNzdcMFwwXDBcMzUxXDBcMFwwKFwwXDBcMFwxNFwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMGJtXDM0XDE0XDM3N1wzMjI1XDMwXDM3N1wzMjZXQVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3MlwzNzJcMzcyIgotICAiXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzBcMzcwXDM3MFwzNzciCi0gICJcMzU1XDMyNFwzMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyIKLSAgIiNcMjBcMzc3XDMwM0M2XDM3N1wyNjZcMzRcMTRcMzc3XlwxNlw1XDM3N1wwXDBcMFwyMDRcMFwwXDBcMzFcMFwwXDBcNSIKLSAgIlwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMjYwXDI2Ni5cMjRcMzc3XDMxNzNcMjdcMzc3XDM0MVwyMzJcMjIwXDM3N1wzNzIiCi0gICJcMzcyXDM3MlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MCIKLSAgIlwzNzBcMzc3XDM1NVwzMjRcMzIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwIgotICAiXDM3N1wyNzcjXDIwXDM3N1wzNDdcMzA2XDMwMlwzNzdcMzM1XDI0N1wyNDJcMzc3XDI2NFwzMlwxM1wzNzdcMjMzXDI1IgotICAiXDExXDM3N1wwXDBcMFwzMDRcMFwwXDAnXDBcMFwwXDEzXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFwzNDJcMzEzMlwyNlwzNzciCi0gICJcMzE1MVwyNlwzNzdcMzUzXDMwNlwzMDJcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcwXDM3MCIKLSAgIlwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNTVcMzI0XDMyMFwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMjc3IgotICAiI1wyMFwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMzQ3XDMwNlwzMDJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNDciCi0gICJcMzEyXDMwNlwzNzdcMjYyXDMwXDEyXDM3N1wyNTVcMjZcMTJcMzc3XDBcMFwwXDM1MlwwXDBcMCIiNFwwXDBcMFwyMiIKLSAgIlwwXDBcMFwyXDBcMFwwXDNcMFwwXDBcMzczXDMxNDFcMjZcMzc3XDMxMy9cMjVcMzc3XDM2MVwzMzdcMzM1XDM3N1wzNzEiCi0gICJcMzcxXDM3MVwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNTVcMzI0XDMyMFwzNzdcMjc3I1wyMCIKLSAgIlwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMzQ3XDMwNlwzMDJcMzc3IgotICAiXDM2MlwzNjJcMzYyXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzU1XDM0M1wzNDJcMzc3XDI2MFwyNlwxMlwzNzdcMjU2XDI0IgotICAiXDExXDM3N1wwXDBcMFwzNzRcMFwwXDA8XDBcMFwwXDI2XDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzNzNcMzEyL1wyNVwzNzciCi0gICJcMzExLVwyNFwzNzdcMzYxXDMzN1wzMzVcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzU1XDMyNCIKLSAgIlwzMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3IgotICAiXDM0N1wzMDZcMzAyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNTEiCi0gICJcMzI3XDMyNVwzNzdcMjU2XDI0XDExXDM3N1wyNTRcMjJcMTBcMzc3XDBcMFwwXDM3NFwwXDBcMEFcMFwwXDBcMzBcMCIKLSAgIlwwXDBcM1wwXDBcMFwzXDBcMFwwXDM0M1wzMDUsXDIzXDM3N1wzMDcrXDIzXDM3N1wzNDdcMjcyXDI2NVwzNzdcMzY3IgotICAiXDM2N1wzNjdcMzc3XDM1NVwzMjRcMzIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzciCi0gICIjXDIwXDM3N1wyNzcjXDIwXDM3N1wzNDdcMzA2XDMwMlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MVwzNjFcMzYxXDM3NyIKLSAgIlwzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM0NlwzMjFcMzE2XDM3N1wyNTVcMjJcMTBcMzc3XDI0N1wyMCIKLSAgIlw3XDM3N1wwXDBcMFwzNTNcMFwwXDBBXDBcMFwwXDMwXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwyNjNcMjU1JVwyMFwzNzciCi0gICJcMzA1KVwyMlwzNzdcMzM1XDIyNlwyMTVcMzc3XDM1MlwzMTBcMzA0XDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3NyIKLSAgIlwyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wyNzcjXDIwXDM3N1wzNDdcMzA2XDMwMlwzNzdcMzYyXDM2MlwzNjJcMzc3IgotICAiXDM2MVwzNjFcMzYxXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzMzMiCi0gICJcMjU0XDI1MFwzNzdcMjUzXDIwXDdcMzc3XDIyM1wxNFw1XDM3N1wwXDBcMFwzMTBcMFwwXDA9XDBcMFwwXDI2XDBcMCIKLSAgIlwwXDNcMFwwXDBcMlwwXDBcMGpmXDI1XDExXDM3N1wzMDInXDIxXDM3N1wzMDdBMVwzNzdcMjc3I1wyMFwzNzdcMjc3IgotICAiI1wyMFwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMzQ3XDMwNVwzMDFcMzc3XDM2MlwzNjIiCi0gICJcMzYyXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1NyIKLSAgIlwzNzdcMzU2XDM1NlwzNTZcMzc3XDI2NzozXDM3N1wyNTBcMTZcNlwzNzdWXDZcMlwzNzdcMFwwXDBcMjIyXDBcMFwwIgotICAiNFwwXDBcMFwyMlwwXDBcMFwyXDBcMFwwXDFcMFwwXDBcMTNcMFwwXDBcMzQ1XDI2NCNcMjBcMzc3XDI3NyNcMjBcMzc3IgotICAiXDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDI3NyNcMjBcMzc3XDM0N1wzMDVcMzAxXDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzU3XDM1NyIKLSAgIlwzNTdcMzc3XDM1NlwzNTZcMzU2XDM3N1wzMjFcMjIzXDIxN1wzNzdcMjUwXDE2XDZcMzc3XDIzM1wxM1w1XDM3N1wwIgotICAiXDBcMFwzNTNcMFwwXDBJXDBcMFwwJ1wwXDBcMFwxM1wwXDBcMFwxXDBcMFwwXDBcMFwwXDBcNVwwXDBcMG9DXDE0XDUiCi0gICJcMzc3XDI3NCFcMTdcMzc3XDI3M1w0MFwxNlwzNzdcMjc3I1wyMFwzNzdcMjc3I1wyMFwzNzdcMzQ0XDI3M1wyNjZcMzc3IgotICAiXDM2MlwzNjJcMzYyXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNTciCi0gICJcMzU3XDM1N1wzNzdcMzU1XDM1NVwzNTVcMzc3XDMyMVwyMjNcMjE3XDM3N1wyNDdcMTVcNlwzNzdcMjQ1XDEzXDVcMzc3IgotICAiOVwzXDFcMzc3XDBcMFwwXDIyNFwwXDBcMDtcMFwwXDBcMzFcMFwwXDBcNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwIgotICAiXDBcMFwxNFwwXDBcMFwyNDNhXDIwXDdcMzc3XDI3MFwzNlwxNVwzNzdcMjY3XDM0XDE0XDM3N1wzMDA9MVwzNzdcMzI2IgotICAiXDIxMlwyMDFcMzc3XDMzN1wyNTVcMjQ2XDM3N1wzNDRcMzAzXDI3NlwzNzdcMzU0XDM0M1wzNDFcMzc3XDM0NlwzMjEiCi0gICJcMzE2XDM3N1wzMzJcMjUzXDI0N1wzNzdcMjY3ODBcMzc3XDI0N1wxNVw1XDM3N1wyNDRcMTNcNVwzNzdVXDVcMVwzNzciCi0gICJcMFwwXDBcMjY3XDBcMFwwRlwwXDBcMChcMFwwXDBcMTRcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFw0XDBcMFwwXDI0XDBcMFwwXDI0NkBcMTJcM1wzNzdcMjUxXDMxXDEyXDM3N1wyNjNcMzBcMTNcMzc3XDI2MVwyNiIKLSAgIlwxMlwzNzdcMjU3XDI1XDExXDM3N1wyNTVcMjNcMTBcMzc3XDI1M1wyMVwxMFwzNzdcMjUyXDIwXDdcMzc3XDI1MFwxNiIKLSAgIlw2XDM3N1wyNDZcMTRcNVwzNzdcMjMyXDEyXDRcMzc3OVwzXDFcMzc3XDBcMFwwXDI2N1wwXDBcMElcMFwwXDAvXDBcMCIKLSAgIlwwXDI0XDBcMFwwXDRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDZcMFwwXDBcMjYiCi0gICJcMFwwXDB8XDBcMFwwXDM1MVxcXDEzXDVcMzc3XDIzMFwyMlwxMFwzNzdcMjUyXDIzXDEwXDM3N1wyNTNcMjFcN1wzNzciCi0gICJcMjUxXDE3XDdcMzc3XDI0NFwxNlw2XDM3N1wyMjFcMTNcNFwzNzdVXDVcMlwzNzdcMFwwXDBcMzUzXDBcMFwwXDIyNCIKLSAgIlwwXDBcMEZcMFwwXDAvXDBcMFwwXDI2XDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw2XDBcMFwwXDI0XDBcMFwwKFwwXDBcMFwyMDRcMFwwXDBcMzA0XDBcMFwwIgotICAiXDM1MlwwXDBcMFwzNzRcMFwwXDBcMzc0XDBcMFwwXDM1M1wwXDBcMFwzMTBcMFwwXDBcMjIyXDBcMFwwSVwwXDBcMDsiCi0gICJcMFwwXDAoXDBcMFwwXDI0XDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNFwwXDBcMFwxNFwwXDBcMFwzMVwwXDBcMCdcMFwwXDAiIjQiCi0gICJcMFwwXDA8XDBcMFwwQVwwXDBcMEFcMFwwXDA8XDBcMFwwIiI0XDBcMFwwJ1wwXDBcMFwzMVwwXDBcMFwxNFwwXDBcMCIKLSAgIlw0XDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDVcMFwwXDBcMTNcMFwwXDBcMjJcMFwwXDBcMjZcMFwwIgotICAiXDBcMzBcMFwwXDBcMzBcMFwwXDBcMjZcMFwwXDBcMjJcMFwwXDBcMTNcMFwwXDBcNVwwXDBcMFwxXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDJcMFwwXDBcM1wwXDBcMFwzXDBcMCIKLSAgIlwwXDNcMFwwXDBcM1wwXDBcMFwyXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja190YWJsZV9ib3JkZXJzKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGFibGVfYm9yZGVyc1tdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGFibGVfYm9yZGVyc1tdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMTZcMFwwXDBcM1wwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMzZcMzM2XDMzNlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwRVwwXDBcMFwxNlwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3NyIKLSAgIlwzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MlwzNjJcMzYyXDM3N25ublwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjYiCi0gICJcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MCIKLSAgIlwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwIgotICAiXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjMiCi0gICJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3NyIKLSAgIlwzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N2pqalwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjYiCi0gICJcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNDdcMzQ3XDM0N1wzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MCIKLSAgIlwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxIgotICAiXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjQiCi0gICJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNTBcMzUwXDM1MFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N2tra1wzNzdcMzY1XDM2NVwzNjVcMzc3IgotICAiXDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjciCi0gICJcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNTBcMzUwXDM1MFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MCIKLSAgIlwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyIgotICAiXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjUiCi0gICJcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3NyIKLSAgIlwzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNTFcMzUxXDM1MVwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3NyIKLSAgIlwzNjNcMzYzXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NVwzNjVcMzY1XDM3N2tra1wzNzdcMzY2XDM2NlwzNjZcMzc3IgotICAiXDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzEiCi0gICJcMzcxXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNTFcMzUxXDM1MVwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MSIKLSAgIlwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzIgotICAiXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjYiCi0gICJcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3NyIKLSAgIlwzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNTJcMzUyXDM1MlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzZcMzc2XDM3NlwzNzdra2tcMzc3XDM2MlwzNjIiCi0gICJcMzYyXDM3N2pqalwzNzdcMzYzXDM2M1wzNjNcMzc3ampqXDM3N1wzNjRcMzY0XDM2NFwzNzdra2tcMzc3XDM2NlwzNjYiCi0gICJcMzY2XDM3N2xsbFwzNzdcMzY3XDM2N1wzNjdcMzc3bGxsXDM3N1wzNzBcMzcwXDM3MFwzNzdtbW1cMzc3XDM3MVwzNzEiCi0gICJcMzcxXDM3N21tbVwzNzdcMzcyXDM3MlwzNzJcMzc3bm5uXDM3N1wzNTNcMzUzXDM1M1wzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjIiCi0gICJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3IgotICAiXDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzIiCi0gICJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNTNcMzUzXDM1M1wzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2MyIKLSAgIlwzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N2xsbFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzEiCi0gICJcMzcxXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3MyIKLSAgIlwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNTRcMzU0XDM1NFwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NiIKLSAgIlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3IgotICAiXDM3MVwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzQiCi0gICJcMzc0XDM3NFwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNTRcMzU0XDM1NFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NCIKLSAgIlwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2IgotICAiXDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N21tbVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzIiCi0gICJcMzcyXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzRcMzc0XDM3NCIKLSAgIlwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjUiCi0gICJcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2NyIKLSAgIlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3IgotICAiXDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzUiCi0gICJcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNTZcMzU2XDM1NlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NSIKLSAgIlwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3IgotICAiXDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N21tbVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3M1wzNzMiCi0gICJcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzVcMzc1XDM3NSIKLSAgIlwzNzdcMzc2XDM3NlwzNzZcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjYiCi0gICJcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3IgotICAiXDM3NFwzNzRcMzc0XDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzYiCi0gICJcMzc2XDM3NlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NiIKLSAgIlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxIgotICAiXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N25ublwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NFwzNzQiCi0gICJcMzc0XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwIgotICAiXDBcMFwwXDBcMFwwXDE1XDBcMFwwRFwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDAiCi0gICJcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMCIKLSAgIlwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBFXDBcMFwwXDE2XDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwxNVwwXDBcMFwyMCIKLSAgIlwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMCIKLSAgIlwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwIgotICAiXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwxNlwwXDBcMFwzIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja190YWJsZV9maWxsKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGFibGVfZmlsbFtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGFibGVfZmlsbFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMTZcMFwwXDBcM1wwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjYyXDI2MlwyNjJcMzc3XDI2MiIKLSAgIlwyNjJcMjYyXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjYyXDI2MlwyNjJcMzc3XDI2MlwyNjJcMjYyXDM3N1wyNjJcMjYyIgotICAiXDI2MlwzNzdcMjYyXDI2MlwyNjJcMzc3XDI2MlwyNjJcMjYyXDM3N1wyNjBcMjYwXDI2MFwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMzZcMzM2XDMzNlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwRVwwXDBcMFwxNlwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDciCi0gICJcMzc3XDI0N1wyNDdcMjQ3XDM3N1wyNDdcMjQ3XDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0N1wyNDdcMjQ3XDM3NyIKLSAgIlwyNDdcMjQ3XDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI1MFwyNTBcMjUwXDM3N0xMTFwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjYiCi0gICJcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0NyIKLSAgIlwyNDdcMjQ3XDM3N1wyNDdcMjQ3XDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0N1wyNDdcMjQ3XDM3N1wyNDdcMjQ3IgotICAiXDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI1MFwyNTBcMjUwXDM3N1wyNTBcMjUwXDI1MFwzNzdcMzYzXDM2M1wzNjMiCi0gICJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDciCi0gICJcMzc3XDI0N1wyNDdcMjQ3XDM3N1wyNDdcMjQ3XDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0N1wyNDdcMjQ3XDM3NyIKLSAgIlwyNDdcMjQ3XDI0N1wzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MFwyNTBcMjUwXDM3N0lJSVwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjYiCi0gICJcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNDdcMzQ3XDM0N1wzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0NyIKLSAgIlwyNDdcMjQ3XDM3N1wyNDdcMjQ3XDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0N1wyNDdcMjQ3XDM3N1wyNTBcMjUwIgotICAiXDI1MFwzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MVwyNTFcMjUxXDM3N1wyNTFcMjUxXDI1MVwzNzdcMzY0XDM2NFwzNjQiCi0gICJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNTBcMzUwXDM1MFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDciCi0gICJcMzc3XDI0N1wyNDdcMjQ3XDM3N1wyNDdcMjQ3XDI0N1wzNzdcMjQ3XDI0N1wyNDdcMzc3XDI1MFwyNTBcMjUwXDM3NyIKLSAgIlwyNTBcMjUwXDI1MFwzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MVwyNTFcMjUxXDM3N0pKSlwzNzdcMzY1XDM2NVwzNjVcMzc3IgotICAiXDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjciCi0gICJcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNTBcMzUwXDM1MFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDdcMzc3XDI0NyIKLSAgIlwyNDdcMjQ3XDM3N1wyNDdcMjQ3XDI0N1wzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MFwyNTBcMjUwXDM3N1wyNTBcMjUwIgotICAiXDI1MFwzNzdcMjUxXDI1MVwyNTFcMzc3XDI1MlwyNTJcMjUyXDM3N1wyNTNcMjUzXDI1M1wzNzdcMzY1XDM2NVwzNjUiCi0gICJcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3NyIKLSAgIlwzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNTFcMzUxXDM1MVwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjQ3XDI0N1wyNDciCi0gICJcMzc3XDI0N1wyNDdcMjQ3XDM3N1wyNTBcMjUwXDI1MFwzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MFwyNTBcMjUwXDM3NyIKLSAgIlwyNTFcMjUxXDI1MVwzNzdcMjUxXDI1MVwyNTFcMzc3XDI1M1wyNTNcMjUzXDM3N0pKSlwzNzdcMzY2XDM2NlwzNjZcMzc3IgotICAiXDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzEiCi0gICJcMzcxXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNTFcMzUxXDM1MVwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MCIKLSAgIlwyNTBcMjUwXDM3N1wyNTBcMjUwXDI1MFwzNzdcMjUwXDI1MFwyNTBcMzc3XDI1MVwyNTFcMjUxXDM3N1wyNTFcMjUxIgotICAiXDI1MVwzNzdcMjUyXDI1MlwyNTJcMzc3XDI1M1wyNTNcMjUzXDM3N1wyNTNcMjUzXDI1M1wzNzdcMzY2XDM2NlwzNjYiCi0gICJcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3NyIKLSAgIlwzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNTJcMzUyXDM1MlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wyNjFcMjYxXDI2MVwzNzdKSkpcMzc3XDI1MFwyNTAiCi0gICJcMjUwXDM3N0lJSVwzNzdcMjUxXDI1MVwyNTFcMzc3SUlJXDM3N1wyNTJcMjUyXDI1MlwzNzdKSkpcMzc3XDI1M1wyNTMiCi0gICJcMjUzXDM3N0tLS1wzNzdcMjU0XDI1NFwyNTRcMzc3S0tLXDM3N1wyNTVcMjU1XDI1NVwzNzdMTExcMzc3XDI1NVwyNTUiCi0gICJcMjU1XDM3N0xMTFwzNzdcMjU2XDI1NlwyNTZcMzc3TExMXDM3N1wyNDRcMjQ0XDI0NFwzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjIiCi0gICJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wyNTRcMjU0XDI1NFwzNzdcMjU0XDI1NFwyNTRcMzc3IgotICAiXDI1NVwyNTVcMjU1XDM3N1wyNTVcMjU1XDI1NVwzNzdcMjU1XDI1NVwyNTVcMzc3XDI1NlwyNTZcMjU2XDM3N1wyNTYiCi0gICJcMjU2XDI1NlwzNzdcMjU3XDI1N1wyNTdcMzc3XDI1N1wyNTdcMjU3XDM3N1wyNDRcMjQ0XDI0NFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2MyIKLSAgIlwzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N0tLS1wzNzdcMjU1XDI1NVwyNTVcMzc3XDI1NVwyNTUiCi0gICJcMjU1XDM3N1wyNTVcMjU1XDI1NVwzNzdcMjU2XDI1NlwyNTZcMzc3XDI1NlwyNTZcMjU2XDM3N1wyNTdcMjU3XDI1NyIKLSAgIlwzNzdcMjU3XDI1N1wyNTdcMzc3XDI1N1wyNTdcMjU3XDM3N1wyNDRcMjQ0XDI0NFwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NiIKLSAgIlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wyNTVcMjU1XDI1NVwzNzdcMjU1XDI1NVwyNTVcMzc3IgotICAiXDI1NVwyNTVcMjU1XDM3N1wyNTZcMjU2XDI1NlwzNzdcMjU2XDI1NlwyNTZcMzc3XDI1N1wyNTdcMjU3XDM3N1wyNTciCi0gICJcMjU3XDI1N1wzNzdcMjU3XDI1N1wyNTdcMzc3XDI2MFwyNjBcMjYwXDM3N1wyNDRcMjQ0XDI0NFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NCIKLSAgIlwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2IgotICAiXDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N0xMTFwzNzdcMjU1XDI1NVwyNTVcMzc3XDI1NlwyNTYiCi0gICJcMjU2XDM3N1wyNTZcMjU2XDI1NlwzNzdcMjU3XDI1N1wyNTdcMzc3XDI1N1wyNTdcMjU3XDM3N1wyNTdcMjU3XDI1NyIKLSAgIlwzNzdcMjYwXDI2MFwyNjBcMzc3XDI2MFwyNjBcMjYwXDM3N1wyNDVcMjQ1XDI0NVwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjUiCi0gICJcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2NyIKLSAgIlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MVwzNzFcMzcxXDM3N1wyNTVcMjU1XDI1NVwzNzdcMjU2XDI1NlwyNTZcMzc3IgotICAiXDI1NlwyNTZcMjU2XDM3N1wyNTdcMjU3XDI1N1wzNzdcMjU3XDI1N1wyNTdcMzc3XDI1N1wyNTdcMjU3XDM3N1wyNjAiCi0gICJcMjYwXDI2MFwzNzdcMjYwXDI2MFwyNjBcMzc3XDI2MVwyNjFcMjYxXDM3N1wyNDZcMjQ2XDI0NlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NSIKLSAgIlwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3IgotICAiXDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N0xMTFwzNzdcMjU2XDI1NlwyNTZcMzc3XDI1N1wyNTciCi0gICJcMjU3XDM3N1wyNTdcMjU3XDI1N1wzNzdcMjU3XDI1N1wyNTdcMzc3XDI2MFwyNjBcMjYwXDM3N1wyNjBcMjYwXDI2MCIKLSAgIlwzNzdcMjYxXDI2MVwyNjFcMzc3XDI2MlwyNjJcMjYyXDM3N1wyNDZcMjQ2XDI0NlwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjYiCi0gICJcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wyNTZcMjU2XDI1NlwzNzdcMjU3XDI1N1wyNTdcMzc3IgotICAiXDI1N1wyNTdcMjU3XDM3N1wyNTdcMjU3XDI1N1wzNzdcMjYwXDI2MFwyNjBcMzc3XDI2MFwyNjBcMjYwXDM3N1wyNjEiCi0gICJcMjYxXDI2MVwzNzdcMjYyXDI2MlwyNjJcMzc3XDI2MlwyNjJcMjYyXDM3N1wyNDZcMjQ2XDI0NlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NiIKLSAgIlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxIgotICAiXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N0xMTFwzNzdcMjU3XDI1N1wyNTdcMzc3XDI1N1wyNTciCi0gICJcMjU3XDM3N1wyNjBcMjYwXDI2MFwzNzdcMjYwXDI2MFwyNjBcMzc3XDI2MVwyNjFcMjYxXDM3N1wyNjJcMjYyXDI2MiIKLSAgIlwzNzdcMjYyXDI2MlwyNjJcMzc3XDI2MlwyNjJcMjYyXDM3N1wyNDZcMjQ2XDI0NlwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wzNTZcMzU2XDM1NlwzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0NlwzNDYiCi0gICJcMzQ2XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTBcMzUwXDM1MCIKLSAgIlwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wyNDRcMjQ0XDI0NFwzNzdcMjQ0XDI0NFwyNDRcMzc3IgotICAiXDI0NFwyNDRcMjQ0XDM3N1wyNDRcMjQ0XDI0NFwzNzdcMjQ1XDI0NVwyNDVcMzc3XDI0NlwyNDZcMjQ2XDM3N1wyNDYiCi0gICJcMjQ2XDI0NlwzNzdcMjQ2XDI0NlwyNDZcMzc3XDI0NlwyNDZcMjQ2XDM3N1wyMzJcMjMyXDIzMlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwUlwwXDBcMFwyMFwwXDBcMFwwXDBcMFwwXDE1XDBcMFwwIgotICAiRFwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDAiCi0gICJcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMFwwXDBSXDBcMFwwUlwwXDBcMFJcMCIKLSAgIlwwXDBFXDBcMFwwXDE2XDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwxNVwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwIgotICAiXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMCIKLSAgIlwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMFwyMFwwXDBcMCIKLSAgIlwyMFwwXDBcMFwxNlwwXDBcMFwzIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja190ZXh0X2J1bGxldGVkX2xpc3QpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja190ZXh0X2J1bGxldGVkX2xpc3RbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX3RleHRfYnVsbGV0ZWRfbGlzdFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDI3XDBcMFwwXDIyNFwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwyMzIiCi0gICJcMFwwXDAnXDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwyMjRcMzQyXDM0MlwzNDJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NFwzNjRcMzY0IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzciCi0gICJcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY0XDM2NFwzNjRcMzc3XDMzMyIKLSAgIlwzMzNcMzMzXDM3N1wwXDBcMFwyNDNcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM0MCIKLSAgIlwzNDBcMzQwXDM3N1wzNDBcMzQwXDM0MFwzNzdcMzQxXDM0MVwzNDFcMzc3XDM0MlwzNDJcMzQyXDM3N1wzNDNcMzQzIgotICAiXDM0M1wzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDciCi0gICJcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3NyIKLSAgIlwzNTNcMzUzXDM1M1wzNzdcMzU0XDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM1NVwzNTVcMzU1XDM3N1wwXDBcMFwzNzdcMFwwXDApXDBcMFwwXDE2XDBcMFwwXDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdcMzQxXDM0MVwzNDFcMzc3XDM0MVwzNDFcMzQxXDM3N1wzNDJcMzQyXDM0MlwzNzdcMzQzXDM0MyIKLSAgIlwzNDNcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDVcMzQ1XDM0NVwzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0N1wzNDdcMzQ3IgotICAiXDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTJcMzUyXDM1MlwzNzciCi0gICJcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NyIKLSAgIlwzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDBcMFwwXDM3N1wwXDBcMCIiOFwwXDBcMCIKLSAgIlwyNVwwXDBcMFwzNzdcMzYyXDM2MlwzNjJcMzc3XDM0MlwzNDJcMzQyXDM3N1wzNDNcMzQzXDM0M1wzNzdcMjM2XDIzNiIKLSAgIlwyMzZcMzc3bW1tXDM3N1wyMzdcMjM3XDIzN1wzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0N1wzNDdcMzQ3XDM3N29vb1wzNzciCi0gICJwcHBcMzc3cHBwXDM3N3FxcVwzNzdxcXFcMzc3cXFxXDM3N3JyclwzNzdycnJcMzc3c3NzXDM3N1wzNjBcMzYwXDM2MCIKLSAgIlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwIgotICAiXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzQzXDM0M1wzNDNcMzc3XDM0NFwzNDRcMzQ0XDM3N25ublwzNzdubm5cMzc3bm4iCi0gICJuXDM3N1wzNDdcMzQ3XDM0N1wzNzdcMzUwXDM1MFwzNTBcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTJcMzUyXDM1MlwzNzciCi0gICJcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NiIKLSAgIlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjJcMzYyIgotICAiXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ1XDM0NVwzNDVcMzc3XDI0MFwyNDBcMjQwXDM3N29vb1wzNzdcMjQxXDI0MSIKLSAgIlwyNDFcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdwcHBcMzc3cXFxXDM3N3FxcVwzNzdycnJcMzc3IgotICAicnJyXDM3N3Nzc1wzNzdzc3NcMzc3c3NzXDM3N3R0dFwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjQiCi0gICJcMzY0XDM2NFwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzYzXDM2M1wzNjNcMzc3XDM0NSIKLSAgIlwzNDVcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxIgotICAiXDM1MVwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU0XDM1NFwzNTQiCi0gICJcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3NyIKLSAgIlwzNTZcMzU2XDM1NlwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0IgotICAiXDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjQiCi0gICJcMzY0XDM2NFwzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0N1wzNDdcMzQ3XDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MSIKLSAgIlwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3cXFxXDM3N3JyclwzNzciCi0gICJycnJcMzc3c3NzXDM3N3Nzc1wzNzd0dHRcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDBcMFwwXDM3N1wwIgotICAiXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNDdcMzQ3XDM0N1wzNzdcMzUwXDM1MFwzNTAiCi0gICJcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3NyIKLSAgIlwzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwIgotICAiXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjQiCi0gICJcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2NyIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM1MFwzNTBcMzUwIgotICAiXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzciCi0gICJcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MCIKLSAgIlwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0IgotICAiXDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjciCi0gICJcMzc3XDM3MFwzNzBcMzcwXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU0XDM1NFwzNTRcMzc3IgotICAiXDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjAiCi0gICJcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NCIKLSAgIlwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwIgotICAiXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDAiCi0gICJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3NyIKLSAgIlwzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxIgotICAiXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjQiCi0gICJcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzJcMzcyXDM3MlwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY2XDM2NlwzNjZcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzciCi0gICJcMzAzXDMwM1wzMDNcMzc3cnJyXDM3N1wzMDRcMzA0XDMwNFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3NyIKLSAgInR0dFwzNzd1dXVcMzc3XDIwM1wyMDNcMjAzXDM3N3V1dVwzNzd2dnZcMzc3dnZ2XDM3N3d3d1wzNzd3d3dcMzc3eHh4IgotICAiXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICI9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NVwzNTVcMzU1XDM3NyIKLSAgInJyclwzNzdzc3NcMzc3c3NzXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3NyIKLSAgIlwzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3IgotICAiXDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3M1wzNzMiCi0gICJcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NVwzNzVcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMCIKLSAgIlwwXDBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDMwNFwzMDRcMzA0IgotICAiXDM3N3Nzc1wzNzdcMzA2XDMwNlwzMDZcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzd1dXVcMzc3dnYiCi0gICJ2XDM3N3Z2dlwzNzd3d3dcMzc3d3d3XDM3N3d3d1wzNzd4eHhcMzc3eHh4XDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NCIKLSAgIlwzNzRcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzZcMzc2XDM3NlwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwIgotICAiXDBcMFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjIiCi0gICJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyIgotICAiXDM3MlwzNzJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzUiCi0gICJcMzc1XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyIgotICAiXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzciCi0gICJcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MiIKLSAgIlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzVcMzc1IgotICAiXDM3NVwzNzdcMzc2XDM3NlwzNzZcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MiIKLSAgIlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3IgotICAiXDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzIiCi0gICJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc2XDM3NiIKLSAgIlwzNzZcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNTRcMzU0XDM1NFwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwyMzJcMzExXDMxMVwzMTEiCi0gICJcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyIgotICAiXDM3MlwzNzJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NlwzNzYiCi0gICJcMzc2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzU2XDM1NlwzNTZcMzc3XDI3NVwyNzVcMjc1XDM3N1wwXDBcMFwzMjRcMFwwXDA6XDBcMFwwXDI2XDBcMFwwIgotICAiXDM0XDBcMFwwXDI0M1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzMjRcMCIKLSAgIlwwXDBZXDBcMFwwLVwwXDBcMFwyMFwwXDBcMFw2XDBcMFwwXDI0XDBcMFwwKVwwXDBcMCIiOFwwXDBcMDxcMFwwXDA9IgotICAiXDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwIgotICAiPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDAiIjlcMFwwXDAtXDBcMFwwXDMxXDBcMFwwXDdcMFwwXDAiCi0gICJcMVwwXDBcMFw2XDBcMFwwXDE2XDBcMFwwXDI0XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMCIKLSAgIlwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3IgotICAiXDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI1XDBcMFwwXDIwXDBcMFwwXDdcMFwwXDAiCi0gICJcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMCIKLSAgIlwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwIgotICAiXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwyXDBcMFwwXDFcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfdGV4dF9pbmRlbnQpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja190ZXh0X2luZGVudFtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGV4dF9pbmRlbnRbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwyN1wwXDBcMFwyMjRcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjMyIgotICAiXDBcMFwwJ1wwXDBcMFw2XDBcMFwwXDFcMFwwXDBcMjI0XDM0MlwzNDJcMzQyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyIgotICAiXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjRcMzY0XDM2NCIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3IgotICAiXDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NFwzNjRcMzY0XDM3N1wzMzMiCi0gICJcMzMzXDMzM1wzNzdcMFwwXDBcMjQzXDBcMFwwXDI1XDBcMFwwXDZcMFwwXDBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNDAiCi0gICJcMzQwXDM0MFwzNzdcMzQwXDM0MFwzNDBcMzc3XDM0MVwzNDFcMzQxXDM3N1wzNDJcMzQyXDM0MlwzNzdcMzQzXDM0MyIKLSAgIlwzNDNcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDVcMzQ1XDM0NVwzNzdcMjU2XDI1NlwyNTZcMzc3XDM0N1wzNDdcMzQ3IgotICAiXDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUwXDM1MFwzNTBcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTJcMzUyXDM1MlwzNzciCi0gICJcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NyIKLSAgIlwzNTdcMzU3XDM3N1wzNDNcMzQzXDM0M1wzNzdcMFwwXDBcMzc3XDBcMFwwKVwwXDBcMFwxNlwwXDBcMFwzNzdcMzYyIgotICAiXDM2MlwzNjJcMzc3XDM0MVwzNDFcMzQxXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzQyXDM0MlwzNDJcMzc3XDM0M1wzNDMiCi0gICJcMzQzXDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzNDdcMzQ3XDM0NyIKLSAgIlwzNzdcMzUwXDM1MFwzNTBcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUyXDM1MlwzNTJcMzc3IgotICAiXDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTciCi0gICJcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM0N1wzNDdcMzQ3XDM3N1wwXDBcMFwzNzdcMFwwXDAiIjhcMFwwXDAiCi0gICJcMjVcMFwwXDBcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNDJcMzQyXDM0MlwzNzdcMjU0XDI1NFwyNTRcMzc3XDI1NFwyNTQiCi0gICJcMjU0XDM3N1wyNTVcMjU1XDI1NVwzNzdcMjU2XDI1NlwyNTZcMzc3XDI1NlwyNTZcMjU2XDM3N1wyNTdcMjU3XDI1NyIKLSAgIlwzNzdcMjYwXDI2MFwyNjBcMzc3XDI2MVwyNjFcMjYxXDM3N1wyNjJcMjYyXDI2MlwzNzdcMjYyXDI2MlwyNjJcMzc3IgotICAiXDI2M1wyNjNcMjYzXDM3N1wyNjNcMjYzXDI2M1wzNzdcMjY0XDI2NFwyNjRcMzc3XDI2NVwyNjVcMjY1XDM3N1wyNjUiCi0gICJcMjY1XDI2NVwzNzdcMjY2XDI2NlwyNjZcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNTBcMzUwXDM1MFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzYzXDM2M1wzNjNcMzc3XDM0M1wzNDNcMzQzXDM3N1wzNDRcMzQ0XDM0NCIKLSAgIlwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3IgotICAiXDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTQiCi0gICJcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1NyIKLSAgIlwzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM1MVwzNTFcMzUxIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzQ0XDM0NFwzNDQiCi0gICJcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM0N1wzNDdcMzQ3XDM3NyIKLSAgIlwzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU0IgotICAiXDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1N1wzNTciCi0gICJcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2MyIKLSAgIlwzNzdcMzUyXDM1MlwzNTJcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2M1wzNjNcMzYzIgotICAiXDM3N1wzNDVcMzQ1XDM0NVwzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0N1wzNDdcMzQ3XDM3N1wzNTBcMzUwXDM1MFwzNzciCi0gICJcMzUxXDM1MVwzNTFcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTJcMzUyXDM1MlwzNzd1dXVcMzc3dnZ2XDM3N3Z2dlwzNzciCi0gICJ3d3dcMzc3d3d3XDM3N3h4eFwzNzd4eHhcMzc3eHh4XDM3N3l5eVwzNzd5eXlcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNTMiCi0gICJcMzUzXDM1M1wzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY0XDM2NFwzNjRcMzc3XDM0NiIKLSAgIlwzNDZcMzQ2XDM3N1wzNDdcMzQ3XDM0N1wzNzdcMzUwXDM1MFwzNTBcMzc3XDI1MlwyNTJcMjUyXDM3N1wzNTJcMzUyIgotICAiXDM1MlwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTUiCi0gICJcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1IgotICAiXDM2NVwzNjVcMzc3XDM1NFwzNTRcMzU0XDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjQiCi0gICJcMzY0XDM2NFwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMFwwXDBcMzc3IgotICAiXDI1NFwyNTRcMjU0XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU0XDM1NFwzNTRcMzc3dnZ2XDM3N3d3d1wzNzd3d3dcMzc3IgotICAieHh4XDM3N3h4eFwzNzd5eXlcMzc3eXl5XDM3N3p6elwzNzd6enpcMzc3enp6XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzU1IgotICAiXDM1NVwzNTVcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2NVwzNjVcMzY1XDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDI1NVwyNTVcMjU1XDM3N1wzNTZcMzU2IgotICAiXDM1NlwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjEiCi0gICJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTIiCi0gICJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDBcMFwwXDM3N1wyNTVcMjU1XDI1NVwzNzdcMzU2XDM1NlwzNTZcMzc3IgotICAiXDM1N1wzNTdcMzU3XDM3N3h4eFwzNzd4eHhcMzc3eHh4XDM3N3l5eVwzNzd5eXlcMzc3enp6XDM3N3p6elwzNzd7e3siCi0gICJcMzc3e3t7XDM3N3x8fFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM1N1wzNTdcMzU3XDM3N1wwXDBcMFwzNzdcMFwwXDA9XDAiCi0gICJcMFwwXDI3XDBcMFwwXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTQiCi0gICJcMzU0XDM1NFwzNzdcMjU1XDI1NVwyNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MCIKLSAgIlwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzIgotICAiXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzciCi0gICJcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzYwXDM2MFwzNjBcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU0IgotICAiXDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MFwzNjAiCi0gICJcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzd5eXlcMzc3eXl5XDM3N3p6elwzNzd6enpcMzc3enp6XDM3N1wzNjZcMzY2XDM2NiIKLSAgIlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3IgotICAiXDM3M1wzNzNcMzczXDM3N1wzNjJcMzYyXDM2MlwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzciCi0gICJcMzY3XDM2N1wzNjdcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NyIKLSAgIlwzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzIgotICAiXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjYiCi0gICJcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3NyIKLSAgIlwzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM2M1wzNjNcMzYzXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMCIKLSAgIlwwXDI3XDBcMFwwXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzU2XDM1NlwzNTZcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTdcMzU3IgotICAiXDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjMiCi0gICJcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczIgotICAiXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMjY3XDI2N1wyNjciCi0gICJcMzc3XDI3MFwyNzBcMjcwXDM3N1wyNzBcMjcwXDI3MFwzNzdcMjcwXDI3MFwyNzBcMzc3XDI3MVwyNzFcMjcxXDM3NyIKLSAgIlwyNzJcMjcyXDI3MlwzNzdcMjczXDI3M1wyNzNcMzc3XDI3M1wyNzNcMjczXDM3N1wyNzRcMjc0XDI3NFwzNzdcMjc1IgotICAiXDI3NVwyNzVcMzc3XDI3NlwyNzZcMjc2XDM3N1wyNzZcMjc2XDI3NlwzNzdcMjc2XDI3NlwyNzZcMzc3XDI3N1wyNzciCi0gICJcMjc3XDM3N1wzMDBcMzAwXDMwMFwzNzdcMzAxXDMwMVwzMDFcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2MVwzNjFcMzYxIgotICAiXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjRcMzY0XDM2NFwzNzciCi0gICJcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzVcMzc1IgotICAiXDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM2NVwzNjVcMzY1XDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjJcMzYyXDM2MiIKLSAgIlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3IgotICAiXDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDI3NFwyNzRcMjc0XDM3N1wzNzEiCi0gICJcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NSIKLSAgIlwzNzVcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzMxXDMzMVwzMzFcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDAiCi0gICJcMjMyXDMxMVwzMTFcMzExXDM3N1wzMzJcMzMyXDMzMlwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1M1wzNTNcMzUzXDM3NyIKLSAgIlwzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NSIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM0NFwzNDRcMzQ0XDM3N1wyNzVcMjc1XDI3NVwzNzdcMFwwXDBcMzI0XDBcMFwwIgotICAiOlwwXDBcMFwyNlwwXDBcMFwzNFwwXDBcMFwyNDNcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzI0XDBcMFwwWVwwXDBcMC1cMFwwXDBcMjBcMFwwXDBcNlwwXDBcMFwyNFwwXDBcMClcMFwwXDAiIjhcMCIKLSAgIlwwXDA8XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9IgotICAiXDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwIiI5XDBcMFwwLVwwXDBcMFwzMVwwIgotICAiXDBcMFw3XDBcMFwwXDFcMFwwXDBcNlwwXDBcMFwxNlwwXDBcMFwyNFwwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwIgotICAiXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyNyIKLSAgIlwwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyN1wwXDBcMFwyNVwwXDBcMFwyMFwwXDBcMCIKLSAgIlw3XDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwIgotICAiXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDAiCi0gICJcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcMlwwXDBcMFwxXDBcMFwwXDAifTsKLQotCi0vKiBHZGtQaXhidWYgUkdCQSBDLVNvdXJjZSBpbWFnZSBkdW1wICovCi0KLSNpZmRlZiBfX1NVTlBST19DCi0jcHJhZ21hIGFsaWduIDQgKHN0b2NrX3RleHRfbnVtYmVyZWRfbGlzdCkKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX3RleHRfbnVtYmVyZWRfbGlzdFtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGV4dF9udW1iZXJlZF9saXN0W10gPSAKLSNlbmRpZgoteyAiIgotICAvKiBQaXhidWYgbWFnaWMgKDB4NDc2NDZiNTApICovCi0gICJHZGtQIgotICAvKiBsZW5ndGg6IGhlYWRlciAoMjQpICsgcGl4ZWxfZGF0YSAoMjMwNCkgKi8KLSAgIlwwXDBcMTFcMzAiCi0gIC8qIHBpeGRhdGFfdHlwZSAoMHgxMDEwMDAyKSAqLwotICAiXDFcMVwwXDIiCi0gIC8qIHJvd3N0cmlkZSAoOTYpICovCi0gICJcMFwwXDBgIgotICAvKiB3aWR0aCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIGhlaWdodCAoMjQpICovCi0gICJcMFwwXDBcMzAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMjdcMFwwXDBcMjI0XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDIzMiIKLSAgIlwwXDBcMCdcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDIyNFwzNDJcMzQyXDM0MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MiIKLSAgIlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzIgotICAiXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY0XDM2NFwzNjQiCi0gICJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzMzIgotICAiXDMzM1wzMzNcMzc3XDBcMFwwXDI0M1wwXDBcMFwyNVwwXDBcMFw2XDBcMFwwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzQwIgotICAiXDM0MFwzNDBcMzc3XDM0MFwzNDBcMzQwXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzQyXDM0MlwzNDJcMzc3XDM0M1wzNDMiCi0gICJcMzQzXDM3N1wzNDRcMzQ0XDM0NFwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzNDdcMzQ3XDM0NyIKLSAgIlwzNzdcMzUwXDM1MFwzNTBcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzUyXDM1MlwzNTJcMzc3IgotICAiXDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTciCi0gICJcMzU3XDM1N1wzNzdcMzU1XDM1NVwzNTVcMzc3XDBcMFwwXDM3N1wwXDBcMClcMFwwXDBcMTZcMFwwXDBcMzc3XDM2MiIKLSAgIlwzNjJcMzYyXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzQxXDM0MVwzNDFcMzc3XDMxNFwzMTRcMzE0XDM3N21tbVwzNzdcMzQ0IgotICAiXDM0NFwzNDRcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM1MFwzNTAiCi0gICJcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1MyIKLSAgIlwzNzdcMzU0XDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3IgotICAiXDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMFwwXDBcMzc3XDBcMFwwIiI4XDBcMFwwXDI1XDBcMFwwXDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMzQyXDM0MlwzNDJcMzc3XDMxNVwzMTVcMzE1XDM3N21tbVwzNzdtbW1cMzc3XDM0NVwzNDUiCi0gICJcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3b29vXDM3N3BwcFwzNzdwcHBcMzc3cXFxXDM3NyIKLSAgInFxcVwzNzdxcXFcMzc3cnJyXDM3N3JyclwzNzdzc3NcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyIgotICAiXDM2MlwzNjJcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNDMiCi0gICJcMzQzXDM0M1wzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NVwzNDVcMzQ1XDM3N25ublwzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0NyIKLSAgIlwzNDdcMzQ3XDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzIgotICAiXDM1M1wzNzdcMzU0XDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTYiCi0gICJcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3NyIKLSAgIlwzNjNcMzYzXDM2M1wzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM0NFwzNDRcMzQ0XDM3N1wzNDVcMzQ1XDM0NVwzNzdcMzQ2XDM0NlwzNDZcMzc3b29vXDM3N1wzNDdcMzQ3XDM0N1wzNzciCi0gICJcMzUwXDM1MFwzNTBcMzc3XDM1MVwzNTFcMzUxXDM3N3BwcFwzNzdxcXFcMzc3cXFxXDM3N3JyclwzNzdycnJcMzc3cyIKLSAgInNzXDM3N3Nzc1wzNzdzc3NcMzc3dHR0XDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0IgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzQ1XDM0NVwzNDUiCi0gICJcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzNDdcMzQ3XDM0N1wzNzdvb29cMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTFcMzUxXDM1MSIKLSAgIlwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3IgotICAiXDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNjAiCi0gICJcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NSIKLSAgIlwzNjVcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNDZcMzQ2IgotICAiXDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzUyXDM1MlwzNTIiCi0gICJcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMjA2XDIwNlwyMDZcMzc3cnJyXDM3N3JyclwzNzdzcyIKLSAgInNcMzc3c3NzXDM3N3R0dFwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0IgotICAiXDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyNyIKLSAgIlwwXDBcMFwzNzdcMzY0XDM2NFwzNjRcMzc3XDM0N1wzNDdcMzQ3XDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTEiCi0gICJcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMzU0XDM1NFwzNTRcMzc3XDM1NFwzNTRcMzU0XDM3NyIKLSAgIlwzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxIgotICAiXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjUiCi0gICJcMzY1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzUwXDM1MFwzNTBcMzc3XDM1MVwzNTFcMzUxIgotICAiXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzciCi0gICJcMzU2XDM1NlwzNTZcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MSIKLSAgIlwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzAiCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNTFcMzUxXDM1MSIKLSAgIlwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3IgotICAiXDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjEiCi0gICJcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NSIKLSAgIlwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwIgotICAiXDM3N1wzNzFcMzcxXDM3MVwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY1XDM2NVwzNjUiCi0gICJcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMzAzXDMwM1wzMDNcMzc3cnJyXDM3N1wzMjdcMzI3XDMyNyIKLSAgIlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3IgotICAiXDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjYiCi0gICJcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MiIKLSAgIlwzNzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjZcMzY2IgotICAiXDM2NlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N3JyclwzNzdcMzU2XDM1NlwzNTZcMzc3c3NzXDM3NyIKLSAgIlwzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3dHR0XDM3N3V1dVwzNzdcMjAzXDIwM1wyMDNcMzc3dXV1XDM3NyIKLSAgInZ2dlwzNzd2dnZcMzc3d3d3XDM3N3d3d1wzNzd4eHhcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0IgotICAiXDM3NFwzNzRcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNTUiCi0gICJcMzU1XDM1NVwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzMzBcMzMwXDMzMFwzNzdzc3NcMzc3XDM2MSIKLSAgIlwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1IgotICAiXDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzAiCi0gICJcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3NyIKLSAgIlwzNzVcMzc1XDM3NVwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY3XDM2N1wzNjdcMzc3IgotICAiXDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzMwXDMzMFwzMzBcMzc3c3NzXDM3N1wzMzJcMzMyXDMzMlwzNzciCi0gICJcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N3V1dVwzNzd2dnZcMzc3dnZ2XDM3N3d3d1wzNzd3d3dcMzc3dyIKLSAgInd3XDM3N3h4eFwzNzd4eHhcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NVwzNzVcMzc3IgotICAiXDM3NlwzNzZcMzc2XDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNzBcMzcwXDM3MFwzNzciCi0gICJcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N3R0dFwzNzd0dHRcMzc3dXV1XDM3N1wzNjRcMzY0XDM2NFwzNzciCi0gICJcMzY1XDM2NVwzNjVcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzRcMzc0IgotICAiXDM3NFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjFcMzYxXDM2MSIKLSAgIlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY0XDM2NFwzNjRcMzc3IgotICAiXDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzEiCi0gICJcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NSIKLSAgIlwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzYyXDM2MlwzNjIiCi0gICJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3NyIKLSAgIlwzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxIgotICAiXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzUiCi0gICJcMzc1XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM1NFwzNTRcMzU0XDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwIgotICAiXDIzMlwzMTFcMzExXDMxMVwzNzdcMzU1XDM1NVwzNTVcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjVcMzY1XDM2NVwzNzciCi0gICJcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzVcMzc1IgotICAiXDM3NVwzNzdcMzc2XDM3NlwzNzZcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMjc1XDI3NVwyNzVcMzc3XDBcMFwwXDMyNFwwXDBcMCIKLSAgIjpcMFwwXDBcMjZcMFwwXDBcMzRcMFwwXDBcMjQzXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDMyNFwwXDBcMFlcMFwwXDAtXDBcMFwwXDIwXDBcMFwwXDZcMFwwXDBcMjRcMFwwXDApXDBcMFwwIiI4XDAiCi0gICJcMFwwPFwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPSIKLSAgIlwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMCIiOVwwXDBcMC1cMFwwXDBcMzFcMCIKLSAgIlwwXDBcN1wwXDBcMFwxXDBcMFwwXDZcMFwwXDBcMTZcMFwwXDBcMjRcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMCIKLSAgIlwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjciCi0gICJcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjdcMFwwXDBcMjVcMFwwXDBcMjBcMFwwXDAiCi0gICJcN1wwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDJcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMCIKLSAgIlwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwIgotICAiXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDJcMFwwXDBcMVwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja190ZXh0X3VuaW5kZW50KQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGV4dF91bmluZGVudFtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGV4dF91bmluZGVudFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDI3XDBcMFwwXDIyNFwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwyMzIiCi0gICJcMFwwXDAnXDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwyMjRcMzQyXDM0MlwzNDJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NFwzNjRcMzY0IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzciCi0gICJcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY0XDM2NFwzNjRcMzc3XDMzMyIKLSAgIlwzMzNcMzMzXDM3N1wwXDBcMFwyNDNcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM0MCIKLSAgIlwzNDBcMzQwXDM3N1wzNDBcMzQwXDM0MFwzNzdcMzQxXDM0MVwzNDFcMzc3XDM0MlwzNDJcMzQyXDM3N1wzNDNcMzQzIgotICAiXDM0M1wzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0NVwzNDVcMzQ1XDM3N1wyNTZcMjU2XDI1NlwzNzdcMzQ3XDM0N1wzNDciCi0gICJcMzc3XDM1MFwzNTBcMzUwXDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3NyIKLSAgIlwzNTNcMzUzXDM1M1wzNzdcMzU0XDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM0M1wzNDNcMzQzXDM3N1wwXDBcMFwzNzdcMFwwXDApXDBcMFwwXDE2XDBcMFwwXDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdcMzQxXDM0MVwzNDFcMzc3XDM0MVwzNDFcMzQxXDM3N1wzNDJcMzQyXDM0MlwzNzdcMzQzXDM0MyIKLSAgIlwzNDNcMzc3XDM0NFwzNDRcMzQ0XDM3N1wzNDVcMzQ1XDM0NVwzNzdcMzQ2XDM0NlwzNDZcMzc3XDM0N1wzNDdcMzQ3IgotICAiXDM3N1wzNTBcMzUwXDM1MFwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNTJcMzUyXDM1MlwzNzciCi0gICJcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NyIKLSAgIlwzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzQ3XDM0N1wzNDdcMzc3XDBcMFwwXDM3N1wwXDBcMCIiOFwwXDBcMCIKLSAgIlwyNVwwXDBcMFwzNzdcMzYyXDM2MlwzNjJcMzc3XDM0MlwzNDJcMzQyXDM3N1wyNTRcMjU0XDI1NFwzNzdcMjU0XDI1NCIKLSAgIlwyNTRcMzc3XDI1NVwyNTVcMjU1XDM3N1wyNTZcMjU2XDI1NlwzNzdcMjU2XDI1NlwyNTZcMzc3XDI1N1wyNTdcMjU3IgotICAiXDM3N1wyNjBcMjYwXDI2MFwzNzdcMjYxXDI2MVwyNjFcMzc3XDI2MlwyNjJcMjYyXDM3N1wyNjJcMjYyXDI2MlwzNzciCi0gICJcMjYzXDI2M1wyNjNcMzc3XDI2M1wyNjNcMjYzXDM3N1wyNjRcMjY0XDI2NFwzNzdcMjY1XDI2NVwyNjVcMzc3XDI2NSIKLSAgIlwyNjVcMjY1XDM3N1wyNjZcMjY2XDI2NlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM1MFwzNTBcMzUwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzQzXDM0M1wzNDNcMzc3XDM0NFwzNDRcMzQ0IgotICAiXDM3N1wzNDVcMzQ1XDM0NVwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzNDdcMzQ3XDM0N1wzNzciCi0gICJcMzUwXDM1MFwzNTBcMzc3XDM1MVwzNTFcMzUxXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM1NCIKLSAgIlwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3IgotICAiXDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzUxXDM1MVwzNTEiCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNDRcMzQ0XDM0NCIKLSAgIlwzNzdcMzQ1XDM0NVwzNDVcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzNDdcMzQ3XDM0N1wzNzdcMzQ3XDM0N1wzNDdcMzc3IgotICAiXDM1MFwzNTBcMzUwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzUyXDM1MlwzNTJcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTQiCi0gICJcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU3XDM1NyIKLSAgIlwzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzIgotICAiXDM3N1wzNTJcMzUyXDM1MlwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzYzXDM2M1wzNjMiCi0gICJcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM1MFwzNTBcMzUwXDM3NyIKLSAgIlwzNTFcMzUxXDM1MVwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTJcMzUyXDM3N3V1dVwzNzd2dnZcMzc3dnZ2XDM3NyIKLSAgInd3d1wzNzd3d3dcMzc3eHh4XDM3N3h4eFwzNzd4eHhcMzc3eXl5XDM3N3l5eVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM1MyIKLSAgIlwzNTNcMzUzXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzQ2IgotICAiXDM0NlwzNDZcMzc3XDM0N1wzNDdcMzQ3XDM3N1wyNTJcMjUyXDI1MlwzNzdcMzUxXDM1MVwzNTFcMzc3XDM1MlwzNTIiCi0gICJcMzUyXDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NSIKLSAgIlwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3IgotICAiXDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjUiCi0gICJcMzY1XDM2NVwzNzdcMzU0XDM1NFwzNTRcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2NCIKLSAgIlwzNjRcMzY0XDM3N1wzNDdcMzQ3XDM0N1wzNzdcMjUyXDI1MlwyNTJcMzc3XDBcMFwwXDM3N1wzNTJcMzUyXDM1MlwzNzciCi0gICJcMzUzXDM1M1wzNTNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTRcMzU0XDM1NFwzNzd2dnZcMzc3d3d3XDM3N3d3d1wzNzciCi0gICJ4eHhcMzc3eHh4XDM3N3l5eVwzNzd5eXlcMzc3enp6XDM3N3p6elwzNzd6enpcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNTUiCi0gICJcMzU1XDM1NVwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY1XDM2NVwzNjVcMzc3XDI1MiIKLSAgIlwyNTJcMjUyXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDM1NlwzNTYiCi0gICJcMzU2XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MSIKLSAgIlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3IgotICAiXDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY3XDM2N1wzNjdcMzc3XDM1NlwzNTZcMzU2XDM3N1wwXDAiCi0gICJcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzUxXDM1MVwzNTFcMzc3XDI1MyIKLSAgIlwyNTNcMjUzXDM3N1wwXDBcMFwzNzdcMzU0XDM1NFwzNTRcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzciCi0gICJcMzU3XDM1N1wzNTdcMzc3eHh4XDM3N3h4eFwzNzd4eHhcMzc3eXl5XDM3N3l5eVwzNzd6enpcMzc3enp6XDM3N3t7eyIKLSAgIlwzNzd7e3tcMzc3fHx8XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzU3XDM1N1wzNTdcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMCIKLSAgIlwwXDBcMjdcMFwwXDBcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNTJcMzUyXDM1MlwzNzdcMzUzXDM1M1wzNTNcMzc3XDI1NSIKLSAgIlwyNTVcMjU1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjBcMzYwIgotICAiXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjMiCi0gICJcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3NyIKLSAgIlwzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNjBcMzYwXDM2MFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzY2XDM2NlwzNjZcMzc3XDM1M1wzNTNcMzUzXDM3N1wzNTQiCi0gICJcMzU0XDM1NFwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTdcMzU3XDM1N1wzNzdcMzYwXDM2MCIKLSAgIlwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N3l5eVwzNzd5eXlcMzc3enp6XDM3N3p6elwzNzd6enpcMzc3XDM2NlwzNjZcMzY2IgotICAiXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzciCi0gICJcMzczXDM3M1wzNzNcMzc3XDM2MlwzNjJcMzYyXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3IgotICAiXDM1N1wzNTdcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2M1wzNjMiCi0gICJcMzYzXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NiIKLSAgIlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyXDM3MlwzNzJcMzc3IgotICAiXDM3M1wzNzNcMzczXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzYzXDM2M1wzNjNcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwIgotICAiXDBcMjdcMFwwXDBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1N1wzNTciCi0gICJcMzU3XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2MyIKLSAgIlwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY3XDM2N1wzNjdcMzc3IgotICAiXDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzMiCi0gICJcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNjRcMzY0XDM2NFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwPVwwXDBcMFwyN1wwXDBcMFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2MFwzNjBcMzYwXDM3N1wyNjdcMjY3XDI2NyIKLSAgIlwzNzdcMjcwXDI3MFwyNzBcMzc3XDI3MFwyNzBcMjcwXDM3N1wyNzBcMjcwXDI3MFwzNzdcMjcxXDI3MVwyNzFcMzc3IgotICAiXDI3MlwyNzJcMjcyXDM3N1wyNzNcMjczXDI3M1wzNzdcMjczXDI3M1wyNzNcMzc3XDI3NFwyNzRcMjc0XDM3N1wyNzUiCi0gICJcMjc1XDI3NVwzNzdcMjc2XDI3NlwyNzZcMzc3XDI3NlwyNzZcMjc2XDM3N1wyNzZcMjc2XDI3NlwzNzdcMjc3XDI3NyIKLSAgIlwyNzdcMzc3XDMwMFwzMDBcMzAwXDM3N1wzMDFcMzAxXDMwMVwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NVwzNjVcMzY1IgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDI3XDBcMFwwXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzYxXDM2MVwzNjEiCi0gICJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NFwzNjRcMzY0XDM3NyIKLSAgIlwzNjVcMzY1XDM2NVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcxIgotICAiXDM3MVwzNzFcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NVwzNzUiCi0gICJcMzc1XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc2XDM3NlwzNzZcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzY1XDM2NVwzNjVcMzc3XDBcMFwwXDM3N1wwXDBcMD1cMFwwXDBcMjdcMFwwXDBcMzc3XDM2MlwzNjJcMzYyIgotICAiXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzciCi0gICJcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMjc0XDI3NFwyNzRcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzVcMzc1IgotICAiXDM3NVwzNzdcMzc2XDM3NlwzNzZcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMzFcMzMxXDMzMVwzNzdcMFwwXDBcMzc3XDBcMFwwPVwwXDBcMFwyN1wwXDBcMCIKLSAgIlwyMzJcMzExXDMxMVwzMTFcMzc3XDMzMlwzMzJcMzMyXDM3N1wzNTZcMzU2XDM1NlwzNzdcMzUzXDM1M1wzNTNcMzc3IgotICAiXDM1NFwzNTRcMzU0XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTciCi0gICJcMzU3XDM1N1wzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYzXDM2MyIKLSAgIlwzNjNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NVwzNjVcMzY1IgotICAiXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzQ0XDM0NFwzNDRcMzc3XDI3NVwyNzVcMjc1XDM3N1wwXDBcMFwzMjRcMFwwXDAiCi0gICI6XDBcMFwwXDI2XDBcMFwwXDM0XDBcMFwwXDI0M1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzMjRcMFwwXDBZXDBcMFwwLVwwXDBcMFwyMFwwXDBcMFw2XDBcMFwwXDI0XDBcMFwwKVwwXDBcMCIiOFwwIgotICAiXDBcMDxcMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD0iCi0gICJcMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDA9XDBcMFwwPVwwXDBcMD1cMFwwXDAiIjlcMFwwXDAtXDBcMFwwXDMxXDAiCi0gICJcMFwwXDdcMFwwXDBcMVwwXDBcMFw2XDBcMFwwXDE2XDBcMFwwXDI0XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDAiCi0gICJcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3IgotICAiXDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI3XDBcMFwwXDI1XDBcMFwwXDIwXDBcMFwwIgotICAiXDdcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDAiCi0gICJcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMCIKLSAgIlwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwzXDBcMFwwXDNcMFwwXDBcM1wwXDBcMFwyXDBcMFwwXDFcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfdGltZXIpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja190aW1lcltdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdGltZXJbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjNcMCIKLSAgIlwwXDBvXDBcMFwwXDI2NlwwXDBcMFwzNDRcMFwwXDBcMzczXDBcMFwwXDM3M1wwXDBcMFwzNDVcMFwwXDBcMjcwXDBcMCIKLSAgIlwwdFwwXDBcMFwzMVwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwyMDVcMFwwXDAiCi0gICJcMzczXDIwN1wyMDdcMjA3XDM3N1wzMDBcMzAwXDMwMFwzNzdcMzIzXDMyM1wzMjNcMzc3XDMyNlwzMjZcMzI2XDM3NyIKLSAgIlwzMjVcMzI1XDMyNVwzNzdcMzIyXDMyMlwzMjJcMzc3XDI3NVwyNzVcMjc1XDM3N1wyMDRcMjA0XDIwNFwzNzdcMFwwIgotICAiXDBcMzc0XDBcMFwwXDIxN1wwXDBcMFwxMFwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdbXDIxMFwyNjJcMzc3XDBcMFwwXDM3N1wzMjRcMzI0IgotICAiXDMyNFwzNzdcMzQyXDM0MlwzNDJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc0XDM3NFwzNzQiCi0gICJcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzNcMzczXDM3M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM1NFwzNTRcMzU0XDM3NyIKLSAgIlwzNDFcMzQxXDM0MVwzNzdcMjIwXDIyMFwyMjBcMzc3XDBcMFwwXDMyNFwwXDBcMCIiNlwwXDBcMFwzXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMjM2IgotICAiXDI3MFwzMjFcMzc3UFwyMDBcMjU1XDM3N1wwXDBcMFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzUiCi0gICJcMzc1XDM3NVwzNzdcMzE2XDMxNlwzMTZcMzc3XDMxMFwzMTBcMzEwXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzczXDM3MyIKLSAgIlwzNzNcMzc3XDM3M1wzNzNcMzczXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzUwXDM1MFwzNTBcMzc3XDI3MlwyNzJcMjcyIgotICAiXDM3N1wwXDBcMFwzNTJcMFwwXDBcNzdcMFwwXDBcNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDI3N1wzMjFcMzQxIgotICAiXDM3N1wyNTdcMzA1XDMzMlwzNzdcMjYyXDMwN1wzMzNcMzc3XDI2NlwzMTJcMzM1XDM3N1wyNDRcMjc1XDMyNVwzNzciCi0gICJcMjM0XDI2N1wzMjFcMzc3UFwyMDBcMjU1XDM3N1wxMFwxNVwyMVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1IgotICAiXDM3N1wyNzdcMjc3XDI3N1wzNzdcMjcwXDI3MFwyNzBcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzNcMzczXDM3M1wzNzciCi0gICJcMzcyXDM3MlwzNzJcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzUwXDM1MFwzNTBcMzc3XDMwMSIKLSAgIlwzMDFcMzAxXDM3N1wwXDBcMFwzMzBcMFwwXDBcMzJcMFwwXDBcNFwwXDBcMFwwXDBcMFwwXDM3N1wzMDJcMzIyXDM0MSIKLSAgIlwzNzdcMjQwXDI3MlwzMjNcMzc3XDIzNFwyNjdcMzIxXDM3N1wyMzJcMjY1XDMxN1wzNzdcMjQwXDI3MlwzMjNcMzc3IgotICAiXDIzNFwyNjdcMzIxXDM3N1wyMjdcMjYzXDMxNlwzNzdfXDIxM1wyNjRcMzc3XDBcMFwwXDM3N1wzNzVcMzc1XDM3NVwzNzciCi0gICJcMjYwXDI2MFwyNjBcMzc3XDI1MVwyNTFcMjUxXDM3N1wzNzNcMzczXDM3M1wzNzdcMzczXDM3M1wzNzNcMzc3XDM3MSIKLSAgIlwzNzFcMzcxXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNDVcMzQ1IgotICAiXDM0NVwzNzdcMjE3XDIxN1wyMTdcMzc3XDBcMFwwXDI0MlwwXDBcMFwyMFwwXDBcMFwxXDBcMFwwXDM3N1wzMTBcMzI2IgotICAiXDM0NFwzNzdcMjM2XDI3MFwzMjFcMzc3XDIzMlwyNjVcMzE3XDM3N1wyMzRcMjY3XDMyMVwzNzdcMjM0XDI2N1wzMjEiCi0gICJcMzc3XDIzNFwyNjdcMzIxXDM3N1wyNDBcMjcyXDMyM1wzNzdcMjI1XDI2MlwzMTZcMzc3THlcMjQzXDM3N1wwXDBcMCIKLSAgIlwzNzdcMjQxXDI0MVwyNDFcMzc3XDIzMVwyMzFcMjMxXDM3N1wzNzNcMzczXDM3M1wzNzdcMzcyXDM3MlwzNzJcMzc3IgotICAiXDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjMiCi0gICJcMzYzXDM2M1wzNzdcMzUwXDM1MFwzNTBcMzc3XDBcMFwwXDM3NFwwXDBcMD5cMFwwXDBcMTFcMFwwXDBcMzc3Z1wyMTMiCi0gICJcMjU0XDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3N1w3N2VcMjEwXDM3NyIKLSAgIlw3N2VcMjEwXDM3NypDW1wzNzdcMFwwXDBcMzc3XDM3NVwzNzVcMzc1XDM3N1wyMjFcMjIxXDIyMVwzNzdcMjEyXDIxMiIKLSAgIlwyMTJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwIgotICAiXDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNTVcMzU1XDM1NVwzNzciCi0gICJcMjE2XDIxNlwyMTZcMzc3XDBcMFwwXDIyN1wwXDBcMFwyNVwwXDBcMFwzNzdkXDIwN1wyNDdcMzc3N1l4XDM3NzdZeCIKLSAgIlwzNzc3WXhcMzc3XDc3ZVwyMTBcMzc3XDc3ZVwyMTBcMzc3KkNbXDM3N1wwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3NlwzNzZcMzc2XDM3N1wyMDFcMjAxXDIwMVwzNzd6enpcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzFcMzcxXDM3MVwzNzciCi0gICJcMzcwXDM3MFwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2MiIKLSAgIlwzNjJcMzYyXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzIzXDMyM1wzMjNcMzc3XDBcMFwwXDMxNFwwXDBcMChcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1w3N2VcMjEwXDM3NypDW1wzNzdcMFwwXDBcMzc3IgotICAiXDM3NVwzNzVcMzc1XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc1XDM3NVwzNzVcMzc3cnJyXDM3N2tra1wzNzdcMzU2XDM1NiIKLSAgIlwzNTZcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NFwzNjRcMzY0IgotICAiXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYxXDM2MVwzNjFcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNjdcMzY3XDM2N1wzNzciCi0gICJcMFwwXDBcMzU0XDBcMFwwIiI5XDBcMFwwXDBcMFwwXDBcMzczXDM1MFwzNTBcMzUwXDM3N1wzNzJcMzcyXDM3MlwzNzciCi0gICJcMFwwXDBcMzc3KkNbXDM3N1wwXDBcMFwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzRcMzc0XDM3NCIKLSAgIlwzNzdcMzc0XDM3NFwzNzRcMzc3Y2NjXDM3N1tbW1wzNzdcMzEzXDMxM1wzMTNcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNjciCi0gICJcMzY3XDM2N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjJcMzYyXDM2MlwzNzdcMjczXDI3MyIKLSAgIlwyNzNcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNzBcMzcwXDM3MFwzNzdcMFwwXDBcMzc0XDBcMFwwRFwwXDBcMFwwXDBcMCIKLSAgIlwwXDM3M1wzMzZcMzM2XDMzNlwzNzdcMzcxXDM3MVwzNzFcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMzczXDM3M1wzNzMiCi0gICJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzNcMzczXDM3M1wzNzdcMzczXDM3M1wzNzNcMzc3XDM3M1wzNzNcMzczXDM3NyIKLSAgIlwyMjFcMjIxXDIyMVwzNzdMTExcMzc3RUVFXDM3N2JiYlwzNzdcMzAwXDMwMFwzMDBcMzc3XDMzNVwzMzVcMzM1XDM3NyIKLSAgIlwzNjJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDI2NVwyNjVcMjY1XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzcwIgotICAiXDM3MFwzNzBcMzc3XDBcMFwwXDM3NFwwXDBcMEpcMFwwXDBcMFwwXDBcMFwzNDZcMzMyXDMzMlwzMzJcMzc3XDM3MFwzNzAiCi0gICJcMzcwXDM3N1wwXDBcMFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcyIgotICAiXDM3MlwzNzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzUyXDM1MlwzNTJcMzc3XDI3NlwyNzYiCi0gICJcMjc2XDM3N2RkZFwzNzcuLi5cMzc3JycnXDM3N0lJSVwzNzdcMzYxXDM2MVwzNjFcMzc3XDM1N1wzNTdcMzU3XDM3NyIKLSAgIlwzNTVcMzU1XDM1NVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM2N1wzNjdcMzY3XDM3N1wwXDBcMFwzNTVcMFwwXDBKXDBcMCIKLSAgIlwwXDBcMFwwXDBcMjczXDI3NVwyNzVcMjc1XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY3XDM2N1wzNjdcMzc3XDM3MFwzNzAiCi0gICJcMzcwXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzM1XDMzNVwzMzVcMzc3IgotICAiXDI3NlwyNzZcMjc2XDM3N1dXV1wzNzd4eHhcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU0XDM1NCIKLSAgIlwzNTRcMzc3XDM3MVwzNzFcMzcxXDM3N1wzMjNcMzIzXDMyM1wzNzdcMFwwXDBcMzE2XDBcMFwwRFwwXDBcMFwwXDBcMCIKLSAgIlwwdFwxNzdcMTc3XDE3N1wzNzdcMzQxXDM0MVwzNDFcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2IgotICAiXDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjYiCi0gICJcMzY2XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjJcMzYyXDM2MiIKLSAgIlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU1XDM1NVwzNTVcMzc3IgotICAiXDM2NFwzNjRcMzY0XDM3N1wzNzBcMzcwXDM3MFwzNzdcMjE0XDIxNFwyMTRcMzc3XDBcMFwwXDIzN1wwXDBcMCIiOVwwIgotICAiXDBcMFwwXDBcMFwwXDMxXDBcMFwwXDM3NFwzMjBcMzIwXDMyMFwzNzdcMzUzXDM1M1wzNTNcMzc3XDM2NFwzNjRcMzY0IgotICAiXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjRcMzY0XDM2NFwzNzciCi0gICJcMzY0XDM2NFwzNjRcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MCIKLSAgIlwzNjBcMzYwXDM3N1wzNTdcMzU3XDM1N1wzNzdcMzU2XDM1NlwzNTZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNTRcMzU0IgotICAiXDM1NFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2MVwzNjFcMzYxXDM3N1wwXDBcMFwzNzRcMFwwXDBfXDBcMFwwKFwwXDAiCi0gICJcMFwwXDBcMFwwXDJcMFwwXDBcMjE3XDIxMVwyMTFcMjExXDM3N1wzMjRcMzI0XDMyNFwzNzdcMzYyXDM2MlwzNjJcMzc3IgotICAiXDM2MlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjEiCi0gICJcMzYxXDM2MVwzNzdcMzYxXDM2MVwzNjFcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzU3XDM1NyIKLSAgIlwzNTdcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTVcMzU1XDM1NVwzNzdcMzU0XDM1NFwzNTRcMzc3XDM3MVwzNzFcMzcxIgotICAiXDM3N1wzNzBcMzcwXDM3MFwzNzdcMjMwXDIzMFwyMzBcMzc3XDBcMFwwXDI2MFwwXDBcMEhcMFwwXDBcMjVcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDEwXDBcMFwwXDMyNFwyNTNcMjUzXDI1M1wzNzdcMzIzXDMyM1wzMjNcMzc3XDM2MFwzNjAiCi0gICJcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNjBcMzYwXDM2MCIKLSAgIlwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU2XDM1NlwzNTZcMzc3IgotICAiXDM1NVwzNTVcMzU1XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwXDM3N1wzMDQiCi0gICJcMzA0XDMwNFwzNzdcMFwwXDBcMzM1XDBcMFwwUVwwXDBcMC5cMFwwXDBcMTFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDEiCi0gICJcMFwwXDAiIjZcMFwwXDBcMzUyXDI1M1wyNTNcMjUzXDM3N1wzMjJcMzIyXDMyMlwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM1NiIKLSAgIlwzNTZcMzU2XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzU2XDM1NlwzNTZcMzc3XDI1NlwyNTZcMjU2XDM3N1wyNTVcMjU1IgotICAiXDI1NVwzNzdcMzU1XDM1NVwzNTVcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTNcMzUzXDM1M1wzNzdcMzcwXDM3MFwzNzAiCi0gICJcMzc3XDM3MFwzNzBcMzcwXDM3N1wzMDJcMzAyXDMwMlwzNzdcMFwwXDBcMzU1XDBcMFwwcFwwXDBcMDxcMFwwXDBcMjAiCi0gICJcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw0XDBcMFwwXDc3XDBcMFwwXDMzMFwyMDJcMjAyXDIwMiIKLSAgIlwzNzdcMzE1XDMxNVwzMTVcMzc3XDMzMVwzMzFcMzMxXDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU0XDM1NFwzNTRcMzc3IgotICAiXDM1NFwzNTRcMzU0XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzUzXDM1M1wzNTNcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNzAiCi0gICJcMzcwXDM3MFwzNzdcMzY3XDM2N1wzNjdcMzc3XDIxNFwyMTRcMjE0XDM3N1wwXDBcMFwzMzVcMFwwXDBxXDBcMFwwQiIKLSAgIlwwXDBcMFwzMlwwXDBcMFw0XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw1XDBcMCIKLSAgIlwwXDMyXDBcMFwwXDI0MlwwXDBcMFwzNzRcMjEwXDIxMFwyMTBcMzc3XDMxMFwzMTBcMzEwXDM3N1wzMzVcMzM1XDMzNSIKLSAgIlwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzYxXDM2MVwzNjFcMzc3IgotICAiXDMwMFwzMDBcMzAwXDM3N1wwXDBcMFwzNzRcMFwwXDBcMjYwXDBcMFwwUVwwXDBcMDxcMFwwXDBcMzJcMFwwXDBcNVwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDRcMFwwXDAiCi0gICJcMjBcMFwwXDA+XDBcMFwwXDIyN1wwXDBcMFwzMTRcMFwwXDBcMzU0XDBcMFwwXDM3NFwwXDBcMFwzNzRcMFwwXDBcMzU1IgotICAiXDBcMFwwXDMxNlwwXDBcMFwyMzdcMFwwXDBfXDBcMFwwSFwwXDBcMC5cMFwwXDBcMjBcMFwwXDBcNFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwxXDBcMFwwXDEwXDBcMFwwXDI1XDBcMFwwKFwwXDBcMCIiOVwwXDBcMERcMFwwXDBKXDBcMFwwSlwwXDBcMERcMFwwIgotICAiXDAiIjlcMFwwXDAoXDBcMFwwXDI1XDBcMFwwXDEwXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMVwwXDBcMFw2XDBcMFwwXDEyXDBcMFwwXDE1XDBcMFwwXDE3XDBcMFwwXDE3XDBcMFwwXDE1XDBcMFwwXDEyIgotICAiXDBcMFwwXDZcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfdGltZXJfc3RvcHBlZCkKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX3RpbWVyX3N0b3BwZWRbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX3RpbWVyX3N0b3BwZWRbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDIzXDBcMCIKLSAgIlwwb1wwXDBcMFwyNjZcMFwwXDBcMzQ0XDBcMFwwXDM3M1wwXDBcMFwzNzNcMFwwXDBcMzQ1XDBcMFwwXDI3MFwwXDBcMCIKLSAgInRcMFwwXDBcMzFcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyMDVcMFwwXDBcMzczXDIwNyIKLSAgIlwyMDdcMjA3XDM3N1wzMDBcMzAwXDMwMFwzNzdcMzIzXDMyM1wzMjNcMzc3XDMyNlwzMjZcMzI2XDM3N1wzMjVcMzI1IgotICAiXDMyNVwzNzdcMzIyXDMyMlwzMjJcMzc3XDI3NVwyNzVcMjc1XDM3N1wyMDRcMjA0XDIwNFwzNzdcMFwwXDBcMzc0XDAiCi0gICJcMFwwXDIxN1wwXDBcMFwxMFwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMClcMFwwXDBcMzE0XDIyM1wyMjNcMjIzXDM3N1wzMjRcMzI0XDMyNFwzNzciCi0gICJcMzQyXDM0MlwzNDJcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NCIKLSAgIlwzNzRcMzc0XDM3N1wzNzNcMzczXDM3M1wzNzdcMzYzXDM2M1wzNjNcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNDFcMzQxIgotICAiXDM0MVwzNzdcMjIwXDIyMFwyMjBcMzc3XDBcMFwwXDMyNFwwXDBcMCIiNlwwXDBcMFwzXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwKVwwXDBcMFwzNDRcMjc3XDI3N1wyNzdcMzc3XDMzNlwzMzYiCi0gICJcMzM2XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzVcMzc1XDM3NSIKLSAgIlwzNzdcMzE2XDMxNlwzMTZcMzc3XDMxMFwzMTBcMzEwXDM3N1wzNzRcMzc0XDM3NFwzNzdcMzczXDM3M1wzNzNcMzc3IgotICAiXDM3M1wzNzNcMzczXDM3N1wzNjdcMzY3XDM2N1wzNzdcMzUwXDM1MFwzNTBcMzc3XDI3MlwyNzJcMjcyXDM3N1wwXDAiCi0gICJcMFwzNTJcMFwwXDBcNzdcMFwwXDBcNVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMzE0XDI2N1wyNjdcMjY3XDM3N1wzNDJcMzQyXDM0MlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3NVwzNzVcMzc1XDM3NyIKLSAgIlwzNzVcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wyNzdcMjc3XDI3N1wzNzdcMjcwIgotICAiXDI3MFwyNzBcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzNcMzczXDM3M1wzNzdcMzcyXDM3MlwzNzJcMzc3XDM3MVwzNzEiCi0gICJcMzcxXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzUwXDM1MFwzNTBcMzc3XDMwMVwzMDFcMzAxXDM3N1wwXDBcMFwzMzBcMCIKLSAgIlwwXDBcMzJcMFwwXDBcNFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyMDVcMjA3XDIwN1wyMDdcMzc3XDMzNiIKLSAgIlwzMzZcMzM2XDM3N1wzNzNcMzczXDM3M1wzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzVcMzc1IgotICAiXDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wyNjBcMjYwXDI2MFwzNzdcMjUxXDI1MVwyNTEiCi0gICJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzNcMzczXDM3M1wzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzY2XDM2NlwzNjZcMzc3XDM0NVwzNDVcMzQ1XDM3N1wyMTdcMjE3XDIxN1wzNzdcMFwwIgotICAiXDBcMjQyXDBcMFwwXDIwXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwyM1wwXDBcMFwzNzNcMzI0XDMyNFwzMjRcMzc3XDM2NyIKLSAgIlwzNjdcMzY3XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzVcMzc1IgotICAiXDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wyNDFcMjQxXDI0MVwzNzdcMjMxXDIzMVwyMzEiCi0gICJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwXDM3NyIKLSAgIlwzNjdcMzY3XDM2N1wzNzdcMzY1XDM2NVwzNjVcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNTBcMzUwXDM1MFwzNzdcMFwwIgotICAiXDBcMzc0XDBcMFwwPlwwXDBcMFwxMVwwXDBcMFwwXDBcMFwwb1wyMDdcMjA3XDIwN1wzNzdcMzQyXDM0MlwzNDJcMzc3IgotICAiXDM3NFwzNzRcMzc0XDM3N1wzNzVcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NVwzNzVcMzc1XDM3N1wzNzUiCi0gICJcMzc1XDM3NVwzNzdcMzc2XDM3NlwzNzZcMzc3XDM3NVwzNzVcMzc1XDM3N1wyMjFcMjIxXDIyMVwzNzdcMjEyXDIxMiIKLSAgIlwyMTJcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwIgotICAiXDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNTVcMzU1XDM1NVwzNzciCi0gICJcMjE2XDIxNlwyMTZcMzc3XDBcMFwwXDIyN1wwXDBcMFwyNVwwXDBcMFwwXDBcMFwwXDI2NlwzMDBcMzAwXDMwMFwzNzciCi0gICJcMzY0XDM2NFwzNjRcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzRcMzc0XDM3NFwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NSIKLSAgIlwzNzVcMzc1XDM3N1wzNzZcMzc2XDM3NlwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3NlwzNzZcMzc2XDM3N1wyMDFcMjAxIgotICAiXDIwMVwzNzd6enpcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzFcMzcxXDM3MVwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2N1wzNjciCi0gICJcMzY3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0XDM2NFwzNjRcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNTdcMzU3XDM1NyIKLSAgIlwzNzdcMzIzXDMyM1wzMjNcMzc3XDBcMFwwXDMxNFwwXDBcMChcMFwwXDBcMFwwXDBcMFwzNDZcMzIzXDMyM1wzMjNcMzc3IgotICAiXDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzUiCi0gICJcMzc1XDM3NVwzNzdcMzc1XDM3NVwzNzVcMzc3XDM3NlwzNzZcMzc2XDM3N1wzNzVcMzc1XDM3NVwzNzdycnJcMzc3ayIKLSAgImtrXDM3N1wzNTZcMzU2XDM1NlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjZcMzY2XDM2NlwzNzciCi0gICJcMzY0XDM2NFwzNjRcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzU3XDM1N1wzNTdcMzc3XDM2NyIKLSAgIlwzNjdcMzY3XDM3N1wwXDBcMFwzNTRcMFwwXDAiIjlcMFwwXDBcMFwwXDBcMFwzNzNcMzUwXDM1MFwzNTBcMzc3XDM3MiIKLSAgIlwzNzJcMzcyXDM3N1wzMzdcMzM3XDMzN1wzNzdcMzczXDM3M1wzNzNcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzRcMzc0IgotICAiXDM3NFwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzRcMzc0XDM3NFwzNzdjY2NcMzc3W1tbXDM3NyIKLSAgIlwzMTNcMzEzXDMxM1wzNzdcMzQ1XDM0NVwzNDVcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjVcMzY1XDM2NVwzNzdcMzY0IgotICAiXDM2NFwzNjRcMzc3XDM2MlwzNjJcMzYyXDM3N1wyNzNcMjczXDI3M1wzNzdcMzU2XDM1NlwzNTZcMzc3XDM3MFwzNzAiCi0gICJcMzcwXDM3N1wwXDBcMFwzNzRcMFwwXDBEXDBcMFwwXDBcMFwwXDBcMzczXDMzNlwzMzZcMzM2XDM3N1wzNzFcMzcxXDM3MSIKLSAgIlwzNzdcMzMyXDMzMlwzMzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNzNcMzczXDM3M1wzNzdcMzczXDM3M1wzNzNcMzc3IgotICAiXDM3M1wzNzNcMzczXDM3N1wzNzNcMzczXDM3M1wzNzdcMzczXDM3M1wzNzNcMzc3XDIyMVwyMjFcMjIxXDM3N0xMTFwzNzciCi0gICJFRUVcMzc3YmJiXDM3N1wzMDBcMzAwXDMwMFwzNzdcMzM1XDMzNVwzMzVcMzc3XDM2MlwzNjJcMzYyXDM3N1wzNjFcMzYxIgotICAiXDM2MVwzNzdcMjY1XDI2NVwyNjVcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNzBcMzcwXDM3MFwzNzdcMFwwXDBcMzc0XDAiCi0gICJcMFwwSlwwXDBcMFwwXDBcMFwwXDM0NlwzMzJcMzMyXDMzMlwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MVwzNzFcMzcxXDM3NyIKLSAgIlwzNzFcMzcxXDM3MVwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MVwzNzFcMzcxXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzcyIgotICAiXDM3MlwzNzJcMzc3XDM3MlwzNzJcMzcyXDM3N1wzNTJcMzUyXDM1MlwzNzdcMjc2XDI3NlwyNzZcMzc3ZGRkXDM3Ny4iCi0gICIuLlwzNzcnJydcMzc3SUlJXDM3N1wzNjFcMzYxXDM2MVwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1NVwzNTVcMzU1XDM3NyIKLSAgIlwzNzFcMzcxXDM3MVwzNzdcMzY3XDM2N1wzNjdcMzc3XDBcMFwwXDM1NVwwXDBcMEpcMFwwXDBcMFwwXDBcMFwyNzNcMjc1IgotICAiXDI3NVwyNzVcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjdcMzY3XDM2N1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzAiCi0gICJcMzcwXDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMzY3XDM2N1wzNjdcMzc3XDM2NlwzNjZcMzY2XDM3N1wzMzVcMzM1XDMzNVwzNzdcMjc2XDI3NlwyNzZcMzc3IgotICAiV1dXXDM3N3h4eFwzNzdcMzU3XDM1N1wzNTdcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzcxXDM3MSIKLSAgIlwzNzFcMzc3XDMyM1wzMjNcMzIzXDM3N1wwXDBcMFwzMTZcMFwwXDBEXDBcMFwwXDBcMFwwXDB0XDE3N1wxNzdcMTc3IgotICAiXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjZcMzY2XDM2NlwzNzciCi0gICJcMzY2XDM2NlwzNjZcMzc3XDM2N1wzNjdcMzY3XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2NSIKLSAgIlwzNjVcMzY1XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY0XDM2NFwzNjRcMzc3eXl5XDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDIzNCIKLSAgIlwwXDBcMFwwXDBcMFwwXDMxXDBcMFwwXDM3NFwzMjBcMzIwXDMyMFwzNzdcMzUzXDM1M1wzNTNcMzc3XDM2NFwzNjRcMzY0IgotICAiXDM3N1wzNjRcMzY0XDM2NFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjRcMzY0XDM2NFwzNzciCi0gICJcMzY0XDM2NFwzNjRcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYxXDM2MVwzNjFcMzc3XDBcMCIKLSAgIlwwXDM3N1wzNTFcXFwyM1wzNzdcMzYyZ1wzN1wzNzdcMzU2YlwzMlwzNzdcMzQ1WVwyM1wzNzdcMzMzVFwyMlwzNzdcMzIyIgotICAiU1wyN1wzNzdcMzEyUlwzM1wzNzdcMjc2RFwxN1wzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwyMTciCi0gICJcMjExXDIxMVwyMTFcMzc3XDMyNFwzMjRcMzI0XDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MiIKLSAgIlwzNjJcMzYyXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzYyXDM2MlwzNjJcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNjFcMzYxIgotICAiXDM2MVwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjBcMzYwXDM3N1wwXDBcMFwzNzdcMzUzYVwzM1wzNzdcMzc2XDM2MiIKLSAgIlwzNTNcMzc3XDM3NFwzNDZcMzMzXDM3N1wzNTBrLFwzNzdcMzM3ZSlcMzc3XDM3MFwzNDJcMzMwXDM3N1wzNzNcMzYxIgotICAiXDM1NVwzNzdcMzAwS1wzMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxMFwwXDBcMFwzMjRcMjUzIgotICAiXDI1M1wyNTNcMzc3XDMyM1wzMjNcMzIzXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM2MFwzNjAiCi0gICJcMzYwXDM3N1wzNjBcMzYwXDM2MFwzNzdcMzYwXDM2MFwzNjBcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNTdcMzU3XDM1NyIKLSAgIlwzNzdcMzU2XDM1NlwzNTZcMzc3XDBcMFwwXDM3N1wzNDVbXDI2XDM3N1wzNzJcMzM3XDMyMlwzNzdcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3MlwzNDZcMzM0XDM3N1wzNzJcMzQ0XDMzMVwzNzdcMzc3XDM3N1wzNzdcMzc3XDM2NFwzMzRcMzIyXDM3NyIKLSAgIlwyNzVHXDIzXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDAiIjZcMFwwXDBcMzUyXDI1MyIKLSAgIlwyNTNcMjUzXDM3N1wzMjJcMzIyXDMyMlwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM1NlwzNTZcMzU2XDM3N1wzNTZcMzU2IgotICAiXDM1NlwzNzdcMzU2XDM1NlwzNTZcMzc3XDI1NlwyNTZcMjU2XDM3N1wyNTVcMjU1XDI1NVwzNzdcMzU1XDM1NVwzNTUiCi0gICJcMzc3XDBcMFwwXDM3N1wzMzVVXDIyXDM3N1wzNDJkJVwzNzdcMzcxXDM0MFwzMjRcMzc3XDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdcMzc3XDM3N1wzNzdcMzY1XDMzNlwzMjNcMzc3XDMwN1VcIlwzNzdcMjcxQlwxNlwzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDRcMFwwXDBcNzdcMFwwXDBcMzMwXDIwMlwyMDJcMjAyXDM3N1wzMTVcMzE1IgotICAiXDMxNVwzNzdcMzMxXDMzMVwzMzFcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzU0XDM1NFwzNTQiCi0gICJcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNTNcMzUzXDM1M1wzNzdcMFwwXDBcMzc3XDMyM09cMjFcMzc3XDMzMmEpXDM3NyIKLSAgIlwzNzFcMzQzXDMzMVwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjZcMzQ0XDMzM1wzNzdcMzA0IgotICAiVyhcMzc3XDI2NUBcMTZcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDUiCi0gICJcMFwwXDBcMzJcMFwwXDBcMjQyXDBcMFwwXDM3NFwyMTBcMjEwXDIxMFwzNzdcMzEwXDMxMFwzMTBcMzc3XDMzNVwzMzUiCi0gICJcMzM1XDM3N1wzNzBcMzcwXDM3MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM2N1wzNjdcMzY3XDM3N1wwXDBcMFwzNzdcMzEyIgotICAiTlwyM1wzNzdcMzY3XDM0MVwzMjdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjRcMzM1XDMyM1wzNzdcMzY0XDMzNVwzMjMiCi0gICJcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNjRcMzQyXDMzMlwzNzdcMjYyQlwyM1wzNzdcMFwwXDBcMzc3XDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw0XDBcMFwwXDIwXDBcMFwwPlwwXDBcMFwyMjdcMFwwIgotICAiXDBcMzE0XDBcMFwwXDM1NFwwXDBcMFwzNzRcMFwwXDBcMzc0XDBcMFwwXDM1NVwwXDBcMFwzNzdcMzAyS1wyNlwzNzciCi0gICJcMzcwXDM1M1wzNDVcMzc3XDM2M1wzMzNcMzIxXDM3N1wzMDRTXCJcMzc3XDMwMFJcIlwzNzdcMzYxXDMzMlwzMjBcMzc3IgotICAiXDM2N1wzNTNcMzQ3XDM3N1wyNTVBXDI1XDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwxMFwwXDBcMFwyNVwwXDBcMChcMFwwXDAiIjlcMFwwXDBEXDAiCi0gICJcMFwwSlwwXDBcMEpcMFwwXDBcMzc3XDI2N0BcMTZcMzc3XDI3MkVcMjNcMzc3XDI3MENcMjFcMzc3XDI2NkBcMTZcMzc3IgotICAiXDI2Mz5cMTVcMzc3XDI2MD5cMjBcMzc3XDI1M1w3N1wyM1wzNzdcMjQ0N1wxNFwzNzdcMFwwXDBcMzc3XDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMCIKLSAgIlwwXDZcMFwwXDBcMTJcMFwwXDBcMTVcMFwwXDBcMTdcMFwwXDBcMTdcMFwwXDBcMjA2XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMTc3In07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja190cmFzaCkKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX3RyYXNoW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja190cmFzaFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICJYXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFw1XDBcMFwwXDIyMFwzNFwzNCIKLSAgIlwzNFwzNzd2dnZcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzMjNcMzIzXDMyM1wzNzdcMzAzXDMwM1wzMDNcMzc3XDIyMFwyMjAiCi0gICJcMjIwXDM3N0lJSVwzNzdcMFwwXDBcMzc3XDBcMFwwXDI3NlwwXDBcMCxcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBFXDBcMFwwXDI0MFwwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3SEc9XDM3N1wyNzJcMjcwXDI0NlwzNzdcMzQyXDM0MlwzMzdcMzc3XDM2MVwzNjFcMzYwXDM3NyIKLSAgIlwzNTJcMzUxXDM0NlwzNzdcMzYyXDM2MlwzNTZcMzc3XDM1M1wzNTJcMzQ1XDM3N1wzMDFcMzAwXDI2NVwzNzdXVkpcMzc3IgotICAiUlFGXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDIyN1wwXDBcMCIiM1wwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBUXDBcMFwwXDM3N1wyNTBcMjQ2XDIxN1wzNzdcMjc1XDI3M1wyNDFcMzc3XDMwMCIKLSAgIlwyNzZcMjQzXDM3N1wyNDNcMjQxXDIxMlwzNzdtbFxcXDM3N3x8clwzNzdMTElcMzc3RUVcNzdcMzc3REM6XDM3N29vIgotICAiZ1wzNzdcMzA2XDMwNVwyNzFcMzc3XDI2NlwyNjVcMjMzXDM3N21sXVwzNzdcMjYzXDI2MVwyMzNcMzc3XDI0N1wyNDYiCi0gICJcMjE2XDM3N1wyMjBcMjE3elwzNzdcMFwwXDBcMzc3XDBcMFwwRVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDM3N1wyNTJcMjUxXDIyM1wzNzdcMzE0XDMxM1wyNjVcMzc3XDMyMFwzMTZcMjcyXDM3N1wzMjVcMzIzIgotICAiXDMwMVwzNzdcMjU2XDI1NVwyNDNcMzc3XDIyNFwyMjNcMjEyXDM3N0VEQlwzNzcjIyFcMzc3NTQxXDM3NykoI1wzNzciCi0gICJcMzZcMzZcMzJcMzc3U1JGXDM3N1wyNTVcMjU0XDIyM1wzNzdcMjIyXDIyMVwyMTFcMzc3XDMwMlwzMDFcMjU3XDM3NyIKLSAgIlwyNjFcMjU3XDIyNlwzNzdcMjU0XDI1MlwyMjJcMzc3XDIyM1wyMjJ9XDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwxMFwxMFwxMFwzNzdcMzIxXDMyMFwzMDFcMzc3XDMxNFwzMTNcMjY1XDM3N1wzMjZcMzI1IgotICAiXDMwNFwzNzdcMzM3XDMzNlwzMjFcMzc3XDMxNlwzMTVcMzAwXDM3N1wyNTRcMjU0XDI0NlwzNzdcMjIwXDIxN1wyMTIiCi0gICJcMzc3fn13XDM3N1xcXFxVXDM3N0dGPlwzNzdlZFZcMzc3d3ZlXDM3N1wyMDB+b1wzNzdcMjc2XDI3NVwyNDdcMzc3XDI2NSIKLSAgIlwyNjNcMjMyXDM3N1wyNjZcMjY1XDIzM1wzNzdcMjY1XDI2M1wyMzJcMzc3XDI0MVwyMzdcMjEwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNzdcMzMxXDMzMFwzMTRcMzc3XDM2NlwzNjVcMzYyIgotICAiXDM3N1wzMzNcMzMyXDMyMVwzNzdcMzMyXDMzMVwzMTZcMzc3XDM0NVwzNDRcMzMxXDM3N1wzMjBcMzE3XDMwM1wzNzciCi0gICJcMzIzXDMyM1wzMTFcMzc3XDMxMlwzMTFcMjc0XDM3N1wyNjdcMjY2XDI0NlwzNzdcMjcwXDI2NlwyNDFcMzc3XDI2MCIKLSAgIlwyNTdcMjI2XDM3N1wyNDFcMjM3XDIxMFwzNzdcMjcxXDI3MFwyMzVcMzc3XDI3MVwyNjdcMjM1XDM3N1wyNzBcMjY2IgotICAiXDIzNFwzNzdcMzA0XDMwMlwyNTFcMzc3XDI1N1wyNTVcMjI3XDM3N1wyMTNcMjExdlwzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDI1MlwyNTFcMjMwXDM3N1wyNjZcMjY2XDI2MlwzNzciCi0gICJcMzcxXDM3MVwzNjdcMzc3XDM3MlwzNzJcMzcwXDM3N1wzNjRcMzY0XDM2MFwzNzdcMzQyXDM0MVwzMzJcMzc3XDMzMSIKLSAgIlwzMzFcMzE2XDM3N1wzMzNcMzMyXDMxN1wzNzdcMzI1XDMyM1wzMDFcMzc3XDMyM1wzMjFcMjc2XDM3N1wzMDRcMzAyIgotICAiXDI1MVwzNzdcMzAwXDI3NlwyNDNcMzc3XDMwNVwzMDRcMjU0XDM3N1wzMjZcMzI1XDMwM1wzNzdcMzE1XDMxNFwyNzciCi0gICJcMzc3XDI3M1wyNzJcMjU1XDM3N3x6aVwzNzdxcGBcMzc3XDBcMFwwXDMzNlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDIzXDIzXDIzXDMxNlwyMzFcMjMwXDIwMlwzNzdcMjU3XDI1NlwyMzVcMzc3XDMwM1wzMDNcMjc2XDM3NyIKLSAgIlwzMzZcMzM2XDMzNFwzNzdcMzUxXDM1MVwzNTBcMzc3XDM3M1wzNzNcMzcyXDM3N1wzNzVcMzc1XDM3NFwzNzdcMzc1IgotICAiXDM3NVwzNzVcMzc3XDM3NFwzNzNcMzcyXDM3N1wzNzFcMzcxXDM2N1wzNzdcMzYyXDM2MlwzNTdcMzc3XDM1MlwzNTEiCi0gICJcMzQzXDM3N1wzMzNcMzMyXDMyMVwzNzdcMzAwXDI3N1wyNjFcMzc3XDIyNVwyMjRcMjA0XDM3N3h3ZlwzNzdubV1cMzc3IgotICAiW1tNXDM3N1wwXDBcMFwzMTVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyMjJdXFxPXDM3N1wyMjMiCi0gICJcMjIyfVwzNzdcMjQzXDI0MlwyMjNcMzc3XDI3MFwyNjdcMjQ2XDM3N1wzMzBcMzI3XDMyMFwzNzdcMzMzXDMzM1wzMjQiCi0gICJcMzc3XDMyM1wzMjJcMzEyXDM3N1wzMTBcMzEwXDMwM1wzNzdcMzA2XDMwNVwyNzVcMzc3XDI3NVwyNzRcMjU1XDM3NyIKLSAgIlwyNzJcMjcwXDI1MFwzNzdcMjM3XDIzNlwyMTNcMzc3XDIxNlwyMTR4XDM3N1wyMTRcMjEzd1wzNzdcMjE2XDIxNHhcMzc3IgotICAienloXDM3N2xrXVwzNzdOTUVcMzc3XDBcMFwweVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIiIyIgotICAiXDBcMFwwXDM3N0JCQlwzNzd7e3NcMzc3XDIzN1wyMzdcMjI2XDM3N1wzMjJcMzIxXDMwN1wzNzdcMzM0XDMzM1wzMjIiCi0gICJcMzc3XDMxNFwzMTNcMjc2XDM3N1wzMjFcMzIwXDMwMlwzNzdcMzA0XDMwM1wyNjZcMzc3XDI2MVwyNTdcMjI2XDM3NyIKLSAgIlwyNjFcMjU3XDIyNlwzNzdcMjYxXDI1N1wyMjZcMzc3XDIzMlwyMzBcMjAzXDM3N1wyMDBcMTc3bVwzNzd9fGtcMzc3IgotICAiamleXDM3N0BAPlwzNzdcMFwwXDBcMzc3XDBcMFwwIiIzXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwzNzc3Ny1cMzc3XDE3XDE3XDE3XDM3Nzg3NFwzNzd4eHVcMzc3XDIzMVwyMzBcMjIzXDM3N1wyMTIiCi0gICJcMjExflwzNzdcMjYzXDI2MlwyNDRcMzc3XDI1MlwyNTJcMjM2XDM3N1wyNDNcMjQxXDIxMlwzNzdcMjA3XDIwNnNcMzc3IgotICAiXDIxN1wyMTV5XDM3N2JhVVwzNzdUVFFcMzc3MTEuXDM3N1wwXDBcMFwzNzcrKyNcMzc3XDBcMFwwXDM3N1wwXDBcMFwxNyIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3cXFdXDM3N1dXS1wzNzdCQjpcMzc3IgotICAiJiZcNDBcMzc3ISEhXDM3N1wzM1wzM1wzM1wzNzdcMFwwXDBcMzc3JCQkXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMjZcMjZcMjNcMzc3KipcIlwzNzcwMCdcMzc3XDc3XDc3IiI0XDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3enplXDM3N1tbUSIKLSAgIlwzNzdcMjA1XDIwNXZcMzc3dnZrXDM3N1wyMzBcMjMwXDIxNlwzNzd1dWtcMzc3UVFGXDM3N1wxNzdcMTc3dFwzNzdqIgotICAialhcMzc3QEA1XDM3N2JiUVwzNzdUVEVcMzc3Pj4zXDM3N1VVRlwzNzc0NCtcMzc3UVFDXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDIwNVwyMDVuXDM3N10iCi0gICJdVFwzNzdcMjIxXDIyMVwyMDJcMzc3XDIwMlwyMDJ4XDM3N1wyNTJcMjUyXDI0M1wzNzd6enFcMzc3Tk5FXDM3N1wyMTIiCi0gICJcMjEyXDIwMFwzNzd8fG1cMzc3QkI3XDM3N2BgUlwzNzdaWkpcMzc3PDwyXDM3N05OQVwzNzc1NSxcMzc3VFRFXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDNcMFwwXDBcMzc3IgotICAiXDIwNVwyMDVuXDM3N1tbUVwzNzdcMjU0XDI1NFwyMzRcMzc3XDIwNVwyMDV7XDM3N1wyNzNcMjczXDI2M1wzNzdcMjQzIgotICAiXDI0M1wyMzJcMzc3VFRLXDM3N1wyMjNcMjIzXDIxMlwzNzdcMjIxXDIyMVwyMDVcMzc3QkI3XDM3N2BgUlwzNzdoaFYiCi0gICJcMzc3QUE2XDM3N2pqWFwzNzdDQzdcMzc3ampYXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMVwwXDBcMFw1XDBcMFwwXDEwXDBcMFwwXDM3N1wyMDVcMjA1blwzNzdbW1FcMzc3XDI0NFwyNDRcMjIzXDM3NyIKLSAgIlwyMDVcMjA1e1wzNzdcMzAxXDMwMVwyNjZcMzc3XDI2MVwyNjFcMjQyXDM3N2trX1wzNzdcMjYxXDI2MVwyNDJcMzc3IgotICAiXDIzNVwyMzVcMjEzXDM3N1RURVwzNzdcMjA0XDIwNHBcMzc3cXFeXDM3N0NDN1wzNzdqalhcMzc3Q0M3XDM3N2pqWFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDZcMFwwXDBcM1wwXDBcMFwwXDBcMFwwXDJcMFwwXDBcMTJcMFwwXDBcMjRcMFwwXDBcMzc3IgotICAiXDIwNVwyMDVuXDM3N1tbUVwzNzdcMjQ1XDI0NVwyMjRcMzc3XDIwNVwyMDV7XDM3N1wzMDJcMzAyXDI2N1wzNzdcMjYxIgotICAiXDI2MVwyNDJcMzc3a2tfXDM3N1wyNjFcMjYxXDI0MlwzNzdcMjM1XDIzNVwyMTNcMzc3VFRFXDM3N1wyMDRcMjA0cFwzNzciCi0gICJxcV5cMzc3Q0M3XDM3N2pqWFwzNzdDQzdcMzc3ampYXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjZcMFwwXDBcMTNcMFwwXDAiCi0gICJcMlwwXDBcMFwzXDBcMFwwXDI2XDBcMFwwK1wwXDBcMFwzNzdcMjA1XDIwNW5cMzc3W1tRXDM3N1wyMzVcMjM1XDIxMyIKLSAgIlwzNzdcMjA1XDIwNXtcMzc3XDMwMVwzMDFcMjY2XDM3N1wyNjFcMjYxXDI0MlwzNzdra19cMzc3XDI2MVwyNjFcMjQyIgotICAiXDM3N1wyMzVcMjM1XDIxM1wzNzdUVEVcMzc3XDIwNFwyMDRwXDM3N3FxXlwzNzdDQzdcMzc3ampYXDM3N0NDN1wzNzciCi0gICJqalhcMzc3XDBcMFwwXDM3N1wwXDBcMCIiMVwwXDBcMFwzMlwwXDBcMFw0XDBcMFwwXDdcMFwwXDAjXDBcMFwwSVwwXDAiCi0gICJcMFwzNzd7e2VcMzc3W1tRXDM3N1wyNDRcMjQ0XDIyM1wzNzdcMjA1XDIwNXtcMzc3XDMwMVwzMDFcMjY2XDM3N1wyNjEiCi0gICJcMjYxXDI0MlwzNzdra19cMzc3XDI2MVwyNjFcMjQyXDM3N1wyMzVcMjM1XDIxM1wzNzdUVEVcMzc3XDIwNFwyMDRwXDM3NyIKLSAgInFxXlwzNzdDQzdcMzc3ampYXDM3N0NDN1wzNzdfX09cMzc3XDBcMFwwXDM3N1wwXDBcMEhcMFwwXDAqXDBcMFwwXDdcMCIKLSAgIlwwXDBcMTJcMFwwXDAsXDBcMFwwWFwwXDBcMFwzNzdmZlRcMzc3W1tRXDM3N1wyNDRcMjQ0XDIyM1wzNzdcMjAyXDIwMiIKLSAgInhcMzc3XDMwMVwzMDFcMjY2XDM3N1wyNjFcMjYxXDI0MlwzNzdra19cMzc3XDI2MVwyNjFcMjQyXDM3N1wyMzVcMjM1IgotICAiXDIxM1wzNzdUVEVcMzc3XDIwNFwyMDRwXDM3N3FxXlwzNzdDQzdcMzc3ampYXDM3N0lJPFwzNzdXV0hcMzc3XDBcMFwwIgotICAiXDM3N1wwXDBcMFBcMFwwXDAqXDBcMFwwXDdcMFwwXDBcNlwwXDBcMFwzNVwwXDBcMENcMFwwXDByXDBcMFwwXDM3N1ciCi0gICJXSlwzNzd9fW1cMzc3dnZpXDM3N1wyNjNcMjYzXDI1MFwzNzdcMjQxXDI0MVwyMjRcMzc3bW1hXDM3N1wyNjNcMjYzXDI0NSIKLSAgIlwzNzdcMjM1XDIzNVwyMTNcMzc3VFRFXDM3N1wyMDRcMjA0cFwzNzdpaVdcMzc3QUE1XDM3N1ZWR1wzNzdERDhcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwxNzdcMFwwXDBDXDBcMFwwXDM1XDBcMFwwXDRcMFwwXDBcMVwwXDBcMFwxM1wwXDBcMFwzNCIKLSAgIlwwXDBcMCIiMlwwXDBcMGdcMFwwXDBcMzIwXDBcMFwwXDM3N1wwXDBcMFwzNzdZWVFcMzc3WFhJXDM3N05OQFwzNzd0IgotICAidGdcMzc3YWFTXDM3N05OQVwzNzdJSTxcMzc3SUk8XDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDMwNFwwXDAiCi0gICJcMHRcMFwwXDA+XDBcMFwwJVwwXDBcMFwxMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw2XDBcMFwwXDE3XDAiCi0gICJcMFwwXDMxXDBcMFwwXDM3XDBcMFwwclwwXDBcMFwyNjRcMFwwXDBcMzAyXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDAiCi0gICJcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDI3MVwwXDBcMFwyMTdcMFwwXDBTXDBcMFwwLCIKLSAgIlwwXDBcMCpcMFwwXDBcMzNcMFwwXDBcMTBcMFwwXDBcMVwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja190cmFzaF9mdWxsKQotI2VuZGlmCi0jaWZkZWYgX19HTlVDX18KLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdHJhc2hfZnVsbFtdIF9fYXR0cmlidXRlX18gKChfX2FsaWduZWRfXyAoNCkpKSA9IAotI2Vsc2UKLXN0YXRpYyBjb25zdCBndWludDggc3RvY2tfdHJhc2hfZnVsbFtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDEwXDEwIgotICAiXDEwXDM3N1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFw2XDZcNlwyMVw2XDZcNktcMTZcMTZcMTZcMzc3QkJCXDM3N0pKSlwzNzc+Pj5cMzc3LCwsXDM3N1wwIgotICAiXDBcMFwzNzdcNlw2XDY+XDZcNlw2IVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxMFwxMFwxMFwzNzdcMTBcMTBcMTAiCi0gICJcMzc3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlw2XDZcNjpcMFwwXDBcMzc3XDBcMFwwXDM3N1wyMDVcMjAzcVwzNzdcMzYwXDM1NVwzMzBcMzc3XDM2MlwzNjFcMzUxIgotICAiXDM3N1wzNTZcMzU1XDM0NFwzNzdcMzA3XDMwNlwyNzJcMzc3U1JGXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDZcNlw2IgotICAiS1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcNlw2XDY+XDIwXDIwXDIwXDM3N1wzMDJcMzAwXDI0NVwzNzdcMzAxXDI3N1wyNDUiCi0gICJcMzc3enlnXDM3N0hHQFwzNzcnJyVcMzc3NjUuXDM3N1wyMDdcMjA1clwzNzdcMjQwXDIzNlwyMTBcMzc3XDI0M1wyNDEiCi0gICJcMjEyXDM3N1wyNDVcMjQzXDIxNFwzNzdcMFwwXDBcMzc3XDZcNlw2IVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwKysrXDM3N1wzMjNcMzIxXDI3NCIKLSAgIlwzNzdcMzM0XDMzMlwzMDRcMzc3XDM0MlwzNDBcMzE3XDM3N1wyNzFcMjY3XDI0MlwzNzdkYltcMzc3OTg2XDM3Nzw8IgotICAiM1wzNzdhYFNcMzc3XDIzMlwyMzBcMjAzXDM3N1wyNjdcMjY1XDIzM1wzNzdcMjYzXDI2MlwyMzBcMzc3XDI0NFwyNDIiCi0gICJcMjEzXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDEwXDEwXDEwXDM3NyIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM3N1wzNTBcMzQ0XDMyM1wzNzdcMzY0XDM2MVwzNTEiCi0gICJcMzc3XDM2MlwzNjFcMzQ0XDM3N1wzNTJcMzUxXDMzMlwzNzdcMzQ1XDM0MlwzMjJcMzc3XDMyNVwzMjJcMjc2XDM3NyIKLSAgIlwzMDNcMzAxXDI0N1wzNzdcMjU3XDI1NVwyMjRcMzc3XDMwMFwyNzZcMjQ0XDM3N1wzMDZcMzA0XDI1NFwzNzdcMjcwIgotICAiXDI2NlwyMzRcMzc3eXdmXDM3N1wwXDBcMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDEwXDEwXDEwXDM3N1wxMFwxMFwxMFwzNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDIxMlwyMTEiCi0gICJ1XDM3N1wzNjFcMzU1XDMyMlwzNzdcMzczXDM3MFwzNTFcMzc3XDM3MVwzNjVcMzU1XDM3N1wzNzBcMzY3XDM1NlwzNzciCi0gICJcMzcwXDM2N1wzNTRcMzc3XDM2NVwzNjNcMzQ2XDM3N1wzNTRcMzUyXDMzMVwzNzdcMzM2XDMzNVwzMTNcMzc3XDBcMCIKLSAgIlwwXDM3N1wwXDBcMFwzNzdCQThcMzc3XDBcMFwwXDM3N1wwXDBcMFwwXDBcMFwwPlwwXDBcMFwzNzdcMFwwXDBXXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDIwMlJRRlwzNzdzcWVcMzc3IgotICAiXDIzN1wyMzVcMjIxXDM3N1wzNDRcMzQxXDMxMFwzNzdcMzUxXDM0NVwzMTdcMzc3XDM0MlwzNDBcMzEzXDM3N1wzMjEiCi0gICJcMzIxXDMxM1wzNzdcMjE2XDIxNVwxNzdcMzc3XDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzAxXDMwMVwzMDFcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwyNDBcMFwwXDBMXDBcMFwwXDM3N1wzNzdcMzc3XDM3N1wzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzdcMzdcMzNcMzc3NDQwXDM3NyIKLSAgIktJRFwzNzdoZ2JcMzc3cG9mXDM3N2trZFwzNzdubF1cMzc3WFdLXDM3NysrJVwzNzdcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wyMjJcMjIyXDIyMlwzNzdcMlwyXDJcMzc3XDBcMFwwXDM3N1wzNDZcMzQ2XDM0NlwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwPlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwKiojXDM3NyIKLSAgIlwyNDBcMjQwXDIyNVwzNzdNTUBcMzc3NjYwXDM3NyoqJlwzNzcvLypcMzc3XDE3XDE3XDE1XDM3N1wxM1wxM1wxMVwzNzciCi0gICJcMjBcMjBcMTVcMzc3KCgkXDM3N1wwXDBcMFwzNzdcMjc0XDI3NFwyNzRcMzc3bm5uXDM3N1wzNTVcMzU1XDM1NVwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwTFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDArKyRcMzc3XDI0NVwyNDRcMjMxXDM3N1wyNjdcMjY2XDI1NlwzNzdxcGdcMzc3XDI0MVwyNDFcMjIyIgotICAiXDM3N3RzY1wzNzdAQDVcMzc3aWlbXDM3NyUlXDM2XDM3N1wzNFwzNFwzNFwzNzdcMzU0XDM1NFwzNTRcMzc3XDMxN1wzMTciCi0gICJcMzE3XDM3N29vb1wzNzdcMjU3XDI1N1wyNTdcMzc3XDBcMFwwXDM3N1wwXDBcMCFcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwLCwlXDM3N1wyNTVcMjU1XDI0M1wzNzdcMzMxIgotICAiXDMzMVwzMjJcMzc3XDIxM1wyMTNcMTc3XDM3N1wzMjZcMzI1XDMxNlwzNzdcMjEwXDIxMHtcMzc3WFdPXDM3N1wxNzciCi0gICJcMTc3dVwzNzdcMFwwXDBcMzc3XDMzNlwzMzZcMzM2XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzM2XDMzNlwzMzZcMzc3XDMzNiIKLSAgIlwzMzZcMzM2XDM3N1wzMTFcMzExXDMxMVwzNzdcMFwwXDBcMzc3XDBcMFwwXDc3XDBcMFwwXDFcMFwwXDBcMVwwXDBcMCIKLSAgIlwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNiwsJVwzNzdcMjU1XDI1NVwyNDNcMzc3XDMzMiIKLSAgIlwzMzJcMzIzXDM3N1wyMTdcMjE2XDIwMVwzNzdcMzM1XDMzNVwzMjRcMzc3XDI1NFwyNTNcMjMxXDM3N11dUlwzNzdpIgotICAiaWBcMzc3bW1tXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzQ3XDM0N1wzNDdcMzc3XDIyM1wyMjNcMjIzXDM3N1wwXDBcMFwzNzdcMFwwXDArXDBcMFwwXDEzXDAiCi0gICJcMFwwXDdcMFwwXDBcM1wwXDBcMFwxXDBcMFwwXDBcMFwwXDBcNVwwXDBcMFwyMSsrJFwzNzd+fnVcMzc3XDMzMFwzMzAiCi0gICJcMzIxXDM3N1wyMTVcMjE1XDIwMFwzNzdcMzM1XDMzNVwzMjNcMzc3XDI1NFwyNTNcMjMxXDM3N1BQR1wzNzdcMzBcMzAiCi0gICJcMzBcMzc3XDMxMVwzMTFcMzExXDM3N1wzMDdcMzQwXDMwN1wzNzd4XDI2NXhcMzc3XDIzM1wzMTBcMjMzXDM3N1wzNzciCi0gICJcMzc3XDM3N1wzNzdcMzQ3XDM0N1wzNDdcMzc3XDMwNlwzMDZcMzA2XDM3N1wwXDBcMFwzNzdcMFwwXDBVXDBcMFwwXDM1IgotICAiXDBcMFwwXDI3XDBcMFwwXDE1XDBcMFwwXDNcMFwwXDBcMVwwXDBcMFwxMVwwXDBcMFwzNCcnIVwzNzdDQz1cMzc3XDIxNiIKLSAgIlwyMTZcMjA2XDM3N15eVVwzNzdcMzMyXDMzMlwzMjBcMzc3XDI1NFwyNTNcMjMxXDM3NzU1LlwzNzddXV1cMzc3XDMyNCIKLSAgIlwzNDdcMzI0XDM3N11cMjQ2XVwzNzdcMzA3XDM0MFwzMDdcMzc3XDM3N1wzNzdcMzc3XDM3N11cMjQ2XVwzNzdcMjE1IgotICAiXDI3MlwyMTVcMzc3XDM0NVwzNDVcMzQ1XDM3N1wyMDZcMjA2XDIwNlwzNzdcMFwwXDBcMzc3XDBcMFwwR1wwXDBcMCciCi0gICJcMFwwXDBcMzFcMFwwXDBcMTBcMFwwXDBcMVwwXDBcMFwxMVwwXDBcMFwzNFw0XDRcNGtcNlw2XDZcMzc3XDZcNlw2XDM3NyIKLSAgIkJBOlwzNzdcMjE3XDIxN3tcMzc3enpsXDM3N1wwXDBcMFwzNzdcMzA0XDMwNFwzMDRcMzc3c1wyNjJzXDM3N1wzMDdcMzQwIgotICAiXDMwN1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N3hcMjY1eFwzNzduXDI1M25cMzc3XDM0NVwzNDUiCi0gICJcMzQ1XDM3N1wyMjBcMjIwXDIyMFwzNzdcMFwwXDBcMzc3XDBcMFwwd1wwXDBcMC5cMFwwXDBcIlwwXDBcMFwxNlwwXDAiCi0gICJcMFwxXDBcMFwwXDVcMFwwXDBcMjNcMFwwXDAmXDBcMFwwIiIwXDRcNFw0eVw2XDZcNlwzNzdcMFwwXDBcMzc3XDE3XDE3IgotICAiXDE3XDM3N1wwXDBcMFwzNzdcMzI3XDMyN1wzMjdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAiXDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzY0XDM2NFwzNjRcMzc3U1wyMzVTXDM3NyIKLSAgIlwyNzdcMjc3XDI3N1wzNzdKSkpcMzc3XDBcMFwwXDM3N1wwXDBcMCIiMVwwXDBcMChcMFwwXDBcMjNcMFwwXDBcMFwwIgotICAiXDBcMFwxXDBcMFwwXDZcMFwwXDBcMjNcMFwwXDBcNDBcMFwwXDApXDBcMFwwLVwwXDBcMC5cMFwwXDAiIjBcMFwwXDAiCi0gICJcMzc3XDM1NFwzNTRcMzU0XDM3N3hcMjY1eFwzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzNzdcMzc3XDM3N1wzMDdcMzQwIgotICAiXDMwN1wzNzdcMzc3XDM3N1wzNzdcMzc3XDI3MlwzMjNcMjcyXDM3N1wyMTJcMjcwXDIxMlwzNzdcMjEyXDI2N1wyMTIiCi0gICJcMzc3cXFxXDM3N1wwXDBcMFwzNzdcMFwwXDAiIjJcMFwwXDAqXDBcMFwwXDI3XDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwxXDBcMFwwXDNcMFwwXDBcMTJcMFwwXDBcMjFcMFwwXDBcMjZcMFwwXDBcMzNcMFwwXDBcIlwwXDBcMFwzNzdcMjU0IgotICAiXDI1NFwyNTRcMzc3XDM1NFwzNTRcMzU0XDM3N29cMjU0b1wzNzdvXDI1NG9cMzc3blwyNTNuXDM3N1RcMjM1VFwzNzciCi0gICJcMjYyXDMxNFwyNjJcMzc3XDIxMlwyNzBcMjEyXDM3N1wyMjJcMjIyXDIyMlwzNzdhYWFcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMCIiMVwwXDBcMCdcMFwwXDBcMjNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDEiCi0gICJcMFwwXDBcMlwwXDBcMFwxMFwwXDBcMFwyMlwwXDBcMFVcMFwwXDBcMzc3XDBcMFwwXDM3N2lpaVwzNzdcMjAwXDIwMCIKLSAgIlwyMDBcMzc3fVwyMjB9XDM3N1wyNDFcMjQxXDI0MVwzNzdcMjAzXDIwM1wyMDNcMzc3enp6XDM3N0NDQ1wzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwd1wwXDBcMCpcMFwwXDBcMzRcMFwwXDBcMTJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDdcMFwwXDBcMjFcMFwwXDAiIjlcMFwwXDBwXDAiCi0gICJcMFwwXDIzNFwwXDBcMFwzMDRcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzcoKChcMzc3NDQ0XDI2Mzg4OHFcMCIKLSAgIlwwXDAjXDBcMFwwXDMyXDBcMFwwXDEzXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNlwwXDBcMFwxNFwwXDBcMFwyMVwwXDBcMFwyMyIKLSAgIlwwXDBcMFwyNFwwXDBcMFwyNlwwXDBcMFwyNlwwXDBcMFwyNlwwXDBcMFwyNVwwXDBcMFwyNVwwXDBcMFwyNFwwXDBcMCIKLSAgIlwxN1wwXDBcMFwxMFwwXDBcMFwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDBcMFwwXDRcMFwwXDBcNlwwXDAiCi0gICJcMFw2XDBcMFwwXDdcMFwwXDBcMTBcMFwwXDBcN1wwXDBcMFw2XDBcMFwwXDZcMFwwXDBcNFwwXDBcMFwyXDBcMFwwXDEiCi0gICJcMFwwXDBcMFwwXDBcMFwwIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja192b2x1bWUpCi0jZW5kaWYKLSNpZmRlZiBfX0dOVUNfXwotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja192b2x1bWVbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX3ZvbHVtZVtdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDIzMDQpICovCi0gICJcMFwwXDExXDMwIgotICAvKiBwaXhkYXRhX3R5cGUgKDB4MTAxMDAwMikgKi8KLSAgIlwxXDFcMFwyIgotICAvKiByb3dzdHJpZGUgKDk2KSAqLwotICAiXDBcMFwwYCIKLSAgLyogd2lkdGggKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBoZWlnaHQgKDI0KSAqLwotICAiXDBcMFwwXDMwIgotICAvKiBwaXhlbF9kYXRhOiAqLwotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwLFwwXDBcMFwzNzdcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMElAZlwzMjBJQGYrXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwLVwwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBJQGZcMzc3SUBmK1wwXDBcMFwwSUBmK0lAZiIKLSAgIlwyNTJJQGYrXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAtXDBcMFwwXDM3N1wyNTZcMjUzXDIzN1wzNzdcMFwwXDBcMzc3XDBcMFwwIgotICAiXDIxXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwSUBmK0lAZlwzNzdJQGYrXDBcMFwwXDBJQGZcMjEzSUBmT1wwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMG9cMFwwXDBcMzc3XDI1NlwyNTNcMjM3XDM3N1wzMzRcMzMxXDMyM1wzNzdcMFwwXDBcMzc3XDBcMFwwXDIyMSIKLSAgIlwwXDBcMFw0SUBmXDM3N0lAZitcMFwwXDBcMElAZlwyNTJJQGZPXDBcMFwwXDBJQGZjSUBmXDIxM1wwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcN1wwXDBcMFwzNzdcMjMzXDIzMFwyMTJcMzc3XDIwMH5yIgotICAiXDM3N1wwXDBcMFwzNzdcMjU2XDI1M1wyMzdcMzc3XDM0MlwzNDFcMzM0XDM3N1wzNjJcMzYyXDM2MFwzNzdcMFwwXDAiCi0gICJcMzc3XDBcMFwwXDM0N1wwXDBcMFwxMklAZitJQGZcMzc3XDBcMFwwXDBJQGZPSUBmXDI1MlwwXDBcMFwwSUBmQElAZiIKLSAgIlwyNTJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDIyXDBcMFwwXDM3N1wzNDNcMzQyIgotICAiXDMzNVwzNzdcMjY2XDI2NlwyNjFcMzc3XDBcMFwwXDM3N1wzNTZcMzU1XDM1MlwzNzdcMzUyXDM1MlwzNDZcMzc3XDMwNSIKLSAgIlwzMDFcMjY3XDM3N1wwXDBcMFwzNzdJSUlcMzc3XDBcMFwwXDI0XDBcMFwwXDBJQGZcMzc3XDBcMFwwXDBJQGYrSUBmIgotICAiXDMyMFwwXDBcMFwwSUBmI0lAZlwzMjBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwIgotICAiXDMwXDBcMFwwXDM3N1wyNjBcMjU0XDIzNFwzNzdcMjIyXDIxNlwyMDFcMzc3XDBcMFwwXDM3N1wzMTVcMzEyXDMwMVwzNzciCi0gICJcMjcwXDI2NFwyNDZcMzc3XDI3N1wyNzNcMjU3XDM3N1wwXDBcMFwzNzdcMTFcMTFcMTFcMzc3XDBcMFwwXDMwXDBcMCIKLSAgIlwwXDBJQGZcMzc3XDBcMFwwXDBcMFwwXDBcMElAZlwzNzdcMFwwXDBcMFwwXDBcMFwwSUBmXDM3N1wwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMzFcMFwwXDBcMzc3XDIzM1wyMzBcMjEyXDM3N1wyMDB+IgotICAiclwzNzdcMFwwXDBcMzc3XDIzNlwyMzJcMjE0XDM3N1wyNjBcMjU0XDIzNFwzNzdcMjYwXDI1NFwyMzRcMzc3XDBcMFwwIgotICAiXDM3NysrK1wzNzdcMFwwXDBcMjdcMFwwXDBcMElAZlwzNzdcMFwwXDBcMElAZitJQGZcMzIwXDBcMFwwXDBJQGYjSUAiCi0gICJmXDMyMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMzFcMFwwXDBcMzc3eXZsXDM3NyIKLSAgImRiWVwzNzdcMFwwXDBcMzc3XDIzNlwyMzJcMjE0XDM3N1wyMzZcMjMyXDIxNFwzNzdcMjM2XDIzMlwyMTRcMzc3XDBcMCIKLSAgIlwwXDM3N1wxMFwxMFwxMFwzNzZcMFwwXDBcMjdJQGYrSUBmXDM3N1wwXDBcMFwwSUBmT0lAZlwyNTJcMFwwXDBcMElAIgotICAiZkBJQGZcMjUyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMFwzMVwwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwyNDBcMFwwXDBcMzc3XDIxNVwyMTJ9XDM3N1wyMzZcMjMyXDIxNFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDMwMFwwXDBcMFwzMElAZlwzNzdJQGYrXDBcMFwwXDBJQGZcMjUySUBmT1wwXDBcMFwwSSIKLSAgIkBmWUlAZlwyMTNcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzXDBcMFwwXDMwXDBcMFwwPlwwIgotICAiXDBcMFNcMFwwXDBTXDBcMFwwUVwwXDBcMHJcMFwwXDBcMzc3fntwXDM3N1wwXDBcMFwzNzdcMFwwXDA9XDBcMFwwXDMyIgotICAiXDBcMFwwXDBcMFwwXDBcMElAZitJQGZcMzIwSUBmK1wwXDBcMFwwSUBmXDIxM0lAZk9cMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwyXDBcMFwwXDIyXDBcMFwwL1wwXDBcMD1cMFwwXDA7XDBcMFwwIiI4XDBcMFwwQyIKLSAgIlwwXDBcMG9cMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMCIiMVwwXDBcMFwyNlwwXDBcMFwwXDBcMFwwXDBJQGZcMzc3IgotICAiSUBmK1wwXDBcMFwwSUBmK0lAZlwyMTNJQGYrXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwIgotICAiXDBcMFw3XDBcMFwwXDIyXDBcMFwwXDI3XDBcMFwwXDI2XDBcMFwwXDI2XDBcMFwwJVwwXDBcMD5cMFwwXDBsXDBcMFwwIgotICAiXDM3N1wwXDBcMFwiXDBcMFwwXDEzXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMElAZlwzMjAiCi0gICJJQGYrXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMiIKLSAgIlwwXDBcMFwzXDBcMFwwXDNcMFwwXDBcNFwwXDBcMFwxNVwwXDBcMCNcMFwwXDA7XDBcMFwwIiI4XDBcMFwwXDMwXDBcMCIKLSAgIlwwXDRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcM1wwXDBcMFwxNVwwXDBcMFwzN1wwXDBcMCVcMFwwXDBcMjFcMFwwXDBcMlwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMTFcMFwwXDBcMTVcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KLS8qIEdka1BpeGJ1ZiBSR0JBIEMtU291cmNlIGltYWdlIGR1bXAgKi8KLQotI2lmZGVmIF9fU1VOUFJPX0MKLSNwcmFnbWEgYWxpZ24gNCAoc3RvY2tfbWlkaSkKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21pZGlbXSBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkgPSAKLSNlbHNlCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX21pZGlbXSA9IAotI2VuZGlmCi17ICIiCi0gIC8qIFBpeGJ1ZiBtYWdpYyAoMHg0NzY0NmI1MCkgKi8KLSAgIkdka1AiCi0gIC8qIGxlbmd0aDogaGVhZGVyICgyNCkgKyBwaXhlbF9kYXRhICgyMzA0KSAqLwotICAiXDBcMFwxMVwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICg5NikgKi8KLSAgIlwwXDBcMGAiCi0gIC8qIHdpZHRoICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogaGVpZ2h0ICgyNCkgKi8KLSAgIlwwXDBcMFwzMCIKLSAgLyogcGl4ZWxfZGF0YTogKi8KLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwyNFwwXDBcMG5cMFwwXDBcMjRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDM2XDBcMCIKLSAgIlwwXDIwNlwwXDBcMCRcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwJFwwXDBcMF5cMFwwXDB1XDBcMFwwXDIzMVwwXDBcMFwyMzFcMFwwXDBRXDBcMFwwPFwwXDBcMCIKLSAgIihcMFwwXDBcMTdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAuXDBcMFwwXDI3NlwwXDBcMFhcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJeXDBcMFwwQ1wwXDBcMHVcMFwwXDAkXDBcMFwwXDI0XDBcMFwwRVwwXDBcMHdcMFwwXDB9XDBcMFwwWFwwXDBcMCIiNyIKLSAgIlwwXDBcMFwxNVwwXDBcMEFcMFwwXDBcMjI1XDBcMFwwIiI4XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMjcxXDBcMFwwJFwwXDBcMCIKLSAgIlwxNzdcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCFcMFwwXDA+XDBcMFwwXDIwMVwwXDBcMFwzMTEiCi0gICJcMFwwXDBcMjAwXDBcMFwwR1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwRVwwXDBcMFwzNjRcMFwwXDBiXDBcMFwwXDM2MlwwXDBcMCIKLSAgIlVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwzNTVcMzc3XDM3N1wzNzdcMzc3XDBcMFwwXDM1NVwzNzdcMzc3XDM3N1wzNzciCi0gICJcMFwwXDBcMzU2XDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc2XDI1MFwyNTBcMjUwXDM3N1wwXDBcMFwzNTVcMjY3XDI2NyIKLSAgIlwyNjdcMzc3XDBcMFwwXDM1NlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwe1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwelwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMzc3XDMyM1wzMjFcMzE2XDM3N1wyNzRcMjcyXDI2NSIKLSAgIlwzNzdcMjU0XDI1MlwyNDRcMzc3XDIzMFwyMjZcMjE3XDM3N1wyMzBcMjI2XDIxN1wzNzdcMjMwXDIyNlwyMTdcMzc3IgotICAiXDIzMFwyMjZcMjE3XDM3N1wyMzBcMjI2XDIxN1wzNzdcMjMwXDIyNlwyMTdcMzc3XDIzMFwyMjZcMjE3XDM3N1wyMzAiCi0gICJcMjI2XDIxN1wzNzdcMjMwXDIyNlwyMTdcMzc3XDIzMFwyMjZcMjE3XDM3N1wyMzBcMjI2XDIxN1wzNzdcMjMwXDIyNiIKLSAgIlwyMTdcMzc3XDIzMFwyMjZcMjE3XDM3N1wyMzBcMjI2XDIxN1wzNzd6eHJcMzc3YmBbXDM3N1VTT1wzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDIzXDBcMFwwXDBcMFwwXDBcMzc3XDI1N1wyNTVcMjUxXDM3N1wyMzRcMjMyXDIyNVwzNzdcMjA0XDIwMnwiCi0gICJcMzc3ZmRdXDM3N2ZkXVwzNzdmZF1cMzc3ZmRdXDM3N2ZkXVwzNzdmZF1cMzc3ZmRdXDM3N2ZkXVwzNzdmZF1cMzc3ZiIKLSAgImRdXDM3N2ZkXVwzNzdmZF1cMzc3ZmRdXDM3N2ZkXVwzNzdSUEpcMzc3UlBKXDM3N0FAO1wzNzdcMFwwXDBcMzc3XDBcMCIKLSAgIlwwLFwwXDBcMFwzXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMCIiNlwwXDBcMFw3XDBcMFwwXDM3N1wzMTVcMzE1XDMxNVwzNzdWVlZcMzc3IgotICAiXDBcMFwwXDM3N1wzMTJcMzEyXDMxMlwzNzdWVlZcMzc3XDBcMFwwXDM3N1wzMTBcMzEwXDMxMFwzNzdWVlZcMzc3XDAiCi0gICJcMFwwXDM3N1wzMDVcMzA1XDMwNVwzNzdcMzAyXDMwMlwzMDJcMzc3XDI3MVwyNzFcMjcxXDM3N1wzMDNcMzAzXDMwMyIKLSAgIlwzNzdWVlZcMzc3XDBcMFwwXDM3N1wzMDBcMzAwXDMwMFwzNzdWVlZcMzc3XDBcMFwwXDM3N1wyNzZcMjc2XDI3NlwzNzciCi0gICJcMjcwXDI3MFwyNzBcMzc3XDBcMFwwXDM3N1wwXDBcMFw3N1wwXDBcMFwxNFwwXDBcMFwzNzdcMzc3XDM3N1wzNzdcMzc3IgotICAia2trXDM3N1wwXDBcMFwzNzdcMzc0XDM3NFwzNzRcMzc3a2trXDM3N1wwXDBcMFwzNzdcMzcwXDM3MFwzNzBcMzc3a2siCi0gICJrXDM3N1wwXDBcMFwzNzdcMzY2XDM2NlwzNjZcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzYyXDM2MiIKLSAgIlwzNjJcMzc3a2trXDM3N1wwXDBcMFwzNzdcMzYwXDM2MFwzNjBcMzc3a2trXDM3N1wwXDBcMFwzNzdcMzU1XDM1NVwzNTUiCi0gICJcMzc3XDM0NlwzNDZcMzQ2XDM3N1wwXDBcMFwzNzdcMFwwXDBFXDBcMFwwXDIyXDBcMFwwXDM3N1wzNzdcMzc3XDM3NyIKLSAgIlwzNzdra2tcMzc3XDBcMFwwXDM3N1wzNzNcMzczXDM3M1wzNzdra2tcMzc3XDBcMFwwXDM3N1wzNjdcMzY3XDM2N1wzNzciCi0gICJra2tcMzc3XDBcMFwwXDM3N1wzNjVcMzY1XDM2NVwzNzdcMzYxXDM2MVwzNjFcMzc3XDM0NVwzNDVcMzQ1XDM3N1wzNjIiCi0gICJcMzYyXDM2MlwzNzdra2tcMzc3XDBcMFwwXDM3N1wzNTdcMzU3XDM1N1wzNzdra2tcMzc3XDBcMFwwXDM3N1wzNTRcMzU0IgotICAiXDM1NFwzNzdcMzQ1XDM0NVwzNDVcMzc3XDBcMFwwXDM3N1wwXDBcMERcMFwwXDBcMjNcMFwwXDBcMzc3XDM3N1wzNzciCi0gICJcMzc3XDM3N2tra1wzNzdcMFwwXDBcMzc3XDM3MlwzNzJcMzcyXDM3N2tra1wzNzdcMFwwXDBcMzc3XDM2N1wzNjdcMzY3IgotICAiXDM3N2tra1wzNzdcMFwwXDBcMzc3XDM2NVwzNjVcMzY1XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzQ0XDM0NFwzNDRcMzc3IgotICAiXDM2MlwzNjJcMzYyXDM3N2tra1wzNzdcMFwwXDBcMzc3XDM1NlwzNTZcMzU2XDM3N2tra1wzNzdcMFwwXDBcMzc3XDM1MyIKLSAgIlwzNTNcMzUzXDM3N1wzNDRcMzQ0XDM0NFwzNzdcMFwwXDBcMzc3XDBcMFwwRFwwXDBcMFwyMFwwXDBcMFwzNzdcMzc2IgotICAiXDM3NlwzNzZcMzc3Tk5OXDM3N1wwXDBcMFwzNzdcMzcyXDM3MlwzNzJcMzc3Tk5OXDM3N1wwXDBcMFwzNzdcMzY2XDM2NiIKLSAgIlwzNjZcMzc3Tk5OXDM3N1wwXDBcMFwzNzdcMzY1XDM2NVwzNjVcMzc3XDM1N1wzNTdcMzU3XDM3N1wzNDRcMzQ0XDM0NCIKLSAgIlwzNzdcMzYxXDM2MVwzNjFcMzc3Tk5OXDM3N1wwXDBcMFwzNzdcMzU2XDM1NlwzNTZcMzc3Tk5OXDM3N1wwXDBcMFwzNzciCi0gICJcMzUzXDM1M1wzNTNcMzc3XDM0M1wzNDNcMzQzXDM3N1wwXDBcMFwzNzdcMFwwXDBEXDBcMFwwXDE2XDBcMFwwXDM3NyIKLSAgIlwzNzVcMzc1XDM3NVwzNzdcMzc0XDM3NFwzNzRcMzc3XDM2MFwzNjBcMzYwXDM3N1wzNzJcMzcyXDM3MlwzNzdcMzY3IgotICAiXDM2N1wzNjdcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNjZcMzY2XDM2NlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM0N1wzNDciCi0gICJcMzQ3XDM3N1wzNjRcMzY0XDM2NFwzNzdcMzU2XDM1NlwzNTZcMzc3XDM0M1wzNDNcMzQzXDM3N1wzNjBcMzYwXDM2MCIKLSAgIlwzNzdcMzUyXDM1MlwzNTJcMzc3XDMzNlwzMzZcMzM2XDM3N1wzNTZcMzU2XDM1NlwzNzdcMzQ2XDM0NlwzNDZcMzc3IgotICAiXDMzMlwzMzJcMzMyXDM3N1wzNTNcMzUzXDM1M1wzNzdcMzQzXDM0M1wzNDNcMzc3XDBcMFwwXDM3N1wwXDBcMERcMFwwIgotICAiXDBcMTZcMFwwXDBcMzc3XDM3NFwzNzRcMzc0XDM3N1wzNzNcMzczXDM3M1wzNzdcMzU3XDM1N1wzNTdcMzc3XDM3MlwzNzIiCi0gICJcMzcyXDM3N1wzNjZcMzY2XDM2NlwzNzdcMzUzXDM1M1wzNTNcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjJcMzYyXDM2MiIKLSAgIlwzNzdcMzQ3XDM0N1wzNDdcMzc3XDM2M1wzNjNcMzYzXDM3N1wzNTZcMzU2XDM1NlwzNzdcMzQyXDM0MlwzNDJcMzc3IgotICAiXDM2MFwzNjBcMzYwXDM3N1wzNTFcMzUxXDM1MVwzNzdcMzM2XDMzNlwzMzZcMzc3XDM1NVwzNTVcMzU1XDM3N1wzNDUiCi0gICJcMzQ1XDM0NVwzNzdcMzMxXDMzMVwzMzFcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNDJcMzQyXDM0MlwzNzdcMFwwXDBcMzc3IgotICAiXDBcMFwwRFwwXDBcMFwxNlwwXDBcMFwzNzdcMzc0XDM3NFwzNzRcMzc3XDM3M1wzNzNcMzczXDM3N1wzNzBcMzcwXDM3MCIKLSAgIlwzNzdcMzczXDM3M1wzNzNcMzc3XDM3M1wzNzNcMzczXDM3N1wzNjZcMzY2XDM2NlwzNzdcMzczXDM3M1wzNzNcMzc3IgotICAiXDM3MVwzNzFcMzcxXDM3N1wzNjZcMzY2XDM2NlwzNzdcMzcxXDM3MVwzNzFcMzc3XDM3MFwzNzBcMzcwXDM3N1wzNjMiCi0gICJcMzYzXDM2M1wzNzdcMzcwXDM3MFwzNzBcMzc3XDM2NlwzNjZcMzY2XDM3N1wzNjFcMzYxXDM2MVwzNzdcMzcwXDM3MCIKLSAgIlwzNzBcMzc3XDM2NFwzNjRcMzY0XDM3N1wzNjBcMzYwXDM2MFwzNzdcMzcwXDM3MFwzNzBcMzc3XDM0MVwzNDFcMzQxIgotICAiXDM3N1wwXDBcMFwzNzdcMFwwXDBEXDBcMFwwXDE2XDBcMFwwXDM3N1wzMDFcMzAxXDMwMVwzNzdcMzAwXDMwMFwzMDAiCi0gICJcMzc3XDI2N1wyNjdcMjY3XDM3N1wzMDFcMzAxXDMwMVwzNzdcMjc1XDI3NVwyNzVcMzc3XDI3MFwyNzBcMjcwXDM3NyIKLSAgIlwyNzVcMjc1XDI3NVwzNzdcMjcyXDI3MlwyNzJcMzc3XDI2NFwyNjRcMjY0XDM3N1wyNzJcMjcyXDI3MlwzNzdcMjcwIgotICAiXDI3MFwyNzBcMzc3XDI1MVwyNTFcMjUxXDM3N1wyNzJcMjcyXDI3MlwzNzdcMjYzXDI2M1wyNjNcMzc3XDI1MVwyNTEiCi0gICJcMjUxXDM3N1wyNjZcMjY2XDI2NlwzNzdcMjU3XDI1N1wyNTdcMzc3XDI0NlwyNDZcMjQ2XDM3N1wyNjRcMjY0XDI2NCIKLSAgIlwzNzdcMjU1XDI1NVwyNTVcMzc3XDBcMFwwXDM3N1wwXDBcMERcMFwwXDBcMTZcMFwwXDBuXDBcMFwwXDM3N1wwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwIgotICAiXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDAiCi0gICJcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMjI3XDBcMFwwXDc3XDAiCi0gICJcMFwwXDE0XDBcMFwwXDZcMFwwXDAjXDBcMFwwPlwwXDBcMERcMFwwXDBEXDBcMFwwRFwwXDBcMERcMFwwXDBEXDBcMCIKLSAgIlwwRFwwXDBcMERcMFwwXDBEXDBcMFwwRFwwXDBcMERcMFwwXDBEXDBcMFwwRFwwXDBcMERcMFwwXDBEXDBcMFwwRFwwIgotICAiXDBcMERcMFwwXDBEXDBcMFwwRFwwXDBcMFw3N1wwXDBcMCNcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDZcMFwwXDBcMTQiCi0gICJcMFwwXDBcMTVcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDAiCi0gICJcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMCIKLSAgIlwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTZcMFwwXDBcMTRcMFwwXDBcNlwwXDBcMFwxIn07Ci0KLQotLyogR2RrUGl4YnVmIFJHQkEgQy1Tb3VyY2UgaW1hZ2UgZHVtcCAqLwotCi0jaWZkZWYgX19TVU5QUk9fQwotI3ByYWdtYSBhbGlnbiA0IChzdG9ja19hdXRoZW50aWNhdGlvbikKLSNlbmRpZgotI2lmZGVmIF9fR05VQ19fCi1zdGF0aWMgY29uc3QgZ3VpbnQ4IHN0b2NrX2F1dGhlbnRpY2F0aW9uW10gX19hdHRyaWJ1dGVfXyAoKF9fYWxpZ25lZF9fICg0KSkpID0gCi0jZWxzZQotc3RhdGljIGNvbnN0IGd1aW50OCBzdG9ja19hdXRoZW50aWNhdGlvbltdID0gCi0jZW5kaWYKLXsgIiIKLSAgLyogUGl4YnVmIG1hZ2ljICgweDQ3NjQ2YjUwKSAqLwotICAiR2RrUCIKLSAgLyogbGVuZ3RoOiBoZWFkZXIgKDI0KSArIHBpeGVsX2RhdGEgKDkyMTYpICovCi0gICJcMFwwJFwzMCIKLSAgLyogcGl4ZGF0YV90eXBlICgweDEwMTAwMDIpICovCi0gICJcMVwxXDBcMiIKLSAgLyogcm93c3RyaWRlICgxOTIpICovCi0gICJcMFwwXDBcMzAwIgotICAvKiB3aWR0aCAoNDgpICovCi0gICJcMFwwXDAiIjAiCi0gIC8qIGhlaWdodCAoNDgpICovCi0gICJcMFwwXDAiIjAiCi0gIC8qIHBpeGVsX2RhdGE6ICovCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFwzIgotICAiXDBcMFwwXDRcMFwwXDBcNVwwXDBcMFw1XDBcMFwwXDVcMFwwXDBcNFwwXDBcMFwzXDBcMFwwXDJcMFwwXDBcMVwwXDAiCi0gICJcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDFcMFwwXDBcMlwwXDBcMFw0XDBcMFwwXDdcMFwwXDBcMTJcMFwwXDBcMTZcMFwwXDBcMjFcMFwwXDBcMjNcMFwwIgotICAiXDBcMjNcMFwwXDBcMjNcMFwwXDBcMjFcMFwwXDBcMTZcMFwwXDBcMTJcMFwwXDBcN1wwXDBcMFw0XDBcMFwwXDJcMFwwIgotICAiXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDRcMFwwXDBcMTBcMFwwIgotICAiXDBcMTZcMFwwXDBnXDBcMFwwXDI1M1wwXDBcMFwzMzJcMFwwXDBcMzY2XDFcMVwxXDM3N1wwXDBcMFwzNjZcMFwwXDAiCi0gICJcMzM0XDBcMFwwXDI2MFwwXDBcMHFcMFwwXDBcMzZcMFwwXDBcMjVcMFwwXDBcMTZcMFwwXDBcMTBcMFwwXDBcNFwwXDAiCi0gICJcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFw1XDBcMFwwXDE0XDBcMFwwXDIwM1wwXDBcMFwzNTQiCi0gICJcMVwxXDFcMzc3XDIzM1wyMzNcMjMzXDM3N1wzMjBcMzIwXDMyMFwzNzdcMzQzXDM0M1wzNDNcMzc3XDM1MVwzNTFcMzUxIgotICAiXDM3N1wzMzVcMzM1XDMzNVwzNzdcMzA2XDMwNlwzMDZcMzc3XDIyMVwyMjFcMjIxXDM3N1wxXDFcMVwzNzdcMFwwXDAiCi0gICJcMzU2XDBcMFwwXDIyMVwwXDBcMCNcMFwwXDBcMjdcMFwwXDBcMTVcMFwwXDBcNVwwXDBcMFwyXDBcMFwwXDFcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwyXDAiCi0gICJcMFwwXDdcMFwwXDA+XDBcMFwwXDMyMFwxXDFcMVwzNzdcMjc2XDI3NlwyNzZcMzc3XDM1MlwzNTJcMzUyXDM3N1wzNjEiCi0gICJcMzYxXDM2MVwzNzdcMzYzXDM2M1wzNjNcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNTVcMzU1XDM1NVwzNzdcMzUyXDM1MiIKLSAgIlwzNTJcMzc3XDM0NlwzNDZcMzQ2XDM3N1wzNDJcMzQyXDM0MlwzNzdcMzMwXDMzMFwzMzBcMzc3XDIzNFwyMzRcMjM0IgotICAiXDM3N1wxXDFcMVwzNzdcMFwwXDBcMzMwXDBcMFwwV1wwXDBcMFwzNlwwXDBcMFwyMFwwXDBcMFw3XDBcMFwwXDJcMFwwIgotICAiXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFw3IgotICAiXDBcMFwwUlwwXDBcMFwzNjZgYGBcMzc3XDM0M1wzNDNcMzQzXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzYwXDM2MFwzNjAiCi0gICJcMzc3XDM1NFwzNTRcMzU0XDM3N1wzNDZcMzQ2XDM0NlwzNzdcMzQ0XDM0NFwzNDRcMzc3XDM0M1wzNDNcMzQzXDM3NyIKLSAgIlwzNDJcMzQyXDM0MlwzNzdcMzQyXDM0MlwzNDJcMzc3XDM0MlwzNDJcMzQyXDM3N1wzNDFcMzQxXDM0MVwzNzdcMzI2IgotICAiXDMyNlwzMjZcMzc3XDI2N1wyNjdcMjY3XDM3N0VFRVwzNzdcMFwwXDBcMzY3XDBcMFwwbVwwXDBcMFwiXDBcMFwwXDIyIgotICAiXDBcMFwwXDdcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwIgotICAiXDBcNVwwXDBcMD5cMFwwXDBcMzY2XDIwNVwyMDVcMjA1XDM3N1wzNTRcMzU0XDM1NFwzNzdcMzYzXDM2M1wzNjNcMzc3IgotICAiXDM1MlwzNTJcMzUyXDM3N1wzNDNcMzQzXDM0M1wzNzdcMzMxXDMzMVwzMzFcMzc3XDMxNlwzMTZcMzE2XDM3N1wzMDIiCi0gICJcMzAyXDMwMlwzNzdcMzAyXDMwMlwzMDJcMzc3XDMxNFwzMTRcMzE0XDM3N1wzMjVcMzI1XDMyNVwzNzdcMzM0XDMzNCIKLSAgIlwzMzRcMzc3XDM0MFwzNDBcMzQwXDM3N1wzMzVcMzM1XDMzNVwzNzdcMzEwXDMxMFwzMTBcMzc3XDI3MVwyNzFcMjcxIgotICAiXDM3N2JiYlwzNzdcMFwwXDBcMzcwXDBcMFwwWVwwXDBcMCFcMFwwXDBcMTdcMFwwXDBcNVwwXDBcMFwxXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDRcMFwwXDBcMTVcMFwwXDBcMzIwXl5eXDM3N1wzNTRcMzU0XDM1NCIKLSAgIlwzNzdcMzYzXDM2M1wzNjNcMzc3XDM1MFwzNTBcMzUwXDM3N1wzMzRcMzM0XDMzNFwzNzdcMjc0XDI3NFwyNzRcMzcwIgotICAiWFhYXDM2MFwyNFwyNFwyNFwzNDFcMFwwXDBcMzMzXDBcMFwwXDMyNlwwXDBcMFwzMjR7e3tcMzUyXDI3NlwyNzZcMjc2IgotICAiXDM2NlwzNDBcMzQwXDM0MFwzNzdcMzM3XDMzN1wzMzdcMzc3XDMzNFwzMzRcMzM0XDM3N1wzMDNcMzAzXDMwM1wzNzciCi0gICJcMjczXDI3M1wyNzNcMzc3TExMXDM3N1wwXDBcMFwyNzNcMFwwXDAiIjVcMFwwXDBcMzNcMFwwXDBcMTNcMFwwXDBcMyIKLSAgIlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwxMFwwXDBcMFwyMDNcMVwxXDFcMzc3XDM0MlwzNDIiCi0gICJcMzQyXDM3N1wzNjNcMzYzXDM2M1wzNzdcMzUxXDM1MVwzNTFcMzc3XDMzMFwzMzBcMzMwXDM3N1wyMjdcMjI3XDIyNyIKLSAgIlwzNTRcMFwwXDBcMzUyXDBcMFwwXDI3NFwwXDBcMGdcMFwwXDBZXDBcMFwwU1wwXDBcMFFcMFwwXDBZXDBcMFwwXDMwNSIKLSAgIlwyMzRcMjM0XDIzNFwzNTFcMzM1XDMzNVwzMzVcMzcxXDM0MFwzNDBcMzQwXDM3N1wzMzBcMzMwXDMzMFwzNzdcMjczIgotICAiXDI3M1wyNzNcMzc3XDI2NlwyNjZcMjY2XDM3N1wxXDFcMVwzNzdcMFwwXDB4XDBcMFwwKlwwXDBcMFwyM1wwXDBcMFw3IgotICAiXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFwzXDBcMFwwXDE1XDBcMFwwXDM1NFwyNzFcMjcxXDI3MVwzNzdcMzYzIgotICAiXDM2M1wzNjNcMzc3XDM1M1wzNTNcMzUzXDM3N1wzMzBcMzMwXDMzMFwzNzdcMjEyXDIxMlwyMTJcMzU2XDBcMFwwXDM0MiIKLSAgIlwwXDBcMH1cMFwwXDBXXDBcMFwwRlwwXDBcMCIiOVwwXDBcMCIiMFwwXDBcMC5cMFwwXDAiIjFcMFwwXDA7XDBcMFwwIgotICAiXDIyNFwyMjJcMjIyXDIyMlwzMzdcMzMzXDMzM1wzMzNcMzY3XDMzN1wzMzdcMzM3XDM3N1wzMTZcMzE2XDMxNlwzNzciCi0gICJcMjYzXDI2M1wyNjNcMzc3XDIyM1wyMjNcMjIzXDM3N1wwXDBcMFwzMTNcMFwwXDA6XDBcMFwwXDM2XDBcMFwwXDEzXDAiCi0gICJcMFwwXDNcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw2XDBcMFwwRVwxXDFcMVwzNzdcMzUyXDM1MlwzNTJcMzc3XDM2MVwzNjEiCi0gICJcMzYxXDM3N1wzMzVcMzM1XDMzNVwzNzdcMzAwXDMwMFwzMDBcMzc3XDJcMlwyXDM1MFwwXDBcMFwyMTRcMFwwXDBUXDAiCi0gICJcMFwwPFwwXDBcMClcMFwwXDBcMzRcMFwwXDBcMjVcMFwwXDBcMjNcMFwwXDBcMjZcMFwwXDBcMzdcMFwwXDAuXDBcMCIKLSAgIlwwXDI0MFwyNDJcMjQyXDI0MlwzMzdcMzQ1XDM0NVwzNDVcMzc3XDMzNVwzMzVcMzM1XDM3N1wzMDBcMzAwXDMwMFwzNzciCi0gICJcMjY2XDI2NlwyNjZcMzc3XDFcMVwxXDM3N1wwXDBcMGFcMFwwXDApXDBcMFwwXDIyXDBcMFwwXDVcMFwwXDBcMVwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMlwwXDBcMFwxMVwwXDBcMHBcMjQwXDI0MFwyNDBcMzc3XDM2MVwzNjFcMzYxXDM3N1wzNTBcMzUwXDM1MFwzNzciCi0gICJcMzA2XDMwNlwzMDZcMzc3XDIwMVwyMDFcMjAxXDM1NFwwXDBcMFwzMjJcMFwwXDBaXDBcMFwwPlwwXDBcMCVcMFwwXDAiCi0gICJcMjRcMFwwXDBcMTNcMFwwXDBcN1wwXDBcMFw1XDBcMFwwXDdcMFwwXDBcMTVcMFwwXDBcMzBcMFwwXDAiIjBcMlwyXDIiCi0gICJcMzEzXDMzNFwzMzRcMzM0XDM1N1wzNTJcMzUyXDM1MlwzNzdcMzIxXDMyMVwzMjFcMzc3XDI1NlwyNTZcMjU2XDM3NyIKLSAgInZ2dlwzNzdcMFwwXDBcMjIwXDBcMFwwIiI0XDBcMFwwXDMwXDBcMFwwXDEwXDBcMFwwXDJcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMTQiCi0gICJcMFwwXDBcMjIzXDMyMFwzMjBcMzIwXDM3N1wzNjJcMzYyXDM2MlwzNzdcMzMxXDMzMVwzMzFcMzc3XDMwMFwzMDBcMzAwIgotICAiXDM3Ny8vL1wzNDVcMFwwXDBcMjEzXDBcMFwwSlwwXDBcMCxcMFwwXDBcMjVcMFwwXDBcMTFcMFwwXDBcM1wwXDBcMFwxIgotICAiXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFw0XDBcMFwwXDEzXDBcMFwwXDMxXDBcMFwwblwyMDJcMjAyXDIwMlwzNDBcMzU2IgotICAiXDM1NlwzNTZcMzc3XDMzNFwzMzRcMzM0XDM3N1wyNjVcMjY1XDI2NVwzNzdcMjM3XDIzN1wyMzdcMzc3XDBcMFwwXDI3NCIKLSAgIlwwXDBcMD5cMFwwXDBcMzdcMFwwXDBcMTNcMFwwXDBcM1wwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNFwwXDBcMFwxNlwwXDBcMFwzMjVcMzQxXDM0MVwzNDEiCi0gICJcMzc3XDM2MVwzNjFcMzYxXDM3N1wzMTRcMzE0XDMxNFwzNzdcMzAwXDMwMFwzMDBcMzc3XDE3XDE3XDE3XDMzMVwwXDAiCi0gICJcMGVcMFwwXDA9XDBcMFwwXDQwXDBcMFwwXDE2XDBcMFwwXDVcMFwwXDBcMlwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMSIKLSAgIlwwXDBcMFwyXDBcMFwwXDVcMFwwXDBcMTdcMFwwXDAjXDM3XDM3XDM3XDMyM1wzNTRcMzU0XDM1NFwzNzdcMzQyXDM0MiIKLSAgIlwzNDJcMzc3XDMwMFwzMDBcMzAwXDM3N1wyNTBcMjUwXDI1MFwzNzdcMFwwXDBcMzI1XDBcMFwwR1wwXDBcMCVcMFwwIgotICAiXDBcMTZcMFwwXDBcNFwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDJcMFwwXDBcN1wwXDBcMFwyNFwwXDBcMFwzMzZcMzQ2XDM0NlwzNDZcMzc3XDM1N1wzNTdcMzU3XDM3NyIKLSAgIlwzMTNcMzEzXDMxM1wzNzdcMjY3XDI2N1wyNjdcMzc3XDBcMFwwXDMyMlwwXDBcMFdcMFwwXDAiIjZcMFwwXDBcMzRcMCIKLSAgIlwwXDBcMTVcMFwwXDBcMTBcMFwwXDBcNVwwXDBcMFw1XDBcMFwwXDVcMFwwXDBcNVwwXDBcMFw1XDBcMFwwXDEwXDBcMCIKLSAgIlwwXDE2XDBcMFwwXDM1XDBcMFwwXDMwMVwzNTFcMzUxXDM1MVwzNzdcMzQ1XDM0NVwzNDVcMzc3XDMwNVwzMDVcMzA1IgotICAiXDM3N1wyNTZcMjU2XDI1NlwzNzdcMFwwXDBcMzYwXDBcMFwwT1wwXDBcMC5cMFwwXDBcMjVcMFwwXDBcMTBcMFwwXDAiCi0gICJcM1wwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcMlwwXDBcMFw2XDBcMFwwIgotICAiXDE3XDBcMFwwXDM3XDBcMFwwXDM1NFwzMzJcMzMyXDMzMlwzNzdcMzUzXDM1M1wzNTNcMzc3XDMxMlwzMTJcMzEyXDM3NyIKLSAgIlwyNTNcMjUzXDI1M1wzNzdcMFwwXDBcMzIyXDBcMFwwWVwwXDBcMDxcMFwwXDAlXDBcMFwwXDMyXDBcMFwwXDI2XDBcMCIKLSAgIlwwXDI1XDBcMFwwXDI1XDBcMFwwXDI1XDBcMFwwXDI1XDBcMFwwXDI1XDBcMFwwXDI2XDBcMFwwXDMyXDBcMFwwJlwwIgotICAiXDBcMFwzMDBcMzQ0XDM0NFwzNDRcMzc3XDM0M1wzNDNcMzQzXDM3N1wzMTJcMzEyXDMxMlwzNzdcMjU1XDI1NFwyNTIiCi0gICJcMzc3XDBcMFwwXDM3MVwwXDBcMFlcMFwwXDA7XDBcMFwwXCJcMFwwXDBcMjNcMFwwXDBcMTJcMFwwXDBcNVwwXDBcMCIKLSAgIlwyXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDUiIjFcMjZcN2Y3XDMxXDEwXDM3NzdcMzFcMTBcMzc3IgotICAiN1wzMVwxMFwzNzdcMjM0UlwyN1wzNzdcMjcwbiVcMzc3XDI3MWsmXDM3N1wyNDdaXDM0XDM3NzdcMzFcMTBcMzc3N1wzMSIKLSAgIlwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMCIKLSAgIlwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzciCi0gICI3XDMxXDEwXDM3N1wyNDVeXDM3XDM3N1wyNzRzKlwzNzdcMjcwbydcMzc3XDIyN1VcMzJcMzc3N1wzMVwxMFwzNzc3XDMxIgotICAiXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzclXDIwXDVfXDBcMFwwXDMzXDBcMFwwXDE2XDBcMFwwXDVcMFwwXDAiCi0gICJcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDNcMFwwXDBcMTIiIjdcMzFcMTBcMzc3XDMxMVwyMzRiXDM3N1wzNjRcMzQxXDMxMyIKLSAgIlwzNzdcMzY0XDM0MFwzMTFcMzc3XDM1N1wzMzNcMjc2XDM3N1wzNTRcMzI1XDI2N1wzNzdcMzUzXDMyMlwyNjRcMzc3IgotICAiXDM1MlwzMjJcMjYzXDM3N1wzNTNcMzE3XDI2MFwzNzdcMzUxXDMxNlwyNTZcMzc3XDM1MFwzMTRcMjUzXDM3N1wzNDciCi0gICJcMzE0XDI1MFwzNzdcMzUwXDMwN1wyNDFcMzc3XDM0NlwzMDZcMjQxXDM3N1wzNDZcMzA2XDI0MVwzNzdcMzQ2XDMwNiIKLSAgIlwyNDFcMzc3XDM0NlwzMDZcMjQxXDM3N1wzNDZcMzA2XDI0MVwzNzdcMzUwXDMwN1wyNDFcMzc3XDM1MFwzMDdcMjQxIgotICAiXDM3N1wzNDZcMzA2XDI0MVwzNzdcMzQ1XDMwNVwyNDBcMzc3XDM0NVwzMDVcMjQwXDM3N1wzNDNcMzAyXDIzMlwzNzciCi0gICJcMzQwXDMwMFwyMzNcMzc3XDM0MFwyNzVcMjIzXDM3N1wzMzdcMjcyXDIyMlwzNzdcMzM3XDI3MlwyMTZcMzc3XDMzNSIKLSAgIlwyNjNcMjA2XDM3N1wzMjVcMjU0fFwzNzdcMjQyYVwzM1wzNzc3XDMxXDEwXDM3N1wwXDBcMCIiMVwwXDBcMFwzMlwwIgotICAiXDBcMFwxMlwwXDBcMFwzXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNFwwXDBcMFwyMCIiN1wzMVwxMFwzNzdcMzY1XDM0NlwzMjAiCi0gICJcMzc3XDM1MlwzMjNcMjU3XDM3N1wzNTJcMzE3XDI1N1wzNzdcMzQzXDMwMlwyMzJcMzc3XDMzMlwyNzBcMjEzXDM3NyIKLSAgIlwzMzJcMjY2XDIwN1wzNzdcMzMwXDI2MFwyMDFcMzc3XDMyNlwyNTZcMTc3XDM3N1wzMjNcMjUzfFwzNzdcMzIxXDI1MSIKLSAgInRcMzc3XDMxN1wyNDVuXDM3N1wzMTRcMjQzbVwzNzdcMzEyXDIzN2dcMzc3XDMxMlwyMzdnXDM3N1wzMTJcMjM3Z1wzNzciCi0gICJcMzEyXDIzN2dcMzc3XDMxMlwyMzdnXDM3N1wzMTJcMjM3Z1wzNzdcMzEyXDIzN2dcMzc3XDMxMFwyMzZnXDM3N1wzMDYiCi0gICJcMjMzY1wzNzdcMzAyXDIzMGFcMzc3XDMwMlwyMjNbXDM3N1wyNzdcMjIwUlwzNzdcMjc0XDIxMEtcMzc3XDI3NVwyMDQiCi0gICJAXDM3N1wyNzJ+PVwzNzdcMjYzdjRcMzc3XDI0N2pcIlwzNzdcMjE1U1wyNFwzNzc3XDMxXDEwXDM3N1wwXDBcMEVcMCIKLSAgIlwwXDAmXDBcMFwwXDE3XDBcMFwwXDRcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw1XDBcMFwwXDIzIiI3XDMxXDEwXDM3N1wzNjUiCi0gICJcMzQ0XDMxNlwzNzdcMzUxXDMxNlwyNTZcMzc3XDM0N1wzMTVcMjUwXDM3N1wzMzdcMjc1XDIyMFwzNzdcMzMwXDI2MSIKLSAgIlwyMDNcMzc3XDMyNVwyNTV+XDM3N1wzMjJcMjUye1wzNzdcMzIyXDI0NndcMzc3XDMyMFwyNDdxXDM3N1wzMTVcMjQzIgotICAibFwzNzdcMzEwXDIzN2hcMzc3XDMwNVwyMzNkXDM3N1wzMDRcMjMxYVwzNzdcMzA0XDIzMWFcMzc3XDMwNFwyMzFhXDM3NyIKLSAgIlwzMDVcMjMyYlwzNzdcMzA1XDIzMmJcMzc3XDMwNVwyMzJiXDM3N1wzMDVcMjMyYlwzNzdcMzA0XDIzMWFcMzc3XDMwMiIKLSAgIlwyMzBdXDM3N1wzMDFcMjI0WlwzNzdcMjc3XDIyMFRcMzc3XDI3NlwyMTZPXDM3N1wyNzRcMjA3SVwzNzdcMjcyXDIwMiIKLSAgIlw3N1wzNzdcMjcyfj1cMzc3XDI2MXQyXDM3N1wyNDdqXCJcMzc3XDIxM1JcMjRcMzc3N1wzMVwxMFwzNzdcMFwwXDBRIgotICAiXDBcMFwwLlwwXDBcMFwyM1wwXDBcMFw1XDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNVwwXDBcMFwyNCIiN1wzMVwxMFwzNzdcMzY1IgotICAiXDM0NlwzMjBcMzc3XDM1M1wzMTdcMjYwXDM3N1wzNTFcMzE2XDI1NlwzNzdcMzQwXDI3N1wyMjdcMzc3XDMzM1wyNjQiCi0gICJcMjA2XDM3N1wzMzBcMjYwXDIwMVwzNzdcMzI3XDI1N1wyMDBcMzc3XDMyMlwyNTR7XDM3N1wzMjJcMjQ2d1wzNzdcMzIwIgotICAiXDI0Nm9cMzc3XDMxNFwyNDNtXDM3N1wyNjVcMjE2XFxcMzc3XDI0MH5QXDM3N1wyMzJ5TVwzNzdcMjMyeU1cMzc3XDI2MiIKLSAgIlwyMTRZXDM3N1wzMDdcMjM0ZFwzNzdcMzA3XDIzNGRcMzc3XDMwN1wyMzRkXDM3N1wzMDVcMjMyYlwzNzdcMzAyXDIyNyIKLSAgIl9cMzc3XDMwMlwyMjNbXDM3N1wyNzdcMjIwVFwzNzdcMjc2XDIxNk9cMzc3XDI3NFwyMDRBXDM3N1wyNzJcMjAyXDc3IgotICAiXDM3N1wyNjV8OFwzNzdcMjU3cyxcMzc3XDI0M2ZcMzZcMzc3XDIwN1BcMjRcMzc3N1wzMVwxMFwzNzdcMFwwXDBXXDAiCi0gICJcMFwwIiIyXDBcMFwwXDI1XDBcMFwwXDVcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw1XDBcMFwwXDI1IiI3XDMxXDEwXDM3N1wzNjUiCi0gICJcMzQ0XDMxNlwzNzdcMzUyXDMxN1wyNTdcMzc3XDM1MFwzMTVcMjUxXDM3N1wzMzdcMjc0XDIyMlwzNzdcMzI1XDI1NSIKLSAgIn5cMzc3XDMyMlwyNTN9XDM3N1wzMjJcMjUye1wzNzdcMzIwXDI1M3VcMzc3XDMyMFwyNDZvXDM3N1wzMTVcMjQzbFwzNzciCi0gICJcMjYzXDIxNl1cMzc3XDIyNHRKXDM3N3dePFwzNzdcNDBcMzFcMjBcMzc3XDBcMFwwXDM3N1w0MFwzMVwyMFwzNzd5YCIKLSAgIj5cMzc3XDMxMFwyMzdoXDM3N1wzMTJcMjM3Z1wzNzdcMzA3XDIzNWZcMzc3XDMwNVwyMzNkXDM3N1wzMDRcMjMxYVwzNzciCi0gICJcMzAyXDIzMF1cMzc3XDI3N1wyMjFWXDM3N1wyNzZcMjE2T1wzNzdcMjc2XDIwNkVcMzc3XDI3NFwyMDNcNzdcMzc3XDI2NiIKLSAgInw3XDM3N1wyNTJsI1wzNzdcMjE1VVwyNFwzNzc3XDMxXDEwXDM3N1wwXDBcMFhcMFwwXDAiIjNcMFwwXDBcMjVcMFwwIgotICAiXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDVcMFwwXDBcMjUiIjdcMzFcMTBcMzc3XDM2NVwzNDRcMzE2XDM3N1wzNTFcMzE2IgotICAiXDI1NlwzNzdcMzUwXDMxNlwyNTFcMzc3XDM0MVwyNzRcMjI0XDM3N1wzMzJcMjY0XDIwN1wzNzdcMzMwXDI2MlwyMDEiCi0gICJcMzc3XDMyN1wyNTdcMjAwXDM3N1wzMjJcMjUye1wzNzdcMzIwXDI1MHNcMzc3XDMxN1wyNDVuXDM3N1wyMjJ0TVwzNzciCi0gICJ6YD5cMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzd5YFw3N1wzNzdcMzEyIgotICAiXDIzN2dcMzc3XDMwNVwyMzNkXDM3N1wzMDVcMjMyYlwzNzdcMzAyXDIyN19cMzc3XDMwMVwyMjRaXDM3N1wyNzZcMjE3IgotICAiUVwzNzdcMjc0XDIwN0lcMzc3XDI3MlwyMDE9XDM3N1wyNjd+OlwzNzdcMjYzeTRcMzc3XDI0NmkhXDM3N1wyMTNSXDI0IgotICAiXDM3NzdcMzFcMTBcMzc3XDBcMFwwWFwwXDBcMCIiM1wwXDBcMFwyNVwwXDBcMFw2XDBcMFwwXDFcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNSIKLSAgIlwwXDBcMFwyNSIiN1wzMVwxMFwzNzdcMzY0XDM0MVwzMTNcMzc3XDM1MFwzMTVcMjUxXDM3N1wzNDVcMzExXDI0NFwzNzciCi0gICJcMzM1XDI3MlwyMjBcMzc3XDMyNVwyNTV+XDM3N1wzMjJcMjUye1wzNzdcMzIyXDI1MntcMzc3XDMyMlwyNDV1XDM3NyIKLSAgIlwzMjFcMjQ3cFwzNzdcMzE0XDI0M21cMzc3XDIyNXVMXDM3N1w0MFwzMlwyMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyFcMzJcMjBcMzc3XDMyN1wyNjdcMjE2XDM3N1wzMTBcMjM2Z1wzNzciCi0gICJcMzA2XDIzM2NcMzc3XDMwNFwyMzFhXDM3N1wzMDJcMjI3X1wzNzdcMjc3XDIyMVZcMzc3XDI3NVwyMTRMXDM3N1wyNzQiCi0gICJcMjEwRVwzNzdcMjczXDIwMj5cMzc3XDI2Nnw3XDM3N1wyNTFrXCJcMzc3XDIxNVNcMjRcMzc3N1wzMVwxMFwzNzdcMCIKLSAgIlwwXDBYXDBcMFwwIiIzXDBcMFwwXDI1XDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw1XDBcMFwwXDI1IiI3XDMxXDEwIgotICAiXDM3N1wzNjVcMzQ0XDMxNlwzNzdcMzUxXDMxNVwyNTRcMzc3XDM0N1wzMTNcMjQ2XDM3N1wzMzdcMjc0XDIyMlwzNzciCi0gICJcMzMwXDI2MFwyMDFcMzc3XDMyNlwyNTZcMTc3XDM3N1wzMjJcMjUzfVwzNzdcMzIyXDI1MntcMzc3XDMyMVwyNDVyXDM3NyIKLSAgIlwzMTVcMjQzbFwzNzdcMjI2d05cMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMCIKLSAgIlwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wzNDFcMzEzXDI1NVwzNzdcMzA3XDIzNWZcMzc3XDMwNFwyMzFhXDM3N1wzMDIiCi0gICJcMjI3X1wzNzdcMzAwXDIyM1lcMzc3XDI3NlwyMTdRXDM3N1wyNzVcMjE0TFwzNzdcMjc0XDIwNUNcMzc3XDI3Mn49XDM3NyIKLSAgIlwyNjN4MlwzNzdcMjQ3alwiXDM3N1wyMTNSXDI0XDM3NzdcMzFcMTBcMzc3XDBcMFwwWFwwXDBcMCIiM1wwXDBcMFwyNSIKLSAgIlwwXDBcMFw2XDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNVwwXDBcMFwyNSIiN1wzMVwxMFwzNzdcMzY0XDM0MVwzMTNcMzc3XDM1MCIKLSAgIlwzMTRcMjQ3XDM3N1wzNDVcMzEyXDI0NFwzNzdcMzM0XDI3MVwyMTdcMzc3XDMyNlwyNTZcMTc3XDM3N1wzMjNcMjUzIgotICAifFwzNzdcMzIyXDI1MntcMzc3XDMyMlwyNDV1XDM3N1wzMTdcMjQ1blwzNzdcMzEyXDI0MWtcMzc3XDIyNXVMXDM3N1w0MCIKLSAgIlwzMVwyMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1w0MFwzMVwxNyIKLSAgIlwzNzdcMzM2XDMwNlwyNDdcMzc3XDMwMlwyMzBhXDM3N1wzMDFcMjIyVlwzNzdcMjc3XDIyMFRcMzc3XDI3NVwyMTVOIgotICAiXDM3N1wyNzRcMjA3SVwzNzdcMjcyXDIwMlw3N1wzNzdcMjY1fTpcMzc3XDI2NXg2XDM3N1wyNTVyLFwzNzdcMjQ0ZlwzNSIKLSAgIlwzNzdcMjA3UFwyNFwzNzc3XDMxXDEwXDM3N1wwXDBcMFhcMFwwXDAiIjNcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwxIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwxXDBcMFwwXDVcMFwwXDBcMjUiIjdcMzFcMTBcMzc3XDM2NVwzNDRcMzE2XDM3N1wzNTFcMzE1XDI1NFwzNzdcMzQ3IgotICAiXDMxM1wyNDZcMzc3XDMzNVwyNzJcMjIwXDM3N1wzMjVcMjU1flwzNzdcMzIyXDI1M3lcMzc3XDMyMVwyNTByXDM3N1wzMTciCi0gICJcMjQ1blwzNzdcMzEyXDI0MWtcMzc3XDMxMFwyMzdoXDM3N1wzMDVcMjMyYlwzNzd1XFw4XDM3N1wwXDBcMFwzNzdcMCIKLSAgIlwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3dVs3XDM3N1wzMzVcMzA3XDI0N1wzNzdcMzAyXDIyMyIKLSAgIltcMzc3XDMwMVwyMjJWXDM3N1wyNzdcMjIwUlwzNzdcMjc2XDIxNk9cMzc3XDI3NFwyMTBLXDM3N1wyNzRcMjAzXDc3IgotICAiXDM3N1wyNjdcMTc3PFwzNzdcMjY2fDdcMzc3XDI2MHUvXDM3N1wyNDRoIVwzNzdcMjExUVwyNFwzNzc3XDMxXDEwXDM3NyIKLSAgIlwwXDBcMFhcMFwwXDAiIjNcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDVcMFwwXDBcMjUiIjdcMzFcMTAiCi0gICJcMzc3XDM2NVwzNDZcMzIwXDM3N1wzNTJcMzE3XDI1N1wzNzdcMzUxXDMxNlwyNTJcMzc3XDM0MVwyNzRcMjI0XDM3NyIKLSAgIlwzMzNcMjY0XDIwNlwzNzdcMzMyXDI2M1wyMDVcMzc3XDMzMlwyNjNcMjA1XDM3N1wzMjZcMjU2XDE3N1wzNzdcMzIyIgotICAiXDI1M3lcMzc3XDMyMFwyNTBzXDM3N1wzMTdcMjQ1blwzNzdcMzE0XDI0M21cMzc3emA+XDM3NyFcMzJcMjBcMzc3XDAiCi0gICJcMFwwXDM3N1w0MFwzMlwyMVwzNzdcMjIyfmNcMzc3XDM0M1wzMTdcMjYzXDM3N1wzMjRcMjYzXDIxMFwzNzdcMzA2XDIzMyIKLSAgImNcMzc3XDMwMlwyMzBdXDM3N1wzMDFcMjI0WlwzNzdcMjc3XDIyMFRcMzc3XDI3NVwyMTRMXDM3N1wyNzNcMjA0RFwzNzciCi0gICJcMjY3XDE3NzxcMzc3XDI2Nno5XDM3N1wyNjF2MFwzNzdcMjQ0aCFcMzc3XDIxM1JcMjRcMzc3N1wzMVwxMFwzNzdcMCIKLSAgIlwwXDBYXDBcMFwwIiIzXDBcMFwwXDI1XDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw1XDBcMFwwXDI1IiI3XDMxXDEwIgotICAiXDM3N1wzNjRcMzQxXDMxM1wzNzdcMzUxXDMxNlwyNTJcMzc3XDM0NVwzMTFcMjQ0XDM3N1wzMzJcMjcwXDIxM1wzNzciCi0gICJcMzIyXDI1NHdcMzc3XDMyMlwyNDV1XDM3N1wzMjFcMjUwclwzNzdcMzE1XDI0NG5cMzc3XDMxMlwyNDFrXDM3N1wzMTAiCi0gICJcMjM2Z1wzNzdcMzA0XDIzMWFcMzc3XDMwMlwyMzBdXDM3N1wyNDV9TVwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDAiCi0gICJcMFwzNzdcMzMxXDI3N1wyMzZcMzc3XDMxMlwyNDNxXDM3N1wzMDRcMjMxYVwzNzdcMzAyXDIzMGFcMzc3XDMwMlwyMjMiCi0gICJbXDM3N1wyNzdcMjIxVlwzNzdcMjc3XDIyMFRcMzc3XDI3NVwyMTRMXDM3N1wyNzRcMjEwRVwzNzdcMjcyXDIwMlw3NyIKLSAgIlwzNzdcMjY3fThcMzc3XDI2M3gyXDM3N1wyNTVvJlwzNzdcMjExUVwyNFwzNzc3XDMxXDEwXDM3N1wwXDBcMFhcMFwwIgotICAiXDAiIjNcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDVcMFwwXDBcMjUiIjdcMzFcMTBcMzc3XDM2NSIKLSAgIlwzNDRcMzE2XDM3N1wzNTFcMzE2XDI1MlwzNzdcMzQ3XDMxM1wyNDZcMzc3XDMzNFwyNzFcMjE3XDM3N1wzMjZcMjU2IgotICAiXDE3N1wzNzdcMzIzXDI1M3xcMzc3XDMyMlwyNTJ7XDM3N1wzMjJcMjQ1dVwzNzdcMzIwXDI0Nm9cMzc3XDMxMlwyNDEiCi0gICJrXDM3N1wzMTBcMjM2Z1wzNzdcMjcyXDIyM15cMzc3XDIyNXRKXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwzMDVcMjYzXDIzM1wzNzdcMzA0XDIzMWFcMzc3XDMwNFwyMzFhXDM3N1wzMDJcMjMwYVwzNzdcMzAxXDIyMlZcMzc3IgotICAiXDI3N1wyMjFWXDM3N1wyNzZcMjE2T1wzNzdcMjc0XDIwN0lcMzc3XDI3NFwyMDNcNzdcMzc3XDI2N346XDM3N1wyNjUiCi0gICJ5OFwzNzdcMjU1di5cMzc3XDI1N3IqXDM3N1wyMDdQXDI0XDM3NzdcMzFcMTBcMzc3XDBcMFwwWFwwXDBcMCIiM1wwXDAiCi0gICJcMFwyNVwwXDBcMFw2XDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwXDBcNVwwXDBcMFwyNSIiN1wzMVwxMFwzNzdcMzY1XDM0NlwzMjBcMzc3IgotICAiXDM1MlwzMTdcMjU3XDM3N1wzNTFcMzE2XDI1MlwzNzdcMzQxXDI3NVwyMjZcMzc3XDMzM1wyNjRcMjA2XDM3N1wzMzAiCi0gICJcMjYwXDIwMVwzNzdcMzI2XDI1NlwxNzdcMzc3XDMyMlwyNTR7XDM3N1wzMjBcMjUwc1wzNzdcMzE1XDI0M2xcMzc3XDMxMiIKLSAgIlwyNDBpXDM3N1wyNjVcMjE3XVwzNzdcMjAzZkFcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDIxN3VUIgotICAiXDM3N1wzMzZcMzA2XDI0N1wzNzdcMzA0XDIzMWFcMzc3XDMwMlwyMzBdXDM3N1wzMDFcMjIyVlwzNzdcMjc3XDIyMFQiCi0gICJcMzc3XDI3NVwyMTVOXDM3N1wyNzRcMjExR1wzNzdcMjc0XDIwM1w3N1wzNzdcMjY3fjpcMzc3XDI2NXk4XDM3N1wyNTciCi0gICJzLFwzNzdcMjc1XDIwMkJcMzc3XDIwN1BcMjRcMzc3N1wzMVwxMFwzNzdcMFwwXDBYXDBcMFwwIiIzXDBcMFwwXDI1XDAiCi0gICJcMFwwXDZcMFwwXDBcMVwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMVwwXDBcMFw1XDBcMFwwXDI1IiI3XDMxXDEwXDM3N1wzNjRcMzQxXDMxM1wzNzdcMzQ3IgotICAiXDMxNFwyNTBcMzc3XDM0NlwzMDZcMjQxXDM3N1wzMzNcMjcwXDIxNlwzNzdcMzIzXDI1M3xcMzc3XDMyMlwyNTN5XDM3NyIKLSAgIlwzMjFcMjQ3dlwzNzdcMzIwXDI0Nm9cMzc3XDMxNFwyNDJrXDM3N1wzMTJcMjM3Z1wzNzdcMzA1XDIzMmJcMzc3XDI2NCIKLSAgIlwyMTVZXDM3N2xUM1wzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdtVTZcMzc3XDMzNlwzMDZcMjQ3XDM3NyIKLSAgIlwzMDRcMjMxYVwzNzdcMzAyXDIzMGFcMzc3XDMwMlwyMjNbXDM3N1wzMDFcMjIyVlwzNzdcMjc3XDIyMFJcMzc3XDI3NCIKLSAgIlwyMTBLXDM3N1wyNzNcMjA0RFwzNzdcMjcyfj1cMzc3XDI2NHs3XDM3N1wyNjF2MFwzNzdcMzAwXDIxNVFcMzc3XDIxMSIKLSAgIk5cMjRcMzc3N1wzMVwxMFwzNzdcMFwwXDBYXDBcMFwwIiIzXDBcMFwwXDI1XDBcMFwwXDZcMFwwXDBcMVwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMVwwXDAiCi0gICJcMFw1XDBcMFwwXDI1IiI3XDMxXDEwXDM3N1wzNjRcMzQwXDMxMVwzNzdcMzQ3XDMxM1wyNDZcMzc3XDM0NlwzMDZcMjQxIgotICAiXDM3N1wzMzRcMjYzXDIwN1wzNzdcMzIxXDI1M3ZcMzc3XDMyMVwyNDVyXDM3N1wzMjBcMjQ2b1wzNzdcMzE1XDI0M2wiCi0gICJcMzc3XDMxMFwyMzdoXDM3N1wzMDRcMjMxYVwzNzdcMjYyXDIxM1dcMzc3XDI1NFwyMDNOXDM3N1w3NyIiMFwzNFwzNzciCi0gICJcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdAMlwzNlwzNzdcMzIyXDI3NVwyMzdcMzc3XDMxMFwyNDJxXDM3NyIKLSAgIlwzMDJcMjIzW1wzNzdcMjc3XDIyMVZcMzc3XDI3N1wyMjBUXDM3N1wyNzVcMjE1TlwzNzdcMjc0XDIxMUdcMzc3XDI3MCIKLSAgIlwyMDA9XDM3N1wyNjV8OFwzNzdcMjY1eDZcMzc3XDI1N3QuXDM3N1wzMDBcMjE1UVwzNzdcMjA2TFwyM1wzNzc3XDMxIgotICAiXDEwXDM3N1wwXDBcMFhcMFwwXDAiIjNcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDVcMFwwXDBcMjUiCi0gICI3XDMxXDEwXDM3N1wzNjRcMzQxXDMxM1wzNzdcMzQ2XDMxMlwyNDVcMzc3XDM0NlwzMDZcMjQxXDM3N1wzMzNcMjY0XDIwNiIKLSAgIlwzNzdcMzIxXDI1M3ZcMzc3XDMyMFwyNDdxXDM3N1wzMTdcMjQ1blwzNzdcMzEyXDI0MWtcMzc3XDMxMFwyMzZnXDM3NyIKLSAgIlwzMDRcMjMxYVwzNzdcMjYyXDIwN1NcMzc3XDIzMnVFXDM3N1w3NyIiMFwzNFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3NyIKLSAgIlwwXDBcMFwzNzdcNzciIjBcMzRcMzc3XDIxMWg+XDM3N1wzMzJcMzAxXDI0MFwzNzdcMjc1XDIxNlBcMzc3XDI3NVwyMTUiCi0gICJOXDM3N1wyNzRcMjEwS1wzNzdcMjczXDIwNERcMzc3XDI3MlwyMDJcNzdcMzc3XDI2N346XDM3N1wyNjR7N1wzNzdcMjYxIgotICAidzJcMzc3XDI1NXEqXDM3N1wzMTJcMjM1Y1wzNzdcMjA3TVwyNFwzNzc3XDMxXDEwXDM3N1wwXDBcMFhcMFwwXDAiIjMiCi0gICJcMFwwXDBcMjVcMFwwXDBcNlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDVcMFwwXDBcMjUiIjdcMzFcMTBcMzc3XDM2NFwzNDFcMzEzIgotICAiXDM3N1wzNTBcMzE0XDI0N1wzNzdcMzQ0XDMxMFwyNDNcMzc3XDMzMlwyNzBcMjE1XDM3N1wzMjNcMjUzfFwzNzdcMzIyIgotICAiXDI0NndcMzc3XDMyMFwyNTN1XDM3N1wzMjBcMjQ2b1wzNzdcMzEzXDI0MmxcMzc3XDMxMFwyMzdoXDM3N1wyNjdcMjE3IgotICAiW1wzNzdcMTc3Y1w3N1wzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N1wwXDBcMFwzNzdcMFwwXDBcMzc3XDBcMFwwXDM3N3IiCi0gICJZOFwzNzdcMzIzXDI2M1wyMTFcMzc3XDMwMlwyMzBhXDM3N1wzMDFcMjIyVlwzNzdcMjc3XDIyMVZcMzc3XDI3NlwyMTciCi0gICJRXDM3N1wyNzRcMjEwS1wzNzdcMjc0XDIwNEFcMzc3XDI2NX06XDM3N1wyNjV8OFwzNzdcMjYxdjBcMzc3XDMxNFwyMzciCi0gICJpXDM3N1wyMTFRXDI0XDM3NzdcMzFcMTBcMzc3XDBcMFwwWFwwXDBcMCIiM1wwXDBcMFwyNVwwXDBcMFw2XDBcMFwwXDEiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDFcMFwwXDBcNVwwXDBcMFwyNSIiN1wzMVwxMFwzNzdcMzY1XDM0NFwzMTZcMzc3XDM1MFwzMTVcMjUxXDM3N1wzNDUiCi0gICJcMzExXDI0NFwzNzdcMzM0XDI3MVwyMTdcMzc3XDMyNVwyNTV+XDM3N1wzMjJcMjUye1wzNzdcMzIyXDI1M3lcMzc3XDMyMSIKLSAgIlwyNDdwXDM3N1wzMTdcMjQ1blwzNzdcMzEyXDI0MWtcMzc3XDMxMFwyMzdoXDM3N1wzMDVcMjMyYlwzNzdcMzA1XDIzMiIKLSAgImJcMzc3XDMwNVwyMzJiXDM3N1wzMDVcMjMyYlwzNzdcMzA1XDIzMmJcMzc3XDMwNVwyMzJiXDM3N1wzMDVcMjMyYlwzNzciCi0gICJcMzA1XDIzMmJcMzc3XDMwNFwyMzFhXDM3N1wzMDJcMjIzW1wzNzdcMjc3XDIyMVZcMzc3XDI3N1wyMjBSXDM3N1wyNzQiCi0gICJcMjA3SVwzNzdcMjc0XDIwM1w3N1wzNzdcMjY3fjpcMzc3XDI3MFwxNzc7XDM3N1wyNzRcMjAyPVwzNzdcMzE2XDI0MSIKLSAgImtcMzc3XDIxMU5cMjRcMzc3N1wzMVwxMFwzNzdcMFwwXDBYXDBcMFwwIiIzXDBcMFwwXDI1XDBcMFwwXDZcMFwwXDBcMSIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMVwwXDBcMFw1XDBcMFwwXDI1IiI3XDMxXDEwXDM3N1wzNjRcMzQxXDMxM1wzNzdcMzUwXDMxM1wyNDVcMzc3XDM0NSIKLSAgIlwzMTFcMjQ0XDM3N1wzMzJcMjcwXDIxM1wzNzdcMzIyXDI1MntcMzc3XDMyMlwyNDV1XDM3N1wzMjFcMjQ3cFwzNzdcMzE1IgotICAiXDI0NG5cMzc3XDMxMlwyMzdnXDM3N1wzMDdcMjM0ZFwzNzdcMzA0XDIzMWFcMzc3XDMwMVwyMjdcXFwzNzdcMzAwXDIyMyIKLSAgIllcMzc3XDMwMFwyMjJXXDM3N1wzMDBcMjIyV1wzNzdcMzAwXDIyMldcMzc3XDMwMFwyMjJXXDM3N1wzMDBcMjIyV1wzNzciCi0gICJcMzAwXDIyMldcMzc3XDI3N1wyMjFWXDM3N1wyNzdcMjIwUlwzNzdcMjc2XDIxNk9cMzc3XDI3NFwyMTFHXDM3N1wyNzMiCi0gICJcMjA0RFwzNzdcMjcxXDIwMT5cMzc3XDI2NXw4XDM3N1wyNzBcMTc3O1wzNzdcMjc0XDIwNUVcMzc3XDMxNVwyNDBqXDM3NyIKLSAgIlwyMDdQXDI0XDM3NzdcMzFcMTBcMzc3XDBcMFwwWFwwXDBcMCIiM1wwXDBcMFwyNVwwXDBcMFw2XDBcMFwwXDFcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDEiCi0gICJcMFwwXDBcNVwwXDBcMFwyNSIiN1wzMVwxMFwzNzdcMzY0XDM0MFwzMTFcMzc3XDM0NlwzMTFcMjQzXDM3N1wzNDVcMzA1IgotICAiXDI0MFwzNzdcMzMxXDI3MFwyMTBcMzc3XDMyM1wyNDZ2XDM3N1wzMjBcMjQ3cVwzNzdcMzE3XDI0NW5cMzc3XDMxM1wyNDIiCi0gICJsXDM3N1wzMTJcMjM3Z1wzNzdcMzA2XDIzM2NcMzc3XDMwNVwyMzJiXDM3N1wzMDRcMjMxYVwzNzdcMzAyXDIzMF1cMzc3IgotICAiXDMwMlwyMzBhXDM3N1wzMDJcMjMwYVwzNzdcMzA0XDIzMWFcMzc3XDMwNFwyMzFhXDM3N1wzMDVcMjMyYlwzNzdcMzA1IgotICAiXDIzMmJcMzc3XDMwNFwyMzFhXDM3N1wzMDFcMjI0WlwzNzdcMzAwXDIyM1lcMzc3XDI3N1wyMjBUXDM3N1wyNzRcMjE0IgotICAiTVwzNzdcMjc0XDIxMUdcMzc3XDI3NlwyMTJNXDM3N1wzMDRcMjMxYVwzNzdcMjc2XDIxM09cMzc3XDMwN1wyMzVgXDM3NyIKLSAgIlwyMTFOXDI0XDM3NzdcMzFcMTBcMzc3XDBcMFwwV1wwXDBcMCIiM1wwXDBcMFwyNVwwXDBcMFw1XDBcMFwwXDFcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDEiCi0gICJcMFwwXDBcNVwwXDBcMFwyNCIiN1wzMVwxMFwzNzdcMzY0XDM0MFwzMTFcMzc3XDM0NlwzMTBcMjQxXDM3N1wzNDFcMzAzIgotICAiXDIzNFwzNzdcMzMyXDI2M1wyMDVcMzc3XDMyMVwyNDVyXDM3N1wzMTdcMjQ1blwzNzdcMzE1XDI0M2xcMzc3XDMxMFwyMzciCi0gICJoXDM3N1wzMDVcMjMzZFwzNzdcMzAyXDIzMV9cMzc3XDMwMlwyMjNbXDM3N1wzMDBcMjIyV1wzNzdcMjc3XDIyMVZcMzc3IgotICAiXDI3N1wyMjFWXDM3N1wzMDBcMjIyV1wzNzdcMzAyXDIyM1tcMzc3XDMwMVwyMjdcXFwzNzdcMzA1XDIzMmJcMzc3XDMxMCIKLSAgIlwyMzZnXDM3N1wzMTVcMjQzbFwzNzdcMzE1XDI0M2xcMzc3XDMxNlwyNDFrXDM3N1wzMTZcMjQxa1wzNzdcMzIyXDI1MyIKLSAgInlcMzc3XDMyMlwyNTJ3XDM3N1wzMjFcMjQ1clwzNzdcMzI0XDI0N3NcMzc3XDI3N1wyMTJMXDM3N1wyNjFzMFwzNzdcMjA3IgotICAiTVwyNFwzNzc3XDMxXDEwXDM3N1wwXDBcMFRcMFwwXDAiIjBcMFwwXDBcMjRcMFwwXDBcNVwwXDBcMFwxXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMCIKLSAgIlwwXDVcMFwwXDBcMjIiIjNcMjdcN1wzMDFcMjYydS1cMzc3XDMwN1wyMzVgXDM3N1wzMDRcMjMyXVwzNzdcMjc1XDIxNCIKLSAgIkxcMzc3XDI3Mn49XDM3N1wyNzB+OVwzNzdcMjY2ejlcMzc3XDI2NXg2XDM3N1wyNjN1MlwzNzdcMjU3dy5cMzc3XDI1NSIKLSAgInIsXDM3N1wyNTR0K1wzNzdcMjUycilcMzc3XDI1MnIpXDM3N1wyNTJyKVwzNzdcMjU2cSlcMzc3XDI1NnEpXDM3N1wyNTYiCi0gICJxKVwzNzdcMjU2cSlcMzc3XDI1MnIpXDM3N1wyNTFtJlwzNzdcMjUybCNcMzc3XDI0NWlcIlwzNzdcMjQzZ1w0MFwzNzciCi0gICJcMjQyZVwzNVwzNzdcMjM2YVwzMVwzNzdcMjMzX1wzMFwzNzdcMjMxXVwyNlwzNzdcMjIyVlwyNVwzNzdYMFwxNVwzNzciCi0gICImXDIxXDVcMjY0XDBcMFwwS1wwXDBcMCpcMFwwXDBcMjFcMFwwXDBcNFwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDRcMFwwXDBcMTYiCi0gICIrXDIzXDZxMVwyNlw3XDMwNzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMCIKLSAgIlwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzciCi0gICI3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxIgotICAiXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwIgotICAiXDM3NzdcMzFcMTBcMzc3N1wzMVwxMFwzNzc3XDMxXDEwXDM3NzdcMzFcMTBcMzc3JlwyMVw1XDI2NFwxNFw1XDFlXDAiCi0gICJcMFwwO1wwXDBcMFw0MFwwXDBcMFwxNFwwXDBcMFwzXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMlwwXDBcMFwxMVwwXDBcMFwzMCIKLSAgIlwwXDBcMCxcMFwwXDBBXDBcMFwwT1wwXDBcMFVcMFwwXDBXXDBcMFwwWFwwXDBcMFhcMFwwXDBYXDBcMFwwWFwwXDBcMCIKLSAgIlhcMFwwXDBYXDBcMFwwWFwwXDBcMFhcMFwwXDBYXDBcMFwwWFwwXDBcMFhcMFwwXDBYXDBcMFwwWFwwXDBcMFhcMFwwIgotICAiXDBYXDBcMFwwWFwwXDBcMFhcMFwwXDBYXDBcMFwwWFwwXDBcMFhcMFwwXDBYXDBcMFwwWFwwXDBcMFdcMFwwXDBTXDAiCi0gICJcMFwwS1wwXDBcMDtcMFwwXDAnXDBcMFwwXDI0XDBcMFwwXDdcMFwwXDBcMlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDFcMFwwIgotICAiXDBcNFwwXDBcMFwxNVwwXDBcMFwzMFwwXDBcMCRcMFwwXDAsXDBcMFwwIiIwXDBcMFwwIiIzXDBcMFwwIiIzXDBcMFwwIgotICAiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDAiCi0gICJcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiMyIKLSAgIlwwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiM1wwXDBcMCIiMlwwXDBcMCIiMFwwXDBcMCIKLSAgIipcMFwwXDBcNDBcMFwwXDBcMjRcMFwwXDBcMTFcMFwwXDBcM1wwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwyXDBcMFwwXDRcMFwwXDBcMTFcMFwwXDBcMTZcMFwwXDBcMjJcMFwwXDBcMjRcMFwwXDBcMjVcMFwwXDBcMjVcMCIKLSAgIlwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjUiCi0gICJcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDAiCi0gICJcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjVcMFwwXDBcMjRcMCIKLSAgIlwwXDBcMjFcMFwwXDBcMTRcMFwwXDBcN1wwXDBcMFwzXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDJcMFwwXDBcNFwwXDBcMFw1XDBcMFwwXDVcMFwwXDBcNVwwXDBcMFw1XDBcMCIKLSAgIlwwXDVcMFwwXDBcNlwwXDBcMFw2XDBcMFwwXDZcMFwwXDBcNlwwXDBcMFw2XDBcMFwwXDZcMFwwXDBcNlwwXDBcMFw2IgotICAiXDBcMFwwXDZcMFwwXDBcNlwwXDBcMFw2XDBcMFwwXDZcMFwwXDBcNlwwXDBcMFw2XDBcMFwwXDZcMFwwXDBcNlwwXDAiCi0gICJcMFw2XDBcMFwwXDZcMFwwXDBcNlwwXDBcMFw1XDBcMFwwXDVcMFwwXDBcNVwwXDBcMFw0XDBcMFwwXDNcMFwwXDBcMiIKLSAgIlwwXDBcMFwxXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIgotICAiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDAiCi0gICJcMFwwXDBcMFwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMCIKLSAgIlwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxIgotICAiXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDAiCi0gICJcMFwxXDBcMFwwXDFcMFwwXDBcMVwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIKLSAgIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCJ9OwotCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdub21lL2xpYmdub21ldWkvbm8tcGl4YnVmLWNzb3VyY2UucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZXVpL25vLXBpeGJ1Zi1jc291cmNlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDc2NWJhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmdub21lL2xpYmdub21ldWkvbm8tcGl4YnVmLWNzb3VyY2UucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gbGliZ25vbWV1aS0yLjYuMS4xL2NvbmZpZ3VyZS5pbi5vbGQJMjAwNC0wOC0wNCAwMDoyODo0My41ODIyNjY2NjQgKzAxMDAKLSsrKyBsaWJnbm9tZXVpLTIuNi4xLjEvY29uZmlndXJlLmluCTIwMDQtMDgtMDQgMDA6Mjk6MjcuNDk2NTkwNjcyICswMTAwCi1AQCAtMjM1LDcgKzIzNSw3IEBACi0gCi0gZG5sIFRoaXMgaXMgaW5zdGFsbGVkIGZyb20gR1RLKyAyLjAncyBnZGstcGl4YnVmCi0gQUNfUEFUSF9QUk9HKEdES19QSVhCVUZfQ1NPVVJDRSwgZ2RrLXBpeGJ1Zi1jc291cmNlKQotLXRlc3QgLXogIiRHREtfUElYQlVGX0NTT1VSQ0UiICYmIEFDX01TR19FUlJPUihbCi0rdGVzdCAteiAiJEdES19QSVhCVUZfQ1NPVVJDRSIgJiYgQUNfTVNHX1dBUk4oWwotICoqKiBZb3UgbmVlZCB0aGUgZ2RrLXBpeGJ1Zi1jc291cmNlIHRvb2wgd2hpY2ggaXMgaW5zdGFsbGVkCi0gKioqIGZyb20gR1RLKyAyLjAncyBnZGstcGl4YnVmLgotICoqKgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ25vbWUvbGliZ25vbWV1aV8yLjI0LjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZXVpXzIuMjQuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDUyMTlkNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJnbm9tZS9saWJnbm9tZXVpXzIuMjQuNS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLURFU0NSSVBUSU9OID0gIkdOT01FIFVzZXIgSW50ZXJmYWNlIExpYnJhcnkiCi1MSUNFTlNFID0gIkxHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkcuTElCO21kNT01NWNhODE3Y2NiN2Q1YjViNjYzNTU2OTBlOWFiYzYwNSIKLQotU0VDVElPTiA9ICJ4MTEvZ25vbWUvbGlicyIKLURFUEVORFMgPSAibGliZ25vbWUgbGliZ25vbWVjYW52YXMgbGliYm9ub2JvdWkgbGliZ25vbWUta2V5cmluZyBpbnRsdG9vbC1uYXRpdmUgZ25vbWUtY29tbW9uLW5hdGl2ZSIKLQotaW5oZXJpdCBnbm9tZQotCi1GSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L2d0ay0yLjAvKi9maWxlc3lzdGVtcy9saWIqLnNvIFwKLSAgICAgICAgICAgICAgICAke2xpYmRpcn0vbGliZ2xhZGUvKi9saWIqLnNvIFwKLSAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L3BpeG1hcHMvZ25vbWUtYWJvdXQtbG9nby5wbmciCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9ndGstMi4wLyovZmlsZXN5c3RlbXMvKi5sYSAke2xpYmRpcn0vZ3RrLTIuMC8qL2ZpbGVzeXN0ZW1zLyouYSAke2xpYmRpcn0vbGliZ2xhZGUvKi8qLmxhIgotRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIke2xpYmRpcn0vbGliZ2xhZGUvKi8qLmEiCi0KLVNSQ19VUkkgKz0gIiBcCi0gICAgZmlsZTovLzAwMDEtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmctdG8tZml4LWJ1aWxkLS5wYXRjaCBcCi0gICAgZmlsZTovL2dub21lLXN0b2NrLXBpeGJ1ZnMuaCBcCi0gICAgZmlsZTovL25vLXBpeGJ1Zi1jc291cmNlLnBhdGNoIFwKLSIKLVNSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gImQ0YmI1MDZiMTkxNjAxNTMyMzkyOGZhYWI1YWE3MDhiIgotU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiYWUzNTJmMjQ5NTg4OWU2NTUyNGM5Nzk5MzJjOTA5ZjQ2MjlhNThlNjQyOTBmYjBjOTUzMzMzNzMyMjVkM2MwZiIKLUdOT01FX0NPTVBSRVNTX1RZUEU9ImJ6MiIKLQotRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1ndGstZG9jIgotCi1kb19jb25maWd1cmVfcHJlcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9nbm9tZS1zdG9jay1waXhidWZzLmggJHtTfS9saWJnbm9tZXVpL3BpeG1hcHMvZ25vbWUtc3RvY2stcGl4YnVmcy5oCi19Ci0KLUxERkxBR1MgKz0gIi1sbSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmd0a3N0eWx1cy9saWJndGtzdHlsdXNfMC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ3Rrc3R5bHVzL2xpYmd0a3N0eWx1c18wLjUuYmIKaW5kZXggM2NkNzkxMC4uYTdjOGE2ZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ3Rrc3R5bHVzL2xpYmd0a3N0eWx1c18wLjUuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliZ3Rrc3R5bHVzL2xpYmd0a3N0eWx1c18wLjUuYmIKQEAgLTUsNyArNSw5IEBACiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly90YXAuYztiZWdpbmxpbmU9MTtlbmRsaW5lPTIwO21kNT03MTc1NmVlYjE0NGU5ZWViMTc3YzY5YWE2NzJiMTYzNSIKIFBSID0gInI0IgogCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogU1JDX1VSSSA9ICJodHRwOi8vYnVydG9uaW5pLmNvbS90ZW1wLyR7QlB9LnRhci5neiBcCiAgICAgZmlsZTovL2d0a3N0eWx1cy5zaCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmd0b3AvbGliZ3RvcF8yLjMwLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJndG9wL2xpYmd0b3BfMi4zMC4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NDZkMTE4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmd0b3AvbGliZ3RvcF8yLjMwLjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1TVU1NQVJZID0gIkxpYkdUb3AyIgotTElDRU5TRSA9ICJHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9jb3B5cmlnaHQudHh0O21kNT1kYmM4MzliZjE1OGQxOWEyMGU2NjFkYjE0ZGI3YTU4YyIKLQotaW5oZXJpdCBnbm9tZWJhc2UgbGliX3BhY2thZ2UgZ3RrLWRvYyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0jIGRlcGVuZHMgb24gbGlieGF1Ci1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgotCi1TUkNfVVJJID0gIiR7R05PTUVfTUlSUk9SfS8ke0dOT01FQk59LyR7QGdub21lX3ZlcmRpcigiJHtQVn0iKX0vJHtHTk9NRUJOfS0ke1BWfS50YXIuJHtHTk9NRV9DT01QUkVTU19UWVBFfTtuYW1lPWFyY2hpdmUgXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1uZXRsb2FkLUluY2x1ZGUtbGliYy1uZXQtaGVhZGVycy11bmNvbmRpdGlvbmFsbHkucGF0Y2ggXAotICAgICAgICAgICAiCi1TUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJlZTI5YTllZjYwNjU5ZWJmNGIwNzVhYzI4MWY3MWNiMiIKLVNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjQ2M2JjYmU1NzM3YjFiOTNmMzM0NWVlMzRhYmY2MDFlOGViODY0ZjUwN2M0OWZmMTkyMWMyNzM3YWJhZmMxZTUiCi0KLURFUEVORFMgPSAiZ2xpYi0yLjAgaW50bHRvb2wtbmF0aXZlIGxpYnhhdSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmd0b3AvbGliZ3RvcF8yLjM4LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJndG9wL2xpYmd0b3BfMi4zOC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5NDkzNGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJndG9wL2xpYmd0b3BfMi4zOC4wLmJiCkBAIC0wLDAgKzEsMTMgQEAKK1NVTU1BUlkgPSAiTGliR1RvcDIiCitMSUNFTlNFID0gIkdQTHYyKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgorCitpbmhlcml0IGdub21lYmFzZSBsaWJfcGFja2FnZSBndGstZG9jIGRpc3Ryb19mZWF0dXJlc19jaGVjayBnb2JqZWN0LWludHJvc3BlY3Rpb24gZ2V0dGV4dAorCisjIGRlcGVuZHMgb24gbGlieGF1CitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJiYjBjZTdkZTZiMjg2OTRiNDA0MDVlZWRhYzhhMzFiNSIKK1NSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjRmNmMwZTYyYmI0MzhhYmZkMTZiNDU1OWNkMmVjYTAyNTFkZTE5ZTI5MWM4ODhjZGM0ZGM4OGU1ZmZlYmI2MTIiCisKK0RFUEVORFMgPSAiZ2xpYi0yLjAgbGlieGF1IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliaWRsL2xpYmlkbC1uYXRpdmVfMC44LjE0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliaWRsL2xpYmlkbC1uYXRpdmVfMC44LjE0LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjUyYzQ0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmlkbC9saWJpZGwtbmF0aXZlXzAuOC4xNC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVNFQ1RJT04gPSAibGlicyIKLXJlcXVpcmUgbGliaWRsXyR7UFZ9LmJiCi1pbmhlcml0IG5hdGl2ZQotCi1QUiA9ICJyMSIKLQotREVQRU5EUyA9ICJiaXNvbi1uYXRpdmUgZ2xpYi0yLjAtbmF0aXZlIGZsZXgtbmF0aXZlIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiYmI4ZTEwYTIxOGZhYzc5M2E1MmQ0MDRkMTRhZGVkY2IiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzVkMjRkOGMwOTY1NDYzNTNmYmM3Y2VkZjIwODM5MmQ1YTAyYWZlOWQ1NmViY2MxY2NjYjI1OGQ3YzRkMjIyMCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmlkbC9saWJpZGwuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliaWRsL2xpYmlkbC5pbmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhNWM4MTUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGliaWRsL2xpYmlkbC5pbmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1ERVNDUklQVElPTiA9ICJMaWJyYXJ5IGZvciBwYXJzaW5nIENPUkJBIElETCBmaWxlcyIKLUhPTUVQQUdFID0gImh0dHA6Ly9hbmRyZXd0di5vcmcvbGliSURMLyIKLVNFQ1RJT04gPSAieDExL2dub21lL2xpYnMiCi1MSUNFTlNFID0gIkxHUEx2MisiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi1TUkNfVVJJID0gImh0dHA6Ly9mdHAuZ25vbWUub3JnL3B1Yi9HTk9NRS9zb3VyY2VzL2xpYklETC8wLjgvbGliSURMLSR7UFZ9LnRhci5iejIiCi0KLVMgPSAiJHtXT1JLRElSfS9saWJJREwtJHtQVn0iCi0KLUZJTEVTXyR7UE59ID0gIiR7bGliZGlyfS8qLnNvLioiCi1GSUxFU18ke1BOfS1kZXYgKz0gIiAke2JpbmRpcn0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9saWJpZGwvbGliaWRsXzAuOC4xNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmlkbC9saWJpZGxfMC44LjE0LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmRmY2YyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYmlkbC9saWJpZGxfMC44LjE0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotcmVxdWlyZSBsaWJpZGwuaW5jCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU1Y2E4MTdjY2I3ZDViNWI2NjM1NTY5MGU5YWJjNjA1IgotCi1ERVBFTkRTID0gImdsaWItMi4wIGZsZXgtbmF0aXZlIGxpYmlkbC1uYXRpdmUiCi0KLVBSID0gInIxIgotCi1CSU5DT05GSUdfR0xPQiA9ICIqLWNvbmZpZy0yIgotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGJpbmNvbmZpZwotCi1TUkNfVVJJW21kNXN1bV0gPSAiYmI4ZTEwYTIxOGZhYzc5M2E1MmQ0MDRkMTRhZGVkY2IiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzVkMjRkOGMwOTY1NDYzNTNmYmM3Y2VkZjIwODM5MmQ1YTAyYWZlOWQ1NmViY2MxY2NjYjI1OGQ3YzRkMjIyMCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL2xpYnRpbWV6b25lbWFwL2xpYnRpbWV6b25lbWFwXzAuNC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGlidGltZXpvbmVtYXAvbGlidGltZXpvbmVtYXBfMC40LjUuYmIKaW5kZXggZDZhZWVkMy4uOTU3ZDdkMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGlidGltZXpvbmVtYXAvbGlidGltZXpvbmVtYXBfMC40LjUuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbGlidGltZXpvbmVtYXAvbGlidGltZXpvbmVtYXBfMC40LjUuYmIKQEAgLTE1LDcgKzE1LDkgQEAKIAogQiA9ICIke1N9IgogCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ29iamVjdC1pbnRyb3NwZWN0aW9uCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBhdXRvdG9vbHMgcGtnY29uZmlnIGdvYmplY3QtaW50cm9zcGVjdGlvbgorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKIAkoY2QgJHtTfTsgTk9DT05GSUdVUkU9InllcyIgLiAke1N9L2F1dG9nZW4uc2gpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9tZXRhY2l0eS9tZXRhY2l0eS8wMDAxLWRyb3AtemVuaXR5LWRldGVjdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5LzAwMDEtZHJvcC16ZW5pdHktZGV0ZWN0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0OTNlNTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9tZXRhY2l0eS9tZXRhY2l0eS8wMDAxLWRyb3AtemVuaXR5LWRldGVjdGlvbi5wYXRjaApAQCAtMCwwICsxLDMzIEBACitGcm9tIGVjMGU1MmI0OWM5YjY4Njk0MTNjOTU0NGMyZWQ0NDcxMGFiOTExNDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+CitEYXRlOiBTYXQsIDE0IEFwciAyMDE4IDE2OjE1OjU5ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIGRyb3AgemVuaXR5IGRldGVjdGlvbgorCitPRSBkb2VzIG5vdCBzdXBwb3J0IHplbml0eQorCitVcHN0cmVhbS1TdGF0dXM6IGluYXBwcm9wcmlhdGUgW09FIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+CistLS0KKyBjb25maWd1cmUuYWMgfCA1IC0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IDVmOWU3ZTkuLjgwYjMyYzcgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTM1OSwxMSArMzU5LDYgQEAgZmkKKyAKKyBBTV9DT05ESVRJT05BTChIQVZFX1NNLCB0ZXN0ICIkZm91bmRfc20iID0gInllcyIpIAorIAorLUFDX1BBVEhfUFJPRyhaRU5JVFksIHplbml0eSwgbm8pCistaWYgdGVzdCB4IiRaRU5JVFkiID0geG5vOyB0aGVuCistICBBQ19NU0dfRVJST1IoW3plbml0eSBub3QgZm91bmQgaW4geW91ciBwYXRoIC0gbmVlZGVkIGZvciBkaWFsb2dzXSkKKy1maQorLQorIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIGRubCBDaGVjayBmb3IgVnVsa2FuIHN1cHBvcnQKKyBkbmwgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy0tIAorMS44LjMuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9tZXRhY2l0eS9tZXRhY2l0eS8wMDAxLXVpLURlZmluZS1fR05VX1NPVVJDRS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5LzAwMDEtdWktRGVmaW5lLV9HTlVfU09VUkNFLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MzlkNzU2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5LzAwMDEtdWktRGVmaW5lLV9HTlVfU09VUkNFLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotRnJvbSBlN2ZkMDcyZjBkZjk2OGYzNDI4NzhiNzcwOThlOTdmZjA3ZWQyOGQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMTQgSnVsIDIwMTcgMTA6MjY6MzEgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gdWk6IERlZmluZSBfR05VX1NPVVJDRQotCi1pdCBiZWNvbWVzIHBvcnRhYmxlIGFjcm9zcyBtdXNsIGFuZCBnbGliYwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gc3JjL3VpL3RoZW1lLmMgfCAxICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBhL3NyYy91aS90aGVtZS5jIGIvc3JjL3VpL3RoZW1lLmMKLWluZGV4IDg0YjU3YTAuLmM3ZWFmYzggMTAwNjQ0Ci0tLS0gYS9zcmMvdWkvdGhlbWUuYwotKysrIGIvc3JjL3VpL3RoZW1lLmMKLUBAIC02MCw2ICs2MCw3IEBACi0gI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0gI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNkZWZpbmUgX0dOVV9TT1VSQ0UKLSAjZGVmaW5lIF9fVVNFX1hPUEVOCi0gI2luY2x1ZGUgPG1hdGguaD4KLSAKLS0tIAotMi4xMy4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5L3JlbW92ZS15ZWxwLWhlbHAtcnVsZXMtdmFyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbWV0YWNpdHkvbWV0YWNpdHkvcmVtb3ZlLXllbHAtaGVscC1ydWxlcy12YXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5NzBlOWEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbWV0YWNpdHkvbWV0YWNpdHkvcmVtb3ZlLXllbHAtaGVscC1ydWxlcy12YXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1SZW1vdmUgdW51c2VkIHZhcmlhYmxlIChZRUxQX0hFTFBfUlVMRVMpCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotU2lnbmVkLW9mZi1ieTogQ29uc3RhbnRpbiBNdXNjYSA8Y29uc3RhbnRpbngubXVzY2FAaW50ZWwuY29tPgotCi1JbmRleDogbWV0YWNpdHktMi4zNC4xMy9kb2MvY3JlYXRpbmdfdGhlbWVzL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbWV0YWNpdHktMi4zNC4xMy5vcmlnL2RvYy9jcmVhdGluZ190aGVtZXMvTWFrZWZpbGUuYW0KLSsrKyBtZXRhY2l0eS0yLjM0LjEzL2RvYy9jcmVhdGluZ190aGVtZXMvTWFrZWZpbGUuYW0KLUBAIC0xLDYgKzEsNSBAQAotICMjIyBUaGlzIHBhcnQgb2YgTWFrZWZpbGUuYW0gY2FuIGJlIGN1c3RvbWl6ZWQgYnkgeW91LgotIAotLUBZRUxQX0hFTFBfUlVMRVNACi0gCi0gIyBUaGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IGluIC91c3Ivc2hhcmUvZ25vbWUvaGVscC8sIAotICMgYW5kIHRoZSBuYW1lIG9mIHRoZSBtYWluIC54bWwgZmlsZToKLUluZGV4OiBtZXRhY2l0eS0yLjM0LjEzL2RvYy9jcmVhdGluZ190aGVtZXMvTWFrZWZpbGUuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBtZXRhY2l0eS0yLjM0LjEzLm9yaWcvZG9jL2NyZWF0aW5nX3RoZW1lcy9NYWtlZmlsZS5pbgotKysrIG1ldGFjaXR5LTIuMzQuMTMvZG9jL2NyZWF0aW5nX3RoZW1lcy9NYWtlZmlsZS5pbgotQEAgLTQ1NSw3ICs0NTUsNiBAQCB1bmluc3RhbGwtYW06Ci0gCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0gCi0gCi0tQFlFTFBfSEVMUF9SVUxFU0AKLSAKLSAjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgotICMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbWV0YWNpdHkvbWV0YWNpdHlfMi4zNC4xMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5XzIuMzQuMTMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3MGRlNzAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbWV0YWNpdHkvbWV0YWNpdHlfMi4zNC4xMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLVNFQ1RJT04gPSAieDExL3dtIgotU1VNTUFSWSA9ICJNZXRhY2l0eSBpcyB0aGUgYm9yaW5nIHdpbmRvdyBtYW5hZ2VyIGZvciB0aGUgYWR1bHQgaW4geW91IgotTElDRU5TRSA9ICJHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvaW5jbHVkZS9tYWluLmg7ZW5kbGluZT0yNDttZDU9YzIyNDJkZjU1MmM4ODAyODAzMTU5ODliYWI2MjZiOTAiCi0KLURFUEVORFMgPSAiZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyBzdGFydHVwLW5vdGlmaWNhdGlvbiBndGsrIGdjb25mIGdkay1waXhidWYtbmF0aXZlIGxpYmNhbmJlcnJhIGdub21lLWRvYy11dGlscyBsaWJndG9wIGludGx0b29sLW5hdGl2ZSIKLVBSID0gInIxIgotCi1pbmhlcml0IGdub21lYmFzZSB1cGRhdGUtYWx0ZXJuYXRpdmVzIGRpc3Ryb19mZWF0dXJlc19jaGVjawotIyBkZXBlbmRzIG9uIHN0YXJ0dXAtbm90aWZpY2F0aW9uIHdoaWNoIGRlcGVuZHMgb24gdmlydHVhbC9saWJ4MTEKLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCi0KLUdOT01FX0NPTVBSRVNTX1RZUEUgPSAieHoiCi0KLVNSQ19VUkkgPSAiJHtHTk9NRV9NSVJST1J9LyR7R05PTUVCTn0vJHtAZ25vbWVfdmVyZGlyKCIke1BWfSIpfS8ke0dOT01FQk59LSR7UFZ9LnRhci4ke0dOT01FX0NPTVBSRVNTX1RZUEV9O25hbWU9YXJjaGl2ZSBcCi0gICAgICAgICAgIGZpbGU6Ly9yZW1vdmUteWVscC1oZWxwLXJ1bGVzLXZhci5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLXVpLURlZmluZS1fR05VX1NPVVJDRS5wYXRjaCBcCi0gICAgICAgICAgICIKLVNSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gIjZkODliNzE2NzJkNGZhNDlmYzg3ZjgzZDYxMGQwZWY2IgotU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiOGNmNGRiZjBkYTBhNmYzNjM1N2NlN2RiN2Y4MjllYzY4NTkwOGE3NzkyNDUzYzY2MmZiODE4NDU3MmI5MTA3NSIKLQotQUxURVJOQVRJVkVfJHtQTn0gPSAieC13aW5kb3ctbWFuYWdlciIKLUFMVEVSTkFUSVZFX1RBUkdFVFt4LXdpbmRvdy1tYW5hZ2VyXSA9ICIke2JpbmRpcn0vbWV0YWNpdHkiCi1BTFRFUk5BVElWRV9QUklPUklUWSA9ICIxMCIKLQotRVhUUkFfT0VDT05GICs9ICItLWRpc2FibGUteGluZXJhbWEiCi0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgewotICAgIHNlZCAtaSAtZSAnczokWkVOSVRZOiROT1pFTklUWTpnJyAtZSAnczotV2Vycm9yOjpnJyAke1N9L2NvbmZpZ3VyZS5pbgotfQotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS90aGVtZXMgJHtkYXRhZGlyfS9nbm9tZS1jb250cm9sLWNlbnRlciAke2RhdGFkaXJ9L2dub21lIgotUkRFUEVORFNfJHtQTn0gKz0gImdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMiCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5XzMuMzguMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL21ldGFjaXR5L21ldGFjaXR5XzMuMzguMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGZjOTE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbWV0YWNpdHkvbWV0YWNpdHlfMy4zOC4wLmJiCkBAIC0wLDAgKzEsMzQgQEAKK1NFQ1RJT04gPSAieDExL3dtIgorU1VNTUFSWSA9ICJNZXRhY2l0eSBpcyB0aGUgYm9yaW5nIHdpbmRvdyBtYW5hZ2VyIGZvciB0aGUgYWR1bHQgaW4geW91IgorTElDRU5TRSA9ICJHUEx2MisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iNGNjZTUzNTYwYjhlNjE5ZmZhN2M4MzBmYjg3NjFhYSBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvaW5jbHVkZS9tYWluLmg7ZW5kbGluZT0yNDttZDU9NzIxNDhlZGUwN2E2ZGFkZDAxZGU2YTg4MmQyMGE5YWQiCisKK0RFUEVORFMgPSAiZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyBzdGFydHVwLW5vdGlmaWNhdGlvbiBcCisgICAgICAgICAgIGdub21lLWRvYy11dGlscyBnZGstcGl4YnVmLW5hdGl2ZSBcCisgICAgICAgICAgIGd0ayszIGdsaWItMi4wIGxpYmNhbmJlcnJhIGxpYmd0b3AgaW50bHRvb2wtbmF0aXZlIgorCitpbmhlcml0IGF1dG90b29scyBnZXR0ZXh0IGdub21lYmFzZSBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKyMgZGVwZW5kcyBvbiBzdGFydHVwLW5vdGlmaWNhdGlvbiB3aGljaCBkZXBlbmRzIG9uIHZpcnR1YWwvbGlieDExCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vR05PTUUvbWV0YWNpdHkuZ2l0O2JyYW5jaD1tYXN0ZXIgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1kcm9wLXplbml0eS1kZXRlY3Rpb24ucGF0Y2ggXAorIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorU1JDUkVWID0gImMwZDRiMmZjMGZjZDZmMmQzYzM3ZGE5MzU5MjNmOWU5ZWQ1ZWI5OWYiCisKK0VYVFJBX09FQ09ORiArPSAiLS1kaXNhYmxlLXhpbmVyYW1hIgorCitkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKKyAgICBjZCAke1N9CisgICAgYWNsb2NhbCAtLWluc3RhbGwgfHwgZXhpdCAxCisgICAgYXV0b3JlY29uZiAtLXZlcmJvc2UgLS1mb3JjZSAtLWluc3RhbGwgLVduby1wb3J0YWJpbGl0eSB8fCBleGl0IDEKKyAgICBjZCAtCisKK30KKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vdGhlbWVzICR7ZGF0YWRpcn0vZ25vbWUtY29udHJvbC1jZW50ZXIgJHtkYXRhZGlyfS9nbm9tZSIKK1JERVBFTkRTXyR7UE59ICs9ICJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9uYXV0aWx1cy9uYXV0aWx1cy9uby10cnktcnVuLXN0cmZ0aW1lLmRpZmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9uYXV0aWx1cy9uYXV0aWx1cy9uby10cnktcnVuLXN0cmZ0aW1lLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjZDI5MzQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbmF1dGlsdXMvbmF1dGlsdXMvbm8tdHJ5LXJ1bi1zdHJmdGltZS5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotLS0tIC90bXAvY29uZmlndXJlLmluCTIwMDktMDQtMTMgMTE6MjY6NDMuMDAwMDAwMDAwICswMjAwCi0rKysgbmF1dGlsdXMtMi4yNi4xL2NvbmZpZ3VyZS5pbgkyMDA5LTA0LTEzIDExOjI4OjM3LjAwMDAwMDAwMCArMDIwMAotQEAgLTM3NSwyNSArMzc1LDYgQEAKLSAKLSBkbmwgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gCi0tZG5sIHN0cmZ0aW1lIGNoZWNrcwotLQotLUFDX1RSWV9SVU4oWyNpbmNsdWRlIDx0aW1lLmg+Ci0tICAgICAgICAgICAgICAgIGludCBtYWluICgpCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICBjaGFyIGJ1ZlsxMDBdOwotLSAgICAgICAgICAgICAgICAgIHN0cnVjdCB0bSB0bSA9IHswfTsKLS0gICAgICAgICAgICAgICAgICB0bS50bV95ZWFyID0gOTk7Ci0tICAgICAgICAgICAgICAgICAgaWYgKHN0cmZ0aW1lKGJ1ZiwgMTAwLCAiJUVZIiwgJnRtKSA9PSA0ICYmCi0tCQkgICAgICBzdHJjbXAgKGJ1ZiwgIjE5OTkiKT09MCkKLS0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotLSAgICAgICAgICAgICAgICAgIHJldHVybiAxOwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgXSwKLS0JICAgIEFDX0RFRklORShIQVZFX1NUUkZUSU1FX0VYVEVOU0lPTiwgMSwgW0RlZmluZSBpZiBzdHJmdGltZSBzdXBwb3J0cyAlRSBhbmQgJU8gbW9kaWZpZXJzLl0pCi0tICAgICAgICAgICAgKQotLQotLWRubCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0KLSAjCi0gIyBDaGVja3MgZm9yIFhmdC9YUmVuZGVyCi0gIwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbmF1dGlsdXMvbmF1dGlsdXMzL25vLXRyeS1ydW4tc3RyZnRpbWUuZGlmZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL25hdXRpbHVzL25hdXRpbHVzMy9uby10cnktcnVuLXN0cmZ0aW1lLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2ZDJlMTUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbmF1dGlsdXMvbmF1dGlsdXMzL25vLXRyeS1ydW4tc3RyZnRpbWUuZGlmZgorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLUZyb20gZGM5YzhjZjI2NzZjOGM5MWVhMGFlMjUwY2ZlZGY4NjMzNTJmM2NjZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+Ci1EYXRlOiBGcmksIDI0IEp1biAyMDExIDIwOjI0OjA4ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGhhY2sgb3V0IGNoZWNrIHRoYXQgdHJpZXMgdG8gcnVuIGdlbmVyYXRlZCBiaW5hcmllcwotCi1TaWduZWQtb2ZmLWJ5OiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgotLS0tCi0gY29uZmlndXJlLmluIHwgICAxNyArLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgotaW5kZXggYzNhYTM3MS4uMWQzZWNkYyAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5pbgotKysrIGIvY29uZmlndXJlLmluCi1AQCAtMjUxLDIyICsyNTEsNyBAQCBBQ19TVUJTVChXQVJOSU5HX0NGTEFHUykKLSAKLSBkbmwgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gCi0tZG5sIHN0cmZ0aW1lIGNoZWNrcwotLQotLUFDX1RSWV9SVU4oWyNpbmNsdWRlIDx0aW1lLmg+Ci0tICAgICAgICAgICAgICAgIGludCBtYWluICgpCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICBjaGFyIGJ1ZlsxMDBdOwotLSAgICAgICAgICAgICAgICAgIHN0cnVjdCB0bSB0bSA9IHswfTsKLS0gICAgICAgICAgICAgICAgICB0bS50bV95ZWFyID0gOTk7Ci0tICAgICAgICAgICAgICAgICAgaWYgKHN0cmZ0aW1lKGJ1ZiwgMTAwLCAiJUVZIiwgJnRtKSA9PSA0ICYmCi0tCQkgICAgICBzdHJjbXAgKGJ1ZiwgIjE5OTkiKT09MCkKLS0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotLSAgICAgICAgICAgICAgICAgIHJldHVybiAxOwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgXSwKLS0JICAgIEFDX0RFRklORShIQVZFX1NUUkZUSU1FX0VYVEVOU0lPTiwgMSwgW0RlZmluZSBpZiBzdHJmdGltZSBzdXBwb3J0cyAlRSBhbmQgJU8gbW9kaWZpZXJzLl0pCi0tICAgICAgICAgICAgKQotK0FDX0RFRklORShIQVZFX1NUUkZUSU1FX0VYVEVOU0lPTiwgMSwgW0RlZmluZSBpZiBzdHJmdGltZSBzdXBwb3J0cyAlRSBhbmQgJU8gbW9kaWZpZXJzLl0pCi0gCi0gZG5sID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gCQotLS0gCi0xLjYuNi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL25hdXRpbHVzL25hdXRpbHVzXzMuMTguNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL25hdXRpbHVzL25hdXRpbHVzXzMuMTguNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZmRiZjZhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvbmF1dGlsdXMvbmF1dGlsdXNfMy4xOC41LmJiCkBAIC0wLDAgKzEsMjkgQEAKK1NVTU1BUlkgPSAiRmlsZSBtYW5hZ2VyIGZvciBHTk9NRSIKK1NFQ1RJT04gPSAieDExL2dub21lIgorCitMSUNFTlNFPSJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTM2Y2Y2NjBhZWEyYjhiZWZmYmE3OTQ1ZjQ0YTdlNzQ4IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuRVhURU5TSU9OUzttZDU9NzU3OWQ2Njc4NDAyYTE4Njg2MzFiZjgyYzkzZmYwZDQgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy5MSUI7bWQ1PWYzMGE5NzE2ZWYzNzYyZTM0NjdhMmY2MmJmNzkwZjBhIgorCitTUkNfVVJJID0gImh0dHA6Ly9mdHAuZ25vbWUub3JnL3B1Yi9HTk9NRS9zb3VyY2VzL25hdXRpbHVzLzMuMTgvbmF1dGlsdXMtJHtQVn0udGFyLnh6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiMGY1NzhiZGE1NjU1YzBjZTIwNGJlZmFmY2E1ODAzZDciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjBhOTI3YzA1MjJiNGNjZWQ5ZDhmNjJiYWVkMmVlNWUyZmQ0MzA1YmU0NTIzZWI1YmM0NDgwNTk3MWE2Y2MxNSIKKworREVQRU5EUyA9ICJndGsrMyBnbm9tZS1kZXNrdG9wMyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGdsaWItMi4wLW5hdGl2ZSBpbnRsdG9vbC1uYXRpdmUgcGFuZ28iCisKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcgZ29iamVjdC1pbnRyb3NwZWN0aW9uCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitFWFRSQV9PRUNPTkYgPSAiIFwKKyAgICAtLWRpc2FibGUtZ3RrLWRvYyBcCisgICAgLS1kaXNhYmxlLXVwZGF0ZS1taW1lZGIgXAorICAgIC0tZGlzYWJsZS1uc3QtZXh0ZW5zaW9uIFwKKyAgICAtLWVuYWJsZS10cmFja2VyPW5vIFwKKyAgICAtLWRpc2FibGUtc2NoZW1hcy1jb21waWxlIFwKKyAgICAtLWVuYWJsZS14bXA9bm8gXAorICAgIC0tZW5hYmxlLWxpYmV4aWY9bm8gXCAKKyIKKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vKiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL29yYml0Mi9vcmJpdDIvMDAwMS1saW5jMi1zcmMtTWFrZWZpbGUuYW0tZml4LWJ1aWxkLXdpdGgtZ2xpYi0yLjM2LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Mi8wMDAxLWxpbmMyLXNyYy1NYWtlZmlsZS5hbS1maXgtYnVpbGQtd2l0aC1nbGliLTIuMzYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhZjc0NjQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Mi8wMDAxLWxpbmMyLXNyYy1NYWtlZmlsZS5hbS1maXgtYnVpbGQtd2l0aC1nbGliLTIuMzYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi1Gcm9tIDEwYmQ4MDk0ZTFkOTRlNWM3Mzc3OTFjN2Y0YjZiODQ0ZjUzNWMxMjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBGcmksIDMgTWF5IDIwMTMgMTA6MDA6MTYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gbGluYzIvc3JjL01ha2VmaWxlLmFtOiBmaXggYnVpbGQgd2l0aCBnbGliIDIuMzYKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgWzFdCi0KLVsxXSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2OTAwCi0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLS0tLQotIGxpbmMyL3NyYy9NYWtlZmlsZS5hbSB8ICAgIDMgKy0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saW5jMi9zcmMvTWFrZWZpbGUuYW0gYi9saW5jMi9zcmMvTWFrZWZpbGUuYW0KLWluZGV4IDM1N2EyZGQuLmJhMGUzNDcgMTAwNjQ0Ci0tLS0gYS9saW5jMi9zcmMvTWFrZWZpbGUuYW0KLSsrKyBiL2xpbmMyL3NyYy9NYWtlZmlsZS5hbQotQEAgLTEyLDggKzEyLDcgQEAgSU5DTFVERVMgPSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gCS1JJCh0b3BfYnVpbGRkaXIpL2xpbmMyL2luY2x1ZGUgIFwKLSAJLUkkKHRvcF9zcmNkaXIpL2xpbmMyL2luY2x1ZGUgICAgXAotIAkkKExJTkNfQ0ZMQUdTKSAgICAgICAgICAgICBcCi0tCSQoV0FSTl9DRkxBR1MpICAgICAgICAgICAgIFwKLS0JLURHX0RJU0FCTEVfREVQUkVDQVRFRAotKwkkKFdBUk5fQ0ZMQUdTKQotIAotIGlmIE9TX1dJTjMyCi0gZWxzZQotLS0gCi0xLjcuNi41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL29yYml0Mi9vcmJpdDIvMDAwMi1Vc2UtQU1fQ1BQRkxBR1MtaW5zdGVhZC1vZi1JTkNMVURFUy1hbmQtZml4LXByb2JsZW0tLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Mi8wMDAyLVVzZS1BTV9DUFBGTEFHUy1pbnN0ZWFkLW9mLUlOQ0xVREVTLWFuZC1maXgtcHJvYmxlbS0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5OTNhYmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Mi8wMDAyLVVzZS1BTV9DUFBGTEFHUy1pbnN0ZWFkLW9mLUlOQ0xVREVTLWFuZC1maXgtcHJvYmxlbS0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi1Gcm9tIGQ5MWRiYjQyZGMzYjYwNzM3MjAwMjdmNjg4MjdhY2QwYWJlZTZkNzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLamFydGFuIE1hcmFhcyA8a21hcmFhc0Bnbm9tZS5vcmc+Ci1EYXRlOiBUdWUsIDE0IE1heSAyMDEzIDEzOjI5OjUzICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVzZSBBTV9DUFBGTEFHUyBpbnN0ZWFkIG9mIElOQ0xVREVTIGFuZCBmaXggcHJvYmxlbSB1c2luZwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFsxXQotCi1bMV0gaHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9PUkJpdDIvY29tbWl0L3Rlc3QvZXZlcnl0aGluZy9NYWtlZmlsZS5hbT9pZD1kOTFkYmI0MmRjM2I2MDczNzIwMDI3ZjY4ODI3YWNkMGFiZWU2ZDc1Ci0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLS0tLQotIHRlc3QvZXZlcnl0aGluZy9NYWtlZmlsZS5hbSB8IDQgKystLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS90ZXN0L2V2ZXJ5dGhpbmcvTWFrZWZpbGUuYW0gYi90ZXN0L2V2ZXJ5dGhpbmcvTWFrZWZpbGUuYW0KLWluZGV4IDMyYmViMzYuLmNiNGIxZDYgMTAwNjQ0Ci0tLS0gYS90ZXN0L2V2ZXJ5dGhpbmcvTWFrZWZpbGUuYW0KLSsrKyBiL3Rlc3QvZXZlcnl0aGluZy9NYWtlZmlsZS5hbQotQEAgLTEwLDcgKzEwLDcgQEAgRVZFUllUSElOR19JRExPVVQgPSAgICAgICAgICBcCi0gCSQoRVZFUllUSElOR19CVUlMVCkgIFwKLSAJZXZlcnl0aGluZy1pbW9kdWxlLmMKLSAKLS1JTkNMVURFUyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotK0FNX0NQUEZMQUdTID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gCS1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlICAgICAgICAgICAgXAotIAktSSQodG9wX2J1aWxkZGlyKS9pbmNsdWRlICAgICAgICAgIFwKLSAJLUkkKHRvcF9idWlsZGRpcikvc3JjICAgICAgICAgICAgICBcCi1AQCAtNzgsNyArNzgsNyBAQCBpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuc2hhcmVkCi0gQlVJTFRfU09VUkNFUyA9ICR7RVZFUllUSElOR19CVUlMVH0gZXZlcnl0aGluZy1pbW9kdWxlLmMKLSBDTEVBTkZJTEVTID0gJHtCVUlMVF9TT1VSQ0VTfSBpb3JmaWxlCi0gCi0tVEVTVFMgPSAkKHNyY2RpcikvdGVzdC5zaAotK1RFU1RTID0gJCh0b3BfYnVpbGRkaXIpL3Rlc3QvZXZlcnl0aGluZy90ZXN0LnNoCi0gCi0gRVhUUkFfRElTVCA9ICQoSURMX0ZJTEVTKSB0ZXN0LnNoICQoaW5jbHVkZWRfc3JjKQotIAotLS0gCi0xLjguMy4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL29yYml0Mi9vcmJpdDIvY29uZmlndXJlLWxvc3NhZ2UucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9vcmJpdDIvb3JiaXQyL2NvbmZpZ3VyZS1sb3NzYWdlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZmMxZGU1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL29yYml0Mi9vcmJpdDIvY29uZmlndXJlLWxvc3NhZ2UucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0tLS0gT1JCaXQyLTIuMTQuMTcvY29uZmlndXJlLmluLW9yaWcJMjAwOS0wMS0xMCAwOTozNjoxOC4wMDAwMDAwMDAgLTA4MDAKLSsrKyBPUkJpdDItMi4xNC4xNy9jb25maWd1cmUuaW4JMjAwOS0wNi0xNyAxNToxMDo1OS4wMDAwMDAwMDAgLTA3MDAKLUBAIC0yMTcsMjAgKzIxNywyMCBAQCBkbmwKLSBkbmwgICBTbyBtYW55IHBlb3BsZSB3aXRoIGJyb2tlbiBsaW5raW5nIHNldHVwcyBhc2tlZCBhYm91dCB0aGlzCi0gZG5sIGl0IHR1cm5lZCBvdXQgdG8gYmUgbmVjZXNzYXJ5IHRvIGNoZWNrIGZvciB0aGlzLgotIGRubAotLWRvZnVzX3NhdmVfbGlicz0iJExJQlMiCi0tTElCUz0iJE9SQklUX0xJQlMgJExJQlMiCi0tQUNfVFJZX1JVTihbICNpbmNsdWRlIDxzdGRpby5oPgotLSAgICAgICAgICAgICBtYWluICgpCi0tICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICByZXR1cm4gMDsKLS0gICAgICAgICAgICAgfSBdLCwKLS0gICAgICAgICAgIEFDX01TR19FUlJPUihbCi0tTGlua2luZyBpcyBiYWRseSBib3JrZWQgb24geW91ciBzeXN0ZW0uIFBsZWFzZSBlbnN1cmUgeW91ciBsaWJyYXJ5IHBhdGggaXMgY29ycmVjdAotLUNoZWNrIGNvbmZpZy5sb2cgZm9yIGRldGFpbHMgLSBjaGVjayBuZWFyIHRoZSBlbmQgb2YgdGhlIGxvZyBhYm92ZSAnZmFpbGVkIHByb2dyYW0gd2FzJwotLUFsdGVybmF0aXZlbHkgZW5zdXJlIHRoYXQgeW91ciAvZXRjL2xkLnNvLmNvbmYgKGFuZC9vciBMRF9MSUJSQVJZX1BBVEgpIGluY2x1ZGVzIHRoZQotLXByZWZpeCB5b3UncmUgY29tcGlsaW5nIG9uOiAnJHtwcmVmaXh9JyBdKSwgCi0tQUNfTVNHX1dBUk4oW0NvdWxkIG5vdCBjaGVjayBmb3IgYm9ya2VkIGxpbmtpbmcgd2hpbGUgY3Jvc3MtY29tcGlsaW5nXSkpCi0tTElCUz0iJGRvZnVzX3NhdmVfbGlicyIKLStkbmwgZG9mdXNfc2F2ZV9saWJzPSIkTElCUyIKLStkbmwgTElCUz0iJE9SQklUX0xJQlMgJExJQlMiCi0rZG5sIEFDX1RSWV9SVU4oWyAjaW5jbHVkZSA8c3RkaW8uaD4KLStkbmwgICAgICAgICAgICAgbWFpbiAoKQotK2RubCAgICAgICAgICAgICAgewotK2RubCAgICAgICAgICAgICAgICByZXR1cm4gMDsKLStkbmwgICAgICAgICAgICAgIH0gXSwsCi0rZG5sICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFsKLStkbmwgTGlua2luZyBpcyBiYWRseSBib3JrZWQgb24geW91ciBzeXN0ZW0uIFBsZWFzZSBlbnN1cmUgeW91ciBsaWJyYXJ5IHBhdGggaXMgY29ycmVjdAotK2RubCBDaGVjayBjb25maWcubG9nIGZvciBkZXRhaWxzIC0gY2hlY2sgbmVhciB0aGUgZW5kIG9mIHRoZSBsb2cgYWJvdmUgJ2ZhaWxlZCBwcm9ncmFtIHdhcycKLStkbmwgQWx0ZXJuYXRpdmVseSBlbnN1cmUgdGhhdCB5b3VyIC9ldGMvbGQuc28uY29uZiAoYW5kL29yIExEX0xJQlJBUllfUEFUSCkgaW5jbHVkZXMgdGhlCi0rZG5sIHByZWZpeCB5b3UncmUgY29tcGlsaW5nIG9uOiAnJHtwcmVmaXh9JyBdKSwgCi0rZG5sIEFDX01TR19XQVJOKFtDb3VsZCBub3QgY2hlY2sgZm9yIGJvcmtlZCBsaW5raW5nIHdoaWxlIGNyb3NzLWNvbXBpbGluZ10pKQotK2RubCBMSUJTPSIkZG9mdXNfc2F2ZV9saWJzIgotIAotIG9yaWdfQ1BQRkxBR1M9JENQUEZMQUdTCi0gQ1BQRkxBR1M9IiRDUFBGTEFHUyAkT1JCSVRfQ0ZMQUdTIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Mi9wa2djb25maWctZml4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Mi9wa2djb25maWctZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNjI5ZTUwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL29yYml0Mi9vcmJpdDIvcGtnY29uZmlnLWZpeC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLWRpZmYgLXVyTiBPUkJpdDItMi4xNC4xMi5vcmlnL09SQml0LTIuMC5wYy5pbiBPUkJpdDItMi4xNC4xMi9PUkJpdC0yLjAucGMuaW4KLS0tLSBPUkJpdDItMi4xNC4xMi5vcmlnL09SQml0LTIuMC5wYy5pbgkyMDA4LTAxLTI5IDEzOjQ1OjIyLjAwMDAwMDAwMCArMDEwMAotKysrIE9SQml0Mi0yLjE0LjEyL09SQml0LTIuMC5wYy5pbgkyMDA4LTA5LTIzIDIwOjEzOjA3LjAwMDAwMDAwMCArMDIwMAotQEAgLTIsNyArMiw3IEBACi0gZXhlY19wcmVmaXg9QGV4ZWNfcHJlZml4QAotIGxpYmRpcj1AbGliZGlyQAotIGluY2x1ZGVkaXI9QGluY2x1ZGVkaXJACi0tb3JiaXRfaWRsPUBiaW5kaXJAL29yYml0LWlkbC0yQEVYRUVYVEAKLStvcmJpdF9pZGw9QGV4ZWNfcHJlZml4QC9iaW4vb3JiaXQtaWRsLTJARVhFRVhUQAotIAotIAotIE5hbWU6IE9SQml0LTIuMApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Ml8yLjE0LjE5LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvb3JiaXQyL29yYml0Ml8yLjE0LjE5LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYjQzOTcyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL29yYml0Mi9vcmJpdDJfMi4xNC4xOS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLVNVTU1BUlkgPSAiQ09SQkEgT1JCIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbm9tZS5vcmcvcHJvamVjdHMvT1JCaXQyIgotU0VDVElPTiA9ICJ4MTEvZ25vbWUvbGlicyIKLUxJQ0VOU0UgPSAiR1BMLTIuMCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgotU1JDX05BTUUgPSAiT1JCaXQyIgotU0hSVF9WRVIgPSAiJHtAZC5nZXRWYXIoJ1BWJykuc3BsaXQoJy4nKVswXX0uJHtAZC5nZXRWYXIoJ1BWJykuc3BsaXQoJy4nKVsxXX0iCi1TUkNfVVJJID0gIiBcCi0gICAgJHtHTk9NRV9NSVJST1J9LyR7U1JDX05BTUV9LyR7U0hSVF9WRVJ9LyR7U1JDX05BTUV9LSR7UFZ9LnRhci5iejIgXAotICAgIGZpbGU6Ly9jb25maWd1cmUtbG9zc2FnZS5wYXRjaCBcCi0gICAgZmlsZTovL3BrZ2NvbmZpZy1maXgucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAxLWxpbmMyLXNyYy1NYWtlZmlsZS5hbS1maXgtYnVpbGQtd2l0aC1nbGliLTIuMzYucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAyLVVzZS1BTV9DUFBGTEFHUy1pbnN0ZWFkLW9mLUlOQ0xVREVTLWFuZC1maXgtcHJvYmxlbS0ucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gIjcwODJkMzE3YTk1NzNhYjMzODMwMjI0MzA4MmQxMGQxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU1YzkwMGE5MDU0ODI5OTI3MzBmNTc1ZjNlZWYzNGQ1MGJkYTcxN2MxOTdjOTdjMDhmYTVhNmVhZmQ4NTc1NTAiCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgotCi1JRExfQ09NUElMRVJfREVQRU5EUyA9ICJvcmJpdDItbmF0aXZlIgotSURMX0NPTVBJTEVSX0RFUEVORFNfY2xhc3MtbmF0aXZlID0gIiAiCi1ERVBFTkRTID0gImxpYmlkbCBwb3B0ICR7SURMX0NPTVBJTEVSX0RFUEVORFN9IgotCi0jIElETF9DT01QSUxFUl9ERVBFTkRTX2NsYXNzLW5hdGl2ZSBmb3Igc29tZSByZWFzb24gZGlkbid0IHdvcmsgYW5kIG9yYml0Mi1uYXRpdmUKLSMgd2FzIHN0aWxsIGluIG9yYml0Mi1uYXRpdmUgREVQRU5EUyBjYXVzaW5nIGNpcmN1bGFyIGRlcGVuZGVuY3kKLURFUEVORFNfY2xhc3MtbmF0aXZlID0gImxpYmlkbC1uYXRpdmUgcG9wdC1uYXRpdmUiCi1QQVJBTExFTF9NQUtFID0gIiIKLQotCi1GSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L29yYml0LTIuMC8qLnNvIgotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vb3JiaXQtMi4wLyoubGEiCi1GSUxFU18ke1BOfS1zdGF0aWNkZXYgKz0gIiR7bGliZGlyfS9vcmJpdC0yLjAvKi5hIgotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vb3JiaXQtMi4wLy5kZWJ1ZyIKLQotUyA9ICIke1dPUktESVJ9LyR7U1JDX05BTUV9LSR7UFZ9IgotCi1MRUFEX1NPTkFNRSA9ICJsaWJPUkJpdC0yLnNvIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ3RrLWRvYwotCi1FWFRSQV9PRU1BS0UgPSAiSURMX0NPTVBJTEVSPScke1NUQUdJTkdfQklORElSX05BVElWRX0vb3JiaXQtaWRsLTInIgotRVhUUkFfT0VNQUtFX2NsYXNzLW5hdGl2ZSA9ICIgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvcGltbGljby9jb250YWN0cy9zdG9ja19jb250YWN0LnBuZyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vY29udGFjdHMvc3RvY2tfY29udGFjdC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyM2I0NDguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvcGltbGljby9jb250YWN0cy9zdG9ja19jb250YWN0LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vY29udGFjdHMvc3RvY2tfcGVyc29uLnBuZyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vY29udGFjdHMvc3RvY2tfcGVyc29uLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmIxMzI4Yi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2NvbnRhY3RzL3N0b2NrX3BlcnNvbi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2RhdGVzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vZGF0ZXMuaW5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMmQyZjgzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vZGF0ZXMuaW5jCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiRGF0ZXMgaXMgYSBjYWxlbmRhciBhcHBsaWNhdGlvbi4iCi1IT01FUEFHRSA9ICJodHRwOi8vcGltbGljby1wcm9qZWN0Lm9yZy9kYXRlcy5odG1sIgotQlVHVFJBQ0tFUiA9ICJodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8iCi0KLUxJQ0VOU0UgPSAiR1BMdjIgJiBHUEx2MisgJiBMR1BMdjIrIgotCi1TRUNUSU9OID0gIngxMSIKLURFUEVORFMgPSAiZ2xpYi0yLjAgZ3RrKyBsaWJnbGFkZSBldm9sdXRpb24tZGF0YS1zZXJ2ZXIgaW50bHRvb2wtbmF0aXZlIgotUkRFUEVORFNfJHtQTn0gPSAibGliZWRhdGEtY2FsIgotCi1pbmhlcml0IGF1dG90b29scyBnZXR0ZXh0IHBrZ2NvbmZpZyBndGstaWNvbi1jYWNoZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvcGltbGljby9kYXRlcy8wMDAxLUZpeC1mb3JtYXQtc2VjdXJpdHktd2FybmluZ3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2RhdGVzLzAwMDEtRml4LWZvcm1hdC1zZWN1cml0eS13YXJuaW5ncy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY1NTFhNy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2RhdGVzLzAwMDEtRml4LWZvcm1hdC1zZWN1cml0eS13YXJuaW5ncy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLUZyb20gNjg3ODgxYzVmYTM0MjY4NmM4NzI0YWRjZGFjMGY5ZDU1NWEzNTFjMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDUgQXByIDIwMTcgMTg6MTA6NTcgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IGZvcm1hdCBzZWN1cml0eSB3YXJuaW5ncwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gc3JjL2RhdGVzX2NhbGxiYWNrcy5jIHwgMiArLQotIHNyYy9kYXRlc19ndGsuYyAgICAgICB8IDIgKy0KLSBzcmMvZ2NvbmYtYnJpZGdlLmMgICAgfCAyICstCi0gMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvZGF0ZXNfY2FsbGJhY2tzLmMgYi9zcmMvZGF0ZXNfY2FsbGJhY2tzLmMKLWluZGV4IGQ3MDRjOGYuLjQ2YjhjYjEgMTAwNjQ0Ci0tLS0gYS9zcmMvZGF0ZXNfY2FsbGJhY2tzLmMKLSsrKyBiL3NyYy9kYXRlc19jYWxsYmFja3MuYwotQEAgLTM2NSw3ICszNjUsNyBAQCBkYXRlc19hYm91dF9jYiAoR3RrV2lkZ2V0ICp3aWRnZXQsIERhdGVzRGF0YSAqZCkKLSAKLSAJaWYgKCFwaXhiKSB7Ci0gCQlnX2Fzc2VydCAoZXJyb3IpOwotLQkJZ193YXJuaW5nIChlcnJvci0+bWVzc2FnZSk7Ci0rCQlnX3dhcm5pbmcgKCIlcyIsIGVycm9yLT5tZXNzYWdlKTsKLSAJCWdfY2xlYXJfZXJyb3IgKCZlcnJvcik7Ci0gCX0KLSAKLWRpZmYgLS1naXQgYS9zcmMvZGF0ZXNfZ3RrLmMgYi9zcmMvZGF0ZXNfZ3RrLmMKLWluZGV4IDQwM2JjMjUuLmZkNjkxZDIgMTAwNjQ0Ci0tLS0gYS9zcmMvZGF0ZXNfZ3RrLmMKLSsrKyBiL3NyYy9kYXRlc19ndGsuYwotQEAgLTExMTQsNyArMTExNCw3IEBAIGNhbGVuZGFyX2RvX2VkaXRfZGlhbG9nX3Jlc3BvbnNlX2NiIChHdGtEaWFsb2cgKmRpYWxvZywgZ2ludCByZXNwb25zZV9pZCwgZ3BvaW50Ci0gCQkJCUdUS19ESUFMT0dfTU9EQUwgfCBHVEtfRElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsCi0gCQkJCUdUS19NRVNTQUdFX1dBUk5JTkcsCi0gCQkJCUdUS19CVVRUT05TX05PTkUsCi0tCQkJCXByb21wdCk7Ci0rCQkJCSIlcyIsIHByb21wdCk7Ci0gCi0gCQlnX2ZyZWUgKHByb21wdCk7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2djb25mLWJyaWRnZS5jIGIvc3JjL2djb25mLWJyaWRnZS5jCi1pbmRleCA0OTc1NGNmLi42N2QzNzU3IDEwMDY0NAotLS0tIGEvc3JjL2djb25mLWJyaWRnZS5jCi0rKysgYi9zcmMvZ2NvbmYtYnJpZGdlLmMKLUBAIC0xMjIwLDcgKzEyMjAsNyBAQCBlcnJvcl9oYW5kbGVyIChHQ29uZkNsaWVudCAqY2xpZW50LAotICAgICAgICAgICAgICAgICBkbGcgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3IChOVUxMLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfTUVTU0FHRV9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX0JVVFRPTlNfT0ssCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLCBtZXNzYWdlKTsKLSAgICAgICAgICAgICAgICAgZ19mcmVlIChtZXNzYWdlKTsKLSAKLSAgICAgICAgICAgICAgICAgZ3RrX21lc3NhZ2VfZGlhbG9nX2Zvcm1hdF9zZWNvbmRhcnlfdGV4dAotLS0gCi0yLjEyLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvcGltbGljby9kYXRlcy9kc29fbGlua2luZ19jaGFuZ2VfYnVpbGRfZml4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvcGltbGljby9kYXRlcy9kc29fbGlua2luZ19jaGFuZ2VfYnVpbGRfZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDlkNTlkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vZGF0ZXMvZHNvX2xpbmtpbmdfY2hhbmdlX2J1aWxkX2ZpeC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLWFmdGVyIGdjYyBsaW5raW5nIGhhcyBjaGFuZ2VkLCBhbGwgdGhlIGxpYnJhcmllcyBtdXN0IGJlIGV4cGxpY2l0ZWx5IHNwZWNpZmllZCAKLVRoaXMgcGF0Y2ggYXZvaWRzIHRoZXNlIGxpbmtpbmcgZXJyb3JzOgotCi0KLXwgbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvZGlzazAvcG9reWJ1aWxkL2J1aWxkMS90bXAvd29yay9pNTg2LXBva3ktbGludXgvZGF0ZXMtMC40LjExK2dpdDArNTE0MTg1ZGMxZjY1ODgwODVmZGE0MWViNTk4OThiOTNkMDQ4N2RkNC1yMi9naXQvc3JjJ15NCi0uLi4KLXwgL2Rpc2swL3Bva3lidWlsZC9idWlsZDEvdG1wL3N5c3Jvb3RzL3g4Nl82NC1saW51eC91c3IvbGliZXhlYy9pNTg2LXBva3ktbGludXgvZ2NjL2k1ODYtcG9reS1saW51eC80LjUuMS9sZDogZTogaW52YWxpZCBEU08gZm9yIHN5bWJvbCBgcG93QEBHTElCQ18yLjAnIGRlZmluaXRpb25eTQotfCAvZGlzazAvcG9reWJ1aWxkL2J1aWxkMS90bXAvc3lzcm9vdHMvaTU4Ni1wb2t5LWxpbnV4L3Vzci9saWIvbGlibS5zbzogY291bGQgbm90IHJlYWQgc3ltYm9sczogQmFkIHZhbHVlXk0KLXwgY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXNeTQotfCBtYWtlWzJdOiAqKiogW2RhdGVzXSBFcnJvciAxCi0KLQotCi18IC9kaXNrMC9wb2t5YnVpbGQvYnVpbGQxL3RtcC9zeXNyb290cy94ODZfNjQtbGludXgvdXNyL2xpYmV4ZWMvaTU4Ni1wb2t5LWxpbnV4L2djYy9pNTg2LXBva3ktbGludXgvNC41LjEvbGQ6IHo6IGludmFsaWQgRFNPIGZvciBzeW1ib2wgYHBhbmdvX2xheW91dF9nZXRfZXh0ZW50cycgZGVmaW5pdGlvbgotfCAvZGlzazAvcG9reWJ1aWxkL2J1aWxkMS90bXAvc3lzcm9vdHMvaTU4Ni1wb2t5LWxpbnV4L3Vzci9saWIvbGlicGFuZ28tMS4wLnNvOiBjb3VsZCBub3QgcmVhZCBzeW1ib2xzOiBCYWQgdmFsdWUKLXwgY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKLXwgbWFrZVsyXTogKioqIFtkYXRlc10gRXJyb3IgMQotCi0KLU5pdGluIEEgS2FtYmxlIDxuaXRpbi5hLmthbWJsZUBpbnRlbC5jb20+Ci1EYXRlOiAyMDExLzAxLzExCi0KLVVwZGF0ZToKLVRoaXMgaXMgaWRlbnRpZmllZCBhcyBhIGxpYnRvb2wgaXNzdWUuIFdoaWxlIGNyZWF0aW5nIHRoZSBsaWJndGtkYXRlc3ZpZXcubGEgCi1maWxlLCBsaWJ0b29sIHNob3VsZCBoYXZlIGFkZGVkIHRoZXNlIG5lZWRlZCBsaWJyYXJpZXMgaW4gdGhlcmUuCi0gQSBidWcgaGFzIGJlZW4gY3JlYXRlZCBmb3IgdGhpcyBpc3N1ZTogCi0gICBodHRwOi8vYnVnemlsbGEucG9reWxpbnV4Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0Ci1OaXRpbiBBIEthbWJsZSA8bml0aW4uYS5rYW1ibGVAaW50ZWwuY29tPgotRGF0ZTogMjAxMS8wMS8xOQotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotSW5kZXg6IGdpdC9zcmMvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnaXQub3JpZy9zcmMvTWFrZWZpbGUuYW0KLSsrKyBnaXQvc3JjL01ha2VmaWxlLmFtCi1AQCAtMzQsNiArMzQsNiBAQCBkYXRlc19TT1VSQ0VTID0gJChwbGF0Zm9ybSkgCVwKLSAJZ2NvbmYtYnJpZGdlLmgJCVwKLSAJZ2NvbmYtYnJpZGdlLmMKLSAKLS1kYXRlc19MREFERCA9ICQoREFURVNfTElCUykgJChPV0xfTElCUykgbGliZ3RrZGF0ZXN2aWV3LmxhCi0rZGF0ZXNfTERBREQgPSAkKERBVEVTX0xJQlMpICQoT1dMX0xJQlMpIGxpYmd0a2RhdGVzdmlldy5sYSAtbG0gLWxwYW5nby0xLjAKLSAKLSBNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IGNvbmZpZy5oLmluIE1ha2VmaWxlLmluCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2RhdGVzL3VjbGliYy1OTF9USU1FX0ZJUlNUX1dFRUtEQVktYWJzZW50LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvcGltbGljby9kYXRlcy91Y2xpYmMtTkxfVElNRV9GSVJTVF9XRUVLREFZLWFic2VudC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmFkZTQ3MC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2RhdGVzL3VjbGliYy1OTF9USU1FX0ZJUlNUX1dFRUtEQVktYWJzZW50LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotdWNsaWJjIGhhcyBsYW5naW5mby5oIGJ1dCBpdCBkb2VzIG5vdCBkZWZpbmUgX05MX1RJTUVfRklSU1RfV0VFS0RBWQotdGhlcmVmb3JlIHdlIGludHJvZHVjZSBhIGNoZWNrIGluIGNvbmZpZ3VyZSBmb3IgdGhlIHRoaXMgZGVmaW5lCi1hbmQgdGhlbiB3ZSBtYWtlIHN1cmUgdGhhdCB3ZSB1c2UgaXQgd2hlbiBpdCByZWFsbHkgZXhpc3RzCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1JbmRleDogZ2l0L2NvbmZpZ3VyZS5hYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdpdC5vcmlnL2NvbmZpZ3VyZS5hYwkyMDExLTA3LTE4IDEwOjM0OjE1LjAwMDAwMDAwMCAtMDcwMAotKysrIGdpdC9jb25maWd1cmUuYWMJMjAxMS0wNy0xOCAxMDo1NDoyNi40MDM3OTgxODggLTA3MDAKLUBAIC05OCw2ICs5OCw4IEBACi0gCQlzcmMvbGliZ3RrZGF0ZXN2aWV3LnBjCi0gXSkKLSAKLStBQ19DSEVDS19ERUNMUyhbX05MX1RJTUVfRklSU1RfV0VFS0RBWV0sW10sW10sW1sjaW5jbHVkZSA8bGFuZ2luZm8uaD5dXSkKLSsKLSBBQ19PVVRQVVQKLSAKLSBlY2hvICIgIgotSW5kZXg6IGdpdC9zcmMvZGF0ZXNfdmlldy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2l0Lm9yaWcvc3JjL2RhdGVzX3ZpZXcuYwkyMDExLTA3LTE4IDEwOjM0OjE1LjAwMDAwMDAwMCAtMDcwMAotKysrIGdpdC9zcmMvZGF0ZXNfdmlldy5jCTIwMTEtMDctMTggMTA6NTg6NDYuMDkzNzk4MTM2IC0wNzAwCi1AQCAtMTUwNSw3ICsxNTA1LDExIEBACi0gCXByaXYtPmRheXMgPSAxOwotIAlwcml2LT5tb250aHMgPSAwOwotIAlwcml2LT5tb250aHNfaW5fcm93ID0gNDsKLSsjaWYgSEFWRV9ERUNMX19OTF9USU1FX0ZJUlNUX1dFRUtEQVkKLSAJcHJpdi0+d2Vla19zdGFydCA9ICpubF9sYW5naW5mbyAoX05MX1RJTUVfRklSU1RfV0VFS0RBWSkgLSAxOwotKyNlbHNlCi0rCXByaXYtPndlZWtfc3RhcnQgPSAwOwotKyNlbmRpZgotIAlwcml2LT5kcmFnYm94ID0gVFJVRTsKLSAJcHJpdi0+c2luZ2xlX2NsaWNrID0gVFJVRTsKLSAJcHJpdi0+ZG91YmxlX2NsaWNrID0gRkFMU0U7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS9waW1saWNvL2RhdGVzX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vZGF0ZXNfZ2l0LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNDk2NWU5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3BpbWxpY28vZGF0ZXNfZ2l0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotcmVxdWlyZSBkYXRlcy5pbmMKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vc3JjL2RhdGVzX3ZpZXcuaDtlbmRsaW5lPTIyO21kNT0yOWY5MzRmMzU2ZWI5NzAzMDljZGViNjY5M2IzMTIzYSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvZGF0ZXNfaGlsZG9uLmM7ZW5kbGluZT0xOTttZDU9NjM5Mzg5MDQxOThiMjVkZTQyOWFiYjY1ZmJkYmRiOGEgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vc3JjL2djb25mLWJyaWRnZS5jO2VuZGxpbmU9MjI7bWQ1PWFkNzYyNmM2ZGFmNGFlYzU5MDQ3NGEyNDNmNDkxMmZhIgotCi1TUkNSRVYgPSAiYzhlMzBmYTMyMTFkY2RmY2RhNDgxODRmNGM1Nzc0NmE1NTJiOWM3YSIKLVBWID0gIjAuNC4xMStnaXQke1NSQ1BWfSIKLVBSID0gInI5IgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1TUkNfVVJJID0gImdpdDovL2dpdC5nbm9tZS5vcmcvJHtCUE59IFwKLSAgICAgICAgICAgZmlsZTovL2Rzb19saW5raW5nX2NoYW5nZV9idWlsZF9maXgucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vdWNsaWJjLU5MX1RJTUVfRklSU1RfV0VFS0RBWS1hYnNlbnQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1GaXgtZm9ybWF0LXNlY3VyaXR5LXdhcm5pbmdzLnBhdGNoIFwKLSAgICAgICAgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvc3lzdGVtLXRvb2xzL3N5c3RlbS10b29scy1iYWNrZW5kcy0yLjEwLjIvc3lzdGVtLXRvb2xzLWJhY2tlbmRzIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvc3lzdGVtLXRvb2xzL3N5c3RlbS10b29scy1iYWNrZW5kcy0yLjEwLjIvc3lzdGVtLXRvb2xzLWJhY2tlbmRzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDRjMzZkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3N5c3RlbS10b29scy9zeXN0ZW0tdG9vbHMtYmFja2VuZHMtMi4xMC4yL3N5c3RlbS10b29scy1iYWNrZW5kcworKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLSMhIC9iaW4vc2gKLSMjIyBCRUdJTiBJTklUIElORk8KLSMgUHJvdmlkZXM6ICAgICAgICAgIHN5c3RlbS10b29scy1iYWNrZW5kcwotIyBSZXF1aXJlZC1TdGFydDogICAgJGxvY2FsX2ZzIGRidXMKLSMgUmVxdWlyZWQtU3RvcDogICAgICRsb2NhbF9mcyBkYnVzCi0jIFNob3VsZC1TdGFydDoJICAgICAkc3lzbG9nCi0jIFNob3VsZC1TdG9wOiAgICAgICAkc3lzbG9nCi0jIERlZmF1bHQtU3RhcnQ6ICAgICAyIDMgNCA1Ci0jIERlZmF1bHQtU3RvcDogICAgICAxCi0jIFNob3J0LURlc2NyaXB0aW9uOiBHbm9tZSBTeXN0ZW0gVG9vbHMgQmFja2VuZHMKLSMgRGVzY3JpcHRpb246ICAgICAgIFRoZSBHbm9tZSBTeXN0ZW0gVG9vbHMgQmFja2VuZHMgZGFlbW9uIGhhbmRsZXMgcm9vdC1uZWVkZWQKLSMgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnMgdG8gY29uZmlndXJlIHlvdXIgbWFjaGluZSB3aXRoIHRoZSBHbm9tZSBTeXN0ZW0KLSMJCSAgICAgVG9vbHMuCi0jIyMgRU5EIElOSVQgSU5GTwotCi1QQVRIPS91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2Jpbjovc2JpbjovYmluOi91c3Ivc2JpbjovdXNyL2JpbgotREFFTU9OPS91c3IvYmluL3N5c3RlbS10b29scy1iYWNrZW5kcwotUElERElSPS92YXIvcnVuCi1QSURGSUxFPSRQSURESVIvc3lzdGVtLXRvb2xzLWJhY2tlbmRzLnBpZAotTkFNRT1zeXN0ZW0tdG9vbHMtYmFja2VuZHMKLURFU0M9IlN5c3RlbSBUb29scyBCYWNrZW5kcyIKLQotdGVzdCAteCAkREFFTU9OIHx8IGV4aXQgMAotCi1zZXQgLWUKLQotZG9fc3RhcnQoKSB7Ci0gICAgZWNobyAiU3RhcnRpbmcgJERFU0MiCi0gICAgc3RhcnQtc3RvcC1kYWVtb24gLS1zdGFydCAtLXN0YXJ0YXMgJERBRU1PTiAtLXF1aWV0IC0tcGlkZmlsZSAkUElERklMRQotfQotCi1kb19zdG9wKCkgewotICAgIGVjaG8gIlN0b3BwaW5nICRERVNDIgotICAgIHN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAtLW9rbm9kbyAtLXF1aWV0IC0tcGlkZmlsZSAkUElERklMRSAtLXN0YXJ0YXMgJERBRU1PTgotfQotCi1jYXNlICIkMSIgaW4KLSAgc3RhcnQpCi0gICAgZG9fc3RhcnQKLSAgICA7OwotICBzdG9wKQotICAgIGRvX3N0b3AKLSAgICA7OwotICAjcmVsb2FkKQotICAgICMKLSAgICAjIElmIHRoZSBkYWVtb24gY2FuIHJlbG9hZCBpdHMgY29uZmlnIGZpbGVzIG9uIHRoZSBmbHkKLSAgICAjIGZvciBleGFtcGxlIGJ5IHNlbmRpbmcgaXQgU0lHSFVQLCBkbyBpdCBoZXJlLgotICAgICMKLSAgICAjIElmIHRoZSBkYWVtb24gcmVzcG9uZHMgdG8gY2hhbmdlcyBpbiBpdHMgY29uZmlnIGZpbGUKLSAgICAjIGRpcmVjdGx5IGFueXdheSwgbWFrZSB0aGlzIGEgZG8tbm90aGluZyBlbnRyeS4KLSAgICAjCi0gICAgIyBlY2hvICJSZWxvYWRpbmcgJERFU0MgY29uZmlndXJhdGlvbiBmaWxlcy4iCi0gICAgIyBzdGFydC1zdG9wLWRhZW1vbiAtLXN0b3AgLS1zaWduYWwgMSAtLXF1aWV0IC0tcGlkZmlsZSBcCi0gICAgIyAgIC92YXIvcnVuLyROQU1FLnBpZCAtLWV4ZWMgJERBRU1PTgotICAjOzsKLSAgcmVzdGFydHxmb3JjZS1yZWxvYWQpCi0gICAgIwotICAgICMgICBJZiB0aGUgInJlbG9hZCIgb3B0aW9uIGlzIGltcGxlbWVudGVkLCBtb3ZlIHRoZSAiZm9yY2UtcmVsb2FkIgotICAgICMgICBvcHRpb24gdG8gdGhlICJyZWxvYWQiIGVudHJ5IGFib3ZlLiBJZiBub3QsICJmb3JjZS1yZWxvYWQiIGlzCi0gICAgIyAgIGp1c3QgdGhlIHNhbWUgYXMgInJlc3RhcnQiLgotICAgICMKLSAgICBkb19zdG9wCi0gICAgc2xlZXAgNQotICAgIGRvX3N0YXJ0Ci0gICAgOzsKLSAgKikKLSAgICBOPS9ldGMvaW5pdC5kLyROQU1FCi0gICAgZWNobyAiVXNhZ2U6ICROIHtzdGFydHxzdG9wfHJlc3RhcnR8cmVsb2FkfGZvcmNlLXJlbG9hZHxzdGF0dXN9IiA+JjIKLSAgICBleGl0IDEKLSAgICA7OwotZXNhYwotCi1leGl0IDAKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvdGhlbWVzL2dub21lLXRoZW1lcy9kcm9wLWxvY2FsZWRpci1vdmVycmlkZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3RoZW1lcy9nbm9tZS10aGVtZXMvZHJvcC1sb2NhbGVkaXItb3ZlcnJpZGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzNzQ4MmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvdGhlbWVzL2dub21lLXRoZW1lcy9kcm9wLWxvY2FsZWRpci1vdmVycmlkZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLUNhdXNlcyBsb2NhbGUgZmlsZSB0byBiZSBpbnN0YWxsZWQgaW4gL3Vzci9sb2NhbGUgaW5zdGVhZCBvZiAvdXNyL3NoYXJlL2xvY2FsZQotCi1BcHBseSB0aGUgc2FtZSBmaXggYXMgaW4gZXZvbHV0aW9uLWRhdGEtc2VydmVyOgotaHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dzZS9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvY29tbWl0L2NvbmZpZ3VyZS5hYz9pZD1lYzQ2Yzc2M2U5MzQyZjYwNGI3MjI4YzY2MDYyM2QyNzFkZmViMTAxCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1kaWZmIC11TnIgZ25vbWUtdGhlbWVzLTIuMzIuMS5vcmlnL2NvbmZpZ3VyZS5pbiBnbm9tZS10aGVtZXMtMi4zMi4xL2NvbmZpZ3VyZS5pbgotLS0tIGdub21lLXRoZW1lcy0yLjMyLjEub3JpZy9jb25maWd1cmUuaW4JMjAxNS0wOS0xOCAxNTowMToyNS4xNTIwNTU3MjkgKzAyMDAKLSsrKyBnbm9tZS10aGVtZXMtMi4zMi4xL2NvbmZpZ3VyZS5pbgkyMDE1LTA5LTE4IDE1OjA5OjAzLjMxMjA3MjE1NiArMDIwMAotQEAgLTE5LDExICsxOSw2IEBACi0gCi0gQU1fR0xJQl9HTlVfR0VUVEVYVAotIAotLSMgQU1fR0xJQl9HTlVfR0VUVEVYVCBhYm92ZSBzdWJzdC4gJERBVEFESVJOQU1FCi0tIyB0aGlzIGlzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlICoue21vLGdtb30gZmlsZXMgYXJlIGluc3RhbGxlZAotLWxvY2FsZWRpcj0nJHtwcmVmaXh9LyR7REFUQURJUk5BTUV9L2xvY2FsZScKLS1BQ19TVUJTVChsb2NhbGVkaXIpCi0tCi0gIyBXb3JrYXJvdW5kIHRvIG1ha2UgYWNsb2NhbCBnZXQgdGhlIHJpZ2h0IGZsYWdzCi0gQUNfU1VCU1QoQUNMT0NBTF9BTUZMQUdTLCAiXCR7QUNMT0NBTF9GTEFHU30iKQotIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvdGhlbWVzL2dub21lLXRoZW1lcy9pY29ucGF0aC1vcHRpb24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS90aGVtZXMvZ25vbWUtdGhlbWVzL2ljb25wYXRoLW9wdGlvbi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWI0MDk2ZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1nbm9tZS90aGVtZXMvZ25vbWUtdGhlbWVzL2ljb25wYXRoLW9wdGlvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLQotVGhlIHBhdGNoIGlzIHBvcnRlZCBmcm9tIHNhdG8taWNvbi10aGVtZS4KLQotcGtnLWNvbmZpZyB3aWxsIG9ubHkgc2VhcmNoIHRoZSB0YXJnZXQgc3lzcm9vdCBhbmQgd2Ugd2FudCB0aGUgbmF0aXZlIHNjcmlwdC4gVGhpcyAKLXBhdGNoIGFkZHMgYW4gb3B0aW9uIHRvIGFsbG93IHRoZSBwYXRoIHRvIHRoZSB0b29sIHRvIGJlIHNwZWNpZmllZC4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi1TaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi0gY29uZmlndXJlLmluIHwgICAyNiArKysrKysrKysrKysrKysrLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgotaW5kZXggNWY3YTE4Yy4uZThmYzMxZSAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5pbgotKysrIGIvY29uZmlndXJlLmluCi1AQCAtNzQsMTYgKzc0LDIyIEBAIEFDX0FSR19FTkFCTEUoW2ljb24tbWFwcGluZ10sCi0gSUNPTk1BUD0idHJ1ZSIKLSBpZiB0ZXN0ICJ4JGVuYWJsZV9tYXBwaW5nIiAhPSAieG5vIjsgdGhlbgotICAgIFVUSUxTX1JFUVVJUkVEPTAuOC43Ci0tCi0tICAgQUNfTVNHX0NIRUNLSU5HKFtpY29uLW5hbWluZy11dGlscyA+PSAkVVRJTFNfUkVRVUlSRURdKQotLSAgIFBLR19DSEVDS19FWElTVFMoaWNvbi1uYW1pbmctdXRpbHMgPj0gJFVUSUxTX1JFUVVJUkVELCBoYXZlX3V0aWxzPXllcywgaGF2ZV91dGlscz1ubykKLS0gICBpZiB0ZXN0ICJ4JGhhdmVfdXRpbHMiID0gInh5ZXMiOyB0aGVuCi0tICAgICAgVVRJTFNfUEFUSD0iYCRQS0dfQ09ORklHIC0tdmFyaWFibGU9cHJvZ3JhbV9wYXRoIGljb24tbmFtaW5nLXV0aWxzYCIKLS0gICAgICBJQ09OTUFQPSIkVVRJTFNfUEFUSC9pY29uLW5hbWUtbWFwcGluZyIKLS0gICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotLSAgIGVsc2UKLS0JQUNfTVNHX1JFU1VMVChbbm9dKQotLSAgIAlBQ19NU0dfRVJST1IoW2ljb24tbmFtaW5nLXV0aWxzID49ICRVVElMU19SRVFVSVJFRCBpcyByZXF1aXJlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBnbm9tZS10aGVtZXNdKQotKyAgIFBLR19QUk9HX1BLR19DT05GSUcoKQotKyAgIEFDX0FSR19XSVRIKGljb25tYXAsCi0rICAgCSAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLWljb25tYXA9PGRpcj5dLCBbVGhlIGxvY2F0aW9uIG9mIHRoZSBpY29uLW5hbWUtbWFwcGluZyBzY3JpcHQgdG8gdXNlXSksCi0rICAgCSAgICBJQ09OTUFQPSR3aXRodmFsLCBJQ09OTUFQPSIiKQotKyAgIGlmIHRlc3QgIngkSUNPTk1BUCIgPSAieCI7IHRoZW4KLSsgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ljb24tbmFtaW5nLXV0aWxzID49ICRVVElMU19SRVFVSVJFRF0pCi0rICAgICAgUEtHX0NIRUNLX0VYSVNUUyhpY29uLW5hbWluZy11dGlscyA+PSAkVVRJTFNfUkVRVUlSRUQsIGhhdmVfdXRpbHM9eWVzLCBoYXZlX3V0aWxzPW5vKQotKyAgICAgIGlmIHRlc3QgIngkaGF2ZV91dGlscyIgPSAieHllcyI7IHRoZW4KLSsgICAgICAgICBVVElMU19QQVRIPSJgJFBLR19DT05GSUcgLS12YXJpYWJsZT1wcm9ncmFtX3BhdGggaWNvbi1uYW1pbmctdXRpbHNgIgotKyAgICAgICAgIElDT05NQVA9IiRVVElMU19QQVRIL2ljb24tbmFtZS1tYXBwaW5nIgotKwotKyAgICAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCi0rICAgICAgZWxzZQotKyAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgICBBQ19NU0dfRVJST1IoW2ljb24tbmFtaW5nLXV0aWxzID49ICRVVElMU19SRVFVSVJFRCBpcyByZXF1aXJlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBnbm9tZS10aGVtZXMiXSkKLSsgICAgICBmaQotICAgIGZpCi0gZmkKLSBBQ19TVUJTVChJQ09OTUFQKQotLS0gCi0xLjcuOS41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLWdub21lL3RoZW1lcy9nbm9tZS10aGVtZXNfMi4zMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvdGhlbWVzL2dub21lLXRoZW1lc18yLjMyLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhODlmNDguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtZ25vbWUvdGhlbWVzL2dub21lLXRoZW1lc18yLjMyLjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1TVU1NQVJZID0gIkdOT01FIHRoZW1lcyIKLUxJQ0VOU0UgPSAiTEdQTHYyLjEiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0yYjU0M2RjOTdlYjc1OTRkMDI2YWYzOWQ5YjU0MjA0YiIKLQotUFIgPSAicjMiCi0KLVNFQ1RJT04gPSAieDExL2dub21lIgotREVQRU5EUyA9ICJndGstZW5naW5lcyBpY29uLW5hbWluZy11dGlscyBpY29uLW5hbWluZy11dGlscy1uYXRpdmUgXAotICAgICAgICAgICBnbGliLTIuMCBpbnRsdG9vbC1uYXRpdmUgbGlieG1sLXNpbXBsZS1wZXJsLW5hdGl2ZSBcCi0gICAgICAgICAgIGdsaWItMi4wLW5hdGl2ZSBcCi0iCi1SREVQRU5EU18ke1BOfSA9ICJhZHdhaXRhLWljb24tdGhlbWUiCi0KLUVYVFJBX09FQ09ORiArPSAiLS1lbmFibGUtYWxsLXRoZW1lcyBcCi0gICAgLS13aXRoLWljb25tYXA9JHtTVEFHSU5HX0xJQkVYRUNESVJfTkFUSVZFfS9pY29uLW5hbWUtbWFwcGluZyBcCi0iCi0KLWluaGVyaXQgZ25vbWViYXNlIHBlcmxuYXRpdmUKLQotUEFDS0FHRVMgPSsgIiBnbm9tZS10aGVtZS1jcnV4IGdub21lLXRoZW1lLWhpZ2hjb250cmFzdCBnbm9tZS10aGVtZS1oaWdoY29udHJhc3RpbnZlcnNlIGdub21lLXRoZW1lLWhpZ2hjb250cmFzdGxhcmdlcHJpbnQgZ25vbWUtdGhlbWUtaGlnaGNvbnRyYXN0bGFyZ2VwcmludGludmVyc2UgZ25vbWUtdGhlbWUtbGFyZ2VwcmludCBnbm9tZS10aGVtZS1taXN0IgotRklMRVNfZ25vbWUtdGhlbWUtY3J1eCA9ICIke2RhdGFkaXJ9L3RoZW1lcy9DcnV4ICR7ZGF0YWRpcn0vaWNvbnMvQ3J1eCIKLUZJTEVTX2dub21lLXRoZW1lLWhpZ2hjb250cmFzdCA9ICIke2RhdGFkaXJ9L3RoZW1lcy9IaWdoQ29udHJhc3QgJHtkYXRhZGlyfS9pY29ucy9IaWdoQ29udHJhc3QiCi1GSUxFU19nbm9tZS10aGVtZS1oaWdoY29udHJhc3RpbnZlcnNlID0gIiR7ZGF0YWRpcn0vdGhlbWVzL0hpZ2hDb250cmFzdEludmVyc2UgJHtkYXRhZGlyfS9pY29ucy9IaWdoQ29udHJhc3RJbnZlcnNlIgotRklMRVNfZ25vbWUtdGhlbWUtaGlnaGNvbnRyYXN0bGFyZ2VwcmludCA9ICIke2RhdGFkaXJ9L3RoZW1lcy9IaWdoQ29udHJhc3RMYXJnZVByaW50ICR7ZGF0YWRpcn0vaWNvbnMvSGlnaENvbnRyYXN0TGFyZ2VQcmludCIKLUZJTEVTX2dub21lLXRoZW1lLWhpZ2hjb250cmFzdGxhcmdlcHJpbnRpbnZlcnNlID0gIiR7ZGF0YWRpcn0vdGhlbWVzL0hpZ2hDb250cmFzdExhcmdlUHJpbnRJbnZlcnNlICR7ZGF0YWRpcn0vaWNvbnMvSGlnaENvbnRyYXN0TGFyZ2VQcmludEludmVyc2UiCi1GSUxFU19nbm9tZS10aGVtZS1sYXJnZXByaW50ID0gIiR7ZGF0YWRpcn0vdGhlbWVzL0xhcmdlUHJpbnQgJHtkYXRhZGlyfS9pY29ucy9MYXJnZVByaW50IgotRklMRVNfZ25vbWUtdGhlbWUtbWlzdCA9ICIke2RhdGFkaXJ9L3RoZW1lcy9NaXN0ICR7ZGF0YWRpcn0vaWNvbnMvTWlzdCIKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vdGhlbWVzICR7ZGF0YWRpcn0vaWNvbnMiCi0KLVNSQ19VUkkgKz0gImZpbGU6Ly9pY29ucGF0aC1vcHRpb24ucGF0Y2ggXAotICAgIGZpbGU6Ly9kcm9wLWxvY2FsZWRpci1vdmVycmlkZS5wYXRjaCBcCi0iCi1TUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICI0MWRiOWUzY2IyNWQzNWFmMjY3NWM1OTllNjc5NDRkMSIKLVNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjg2MDFlZTI0YzJlMDk2NTkzMjIxY2JkNmViZGI2Njg2MDQyMjI1YTAzYzAyYTAxYzBkNjdjMTYzZjlmZWJkMWEiCi1HTk9NRV9DT01QUkVTU19UWVBFPSJiejIiCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLXN1cHBvcnQvZmxvcmVuY2UvZmxvcmVuY2VfMC42LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L2Zsb3JlbmNlL2Zsb3JlbmNlXzAuNi4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOWI3ZDBjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLXN1cHBvcnQvZmxvcmVuY2UvZmxvcmVuY2VfMC42LjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1TVU1NQVJZID0gIkZsb3JlbmNlIGlzIGEgdmlydHVhbCBrZXlib2FyZCBmb3IgdG91Y2ggc2NyZWVucyIKLUhPTUVQQUdFID0gImh0dHA6Ly9mbG9yZW5jZS5zb3VyY2Vmb3JnZS5uZXQvZW5nbGlzaC5odG1sIgotCi0jTk9USUNFOiBJZiBmbG9yZW5jZSBjYW4ndCBmaW5kIGl0cyBnY29uZiBzZXR0aW5ncywgeW91IG5lZWQgdG8gc3RhcnQgZmxvcmVuY2Ugd2l0aCAtLWNvbmZpZyBmb3Igb25lIHRpbWUgYW5kIHNhdmUgdGhlIGNvbmZpZ3VyYXRpb24gb25jZS4KLQotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgotCi1ERVBFTkRTID0gImd0ayszIGxpYnhtbDIgbGliZ2xhZGUgbGlicnN2ZyBsaWJ4dHN0IGdjb25mIGdjb25mLW5hdGl2ZSBjYWlybyBpbnRsdG9vbC1uYXRpdmUgZ25vbWUtZG9jLXV0aWxzIGxpYm5vdGlmeSBnc3RyZWFtZXIxLjAiCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3Byb2plY3QvJHtQTn0vJHtQTn0vJHtQVn0vJHtQTn0tJHtQVn0udGFyLmJ6MiIKLVNSQ19VUklbbWQ1c3VtXSA9ICI4Nzc1MDUxZDczNTJmNzVkZWM1YTg2ZGM5OTY0ZThlMCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI0MjI5OTJmZDA3ZDI4NWJlNzNjY2U3MjFhMjAzZTIyY2VlMjEzMjBkNjliMGZkYTE1NzljZTYyOTQ0YzUwOTFlIgotCi1pbmhlcml0IGdldHRleHQgYXV0b3Rvb2xzIGdjb25mIHBrZ2NvbmZpZwotCi1FWFRSQV9PRUNPTkYgPSAiLS1kaXNhYmxlLXNjcm9sbGtlZXBlciAtLXdpdGhvdXQtZG9jcyAtLXdpdGhvdXQtYXQtc3BpIC0td2l0aG91dC1wYW5lbGFwcGxldCAtLXdpdGhvdXQteHJlY29yZCIKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vZ2xpYi0yLjAvc2NoZW1hcyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLXN1cHBvcnQva2V5YmluZGVyL2tleWJpbmRlcl8zLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L2tleWJpbmRlci9rZXliaW5kZXJfMy4wLmJiCmluZGV4IGQ2NzQ0YTMuLjBhMGEzZTYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLXN1cHBvcnQva2V5YmluZGVyL2tleWJpbmRlcl8zLjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC9rZXliaW5kZXIva2V5YmluZGVyXzMuMC5iYgpAQCAtMTgsNyArMTgsOSBAQAogCiBSREVQRU5EU18ke1BOfSA9ICJndGsrIgogCi1pbmhlcml0IGF1dG90b29scyBndGstZG9jIGdvYmplY3QtaW50cm9zcGVjdGlvbgoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIGd0ay1kb2MgZ29iamVjdC1pbnRyb3NwZWN0aW9uCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiBkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKIAl0b3VjaCAke1N9L0NoYW5nZUxvZwogfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC9vbmJvYXJkL29uYm9hcmRfMS40LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L29uYm9hcmQvb25ib2FyZF8xLjQuMS5iYgppbmRleCAxMDc2NWVlLi40ZTQ5YmVjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L29uYm9hcmQvb25ib2FyZF8xLjQuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L29uYm9hcmQvb25ib2FyZF8xLjQuMS5iYgpAQCAtMTAsNyArMTAsOSBAQAogU1JDX1VSSVttZDVzdW1dID0gIjFhMmZiZTgyZTkzNGY1YjM3ODQxZDE3ZmY1MWU4MGU4IgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjAxY2FlMWFjNWIxZWYxYWI5ODViZDJkMmQ3OWRlZDZmYzk5ZWUwNGIxNTM1Y2MxYmIxOTFlNDNhMjMxYTM4NjUiCiAKLWluaGVyaXQgc2V0dXB0b29sczMgcGtnY29uZmlnIGd0ay1pY29uLWNhY2hlIGdzZXR0aW5ncworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgc2V0dXB0b29sczMgcGtnY29uZmlnIGd0ay1pY29uLWNhY2hlIGdzZXR0aW5ncworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBGSUxFU18ke1BOfSArPSAiIFwKICAgICAke2RhdGFkaXJ9L2RidXMtMSBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvOTB0cmFja2VyIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC90cmFja2VyL2ZpbGVzLzkwdHJhY2tlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTU5NGI5MS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvOTB0cmFja2VyCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0jIS9iaW4vc2gKLQotL3Vzci9iaW4vdHJhY2tlcmQgLW0gJgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvdHJhY2tlci1kYnVzLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvdHJhY2tlci1kYnVzLnNlcnZpY2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5N2Y0OWEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC90cmFja2VyL2ZpbGVzL3RyYWNrZXItZGJ1cy5zZXJ2aWNlCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotW1VuaXRdCi1EZXNjcmlwdGlvbj10cmFja2VyIERCdXMgc2Vzc2lvbiBidXMgaGFuZGxlcgotQmVmb3JlPXRyYWNrZXItc3RvcmUuc2VydmljZQotQWZ0ZXI9ZGJ1cy5zZXJ2aWNlCi1SZXF1aXJlcz1kYnVzLnNlcnZpY2UKLUJpbmRUbz10cmFja2VyLXN0b3JlLnNlcnZpY2UKLQotW1NlcnZpY2VdCi1UeXBlPWZvcmtpbmcKLUVudmlyb25tZW50RmlsZT0tL3RtcC90cmFja2VyLmVudgotRXhlY1N0YXJ0UHJlPUBCQVNFX0JJTkRJUkAvcm0gLXJmIC90bXAvdHJhY2tlci5lbnYKLUV4ZWNTdGFydD0vYmluL3NoIC1jICdlY2hvICJEQlVTX1NFU1NJT05fQlVTX0FERFJFU1M9YGRidXMtZGFlbW9uIC0tZm9yayAtLXNlc3Npb24gLS1wcmludC1hZGRyZXNzYCIgPiAvdG1wL3RyYWNrZXIuZW52JwotCi1bSW5zdGFsbF0KLVdhbnRlZEJ5PW11bHRpLXVzZXIudGFyZ2V0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvdHJhY2tlci1taW5lci1mcy5zZXJ2aWNlIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC90cmFja2VyL2ZpbGVzL3RyYWNrZXItbWluZXItZnMuc2VydmljZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzRkOWExZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvdHJhY2tlci1taW5lci1mcy5zZXJ2aWNlCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotW1VuaXRdCi1EZXNjcmlwdGlvbj10cmFja2VyLW1pbmVyLWZzCi1BZnRlcj1zeXNsb2cudGFyZ2V0IGxvY2FsLWZzLnRhcmdldCB1ZGV2LnNlcnZpY2UgZGJ1cy5zZXJ2aWNlIHRyYWNrZXItc3RvcmUuc2VydmljZQotUmVxdWlyZXM9dHJhY2tlci1zdG9yZS5zZXJ2aWNlCi0KLVtTZXJ2aWNlXQotRW52aXJvbm1lbnQ9SE9NRT0vaG9tZS9yb290Ci1FbnZpcm9ubWVudEZpbGU9LS90bXAvdHJhY2tlci5lbnYKLUV4ZWNTdGFydD1ATElCRVhFQ0RJUkAvdHJhY2tlci1taW5lci1mcwotCi1bSW5zdGFsbF0KLVdhbnRlZEJ5PW11bHRpLXVzZXIudGFyZ2V0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvdHJhY2tlci1zdG9yZS5zZXJ2aWNlIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC90cmFja2VyL2ZpbGVzL3RyYWNrZXItc3RvcmUuc2VydmljZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzUwMzdmMy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3RyYWNrZXIvZmlsZXMvdHJhY2tlci1zdG9yZS5zZXJ2aWNlCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotW1VuaXRdCi1EZXNjcmlwdGlvbj10cmFja2VyLXN0b3JlCi1BZnRlcj1zeXNsb2cudGFyZ2V0IGxvY2FsLWZzLnRhcmdldCBkYnVzLnNlcnZpY2UKLVJlcXVpcmVzPWRidXMuc2VydmljZSB0cmFja2VyLWRidXMuc2VydmljZQotQmluZFRvPXRyYWNrZXItZGJ1cy5zZXJ2aWNlCi0KLVtTZXJ2aWNlXQotRW52aXJvbm1lbnRGaWxlPS0vdG1wL3RyYWNrZXIuZW52Ci1FeGVjU3RhcnQ9QExJQkVYRUNESVJAL3RyYWNrZXItc3RvcmUKLQotW0luc3RhbGxdCi1XYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC91c2VybW9kZS91c2VybW9kZV8xLjExMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9yZWNpcGVzLXN1cHBvcnQvdXNlcm1vZGUvdXNlcm1vZGVfMS4xMTEuYmIKaW5kZXggYzJkNzMyOC4uM2FlYTJlNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3JlY2lwZXMtc3VwcG9ydC91c2VybW9kZS91c2VybW9kZV8xLjExMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtZ25vbWUvcmVjaXBlcy1zdXBwb3J0L3VzZXJtb2RlL3VzZXJtb2RlXzEuMTExLmJiCkBAIC0yMyw3ICsyMyw4IEBACiAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgogCi1pbmhlcml0IGF1dG90b29scyBnZXR0ZXh0IHBrZ2NvbmZpZworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIGdldHRleHQgcGtnY29uZmlnCiAKIEVYVFJBX09FTUFLRSArPSAiSU5TVEFMTD0naW5zdGFsbCAtcCciCiAKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEgcGFtIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWdub21lL3NpdGUvcmlzY3Y2NC1saW51eCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9zaXRlL3Jpc2N2NjQtbGludXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNhNDFlYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1nbm9tZS9zaXRlL3Jpc2N2NjQtbGludXgKQEAgLTAsMCArMSwxNiBAQAorIyBsaWJpZGwKK2xpYklETF9jdl9sb25nX2xvbmdfZm9ybWF0PSR7bGliSURMX2N2X2xvbmdfbG9uZ19mb3JtYXQ9bGx9CisKKyMgT1JCaXQyCithY19jdl9hbGlnbm9mX0NPUkJBX2Jvb2xlYW49MQorYWNfY3ZfYWxpZ25vZl9DT1JCQV9jaGFyPTEKK2FjX2N2X2FsaWdub2ZfQ09SQkFfZG91YmxlPTgKK2FjX2N2X2FsaWdub2ZfQ09SQkFfZmxvYXQ9NAorYWNfY3ZfYWxpZ25vZl9DT1JCQV9sb25nPTQKK2FjX2N2X2FsaWdub2ZfQ09SQkFfbG9uZ19kb3VibGU9OAorYWNfY3ZfYWxpZ25vZl9DT1JCQV9sb25nX2xvbmc9OAorYWNfY3ZfYWxpZ25vZl9DT1JCQV9vY3RldD0xCithY19jdl9hbGlnbm9mX0NPUkJBX3BvaW50ZXI9NAorYWNfY3ZfYWxpZ25vZl9DT1JCQV9zaG9ydD0yCithY19jdl9hbGlnbm9mX0NPUkJBX3N0cnVjdD0xCithY19jdl9hbGlnbm9mX0NPUkJBX3djaGFyPTIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvUkVBRE1FIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9SRUFETUUKaW5kZXggYjdkYmZlZi4uNzE4NTM4MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9SRUFETUUKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9SRUFETUUKQEAgLTEyLDcgKzEyLDcgQEAKIFRoaXMgbGF5ZXIgZGVwZW5kcyBvbjoKIAogVVJJOiBnaXQ6Ly9naXRodWIuY29tL29wZW5lbWJlZGRlZC9vZS1jb3JlLmdpdAotYnJhbmNoOiByb2NrbworYnJhbmNoOiBtYXN0ZXIKIHJldmlzaW9uOiBIRUFECiAKIApAQCAtMjAsMTMgKzIwLDEyIEBACiAtLS0tLS0tLS0tLQogCiBTZW5kIHBhdGNoZXMgLyBwdWxsIHJlcXVlc3RzIHRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnCi13aXRoICdbbWV0YS1pbml0cmFtZnNdW3JvY2tvXScgaW4gdGhlIHN1YmplY3QuCit3aXRoICdbbWV0YS1pbml0cmFtZnNdJyBpbiB0aGUgc3ViamVjdC4KIAogV2hlbiBzZW5kaW5nIHNpbmdsZSBwYXRjaGVzLCBwbGVhc2UgdXNpbmcgc29tZXRoaW5nIGxpa2U6Ci0nZ2l0IHNlbmQtZW1haWwgLU0gLTEgLS10byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyAtLXN1YmplY3QtcHJlZml4PW1ldGEtaW5pdHJhbWZzXVtyb2Nrb11bUEFUQ0gnCisnZ2l0IHNlbmQtZW1haWwgLU0gLTEgLS10byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyAtLXN1YmplY3QtcHJlZml4PW1ldGEtaW5pdHJhbWZzXVtQQVRDSCcKIAotcm9ja28gQnJhbmNoIE1haW50YWluZXI6Ci1Bcm1pbiBLdXN0ZXIgPGFrdXN0ZXI4MDhAZ21haWwuY29tPgorSW50ZXJtIGxheWVyIG1haW50YWluZXI6IEFybWluIEt1c3RlciA8YWt1c3RlcjgwOEBnbWFpbC5jb20+CiAKIAogTGljZW5zZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9jb25mL2xheWVyLmNvbmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL2NvbmYvbGF5ZXIuY29uZgppbmRleCBkOWI3YzRjLi45N2FmYzkzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL2NvbmYvbGF5ZXIuY29uZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL2NvbmYvbGF5ZXIuY29uZgpAQCAtMTYsNiArMTYsOCBAQAogQkJGSUxFX1BSSU9SSVRZX21ldGEtaW5pdHJhbWZzID0gIjgiCiBMQVlFUkRFUEVORFNfbWV0YS1pbml0cmFtZnMgPSAiY29yZSIKIAorTEFZRVJTRVJJRVNfQ09NUEFUX21ldGEtaW5pdHJhbWZzID0gInN1bW8iCisKIFNJR0dFTl9FWENMVURFX1NBRkVfUkVDSVBFX0RFUFMgKz0gIiBcCiAgIGRyYWN1dC0+dmlydHVhbC9rZXJuZWwgXAogIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWJzcC9pbWFnZXMvaW5pdHJhbWZzLWtleGVjYm9vdC1rbGliYy1pbWFnZS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1ic3AvaW1hZ2VzL2luaXRyYW1mcy1rZXhlY2Jvb3Qta2xpYmMtaW1hZ2UuYmIKaW5kZXggNmI4NDViZC4uM2E4ZDlmNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWJzcC9pbWFnZXMvaW5pdHJhbWZzLWtleGVjYm9vdC1rbGliYy1pbWFnZS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtYnNwL2ltYWdlcy9pbml0cmFtZnMta2V4ZWNib290LWtsaWJjLWltYWdlLmJiCkBAIC04LDUgKzgsNSBAQAogCiBweXRob24gKCkgewogICAgIGlmIGQuZ2V0VmFyKCdUQVJHRVRfQVJDSCcpID09ICJuaW9zMiI6Ci0gICAgICAgIHJhaXNlIGJiLnBhcnNlLlNraXBQYWNrYWdlKCInbmlvczInIG5vdCBzdXBwb3J0ZWQgYXJjaCIpCisgICAgICAgIHJhaXNlIGJiLnBhcnNlLlNraXBSZWNpcGUoIiduaW9zMicgbm90IHN1cHBvcnRlZCBhcmNoIikKIH0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9kcmFjdXQvZHJhY3V0X2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9kcmFjdXQvZHJhY3V0X2dpdC5iYgppbmRleCBlMTg0MDlkLi5jY2Y5ZjZhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvZHJhY3V0L2RyYWN1dF9naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2RyYWN1dC9kcmFjdXRfZ2l0LmJiCkBAIC02LDEwICs2LDEwIEBACiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKIAogUEUgPSAiMSIKLVBWID0gIjA0NStnaXQke1NSQ1JFVn0iCitQViA9ICIwNDYrZ2l0JHtTUkNSRVZ9IgogCi0jIHYwNDUgdGFnCi1TUkNSRVYgPSAiMzljOWI2N2Y4NjE0NTk1M2FhMzBkZWY5ZDc3YzY4NTk3YTRjY2ZlOCIKKyMgdjA0NiB0YWcKK1NSQ1JFViA9ICJhMDc5OWZmYjU1NDQ4N2EzNzBjMmExYWRhZmFlZGQyMDIxYjZkYzhjIgogU1JDX1VSSSA9ICJnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2Jvb3QvZHJhY3V0L2RyYWN1dC5naXQ7cHJvdG9jb2w9aHR0cCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLXV0aWwuaC1pbmNsdWRlLXN5cy1yZWcuaC13aGVuLWxpYmMtZ2xpYmMucGF0Y2ggXAogICAgICAgICAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvZ3J1YmJ5L2dydWJieV84LjQwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2dydWJieS9ncnViYnlfOC40MC5iYgppbmRleCA1YTk5ODI0Li5kYzNhNzBiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvZ3J1YmJ5L2dydWJieV84LjQwLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9ncnViYnkvZ3J1YmJ5XzguNDAuYmIKQEAgLTQsNiArNCw3IEBACiB6aXBsIChzMzkwKSBib290IGxvYWRlcnMuIEl0IGlzIHByaW1hcmlseSBkZXNpZ25lZCB0byBiZSB1c2VkIGZyb20gc2NyaXB0cyB3aGljaCBpbnN0YWxsIFwKIG5ldyBrZXJuZWxzIGFuZCBuZWVkIHRvIGZpbmQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgYm9vdCBlbnZpcm9ubWVudC4gXAogIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3JoYm9vdC9ncnViYnkiCiBMSUNFTlNFID0gIkdQTHYyKyIKIAogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ODkyZjU2OWE1NTViYTljMDdhNTY4YTdjMGM0ZmE2M2EiCkBAIC0xMSwxOCArMTIsMTUgQEAKIERFUEVORFMgPSAicG9wdCB1dGlsLWxpbnV4IgogREVQRU5EU19hcHBlbmRfbGliYy1tdXNsID0gIiBsaWJleGVjaW5mbyIKIAotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vcmhpbnN0YWxsZXIvJHtCUE59L2FyY2hpdmUvJHtQVn0tMS50YXIuZ3o7ZG93bmxvYWRmaWxlbmFtZT0ke0JQTn0tJHtQVn0tMS50YXIuZ3ogXAorUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICI3OWM1Y2ZhMDJjNTY3ZWZkYzViYjE4Y2RkNTg0Nzg5ZTJlMzVhYTIzIgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3JoYm9vdC9ncnViYnkuZ2l0O3Byb3RvY29sPWh0dHBzOyBcCiAgICAgICAgICAgIGZpbGU6Ly9ncnViYnktcmVuYW1lLWdydWIyLWVkaXRlbnYtdG8tZ3J1Yi1lZGl0ZW52LnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLUFkZC1hbm90aGVyLXZhcmlhYmxlLUxJQlMtdG8tcHJvdmlkZXMtbGlicmFyaWVzLWZyb20ucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAwMi1pbmNsdWRlLXBhdGhzLmgtZm9yLV9QQVRIX01PVU5URUQucGF0Y2ggXAogICAgICAgICAgICAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIxMDA1OTA3YjI3NWQ2ZDkzMzY4ZDA0NTI3NDUzN2Q4NiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4NWYxYzY3ODQ4NGY3NGM4OTc4ZTg2NDM0NTE1OTQ5NjdkZWZjZTQ2M2E4NmMzNWNiMWVlNTZkMTI3NjdhOWRmIgotCi1TID0gIiR7V09SS0RJUn0vJHtCUE59LSR7UFZ9LTEiCi0KIFJERVBFTkRTXyR7UE59ICs9ICJkcmFjdXQiCiAKIGluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwdGVzdApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtRGVmaW5lLWluXy1zdHJ1Y3RzLWZvci1ub24tZ2xpYmMtc3lzdGVtLWxpYnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1EZWZpbmUtaW5fLXN0cnVjdHMtZm9yLW5vbi1nbGliYy1zeXN0ZW0tbGlicy5wYXRjaAppbmRleCA4ZDFlYzY5Li5lN2EwY2NlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1EZWZpbmUtaW5fLXN0cnVjdHMtZm9yLW5vbi1nbGliYy1zeXN0ZW0tbGlicy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1EZWZpbmUtaW5fLXN0cnVjdHMtZm9yLW5vbi1nbGliYy1zeXN0ZW0tbGlicy5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gZjQxNGRlYTEzMTZhNDhhYmEzZThlMjkzMjAxZWJkNTE2NTJkM2VmNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNTdlM2E2MGIyMzg5MTkwNTczM2JmZWE3YTFjYjc4YzIzNzdjYzUyNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBTdW4sIDkgSnVsIDIwMTcgMTU6MTc6MjkgLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gRGVmaW5lIGluXyogc3RydWN0cyBmb3Igbm9uLWdsaWJjIHN5c3RlbSBsaWJzCkBAIC0xMCwxNCArMTAsMzggQEAKIHRvIGluZmVyIHRoYXQgdGhlc2Ugc3RydWN0cyBzaG91bGQgYmUgZGVmaW5lZCBpbiBsaW51eC9pbi5oCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSB1c3IvaW5jbHVkZS9uZXRpbmV0L2luLmggfCAzMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKQogCi1JbmRleDogZ2l0L3Vzci9pbmNsdWRlL25ldGluZXQvaW4uaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdpdC5vcmlnL3Vzci9pbmNsdWRlL25ldGluZXQvaW4uaAotKysrIGdpdC91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgKKy0tLQorIHVzci9pbmNsdWRlL25ldC9pZi5oICAgICB8IDExICsrKysrKysrKysrCisgdXNyL2luY2x1ZGUvbmV0aW5ldC9pbi5oIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS91c3IvaW5jbHVkZS9uZXQvaWYuaCBiL3Vzci9pbmNsdWRlL25ldC9pZi5oCitpbmRleCAxMTZhMTc2Li42MjQ2YjEyIDEwMDY0NAorLS0tIGEvdXNyL2luY2x1ZGUvbmV0L2lmLmgKKysrKyBiL3Vzci9pbmNsdWRlL25ldC9pZi5oCitAQCAtMSw2ICsxLDE3IEBACisgI2lmbmRlZiBfTkVUX0lGX0gKKyAjZGVmaW5lIF9ORVRfSUZfSAorIAorKyNpZm5kZWYgX19HTElCQ19fCisrI2luY2x1ZGUgPGxpbnV4L2xpYmMtY29tcGF0Lmg+CisrI3VuZGVmIF9fVUFQSV9ERUZfSUZfSUZSRVEKKysjZGVmaW5lIF9fVUFQSV9ERUZfSUZfSUZSRVEgICAgICAgICAgICAxCisrI3VuZGVmIF9fVUFQSV9ERUZfSUZfSUZOQU1TSVoKKysjZGVmaW5lIF9fVUFQSV9ERUZfSUZfSUZOQU1TSVogICAgICAgICAxCisrI3VuZGVmIF9fVUFQSV9ERUZfSUZfSUZNQVAKKysjZGVmaW5lIF9fVUFQSV9ERUZfSUZfSUZNQVAgICAgICAgICAgICAxCisrI3VuZGVmIF9fVUFQSV9ERUZfSUZfTkVUX0RFVklDRV9GTEFHUworKyNkZWZpbmUgX19VQVBJX0RFRl9JRl9ORVRfREVWSUNFX0ZMQUdTIDEKKysjZW5kaWYKKyAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAjaW5jbHVkZSA8bGludXgvaWYuaD4KK2RpZmYgLS1naXQgYS91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmggYi91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgKK2luZGV4IDI5NTJiYjIuLjBjOTViYzkgMTAwNjQ0CistLS0gYS91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgKKysrKyBiL3Vzci9pbmNsdWRlL25ldGluZXQvaW4uaAogQEAgLTUsNiArNSw0MiBAQAogICNpZm5kZWYgX05FVElORVRfSU5fSAogICNkZWZpbmUgX05FVElORVRfSU5fSApAQCAtNjEsMjUgKzg1LDMgQEAKICAjaW5jbHVkZSA8a2xpYmMvZXh0ZXJuLmg+CiAgI2luY2x1ZGUgPHN0ZGludC5oPgogICNpbmNsdWRlIDxlbmRpYW4uaD4JCS8qIE11c3QgYmUgaW5jbHVkZWQgKmJlZm9yZSogPGxpbnV4L2luLmg+ICovCi1JbmRleDogZ2l0L3Vzci9pbmNsdWRlL25ldC9pZi5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2l0Lm9yaWcvdXNyL2luY2x1ZGUvbmV0L2lmLmgKLSsrKyBnaXQvdXNyL2luY2x1ZGUvbmV0L2lmLmgKLUBAIC0xLDYgKzEsMTcgQEAKLSAjaWZuZGVmIF9ORVRfSUZfSAotICNkZWZpbmUgX05FVF9JRl9ICi0gCi0rI2lmbmRlZiBfX0dMSUJDX18KLSsjaW5jbHVkZSA8bGludXgvbGliYy1jb21wYXQuaD4KLSsjdW5kZWYgX19VQVBJX0RFRl9JRl9JRlJFUQotKyNkZWZpbmUgX19VQVBJX0RFRl9JRl9JRlJFUSAgICAgICAgICAgIDEKLSsjdW5kZWYgX19VQVBJX0RFRl9JRl9JRk5BTVNJWgotKyNkZWZpbmUgX19VQVBJX0RFRl9JRl9JRk5BTVNJWiAgICAgICAgIDEKLSsjdW5kZWYgX19VQVBJX0RFRl9JRl9JRk1BUAotKyNkZWZpbmUgX19VQVBJX0RFRl9JRl9JRk1BUCAgICAgICAgICAgIDEKLSsjdW5kZWYgX19VQVBJX0RFRl9JRl9ORVRfREVWSUNFX0ZMQUdTCi0rI2RlZmluZSBfX1VBUElfREVGX0lGX05FVF9ERVZJQ0VfRkxBR1MgMQotKyNlbmRpZgotICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0gI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotICNpbmNsdWRlIDxsaW51eC9pZi5oPgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtS2J1aWxkLmtsaWJjLUFkZC1wYXRoLXRvLWNvbXBpbGVyLWhlYWRlcnMtdmlhLWlzeXN0ZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLUtidWlsZC5rbGliYy1BZGQtcGF0aC10by1jb21waWxlci1oZWFkZXJzLXZpYS1pc3lzdGUucGF0Y2gKaW5kZXggN2NkNGMwZS4uMTgxZGNmYiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtS2J1aWxkLmtsaWJjLUFkZC1wYXRoLXRvLWNvbXBpbGVyLWhlYWRlcnMtdmlhLWlzeXN0ZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1LYnVpbGQua2xpYmMtQWRkLXBhdGgtdG8tY29tcGlsZXItaGVhZGVycy12aWEtaXN5c3RlLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSAxMGZiNDQwNzk1YTc3OTYxNDBiZDY1N2VlMDI4ODQ3ZWM3YzM0NDQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA0YjQxNDdiNzY1MThkMzFhODhmYjJjNThjZGJmMjIzNmUxNTlhMjVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IEZyaSwgOCBTZXAgMjAxNyAyMzoxMDo1NCAtMDcwMAogU3ViamVjdDogW1BBVENIXSBLYnVpbGQua2xpYmM6IEFkZCBwYXRoIHRvIGNvbXBpbGVyIGhlYWRlcnMgdmlhIC1pc3lzdGVtCkBAIC03LDEyICs3LDEzIEBACiBzdGRhcmcuaCB3aGljaCBpcyBjYWxsZWQgZnJvbSB3cmFwcGVyIHN0ZGFyZy5oIHVzaW5nIGluY2x1ZGVfbmV4dAogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KLSBzY3JpcHRzL0tidWlsZC5rbGliYyB8IDUgKysrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorIHNjcmlwdHMvS2J1aWxkLmtsaWJjIHwgMyArKy0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9zY3JpcHRzL0tidWlsZC5rbGliYyBiL3NjcmlwdHMvS2J1aWxkLmtsaWJjCi1pbmRleCBmNTAwZDUzNS4uMWQ1Y2RjNDMgMTAwNjQ0CitpbmRleCAxMDFmODZmLi4xZDVjZGM0IDEwMDY0NAogLS0tIGEvc2NyaXB0cy9LYnVpbGQua2xpYmMKICsrKyBiL3NjcmlwdHMvS2J1aWxkLmtsaWJjCiBAQCAtMTA1LDcgKzEwNSw4IEBAIEtMSUJDT0JKQ09QWSAgICAgOj0gJChPQkpDT1BZKQpAQCAtMjUsNiArMjYsMyBAQAogIAkJICAgIC1JJChLTElCQ0lOQykvYXJjaC8kKEtMSUJDQVJDSERJUikJXAogICAgICAgICAgICAgICAgICAgICAgLUkkKEtMSUJDSU5DKS9iaXRzJChLTElCQ0JJVFNJWkUpCVwKICAJCSAgICAtSSQoS0xJQkNPQkopLy4uL2luY2x1ZGUJCVwKLS0tIAotMi4xNC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLUtidWlsZC5rbGliYy1Vc2UtcHJpbnQtbGliZ2NjLWZpbGUtbmFtZS1pbnN0ZWFkLW9mLXAucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1LYnVpbGQua2xpYmMtVXNlLXByaW50LWxpYmdjYy1maWxlLW5hbWUtaW5zdGVhZC1vZi1wLnBhdGNoCmluZGV4IDQxY2MxNDIuLjFiYTA1YTggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLUtidWlsZC5rbGliYy1Vc2UtcHJpbnQtbGliZ2NjLWZpbGUtbmFtZS1pbnN0ZWFkLW9mLXAucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtS2J1aWxkLmtsaWJjLVVzZS1wcmludC1saWJnY2MtZmlsZS1uYW1lLWluc3RlYWQtb2YtcC5wYXRjaApAQCAtMSwxOSArMSwyMCBAQAotRnJvbSBmNjZlZGRlOGE3MDQxMzFkOThlODc4M2VhOGQ0Yzg0OGU4MTE5YjIwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBiNjE4NTQwMWZjM2RhYTdmYThiYTJiODRkYjNlNGRhM2I5NGE5ODY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFdlZCwgMjYgSnVsIDIwMTcgMTY6MTM6MTYgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzNdIEtidWlsZC5rbGliYzogVXNlIC1wcmludC1saWJnY2MtZmlsZS1uYW1lIGluc3RlYWQgb2YKK1N1YmplY3Q6IFtQQVRDSF0gS2J1aWxkLmtsaWJjOiBVc2UgLXByaW50LWxpYmdjYy1maWxlLW5hbWUgaW5zdGVhZCBvZgogIC0tcHJpbnQtbGliZ2NjCiAKIC1wcmludC1saWJnY2MtZmlsZS1uYW1lIHdvcmtzIHdpdGggY2xhbmcgYW5kIGdjYyB1bmxpa2UgLS1wcmludC1saWJnY2MKIHdoaWNoIGlzIGdjYyBzcGVjaWZpYwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBzY3JpcHRzL0tidWlsZC5rbGliYyB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL3NjcmlwdHMvS2J1aWxkLmtsaWJjIGIvc2NyaXB0cy9LYnVpbGQua2xpYmMKLWluZGV4IGY1MDBkNTM1Li4xMDFmODZmNSAxMDA2NDQKK2luZGV4IGY1MDBkNTMuLjEwMWY4NmYgMTAwNjQ0CiAtLS0gYS9zY3JpcHRzL0tidWlsZC5rbGliYwogKysrIGIvc2NyaXB0cy9LYnVpbGQua2xpYmMKIEBAIC0xMjgsNyArMTI4LDcgQEAgS0xJQkNDRkxBR1MgICAgICArPSAkKEtMSUJDQ1BQRkxBR1MpICQoS0xJQkNSRVFGTEFHUykgJChLTElCQ0FSQ0hSRVFGTEFHUykgIFwKQEAgLTI1LDYgKzI2LDMgQEAKICBLTElCQ0xJQkdDQwkgPz0gJChLTElCQ0xJQkdDQ19ERUYpCiAgS0xJQkNDUlQwICAgICAgICA6PSAkKEtMSUJDT0JKKS9hcmNoLyQoS0xJQkNBUkNIRElSKS9jcnQwLm8KICBLTElCQ0xJQkMgICAgICAgIDo9ICQoS0xJQkNPQkopL2xpYmMuYQotLS0gCi0yLjEzLjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtYWx3YXlzLXVzZS1iZmQtbGlua2VyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtYWx3YXlzLXVzZS1iZmQtbGlua2VyLnBhdGNoCmluZGV4IDQxYTZiOWUuLmRlMDRkNjkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWFsd2F5cy11c2UtYmZkLWxpbmtlci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1hbHdheXMtdXNlLWJmZC1saW5rZXIucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDllYTE5YmQ5NjM2ODA2YTczYmNmMjljZmNlZTQwYTI2OGY5MWViNGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDYzYWI1MTAyZDZlZjM2MmE1OTc5NDFlNjI0NzBiZjE5ZTZmMTY1MmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogVHVlLCAxMSBKdWwgMjAxNyAwODowOTo1MiAtMDcwMAogU3ViamVjdDogW1BBVENIXSBhbHdheXMgdXNlIGJmZCBsaW5rZXIKQEAgLTgsMTIgKzgsMTMgQEAKIGxpbmtpbmcgaXNzdWVzIG9uIHN1Y2ggZGlzdHJvcwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBNYWtlZmlsZSB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKLWluZGV4IGRjMTBmYzVkLi40MDY0N2JlNCAxMDA2NDQKK2luZGV4IGRjMTBmYzUuLjQwNjQ3YmUgMTAwNjQ0CiAtLS0gYS9NYWtlZmlsZQogKysrIGIvTWFrZWZpbGUKIEBAIC0yMCw3ICsyMCw3IEBAIGluY2x1ZGUgJChzcmN0cmVlKS9zY3JpcHRzL0tidWlsZC5pbmNsdWRlCkBAIC0yNSw2ICsyNiwzIEBACiAgZXhwb3J0IEFSCTo9ICQoS0xJQkNST1NTKWFyCiAgZXhwb3J0IFJBTkxJQgk6PSAkKEtMSUJDUk9TUylyYW5saWIKICBleHBvcnQgU1RSSVAJOj0gJChLTElCQ1JPU1Mpc3RyaXAKLS0tIAotMi4xMy4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWFybS1Eby1ub3Qtc2V0LWEtZmFsbGJhY2stbWFyY2gtYW5kLW10dW5lLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtYXJtLURvLW5vdC1zZXQtYS1mYWxsYmFjay1tYXJjaC1hbmQtbXR1bmUucGF0Y2gKaW5kZXggOWMwZWE2My4uZmNmNGY4OSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtYXJtLURvLW5vdC1zZXQtYS1mYWxsYmFjay1tYXJjaC1hbmQtbXR1bmUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtYXJtLURvLW5vdC1zZXQtYS1mYWxsYmFjay1tYXJjaC1hbmQtbXR1bmUucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIGE0NmExNDRhYzg4Mzg5OGQ5Y2VkZjdhMGIxM2FlYzZkMTAxMTYxMjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGViZDJiMGU0MTRjOTg0NjcxNTZiOTYxYWJiNDcwYjVkMDdmMzdlYTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogRnJpLCAyOSBTZXAgMjAxNyAyMzoxMTo1MyAtMDcwMAogU3ViamVjdDogW1BBVENIXSBhcm06IERvIG5vdCBzZXQgYSBmYWxsYmFjayBtYXJjaCBhbmQgbXR1bmUKQEAgLTksMTQgKzksMTMgQEAKIHdoaWNoIGlzIGEgYml0IGhhcmRlciBpbiBPRQogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAorLS0tCiAgdXNyL2tsaWJjL2FyY2gvYXJtL01DT05GSUcgfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS91c3Iva2xpYmMvYXJjaC9hcm0vTUNPTkZJRyBiL3Vzci9rbGliYy9hcmNoL2FybS9NQ09ORklHCi1pbmRleCA1M2JjMWRjMy4uODU3ZTJmMmQgMTAwNjQ0CitpbmRleCAzMDNjNmFjLi40OGQyNjg1IDEwMDY0NAogLS0tIGEvdXNyL2tsaWJjL2FyY2gvYXJtL01DT05GSUcKICsrKyBiL3Vzci9rbGliYy9hcmNoL2FybS9NQ09ORklHCiBAQCAtMTAsNyArMTAsNyBAQApAQCAtMjgsNiArMjcsMyBAQAogIEtMSUJDQklUU0laRSAgPSAzMgogIEtMSUJDUkVRRkxBR1MgKz0gLWZuby1leGNlcHRpb25zCiAgS0xJQkNTVFJJUEZMQUdTICs9IC1SIC5BUk0uZXhpZHgKLS0tIAotMi4xNC4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWRhc2gtU3BlY2lmeS1mb3JtYXQtc3RyaW5nLWluLWZtdHN0ci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWRhc2gtU3BlY2lmeS1mb3JtYXQtc3RyaW5nLWluLWZtdHN0ci5wYXRjaAppbmRleCBhZThjMWYxLi40NmEyMzk4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1kYXNoLVNwZWNpZnktZm9ybWF0LXN0cmluZy1pbi1mbXRzdHIucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtZGFzaC1TcGVjaWZ5LWZvcm1hdC1zdHJpbmctaW4tZm10c3RyLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSAyZmZmNjA3ZmQwYjU1NTBlNTA3MmE2ZmZmY2JiMDFjMjlkNTIwN2QyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA4YmVmZmU1MDFjMWFjNWIzNWQ2MjAwNDczNWM0MTU3Yzc0MTgzOTAxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFN1biwgOSBKdWwgMjAxNyAxMzo1MToyNSAtMDcwMAogU3ViamVjdDogW1BBVENIXSBkYXNoOiBTcGVjaWZ5IGZvcm1hdCBzdHJpbmcgaW4gZm10c3RyKCkKQEAgLTksMTIgKzksMTMgQEAKICAgIGNvbCA9IGZtdHN0cihzLCAzMiwgc3Ryc2lnbmFsKHN0KSk7CiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIHVzci9kYXNoL2pvYnMuYyB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL3Vzci9kYXNoL2pvYnMuYyBiL3Vzci9kYXNoL2pvYnMuYwotaW5kZXggMDA5YmJmZWUuLjI5OWJjYWNjIDEwMDY0NAoraW5kZXggMDA5YmJmZS4uMjk5YmNhYyAxMDA2NDQKIC0tLSBhL3Vzci9kYXNoL2pvYnMuYwogKysrIGIvdXNyL2Rhc2gvam9icy5jCiBAQCAtNDI2LDcgKzQyNiw3IEBAIHNwcmludF9zdGF0dXMoY2hhciAqcywgaW50IHN0YXR1cywgaW50IHNpZ29ubHkpCkBAIC0yNiw2ICsyNywzIEBACiAgI2lmZGVmIFdDT1JFRFVNUAogIAkJaWYgKFdDT1JFRFVNUChzdGF0dXMpKSB7CiAgCQkJY29sICs9IGZtdHN0cihzICsgY29sLCAxNiwgIiAoY29yZSBkdW1wZWQpIik7Ci0tLSAKLTIuMTMuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvMDAwMS1pbmNsdWRlLWxpbnV4LXN5c2luZm8uaC1kaXJlY3RseS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWluY2x1ZGUtbGludXgtc3lzaW5mby5oLWRpcmVjdGx5LnBhdGNoCmluZGV4IDFiMDMzYWMuLjA0Yzk3ZmMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWluY2x1ZGUtbGludXgtc3lzaW5mby5oLWRpcmVjdGx5LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLWluY2x1ZGUtbGludXgtc3lzaW5mby5oLWRpcmVjdGx5LnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBhYjA2MGE1N2I0MWY5ODk2NjVhZGUyMGU4MTNiYmNiNjdmOTFmMWYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBkOTY2ZDUyZDFlNTY5Y2JjMjI5M2Q4NDEyODVlMmI4OTQxZjI4YzYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFN1biwgOSBKdWwgMjAxNyAxNTo1NjoyOCAtMDcwMAogU3ViamVjdDogW1BBVENIXSBpbmNsdWRlIGxpbnV4L3N5c2luZm8uaCBkaXJlY3RseQpAQCAtMTAsMTIgKzEwLDEzIEBACiBvdmVycmlkZSB0byBhdm9pZCB0aGlzIGFzc3VtcHRpb24KIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgdXNyL2luY2x1ZGUvc3lzL3N5c2luZm8uaCB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL3Vzci9pbmNsdWRlL3N5cy9zeXNpbmZvLmggYi91c3IvaW5jbHVkZS9zeXMvc3lzaW5mby5oCi1pbmRleCBkYmE2OGRjNi4uZDE0NWMwYjEgMTAwNjQ0CitpbmRleCBkYmE2OGRjLi5kMTQ1YzBiIDEwMDY0NAogLS0tIGEvdXNyL2luY2x1ZGUvc3lzL3N5c2luZm8uaAogKysrIGIvdXNyL2luY2x1ZGUvc3lzL3N5c2luZm8uaAogQEAgLTUsNyArNSw3IEBACkBAIC0yNyw2ICsyOCwzIEBACiAgCiAgZXh0ZXJuIGludCBzeXNpbmZvKHN0cnVjdCBzeXNpbmZvICppbmZvKTsKICAKLS0tIAotMi4xMy4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC8wMDAxLW1rZmlmby1JbXBsZW1lbnQtbWtmaWZvLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtbWtmaWZvLUltcGxlbWVudC1ta2ZpZm8ucGF0Y2gKaW5kZXggOTc5MTQxMi4uM2JjMDgxZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtbWtmaWZvLUltcGxlbWVudC1ta2ZpZm8ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40LzAwMDEtbWtmaWZvLUltcGxlbWVudC1ta2ZpZm8ucGF0Y2gKQEAgLTEsMTUgKzEsMTYgQEAKLUZyb20gYjRlMTIwZjVlZGYwNmU2ZGYxMzhiMTgwNGE4YjUxODA1ODRjZWE2YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gY2Y5NzA3OTAwOWJhNDhkMTBlNTIwNTJiMmVhYjc0NjFlYTRkZDA5YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBNb24sIDEwIEp1bCAyMDE3IDIwOjQyOjUwIC0wNzAwCiBTdWJqZWN0OiBbUEFUQ0hdIG1rZmlmbzogSW1wbGVtZW50IG1rZmlmbwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICB1c3IvdXRpbHMvbWtmaWZvLmMgfCA1ICsrKysrCiAgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQogCiBkaWZmIC0tZ2l0IGEvdXNyL3V0aWxzL21rZmlmby5jIGIvdXNyL3V0aWxzL21rZmlmby5jCi1pbmRleCA1YTc1OGIyYS4uZjFmNTc3ZTYgMTAwNjQ0CitpbmRleCA1YTc1OGIyLi5mMWY1NzdlIDEwMDY0NAogLS0tIGEvdXNyL3V0aWxzL21rZmlmby5jCiArKysgYi91c3IvdXRpbHMvbWtmaWZvLmMKIEBAIC0yNiw2ICsyNiwxMSBAQCBzdGF0aWMgaW50IG1ha2VfZmlmbyhjaGFyICpkaXIpCkBAIC0yNCw2ICsyNSwzIEBACiAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICB7CiAgCWludCBjLCByZXQgPSAwOwotLS0gCi0yLjEzLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40L2FybXY0LWZpeC12NGJ4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40L2FybXY0LWZpeC12NGJ4LnBhdGNoCmluZGV4IDZiYjM4NGIuLmU4NDIzNTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC9hcm12NC1maXgtdjRieC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvYXJtdjQtZml4LXY0YngucGF0Y2gKQEAgLTEsMTEgKzEsMjIgQEAKK0Zyb20gZDJmYjQ4NGQ5OTUyMjEyNzdjY2U3YWJkZGNkN2RmYTBlOGJjZWVjMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMTEgSmFuIDIwMTMgMTc6MjY6NDAgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0ga2xpYmNfMi4wLjI6IGFwcGx5IEZJWF9WNEJYIHBhdGNoIGZvciBhcm12NCB0YXJnZXRzIG9ubHkKKwogU3RhdHVzOiBub3QgYXBwbGljYWJsZSB1cHN0cmVhbSwgaW4gT0UvWW9jdG8gd2UgdXNlICQoRklYX1Y0QlgpCiB3aGljaCBpcyAiIiBpbiBjYXNlIG9mIGFybXY1IG9yIHRodW1icy4KIAogU2lnbmVkLW9mZi1ieTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgogCi0tLS0gYS91c3Iva2xpYmMvYXJjaC9hcm0vTUNPTkZJRwkyMDEzLTAxLTA5IDAxOjEyOjAyLjAwMDAwMDAwMCArMDEwMAotKysrIGIvdXNyL2tsaWJjL2FyY2gvYXJtL01DT05GSUcJMjAxMy0wMS0wOCAyMzo0NTo1OS4wMDAwMDAwMDAgKzAxMDAKLUBAIC0yOSw2ICsyOSw3IEBACistLS0KKyB1c3Iva2xpYmMvYXJjaC9hcm0vTUNPTkZJRyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvdXNyL2tsaWJjL2FyY2gvYXJtL01DT05GSUcgYi91c3Iva2xpYmMvYXJjaC9hcm0vTUNPTkZJRworaW5kZXggNTNiYzFkYy4uMzAzYzZhYyAxMDA2NDQKKy0tLSBhL3Vzci9rbGliYy9hcmNoL2FybS9NQ09ORklHCisrKysgYi91c3Iva2xpYmMvYXJjaC9hcm0vTUNPTkZJRworQEAgLTI5LDYgKzI5LDcgQEAgZWxzZQogIEtMSUJDU0hBUkVERkxBR1MgPSAtVHRleHQgMHgwMTgwMDIwMAogIGlmZXEgKCQoQ09ORklHX0FFQUJJKSx5KQogIEtMSUJDUkVRRkxBR1MgKz0gLW1hYmk9YWFwY3MtbGludXggLW1uby10aHVtYi1pbnRlcndvcmsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC9rbGNjLWNvbnNpZGVyLXN5c3Jvb3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQva2xjYy1jb25zaWRlci1zeXNyb290LnBhdGNoCmluZGV4IDliYzQ4MzUuLjVmNDdkM2YgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC9rbGNjLWNvbnNpZGVyLXN5c3Jvb3QucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40L2tsY2MtY29uc2lkZXItc3lzcm9vdC5wYXRjaApAQCAtMSwzICsxLDExIEBACitGcm9tIDBjYjI2Y2YyZDI1ZDM2YzFmZGNjNGYxNjM1ZTQzMjk0MzZlZDg2NmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CitEYXRlOiBGcmksIDE5IFNlcCAyMDE0IDIzOjA5OjI5ICswMjAwCisKKy0tLQorIGtsY2Mva2xjYy5pbiB8IDMgKysrCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQorCiBkaWZmIC0tZ2l0IGEva2xjYy9rbGNjLmluIGIva2xjYy9rbGNjLmluCiBpbmRleCA0M2QwOTg0Li42MWU5Mzg1IDEwMDY0NAogLS0tIGEva2xjYy9rbGNjLmluCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQva2xpYmMtY29uZmlnLWVhYmkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQva2xpYmMtY29uZmlnLWVhYmkucGF0Y2gKaW5kZXggMzE2YzgwYS4uZjI4Y2Q1NCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40L2tsaWJjLWNvbmZpZy1lYWJpLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC9rbGliYy1jb25maWctZWFiaS5wYXRjaApAQCAtMSwxMiArMSwyMiBAQAorRnJvbSAxMTE4Y2M5NzE5MTdhYmUxOWRkYjAyOWFhODA0MTdmNmZkNmJiMzQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogVGhvbWFzIEt1bnplIDx0aG9tbXljaGVja0BnbXguZGU+CitEYXRlOiBTYXQsIDYgQXVnIDIwMTEgMDU6MzA6MTQgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0ga2xpYmM6IGluaXRpYWwgY29tbWl0IG9mIHZlcnNpb24gMS41LjI0CisKIFBhdGNoIHdhcyBpbXBvcnRlZCBmcm9tIHRoZSBPcGVuRW1iZWRkZWQgZ2l0IHNlcnZlcgogKGdpdDovL2dpdC5vcGVuZW1iZWRkZWQub3JnL29wZW5lbWJlZGRlZCkKIGFzIG9mIGNvbW1pdCBpZCBiNjc2NGNmMzJlYzkzNTQ3NTMxMTMwZGNhMzY0ZmI5NWUxYzQ5NWY0CiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgS3VuemUgPHRob21teWNoZWNrQGdteC5kZT4KIAotZGlmZiAtTnVyIGtsaWJjLTEuNS9kZWZjb25maWcga2xpYmMtMS41cC9kZWZjb25maWcKLS0tLSBrbGliYy0xLjUvZGVmY29uZmlnCTIwMDctMDMtMDQgMDI6NTI6MTAuMDAwMDAwMDAwICswMTAwCi0rKysga2xpYmMtMS41cC9kZWZjb25maWcJMjAwOC0wMi0wOCAxOToyNDoyMi4zMzcxMjc3NTYgKzAxMDAKLUBAIC01LDQgKzUsNCBAQAorLS0tCisgZGVmY29uZmlnIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvZGVmY29uZmlnIGIvZGVmY29uZmlnCitpbmRleCAwNGI5OGU5Li4wY2IyM2QwIDEwMDY0NAorLS0tIGEvZGVmY29uZmlnCisrKysgYi9kZWZjb25maWcKK0BAIC02LDQgKzYsNCBAQCBDT05GSUdfS0xJQkNfWkxJQj15CiAgQ09ORklHX1JFR1BBUk09eQogICMgQVJNIG9wdGlvbnMKICAjIENPTkZJR19LTElCQ19USFVNQiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQva2xpYmMtbGludXgtbGliYy1kZXYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQva2xpYmMtbGludXgtbGliYy1kZXYucGF0Y2gKaW5kZXggMjA0MzA2NC4uYTU1NjNiNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40L2tsaWJjLWxpbnV4LWxpYmMtZGV2LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy0yLjAuNC9rbGliYy1saW51eC1saWJjLWRldi5wYXRjaApAQCAtMSwxNSArMSwyMiBAQAorRnJvbSAxYmUyYmM0MWY5MTU5MjIxMDJhM2JhNjcxYjU0YzJkZjZmMDA1MmU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmVuIEh1dGNoaW5ncyA8YmVuQGRlY2FkZW50Lm9yZy51az4KK0RhdGU6IFN1biwgMTQgTWFyIDIwMTAgMTg6NDE6NTYgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0ga2xpYmNfMS41LjI2OiBub3cgYnVpbGQgYWdhaW5zdCBsaW51eC1saWJjLWhlYWRlcnMKKwogY29tbWl0IDQzYWRmNjkwNjIyNTRmYjRmOGQ0ZDExZmI1ZmUzNmE2MGFlMjVkNWEKLUF1dGhvcjogQmVuIEh1dGNoaW5ncyA8YmVuQGRlY2FkZW50Lm9yZy51az4KLURhdGU6ICAgU3VuIE1hciAxNCAxODo0MTo1NiAyMDEwICswMDAwCiAKICAgICBUYWtlbiBmcm9tIGRlYmlhbiAiRml4IGtsaWJjIERlYmlhbiBzcGVjaWZpYyBidWlsZCB0cm91YmxlIgogICAgIEFkYXB0ZWQgZm9yIGtsaWJjXzIuMC4yCiAKLUluZGV4OiBrbGliYy0yLjB+cmMyL3NjcmlwdHMvS2J1aWxkLmluc3RhbGwKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBrbGliYy0yLjB+cmMyLm9yaWcvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAkyMDEyLTAyLTExIDE4OjUwOjIxLjAwMDAwMDAwMCArMDAwMAotKysrIGtsaWJjLTIuMH5yYzIvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAkyMDEyLTAyLTExIDE5OjA0OjUyLjAwMDAwMDAwMCArMDAwMAotQEAgLTk1LDcgKzk1LDkgQEAKKy0tLQorIHNjcmlwdHMvS2J1aWxkLmluc3RhbGwgfCA0ICsrKy0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zY3JpcHRzL0tidWlsZC5pbnN0YWxsIGIvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAoraW5kZXggOGFmNTY5Ny4uZDMyYThhNSAxMDA2NDQKKy0tLSBhL3NjcmlwdHMvS2J1aWxkLmluc3RhbGwKKysrKyBiL3NjcmlwdHMvS2J1aWxkLmluc3RhbGwKK0BAIC05NSw3ICs5NSw5IEBAIGhlYWRlcjoKICAJJChRKW1rZGlyIC1wICQoSU5TVEFMTFJPT1QpJChJTlNUQUxMRElSKS8kKEtDUk9TUylpbmNsdWRlCiAgCSQoUSlta2RpciAtcCAkKElOU1RBTExST09UKSQoSU5TVEFMTERJUikvJChLQ1JPU1MpbGliCiAgCSQoUSlta2RpciAtcCAkKElOU1RBTExST09UKSQoSU5TVEFMTERJUikvJChLQ1JPU1MpYmluCkBAIC0xOCw1ICsyNSw1IEBACiArCQlsbiAtc2YgJCR7eH0gJChJTlNUQUxMUk9PVCkkKElOU1RBTExESVIpLyQoS0NST1NTKWluY2x1ZGUvIHx8IGV4aXQ7IFwKICsJZG9uZQogIAkkKFEpY3AgLXJmIHVzci9pbmNsdWRlLy4gJChJTlNUQUxMUk9PVCkkKElOU1RBTExESVIpLyQoS0NST1NTKWluY2x1ZGUvLgotIAkkKFEpY2htb2QgLVIgYStyWCAkKElOU1RBTExST09UKSQoSU5TVEFMTERJUikvJChLQ1JPU1MpaW5jbHVkZQorIAkkKFEpY2htb2QgLVIgYStyWCxnby13ICQoSU5TVEFMTFJPT1QpJChJTlNUQUxMRElSKS8kKEtDUk9TUylpbmNsdWRlCiAgCSQoUSkkKGluc3RhbGwtZGF0YSkgJChzcmN0cmVlKS9rbGNjL2tsY2MuMSAkKElOU1RBTExST09UKSQobWFuZGlyKS9tYW4xLyQoS0NST1NTKWtsY2MuMQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLTIuMC40L3N0YWdpbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvc3RhZ2luZy5wYXRjaAppbmRleCBjMDFjNzEyLi41YzdhNjYyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvc3RhZ2luZy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtMi4wLjQvc3RhZ2luZy5wYXRjaApAQCAtMSwzICsxLDggQEAKK0Zyb20gMTg5MjA3OWI4MjdjZjhmODMxNjMwNWI2ZDZlMDk4NWRiODI0NDFhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRob21hcyBLdW56ZSA8dGhvbW15Y2hlY2tAZ214LmRlPgorRGF0ZTogU2F0LCA2IEF1ZyAyMDExIDA1OjMwOjE0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIGtsaWJjOiBpbml0aWFsIGNvbW1pdCBvZiB2ZXJzaW9uIDEuNS4yNAorCiBQYXRjaCB3YXMgaW1wb3J0ZWQgZnJvbSB0aGUgT3BlbkVtYmVkZGVkIGdpdCBzZXJ2ZXIKIChnaXQ6Ly9naXQub3BlbmVtYmVkZGVkLm9yZy9vcGVuZW1iZWRkZWQpCiBhcyBvZiBjb21taXQgaWQgZWVmYjk5YTMxM2JiY2M4ZjM0YzhiMzJiZjBjNWFhMmRkMjU4MDczNQpAQCAtNiwxMSArMTEsMjUgQEAKIE1pbm9yIGVkaXRzIGZvbGxvd2luZyB1cHN0cmVhbSBjaGFuZ2VzCiBTaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CiAKLUluZGV4OiBrbGliYy0xLjUuMjQvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGEvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAkyMDExLTA3LTI3IDE1OjUwOjUzLjAwMDAwMDAwMCArMDIwMAotKysrIGIvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAkyMDExLTA4LTAxIDAwOjAzOjAzLjAwMDAwMDAwMCArMDIwMAotQEAgLTg4LDEzICs4OCwxMCBAQAorLS0tCisgc2NyaXB0cy9LYnVpbGQuaW5zdGFsbCAgICB8IDQgLS0tLQorIHVzci9kYXNoL0tidWlsZCAgICAgICAgICAgfCAyIC0tCisgdXNyL2d6aXAvS2J1aWxkICAgICAgICAgICB8IDIgLS0KKyB1c3Iva2luaXQvS2J1aWxkICAgICAgICAgIHwgMiAtLQorIHVzci9raW5pdC9mc3R5cGUvS2J1aWxkICAgfCAyIC0tCisgdXNyL2tpbml0L2lwY29uZmlnL0tidWlsZCB8IDIgLS0KKyB1c3Iva2luaXQvbmZzbW91bnQvS2J1aWxkIHwgMiAtLQorIHVzci9raW5pdC9yZXN1bWUvS2J1aWxkICAgfCAyIC0tCisgdXNyL2tpbml0L3J1bi1pbml0L0tidWlsZCB8IDIgLS0KKyB1c3Iva2xpYmMvS2J1aWxkICAgICAgICAgIHwgMiAtLQorIHVzci91dGlscy9LYnVpbGQgICAgICAgICAgfCAyIC0tCisgMTEgZmlsZXMgY2hhbmdlZCwgMjQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zY3JpcHRzL0tidWlsZC5pbnN0YWxsIGIvc2NyaXB0cy9LYnVpbGQuaW5zdGFsbAoraW5kZXggZDMyYThhNS4uZmRhNjk5ZCAxMDA2NDQKKy0tLSBhL3NjcmlwdHMvS2J1aWxkLmluc3RhbGwKKysrKyBiL3NjcmlwdHMvS2J1aWxkLmluc3RhbGwKK0BAIC04OCwxOSArODgsMTUgQEAgZWxzZQogIGhlYWRlcjoKICAJJChRKWVjaG8gIiAgSU5TVEFMTCBoZWFkZXJzICsgbWFuIHBhZ2VzIHRvICQoSU5TVEFMTFJPT1QpJChJTlNUQUxMRElSKSIKICAJJChRKW1rZGlyIC1wICQoSU5TVEFMTFJPT1QpJChiaW5kaXIpCkBAIC0yNCwxMTkgKzQzLDEwNyBAQAogIAkkKFEpZm9yIHggaW4gLi4vLi4vLi4vaW5jbHVkZS9hc20gLi4vLi4vLi4vaW5jbHVkZS9hc20tZ2VuZXJpYyAuLi8uLi8uLi9pbmNsdWRlL2xpbnV4IC4uLy4uLy4uL2luY2x1ZGUvbXRkOyBkbyBcCiAgCQlsbiAtc2YgJCR7eH0gJChJTlNUQUxMUk9PVCkkKElOU1RBTExESVIpLyQoS0NST1NTKWluY2x1ZGUvIHx8IGV4aXQ7IFwKICAJZG9uZQotQEAgLTEwMyw3ICsxMDAsNiBAQAotIAlkb25lCiAgCSQoUSljcCAtcmYgdXNyL2luY2x1ZGUvLiAkKElOU1RBTExST09UKSQoSU5TVEFMTERJUikvJChLQ1JPU1MpaW5jbHVkZS8uCiAgCSQoUSljaG1vZCAtUiBhK3JYLGdvLXcgJChJTlNUQUxMUk9PVCkkKElOU1RBTExESVIpLyQoS0NST1NTKWluY2x1ZGUKIC0JJChRKSQoaW5zdGFsbC1kYXRhKSAkKHNyY3RyZWUpL2tsY2Mva2xjYy4xICQoSU5TVEFMTFJPT1QpJChtYW5kaXIpL21hbjEvJChLQ1JPU1Mpa2xjYy4xCiAgCSQoUSkkKGluc3RhbGwtYmluKSAkKG9ianRyZWUpL2tsY2MvJChLQ1JPU1Mpa2xjYyAkKElOU1RBTExST09UKSQoYmluZGlyKQogIAogIGZvb3RlcjogaGVhZGVyCi0KLUluZGV4OiBrbGliYy0xLjUuMjQvdXNyL2Rhc2gvS2J1aWxkCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gYS91c3IvZGFzaC9LYnVpbGQJMjAxMS0wNy0yNyAxNTo1MDo1My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3Vzci9kYXNoL0tidWlsZAkyMDExLTA4LTAxIDAwOjA3OjU2LjAwMDAwMDAwMCArMDIwMAotQEAgLTkyLDUgKzkyLDMgQEAKK2RpZmYgLS1naXQgYS91c3IvZGFzaC9LYnVpbGQgYi91c3IvZGFzaC9LYnVpbGQKK2luZGV4IDNhOThjMWYuLjFhNjkyMGEgMTAwNjQ0CistLS0gYS91c3IvZGFzaC9LYnVpbGQKKysrKyBiL3Vzci9kYXNoL0tidWlsZAorQEAgLTkyLDUgKzkyLDMgQEAgJChvYmopL3N5bnRheC5jOiAkKG9iaikvbWtzeW50YXgKICAkKG9iaikvc3ludGF4Lmg6ICQob2JqKS9zeW50YXguYwogIAkkKFEpOgogIAogLSMgVGFyZ2V0cyB0byBpbnN0YWxsCiAtaW5zdGFsbC15IDo9IHNoLnNoYXJlZAotCi1JbmRleDoga2xpYmMtMS41LjI0L3Vzci9nemlwL0tidWlsZAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGEvdXNyL2d6aXAvS2J1aWxkCTIwMTEtMDctMjcgMTU6NTA6NTMuMDAwMDAwMDAwICswMjAwCi0rKysgYi91c3IvZ3ppcC9LYnVpbGQJMjAxMS0wOC0wMSAwMDowNjozOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yMSw1ICsyMSwzIEBACitkaWZmIC0tZ2l0IGEvdXNyL2d6aXAvS2J1aWxkIGIvdXNyL2d6aXAvS2J1aWxkCitpbmRleCA5YmJmMGE0Li5jNDk3ZDAyIDEwMDY0NAorLS0tIGEvdXNyL2d6aXAvS2J1aWxkCisrKysgYi91c3IvZ3ppcC9LYnVpbGQKK0BAIC0yMSw1ICsyMSwzIEBAICQob2JqKS9ndW56aXAgJChvYmopL3pjYXQ6ICQob2JqKS9nemlwCiAgIyBDbGVhbmluZwogIHRhcmdldHMgOj0gZ3ppcCBnemlwLmcgZ3VuemlwIHpjYXQKICAKIC0jIFRhcmdldHMgdG8gaW5zdGFsbAogLWluc3RhbGwteSA6PSBnemlwIGd1bnppcCB6Y2F0Ci0KLUluZGV4OiBrbGliYy0xLjUuMjQvdXNyL2tpbml0L2ZzdHlwZS9LYnVpbGQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhL3Vzci9raW5pdC9mc3R5cGUvS2J1aWxkCTIwMTEtMDctMjcgMTU6NTA6NTMuMDAwMDAwMDAwICswMjAwCi0rKysgYi91c3Iva2luaXQvZnN0eXBlL0tidWlsZAkyMDExLTA4LTAxIDAwOjA5OjEyLjAwMDAwMDAwMCArMDIwMAotQEAgLTIxLDUgKzIxLDMgQEAKLSAjIENsZWFuaW5nCi0gY2xlYW4tZGlycyA6PSBzdGF0aWMgc2hhcmVkCi0gCi0tIyBpbnN0YWxsIGJpbmFyeQotLWluc3RhbGwteSA6PSAkKHNoYXJlZC15KQotCi1JbmRleDoga2xpYmMtMS41LjI0L3Vzci9raW5pdC9pcGNvbmZpZy9LYnVpbGQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhL3Vzci9raW5pdC9pcGNvbmZpZy9LYnVpbGQJMjAxMS0wNy0yNyAxNTo1MDo1My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3Vzci9raW5pdC9pcGNvbmZpZy9LYnVpbGQJMjAxMS0wOC0wMSAwMDoxMDo1Mi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yNyw1ICsyNywzIEBACi0gIyBDbGVhbmluZwotIGNsZWFuLWRpcnMgOj0gc3RhdGljIHNoYXJlZAotIAotLSMgaW5zdGFsbCBiaW5hcnkKLS1pbnN0YWxsLXkgOj0gJChzaGFyZWQteSkKLQotSW5kZXg6IGtsaWJjLTEuNS4yNC91c3Iva2luaXQvS2J1aWxkCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gYS91c3Iva2luaXQvS2J1aWxkCTIwMTEtMDctMjcgMTU6NTA6NTMuMDAwMDAwMDAwICswMjAwCi0rKysgYi91c3Iva2luaXQvS2J1aWxkCTIwMTEtMDgtMDEgMDA6MjA6MTguMDAwMDAwMDAwICswMjAwCi1AQCAtMzMsNSArMzMsMyBAQAorZGlmZiAtLWdpdCBhL3Vzci9raW5pdC9LYnVpbGQgYi91c3Iva2luaXQvS2J1aWxkCitpbmRleCA1MzIwMTI3Li5mN2ZkY2NkIDEwMDY0NAorLS0tIGEvdXNyL2tpbml0L0tidWlsZAorKysrIGIvdXNyL2tpbml0L0tidWlsZAorQEAgLTMzLDUgKzMzLDMgQEAgdGFyZ2V0cyArPSBraW5pdCBraW5pdC5nIGtpbml0LnNoYXJlZCBraW5pdC5zaGFyZWQuZwogIHN1YmRpci0gOj0gZnN0eXBlIGlwY29uZmlnIG5mc21vdW50IHJlc3VtZSBydW4taW5pdAogIAogIAogLSMgaW5zdGFsbCBiaW5hcnkKIC1pbnN0YWxsLXkgOj0ga2luaXQga2luaXQuc2hhcmVkCi0KLUluZGV4OiBrbGliYy0xLjUuMjQvdXNyL2tpbml0L25mc21vdW50L0tidWlsZAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGEvdXNyL2tpbml0L25mc21vdW50L0tidWlsZAkyMDExLTA3LTI3IDE1OjUwOjUzLjAwMDAwMDAwMCArMDIwMAotKysrIGIvdXNyL2tpbml0L25mc21vdW50L0tidWlsZAkyMDExLTA4LTAxIDAwOjEyOjUyLjAwMDAwMDAwMCArMDIwMAotQEAgLTIzLDUgKzIzLDMgQEAKK2RpZmYgLS1naXQgYS91c3Iva2luaXQvZnN0eXBlL0tidWlsZCBiL3Vzci9raW5pdC9mc3R5cGUvS2J1aWxkCitpbmRleCA5YjIwZGIxLi4zNjc2MTFkIDEwMDY0NAorLS0tIGEvdXNyL2tpbml0L2ZzdHlwZS9LYnVpbGQKKysrKyBiL3Vzci9raW5pdC9mc3R5cGUvS2J1aWxkCitAQCAtMjEsNSArMjEsMyBAQCBzaGFyZWQvZnN0eXBlLXkgOj0gJChvYmpzKQorICMgQ2xlYW5pbmcKKyBjbGVhbi1kaXJzIDo9IHN0YXRpYyBzaGFyZWQKKyAKKy0jIGluc3RhbGwgYmluYXJ5CistaW5zdGFsbC15IDo9ICQoc2hhcmVkLXkpCitkaWZmIC0tZ2l0IGEvdXNyL2tpbml0L2lwY29uZmlnL0tidWlsZCBiL3Vzci9raW5pdC9pcGNvbmZpZy9LYnVpbGQKK2luZGV4IDdmOGQxODEuLmViMWQ0NzIgMTAwNjQ0CistLS0gYS91c3Iva2luaXQvaXBjb25maWcvS2J1aWxkCisrKysgYi91c3Iva2luaXQvaXBjb25maWcvS2J1aWxkCitAQCAtMjcsNSArMjcsMyBAQCBzaGFyZWQvaXBjb25maWcteSA6PSAkKG9ianMpCisgIyBDbGVhbmluZworIGNsZWFuLWRpcnMgOj0gc3RhdGljIHNoYXJlZAorIAorLSMgaW5zdGFsbCBiaW5hcnkKKy1pbnN0YWxsLXkgOj0gJChzaGFyZWQteSkKK2RpZmYgLS1naXQgYS91c3Iva2luaXQvbmZzbW91bnQvS2J1aWxkIGIvdXNyL2tpbml0L25mc21vdW50L0tidWlsZAoraW5kZXggNDYxZTZmMy4uYmEzMTcwOCAxMDA2NDQKKy0tLSBhL3Vzci9raW5pdC9uZnNtb3VudC9LYnVpbGQKKysrKyBiL3Vzci9raW5pdC9uZnNtb3VudC9LYnVpbGQKK0BAIC0yMyw1ICsyMywzIEBAIGR1bW15cG1hcC15IDo9IGR1bW15cG1hcF90ZXN0Lm8KICAKICBjbGVhbi1kaXJzIDo9IHN0YXRpYyBzaGFyZWQKICAKIC0jIEluc3RhbGwgYmluYXJ5CiAtaW5zdGFsbC15IDo9ICQoc2hhcmVkLXkpCi0KLUluZGV4OiBrbGliYy0xLjUuMjQvdXNyL2tpbml0L3Jlc3VtZS9LYnVpbGQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhL3Vzci9raW5pdC9yZXN1bWUvS2J1aWxkCTIwMTEtMDctMjcgMTU6NTA6NTMuMDAwMDAwMDAwICswMjAwCi0rKysgYi91c3Iva2luaXQvcmVzdW1lL0tidWlsZAkyMDExLTA4LTAxIDAwOjEzOjUxLjAwMDAwMDAwMCArMDIwMAotQEAgLTI2LDUgKzI2LDMgQEAKK2RpZmYgLS1naXQgYS91c3Iva2luaXQvcmVzdW1lL0tidWlsZCBiL3Vzci9raW5pdC9yZXN1bWUvS2J1aWxkCitpbmRleCAwMzQxOTVkLi5jMTM0MmUxIDEwMDY0NAorLS0tIGEvdXNyL2tpbml0L3Jlc3VtZS9LYnVpbGQKKysrKyBiL3Vzci9raW5pdC9yZXN1bWUvS2J1aWxkCitAQCAtMjYsNSArMjYsMyBAQCBzaGFyZWQvcmVzdW1lLWxpYiA6PSAuLi9saWIuYQogICMgQ2xlYW5pbmcKICBjbGVhbi1kaXJzIDo9IHN0YXRpYyBzaGFyZWQKICAKIC0jIGluc3RhbGwgYmluYXJ5CiAtaW5zdGFsbC15IDo9ICQoc2hhcmVkLXkpCi0KLUluZGV4OiBrbGliYy0xLjUuMjQvdXNyL2tpbml0L3J1bi1pbml0L0tidWlsZAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGEvdXNyL2tpbml0L3J1bi1pbml0L0tidWlsZAkyMDExLTA3LTI3IDE1OjUwOjUzLjAwMDAwMDAwMCArMDIwMAotKysrIGIvdXNyL2tpbml0L3J1bi1pbml0L0tidWlsZAkyMDExLTA4LTAxIDAwOjE0OjQxLjAwMDAwMDAwMCArMDIwMAotQEAgLTI1LDUgKzI1LDMgQEAKK2RpZmYgLS1naXQgYS91c3Iva2luaXQvcnVuLWluaXQvS2J1aWxkIGIvdXNyL2tpbml0L3J1bi1pbml0L0tidWlsZAoraW5kZXggZjc4MzJiNy4uYzE1M2IwYSAxMDA2NDQKKy0tLSBhL3Vzci9raW5pdC9ydW4taW5pdC9LYnVpbGQKKysrKyBiL3Vzci9raW5pdC9ydW4taW5pdC9LYnVpbGQKK0BAIC0zMCw1ICszMCwzIEBAIHNoYXJlZC9ydW4taW5pdC1saWIgOj0gLi4vbGliLmEKICAjIENsZWFuaW5nCiAgY2xlYW4tZGlycyA6PSBzdGF0aWMgc2hhcmVkCiAgCiAtIyBpbnN0YWxsIGJpbmFyeQogLWluc3RhbGwteSA6PSAkKHNoYXJlZC15KQotCi1JbmRleDoga2xpYmMtMS41LjI0L3Vzci9rbGliYy9LYnVpbGQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhL3Vzci9rbGliYy9LYnVpbGQJMjAxMS0wNy0yNyAxNTo1MDo1My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3Vzci9rbGliYy9LYnVpbGQJMjAxMS0wOC0wMSAwMDoxODoxMS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xNzcsNSArMTc3LDMgQEAKK2RpZmYgLS1naXQgYS91c3Iva2xpYmMvS2J1aWxkIGIvdXNyL2tsaWJjL0tidWlsZAoraW5kZXggZWJhNmFkZC4uOThjYWYyZSAxMDA2NDQKKy0tLSBhL3Vzci9rbGliYy9LYnVpbGQKKysrKyBiL3Vzci9rbGliYy9LYnVpbGQKK0BAIC0xODUsNSArMTg1LDMgQEAgaW5zdGFsbC1ydWxlOgogIAkgICAgICAgICAgJChJTlNUQUxMUk9PVCkkKElOU1RBTExESVIpLyQoS0xJQkNDUk9TUylsaWIpKQogIAkkKFEpJChpbnN0YWxsLWxpYikgJChvYmopL2tsaWJjLSQoU09MSUJIQVNIKS5zbyBcCiAgCSAgICAgICAgICAgICAgICAgICAgICAkKElOU1RBTExST09UKSQoSU5TVEFMTERJUikvJChLTElCQ0NST1NTKWxpYgogLQkkKFEpJChpbnN0YWxsLWxpYikgJChvYmopL2tsaWJjLSQoU09MSUJIQVNIKS5zbyBcCiAtCSAgICAgICAgICAgICAgICAgICAgICAkKElOU1RBTExST09UKSQoU0hMSUJESVIpCi0KLUluZGV4OiBrbGliYy0xLjUuMjQvdXNyL3V0aWxzL0tidWlsZAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGEvdXNyL3V0aWxzL0tidWlsZAkyMDExLTA3LTI3IDE1OjUwOjUzLjAwMDAwMDAwMCArMDIwMAotKysrIGIvdXNyL3V0aWxzL0tidWlsZAkyMDExLTA4LTAxIDAwOjE5OjEzLjAwMDAwMDAwMCArMDIwMAotQEAgLTcyLDUgKzcyLDMgQEAKK2RpZmYgLS1naXQgYS91c3IvdXRpbHMvS2J1aWxkIGIvdXNyL3V0aWxzL0tidWlsZAoraW5kZXggMDVhYTc5NC4uNjdkOTQ4NiAxMDA2NDQKKy0tLSBhL3Vzci91dGlscy9LYnVpbGQKKysrKyBiL3Vzci91dGlscy9LYnVpbGQKK0BAIC03Miw1ICs3MiwzIEBAICQob2JqKS9zaGFyZWQvcmVib290ICQob2JqKS9zaGFyZWQvcG93ZXJvZmY6ICQob2JqKS9zaGFyZWQvaGFsdAogICMgQ2xlYW4gZGVsZXRlcyB0aGUgc3RhdGljIGFuZCBzaGFyZWQgZGlyCiAgY2xlYW4tZGlycyA6PSBzdGF0aWMgc2hhcmVkCiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtdXRpbHMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL2tsaWJjL2tsaWJjLXV0aWxzLmluYwppbmRleCA5MDE0ZjUyLi43ZGYzM2Q2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMva2xpYmMva2xpYmMtdXRpbHMuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9rbGliYy9rbGliYy11dGlscy5pbmMKQEAgLTQ4LDcgKzQ4LDcgQEAKICAgICBsbiAtcyBnemlwICR7RH0ke2Jhc2VfYmluZGlyfS96Y2F0CiB9CiAKLUVYVFJBX0tMSUJDX0RFUFMgPSAiJHtAYmFzZV9jb25kaXRpb25hbCgnS0xJQkNfVVRJTFNfVkFSSUFOVCcsICdzaGFyZWQnLCAnJHtUSElTX0xJQktMSUJDfScsICcnLCBkKX0iCitFWFRSQV9LTElCQ19ERVBTID0gIiR7QG9lLnV0aWxzLmNvbmRpdGlvbmFsKCdLTElCQ19VVElMU19WQVJJQU5UJywgJ3NoYXJlZCcsICcke1RISVNfTElCS0xJQkN9JywgJycsIGQpfSIKIAogUEFDS0FHRVNfRFlOQU1JQyArPSAiXiR7S0xJQkNfVVRJTFNfUEtHTkFNRX0tLioiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDEtTWFrZWZpbGUtYnVpbGQtdWJpLXV0aWxzLW9ubHkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDAxLU1ha2VmaWxlLWJ1aWxkLXViaS11dGlscy1vbmx5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhYzJjY2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDAxLU1ha2VmaWxlLWJ1aWxkLXViaS11dGlscy1vbmx5LnBhdGNoCkBAIC0wLDAgKzEsODcgQEAKK0Zyb20gMWM5ODllNGMzNmQwYmY3NmFiNDQ0Zjk4NGJjNzNiOThlZWFjZDAzZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KK0RhdGU6IFN1biwgMjkgSnVuIDIwMTQgMDA6MzI6MjkgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzldIE1ha2VmaWxlOiBidWlsZCB1YmktdXRpbHMgb25seQorCitXZSBidWlsZCBhbGwgdGhlIHN0YXRpYyB1YmktdXRpbHMgYnV0IGFjdHVhbGx5IG9ubHkgdWJpYXR0YWNoIGlzIG5lZWRlZCBpbgorYSBtaW5pbWFsaXN0aWMgaW5pdHJhbWZzIGZvciB0aGUgbW91bnQgb2YgdWJpIHZvbHVtZXMuCisKK01vcmUgZml4ZXMgYXJlIG5lZWRlZCBpbiBvcmRlciB0byBidWlsZCB0aGUgZnVsbCBtdGQtdXRpbHMuCitUaGUgZmlyc3QgaXNzdWUgaXM6CisKK3wgbWtmcy5qZmZzMi5jOjY0OjIwOiBmYXRhbCBlcnJvcjogbGliZ2VuLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK3wgICNpbmNsdWRlIDxsaWJnZW4uaD4KKworUmVtb3ZpbmcgdGhlIGluY2x1ZGUgdGhlbiB0aGUgc2Vjb25kIGVycm9yIGlzOgorCit8IG1rZnMuamZmczIuYzoxNTcwOjIyOiBlcnJvcjogJ19TQ19QQUdFU0laRScgdW5kZWNsYXJlZAorfCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCit8ICAgcGFnZV9zaXplID0gc3lzY29uZihfU0NfUEFHRVNJWkUpOworCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CistLS0KKyBNYWtlZmlsZSB8IDI2ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCitpbmRleCAzY2U4NTg3Li44Yjc5ZjcxIDEwMDY0NAorLS0tIGEvTWFrZWZpbGUKKysrKyBiL01ha2VmaWxlCitAQCAtMTYsMjggKzE2LDExIEBAIGVuZGlmCisgCisgVEVTVFMgPSB0ZXN0cworIAorLU1URF9CSU5TID0gXAorLQlmdGxfZm9ybWF0IGZsYXNoX2VyYXNlIG5hbmRkdW1wIGRvY19sb2FkYmlvcyBcCistCWZ0bF9jaGVjayBta2ZzLmpmZnMyIGZsYXNoX2xvY2sgZmxhc2hfdW5sb2NrIFwKKy0JZmxhc2hfb3RwX2luZm8gZmxhc2hfb3RwX2R1bXAgZmxhc2hfb3RwX2xvY2sgZmxhc2hfb3RwX3dyaXRlIFwKKy0JbXRkX2RlYnVnIGZsYXNoY3AgbmFuZHdyaXRlIG5hbmR0ZXN0IG10ZHBhcnQgXAorLQlqZmZzMmR1bXAgXAorLQluZnRsZHVtcCBuZnRsX2Zvcm1hdCBkb2NmZGlzayBcCistCXJmZGR1bXAgcmZkZm9ybWF0IFwKKy0Jc2VydmVfaW1hZ2UgcmVjdl9pbWFnZSBcCistCXN1bXRvb2wgamZmczJyZWFkZXIKKyBVQklfQklOUyA9IFwKKyAJdWJpdXBkYXRldm9sIHViaW1rdm9sIHViaXJtdm9sIHViaWNyYzMyIHViaW5mbyB1YmlhdHRhY2ggXAorIAl1YmlkZXRhY2ggdWJpbml6ZSB1Ymlmb3JtYXQgdWJpcmVuYW1lIG10ZGluZm8gdWJpcnN2b2wgdWJpYmxvY2sKKyAKKy1CSU5TID0gJChNVERfQklOUykKKy1CSU5TICs9IG1rZnMudWJpZnMvbWtmcy51YmlmcworLUJJTlMgKz0gJChhZGRwcmVmaXggdWJpLXV0aWxzLywkKFVCSV9CSU5TKSkKKy1TQ1JJUFRTID0gZmxhc2hfZXJhc2VhbGwKKy0KKy1UQVJHRVRTID0gJChCSU5TKQorLVRBUkdFVFMgKz0gbGliL2xpYm10ZC5hCistVEFSR0VUUyArPSB1YmktdXRpbHMvbGlidWJpLmEKKytCSU5TID0gJChhZGRwcmVmaXggdWJpLXV0aWxzLywkKFVCSV9CSU5TKSkKKyAKKyBPQkpERVBTID0gJChCVUlMRERJUikvaW5jbHVkZS92ZXJzaW9uLmgKKyAKK0BAIC02MSwxMiArNDQsOSBAQCBlbmRpZgorIAlybSAtZiAkKEJVSUxERElSKS9pbmNsdWRlL3ZlcnNpb24uaAorIAkkKE1BS0UpIC1DICQoVEVTVFMpIGNsZWFuCisgCistaW5zdGFsbDo6ICQoYWRkcHJlZml4ICQoQlVJTERESVIpLywke0JJTlN9KSAke1NDUklQVFN9CisraW5zdGFsbDo6ICQoYWRkcHJlZml4ICQoQlVJTERESVIpLywke0JJTlN9KQorIAlta2RpciAtcCAke0RFU1RESVJ9LyR7U0JJTkRJUn0KKyAJaW5zdGFsbCAtbSAwNzU1ICReICR7REVTVERJUn0vJHtTQklORElSfS8KKy0JbWtkaXIgLXAgJHtERVNURElSfS8ke01BTkRJUn0vbWFuMQorLQlpbnN0YWxsIC1tIDA2NDQgbWtmcy5qZmZzMi4xICR7REVTVERJUn0vJHtNQU5ESVJ9L21hbjEvCistCS1nemlwIC05ZiAke0RFU1RESVJ9LyR7TUFORElSfS9tYW4xLyouMQorIAorIHRlc3RzOjoKKyAJJChNQUtFKSAtQyAkKFRFU1RTKQorQEAgLTkxLDggKzcxLDYgQEAgTERMSUJTX21rZnMuamZmczIgID0gLWx6ICQoTFpPTERMSUJTKQorIExERkxBR1NfamZmczJyZWFkZXIgPSAkKFpMSUJMREZMQUdTKSAkKExaT0xERkxBR1MpCisgTERMSUJTX2pmZnMycmVhZGVyICA9IC1seiAkKExaT0xETElCUykKKyAKKy0kKGZvcmVhY2ggdiwkKE1URF9CSU5TKSwkKGV2YWwgJChjYWxsIG1rZGVwLCwkKHYpKSkpCistCisgIworICMgQ29tbW9uIGxpYm10ZAorICMKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwMi1jb21tb24ubWstZm9yLWtsaWJjLUNDLWlzLWtsY2MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDAyLWNvbW1vbi5tay1mb3Ita2xpYmMtQ0MtaXMta2xjYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjNkMTFmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwMi1jb21tb24ubWstZm9yLWtsaWJjLUNDLWlzLWtsY2MucGF0Y2gKQEAgLTAsMCArMSwyNyBAQAorRnJvbSA4OWM3NmJiZTgyYTIwMjlhMjViMDY1NGViMGExZDBiMjJkNmU2ODc3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgorRGF0ZTogU3VuLCAyOSBKdW4gMjAxNCAwMDozNzoyOCArMDIwMAorU3ViamVjdDogW1BBVENIIDIvOV0gY29tbW9uLm1rOiBmb3Iga2xpYmMgJChDQykgaXMga2xjYworCitEbyBub3QgaGFyZGNvZGU6IGFzc2lnbiB0aGUgdmFsdWUgdG8gdGhlIHZhcmlhYmxlIGlmIGl0IGlzIG5vdCBhbHJlYWR5IGRlZmluZWQuCisKK1Vwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KKy0tLQorIGNvbW1vbi5tayB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2NvbW1vbi5tayBiL2NvbW1vbi5taworaW5kZXggYmE4NzM3Ny4uMTI2ZDExYSAxMDA2NDQKKy0tLSBhL2NvbW1vbi5taworKysrIGIvY29tbW9uLm1rCitAQCAtMSw0ICsxLDQgQEAKKy1DQyA6PSAkKENST1NTKWdjYworK0NDID89ICQoQ1JPU1MpZ2NjCisgQVIgOj0gJChDUk9TUylhcgorIFJBTkxJQiA6PSAkKENST1NTKXJhbmxpYgorIAorLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDAzLWxpYnViaS5jLWFkZC1rbGliYy1zcGVjaWZpYy1maXhlcy1mb3ItaW9jdGwucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDAzLWxpYnViaS5jLWFkZC1rbGliYy1zcGVjaWZpYy1maXhlcy1mb3ItaW9jdGwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFkNGE1YgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDMtbGlidWJpLmMtYWRkLWtsaWJjLXNwZWNpZmljLWZpeGVzLWZvci1pb2N0bC5wYXRjaApAQCAtMCwwICsxLDc2IEBACitGcm9tIGZlY2JiNzA1NmQ2MjFhMzBmNzEwNmU2N2Y1ZmUyMDk3NjM1NzFiNzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CitEYXRlOiBTdW4sIDI5IEp1biAyMDE0IDAwOjQwOjE1ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMy85XSBsaWJ1YmkuYzogYWRkIGtsaWJjIHNwZWNpZmljIGZpeGVzIGZvciBpb2N0bAorCitGaXJzdCBpc3N1ZSBpcyB0aGF0IGlvY3RsKCkgaW4ga2xpYmMgZG9lc24ndCBleHBlY3QgYSBjb25zdGFudCBhcyBhcmczLgorU2Vjb25kIGlzc3VlIGlzIHRoYXQgYXJnMyBpbiBrbGliYyBpb2N0bCgpIGltcGxlbWVudGF0aW9uIGlzIG5vdCBvcHRpb25hbC4KKworRml4ZXM6CisKK3wgdWJpLXV0aWxzL2xpYnViaS5jOiBJbiBmdW5jdGlvbiAnZG9fYXR0YWNoJzoKK3wgdWJpLXV0aWxzL2xpYnViaS5jOjY5ODo4OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDMgb2YgJ2lvY3RsJyBkaXNjYXJkcworfCAnY29uc3QnIHF1YWxpZmllciBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKK3wgICByZXQgPSBpb2N0bChmZCwgVUJJX0lPQ0FUVCwgcik7Cit8ICAgICAgICAgXgorfCBJbiBmaWxlIGluY2x1ZGVkIGZyb20gdWJpLXV0aWxzL2xpYnViaS5jOjMyOjA6Cit8IC4uLi9saWIva2xpYmMvaW5jbHVkZS9zeXMvaW9jdGwuaDoxNToxNDogbm90ZTogZXhwZWN0ZWQgJ3ZvaWQgKicgYnV0IGFyZ3VtZW50Cit8IGlzIG9mIHR5cGUgJ2NvbnN0IHN0cnVjdCB1YmlfYXR0YWNoX3JlcSAqJworfCAgX19leHRlcm4gaW50IGlvY3RsKGludCwgaW50LCB2b2lkICopOworfCAgICAgICAgICAgICAgIF4KKworfCB1YmktdXRpbHMvbGlidWJpLmM6IEluIGZ1bmN0aW9uICd1Ymlfdm9sX2Jsb2NrX2NyZWF0ZSc6Cit8IHViaS11dGlscy9saWJ1YmkuYzoxMTE4Ojk6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiAnaW9jdGwnCit8ICAgcmV0dXJuIGlvY3RsKGZkLCBVQklfSU9DVk9MQ1JCTEspOworfCAgICAgICAgICBeCit8IEluIGZpbGUgaW5jbHVkZWQgZnJvbSB1YmktdXRpbHMvbGlidWJpLmM6MzI6MDoKK3wgLi4uL2xpYi9rbGliYy9pbmNsdWRlL3N5cy9pb2N0bC5oOjE1OjE0OiBub3RlOiBkZWNsYXJlZCBoZXJlCit8ICBfX2V4dGVybiBpbnQgaW9jdGwoaW50LCBpbnQsIHZvaWQgKik7Cit8ICAgICAgICAgICAgICAgXgorfCB1YmktdXRpbHMvbGlidWJpLmM6IEluIGZ1bmN0aW9uICd1Ymlfdm9sX2Jsb2NrX3JlbW92ZSc6Cit8IHViaS11dGlscy9saWJ1YmkuYzoxMTIzOjk6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiAnaW9jdGwnCit8ICAgcmV0dXJuIGlvY3RsKGZkLCBVQklfSU9DVk9MUk1CTEspOworfCAgICAgICAgICBeCit8IEluIGZpbGUgaW5jbHVkZWQgZnJvbSB1YmktdXRpbHMvbGlidWJpLmM6MzI6MDoKK3wgLi4uL3Vzci9saWIva2xpYmMvaW5jbHVkZS9zeXMvaW9jdGwuaDoxNToxNDogbm90ZTogZGVjbGFyZWQgaGVyZQorfCAgX19leHRlcm4gaW50IGlvY3RsKGludCwgaW50LCB2b2lkICopOworfCAgICAgICAgICAgICAgIF4KKworVXBzdHJlYW0tU3RhdHVzOiBBY2NlcHRlZAorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CistLS0KKyB1YmktdXRpbHMvbGlidWJpLmMgfCA2ICsrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS91YmktdXRpbHMvbGlidWJpLmMgYi91YmktdXRpbHMvbGlidWJpLmMKK2luZGV4IDk3YzA0MzQuLjJiNDk4MzMgMTAwNjQ0CistLS0gYS91YmktdXRpbHMvbGlidWJpLmMKKysrKyBiL3ViaS11dGlscy9saWJ1YmkuYworQEAgLTY4Nyw3ICs2ODcsNyBAQCB2b2lkIGxpYnViaV9jbG9zZShsaWJ1YmlfdCBkZXNjKQorICAqIHN1Y2Nlc3MgYW5kICUtMSBpbiBjYXNlIG9mIGZhaWx1cmUuIEByLT51YmlfbnVtIGNvbnRhaW5zIG5ld2x5IGNyZWF0ZWQgVUJJCisgICogZGV2aWNlIG51bWJlci4KKyAgKi8KKy1zdGF0aWMgaW50IGRvX2F0dGFjaChjb25zdCBjaGFyICpub2RlLCBjb25zdCBzdHJ1Y3QgdWJpX2F0dGFjaF9yZXEgKnIpCisrc3RhdGljIGludCBkb19hdHRhY2goY29uc3QgY2hhciAqbm9kZSwgc3RydWN0IHViaV9hdHRhY2hfcmVxICpyKQorIHsKKyAJaW50IGZkLCByZXQ7CisgCitAQCAtMTExNSwxMiArMTExNSwxMiBAQCBpbnQgdWJpX3Jzdm9sKGxpYnViaV90IGRlc2MsIGNvbnN0IGNoYXIgKm5vZGUsIGludCB2b2xfaWQsIGxvbmcgbG9uZyBieXRlcykKKyAKKyBpbnQgdWJpX3ZvbF9ibG9ja19jcmVhdGUoaW50IGZkKQorIHsKKy0JcmV0dXJuIGlvY3RsKGZkLCBVQklfSU9DVk9MQ1JCTEspOworKwlyZXR1cm4gaW9jdGwoZmQsIFVCSV9JT0NWT0xDUkJMSywgTlVMTCk7CisgfQorIAorIGludCB1Ymlfdm9sX2Jsb2NrX3JlbW92ZShpbnQgZmQpCisgeworLQlyZXR1cm4gaW9jdGwoZmQsIFVCSV9JT0NWT0xSTUJMSyk7CisrCXJldHVybiBpb2N0bChmZCwgVUJJX0lPQ1ZPTFJNQkxLLCBOVUxMKTsKKyB9CisgCisgaW50IHViaV91cGRhdGVfc3RhcnQobGlidWJpX3QgZGVzYywgaW50IGZkLCBsb25nIGxvbmcgYnl0ZXMpCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDQtUmVzdG9yZS1jb21wYXRpYmlsaXR5LXRvLWRpZXRsaWJjLWtsaWJjLW11c2wtbGliYy1hZi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDQtUmVzdG9yZS1jb21wYXRpYmlsaXR5LXRvLWRpZXRsaWJjLWtsaWJjLW11c2wtbGliYy1hZi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjMxZmI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwNC1SZXN0b3JlLWNvbXBhdGliaWxpdHktdG8tZGlldGxpYmMta2xpYmMtbXVzbC1saWJjLWFmLnBhdGNoCkBAIC0wLDAgKzEsODggQEAKK0Zyb20gYjY2OGNiNzVjYjdlNzJmZjkyMDU1MjA5MTMwZDRjZDRiM2NhY2JkYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRob3JzdGVuIEdsYXNlciA8dGdAbWlyYnNkLm9yZz4KK0RhdGU6IEZyaSwgMjAgSnVuIDIwMTQgMTA6NTY6MjcgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCA0LzldIFJlc3RvcmUgY29tcGF0aWJpbGl0eSB0byBkaWV0bGliYywga2xpYmMsIG11c2wgbGliYyBhZnRlcgorIGNvbW1pdCA0ZjFiMTA4CitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0VhY2ggQyBsaWJyYXJ5IGhhcyB0aGVpciBvd24gd2F5IHRvIGRlZmluZSBvZmZfdCwgYW5kIHRoZSA8ZmVhdHVyZXMuaD4KK2hlYWRlciBpcyBub25zdGFuZGFyZCBhbmQgc3BlY2lmaWMgdG8gdGhlIEdOVSBsaWJjIGFuZCB0aG9zZSB0aGF0IGNsb25lCitpdCAodUNsaWJjKS4gRmVmZeKAmXMgZGlldGxpYmMgdXNlcyBkaWZmZXJlbnQgZmxhZ3MsIGFuZCBrbGliYyBhbHdheXMgdXNlcworYSA2NC1iaXQgb2ZmX3QgKGxpa2UgdGhlIEJTRHMpOyBtdXNsIGxpYmMgY2Fubm90IGJlIHJlY29nbmlzZWQgdXNpbmcgY3BwCitpbnN0cnVjdGlvbnMsIHNvIHdlIGFzc3VtZSA2NCBiaXQgdGhlcmUgKGFuZCBvbiB1bmtub3duIEMgbGlicmFyaWVzKSBhbmQKK2xlYXZlIGl0IHRvIHRoZSB1c2VyIHRvIHN1Ym1pdCBhIGZvbGxvdy11cCBmaXggaWYgd2UgZ3Vlc3Mgd3JvbmcuIEkgYWxzbworYWRkZWQgYSBzdGF0aWMgYXNzZXJ0aW9uIHRvIHZlcmlmeSB0aGUgNjQgYml0IGd1ZXNzIGlzIGNvcnJlY3QuCisKK0l0IHdvdWxkIGJlIHJlYWxseSBiZXR0ZXIgdXNpbmcgYSBjb25maWd1cmUgc2NyaXB0IGZvciB0aGlzIGluc3RlYWQuCisKK0ZpeGVzOgorfCAgIENDICAgICAgbGliL2xpYm10ZC5vCit8IEluIGZpbGUgaW5jbHVkZWQgZnJvbSB1YmktdXRpbHMvdWJpdXRpbHMtY29tbW9uLmM6MzU6MDoKK3wgLi9pbmNsdWRlL2NvbW1vbi5oOjI5OjIyOiBmYXRhbCBlcnJvcjogZmVhdHVyZXMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorfCAgI2luY2x1ZGUgPGZlYXR1cmVzLmg+Cit8ICAgICAgICAgICAgICAgICAgICAgICBeCit8IGNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCisKK1Vwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkCisKK1NpZ25lZC1vZmYtYnk6IFRob3JzdGVuIEdsYXNlciA8dGdAbWlyYnNkLm9yZz4KK1NpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KKy0tLQorIGluY2x1ZGUvY29tbW9uLmggfCAyNCArKysrKysrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21tb24uaCBiL2luY2x1ZGUvY29tbW9uLmgKK2luZGV4IGZiMGNhODMuLjVhMjA5NjQgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2NvbW1vbi5oCisrKysgYi9pbmNsdWRlL2NvbW1vbi5oCitAQCAtMjYsNyArMjYsOSBAQAorICNpbmNsdWRlIDxzdHJpbmcuaD4KKyAjaW5jbHVkZSA8ZmNudGwuaD4KKyAjaW5jbHVkZSA8ZXJybm8uaD4KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KKysjZW5kaWYKKyAjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyAjaW5jbHVkZSAidmVyc2lvbi5oIgorIAorQEAgLTY3LDYgKzY5LDIxIEBAIGV4dGVybiAiQyIgeworICNlbmRpZgorIAorIC8qIGRlZmluZSBhIHByaW50IGZvcm1hdCBzcGVjaWZpZXIgZm9yIG9mZl90ICovCisrI2lmIGRlZmluZWQoX19LTElCQ19fKQorKy8qIGFsd2F5cyA2NCBiaXQgb24ga2xpYmMgKi8KKysjZGVmaW5lIFBSSXhvZmZfdCBQUkl4NjQKKysjZGVmaW5lIFBSSWRvZmZfdCBQUklkNjQKKysjZWxpZiBkZWZpbmVkKF9fZGlldGxpYmNfXykKKysvKiBkZXBlbmRzIG9uIGNvbXBpbGVyIGZsYWdzIG9uIGRpZXRsaWJjICovCisrI2lmIGRlZmluZWQoX0ZJTEVfT0ZGU0VUX0JJVFMpICYmIChfRklMRV9PRkZTRVRfQklUUyA9PSA2NCkKKysjZGVmaW5lIFBSSXhvZmZfdCBQUkl4NjQKKysjZGVmaW5lIFBSSWRvZmZfdCBQUklkNjQKKysjZWxzZQorKyNkZWZpbmUgUFJJeG9mZl90ICJsIlBSSXgzMgorKyNkZWZpbmUgUFJJZG9mZl90ICJsIlBSSWQzMgorKyNlbmRpZgorKyNlbGlmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisrLyogZGVwZW5kcyBvbiBjb21waWxlciBmbGFncyBvbiBnbGliYyBhbmQgdUNsaWJjICovCisgI2lmZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKyAjZGVmaW5lIFBSSXhvZmZfdCBQUkl4NjQKKyAjZGVmaW5lIFBSSWRvZmZfdCBQUklkNjQKK0BAIC03NCw2ICs5MSwxMyBAQCBleHRlcm4gIkMiIHsKKyAjZGVmaW5lIFBSSXhvZmZfdCAibCJQUkl4MzIKKyAjZGVmaW5lIFBSSWRvZmZfdCAibCJQUklkMzIKKyAjZW5kaWYKKysjZWxzZQorKy8qIHVua25vd24gbGliYyBvciBtdXNsICovCisrI2RlZmluZSBQUkl4b2ZmX3QgUFJJeDY0CisrI2RlZmluZSBQUklkb2ZmX3QgUFJJZDY0CisrLyogdmVyaWZ5IG91ciBndWVzcyBvZiA2NCBiaXQgaXMgY29ycmVjdCAqLworK3N0YXRpYyBjaGFyIF9fUFJJeG9mZl90X3N0YXRpY19hc3NlcnRbc2l6ZW9mKG9mZl90KSA9PSA4ID8gMSA6IC0xXTsKKysjZW5kaWYKKyAKKyAvKiBWZXJib3NlIG1lc3NhZ2VzICovCisgI2RlZmluZSBiYXJldmVyYm9zZSh2ZXJib3NlLCBmbXQsIC4uLikgZG8geyAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwNS1jb21tb24uaC1tb3JlLXdvcmthcm91bmRzLWZvci1rbGliYy1jb21wYXRpYmlsaXR5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwNS1jb21tb24uaC1tb3JlLXdvcmthcm91bmRzLWZvci1rbGliYy1jb21wYXRpYmlsaXR5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzMDlhNzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDA1LWNvbW1vbi5oLW1vcmUtd29ya2Fyb3VuZHMtZm9yLWtsaWJjLWNvbXBhdGliaWxpdHkucGF0Y2gKQEAgLTAsMCArMSw1MiBAQAorRnJvbSA1ZDRhNjZiNTAyMDAzZWYzODVkYWIzMWExNzAxMjI0NjQwN2U3MzY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgorRGF0ZTogU3VuLCAyOSBKdW4gMjAxNCAwMDo0NDowMyArMDIwMAorU3ViamVjdDogW1BBVENIIDUvOV0gY29tbW9uLmg6IG1vcmUgd29ya2Fyb3VuZHMgZm9yIGtsaWJjIGNvbXBhdGliaWxpdHkKKworUGF0Y2ggaXMgYWRkcmVzc2luZyB0d28gaXNzdWVzOgorKiBGaXJzdCwgIEtsaWJjIGRvZXNuJ3QgaGF2ZSBycG1hdGNoKCkuCisqIFNlY29uZCwgS2xpYmMgbGFja3MgZ2V0bGluZSgpCisKK0ZpeGVzOgorfCAgIExEICAgICAgdWJpLXV0aWxzL3ViaWZvcm1hdAorfCAuLi4vZ2l0L3ViaS11dGlscy91Ymlmb3JtYXQubzogSW4gZnVuY3Rpb24gYHByb21wdCc6Cit8IC4uLi9naXQvLi9pbmNsdWRlL2NvbW1vbi5oOjE1NzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZ2V0bGluZScKK3wgLi4uL2dpdC8uL2luY2x1ZGUvY29tbW9uLmg6MTY0OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBycG1hdGNoJworfCAuLi4vZ2l0Ly4vaW5jbHVkZS9jb21tb24uaDoxNTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdldGxpbmUnCit8IC4uLi9naXQvLi9pbmNsdWRlL2NvbW1vbi5oOjE2NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgcnBtYXRjaCcKKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQKKworU2lnbmVkLW9mZi1ieTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgorLS0tCisgaW5jbHVkZS9jb21tb24uaCB8IDggKysrKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21tb24uaCBiL2luY2x1ZGUvY29tbW9uLmgKK2luZGV4IDVhMjA5NjQuLjJmNTFlMWMgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2NvbW1vbi5oCisrKysgYi9pbmNsdWRlL2NvbW1vbi5oCitAQCAtMTYxLDE1ICsxNjEsMTcgQEAgc3RhdGljIGlubGluZSBpbnQgX19ycG1hdGNoKGNvbnN0IGNoYXIgKnJlc3ApCisgICovCisgc3RhdGljIGlubGluZSBib29sIHByb21wdChjb25zdCBjaGFyICptc2csIGJvb2wgZGVmKQorIHsKKy0JY2hhciAqbGluZSA9IE5VTEw7CistCXNpemVfdCBsZW47CisrCWNoYXIgKmxpbmU7CisgCWJvb2wgcmV0ID0gZGVmOworIAorKwljb25zdCBpbnQgc2l6ZW9mX2xpbmUgPSAyOworKwlsaW5lID0gbWFsbG9jKHNpemVvZl9saW5lKTsKKysKKyAJZG8geworIAkJbm9ybXNnX2NvbnQoIiVzICglYy8lYykgIiwgbXNnLCBkZWYgPyAnWScgOiAneScsIGRlZiA/ICduJyA6ICdOJyk7CisgCQlmZmx1c2goc3Rkb3V0KTsKKyAKKy0JCXdoaWxlIChnZXRsaW5lKCZsaW5lLCAmbGVuLCBzdGRpbikgPT0gLTEpIHsKKysJCXdoaWxlIChmZ2V0cyhsaW5lLCBzaXplb2ZfbGluZSwgc3RkaW4pID09IE5VTEwpIHsKKyAJCQlwcmludGYoImZhaWxlZCB0byByZWFkIHByb21wdDsgYXNzdW1pbmcgJyVzJ1xuIiwKKyAJCQkJZGVmID8gInllcyIgOiAibm8iKTsKKyAJCQlicmVhazsKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwNi1saWJpbmlwYXJzZXItcmVtb3ZlLXVudXNlZC1mdW5jdGlvbi1uZWVkaW5nLWZsb2F0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwNi1saWJpbmlwYXJzZXItcmVtb3ZlLXVudXNlZC1mdW5jdGlvbi1uZWVkaW5nLWZsb2F0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwNDZmOTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDA2LWxpYmluaXBhcnNlci1yZW1vdmUtdW51c2VkLWZ1bmN0aW9uLW5lZWRpbmctZmxvYXQucGF0Y2gKQEAgLTAsMCArMSw4NSBAQAorRnJvbSAyYWYzMGU5YjI5ODgxMTFlNDVlZDZlYTZhZjU1ZTQ5ZWM3Y2IxY2IxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgorRGF0ZTogU3VuLCAyOSBKdW4gMjAxNCAwMDo0NDo1NyArMDIwMAorU3ViamVjdDogW1BBVENIIDYvOV0gbGliaW5pcGFyc2VyOiByZW1vdmUgdW51c2VkIGZ1bmN0aW9uIG5lZWRpbmcgZmxvYXQKKworRml4ZXM6Cit8ICAgTEQgICAgICB1YmktdXRpbHMvdWJpZm9ybWF0Cit8IC4uLi9naXQvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5hKGxpYmluaXBhcnNlci5vKTogSW4gZnVuY3Rpb24KK3wgYCAgTEQgICAgICB1YmktdXRpbHMvdWJpcmVuYW1lCit8IGluaXBhcnNlcl9nZXRkb3VibGUnOgorfCAuLi4vZ2l0L3ViaS11dGlscy9saWJpbmlwYXJzZXIuYzozMzY6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGF0b2YnCisKK0dyZXAgZG9lc24ndCByZXZlYWwgYW55IG9jY3VycmVuY2Ugb2YgaW5pcGFyc2VyX2dldGRvdWJsZSgpLCB1c2luZyBhdG9mKCkgc28KK3JlbW92ZSBpdDogZmxvYXRpbmctcG9pbnQgaXMgbm90IHN1cHBvcnRlZCBpbiBrbGliYworCitVcHN0cmVhbS1TdGF0dXM6IEFjY2VwdGVkCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KKy0tLQorIHViaS11dGlscy9pbmNsdWRlL2xpYmluaXBhcnNlci5oIHwgMTUgLS0tLS0tLS0tLS0tLS0tCisgdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jICAgICAgICAgfCAyMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAzNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3ViaS11dGlscy9pbmNsdWRlL2xpYmluaXBhcnNlci5oIGIvdWJpLXV0aWxzL2luY2x1ZGUvbGliaW5pcGFyc2VyLmgKK2luZGV4IGJlM2M2NjcuLmFiZDc3YWEgMTAwNjQ0CistLS0gYS91YmktdXRpbHMvaW5jbHVkZS9saWJpbmlwYXJzZXIuaAorKysrIGIvdWJpLXV0aWxzL2luY2x1ZGUvbGliaW5pcGFyc2VyLmgKK0BAIC0xNTgsMjEgKzE1OCw2IEBAIGludCBpbmlwYXJzZXJfZ2V0aW50KGRpY3Rpb25hcnkgKiBkLCBjb25zdCBjaGFyICoga2V5LCBpbnQgbm90Zm91bmQpOworIAorIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgLyoqCistICBAYnJpZWYgICAgR2V0IHRoZSBzdHJpbmcgYXNzb2NpYXRlZCB0byBhIGtleSwgY29udmVydCB0byBhIGRvdWJsZQorLSAgQHBhcmFtICAgIGQgRGljdGlvbmFyeSB0byBzZWFyY2gKKy0gIEBwYXJhbSAgICBrZXkgS2V5IHN0cmluZyB0byBsb29rIGZvcgorLSAgQHBhcmFtICAgIG5vdGZvdW5kIFZhbHVlIHRvIHJldHVybiBpbiBjYXNlIG9mIGVycm9yCistICBAcmV0dXJuICAgZG91YmxlCistCistICBUaGlzIGZ1bmN0aW9uIHF1ZXJpZXMgYSBkaWN0aW9uYXJ5IGZvciBhIGtleS4gQSBrZXkgYXMgcmVhZCBmcm9tIGFuCistICBpbmkgZmlsZSBpcyBnaXZlbiBhcyAic2VjdGlvbjprZXkiLiBJZiB0aGUga2V5IGNhbm5vdCBiZSBmb3VuZCwKKy0gIHRoZSBub3Rmb3VuZCB2YWx1ZSBpcyByZXR1cm5lZC4KKy0gKi8KKy0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy1kb3VibGUgaW5pcGFyc2VyX2dldGRvdWJsZShkaWN0aW9uYXJ5ICogZCwgY2hhciAqIGtleSwgZG91YmxlIG5vdGZvdW5kKTsKKy0KKy0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLS8qKgorICAgQGJyaWVmICAgIEdldCB0aGUgc3RyaW5nIGFzc29jaWF0ZWQgdG8gYSBrZXksIGNvbnZlcnQgdG8gYSBib29sZWFuCisgICBAcGFyYW0gICAgZCBEaWN0aW9uYXJ5IHRvIHNlYXJjaAorICAgQHBhcmFtICAgIGtleSBLZXkgc3RyaW5nIHRvIGxvb2sgZm9yCitkaWZmIC0tZ2l0IGEvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jIGIvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jCitpbmRleCA4OThmNTdmLi5iYTcwYzA4IDEwMDY0NAorLS0tIGEvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jCisrKysgYi91YmktdXRpbHMvbGliaW5pcGFyc2VyLmMKK0BAIC0zMTYsMjggKzMxNiw2IEBAIGludCBpbmlwYXJzZXJfZ2V0aW50KGRpY3Rpb25hcnkgKiBkLCBjb25zdCBjaGFyICoga2V5LCBpbnQgbm90Zm91bmQpCisgCisgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAvKioKKy0gIEBicmllZiAgICBHZXQgdGhlIHN0cmluZyBhc3NvY2lhdGVkIHRvIGEga2V5LCBjb252ZXJ0IHRvIGEgZG91YmxlCistICBAcGFyYW0gICAgZCBEaWN0aW9uYXJ5IHRvIHNlYXJjaAorLSAgQHBhcmFtICAgIGtleSBLZXkgc3RyaW5nIHRvIGxvb2sgZm9yCistICBAcGFyYW0gICAgbm90Zm91bmQgVmFsdWUgdG8gcmV0dXJuIGluIGNhc2Ugb2YgZXJyb3IKKy0gIEByZXR1cm4gICBkb3VibGUKKy0KKy0gIFRoaXMgZnVuY3Rpb24gcXVlcmllcyBhIGRpY3Rpb25hcnkgZm9yIGEga2V5LiBBIGtleSBhcyByZWFkIGZyb20gYW4KKy0gIGluaSBmaWxlIGlzIGdpdmVuIGFzICJzZWN0aW9uOmtleSIuIElmIHRoZSBrZXkgY2Fubm90IGJlIGZvdW5kLAorLSAgdGhlIG5vdGZvdW5kIHZhbHVlIGlzIHJldHVybmVkLgorLSAqLworLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLWRvdWJsZSBpbmlwYXJzZXJfZ2V0ZG91YmxlKGRpY3Rpb25hcnkgKiBkLCBjaGFyICoga2V5LCBkb3VibGUgbm90Zm91bmQpCisteworLSAgICBjaGFyICAgICogICBzdHIgOworLQorLSAgICBzdHIgPSBpbmlwYXJzZXJfZ2V0c3RyaW5nKGQsIGtleSwgSU5JX0lOVkFMSURfS0VZKTsKKy0gICAgaWYgKHN0cj09SU5JX0lOVkFMSURfS0VZKSByZXR1cm4gbm90Zm91bmQgOworLSAgICByZXR1cm4gYXRvZihzdHIpOworLX0KKy0KKy0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLS8qKgorICAgQGJyaWVmICAgIEdldCB0aGUgc3RyaW5nIGFzc29jaWF0ZWQgdG8gYSBrZXksIGNvbnZlcnQgdG8gYSBib29sZWFuCisgICBAcGFyYW0gICAgZCBEaWN0aW9uYXJ5IHRvIHNlYXJjaAorICAgQHBhcmFtICAgIGtleSBLZXkgc3RyaW5nIHRvIGxvb2sgZm9yCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDctbXRkLXV0aWxzLWNvbW1vbi5jLWNvbnZlcnQtdG8taW50ZWdlci1hcml0aG1ldGljLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwNy1tdGQtdXRpbHMtY29tbW9uLmMtY29udmVydC10by1pbnRlZ2VyLWFyaXRobWV0aWMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzZiMDEyZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDctbXRkLXV0aWxzLWNvbW1vbi5jLWNvbnZlcnQtdG8taW50ZWdlci1hcml0aG1ldGljLnBhdGNoCkBAIC0wLDAgKzEsNjQgQEAKK0Zyb20gNDFlN2M3NmIwODUzYmY1MjQxYjM4YjgxNjdkZmQ1N2MyN2ZlZjFlYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KK0RhdGU6IFN1biwgMjggSmFuIDIwMTggMjE6NDc6NTkgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCA3LzldIG10ZC11dGlsczogY29tbW9uLmM6IGNvbnZlcnQgdG8gaW50ZWdlciBhcml0aG1ldGljCisKK1dlIHVzZSBmbG9hdGluZyBwb2ludCBqdXN0IHRvIHByaW50IG91dCBLaUIsIE1pQiwgR2lCLgorQXZvaWQgdGhhdCB0byBiZSBrbGliYyBmcmllbmRseS4KKworRml4ZXMgY29tcGlsYXRpb24gZm9yIGFhcmNoNjQgYWdhaW5zdCBrbGliYzoKKworZXJyb3I6ICctbWdlbmVyYWwtcmVncy1vbmx5JyBpcyBpbmNvbXBhdGlibGUgd2l0aCBmbG9hdGluZy1wb2ludCBhcmd1bWVudAorfCAgICBwcmludGYoIiVzJS4xZiBHaUIiLCBwLCAoZG91YmxlKWJ5dGVzIC8gKDEwMjQgKiAxMDI0ICogMTAyNCkpOworZXRjLgorCitOb3RlOgorKiBJbiB0aGUgS2lCIGNhc2UsIHdlIGNvdWxkIGFwcGFyZW50bHkgbXVsdGlwbHkgYnkgMTAwIGJlZm9yZSBkaXZpZGluZworICB3aXRob3V0IHJpc2tpbmcgb3ZlcmZsb3cuIFRoaXMgY29kZSBzaW1wbHkgYXZvaWRzIG11bHRpcGxpY2F0aW9ucy4KKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQKKworU2lnbmVkLW9mZi1ieTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgorLS0tCisgdWJpLXV0aWxzL3ViaXV0aWxzLWNvbW1vbi5jIHwgMTggKysrKysrKysrKysrLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS91YmktdXRpbHMvdWJpdXRpbHMtY29tbW9uLmMgYi91YmktdXRpbHMvdWJpdXRpbHMtY29tbW9uLmMKK2luZGV4IDY2MDlhNmIuLjBkZWQyYTQgMTAwNjQ0CistLS0gYS91YmktdXRpbHMvdWJpdXRpbHMtY29tbW9uLmMKKysrKyBiL3ViaS11dGlscy91Yml1dGlscy1jb21tb24uYworQEAgLTEwNyw2ICsxMDcsOSBAQCBsb25nIGxvbmcgdWJpdXRpbHNfZ2V0X2J5dGVzKGNvbnN0IGNoYXIgKnN0cikKKyB2b2lkIHViaXV0aWxzX3ByaW50X2J5dGVzKGxvbmcgbG9uZyBieXRlcywgaW50IGJyYWNrZXQpCisgeworIAljb25zdCBjaGFyICpwOworKwlpbnQgR2lCID0gMTAyNCAqIDEwMjQgKiAxMDI0OworKwlpbnQgTWlCID0gMTAyNCAqIDEwMjQ7CisrCWludCBLaUIgPSAxMDI0OworIAorIAlpZiAoYnJhY2tldCkKKyAJCXAgPSAiICgiOworQEAgLTExNSwxMiArMTE4LDE1IEBAIHZvaWQgdWJpdXRpbHNfcHJpbnRfYnl0ZXMobG9uZyBsb25nIGJ5dGVzLCBpbnQgYnJhY2tldCkKKyAKKyAJcHJpbnRmKCIlbGxkIGJ5dGVzIiwgYnl0ZXMpOworIAorLQlpZiAoYnl0ZXMgPiAxMDI0ICogMTAyNCAqIDEwMjQpCistCQlwcmludGYoIiVzJS4xZiBHaUIiLCBwLCAoZG91YmxlKWJ5dGVzIC8gKDEwMjQgKiAxMDI0ICogMTAyNCkpOworLQllbHNlIGlmIChieXRlcyA+IDEwMjQgKiAxMDI0KQorLQkJcHJpbnRmKCIlcyUuMWYgTWlCIiwgcCwgKGRvdWJsZSlieXRlcyAvICgxMDI0ICogMTAyNCkpOworLQllbHNlIGlmIChieXRlcyA+IDEwMjQgJiYgYnl0ZXMgIT0gMCkKKy0JCXByaW50ZigiJXMlLjFmIEtpQiIsIHAsIChkb3VibGUpYnl0ZXMgLyAxMDI0KTsKKysJaWYgKGJ5dGVzID4gR2lCKQorKwkJcHJpbnRmKCIlcyVsbGQuJWxsZCBHaUIiLCBwLAorKwkJICAgICAgIGJ5dGVzIC8gR2lCLCBieXRlcyAlIEdpQiAvIChHaUIgLyAxMCkpOworKwllbHNlIGlmIChieXRlcyA+IE1pQikKKysJCXByaW50ZigiJXMlbGxkLiVsbGQgTWlCIiwgcCwKKysJCSAgICAgICBieXRlcyAvIE1pQiwgYnl0ZXMgJSBNaUIgLyAoTWlCIC8gMTApKTsKKysJZWxzZSBpZiAoYnl0ZXMgPiBLaUIgJiYgYnl0ZXMgIT0gMCkKKysJCXByaW50ZigiJXMlbGxkLiVsbGQgS2lCIiwgcCwKKysJCSAgICAgICBieXRlcyAvIEtpQiwgYnl0ZXMgJSBLaUIgLyAoS2lCIC8gMTApKTsKKyAJZWxzZQorIAkJcmV0dXJuOworIAorLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDA4LXViaS11dGlscy11Ymlmb3JtYXQuYy1jb252ZXJ0LXRvLWludGVnZXItYXJpdGhtZXRpYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLTEuNS4yLzAwMDgtdWJpLXV0aWxzLXViaWZvcm1hdC5jLWNvbnZlcnQtdG8taW50ZWdlci1hcml0aG1ldGljLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViZDA1NzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDA4LXViaS11dGlscy11Ymlmb3JtYXQuYy1jb252ZXJ0LXRvLWludGVnZXItYXJpdGhtZXRpYy5wYXRjaApAQCAtMCwwICsxLDQ0IEBACitGcm9tIGU2ZjFhODVjMGEzZGYyNGZlM2NhOWE1MjBkYzY5NzEwNWU3NWE4MGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDI3IEphbiAyMDE4IDA5OjM5OjI2ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggOC85XSB1YmktdXRpbHM6IHViaWZvcm1hdC5jOiBjb252ZXJ0IHRvIGludGVnZXIgYXJpdGhtZXRpYworCitEbyBub3QgY2FzdCBwZXJjZW50IHRvIGRvdWJsZSwgaXQgaXMganVzdCB1c2VkIGFzIHVwcGVyIGxpbWl0LgorQXZvaWQgZmxvYXRpbmcgcG9pbnQgdG8gZml4IGNvbXBpbGF0aW9uIGZvciBhYXJjaDY0IGFnYWluc3Qga2xpYmM6CisKK2Vycm9yOiAnLW1nZW5lcmFsLXJlZ3Mtb25seScgaXMgaW5jb21wYXRpYmxlIHdpdGggZmxvYXRpbmctcG9pbnQgY29kZQorfCAgICBpbnQgcGVyY2VudCA9ICgoZG91YmxlKXNpLT5va19jbnQpL3NpLT5nb29kX2NudCAqIDEwMDsKK3wgICAgICAgIF5+fn5+fn4KKworTm90ZXM6CisqIFRoZSBjaGVja3MgaW4gdGhlIGNvZGUgYWJvdmUgdGhpcyBsaW5lIGVuc3VyZSB0aGF0IHNpLT5nb29kX2NudCBpcyBub3QgMC4KKworKiBUaGUgY29kZSBhc3N1bWVzICBzaS0+Z29vZF9jbnQgKiAxMDAgIHdpbGwgbm90IG92ZXJmbG93LCB0aGVuIHdlIGNhbiB1c2UKKyAgKHNpLT5va19jbnQgKiAxMDApIHNhZmVseSBiZWNhdXNlIHRoZSBmb3JtZXIgaXMgYmlnZ2VyLgorCisqIFRoZSB0cnVuY2F0ZWQgcmVzdWx0IGRvZXMgbm90IGFmZmVjdCB0aGUgbG9naWM6CisgIGkuZS4gYSB2YWx1ZSBvZiA0OS45IGlzIHRydW5jYXRlZCB0byA0OSBhbmQgaXMgc3RpbGwgPDUwLgorCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZAorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+CistLS0KKyB1YmktdXRpbHMvdWJpZm9ybWF0LmMgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS91YmktdXRpbHMvdWJpZm9ybWF0LmMgYi91YmktdXRpbHMvdWJpZm9ybWF0LmMKK2luZGV4IDIxNDA5Y2EuLmQ5MzE2NGEgMTAwNjQ0CistLS0gYS91YmktdXRpbHMvdWJpZm9ybWF0LmMKKysrKyBiL3ViaS11dGlscy91Ymlmb3JtYXQuYworQEAgLTg0Myw3ICs4NDMsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqIGNvbnN0IGFyZ3ZbXSkKKyAJfQorIAorIAlpZiAoIWFyZ3Mub3ZlcnJpZGVfZWMgJiYgc2ktPmVtcHR5X2NudCA8IHNpLT5nb29kX2NudCkgeworLQkJaW50IHBlcmNlbnQgPSAoKGRvdWJsZSlzaS0+b2tfY250KS9zaS0+Z29vZF9jbnQgKiAxMDA7CisrCQlpbnQgcGVyY2VudCA9IChzaS0+b2tfY250ICogMTAwKSAvIHNpLT5nb29kX2NudDsKKyAKKyAJCS8qCisgCQkgKiBNYWtlIHN1cmUgdGhlIG1ham9yaXR5IG9mIGVyYXNlYmxvY2tzIGhhdmUgdmFsaWQKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwOS1FbGltaW5hdGUtd2FybmluZ3MtYWJvdXQtaW1wbGljaXQtbm9uLWNvbnN0LWNhc3RpbmctLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMtMS41LjIvMDAwOS1FbGltaW5hdGUtd2FybmluZ3MtYWJvdXQtaW1wbGljaXQtbm9uLWNvbnN0LWNhc3RpbmctLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1ODI0NmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy0xLjUuMi8wMDA5LUVsaW1pbmF0ZS13YXJuaW5ncy1hYm91dC1pbXBsaWNpdC1ub24tY29uc3QtY2FzdGluZy0ucGF0Y2gKQEAgLTAsMCArMSw0OCBAQAorRnJvbSAyMjI5ZjNiOWZkNGJhZDQ3Nzk0YzI4ZTU1OGFkMjczMTczY2VhNzNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgorRGF0ZTogU2F0LCAyNyBKYW4gMjAxOCAwOTo1Mjo0NiArMDEwMAorU3ViamVjdDogW1BBVENIIDkvOV0gRWxpbWluYXRlIHdhcm5pbmdzIGFib3V0IGltcGxpY2l0IG5vbi1jb25zdCBjYXN0aW5nIGluCisgbGlibXRkCisKK1RoZSBtdGRfZ2V0X2Rldl9pbmZvMSBmdW5jdGlvbiByZWFkcyAoYW1vbmcgb3RoZXIgdGhpbmdzKSBuYW1lIGFuZCB0eXBlCitzdHJpbmcgaW50byBjb3Jlc3BvbmRpbmcgc3RydWN0IG10ZF9kZXZfaW5mbyBmaWVsZHMuCisKK1RoZSBzdHJ1Y3QgbXRkX2Rldl9pbmZvIGhhcyB0aGUgc3RyaW5nIGZpZWxkcyBtYXJrZWQgY29uc3QsIHJlcXVpcmluZwordGhlbSB0byBiZSBjYXN0IHRvIG5vbi1jb25zdCB2ZXJzaW9uIGR1cmluZyBpbml0aWFsaXphdGlvbi4KKworVGhpcyBjYXN0IHdhcyBwcmV2aW91c2x5IG9taXR0ZWQgZnJvbSB0aGUgZGV2X3JlYWRfZGF0YSBjYWxscywKK3RyaWdnZXJpbmcgd2FybmluZ3MgZHVyaW5nIGNvbXBpbGF0aW9uLgorCitTaWduZWQtb2ZmLWJ5OiBEYXZpZCBPYmVyaG9sbGVuemVyIDxkYXZpZC5vYmVyaG9sbGVuemVyQHNpZ21hLXN0YXIuYXQ+CitTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFdlaW5iZXJnZXIgPHJpY2hhcmRAbm9kLmF0PgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KKy0tLQorIGxpYi9saWJtdGQuYyB8IDQgKystLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvbGlibXRkLmMgYi9saWIvbGlibXRkLmMKK2luZGV4IDYwYjQ3ODIuLjVmMGJjYmMgMTAwNjQ0CistLS0gYS9saWIvbGlibXRkLmMKKysrKyBiL2xpYi9saWJtdGQuYworQEAgLTc0NiwxMyArNzQ2LDEzIEBAIGludCBtdGRfZ2V0X2Rldl9pbmZvMShsaWJtdGRfdCBkZXNjLCBpbnQgbXRkX251bSwgc3RydWN0IG10ZF9kZXZfaW5mbyAqbXRkKQorIAlpZiAoZGV2X2dldF9tYWpvcihsaWIsIG10ZF9udW0sICZtdGQtPm1ham9yLCAmbXRkLT5taW5vcikpCisgCQlyZXR1cm4gLTE7CisgCistCXJldCA9IGRldl9yZWFkX2RhdGEobGliLT5tdGRfbmFtZSwgbXRkX251bSwgJm10ZC0+bmFtZSwKKysJcmV0ID0gZGV2X3JlYWRfZGF0YShsaWItPm10ZF9uYW1lLCBtdGRfbnVtLCAoY2hhciAqKSZtdGQtPm5hbWUsCisgCQkJICAgIE1URF9OQU1FX01BWCArIDEpOworIAlpZiAocmV0IDwgMCkKKyAJCXJldHVybiAtMTsKKyAJKChjaGFyICopbXRkLT5uYW1lKVtyZXQgLSAxXSA9ICdcMCc7CisgCistCXJldCA9IGRldl9yZWFkX2RhdGEobGliLT5tdGRfdHlwZSwgbXRkX251bSwgJm10ZC0+dHlwZV9zdHIsCisrCXJldCA9IGRldl9yZWFkX2RhdGEobGliLT5tdGRfdHlwZSwgbXRkX251bSwgKGNoYXIgKikmbXRkLT50eXBlX3N0ciwKKyAJCQkgICAgTVREX1RZUEVfTUFYICsgMSk7CisgCWlmIChyZXQgPCAwKQorIAkJcmV0dXJuIC0xOworLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy8wMDAxLU1ha2VmaWxlLW9ubHktYnVpbGQtdWJpLXV0aWxzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMvMDAwMS1NYWtlZmlsZS1vbmx5LWJ1aWxkLXViaS11dGlscy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmUxYjlmZi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy8wMDAxLU1ha2VmaWxlLW9ubHktYnVpbGQtdWJpLXV0aWxzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotRnJvbSBjNGU2YmQ5Mzc4NjQ1ZDU3N2U5ZDlmODVkYTg1ZjE0MzhhZmU3YzUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgotRGF0ZTogU3VuLCAyOSBKdW4gMjAxNCAwMDozMjoyOSArMDIwMAotU3ViamVjdDogW1BBVENIIDEvNl0gTWFrZWZpbGU6IGJ1aWxkIHViaS11dGlscyBvbmx5Ci0KLVdlIGJ1aWxkIGFsbCB0aGUgc3RhdGljIHViaS11dGlscyBidXQgYWN0dWFsbHkgb25seSB1YmlhdHRhY2ggaXMgbmVlZGVkIGluCi1hIG1pbmltYWxpc3RpYyBpbml0cmFtZnMgZm9yIHRoZSBtb3VudCBvZiB1Ymkgdm9sdW1lcy4KLQotTW9yZSBmaXhlcyBhcmUgbmVlZGVkIGluIG9yZGVyIHRvIGJ1aWxkIHRoZSBmdWxsIG10ZC11dGlscy4KLVRoZSBmaXJzdCBpc3N1ZSBpczoKLQotfCBta2ZzLmpmZnMyLmM6NjQ6MjA6IGZhdGFsIGVycm9yOiBsaWJnZW4uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotfCAgI2luY2x1ZGUgPGxpYmdlbi5oPgotCi1SZW1vdmluZyB0aGUgaW5jbHVkZSB0aGVuIHRoZSBzZWNvbmQgZXJyb3IgaXM6Ci0KLXwgbWtmcy5qZmZzMi5jOjE1NzA6MjI6IGVycm9yOiAnX1NDX1BBR0VTSVpFJyB1bmRlY2xhcmVkCi18IChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKLXwgICBwYWdlX3NpemUgPSBzeXNjb25mKF9TQ19QQUdFU0laRSk7Ci0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCi0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KLS0tLQotIE1ha2VmaWxlIHwgMjQgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCi0KLUluZGV4OiBnaXQvTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnaXQub3JpZy9NYWtlZmlsZQotKysrIGdpdC9NYWtlZmlsZQotQEAgLTE2LDI4ICsxNiwxMSBAQCBlbmRpZgotIAotIFRFU1RTID0gdGVzdHMKLSAKLS1NVERfQklOUyA9IFwKLS0JZnRsX2Zvcm1hdCBmbGFzaF9lcmFzZSBuYW5kZHVtcCBkb2NfbG9hZGJpb3MgXAotLQlmdGxfY2hlY2sgbWtmcy5qZmZzMiBmbGFzaF9sb2NrIGZsYXNoX3VubG9jayBcCi0tCWZsYXNoX290cF9pbmZvIGZsYXNoX290cF9kdW1wIGZsYXNoX290cF9sb2NrIGZsYXNoX290cF93cml0ZSBcCi0tCW10ZF9kZWJ1ZyBmbGFzaGNwIG5hbmR3cml0ZSBuYW5kdGVzdCBtdGRwYXJ0IFwKLS0JamZmczJkdW1wIFwKLS0JbmZ0bGR1bXAgbmZ0bF9mb3JtYXQgZG9jZmRpc2sgXAotLQlyZmRkdW1wIHJmZGZvcm1hdCBcCi0tCXNlcnZlX2ltYWdlIHJlY3ZfaW1hZ2UgXAotLQlzdW10b29sIGpmZnMycmVhZGVyCi0gVUJJX0JJTlMgPSBcCi0gCXViaXVwZGF0ZXZvbCB1Ymlta3ZvbCB1YmlybXZvbCB1YmljcmMzMiB1YmluZm8gdWJpYXR0YWNoIFwKLSAJdWJpZGV0YWNoIHViaW5pemUgdWJpZm9ybWF0IHViaXJlbmFtZSBtdGRpbmZvIHViaXJzdm9sIHViaWJsb2NrCi0gCi0tQklOUyA9ICQoTVREX0JJTlMpCi0tQklOUyArPSBta2ZzLnViaWZzL21rZnMudWJpZnMKLS1CSU5TICs9ICQoYWRkcHJlZml4IHViaS11dGlscy8sJChVQklfQklOUykpCi0tU0NSSVBUUyA9IGZsYXNoX2VyYXNlYWxsCi0tCi0tVEFSR0VUUyA9ICQoQklOUykKLS1UQVJHRVRTICs9IGxpYi9saWJtdGQuYQotLVRBUkdFVFMgKz0gdWJpLXV0aWxzL2xpYnViaS5hCi0rQklOUyA9ICQoYWRkcHJlZml4IHViaS11dGlscy8sJChVQklfQklOUykpCi0gCi0gT0JKREVQUyA9ICQoQlVJTERESVIpL2luY2x1ZGUvdmVyc2lvbi5oCi0gCi1AQCAtNjEsMTIgKzQ0LDkgQEAgZW5kaWYKLSAJcm0gLWYgJChCVUlMRERJUikvaW5jbHVkZS92ZXJzaW9uLmgKLSAJJChNQUtFKSAtQyAkKFRFU1RTKSBjbGVhbgotIAotLWluc3RhbGw6OiAkKGFkZHByZWZpeCAkKEJVSUxERElSKS8sJHtCSU5TfSkgJHtTQ1JJUFRTfQotK2luc3RhbGw6OiAkKGFkZHByZWZpeCAkKEJVSUxERElSKS8sJHtCSU5TfSkKLSAJbWtkaXIgLXAgJHtERVNURElSfS8ke1NCSU5ESVJ9Ci0gCWluc3RhbGwgLW0gMDc1NSAkXiAke0RFU1RESVJ9LyR7U0JJTkRJUn0vCi0tCW1rZGlyIC1wICR7REVTVERJUn0vJHtNQU5ESVJ9L21hbjEKLS0JaW5zdGFsbCAtbSAwNjQ0IG1rZnMuamZmczIuMSAke0RFU1RESVJ9LyR7TUFORElSfS9tYW4xLwotLQktZ3ppcCAtOWYgJHtERVNURElSfS8ke01BTkRJUn0vbWFuMS8qLjEKLSAKLSB0ZXN0czo6Ci0gCSQoTUFLRSkgLUMgJChURVNUUykKLUBAIC05MSw4ICs3MSw2IEBAIExETElCU19ta2ZzLmpmZnMyICA9IC1seiAkKExaT0xETElCUykKLSBMREZMQUdTX2pmZnMycmVhZGVyID0gJChaTElCTERGTEFHUykgJChMWk9MREZMQUdTKQotIExETElCU19qZmZzMnJlYWRlciAgPSAtbHogJChMWk9MRExJQlMpCi0gCi0tJChmb3JlYWNoIHYsJChNVERfQklOUyksJChldmFsICQoY2FsbCBta2RlcCwsJCh2KSkpKQotLQotICMKLSAjIENvbW1vbiBsaWJtdGQKLSAjCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy8wMDAyLWNvbW1vbi5tay1mb3Ita2xpYmMtQ0MtaXMta2xjYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLzAwMDItY29tbW9uLm1rLWZvci1rbGliYy1DQy1pcy1rbGNjLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDY4MjRiLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLzAwMDItY29tbW9uLm1rLWZvci1rbGliYy1DQy1pcy1rbGNjLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotRnJvbSBmMzYwOWM3YzA0NTBiNGMzMWUxZDQ2MDNmY2YyY2ZiMWJhNDZmOTk0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQW5kcmVhIEFkYW1pIDxhbmRyZWEuYWRhbWlAZ21haWwuY29tPgotRGF0ZTogU3VuLCAyOSBKdW4gMjAxNCAwMDozNzoyOCArMDIwMAotU3ViamVjdDogW1BBVENIIDIvNl0gY29tbW9uLm1rOiBmb3Iga2xpYmMgJChDQykgaXMga2xjYwotCi1EbyBub3QgaGFyZGNvZGU6IGFzc2lnbiB0aGUgdmFsdWUgdG8gdGhlIHZhcmlhYmxlIGlmIGl0IGlzIG5vdCBhbHJlYWR5IGRlZmluZWQuCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+Ci0tLS0KLSBjb21tb24ubWsgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9jb21tb24ubWsgYi9jb21tb24ubWsKLWluZGV4IGJhODczNzcuLjU5YzU2ZGYgMTAwNjQ0Ci0tLS0gYS9jb21tb24ubWsKLSsrKyBiL2NvbW1vbi5tawotQEAgLTEsNCArMSw0IEBACi0tQ0MgOj0gJChDUk9TUylnY2MKLStDQyA/PSAkKENST1NTKWdjYwotIEFSIDo9ICQoQ1JPU1MpYXIKLSBSQU5MSUIgOj0gJChDUk9TUylyYW5saWIKLSAKLS0tIAotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMvMDAwMy1saWJ1YmkuYy1hZGQta2xpYmMtc3BlY2lmaWMtZml4ZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy8wMDAzLWxpYnViaS5jLWFkZC1rbGliYy1zcGVjaWZpYy1maXhlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTYyYjM2OC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy8wMDAzLWxpYnViaS5jLWFkZC1rbGliYy1zcGVjaWZpYy1maXhlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc2ICswLDAgQEAKLUZyb20gNzJhMzliYjMyOTBhNzllNzZiMGRiZjU5ZWVmODNlYTJkOWI1NzdhMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMjkgSnVuIDIwMTQgMDA6NDA6MTUgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAzLzZdIGxpYnViaS5jOiBhZGQga2xpYmMgc3BlY2lmaWMgZml4ZXMgZm9yIGlvY3RsCi0KLUZpcnN0IGlzc3VlIGlzIHRoYXQgaW9jdGwoKSBpbiBrbGliYyBkb2Vzbid0IGV4cGVjdCBhIGNvbnN0YW50IGFzIGFyZzMuCi1TZWNvbmQgaXNzdWUgaXMgdGhhdCBhcmczIGluIGtsaWJjIGlvY3RsKCkgaW1wbGVtZW50YXRpb24gaXMgbm90IG9wdGlvbmFsLgotCi1GaXhlczoKLQotfCB1YmktdXRpbHMvbGlidWJpLmM6IEluIGZ1bmN0aW9uICdkb19hdHRhY2gnOgotfCB1YmktdXRpbHMvbGlidWJpLmM6Njk4Ojg6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMyBvZiAnaW9jdGwnIGRpc2NhcmRzCi18ICdjb25zdCcgcXVhbGlmaWVyIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQotfCAgIHJldCA9IGlvY3RsKGZkLCBVQklfSU9DQVRULCByKTsKLXwgICAgICAgICBeCi18IEluIGZpbGUgaW5jbHVkZWQgZnJvbSB1YmktdXRpbHMvbGlidWJpLmM6MzI6MDoKLXwgLi4uL2xpYi9rbGliYy9pbmNsdWRlL3N5cy9pb2N0bC5oOjE1OjE0OiBub3RlOiBleHBlY3RlZCAndm9pZCAqJyBidXQgYXJndW1lbnQKLXwgaXMgb2YgdHlwZSAnY29uc3Qgc3RydWN0IHViaV9hdHRhY2hfcmVxIConCi18ICBfX2V4dGVybiBpbnQgaW9jdGwoaW50LCBpbnQsIHZvaWQgKik7Ci18ICAgICAgICAgICAgICAgXgotCi18IHViaS11dGlscy9saWJ1YmkuYzogSW4gZnVuY3Rpb24gJ3ViaV92b2xfYmxvY2tfY3JlYXRlJzoKLXwgdWJpLXV0aWxzL2xpYnViaS5jOjExMTg6OTogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uICdpb2N0bCcKLXwgICByZXR1cm4gaW9jdGwoZmQsIFVCSV9JT0NWT0xDUkJMSyk7Ci18ICAgICAgICAgIF4KLXwgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHViaS11dGlscy9saWJ1YmkuYzozMjowOgotfCAuLi4vbGliL2tsaWJjL2luY2x1ZGUvc3lzL2lvY3RsLmg6MTU6MTQ6IG5vdGU6IGRlY2xhcmVkIGhlcmUKLXwgIF9fZXh0ZXJuIGludCBpb2N0bChpbnQsIGludCwgdm9pZCAqKTsKLXwgICAgICAgICAgICAgICBeCi18IHViaS11dGlscy9saWJ1YmkuYzogSW4gZnVuY3Rpb24gJ3ViaV92b2xfYmxvY2tfcmVtb3ZlJzoKLXwgdWJpLXV0aWxzL2xpYnViaS5jOjExMjM6OTogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uICdpb2N0bCcKLXwgICByZXR1cm4gaW9jdGwoZmQsIFVCSV9JT0NWT0xSTUJMSyk7Ci18ICAgICAgICAgIF4KLXwgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHViaS11dGlscy9saWJ1YmkuYzozMjowOgotfCAuLi4vdXNyL2xpYi9rbGliYy9pbmNsdWRlL3N5cy9pb2N0bC5oOjE1OjE0OiBub3RlOiBkZWNsYXJlZCBoZXJlCi18ICBfX2V4dGVybiBpbnQgaW9jdGwoaW50LCBpbnQsIHZvaWQgKik7Ci18ICAgICAgICAgICAgICAgXgotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2tsaWJjIHNwZWNpZmljXQotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+Ci0tLS0KLSB1YmktdXRpbHMvbGlidWJpLmMgfCA2ICsrKy0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS91YmktdXRpbHMvbGlidWJpLmMgYi91YmktdXRpbHMvbGlidWJpLmMKLWluZGV4IDFlMDhiN2QuLjQ5MWU1MjUgMTAwNjQ0Ci0tLS0gYS91YmktdXRpbHMvbGlidWJpLmMKLSsrKyBiL3ViaS11dGlscy9saWJ1YmkuYwotQEAgLTY4Nyw3ICs2ODcsNyBAQCB2b2lkIGxpYnViaV9jbG9zZShsaWJ1YmlfdCBkZXNjKQotICAqIHN1Y2Nlc3MgYW5kICUtMSBpbiBjYXNlIG9mIGZhaWx1cmUuIEByLT51YmlfbnVtIGNvbnRhaW5zIG5ld2x5IGNyZWF0ZWQgVUJJCi0gICogZGV2aWNlIG51bWJlci4KLSAgKi8KLS1zdGF0aWMgaW50IGRvX2F0dGFjaChjb25zdCBjaGFyICpub2RlLCBjb25zdCBzdHJ1Y3QgdWJpX2F0dGFjaF9yZXEgKnIpCi0rc3RhdGljIGludCBkb19hdHRhY2goY29uc3QgY2hhciAqbm9kZSwgc3RydWN0IHViaV9hdHRhY2hfcmVxICpyKQotIHsKLSAJaW50IGZkLCByZXQ7Ci0gCi1AQCAtMTExNSwxMiArMTExNSwxMiBAQCBpbnQgdWJpX3Jzdm9sKGxpYnViaV90IGRlc2MsIGNvbnN0IGNoYXIgKm5vZGUsIGludCB2b2xfaWQsIGxvbmcgbG9uZyBieXRlcykKLSAKLSBpbnQgdWJpX3ZvbF9ibG9ja19jcmVhdGUoaW50IGZkKQotIHsKLS0JcmV0dXJuIGlvY3RsKGZkLCBVQklfSU9DVk9MQ1JCTEspOwotKwlyZXR1cm4gaW9jdGwoZmQsIFVCSV9JT0NWT0xDUkJMSywgTlVMTCk7Ci0gfQotIAotIGludCB1Ymlfdm9sX2Jsb2NrX3JlbW92ZShpbnQgZmQpCi0gewotLQlyZXR1cm4gaW9jdGwoZmQsIFVCSV9JT0NWT0xSTUJMSyk7Ci0rCXJldHVybiBpb2N0bChmZCwgVUJJX0lPQ1ZPTFJNQkxLLCBOVUxMKTsKLSB9Ci0gCi0gaW50IHViaV91cGRhdGVfc3RhcnQobGlidWJpX3QgZGVzYywgaW50IGZkLCBsb25nIGxvbmcgYnl0ZXMpCi0tLSAKLTEuOS4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLzAwMDQtY29tbW9uLmgta2xpYmMtZml4ZXMtMS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLzAwMDQtY29tbW9uLmgta2xpYmMtZml4ZXMtMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVlMWNiYy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMtZGV2dG9vbHMvbXRkL3ViaS11dGlscy1rbGliYy8wMDA0LWNvbW1vbi5oLWtsaWJjLWZpeGVzLTEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi1Gcm9tIGU1Njc2N2I5Y2FhMDJlN2M0MTgwMzQ5OWM3N2RjOTM5ZDVhN2Y2NGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBUaG9yc3RlbiBHbGFzZXIgPHRnQG1pcmJzZC5vcmc+Ci1EYXRlOiBGcmksIDIwIEp1biAyMDE0IDEwOjU2OjI3ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggNC82XSBSZXN0b3JlIGNvbXBhdGliaWxpdHkgdG8gZGlldGxpYmMsIGtsaWJjLCBtdXNsIGxpYmMgYWZ0ZXIgY29tbWl0IDRmMWIxMDgKLQotRWFjaCBDIGxpYnJhcnkgaGFzIHRoZWlyIG93biB3YXkgdG8gZGVmaW5lIG9mZl90LCBhbmQgdGhlIDxmZWF0dXJlcy5oPgotaGVhZGVyIGlzIG5vbnN0YW5kYXJkIGFuZCBzcGVjaWZpYyB0byB0aGUgR05VIGxpYmMgYW5kIHRob3NlIHRoYXQgY2xvbmUKLWl0ICh1Q2xpYmMpLiBGZWZl4oCZcyBkaWV0bGliYyB1c2VzIGRpZmZlcmVudCBmbGFncywgYW5kIGtsaWJjIGFsd2F5cyB1c2VzCi1hIDY0LWJpdCBvZmZfdCAobGlrZSB0aGUgQlNEcyk7IG11c2wgbGliYyBjYW5ub3QgYmUgcmVjb2duaXNlZCB1c2luZyBjcHAKLWluc3RydWN0aW9ucywgc28gd2UgYXNzdW1lIDY0IGJpdCB0aGVyZSAoYW5kIG9uIHVua25vd24gQyBsaWJyYXJpZXMpIGFuZAotbGVhdmUgaXQgdG8gdGhlIHVzZXIgdG8gc3VibWl0IGEgZm9sbG93LXVwIGZpeCBpZiB3ZSBndWVzcyB3cm9uZy4gSSBhbHNvCi1hZGRlZCBhIHN0YXRpYyBhc3NlcnRpb24gdG8gdmVyaWZ5IHRoZSA2NCBiaXQgZ3Vlc3MgaXMgY29ycmVjdC4KLQotSXQgd291bGQgYmUgcmVhbGx5IGJldHRlciB1c2luZyBhIGNvbmZpZ3VyZSBzY3JpcHQgZm9yIHRoaXMgaW5zdGVhZC4KLQotRml4ZXM6Ci18ICAgQ0MgICAgICBsaWIvbGlibXRkLm8KLXwgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHViaS11dGlscy91Yml1dGlscy1jb21tb24uYzozNTowOgotfCAuL2luY2x1ZGUvY29tbW9uLmg6Mjk6MjI6IGZhdGFsIGVycm9yOiBmZWF0dXJlcy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci18ICAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLXwgICAgICAgICAgICAgICAgICAgICAgIF4KLXwgY29tcGlsYXRpb24gdGVybWluYXRlZC4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFRob3JzdGVuIEdsYXNlciA8dGdAbWlyYnNkLm9yZz4KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KLS0tLQotIGluY2x1ZGUvY29tbW9uLmggfCAyNCArKysrKysrKysrKysrKysrKysrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21tb24uaCBiL2luY2x1ZGUvY29tbW9uLmgKLWluZGV4IDY4OTVlNWMuLjc3ZjNmN2QgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL2NvbW1vbi5oCi0rKysgYi9pbmNsdWRlL2NvbW1vbi5oCi1AQCAtMjYsNyArMjYsOSBAQAotICNpbmNsdWRlIDxzdHJpbmcuaD4KLSAjaW5jbHVkZSA8ZmNudGwuaD4KLSAjaW5jbHVkZSA8ZXJybm8uaD4KLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKLSAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLSsjZW5kaWYKLSAjaW5jbHVkZSA8aW50dHlwZXMuaD4KLSAjaW5jbHVkZSAidmVyc2lvbi5oIgotIAotQEAgLTUyLDYgKzU0LDIxIEBAIGV4dGVybiAiQyIgewotICNlbmRpZgotIAotIC8qIGRlZmluZSBhIHByaW50IGZvcm1hdCBzcGVjaWZpZXIgZm9yIG9mZl90ICovCi0rI2lmIGRlZmluZWQoX19LTElCQ19fKQotKy8qIGFsd2F5cyA2NCBiaXQgb24ga2xpYmMgKi8KLSsjZGVmaW5lIFBSSXhvZmZfdCBQUkl4NjQKLSsjZGVmaW5lIFBSSWRvZmZfdCBQUklkNjQKLSsjZWxpZiBkZWZpbmVkKF9fZGlldGxpYmNfXykKLSsvKiBkZXBlbmRzIG9uIGNvbXBpbGVyIGZsYWdzIG9uIGRpZXRsaWJjICovCi0rI2lmIGRlZmluZWQoX0ZJTEVfT0ZGU0VUX0JJVFMpICYmIChfRklMRV9PRkZTRVRfQklUUyA9PSA2NCkKLSsjZGVmaW5lIFBSSXhvZmZfdCBQUkl4NjQKLSsjZGVmaW5lIFBSSWRvZmZfdCBQUklkNjQKLSsjZWxzZQotKyNkZWZpbmUgUFJJeG9mZl90ICJsIlBSSXgzMgotKyNkZWZpbmUgUFJJZG9mZl90ICJsIlBSSWQzMgotKyNlbmRpZgotKyNlbGlmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCi0rLyogZGVwZW5kcyBvbiBjb21waWxlciBmbGFncyBvbiBnbGliYyBhbmQgdUNsaWJjICovCi0gI2lmZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKLSAjZGVmaW5lIFBSSXhvZmZfdCBQUkl4NjQKLSAjZGVmaW5lIFBSSWRvZmZfdCBQUklkNjQKLUBAIC01OSw2ICs3NiwxMyBAQCBleHRlcm4gIkMiIHsKLSAjZGVmaW5lIFBSSXhvZmZfdCAibCJQUkl4MzIKLSAjZGVmaW5lIFBSSWRvZmZfdCAibCJQUklkMzIKLSAjZW5kaWYKLSsjZWxzZQotKy8qIHVua25vd24gbGliYyBvciBtdXNsICovCi0rI2RlZmluZSBQUkl4b2ZmX3QgUFJJeDY0Ci0rI2RlZmluZSBQUklkb2ZmX3QgUFJJZDY0Ci0rLyogdmVyaWZ5IG91ciBndWVzcyBvZiA2NCBiaXQgaXMgY29ycmVjdCAqLwotK3N0YXRpYyBjaGFyIF9fUFJJeG9mZl90X3N0YXRpY19hc3NlcnRbc2l6ZW9mKG9mZl90KSA9PSA4ID8gMSA6IC0xXTsKLSsjZW5kaWYKLSAKLSAvKiBWZXJib3NlIG1lc3NhZ2VzICovCi0gI2RlZmluZSBiYXJldmVyYm9zZSh2ZXJib3NlLCBmbXQsIC4uLikgZG8geyAgICAgICAgICAgICAgICAgICAgICAgIFwKLS0tIAotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMvMDAwNS1jb21tb24uaC1rbGliYy1maXhlcy0yLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMvMDAwNS1jb21tb24uaC1rbGliYy1maXhlcy0yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YjA5YzE0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLzAwMDUtY29tbW9uLmgta2xpYmMtZml4ZXMtMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLUZyb20gODMxODg1MmVmNGY3NjhiZWQzMTA3MmFhN2I1N2UxMWFkYzFmNjM5YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMjkgSnVuIDIwMTQgMDA6NDQ6MDMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCA1LzZdIGNvbW1vbi5oOiBtb3JlIHdvcmthcm91bmRzIGZvciBrbGliYyBjb21wYXRpYmlsaXR5Ci0KLVBhdGNoIGlzIGFkZHJlc3NpbmcgdHdvIGlzc3VlczoKLSogRmlyc3QsICBLbGliYyBkb2Vzbid0IGhhdmUgcnBtYXRjaCgpLgotKiBTZWNvbmQsIEtsaWJjIGxhY2tzIGdldGxpbmUoKQotCi1GaXhlczoKLXwgICBMRCAgICAgIHViaS11dGlscy91Ymlmb3JtYXQKLXwgLi4uL2dpdC91YmktdXRpbHMvdWJpZm9ybWF0Lm86IEluIGZ1bmN0aW9uIGBwcm9tcHQnOgotfCAuLi4vZ2l0Ly4vaW5jbHVkZS9jb21tb24uaDoxNTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdldGxpbmUnCi18IC4uLi9naXQvLi9pbmNsdWRlL2NvbW1vbi5oOjE2NDogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgcnBtYXRjaCcKLXwgLi4uL2dpdC8uL2luY2x1ZGUvY29tbW9uLmg6MTU3OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBnZXRsaW5lJwotfCAuLi4vZ2l0Ly4vaW5jbHVkZS9jb21tb24uaDoxNjQ6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHJwbWF0Y2gnCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWEgQWRhbWkgPGFuZHJlYS5hZGFtaUBnbWFpbC5jb20+Ci0tLS0KLSBpbmNsdWRlL2NvbW1vbi5oIHwgMTAgKysrKysrLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLUluZGV4OiBnaXQvaW5jbHVkZS9jb21tb24uaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdpdC5vcmlnL2luY2x1ZGUvY29tbW9uLmgKLSsrKyBnaXQvaW5jbHVkZS9jb21tb24uaAotQEAgLTE2MSwxNSArMTYxLDE3IEBAIHN0YXRpYyBpbmxpbmUgaW50IF9fcnBtYXRjaChjb25zdCBjaGFyICoKLSAgKi8KLSBzdGF0aWMgaW5saW5lIGJvb2wgcHJvbXB0KGNvbnN0IGNoYXIgKm1zZywgYm9vbCBkZWYpCi0gewotLQljaGFyICpsaW5lID0gTlVMTDsKLS0Jc2l6ZV90IGxlbjsKLSsJY2hhciAqbGluZTsKLSAJYm9vbCByZXQgPSBkZWY7Ci0gCi0rCWNvbnN0IGludCBzaXplb2ZfbGluZSA9IDI7Ci0rCWxpbmUgPSBtYWxsb2Moc2l6ZW9mX2xpbmUpOwotKwotIAlkbyB7Ci0gCQlub3Jtc2dfY29udCgiJXMgKCVjLyVjKSAiLCBtc2csIGRlZiA/ICdZJyA6ICd5JywgZGVmID8gJ24nIDogJ04nKTsKLSAJCWZmbHVzaChzdGRvdXQpOwotIAotLQkJd2hpbGUgKGdldGxpbmUoJmxpbmUsICZsZW4sIHN0ZGluKSA9PSAtMSkgewotKwkJd2hpbGUgKGZnZXRzKGxpbmUsIHNpemVvZl9saW5lLCBzdGRpbikgPT0gTlVMTCkgewotIAkJCXByaW50ZigiZmFpbGVkIHRvIHJlYWQgcHJvbXB0OyBhc3N1bWluZyAnJXMnXG4iLAotIAkJCQlkZWYgPyAieWVzIiA6ICJubyIpOwotIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMvMDAwNi1saWJpbmlwYXJzZXItcmVtb3ZlLXVudXNlZC1mdW5jdGlvbi1uZWVkaW5nLWZsb2F0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmMvMDAwNi1saWJpbmlwYXJzZXItcmVtb3ZlLXVudXNlZC1mdW5jdGlvbi1uZWVkaW5nLWZsb2F0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDNhODlkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjLzAwMDYtbGliaW5pcGFyc2VyLXJlbW92ZS11bnVzZWQtZnVuY3Rpb24tbmVlZGluZy1mbG9hdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLUZyb20gNzJhMDRhOWI5ZWQzM2M4ODlkMmUyYjg2ZjMwNmM1YmU5ZjZjZGUzNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMjkgSnVuIDIwMTQgMDA6NDQ6NTcgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCA2LzZdIGxpYmluaXBhcnNlcjogcmVtb3ZlIHVudXNlZCBmdW5jdGlvbiBuZWVkaW5nIGZsb2F0Ci0KLUZpeGVzOgotfCAgIExEICAgICAgdWJpLXV0aWxzL3ViaWZvcm1hdAotfCAuLi4vZ2l0L3ViaS11dGlscy9saWJpbmlwYXJzZXIuYShsaWJpbmlwYXJzZXIubyk6IEluIGZ1bmN0aW9uCi18IGAgIExEICAgICAgdWJpLXV0aWxzL3ViaXJlbmFtZQotfCBpbmlwYXJzZXJfZ2V0ZG91YmxlJzoKLXwgLi4uL2dpdC91YmktdXRpbHMvbGliaW5pcGFyc2VyLmM6MzM2OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBhdG9mJwotCi1HcmVwIGRvZXNuJ3QgcmV2ZWFsIGFueSBvY2N1cnJlbmNlIG9mIGluaXBhcnNlcl9nZXRkb3VibGUoKSwgdXNpbmcgYXRvZigpIHNvCi1yZW1vdmUgaXQ6IGZsb2F0aW5nLXBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgaW4ga2xpYmMKLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYSBBZGFtaSA8YW5kcmVhLmFkYW1pQGdtYWlsLmNvbT4KLS0tLQotIHViaS11dGlscy9pbmNsdWRlL2xpYmluaXBhcnNlci5oIHwgMTUgLS0tLS0tLS0tLS0tLS0tCi0gdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jICAgICAgICAgfCAyMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAzNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3ViaS11dGlscy9pbmNsdWRlL2xpYmluaXBhcnNlci5oIGIvdWJpLXV0aWxzL2luY2x1ZGUvbGliaW5pcGFyc2VyLmgKLWluZGV4IGJlM2M2NjcuLmFiZDc3YWEgMTAwNjQ0Ci0tLS0gYS91YmktdXRpbHMvaW5jbHVkZS9saWJpbmlwYXJzZXIuaAotKysrIGIvdWJpLXV0aWxzL2luY2x1ZGUvbGliaW5pcGFyc2VyLmgKLUBAIC0xNTgsMjEgKzE1OCw2IEBAIGludCBpbmlwYXJzZXJfZ2V0aW50KGRpY3Rpb25hcnkgKiBkLCBjb25zdCBjaGFyICoga2V5LCBpbnQgbm90Zm91bmQpOwotIAotIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0gLyoqCi0tICBAYnJpZWYgICAgR2V0IHRoZSBzdHJpbmcgYXNzb2NpYXRlZCB0byBhIGtleSwgY29udmVydCB0byBhIGRvdWJsZQotLSAgQHBhcmFtICAgIGQgRGljdGlvbmFyeSB0byBzZWFyY2gKLS0gIEBwYXJhbSAgICBrZXkgS2V5IHN0cmluZyB0byBsb29rIGZvcgotLSAgQHBhcmFtICAgIG5vdGZvdW5kIFZhbHVlIHRvIHJldHVybiBpbiBjYXNlIG9mIGVycm9yCi0tICBAcmV0dXJuICAgZG91YmxlCi0tCi0tICBUaGlzIGZ1bmN0aW9uIHF1ZXJpZXMgYSBkaWN0aW9uYXJ5IGZvciBhIGtleS4gQSBrZXkgYXMgcmVhZCBmcm9tIGFuCi0tICBpbmkgZmlsZSBpcyBnaXZlbiBhcyAic2VjdGlvbjprZXkiLiBJZiB0aGUga2V5IGNhbm5vdCBiZSBmb3VuZCwKLS0gIHRoZSBub3Rmb3VuZCB2YWx1ZSBpcyByZXR1cm5lZC4KLS0gKi8KLS0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLS1kb3VibGUgaW5pcGFyc2VyX2dldGRvdWJsZShkaWN0aW9uYXJ5ICogZCwgY2hhciAqIGtleSwgZG91YmxlIG5vdGZvdW5kKTsKLS0KLS0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotLS8qKgotICAgQGJyaWVmICAgIEdldCB0aGUgc3RyaW5nIGFzc29jaWF0ZWQgdG8gYSBrZXksIGNvbnZlcnQgdG8gYSBib29sZWFuCi0gICBAcGFyYW0gICAgZCBEaWN0aW9uYXJ5IHRvIHNlYXJjaAotICAgQHBhcmFtICAgIGtleSBLZXkgc3RyaW5nIHRvIGxvb2sgZm9yCi1kaWZmIC0tZ2l0IGEvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jIGIvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jCi1pbmRleCA4OThmNTdmLi5iYTcwYzA4IDEwMDY0NAotLS0tIGEvdWJpLXV0aWxzL2xpYmluaXBhcnNlci5jCi0rKysgYi91YmktdXRpbHMvbGliaW5pcGFyc2VyLmMKLUBAIC0zMTYsMjggKzMxNiw2IEBAIGludCBpbmlwYXJzZXJfZ2V0aW50KGRpY3Rpb25hcnkgKiBkLCBjb25zdCBjaGFyICoga2V5LCBpbnQgbm90Zm91bmQpCi0gCi0gLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLSAvKioKLS0gIEBicmllZiAgICBHZXQgdGhlIHN0cmluZyBhc3NvY2lhdGVkIHRvIGEga2V5LCBjb252ZXJ0IHRvIGEgZG91YmxlCi0tICBAcGFyYW0gICAgZCBEaWN0aW9uYXJ5IHRvIHNlYXJjaAotLSAgQHBhcmFtICAgIGtleSBLZXkgc3RyaW5nIHRvIGxvb2sgZm9yCi0tICBAcGFyYW0gICAgbm90Zm91bmQgVmFsdWUgdG8gcmV0dXJuIGluIGNhc2Ugb2YgZXJyb3IKLS0gIEByZXR1cm4gICBkb3VibGUKLS0KLS0gIFRoaXMgZnVuY3Rpb24gcXVlcmllcyBhIGRpY3Rpb25hcnkgZm9yIGEga2V5LiBBIGtleSBhcyByZWFkIGZyb20gYW4KLS0gIGluaSBmaWxlIGlzIGdpdmVuIGFzICJzZWN0aW9uOmtleSIuIElmIHRoZSBrZXkgY2Fubm90IGJlIGZvdW5kLAotLSAgdGhlIG5vdGZvdW5kIHZhbHVlIGlzIHJldHVybmVkLgotLSAqLwotLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotLWRvdWJsZSBpbmlwYXJzZXJfZ2V0ZG91YmxlKGRpY3Rpb25hcnkgKiBkLCBjaGFyICoga2V5LCBkb3VibGUgbm90Zm91bmQpCi0tewotLSAgICBjaGFyICAgICogICBzdHIgOwotLQotLSAgICBzdHIgPSBpbmlwYXJzZXJfZ2V0c3RyaW5nKGQsIGtleSwgSU5JX0lOVkFMSURfS0VZKTsKLS0gICAgaWYgKHN0cj09SU5JX0lOVkFMSURfS0VZKSByZXR1cm4gbm90Zm91bmQgOwotLSAgICByZXR1cm4gYXRvZihzdHIpOwotLX0KLS0KLS0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotLS8qKgotICAgQGJyaWVmICAgIEdldCB0aGUgc3RyaW5nIGFzc29jaWF0ZWQgdG8gYSBrZXksIGNvbnZlcnQgdG8gYSBib29sZWFuCi0gICBAcGFyYW0gICAgZCBEaWN0aW9uYXJ5IHRvIHNlYXJjaAotICAgQHBhcmFtICAgIGtleSBLZXkgc3RyaW5nIHRvIGxvb2sgZm9yCi0tLSAKLTEuOS4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1kZXZ0b29scy9tdGQvdWJpLXV0aWxzLWtsaWJjXzEuNS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmNfMS41LjIuYmIKaW5kZXggNTE4YzAyZi4uYWJiMGQ0YiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmNfMS41LjIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWRldnRvb2xzL210ZC91YmktdXRpbHMta2xpYmNfMS41LjIuYmIKQEAgLTExLDEyICsxMSwxNSBAQAogCiBTUkNSRVYgPSAiYWVhMzY0MTcwNjdkYWRlNzUxOTJiYWZhMDNhZjcwYjZlYjI2NzdiMSIKIFNSQ19VUkkgPSAiZ2l0Oi8vZ2l0LmluZnJhZGVhZC5vcmcvbXRkLXV0aWxzLmdpdCBcCi0gICAgICAgICAgICAgZmlsZTovLzAwMDEtTWFrZWZpbGUtb25seS1idWlsZC11YmktdXRpbHMucGF0Y2ggXAorICAgICAgICAgICAgIGZpbGU6Ly8wMDAxLU1ha2VmaWxlLWJ1aWxkLXViaS11dGlscy1vbmx5LnBhdGNoIFwKICAgICAgICAgICAgICBmaWxlOi8vMDAwMi1jb21tb24ubWstZm9yLWtsaWJjLUNDLWlzLWtsY2MucGF0Y2ggXAotICAgICAgICAgICAgIGZpbGU6Ly8wMDAzLWxpYnViaS5jLWFkZC1rbGliYy1zcGVjaWZpYy1maXhlcy5wYXRjaCBcCi0gICAgICAgICAgICAgZmlsZTovLzAwMDQtY29tbW9uLmgta2xpYmMtZml4ZXMtMS5wYXRjaCBcCi0gICAgICAgICAgICAgZmlsZTovLzAwMDUtY29tbW9uLmgta2xpYmMtZml4ZXMtMi5wYXRjaCBcCisgICAgICAgICAgICAgZmlsZTovLzAwMDMtbGlidWJpLmMtYWRkLWtsaWJjLXNwZWNpZmljLWZpeGVzLWZvci1pb2N0bC5wYXRjaCBcCisgICAgICAgICAgICAgZmlsZTovLzAwMDQtUmVzdG9yZS1jb21wYXRpYmlsaXR5LXRvLWRpZXRsaWJjLWtsaWJjLW11c2wtbGliYy1hZi5wYXRjaCBcCisgICAgICAgICAgICAgZmlsZTovLzAwMDUtY29tbW9uLmgtbW9yZS13b3JrYXJvdW5kcy1mb3Ita2xpYmMtY29tcGF0aWJpbGl0eS5wYXRjaCBcCiAgICAgICAgICAgICAgZmlsZTovLzAwMDYtbGliaW5pcGFyc2VyLXJlbW92ZS11bnVzZWQtZnVuY3Rpb24tbmVlZGluZy1mbG9hdC5wYXRjaCBcCisgICAgICAgICAgICAgZmlsZTovLzAwMDctbXRkLXV0aWxzLWNvbW1vbi5jLWNvbnZlcnQtdG8taW50ZWdlci1hcml0aG1ldGljLnBhdGNoIFwKKyAgICAgICAgICAgICBmaWxlOi8vMDAwOC11YmktdXRpbHMtdWJpZm9ybWF0LmMtY29udmVydC10by1pbnRlZ2VyLWFyaXRobWV0aWMucGF0Y2ggXAorICAgICAgICAgICAgIGZpbGU6Ly8wMDA5LUVsaW1pbmF0ZS13YXJuaW5ncy1hYm91dC1pbXBsaWNpdC1ub24tY29uc3QtY2FzdGluZy0ucGF0Y2ggXAogICAgICAgICAgICAgICIKIAogUyA9ICIke1dPUktESVJ9L2dpdC8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMta2VybmVsL2tleGVjL2tleGVjLXRvb2xzLWtsaWJjXzIuMC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLWluaXRyYW1mcy9yZWNpcGVzLWtlcm5lbC9rZXhlYy9rZXhlYy10b29scy1rbGliY18yLjAuMi5iYgppbmRleCA0OWM1M2EzLi4yZTI3MDMzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtaW5pdHJhbWZzL3JlY2lwZXMta2VybmVsL2tleGVjL2tleGVjLXRvb2xzLWtsaWJjXzIuMC4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1pbml0cmFtZnMvcmVjaXBlcy1rZXJuZWwva2V4ZWMva2V4ZWMtdG9vbHMta2xpYmNfMi4wLjIuYmIKQEAgLTEsMTAgKzEsMTYgQEAKICMgdGhlIGJpbmFyaWVzIGFyZSBzdGF0aWNhbGx5IGxpbmtlZCBhZ2FpbnN0IGtsaWJjCi1yZXF1aXJlIHJlY2lwZXMta2VybmVsL2tleGVjL2tleGVjLXRvb2xzLmluYwogU1VNTUFSWSA9ICJLZXhlYyB0b29scywgc3RhdGljYWxseSBjb21waWxlZCBhZ2FpbnN0IGtsaWJjIgotU1JDX1VSSVttZDVzdW1dID0gIjkyZWZmOTNiMDk3NDc1Yjc3NjdmOGM5OGRmODQ0MDhhIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjA5ZTE4MGZmMzZkZWUwODcxODJjZGM5MzliYTZjNjkxN2I2YWRiYjVmYzEyZDU4OWYzMWZkMzY1OWI2NDcxZjIiCitBVVRIT1IgPSAiRXJpYyBCaWVkZXJtYW4iCitIT01FUEFHRSA9ICJodHRwOi8va2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMva2VybmVsL2tleGVjLyIKK1NFQ1RJT04gPSAia2VybmVsL3VzZXJsYW5kIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWVhNWJlZDJmNjBkMzU3NjE4Y2ExNjFhZDUzOWY3YzBhIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL2tleGVjL2tleGVjLmM7YmVnaW5saW5lPTE7ZW5kbGluZT0yMDttZDU9YWYxMGY2YWU0YTg3MTU5NjVlNjQ4YWE2ODdhZDNlMDkiCitERVBFTkRTID0gInpsaWIgeHoiCiAKLWluaGVyaXQga2xpYmMKK1BSID0gInIxIgorCitpbmhlcml0IGtsaWJjIGF1dG90b29scwogCiBGSUxFU1BBVEggPS4gIiR7RklMRV9ESVJOQU1FfS9rZXhlYy10b29scy0ke1BWfToiCiAKQEAgLTIzLDYgKzI5LDkgQEAKICAgICAgICAgICAgIGZpbGU6Ly8wMDAxLUFkanVzdC10aGUtb3JkZXItb2YtaGVhZGVycy10by1maXgtYnVpbGQtZm9yLW11c2wucGF0Y2ggXAogICAgICAgICAgICAgIgogCitTUkNfVVJJW21kNXN1bV0gPSAiOTJlZmY5M2IwOTc0NzViNzc2N2Y4Yzk4ZGY4NDQwOGEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDllMTgwZmYzNmRlZTA4NzE4MmNkYzkzOWJhNmM2OTE3YjZhZGJiNWZjMTJkNTg5ZjMxZmQzNjU5YjY0NzFmMiIKKwogU1JDX1VSSV9hcHBlbmRfYXJtID0gIiBmaWxlOi8vYXJtX2NyYXNoZHVtcC5wYXRjaCIKIFNSQ19VUklfYXBwZW5kX3Bvd2VycGMgPSAiIGZpbGU6Ly9wcGNfX2xzaHJkaTMucGF0Y2giCiBTUkNfVVJJX2FwcGVuZF94ODYgPSAiIGZpbGU6Ly94ODZfc3lzX2lvLnBhdGNoIGZpbGU6Ly94ODZfYmFzZW5hbWUucGF0Y2ggZmlsZTovL3g4Nl92ZnNjYW5mLnBhdGNoIGZpbGU6Ly94ODZfa2V4ZWNfdGVzdC5wYXRjaCIKQEAgLTM1LDcgKzQ0LDI2IEBACiBDRkxBR1MgKz0gIi1JJHtTVEFHSU5HX0RJUl9IT1NUfSR7bGliZGlyfS9rbGliYy9pbmNsdWRlIC1JJHtTVEFHSU5HX0RJUl9IT1NUfSR7bGliZGlyfS9rbGliYy9pbmNsdWRlL2JpdHMzMiIKIENGTEFHU194ODYtNjQgKz0gIi1JJHtTVEFHSU5HX0RJUl9IT1NUfSR7bGliZGlyfS9rbGliYy9pbmNsdWRlIC1JJHtTVEFHSU5HX0RJUl9IT1NUfSR7bGliZGlyfS9rbGliYy9pbmNsdWRlL2JpdHM2NCIKIAorZG9fY29tcGlsZV9wcmVwZW5kKCkgeworICAgICMgUmVtb3ZlIHRoZSBwcmVwYWNrYWdlZCBjb25maWcuaCBmcm9tIHRoZSBzb3VyY2UgdHJlZSBhcyBpdCBvdmVycmlkZXMKKyAgICAjIHRoZSBzYW1lIGZpbGUgZ2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZSBhbmQgcGxhY2VkIGluIHRoZSBidWlsZCB0cmVlCisgICAgcm0gLWYgJHtTfS9pbmNsdWRlL2NvbmZpZy5oCisKKyAgICAjIFJlbW92ZSB0aGUgJyouZCcgZmlsZSB0byBtYWtlIHN1cmUgdGhlIHJlY29tcGlsZSBpcyBPSworICAgIGZvciBkZXAgaW4gYGZpbmQgJHtCfSAtdHlwZSBmIC1uYW1lICcqLmQnYDsgZG8KKyAgICAgICAgZGVwX25vX2Q9ImBlY2hvICRkZXAgfCBzZWQgJ3MjLmQkIyMnYCIKKyAgICAgICAgIyBSZW1vdmUgZmlsZS5kIHdoZW4gdGhlcmUgaXMgYSBmaWxlLm8KKyAgICAgICAgaWYgWyAtZiAiJGRlcF9ub19kLm8iIF07IHRoZW4KKyAgICAgICAgICAgIHJtIC1mICRkZXAKKyAgICAgICAgZmkKKyAgICBkb25lCit9CisKIFBBQ0tBR0VTID0rICJrZXhlYy1rbGliYyBrZHVtcC1rbGliYyIKIAogRklMRVNfa2V4ZWMta2xpYmMgPSAiJHtzYmluZGlyfS9rZXhlYyIKIEZJTEVTX2tkdW1wLWtsaWJjID0gIiR7c2JpbmRpcn0va2R1bXAiCisKK0lOU0FORV9TS0lQXyR7UE59ID0gImFyY2giCisKK0NPTVBBVElCTEVfSE9TVCA9ICcoeDg2XzY0Lip8aS44Ni4qfGFybS4qfGFhcmNoNjQuKnxwb3dlcnBjLip8bWlwcy4qKS0obGludXh8ZnJlZWJzZC4qKScKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL1JFQURNRSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL1JFQURNRQppbmRleCBiNTlkZmUwLi4yMGY0ZmI4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9SRUFETUUKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvUkVBRE1FCkBAIC0xLDIwICsxLDE5IEBACiBUaGlzIGxheWVyIGRlcGVuZHMgb246CiAKIFVSSTogZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuZW1iZWRkZWQvb2UtY29yZS5naXQKLWJyYW5jaDogcm9ja28KK2JyYW5jaDogbWFzdGVyCiByZXZpc2lvbjogSEVBRAogCiBVUkk6IGdpdDovL2dpdGh1Yi5jb20vb3BlbmVtYmVkZGVkL21ldGEtb2UuZ2l0CiBsYXllcnM6IG1ldGEtb2UKLWJyYW5jaDogcm9ja28KK2JyYW5jaDogbWFzdGVyCiByZXZpc2lvbjogSEVBRAogCi1TZW5kIHB1bGwgcmVxdWVzdHMgdG8gb3BlbmVtYmVkZGVkLWRldmVsQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcgd2l0aCAnW21ldGEtbXVsdGltZWRpYV1bcm9ja29dJyBpbiB0aGUgc3ViamVjdCcKK1NlbmQgcHVsbCByZXF1ZXN0cyB0byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyB3aXRoICdbbWV0YS1tdWx0aW1lZGlhXScgaW4gdGhlIHN1YmplY3QnCiAKIFdoZW4gc2VuZGluZyBzaW5nbGUgcGF0Y2hlcywgcGxlYXNlIHVzZSBzb21ldGhpbmcgbGlrZToKLSdnaXQgc2VuZC1lbWFpbCAtTSAtMSAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIC0tc3ViamVjdC1wcmVmaXg9bWV0YS1tdWx0aW1lZGlhXVtyb2Nrb11bUEFUQ0gKKydnaXQgc2VuZC1lbWFpbCAtTSAtMSAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIC0tc3ViamVjdC1wcmVmaXg9bWV0YS1tdWx0aW1lZGlhXVtQQVRDSAogCiBZb3UgYXJlIGVuY291cmFnZWQgdG8gZm9yayB0aGUgbWlycm9yIG9uIGdpdGh1YiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmVtYmVkZGVkL21ldGEtb2UvIHRvIHNoYXJlIHlvdXIgcGF0Y2hlcywgdGhpcyBpcyBwcmVmZXJyZWQgZm9yIHBhdGNoIHNldHMgY29uc2lzdGluZyBvZiBtb3JlIHRoYW4gb25lIHBhdGNoLiBPdGhlciBzZXJ2aWNlcyBsaWtlIGdpdG9yaW91cywgcmVwby5vci5jeiBvciBzZWxmIGhvc3RlZCBzZXR1cHMgYXJlIG9mIGNvdXJzZSBhY2NlcHRlZCBhcyB3ZWxsLCAnZ2l0IGZldGNoIDxyZW1vdGU+JyB3b3JrcyB0aGUgc2FtZSBvbiBhbGwgb2YgdGhlbS4gV2UgcmVjb21tZW5kIGdpdGh1YiBiZWNhdXNlIGl0IGlzIGZyZWUsIGVhc3kgdG8gdXNlLCBoYXMgYmVlbiBwcm92ZW4gdG8gYmUgcmVsaWFibGUgYW5kIGhhcyBhIHJlYWxseSBnb29kIHdlYiBHVUkuCiAKLXJvY2tvIEJyYW5jaCBNYWludGFpbmVyOgotQXJtaW4gS3VzdGVyIDxha3VzdGVyODA4QGdtYWlsLmNvbT4KK0xheWVyIG1haW50YWluZXI6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL2NvbmYvbGF5ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL2NvbmYvbGF5ZXIuY29uZgppbmRleCBkNjhiMTNmLi5jZmVkZjJmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9jb25mL2xheWVyLmNvbmYKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvY29uZi9sYXllci5jb25mCkBAIC0yOSwzICsyOSw0IEBACiAKIExBWUVSREVQRU5EU19tdWx0aW1lZGlhLWxheWVyID0gImNvcmUiCiAKK0xBWUVSU0VSSUVTX0NPTVBBVF9tdWx0aW1lZGlhLWxheWVyID0gInN1bW8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ndXBucC9ndXBucC10b29sc18wLjguMTMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ndXBucC9ndXBucC10b29sc18wLjguMTMuYmIKaW5kZXggOTM2MGQ2NS4uM2RkYjgxOCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1jb25uZWN0aXZpdHkvZ3VwbnAvZ3VwbnAtdG9vbHNfMC44LjEzLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtY29ubmVjdGl2aXR5L2d1cG5wL2d1cG5wLXRvb2xzXzAuOC4xMy5iYgpAQCAtOCw0ICs4LDYgQEAKIFNSQ19VUkkgPSAiaHR0cDovL2Rvd25sb2FkLmdub21lLm9yZy9zb3VyY2VzLyR7QlBOfS8wLjgvJHtCUE59LSR7UFZ9LnRhci54eiIKIFNSQ19VUklbbWQ1c3VtXSA9ICIyMTJkODVlYmNlODliMzI0NjhiNTllMTE2NDA1MGQ0MCIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICJhYTNkZWNiOWQ1MzJjMGUyZTUwNWFkYzU5MmY0MzFmZDgxYzAyMzFkZWQyOTgxMTI5ZTg3ZGExMzcxMjQ3OWVkIgotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdldHRleHQKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcgZ2V0dGV4dAorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlidXBucC9saWJ1cG5wMS42L3NlcGJ1aWxkZml4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlidXBucC9saWJ1cG5wMS42L3NlcGJ1aWxkZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDkzY2VhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtY29ubmVjdGl2aXR5L2xpYnVwbnAvbGlidXBucDEuNi9zZXBidWlsZGZpeC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLUZyb20gZTE5OGYwYTg3NjYwYTA0ODE2NGNhMGUxNmQxODUxN2QwYWVlODQ2ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFuZHJlIE1jQ3VyZHkgPGFybWNjdXJkeUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDkgSnVuIDIwMTUgMTI6MjA6NDUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IGJ1aWxkcyB3aGVuIHVzaW5nIHNlcGFyYXRlIHNvdXJjZSBhbmQgYnVpbGQgZGlyZWN0b3JpZXMuCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZSBNY0N1cmR5IDxhcm1jY3VyZHlAZ21haWwuY29tPgotLS0tCi0gY29uZmlndXJlLmFjICAgICAgICAgICB8IDEwICsrKysrLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggYTg3MzFiNS4uNTRhM2MzZCAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNzQ0LDkgKzc0NCw5IEBAIEFDX09VVFBVVAotICMKLSAjIEZpbGVzIGNvcGllZCBmb3Igd2luZG93cyBjb21waWxhdGlvbi4KLSAjCi0tZWNobyAiY29uZmlndXJlOiBjb3B5aW5nIFwiYXV0b2NvbmZpZy5oXCIgICAgICAgICAgdG8gXCJidWlsZC9pbmMvYXV0b2NvbmZpZy5oXCIiCi0tdGVzdCAtZCBidWlsZC9pbmMgfHwgbWtkaXIgLXAgYnVpbGQvaW5jCi0tY3AgYXV0b2NvbmZpZy5oIGJ1aWxkL2luYy9hdXRvY29uZmlnLmgKLS1lY2hvICJjb25maWd1cmU6IGNvcHlpbmcgXCJ1cG5wL2luYy91cG5wY29uZmlnLmhcIiB0byBcImJ1aWxkL2luYy91cG5wY29uZmlnLmhcIiIKLS1jcCB1cG5wL2luYy91cG5wY29uZmlnLmggYnVpbGQvaW5jL3VwbnBjb25maWcuaAotK2VjaG8gImNvbmZpZ3VyZTogY29weWluZyBcImF1dG9jb25maWcuaFwiICAgICAgICAgIHRvIFwiXCRzcmNkaXIvYnVpbGQvaW5jL2F1dG9jb25maWcuaFwiIgotK3Rlc3QgLWQgJHNyY2Rpci9idWlsZC9pbmMgfHwgbWtkaXIgLXAgJHNyY2Rpci9idWlsZC9pbmMKLStjcCBhdXRvY29uZmlnLmggJHNyY2Rpci9idWlsZC9pbmMvYXV0b2NvbmZpZy5oCi0rZWNobyAiY29uZmlndXJlOiBjb3B5aW5nIFwidXBucC9pbmMvdXBucGNvbmZpZy5oXCIgdG8gXCJcJHNyY2Rpci9idWlsZC9pbmMvdXBucGNvbmZpZy5oXCIiCi0rY3AgdXBucC9pbmMvdXBucGNvbmZpZy5oICRzcmNkaXIvYnVpbGQvaW5jL3VwbnBjb25maWcuaAotIAotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJ1cG5wL2xpYnVwbnAxLjZfMS42LjIxLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlidXBucC9saWJ1cG5wMS42XzEuNi4yMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFiMDQyOS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJ1cG5wL2xpYnVwbnAxLjZfMS42LjIxLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotU1VNTUFSWSA9ICJQb3J0YWJsZSBTREsgZm9yIFVQblAqIERldmljZXMiCi1ERVNDUklQVElPTiA9ICJUaGUgUG9ydGFibGUgU0RLIGZvciBVUG5QIERldmljZXMgaXMgYW4gU0RLIGZvciBkZXZlbG9wbWVudCBvZiBcCi1VUG5QIGRldmljZSBhbmQgY29udHJvbCBwb2ludCBhcHBsaWNhdGlvbnMuIEl0IGNvbnNpc3RzIG9mIHRoZSBjb3JlIFVQblAgXAotcHJvdG9jb2xzIGFsb25nIHdpdGggYSBVUG5QLXNwZWNpZmljIGVYdGVuc2libGUgTWFya3VwIExhbmd1YWdlIChYTUwpIHBhcnNlciBcCi1zdXBwb3J0aW5nIHRoZSBEb2N1bWVudCBPYmplY3QgTW9kZWwgKERPTSkgTGV2ZWwgMiBBUEkgYW5kIGFuIG9wdGlvbmFsLCBcCi1pbnRlZ3JhdGVkIG1pbmkgd2ViIHNlcnZlciBmb3Igc2VydmluZyBVUG5QIHJlbGF0ZWQgZG9jdW1lbnRzLiIKLUhPTUVQQUdFID0gImh0dHA6Ly9wdXBucC5zb3VyY2Vmb3JnZS5uZXQvIgotTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1iMzE5MGQ1MjQ0ZTA4ZTc4ZTRjOGVlNzg1NDRmNDg2MyIKLQotU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vcHVwbnAvbGlidXBucC0ke1BWfS50YXIuYnoyIFwKLSAgICAgICAgICAgZmlsZTovL3NlcGJ1aWxkZml4LnBhdGNoIFwKLSIKLQotU1JDX1VSSVttZDVzdW1dID0gIjUxM2FkYWRiMDdmYTAzOWE4YWViMGNlYjdiN2IwZjZlIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImFmM2YzYzA4NDZhMWQ3NWJhZWFkYWU0YWE1YTJiZGE0Mjc1NjdlMmExZmI0NTU5YmY3M2NjZmYwYTRmOWEzOWIiCi0KLVMgPSAiJHtXT1JLRElSfS9saWJ1cG5wLSR7UFZ9IgotCi1pbmhlcml0IGF1dG90b29scwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1jb25uZWN0aXZpdHkvcnlnZWwvcnlnZWxfMC4zNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1jb25uZWN0aXZpdHkvcnlnZWwvcnlnZWxfMC4zNC4wLmJiCmluZGV4IGQyZWRhNmIuLmU5NGM5ZmYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtY29ubmVjdGl2aXR5L3J5Z2VsL3J5Z2VsXzAuMzQuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9yeWdlbC9yeWdlbF8wLjM0LjAuYmIKQEAgLTMwLDYgKzMwLDcgQEAKIFBBQ0tBR0VDT05GSUdbbWVkaWEtZXhwb3J0XSA9ICItLWVuYWJsZS1tZWRpYS1leHBvcnQtcGx1Z2luLC0tZGlzYWJsZS1tZWRpYS1leHBvcnQtcGx1Z2luIgogUEFDS0FHRUNPTkZJR1tnc3QtbGF1bmNoXSA9ICItLWVuYWJsZS1nc3QtbGF1bmNoLXBsdWdpbiwtLWRpc2FibGUtZ3N0LWxhdW5jaC1wbHVnaW4iCiBQQUNLQUdFQ09ORklHW2d0ayszXSA9ICIsLS13aXRob3V0LXVpLGd0ayszIgorUEFDS0FHRUNPTkZJR1tsbXNdID0gIi0tZW5hYmxlLWxtcy1wbHVnaW4sLS1kaXNhYmxlLWxtcy1wbHVnaW4iCiAKIExJQlYgPSAiMi42IgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW1lZGlhY2VudGVyL2tvZGkva29kaV8xNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbWVkaWFjZW50ZXIva29kaS9rb2RpXzE3LmJiCmluZGV4IDUxNThmMDUuLjI5NTYxODkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbWVkaWFjZW50ZXIva29kaS9rb2RpXzE3LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbWVkaWFjZW50ZXIva29kaS9rb2RpXzE3LmJiCkBAIC02LDYwICs2LDU5IEBACiBGSUxFU1BBVEggPS4gIiR7RklMRV9ESVJOQU1FfS9rb2RpLTE3OiIKIAogREVQRU5EUyA9ICIgXAotICAgICAgICAgICAgY21ha2UtbmF0aXZlIFwKLSAgICAgICAgICAgIGN1cmwtbmF0aXZlIFwKLSAgICAgICAgICAgIGdwZXJmLW5hdGl2ZSBcCi0gICAgICAgICAgICBqc29uc2NoZW1hYnVpbGRlci1uYXRpdmUgXAotICAgICAgICAgICAgbmFzbS1uYXRpdmUgXAotICAgICAgICAgICAgc3dpZy1uYXRpdmUgXAotICAgICAgICAgICAgdW56aXAtbmF0aXZlIFwKLSAgICAgICAgICAgIHlhc20tbmF0aXZlIFwKLSAgICAgICAgICAgIHppcC1uYXRpdmUgXAotICAgICAgICAgICAgYXZhaGkgXAotICAgICAgICAgICAgYm9vc3QgXAotICAgICAgICAgICAgYnppcDIgXAotICAgICAgICAgICAgY3Jvc3NndWlkIFwKLSAgICAgICAgICAgIGN1cmwgXAotICAgICAgICAgICAgZGNhZGVjIFwKLSAgICAgICAgICAgIGVuY2EgXAotICAgICAgICAgICAgZXhwYXQgXAotICAgICAgICAgICAgZmFhZDIgXAotICAgICAgICAgICAgZmZtcGVnIFwKLSAgICAgICAgICAgIGZvbnRjb25maWcgXAotICAgICAgICAgICAgZnJpYmlkaSBcCi0gICAgICAgICAgICBnaWZsaWIgXAotICAgICAgICAgICAgamFzcGVyIFwKLSAgICAgICAgICAgIGxpYmFzcyBcCi0gICAgICAgICAgICBsaWJjZGlvIFwKLSAgICAgICAgICAgIGxpYmNlYyBcCi0gICAgICAgICAgICBsaWJtYWQgXAotICAgICAgICAgICAgbGlibWljcm9odHRwZCBcCi0gICAgICAgICAgICBsaWJtbXMgXAotICAgICAgICAgICAgbGlibW1zIFwKLSAgICAgICAgICAgIGxpYm1vZHBsdWcgXAotICAgICAgICAgICAgbGlicGNyZSBcCi0gICAgICAgICAgICBsaWJwbGlzdCBcCi0gICAgICAgICAgICBsaWJzYW1wbGVyYXRlMCBcCi0gICAgICAgICAgICBsaWJzZGwtaW1hZ2UgXAotICAgICAgICAgICAgbGlic2RsLW1peGVyIFwKLSAgICAgICAgICAgIGxpYnNxdWlzaCBcCi0gICAgICAgICAgICBsaWJzc2ggXAotICAgICAgICAgICAgbGlidGlueXhtbCBcCi0gICAgICAgICAgICBsaWJ1c2IxIFwKLSAgICAgICAgICAgIGxpYnhzbHQgXAotICAgICAgICAgICAgbHpvIFwKLSAgICAgICAgICAgIG1wZWcyZGVjIFwKLSAgICAgICAgICAgIHB5dGhvbiBcCi0gICAgICAgICAgICBzYW1iYSBcCi0gICAgICAgICAgICBzcWxpdGUzIFwKLSAgICAgICAgICAgIHRhZ2xpYiBcCi0gICAgICAgICAgICB2aXJ0dWFsL2VnbCBcCi0gICAgICAgICAgICB2aXJ0dWFsL2xpYnNkbCBcCi0gICAgICAgICAgICB3YXZwYWNrIFwKLSAgICAgICAgICAgIHlhamwgXAotICAgICAgICAgICAgemxpYiBcCi0gICAgICAgICAgICAke0BlbmFibGVfZ2xldyhiYiwgZCl9IFwKLSAgICAgICAgICAiCisgICAgY21ha2UtbmF0aXZlIFwKKyAgICBjdXJsLW5hdGl2ZSBcCisgICAgZ3BlcmYtbmF0aXZlIFwKKyAgICBqc29uc2NoZW1hYnVpbGRlci1uYXRpdmUgXAorICAgIG5hc20tbmF0aXZlIFwKKyAgICBzd2lnLW5hdGl2ZSBcCisgICAgdW56aXAtbmF0aXZlIFwKKyAgICB5YXNtLW5hdGl2ZSBcCisgICAgemlwLW5hdGl2ZSBcCisgICAgYXZhaGkgXAorICAgIGJvb3N0IFwKKyAgICBiemlwMiBcCisgICAgY3Jvc3NndWlkIFwKKyAgICBjdXJsIFwKKyAgICBkY2FkZWMgXAorICAgIGVuY2EgXAorICAgIGV4cGF0IFwKKyAgICBmYWFkMiBcCisgICAgZmZtcGVnIFwKKyAgICBmb250Y29uZmlnIFwKKyAgICBmcmliaWRpIFwKKyAgICBnaWZsaWIgXAorICAgIGphc3BlciBcCisgICAgbGliYXNzIFwKKyAgICBsaWJjZGlvIFwKKyAgICBsaWJjZWMgXAorICAgIGxpYm1hZCBcCisgICAgbGlibWljcm9odHRwZCBcCisgICAgbGlibW1zIFwKKyAgICBsaWJtbXMgXAorICAgIGxpYm1vZHBsdWcgXAorICAgIGxpYnBjcmUgXAorICAgIGxpYnBsaXN0IFwKKyAgICBsaWJzYW1wbGVyYXRlMCBcCisgICAgbGlic2RsLWltYWdlIFwKKyAgICBsaWJzZGwtbWl4ZXIgXAorICAgIGxpYnNxdWlzaCBcCisgICAgbGlic3NoIFwKKyAgICBsaWJ0aW55eG1sIFwKKyAgICBsaWJ1c2IxIFwKKyAgICBsaWJ4c2x0IFwKKyAgICBsem8gXAorICAgIG1wZWcyZGVjIFwKKyAgICBweXRob24gXAorICAgIHNxbGl0ZTMgXAorICAgIHRhZ2xpYiBcCisgICAgdmlydHVhbC9lZ2wgXAorICAgIHZpcnR1YWwvbGlic2RsIFwKKyAgICB3YXZwYWNrIFwKKyAgICB5YWpsIFwKKyAgICB6bGliIFwKKyAgICAke0BlbmFibGVfZ2xldyhiYiwgZCl9IFwKKyIKIAogUFJPVklERVMgPSAieGJtYyIKIApAQCAtNjcsMjQgKzY2LDI0IEBACiBQViA9ICIxNy4zK2dpdHIke1NSQ1BWfSIKIEFERE9OU1BWID0gIjE3LjEiCiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20veGJtYy94Ym1jLmdpdDticmFuY2g9S3J5cHRvbiBcCi0gICAgICAgICAgIGh0dHBzOi8vcmVwby52b2lkbGludXguZXUvZGlzdGZpbGVzLyR7QlBOfS0ke0FERE9OU1BWfS1nZW5lcmF0ZWQtYWRkb25zLnRhci54ejtuYW1lPWFkZG9uczt1bnBhY2s9MCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAzLWNvbmZpZ3VyZS1kb24tdC10cnktdG8tcnVuLXN0dWZmLXRvLWZpbmQtdGlueXhtbC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA0LWhhbmRsZS1TSUdURVJNLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDUtYWRkLXN1cHBvcnQtdG8tcmVhZC1mcmVxdWVuY3ktb3V0cHV0LWlmLXVzaW5nLWludGVsLS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA2LURpc2FibGUtRFZELXN1cHBvcnQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwNy1BbHdheXMtY29tcGlsZS1saWJjcGx1ZmYtYXMtUElDLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDgta29kaS1jb25maWcuY21ha2UtdXNlLUNNQUtFX0ZJTkRfUk9PVF9QQVRILXRvLWZpeC1jci5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA5LWJ1aWxkLUFkZC1zdXBwb3J0LWZvci1tdXNsLXRyaXBsZXRzLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMTAtUnNzUmVhZGVyLUZpeC1jb21waWxlci13YXJuaW5nLWNvbXBhcmluZy1wb2ludGVyLXRvLS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDExLUxldC1jb25maWd1cmUtcGFzcy1vbi11bmtub3duLWFyY2hpdGVjdHVyZXMtc2V0dGluZy0ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAxMi1SZXZlcnQtZHJvaWQtZml4LWJ1aWxkcy13aXRoLUFNTC1kaXNhYmxlZC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLWNoYW5nZS1vcmRlci1vZi1kZXRlY3RpbmctbGliZWdsLWFuZC1saWJnbGVzMi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDEzLUZUUFBhcnNlLmNwcC11c2Utc3RkLXN0cmluZy5wYXRjaCBcCisgICAgaHR0cHM6Ly9yZXBvLnZvaWRsaW51eC5ldS9kaXN0ZmlsZXMvJHtCUE59LSR7QURET05TUFZ9LWdlbmVyYXRlZC1hZGRvbnMudGFyLnh6O25hbWU9YWRkb25zO3VucGFjaz0wIFwKKyAgICBmaWxlOi8vMDAwMy1jb25maWd1cmUtZG9uLXQtdHJ5LXRvLXJ1bi1zdHVmZi10by1maW5kLXRpbnl4bWwucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDA0LWhhbmRsZS1TSUdURVJNLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwNS1hZGQtc3VwcG9ydC10by1yZWFkLWZyZXF1ZW5jeS1vdXRwdXQtaWYtdXNpbmctaW50ZWwtLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwNi1EaXNhYmxlLURWRC1zdXBwb3J0LnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwNy1BbHdheXMtY29tcGlsZS1saWJjcGx1ZmYtYXMtUElDLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwOC1rb2RpLWNvbmZpZy5jbWFrZS11c2UtQ01BS0VfRklORF9ST09UX1BBVEgtdG8tZml4LWNyLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwOS1idWlsZC1BZGQtc3VwcG9ydC1mb3ItbXVzbC10cmlwbGV0cy5wYXRjaCBcCisgICAgZmlsZTovLzAwMTAtUnNzUmVhZGVyLUZpeC1jb21waWxlci13YXJuaW5nLWNvbXBhcmluZy1wb2ludGVyLXRvLS5wYXRjaCBcCisgICAgZmlsZTovLzAwMTEtTGV0LWNvbmZpZ3VyZS1wYXNzLW9uLXVua25vd24tYXJjaGl0ZWN0dXJlcy1zZXR0aW5nLS5wYXRjaCBcCisgICAgZmlsZTovLzAwMTItUmV2ZXJ0LWRyb2lkLWZpeC1idWlsZHMtd2l0aC1BTUwtZGlzYWJsZWQucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAxLWNoYW5nZS1vcmRlci1vZi1kZXRlY3RpbmctbGliZWdsLWFuZC1saWJnbGVzMi5wYXRjaCBcCisgICAgZmlsZTovLzAwMTMtRlRQUGFyc2UuY3BwLXVzZS1zdGQtc3RyaW5nLnBhdGNoIFwKICIKIAogU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0gIiBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLUZpeC1maWxlX0VtdS1vbi1tdXNsLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDItUmVtb3ZlLUZJTEVXUkFQLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMS1GaXgtZmlsZV9FbXUtb24tbXVzbC5wYXRjaCBcCisgICAgZmlsZTovLzAwMDItUmVtb3ZlLUZJTEVXUkFQLnBhdGNoIFwKICIKIFNSQ19VUklbYWRkb25zLm1kNXN1bV0gPSAiNzE5NjE0ZmE3NjQwMTFhMTg2NjVkMDhhZjVjOGM5MmYiCiBTUkNfVVJJW2FkZG9ucy5zaGEyNTZzdW1dID0gIjM1MGRhNTc0MDhjMjc0NzNlYWY0MGU3ZjU0NGJjOTQ4NDFiZjEwMWRjNDM0NjA4NTI2MGM1YzRhZjBhZGFjOTciCkBAIC0xMDIsOCArMTAxLDEwIEBACiBBQ0NFTF94ODYgPSAidmFhcGkgdmRwYXUiCiBBQ0NFTF94ODYtNjQgPSAidmFhcGkgdmRwYXUiCiAKLVBBQ0tBR0VDT05GSUcgPz89ICIke0FDQ0VMfSBvcGVuZ2wiCi1QQUNLQUdFQ09ORklHX2FwcGVuZCA9ICIgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4MTEnLCAnIHgxMScsICcgb3BlbmdsZXN2MicsIGQpfSIKK1BBQ0tBR0VDT05GSUcgPz89ICIke0FDQ0VMfSBvcGVuZ2wgXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneDExJywgJ3gxMScsICdvcGVuZ2xlc3YyJywgZCl9IFwKKyAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3BhbScsICdzYW1iYScsICcnLCBkKX0gXAorIgogCiBQQUNLQUdFQ09ORklHW29wZW5nbF0gPSAiLS1lbmFibGUtZ2wsLS1lbmFibGUtZ2xlcywiCiBQQUNLQUdFQ09ORklHW29wZW5nbGVzdjJdID0gIi0tZW5hYmxlLWdsZXMsLS1lbmFibGUtZ2wsdmlydHVhbC9lZ2wiCkBAIC0xMTMsNiArMTE0LDcgQEAKIFBBQ0tBR0VDT05GSUdbeDExXSA9ICItLWVuYWJsZS14MTEsLS1kaXNhYmxlLXgxMSxsaWJ4aW5lcmFtYSBsaWJ4bXUgbGlieHJhbmRyIGxpYnh0c3QiCiBQQUNLQUdFQ09ORklHW3B1bHNlYXVkaW9dID0gIi0tZW5hYmxlLXB1bHNlLC0tZGlzYWJsZS1wdWxzZSxwdWxzZWF1ZGlvIgogUEFDS0FHRUNPTkZJR1tsY21zXSA9ICItLWVuYWJsZS1sY21zMiwtLWRpc2FibGUtbGNtczIsbGNtcyIKK1BBQ0tBR0VDT05GSUdbc2FtYmFdID0gIi0tZW5hYmxlLXNhbWJhLC0tZGlzYWJsZS1zYW1iYSxzYW1iYSIKIAogRVhUUkFfT0VDT05GID0gIiBcCiAgICAgLS1kaXNhYmxlLWRlYnVnIFwKQEAgLTE4MywyOSArMTg1LDMxIEBACiAKICMga29kaSB1c2VzIHNvbWUga2luZCBvZiBkbG9wZW4oKSBtZXRob2QgZm9yIGxpYmNlYyBzbyB3ZSBuZWVkIHRvIGFkZCBpdCBtYW51YWxseQogIyBPcGVuR0wgYnVpbGRzIG5lZWQgZ2x4aW5mbywgdGhhdCdzIGluIG1lc2EtZGVtb3MKLVJSRUNPTU1FTkRTXyR7UE59X2FwcGVuZCA9ICIgbGliY2VjIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLWN0eXBlcyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhvbi1sYW5nIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXJlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLW5ldGNsaWVudCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhvbi1odG1sIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLWRpZmZsaWIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRob24tanNvbiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhvbi16bGliIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXNoZWxsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXNxbGl0ZTMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRob24tY29tcHJlc3Npb24gXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJjdXJsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAneDExJywgJ3hyYW5kciB4ZHB5aW5mbycsICcnLCBkKX0gXAorUlJFQ09NTUVORFNfJHtQTn1fYXBwZW5kID0gIiBcCisgICAgbGliY2VjIFwKKyAgICBweXRob24gXAorICAgIHB5dGhvbi1jdHlwZXMgXAorICAgIHB5dGhvbi1sYW5nIFwKKyAgICBweXRob24tcmUgXAorICAgIHB5dGhvbi1uZXRjbGllbnQgXAorICAgIHB5dGhvbi1odG1sIFwKKyAgICBweXRob24tZGlmZmxpYiBcCisgICAgcHl0aG9uLWpzb24gXAorICAgIHB5dGhvbi16bGliIFwKKyAgICBweXRob24tc2hlbGwgXAorICAgIHB5dGhvbi1zcWxpdGUzIFwKKyAgICBweXRob24tY29tcHJlc3Npb24gXAorICAgIGxpYmN1cmwgXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3gxMScsICd4cmFuZHIgeGRweWluZm8nLCAnJywgZCl9IFwKICIKLVJSRUNPTU1FTkRTXyR7UE59X2FwcGVuZF9saWJjLWdsaWJjID0gIiBnbGliYy1jaGFybWFwLWlibTg1MCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xpYmMtZ2NvbnYtaWJtODUwIFwKLQkJCQkJZ2xpYmMtZ2NvbnYtdW5pY29kZSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xpYmMtZ2NvbnYtdXRmLTMyIFwKLQkJCQkJZ2xpYmMtY2hhcm1hcC11dGYtOCBcCi0JCQkJCWdsaWJjLWxvY2FsZWRhdGEtZW4tdXMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCitSUkVDT01NRU5EU18ke1BOfV9hcHBlbmRfbGliYy1nbGliYyA9ICIgXAorICAgIGdsaWJjLWNoYXJtYXAtaWJtODUwIFwKKyAgICBnbGliYy1nY29udi1pYm04NTAgXAorICAgIGdsaWJjLWdjb252LXVuaWNvZGUgXAorICAgIGdsaWJjLWdjb252LXV0Zi0zMiBcCisgICAgZ2xpYmMtY2hhcm1hcC11dGYtOCBcCisgICAgZ2xpYmMtbG9jYWxlZGF0YS1lbi11cyBcCisiCiAKIFJQUk9WSURFU18ke1BOfSArPSAieGJtYyIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2NhcHMvY2Fwcy8wMDAxLURvLW5vdC11c2Utb2Jzb2xldGUtcG93MTBmLWZ1bmN0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2NhcHMvY2Fwcy8wMDAxLURvLW5vdC11c2Utb2Jzb2xldGUtcG93MTBmLWZ1bmN0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkNWUxYjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvY2Fwcy9jYXBzLzAwMDEtRG8tbm90LXVzZS1vYnNvbGV0ZS1wb3cxMGYtZnVuY3Rpb24ucGF0Y2gKQEAgLTAsMCArMSw1MCBAQAorRnJvbSAwY2M3MzYyZTE3MTYxNmRjZmViOTNjNmUxNTc2MzYyNzYxYmYxNGU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IFdlZCwgMzEgSmFuIDIwMTggMTg6Mzc6MTYgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gRG8gbm90IHVzZSBvYnNvbGV0ZSBwb3cxMGYoKSBmdW5jdGlvbgorCitleHAxMCBuYW1lIGlzIHN0YW5kYXJkaXplZCBpbiBUUyAxODY2MS00IGFuZCBpdHMKK2F2YWlsYWJsZSBpbiBnbGliYyBzaW5jZSB2ZXJzaW9uIDIuMQoraXQgaGFzIGJlZW4gbm93IHJlbW92ZWQgZnJvbSBnbGliYyAyLjI3KworCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorIGRzcC92NGZfSUlSMi5oIHwgNiArKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZHNwL3Y0Zl9JSVIyLmggYi9kc3AvdjRmX0lJUjIuaAoraW5kZXggYTY4ZWNmNS4uZWJkMTIzNCAxMDA2NDQKKy0tLSBhL2RzcC92NGZfSUlSMi5oCisrKysgYi9kc3AvdjRmX0lJUjIuaAorQEAgLTMzLDcgKzMzLDcgQEAKKyBuYW1lc3BhY2UgRFNQIHsKKyAKKyAjaWZkZWYgX19BUFBMRV9fCistaW5saW5lIGZsb2F0IHBvdzEwZihmbG9hdCBmKSB7cmV0dXJuIHBvdygxMCxmKTt9CisraW5saW5lIGZsb2F0IGV4cDEwZihmbG9hdCBmKSB7cmV0dXJuIF9fZXhwMTBmKGYpO30KKyAjZW5kaWYKKyAKKyBjbGFzcyBSQkp2NAorQEAgLTE0Miw3ICsxNDIsNyBAQCBjbGFzcyBJSVIydjQKKyAJCQkJLyogQSA9IHBvdyAoMTAsIGdhaW4gLyA0MCkgKi8KKyAJCQkJdjRmX3QgQSA9ICh2NGZfdCkgey4wMjUsLjAyNSwuMDI1LC4wMjV9OworIAkJCQlBICo9IGdhaW47CistCQkJCUEgPSB2NGZfbWFwPHBvdzEwZj4gKEEpOworKwkJCQlBID0gdjRmX21hcDxleHAxMGY+IChBKTsKKyAKKyAJCQkJUkJKdjQgcCAoZiwgUSk7CisgCitAQCAtNDI5LDcgKzQyOSw3IEBAIGNsYXNzIElJUjJ2NEJhbmsKKyAJCQkJCS8qIEEgPSBwb3cgKDEwLCBnYWluIC8gNDApICovCisgCQkJCQl2NGZfdCBBID0gKHY0Zl90KSB7LjAyNSwuMDI1LC4wMjUsLjAyNX07CisgCQkJCQlBICo9IGdhaW5baV07CistCQkJCQlBID0gdjRmX21hcDxwb3cxMGY+IChBKTsKKysJCQkJCUEgPSB2NGZfbWFwPGV4cDEwZj4gKEEpOworIAorIAkJCQkJUkJKdjQgcCAoZltpXSwgUVtpXSk7CisgCistLSAKKzIuMTYuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvY2Fwcy9jYXBzXzAuOS4yNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9jYXBzL2NhcHNfMC45LjI0LmJiCmluZGV4IDI5MTY3ZDEuLmZlODY0YzQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9jYXBzL2NhcHNfMC45LjI0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9jYXBzL2NhcHNfMC45LjI0LmJiCkBAIC03LDYgKzcsNyBAQAogICAgICAgICAgICBmaWxlOi8vQXZvaWQtYW1iaWd1aXR5LWluLWRpdi1pbnZvY2F0aW9uLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtYmFzaWMuaC1Vc2UtYzk5LXN1cHBvcnRlZC1zdGRpbnQtdHlwZXMucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vYXBwZW5kX2xkZmxhZ3MucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1Eby1ub3QtdXNlLW9ic29sZXRlLXBvdzEwZi1mdW5jdGlvbi5wYXRjaCBcCiAgICAgICAgICAgICIKIAogU1JDX1VSSVttZDVzdW1dID0gImMxZDYzNDAzOGRjYjU0NzAyMzA2YzBlMzBjYjFjNjI2IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsdWlkc3ludGgvZmlsZXMvMDAwMS1Vc2UtQVJNLU5FT04tYWNjZWxhcmF0aW9uLWZvci1mbG9hdC1tdWx0aXRocmVhZGVkLXNlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsdWlkc3ludGgvZmlsZXMvMDAwMS1Vc2UtQVJNLU5FT04tYWNjZWxhcmF0aW9uLWZvci1mbG9hdC1tdWx0aXRocmVhZGVkLXNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlMTg0NmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZmx1aWRzeW50aC9maWxlcy8wMDAxLVVzZS1BUk0tTkVPTi1hY2NlbGFyYXRpb24tZm9yLWZsb2F0LW11bHRpdGhyZWFkZWQtc2UucGF0Y2gKQEAgLTAsMCArMSw3NiBAQAorRnJvbSAyZGU3ZTEyOGZiZGY1Mjg3MTZiNTAwY2YyN2VkOWE0MzU4YzkzMWM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMjQgTm92IDIwMTcgMDA6MDU6MzUgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzJdIFVzZSBBUk0tTkVPTiBhY2NlbGFyYXRpb24gZm9yIGZsb2F0LW11bHRpdGhyZWFkZWQgc2V0dXBzCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgc3JjL3J2b2ljZS9mbHVpZF9ydm9pY2VfbWl4ZXIuYyB8IDI2ICsrKysrKysrKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3NyYy9ydm9pY2UvZmx1aWRfcnZvaWNlX21peGVyLmMgYi9zcmMvcnZvaWNlL2ZsdWlkX3J2b2ljZV9taXhlci5jCitpbmRleCA5NjE2NTE4Li5kYmY4MDU3IDEwMDY0NAorLS0tIGEvc3JjL3J2b2ljZS9mbHVpZF9ydm9pY2VfbWl4ZXIuYworKysrIGIvc3JjL3J2b2ljZS9mbHVpZF9ydm9pY2VfbWl4ZXIuYworQEAgLTI3LDYgKzI3LDEwIEBACisgI2luY2x1ZGUgImZsdWlkX2xhZHNwYS5oIgorICNpbmNsdWRlICJmbHVpZF9zeW50aC5oIgorIAorKyNpZiBkZWZpbmVkKF9fQVJNX05FT05fXykKKysjaW5jbHVkZSAiYXJtX25lb24uaCIKKysjZW5kaWYKKysKKyAKKyAjZGVmaW5lIEVOQUJMRV9NSVhFUl9USFJFQURTIDEKKyAKK0BAIC03OTQsMjAgKzc5OCw0MiBAQCBmbHVpZF9taXhlcl9idWZmZXJzX21peChmbHVpZF9taXhlcl9idWZmZXJzX3QqIGRlc3QsIGZsdWlkX21peGVyX2J1ZmZlcnNfdCogc3JjKQorICAgaWYgKG1pbmJ1ZiA+IHNyYy0+YnVmX2NvdW50KQorICAgICBtaW5idWYgPSBzcmMtPmJ1Zl9jb3VudDsKKyAgIGZvciAoaT0wOyBpIDwgbWluYnVmOyBpKyspIHsKKysjaWYgZGVmaW5lZChfX0FSTV9ORU9OX18pICYmIGRlZmluZWQoV0lUSF9GTE9BVCkKKysgICAgZm9yIChqPTA7IGogPCBzY291bnQ7IGorPTQpIHsKKysgICAgICAgIGZsb2F0MzJ4NF90IHZsZWZ0ID0gdmxkMXFfZjMyKCZkZXN0LT5sZWZ0X2J1ZltpXVtqXSk7CisrICAgICAgICBmbG9hdDMyeDRfdCB2cmlnaHQgPSB2bGQxcV9mMzIoJmRlc3QtPnJpZ2h0X2J1ZltpXVtqXSk7CisrICAgICAgICB2bGVmdCA9IHZhZGRxX2YzMih2bGVmdCwgdmxkMXFfZjMyKCZzcmMtPmxlZnRfYnVmW2ldW2pdKSk7CisrICAgICAgICB2cmlnaHQgPSB2YWRkcV9mMzIodnJpZ2h0LCB2bGQxcV9mMzIoJnNyYy0+cmlnaHRfYnVmW2ldW2pdKSk7CisrICAgICAgICB2c3QxcV9mMzIoJmRlc3QtPmxlZnRfYnVmW2ldW2pdLCB2bGVmdCk7CisrICAgICAgICB2c3QxcV9mMzIoJmRlc3QtPnJpZ2h0X2J1ZltpXVtqXSwgdnJpZ2h0KTsKKysgICAgfQorKyNlbHNlCisgICAgIGZvciAoaj0wOyBqIDwgc2NvdW50OyBqKyspIHsKKyAgICAgICBkZXN0LT5sZWZ0X2J1ZltpXVtqXSArPSBzcmMtPmxlZnRfYnVmW2ldW2pdOworICAgICAgIGRlc3QtPnJpZ2h0X2J1ZltpXVtqXSArPSBzcmMtPnJpZ2h0X2J1ZltpXVtqXTsKKyAgICAgfQorKyNlbmRpZgorICAgfQorIAorICAgbWluYnVmID0gZGVzdC0+ZnhfYnVmX2NvdW50OworICAgaWYgKG1pbmJ1ZiA+IHNyYy0+ZnhfYnVmX2NvdW50KQorICAgICBtaW5idWYgPSBzcmMtPmZ4X2J1Zl9jb3VudDsKKyAgIGZvciAoaT0wOyBpIDwgbWluYnVmOyBpKyspIHsKKysjaWYgZGVmaW5lZChfX0FSTV9ORU9OX18pICYmIGRlZmluZWQoV0lUSF9GTE9BVCkKKysgICAgZm9yIChqPTA7IGogPCBzY291bnQ7IGorPTQpIHsKKysgICAgICAgIGZsb2F0MzJ4NF90IHZsZWZ0ID0gdmxkMXFfZjMyKCZkZXN0LT5meF9sZWZ0X2J1ZltpXVtqXSk7CisrICAgICAgICBmbG9hdDMyeDRfdCB2cmlnaHQgPSB2bGQxcV9mMzIoJmRlc3QtPmZ4X3JpZ2h0X2J1ZltpXVtqXSk7CisrICAgICAgICB2bGVmdCA9IHZhZGRxX2YzMih2bGVmdCwgdmxkMXFfZjMyKCZzcmMtPmZ4X2xlZnRfYnVmW2ldW2pdKSk7CisrICAgICAgICB2cmlnaHQgPSB2YWRkcV9mMzIodnJpZ2h0LCB2bGQxcV9mMzIoJnNyYy0+ZnhfcmlnaHRfYnVmW2ldW2pdKSk7CisrICAgICAgICB2c3QxcV9mMzIoJmRlc3QtPmZ4X2xlZnRfYnVmW2ldW2pdLCB2bGVmdCk7CisrICAgICAgICB2c3QxcV9mMzIoJmRlc3QtPmZ4X3JpZ2h0X2J1ZltpXVtqXSwgdnJpZ2h0KTsKKysgICAgfQorKyNlbHNlCisgICAgIGZvciAoaj0wOyBqIDwgc2NvdW50OyBqKyspIHsKKyAgICAgICBkZXN0LT5meF9sZWZ0X2J1ZltpXVtqXSArPSBzcmMtPmZ4X2xlZnRfYnVmW2ldW2pdOworICAgICAgIGRlc3QtPmZ4X3JpZ2h0X2J1ZltpXVtqXSArPSBzcmMtPmZ4X3JpZ2h0X2J1ZltpXVtqXTsKKyAgICAgfQorKyNlbmRpZgorICAgfQorIH0KKyAKKy0tIAorMi45LjUKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsdWlkc3ludGgvZmx1aWRzeW50aF8xLjEuMTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZmx1aWRzeW50aC9mbHVpZHN5bnRoXzEuMS4xMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWM0YzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsdWlkc3ludGgvZmx1aWRzeW50aF8xLjEuMTAuYmIKQEAgLTAsMCArMSwyNCBAQAorU1VNTUFSWSA9ICJGbHVpZHN5bnRoIGlzIGEgc29mdHdhcmUgc3ludGhlc2l6ZXIiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmZsdWlkc3ludGgub3JnLyIKK1NFQ1RJT04gPSAibGlicy9tdWx0aW1lZGlhIgorTElDRU5TRSA9ICJMR1BMLTIuMSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWZjMTc4YmNkNDI1MDkwOTM5YThiNjM0ZDFkNmE5NTk0IgorCitERVBFTkRTID0gImFsc2EtbGliIG5jdXJzZXMgZ2xpYi0yLjAiCisKK1NSQ19VUkkgPSAiIFwKKyAgICBnaXQ6Ly9naXRodWIuY29tL0ZsdWlkU3ludGgvZmx1aWRzeW50aC5naXQ7YnJhbmNoPTEuMS54IFwKKyAgICBmaWxlOi8vMDAwMS1Vc2UtQVJNLU5FT04tYWNjZWxhcmF0aW9uLWZvci1mbG9hdC1tdWx0aXRocmVhZGVkLXNlLnBhdGNoIFwKKyIKK1NSQ1JFViA9ICJmNWEwZmVlNmY3ZjJiMmFiNGM4NjZkZjFhY2I2NDkzMzM0NjRiM2ZkIgorUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBjbWFrZSBwa2djb25maWcgbGliX3BhY2thZ2UKKworRVhUUkFfT0VDTUFLRSA9ICItRGVuYWJsZS1mbG9hdHM9T04gLURMSUJfU1VGRklYPSR7QGQuZ2V0VmFyKCdiYXNlbGliJykucmVwbGFjZSgnbGliJywgJycpfSIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3B1bHNlYXVkaW8nLCBkKX0iCitQQUNLQUdFQ09ORklHW3NuZGZpbGVdID0gIi1EZW5hYmxlLWxpYnNuZGZpbGUtc3VwcG9ydD1PTiwtRGVuYWJsZS1saWJzbmRmaWxlLXN1cHBvcnQ9T0ZGLGxpYnNuZGZpbGUxIgorUEFDS0FHRUNPTkZJR1tqYWNrXSA9ICItRGVuYWJsZS1qYWNrLXN1cHBvcnQ9T04sLURlbmFibGUtamFjay1zdXBwb3J0PU9GRixqYWNrIgorUEFDS0FHRUNPTkZJR1twdWxzZWF1ZGlvXSA9ICItRGVuYWJsZS1wdWxzZWF1ZGlvPU9OLC0tRGVuYWJsZS1wdWxzZWF1ZGlvPU9GRixwdWxzZWF1ZGlvIgorUEFDS0FHRUNPTkZJR1twb3J0YXVkaW9dID0gIi1EZW5hYmxlLXBvcnRhdWRpbz1PTiwtRGVuYWJsZS1wb3J0YXVkaW89T0ZGLHBvcnRhdWRpby12MTkiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZmx1aWRzeW50aC9mbHVpZHN5bnRoXzEuMS42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2ZsdWlkc3ludGgvZmx1aWRzeW50aF8xLjEuNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODg5ODFlNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZmx1aWRzeW50aC9mbHVpZHN5bnRoXzEuMS42LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotU1VNTUFSWSA9ICJGbHVpZHN5bnRoIGlzIGEgc29mdHdhcmUgc3ludGhlc2l6ZXIiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LmZsdWlkc3ludGgub3JnLyIKLVNFQ1RJT04gPSAibGlicy9tdWx0aW1lZGlhIgotTElDRU5TRSA9ICJMR1BMLTIuMCsiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1lMTk4ZTlhYWM5NDk0M2QwZWMyOWE3ZGFlOGMyOTQxNiIKLQotREVQRU5EUyA9ICJhbHNhLWxpYiBuY3Vyc2VzIGdsaWItMi4wIgotCi1TUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9wcm9qZWN0LyR7QlBOfS8ke0JQfS8ke0JQfS50YXIuZ3oiCi1TUkNfVVJJW21kNXN1bV0gPSAiYWU1YWNhNmRlODI0YjQxNzM2NjdjYmQzYTMxMGIyNjMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTA4NTMzOTFkOWViZWRhOWI0ZGI3ODdlZmIyM2Y5OGIxZTI2YjcyOTZkZDJiYjVkMGQ5NmI1YmNjZWUyMTcxYyIKLQotaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIHBrZ2NvbmZpZyBsaWJfcGFja2FnZQotCi1QQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAncHVsc2VhdWRpbycsIGQpfSIKLVBBQ0tBR0VDT05GSUdbc25kZmlsZV0gPSAiLS1lbmFibGUtbGlic25kZmlsZS1zdXBwb3J0LC0tZGlzYWJsZS1saWJzbmRmaWxlLXN1cHBvcnQsbGlic25kZmlsZTEiCi1QQUNLQUdFQ09ORklHW2phY2tdID0gIi0tZW5hYmxlLWphY2stc3VwcG9ydCwtLWRpc2FibGUtamFjay1zdXBwb3J0LGphY2siCi1QQUNLQUdFQ09ORklHW3B1bHNlYXVkaW9dID0gIi0tZW5hYmxlLXB1bHNlLXN1cHBvcnQsLS1kaXNhYmxlLXB1bHNlLXN1cHBvcnQscHVsc2VhdWRpbyIKLVBBQ0tBR0VDT05GSUdbcG9ydGF1ZGlvXSA9ICItLWVuYWJsZS1wb3J0YXVkaW8tc3VwcG9ydCwtLWRpc2FibGUtcG9ydGF1ZGlvLXN1cHBvcnQscG9ydGF1ZGlvLXYxOSIKLQotZG9fY29uZmlndXJlX3ByZXBlbmQgKCkgewotICAgIHJtIC1mICR7U30vbTQvKgotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0wLjEwL2dzdC1mZm1wZWctMC4xMC4xMy9sb3dlci1yYW5rLmRpZmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyLTAuMTAvZ3N0LWZmbXBlZy0wLjEwLjEzL2xvd2VyLXJhbmsuZGlmZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWYwOGFmZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyLTAuMTAvZ3N0LWZmbXBlZy0wLjEwLjEzL2xvd2VyLXJhbmsuZGlmZgorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLUxvd2VyIHRoZSByYW5rIG9mIGZmbXBlZyBwbHVnaW4gc28gY29kZWNzIHRoYXQgaG9vayBpbnRvIGFjY2VsZXJhdGVkIHBpZWNlcyAoZS5nLiBkc3Agb3IgaHcgZW5naW5lcykgY2FuIGdldCBwaWNrZWQgb3ZlciB0aGlzCi1EZXJpdmVkIGZyb20gT0UgYnkgRG9uZ3hpYW8gWHUgPGRvbmd4aWFvLnh1QGludGVsLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KLQotLS0tIC90bXAvZ3N0ZmZtcGVnZGVjLmMJMjAwOS0wMy0wNSAwOTozMToxNS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnc3QtZmZtcGVnLTAuMTAuNi9leHQvZmZtcGVnL2dzdGZmbXBlZ2RlYy5jCTIwMDktMDMtMDUgMDk6MzM6MDkuMDAwMDAwMDAwICswMTAwCi1AQCAtMjU4OCw3ICsyNTg4LDcgQEAKLSAgICAgICBjYXNlIENPREVDX0lEX01TTVBFRzRWMzoKLSAgICAgICBjYXNlIENPREVDX0lEX0gyNjQ6Ci0gICAgICAgY2FzZSBDT0RFQ19JRF9DT09LOgotLSAgICAgICAgcmFuayA9IEdTVF9SQU5LX1BSSU1BUlk7Ci0rICAgICAgICByYW5rID0gR1NUX1JBTktfU0VDT05EQVJZOwotICAgICAgICAgYnJlYWs7Ci0gICAgICAgY2FzZSBDT0RFQ19JRF9EVlZJREVPOgotICAgICAgICAgLyogd2UgaGF2ZSBhIGdvb2QgZHYgZGVjb2RlciwgZmFzdCBvbiBib3RoIHBwYyBhcyB3ZWxsIGFzIHg4Ni4gdGhleSBzYXkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXItMC4xMC9nc3QtcGx1Z2lucy1iYXNlXzAuMTAuMzYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyLTAuMTAvZ3N0LXBsdWdpbnMtYmFzZV8wLjEwLjM2LmJiCmluZGV4IGEzYmZhNWYuLmYyMzU0NjQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXItMC4xMC9nc3QtcGx1Z2lucy1iYXNlXzAuMTAuMzYuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0wLjEwL2dzdC1wbHVnaW5zLWJhc2VfMC4xMC4zNi5iYgpAQCAtMjUsNyArMjUsNiBAQAogCiBQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAneDExJywgZCl9IgogCi1QQUNLQUdFQ09ORklHW2dub21ldmZzXSA9ICItLWVuYWJsZS1nbm9tZV92ZnMsLS1kaXNhYmxlLWdub21lX3Zmcyxnbm9tZS12ZnMiCiBQQUNLQUdFQ09ORklHW29yY10gPSAiLS1lbmFibGUtb3JjLC0tZGlzYWJsZS1vcmMsb3JjIgogUEFDS0FHRUNPTkZJR1twYW5nb10gPSAiLS1lbmFibGUtcGFuZ28sLS1kaXNhYmxlLXBhbmdvLHBhbmdvIgogUEFDS0FHRUNPTkZJR1t4MTFdID0gIi0tZW5hYmxlLXggLS1lbmFibGUteHZpZGVvLC0tZGlzYWJsZS14IC0tZGlzYWJsZS14dmlkZW8sdmlydHVhbC9saWJ4MTEgbGlieHYgbGlic20gbGliaWNlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0wLjEwL2dzdC1ydHNwLzAwMDEtY2hhbmdlLWRlcHJlY2F0ZWQtSU5DTFVERVMtdG8tQU1fQ1BQRkxBR1MtZm9yLWF1dG9tYS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXItMC4xMC9nc3QtcnRzcC8wMDAxLWNoYW5nZS1kZXByZWNhdGVkLUlOQ0xVREVTLXRvLUFNX0NQUEZMQUdTLWZvci1hdXRvbWEucGF0Y2gKaW5kZXggM2FmY2E0ZS4uNjliMjFkZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0wLjEwL2dzdC1ydHNwLzAwMDEtY2hhbmdlLWRlcHJlY2F0ZWQtSU5DTFVERVMtdG8tQU1fQ1BQRkxBR1MtZm9yLWF1dG9tYS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyLTAuMTAvZ3N0LXJ0c3AvMDAwMS1jaGFuZ2UtZGVwcmVjYXRlZC1JTkNMVURFUy10by1BTV9DUFBGTEFHUy1mb3ItYXV0b21hLnBhdGNoCkBAIC0xLDM0ICsxLDM4IEBACiBpbmRleCBnc3QtcnRzcF8wLjEwLjgvYmluZGluZ3MvcHl0aG9uL01ha2VmaWxlLmFtCi0tLS0gZ3N0LXJ0c3BfMC4xMC44Lm9yaWcvYmluZGluZ3MvcHl0aG9uL01ha2VmaWxlLmFtCi0rKysgZ3N0LXJ0c3BfMC4xMC44L2JpbmRpbmdzL3B5dGhvbi9NYWtlZmlsZS5hbQorSW5kZXg6IGdzdC1ydHNwLTAuMTAuOC9iaW5kaW5ncy9weXRob24vTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnc3QtcnRzcC0wLjEwLjgub3JpZy9iaW5kaW5ncy9weXRob24vTWFrZWZpbGUuYW0KKysrKyBnc3QtcnRzcC0wLjEwLjgvYmluZGluZ3MvcHl0aG9uL01ha2VmaWxlLmFtCiBAQCAtMTQsNyArMTQsNyBAQCBkZWZzX0RBVEEgPSAkKERFRlMpCiAgZGVmc2RpciA9ICQocGtnZGF0YWRpcikvJChHU1RfTUFKT1JNSU5PUikvZGVmcwogIE9WRVJSSURFUyA9IHJ0c3BzZXJ2ZXIub3ZlcnJpZGUKLQorIAogLUlOQ0xVREVTID0gLUkkKHRvcF9zcmNkaXIpIC1JJChzcmNkaXIpICQoUFlUSE9OX0lOQ0xVREVTKQogK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9zcmNkaXIpIC1JJChzcmNkaXIpICQoUFlUSE9OX0lOQ0xVREVTKQotCisgCiAgcnRzcHNlcnZlcl9sYV9DRkxBR1MgPSAtSSQodG9wX3NyY2Rpcikvc3JjIFwKLSAgICAgICAgICQoUFlHT0JKRUNUX0NGTEFHUykgJChHU1RfUExVR0lOU19CQVNFX0NGTEFHUykgJChHU1RfQ0ZMQUdTKQotaW5kZXggZ3N0LXJ0c3BfMC4xMC44L2V4YW1wbGVzL01ha2VmaWxlLmFtCi0tLS0gZ3N0LXJ0c3BfMC4xMC44Lm9yaWcvZXhhbXBsZXMvTWFrZWZpbGUuYW0KLSsrKyBnc3QtcnRzcF8wLjEwLjgvZXhhbXBsZXMvTWFrZWZpbGUuYW0KKyAJCSQoUFlHT0JKRUNUX0NGTEFHUykgJChHU1RfUExVR0lOU19CQVNFX0NGTEFHUykgJChHU1RfQ0ZMQUdTKQorSW5kZXg6IGdzdC1ydHNwLTAuMTAuOC9leGFtcGxlcy9NYWtlZmlsZS5hbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdzdC1ydHNwLTAuMTAuOC5vcmlnL2V4YW1wbGVzL01ha2VmaWxlLmFtCisrKysgZ3N0LXJ0c3AtMC4xMC44L2V4YW1wbGVzL01ha2VmaWxlLmFtCiBAQCAtMSw2ICsxLDYgQEAKICBub2luc3RfUFJPR1JBTVMgPSB0ZXN0LXZpZGVvIHRlc3Qtb2dnIHRlc3QtbXA0IHRlc3QtcmVhZG1lIHRlc3QtbGF1bmNoIHRlc3Qtc2RwIHRlc3QtdXJpIHRlc3QtYXV0aAotCisgCiAtSU5DTFVERVMgPSAtSSQodG9wX3NyY2RpcikgLUkkKHNyY2RpcikKICtBTV9DUFBGTEFHUyA9IC1JJCh0b3Bfc3JjZGlyKSAtSSQoc3JjZGlyKQotCisgCiAgQU1fQ0ZMQUdTID0gJChHU1RfUExVR0lOU19CQVNFX0NGTEFHUykgJChHU1RfQ0ZMQUdTKQogIEFNX0xERkxBR1MgPSBcCi1pbmRleCBnc3QtcnRzcF8wLjEwLjgvdGVzdHMvTWFrZWZpbGUuYW0KLS0tLSBnc3QtcnRzcF8wLjEwLjgub3JpZy90ZXN0cy9NYWtlZmlsZS5hbQotKysrIGdzdC1ydHNwXzAuMTAuOC90ZXN0cy9NYWtlZmlsZS5hbQorSW5kZXg6IGdzdC1ydHNwLTAuMTAuOC90ZXN0cy9NYWtlZmlsZS5hbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdzdC1ydHNwLTAuMTAuOC5vcmlnL3Rlc3RzL01ha2VmaWxlLmFtCisrKysgZ3N0LXJ0c3AtMC4xMC44L3Rlc3RzL01ha2VmaWxlLmFtCiBAQCAtMSw2ICsxLDYgQEAKICBub2luc3RfUFJPR1JBTVMgPSB0ZXN0LWNsZWFudXAKLQorIAogLUlOQ0xVREVTID0gLUkkKHRvcF9zcmNkaXIpIC1JJChzcmNkaXIpCiArQU1fQ1BQRkxBR1MgPSAtSSQodG9wX3NyY2RpcikgLUkkKHNyY2RpcikKLQorIAogIEFNX0NGTEFHUyA9ICQoR1NUX1BMVUdJTlNfQkFTRV9DRkxBR1MpICQoR1NUX0NGTEFHUykKICBBTV9MREZMQUdTID0gXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0xLjAvZ3N0ZC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyLTEuMC9nc3RkLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMGVlNWJjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0xLjAvZ3N0ZC5pbmMKQEAgLTAsMCArMSwyNSBAQAorREVTQ1JJUFRJT04gPSAiR3N0cmVhbWVyIERhZW1vbiAxLjAiCitTVU1NQVJZID0gIkdTdHJlYW1lciBmcmFtZXdvcmsgZm9yIGNvbnRyb2xsaW5nIGF1ZGlvIGFuZCB2aWRlbyBzdHJlYW1pbmcgdXNpbmcgVENQIGNvbm5lY3Rpb24gbWVzc2FnZXMiCitIT01FUEFHRSA9ICJodHRwczovL2RldmVsb3Blci5yaWRnZXJ1bi5jb20vd2lraS9pbmRleC5waHA/dGl0bGU9R3N0ZC0xLjAiCitTRUNUSU9OID0gIm11bHRpbWVkaWEiCitMSUNFTlNFID0gIkdQTHYyKyIKKworREVQRU5EUyA9ICJnc3RyZWFtZXIxLjAgZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZSBnc3RyZWFtZXIxLjAtcGx1Z2lucy1iYWQgZ3N0cmVhbWVyMS4wLXJ0c3Atc2VydmVyIGpzb24tZ2xpYiBsaWJkYWVtb24iCisKK1NSQ0JSQU5DSCA/PSAibWFzdGVyIgorU1JDUkVWID0gIjA5N2EwODZhODYwNmRjYjM2OGM3ZDM4YzdlYzRmZWZjMjQ5NzQwMWIiCitTUkNfVVJJID0gImdpdDovL2dpdEBnaXRodWIuY29tL1JpZGdlUnVuL2dzdGQtMS54LmdpdDtwcm90b2NvbD1odHRwczticmFuY2g9JHtTUkNCUkFOQ0h9IFwKKwkgICBmaWxlOi8vMDAwMS1nc3RkLXlvY3RvLWNvbXBhdGliaWxpdHkucGF0Y2giCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK1BBQ0tBR0VDT05GSUdfQ09ORkFSR1MgPSAiIFwKKwktLWRpc2FibGUtZ3RrLWRvYyBcCisiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnZXR0ZXh0CisKK2RvX2NvbmZpZ3VyZSgpIHsKKyR7U30vYXV0b2dlbi5zaAorb2VfcnVuY29uZgorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0xLjAvZ3N0ZC8wMDAxLWdzdGQteW9jdG8tY29tcGF0aWJpbGl0eS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXItMS4wL2dzdGQvMDAwMS1nc3RkLXlvY3RvLWNvbXBhdGliaWxpdHkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRjMTgzMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXItMS4wL2dzdGQvMDAwMS1nc3RkLXlvY3RvLWNvbXBhdGliaWxpdHkucGF0Y2gKQEAgLTAsMCArMSw2MyBAQAorRnJvbSBlYWY1MWQ2NDIwYzYzNzEzZjYyMDI1NTgzNjgxMDA3YzM1MDJkMzg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQ2FybG9zIDxjYXJsb3Mucm9kcmlndWV6QHJpZGdlcnVuLmNvbT4KK0RhdGU6IEZyaSwgMTUgRGVjIDIwMTcgMTA6MTQ6MDUgLTA2MDAKK1N1YmplY3Q6IFtQQVRDSF0gZ3N0ZDp5b2N0byBjb21wYXRpYmlsaXR5CisKKy0tLQorIGF1dG9nZW4uc2ggICAgICAgICAgICAgICAgICAgICAgfCA4ICsrKysrKystCisgZG9jcy9yZWZlcmVuY2UvZ3N0ZC9NYWtlZmlsZS5hbSB8IDIgKy0KKyBnc3RkL01ha2VmaWxlLmFtICAgICAgICAgICAgICAgIHwgMiArLQorIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvYXV0b2dlbi5zaCBiL2F1dG9nZW4uc2gKK2luZGV4IDY2ZGJkNDIuLjc5M2VlMmYgMTAwNzU1CistLS0gYS9hdXRvZ2VuLnNoCisrKysgYi9hdXRvZ2VuLnNoCitAQCAtMjEsNyArMjEsMTEgQEAKKyAjIEFDTE9DQUwsIEFVVE9QT0lOVCBhbmQvb3IgTElCVE9PTElaRSB0byB0aGUgcmlnaHQgdmVyc2lvbnMsIG9yIGxlYXZlIHRoZW0KKyAjIHVuc2V0IGFuZCBnZXQgdGhlIGRlZmF1bHRzCisgCistZ3RrZG9jaXplIHx8IGV4aXQgMQorK3Rlc3QgLW4gIiRzcmNkaXIiIHx8IHNyY2Rpcj1gZGlybmFtZSAiJDAiYAorK3Rlc3QgLW4gIiRzcmNkaXIiIHx8IHNyY2Rpcj0uCisrCisrb2xkZGlyPWBwd2RgCisrY2QgIiRzcmNkaXIiCisgCisgYXV0b3JlY29uZiAtLXZlcmJvc2UgLS1mb3JjZSAtLWluc3RhbGwgfHwgeworICBlY2hvICdhdXRvZ2VuLnNoIGZhaWxlZCc7CitAQCAtMzEsMyArMzUsNSBAQCBhdXRvcmVjb25mIC0tdmVyYm9zZSAtLWZvcmNlIC0taW5zdGFsbCB8fCB7CisgZWNobworIGVjaG8gIk5vdyBydW4gJy4vY29uZmlndXJlJyB3aXRoIHlvdXIgc3lzdGVtIHNldHRpbmdzIGZvbGxvd2VkIGJ5ICdtYWtlJyB0byBjb21waWxlIHRoaXMgbW9kdWxlLiIKKyBlY2hvCisrCisrY2QgIiRvbGRkaXIiCitkaWZmIC0tZ2l0IGEvZG9jcy9yZWZlcmVuY2UvZ3N0ZC9NYWtlZmlsZS5hbSBiL2RvY3MvcmVmZXJlbmNlL2dzdGQvTWFrZWZpbGUuYW0KK2luZGV4IGY4NjBmYTEuLjE1M2ExM2IgMTAwNjQ0CistLS0gYS9kb2NzL3JlZmVyZW5jZS9nc3RkL01ha2VmaWxlLmFtCisrKysgYi9kb2NzL3JlZmVyZW5jZS9nc3RkL01ha2VmaWxlLmFtCitAQCAtNjYsNyArNjYsNyBAQCBHVEtET0NfTElCUz0kKHRvcF9idWlsZGRpcikvZ3N0ZC9saWJnc3RkLWNvcmUubGEKKyAKKyAKKyAjIFRoaXMgaW5jbHVkZXMgdGhlIHN0YW5kYXJkIGd0ay1kb2MgbWFrZSBydWxlcywgY29waWVkIGJ5IGd0a2RvY2l6ZS4KKy1pbmNsdWRlICQodG9wX3NyY2RpcikvZG9jcy9ndGstZG9jLm1ha2UKKysjIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9kb2NzL2d0ay1kb2MubWFrZQorIAorICMgQ29tbWVudCB0aGlzIG91dCBpZiB5b3Ugd2FudCAnbWFrZSBjaGVjaycgdG8gdGVzdCB5b3UgZG9jIHN0YXR1cworICMgYW5kIHJ1biBzb21lIHNhbml0eSBjaGVja3MKK2RpZmYgLS1naXQgYS9nc3RkL01ha2VmaWxlLmFtIGIvZ3N0ZC9NYWtlZmlsZS5hbQoraW5kZXggMTNjNTUxZC4uMTFmZTIwMiAxMDA2NDQKKy0tLSBhL2dzdGQvTWFrZWZpbGUuYW0KKysrKyBiL2dzdGQvTWFrZWZpbGUuYW0KK0BAIC00OSw3ICs0OSw3IEBAIGJpbl9QUk9HUkFNUyA9IGdzdGQKKyAKKyBnc3RkX1NPVVJDRVMgPSBnc3RkLmMKKyBnc3RkX0NGTEFHUyA9ICQoR1NUX0NGTEFHUykgJChHSU9fQ0ZMQUdTKSAkKEdKU09OX0NGTEFHUykKKy1nc3RkX0xERkxBR1MgPSAkKEdTVF9MSUJTKSAkKEdJT19MSUJTKSAkKEdKU09OX0xJQlMpIC1XbCwtcnBhdGggLVdsLCQobGliZGlyKQorK2dzdGRfTERGTEFHUyA9ICQoR1NUX0xJQlMpICQoR0lPX0xJQlMpICQoR0pTT05fTElCUykKKyBnc3RkX0xEQUREID0gbGliZ3N0ZC1jb3JlLmxhCisgCisgZ3N0ZGluY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL2dzdGQKKy0tIAorMS45LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0xLjAvZ3N0ZF8xLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyLTEuMC9nc3RkXzEuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGY2YjU3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci0xLjAvZ3N0ZF8xLjAuYmIKQEAgLTAsMCArMSwzIEBACityZXF1aXJlIGdzdGQuaW5jCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmRjMTM5NC9maWxlcy9pbnN0YWxsX2V4YW1wbGVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmRjMTM5NC9maWxlcy9pbnN0YWxsX2V4YW1wbGVzLnBhdGNoCmluZGV4IDg5MTMzYWQuLmRmMGMyMzUgMTAwNzU1Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJkYzEzOTQvZmlsZXMvaW5zdGFsbF9leGFtcGxlcy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvbGliZGMxMzk0L2ZpbGVzL2luc3RhbGxfZXhhbXBsZXMucGF0Y2gKQEAgLTEsOSArMSw5IEBACiBJbmRleDogbGliZGMxMzk0L2V4YW1wbGVzL01ha2VmaWxlLmFtCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbGliZGMxMzk0Lm9yaWcvZXhhbXBsZXMvTWFrZWZpbGUuYW0JMjAxMi0wNi0zMCAxNzo1MDo0Ni4wMDAwMDAwMDAgLTA3MDAKLSsrKyBsaWJkYzEzOTQvZXhhbXBsZXMvTWFrZWZpbGUuYW0JMjAxMi0wNi0zMCAxOTowMjoxMy44MjI2NDY0MzAgLTA3MDAKLUBAIC0zNiw4ICszNiw3IEBACi0gQU1fTERGTEFHUyA9IC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDYXJib24KKy0tLSBsaWJkYzEzOTQub3JpZy9leGFtcGxlcy9NYWtlZmlsZS5hbQorKysrIGxpYmRjMTM5NC9leGFtcGxlcy9NYWtlZmlsZS5hbQorQEAgLTM2LDggKzM2LDcgQEAgaWYgSEFWRV9NQUNPU1gKKyBBTV9MREZMQUdTID0gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAkKEZSQU1FV09SS19JT0tJVCkKICBlbmRpZgogIAogLW5vaW5zdF9QUk9HUkFNUyA9ICQoQSkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJkZTI2NS9saWJkZTI2NV8xLjAuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJkZTI2NS9saWJkZTI2NV8xLjAuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDA3NWZmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmRlMjY1L2xpYmRlMjY1XzEuMC4yLmJiCkBAIC0wLDAgKzEsMjAgQEAKK0RFU0NSSVBUSU9OID0gImxpYmRlMjY1IGlzIGFuIG9wZW4gc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBoLjI2NSBcCit2aWRlbyBjb2RlYy4gSXQgaXMgd3JpdHRlbiBmcm9tIHNjcmF0Y2ggYW5kIGhhcyBhIHBsYWluIEMgQVBJIHRvIGVuYWJsZSBhIFwKK3NpbXBsZSBpbnRlZ3JhdGlvbiBpbnRvIG90aGVyIHNvZnR3YXJlLiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cubGliZGUyNjUub3JnLyIKK1NFQ1RJT04gPSAibGlicy9tdWx0aW1lZGlhIgorCitMSUNFTlNFID0gIkxHUEx2MyIKK0xJQ0VOU0VfRkxBR1MgPSAiY29tbWVyY2lhbCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTg1MmYzNDVjMWM1MmM5MTYwZjlhN2MzNmJiOTk3NTQ2IgorCitTUkNfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9zdHJ1a3R1cmFnL2xpYmRlMjY1L3JlbGVhc2VzL2Rvd25sb2FkL3Yke1BWfS8ke0JQTn0tJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gIjkzNTIwYjM3OGRmMjVmM2E5NGU5NjJmMmI1NDg3MmNjIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImVhYTAzNDg4MzljMjkzNWRkOTA2NDdkNzJjNmRkNGEwNDNlMzYzNjFjYjNjMzNkMmIwNGRmMTBmYmNlYmQzY2IiCisKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtc2hlcmxvY2syNjUgLS1kaXNhYmxlLWRlYzI2NSIKKworaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIHBrZ2NvbmZpZworCitQQUNLQUdFUyA9KyAiJHtQTn0tdG9vbHMiCitGSUxFU18ke1BOfS10b29scyA9ICIke2JpbmRpcn0vKiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9tdXNpY2JyYWluei9maWxlcy9hbGxvdy1saWJkaXItb3ZlcnJpZGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvbXVzaWNicmFpbnovZmlsZXMvYWxsb3ctbGliZGlyLW92ZXJyaWRlLnBhdGNoCmluZGV4IGQ1OWQxMmUuLmRiNGQ2ZTggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9tdXNpY2JyYWluei9maWxlcy9hbGxvdy1saWJkaXItb3ZlcnJpZGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL211c2ljYnJhaW56L2ZpbGVzL2FsbG93LWxpYmRpci1vdmVycmlkZS5wYXRjaApAQCAtNiwxMSArNiwxMSBAQAogCiBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogCi1JbmRleDogbGlibXVzaWNicmFpbnotMy4wLjMvQ01ha2VMaXN0cy50eHQKK0luZGV4OiBnaXQvQ01ha2VMaXN0cy50eHQKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBsaWJtdXNpY2JyYWluei0zLjAuMy5vcmlnL0NNYWtlTGlzdHMudHh0Ci0rKysgbGlibXVzaWNicmFpbnotMy4wLjMvQ01ha2VMaXN0cy50eHQKLUBAIC0yNiw3ICsyNiw3IEBAIEZJTkRfUEFDS0FHRShEaXNjSWQpCistLS0gZ2l0Lm9yaWcvQ01ha2VMaXN0cy50eHQKKysrKyBnaXQvQ01ha2VMaXN0cy50eHQKK0BAIC0zNiw3ICszNiw3IEBAIEZJTkRfUEFDS0FHRShMaWJYbWwyIFJFUVVJUkVEKQogIFNFVChMSUJfU1VGRklYICIiIENBQ0hFIFNUUklORyAiRGVmaW5lIHN1ZmZpeCBvZiBkaXJlY3RvcnkgbmFtZSAoMzIvNjQpIikKICBTRVQoRVhFQ19JTlNUQUxMX1BSRUZJWCAke0NNQUtFX0lOU1RBTExfUFJFRklYfSBDQUNIRSBQQVRIICJJbnN0YWxsYXRpb24gcHJlZml4IGZvciBleGVjdXRhYmxlcyBhbmQgb2JqZWN0IGNvZGUgbGlicmFyaWVzIiBGT1JDRSkKICBTRVQoQklOX0lOU1RBTExfRElSICR7RVhFQ19JTlNUQUxMX1BSRUZJWH0vYmluIENBQ0hFIFBBVEggIkluc3RhbGxhdGlvbiBwcmVmaXggZm9yIHVzZXIgZXhlY3V0YWJsZXMiIEZPUkNFKQpAQCAtMTgsNCArMTgsNCBAQAogK1NFVChMSUJfSU5TVEFMTF9ESVIgJHtFWEVDX0lOU1RBTExfUFJFRklYfS9saWIke0xJQl9TVUZGSVh9IENBQ0hFIFBBVEggICJJbnN0YWxsYXRpb24gcHJlZml4IGZvciBvYmplY3QgY29kZSBsaWJyYXJpZXMiKQogIFNFVChJTkNMVURFX0lOU1RBTExfRElSICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9L2luY2x1ZGUgQ0FDSEUgUEFUSCAiSW5zdGFsbGF0aW9uIHByZWZpeCBmb3IgQyBoZWFkZXIgZmlsZXMiIEZPUkNFKQogIAotIENPTkZJR1VSRV9GSUxFKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9saWJtdXNpY2JyYWluejMucGMuY21ha2UgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2xpYm11c2ljYnJhaW56My5wYykKKyBDT05GSUdVUkVfRklMRSgke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vbGlibXVzaWNicmFpbno1LnBjLmNtYWtlICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9saWJtdXNpY2JyYWluejUucGMpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvbXVzaWNwZC9tcGRfMC4xOS4yMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9tdXNpY3BkL21wZF8wLjE5LjIxLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZWIyMWEzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9tdXNpY3BkL21wZF8wLjE5LjIxLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLVNVTU1BUlkgPSAiTXVzaWMgUGxheWVyIERhZW1vbiIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKLUhPTUVQQUdFID0iaHR0cDovL3d3dy5tdXNpY3BkLm9yZyIKLQotaW5oZXJpdCBhdXRvdG9vbHMgdXNlcmFkZCBzeXN0ZW1kIHBrZ2NvbmZpZwotCi1ERVBFTkRTICs9ICIgXAotICAgIGFsc2EtbGliIFwKLSAgICBsaWJzYW1wbGVyYXRlMCBcCi0gICAgbGlic25kZmlsZTEgXAotICAgIGxpYnZvcmJpcyBcCi0gICAgbGlib2dnIFwKLSAgICBmYWFkMiBcCi0gICAgZmZtcGVnIFwKLSAgICBjdXJsIFwKLSAgICBzcWxpdGUgXAotICAgIGJ6aXAyIFwKLSAgICBwdWxzZWF1ZGlvIFwKLSAgICB0Y3Atd3JhcHBlcnMgXAotICAgIG9wZW5hbC1zb2Z0IFwKLSAgICB5YWpsIFwKLSAgICBqYWNrIFwKLSAgICBmYWFkMiBcCi0gICAgZmxhYyBcCi0gICAgbGliYW8gXAotICAgIGZsdWlkc3ludGggXAotICAgIGxpYmNkaW8gXAotICAgIHdhdnBhY2sgXAotICAgIGxpYm9wdXMgXAotICAgIG1wZzEyMyBcCi0gICAgbGlibW1zIFwKLSAgICBsaWJtb2RwbHVnIFwKLSAgICBib29zdCBcCi0gICAgaWN1IFwKLSAgICBkYnVzIFwKLSAgICBleHBhdCBcCi0gICAgemxpYiBcCi0gICAgbGlidXBucDEuNiBcCi0iCi0KLSMgV2hpbGUgdGhpcyBpdGVtIGRvZXMgbm90IHJlcXVpcmUgaXQsIGl0IGRlcGVuZHMgb24gbXBnMTIzIHdoaWNoIGRvZXMKLUxJQ0VOU0VfRkxBR1MgPSAiY29tbWVyY2lhbCIKLQotU1JDX1VSSSA9ICIgXAotICAgIGh0dHA6Ly93d3cubXVzaWNwZC5vcmcvZG93bmxvYWQvJHtCUE59LzAuMTkvJHtCUH0udGFyLnh6IFwKLSAgICBmaWxlOi8vbXBkLmNvbmYuaW4gXAotIgotU1JDX1VSSVttZDVzdW1dID0gImZjMTlmNzZiNTEyYmQ0NzFiNmFmNTIxNDk2NWZmN2M1IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjgzMDViOGJjMDI2ZjRiNmJkZTI4YjhkZDA5YmZkZGRiZTU1OTBhY2YzNjM1OGVlZDRkMDgzYTM5NmUzMDE3MzAiCi0KLUVYVFJBX09FQ09ORiA9ICJlbmFibGVfYnppcDI9eWVzIgotRVhUUkFfT0VDT05GICs9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAnLS13aXRoLXN5c3RlbWRzeXN0ZW11bml0ZGlyPSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vJywgJy0td2l0aG91dC1zeXN0ZW1kc3lzdGVtdW5pdGRpcicsIGQpfSIKLQotUEFDS0FHRUNPTkZJR1thdWRpb2ZpbGVdID0gIi0tZW5hYmxlLWF1ZGlvZmlsZSwtLWRpc2FibGUtYXVkaW9maWxlLGF1ZGlvZmlsZSIKLVBBQ0tBR0VDT05GSUdbY2Rpb3BhcmFub2lhXSA9ICItLWVuYWJsZS1jZGlvLXBhcmFub2lhLC0tZGlzYWJsZS1jZGlvLXBhcmFub2lhLGxpYmNkaW8tcGFyYW5vaWEiCi1QQUNLQUdFQ09ORklHW21hZF0gPSAiLS1lbmFibGUtbWFkLC0tZGlzYWJsZS1tYWQsbGlibWFkIgotUEFDS0FHRUNPTkZJR1tpZDN0YWddID0gIi0tZW5hYmxlLWlkMywtLWRpc2FibGUtaWQzLGxpYmlkM3RhZyIKLVBBQ0tBR0VDT05GSUdbbGFtZV0gPSAiLS1lbmFibGUtbGFtZS1lbmNvZGVyLC0tZGlzYWJsZS1sYW1lLWVuY29kZXIsbGFtZSIKLVBBQ0tBR0VDT05GSUdbc21iXSA9ICItLWVuYWJsZS1zbWJjbGllbnQsLS1kaXNhYmxlLXNtYmNsaWVudCxzYW1iYSIKLQotZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7Ci0gICAgc2VkIC1pIC1lICdzfGxpYnN5c3RlbWQtZGFlbW9ufGxpYnN5c3RlbWR8JyAke1N9L2NvbmZpZ3VyZS5hYwotfQotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljCi0gICAgY2htb2QgNzc1ICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljCi0gICAgaW5zdGFsbCAtZCAke0R9LyR7bG9jYWxzdGF0ZWRpcn0vbGliL21wZC9wbGF5bGlzdHMKLSAgICBjaG93biAtUiBtcGQgJHtEfS8ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9tcGQKLSAgICBjaG93biBtcGQ6bXBkICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljCi0KLSAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfQotICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vbXBkLmNvbmYuaW4gJHtEfS8ke3N5c2NvbmZkaXJ9L21wZC5jb25mCi0gICAgc2VkIC1pIFwKLSAgICAgICAgLWUgJ3N8JW11c2ljX2RpcmVjdG9yeSV8JHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljfCcgXAotICAgICAgICAtZSAnc3wlcGxheWxpc3RfZGlyZWN0b3J5JXwke2xvY2Fsc3RhdGVkaXJ9L2xpYi9tcGQvcGxheWxpc3RzfCcgXAotICAgICAgICAtZSAnc3wlZGJfZmlsZSV8JHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL21wZC5kYnwnIFwKLSAgICAgICAgLWUgJ3N8JWxvZ19maWxlJXwke2xvY2Fsc3RhdGVkaXJ9L2xvZy9tcGQubG9nfCcgXAotICAgICAgICAtZSAnc3wlc3RhdGVfZmlsZSV8JHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL3N0YXRlfCcgXAotICAgICAgICAke0R9LyR7c3lzY29uZmRpcn0vbXBkLmNvbmYKLQotICAgIGlmIFsgLWUgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL21wZC5zZXJ2aWNlIF0gOyB0aGVuCi0gICAgICAgIHNlZCAtaSBcCi0gICAgICAgICAgICAnc3xeRXhlY1N0YXJ0PS4qfEV4ZWNTdGFydD0ke2JpbmRpcn0vbXBkIC0tbm8tZGFlbW9ufCcgXAotICAgICAgICAgICAgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL21wZC5zZXJ2aWNlCi0gICAgZmkKLX0KLQotUlBST1ZJREVTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgotUlJFUExBQ0VTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgotUkNPTkZMSUNUU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJtcGQuc29ja2V0IgotCi1VU0VSQUREX1BBQ0tBR0VTID0gIiR7UE59IgotVVNFUkFERF9QQVJBTV8ke1BOfSA9ICIgXAotICAgIC0tc3lzdGVtIC0tbm8tY3JlYXRlLWhvbWUgXAotICAgIC0taG9tZSAke2xvY2Fsc3RhdGVkaXJ9L2xpYi9tcGQgXAotICAgIC0tZ3JvdXBzIGF1ZGlvIFwKLSAgICAtLXVzZXItZ3JvdXAgbXBkIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL211c2ljcGQvbXBkXzAuMjAuMTguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvbXVzaWNwZC9tcGRfMC4yMC4xOC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzU0ZjM0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL211c2ljcGQvbXBkXzAuMjAuMTguYmIKQEAgLTAsMCArMSwxMDAgQEAKK1NVTU1BUlkgPSAiTXVzaWMgUGxheWVyIERhZW1vbiIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKK0hPTUVQQUdFID0iaHR0cDovL3d3dy5tdXNpY3BkLm9yZyIKKworaW5oZXJpdCBhdXRvdG9vbHMgdXNlcmFkZCBzeXN0ZW1kIHBrZ2NvbmZpZworCitERVBFTkRTICs9ICIgXAorICAgIGFsc2EtbGliIFwKKyAgICBsaWJzYW1wbGVyYXRlMCBcCisgICAgbGlic25kZmlsZTEgXAorICAgIGxpYnZvcmJpcyBcCisgICAgbGlib2dnIFwKKyAgICBmYWFkMiBcCisgICAgZmZtcGVnIFwKKyAgICBjdXJsIFwKKyAgICBzcWxpdGUgXAorICAgIGJ6aXAyIFwKKyAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdwdWxzZWF1ZGlvJywgZCl9IFwKKyAgICB0Y3Atd3JhcHBlcnMgXAorICAgIG9wZW5hbC1zb2Z0IFwKKyAgICB5YWpsIFwKKyAgICBqYWNrIFwKKyAgICBmYWFkMiBcCisgICAgZmxhYyBcCisgICAgbGliYW8gXAorICAgIGZsdWlkc3ludGggXAorICAgIGxpYmNkaW8gXAorICAgIHdhdnBhY2sgXAorICAgIGxpYm9wdXMgXAorICAgIG1wZzEyMyBcCisgICAgbGlibW1zIFwKKyAgICBsaWJtb2RwbHVnIFwKKyAgICBib29zdCBcCisgICAgaWN1IFwKKyAgICBkYnVzIFwKKyAgICBleHBhdCBcCisgICAgemxpYiBcCisgICAgbGlidXBucCBcCisiCisKKyMgV2hpbGUgdGhpcyBpdGVtIGRvZXMgbm90IHJlcXVpcmUgaXQsIGl0IGRlcGVuZHMgb24gbXBnMTIzIHdoaWNoIGRvZXMKK0xJQ0VOU0VfRkxBR1MgPSAiY29tbWVyY2lhbCIKKworU1JDX1VSSSA9ICIgXAorICAgIGh0dHA6Ly93d3cubXVzaWNwZC5vcmcvZG93bmxvYWQvJHtCUE59LzAuMjAvJHtCUH0udGFyLnh6IFwKKyAgICBmaWxlOi8vbXBkLmNvbmYuaW4gXAorIgorU1JDX1VSSVttZDVzdW1dID0gIjhkYzg3YmE5NTQ3M2ZkNzM4ZjJhZmY5YmQ2OWNjMjEyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjZhNTgyZGMyYWU5MGI5NGZmMzg1M2Y5ZmZkN2Q4MGIyYzJiNWZlMmUyYzM1Y2IxZGEwYjM2ZjNmM2RmYWQ0MzQiCisKK0VYVFJBX09FQ09ORiA9ICJlbmFibGVfYnppcDI9eWVzIgorRVhUUkFfT0VDT05GICs9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAnLS13aXRoLXN5c3RlbWRzeXN0ZW11bml0ZGlyPSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vJywgJy0td2l0aG91dC1zeXN0ZW1kc3lzdGVtdW5pdGRpcicsIGQpfSIKKworUEFDS0FHRUNPTkZJR1thdWRpb2ZpbGVdID0gIi0tZW5hYmxlLWF1ZGlvZmlsZSwtLWRpc2FibGUtYXVkaW9maWxlLGF1ZGlvZmlsZSIKK1BBQ0tBR0VDT05GSUdbY2Rpb3BhcmFub2lhXSA9ICItLWVuYWJsZS1jZGlvLXBhcmFub2lhLC0tZGlzYWJsZS1jZGlvLXBhcmFub2lhLGxpYmNkaW8tcGFyYW5vaWEiCitQQUNLQUdFQ09ORklHW21hZF0gPSAiLS1lbmFibGUtbWFkLC0tZGlzYWJsZS1tYWQsbGlibWFkIgorUEFDS0FHRUNPTkZJR1tpZDN0YWddID0gIi0tZW5hYmxlLWlkMywtLWRpc2FibGUtaWQzLGxpYmlkM3RhZyIKK1BBQ0tBR0VDT05GSUdbbGFtZV0gPSAiLS1lbmFibGUtbGFtZS1lbmNvZGVyLC0tZGlzYWJsZS1sYW1lLWVuY29kZXIsbGFtZSIKK1BBQ0tBR0VDT05GSUdbc21iXSA9ICItLWVuYWJsZS1zbWJjbGllbnQsLS1kaXNhYmxlLXNtYmNsaWVudCxzYW1iYSIKKworZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7CisgICAgc2VkIC1pIC1lICdzfGxpYnN5c3RlbWQtZGFlbW9ufGxpYnN5c3RlbWR8JyAke1N9L2NvbmZpZ3VyZS5hYworfQorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljCisgICAgY2htb2QgNzc1ICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljCisgICAgaW5zdGFsbCAtZCAke0R9LyR7bG9jYWxzdGF0ZWRpcn0vbGliL21wZC9wbGF5bGlzdHMKKyAgICBjaG93biAtUiBtcGQgJHtEfS8ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9tcGQKKyAgICBjaG93biBtcGQ6bXBkICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljCisKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfQorICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vbXBkLmNvbmYuaW4gJHtEfS8ke3N5c2NvbmZkaXJ9L21wZC5jb25mCisgICAgc2VkIC1pIFwKKyAgICAgICAgLWUgJ3N8JW11c2ljX2RpcmVjdG9yeSV8JHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL211c2ljfCcgXAorICAgICAgICAtZSAnc3wlcGxheWxpc3RfZGlyZWN0b3J5JXwke2xvY2Fsc3RhdGVkaXJ9L2xpYi9tcGQvcGxheWxpc3RzfCcgXAorICAgICAgICAtZSAnc3wlZGJfZmlsZSV8JHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL21wZC5kYnwnIFwKKyAgICAgICAgLWUgJ3N8JWxvZ19maWxlJXwke2xvY2Fsc3RhdGVkaXJ9L2xvZy9tcGQubG9nfCcgXAorICAgICAgICAtZSAnc3wlc3RhdGVfZmlsZSV8JHtsb2NhbHN0YXRlZGlyfS9saWIvbXBkL3N0YXRlfCcgXAorICAgICAgICAke0R9LyR7c3lzY29uZmRpcn0vbXBkLmNvbmYKKworICAgIGlmIFsgLWUgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL21wZC5zZXJ2aWNlIF0gOyB0aGVuCisgICAgICAgIHNlZCAtaSBcCisgICAgICAgICAgICAnc3xeRXhlY1N0YXJ0PS4qfEV4ZWNTdGFydD0ke2JpbmRpcn0vbXBkIC0tbm8tZGFlbW9ufCcgXAorICAgICAgICAgICAgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL21wZC5zZXJ2aWNlCisgICAgZmkKK30KKworUlBST1ZJREVTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorUlJFUExBQ0VTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorUkNPTkZMSUNUU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJtcGQuc29ja2V0IgorCitVU0VSQUREX1BBQ0tBR0VTID0gIiR7UE59IgorVVNFUkFERF9QQVJBTV8ke1BOfSA9ICIgXAorICAgIC0tc3lzdGVtIC0tbm8tY3JlYXRlLWhvbWUgXAorICAgIC0taG9tZSAke2xvY2Fsc3RhdGVkaXJ9L2xpYi9tcGQgXAorICAgIC0tZ3JvdXBzIGF1ZGlvIFwKKyAgICAtLXVzZXItZ3JvdXAgbXBkIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL29wZW5oMjY0L29wZW5oMjY0XzEuNy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL29wZW5oMjY0L29wZW5oMjY0XzEuNy4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0YzQ2ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvb3BlbmgyNjQvb3BlbmgyNjRfMS43LjAuYmIKQEAgLTAsMCArMSw0MiBAQAorREVTQ1JJUFRJT04gPSAiT3BlbkgyNjQgaXMgYSBjb2RlYyBsaWJyYXJ5IHdoaWNoIHN1cHBvcnRzIEguMjY0IGVuY29kaW5nIGFuZCBcCitkZWNvZGluZy4gSXQgaXMgc3VpdGFibGUgZm9yIHVzZSBpbiByZWFsIHRpbWUgYXBwbGljYXRpb25zIHN1Y2ggYXMgV2ViUlRDLiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cub3BlbmgyNjQub3JnLyIKK1NFQ1RJT04gPSAibGlicy9tdWx0aW1lZGlhIgorCitERVBFTkRTX3g4NiArPSAibmFzbS1uYXRpdmUiCitERVBFTkRTX3g4Ni02NCArPSAibmFzbS1uYXRpdmUiCisKK0xJQ0VOU0UgPSAiQlNELTItQ2xhdXNlIgorTElDRU5TRV9GTEFHUyA9ICJjb21tZXJjaWFsIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YmI2ZDM3NzFkYTZhMDdkMzNmZDUwZDRkOWFhNzNiY2YiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCitTUkNSRVYgPSAiYTE4MGM5ZDRkNmYxYTQ4MzBjYTllZWQ5ZDE1OWQ1NDk5NmJkNjNjYiIKK0JSQU5DSCA9ICJvcGVuaDI2NHYxLjciCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vY2lzY28vb3BlbmgyNjQuZ2l0O3Byb3RvY29sPWh0dHBzO2JyYW5jaD0ke0JSQU5DSH07IgorCitDT01QQVRJQkxFX01BQ0hJTkVfYXJtdjdhID0gIiguKikiCitDT01QQVRJQkxFX01BQ0hJTkVfYWFyY2g2NCA9ICIoLiopIgorQ09NUEFUSUJMRV9NQUNISU5FX3g4NiA9ICIoLiopIgorQ09NUEFUSUJMRV9NQUNISU5FX3g4Ni02NCA9ICIoLiopIgorQ09NUEFUSUJMRV9NQUNISU5FX21pcHMgPSAiKC4qKSIKK0NPTVBBVElCTEVfTUFDSElORV9taXBzNjQgPSAiKC4qKSIKKworRVhUUkFfT0VNQUtFX2FybXY3YSA9ICJBUkNIPWFybSIKK0VYVFJBX09FTUFLRV9hYXJjaDY0ID0gIkFSQ0g9YXJtNjQiCitFWFRSQV9PRU1BS0VfeDg2ID0gIkFSQ0g9aTM4NiIKK0VYVFJBX09FTUFLRV94ODYtNjQgPSAiQVJDSD14ODZfNjQiCitFWFRSQV9PRU1BS0VfbWlwcyA9ICJBUkNIPW1pcHMiCitFWFRSQV9PRU1BS0VfbWlwczY0ID0gIkFSQ0g9bWlwczY0IgorCitkb19jb25maWd1cmUoKSB7CisgICAgOgorfQorCitkb19jb21waWxlKCkgeworICAgIG9lX3J1bm1ha2UKK30KKworZG9faW5zdGFsbCgpIHsKKyAgICBvZV9ydW5tYWtlIGluc3RhbGwgREVTVERJUj0ke0R9IFBSRUZJWD0ke3ByZWZpeH0KK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9vcHVzZmlsZS9vcHVzZmlsZV8wLjEwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL29wdXNmaWxlL29wdXNmaWxlXzAuMTAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg5ZGM4NwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9vcHVzZmlsZS9vcHVzZmlsZV8wLjEwLmJiCkBAIC0wLDAgKzEsMTQgQEAKK0RFU0NSSVBUSU9OID0gIkxpYnJhcnkgZm9yIG9wZW5pbmcsIHNlZWtpbmcsIGFuZCBkZWNvZGluZyBvcHVzIGF1ZGlvIGZpbGVzIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly93d3cub3B1cy1jb2RlYy5vcmcvIgorU0VDVElPTiA9ICJhdWRpbyIKKworREVQRU5EUyA9ICJsaWJvZ2cgb3BlbnNzbCBsaWJvcHVzIgorCitMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTZhYzIyYjk5MmRkZTZhODkxZjg5NDljM2UyZGE4NTc2IgorCitTUkNfVVJJID0gImh0dHBzOi8vZG93bmxvYWRzLnhpcGgub3JnL3JlbGVhc2VzL29wdXMvJHtQTn0tJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gImFiM2Y3ZDE1ZDc2NmY1YjM2YjA5NTFlZTQzNWY5ZWJmIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ4ZTAzNTI2YmE4N2VmOWNmNWYxYzQ3YjVlYmUzYWExOTViZDg5YjkxMmE1NzA2MGMzNjE4NGE2Y2QxOTQxMmYiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NjaHJvZWRpbmdlci9zY2hyb2VkaW5nZXIvY29uZmlndXJlLmFjLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NjaHJvZWRpbmdlci9zY2hyb2VkaW5nZXIvY29uZmlndXJlLmFjLnBhdGNoCmluZGV4IDJlZDhkMjIuLjgzODQwMGYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9zY2hyb2VkaW5nZXIvc2Nocm9lZGluZ2VyL2NvbmZpZ3VyZS5hYy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvc2Nocm9lZGluZ2VyL3NjaHJvZWRpbmdlci9jb25maWd1cmUuYWMucGF0Y2gKQEAgLTUsMTAgKzUsMTAgQEAKIAogVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQogCi1JbmRleDogc2Nocm9lZGluZ2VyLTEuMC45L2NvbmZpZ3VyZS5hYworSW5kZXg6IHNjaHJvZWRpbmdlci0xLjAuMTEvY29uZmlndXJlLmFjCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gc2Nocm9lZGluZ2VyLTEuMC45Lm9yaWcvY29uZmlndXJlLmFjCi0rKysgc2Nocm9lZGluZ2VyLTEuMC45L2NvbmZpZ3VyZS5hYworLS0tIHNjaHJvZWRpbmdlci0xLjAuMTEub3JpZy9jb25maWd1cmUuYWMKKysrKyBzY2hyb2VkaW5nZXItMS4wLjExL2NvbmZpZ3VyZS5hYwogQEAgLTU0LDcgKzU0LDcgQEAgaWYgdGVzdCAieCR7SEFWRV9PUkN9IiAhPSB4eWVzIDsgdGhlbgogICAgQUNfRVJST1IoW29yYy0wLjQgPj0gJE9SQ19WRVIgaXMgcmVxdWlyZWRdKQogIGZpCkBAIC0xNiw1ICsxNiw1IEBACiAtT1JDQz1gJFBLR19DT05GSUcgLS12YXJpYWJsZT1vcmNjIG9yYy0wLjRgCiArT1JDQz0kU1RBR0lOR19ESVJgJFBLR19DT05GSUcgLS12YXJpYWJsZT1vcmNjIG9yYy0wLjRgCiAgQUNfU1VCU1QoT1JDQykKKyBBTV9DT05ESVRJT05BTChIQVZFX09SQ0MsIHRlc3QgIngkY3Jvc3NfY29tcGlsaW5nIiAhPSB4eWVzKQogIAotIEFDX0FSR19XSVRIKFt0aHJlYWRdLApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3gvMDAwMS1VcGRhdGUtZXhwb3J0ZWQtc3ltYm9sLWxpc3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvc294L3NveC8wMDAxLVVwZGF0ZS1leHBvcnRlZC1zeW1ib2wtbGlzdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGM2YjE5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3gvMDAwMS1VcGRhdGUtZXhwb3J0ZWQtc3ltYm9sLWxpc3QucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAorRnJvbSBiMTgwOWQ4MjAzMWFhN2M1YmNhYWQ1OGJjYjRiNTllMDgyZTA0NDZlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWFucyBSdWxsZ2FyZCA8bWFuc0BtYW5zci5jb20+CitEYXRlOiBTdW4sIDUgTm92IDIwMTcgMTU6NDA6MTYgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXBkYXRlIGV4cG9ydGVkIHN5bWJvbCBsaXN0CisKK2NvbW1pdCA1YzU4NDEzNTQ0ICgiRG9uJ3QgZXhwb3J0IChtb3N0KSBpbnRlcm5hbCBsaWJzb3ggc3ltYm9scyIpCiticmVha3MgZHluYW1pYyBmbGFjIGJ1aWxkcyBhcyBmbGFjLmMgcmVmZXJlbmNlcyBsc3guZXJyb3IsIHNvIGFkZCBpdAordG8gdGhlIGxpc3Qgb2YgZXhjZXB0aW9ucy4KKworfCAubGlicy9mbGFjLm86IEluIGZ1bmN0aW9uIGBkZWNvZGVyX3JlYWRfY2FsbGJhY2snOgorfCAvdXNyL3NyYy9kZWJ1Zy9zb3gvMTQuNC4yLXIwL3NveC0xNC40LjIvc3JjL2ZsYWMuYzo2MzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgbHN4X2Vycm9yJworCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFtodHRwczovL2JvZ29taXBzLm9yZy9zb3guZ2l0ICgicHUiIGJyYW5jaCldCisKKy0tLQorIHNyYy9NYWtlZmlsZS5hbSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5hbSBiL3NyYy9NYWtlZmlsZS5hbQoraW5kZXggN2NjZWFhZmQuLmEzYTA0ZWQxIDEwMDY0NAorLS0tIGEvc3JjL01ha2VmaWxlLmFtCisrKysgYi9zcmMvTWFrZWZpbGUuYW0KK0BAIC05NSw3ICs5NSw3IEBAIGxpYnNveF9sYV9MSUJBREQgKz0gQEdPTVBfTElCU0AKKyAKKyBsaWJzb3hfbGFfQ0ZMQUdTID0gQFdBUk5fQ0ZMQUdTQAorIGxpYnNveF9sYV9MREZMQUdTID0gQEFQUF9MREZMQUdTQCAtdmVyc2lvbi1pbmZvIEBTSExJQl9WRVJTSU9OQCBcCistICAtZXhwb3J0LXN5bWJvbHMtcmVnZXggJ14oc294Xy4qfGxzeF8oY2hlY2tfcmVhZF9wYXJhbXN8KGNsb3NlfG9wZW4pX2RsbGlicmFyeXwoZGVidWcoX21vcmV8X21vc3QpP3xmYWlsfHJlcG9ydHx3YXJuKV9pbXBsfGVvZnxmYWlsX2Vycm5vfGZpbGVsZW5ndGh8ZmluZF8oZW51bV8odGV4dHx2YWx1ZSl8ZmlsZV9leHRlbnNpb24pfGdldG9wdChfaW5pdCk/fGxwYzEwXyhjcmVhdGVfKGRlfGVuKWNvZGVyX3N0YXRlfChkZXxlbiljb2RlKXxyYXcocmVhZHx3cml0ZSl8cmVhZChfYl9idWZ8YnVmfGNoYXJzKXxyZWFsbG9jfHJld2luZHxzZWVraXxzaWdmaWdzM3A/fHN0cmNhc2VjbXB8dGVsbHx1bnJlYWRifHdyaXRlKGJ8X2JfYnVmfGJ1ZnxzKSkpJCQnCisrICAtZXhwb3J0LXN5bWJvbHMtcmVnZXggJ14oc294Xy4qfGxzeF8oKFtjbV18cmUpYWxsb2N8Y2hlY2tfcmVhZF9wYXJhbXN8KGNsb3NlfG9wZW4pX2RsbGlicmFyeXwoZGVidWcoX21vcmV8X21vc3QpP3xmYWlsfHJlcG9ydHx3YXJuKV9pbXBsfGVvZnxlcnJvcnxmYWlsX2Vycm5vfGZpbGVsZW5ndGh8ZmluZF8oZW51bV8odGV4dHx2YWx1ZSl8ZmlsZV9leHRlbnNpb24pfGZsdXNofGdldG9wdChfaW5pdCk/fGlkM19yZWFkX3RhZ3xscGMxMF8oY3JlYXRlXyhkZXxlbiljb2Rlcl9zdGF0ZXwoZGV8ZW4pY29kZSl8cmF3KHJlYWR8d3JpdGUpfHJlYWQoX2JfYnVmfGJ1ZnxjaGFycyl8cmV3aW5kfHNlZWtpfHNpZ2ZpZ3MzcD98c3RyY2FzZWNtcHxzdHJkdXB8dGVsbHx1bnJlYWRifHdyaXRlKGJ8X2JfYnVmfGJ1ZnxzKSkpJCQnCisgCisgaWYgSEFWRV9XSU4zMl9MVERMCisgICBsaWJzb3hfbGFfU09VUkNFUyArPSB3aW4zMi1sdGRsLmMgd2luMzItbHRkbC5oCistLSAKKzIuMTYuMgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvc294L3NveC8wMDAxLXJlbW92ZS10aGUtZXJyb3ItbGluZS1hbmQtbGl2ZS13aXRob3V0LWZpbGUtdHlwZS1kZXQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvc294L3NveC8wMDAxLXJlbW92ZS10aGUtZXJyb3ItbGluZS1hbmQtbGl2ZS13aXRob3V0LWZpbGUtdHlwZS1kZXQucGF0Y2gKaW5kZXggNjA1ODYzYS4uNGYwMmE2NiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3gvMDAwMS1yZW1vdmUtdGhlLWVycm9yLWxpbmUtYW5kLWxpdmUtd2l0aG91dC1maWxlLXR5cGUtZGV0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9zb3gvc294LzAwMDEtcmVtb3ZlLXRoZS1lcnJvci1saW5lLWFuZC1saXZlLXdpdGhvdXQtZmlsZS10eXBlLWRldC5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gYzJhZWQyOGUzZTE0MzI5YWQwYThjNDM3MWZkY2NlOTkzNDAxM2YyMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZDAzMTNiZTVmYjk0N2RmMzk5YTRkYjI0YTVmOTI0NDUxMGQyY2U4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBXZWQsIDEyIEp1bCAyMDE3IDE2OjM2OjA2IC0wNzAwCiBTdWJqZWN0OiBbUEFUQ0hdIHJlbW92ZSB0aGUgI2Vycm9yIGxpbmUgYW5kIGxpdmUgd2l0aG91dCBmaWxlLXR5cGUgZGV0ZWN0aW9uCkBAIC0xMiwxNyArMTIsMTcgQEAKICAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQogCiBkaWZmIC0tZ2l0IGEvc3JjL2Zvcm1hdHMuYyBiL3NyYy9mb3JtYXRzLmMKLWluZGV4IDdlMjMxY2EuLmIxM2YwZDUgMTAwNjQ0CitpbmRleCA3MjRhNGNkYS4uZjY4M2E5MjIgMTAwNjQ0CiAtLS0gYS9zcmMvZm9ybWF0cy5jCiArKysgYi9zcmMvZm9ybWF0cy5jCi1AQCAtNDE2LDcgKzQxNiw2IEBAIHN0YXRpYyB2b2lkIFVOVVNFRCByZXdpbmRfcGlwZShGSUxFICogZnApCitAQCAtNDIyLDcgKzQyMiw2IEBAIHN0YXRpYyB2b2lkIFVOVVNFRCByZXdpbmRfcGlwZShGSUxFICogZnApCiAgICAvKiBUbyBmaXggdGhpcyAjZXJyb3IsIGVpdGhlciBzaW1wbHkgcmVtb3ZlIHRoZSAjZXJyb3IgbGluZSBhbmQgbGl2ZSB3aXRob3V0CiAgICAgKiBmaWxlLXR5cGUgZGV0ZWN0aW9uIHdpdGggcGlwZXMsIG9yIGFkZCBzdXBwb3J0IGZvciB5b3VyIGNvbXBpbGVyIGluIHRoZQotICAgICogbGluZXMgYWJvdmUuICBUZXN0IHdpdGggY2F0IG1vbmtleS5hdSB8IC4vc294IC0taW5mbyAtICovCisgICAgKiBsaW5lcyBhYm92ZS4gIFRlc3Qgd2l0aCBjYXQgbW9ua2V5LndhdiB8IC4vc294IC0taW5mbyAtICovCiAtICAjZXJyb3IgRklYIE5FRURFRCBIRVJFCiAgICAjZGVmaW5lIE5PX1JFV0lORF9QSVBFCiAgICAodm9pZClmcDsKICAjZW5kaWYKIC0tIAotMi4xMy4yCisyLjE2LjIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3hfMTQuNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3hfMTQuNC4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZWIxODU2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS9zb3gvc294XzE0LjQuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLURFU0NSSVBUSU9OPSJTb1ggaXMgdGhlIFN3aXNzIEFybXkga25pZmUgb2Ygc291bmQgcHJvY2Vzc2luZyB0b29scy4gXAotSXQgY29udmVydHMgYXVkaW8gZmlsZXMgYW1vbmcgdmFyaW91cyBzdGFuZGFyZCBhdWRpbyBmaWxlIGZvcm1hdHMgXAotYW5kIGNhbiBhcHBseSBkaWZmZXJlbnQgZWZmZWN0cyBhbmQgZmlsdGVycyB0byB0aGUgYXVkaW8gZGF0YS4iCi1IT01FUEFHRSA9ICJodHRwOi8vc294LnNvdXJjZWZvcmdlLm5ldCIKLVNFQ1RJT04gPSAiYXVkaW8iCi0KLURFUEVORFMgPSAibGlicG5nIGZmbXBlZyBsaWJzbmRmaWxlMSBsaWJ2b3JiaXMiCi0KLSMgV2hpbGUgdGhpcyBpdGVtIGRvZXMgbm90IHJlcXVpcmUgaXQsIGl0IGRlcGVuZHMgb24gZmZtcGVnIHdoaWNoIGRvZXMKLUxJQ0VOU0VfRkxBR1MgPSAiY29tbWVyY2lhbCIKLQotUFIgPSAicjIiCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdhbHNhIHB1bHNlYXVkaW8nLCBkKX0gXAotICAgICAgICAgICAgICAgICAgIG1hZ2ljIFwKLSIKLVBBQ0tBR0VDT05GSUdbcHVsc2VhdWRpb10gPSAiLS13aXRoLXB1bHNlYXVkaW89ZHluLC0td2l0aC1wdWxzZWF1ZGlvPW5vLHB1bHNlYXVkaW8sIgotUEFDS0FHRUNPTkZJR1thbHNhXSA9ICItLXdpdGgtYWxzYT1keW4sLS13aXRoLWFsc2E9bm8sYWxzYS1saWIsIgotUEFDS0FHRUNPTkZJR1t3YXZwYWNrXSA9ICItLXdpdGgtd2F2cGFjaz1keW4sLS13aXRoLXdhdnBhY2s9bm8sd2F2cGFjaywiCi1QQUNLQUdFQ09ORklHW2ZsYWNdID0gIi0td2l0aC1mbGFjPWR5biwtLXdpdGgtZmxhYz1ubyxmbGFjLCIKLVBBQ0tBR0VDT05GSUdbYW1yd2JdID0gIi0td2l0aC1hbXJ3Yj1keW4sLS13aXRoLWFtcndiPW5vLG9wZW5jb3JlLWFtciwiCi1QQUNLQUdFQ09ORklHW2Ftcm5iXSA9ICItLXdpdGgtYW1ybmI9ZHluLC0td2l0aC1hbXJuYj1ubyxvcGVuY29yZS1hbXIsIgotUEFDS0FHRUNPTkZJR1ttYWdpY10gPSAiLS13aXRoLW1hZ2ljLC0td2l0aG91dC1tYWdpYyxmaWxlLCIKLVBBQ0tBR0VDT05GSUdbbWFkXSA9ICItLXdpdGgtbWFkLC0td2l0aG91dC1tYWQsbGlibWFkLCIKLVBBQ0tBR0VDT05GSUdbaWQzdGFnXSA9ICItLXdpdGgtaWQzdGFnLC0td2l0aG91dC1pZDN0YWcsbGliaWQzdGFnLCIKLVBBQ0tBR0VDT05GSUdbbGFtZV0gPSAiLS13aXRoLWxhbWUsLS13aXRob3V0LWxhbWUsbGFtZSwiCi1QQUNLQUdFQ09ORklHW2FvXSA9ICItLXdpdGgtYW8sLS13aXRob3V0LWFvLGxpYmFvLCIKLQotTElDRU5TRSA9ICJHUEx2MiAmIExHUEx2Mi4xIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS5HUEw7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0xJQ0VOU0UuTEdQTDttZDU9ZmJjMDkzOTAxODU3ZmNkMTE4ZjA2NWY5MDA5ODJjMjQiCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3NveC9zb3gtJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtcmVtb3ZlLXRoZS1lcnJvci1saW5lLWFuZC1saXZlLXdpdGhvdXQtZmlsZS10eXBlLWRldC5wYXRjaCBcCi0gICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICJiMGMxNWNmZjdhNGJhMGVjMTdmZGM3NGU2YTFmOWNmMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIzZWUzNGIxNGRkMjY3ZGUzNzhlOGExMTdhYWU4MWVjNGNhZTMzMDc3MjM0MmU2YTU1YmJmNjUyMGEwYTg4YWEzIgotCi1pbmhlcml0IGF1dG90b29scwotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3hfMTQuNC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3NveC9zb3hfMTQuNC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxZmRkZDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvc294L3NveF8xNC40LjIuYmIKQEAgLTAsMCArMSw0MCBAQAorREVTQ1JJUFRJT049IlNvWCBpcyB0aGUgU3dpc3MgQXJteSBrbmlmZSBvZiBzb3VuZCBwcm9jZXNzaW5nIHRvb2xzLiBcCitJdCBjb252ZXJ0cyBhdWRpbyBmaWxlcyBhbW9uZyB2YXJpb3VzIHN0YW5kYXJkIGF1ZGlvIGZpbGUgZm9ybWF0cyBcCithbmQgY2FuIGFwcGx5IGRpZmZlcmVudCBlZmZlY3RzIGFuZCBmaWx0ZXJzIHRvIHRoZSBhdWRpbyBkYXRhLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9zb3guc291cmNlZm9yZ2UubmV0IgorU0VDVElPTiA9ICJhdWRpbyIKKworREVQRU5EUyA9ICJsaWJwbmcgZmZtcGVnIGxpYnNuZGZpbGUxIgorCisjIFdoaWxlIHRoaXMgaXRlbSBkb2VzIG5vdCByZXF1aXJlIGl0LCBpdCBkZXBlbmRzIG9uIGZmbXBlZyB3aGljaCBkb2VzCitMSUNFTlNFX0ZMQUdTID0gImNvbW1lcmNpYWwiCisKK1BBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdhbHNhIHB1bHNlYXVkaW8nLCBkKX0gXAorICAgICAgICAgICAgICAgICAgIG1hZ2ljIFwKKyIKK1BBQ0tBR0VDT05GSUdbcHVsc2VhdWRpb10gPSAiLS13aXRoLXB1bHNlYXVkaW89ZHluLC0td2l0aC1wdWxzZWF1ZGlvPW5vLHB1bHNlYXVkaW8sIgorUEFDS0FHRUNPTkZJR1thbHNhXSA9ICItLXdpdGgtYWxzYT1keW4sLS13aXRoLWFsc2E9bm8sYWxzYS1saWIsIgorUEFDS0FHRUNPTkZJR1t3YXZwYWNrXSA9ICItLXdpdGgtd2F2cGFjaz1keW4sLS13aXRoLXdhdnBhY2s9bm8sd2F2cGFjaywiCitQQUNLQUdFQ09ORklHW2ZsYWNdID0gIi0td2l0aC1mbGFjPWR5biwtLXdpdGgtZmxhYz1ubyxmbGFjLCIKK1BBQ0tBR0VDT05GSUdbYW1yd2JdID0gIi0td2l0aC1hbXJ3Yj1keW4sLS13aXRoLWFtcndiPW5vLG9wZW5jb3JlLWFtciwiCitQQUNLQUdFQ09ORklHW2Ftcm5iXSA9ICItLXdpdGgtYW1ybmI9ZHluLC0td2l0aC1hbXJuYj1ubyxvcGVuY29yZS1hbXIsIgorUEFDS0FHRUNPTkZJR1tvZ2d2b3JiaXNdID0gIi0td2l0aC1vZ2d2b3JiaXM9ZHluLC0td2l0aC1vZ2d2b3JiaXM9bm8sbGlidm9yYmlzIgorUEFDS0FHRUNPTkZJR1tvcHVzXSA9ICItLXdpdGgtb3B1cz1keW4sLS13aXRoLW9wdXM9bm8sb3B1c2ZpbGUiCitQQUNLQUdFQ09ORklHW21hZ2ljXSA9ICItLXdpdGgtbWFnaWMsLS13aXRob3V0LW1hZ2ljLGZpbGUsIgorUEFDS0FHRUNPTkZJR1ttYWRdID0gIi0td2l0aC1tYWQsLS13aXRob3V0LW1hZCxsaWJtYWQsIgorUEFDS0FHRUNPTkZJR1tpZDN0YWddID0gIi0td2l0aC1pZDN0YWcsLS13aXRob3V0LWlkM3RhZyxsaWJpZDN0YWcsIgorUEFDS0FHRUNPTkZJR1tsYW1lXSA9ICItLXdpdGgtbGFtZSwtLXdpdGhvdXQtbGFtZSxsYW1lLCIKK1BBQ0tBR0VDT05GSUdbYW9dID0gIi0td2l0aC1hbywtLXdpdGhvdXQtYW8sbGliYW8sIgorCitMSUNFTlNFID0gIkdQTHYyICYgTEdQTHYyLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLkdQTDttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vTElDRU5TRS5MR1BMO21kNT1mYmMwOTM5MDE4NTdmY2QxMThmMDY1ZjkwMDk4MmMyNCIKKworU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vc294L3NveC0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1yZW1vdmUtdGhlLWVycm9yLWxpbmUtYW5kLWxpdmUtd2l0aG91dC1maWxlLXR5cGUtZGV0LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtVXBkYXRlLWV4cG9ydGVkLXN5bWJvbC1saXN0LnBhdGNoIFwKKyAgICAgICAgICAgIgorU1JDX1VSSVttZDVzdW1dID0gImQwNGZiYTJkOTI0NWU2NjFmMjQ1ZGUwNTc3ZjQ4YTMzIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImI0NWY1OTg2NDNmZmJkOGUzNjNmZjI0ZDYxMTY2Y2NlYzQ4MzZmZWE2ZDM4ODg4ODFiOGRmNTNlM2JiNTVmNmMiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3RpbnlhbHNhL3RpbnlhbHNhXzEuMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3RpbnlhbHNhL3RpbnlhbHNhXzEuMS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2Yjk1ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvdGlueWFsc2EvdGlueWFsc2FfMS4xLjEuYmIKQEAgLTAsMCArMSwyOCBAQAorREVTQ1JJUFRJT04gPSAiVGlueUFMU0EgaXMgYSBzbWFsbCBsaWJyYXJ5IHRvIGludGVyZmFjZSB3aXRoIEFMU0EgaW4gXAordGhlIExpbnV4IGtlcm5lbC4gSXQgaXMgYSBsaWdodHdlaWdodCBhbHRlcm5hdGl2ZSB0byBsaWJhc291bmQuIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3RpbnlhbHNhL3RpbnlhbHNhIgorU0VDVElPTiA9ICJsaWJzL211bHRpbWVkaWEiCisKK0xJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTk9USUNFO21kNT1kYmRlZmU0MDBkODk0YjUxMGE5ZGUxNDgxMzE4MWQwYiIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICJkZjExMDkxMDg2YjU2ZTVmYjcxODg3ZjJmYTMyMGUxZDJmZmVmZjU4IgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3RpbnlhbHNhL3RpbnlhbHNhLmdpdDtwcm90b2NvbD1odHRwczsiCisKK2RvX2NvbmZpZ3VyZSgpIHsKKyAgICA6Cit9CisKK2RvX2NvbXBpbGUoKSB7CisgICAgb2VfcnVubWFrZSBDQz0nJHtDQ30nIExEPScke0NDfScgQVI9JyR7QVJ9JworfQorCitkb19pbnN0YWxsKCkgeworICAgIG9lX3J1bm1ha2UgaW5zdGFsbCBcCisgICAgICAgIFBSRUZJWD0iJHtwcmVmaXh9IiBERVNURElSPSIke0R9IiBJTkNESVI9IiR7aW5jbHVkZWRpcn0vdGlueWFsc2EiIFwKKyAgICAgICAgTElCRElSPSIke2xpYmRpcn0iIEJJTkRJUj0iJHtiaW5kaXJ9IiBNQU5ESVI9IiR7bWFuZGlyfSIKK30KKworUEFDS0FHRVMgPSsgIiR7UE59LXRvb2xzIgorRklMRVNfJHtQTn0tdG9vbHMgPSAiJHtiaW5kaXJ9LyoiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvdmxjL3ZsYy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLW11bHRpbWVkaWEvdmxjL3ZsYy5pbmMKaW5kZXggYWNiM2NjZC4uOGU4MmIzYiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1tdWx0aW1lZGlhL3ZsYy92bGMuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtbXVsdGltZWRpYS92bGMvdmxjLmluYwpAQCAtNTcsNyArNTcsNiBAQAogUEFDS0FHRUNPTkZJR1txdDRdID0gIi0tZW5hYmxlLXF0LC0tZGlzYWJsZS1xdCwgcXQ0LXgxMS1mcmVlIgogUEFDS0FHRUNPTkZJR1tmcmVlcmRwXSA9ICItLWVuYWJsZS1mcmVlcmRwLC0tZGlzYWJsZS1mcmVlcmRwLCBmcmVlcmRwIgogUEFDS0FHRUNPTkZJR1tkdmJwc2ldID0gIi0tZW5hYmxlLWR2YnBzaSwtLWRpc2FibGUtZHZicHNpLCBsaWJkdmJwc2kiCi1QQUNLQUdFQ09ORklHW2dub21lLXZmc10gPSAiLS1lbmFibGUtZ25vbWV2ZnMsLS1kaXNhYmxlLWdub21ldmZzLCBnbm9tZS12ZnMiCiBQQUNLQUdFQ09ORklHW3NhbWJhXSA9ICItLWVuYWJsZS1zbWJjbGllbnQsLS1kaXNhYmxlLXNtYmNsaWVudCwgc2FtYmEiCiBQQUNLQUdFQ09ORklHW3VwbnBdID0gIi0tZW5hYmxlLXVwbnAsLS1kaXNhYmxlLXVwbnAsbGlidXBucCIKIFBBQ0tBR0VDT05GSUdbZHZkbmF2XSA9ICItLWVuYWJsZS1kdmRuYXYsLS1kaXNhYmxlLWR2ZG5hdixsaWJkdmRuYXYgbGliZHZkY3NzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1zdXBwb3J0L2dzdC1pbnN0cnVtZW50cy9nc3QtaW5zdHJ1bWVudHNfMC4yLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLXN1cHBvcnQvZ3N0LWluc3RydW1lbnRzL2dzdC1pbnN0cnVtZW50c18wLjIuMy5iYgppbmRleCBiNmNkYzRmLi4wN2QwYzU1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLXN1cHBvcnQvZ3N0LWluc3RydW1lbnRzL2dzdC1pbnN0cnVtZW50c18wLjIuMy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLXN1cHBvcnQvZ3N0LWluc3RydW1lbnRzL2dzdC1pbnN0cnVtZW50c18wLjIuMy5iYgpAQCAtNSwxOCArNSwxNiBAQAogTElDRU5TRSA9ICJMR1BMLTMuMCIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWU2YTYwMGZkNWUxZDljYmRlMmQ5ODM2ODAyMzNhZDAyIgogCi1TUkNfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9raXJ1c2h5ay9nc3QtaW5zdHJ1bWVudHMvYXJjaGl2ZS8ke1BWfS50YXIuZ3oiCitERVBFTkRTID0gImdzdHJlYW1lcjEuMCIKIAotU1JDX1VSSVttZDVzdW1dID0gIjE0YTM5NGRlYzI1NjQyODQ4YjE3Zjk5OTlmMWI0OTk5IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU1NjU2NThhMzNmZjk1OTY5NDY1NDEzMDRmYmRkM2IzNjgzZGJiODIxNzFhMGU2Y2U1NmY0MmI2NGEwMWU1OGQiCitTID0gIiR7V09SS0RJUn0vZ2l0IgorU1JDUkVWID0gIjRjZTgwOTI2MzZlZTY1NzIxNDhiNWZhMDQ0MDgwNzM0Y2Y1YTZiOGQiCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20va2lydXNoeWsvZ3N0LWluc3RydW1lbnRzLmdpdDtwcm90b2NvbD1odHRwczsiCiAKLVMgPSAiJHtXT1JLRElSfS9nc3QtaW5zdHJ1bWVudHMtJHtQVn0iCi0KK0ZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiJHtsaWJkaXJ9L2dzdHJlYW1lci0xLjAvKmEiCiBGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9LyoiCiAKIElOU0FORV9TS0lQXyR7UE59ID0gImRldi1zbyIKIAotREVQRU5EUyA9ICJnc3RyZWFtZXIxLjAiCi0KIGluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLXN1cHBvcnQvbGlic3J0cC9saWJzcnRwXzEuNS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW11bHRpbWVkaWEvcmVjaXBlcy1zdXBwb3J0L2xpYnNydHAvbGlic3J0cF8xLjUuMi5iYgppbmRleCA4YWJhYTEyLi5lZThjNjhiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbXVsdGltZWRpYS9yZWNpcGVzLXN1cHBvcnQvbGlic3J0cC9saWJzcnRwXzEuNS4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1tdWx0aW1lZGlhL3JlY2lwZXMtc3VwcG9ydC9saWJzcnRwL2xpYnNydHBfMS41LjIuYmIKQEAgLTUsMTEgKzUsMTEgQEAKIExJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MTViYzE2YjlkMmUzMDU5NzRkZGU0N2U3MzM4ODM3MTQiCiAKLVNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2Npc2NvL2xpYnNydHAvYXJjaGl2ZS92JHtQVn0udGFyLmd6O2Rvd25sb2FkZmlsZW5hbWU9JHtCUH0udGFyLmd6IFwKK1MgPSAiJHtXT1JLRElSfS9naXQiCitTUkNSRVYgPSAiZTgwNmE2NmJhZDM1ZjRiMjE1YjdhODI1YzI0ZWYwZWM0Y2MxOTU2OSIKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9jaXNjby9saWJzcnRwLmdpdDtwcm90b2NvbD1odHRwczsgXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1SZW5hbWUtY29uZmxpY3RpbmctdmFyaWFibGUtbWlwcy5wYXRjaCBcCiAgICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICIyMzA5YWE2MDI3OTkyODEwYTQyODViMDQyYzcxZTY0NCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4NmUxZWZlMzUzMzk3YzA3NTFmNmJkZDcwOTc5NDE0M2JkMWI3NjQ5NDQxMjg2MGYxNmZmMmI2ZDljMzA0ZWRhIgogCiBpbmhlcml0IGF1dG90b29scwogCkBAIC0xOCwzICsxOCw1IEBACiBybV91bnVzZWRfYmluZGlyKCkgewogICAgIHJtZGlyICR7RH0vJHtiaW5kaXJ9CiB9CisKK0FMTE9XX0VNUFRZXyR7UE59ID0gIjEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9NQUlOVEFJTkVSUyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL01BSU5UQUlORVJTCmluZGV4IDc3MWM3M2MuLmJiYjJkMWIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL01BSU5UQUlORVJTCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL01BSU5UQUlORVJTCkBAIC0yLDE2ICsyLDEzIEBACiAKIFBsZWFzZSBzdWJtaXQgYW55IHBhdGNoZXMgYWdhaW5zdCBtZXRhLW5ldHdvcmtpbmcgdG8gdGhlIE9wZW5FbWJlZGRlZAogZGV2ZWxvcG1lbnQgbWFpbGluZyBsaXN0IChvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZykgd2l0aAotJ1ttZXRhLW5ldHdvcmtpbmddW3JvY2tvXScgaW4gdGhlIHN1YmplY3QuCisnW21ldGEtbmV0d29ya2luZ10nIGluIHRoZSBzdWJqZWN0LgogCiBXaGVuIHNlbmRpbmcgc2luZ2xlIHBhdGNoZXMsIHBsZWFzZSB1c2Ugc29tZXRoaW5nIGxpa2U6CiAKICAgIGdpdCBzZW5kLWVtYWlsIC0xIC1NIFwKICAgICAgICAgLS10byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyBcCi0gICAgICAgIC0tc3ViamVjdC1wcmVmaXg9bWV0YS1uZXR3b3JraW5nXVtyb2Nrb11bUEFUQ0gKLQotcm9ja28gQnJhbmNoIE1haW50YWluZXI6Ci1Bcm1pbiBLdXN0ZXIgPGFrdXN0ZXI4MDhAZ21haWwuY29tPgorICAgICAgICAtLXN1YmplY3QtcHJlZml4PW1ldGEtbmV0d29ya2luZ11bUEFUQ0gKIAogWW91IG1heSBhbHNvIGNvbnRhY3QgdGhlIG1haW50YWluZXJzIGRpcmVjdGx5LgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9jbGFzc2VzL3dhZi1zYW1iYS5iYmNsYXNzIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvY2xhc3Nlcy93YWYtc2FtYmEuYmJjbGFzcwppbmRleCBlNDkwMTc2Li4xNjMyYzNjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9jbGFzc2VzL3dhZi1zYW1iYS5iYmNsYXNzCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL2NsYXNzZXMvd2FmLXNhbWJhLmJiY2xhc3MKQEAgLTEsNyArMSw3IEBACiAjIHdhZiBpcyBhIGJ1aWxkIHN5c3RlbSB3aGljaCBpcyB1c2VkIGJ5IHNhbWJhIHJlbGF0ZWQgcHJvamVjdC4KICMgT2J0YWluIGRldGFpbHMgZnJvbSBodHRwczovL3dpa2kuc2FtYmEub3JnL2luZGV4LnBocC9XYWYKLSMgCi1pbmhlcml0IHFlbXUgcHl0aG9ubmF0aXZlIHdhZgorIworaW5oZXJpdCBxZW11IHB5dGhvbm5hdGl2ZQogCiBERVBFTkRTICs9ICJxZW11LW5hdGl2ZSBsaWJ4c2x0LW5hdGl2ZSBkb2Nib29rLXhzbC1zdHlsZXNoZWV0cy1uYXRpdmUgcHl0aG9uIgogCkBAIC0yMSw2ICsyMSwyOSBAQAogICAgICAgICAgICAgICAgICAgJHtQQUNLQUdFQ09ORklHX0NPTkZBUkdTfSBcCiAgICAgICAgICAgICAgICAgIgogCisjIGF2b2lkcyBidWlsZCBicmVha3Mgd2hlbiB1c2luZyBuby1zdGF0aWMtbGlicy5pbmMKK0RJU0FCTEVfU1RBVElDID0gIiIKKworZGVmIGdldF93YWZfcGFyYWxsZWxfbWFrZShkKToKKyAgICBwbSA9IGQuZ2V0VmFyKCdQQVJBTExFTF9NQUtFJykKKyAgICBpZiBwbToKKyAgICAgICAgIyBsb29rIGZvciAnLWonIGFuZCB0aHJvdyBvdGhlciBvcHRpb25zIChlLmcuICctbCcpIGF3YXkKKyAgICAgICAgIyBiZWNhdXNlIHRoZXkgbWlnaHQgaGF2ZSBkaWZmZXJlbnQgbWVhbmluZyBpbiBiamFtCisgICAgICAgIHBtID0gcG0uc3BsaXQoKQorICAgICAgICB3aGlsZSBwbToKKyAgICAgICAgICAgIG9wdCA9IHBtLnBvcCgwKQorICAgICAgICAgICAgaWYgb3B0ID09ICctaic6CisgICAgICAgICAgICAgICAgdiA9IHBtLnBvcCgwKQorICAgICAgICAgICAgZWxpZiBvcHQuc3RhcnRzd2l0aCgnLWonKToKKyAgICAgICAgICAgICAgICB2ID0gb3B0WzI6XS5zdHJpcCgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIHYgPSBtaW4oNjQsIGludCh2KSkKKyAgICAgICAgICAgIHJldHVybiAnLWonICsgc3RyKHYpCisKKyAgICByZXR1cm4gIiIKKwogIyBUaHJlZSBtZXRob2RzIGZvciB3YWYgY3Jvc3MgY29tcGlsZToKICMgMS4gYW5zd2VyczoKICMgICAgT25seSAtLWNyb3NzLWFuc3dlcnMgLSB0cnkgdGhlIGNyb3NzLWFuc3dlcnMgZmlsZSwgYW5kIGlmCkBAIC04Niw4ICsxMDksOSBAQAogICAgIGZpCiB9CiAKK2RvX2NvbXBpbGVbcHJvZ3Jlc3NdID0gIm91dG9mOl5cW1xzKihcZCspL1xzKihcZCspXF1ccysiCiBkb19jb21waWxlICgpIHsKLSAgICBweXRob24gLi9idWlsZHRvb2xzL2Jpbi93YWYgJHtAZ2V0X3dhZl9wYXJhbGxlbF9tYWtlKGQpfQorICAgIHB5dGhvbiAuL2J1aWxkdG9vbHMvYmluL3dhZiAke0BvZS51dGlscy5wYXJhbGxlbF9tYWtlX2FyZ3VtZW50KGQsICctaiVkJywgbGltaXQ9NjQpfQogfQogCiBkb19pbnN0YWxsKCkgewpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvY29uZi9sYXllci5jb25mIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvY29uZi9sYXllci5jb25mCmluZGV4IDJkZmRlNGIuLmU1OTRiN2IgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL2NvbmYvbGF5ZXIuY29uZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9jb25mL2xheWVyLmNvbmYKQEAgLTE3LDYgKzE3LDggQEAKIExBWUVSREVQRU5EU19uZXR3b3JraW5nLWxheWVyICs9ICJvcGVuZW1iZWRkZWQtbGF5ZXIiCiBMQVlFUkRFUEVORFNfbmV0d29ya2luZy1sYXllciArPSAibWV0YS1weXRob24iCiAKK0xBWUVSU0VSSUVTX0NPTVBBVF9uZXR3b3JraW5nLWxheWVyID0gInN1bW8iCisKIExJQ0VOU0VfUEFUSCArPSAiJHtMQVlFUkRJUn0vbGljZW5zZXMiCiAKIFNJR0dFTl9FWENMVURFX1NBRkVfUkVDSVBFX0RFUFMgKz0gIiBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9maWxlcy93YWYtY3Jvc3MtYW5zd2Vycy9jcm9zcy1hbnN3ZXJzLWFhcmNoNjRfYmUudHh0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvZmlsZXMvd2FmLWNyb3NzLWFuc3dlcnMvY3Jvc3MtYW5zd2Vycy1hYXJjaDY0X2JlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDIzZjZhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvZmlsZXMvd2FmLWNyb3NzLWFuc3dlcnMvY3Jvc3MtYW5zd2Vycy1hYXJjaDY0X2JlLnR4dApAQCAtMCwwICsxLDM5IEBACitDaGVja2luZyB1bmFtZSBzeXNuYW1lIHR5cGU6ICJMaW51eCIKK0NoZWNraW5nIHVuYW1lIHZlcnNpb24gdHlwZTogIiMgV2VkIE1heSAyMCAxMDozNDozOSBVVEMgMjAxNSIKK0NoZWNraW5nIHNpbXBsZSBDIHByb2dyYW06ICJoZWxsbyB3b3JsZCIKK3JwYXRoIGxpYnJhcnkgc3VwcG9ydDogT0sKKy1XbCwtLXZlcnNpb24tc2NyaXB0IHN1cHBvcnQ6IE9LCitDaGVja2luZyBnZXRjb25mIExGU19DRkxBR1M6IE5PCitDaGVja2luZyBjb3JyZWN0IGJlaGF2aW9yIG9mIHN0cnRvbGw6IE5PCitDaGVja2luZyBmb3Igd29ya2luZyBzdHJwdGltZTogT0sKK0NoZWNraW5nIGZvciBDOTkgdnNucHJpbnRmOiAiMSIKK0NoZWNraW5nIGZvciBIQVZFX1NIQVJFRF9NTUFQOiBPSworQ2hlY2tpbmcgZm9yIEhBVkVfTVJFTUFQOiBPSworQ2hlY2tpbmcgZm9yIEhBVkVfU0VDVVJFX01LU1RFTVA6IE9LCitDaGVja2luZyBmb3IgSEFWRV9JRkFDRV9HRVRJRkFERFJTOiBOTworQ2hlY2tpbmcgZm9yIEhBVkVfSUZBQ0VfSUZDT05GOiBOTworQ2hlY2tpbmcgZm9yIEhBVkVfSUZBQ0VfSUZSRVE6IE5PCitDaGVja2luZyBmb3IgbGFyZ2UgZmlsZSBzdXBwb3J0IHdpdGhvdXQgYWRkaXRpb25hbCBmbGFnczogT0sKK0NoZWNraW5nIGZvciBIQVZFX0lOQ09IRVJFTlRfTU1BUDogTk8KK0NoZWNraW5nIHZhbHVlIG9mIE5TSUc6ICI2NSIKK0NoZWNraW5nIHZhbHVlIG9mIF9OU0lHOiAiNjUiCitDaGVja2luZyB2YWx1ZSBvZiBTSUdSVE1BWDogIjY0IgorQ2hlY2tpbmcgdmFsdWUgb2YgU0lHUlRNSU46ICIzNCIKK0NoZWNraW5nIHdoZXRoZXIgdGhlIFdSRklMRSAta2V5dGFiIGlzIHN1cHBvcnRlZDogT0sKK0NoZWNraW5nIGZvciBrZXJuZWwgY2hhbmdlIG5vdGlmeSBzdXBwb3J0OiBPSworQ2hlY2tpbmcgZm9yIExpbnV4IGtlcm5lbCBvcGxvY2tzOiBPSworQ2hlY2tpbmcgZm9yIGtlcm5lbCBzaGFyZSBtb2RlczogT0sKK0NoZWNraW5nIHdoZXRoZXIgUE9TSVggY2FwYWJpbGl0aWVzIGFyZSBhdmFpbGFibGU6IE9LCitDaGVja2luZyBpZiBjYW4gd2UgY29udmVydCBmcm9tIENQODUwIHRvIFVDUy0yTEU6IE9LCitDaGVja2luZyBpZiBjYW4gd2UgY29udmVydCBmcm9tIFVURi04IHRvIFVDUy0yTEU6IE9LCit2ZnNfZmlsZWlkIGNoZWNraW5nIGZvciBzdGF0ZnMoKSBhbmQgc3RydWN0IHN0YXRmcy5mX2ZzaWQ6IE9LCitDaGVja2luZyB3aGV0aGVyIHdlIGNhbiB1c2UgTGludXggdGhyZWFkLXNwZWNpZmljIGNyZWRlbnRpYWxzOiBPSworQ2hlY2tpbmcgd2hldGhlciBmY250bCBsb2NraW5nIGlzIGF2YWlsYWJsZTogT0sKK0NoZWNraW5nIGZvciB0aGUgbWF4aW11bSB2YWx1ZSBvZiB0aGUgJ3RpbWVfdCcgdHlwZTogT0sKK0NoZWNraW5nIHdoZXRoZXIgdGhlIHJlYWxwYXRoIGZ1bmN0aW9uIGFsbG93cyBhIE5VTEwgYXJndW1lbnQ6IE9LCitDaGVja2luZyBmb3IgZnRydW5jYXRlIGV4dGVuZDogT0sKK2dldGN3ZCB0YWtlcyBhIE5VTEwgYXJndW1lbnQ6IE9LCitDaGVja2luZyBmb3Igc21hbGwgb2ZmX3Q6IE5PCitDaGVja2luZyB3aGV0aGVyIGJsa2NudF90IGlzIDMyIGJpdDogTk8KK0NoZWNraW5nIHdoZXRoZXIgYmxrY250X3QgaXMgNjQgYml0OiBPSworQ2hlY2tpbmcgd2hldGhlciBmY250bCBsb2NrIHN1cHBvcnRzIG9wZW4gZmlsZSBkZXNjcmlwdGlvbiBsb2NrczogT0sKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL2ZpbGVzL3dhZi1jcm9zcy1hbnN3ZXJzL2Nyb3NzLWFuc3dlcnMtcmlzY3Y2NC50eHQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9maWxlcy93YWYtY3Jvc3MtYW5zd2Vycy9jcm9zcy1hbnN3ZXJzLXJpc2N2NjQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwMjNmNmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9maWxlcy93YWYtY3Jvc3MtYW5zd2Vycy9jcm9zcy1hbnN3ZXJzLXJpc2N2NjQudHh0CkBAIC0wLDAgKzEsMzkgQEAKK0NoZWNraW5nIHVuYW1lIHN5c25hbWUgdHlwZTogIkxpbnV4IgorQ2hlY2tpbmcgdW5hbWUgdmVyc2lvbiB0eXBlOiAiIyBXZWQgTWF5IDIwIDEwOjM0OjM5IFVUQyAyMDE1IgorQ2hlY2tpbmcgc2ltcGxlIEMgcHJvZ3JhbTogImhlbGxvIHdvcmxkIgorcnBhdGggbGlicmFyeSBzdXBwb3J0OiBPSworLVdsLC0tdmVyc2lvbi1zY3JpcHQgc3VwcG9ydDogT0sKK0NoZWNraW5nIGdldGNvbmYgTEZTX0NGTEFHUzogTk8KK0NoZWNraW5nIGNvcnJlY3QgYmVoYXZpb3Igb2Ygc3RydG9sbDogTk8KK0NoZWNraW5nIGZvciB3b3JraW5nIHN0cnB0aW1lOiBPSworQ2hlY2tpbmcgZm9yIEM5OSB2c25wcmludGY6ICIxIgorQ2hlY2tpbmcgZm9yIEhBVkVfU0hBUkVEX01NQVA6IE9LCitDaGVja2luZyBmb3IgSEFWRV9NUkVNQVA6IE9LCitDaGVja2luZyBmb3IgSEFWRV9TRUNVUkVfTUtTVEVNUDogT0sKK0NoZWNraW5nIGZvciBIQVZFX0lGQUNFX0dFVElGQUREUlM6IE5PCitDaGVja2luZyBmb3IgSEFWRV9JRkFDRV9JRkNPTkY6IE5PCitDaGVja2luZyBmb3IgSEFWRV9JRkFDRV9JRlJFUTogTk8KK0NoZWNraW5nIGZvciBsYXJnZSBmaWxlIHN1cHBvcnQgd2l0aG91dCBhZGRpdGlvbmFsIGZsYWdzOiBPSworQ2hlY2tpbmcgZm9yIEhBVkVfSU5DT0hFUkVOVF9NTUFQOiBOTworQ2hlY2tpbmcgdmFsdWUgb2YgTlNJRzogIjY1IgorQ2hlY2tpbmcgdmFsdWUgb2YgX05TSUc6ICI2NSIKK0NoZWNraW5nIHZhbHVlIG9mIFNJR1JUTUFYOiAiNjQiCitDaGVja2luZyB2YWx1ZSBvZiBTSUdSVE1JTjogIjM0IgorQ2hlY2tpbmcgd2hldGhlciB0aGUgV1JGSUxFIC1rZXl0YWIgaXMgc3VwcG9ydGVkOiBPSworQ2hlY2tpbmcgZm9yIGtlcm5lbCBjaGFuZ2Ugbm90aWZ5IHN1cHBvcnQ6IE9LCitDaGVja2luZyBmb3IgTGludXgga2VybmVsIG9wbG9ja3M6IE9LCitDaGVja2luZyBmb3Iga2VybmVsIHNoYXJlIG1vZGVzOiBPSworQ2hlY2tpbmcgd2hldGhlciBQT1NJWCBjYXBhYmlsaXRpZXMgYXJlIGF2YWlsYWJsZTogT0sKK0NoZWNraW5nIGlmIGNhbiB3ZSBjb252ZXJ0IGZyb20gQ1A4NTAgdG8gVUNTLTJMRTogT0sKK0NoZWNraW5nIGlmIGNhbiB3ZSBjb252ZXJ0IGZyb20gVVRGLTggdG8gVUNTLTJMRTogT0sKK3Zmc19maWxlaWQgY2hlY2tpbmcgZm9yIHN0YXRmcygpIGFuZCBzdHJ1Y3Qgc3RhdGZzLmZfZnNpZDogT0sKK0NoZWNraW5nIHdoZXRoZXIgd2UgY2FuIHVzZSBMaW51eCB0aHJlYWQtc3BlY2lmaWMgY3JlZGVudGlhbHM6IE9LCitDaGVja2luZyB3aGV0aGVyIGZjbnRsIGxvY2tpbmcgaXMgYXZhaWxhYmxlOiBPSworQ2hlY2tpbmcgZm9yIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSAndGltZV90JyB0eXBlOiBPSworQ2hlY2tpbmcgd2hldGhlciB0aGUgcmVhbHBhdGggZnVuY3Rpb24gYWxsb3dzIGEgTlVMTCBhcmd1bWVudDogT0sKK0NoZWNraW5nIGZvciBmdHJ1bmNhdGUgZXh0ZW5kOiBPSworZ2V0Y3dkIHRha2VzIGEgTlVMTCBhcmd1bWVudDogT0sKK0NoZWNraW5nIGZvciBzbWFsbCBvZmZfdDogTk8KK0NoZWNraW5nIHdoZXRoZXIgYmxrY250X3QgaXMgMzIgYml0OiBOTworQ2hlY2tpbmcgd2hldGhlciBibGtjbnRfdCBpcyA2NCBiaXQ6IE9LCitDaGVja2luZyB3aGV0aGVyIGZjbnRsIGxvY2sgc3VwcG9ydHMgb3BlbiBmaWxlIGRlc2NyaXB0aW9uIGxvY2tzOiBPSwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvY3JkYS9jcmRhL2ZpeC1pc3N1ZXMtd2hlbi1VU0VfT1BFTlNTTC0xLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvY3JkYS9jcmRhL2ZpeC1pc3N1ZXMtd2hlbi1VU0VfT1BFTlNTTC0xLnBhdGNoCmluZGV4IDkzYzgzNmMuLjFiYjVjNjMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L2NyZGEvY3JkYS9maXgtaXNzdWVzLXdoZW4tVVNFX09QRU5TU0wtMS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9jcmRhL2NyZGEvZml4LWlzc3Vlcy13aGVuLVVTRV9PUEVOU1NMLTEucGF0Y2gKQEAgLTE3LDcgKzE3LDcgQEAKICAgIHN0YXRpYyBzdHJ1Y3QgcHVia2V5IGtleXNbXSA9IHsKIAogU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgotVXBzdGVhbS1TdGF0dXM6IFBlbmRpbmcKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZwogU2lnbmVkLW9mZi1ieTogSGFpcWluZyBCYWkgPEhhaXFpbmcuQmFpQHdpbmRyaXZlci5jb20+CiAtLS0KICB1dGlscy9rZXkycHViLnB5IHwgNSArKystLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvY3JkYS9jcmRhL2ZpeC1saW5raW5nLW9mLWxpYnJhcmllcy11c2VkLWJ5LXJlZ2xpYi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L2NyZGEvY3JkYS9maXgtbGlua2luZy1vZi1saWJyYXJpZXMtdXNlZC1ieS1yZWdsaWIucGF0Y2gKaW5kZXggYWNlYjU2ZC4uODEyZTk4MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvY3JkYS9jcmRhL2ZpeC1saW5raW5nLW9mLWxpYnJhcmllcy11c2VkLWJ5LXJlZ2xpYi5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9jcmRhL2NyZGEvZml4LWxpbmtpbmctb2YtbGlicmFyaWVzLXVzZWQtYnktcmVnbGliLnBhdGNoCkBAIC0xLDYgKzEsNyBAQAorRnJvbSA4OTBmNWJmMjY1NGI2OTVhODY2MjYyZDcyYmZhOTc1MGFmOTIxYTNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQmVuIEh1dGNoaW5ncyA8YmVuQGRlY2FkZW50Lm9yZy51az4KIERhdGU6IFNhdCwgMjMgQXVnIDIwMTQgMTI6MjY6MzcgLTA3MDAKLVN1YmplY3Q6IEZpeCBsaW5raW5nIG9mIGxpYnJhcmllcyB1c2VkIGJ5IGxpYnJlZworU3ViamVjdDogW1BBVENIXSBGaXggbGlua2luZyBvZiBsaWJyYXJpZXMgdXNlZCBieSBsaWJyZWcKIAogVGhlIG1hdGggYW5kIGNyeXB0byBsaWJyYXJpZXMgYXJlIGNhbGxlZCBieSBhbmQgbmVlZCB0byBiZSBsaW5rZWQgdG8KIGxpYnJlZy5zbywgbm90IHRvIHRoZSBleGVjdXRhYmxlcy4KQEAgLTksMTAgKzEwLDE1IEBACiAKIFNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbkBkZWNhZGVudC5vcmcudWs+CiBTaWduZWQtb2ZmLWJ5OiBKb2UgTWFjRG9uYWxkIDxqb2VfbWFjZG9uYWxkQG1lbnRvci5jb20+CistLS0KKyBNYWtlZmlsZSB8IDggKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQoraW5kZXggYTNlYWQzMC4uZGEyZGNjMyAxMDA2NDQKIC0tLSBhL01ha2VmaWxlCiArKysgYi9NYWtlZmlsZQotQEAgLTMwLDcgKzMwLDcgQEAgQ0ZMQUdTICs9IC1zdGQ9Z251OTkgLVdhbGwgLVdlcnJvciAtcGVkYQorQEAgLTMwLDcgKzMwLDcgQEAgQ0ZMQUdTICs9IC1zdGQ9Z251OTkgLVdhbGwgLVdlcnJvciAtcGVkYW50aWMKICBDRkxBR1MgKz0gLVdhbGwgLWcKICBMRExJQlJFRyArPSAtbHJlZwogIExETElCUyArPSAkKExETElCUkVHKQpAQCAtMjEsMTYgKzI3LDE0IEBACiAgTElCUkVHICs9IGxpYnJlZy5zbwogIExERkxBR1MgKz0gLUwgLi8KICAKLUBAIC00MCw3ICs0MCw3IEBAIGFsbF9ub3ZlcmlmeTogJChMSUJSRUcpIGNyZGEgaW50ZXJzZWN0IHIKK0BAIC00MCwxMyArNDAsMTMgQEAgYWxsX25vdmVyaWZ5OiAkKExJQlJFRykgY3JkYSBpbnRlcnNlY3QgcmVnZGJkdW1wIGRiMnJkIG9wdGltaXplCiAgCiAgaWZlcSAoJChVU0VfT1BFTlNTTCksMSkKICBDRkxBR1MgKz0gLURVU0VfT1BFTlNTTCAtRFBVQktFWV9ESVI9XCIkKFJVTlRJTUVfUFVCS0VZX0RJUilcIiBgcGtnLWNvbmZpZyAtLWNmbGFncyBvcGVuc3NsYAogLUxETElCUyArPSBgcGtnLWNvbmZpZyAtLWxpYnMgb3BlbnNzbGAKICtMSUJSRUdMRExJQlMgKz0gYHBrZy1jb25maWcgLS1saWJzIG9wZW5zc2xgCiAgCi0gaWZlcSAoJChSVU5USU1FX1BVQktFWV9PTkxZKSwxKQotIENGTEFHUyArPSAtRFJVTlRJTUVfUFVCS0VZX09OTFkKLUBAIC01MSw3ICs1MSw3IEBAIGVuZGlmCisgJChMSUJSRUcpOiBrZXlzLXNzbC5jCiAgCiAgZWxzZQogIENGTEFHUyArPSAtRFVTRV9HQ1JZUFQKQEAgLTM5LDcgKzQzLDcgQEAKICAKICAkKExJQlJFRyk6IGtleXMtZ2NyeXB0LmMKICAKLUBAIC0xMjEsNyArMTIxLDcgQEAga2V5cy0lLmM6IHV0aWxzL2tleTJwdWIucHkgJCh3aWxkY2FyZCAkKAorQEAgLTExNiw3ICsxMTYsNyBAQCBrZXlzLSUuYzogdXRpbHMva2V5MnB1Yi5weSAkKHdpbGRjYXJkICQoUFVCS0VZX0RJUikvKi5wZW0pCiAgCiAgJChMSUJSRUcpOiByZWdkYi5oIHJlZ2xpYi5oIHJlZ2xpYi5jCiAgCSQoTlEpICcgIENDICAnICRACkBAIC00OCwzICs1Miw2IEBACiAgCiAgaW5zdGFsbC1saWJyZWctaGVhZGVyczoKICAJJChOUSkgJyAgSU5TVEFMTCAgbGlicmVnLWhlYWRlcnMnCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L2RoY3BjZC9kaGNwY2RfNi4xMS4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvZGhjcGNkL2RoY3BjZF82LjExLjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiM2I1YzIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvZGhjcGNkL2RoY3BjZF82LjExLjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1TRUNUSU9OID0gImNvbnNvbGUvbmV0d29yayIKLVNVTU1BUlkgPSAiZGhjcGNkIC0gYSBESENQIGNsaWVudCIKLURFU0NSSVBUSU9OID0gImRoY3BjZCBydW5zIG9uIHlvdXIgbWFjaGluZSBhbmQgc2lsZW50bHkgY29uZmlndXJlcyB5b3VyIGNvbXB1dGVyIHRvIHdvcmsgb24gdGhlIGF0dGFjaGVkIG5ldHdvcmtzIHdpdGhvdXQgdHJvdWJsZSBhbmQgbW9zdGx5IHdpdGhvdXQgY29uZmlndXJhdGlvbi4iCi0KLUhPTUVQQUdFID0gImh0dHA6Ly9yb3kubWFycGxlcy5uYW1lL3Byb2plY3RzL2RoY3BjZC8iCi0KLUxJQ0VOU0UgPSAiQlNELTItQ2xhdXNlIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vZGhjcGNkLmM7ZW5kbGluZT0yNjttZDU9NzdjNDBkNjcxYWZmODA0Y2E5MWVhOTk1NTZkYThlOWIiCi0KLVNSQ19VUkkgPSAiaHR0cDovL3JveS5tYXJwbGVzLm5hbWUvZG93bmxvYWRzLyR7QlBOfS8ke0JQTn0tJHtQVn0udGFyLnh6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZDRmMmYzZWQ0OTY0MTk3ZGVlNzc2NzIxOWMzM2E5ZGYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWFiZDEyYzRkZjI5NDdkNjA4ZjYwYTM1MjI3ZjliZjhhZThhYjlkZTA2Y2U5NzVjZGFiMTE0NGQ4ZjIyOWIwNiIKLQotaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwCi0KLVBBQ0tBR0VDT05GSUcgPz0gInVkZXYgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnaXB2NicsIGQpfSIKLQotUEFDS0FHRUNPTkZJR1t1ZGV2XSA9ICItLXdpdGgtdWRldiwtLXdpdGhvdXQtdWRldix1ZGV2LHVkZXYiCi1QQUNLQUdFQ09ORklHW2lwdjZdID0gIi0tZW5hYmxlLWlwdjYsLS1kaXNhYmxlLWlwdjYiCi0KLUVYVFJBX09FQ09ORiA9ICItLWVuYWJsZS1pcHY0IgotCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9kaGNwY2QvZGV2Ly5kZWJ1ZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L2RoY3BjZC9kaGNwY2RfNi4xMS41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvZGhjcGNkL2RoY3BjZF82LjExLjUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODg1YzZjMAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L2RoY3BjZC9kaGNwY2RfNi4xMS41LmJiCkBAIC0wLDAgKzEsMjQgQEAKK1NFQ1RJT04gPSAiY29uc29sZS9uZXR3b3JrIgorU1VNTUFSWSA9ICJkaGNwY2QgLSBhIERIQ1AgY2xpZW50IgorREVTQ1JJUFRJT04gPSAiZGhjcGNkIHJ1bnMgb24geW91ciBtYWNoaW5lIGFuZCBzaWxlbnRseSBjb25maWd1cmVzIHlvdXIgY29tcHV0ZXIgdG8gd29yayBvbiB0aGUgYXR0YWNoZWQgbmV0d29ya3Mgd2l0aG91dCB0cm91YmxlIGFuZCBtb3N0bHkgd2l0aG91dCBjb25maWd1cmF0aW9uLiIKKworSE9NRVBBR0UgPSAiaHR0cDovL3JveS5tYXJwbGVzLm5hbWUvcHJvamVjdHMvZGhjcGNkLyIKKworTElDRU5TRSA9ICJCU0QtMi1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9kaGNwY2QuYztlbmRsaW5lPTI2O21kNT03N2M0MGQ2NzFhZmY4MDRjYTkxZWE5OTU1NmRhOGU5YiIKKworU1JDX1VSSSA9ICJodHRwOi8vcm95Lm1hcnBsZXMubmFtZS9kb3dubG9hZHMvJHtCUE59LyR7QlBOfS0ke1BWfS50YXIueHoiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIyNDY1NjI0YjYyYzExNTRmMGU4OWRjNjljNDJjODQ5YiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2Zjk2NzRkYzdlMjdlOTM2Y2M3ODcxNzU0MDRhNjE3MTYxODY3NWVjZmI2OTAzYWI5ODg3YjFiNjZhODdkNjllIgorCitpbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAKKworUEFDS0FHRUNPTkZJRyA/PSAidWRldiAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdpcHY2JywgZCl9IgorCitQQUNLQUdFQ09ORklHW3VkZXZdID0gIi0td2l0aC11ZGV2LC0td2l0aG91dC11ZGV2LHVkZXYsdWRldiIKK1BBQ0tBR0VDT05GSUdbaXB2Nl0gPSAiLS1lbmFibGUtaXB2NiwtLWRpc2FibGUtaXB2NiIKKworRVhUUkFfT0VDT05GID0gIi0tZW5hYmxlLWlwdjQiCisKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2RoY3BjZC9kZXYvLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvaW5ldHV0aWxzL2luZXR1dGlsc18xLjkuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L2luZXR1dGlscy9pbmV0dXRpbHNfMS45LjQuYmIKaW5kZXggNDY1NWJjNS4uMTkwY2Q1ZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvaW5ldHV0aWxzL2luZXR1dGlsc18xLjkuNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9pbmV0dXRpbHMvaW5ldHV0aWxzXzEuOS40LmJiCkBAIC0xNjksNyArMTY5LDEwIEBACiBGSUxFU18ke1BOfS1pZmNvbmZpZyA9ICIke2Jhc2Vfc2JpbmRpcn0vaWZjb25maWcuJHtCUE59IgogRklMRVNfJHtQTn0tdHJhY2Vyb3V0ZSA9ICIke2JpbmRpcn0vdHJhY2Vyb3V0ZS4ke0JQTn0iCiBGSUxFU18ke1BOfS1sb2dnZXIgPSAiJHtiaW5kaXJ9L2xvZ2dlci4ke0JQTn0iCisKIEZJTEVTXyR7UE59LXN5c2xvZ2QgPSAiJHtiYXNlX3NiaW5kaXJ9L3N5c2xvZ2QuJHtCUE59IgorUkNPTkZMSUNUU18ke1BOfS1zeXNsb2dkID0gInJzeXNsb2cgYnVzeWJveC1zeXNsb2cgc3lza2xvZ2Qgc3lzbG9nLW5nIgorCiBGSUxFU18ke1BOfS1mdHAgPSAiJHtiaW5kaXJ9L2Z0cC4ke0JQTn0iCiAKIEZJTEVTXyR7UE59LXRmdHAgPSAiJHtiaW5kaXJ9L3RmdHAuJHtCUE59IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbWJlZHRscy9tYmVkdGxzXzEuMy4xNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L21iZWR0bHMvbWJlZHRsc18xLjMuMTcuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjZmVjNjkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbWJlZHRscy9tYmVkdGxzXzEuMy4xNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLVNVTU1BUlkgPSAiTGlnaHR3ZWlnaHQgY3J5cHRvIGFuZCBTU0wvVExTIGxpYnJhcnkiCi1ERVNDUklQVElPTiA9ICJtYmVkdGxzIGlzIGEgbGVhbiBvcGVuIHNvdXJjZSBjcnlwdG8gbGlicmFyeSAgICAgICAgICBcCi1mb3IgcHJvdmlkaW5nIFNTTCBhbmQgVExTIHN1cHBvcnQgaW4geW91ciBwcm9ncmFtcy4gSXQgb2ZmZXJzICAgICAgICBcCi1hbiBpbnR1aXRpdmUgQVBJIGFuZCBkb2N1bWVudGVkIGhlYWRlciBmaWxlcywgc28geW91IGNhbiBhY3R1YWxseSAgICBcCi11bmRlcnN0YW5kIHdoYXQgdGhlIGNvZGUgZG9lcy4gSXQgZmVhdHVyZXM6ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gLSBTeW1tZXRyaWMgYWxnb3JpdGhtcywgbGlrZSBBRVMsIEJsb3dmaXNoLCBUcmlwbGUtREVTLCBERVMsIEFSQzQsICBcCi0gICBDYW1lbGxpYSBhbmQgWFRFQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gLSBIYXNoIGFsZ29yaXRobXMsIGxpa2UgU0hBLTEsIFNIQS0yLCBSSVBFTUQtMTYwIGFuZCBNRDUgICAgICAgICAgICBcCi0gLSBFbnRyb3B5IHBvb2wgYW5kIHJhbmRvbSBnZW5lcmF0b3JzLCBsaWtlIENUUi1EUkJHIGFuZCBITUFDLURSQkcgICBcCi0gLSBQdWJsaWMga2V5IGFsZ29yaXRobXMsIGxpa2UgUlNBLCBFbGxpcHRpYyBDdXJ2ZXMsIERpZmZpZS1IZWxsbWFuLCBcCi0gICBFQ0RTQSBhbmQgRUNESCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gLSBTU0wgdjMgYW5kIFRMUyAxLjAsIDEuMSBhbmQgMS4yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gLSBBYnN0cmFjdGlvbiBsYXllcnMgZm9yIGNpcGhlcnMsIGhhc2hlcywgcHVibGljIGtleSBvcGVyYXRpb25zLCAgICBcCi0gICBwbGF0Zm9ybSBhYnN0cmFjdGlvbiBhbmQgdGhyZWFkaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0iCi0KLUhPTUVQQUdFID0gImh0dHBzOi8vcG9sYXJzc2wub3JnIgotQlVHVFJBQ0tFUiA9ICJodHRwczovL2dpdGh1Yi5jb20vcG9sYXJzc2wvcG9sYXJzc2wvaXNzdWVzIgotCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCi0KLVNFQ1RJT04gPSAibGliZGV2ZWwiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly90bHMubWJlZC5vcmcvZG93bmxvYWQvbWJlZHRscy0ke1BWfS1ncGwudGd6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiYTZlZDkyZmMzNzdlZjYwZjdjMjRkNDJiOTAwZTBkYWQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjViZWI0M2U4NTAyODM5MTVlM2UwZjhkMzc0OTVlYWRlM2JmYjViZWVkZmI2MWU3YjhkYTcwZDRjNjhlZGI4MiIKLQotREVQRU5EUyA9ICJvcGVuc3NsIgotUkRFUEVORFNfJHtQTn0gKz0gImxpYmNyeXB0byIKLVBST1ZJREVTICs9ICJwb2xhcnNzbCIKLVJQUk9WSURFU18ke1BOfSA9ICJwb2xhcnNzbCIKLUVYVFJBX09FQ01BS0UgPSAiLURVU0VfU0hBUkVEX1BPTEFSU1NMX0xJQlJBUlk9b24gLURMSUJfSU5TVEFMTF9ESVI9JHtiYXNlbGlifSIKLQotaW5oZXJpdCBjbWFrZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbWJlZHRscy9tYmVkdGxzXzIuOC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbWJlZHRscy9tYmVkdGxzXzIuOC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczNmNjZTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9tYmVkdGxzL21iZWR0bHNfMi44LjAuYmIKQEAgLTAsMCArMSw0MiBAQAorU1VNTUFSWSA9ICJMaWdodHdlaWdodCBjcnlwdG8gYW5kIFNTTC9UTFMgbGlicmFyeSIKK0RFU0NSSVBUSU9OID0gIm1iZWR0bHMgaXMgYSBsZWFuIG9wZW4gc291cmNlIGNyeXB0byBsaWJyYXJ5ICAgICAgICAgIFwKK2ZvciBwcm92aWRpbmcgU1NMIGFuZCBUTFMgc3VwcG9ydCBpbiB5b3VyIHByb2dyYW1zLiBJdCBvZmZlcnMgICAgICAgIFwKK2FuIGludHVpdGl2ZSBBUEkgYW5kIGRvY3VtZW50ZWQgaGVhZGVyIGZpbGVzLCBzbyB5b3UgY2FuIGFjdHVhbGx5ICAgIFwKK3VuZGVyc3RhbmQgd2hhdCB0aGUgY29kZSBkb2VzLiBJdCBmZWF0dXJlczogICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAtIFN5bW1ldHJpYyBhbGdvcml0aG1zLCBsaWtlIEFFUywgQmxvd2Zpc2gsIFRyaXBsZS1ERVMsIERFUywgQVJDNCwgIFwKKyAgIENhbWVsbGlhIGFuZCBYVEVBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAtIEhhc2ggYWxnb3JpdGhtcywgbGlrZSBTSEEtMSwgU0hBLTIsIFJJUEVNRC0xNjAgYW5kIE1ENSAgICAgICAgICAgIFwKKyAtIEVudHJvcHkgcG9vbCBhbmQgcmFuZG9tIGdlbmVyYXRvcnMsIGxpa2UgQ1RSLURSQkcgYW5kIEhNQUMtRFJCRyAgIFwKKyAtIFB1YmxpYyBrZXkgYWxnb3JpdGhtcywgbGlrZSBSU0EsIEVsbGlwdGljIEN1cnZlcywgRGlmZmllLUhlbGxtYW4sIFwKKyAgIEVDRFNBIGFuZCBFQ0RIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAtIFNTTCB2MyBhbmQgVExTIDEuMCwgMS4xIGFuZCAxLjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAtIEFic3RyYWN0aW9uIGxheWVycyBmb3IgY2lwaGVycywgaGFzaGVzLCBwdWJsaWMga2V5IG9wZXJhdGlvbnMsICAgIFwKKyAgIHBsYXRmb3JtIGFic3RyYWN0aW9uIGFuZCB0aHJlYWRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyIKKworSE9NRVBBR0UgPSAiaHR0cHM6Ly90bHMubWJlZC5vcmcvIgorCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zMDJkNTBhNjM2OWY1ZjIyZWZkYjY3NGRiOTA4MTY3YSIKKworU0VDVElPTiA9ICJsaWJkZXZlbCIKKworU1JDX1VSSSA9ICJodHRwczovL3Rscy5tYmVkLm9yZy9kb3dubG9hZC9tYmVkdGxzLSR7UFZ9LWFwYWNoZS50Z3oiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIyZDRiMGUyY2I4NDRlZmRlMWU3M2QzYmNkOTczMWZlZiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJhYjhiNjJiOTk1NzgxYmNmMjJlODdhMjY1ZWQwNjI2N2Y4N2MzMDQxMTk4ZTk5NmI0NDQ0MTIyM2QxOWZhOWMzIgorCitpbmhlcml0IGNtYWtlCisKK1BBQ0tBR0VDT05GSUcgPz89ICJzaGFyZWQtbGlicyBwcm9ncmFtcyIKK1BBQ0tBR0VDT05GSUdbc2hhcmVkLWxpYnNdID0gIi1EVVNFX1NIQVJFRF9NQkVEVExTX0xJQlJBUlk9T04sLVVTRV9TSEFSRURfTUJFRFRMU19MSUJSQVJZPU9GRiIKK1BBQ0tBR0VDT05GSUdbcHJvZ3JhbXNdID0gIi1ERU5BQkxFX1BST0dSQU1TPU9OLC1ERU5BQkxFX1BST0dSQU1TPU9GRiIKKworRVhUUkFfT0VDTUFLRSA9ICItREVOQUJMRV9URVNUSU5HPU9GRiAtRExJQl9JTlNUQUxMX0RJUjpTVFJJTkc9JHtsaWJkaXJ9IgorCitQUk9WSURFUyArPSAicG9sYXJzc2wiCitSUFJPVklERVNfJHtQTn0gPSAicG9sYXJzc2wiCisKK1BBQ0tBR0VTID0rICIke1BOfS1wcm9ncmFtcyIKK0ZJTEVTXyR7UE59LXByb2dyYW1zID0gIiR7YmluZGlyfS8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci1vcGVudnBuXzEuMi44LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXItb3BlbnZwbl8xLjIuOC5iYgppbmRleCBjY2UzZjkxLi4xYjYwNGFkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci1vcGVudnBuXzEuMi44LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLW9wZW52cG5fMS4yLjguYmIKQEAgLTI2LDcgKzI2LDcgQEAKIAogRklMRVNfJHtQTn0gKz0gIiBcCiAgICAgJHtsaWJkaXJ9L05ldHdvcmtNYW5hZ2VyLyouc28gXAotICAgICR7bGliZGlyfS9OZXR3b3JrTWFuYWdlci9WUE4vbm0tb3BlbnZwbi1zZXJ2aWNlLm5hbWUgXAorICAgICR7bm9uYXJjaF9saWJkaXJ9L05ldHdvcmtNYW5hZ2VyL1ZQTi9ubS1vcGVudnBuLXNlcnZpY2UubmFtZSBcCiAiCiAKIEZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtYWRqdXN0LW5ldC1oZWFkZXJzLWZvci1tdXNsLWNvbXBhdGliaWxpdHkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLWFkanVzdC1uZXQtaGVhZGVycy1mb3ItbXVzbC1jb21wYXRpYmlsaXR5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZWQwYzdjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtYWRqdXN0LW5ldC1oZWFkZXJzLWZvci1tdXNsLWNvbXBhdGliaWxpdHkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi1Gcm9tIDA0N2QzYmY5NmI1MTA3NDBmNjQ2ODc0ODAzMzNjMzc4ZTQxNDk5NWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAzMSBNYXIgMjAxNyAxNTo1NzowNSAtMDcwMAotU3ViamVjdDogW1BBVENIIDEvNV0gYWRqdXN0IG5ldC8gaGVhZGVycyBmb3IgbXVzbCBjb21wYXRpYmlsaXR5Ci0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBsaWJubS1jb3JlL25tLXV0aWxzLmMgICAgICAgICAgfCAxMiArKysrKysrLS0tLS0KLSBsaWJubS1jb3JlL25tLXV0aWxzLmggICAgICAgICAgfCAgNSArKy0tLQotIHNyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaCB8ICAyICstCi0gMyBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGlibm0tY29yZS9ubS11dGlscy5jIGIvbGlibm0tY29yZS9ubS11dGlscy5jCi1pbmRleCBkZjc1ZDU2Li44NjgyMjRlIDEwMDY0NAotLS0tIGEvbGlibm0tY29yZS9ubS11dGlscy5jCi0rKysgYi9saWJubS1jb3JlL25tLXV0aWxzLmMKLUBAIC0xOSwyNCArMTksMjYgQEAKLSAgKiBDb3B5cmlnaHQgMjAwNSAtIDIwMTQgUmVkIEhhdCwgSW5jLgotICAqLwotIAotLSNpbmNsdWRlICJubS1kZWZhdWx0LmgiCi0tCi0tI2luY2x1ZGUgIm5tLXV0aWxzLmgiCi0tCi0gI2luY2x1ZGUgPHN0cmluZy5oPgotICNpbmNsdWRlIDxlcnJuby5oPgotICNpbmNsdWRlIDxzdGRsaWIuaD4KLS0jaW5jbHVkZSA8bmV0aW5ldC9ldGhlci5oPgotICNpbmNsdWRlIDxhcnBhL2luZXQuaD4KLSAjaW5jbHVkZSA8dXVpZC91dWlkLmg+Ci0gI2luY2x1ZGUgPGxpYmludGwuaD4KLSAjaW5jbHVkZSA8Z21vZHVsZS5oPgotICNpbmNsdWRlIDxzeXMvc3RhdC5oPgotKy8vI2luY2x1ZGUgPG5ldC9pZl9hcnAuaD4KLSsvLyNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KLSsjaW5jbHVkZSA8bmV0aW5ldC9ldGhlci5oPgotKwotKyNpbmNsdWRlICJubS1kZWZhdWx0LmgiCi0gCi0rI2luY2x1ZGUgIm5tLXV0aWxzLmgiCi0gI2lmIFdJVEhfSkFOU1NPTgotICNpbmNsdWRlIDxqYW5zc29uLmg+Ci0gI2VuZGlmCi0gCi0rCi0gI2luY2x1ZGUgIm5tLWNvbW1vbi1tYWNyb3MuaCIKLSAjaW5jbHVkZSAibm0tdXRpbHMtcHJpdmF0ZS5oIgotICNpbmNsdWRlICJubS1zZXR0aW5nLXByaXZhdGUuaCIKLWRpZmYgLS1naXQgYS9saWJubS1jb3JlL25tLXV0aWxzLmggYi9saWJubS1jb3JlL25tLXV0aWxzLmgKLWluZGV4IDQwN2MxNGUuLjE1NmNjYWUgMTAwNjQ0Ci0tLS0gYS9saWJubS1jb3JlL25tLXV0aWxzLmgKLSsrKyBiL2xpYm5tLWNvcmUvbm0tdXRpbHMuaAotQEAgLTI3LDExICsyNywxMCBAQAotIAotICNpbmNsdWRlIDxnbGliLmg+Ci0gCi0tI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KLS0KLSAvKiBGb3IgRVRIX0FMRU4gYW5kIElORklOSUJBTkRfQUxFTiAqLwotLSNpbmNsdWRlIDxsaW51eC9pZl9ldGhlci5oPgotKy8vI2luY2x1ZGUgPGxpbnV4L2lmX2V0aGVyLmg+Ci0gI2luY2x1ZGUgPGxpbnV4L2lmX2luZmluaWJhbmQuaD4KLSsjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotIAotICNpbmNsdWRlICJubS1jb3JlLWVudW0tdHlwZXMuaCIKLSAjaW5jbHVkZSAibm0tc2V0dGluZy13aXJlbGVzcy1zZWN1cml0eS5oIgotZGlmZiAtLWdpdCBhL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaCBiL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaAotaW5kZXggOGUyYjkzZi4uODRmNWNlOSAxMDA2NDQKLS0tLSBhL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaAotKysrIGIvc3JjL3BsYXRmb3JtL3dpZmkvd2lmaS11dGlscy5oCi1AQCAtMjIsNyArMjIsNyBAQAotICNpZm5kZWYgX19XSUZJX1VUSUxTX0hfXwotICNkZWZpbmUgX19XSUZJX1VUSUxTX0hfXwotIAotLSNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KLSsvLyNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KLSAKLSAjaW5jbHVkZSAibm0tZGJ1cy1pbnRlcmZhY2UuaCIKLSAKLS0tIAotMi4xMi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtY2hlY2stZm9yLXN0cm5kdXBhLWJlZm9yZS11c2luZy1pdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtY2hlY2stZm9yLXN0cm5kdXBhLWJlZm9yZS11c2luZy1pdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjZmMzgwYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLWNoZWNrLWZvci1zdHJuZHVwYS1iZWZvcmUtdXNpbmctaXQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi1Gcm9tIDA1ZThiZDY2NGQwMjQ0Y2I4YWI0Mzc2Yjk2MjgzMGI5Nzg2MGY2YmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAzMSBNYXIgMjAxNyAxODozNzoxOSAtMDcwMAotU3ViamVjdDogW1BBVENIXSBjaGVjayBmb3Igc3RybmR1cGEgYmVmb3JlIHVzaW5nIGl0Ci0KLW11c2wgZG9lcyBub3QgaGF2ZSBzdHJuZHVwYQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gY29uZmlnLmguaW4gICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrKysKLSBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwotIHNyYy9zeXN0ZW1kL3NyYy9iYXNpYy9hbGxvYy11dGlsLmggfCAxMiArKysrKysrKysrKysKLSAzIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2NvbmZpZy5oLmluIGIvY29uZmlnLmguaW4KLWluZGV4IGRiOGMxMzUuLmM0MjI5ZWQgMTAwNjQ0Ci0tLS0gYS9jb25maWcuaC5pbgotKysrIGIvY29uZmlnLmguaW4KLUBAIC00MSw2ICs0MSwxMCBAQAotICAgICovCi0gI3VuZGVmIEhBVkVfRENHRVRURVhUCi0gCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBzdHJuZHVwYScsIGFuZCB0byAwIGlmIHlvdQotKyAgIGRvbid0LiAqLwotKyN1bmRlZiBIQVZFX0RFQ0xfU1RSTkRVUEEKLSsKLSAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRsZmNuLmg+IGhlYWRlciBmaWxlLiAqLwotICN1bmRlZiBIQVZFX0RMRkNOX0gKLSAKLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDI2MzBmOGQuLmQwYTU3ZmQgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTU0LDYgKzU0LDcgQEAgQUNfU1VCU1QoTk1fVkVSU0lPTikKLSAKLSBHSVRfU0hBX1JFQ09SRChOTV9HSVRfU0hBKQotIAotK0FDX0NIRUNLX0RFQ0xTKFtzdHJuZHVwYV0sIFtdLCBbXSwgW1sjaW5jbHVkZSA8c3RyaW5nLmg+XV0pCi0gZG5sCi0gZG5sIENoZWNrcyBmb3IgdHlwZWRlZnMsIHN0cnVjdHVyZXMsIGFuZCBjb21waWxlciBjaGFyYWN0ZXJpc3RpY3MuCi0gZG5sCi1kaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL2FsbG9jLXV0aWwuaCBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9hbGxvYy11dGlsLmgKLWluZGV4IGNlZWVlNTEuLjkyNGI1OWMgMTAwNjQ0Ci0tLS0gYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvYWxsb2MtdXRpbC5oCi0rKysgYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvYWxsb2MtdXRpbC5oCi1AQCAtMjUsNiArMjUsMTggQEAKLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0gCi0gI2luY2x1ZGUgIm1hY3JvLmgiCi0rI2luY2x1ZGUgImNvbmZpZy5oIgotKwotKyNpZiAhSEFWRV9ERUNMX1NUUk5EVVBBCi0rI2RlZmluZSBzdHJuZHVwYShzLCBuKSBcCi0rICAoeyBcCi0rICAgIGNvbnN0IGNoYXIgKl9fb2xkID0gKHMpOyBcCi0rICAgIHNpemVfdCBfX2xlbiA9IHN0cm5sZW4oX19vbGQsIChuKSk7IFwKLSsgICAgY2hhciAqX19uZXcgPSAoY2hhciAqKWFsbG9jYShfX2xlbiArIDEpOyBcCi0rICAgIF9fbmV3W19fbGVuXSA9ICdcMCc7IFwKLSsgICAgKGNoYXIgKiltZW1jcHkoX19uZXcsIF9fb2xkLCBfX2xlbik7IFwKLSsgIH0pCi0rI2VuZGlmCi0gCi0gI2RlZmluZSBuZXcodCwgbikgKCh0KikgbWFsbG9jX211bHRpcGx5KHNpemVvZih0KSwgKG4pKSkKLSAKLS0tIAotMi4xMi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtZG5zLXJlc29sdmVkLWFkZC1zeXN0ZW1kLXJlc29sdmVkLWJhY2tlbmQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLWRucy1yZXNvbHZlZC1hZGQtc3lzdGVtZC1yZXNvbHZlZC1iYWNrZW5kLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDE5NGE2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtZG5zLXJlc29sdmVkLWFkZC1zeXN0ZW1kLXJlc29sdmVkLWJhY2tlbmQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MjEgKzAsMCBAQAotRnJvbTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgotRGF0ZTogU3VuLCAyMSBBdWcgMjAxNiAyMTo0NjowMiArMDIwMAotU3ViamVjdDogW1BBVENIXSBkbnMvcmVzb2x2ZWQ6IGFkZCBzeXN0ZW1kLXJlc29sdmVkIGJhY2tlbmQKLQotQWRkIGluaXRpYWwgRE5TIGJhY2tlbmQgdGhhdCBwdXNoZXMgRE5TIGluZm9ybWF0aW9uIGludG8KLXN5c3RlbWQtcmVzb2x2ZWQuIEJhY2tlbmQgaXMgY2hvb3NlbiBieSBkZWZhdWx0IGlmIHRoZSBzeXN0ZW1zCi1yZXNvbHYuY29udiBpcyBzZXR1cCB0byBwb2ludGluZyB0byBvbmUgb2YgdGhlIHN0YW5kYXJkIHJlc29sdmVkCi1sb2NhdGlvbnMuCi0KLVRoaXMgZG9lc24ndCBoYW5kbGUgZ2xvYmFsIGRucyBjb25maWd1cmF0aW9uLgotCi1TaWduZWQtb2ZmLWJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+Ci0KLWh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI1NDAKLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAotCi0tLS0KLSBtYW4vTmV0d29ya01hbmFnZXIuY29uZi54bWwgICAgICAgICAgICAgICB8ICAxMCArLQotIHNyYy9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKLSBzcmMvZG5zLW1hbmFnZXIvbm0tZG5zLW1hbmFnZXIuYyAgICAgICAgICB8ICA0MyArKy0KLSBzcmMvZG5zLW1hbmFnZXIvbm0tZG5zLXN5c3RlbWQtcmVzb2x2ZWQuYyB8IDQyNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSBzcmMvZG5zLW1hbmFnZXIvbm0tZG5zLXN5c3RlbWQtcmVzb2x2ZWQuaCB8ICA0NSArKysrCi0gNSBmaWxlcyBjaGFuZ2VkLCA1MjMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1zeXN0ZW1kLXJlc29sdmVkLmMKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1zeXN0ZW1kLXJlc29sdmVkLmgKLQotZGlmZiAtLWdpdCBhL21hbi9OZXR3b3JrTWFuYWdlci5jb25mLnhtbCBiL21hbi9OZXR3b3JrTWFuYWdlci5jb25mLnhtbAotaW5kZXggNjI5NWI4Mi4uMGE2N2FlNSAxMDA2NDQKLS0tLSBhL21hbi9OZXR3b3JrTWFuYWdlci5jb25mLnhtbAotKysrIGIvbWFuL05ldHdvcmtNYW5hZ2VyLmNvbmYueG1sCi1AQCAtMjc1LDEwICsyNzUsMTIgQEAgbm8tYXV0by1kZWZhdWx0PSoKLSAgICAgICA8dmFybGlzdGVudHJ5PgotICAgICAgICAgPHRlcm0+PHZhcm5hbWU+ZG5zPC92YXJuYW1lPjwvdGVybT4KLSAgICAgICAgIDxsaXN0aXRlbT48cGFyYT5TZXQgdGhlIEROUyAoPGZpbGVuYW1lPnJlc29sdi5jb25mPC9maWxlbmFtZT4pIHByb2Nlc3NpbmcgbW9kZS48L3BhcmE+Ci0tICAgICAgICA8cGFyYT48bGl0ZXJhbD5kZWZhdWx0PC9saXRlcmFsPjogVGhlIGRlZmF1bHQgaWYgdGhlIGtleSBpcwotLSAgICAgICAgbm90IHNwZWNpZmllZC4gTmV0d29ya01hbmFnZXIgd2lsbCB1cGRhdGUKLSsgICAgICAgIDxwYXJhPjxsaXRlcmFsPmRlZmF1bHQ8L2xpdGVyYWw+OiBOZXR3b3JrTWFuYWdlciB3aWxsIHVwZGF0ZQotICAgICAgICAgPGZpbGVuYW1lPnJlc29sdi5jb25mPC9maWxlbmFtZT4gdG8gcmVmbGVjdCB0aGUgbmFtZXNlcnZlcnMKLS0gICAgICAgIHByb3ZpZGVkIGJ5IGN1cnJlbnRseSBhY3RpdmUgY29ubmVjdGlvbnMuPC9wYXJhPgotKyAgICAgICAgcHJvdmlkZWQgYnkgY3VycmVudGx5IGFjdGl2ZSBjb25uZWN0aW9ucy4gIFRoaXMgaXMgdGhlIGRlZmF1bHQKLSsgICAgICAgIGlmIHRoZSBrZXkgaXMgbm90IHNwZWNpZmllZCwgdW5sZXNzIHRoZSBzeXN0ZW0gaXMgY29uZmlndXJlZAotKyAgICAgICAgdG8gdXNlIHN5c3RlbWQtcmVzb2x2ZWQ7IGluIHRoaXMgY2FzZSB0aGUgZGVmYXVsdCBpcwotKyAgICAgICAgPGxpdGVyYWw+c3lzdGVtZC1yZXNvbHZlZDwvbGl0ZXJhbD48L3BhcmE+Ci0gICAgICAgICA8cGFyYT48bGl0ZXJhbD5kbnNtYXNxPC9saXRlcmFsPjogTmV0d29ya01hbmFnZXIgd2lsbCBydW4KLSAgICAgICAgIGRuc21hc3EgYXMgYSBsb2NhbCBjYWNoaW5nIG5hbWVzZXJ2ZXIsIHVzaW5nIGEgInNwbGl0IEROUyIKLSAgICAgICAgIGNvbmZpZ3VyYXRpb24gaWYgeW91IGFyZSBjb25uZWN0ZWQgdG8gYSBWUE4sIGFuZCB0aGVuIHVwZGF0ZQotQEAgLTI4OCw2ICsyOTAsOCBAQCBuby1hdXRvLWRlZmF1bHQ9KgotICAgICAgICAgdG8gdW5ib3VuZCBhbmQgZG5zc2VjLXRyaWdnZXJkLCBwcm92aWRpbmcgYSAic3BsaXQgRE5TIgotICAgICAgICAgY29uZmlndXJhdGlvbiB3aXRoIEROU1NFQyBzdXBwb3J0LiBUaGUgPGZpbGVuYW1lPi9ldGMvcmVzb2x2LmNvbmY8L2ZpbGVuYW1lPgotICAgICAgICAgd2lsbCBiZSBtYW5hZ2VkIGJ5IGRuc3NlYy10cmlnZ2VyIGRhZW1vbi48L3BhcmE+Ci0rICAgICAgICA8cGFyYT48bGl0ZXJhbD5zeXN0ZW1kLXJlc29sdmVkPC9saXRlcmFsPjogTmV0d29ya01hbmFnZXIgd2lsbAotKyAgICAgICAgcHVzaCB0aGUgRE5TIGNvbmZpZ3VyYXRpb24gdG8gc3lzdGVtZC1yZXNvbHZlZDwvcGFyYT4KLSAgICAgICAgIDxwYXJhPjxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+OiBOZXR3b3JrTWFuYWdlciB3aWxsIG5vdAotICAgICAgICAgbW9kaWZ5IHJlc29sdi5jb25mLiBUaGlzIGltcGxpZXMKLSAgICAgICAgIDxsaXRlcmFsPnJjLW1hbmFnZXI8L2xpdGVyYWw+Jm5ic3A7PGxpdGVyYWw+dW5tYW5hZ2VkPC9saXRlcmFsPjwvcGFyYT4KLWRpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUuYW0gYi9zcmMvTWFrZWZpbGUuYW0KLWluZGV4IDhkMjliMTkuLjEwZjYzZGUgMTAwNjQ0Ci0tLS0gYS9zcmMvTWFrZWZpbGUuYW0KLSsrKyBiL3NyYy9NYWtlZmlsZS5hbQotQEAgLTM0NSw2ICszNDUsOCBAQCBsaWJOZXR3b3JrTWFuYWdlcl9sYV9TT1VSQ0VTID0gXAotIAlcCi0gCWRucy1tYW5hZ2VyL25tLWRucy1kbnNtYXNxLmMgXAotIAlkbnMtbWFuYWdlci9ubS1kbnMtZG5zbWFzcS5oIFwKLSsJZG5zLW1hbmFnZXIvbm0tZG5zLXN5c3RlbWQtcmVzb2x2ZWQuYyBcCi0rCWRucy1tYW5hZ2VyL25tLWRucy1zeXN0ZW1kLXJlc29sdmVkLmggXAotIAlkbnMtbWFuYWdlci9ubS1kbnMtdW5ib3VuZC5jIFwKLSAJZG5zLW1hbmFnZXIvbm0tZG5zLXVuYm91bmQuaCBcCi0gCWRucy1tYW5hZ2VyL25tLWRucy1tYW5hZ2VyLmMgXAotZGlmZiAtLWdpdCBhL3NyYy9kbnMtbWFuYWdlci9ubS1kbnMtbWFuYWdlci5jIGIvc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1tYW5hZ2VyLmMKLWluZGV4IDVhNzU4YTkuLjM4YmM3ODYgMTAwNjQ0Ci0tLS0gYS9zcmMvZG5zLW1hbmFnZXIvbm0tZG5zLW1hbmFnZXIuYwotKysrIGIvc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1tYW5hZ2VyLmMKLUBAIC00NSw2ICs0NSw3IEBACi0gCi0gI2luY2x1ZGUgIm5tLWRucy1wbHVnaW4uaCIKLSAjaW5jbHVkZSAibm0tZG5zLWRuc21hc3EuaCIKLSsjaW5jbHVkZSAibm0tZG5zLXN5c3RlbWQtcmVzb2x2ZWQuaCIKLSAjaW5jbHVkZSAibm0tZG5zLXVuYm91bmQuaCIKLSAKLSAjaWYgV0lUSF9MSUJTT1VQCi1AQCAtMTU4OCw2ICsxNTg5LDM3IEBAIF9jaGVja19yZXNjb25mX2ltbXV0YWJsZSAoTk1EbnNNYW5hZ2VyUmVzb2x2Q29uZk1hbmFnZXIgcmNfbWFuYWdlcikKLSAKLSBOTV9ERUZJTkVfU0lOR0xFVE9OX0dFVFRFUiAoTk1EbnNNYW5hZ2VyLCBubV9kbnNfbWFuYWdlcl9nZXQsIE5NX1RZUEVfRE5TX01BTkFHRVIpOwotIAotK3N0YXRpYyBnYm9vbGVhbgotK19yZXNvbHZjb25mX3Jlc29sdmVkX21hbmFnZWQgKHZvaWQpCi0rewotKwlzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgcmVzb2x2ZWRfcGF0aHNbXSA9IHsKLSsJCSIvcnVuL3N5c3RlbWQvcmVzb2x2ZS9yZXNvbHYuY29uZiIsCi0rCQkiL2xpYi9zeXN0ZW1kL3Jlc29sdi5jb25mIiwKLSsJCSIvdXNyL2xpYi9zeXN0ZW1kL3Jlc29sdi5jb25mIiwKLSsJfTsKLSsJR0ZpbGUgKmY7Ci0rCUdGaWxlSW5mbyAqaW5mbzsKLSsJZ2Jvb2xlYW4gcmV0ID0gRkFMU0U7Ci0rCi0rCWYgPSBnX2ZpbGVfbmV3X2Zvcl9wYXRoIChfUEFUSF9SRVNDT05GKTsKLSsJaW5mbyA9IGdfZmlsZV9xdWVyeV9pbmZvIChmLAotKwkgICAgICAgICAgICAgICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfSVNfU1lNTElOSyIsIlwKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX1NZTUxJTktfVEFSR0VULAotKwkgICAgICAgICAgICAgICAgICAgICAgICAgIEdfRklMRV9RVUVSWV9JTkZPX05PRk9MTE9XX1NZTUxJTktTLAotKwkgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOwotKwotKwlpZiAoaW5mbyAmJiBnX2ZpbGVfaW5mb19nZXRfaXNfc3ltbGluayAoaW5mbykpIHsKLSsJCXJldCA9IF9ubV91dGlsc19zdHJ2X2ZpbmRfZmlyc3QgKChnY2hhciAqKikgcmVzb2x2ZWRfcGF0aHMsCi0rCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX05fRUxFTUVOVFMgKHJlc29sdmVkX3BhdGhzKSwKLSsJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfZmlsZV9pbmZvX2dldF9zeW1saW5rX3RhcmdldCAoaW5mbykpID49IDA7Ci0rCX0KLSsKLSsJZ19jbGVhcl9vYmplY3QoJmluZm8pOwotKwlnX2NsZWFyX29iamVjdCgmZik7Ci0rCi0rCXJldHVybiByZXQ7Ci0rfQotKwotIHN0YXRpYyB2b2lkCi0gaW5pdF9yZXNvbHZfY29uZl9tb2RlIChOTURuc01hbmFnZXIgKnNlbGYsIGdib29sZWFuIGZvcmNlX3JlbG9hZF9wbHVnaW4pCi0gewotQEAgLTE2MzMsNyArMTY2NSwxNiBAQCBhZ2FpbjoKLSAKLSAJcmNfbWFuYWdlciA9IF9jaGVja19yZXNjb25mX2ltbXV0YWJsZSAocmNfbWFuYWdlcik7Ci0gCi0tCWlmIChubV9zdHJlcTAgKG1vZGUsICJkbnNtYXNxIikpIHsKLSsJaWYgKCAgICghbW9kZSAmJiBfcmVzb2x2Y29uZl9yZXNvbHZlZF9tYW5hZ2VkICgpKQotKwkgICAgfHwgbm1fc3RyZXEwIChtb2RlLCAic3lzdGVtZC1yZXNvbHZlZCIpKSB7Ci0rCQlpZiAoICAgZm9yY2VfcmVsb2FkX3BsdWdpbgotKwkJICAgIHx8ICFOTV9JU19ETlNfU1lTVEVNRF9SRVNPTFZFRCAocHJpdi0+cGx1Z2luKSkgewotKwkJCV9jbGVhcl9wbHVnaW4gKHNlbGYpOwotKwkJCXByaXYtPnBsdWdpbiA9IG5tX2Ruc19zeXN0ZW1kX3Jlc29sdmVkX25ldyAoKTsKLSsJCQlwbHVnaW5fY2hhbmdlZCA9IFRSVUU7Ci0rCQl9Ci0rCQltb2RlID0gInN5c3RlbWQtcmVzb2x2ZWQiOwotKwl9IGVsc2UgaWYgKG5tX3N0cmVxMCAobW9kZSwgImRuc21hc3EiKSkgewotIAkJaWYgKGZvcmNlX3JlbG9hZF9wbHVnaW4gfHwgIU5NX0lTX0ROU19ETlNNQVNRIChwcml2LT5wbHVnaW4pKSB7Ci0gCQkJX2NsZWFyX3BsdWdpbiAoc2VsZik7Ci0gCQkJcHJpdi0+cGx1Z2luID0gbm1fZG5zX2Ruc21hc3FfbmV3ICgpOwotZGlmZiAtLWdpdCBhL3NyYy9kbnMtbWFuYWdlci9ubS1kbnMtc3lzdGVtZC1yZXNvbHZlZC5jIGIvc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1zeXN0ZW1kLXJlc29sdmVkLmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi42YmRkNWY2Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvZG5zLW1hbmFnZXIvbm0tZG5zLXN5c3RlbWQtcmVzb2x2ZWQuYwotQEAgLTAsMCArMSw0MjcgQEAKLSsvKiAtKi0gTW9kZTogQzsgdGFiLXdpZHRoOiA0OyBpbmRlbnQtdGFicy1tb2RlOiB0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KLSsvKgotKyAqIENvcHlyaWdodCAoQykgMjAxMCBEYW4gV2lsbGlhbXMgPGRjYndAcmVkaGF0LmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTYgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgotKyAqCi0rICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKLSsgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsgKgotKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rICoKLSsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwotKyAqIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCi0rICogNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQS4KLSsgKgotKyAqLwotKwotKyNpbmNsdWRlICJubS1kZWZhdWx0LmgiCi0rCi0rI2luY2x1ZGUgIm5tLWRucy1zeXN0ZW1kLXJlc29sdmVkLmgiCi0rCi0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRlIDx1bmlzdGQuaD4KLSsjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0rI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0rI2luY2x1ZGUgPGFycGEvaW5ldC5oPgotKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgotKyNpbmNsdWRlIDxsaW51eC9pZi5oPgotKwotKyNpbmNsdWRlICJubS1jb3JlLWludGVybmFsLmgiCi0rI2luY2x1ZGUgIm5tLXBsYXRmb3JtLmgiCi0rI2luY2x1ZGUgIm5tLXV0aWxzLmgiCi0rI2luY2x1ZGUgIm5tLWlwNC1jb25maWcuaCIKLSsjaW5jbHVkZSAibm0taXA2LWNvbmZpZy5oIgotKyNpbmNsdWRlICJubS1idXMtbWFuYWdlci5oIgotKyNpbmNsdWRlICJubS1tYW5hZ2VyLmgiCi0rI2luY2x1ZGUgIm5tLWRldmljZS5oIgotKyNpbmNsdWRlICJOZXR3b3JrTWFuYWdlclV0aWxzLmgiCi0rCi0rR19ERUZJTkVfVFlQRSAoTk1EbnNTeXN0ZW1kUmVzb2x2ZWQsIG5tX2Ruc19zeXN0ZW1kX3Jlc29sdmVkLCBOTV9UWVBFX0ROU19QTFVHSU4pCi0rCi0rI2RlZmluZSBOTV9ETlNfU1lTVEVNRF9SRVNPTFZFRF9HRVRfUFJJVkFURShvKSBcCi0rICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFICgobyksIE5NX1RZUEVfRE5TX1NZU1RFTURfUkVTT0xWRUQsIFwKLSsgICAgTk1EbnNTeXN0ZW1kUmVzb2x2ZWRQcml2YXRlKSkKLSsKLSsjZGVmaW5lIFNZU1RFTURfUkVTT0xWRURfREJVU19TRVJWSUNFICJvcmcuZnJlZWRlc2t0b3AucmVzb2x2ZTEiCi0rI2RlZmluZSBTWVNURU1EX1JFU09MVkVEX0RCVVNfUEFUSCAiL29yZy9mcmVlZGVza3RvcC9yZXNvbHZlMSIKLSsKLSt0eXBlZGVmIHN0cnVjdCB7Ci0rCWludCBpZmluZGV4OwotKwlHTGlzdCAqY29uZmlnczsKLSt9IEludGVyZmFjZUNvbmZpZzsKLSsKLSt0eXBlZGVmIHN0cnVjdCB7Ci0rCUdEQnVzUHJveHkgKnJlc29sdmU7Ci0rCUdDYW5jZWxsYWJsZSAqaW5pdF9jYW5jZWxsYWJsZTsKLSsJR0NhbmNlbGxhYmxlICp1cGRhdGVfY2FuY2VsbGFibGU7Ci0rCUdRdWV1ZSBkbnNfdXBkYXRlczsKLSsJR1F1ZXVlIGRvbWFpbl91cGRhdGVzOwotK30gTk1EbnNTeXN0ZW1kUmVzb2x2ZWRQcml2YXRlOwotKwotKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSsKLSsjZGVmaW5lIF9OTUxPR19ET01BSU4gICAgICAgICBMT0dEX0ROUwotKyNkZWZpbmUgX05NTE9HX1BSRUZJWF9OQU1FICAgICJzeXN0ZW1kLXJlc29sdmVkIgotKyNkZWZpbmUgX05NTE9HKGxldmVsLCAuLi4pIFwKLSsgICAgR19TVE1UX1NUQVJUIHsgXAotKyAgICAgICAgbm1fbG9nICgobGV2ZWwpLCBfTk1MT0dfRE9NQUlOLCBcCi0rICAgICAgICAgICAgICAgICIlc1slcF06ICIgX05NX1VUSUxTX01BQ1JPX0ZJUlNUKF9fVkFfQVJHU19fKSwgXAotKyAgICAgICAgICAgICAgICBfTk1MT0dfUFJFRklYX05BTUUsIFwKLSsgICAgICAgICAgICAgICAgKHNlbGYpIFwKLSsgICAgICAgICAgICAgICAgX05NX1VUSUxTX01BQ1JPX1JFU1QoX19WQV9BUkdTX18pKTsgXAotKyAgICB9IEdfU1RNVF9FTkQKLSsKLSsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0rCi0rc3RhdGljIHZvaWQKLStjYWxsX2RvbmUgKEdPYmplY3QgKnNvdXJjZSwgR0FzeW5jUmVzdWx0ICpyLCBncG9pbnRlciB1c2VyX2RhdGEpCi0rewotKwlHVmFyaWFudCAqdjsKLSsJR0Vycm9yICplcnJvciA9IE5VTEw7Ci0rCU5NRG5zU3lzdGVtZFJlc29sdmVkICpzZWxmID0gKE5NRG5zU3lzdGVtZFJlc29sdmVkICopIHVzZXJfZGF0YTsKLSsKLSsJdiA9IGdfZGJ1c19wcm94eV9jYWxsX2ZpbmlzaCAoR19EQlVTX1BST1hZIChzb3VyY2UpLCByLCAmZXJyb3IpOwotKwotKwlpZiAoZ19lcnJvcl9tYXRjaGVzIChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9DQU5DRUxMRUQpKQotKwkJcmV0dXJuOwotKwotKwlpZiAoZXJyb3IgIT0gTlVMTCkgewotKwkJX0xPR1cgKCJGYWlsZWQ6ICVzXG4iLCBlcnJvci0+bWVzc2FnZSk7Ci0rCQlnX2Vycm9yX2ZyZWUgKGVycm9yKTsKLSsJfQotK30KLSsKLStzdGF0aWMgdm9pZAotK2FkZF9pbnRlcmZhY2VfY29uZmlndXJhdGlvbiAoTk1EbnNTeXN0ZW1kUmVzb2x2ZWQgKnNlbGYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXJyYXkgKmludGVyZmFjZXMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBOTURuc0lQQ29uZmlnRGF0YSAqZGF0YSkKLSt7Ci0rCWludCBpOwotKwlJbnRlcmZhY2VDb25maWcgKmljID0gTlVMTDsKLSsJaW50IGlmaW5kZXg7Ci0rCU5NRGV2aWNlICpkZXZpY2U7Ci0rCi0rCWlmIChOTV9JU19JUDRfQ09ORklHIChkYXRhLT5jb25maWcpKQotKwkJaWZpbmRleCA9IG5tX2lwNF9jb25maWdfZ2V0X2lmaW5kZXggKGRhdGEtPmNvbmZpZyk7Ci0rCWVsc2UgaWYgKE5NX0lTX0lQNl9DT05GSUcgIChkYXRhLT5jb25maWcpKQotKwkJaWZpbmRleCA9IG5tX2lwNl9jb25maWdfZ2V0X2lmaW5kZXggKGRhdGEtPmNvbmZpZyk7Ci0rCWVsc2UKLSsJCWdfcmV0dXJuX2lmX3JlYWNoZWQgKCk7Ci0rCi0rCWRldmljZSA9IG5tX21hbmFnZXJfZ2V0X2RldmljZV9ieV9pZmluZGV4IChubV9tYW5hZ2VyX2dldCAoKSwgaWZpbmRleCk7Ci0rCi0rCWlmICghbm1fZGV2aWNlX2dldF9tYW5hZ2VkIChkZXZpY2UsIEZBTFNFKSkKLSsJCXJldHVybjsKLSsKLSsJZm9yIChpID0gMDsgaSA8IGludGVyZmFjZXMtPmxlbjsgaSsrKSB7Ci0rCQlJbnRlcmZhY2VDb25maWcgKnRpYyA9ICZnX2FycmF5X2luZGV4IChpbnRlcmZhY2VzLCBJbnRlcmZhY2VDb25maWcsIGkpOwotKwkJaWYgKGlmaW5kZXggPT0gdGljLT5pZmluZGV4KSB7Ci0rCQkJaWMgPSB0aWM7Ci0rCQkJYnJlYWs7Ci0rCQl9Ci0rCX0KLSsKLSsJaWYgKCFpYykgewotKwkJZ19hcnJheV9zZXRfc2l6ZSAoaW50ZXJmYWNlcywgaW50ZXJmYWNlcy0+bGVuICsgMSk7Ci0rCQlpYyA9ICZnX2FycmF5X2luZGV4IChpbnRlcmZhY2VzLCBJbnRlcmZhY2VDb25maWcsCi0rCQkgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2VzLT5sZW4gLSAxKTsKLSsJCWljLT5pZmluZGV4ID0gaWZpbmRleDsKLSsJfQotKwotKwlpYy0+Y29uZmlncyA9IGdfbGlzdF9hcHBlbmQgKGljLT5jb25maWdzLCBkYXRhLT5jb25maWcpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2FkZF9kb21haW4gKEdWYXJpYW50QnVpbGRlciAqZG9tYWlucywKLSsgICAgICAgICAgICBjb25zdCBjaGFyICpkb21haW4sCi0rICAgICAgICAgICAgZ2Jvb2xlYW4gbmV2ZXJfZGVmYXVsdCkKLSt7Ci0rCS8qIElmIHRoaXMgbGluayBpcyBuZXZlciB0aGUgZGVmYXVsdCAoZS5nLiBvbmx5IHVzZWQgZm9yIHJlc291cmNlcyBvbiB0aGlzCi0rCSAqIG5ldHdvcmspIGFkZCBhIHJvdXRpbmcgZG9tYWluLiAqLwotKwlnX3ZhcmlhbnRfYnVpbGRlcl9hZGQgKGRvbWFpbnMsICIoc2IpIiwgZG9tYWluLCBuZXZlcl9kZWZhdWx0KTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLSt1cGRhdGVfYWRkX2lwNl9jb25maWcgKE5NRG5zU3lzdGVtZFJlc29sdmVkICpzZWxmLAotKyAgICAgICAgICAgICAgICAgICAgICAgR1ZhcmlhbnRCdWlsZGVyICpkbnMsCi0rICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudEJ1aWxkZXIgKmRvbWFpbnMsCi0rICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBOTUlQNkNvbmZpZyAqY29uZmlnKQotK3sKLSsJZ3VpbnQgaSwgbjsKLSsKLSsJbiA9IG5tX2lwNl9jb25maWdfZ2V0X251bV9uYW1lc2VydmVycyAoY29uZmlnKTsKLSsJZm9yIChpID0gMCA7IGkgPCBuOyBpKyspIHsKLSsJCWNvbnN0IHN0cnVjdCBpbjZfYWRkciAqaXA7Ci0rCi0rCQlnX3ZhcmlhbnRfYnVpbGRlcl9vcGVuIChkbnMsIEdfVkFSSUFOVF9UWVBFICgiKGlheSkiKSk7Ci0rCQlnX3ZhcmlhbnRfYnVpbGRlcl9hZGQgKGRucywgImkiLCBBRl9JTkVUNik7Ci0rCQlpcCA9IG5tX2lwNl9jb25maWdfZ2V0X25hbWVzZXJ2ZXIgKGNvbmZpZywgaSksCi0rCi0rCQlnX3ZhcmlhbnRfYnVpbGRlcl9hZGRfdmFsdWUgKGRucywgZ192YXJpYW50X25ld19maXhlZF9hcnJheSAoR19WQVJJQU5UX1RZUEVfQllURSwgaXAsIDE2LCAxKSk7Ci0rCQlnX3ZhcmlhbnRfYnVpbGRlcl9jbG9zZSAoZG5zKTsKLSsJfQotKwotKwluID0gbm1faXA2X2NvbmZpZ19nZXRfbnVtX3NlYXJjaGVzIChjb25maWcpOwotKwlpZiAobiA+IDApIHsKLSsJCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKLSsJCQlhZGRfZG9tYWluIChkb21haW5zLCBubV9pcDZfY29uZmlnX2dldF9zZWFyY2ggKGNvbmZpZywgaSksCi0rCQkJICAgICAgICAgICAgbm1faXA2X2NvbmZpZ19nZXRfbmV2ZXJfZGVmYXVsdCAoY29uZmlnKSk7Ci0rCQl9Ci0rCX0gZWxzZSB7Ci0rCQluID0gbm1faXA2X2NvbmZpZ19nZXRfbnVtX2RvbWFpbnMgKGNvbmZpZyk7Ci0rCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7Ci0rCQkJYWRkX2RvbWFpbiAoZG9tYWlucywgbm1faXA2X2NvbmZpZ19nZXRfZG9tYWluIChjb25maWcsIGkpLAotKwkJCSAgICAgICAgICAgIG5tX2lwNl9jb25maWdfZ2V0X25ldmVyX2RlZmF1bHQgKGNvbmZpZykpOwotKwkJfQotKwl9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rdXBkYXRlX2FkZF9pcDRfY29uZmlnIChOTURuc1N5c3RlbWRSZXNvbHZlZCAqc2VsZiwKLSsgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50QnVpbGRlciAqZG5zLAotKyAgICAgICAgICAgICAgICAgICAgICAgR1ZhcmlhbnRCdWlsZGVyICpkb21haW5zLAotKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTk1JUDRDb25maWcgKmNvbmZpZykKLSt7Ci0rCWd1aW50IGksIG47Ci0rCi0rCW4gPSBubV9pcDRfY29uZmlnX2dldF9udW1fbmFtZXNlcnZlcnMgKGNvbmZpZyk7Ci0rCWZvciAoaSA9IDAgOyBpIDwgbjsgaSsrKSB7Ci0rCQlndWludDMyIG5zOwotKwotKwkJZ192YXJpYW50X2J1aWxkZXJfb3BlbiAoZG5zLCBHX1ZBUklBTlRfVFlQRSAoIihpYXkpIikpOwotKwkJZ192YXJpYW50X2J1aWxkZXJfYWRkIChkbnMsICJpIiwgQUZfSU5FVCk7Ci0rCQlucyA9IG5tX2lwNF9jb25maWdfZ2V0X25hbWVzZXJ2ZXIgKGNvbmZpZywgaSksCi0rCi0rCQlnX3ZhcmlhbnRfYnVpbGRlcl9hZGRfdmFsdWUgKGRucywgZ192YXJpYW50X25ld19maXhlZF9hcnJheSAoR19WQVJJQU5UX1RZUEVfQllURSwgJm5zLCA0LCAxKSk7Ci0rCQlnX3ZhcmlhbnRfYnVpbGRlcl9jbG9zZSAoZG5zKTsKLSsJfQotKwotKwluID0gbm1faXA0X2NvbmZpZ19nZXRfbnVtX3NlYXJjaGVzIChjb25maWcpOwotKwlpZiAobiAgPiAwKSB7Ci0rCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7Ci0rCQkJYWRkX2RvbWFpbiAoZG9tYWlucywgbm1faXA0X2NvbmZpZ19nZXRfc2VhcmNoIChjb25maWcsIGkpLAotKwkJCSAgICAgICAgICAgIG5tX2lwNF9jb25maWdfZ2V0X25ldmVyX2RlZmF1bHQgKGNvbmZpZykpOwotKwkJfQotKwl9IGVsc2UgewotKwkJbiA9IG5tX2lwNF9jb25maWdfZ2V0X251bV9kb21haW5zIChjb25maWcpOwotKwkJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewotKwkJCWFkZF9kb21haW4gKGRvbWFpbnMsIG5tX2lwNF9jb25maWdfZ2V0X2RvbWFpbiAoY29uZmlnLCBpKSwKLSsJCQkgICAgICAgICAgICBubV9pcDRfY29uZmlnX2dldF9uZXZlcl9kZWZhdWx0IChjb25maWcpKTsKLSsJCX0KLSsJfQotK30KLSsKLStzdGF0aWMgdm9pZAotK2ZyZWVfcGVuZGluZ191cGRhdGVzIChOTURuc1N5c3RlbWRSZXNvbHZlZCAqc2VsZikKLSt7Ci0rCU5NRG5zU3lzdGVtZFJlc29sdmVkUHJpdmF0ZSAqcHJpdiA9IE5NX0ROU19TWVNURU1EX1JFU09MVkVEX0dFVF9QUklWQVRFIChzZWxmKTsKLSsJR1ZhcmlhbnQgKnY7Ci0rCi0rCXdoaWxlICgodiA9IGdfcXVldWVfcG9wX2hlYWQgKCZwcml2LT5kbnNfdXBkYXRlcykpICE9IE5VTEwpCi0rCQlnX3ZhcmlhbnRfdW5yZWYgKHYpOwotKwotKwl3aGlsZSAoKHYgPSBnX3F1ZXVlX3BvcF9oZWFkICgmcHJpdi0+ZG9tYWluX3VwZGF0ZXMpKSAhPSBOVUxMKQotKwkJZ192YXJpYW50X3VucmVmICh2KTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStwcmVwYXJlX29uZV9pbnRlcmZhY2UgKE5NRG5zU3lzdGVtZFJlc29sdmVkICpzZWxmLCBJbnRlcmZhY2VDb25maWcgKmljKQotK3sKLSsJTk1EbnNTeXN0ZW1kUmVzb2x2ZWRQcml2YXRlICpwcml2ID0gTk1fRE5TX1NZU1RFTURfUkVTT0xWRURfR0VUX1BSSVZBVEUgKHNlbGYpOwotKwlHVmFyaWFudEJ1aWxkZXIgZG5zLCBkb21haW5zOwotKwlHTGlzdCAqbDsKLSsKLSsJZ192YXJpYW50X2J1aWxkZXJfaW5pdCAoJmRucywgR19WQVJJQU5UX1RZUEUgKCIoaWEoaWF5KSkiKSk7Ci0rCWdfdmFyaWFudF9idWlsZGVyX2FkZCAoJmRucywgImkiLCBpYy0+aWZpbmRleCk7Ci0rCWdfdmFyaWFudF9idWlsZGVyX29wZW4gKCZkbnMsIEdfVkFSSUFOVF9UWVBFICgiYShpYXkpIikpOwotKwotKwlnX3ZhcmlhbnRfYnVpbGRlcl9pbml0ICgmZG9tYWlucywgR19WQVJJQU5UX1RZUEUgKCIoaWEoc2IpKSIpKTsKLSsJZ192YXJpYW50X2J1aWxkZXJfYWRkICgmZG9tYWlucywgImkiLCBpYy0+aWZpbmRleCk7Ci0rCWdfdmFyaWFudF9idWlsZGVyX29wZW4gKCZkb21haW5zLCBHX1ZBUklBTlRfVFlQRSAoImEoc2IpIikpOwotKwotKwlmb3IgKGwgPSBpYy0+Y29uZmlncyA7IGwgIT0gTlVMTCA7IGwgPSBnX2xpc3RfbmV4dCAobCkpIHsKLSsJCWlmIChOTV9JU19JUDRfQ09ORklHIChsLT5kYXRhKSkKLSsJCQl1cGRhdGVfYWRkX2lwNF9jb25maWcgKHNlbGYsICZkbnMsICZkb21haW5zLCBsLT5kYXRhKTsKLSsJCWVsc2UgaWYgKE5NX0lTX0lQNl9DT05GSUcgKGwtPmRhdGEpKQotKwkJCXVwZGF0ZV9hZGRfaXA2X2NvbmZpZyAoc2VsZiwgJmRucywgJmRvbWFpbnMsIGwtPmRhdGEpOwotKwkJZWxzZQotKwkJCWdfYXNzZXJ0X25vdF9yZWFjaGVkICgpOwotKwl9Ci0rCWdfdmFyaWFudF9idWlsZGVyX2Nsb3NlICgmZG5zKTsKLSsJZ192YXJpYW50X2J1aWxkZXJfY2xvc2UgKCZkb21haW5zKTsKLSsKLSsJZ19xdWV1ZV9wdXNoX3RhaWwgKCZwcml2LT5kbnNfdXBkYXRlcywKLSsJICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9yZWZfc2luayAoZ192YXJpYW50X2J1aWxkZXJfZW5kICgmZG5zKSkpOwotKwlnX3F1ZXVlX3B1c2hfdGFpbCAoJnByaXYtPmRvbWFpbl91cGRhdGVzLAotKwkgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X3JlZl9zaW5rIChnX3ZhcmlhbnRfYnVpbGRlcl9lbmQgKCZkb21haW5zKSkpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK3NlbmRfdXBkYXRlcyAoTk1EbnNTeXN0ZW1kUmVzb2x2ZWQgKnNlbGYpCi0rewotKwlOTURuc1N5c3RlbWRSZXNvbHZlZFByaXZhdGUgKnByaXYgPSBOTV9ETlNfU1lTVEVNRF9SRVNPTFZFRF9HRVRfUFJJVkFURSAoc2VsZik7Ci0rCUdWYXJpYW50ICp2OwotKwotKwlubV9jbGVhcl9nX2NhbmNlbGxhYmxlICgmcHJpdi0+dXBkYXRlX2NhbmNlbGxhYmxlKTsKLSsKLSsJaWYgKCFwcml2LT5yZXNvbHZlKQotKwkJcmV0dXJuOwotKwotKwlwcml2LT51cGRhdGVfY2FuY2VsbGFibGUgPSBnX2NhbmNlbGxhYmxlX25ldyAoKTsKLSsKLSsJd2hpbGUgKCh2ID0gZ19xdWV1ZV9wb3BfaGVhZCAoJnByaXYtPmRuc191cGRhdGVzKSkgIT0gTlVMTCkgewotKwkJZ19kYnVzX3Byb3h5X2NhbGwgKHByaXYtPnJlc29sdmUsICJTZXRMaW5rRE5TIiwgdiwKLSsJCSAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAotKwkJICAgICAgICAgICAgICAgICAgIC0xLCBwcml2LT51cGRhdGVfY2FuY2VsbGFibGUsIGNhbGxfZG9uZSwgc2VsZik7Ci0rCQlnX3ZhcmlhbnRfdW5yZWYgKHYpOwotKwl9Ci0rCi0rCXdoaWxlICgodiA9IGdfcXVldWVfcG9wX2hlYWQgKCZwcml2LT5kb21haW5fdXBkYXRlcykpICE9IE5VTEwpIHsKLSsJCWdfZGJ1c19wcm94eV9jYWxsIChwcml2LT5yZXNvbHZlLCAiU2V0TGlua0RvbWFpbnMiLCB2LAotKwkJICAgICAgICAgICAgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsCi0rCQkgICAgICAgICAgICAgICAgICAgLTEsIHByaXYtPnVwZGF0ZV9jYW5jZWxsYWJsZSwgY2FsbF9kb25lLCBzZWxmKTsKLSsJCWdfdmFyaWFudF91bnJlZiAodik7Ci0rCX0KLSt9Ci0rCi0rc3RhdGljIGdib29sZWFuCi0rdXBkYXRlIChOTURuc1BsdWdpbiAqcGx1Z2luLAotKyAgICAgICAgY29uc3QgTk1EbnNJUENvbmZpZ0RhdGEgKipjb25maWdzLAotKyAgICAgICAgY29uc3QgTk1HbG9iYWxEbnNDb25maWcgKmdsb2JhbF9jb25maWcsCi0rICAgICAgICBjb25zdCBjaGFyICpob3N0bmFtZSkKLSt7Ci0rCU5NRG5zU3lzdGVtZFJlc29sdmVkICpzZWxmID0gTk1fRE5TX1NZU1RFTURfUkVTT0xWRUQgKHBsdWdpbik7Ci0rCUdBcnJheSAqaW50ZXJmYWNlcyA9IGdfYXJyYXlfbmV3IChUUlVFLCBUUlVFLCBzaXplb2YgKEludGVyZmFjZUNvbmZpZykpOwotKwljb25zdCBOTURuc0lQQ29uZmlnRGF0YSAqKmM7Ci0rCWludCBpOwotKwotKwlmb3IgKGMgPSBjb25maWdzOyAqYyAhPSBOVUxMOyBjKyspCi0rCQlhZGRfaW50ZXJmYWNlX2NvbmZpZ3VyYXRpb24gKHNlbGYsIGludGVyZmFjZXMsICpjKTsKLSsKLSsJZnJlZV9wZW5kaW5nX3VwZGF0ZXMgKHNlbGYpOwotKwotKwlmb3IgKGkgPSAwOyBpIDwgaW50ZXJmYWNlcy0+bGVuOyBpKyspIHsKLSsJCUludGVyZmFjZUNvbmZpZyAqaWMgPSAmZ19hcnJheV9pbmRleCAoaW50ZXJmYWNlcywgSW50ZXJmYWNlQ29uZmlnLCBpKTsKLSsKLSsJCXByZXBhcmVfb25lX2ludGVyZmFjZSAoc2VsZiwgaWMpOwotKwkJZ19saXN0X2ZyZWUgKGljLT5jb25maWdzKTsKLSsJfQotKwotKwlnX2FycmF5X2ZyZWUgKGludGVyZmFjZXMsIFRSVUUpOwotKwotKwlzZW5kX3VwZGF0ZXMgKHNlbGYpOwotKwotKwlyZXR1cm4gVFJVRTsKLSt9Ci0rCi0rLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0rCi0rc3RhdGljIGdib29sZWFuCi0raXNfY2FjaGluZyAoTk1EbnNQbHVnaW4gKnBsdWdpbikKLSt7Ci0rCXJldHVybiBUUlVFOwotK30KLSsKLStzdGF0aWMgY29uc3QgY2hhciAqCi0rZ2V0X25hbWUgKE5NRG5zUGx1Z2luICpwbHVnaW4pCi0rewotKwlyZXR1cm4gInN5c3RlbWQtcmVzb2x2ZWQiOwotK30KLSsKLSsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSsKLStOTURuc1BsdWdpbiAqCi0rbm1fZG5zX3N5c3RlbWRfcmVzb2x2ZWRfbmV3ICh2b2lkKQotK3sKLSsJcmV0dXJuIGdfb2JqZWN0X25ldyAoTk1fVFlQRV9ETlNfU1lTVEVNRF9SRVNPTFZFRCwgTlVMTCk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rcmVzb2x2ZWRfcHJveHlfY3JlYXRlZCAoR09iamVjdCAqc291cmNlLCBHQXN5bmNSZXN1bHQgKnIsIGdwb2ludGVyIHVzZXJfZGF0YSkKLSt7Ci0rCU5NRG5zU3lzdGVtZFJlc29sdmVkICpzZWxmID0gKE5NRG5zU3lzdGVtZFJlc29sdmVkICopIHVzZXJfZGF0YTsKLSsJTk1EbnNTeXN0ZW1kUmVzb2x2ZWRQcml2YXRlICpwcml2OwotKwlnc19mcmVlX2Vycm9yIEdFcnJvciAqZXJyb3IgPSBOVUxMOwotKwlHREJ1c1Byb3h5ICpyZXNvbHZlOwotKwotKwlyZXNvbHZlID0gZ19kYnVzX3Byb3h5X25ld19maW5pc2ggKHIsICZlcnJvcik7Ci0rCWlmICggICAhcmVzb2x2ZQotKwkgICAgJiYgZ19lcnJvcl9tYXRjaGVzIChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9DQU5DRUxMRUQpKQotKwkJcmV0dXJuOwotKwotKwlwcml2ID0gTk1fRE5TX1NZU1RFTURfUkVTT0xWRURfR0VUX1BSSVZBVEUgKHNlbGYpOwotKwlnX2NsZWFyX29iamVjdCAoJnByaXYtPmluaXRfY2FuY2VsbGFibGUpOwotKwlpZiAoIXJlc29sdmUpIHsKLSsJCV9MT0dXICgiZmFpbGVkIHRvIGNvbm5lY3QgdG8gcmVzb2x2ZWQgdmlhIERCdXM6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOwotKwkJZ19zaWduYWxfZW1pdF9ieV9uYW1lIChzZWxmLCBOTV9ETlNfUExVR0lOX0ZBSUxFRCk7Ci0rCQlyZXR1cm47Ci0rCX0KLSsKLSsJcHJpdi0+cmVzb2x2ZSA9IHJlc29sdmU7Ci0rCXNlbmRfdXBkYXRlcyAoc2VsZik7Ci0rfQotKwotKwotK3N0YXRpYyB2b2lkCi0rbm1fZG5zX3N5c3RlbWRfcmVzb2x2ZWRfaW5pdCAoTk1EbnNTeXN0ZW1kUmVzb2x2ZWQgKnNlbGYpCi0rewotKwlOTURuc1N5c3RlbWRSZXNvbHZlZFByaXZhdGUgKnByaXYgPSBOTV9ETlNfU1lTVEVNRF9SRVNPTFZFRF9HRVRfUFJJVkFURSAoc2VsZik7Ci0rCU5NQnVzTWFuYWdlciAqZGJ1c19tZ3I7Ci0rCUdEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbjsKLSsKLSsJZ19xdWV1ZV9pbml0ICgmcHJpdi0+ZG5zX3VwZGF0ZXMpOwotKwlnX3F1ZXVlX2luaXQgKCZwcml2LT5kb21haW5fdXBkYXRlcyk7Ci0rCi0rCWRidXNfbWdyID0gbm1fYnVzX21hbmFnZXJfZ2V0ICgpOwotKwlnX3JldHVybl9pZl9mYWlsIChkYnVzX21ncik7Ci0rCi0rCWNvbm5lY3Rpb24gPSBubV9idXNfbWFuYWdlcl9nZXRfY29ubmVjdGlvbiAoZGJ1c19tZ3IpOwotKwlnX3JldHVybl9pZl9mYWlsIChjb25uZWN0aW9uKTsKLSsKLSsJcHJpdi0+aW5pdF9jYW5jZWxsYWJsZSA9IGdfY2FuY2VsbGFibGVfbmV3ICgpOwotKwlnX2RidXNfcHJveHlfbmV3IChjb25uZWN0aW9uLAotKwkgICAgICAgICAgICAgICAgICBHX0RCVVNfUFJPWFlfRkxBR1NfRE9fTk9UX0xPQURfUFJPUEVSVElFUyB8Ci0rCSAgICAgICAgICAgICAgICAgIEdfREJVU19QUk9YWV9GTEFHU19ET19OT1RfQ09OTkVDVF9TSUdOQUxTLAotKwkgICAgICAgICAgICAgICAgICBOVUxMLAotKwkgICAgICAgICAgICAgICAgICBTWVNURU1EX1JFU09MVkVEX0RCVVNfU0VSVklDRSwKLSsJICAgICAgICAgICAgICAgICAgU1lTVEVNRF9SRVNPTFZFRF9EQlVTX1BBVEgsCi0rCSAgICAgICAgICAgICAgICAgIFNZU1RFTURfUkVTT0xWRURfREJVU19TRVJWSUNFICIuTWFuYWdlciIsCi0rCSAgICAgICAgICAgICAgICAgIHByaXYtPmluaXRfY2FuY2VsbGFibGUsCi0rCSAgICAgICAgICAgICAgICAgIHJlc29sdmVkX3Byb3h5X2NyZWF0ZWQsCi0rCSAgICAgICAgICAgICAgICAgIHNlbGYpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkKLSt7Ci0rCU5NRG5zU3lzdGVtZFJlc29sdmVkICpzZWxmID0gTk1fRE5TX1NZU1RFTURfUkVTT0xWRUQgKG9iamVjdCk7Ci0rCU5NRG5zU3lzdGVtZFJlc29sdmVkUHJpdmF0ZSAqcHJpdiA9IE5NX0ROU19TWVNURU1EX1JFU09MVkVEX0dFVF9QUklWQVRFIChzZWxmKTsKLSsKLSsJZnJlZV9wZW5kaW5nX3VwZGF0ZXMgKHNlbGYpOwotKwlnX2NsZWFyX29iamVjdCAoJnByaXYtPnJlc29sdmUpOwotKwlubV9jbGVhcl9nX2NhbmNlbGxhYmxlICgmcHJpdi0+aW5pdF9jYW5jZWxsYWJsZSk7Ci0rCW5tX2NsZWFyX2dfY2FuY2VsbGFibGUgKCZwcml2LT51cGRhdGVfY2FuY2VsbGFibGUpOwotKwotKwlHX09CSkVDVF9DTEFTUyAobm1fZG5zX3N5c3RlbWRfcmVzb2x2ZWRfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZSAob2JqZWN0KTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStubV9kbnNfc3lzdGVtZF9yZXNvbHZlZF9jbGFzc19pbml0IChOTURuc1N5c3RlbWRSZXNvbHZlZENsYXNzICpkbnNfY2xhc3MpCi0rewotKwlOTURuc1BsdWdpbkNsYXNzICpwbHVnaW5fY2xhc3MgPSBOTV9ETlNfUExVR0lOX0NMQVNTIChkbnNfY2xhc3MpOwotKwlHT2JqZWN0Q2xhc3MgKm9iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChkbnNfY2xhc3MpOwotKwotKwlnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgKGRuc19jbGFzcywgc2l6ZW9mIChOTURuc1N5c3RlbWRSZXNvbHZlZFByaXZhdGUpKTsKLSsKLSsJb2JqZWN0X2NsYXNzLT5kaXNwb3NlID0gZGlzcG9zZTsKLSsKLSsJcGx1Z2luX2NsYXNzLT5pc19jYWNoaW5nID0gaXNfY2FjaGluZzsKLSsJcGx1Z2luX2NsYXNzLT51cGRhdGUgPSB1cGRhdGU7Ci0rCXBsdWdpbl9jbGFzcy0+Z2V0X25hbWUgPSBnZXRfbmFtZTsKLSt9Ci0rCi1kaWZmIC0tZ2l0IGEvc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1zeXN0ZW1kLXJlc29sdmVkLmggYi9zcmMvZG5zLW1hbmFnZXIvbm0tZG5zLXN5c3RlbWQtcmVzb2x2ZWQuaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjQ1YzY0YjMKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9kbnMtbWFuYWdlci9ubS1kbnMtc3lzdGVtZC1yZXNvbHZlZC5oCi1AQCAtMCwwICsxLDQ1IEBACi0rLyogLSotIE1vZGU6IEM7IHRhYi13aWR0aDogNDsgaW5kZW50LXRhYnMtbW9kZTogdDsgYy1iYXNpYy1vZmZzZXQ6IDQgLSotICovCi0rLyogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKLSsgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsgKgotKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rICoKLSsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwotKyAqIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCi0rICogNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQS4KLSsgKgotKyAqIENvcHlyaWdodCAoQykgMjAxMCBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJpZ2h0IChDKSAyMDE2IFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KLSsgKi8KLSsKLSsjaWZuZGVmIF9fTkVUV09SS01BTkFHRVJfRE5TX1NZU1RFTURfUkVTT0xWRURfSF9fCi0rI2RlZmluZSBfX05FVFdPUktNQU5BR0VSX0ROU19TWVNURU1EX1JFU09MVkVEX0hfXwotKwotKyNpbmNsdWRlICJubS1kbnMtcGx1Z2luLmgiCi0rCi0rI2RlZmluZSBOTV9UWVBFX0ROU19TWVNURU1EX1JFU09MVkVEICAgICAgICAgICAgKG5tX2Ruc19zeXN0ZW1kX3Jlc29sdmVkX2dldF90eXBlICgpKQotKyNkZWZpbmUgTk1fRE5TX1NZU1RFTURfUkVTT0xWRUQob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iaiksIE5NX1RZUEVfRE5TX1NZU1RFTURfUkVTT0xWRUQsIE5NRG5zU3lzdGVtZFJlc29sdmVkKSkKLSsjZGVmaW5lIE5NX0ROU19TWVNURU1EX1JFU09MVkVEX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChrbGFzcyksIE5NX1RZUEVfRE5TX1NZU1RFTURfUkVTT0xWRUQsIE5NRG5zU3lzdGVtZFJlc29sdmVkQ2xhc3MpKQotKyNkZWZpbmUgTk1fSVNfRE5TX1NZU1RFTURfUkVTT0xWRUQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG9iaiksIE5NX1RZUEVfRE5TX1NZU1RFTURfUkVTT0xWRUQpKQotKyNkZWZpbmUgTk1fSVNfRE5TX1NZU1RFTURfUkVTT0xWRURfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGtsYXNzKSwgTk1fVFlQRV9ETlNfU1lTVEVNRF9SRVNPTFZFRCkpCi0rI2RlZmluZSBOTV9ETlNfU1lTVEVNRF9SRVNPTFZFRF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvYmopLCBOTV9UWVBFX0ROU19TWVNURU1EX1JFU09MVkVELCBOTURuc1N5c3RlbWRSZXNvbHZlZENsYXNzKSkKLSsKLSt0eXBlZGVmIHN0cnVjdCB7Ci0rCU5NRG5zUGx1Z2luIHBhcmVudDsKLSt9IE5NRG5zU3lzdGVtZFJlc29sdmVkOwotKwotK3R5cGVkZWYgc3RydWN0IHsKLSsJTk1EbnNQbHVnaW5DbGFzcyBwYXJlbnQ7Ci0rfSBOTURuc1N5c3RlbWRSZXNvbHZlZENsYXNzOwotKwotK0dUeXBlIG5tX2Ruc19zeXN0ZW1kX3Jlc29sdmVkX2dldF90eXBlICh2b2lkKTsKLSsKLStOTURuc1BsdWdpbiAqbm1fZG5zX3N5c3RlbWRfcmVzb2x2ZWRfbmV3ICh2b2lkKTsKLSsKLSsjZW5kaWYgLyogX19ORVRXT1JLTUFOQUdFUl9ETlNfU1lTVEVNRF9SRVNPTFZFRF9IX18gKi8KLSsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDEtZG5zLXJlc29sdmVkLWFsc28tY2hlY2stZm9yLWV0Yy1yZXNvbHYtY29uZi5zeXN0ZW1kLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMS1kbnMtcmVzb2x2ZWQtYWxzby1jaGVjay1mb3ItZXRjLXJlc29sdi1jb25mLnN5c3RlbWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhN2U0YTQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMS1kbnMtcmVzb2x2ZWQtYWxzby1jaGVjay1mb3ItZXRjLXJlc29sdi1jb25mLnN5c3RlbWQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1Gcm9tIDZmNzk5ZjFmMGU2OGNjN2JmODljMGE1NmFlYzVlY2Y0NjkzNzYxOWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSaWNhcmRvIFNhbHZldGkgPHJzYWx2ZXRpQHJzYWx2ZXRpLm5ldD4KLURhdGU6IFRodSwgMTUgSnVuIDIwMTcgMTA6MDI6MzggLTAzMDAKLVN1YmplY3Q6IFtQQVRDSF0gZG5zL3Jlc29sdmVkOiBhbHNvIGNoZWNrIGZvciAvZXRjL3Jlc29sdi1jb25mLnN5c3RlbWQKLQotT0Ugc3BlY2lmaWMgcmVzb2x2LmNvbmYgcGF0aCwgc28gaXQgY2FuIGJlIGVuYWJsZWQgYnkgZGVmYXVsdCBpZiBhdmFpbGFibGUuCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbT0UgY29uZmlnIHNwZWNpZmljXQotCi1TaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFNhbHZldGkgPHJzYWx2ZXRpQHJzYWx2ZXRpLm5ldD4KLS0tLQotIHNyYy9kbnMtbWFuYWdlci9ubS1kbnMtbWFuYWdlci5jIHwgMSArCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCi0KLWRpZmYgLS1naXQgYS9zcmMvZG5zLW1hbmFnZXIvbm0tZG5zLW1hbmFnZXIuYyBiL3NyYy9kbnMtbWFuYWdlci9ubS1kbnMtbWFuYWdlci5jCi1pbmRleCBjMWQyYmY3Li5kNzBkNGI0IDEwMDY0NAotLS0tIGEvc3JjL2Rucy1tYW5hZ2VyL25tLWRucy1tYW5hZ2VyLmMKLSsrKyBiL3NyYy9kbnMtbWFuYWdlci9ubS1kbnMtbWFuYWdlci5jCi1AQCAtMTU5Niw2ICsxNTk2LDcgQEAgX3Jlc29sdmNvbmZfcmVzb2x2ZWRfbWFuYWdlZCAodm9pZCkKLSAJCSIvcnVuL3N5c3RlbWQvcmVzb2x2ZS9yZXNvbHYuY29uZiIsCi0gCQkiL2xpYi9zeXN0ZW1kL3Jlc29sdi5jb25mIiwKLSAJCSIvdXNyL2xpYi9zeXN0ZW1kL3Jlc29sdi5jb25mIiwKLSsJCSIvZXRjL3Jlc29sdi1jb25mLnN5c3RlbWQiLAotIAl9OwotIAlHRmlsZSAqZjsKLSAJR0ZpbGVJbmZvICppbmZvOwotLS0gCi0yLjcuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLWRvbi10LXRyeS10by1ydW4tc2Jpbi1kaGNsaWVudC10by1nZXQtdGhlLXZlcnNpb24tbnUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLWRvbi10LXRyeS10by1ydW4tc2Jpbi1kaGNsaWVudC10by1nZXQtdGhlLXZlcnNpb24tbnUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjOWVkOTIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMS1kb24tdC10cnktdG8tcnVuLXNiaW4tZGhjbGllbnQtdG8tZ2V0LXRoZS12ZXJzaW9uLW51LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotRnJvbSA3ZGQ0MGRiNjYwNmMzYjM1NTkzNjVhMDM5NDRjYjk5YWVlNWNlYWJjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotRGF0ZTogVGh1LCA0IEFwciAyMDEzIDEyOjU3OjU4ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGRvbid0IHRyeSB0byBydW4gL3NiaW4vZGhjbGllbnQgdG8gZ2V0IHRoZSB2ZXJzaW9uIG51bWJlciwKLSB0aGlzIGJyZWFrIGNyb3NzLWNvbXBpbGluZwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2J1aWxkIHN5c3RlbSBzcGVjaWZpY10KLQotU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotLS0tCi0gY29uZmlndXJlLmFjIHwgICAgNiAtLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDAgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggY2M2NmU5Yi4uNzE2MzI4NyAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNDg4LDEyICs0ODgsNiBAQCBBU19JRihbdGVzdCAteiAiJHdpdGhfZGhjcGNkIl0sIHdpdGhfZGhjcGNkPXllcykKLSAjIFNlYXJjaCBhbmQgY2hlY2sgdGhlIGV4ZWN1dGFibGVzCi0gaWYgdGVzdCAiJHdpdGhfZGhjbGllbnQiID0gInllcyI7IHRoZW4KLSAJQUNfUEFUSF9QUk9HUyh3aXRoX2RoY2xpZW50LCBkaGNsaWVudCwgbm8sIC9zYmluOi91c3Ivc2JpbjovdXNyL2xvY2FsL3NiaW4pCi0tCWlmIHRlc3QgIiR3aXRoX2RoY2xpZW50IiAhPSAibm8iOyB0aGVuCi0tCQlpZiAhICR3aXRoX2RoY2xpZW50IC0tdmVyc2lvbiAyPiYxIHwgZ3JlcCAtcSAiXmlzYy1kaGNsaWVudC00XC4iOyB0aGVuCi0tCQkJQUNfTVNHX1dBUk4oW0Nhbm5vdCB1c2UgZGhjbGllbnQsIHZlcnNpb24gNC54IGlzIHJlcXVpcmVkXSkKLS0JCQl3aXRoX2RoY2xpZW50PW5vCi0tCQlmaQotLQlmaQotIGZpCi0gaWYgdGVzdCAiJHdpdGhfZGhjcGNkIiA9ICJ5ZXMiOyB0aGVuCi0gCUFDX1BBVEhfUFJPR1Mod2l0aF9kaGNwY2QsIGRoY3BjZCwgbm8sIC9zYmluOi91c3Ivc2JpbjovdXNyL2xvY2FsL3NiaW4pCi0tLSAKLTEuNy42LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMS1zZC1sbGRwLmgtUmVtb3ZlLW5ldC1ldGhlcm5ldC5oLXNlZW1zLXRvLWJlLW92ZXItc3BlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMS1zZC1sbGRwLmgtUmVtb3ZlLW5ldC1ldGhlcm5ldC5oLXNlZW1zLXRvLWJlLW92ZXItc3BlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxOTQ0MjMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLXNkLWxsZHAuaC1SZW1vdmUtbmV0LWV0aGVybmV0Lmgtc2VlbXMtdG8tYmUtb3Zlci1zcGUucGF0Y2gKQEAgLTAsMCArMSw0MCBAQAorRnJvbSAxOGY3MWMxYjQ4NzMwYjg2MDI4MjY1MTdmMmI1YjA4ODI4M2FlOTQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMzEgTWFyIDIwMTcgMTY6NDg6MDAgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSCA1LzddIHNkLWxsZHAuaDogUmVtb3ZlIG5ldC9ldGhlcm5ldC5oIHNlZW1zIHRvIGJlIG92ZXIKKyBzcGVjaWZpZWQKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorIHNyYy9zeXN0ZW1kL3NyYy9saWJzeXN0ZW1kLW5ldHdvcmsvc2QtbGxkcC5jIHwgMSArCisgc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtbGxkcC5oICAgICAgICAgICAgfCAyICstCisgMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9saWJzeXN0ZW1kLW5ldHdvcmsvc2QtbGxkcC5jIGIvc3JjL3N5c3RlbWQvc3JjL2xpYnN5c3RlbWQtbmV0d29yay9zZC1sbGRwLmMKK2luZGV4IDMxZTI0NDguLjc3MjFjYzIgMTAwNjQ0CistLS0gYS9zcmMvc3lzdGVtZC9zcmMvbGlic3lzdGVtZC1uZXR3b3JrL3NkLWxsZHAuYworKysrIGIvc3JjL3N5c3RlbWQvc3JjL2xpYnN5c3RlbWQtbmV0d29yay9zZC1sbGRwLmMKK0BAIC0yMSw2ICsyMSw3IEBACisgI2luY2x1ZGUgIm5tLXNkLWFkYXB0LmgiCisgCisgI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorKyNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KKyAjaW5jbHVkZSA8bGludXgvc29ja2lvcy5oPgorIAorICNpbmNsdWRlICJzZC1sbGRwLmgiCitkaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtbGxkcC5oIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtbGxkcC5oCitpbmRleCAzZjM1ZWViLi42MWIwZTQ1IDEwMDY0NAorLS0tIGEvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtbGxkcC5oCisrKysgYi9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1sbGRwLmgKK0BAIC0yMiw3ICsyMiw3IEBACisgKioqLworIAorICNpbmNsdWRlIDxpbnR0eXBlcy5oPgorLSNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KKysvLyNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KKyAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisgCisgI2luY2x1ZGUgInNkLWV2ZW50LmgiCistLSAKKzIuMTQuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLXN5c3RlbWQteGxvY2FsZS5oLWlzLWRyb3BwZWQtYnktbmV3ZXItZ2xpYmMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAxLXN5c3RlbWQteGxvY2FsZS5oLWlzLWRyb3BwZWQtYnktbmV3ZXItZ2xpYmMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyMzRlMmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMS1zeXN0ZW1kLXhsb2NhbGUuaC1pcy1kcm9wcGVkLWJ5LW5ld2VyLWdsaWJjLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotRnJvbSBhOWJmZTZmMjAyOWQ3NWNhZjI4ZmNkZjNlNzQwODQzY2Y2MzU5NjE1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMjcgSnVuIDIwMTcgMDc6MzE6MjUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzJdIHN5c3RlbWQ6IHhsb2NhbGUuaCBpcyBkcm9wcGVkIGJ5IG5ld2VyIGdsaWJjCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvc3lzdGVtZC9zcmMvYmFzaWMvcGFyc2UtdXRpbC5jIHwgNCAtLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvcGFyc2UtdXRpbC5jIGIvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3BhcnNlLXV0aWwuYwotaW5kZXggOWMyMWU1YS4uZGQ5NWQxZiAxMDA2NDQKLS0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9wYXJzZS11dGlsLmMKLSsrKyBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9wYXJzZS11dGlsLmMKLUBAIC0yNSwxMSArMjUsNyBAQAotICNpbmNsdWRlIDxzdGRpby5oPgotICNpbmNsdWRlIDxzdGRsaWIuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0tI2lmZGVmIF9fR0xJQkNfXwotLSNpbmNsdWRlIDx4bG9jYWxlLmg+Ci0tI2Vsc2UKLSAjaW5jbHVkZSA8bG9jYWxlLmg+Ci0tI2VuZGlmCi0gI2luY2x1ZGUgImFsbG9jLXV0aWwuaCIKLSAjaW5jbHVkZSAiZXh0cmFjdC13b3JkLmgiCi0gI2luY2x1ZGUgIm1hY3JvLmgiCi0tLSAKLTIuMTMuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAyLUZpeC1ubS12ZXJzaW9uLW1hY3JvLWluY2x1ZGVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMi1GaXgtbm0tdmVyc2lvbi1tYWNyby1pbmNsdWRlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE1N2M4My4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAyLUZpeC1ubS12ZXJzaW9uLW1hY3JvLWluY2x1ZGVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotRnJvbSA3Mjc0YmJhZGQzOThhNjliOGJhYmY0NzQzMWY4MGQzNWUwMjI4YzQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQWRyaWFuIEZyZWlob2ZlciA8YWRyaWFuLmZyZWlob2ZlckBnbWFpbC5jb20+Ci1EYXRlOiBNb24sIDE4IEphbiAyMDE2IDA4OjUzOjI2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBubS12ZXJzaW9uLW1hY3JvIGluY2x1ZGVzCi0KLW5tLXZlcnNpb24tbWFjcm9zLmggY2Fubm90IGJlIGZvdW5kIHNpbmNlIGluY2x1ZGUgZGlyZWN0aXZlIGhhcwotYmVlbiBjaGFuZ2VkIGZyb20gIiB0byA8LiBUaGlzIGJyZWFrcyBmb3IgZXhhbXBsZSBnbm9tZS1wYW5lbAotYnVpbGQ6Ci0vdXNyL2luY2x1ZGUvTmV0d29ya01hbmFnZXIvTmV0d29ya01hbmFnZXIuaDozMTozMToKLWZhdGFsIGVycm9yOiBubS12ZXJzaW9uLW1hY3Jvcy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5LgotLS0tCi0gbGlibm0tY29yZS9ubS12ZXJzaW9uLmggICAgIHwgMiArLQotIGxpYm5tLXV0aWwvTmV0d29ya01hbmFnZXIuaCB8IDIgKy0KLSBsaWJubS11dGlsL25tLXZlcnNpb24uaCAgICAgfCAyICstCi0gMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWJubS1jb3JlL25tLXZlcnNpb24uaCBiL2xpYm5tLWNvcmUvbm0tdmVyc2lvbi5oCi1pbmRleCA3MzAzMzBhLi5kNzUxYmMxIDEwMDY0NAotLS0tIGEvbGlibm0tY29yZS9ubS12ZXJzaW9uLmgKLSsrKyBiL2xpYm5tLWNvcmUvbm0tdmVyc2lvbi5oCi1AQCAtMjMsNyArMjMsNyBAQAotIAotICNpbmNsdWRlIDxnbGliLmg+Ci0gCi0tI2luY2x1ZGUgPG5tLXZlcnNpb24tbWFjcm9zLmg+Ci0rI2luY2x1ZGUgIm5tLXZlcnNpb24tbWFjcm9zLmgiCi0gCi0gLyogRGVwcmVjYXRpb24gLyBBdmFpbGFiaWxpdHkgbWFjcm9zICovCi0gCi1kaWZmIC0tZ2l0IGEvbGlibm0tdXRpbC9OZXR3b3JrTWFuYWdlci5oIGIvbGlibm0tdXRpbC9OZXR3b3JrTWFuYWdlci5oCi1pbmRleCBkODNlNGFiLi4zYTk2NGZjIDEwMDY0NAotLS0tIGEvbGlibm0tdXRpbC9OZXR3b3JrTWFuYWdlci5oCi0rKysgYi9saWJubS11dGlsL05ldHdvcmtNYW5hZ2VyLmgKLUBAIC0yOCw3ICsyOCw3IEBACi0gCi0gLyogVGhpcyBoZWFkZXIgbXVzdCBub3QgaW5jbHVkZSBnbGliIG9yIGxpYm5tLiAqLwotIAotLSNpbmNsdWRlIDxubS12ZXJzaW9uLW1hY3Jvcy5oPgotKyNpbmNsdWRlICJubS12ZXJzaW9uLW1hY3Jvcy5oIgotIAotIC8qCi0gICogZGJ1cyBzZXJ2aWNlcyBkZXRhaWxzCi1kaWZmIC0tZ2l0IGEvbGlibm0tdXRpbC9ubS12ZXJzaW9uLmggYi9saWJubS11dGlsL25tLXZlcnNpb24uaAotaW5kZXggNjM4OTVkZC4uNDExMDFhNCAxMDA2NDQKLS0tLSBhL2xpYm5tLXV0aWwvbm0tdmVyc2lvbi5oCi0rKysgYi9saWJubS11dGlsL25tLXZlcnNpb24uaAotQEAgLTIzLDcgKzIzLDcgQEAKLSAKLSAjaW5jbHVkZSA8Z2xpYi5oPgotIAotLSNpbmNsdWRlIDxubS12ZXJzaW9uLW1hY3Jvcy5oPgotKyNpbmNsdWRlICJubS12ZXJzaW9uLW1hY3Jvcy5oIgotIAotIC8qIERlcHJlY2F0aW9uIC8gQXZhaWxhYmlsaXR5IG1hY3JvcyAqLwotIAotLS0gCi0yLjUuMAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAyLUZpeGVkLWNvbmZpZ3VyZS5hYy1GaXgtcGtnY29uZmlnLXN5c3Jvb3QtbG9jYXRpb25zLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMi1GaXhlZC1jb25maWd1cmUuYWMtRml4LXBrZ2NvbmZpZy1zeXNyb290LWxvY2F0aW9ucy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODg0OGQzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMi1GaXhlZC1jb25maWd1cmUuYWMtRml4LXBrZ2NvbmZpZy1zeXNyb290LWxvY2F0aW9ucy5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIDU4M2YwNDQ4ZmI3ZTlhYmEyYjQxMGMwNmVlYzZmNDIwYjQxYTZhMGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQYWJsbyBTYWF2ZWRyYSA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CitEYXRlOiBUdWUsIDEzIE1hciAyMDE4IDE3OjM2OjIwICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggNy83XSBGaXhlZCBjb25maWd1cmUuYWM6IEZpeCBwa2djb25maWcgc3lzcm9vdCBsb2NhdGlvbnMKKworLS0tCisgY29uZmlndXJlLmFjIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCA1MWU1ZWI2Li5jOWQzZTU2IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC02NjksNyArNjY5LDcgQEAgZWxzZQorIAlBQ19ERUZJTkUoV0lUSF9KQU5TU09OLCAxLCBbRGVmaW5lIGlmIEpBTlNTT04gaXMgZW5hYmxlZF0pCisgCisgCUFDX0NIRUNLX1RPT0xTKFJFQURFTEYsIFtldS1yZWFkZWxmIHJlYWRlbGZdKQorLQlKQU5TU09OX0xJQkRJUj1gJFBLR19DT05GSUcgLS12YXJpYWJsZT1saWJkaXIgamFuc3NvbmAKKysJSkFOU1NPTl9MSUJESVI9JHtQS0dfQ09ORklHX1NZU1JPT1RfRElSfWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPWxpYmRpciBqYW5zc29uYAorIAlKQU5TU09OX1NPTkFNRT1gJFJFQURFTEYgLWQgJEpBTlNTT05fTElCRElSL2xpYmphbnNzb24uc28gfHNlZCAtbiAncy8uKlNPTkFNRS4qXFtbXChbXl1dKlwpXV0vXDEvcCdgCisgCisgCWlmIHRlc3QgIiRKQU5TU09OX1NPTkFNRSIgPSAiIjsgdGhlbgorLS0gCisyLjE0LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMi1zb2NrZXQtdXRpbC5oLUluY2x1ZGUtbGludXgtc29ja2lvcy5oLW9uLW11c2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAyLXNvY2tldC11dGlsLmgtSW5jbHVkZS1saW51eC1zb2NraW9zLmgtb24tbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjJiYzZlOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAyLXNvY2tldC11dGlsLmgtSW5jbHVkZS1saW51eC1zb2NraW9zLmgtb24tbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLUZyb20gOThkN2UzYWU1YjE1ZTMwYWYxYmY1ZGQxZDI3OWUxYTc3NGJmMmI4NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDMxIE1hciAyMDE3IDE2OjA1OjA1IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMi81XSBzb2NrZXQtdXRpbC5oOiBJbmNsdWRlIGxpbnV4L3NvY2tpb3MuaCBvbiBtdXNsCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvc3lzdGVtZC9zcmMvYmFzaWMvc29ja2V0LXV0aWwuaCB8IDYgKysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3NvY2tldC11dGlsLmggYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc29ja2V0LXV0aWwuaAotaW5kZXggMjUzNmIwOC4uNzZkNjEwNyAxMDA2NDQKLS0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zb2NrZXQtdXRpbC5oCi0rKysgYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc29ja2V0LXV0aWwuaAotQEAgLTI5LDYgKzI5LDEyIEBACi0gI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4KLSAjaW5jbHVkZSA8bGludXgvaWZfcGFja2V0Lmg+Ci0gCi0rI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKLSsvKiBTSU9DR1NUQU1QTlMgZnJvbSBsaW51eC9hc20tZ2VuZXJpYy5oCi0rICogZm9yIHNyYy9zeXN0ZW1kL3NyYy9saWJzeXN0ZW1kLW5ldHdvcmsvc2QtbGxkcC5jICovCi0rI2luY2x1ZGUgPGxpbnV4L3NvY2tpb3MuaD4KLSsjZW5kaWYKLSsKLSAjaW5jbHVkZSAibWFjcm8uaCIKLSAjaW5jbHVkZSAidXRpbC5oIgotIAotLS0gCi0yLjEyLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMi11c2VyLWZvcm1hdC1zdHJpbmctaW4tZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMi11c2VyLWZvcm1hdC1zdHJpbmctaW4tZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzJiNWMwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDItdXNlci1mb3JtYXQtc3RyaW5nLWluLWdfZGJ1c19tZXNzYWdlX25ld19tZXRob2RfZXJyby5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLUZyb20gYWRjMDY2OGI4NTQyODlhMTFjZmMyOTU5N2I1NTY2YmExODY5ZDE3ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDI3IEp1biAyMDE3IDA3OjMyOjA5IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8yXSB1c2VyIGZvcm1hdCBzdHJpbmcgaW4gZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvciAoKQotCi1UaGlzIGZpeGVzIGZvcm1hdCBlcnJvcnMgd2l0aCAtV2Vycm9yPWZvcm1hdC1zZWN1cml0eQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gc3JjL25tLW1hbmFnZXIuYyB8IDYgKysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvc3JjL25tLW1hbmFnZXIuYyBiL3NyYy9ubS1tYW5hZ2VyLmMKLWluZGV4IGMzZDY1Y2QuLmU4MTQ5MTIgMTAwNjQ0Ci0tLS0gYS9zcmMvbm0tbWFuYWdlci5jCi0rKysgYi9zcmMvbm0tbWFuYWdlci5jCi1AQCAtNDg3MSw2ICs0ODcxLDcgQEAgcHJvcF9zZXRfYXV0aF9kb25lX2NiIChOTUF1dGhDaGFpbiAqY2hhaW4sCi0gCWlmIChlcnJvciB8fCAocmVzdWx0ICE9IE5NX0FVVEhfQ0FMTF9SRVNVTFRfWUVTKSkgewotIAkJcmVwbHkgPSBnX2RidXNfbWVzc2FnZV9uZXdfbWV0aG9kX2Vycm9yIChwZmQtPm1lc3NhZ2UsCi0gCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5NX1BFUk1fREVOSUVEX0VSUk9SLAotKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLAotIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3JfbWVzc2FnZSA9ICJOb3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIikpOwotIAkJaWYgKGVycm9yKQotIAkJCWVycm9yX21lc3NhZ2UgPSBlcnJvci0+bWVzc2FnZTsKLUBAIC00ODgyLDYgKzQ4ODMsNyBAQCBwcm9wX3NldF9hdXRoX2RvbmVfY2IgKE5NQXV0aENoYWluICpjaGFpbiwKLSAJaWYgKCFvYmplY3QpIHsKLSAJCXJlcGx5ID0gZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvciAocGZkLT5tZXNzYWdlLAotIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLkRCdXMuRXJyb3IuVW5rbm93bk9iamVjdCIsCi0rCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyIsCi0gCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcl9tZXNzYWdlID0gIk9iamVjdCBkb2Vzbid0IGV4aXN0LiIpKTsKLSAJCWdvdG8gZG9uZTsKLSAJfQotQEAgLTQ4OTAsNiArNDg5Miw3IEBAIHByb3Bfc2V0X2F1dGhfZG9uZV9jYiAoTk1BdXRoQ2hhaW4gKmNoYWluLAotIAlpZiAoIW5tX2V4cG9ydGVkX29iamVjdF9nZXRfaW50ZXJmYWNlX2J5X3R5cGUgKG9iamVjdCwgcGZkLT5pbnRlcmZhY2VfdHlwZSkpIHsKLSAJCXJlcGx5ID0gZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvciAocGZkLT5tZXNzYWdlLAotIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLkRCdXMuRXJyb3IuSW52YWxpZEFyZ3MiLAotKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLAotIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3JfbWVzc2FnZSA9ICJPYmplY3QgaXMgb2YgdW5leHBlY3RlZCB0eXBlLiIpKTsKLSAJCWdvdG8gZG9uZTsKLSAJfQotQEAgLTQ5MDUsNiArNDkwOCw3IEBAIHByb3Bfc2V0X2F1dGhfZG9uZV9jYiAoTk1BdXRoQ2hhaW4gKmNoYWluLAotIAkJaWYgKGdsb2JhbF9kbnMgJiYgIW5tX2dsb2JhbF9kbnNfY29uZmlnX2lzX2ludGVybmFsIChnbG9iYWxfZG5zKSkgewotIAkJCXJlcGx5ID0gZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvciAocGZkLT5tZXNzYWdlLAotIAkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTk1fUEVSTV9ERU5JRURfRVJST1IsCi0rCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLAotIAkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yX21lc3NhZ2UgPSAiR2xvYmFsIEROUyBjb25maWd1cmF0aW9uIGFscmVhZHkgc2V0IHZpYSBjb25maWd1cmF0aW9uIGZpbGUiKSk7Ci0gCQkJZ290byBkb25lOwotIAkJfQotQEAgLTQ5NDksNiArNDk1Myw3IEBAIGRvX3NldF9wcm9wZXJ0eV9jaGVjayAoZ3BvaW50ZXIgdXNlcl9kYXRhKQotIAlpZiAoIXBmZC0+c3ViamVjdCkgewotIAkJcmVwbHkgPSBnX2RidXNfbWVzc2FnZV9uZXdfbWV0aG9kX2Vycm9yIChwZmQtPm1lc3NhZ2UsCi0gCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5NX1BFUk1fREVOSUVEX0VSUk9SLAotKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLAotIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3JfbWVzc2FnZSA9ICJDb3VsZCBub3QgZGV0ZXJtaW5lIHJlcXVlc3QgVUlELiIpKTsKLSAJCWdvdG8gb3V0OwotIAl9Ci1AQCAtNDk1OCw2ICs0OTYzLDcgQEAgZG9fc2V0X3Byb3BlcnR5X2NoZWNrIChncG9pbnRlciB1c2VyX2RhdGEpCi0gCWlmICghY2hhaW4pIHsKLSAJCXJlcGx5ID0gZ19kYnVzX21lc3NhZ2VfbmV3X21ldGhvZF9lcnJvciAocGZkLT5tZXNzYWdlLAotIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOTV9QRVJNX0RFTklFRF9FUlJPUiwKLSsJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIiwKLSAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yX21lc3NhZ2UgPSAiQ291bGQgbm90IGF1dGhlbnRpY2F0ZSByZXF1ZXN0LiIpKTsKLSAJCWdvdG8gb3V0OwotIAl9Ci0tLSAKLTIuMTMuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAzLURlZmluZS1FVEhfQUxFTi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDMtRGVmaW5lLUVUSF9BTEVOLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzY5MTRmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDMtRGVmaW5lLUVUSF9BTEVOLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotRnJvbSAxNmMzZGM3YTQwNzEwMTI0M2QyMDU2ZDJjOTNlNjFkY2UxYTA1MzUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMzEgTWFyIDIwMTcgMTY6MDg6NDUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAzLzVdIERlZmluZSBFVEhfQUxFTgotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gbGlibm0tY29yZS9ubS11dGlscy5oICAgICAgICAgIHwgMSArCi0gc3JjL3BsYXRmb3JtL3dpZmkvd2lmaS11dGlscy5oIHwgMiArKwotIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9saWJubS1jb3JlL25tLXV0aWxzLmggYi9saWJubS1jb3JlL25tLXV0aWxzLmgKLWluZGV4IDE1NmNjYWUuLjY4ZTIyMmIgMTAwNjQ0Ci0tLS0gYS9saWJubS1jb3JlL25tLXV0aWxzLmgKLSsrKyBiL2xpYm5tLWNvcmUvbm0tdXRpbHMuaAotQEAgLTI5LDYgKzI5LDcgQEAKLSAKLSAvKiBGb3IgRVRIX0FMRU4gYW5kIElORklOSUJBTkRfQUxFTiAqLwotIC8vI2luY2x1ZGUgPGxpbnV4L2lmX2V0aGVyLmg+Ci0rI2RlZmluZSBFVEhfQUxFTgk2CQkvKiBPY3RldHMgaW4gb25lIGV0aGVybmV0IGFkZHIJICovCi0gI2luY2x1ZGUgPGxpbnV4L2lmX2luZmluaWJhbmQuaD4KLSAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotIAotZGlmZiAtLWdpdCBhL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaCBiL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaAotaW5kZXggODRmNWNlOS4uMzNhODM4ZCAxMDA2NDQKLS0tLSBhL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaAotKysrIGIvc3JjL3BsYXRmb3JtL3dpZmkvd2lmaS11dGlscy5oCi1AQCAtMjQsNiArMjQsOCBAQAotIAotIC8vI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgotIAotKyNkZWZpbmUgRVRIX0FMRU4JNgkJLyogT2N0ZXRzIGluIG9uZSBldGhlcm5ldCBhZGRyCSAqLwotKwotICNpbmNsdWRlICJubS1kYnVzLWludGVyZmFjZS5oIgotIAotIHR5cGVkZWYgc3RydWN0IFdpZmlEYXRhIFdpZmlEYXRhOwotLS0gCi0yLjEyLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMy1Eby1ub3QtY3JlYXRlLXNldHRpbmdzLXNldHRpbmdzLXByb3BlcnR5LWRvY3VtZW50YXRpLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwMy1Eby1ub3QtY3JlYXRlLXNldHRpbmdzLXNldHRpbmdzLXByb3BlcnR5LWRvY3VtZW50YXRpLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyNDg1ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDAzLURvLW5vdC1jcmVhdGUtc2V0dGluZ3Mtc2V0dGluZ3MtcHJvcGVydHktZG9jdW1lbnRhdGkucGF0Y2gKQEAgLTAsMCArMSw3NyBAQAorRnJvbSA0ZjAwMGE0YTE5OTc1ZDZhYmE3MTQyN2U2OTNjZDFlZDA4MGFiZGE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IFRodSwgMjIgTWFyIDIwMTggMTE6MDg6MzAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gRG8gbm90IGNyZWF0ZSBzZXR0aW5ncyBzZXR0aW5ncy9wcm9wZXJ0eSBkb2N1bWVudGF0aW9uCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0l0IHdhcyB0cmllZCB0byBnZXQgdGhpcyB3b3JrIGJ1dCBnaSAvIEdpclJlcG9zaXRvcnkgY291bGQgbm90IGJlIGZvdW5kIGJ5CitweXRob24uIEFueXdheSBpdCBpcyBub3QgbmVjZXNzYXJ5IGZvciB1cyB0byBoYXZlIHRoZSBzZXR0aW5ncy9wcm9wZXJ0eSBkb2NzLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgTWFrZWZpbGUuYW0gIHwgMTggKystLS0tLS0tLS0tLS0tLS0tCisgY29uZmlndXJlLmFjIHwgIDQgLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KK2luZGV4IDYzOTkyMWQuLjMxNGE2MWQgMTAwNjQ0CistLS0gYS9NYWtlZmlsZS5hbQorKysrIGIvTWFrZWZpbGUuYW0KK0BAIC05NjEsOSArOTYxLDcgQEAgZW5kaWYKKyBpZiBIQVZFX0lOVFJPU1BFQ1RJT04KKyAKKyBsaWJubV9ub2luc3RfZGF0YSA9IFwKKy0JbGlibm0vbm0tcHJvcGVydHktZG9jcy54bWwgXAorIAlsaWJubS9ubS1zZXR0aW5ncy1kb2NzLW92ZXJyaWRlcy54bWwgXAorLQlsaWJubS9ubS1zZXR0aW5ncy1kb2NzLnhtbCBcCisgCWxpYm5tL25tLXNldHRpbmdzLWtleWZpbGUtZG9jcy54bWwgXAorIAlsaWJubS9ubS1zZXR0aW5ncy1pZmNmZy1yaC1kb2NzLnhtbAorIAorQEAgLTMzMTcsMjMgKzMzMTUsMTEgQEAgJChjbGllbnRzX2NvbW1vbl9saWJubWNfYmFzZV9sYV9PQkpFQ1RTKTogJChsaWJubV9jb3JlX2xpYl9oX3B1Yl9ta2VudW1zKQorICQoY2xpZW50c19jb21tb25fbGlibm1jX2Jhc2VfbGFfT0JKRUNUUyk6IGNsaWVudHMvY29tbW9uLy5kaXJzdGFtcAorIAorIGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jID0gY2xpZW50cy9jb21tb24vc2V0dGluZ3MtZG9jcy5jCistaWYgSEFWRV9JTlRST1NQRUNUSU9OCistJChjbGllbnRzX2NvbW1vbl9zZXR0aW5nc19kb2NfYyk6IGNsaWVudHMvY29tbW9uL3NldHRpbmdzLWRvY3MueHNsIGxpYm5tL25tLXByb3BlcnR5LWRvY3MueG1sIGNsaWVudHMvY29tbW9uLy5kaXJzdGFtcAorLQkkKEFNX1ZfR0VOKSAkKFhTTFRQUk9DKSAtLW91dHB1dCAkQCAkPCAkKHdvcmQgMiwkXikKKy1ESVNUQ0xFQU5GSUxFUyArPSAkKGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jKQorLWNoZWNrLWxvY2FsLXNldHRpbmdzLWRvY3M6ICQoY2xpZW50c19jb21tb25fc2V0dGluZ3NfZG9jX2MpCistCUBpZiB0ZXN0IC16ICIkJE5NVFNUX05PX0NIRUNLX1NFVFRJTkdTX0RPQ1MiIDsgdGhlbiAgXAorLQkJaWYgISBjbXAgLXMgIiQoc3JjZGlyKS8kKGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jKS5pbiIgIiQoYnVpbGRkaXIpLyQoY2xpZW50c19jb21tb25fc2V0dGluZ3NfZG9jX2MpIiA7IHRoZW4gXAorLQkJCWVjaG8gIlRoZSBnZW5lcmF0ZWQgZmlsZSBcIiQoYnVpbGRkaXIpLyQoY2xpZW50c19jb21tb25fc2V0dGluZ3NfZG9jX2MpXCIgZGlmZmVycyBmcm9tIHRoZSBzb3VyY2UgZmlsZSBcIiQoc3JjZGlyKS8kKGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jKS5pblwiLiBZb3UgcHJvYmFibHkgc2hvdWxkIGNvcHkgdGhlIGdlbmVyYXRlZCBmaWxlIG92ZXIgdG8gdGhlIHNvdXJjZSBmaWxlLiBZb3UgY2FuIHNraXAgdGhpcyB0ZXN0IGJ5IHNldHRpbmcgXCQkTk1UU1RfTk9fQ0hFQ0tfU0VUVElOR1NfRE9DUz15ZXMiOyBcCistCQkJZmFsc2U7IFwKKy0JCWZpO1wKKy0JZmkKKy1jaGVja19sb2NhbCArPSBjaGVjay1sb2NhbC1zZXR0aW5ncy1kb2NzCistZWxzZQorKworICQoY2xpZW50c19jb21tb25fc2V0dGluZ3NfZG9jX2MpOiAkKGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jKS5pbiBjbGllbnRzL2NvbW1vbi8uZGlyc3RhbXAKKyAJJChBTV9WX0dFTikgY3AgIiQoc3JjZGlyKS8kKGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jKS5pbiIgIiQoYnVpbGRkaXIpLyQoY2xpZW50c19jb21tb25fc2V0dGluZ3NfZG9jX2MpIgorIGNoZWNrLWxvY2FsLXNldHRpbmdzLWRvY3M6CistZW5kaWYKKysKKyBFWFRSQV9ESVNUICs9IFwKKyAJJChjbGllbnRzX2NvbW1vbl9zZXR0aW5nc19kb2NfYykgXAorIAkkKGNsaWVudHNfY29tbW9uX3NldHRpbmdzX2RvY19jKS5pbgorZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggYzlkM2U1Ni4uNDA3MjIyZSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtMTI4NiwxMCArMTI4Niw2IEBAIEdUS19ET0NfQ0hFQ0soMS4wKQorICMgY2hlY2sgaWYgd2UgY2FuIGJ1aWxkIHNldHRpbmcgcHJvcGVydHkgZG9jdW1lbnRhdGlvbgorIGJ1aWxkX2RvY3M9bm8KKyBpZiB0ZXN0IC1uICIkSU5UUk9TUEVDVElPTl9NQUtFRklMRSI7IHRoZW4KKy0JIyBJZiBnLWkgaXMgaW5zdGFsbGVkIHdlIGtub3cgd2UgaGF2ZSBweXRob24sIGJ1dCB3ZSBtaWdodCBub3QgaGF2ZSBweWdvYmplY3QKKy0JaWYgISAiJFBZVEhPTiIgLWMgJ2Zyb20gZ2kucmVwb3NpdG9yeSBpbXBvcnQgR09iamVjdCcgPiYgL2Rldi9udWxsOyB0aGVuCistCQlBQ19NU0dfRVJST1IoWyItLWVuYWJsZS1pbnRyb3NwZWN0aW9uIGFpbXMgdG8gYnVpbGQgdGhlIHNldHRpbmdzIGRvY3VtZW50YXRpb24uIFRoaXMgcmVxdWlyZXMgR09iamVjdCBpbnRyb3NwZWN0aW9uIGZvciBweXRob24gKHB5Z29iamVjdCldKQorLQlmaQorIAorIAlBQ19QQVRIX1BST0coUEVSTCwgcGVybCkKKyAJaWYgdGVzdCAteiAiJFBFUkwiOyB0aGVuCistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDA0LURlZmluZS1taXNzaW5nLWZlYXR1cmVzLXRvLWNhdGVyLWZvci1tdXNsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwNC1EZWZpbmUtbWlzc2luZy1mZWF0dXJlcy10by1jYXRlci1mb3ItbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjdjOWFlOS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci8wMDA0LURlZmluZS1taXNzaW5nLWZlYXR1cmVzLXRvLWNhdGVyLWZvci1tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotRnJvbSAyMTUzMTA5ZTYwZTM2MmUwZDA5MjE1ZDUyOWJmMDAxNzZmMzFhM2U3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMzEgTWFyIDIwMTcgMTY6MDk6NDEgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCA0LzVdIERlZmluZSBtaXNzaW5nIGZlYXR1cmVzIHRvIGNhdGVyIGZvciBtdXNsCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvc3lzdGVtZC9zZC1hZGFwdC9ubS1zZC1hZGFwdC5oIHwgMiArLQotIHNyYy9zeXN0ZW1kL3NyYy9iYXNpYy9wYXJzZS11dGlsLmMgfCA1ICsrKystCi0gc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3N0ZGlvLXV0aWwuaCB8IDIgKysKLSBzcmMvc3lzdGVtZC9zcmMvYmFzaWMvdXRpbC5oICAgICAgIHwgNSArKysrKwotIHNyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWV2ZW50LmggfCA0IC0tLS0KLSA1IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvc3lzdGVtZC9zZC1hZGFwdC9ubS1zZC1hZGFwdC5oIGIvc3JjL3N5c3RlbWQvc2QtYWRhcHQvbm0tc2QtYWRhcHQuaAotaW5kZXggY2YyN2MxYS4uNzJjMWI4OSAxMDA2NDQKLS0tLSBhL3NyYy9zeXN0ZW1kL3NkLWFkYXB0L25tLXNkLWFkYXB0LmgKLSsrKyBiL3NyYy9zeXN0ZW1kL3NkLWFkYXB0L25tLXNkLWFkYXB0LmgKLUBAIC0xMTksNyArMTE5LDcgQEAgR19TVE1UX1NUQVJUIHsgXAotICMgIGlmZGVmIEhBVkVfX19TRUNVUkVfR0VURU5WCi0gIyAgICBkZWZpbmUgc2VjdXJlX2dldGVudiBfX3NlY3VyZV9nZXRlbnYKLSAjICBlbHNlCi0tIyAgICBlcnJvciBuZWl0aGVyIHNlY3VyZV9nZXRlbnYgbm9yIF9fc2VjdXJlX2dldGVudiBpcyBhdmFpbGFibGUKLSsjICAgIGRlZmluZSBzZWN1cmVfZ2V0ZW52IGdldGVudgotICMgIGVuZGlmCi0gI2VuZGlmCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3BhcnNlLXV0aWwuYyBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9wYXJzZS11dGlsLmMKLWluZGV4IDI3Mzg2NjMuLjljMjFlNWEgMTAwNjQ0Ci0tLS0gYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvcGFyc2UtdXRpbC5jCi0rKysgYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvcGFyc2UtdXRpbC5jCi1AQCAtMjUsOCArMjUsMTEgQEAKLSAjaW5jbHVkZSA8c3RkaW8uaD4KLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotKyNpZmRlZiBfX0dMSUJDX18KLSAjaW5jbHVkZSA8eGxvY2FsZS5oPgotLQotKyNlbHNlCi0rI2luY2x1ZGUgPGxvY2FsZS5oPgotKyNlbmRpZgotICNpbmNsdWRlICJhbGxvYy11dGlsLmgiCi0gI2luY2x1ZGUgImV4dHJhY3Qtd29yZC5oIgotICNpbmNsdWRlICJtYWNyby5oIgotZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zdGRpby11dGlsLmggYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc3RkaW8tdXRpbC5oCi1pbmRleCBiZDExNDRiLi5jOTJlOTM1IDEwMDY0NAotLS0tIGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3N0ZGlvLXV0aWwuaAotKysrIGIvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3N0ZGlvLXV0aWwuaAotQEAgLTE5LDcgKzE5LDkgQEAKLSAgIGFsb25nIHdpdGggc3lzdGVtZDsgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotICoqKi8KLSAKLSsjaWZkZWYgX19HTElCQ19fCi0gI2luY2x1ZGUgPHByaW50Zi5oPgotKyNlbmRpZgotICNpbmNsdWRlIDxzdGRhcmcuaD4KLSAjaW5jbHVkZSA8c3RkaW8uaD4KLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci1kaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3V0aWwuaCBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy91dGlsLmgKLWluZGV4IGJiMmZjMzEuLmZlMDc0YTUgMTAwNjQ0Ci0tLS0gYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvdXRpbC5oCi0rKysgYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvdXRpbC5oCi1AQCAtNDYsNiArNDYsMTEgQEAKLSAjaW5jbHVkZSAibWlzc2luZy5oIgotICNpbmNsdWRlICJ0aW1lLXV0aWwuaCIKLSAKLSsjaWYgIWRlZmluZWQoX19HTElCQ19fKQotK3R5cGVkZWYgaW50ICgqX19jb21wYXJfZm5fdCkgKGNvbnN0IHZvaWQqLCBjb25zdCB2b2lkKik7Ci0rdHlwZWRlZiBfX2NvbXBhcl9mbl90IGNvbXBhcmlzb25fZm5fdDsKLSsjZW5kaWYKLSsKLSBzaXplX3QgcGFnZV9zaXplKHZvaWQpIF9wdXJlXzsKLSAjZGVmaW5lIFBBR0VfQUxJR04obCkgQUxJR05fVE8oKGwpLCBwYWdlX3NpemUoKSkKLSAKLWRpZmYgLS1naXQgYS9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1ldmVudC5oIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtZXZlbnQuaAotaW5kZXggY2MyNmI3ZC4uYzdlMDAwNCAxMDA2NDQKLS0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWV2ZW50LmgKLSsrKyBiL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWV2ZW50LmgKLUBAIC02OSwxMSArNjksNyBAQCB0eXBlZGVmIGludCAoKnNkX2V2ZW50X2hhbmRsZXJfdCkoc2RfZXZlbnRfc291cmNlICpzLCB2b2lkICp1c2VyZGF0YSk7Ci0gdHlwZWRlZiBpbnQgKCpzZF9ldmVudF9pb19oYW5kbGVyX3QpKHNkX2V2ZW50X3NvdXJjZSAqcywgaW50IGZkLCB1aW50MzJfdCByZXZlbnRzLCB2b2lkICp1c2VyZGF0YSk7Ci0gdHlwZWRlZiBpbnQgKCpzZF9ldmVudF90aW1lX2hhbmRsZXJfdCkoc2RfZXZlbnRfc291cmNlICpzLCB1aW50NjRfdCB1c2VjLCB2b2lkICp1c2VyZGF0YSk7Ci0gdHlwZWRlZiBpbnQgKCpzZF9ldmVudF9zaWduYWxfaGFuZGxlcl90KShzZF9ldmVudF9zb3VyY2UgKnMsIGNvbnN0IHN0cnVjdCBzaWduYWxmZF9zaWdpbmZvICpzaSwgdm9pZCAqdXNlcmRhdGEpOwotLSNpZiBkZWZpbmVkIF9fVVNFX1BPU0lYMTk5MzA5IHx8IGRlZmluZWQgX19VU0VfWE9QRU5fRVhURU5ERUQKLSB0eXBlZGVmIGludCAoKnNkX2V2ZW50X2NoaWxkX2hhbmRsZXJfdCkoc2RfZXZlbnRfc291cmNlICpzLCBjb25zdCBzaWdpbmZvX3QgKnNpLCB2b2lkICp1c2VyZGF0YSk7Ci0tI2Vsc2UKLS10eXBlZGVmIHZvaWQqIHNkX2V2ZW50X2NoaWxkX2hhbmRsZXJfdDsKLS0jZW5kaWYKLSAKLSBpbnQgc2RfZXZlbnRfZGVmYXVsdChzZF9ldmVudCAqKmUpOwotIAotLS0gCi0yLjEyLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwNS1zZC1sbGRwLmgtUmVtb3ZlLW5ldC1ldGhlcm5ldC5oLXNlZW1zLXRvLWJlLW92ZXItc3BlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvMDAwNS1zZC1sbGRwLmgtUmVtb3ZlLW5ldC1ldGhlcm5ldC5oLXNlZW1zLXRvLWJlLW92ZXItc3BlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNGEwNGM3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyLzAwMDUtc2QtbGxkcC5oLVJlbW92ZS1uZXQtZXRoZXJuZXQuaC1zZWVtcy10by1iZS1vdmVyLXNwZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLUZyb20gOWU5ZTU4MTQ0NTZlYzIzYjlmYzY2OWQzNDJiZjlkOGY3ZWU0OWZjMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDMxIE1hciAyMDE3IDE2OjQ4OjAwIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggNS81XSBzZC1sbGRwLmg6IFJlbW92ZSBuZXQvZXRoZXJuZXQuaCBzZWVtcyB0byBiZSBvdmVyCi0gc3BlY2lmaWVkCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1sbGRwLmggfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLUluZGV4OiBOZXR3b3JrTWFuYWdlci0xLjQuMi9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1sbGRwLmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBOZXR3b3JrTWFuYWdlci0xLjQuMi5vcmlnL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWxsZHAuaAotKysrIE5ldHdvcmtNYW5hZ2VyLTEuNC4yL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWxsZHAuaAotQEAgLTIyLDcgKzIyLDcgQEAKLSAqKiovCi0gCi0gI2luY2x1ZGUgPGludHR5cGVzLmg+Ci0tI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgotKy8vI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgotICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSAKLSAjaW5jbHVkZSAic2QtZXZlbnQuaCIKLUluZGV4OiBOZXR3b3JrTWFuYWdlci0xLjQuMi9zcmMvc3lzdGVtZC9zcmMvbGlic3lzdGVtZC1uZXR3b3JrL3NkLWxsZHAuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIE5ldHdvcmtNYW5hZ2VyLTEuNC4yLm9yaWcvc3JjL3N5c3RlbWQvc3JjL2xpYnN5c3RlbWQtbmV0d29yay9zZC1sbGRwLmMKLSsrKyBOZXR3b3JrTWFuYWdlci0xLjQuMi9zcmMvc3lzdGVtZC9zcmMvbGlic3lzdGVtZC1uZXR3b3JrL3NkLWxsZHAuYwotQEAgLTIxLDYgKzIxLDcgQEAKLSAjaW5jbHVkZSAibm0tc2QtYWRhcHQuaCIKLSAKLSAjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+Ci0rI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgotIAotICNpbmNsdWRlICJzZC1sbGRwLmgiCi0gCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci9tdXNsLzAwMDEtbXVzbC1iYXNpYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyL211c2wvMDAwMS1tdXNsLWJhc2ljLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkMjA4ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci9tdXNsLzAwMDEtbXVzbC1iYXNpYy5wYXRjaApAQCAtMCwwICsxLDUzIEBACitGcm9tIGU5MmRlNzQwOWEzZTEwN2Y5MGQxMDhhOWM1ZDQ5YmQwNDE4Mjk2ZGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogVGh1LCAyMiBNYXIgMjAxOCAxNzo1NDoxMCArMDEwMAorU3ViamVjdDogW1BBVENIIDEvNF0gVXN1YWwgZml4IGZvciBtdXNsIGxpYmMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1N0b2xlbiBmcm9tIFsxXSBhbmQgcHJldHR5ZmllZCBzbGlnaHRseQorCitbMV0gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWRsaW51eC92b2lkLXBhY2thZ2VzL3RyZWUvbWFzdGVyL3NyY3BrZ3MvTmV0d29ya01hbmFnZXIvcGF0Y2hlcworCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3N0ZGlvLXV0aWwuaCB8IDIgKysKKyBzcmMvc3lzdGVtZC9zcmMvYmFzaWMvdXRpbC5oICAgICAgIHwgNSArKysrKworIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc3RkaW8tdXRpbC5oIGIvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3N0ZGlvLXV0aWwuaAoraW5kZXggYmQxMTQ0Yi4uOWVhZmFjYiAxMDA2NDQKKy0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zdGRpby11dGlsLmgKKysrKyBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zdGRpby11dGlsLmgKK0BAIC0xOSw3ICsxOSw5IEBACisgICBhbG9uZyB3aXRoIHN5c3RlbWQ7IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqKiovCisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxwcmludGYuaD4KKysjZW5kaWYKKyAjaW5jbHVkZSA8c3RkYXJnLmg+CisgI2luY2x1ZGUgPHN0ZGlvLmg+CisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy91dGlsLmggYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvdXRpbC5oCitpbmRleCBiMzFkZmQxLi45YjcwMzJjIDEwMDY0NAorLS0tIGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3V0aWwuaAorKysrIGIvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3V0aWwuaAorQEAgLTQ2LDYgKzQ2LDExIEBACisgI2luY2x1ZGUgIm1pc3NpbmcuaCIKKyAjaW5jbHVkZSAidGltZS11dGlsLmgiCisgCisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKyt0eXBlZGVmIGludCAoKl9fY29tcGFyX2ZuX3QpIChjb25zdCB2b2lkKiwgY29uc3Qgdm9pZCopOworK3R5cGVkZWYgX19jb21wYXJfZm5fdCBjb21wYXJpc29uX2ZuX3Q7CisrI2VuZGlmCisrCisgc2l6ZV90IHBhZ2Vfc2l6ZSh2b2lkKSBfcHVyZV87CisgI2RlZmluZSBQQUdFX0FMSUdOKGwpIEFMSUdOX1RPKChsKSwgcGFnZV9zaXplKCkpCisgCistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci9tdXNsLzAwMDItbXVzbC1kbG9wZW4tY29uZmlndXJlLWFjLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvbXVzbC8wMDAyLW11c2wtZGxvcGVuLWNvbmZpZ3VyZS1hYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDhjY2NiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvbXVzbC8wMDAyLW11c2wtZGxvcGVuLWNvbmZpZ3VyZS1hYy5wYXRjaApAQCAtMCwwICsxLDM1IEBACitGcm9tIDU3MjM5ZmRhNTZiNjhhOGYzZTQxM2Y3YjZhZjUyOTBiYTBkODY2MzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogVGh1LCAyMiBNYXIgMjAxOCAxODoxODowNiArMDEwMAorU3ViamVjdDogW1BBVENIIDIvNF0gbXVzbDogZGxvcGVuIGlzIGluY2x1ZGVkIHNvIExEX0xJQlM9IiIgaW5zdGVhZCBvZgorIExEX0xJQlM9Im5vbmUgcmVxdWlyZWQiCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTdG9sZW4gZnJvbSBbMV0gYW5kIHByZXR0eWZpZWQgc2xpZ2h0bHkKKworWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkbGludXgvdm9pZC1wYWNrYWdlcy90cmVlL21hc3Rlci9zcmNwa2dzL05ldHdvcmtNYW5hZ2VyL3BhdGNoZXMKKworU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KKy0tLQorIGNvbmZpZ3VyZS5hYyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCA0ODdhMjY2Li45NmFlNGY3IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0zMDUsNiArMzA1LDcgQEAgZG5sCisgZG5sIENoZWNrcyBmb3IgbGliZGwgLSBvbiBjZXJ0YWluIHBsYXRmb3JtcyBpdHMgcGFydCBvZiBsaWJjCisgZG5sCisgQUNfU0VBUkNIX0xJQlMoW2Rsb3Blbl0sIFtkbCBkbGRdLCBbXSwgW2FjX2N2X3NlYXJjaF9kbG9wZW49XSkKKytBU19JRihbdGVzdCAiJGFjX2N2X3NlYXJjaF9kbG9wZW4iID0gIm5vbmUgcmVxdWlyZWQiXSxbYWNfY3Zfc2VhcmNoX2Rsb3Blbj0iIl0pCisgQUNfU1VCU1QoW0RMX0xJQlNdLCAiJGFjX2N2X3NlYXJjaF9kbG9wZW4iKQorIAorIFBLR19DSEVDS19NT0RVTEVTKEdMSUIsIFtnaW8tdW5peC0yLjAgPj0gMi4zNy42IGdtb2R1bGUtMi4wXSwKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyL211c2wvMDAwMy1tdXNsLW5ldHdvcmstc3VwcG9ydC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyL211c2wvMDAwMy1tdXNsLW5ldHdvcmstc3VwcG9ydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGQxN2I2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvbXVzbC8wMDAzLW11c2wtbmV0d29yay1zdXBwb3J0LnBhdGNoCkBAIC0wLDAgKzEsNzIgQEAKK0Zyb20gNzE0YjQ3MzFhMjM4NjUzZTljN2Q4ODVjMGRlZTEwNjc3YjBhNGRmMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBUaHUsIDIyIE1hciAyMDE4IDE4OjI0OjA3ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMy80XSBtdXNsOiBuZXR3b3JrIHN1cHBvcnQKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1N0b2xlbiBmcm9tIFsxXSBhbmQgcHJldHR5ZmllZCBzbGlnaHRseQorCitbMV0gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWRsaW51eC92b2lkLXBhY2thZ2VzL3RyZWUvbWFzdGVyL3NyY3BrZ3MvTmV0d29ya01hbmFnZXIvcGF0Y2hlcworCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgbGlibm0tY29yZS9ubS11dGlscy5oICAgICAgICAgICAgICAgfCA0ICsrKysKKyBzcmMvcGxhdGZvcm0vd2lmaS93aWZpLXV0aWxzLmggICAgICB8IDQgKysrKworIHNyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zb2NrZXQtdXRpbC5oIHwgNSArKysrKworIDMgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvbGlibm0tY29yZS9ubS11dGlscy5oIGIvbGlibm0tY29yZS9ubS11dGlscy5oCitpbmRleCBkZjkyODRiLi4yYmNmNGI4IDEwMDY0NAorLS0tIGEvbGlibm0tY29yZS9ubS11dGlscy5oCisrKysgYi9saWJubS1jb3JlL25tLXV0aWxzLmgKK0BAIC0zMCw3ICszMCwxMSBAQAorICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisgCisgLyogRm9yIEVUSF9BTEVOIGFuZCBJTkZJTklCQU5EX0FMRU4gKi8KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPGxpbnV4L2lmX2V0aGVyLmg+CisrI2Vsc2UKKysjZGVmaW5lIEVUSF9BTEVOCTYJCS8qIE9jdGV0cyBpbiBvbmUgZXRoZXJuZXQgYWRkcgkgKi8KKysjZW5kaWYKKyAjaW5jbHVkZSA8bGludXgvaWZfaW5maW5pYmFuZC5oPgorIAorICNpbmNsdWRlICJubS1jb3JlLWVudW0tdHlwZXMuaCIKK2RpZmYgLS1naXQgYS9zcmMvcGxhdGZvcm0vd2lmaS93aWZpLXV0aWxzLmggYi9zcmMvcGxhdGZvcm0vd2lmaS93aWZpLXV0aWxzLmgKK2luZGV4IDcwNTcxN2IuLmRhM2VkYzQgMTAwNjQ0CistLS0gYS9zcmMvcGxhdGZvcm0vd2lmaS93aWZpLXV0aWxzLmgKKysrKyBiL3NyYy9wbGF0Zm9ybS93aWZpL3dpZmktdXRpbHMuaAorQEAgLTIyLDcgKzIyLDExIEBACisgI2lmbmRlZiBfX1dJRklfVVRJTFNfSF9fCisgI2RlZmluZSBfX1dJRklfVVRJTFNfSF9fCisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KKysjZWxzZSAvKiBtdXNsIGxpYmMgKi8KKysjZGVmaW5lIEVUSF9BTEVOCTYJCS8qIE9jdGV0cyBpbiBvbmUgZXRoZXJuZXQgYWRkcgkgKi8KKysjZW5kaWYKKyAKKyAjaW5jbHVkZSAibm0tZGJ1cy1pbnRlcmZhY2UuaCIKKyAKK2RpZmYgLS1naXQgYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc29ja2V0LXV0aWwuaCBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zb2NrZXQtdXRpbC5oCitpbmRleCBkN2UyZDg1Li5kMTA5Yzg0IDEwMDY0NAorLS0tIGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3NvY2tldC11dGlsLmgKKysrKyBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zb2NrZXQtdXRpbC5oCitAQCAtMjksNiArMjksMTEgQEAKKyAjaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgorICNpbmNsdWRlIDxsaW51eC9pZl9pbmZpbmliYW5kLmg+CisgI2luY2x1ZGUgPGxpbnV4L2lmX3BhY2tldC5oPgorKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisrLyogU0lPQ0dTVEFNUE5TIGZyb20gbGludXgvYXNtLWdlbmVyaWMuaAorKyAqIGZvciBzcmMvc3lzdGVtZC9zcmMvbGlic3lzdGVtZC1uZXR3b3JrL3NkLWxsZHAuYyAqLworKyNpbmNsdWRlIDxsaW51eC9zb2NraW9zLmg+CisrI2VuZGlmCisgCisgI2luY2x1ZGUgIm1hY3JvLmgiCisgI2luY2x1ZGUgIm1pc3NpbmcuaCIKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyL211c2wvMDAwNC1tdXNsLXByb2Nlc3MtdXRpbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyL211c2wvMDAwNC1tdXNsLXByb2Nlc3MtdXRpbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzU1Y2U4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvbXVzbC8wMDA0LW11c2wtcHJvY2Vzcy11dGlsLnBhdGNoCkBAIC0wLDAgKzEsNjIgQEAKK0Zyb20gZDUxM2M4YmZjOTgyZGJkOTc2NjE3MTc4YjA0MGM1MTJjOTU3MTBiNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBUaHUsIDIyIE1hciAyMDE4IDE4OjI5OjAwICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggNC80XSBtdXNsOiBwcm9jZXNzLXV0aWwKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1N0b2xlbiBmcm9tIFsxXSBhbmQgcHJldHR5ZmllZCBzbGlnaHRseQorCitbMV0gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWRsaW51eC92b2lkLXBhY2thZ2VzL3RyZWUvbWFzdGVyL3NyY3BrZ3MvTmV0d29ya01hbmFnZXIvcGF0Y2hlcworCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3Byb2Nlc3MtdXRpbC5jIHwgOSArKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvcHJvY2Vzcy11dGlsLmMgYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvcHJvY2Vzcy11dGlsLmMKK2luZGV4IDI3MjAzMGQuLjQ4NWYxZGIgMTAwNjQ0CistLS0gYS9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvcHJvY2Vzcy11dGlsLmMKKysrKyBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9wcm9jZXNzLXV0aWwuYworQEAgLTM2LDYgKzM2LDkgQEAKKyAjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKyAjaW5jbHVkZSA8c3lzbG9nLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorKyNpZm5kZWYgX19HTElCQ19fCisrI2luY2x1ZGUgPHB0aHJlYWQuaD4KKysjZW5kaWYKKyAjaWYgMCAvKiBOTV9JR05PUkVEICovCisgI2lmIEhBVkVfVkFMR1JJTkRfVkFMR1JJTkRfSAorICNpbmNsdWRlIDx2YWxncmluZC92YWxncmluZC5oPgorQEAgLTEwMTUsMTEgKzEwMTgsMTMgQEAgc3RhdGljIHZvaWQgcmVzZXRfY2FjaGVkX3BpZCh2b2lkKSB7CisgICAgICAgICBjYWNoZWRfcGlkID0gQ0FDSEVEX1BJRF9VTlNFVDsKKyB9CisgCisrI2lmZGVmIF9fR0xJQkNfXworIC8qIFdlIHVzZSBnbGliYyBfX3JlZ2lzdGVyX2F0Zm9yaygpICsgX19kc29faGFuZGxlIGRpcmVjdGx5IGhlcmUsIGFzIHRoZXkgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgZ2xpYmMKKyAgKiBoZWFkZXJzLiBfX3JlZ2lzdGVyX2F0Zm9yaygpIGlzIG1vc3RseSBlcXVpdmFsZW50IHRvIHB0aHJlYWRfYXRmb3JrKCksIGJ1dCBkb2Vzbid0IHJlcXVpcmUgdXMgdG8gbGluayBhZ2FpbnN0CisgICogbGlicHRocmVhZCwgYXMgaXQgaXMgcGFydCBvZiBnbGliYyBhbnl3YXkuICovCisgZXh0ZXJuIGludCBfX3JlZ2lzdGVyX2F0Zm9yayh2b2lkICgqcHJlcGFyZSkgKHZvaWQpLCB2b2lkICgqcGFyZW50KSAodm9pZCksIHZvaWQgKCpjaGlsZCkgKHZvaWQpLCB2b2lkICogX19kc29faGFuZGxlKTsKKyBleHRlcm4gdm9pZCogX19kc29faGFuZGxlIF9fYXR0cmlidXRlX18gKChfX3dlYWtfXykpOworKyNlbmRpZgorIAorIHBpZF90IGdldHBpZF9jYWNoZWQodm9pZCkgeworICAgICAgICAgcGlkX3QgY3VycmVudF92YWx1ZTsKK0BAIC0xMDQyLDcgKzEwNDcsMTEgQEAgcGlkX3QgZ2V0cGlkX2NhY2hlZCh2b2lkKSB7CisgCisgICAgICAgICAgICAgICAgIG5ld19waWQgPSBnZXRwaWQoKTsKKyAKKysjaWZkZWYgX19HTElCQ19fCisgICAgICAgICAgICAgICAgIGlmIChfX3JlZ2lzdGVyX2F0Zm9yayhOVUxMLCBOVUxMLCByZXNldF9jYWNoZWRfcGlkLCBfX2Rzb19oYW5kbGUpICE9IDApIHsKKysjZWxzZQorKyAgICAgICAgICAgICAgICBpZiAocHRocmVhZF9hdGZvcmsoTlVMTCwgTlVMTCwgcmVzZXRfY2FjaGVkX3BpZCkgIT0gMCkgeworKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9PTT8gTGV0J3MgdHJ5IGFnYWluIGxhdGVyICovCisgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVkX3BpZCA9IENBQ0hFRF9QSURfVU5TRVQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld19waWQ7CistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci9tdXNsLzAwMDUtbXVzbC1hdm9pZC1mdXJ0aGVyLWNvbmZsaWN0cy1ieS1pbmNsdWRpbmctbmV0LWV0aGVybi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyL211c2wvMDAwNS1tdXNsLWF2b2lkLWZ1cnRoZXItY29uZmxpY3RzLWJ5LWluY2x1ZGluZy1uZXQtZXRoZXJuLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MmZlNGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci9tdXNsLzAwMDUtbXVzbC1hdm9pZC1mdXJ0aGVyLWNvbmZsaWN0cy1ieS1pbmNsdWRpbmctbmV0LWV0aGVybi5wYXRjaApAQCAtMCwwICsxLDc3IEBACitGcm9tIGIzYjRmZTM1MDE4Yzk4YWQxNzY3MTliMmQ5ZmZiODY3OTc0ZmM3YzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogTW9uLCAxNiBBcHIgMjAxOCAxNDo0NTo0NCArMDIwMAorU3ViamVjdDogW1BBVENIXSBtdXNsOiBhdm9pZCBmdXJ0aGVyIGNvbmZsaWN0cyBieSBpbmNsdWRpbmcgbmV0L2V0aGVybmV0LmgKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CistLS0KKyBzcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1kaGNwLWNsaWVudC5oICB8IDIgKysKKyBzcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1kaGNwLWxlYXNlLmggICB8IDIgKysKKyBzcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1kaGNwNi1jbGllbnQuaCB8IDIgKysKKyBzcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1pcHY0bGwuaCAgICAgICB8IDIgKysKKyA0IGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtZGhjcC1jbGllbnQuaCBiL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWRoY3AtY2xpZW50LmgKK2luZGV4IDVlNDZkOGQuLjE4YTYxM2YgMTAwNjQ0CistLS0gYS9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1kaGNwLWNsaWVudC5oCisrKysgYi9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1kaGNwLWNsaWVudC5oCitAQCAtMjEsNyArMjEsOSBAQAorICoqKi8KKyAKKyAjaW5jbHVkZSA8aW50dHlwZXMuaD4KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgorKyNlbmRpZgorICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorIAorZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWRoY3AtbGVhc2UuaCBiL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWRoY3AtbGVhc2UuaAoraW5kZXggN2FiOTljYy4uODVhY2RmMiAxMDA2NDQKKy0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWRoY3AtbGVhc2UuaAorKysrIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtZGhjcC1sZWFzZS5oCitAQCAtMjIsNyArMjIsOSBAQAorICoqKi8KKyAKKyAjaW5jbHVkZSA8aW50dHlwZXMuaD4KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgorKyNlbmRpZgorICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorIAorZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWRoY3A2LWNsaWVudC5oIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtZGhjcDYtY2xpZW50LmgKK2luZGV4IDc4MTlmMGQuLjM1ZjMwZWUgMTAwNjQ0CistLS0gYS9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1kaGNwNi1jbGllbnQuaAorKysrIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtZGhjcDYtY2xpZW50LmgKK0BAIC0yMSw3ICsyMSw5IEBACisgKioqLworIAorICNpbmNsdWRlIDxpbnR0eXBlcy5oPgorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8bmV0L2V0aGVybmV0Lmg+CisrI2VuZGlmCisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorIAorICNpbmNsdWRlICJzZC1kaGNwNi1sZWFzZS5oIgorZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9zeXN0ZW1kL3NkLWlwdjRsbC5oIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtaXB2NGxsLmgKK2luZGV4IDViYTkyMDguLmM5MGVjYTYgMTAwNjQ0CistLS0gYS9zcmMvc3lzdGVtZC9zcmMvc3lzdGVtZC9zZC1pcHY0bGwuaAorKysrIGIvc3JjL3N5c3RlbWQvc3JjL3N5c3RlbWQvc2QtaXB2NGxsLmgKK0BAIC0yMCw3ICsyMCw5IEBACisgICBhbG9uZyB3aXRoIHN5c3RlbWQ7IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqKiovCisgCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KKysjZW5kaWYKKyAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorIAorICNpbmNsdWRlICJzZC1ldmVudC5oIgorLS0gCisyLjE0LjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvbXVzbC8wMDA2LUFkZC1hLXN0cm5kdXBhLXJlcGxhY2VtZW50LWZvci1tdXNsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXIvbXVzbC8wMDA2LUFkZC1hLXN0cm5kdXBhLXJlcGxhY2VtZW50LWZvci1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlZDdlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlci9tdXNsLzAwMDYtQWRkLWEtc3RybmR1cGEtcmVwbGFjZW1lbnQtZm9yLW11c2wucGF0Y2gKQEAgLTAsMCArMSw0NyBAQAorRnJvbSA2ZGI2NTk2ZTQ1MDA2MjYwMWQxOGIyYWU4MTJhNGE1OGQyZTAzYTUzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IE1vbiwgMTYgQXByIDIwMTggMTU6MDc6MjAgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gQWRkIGEgc3RybmR1cGEgcmVwbGFjZW1lbnQgZm9yIG11c2wKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CistLS0KKyBzcmMvc3lzdGVtZC9zcmMvYmFzaWMvaW4tYWRkci11dGlsLmMgfCAxICsKKyBzcmMvc3lzdGVtZC9zcmMvYmFzaWMvc3RyaW5nLXV0aWwuaCAgfCA1ICsrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9pbi1hZGRyLXV0aWwuYyBiL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9pbi1hZGRyLXV0aWwuYworaW5kZXggMmEwMmQ5MC4uYTU3YzM2MCAxMDA2NDQKKy0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9pbi1hZGRyLXV0aWwuYworKysrIGIvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL2luLWFkZHItdXRpbC5jCitAQCAtMzAsNiArMzAsNyBAQAorICNpbmNsdWRlICJpbi1hZGRyLXV0aWwuaCIKKyAjaW5jbHVkZSAibWFjcm8uaCIKKyAjaW5jbHVkZSAicGFyc2UtdXRpbC5oIgorKyNpbmNsdWRlICJzdHJpbmctdXRpbC5oIgorICNpbmNsdWRlICJ1dGlsLmgiCisgCisgYm9vbCBpbjRfYWRkcl9pc19udWxsKGNvbnN0IHN0cnVjdCBpbl9hZGRyICphKSB7CitkaWZmIC0tZ2l0IGEvc3JjL3N5c3RlbWQvc3JjL2Jhc2ljL3N0cmluZy11dGlsLmggYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc3RyaW5nLXV0aWwuaAoraW5kZXggNGM5NGIxOC4uYTZkYzQ0NiAxMDA2NDQKKy0tLSBhL3NyYy9zeXN0ZW1kL3NyYy9iYXNpYy9zdHJpbmctdXRpbC5oCisrKysgYi9zcmMvc3lzdGVtZC9zcmMvYmFzaWMvc3RyaW5nLXV0aWwuaAorQEAgLTQ0LDYgKzQ0LDExIEBACisgI2RlZmluZSBzdHJjYXNlZXEoYSxiKSAoc3RyY2FzZWNtcCgoYSksKGIpKSA9PSAwKQorICNkZWZpbmUgc3RybmNhc2VlcShhLCBiLCBuKSAoc3RybmNhc2VjbXAoKGEpLCAoYiksIChuKSkgPT0gMCkKKyAKKysvKiBtdXNsIGRvZXMgbm90IGtub3cgc3RybmR1cGEgKi8KKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyNkZWZpbmUgc3RybmR1cGEoeCxzKSBzdHJuY3B5KGFsbG9jYShzdHJsZW4oeCkrMSkseCxzKQorKyNlbmRpZgorKworIGludCBzdHJjbXBfcHRyKGNvbnN0IGNoYXIgKmEsIGNvbnN0IGNoYXIgKmIpIF9wdXJlXzsKKyAKKyBzdGF0aWMgaW5saW5lIGJvb2wgc3RyZXFfcHRyKGNvbnN0IGNoYXIgKmEsIGNvbnN0IGNoYXIgKmIpIHsKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyXzEuMTAuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyXzEuMTAuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWM1ZGJkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvbmV0d29ya21hbmFnZXIvbmV0d29ya21hbmFnZXJfMS4xMC42LmJiCkBAIC0wLDAgKzEsMTQzIEBACitTVU1NQVJZID0gIk5ldHdvcmtNYW5hZ2VyIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9OZXR3b3JrTWFuYWdlciIKK1NFQ1RJT04gPSAibmV0L21pc2MiCisKK0xJQ0VOU0UgPSAiR1BMdjIrIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9Y2JiZmZkNTY4MjI3YWRhNTA2NjQwZmU5NTBhNDgyM2IgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vbGlibm0tdXRpbC9DT1BZSU5HO21kNT0xYzRmYTc2NWQ2ZWIzY2QyZmJkODQzNDRhMWI4MTZjZCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9kb2NzL2FwaS9odG1sL2xpY2Vuc2UuaHRtbDttZDU9NzdiOWUzNjI2OTBjMTQ5ZGExOTZhZWZlNzcxMmRiMzAgXAorIgorCitERVBFTkRTID0gIiBcCisgICAgaW50bHRvb2wtbmF0aXZlIFwKKyAgICBsaWJ4c2x0LW5hdGl2ZSBcCisgICAgbGlibmwgXAorICAgIGRidXMgXAorICAgIGRidXMtZ2xpYiBcCisgICAgZGJ1cy1nbGliLW5hdGl2ZSBcCisgICAgbGliZ3VkZXYgXAorICAgIHV0aWwtbGludXggXAorICAgIGxpYm5kcCBcCisgICAgbGlibmV3dCBcCisgICAgcG9sa2l0IFwKKyAgICBqYW5zc29uIFwKKyAgICBjdXJsIFwKKyIKKworaW5oZXJpdCBnbm9tZWJhc2UgZ2V0dGV4dCBzeXN0ZW1kIGJsdWV0b290aCBiYXNoLWNvbXBsZXRpb24gdmFsYSBnb2JqZWN0LWludHJvc3BlY3Rpb24gZ3RrLWRvYworCitTUkNfVVJJID0gIiBcCisgICAgJHtHTk9NRV9NSVJST1J9L05ldHdvcmtNYW5hZ2VyLyR7QGdub21lX3ZlcmRpcigiJHtQVn0iKX0vTmV0d29ya01hbmFnZXItJHtQVn0udGFyLnh6IFwKKyAgICBmaWxlOi8vMDAwMS1zZC1sbGRwLmgtUmVtb3ZlLW5ldC1ldGhlcm5ldC5oLXNlZW1zLXRvLWJlLW92ZXItc3BlLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMi1GaXhlZC1jb25maWd1cmUuYWMtRml4LXBrZ2NvbmZpZy1zeXNyb290LWxvY2F0aW9ucy5wYXRjaCBcCisgICAgZmlsZTovLzAwMDMtRG8tbm90LWNyZWF0ZS1zZXR0aW5ncy1zZXR0aW5ncy1wcm9wZXJ0eS1kb2N1bWVudGF0aS5wYXRjaCBcCisgICAgZmlsZTovL211c2wvMDAwMS1tdXNsLWJhc2ljLnBhdGNoIFwKKyAgICBmaWxlOi8vbXVzbC8wMDAyLW11c2wtZGxvcGVuLWNvbmZpZ3VyZS1hYy5wYXRjaCBcCisgICAgZmlsZTovL211c2wvMDAwMy1tdXNsLW5ldHdvcmstc3VwcG9ydC5wYXRjaCBcCisgICAgZmlsZTovL211c2wvMDAwNC1tdXNsLXByb2Nlc3MtdXRpbC5wYXRjaCBcCisgICAgZmlsZTovL211c2wvMDAwNS1tdXNsLWF2b2lkLWZ1cnRoZXItY29uZmxpY3RzLWJ5LWluY2x1ZGluZy1uZXQtZXRoZXJuLnBhdGNoIFwKKyAgICBmaWxlOi8vbXVzbC8wMDA2LUFkZC1hLXN0cm5kdXBhLXJlcGxhY2VtZW50LWZvci1tdXNsLnBhdGNoIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkZTNjNzE0N2E2OTNkYTZmODBlYjIyZjEyNjA4NmExNCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2YWYwYjFlODU2YTM3MjVmODg3OTFmNTVjNGZiYjA0MTA1ZGMwYjIwZGJmMTgyYWFlYzhhYWQxNjQ4MWZhYzc2IgorCitTID0gIiR7V09SS0RJUn0vTmV0d29ya01hbmFnZXItJHtQVn0iCisKK0VYVFJBX09FQ09ORiA9ICIgXAorICAgIC0tZGlzYWJsZS1pZmNmZy1yaCBcCisgICAgLS1kaXNhYmxlLWlmbmV0IFwKKyAgICAtLWRpc2FibGUtaWZjZmctc3VzZSBcCisgICAgLS1kaXNhYmxlLW1vcmUtd2FybmluZ3MgXAorICAgIC0td2l0aC1pcHRhYmxlcz0ke3NiaW5kaXJ9L2lwdGFibGVzIFwKKyAgICAtLXdpdGgtdGVzdHMgXAorICAgIC0td2l0aC1ubXR1aT15ZXMgXAorIgorCisjIGdvYmplY3QtaW50cm9zcGVjdGlvbiByZWxhdGVkCitHSV9EQVRBX0VOQUJMRURfbGliYy1tdXNsID0gIkZhbHNlIgorCisjIHN0b2xlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9zcmNwa2dzL05ldHdvcmtNYW5hZ2VyL3RlbXBsYXRlCitDRkxBR1NfbGliYy1tdXNsX2FwcGVuZCA9ICIgXAorICAgIC1ESEFWRV9TRUNVUkVfR0VURU5WIC1Ec2VjdXJlX2dldGVudj1nZXRlbnYgXAorICAgIC1EX19VU0VfUE9TSVgxOTkzMDkgLURSVExEX0RFRVBCSU5EPTAgXAorIgorCitkb19jb21waWxlX3ByZXBlbmQoKSB7CisgICAgZXhwb3J0IEdJUl9FWFRSQV9MSUJTX1BBVEg9IiR7Qn0vbGlibm0vLmxpYnM6JHtCfS9saWJubS1nbGliLy5saWJzOiR7Qn0vbGlibm0tdXRpbC8ubGlicyIKK30KKworUEFDS0FHRUNPTkZJRyA/Pz0gIm5zcyBpZnVwZG93biBuZXRjb25maWcgZGhjbGllbnQgZG5zbWFzcSBcCisgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJ3N5c3RlbWQnLCBiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3gxMScsICdjb25zb2xla2l0JywgJycsIGQpLCBkKX0gXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnYmx1ZXRvb3RoJywgJyR7QkxVRVp9JywgJycsIGQpfSBcCisgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnd2lmaScsIGQpfSBcCisiCitQQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIiBcCisgICAgLS13aXRoLXN5c3RlbWRzeXN0ZW11bml0ZGlyPSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0gLS13aXRoLXNlc3Npb24tdHJhY2tpbmc9c3lzdGVtZCAtLWVuYWJsZS1wb2xraXQsIFwKKyAgICAtLXdpdGhvdXQtc3lzdGVtZHN5c3RlbXVuaXRkaXIsIFwKKyAgICBwb2xraXQgXAorIgorUEFDS0FHRUNPTkZJR1tibHVlejVdID0gIi0tZW5hYmxlLWJsdWV6NS1kdW4sLS1kaXNhYmxlLWJsdWV6NS1kdW4sYmx1ZXo1IgorIyBjb25zb2xla2l0IGlzIG5vdCBwaWNrZWQgYnkgc2hsaWJzLCBzbyBhZGQgaXQgdG8gUkRFUEVORFMgdG9vCitQQUNLQUdFQ09ORklHW2NvbnNvbGVraXRdID0gIi0td2l0aC1zZXNzaW9uLXRyYWNraW5nPWNvbnNvbGVraXQsLGNvbnNvbGVraXQsY29uc29sZWtpdCIKK1BBQ0tBR0VDT05GSUdbbW9kZW1tYW5hZ2VyXSA9ICItLXdpdGgtbW9kZW0tbWFuYWdlci0xPXllcywtLXdpdGgtbW9kZW0tbWFuYWdlci0xPW5vLG1vZGVtbWFuYWdlciIKK1BBQ0tBR0VDT05GSUdbcHBwXSA9ICItLWVuYWJsZS1wcHAsLS1kaXNhYmxlLXBwcCxwcHAscHBwIgorIyBVc2UgZnVsbCBmZWF0dXJlZCBkaGNwIGNsaWVudCBpbnN0ZWFkIG9mIGludGVybmFsIG9uZQorUEFDS0FHRUNPTkZJR1tkaGNsaWVudF0gPSAiLS13aXRoLWRoY2xpZW50PSR7YmFzZV9zYmluZGlyfS9kaGNsaWVudCwsLGRoY3AtY2xpZW50IgorUEFDS0FHRUNPTkZJR1tkbnNtYXNxXSA9ICItLXdpdGgtZG5zbWFzcT0ke2JpbmRpcn0vZG5zbWFzcSIKK1BBQ0tBR0VDT05GSUdbbnNzXSA9ICItLXdpdGgtY3J5cHRvPW5zcywsbnNzIgorUEFDS0FHRUNPTkZJR1tnbnV0bHNdID0gIi0td2l0aC1jcnlwdG89Z251dGxzLCxnbnV0bHMiCitQQUNLQUdFQ09ORklHW3dpZmldID0gIi0tZW5hYmxlLXdpZmk9eWVzLC0tZW5hYmxlLXdpZmk9bm8sd2lyZWxlc3MtdG9vbHMsd3BhLXN1cHBsaWNhbnQgd2lyZWxlc3MtdG9vbHMiCitQQUNLQUdFQ09ORklHW2lmdXBkb3duXSA9ICItLWVuYWJsZS1pZnVwZG93biwtLWRpc2FibGUtaWZ1cGRvd24iCitQQUNLQUdFQ09ORklHW25ldGNvbmZpZ10gPSAiLS13aXRoLW5ldGNvbmZpZz15ZXMsLS13aXRoLW5ldGNvbmZpZz1ubyIKK1BBQ0tBR0VDT05GSUdbcXQ0LXgxMS1mcmVlXSA9ICItLWVuYWJsZS1xdCwtLWRpc2FibGUtcXQscXQ0LXgxMS1mcmVlIgorCitQQUNLQUdFUyA9KyAibGlibm11dGlsIGxpYm5tZ2xpYiBsaWJubWdsaWItdnBuIFwKKyAgJHtQTn0tbm10dWkgJHtQTn0tbm10dWktZG9jIFwKKyAgJHtQTn0tYWRzbCBcCisiCisKK0ZJTEVTX2xpYm5tdXRpbCArPSAiJHtsaWJkaXJ9L2xpYm5tLXV0aWwuc28uKiIKK0ZJTEVTX2xpYm5tZ2xpYiArPSAiJHtsaWJkaXJ9L2xpYm5tLWdsaWIuc28uKiIKK0ZJTEVTX2xpYm5tZ2xpYi12cG4gKz0gIiR7bGliZGlyfS9saWJubS1nbGliLXZwbi5zby4qIgorCitGSUxFU18ke1BOfS1hZHNsID0gIiR7bGliZGlyfS9OZXR3b3JrTWFuYWdlci9saWJubS1kZXZpY2UtcGx1Z2luLWFkc2wuc28iCisKK0ZJTEVTXyR7UE59ICs9ICIgXAorICAgICR7bGliZXhlY2Rpcn0gXAorICAgICR7bGliZGlyfS9wcHBkLyovbm0tcHBwZC1wbHVnaW4uc28gXAorICAgICR7bGliZGlyfS9OZXR3b3JrTWFuYWdlci8qLnNvIFwKKyAgICAke25vbmFyY2hfbGliZGlyfS9OZXR3b3JrTWFuYWdlci9WUE4gXAorICAgICR7bm9uYXJjaF9saWJkaXJ9L05ldHdvcmtNYW5hZ2VyL2NvbmYuZCBcCisgICAgJHtkYXRhZGlyfS9wb2xraXQtMSBcCisgICAgJHtkYXRhZGlyfS9kYnVzLTEgXAorICAgICR7YmFzZV9saWJkaXJ9L3VkZXYvKiBcCisgICAgJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbSBcCisiCisKK1JSRUNPTU1FTkRTXyR7UE59ICs9ICJpcHRhYmxlcyBcCisgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdQQUNLQUdFQ09ORklHJywgJ2Ruc21hc3EnLCBkKX0gXAorIgorUkNPTkZMSUNUU18ke1BOfSA9ICJjb25ubWFuIgorCitGSUxFU18ke1BOfS1kZXYgKz0gIiBcCisgICAgJHtkYXRhZGlyfS9OZXR3b3JrTWFuYWdlci9nZGItY21kIFwKKyAgICAke2xpYmRpcn0vcHBwZC8qLyoubGEgXAorICAgICR7bGliZGlyfS9OZXR3b3JrTWFuYWdlci8qLmxhIFwKKyIKKworRklMRVNfJHtQTn0tbm10dWkgPSAiIFwKKyAgICAke2JpbmRpcn0vbm10dWkgXAorICAgICR7YmluZGlyfS9ubXR1aS1lZGl0IFwKKyAgICAke2JpbmRpcn0vbm10dWktY29ubmVjdCBcCisgICAgJHtiaW5kaXJ9L25tdHVpLWhvc3RuYW1lIFwKKyIKKworRklMRVNfJHtQTn0tbm10dWktZG9jID0gIiBcCisgICAgJHttYW5kaXJ9L21hbjEvbm10dWkqIFwKKyIKKworU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gIk5ldHdvcmtNYW5hZ2VyLnNlcnZpY2UgTmV0d29ya01hbmFnZXItZGlzcGF0Y2hlci5zZXJ2aWNlIgorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBybSAtcmYgJHtEfS9ydW4gJHtEfSR7bG9jYWxzdGF0ZWRpcn0vcnVuCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9uZXR3b3JrbWFuYWdlci9uZXR3b3JrbWFuYWdlcl8xLjQuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyXzEuNC40LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNWY0NTZmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L25ldHdvcmttYW5hZ2VyL25ldHdvcmttYW5hZ2VyXzEuNC40LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAKLVNVTU1BUlkgPSAiTmV0d29ya01hbmFnZXIiCi1IT01FUEFHRSA9ICJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL05ldHdvcmtNYW5hZ2VyIgotU0VDVElPTiA9ICJuZXQvbWlzYyIKLQotTElDRU5TRSA9ICJHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1jYmJmZmQ1NjgyMjdhZGE1MDY2NDBmZTk1MGE0ODIzYiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9saWJubS11dGlsL0NPUFlJTkc7bWQ1PTFjNGZhNzY1ZDZlYjNjZDJmYmQ4NDM0NGExYjgxNmNkIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2RvY3MvYXBpL2h0bWwvbGljZW5zZS5odG1sO21kNT04ZWI4ZTcyYmFiMDk3YjlkMTE3NjMwMDJjYjAwMzY5NyBcCi0iCi0KLURFUEVORFMgPSAiIFwKLSAgICBpbnRsdG9vbC1uYXRpdmUgXAotICAgIGxpYm5sIFwKLSAgICBkYnVzIFwKLSAgICBkYnVzLWdsaWIgXAotICAgIGRidXMtZ2xpYi1uYXRpdmUgXAotICAgIGxpYmd1ZGV2IFwKLSAgICB1dGlsLWxpbnV4IFwKLSAgICBsaWJuZHAgXAotICAgIGxpYm5ld3QgXAotICAgIHBvbGtpdCBcCi0gICAgamFuc3NvbiBcCi0iCi0KLWluaGVyaXQgZ25vbWViYXNlIGdldHRleHQgc3lzdGVtZCBibHVldG9vdGggYmFzaC1jb21wbGV0aW9uIHZhbGEgZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0KLUdJX0RBVEFfRU5BQkxFRF9saWJjLW11c2wgPSAiRmFsc2UiCi0KLVNSQ19VUkkgPSAiJHtHTk9NRV9NSVJST1J9L05ldHdvcmtNYW5hZ2VyLyR7QGdub21lX3ZlcmRpcigiJHtQVn0iKX0vTmV0d29ya01hbmFnZXItJHtQVn0udGFyLnh6IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtZG9uLXQtdHJ5LXRvLXJ1bi1zYmluLWRoY2xpZW50LXRvLWdldC10aGUtdmVyc2lvbi1udS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAyLUZpeC1ubS12ZXJzaW9uLW1hY3JvLWluY2x1ZGVzLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtYWRqdXN0LW5ldC1oZWFkZXJzLWZvci1tdXNsLWNvbXBhdGliaWxpdHkucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi1zb2NrZXQtdXRpbC5oLUluY2x1ZGUtbGludXgtc29ja2lvcy5oLW9uLW11c2wucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMy1EZWZpbmUtRVRIX0FMRU4ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwNC1EZWZpbmUtbWlzc2luZy1mZWF0dXJlcy10by1jYXRlci1mb3ItbXVzbC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA1LXNkLWxsZHAuaC1SZW1vdmUtbmV0LWV0aGVybmV0Lmgtc2VlbXMtdG8tYmUtb3Zlci1zcGUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1jaGVjay1mb3Itc3RybmR1cGEtYmVmb3JlLXVzaW5nLWl0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtZG5zLXJlc29sdmVkLWFkZC1zeXN0ZW1kLXJlc29sdmVkLWJhY2tlbmQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1kbnMtcmVzb2x2ZWQtYWxzby1jaGVjay1mb3ItZXRjLXJlc29sdi1jb25mLnN5c3RlbWQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1zeXN0ZW1kLXhsb2NhbGUuaC1pcy1kcm9wcGVkLWJ5LW5ld2VyLWdsaWJjLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDItdXNlci1mb3JtYXQtc3RyaW5nLWluLWdfZGJ1c19tZXNzYWdlX25ld19tZXRob2RfZXJyby5wYXRjaCBcCi0gICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICI2M2YxZTBkNmQ3ZTkwOTk0OTlkMDYyYzg0YzkyN2E3NSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4MjkzNzhmMzE4Y2MwMDhkMTM4YTIzY2E2YTkxOTE5MjhjZTc1MzQ0ZTdlNDdhMmYyYzM1ZjRhYzgyMTMzMzA5IgotCi1TID0gIiR7V09SS0RJUn0vTmV0d29ya01hbmFnZXItJHtQVn0iCi0KLUVYVFJBX09FQ09ORiA9ICIgXAotICAgIC0tZGlzYWJsZS1pZmNmZy1yaCBcCi0gICAgLS1kaXNhYmxlLWlmbmV0IFwKLSAgICAtLWRpc2FibGUtaWZjZmctc3VzZSBcCi0gICAgLS1kaXNhYmxlLW1vcmUtd2FybmluZ3MgXAotICAgIC0td2l0aC1pcHRhYmxlcz0ke3NiaW5kaXJ9L2lwdGFibGVzIFwKLSAgICAtLXdpdGgtdGVzdHMgXAotICAgIC0td2l0aC1ubXR1aT15ZXMgXAotIgotCi1kb19jb21waWxlX3ByZXBlbmQoKSB7Ci0gICAgICAgIGV4cG9ydCBHSVJfRVhUUkFfTElCU19QQVRIPSIke0J9L2xpYm5tLXV0aWwvLmxpYnMiCi19Ci0KLVBBQ0tBR0VDT05GSUcgPz89ICJuc3MgaWZ1cGRvd24gbmV0Y29uZmlnIGRoY2xpZW50IGRuc21hc3EgXAotICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICdzeXN0ZW1kJywgXAotICAgICAgIGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneDExJywgJ2NvbnNvbGVraXQnLCAnJywgZCksIGQpfSBcCi0gICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdibHVldG9vdGgnLCAnJHtCTFVFWn0nLCAnJywgZCl9IFwKLSAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICd3aWZpJywgZCl9IFwKLSIKLVBBQ0tBR0VDT05GSUdbc3lzdGVtZF0gPSAiIFwKLSAgICAtLXdpdGgtc3lzdGVtZHN5c3RlbXVuaXRkaXI9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbSAtLXdpdGgtc2Vzc2lvbi10cmFja2luZz1zeXN0ZW1kIC0tZW5hYmxlLXBvbGtpdCwgXAotICAgIC0td2l0aG91dC1zeXN0ZW1kc3lzdGVtdW5pdGRpciwgXAotICAgIHBvbGtpdCBcCi0iCi1QQUNLQUdFQ09ORklHW2JsdWV6NV0gPSAiLS1lbmFibGUtYmx1ZXo1LWR1biwtLWRpc2FibGUtYmx1ZXo1LWR1bixibHVlejUiCi0jIGNvbnNvbGVraXQgaXMgbm90IHBpY2tlZCBieSBzaGxpYnMsIHNvIGFkZCBpdCB0byBSREVQRU5EUyB0b28KLVBBQ0tBR0VDT05GSUdbY29uc29sZWtpdF0gPSAiLS13aXRoLXNlc3Npb24tdHJhY2tpbmc9Y29uc29sZWtpdCwsY29uc29sZWtpdCxjb25zb2xla2l0IgotUEFDS0FHRUNPTkZJR1tjb25jaGVja10gPSAiLS13aXRoLWxpYnNvdXA9eWVzLC0td2l0aC1saWJzb3VwPW5vLGxpYnNvdXAtMi40IgotUEFDS0FHRUNPTkZJR1ttb2RlbW1hbmFnZXJdID0gIi0td2l0aC1tb2RlbS1tYW5hZ2VyLTE9eWVzLC0td2l0aC1tb2RlbS1tYW5hZ2VyLTE9bm8sbW9kZW1tYW5hZ2VyIgotUEFDS0FHRUNPTkZJR1twcHBdID0gIi0tZW5hYmxlLXBwcCwtLWRpc2FibGUtcHBwLHBwcCxwcHAiCi0jIFVzZSBmdWxsIGZlYXR1cmVkIGRoY3AgY2xpZW50IGluc3RlYWQgb2YgaW50ZXJuYWwgb25lCi1QQUNLQUdFQ09ORklHW2RoY2xpZW50XSA9ICItLXdpdGgtZGhjbGllbnQ9JHtiYXNlX3NiaW5kaXJ9L2RoY2xpZW50LCwsZGhjcC1jbGllbnQiCi1QQUNLQUdFQ09ORklHW2Ruc21hc3FdID0gIi0td2l0aC1kbnNtYXNxPSR7YmluZGlyfS9kbnNtYXNxIgotUEFDS0FHRUNPTkZJR1tuc3NdID0gIi0td2l0aC1jcnlwdG89bnNzLCxuc3MiCi1QQUNLQUdFQ09ORklHW2dudXRsc10gPSAiLS13aXRoLWNyeXB0bz1nbnV0bHMsLGdudXRscyIKLVBBQ0tBR0VDT05GSUdbd2lmaV0gPSAiLS1lbmFibGUtd2lmaT15ZXMsLS1lbmFibGUtd2lmaT1ubyx3aXJlbGVzcy10b29scyx3cGEtc3VwcGxpY2FudCB3aXJlbGVzcy10b29scyIKLVBBQ0tBR0VDT05GSUdbaWZ1cGRvd25dID0gIi0tZW5hYmxlLWlmdXBkb3duLC0tZGlzYWJsZS1pZnVwZG93biIKLVBBQ0tBR0VDT05GSUdbbmV0Y29uZmlnXSA9ICItLXdpdGgtbmV0Y29uZmlnPXllcywtLXdpdGgtbmV0Y29uZmlnPW5vIgotUEFDS0FHRUNPTkZJR1txdDQteDExLWZyZWVdID0gIi0tZW5hYmxlLXF0LC0tZGlzYWJsZS1xdCxxdDQteDExLWZyZWUiCi0KLVBBQ0tBR0VTID0rICJsaWJubXV0aWwgbGlibm1nbGliIGxpYm5tZ2xpYi12cG4gXAotICAke1BOfS1ubXR1aSAke1BOfS1ubXR1aS1kb2MgXAotICAke1BOfS1hZHNsIFwKLSIKLQotRklMRVNfbGlibm11dGlsICs9ICIke2xpYmRpcn0vbGlibm0tdXRpbC5zby4qIgotRklMRVNfbGlibm1nbGliICs9ICIke2xpYmRpcn0vbGlibm0tZ2xpYi5zby4qIgotRklMRVNfbGlibm1nbGliLXZwbiArPSAiJHtsaWJkaXJ9L2xpYm5tLWdsaWItdnBuLnNvLioiCi0KLUZJTEVTXyR7UE59LWFkc2wgPSAiJHtsaWJkaXJ9L05ldHdvcmtNYW5hZ2VyL2xpYm5tLWRldmljZS1wbHVnaW4tYWRzbC5zbyIKLQotRklMRVNfJHtQTn0gKz0gIiBcCi0gICAgJHtsaWJleGVjZGlyfSBcCi0gICAgJHtsaWJkaXJ9L3BwcGQvKi9ubS1wcHBkLXBsdWdpbi5zbyBcCi0gICAgJHtsaWJkaXJ9L05ldHdvcmtNYW5hZ2VyLyouc28gXAotICAgICR7ZGF0YWRpcn0vcG9sa2l0LTEgXAotICAgICR7ZGF0YWRpcn0vZGJ1cy0xIFwKLSAgICAke2Jhc2VfbGliZGlyfS91ZGV2LyogXAotICAgICR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0gXAotIgotCi1SUkVDT01NRU5EU18ke1BOfSArPSAiaXB0YWJsZXMgXAotICAgICR7QGJiLnV0aWxzLmZpbHRlcignUEFDS0FHRUNPTkZJRycsICdkbnNtYXNxJywgZCl9IFwKLSIKLVJDT05GTElDVFNfJHtQTn0gPSAiY29ubm1hbiIKLQotRklMRVNfJHtQTn0tZGV2ICs9ICIgXAotICAgICR7ZGF0YWRpcn0vTmV0d29ya01hbmFnZXIvZ2RiLWNtZCBcCi0gICAgJHtsaWJkaXJ9L3BwcGQvKi8qLmxhIFwKLSAgICAke2xpYmRpcn0vTmV0d29ya01hbmFnZXIvKi5sYSBcCi0iCi0KLUZJTEVTXyR7UE59LW5tdHVpID0gIiBcCi0gICAgJHtiaW5kaXJ9L25tdHVpIFwKLSAgICAke2JpbmRpcn0vbm10dWktZWRpdCBcCi0gICAgJHtiaW5kaXJ9L25tdHVpLWNvbm5lY3QgXAotICAgICR7YmluZGlyfS9ubXR1aS1ob3N0bmFtZSBcCi0iCi0KLUZJTEVTXyR7UE59LW5tdHVpLWRvYyA9ICIgXAotICAgICR7bWFuZGlyfS9tYW4xL25tdHVpKiBcCi0iCi0KLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJOZXR3b3JrTWFuYWdlci5zZXJ2aWNlIE5ldHdvcmtNYW5hZ2VyLWRpc3BhdGNoZXIuc2VydmljZSIKLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgcm0gLXJmICR7RH0vcnVuICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3J1bgotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvMDAwMS1wYWNrYWdpbmctQXZvaWQtdGltZW91dC1mb3Itbm1iZC1pZi1zdGFydGVkLW9mZmxpbmUtLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvMDAwMS1wYWNrYWdpbmctQXZvaWQtdGltZW91dC1mb3Itbm1iZC1pZi1zdGFydGVkLW9mZmxpbmUtLnBhdGNoCmluZGV4IDBhYjM0MzYuLjBlODlhOWIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhLzAwMDEtcGFja2FnaW5nLUF2b2lkLXRpbWVvdXQtZm9yLW5tYmQtaWYtc3RhcnRlZC1vZmZsaW5lLS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS8wMDAxLXBhY2thZ2luZy1Bdm9pZC10aW1lb3V0LWZvci1ubWJkLWlmLXN0YXJ0ZWQtb2ZmbGluZS0ucGF0Y2gKQEAgLTEzLDE2ICsxMywxNyBAQAogdGhlcmVmb3JlIGdldCBraWxsZWQuCiAKIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgT2JlcnJpdHRlciA8b2JpQG9wZW5kcmVhbWJveC5vcmc+CisKIC0tLQogIHBhY2thZ2luZy9zeXN0ZW1kL25tYi5zZXJ2aWNlIHwgMSArCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCiAKIGRpZmYgLS1naXQgYS9wYWNrYWdpbmcvc3lzdGVtZC9ubWIuc2VydmljZSBiL3BhY2thZ2luZy9zeXN0ZW1kL25tYi5zZXJ2aWNlCi1pbmRleCA5OTJjMGNkLi41NTVjOWFiIDEwMDY0NAoraW5kZXggNzFjOTNkNi4uZjNkMmZjMiAxMDA2NDQKIC0tLSBhL3BhY2thZ2luZy9zeXN0ZW1kL25tYi5zZXJ2aWNlCiArKysgYi9wYWNrYWdpbmcvc3lzdGVtZC9ubWIuc2VydmljZQogQEAgLTEwLDYgKzEwLDcgQEAgRW52aXJvbm1lbnRGaWxlPS0vZXRjL3N5c2NvbmZpZy9zYW1iYQotIEV4ZWNTdGFydD0vdXNyL3NiaW4vbm1iZCAkTk1CRE9QVElPTlMKKyBFeGVjU3RhcnQ9L3Vzci9zYmluL25tYmQgLS1mb3JlZ3JvdW5kIC0tbm8tcHJvY2Vzcy1ncm91cCAkTk1CRE9QVElPTlMKICBFeGVjUmVsb2FkPS91c3IvYmluL2tpbGwgLUhVUCAkTUFJTlBJRAogIExpbWl0Q09SRT1pbmZpbml0eQogK1RpbWVvdXRTdGFydFNlYz0wCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS8xNi1kby1ub3QtY2hlY2steHNsdHByb2MtbWFucGFnZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS8xNi1kby1ub3QtY2hlY2steHNsdHByb2MtbWFucGFnZXMucGF0Y2gKaW5kZXggYzM3Y2ZjZC4uOGNhN2E1MiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvMTYtZG8tbm90LWNoZWNrLXhzbHRwcm9jLW1hbnBhZ2VzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhLzE2LWRvLW5vdC1jaGVjay14c2x0cHJvYy1tYW5wYWdlcy5wYXRjaApAQCAtMSwxMyArMSwyNCBAQAotRG9uJ3QgY2hlY2sgeHNsdHByb2MgbWFucGFnZXMKK0Zyb20gMjIxNGMyZDFlNDU1YTM4Yzg5MWQxN2U0MjFiNDM4ZTNmN2M0OTVkOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEJpYW4gTmFpbWVuZyA8Ymlhbm5tQGNuLmZ1aml0c3UuY29tPgorRGF0ZTogTW9uLCAxOCBBcHIgMjAxNiAxNzowMDo1MyAtMDQwMAorU3ViamVjdDogW1BBVENIXSBEb24ndCBjaGVjayB4c2x0cHJvYyBtYW5wYWdlcwogCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKyAKIFNpZ25lZC1vZmYtYnk6IEJpYW4gTmFpbWVuZyA8Ymlhbm5tQGNuLmZ1aml0c3UuY29tPgogCi1JbmRleDogc2FtYmEtNC40LjIvbGliL2xkYi93c2NyaXB0Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gc2FtYmEtNC40LjIub3JpZy9saWIvbGRiL3dzY3JpcHQKLSsrKyBzYW1iYS00LjQuMi9saWIvbGRiL3dzY3JpcHQKLUBAIC02NSw3ICs2NSw3IEBAIGRlZiBjb25maWd1cmUoY29uZik6Ci0gICAgICAgICAgICAgICAgIGNvbmYuZGVmaW5lKCdVU0lOR19TWVNURU1fTERCJywgMSkKKy0tLQorIGxpYi9sZGIvd3NjcmlwdCAgICB8IDIgKy0KKyBsaWIvdGFsbG9jL3dzY3JpcHQgfCAyICstCisgbGliL3RkYi93c2NyaXB0ICAgIHwgMiArLQorIDMgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGliL2xkYi93c2NyaXB0IGIvbGliL2xkYi93c2NyaXB0CitpbmRleCA1ZWE1MjMxLi5kOTQwODZiIDEwMDY0NAorLS0tIGEvbGliL2xkYi93c2NyaXB0CisrKysgYi9saWIvbGRiL3dzY3JpcHQKK0BAIC05OCw3ICs5OCw3IEBAIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgICAgICBjb25mLkRFRklORSgnRVhQRUNURURfU1lTVEVNX0xEQl9WRVJTSU9OX1JFTEVBU0UnLCBpbnQodlsyXSkpCiAgCiAgICAgIGlmIGNvbmYuZW52LnN0YW5kYWxvbmVfbGRiOgogLSAgICAgICAgY29uZi5DSEVDS19YU0xUUFJPQ19NQU5QQUdFUygpCkBAIC0xNSwyNCArMjYsMjQgQEAKICAKICAgICAgICAgICMgd2UgbmVlZCB0aGlzIGZvciB0aGUgbGRhcCBiYWNrZW5kCiAgICAgICAgICBpZiBjb25mLkNIRUNLX0ZVTkNTX0lOKCdiZXJfZmx1c2ggbGRhcF9vcGVuIGxkYXBfaW5pdGlhbGl6ZScsICdsYmVyIGxkYXAnLCBoZWFkZXJzPSdsYmVyLmggbGRhcC5oJyk6Ci1JbmRleDogc2FtYmEtNC40LjIvbGliL3RhbGxvYy93c2NyaXB0Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gc2FtYmEtNC40LjIub3JpZy9saWIvdGFsbG9jL3dzY3JpcHQKLSsrKyBzYW1iYS00LjQuMi9saWIvdGFsbG9jL3dzY3JpcHQKLUBAIC01Niw3ICs1Niw3IEBAIGRlZiBjb25maWd1cmUoY29uZik6Ci0gICAgIGlmIGNvbmYuZW52LnN0YW5kYWxvbmVfdGFsbG9jOgotICAgICAgICAgY29uZi5lbnYuVEFMTE9DX0NPTVBBVDEgPSBPcHRpb25zLm9wdGlvbnMuVEFMTE9DX0NPTVBBVDEKK2RpZmYgLS1naXQgYS9saWIvdGFsbG9jL3dzY3JpcHQgYi9saWIvdGFsbG9jL3dzY3JpcHQKK2luZGV4IGRmN2U2YmUuLmIzMzA1Y2YgMTAwNjQ0CistLS0gYS9saWIvdGFsbG9jL3dzY3JpcHQKKysrKyBiL2xpYi90YWxsb2Mvd3NjcmlwdAorQEAgLTQ5LDcgKzQ5LDcgQEAgZGVmIGNvbmZpZ3VyZShjb25mKToKKyAgICAgICAgIGNvbmYuZW52LlBLR0NPTkZJR0RJUiA9ICcke0xJQkRJUn0vcGtnY29uZmlnJworICAgICAgICAgY29uZi5lbnYuVEFMTE9DX1ZFUlNJT04gPSBWRVJTSU9OCiAgCiAtICAgIGNvbmYuQ0hFQ0tfWFNMVFBST0NfTUFOUEFHRVMoKQogKyAgICAjY29uZi5DSEVDS19YU0xUUFJPQ19NQU5QQUdFUygpCiAgCi0gICAgIGlmIG5vdCBjb25mLmVudi5kaXNhYmxlX3B5dGhvbjoKLSAgICAgICAgICMgYWxzbyBkaXNhYmxlIGlmIHdlIGRvbid0IGhhdmUgdGhlIHB5dGhvbiBsaWJzIGluc3RhbGxlZAotSW5kZXg6IHNhbWJhLTQuNC4yL2xpYi90ZGIvd3NjcmlwdAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHNhbWJhLTQuNC4yLm9yaWcvbGliL3RkYi93c2NyaXB0Ci0rKysgc2FtYmEtNC40LjIvbGliL3RkYi93c2NyaXB0Ci1AQCAtOTIsNyArOTIsNyBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9hdXh2LmgnKQorICAgICBjb25mLkNIRUNLX0ZVTkNTKCdnZXRhdXh2YWwnKQorZGlmZiAtLWdpdCBhL2xpYi90ZGIvd3NjcmlwdCBiL2xpYi90ZGIvd3NjcmlwdAoraW5kZXggNDc4MjU1MC4uNmJiM2ZhMSAxMDA2NDQKKy0tLSBhL2xpYi90ZGIvd3NjcmlwdAorKysrIGIvbGliL3RkYi93c2NyaXB0CitAQCAtODksNyArODksNyBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgogICAgICAgICAgbm90IGNvbmYuZW52LmRpc2FibGVfdGRiX211dGV4X2xvY2tpbmcpOgogICAgICAgICAgY29uZi5kZWZpbmUoJ1VTRV9UREJfTVVURVhfTE9DS0lORycsIDEpCiAgCkBAIC00MSwzICs1Miw2IEBACiAgCiAgICAgIGlmIG5vdCBjb25mLmVudi5kaXNhYmxlX3B5dGhvbjoKICAgICAgICAgICMgYWxzbyBkaXNhYmxlIGlmIHdlIGRvbid0IGhhdmUgdGhlIHB5dGhvbiBsaWJzIGluc3RhbGxlZAorLS0gCisyLjE0LjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvMjEtYWRkLWNvbmZpZy1vcHRpb24td2l0aG91dC12YWxncmluZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhLzIxLWFkZC1jb25maWctb3B0aW9uLXdpdGhvdXQtdmFsZ3JpbmQucGF0Y2gKaW5kZXggMDI1YWMyNy4uNmE3ZjhmYSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvMjEtYWRkLWNvbmZpZy1vcHRpb24td2l0aG91dC12YWxncmluZC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS8yMS1hZGQtY29uZmlnLW9wdGlvbi13aXRob3V0LXZhbGdyaW5kLnBhdGNoCkBAIC02LDYgKzYsNyBAQAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKIFNpZ25lZC1vZmYtYnk6IFdlbnpvbmcgRmFuIDx3ZW56b25nLmZhbkB3aW5kcml2ZXIuY29tPgorCiAtLS0KICBsaWIvcmVwbGFjZS93c2NyaXB0IHwgNCArKystCiAgc291cmNlMy93c2NyaXB0ICAgICB8IDUgKysrKy0KQEAgLTE2LDkgKzE3LDkgQEAKIGluZGV4IGYwMDQwYjEuLmFjYTczYWYgMTAwNjQ0CiAtLS0gYS9saWIvcmVwbGFjZS93c2NyaXB0CiArKysgYi9saWIvcmVwbGFjZS93c2NyaXB0Ci1AQCAtMTAxLDcgKzEwMSw5IEBAIHN0cnVjdCBmb28gYmFyID0geyAueSA9ICdYJywgLnggPSAxIH07Ci0gCi0gICAgIGNvbmYuQ0hFQ0tfQ09ERSgnJywgaGVhZGVycz0ncnBjL3JwYy5oIHJwY3N2Yy95cF9wcm90LmgnLCBkZWZpbmU9J0hBVkVfUlBDU1ZDX1lQX1BST1RfSCcpCitAQCAtMTAxLDcgKzEwMSw5IEBAIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2ZpbGVpby5oIHN5cy9maWxlc3lzLmggc3lzL2R1c3RhdC5oIHN5cy9zeXNtYWNyb3MuaCcpCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygneGZzL2xpYnhmcy5oIG5ldGdyb3VwLmgnKQogIAogLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3ZhbGdyaW5kLmggdmFsZ3JpbmQvdmFsZ3JpbmQuaCB2YWxncmluZC9tZW1jaGVjay5oJykKICsgICAgaWYgbm90IE9wdGlvbnMub3B0aW9ucy5kaXNhYmxlX3ZhbGdyaW5kOgpAQCAtMjYsMTIgKzI3LDEyIEBACiArCiAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbnNzX2NvbW1vbi5oIG5zc3dpdGNoLmggbnNfYXBpLmgnKQogICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9leHRhdHRyLmggc3lzL2VhLmggc3lzL3Byb3BsaXN0Lmggc3lzL2NkZWZzLmgnKQotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3V0bXAuaCB1dG1weC5oIGxhc3Rsb2cuaCBtYWxsb2MuaCcpCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndXRtcC5oIHV0bXB4LmggbGFzdGxvZy5oJykKIGRpZmYgLS1naXQgYS9zb3VyY2UzL3dzY3JpcHQgYi9zb3VyY2UzL3dzY3JpcHQKIGluZGV4IGJhYzNkZDUuLmE1YzUxZWEgMTAwNjQ0CiAtLS0gYS9zb3VyY2UzL3dzY3JpcHQKICsrKyBiL3NvdXJjZTMvd3NjcmlwdAotQEAgLTEwMTYsNyArMTAxNiwxMCBAQCBzeXNjYWxsKFNZU19zZXRncm91cHMzMiwgMCwgTlVMTCk7CitAQCAtMTA3MCw3ICsxMDcwLDEwIEBAIHN5c2NhbGwoU1lTX3NldGdyb3VwczMyLCAwLCBOVUxMKTsKICAgICAgICAgICAgICBMb2dzLndhcm4oIi0td2l0aC1kbnN1cGRhdGU9eWVzIGJ1dCBnc3NhcGkgc3VwcG9ydCBub3Qgc3VmZmljaWVudCIpCiAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgIGNvbmYuREVGSU5FKCdXSVRIX0ROU19VUERBVEVTJywgMSkKQEAgLTQ0LDEyICs0NSwxMiBAQAogICAgICAgICAgaWYgY29uZi5DT05GSUdfU0VUKCdIQVZFX1ZBTEdSSU5EX0gnKSBvciBjb25mLkNPTkZJR19TRVQoJ0hBVkVfVkFMR1JJTkRfVkFMR1JJTkRfSCcpOgogICAgICAgICAgICAgIGNvbmYuREVGSU5FKCdWQUxHUklORCcsICcxJykKIGRpZmYgLS1naXQgYS93c2NyaXB0IGIvd3NjcmlwdAotaW5kZXggNzY3OWMwZi4uNjgxYWMxNyAxMDA2NDQKK2luZGV4IDU0MmE2MGMuLjIyZTYxMTYgMTAwNjQ0CiAtLS0gYS93c2NyaXB0CiArKysgYi93c2NyaXB0Ci1AQCAtNzIsNiArNzIsMTAgQEAgZGVmIHNldF9vcHRpb25zKG9wdCk6Ci0gICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHN5c3RlbWQgaW50ZWdyYXRpb24iKSwKLSAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV9mYWxzZScsIGRlc3Q9J2VuYWJsZV9zeXN0ZW1kJykKK0BAIC04Niw2ICs4NiwxMCBAQCBkZWYgc2V0X29wdGlvbnMob3B0KToKKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSBSRUxSTyBidWlsZHMiKSwKKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX3JlbHJvJykKICAKICsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC12YWxncmluZCcsCiArICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiB0aGUgdmFsZ3JpbmQgaGVhZGVycyIpLApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvZG5zc2VydmVyLTQuNy4wLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvZG5zc2VydmVyLTQuNy4wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjNzU5MmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS9kbnNzZXJ2ZXItNC43LjAucGF0Y2gKQEAgLTAsMCArMSwxOSBAQAorc2FtYmE6IGJ1aWxkIGRuc3NlcnZlcl9jb21tb24gY29kZQorCitKdXN0ICdpbnN0YWxsJyBkb2VzIG5vdCBzZWVtIHRvIGRvIGl0LgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogSm9lIFNsYXRlciA8am9lLnNsYXRlckB3aW5kcml2ZXIuY29tPgorCistLS0gYS9zb3VyY2U0L2Ruc19zZXJ2ZXIvd3NjcmlwdF9idWlsZAorKysrIGIvc291cmNlNC9kbnNfc2VydmVyL3dzY3JpcHRfYnVpbGQKK0BAIC00LDcgKzQsNyBAQCBibGQuU0FNQkFfTElCUkFSWSgnZG5zc2VydmVyX2NvbW1vbicsCisgICAgICAgICBzb3VyY2U9J2Ruc3NlcnZlcl9jb21tb24uYycsCisgICAgICAgICBkZXBzPSdzYW1iYS11dGlsIHNhbWJhLWVycm9ycyBsZGJzYW1iYSBjbGlkbnMnLAorICAgICAgICAgcHJpdmF0ZV9saWJyYXJ5PVRydWUsCistICAgICAgICBpbnN0YWxsPWJsZC5BRF9EQ19CVUlMRF9JU19FTkFCTEVEKCkKKysgICAgICAgIGVuYWJsZWQ9YmxkLkFEX0RDX0JVSUxEX0lTX0VOQUJMRUQoKQorICAgICAgICAgKQorIAorIGJsZC5TQU1CQV9NT0RVTEUoJ3NlcnZpY2VfZG5zJywKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL2ljb252LTQuNy4wLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvaWNvbnYtNC43LjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFlOGM1OQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL2ljb252LTQuNy4wLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK3NhbWJhOiBkZWZlYXQgaWNvbnYgdGVzdAorCitBIHRlc3Qgd2FzIGFkZGVkIHdoZW4gY29uZmlndXJpbmcgc2FtYmEgd2hpY2ggcmVxdWlyZXMgdGFyZ2V0IGNvZGUKK3RvIGJlIGV4ZWN1dGVkLiAgSW4gZ2VuZXJhbCwgdGhpcyB3aWxsIG5vdCB3b3JrLCBzbyB3ZSBlbGltaW5hdGUgaXQuCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBKb2UgU2xhdGVyIDxqb2Uuc2xhdGVyQHdpbmRyaXZlci5jb20+CisKKy0tLSBhL2xpYi91dGlsL2NoYXJzZXQvd3NjcmlwdF9jb25maWd1cmUKKysrKyBiL2xpYi91dGlsL2NoYXJzZXQvd3NjcmlwdF9jb25maWd1cmUKK0BAIC0xNyw2ICsxNyw4IEBAIGlmIChjb25mLkNIRUNLX0ZVTkNTX0lOKCdpY29udl9vcGVuJywgJ2kKKyAgICAgCisgICAgIGNvbmYuREVGSU5FKCdIQVZFX05BVElWRV9JQ09OVicsIDEpCisgCisrIiIiCisrW2FkZGVkIGZvciA0LjcuMCwgYnV0IGJyZWFrcyBjcm9zcy1jb21waWxhdGlvbl0KKyBjb25mLkNIRUNLX0NPREUoJycnCisgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaW5idWZbMl0gPSB7IDB4MzAsIDB4ZGYgfTsKKyAgICAgICAgICAgICAgICAgdWludDhfdCBvdXRidWZbNF0gPSB7IDAgfTsKK0BAIC0zNiwzICszOCw0IEBAIGNvbmYuQ0hFQ0tfQ09ERSgnJycKKyAgICAgICAgICAgICAgICAgbXNnPSdDaGVja2luZyBlcnJubyBvZiBpY29udiBmb3IgaWxsZWdhbCBtdWx0aWJ5dGUgc2VxdWVuY2UnLAorICAgICAgICAgICAgICAgICBsaWI9J2ljb252JywKKyAgICAgICAgICAgICAgICAgaGVhZGVycz0nZXJybm8uaCBpY29udi5oJykKKysiIiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL3NhbWJhLTQuMi43LXBhbS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL3NhbWJhLTQuMi43LXBhbS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmI5YWRlOS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS9zYW1iYS00LjIuNy1wYW0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1MaWZ0ZWQgZnJvbSBnZW50b28gYW5kIHBvcnRlZCB0byA0LjQuNQotCi1odHRwOi8vZGF0YS5ncG8uenVnYWluYS5vcmcvbXVzbC9uZXQtZnMvc2FtYmEvZmlsZXMvc2FtYmEtNC4yLjctcGFtLnBhdGNoCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0KLQotSW5kZXg6IHNhbWJhLTQuNC41L3NvdXJjZTMvd3NjcmlwdAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHNhbWJhLTQuNC41Lm9yaWcvc291cmNlMy93c2NyaXB0Ci0rKysgc2FtYmEtNC40LjUvc291cmNlMy93c2NyaXB0Ci1AQCAtODczLDcgKzg3Myw3IEBAIG1zZy5tc2dfYWNjcmlnaHRzbGVuID0gc2l6ZW9mKGZkKTsKLSAgICAgICAgIGlmIGNvbmYuZW52LndpdGhfaWNvbnY6Ci0gICAgICAgICAgICAgY29uZi5ERUZJTkUoJ0hBVkVfSUNPTlYnLCAxKQotIAotLSAgICBpZiBPcHRpb25zLm9wdGlvbnMud2l0aF9wYW06Ci0rICAgIGlmIE9wdGlvbnMub3B0aW9ucy53aXRoX3BhbSAhPSBGYWxzZToKLSAgICAgICAgIHVzZV9wYW09VHJ1ZQotICAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzZWN1cml0eS9wYW1fYXBwbC5oIHBhbS9wYW1fYXBwbC5oJykKLSAgICAgICAgIGlmIG5vdCBjb25mLkNPTkZJR19TRVQoJ0hBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCcpIGFuZCBub3QgY29uZi5DT05GSUdfU0VUKCdIQVZFX1BBTV9QQU1fQVBQTF9IJyk6Ci1AQCAtOTQ1LDYgKzk0NSwxNSBAQCBpbnQgaTsgaSA9IFBBTV9SQURJT19UWVBFOwotICAgICAgICAgaWYgdXNlX3BhbToKLSAgICAgICAgICAgICBjb25mLkRFRklORSgnV0lUSF9QQU0nLCAxKQotICAgICAgICAgICAgIGNvbmYuREVGSU5FKCdXSVRIX1BBTV9NT0RVTEVTJywgMSkKLSsgICAgZWxzZToKLSsgICAgICAgIExvZ3Mud2FybigiUEFNIGRpc2FibGVkIikKLSsgICAgICAgIHVzZV9wYW09RmFsc2UKLSsgICAgICAgIGNvbmYudW5kZWZpbmUoJ1dJVEhfUEFNJykKLSsgICAgICAgIGNvbmYudW5kZWZpbmUoJ1dJVEhfUEFNX01PRFVMRVMnKQotKyAgICAgICAgY29uZi51bmRlZmluZSgnSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IJykKLSsgICAgICAgIGNvbmYudW5kZWZpbmUoJ1BBTV9SSE9TVCcpCi0rICAgICAgICBjb25mLnVuZGVmaW5lKCdQQU1fVFRZJykKLSsgICAgICAgIGNvbmYudW5kZWZpbmUoJ0hBVkVfUEFNX1BBTV9BUFBMX0gnKQotIAotICAgICBzZXRldWlkID0gRmFsc2UKLSAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL3NhbWJhLXBhbS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL3NhbWJhLXBhbS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2JhY2I2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmEvc2FtYmEtcGFtLnBhdGNoCkBAIC0wLDAgKzEsMzcgQEAKK0xpZnRlZCBmcm9tIGdlbnRvbyBhbmQgcG9ydGVkIHRvIDQuNC41CisKK2h0dHA6Ly9kYXRhLmdwby56dWdhaW5hLm9yZy9tdXNsL25ldC1mcy9zYW1iYS9maWxlcy9zYW1iYS00LjIuNy1wYW0ucGF0Y2gKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKworSW5kZXg6IHNhbWJhLTQuNy4wL3NvdXJjZTMvd3NjcmlwdAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHNhbWJhLTQuNy4wLm9yaWcvc291cmNlMy93c2NyaXB0CisrKysgc2FtYmEtNC43LjAvc291cmNlMy93c2NyaXB0CitAQCAtODc1LDcgKzg3NSw3IEBAIG1zZy5tc2dfYWNjcmlnaHRzbGVuID0gc2l6ZW9mKGZkKTsKKyAgICAgICAgIGlmIGNvbmYuZW52LndpdGhfaWNvbnY6CisgICAgICAgICAgICAgY29uZi5ERUZJTkUoJ0hBVkVfSUNPTlYnLCAxKQorIAorLSAgICBpZiBPcHRpb25zLm9wdGlvbnMud2l0aF9wYW06CisrICAgIGlmIE9wdGlvbnMub3B0aW9ucy53aXRoX3BhbSAhPSBGYWxzZToKKyAgICAgICAgIHVzZV9wYW09VHJ1ZQorICAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzZWN1cml0eS9wYW1fYXBwbC5oIHBhbS9wYW1fYXBwbC5oJykKKyAgICAgICAgIGlmIG5vdCBjb25mLkNPTkZJR19TRVQoJ0hBVkVfU0VDVVJJVFlfUEFNX0FQUExfSCcpIGFuZCBub3QgY29uZi5DT05GSUdfU0VUKCdIQVZFX1BBTV9QQU1fQVBQTF9IJyk6CitAQCAtOTUyLDYgKzk1MiwxNyBAQCBpbnQgaTsgaSA9IFBBTV9SQURJT19UWVBFOworICAgICAgICAgICAgICAgICAgICAgICAgIm9yIGhlYWRlcnMgbm90IGZvdW5kLiBVc2UgLS13aXRob3V0LXBhbSB0byBkaXNhYmxlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJQQU0gc3VwcG9ydC4iKTsKKyAKKysgICAgZWxzZToKKysgICAgICAgIExvZ3Mud2FybigiUEFNIGRpc2FibGVkIikKKysgICAgICAgIHVzZV9wYW09RmFsc2UKKysgICAgICAgIGNvbmYudW5kZWZpbmUoJ1dJVEhfUEFNJykKKysgICAgICAgIGNvbmYudW5kZWZpbmUoJ1dJVEhfUEFNX01PRFVMRVMnKQorKyAgICAgICAgY29uZi51bmRlZmluZSgnSEFWRV9TRUNVUklUWV9QQU1fQVBQTF9IJykKKysgICAgICAgIGNvbmYudW5kZWZpbmUoJ1BBTV9SSE9TVCcpCisrICAgICAgICBjb25mLnVuZGVmaW5lKCdQQU1fVFRZJykKKysgICAgICAgIGNvbmYudW5kZWZpbmUoJ0hBVkVfUEFNX1BBTV9BUFBMX0gnKQorKworKworICAgICBzZXRldWlkID0gRmFsc2UKKyAKKyAjCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS9zbWJfY29uZi00LjcuMC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3NhbWJhL3NhbWJhL3NtYl9jb25mLTQuNy4wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3YzhiMzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYS9zbWJfY29uZi00LjcuMC5wYXRjaApAQCAtMCwwICsxLDE5IEBACitzYW1iYTogY29ycmVjdCBsb2cgZmlsZXMgbG9jYXRpb24KKworV2UgdXNlIC92YXIvbG9nL3NhbWJhLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogSm9lIFNsYXRlciA8am9lLnNsYXRlckB3aW5kcml2ZXIuY29tPgorCistLS0gYS9wYWNrYWdpbmcvUkhFTC9zZXR1cC9zbWIuY29uZgorKysrIGIvcGFja2FnaW5nL1JIRUwvc2V0dXAvc21iLmNvbmYKK0BAIC02Myw3ICs2Myw3IEBACisgCisgIyB0aGlzIHRlbGxzIFNhbWJhIHRvIHVzZSBhIHNlcGFyYXRlIGxvZyBmaWxlIGZvciBlYWNoIG1hY2hpbmUKKyAjIHRoYXQgY29ubmVjdHMKKy0gICBsb2cgZmlsZSA9IC91c3IvbG9jYWwvc2FtYmEvdmFyL2xvZy4lbQorKyAgIGxvZyBmaWxlID0gL3Zhci9sb2cvc2FtYmEvbG9nLiVtCisgCisgIyBQdXQgYSBjYXBwaW5nIG9uIHRoZSBzaXplIG9mIHRoZSBsb2cgZmlsZXMgKGluIEtiKS4KKyAgICBtYXggbG9nIHNpemUgPSA1MApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmFfNC42LjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYV80LjYuNy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmIyMjdjOS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYV80LjYuNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI1NiArMCwwIEBACi1IT01FUEFHRSA9ICJodHRwczovL3d3dy5zYW1iYS5vcmcvIgotU0VDVElPTiA9ICJjb25zb2xlL25ldHdvcmsiCi0KLUxJQ0VOU0UgPSAiR1BMLTMuMCsgJiBMR1BMLTMuMCsgJiBHUEwtMi4wKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovLyR7Q09SRUJBU0V9L21ldGEvZmlsZXMvY29tbW9uLWxpY2Vuc2VzL0xHUEwtMy4wO21kNT1iZmNjZmU5NTIyNjlmZmYyYjQwN2RkMTFmMmYzMDgzYiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly8ke0NPUkVCQVNFfS9tZXRhL2ZpbGVzL2NvbW1vbi1saWNlbnNlcy9HUEwtMi4wO21kNT04MDFmODA5ODBkMTcxZGQ2NDI1NjEwODMzYTIyZGJlNiAiCi0KLVNBTUJBX01JUlJPUiA9ICJodHRwOi8vc2FtYmEub3JnL3NhbWJhL2Z0cCIKLU1JUlJPUlMgKz0gIlwKLSR7U0FNQkFfTUlSUk9SfSAgICBodHRwOi8vbWlycm9yLmludGVybm9kZS5vbi5uZXQvcHViL3NhbWJhIFxuIFwKLSR7U0FNQkFfTUlSUk9SfSAgICBodHRwOi8vd3d3Lm1pcnJvcnNlcnZpY2Uub3JnL3NpdGVzL2Z0cC5zYW1iYS5vcmcgXG4gXAotIgotCi1TUkNfVVJJID0gIiR7U0FNQkFfTUlSUk9SfS9zdGFibGUvc2FtYmEtJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovLzE2LWRvLW5vdC1jaGVjay14c2x0cHJvYy1tYW5wYWdlcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8yMC1kby1ub3QtaW1wb3J0LXRhcmdldC1tb2R1bGUtd2hpbGUtY3Jvc3MtY29tcGlsZS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8yMS1hZGQtY29uZmlnLW9wdGlvbi13aXRob3V0LXZhbGdyaW5kLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtcGFja2FnaW5nLUF2b2lkLXRpbWVvdXQtZm9yLW5tYmQtaWYtc3RhcnRlZC1vZmZsaW5lLS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA2LWF2b2lkLXVzaW5nLWNvbG9uLWluLXRoZS1jaGVja2luZy1tc2cucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbmV0ZGJfZGVmaW5lcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9nbGliY19vbmx5LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL3ZvbGF0aWxlcy4wM19zYW1iYSBcCi0gICAgICAgICAgIgotU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0gIiBcCi0gICAgICAgICAgIGZpbGU6Ly9zYW1iYS00LjIuNy1wYW0ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vc2FtYmEtNC4zLjktcmVtb3ZlLWdldHB3ZW50X3IucGF0Y2ggXAotICAgICAgICAgICIKLQotU1JDX1VSSVttZDVzdW1dID0gImM2ZWU1Yzc2NjAxNmQ1OTkwOGM4ZmI2NzJmYmJkNDQ1IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjllZjI0MzkzZGUwODM5MGYyMzZjYWJjY2Q2YTQyMGI1Y2VhMzA0ZTk1OWNiZjFhOTlmZjMxNzMyNWRiM2RkZmEiCi0KLWluaGVyaXQgc3lzdGVtZCB3YWYtc2FtYmEgY3Bhbi1iYXNlIHBlcmxuYXRpdmUgdXBkYXRlLXJjLmQKLSMgcmVtb3ZlIGRlZmF1bHQgYWRkZWQgUkRFUEVORFMgb24gcGVybAotUkRFUEVORFNfJHtQTn1fcmVtb3ZlID0gInBlcmwiCi0KLURFUEVORFMgKz0gInJlYWRsaW5lIHZpcnR1YWwvbGliaWNvbnYgemxpYiBwb3B0IGxpYnRhbGxvYyBsaWJ0ZGIgbGlidGV2ZW50IGxpYmxkYiBrcmI1IGxpYmJzZCBsaWJhaW8gbGlicGFtIgotREVQRU5EU19hcHBlbmRfbGliYy1tdXNsID0gIiBsaWJ0aXJwYyIKLUNGTEFHU19hcHBlbmRfbGliYy1tdXNsID0gIiAtSSR7U1RBR0lOR19JTkNESVJ9L3RpcnBjIgotTERGTEFHU19hcHBlbmRfbGliYy1tdXNsID0gIiAtbHRpcnBjIgotCi1MU0IgPSAiIgotTFNCX2xpbnV4c3RkYmFzZSA9ICJsc2IiCi0KLUlOSVRTQ1JJUFRfTkFNRSA9ICJzYW1iYSIKLUlOSVRTQ1JJUFRfUEFSQU1TID0gInN0YXJ0IDIwIDMgNSAuIHN0b3AgMjAgMCAxIDYgLiIKLQotU1lTVEVNRF9QQUNLQUdFUyA9ICIke1BOfS1iYXNlIHdpbmJpbmQiCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0tYmFzZSA9ICJubWIuc2VydmljZSBzbWIuc2VydmljZSIKLVNZU1RFTURfU0VSVklDRV93aW5iaW5kID0gIndpbmJpbmQuc2VydmljZSIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQgemVyb2NvbmYnLCBkKX0gXAotICAgICAgICAgICAgICAgICAgIGFjbCBjdXBzIGxkYXAgXAotIgotCi1SREVQRU5EU18ke1BOfS1iYXNlICs9ICIke0xTQn0iCi1SREVQRU5EU18ke1BOfS1jdGRiLXRlc3RzICs9ICJiYXNoIHV0aWwtbGludXgtZ2V0b3B0IgotCi1QQUNLQUdFQ09ORklHW2FjbF0gPSAiLS13aXRoLWFjbC1zdXBwb3J0LC0td2l0aG91dC1hY2wtc3VwcG9ydCxhY2wiCi1QQUNLQUdFQ09ORklHW2ZhbV0gPSAiLS13aXRoLWZhbSwtLXdpdGhvdXQtZmFtLGdhbWluIgotUEFDS0FHRUNPTkZJR1tjdXBzXSA9ICItLWVuYWJsZS1jdXBzLC0tZGlzYWJsZS1jdXBzLGN1cHMiCi1QQUNLQUdFQ09ORklHW2xkYXBdID0gIi0td2l0aC1sZGFwLC0td2l0aG91dC1sZGFwLG9wZW5sZGFwIgotUEFDS0FHRUNPTkZJR1tzYXNsXSA9ICIsLGN5cnVzLXNhc2wiCi1QQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIi0td2l0aC1zeXN0ZW1kLC0td2l0aG91dC1zeXN0ZW1kLHN5c3RlbWQiCi1QQUNLQUdFQ09ORklHW2RtYXBpXSA9ICItLXdpdGgtZG1hcGksLS13aXRob3V0LWRtYXBpLGRtYXBpIgotUEFDS0FHRUNPTkZJR1t6ZXJvY29uZl0gPSAiLS1lbmFibGUtYXZhaGksLS1kaXNhYmxlLWF2YWhpLGF2YWhpIgotUEFDS0FHRUNPTkZJR1t2YWxncmluZF0gPSAiLC0td2l0aG91dC12YWxncmluZCx2YWxncmluZCwiCi1QQUNLQUdFQ09ORklHW2x0dG5nXSA9ICItLXdpdGgtbHR0bmcsIC0td2l0aG91dC1sdHRuZyxsdHRuZy11c3QiCi1QQUNLQUdFQ09ORklHW2FyY2hpdmVdID0gIi0td2l0aC1saWJhcmNoaXZlLCAtLXdpdGhvdXQtbGliYXJjaGl2ZSwgbGliYXJjaGl2ZSIKLQotCi1TQU1CQTRfSURNQVBfTU9EVUxFUz0iaWRtYXBfYWQsaWRtYXBfcmlkLGlkbWFwX2FkZXgsaWRtYXBfaGFzaCxpZG1hcF90ZGIyIgotU0FNQkE0X1BEQl9NT0RVTEVTPSJwZGJfdGRic2FtLCR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ2xkYXAnLCAncGRiX2xkYXAsJywgJycsIGQpfXBkYl9hZHMscGRiX3NtYnBhc3N3ZCxwZGJfd2JjX3NhbSxwZGJfc2FtYmE0IgotU0FNQkE0X0FVVEhfTU9EVUxFUz0iYXV0aF91bml4LGF1dGhfd2JjLGF1dGhfc2VydmVyLGF1dGhfbmV0bG9nb25kLGF1dGhfc2NyaXB0LGF1dGhfc2FtYmE0IgotU0FNQkE0X01PRFVMRVM9IiR7U0FNQkE0X0lETUFQX01PRFVMRVN9LCR7U0FNQkE0X1BEQl9NT0RVTEVTfSwke1NBTUJBNF9BVVRIX01PRFVMRVN9IgotCi1TQU1CQTRfTElCUz0iaGVpbWRhbCwhemxpYiwhcG9wdCwhdGFsbG9jLCFweXRhbGxvYywhcHl0YWxsb2MtdXRpbCwhdGV2ZW50LCFweXRldmVudCwhdGRiLCFweXRkYiwhbGRiLCFweWxkYiIKLQotRVhUUkFfT0VDT05GICs9ICItLWVuYWJsZS1maHMgXAotICAgICAgICAgICAgICAgICAtLXdpdGgtcGlkZGlyPS9ydW4gXAotICAgICAgICAgICAgICAgICAtLXdpdGgtc29ja2V0cy1kaXI9L3J1bi9zYW1iYSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1tb2R1bGVzZGlyPSR7bGliZGlyfS9zYW1iYSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1sb2NrZGlyPSR7bG9jYWxzdGF0ZWRpcn0vbGliL3NhbWJhIFwKLSAgICAgICAgICAgICAgICAgLS13aXRoLWNhY2hlZGlyPSR7bG9jYWxzdGF0ZWRpcn0vbGliL3NhbWJhIFwKLSAgICAgICAgICAgICAgICAgLS1kaXNhYmxlLWdudXRscyBcCi0gICAgICAgICAgICAgICAgIC0tZGlzYWJsZS1ycGF0aC1pbnN0YWxsIFwKLSAgICAgICAgICAgICAgICAgLS13aXRoLXNoYXJlZC1tb2R1bGVzPSR7U0FNQkE0X01PRFVMRVN9IFwKLSAgICAgICAgICAgICAgICAgLS1idW5kbGVkLWxpYnJhcmllcz0ke1NBTUJBNF9MSUJTfSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1zeXN0ZW0tbWl0a3JiNSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aG91dC1hZC1kYyBcCi0gICAgICAgICAgICAgICAgICR7QGJhc2VfY29uZGl0aW9uYWwoJ1RBUkdFVF9BUkNIJywgJ3g4Nl82NCcsICcnLCAnLS1kaXNhYmxlLWdsdXN0ZXJmcycsIGQpfSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1jbHVzdGVyLXN1cHBvcnQgXAotICAgICAgICAgICAgICAgICAtLXdpdGgtcHJvZmlsaW5nLWRhdGEgXAotICAgICAgICAgICAgICAgICAtLXdpdGgtbGliaWNvbnY9JHtTVEFHSU5HX0RJUl9IT1NUfSR7cHJlZml4fSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1wYW0gLS13aXRoLXBhbW1vZHVsZXNkaXI9JHtiYXNlX2xpYmRpcn0vc2VjdXJpdHkgXAotICAgICAgICAgICAgICAgICIKLQotTERGTEFHUyArPSAiLVdsLC16LHJlbHJvLC16LG5vdyAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ2xkLWlzLWdvbGQnLCAnIC1mdXNlLWxkPWJmZCAnLCAnJywgZCl9IgotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBmb3Igc2VjdGlvbiBpbiAxIDUgNzsgZG8KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHttYW5kaXJ9L21hbiRzZWN0aW9uCi0gICAgICAgIGluc3RhbGwgLW0gMDY0NCBjdGRiL2RvYy8qLiRzZWN0aW9uICR7RH0ke21hbmRpcn0vbWFuJHNlY3Rpb24KLSAgICBkb25lCi0gICAgZm9yIHNlY3Rpb24gaW4gMSA1IDcgODsgZG8KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHttYW5kaXJ9L21hbiRzZWN0aW9uCi0gICAgICAgIGluc3RhbGwgLW0gMDY0NCBkb2NzL21hbnBhZ2VzLyouJHNlY3Rpb24gJHtEfSR7bWFuZGlyfS9tYW4kc2VjdGlvbgotICAgIGRvbmUKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0KLSAgICBpbnN0YWxsIC1tIDA2NDQgcGFja2FnaW5nL3N5c3RlbWQvKi5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9Ci0gICAgc2VkIC1lICdzLFwoRXhlY1JlbG9hZD1cKS4qXCgva2lsbFwpLFwxJHtiYXNlX2JpbmRpcn1cMiwnIFwKLSAgICAgICAgLWUgJ3MsL2V0Yy9zeXNjb25maWcvc2FtYmEsJHtzeXNjb25mZGlyfS9kZWZhdWx0L3NhbWJhLCcgXAotICAgICAgICAtaSAke0R9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS8qLnNlcnZpY2UKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAotICAgIGluc3RhbGwgLW02NDQgcGFja2FnaW5nL3N5c3RlbWQvc2FtYmEuY29uZi50bXAgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC9zYW1iYS5jb25mCi0gICAgZWNobyAiZCAke2xvY2Fsc3RhdGVkaXJ9L2xvZy9zYW1iYSAwNzU1IHJvb3Qgcm9vdCAtIiBcCi0gICAgICAgID4+ICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvc2FtYmEuY29uZgotICAgIGlmIFsgIiR7TFNCfSIgPSAibHNiIiBdOyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCi0gICAgICAgIGluc3RhbGwgLW0gMDc1NSBwYWNrYWdpbmcvTFNCL3NhbWJhLnNoICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9zYW1iYQotICAgIGVsc2UKLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKLSAgICAgICAgaW5zdGFsbCAtbSAwNzU1IHBhY2thZ2luZy9zeXN2L3NhbWJhLmluaXQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3NhbWJhCi0gICAgICAgIHNlZCAtZSAncywvb3B0L3NhbWJhL2Jpbiwke3NiaW5kaXJ9LGcnIFwKLSAgICAgICAgICAgIC1lICdzLC9vcHQvc2FtYmEvc21iLmNvbmYsJHtzeXNjb25mZGlyfS9zYW1iYS9zbWIuY29uZixnJyBcCi0gICAgICAgICAgICAtZSAncywvb3B0L3NhbWJhL2xvZywke2xvY2Fsc3RhdGVkaXJ9L2xvZy9zYW1iYSxnJyBcCi0gICAgICAgICAgICAtZSAncywvZXRjL2luaXQuZC9zYW1iYS5zZXJ2ZXIsJHtzeXNjb25mZGlyfS9pbml0LmQvc2FtYmEsZycgXAotICAgICAgICAgICAgLWUgJ3MsL3Vzci9iaW4sJHtiYXNlX2JpbmRpcn0sZycgXAotICAgICAgICAgICAgLWkgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3NhbWJhCi0gICAgZmkKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vc2FtYmEKLSAgICBlY2hvICIxMjcuMC4wLjEgbG9jYWxob3N0IiA+ICR7RH0ke3N5c2NvbmZkaXJ9L3NhbWJhL2xtaG9zdHMKLSAgICBpbnN0YWxsIC1tNjQ0IHBhY2thZ2luZy9MU0Ivc21iLmNvbmYgJHtEfSR7c3lzY29uZmRpcn0vc2FtYmEvc21iLmNvbmYKLSAgICBpbnN0YWxsIC1EIC1tIDY0NCAke1dPUktESVJ9L3ZvbGF0aWxlcy4wM19zYW1iYSAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcy8wM19zYW1iYQotCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0Ci0gICAgaW5zdGFsbCAtbTY0NCBwYWNrYWdpbmcvc3lzdGVtZC9zYW1iYS5zeXNjb25maWcgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC9zYW1iYQotCi0gICAgIyBpbnN0YWxsIGN0ZGIgY29uZmlnIGZpbGUgYW5kIHRlc3QgY2FzZXMKLSAgICBpbnN0YWxsIC1EIC1tIDA2NDQgJHtTfS9jdGRiL3Rlc3RzL29ubm9kZS9ub2RlcyAke0R9JHtzeXNjb25mZGlyfS9jdGRiL25vZGVzCi0gICAgIyB0aGUgaXRlbXMgYXJlIGZyb20gY3RkYi90ZXN0cy9ydW5fdGVzdHMuc2gKLSAgICBmb3IgZCBpbiBvbm5vZGUgdGFrZW92ZXIgdG9vbCBldmVudHNjcmlwdHMgY3VuaXQgc2ltcGxlIGNvbXBsZXg7IGRvCi0gICAgICAgIHRlc3RkaXI9JHtEfSR7ZGF0YWRpcn0vY3RkYi10ZXN0cy8kZAotICAgICAgICBpbnN0YWxsIC1kICR0ZXN0ZGlyCi0gICAgICAgIGNwICR7U30vY3RkYi90ZXN0cy8kZC8qLnNoICR0ZXN0ZGlyCi0gICAgICAgIGNwIC1yICR7U30vY3RkYi90ZXN0cy8kZC9zY3JpcHRzICR7U30vY3RkYi90ZXN0cy8kZC9zdHVicyAkdGVzdGRpciB8fCB0cnVlCi0gICAgZG9uZQotCi0gICAgIyBmaXggZmlsZS1yZGVwcyBxYSB3YXJuaW5nCi0gICAgaWYgWyAtZiAke0R9JHtiaW5kaXJ9L29ubm9kZSBdOyB0aGVuCi0gICAgICAgIHNlZCAtaSAnczpcKCMhL2Jpbi9cKWJhc2g6XDFzaDonICR7RH0ke2JpbmRpcn0vb25ub2RlCi0gICAgZmkKLQotICAgIGNobW9kIDA3NTAgJHtEfSR7c3lzY29uZmRpcn0vc3Vkb2Vycy5kCi0gICAgcm0gLXJmICR7RH0vcnVuICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3J1biAke0R9JHtsb2NhbHN0YXRlZGlyfS9sb2cKLX0KLQotUEFDS0FHRVMgPSsgIiR7UE59LXB5dGhvbiAke1BOfS1waWRsIFwKLSAgICAgICAgICAgICAke1BOfS1kc2RiLW1vZHVsZXMgJHtQTn0tdGVzdHN1aXRlIHJlZ2lzdHJ5LXRvb2xzIFwKLSAgICAgICAgICAgICB3aW5iaW5kIFwKLSAgICAgICAgICAgICAke1BOfS1jb21tb24gJHtQTn0tYmFzZSAke1BOfS1jdGRiLXRlc3RzIFwKLSAgICAgICAgICAgICBzbWJjbGllbnQiCi0KLXB5dGhvbiBzYW1iYV9wb3B1bGF0ZV9wYWNrYWdlcygpIHsKLSAgICBkZWYgbW9kdWxlX2hvb2soZmlsZSwgcGtnLCBwYXR0ZXJuLCBmb3JtYXQsIGJhc2VuYW1lKToKLSAgICAgICAgcG4gPSBkLmdldFZhcignUE4nLCBUcnVlKQotICAgICAgICBkLmFwcGVuZFZhcignUlJFQ09NTUVORFNfJXMtYmFzZScgJSBwbiwgJyAlcycgJSBwa2cpCi0KLSAgICBtbHByZWZpeCA9IGQuZ2V0VmFyKCdNTFBSRUZJWCcsIFRydWUpIG9yICcnCi0gICAgcGFtX2xpYmRpciA9IGQuZXhwYW5kKCcke2Jhc2VfbGliZGlyfS9zZWN1cml0eScpCi0gICAgcGFtX3BrZ25hbWUgPSBtbHByZWZpeCArICdwYW0tcGx1Z2luJXMnCi0gICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgcGFtX2xpYmRpciwgJ15wYW1fKC4qKVwuc28kJywgcGFtX3BrZ25hbWUsICdQQU0gcGx1Z2luIGZvciAlcycsIGV4dHJhX2RlcGVuZHM9JycsIHByZXBlbmQ9VHJ1ZSkKLQotICAgIGxpYmRpciA9IGQuZ2V0VmFyKCdsaWJkaXInLCBUcnVlKQotICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIGxpYmRpciwgJ15saWIoLiopXC5zb1wuLiokJywgJ2xpYiVzJywgJ1NhbWJhICVzIGxpYnJhcnknLCBleHRyYV9kZXBlbmRzPScke1BOfS1jb21tb24nLCBwcmVwZW5kPVRydWUsIGFsbG93X2xpbmtzPVRydWUpCi0gICAgcGtnbGliZGlyID0gJyVzL3NhbWJhJyAlIGxpYmRpcgotICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIHBrZ2xpYmRpciwgJ15saWIoLiopXC5zbyQnLCAnbGliJXMnLCAnU2FtYmEgJXMgbGlicmFyeScsIGV4dHJhX2RlcGVuZHM9JyR7UE59LWNvbW1vbicsIHByZXBlbmQ9VHJ1ZSkKLSAgICBtb2R1bGVkaXIgPSAnJXMvc2FtYmEvYXV0aCcgJSBsaWJkaXIKLSAgICBkb19zcGxpdF9wYWNrYWdlcyhkLCBtb2R1bGVkaXIsICdeKC4qKVwuc28kJywgJ3NhbWJhLWF1dGgtJXMnLCAnU2FtYmEgJXMgYXV0aGVudGljYXRpb24gYmFja2VuZCcsIGhvb2s9bW9kdWxlX2hvb2ssIGV4dHJhX2RlcGVuZHM9JycsIHByZXBlbmQ9VHJ1ZSkKLSAgICBtb2R1bGVkaXIgPSAnJXMvc2FtYmEvcGRiJyAlIGxpYmRpcgotICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIG1vZHVsZWRpciwgJ14oLiopXC5zbyQnLCAnc2FtYmEtcGRiLSVzJywgJ1NhbWJhICVzIHBhc3N3b3JkIGJhY2tlbmQnLCBob29rPW1vZHVsZV9ob29rLCBleHRyYV9kZXBlbmRzPScnLCBwcmVwZW5kPVRydWUpCi19Ci0KLVBBQ0tBR0VTUExJVEZVTkNTX3ByZXBlbmQgPSAic2FtYmFfcG9wdWxhdGVfcGFja2FnZXMgIgotCi1SREVQRU5EU18ke1BOfSArPSAiJHtQTn0tYmFzZSAke1BOfS1weXRob24gJHtQTn0tZHNkYi1tb2R1bGVzIgotUkRFUEVORFNfJHtQTn0tcHl0aG9uICs9ICJweXRhbGxvYyBweXRob24tdGRiIgotCi1GSUxFU18ke1BOfS1iYXNlID0gIiR7c2JpbmRpcn0vbm1iZCBcCi0gICAgICAgICAgICAgICAgICAgICR7c2JpbmRpcn0vc21iZCBcCi0gICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vaW5pdC5kIFwKLSAgICAgICAgICAgICAgICAgICAgJHtsb2NhbHN0YXRlZGlyfS9saWIvc2FtYmEgXAotICAgICAgICAgICAgICAgICAgICAke2xvY2Fsc3RhdGVkaXJ9L25tYmQgXAotICAgICAgICAgICAgICAgICAgICAke2xvY2Fsc3RhdGVkaXJ9L3Nwb29sL3NhbWJhIFwKLSAgICAgICAgICAgICAgICAgICAgJHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS9ubWIuc2VydmljZSBcCi0gICAgICAgICAgICAgICAgICAgICR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0vc2FtYmEuc2VydmljZSBcCi0gICAgICAgICAgICAgICAgICAgICR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0vc21iLnNlcnZpY2UiCi0KLUZJTEVTXyR7UE59LWN0ZGItdGVzdHMgPSAiJHtiaW5kaXJ9L2N0ZGJfcnVuX3Rlc3RzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L2N0ZGJfcnVuX2NsdXN0ZXJfdGVzdHMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2N0ZGIvbm9kZXMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2N0ZGItdGVzdHMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2N0ZGIvdGVzdHMgXAotICAgICAgICAgICAgICAgICAgICAgICAgICIKLQotRklMRVNfJHtCUE59LWNvbW1vbiA9ICIke3N5c2NvbmZkaXJ9L2RlZmF1bHQgXAotICAgICAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L3NhbWJhIFwKLSAgICAgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS90bXBmaWxlcy5kIFwKLSIKLQotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS92ZnMvKi5zbyBcCi0gICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2NoYXJzZXQvKi5zbyBcCi0gICAgICAgICAgICAgICAgJHtsaWJkaXJ9LyouZGF0IFwKLSAgICAgICAgICAgICAgICAke2xpYmRpcn0vYXV0aC8qLnNvIFwKLSIKLQotRklMRVNfJHtQTn0tZHNkYi1tb2R1bGVzID0gIiR7bGliZGlyfS9zYW1iYS9sZGIiCi0KLUZJTEVTXyR7UE59LXRlc3RzdWl0ZSA9ICIke2JpbmRpcn0vZ2VudGVzdCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L2xvY2t0ZXN0IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vbWFza3Rlc3QgXAotICAgICAgICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9uZHJkdW1wIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vc21idG9ydHVyZSIKLQotRklMRVNfcmVnaXN0cnktdG9vbHMgPSAiJHtiaW5kaXJ9L3JlZ2RpZmYgXAotICAgICAgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3JlZ3BhdGNoIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9yZWdzaGVsbCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vcmVndHJlZSIKLQotRklMRVNfd2luYmluZCA9ICIke3NiaW5kaXJ9L3dpbmJpbmRkIFwKLSAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3diaW5mbyBcCi0gICAgICAgICAgICAgICAgICR7YmluZGlyfS9udGxtX2F1dGggXAotICAgICAgICAgICAgICAgICAke2xpYmRpcn0vc2FtYmEvaWRtYXAgXAotICAgICAgICAgICAgICAgICAke2xpYmRpcn0vc2FtYmEvbnNzX2luZm8gXAotICAgICAgICAgICAgICAgICAke2xpYmRpcn0vd2luYmluZF9rcmI1X2xvY2F0b3Iuc28gXAotICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2luaXQuZC93aW5iaW5kIFwKLSAgICAgICAgICAgICAgICAgJHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS93aW5iaW5kLnNlcnZpY2UiCi0KLUZJTEVTXyR7UE59LXB5dGhvbiA9ICIke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfSIKLQotRklMRVNfc21iY2xpZW50ID0gIiR7YmluZGlyfS9jaWZzZGQgXAotICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9ycGNjbGllbnQgXAotICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9zbWJjYWNscyBcCi0gICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYmNsaWVudCBcCi0gICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYmNxdW90YXMgXAotICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9zbWJnZXQgXAotICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9zbWJzcG9vbCBcCi0gICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYnRhciBcCi0gICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYnRyZWUgXAotICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9zYW1iYS9zbWJzcG9vbF9rcmI1X3dyYXBwZXIiCi0KLVJERVBFTkRTXyR7UE59LXBpZGxfYXBwZW5kID0gIiBwZXJsIgotRklMRVNfJHtQTn0tcGlkbCA9ICIke2JpbmRpcn0vcGlkbCAke2RhdGFkaXJ9L3Blcmw1L1BhcnNlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmFfNC43LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zYW1iYS9zYW1iYV80LjcuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODUxN2M1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc2FtYmEvc2FtYmFfNC43LjYuYmIKQEAgLTAsMCArMSwzMTggQEAKK0hPTUVQQUdFID0gImh0dHBzOi8vd3d3LnNhbWJhLm9yZy8iCitTRUNUSU9OID0gImNvbnNvbGUvbmV0d29yayIKKworTElDRU5TRSA9ICJHUEwtMy4wKyAmIExHUEwtMy4wKyAmIEdQTC0yLjArIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vJHtDT1JFQkFTRX0vbWV0YS9maWxlcy9jb21tb24tbGljZW5zZXMvTEdQTC0zLjA7bWQ1PWJmY2NmZTk1MjI2OWZmZjJiNDA3ZGQxMWYyZjMwODNiIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovLyR7Q09SRUJBU0V9L21ldGEvZmlsZXMvY29tbW9uLWxpY2Vuc2VzL0dQTC0yLjA7bWQ1PTgwMWY4MDk4MGQxNzFkZDY0MjU2MTA4MzNhMjJkYmU2ICIKKworU0FNQkFfTUlSUk9SID0gImh0dHA6Ly9zYW1iYS5vcmcvc2FtYmEvZnRwIgorTUlSUk9SUyArPSAiXAorJHtTQU1CQV9NSVJST1J9ICAgIGh0dHA6Ly9taXJyb3IuaW50ZXJub2RlLm9uLm5ldC9wdWIvc2FtYmEgXG4gXAorJHtTQU1CQV9NSVJST1J9ICAgIGh0dHA6Ly93d3cubWlycm9yc2VydmljZS5vcmcvc2l0ZXMvZnRwLnNhbWJhLm9yZyBcbiBcCisiCisKK1NSQ19VUkkgPSAiJHtTQU1CQV9NSVJST1J9L3N0YWJsZS9zYW1iYS0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vMTYtZG8tbm90LWNoZWNrLXhzbHRwcm9jLW1hbnBhZ2VzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzIwLWRvLW5vdC1pbXBvcnQtdGFyZ2V0LW1vZHVsZS13aGlsZS1jcm9zcy1jb21waWxlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzIxLWFkZC1jb25maWctb3B0aW9uLXdpdGhvdXQtdmFsZ3JpbmQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1wYWNrYWdpbmctQXZvaWQtdGltZW91dC1mb3Itbm1iZC1pZi1zdGFydGVkLW9mZmxpbmUtLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDYtYXZvaWQtdXNpbmctY29sb24taW4tdGhlLWNoZWNraW5nLW1zZy5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9uZXRkYl9kZWZpbmVzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2dsaWJjX29ubHkucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vaWNvbnYtNC43LjAucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vZG5zc2VydmVyLTQuNy4wLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3NtYl9jb25mLTQuNy4wLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3ZvbGF0aWxlcy4wM19zYW1iYSBcCisgICAgICAgICAgIgorU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0gIiBcCisgICAgICAgICAgIGZpbGU6Ly9zYW1iYS1wYW0ucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vc2FtYmEtNC4zLjktcmVtb3ZlLWdldHB3ZW50X3IucGF0Y2ggXAorICAgICAgICAgICIKKworU1JDX1VSSVttZDVzdW1dID0gIjAyNTMwMjFhNDVjNDc5Y2VjMWUxMzViMDA0YTAxNzdhIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjFlZWRlMzBmYzhlZjY1MDRlMjQ2MDJmYjcyYjAwYmFhMGE3YjczYjU5ZjE2ZDI1Y2IwNzcxZGM4YzdjNTdkNmUiCisKK2luaGVyaXQgc3lzdGVtZCB3YWYtc2FtYmEgY3Bhbi1iYXNlIHBlcmxuYXRpdmUgdXBkYXRlLXJjLmQKKyMgcmVtb3ZlIGRlZmF1bHQgYWRkZWQgUkRFUEVORFMgb24gcGVybAorUkRFUEVORFNfJHtQTn1fcmVtb3ZlID0gInBlcmwiCisKK0RFUEVORFMgKz0gInJlYWRsaW5lIHZpcnR1YWwvbGliaWNvbnYgemxpYiBwb3B0IGxpYnRhbGxvYyBsaWJ0ZGIgbGlidGV2ZW50IGxpYmxkYiBsaWJic2QgbGliYWlvIGxpYnBhbSIKKworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJwYW0iCisKK0RFUEVORFNfYXBwZW5kX2xpYmMtbXVzbCA9ICIgbGlidGlycGMiCitDRkxBR1NfYXBwZW5kX2xpYmMtbXVzbCA9ICIgLUkke1NUQUdJTkdfSU5DRElSfS90aXJwYyIKK0xERkxBR1NfYXBwZW5kX2xpYmMtbXVzbCA9ICIgLWx0aXJwYyIKKworTFNCID0gIiIKK0xTQl9saW51eHN0ZGJhc2UgPSAibHNiIgorCitJTklUU0NSSVBUX05BTUUgPSAic2FtYmEiCitJTklUU0NSSVBUX1BBUkFNUyA9ICJzdGFydCAyMCAzIDUgLiBzdG9wIDIwIDAgMSA2IC4iCisKK1NZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0tYmFzZSAke1BOfS1hZC1kYyB3aW5iaW5kIgorU1lTVEVNRF9TRVJWSUNFXyR7UE59LWJhc2UgPSAibm1iLnNlcnZpY2Ugc21iLnNlcnZpY2UiCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0tYWQtZGMgPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnYWQtZGMnLCAnc2FtYmEuc2VydmljZScsICcnLCBkKX0iCitTWVNURU1EX1NFUlZJQ0Vfd2luYmluZCA9ICJ3aW5iaW5kLnNlcnZpY2UiCisKKyMgVGhlcmUgYXJlIHByZXJlcXVpc2l0ZSBzZXR0aW5ncyB0byBlbmFibGUgYWQtZGMsIHNvIGRpc2FibGUgdGhlIHNlcnZpY2UgYnkgZGVmYXVsdC4KKyMgUmVmZXJlbmNlOgorIyBodHRwczovL3dpa2kuc2FtYmEub3JnL2luZGV4LnBocC9TZXR0aW5nX3VwX1NhbWJhX2FzX2FuX0FjdGl2ZV9EaXJlY3RvcnlfRG9tYWluX0NvbnRyb2xsZXIKK1NZU1RFTURfQVVUT19FTkFCTEVfJHtQTn0tYWQtZGMgPSAiZGlzYWJsZSIKKworIyBVc2Uga3JiNS4gIEJ1aWxkIGFjdGl2ZSBkb21haW4gY29udHJvbGxlci4KKyMKK1BBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kIHplcm9jb25mJywgZCl9IFwKKyAgICAgICAgICAgICAgICAgICBhY2wgYWQtZGMgY3VwcyBnbnV0bHMgbGRhcCBtaXRrcmI1IFwKKyIKKworUkRFUEVORFNfJHtQTn0tYmFzZSArPSAiJHtMU0J9IgorUkRFUEVORFNfJHtQTn0tY3RkYi10ZXN0cyArPSAiYmFzaCB1dGlsLWxpbnV4LWdldG9wdCIKKworUEFDS0FHRUNPTkZJR1thY2xdID0gIi0td2l0aC1hY2wtc3VwcG9ydCwtLXdpdGhvdXQtYWNsLXN1cHBvcnQsYWNsIgorUEFDS0FHRUNPTkZJR1tmYW1dID0gIi0td2l0aC1mYW0sLS13aXRob3V0LWZhbSxnYW1pbiIKK1BBQ0tBR0VDT05GSUdbY3Vwc10gPSAiLS1lbmFibGUtY3VwcywtLWRpc2FibGUtY3VwcyxjdXBzIgorUEFDS0FHRUNPTkZJR1tsZGFwXSA9ICItLXdpdGgtbGRhcCwtLXdpdGhvdXQtbGRhcCxvcGVubGRhcCIKK1BBQ0tBR0VDT05GSUdbc2FzbF0gPSAiLCxjeXJ1cy1zYXNsIgorUEFDS0FHRUNPTkZJR1tzeXN0ZW1kXSA9ICItLXdpdGgtc3lzdGVtZCwtLXdpdGhvdXQtc3lzdGVtZCxzeXN0ZW1kIgorUEFDS0FHRUNPTkZJR1tkbWFwaV0gPSAiLS13aXRoLWRtYXBpLC0td2l0aG91dC1kbWFwaSxkbWFwaSIKK1BBQ0tBR0VDT05GSUdbemVyb2NvbmZdID0gIi0tZW5hYmxlLWF2YWhpLC0tZGlzYWJsZS1hdmFoaSxhdmFoaSIKK1BBQ0tBR0VDT05GSUdbdmFsZ3JpbmRdID0gIiwtLXdpdGhvdXQtdmFsZ3JpbmQsdmFsZ3JpbmQsIgorUEFDS0FHRUNPTkZJR1tsdHRuZ10gPSAiLS13aXRoLWx0dG5nLCAtLXdpdGhvdXQtbHR0bmcsbHR0bmctdXN0IgorUEFDS0FHRUNPTkZJR1thcmNoaXZlXSA9ICItLXdpdGgtbGliYXJjaGl2ZSwgLS13aXRob3V0LWxpYmFyY2hpdmUsIGxpYmFyY2hpdmUiCisKKyMgQnVpbGRpbmcgdGhlIEFEIChBY3RpdmUgRGlyZWN0b3J5KSBEQyAoRG9tYWluIENvbnRyb2xsZXIpIHJlcXVpcmVzIEdudVRMUywKKyMgQW5kIGFkLWRjIGRvZXNuJ3Qgd29yayB3aXRoIG1pdGtyYjUgZm9yIHZlcnNpb25zIHByaW9yIHRvIDQuNy4wIGFjY29yZGluZyB0bzoKKyMgaHR0cDovL3NhbWJhLjIyODMzMjUubjQubmFiYmxlLmNvbS9zYW1iYS00LTYtNi1Vbmtub3duLWRlcGVuZGVuY3kta2RjLWluLXNlcnZpY2Uta2RjLW9iamxpc3QtdGQ0NzIyMDk2Lmh0bWwKKyMgU28gdGhlIHdvcmtpbmcgY29tYmluYXRpb24gaXM6CisjIDEpIGFkLWRjOiBlbmFibGUsIGdudXRsczogZW5hYmxlLCBtaXRrcmI1OiBkaXNhYmxlCisjIDIpIGFkLWRjOiBkaXNhYmxlLCBnbnV0bHM6IGVuYWJsZS9kaXNhYmxlLCBtaXRrcmI1OiBlbmFibGUKKyMKKyMgV2UgYXJlIG5vdyBhdCA0LjcuMCwgc28gdGFrZSB0aGUgYWJvdmUgd2l0aCBhIGdyYWluIG9mIHNhbHQuIFdlIGRvIG5vdCBuZWVkIHRvIGtub3cgd2hlcmUKKyMga3JiNWtkYyBpcyB1bmxlc3MgYWQtZGMgaXMgZW5hYmxlZCwgYnV0IHdlIHRlbGwgY29uZmlndXJlIGFueWhvdy4KKyMKK1BBQ0tBR0VDT05GSUdbYWQtZGNdID0gIiwtLXdpdGhvdXQtYWQtZGMsLCIKK1BBQ0tBR0VDT05GSUdbZ251dGxzXSA9ICItLWVuYWJsZS1nbnV0bHMsLS1kaXNhYmxlLWdudXRscyxnbnV0bHMsIgorUEFDS0FHRUNPTkZJR1ttaXRrcmI1XSA9ICItLXdpdGgtc3lzdGVtLW1pdGtyYjUgLS13aXRoLXN5c3RlbS1taXRrZGM9L3Vzci9zYmluL2tyYjVrZGMsLGtyYjUsIgorCitTQU1CQTRfSURNQVBfTU9EVUxFUz0iaWRtYXBfYWQsaWRtYXBfcmlkLGlkbWFwX2FkZXgsaWRtYXBfaGFzaCxpZG1hcF90ZGIyIgorU0FNQkE0X1BEQl9NT0RVTEVTPSJwZGJfdGRic2FtLCR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ2xkYXAnLCAncGRiX2xkYXAsJywgJycsIGQpfXBkYl9hZHMscGRiX3NtYnBhc3N3ZCxwZGJfd2JjX3NhbSxwZGJfc2FtYmE0IgorU0FNQkE0X0FVVEhfTU9EVUxFUz0iYXV0aF91bml4LGF1dGhfd2JjLGF1dGhfc2VydmVyLGF1dGhfbmV0bG9nb25kLGF1dGhfc2NyaXB0LGF1dGhfc2FtYmE0IgorU0FNQkE0X01PRFVMRVM9IiR7U0FNQkE0X0lETUFQX01PRFVMRVN9LCR7U0FNQkE0X1BEQl9NT0RVTEVTfSwke1NBTUJBNF9BVVRIX01PRFVMRVN9IgorCisjIFRoZXNlIGxpYnJhcmllcyBhcmUgc3VwcG9zZWQgdG8gcmVwbGFjZSBvdGhlcnMgc3VwcGxpZWQgYnkgcGFja2FnZXMsIGJ1dCBkZWNvcmF0ZSB0aGUgbmFtZXMgb2YKKyMgLnNvIGZpbGVzIHNvIHRoZXJlIHdpbGwgbm90IGJlIGEgY29uZmxpY3QuICBUaGlzIGlzIG5vdCBkb25lIGNvbnNpc3RhbnRseSwgc28gYmUgdmVyeSBjYXJlZnVsCisjIHdoZW4gYWRkaW5nIHRvIHRoaXMgbGlzdC4KKyMKK1NBTUJBNF9MSUJTPSJoZWltZGFsLGNtb2NrYSxOT05FIgorCitFWFRSQV9PRUNPTkYgKz0gIi0tZW5hYmxlLWZocyBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1waWRkaXI9L3J1biBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1zb2NrZXRzLWRpcj0vcnVuL3NhbWJhIFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLW1vZHVsZXNkaXI9JHtsaWJkaXJ9L3NhbWJhIFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLWxvY2tkaXI9JHtsb2NhbHN0YXRlZGlyfS9saWIvc2FtYmEgXAorICAgICAgICAgICAgICAgICAtLXdpdGgtY2FjaGVkaXI9JHtsb2NhbHN0YXRlZGlyfS9saWIvc2FtYmEgXAorICAgICAgICAgICAgICAgICAtLWRpc2FibGUtcnBhdGgtaW5zdGFsbCBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1zaGFyZWQtbW9kdWxlcz0ke1NBTUJBNF9NT0RVTEVTfSBcCisgICAgICAgICAgICAgICAgIC0tYnVuZGxlZC1saWJyYXJpZXM9JHtTQU1CQTRfTElCU30gXAorICAgICAgICAgICAgICAgICAke0BvZS51dGlscy5jb25kaXRpb25hbCgnVEFSR0VUX0FSQ0gnLCAneDg2XzY0JywgJycsICctLWRpc2FibGUtZ2x1c3RlcmZzJywgZCl9IFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLWNsdXN0ZXItc3VwcG9ydCBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1wcm9maWxpbmctZGF0YSBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1saWJpY29udj0ke1NUQUdJTkdfRElSX0hPU1R9JHtwcmVmaXh9IFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLXBhbSAtLXdpdGgtcGFtbW9kdWxlc2Rpcj0ke2Jhc2VfbGliZGlyfS9zZWN1cml0eSBcCisgICAgICAgICAgICAgICAgIgorCitMREZMQUdTICs9ICItV2wsLXoscmVscm8sLXosbm93ICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnbGQtaXMtZ29sZCcsICcgLWZ1c2UtbGQ9YmZkICcsICcnLCBkKX0iCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGZvciBzZWN0aW9uIGluIDEgNSA3OyBkbworICAgICAgICBpbnN0YWxsIC1kICR7RH0ke21hbmRpcn0vbWFuJHNlY3Rpb24KKyAgICAgICAgaW5zdGFsbCAtbSAwNjQ0IGN0ZGIvZG9jLyouJHNlY3Rpb24gJHtEfSR7bWFuZGlyfS9tYW4kc2VjdGlvbgorICAgIGRvbmUKKyAgICBmb3Igc2VjdGlvbiBpbiAxIDUgNyA4OyBkbworICAgICAgICBpbnN0YWxsIC1kICR7RH0ke21hbmRpcn0vbWFuJHNlY3Rpb24KKyAgICAgICAgaW5zdGFsbCAtbSAwNjQ0IGRvY3MvbWFucGFnZXMvKi4kc2VjdGlvbiAke0R9JHttYW5kaXJ9L21hbiRzZWN0aW9uCisgICAgZG9uZQorCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfQorICAgIGluc3RhbGwgLW0gMDY0NCBwYWNrYWdpbmcvc3lzdGVtZC8qLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0KKyAgICBzZWQgLWUgJ3MsXChFeGVjUmVsb2FkPVwpLipcKC9raWxsXCksXDEke2Jhc2VfYmluZGlyfVwyLCcgXAorICAgICAgICAtZSAncywvZXRjL3N5c2NvbmZpZy9zYW1iYSwke3N5c2NvbmZkaXJ9L2RlZmF1bHQvc2FtYmEsJyBcCisgICAgICAgIC1pICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9Lyouc2VydmljZQorCisgICAgaWYgWyAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnYWQtZGMnLCAneWVzJywgJ25vJywgZCl9IiA9ICJubyIgXTsgdGhlbgorICAgICAgICBybSAtZiAke0R9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS9zYW1iYS5zZXJ2aWNlCisgICAgZmkKKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAorICAgIGluc3RhbGwgLW02NDQgcGFja2FnaW5nL3N5c3RlbWQvc2FtYmEuY29uZi50bXAgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC9zYW1iYS5jb25mCisgICAgZWNobyAiZCAke2xvY2Fsc3RhdGVkaXJ9L2xvZy9zYW1iYSAwNzU1IHJvb3Qgcm9vdCAtIiBcCisgICAgICAgID4+ICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvc2FtYmEuY29uZgorICAgIGlmIFsgIiR7TFNCfSIgPSAibHNiIiBdOyB0aGVuCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgICAgIGluc3RhbGwgLW0gMDc1NSBwYWNrYWdpbmcvTFNCL3NhbWJhLnNoICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9zYW1iYQorICAgIGVsc2UKKyAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICAgICAgaW5zdGFsbCAtbSAwNzU1IHBhY2thZ2luZy9zeXN2L3NhbWJhLmluaXQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3NhbWJhCisgICAgICAgIHNlZCAtZSAncywvb3B0L3NhbWJhL2Jpbiwke3NiaW5kaXJ9LGcnIFwKKyAgICAgICAgICAgIC1lICdzLC9vcHQvc2FtYmEvc21iLmNvbmYsJHtzeXNjb25mZGlyfS9zYW1iYS9zbWIuY29uZixnJyBcCisgICAgICAgICAgICAtZSAncywvb3B0L3NhbWJhL2xvZywke2xvY2Fsc3RhdGVkaXJ9L2xvZy9zYW1iYSxnJyBcCisgICAgICAgICAgICAtZSAncywvZXRjL2luaXQuZC9zYW1iYS5zZXJ2ZXIsJHtzeXNjb25mZGlyfS9pbml0LmQvc2FtYmEsZycgXAorICAgICAgICAgICAgLWUgJ3MsL3Vzci9iaW4sJHtiYXNlX2JpbmRpcn0sZycgXAorICAgICAgICAgICAgLWkgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3NhbWJhCisgICAgZmkKKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vc2FtYmEKKyAgICBlY2hvICIxMjcuMC4wLjEgbG9jYWxob3N0IiA+ICR7RH0ke3N5c2NvbmZkaXJ9L3NhbWJhL2xtaG9zdHMKKyAgICBpbnN0YWxsIC1tNjQ0IHBhY2thZ2luZy9SSEVML3NldHVwL3NtYi5jb25mICR7RH0ke3N5c2NvbmZkaXJ9L3NhbWJhL3NtYi5jb25mCisgICAgaW5zdGFsbCAtRCAtbSA2NDQgJHtXT1JLRElSfS92b2xhdGlsZXMuMDNfc2FtYmEgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMvMDNfc2FtYmEKKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdAorICAgIGluc3RhbGwgLW02NDQgcGFja2FnaW5nL3N5c3RlbWQvc2FtYmEuc3lzY29uZmlnICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvc2FtYmEKKworICAgICMgaW5zdGFsbCBjdGRiIGNvbmZpZyBmaWxlIGFuZCB0ZXN0IGNhc2VzCisgICAgaW5zdGFsbCAtRCAtbSAwNjQ0ICR7U30vY3RkYi90ZXN0cy9vbm5vZGUvbm9kZXMgJHtEfSR7c3lzY29uZmRpcn0vY3RkYi9ub2RlcworICAgICMgdGhlIGl0ZW1zIGFyZSBmcm9tIGN0ZGIvdGVzdHMvcnVuX3Rlc3RzLnNoCisgICAgZm9yIGQgaW4gb25ub2RlIHRha2VvdmVyIHRvb2wgZXZlbnRzY3JpcHRzIGN1bml0IHNpbXBsZSBjb21wbGV4OyBkbworICAgICAgICB0ZXN0ZGlyPSR7RH0ke2RhdGFkaXJ9L2N0ZGItdGVzdHMvJGQKKyAgICAgICAgaW5zdGFsbCAtZCAkdGVzdGRpcgorICAgICAgICBjcCAke1N9L2N0ZGIvdGVzdHMvJGQvKi5zaCAkdGVzdGRpcgorICAgICAgICBjcCAtciAke1N9L2N0ZGIvdGVzdHMvJGQvc2NyaXB0cyAke1N9L2N0ZGIvdGVzdHMvJGQvc3R1YnMgJHRlc3RkaXIgfHwgdHJ1ZQorICAgIGRvbmUKKworICAgICMgZml4IGZpbGUtcmRlcHMgcWEgd2FybmluZworICAgIGlmIFsgLWYgJHtEfSR7YmluZGlyfS9vbm5vZGUgXTsgdGhlbgorICAgICAgICBzZWQgLWkgJ3M6XCgjIS9iaW4vXCliYXNoOlwxc2g6JyAke0R9JHtiaW5kaXJ9L29ubm9kZQorICAgIGZpCisKKyAgICBjaG1vZCAwNzUwICR7RH0ke3N5c2NvbmZkaXJ9L3N1ZG9lcnMuZAorICAgIHJtIC1yZiAke0R9L3J1biAke0R9JHtsb2NhbHN0YXRlZGlyfS9ydW4gJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbG9nCit9CisKK1BBQ0tBR0VTID0rICIke1BOfS1weXRob24gJHtQTn0tcGlkbCBcCisgICAgICAgICAgICAgJHtQTn0tZHNkYi1tb2R1bGVzICR7UE59LXRlc3RzdWl0ZSByZWdpc3RyeS10b29scyBcCisgICAgICAgICAgICAgd2luYmluZCBcCisgICAgICAgICAgICAgJHtQTn0tY29tbW9uICR7UE59LWJhc2UgJHtQTn0tYWQtZGMgJHtQTn0tY3RkYi10ZXN0cyBcCisgICAgICAgICAgICAgc21iY2xpZW50ICR7UE59LWNsaWVudCAke1BOfS1zZXJ2ZXIgJHtQTn0tdGVzdCIKKworcHl0aG9uIHNhbWJhX3BvcHVsYXRlX3BhY2thZ2VzKCkgeworICAgIGRlZiBtb2R1bGVfaG9vayhmaWxlLCBwa2csIHBhdHRlcm4sIGZvcm1hdCwgYmFzZW5hbWUpOgorICAgICAgICBwbiA9IGQuZ2V0VmFyKCdQTicsIFRydWUpCisgICAgICAgIGQuYXBwZW5kVmFyKCdSUkVDT01NRU5EU18lcy1iYXNlJyAlIHBuLCAnICVzJyAlIHBrZykKKworICAgIG1scHJlZml4ID0gZC5nZXRWYXIoJ01MUFJFRklYJywgVHJ1ZSkgb3IgJycKKyAgICBwYW1fbGliZGlyID0gZC5leHBhbmQoJyR7YmFzZV9saWJkaXJ9L3NlY3VyaXR5JykKKyAgICBwYW1fcGtnbmFtZSA9IG1scHJlZml4ICsgJ3BhbS1wbHVnaW4lcycKKyAgICBkb19zcGxpdF9wYWNrYWdlcyhkLCBwYW1fbGliZGlyLCAnXnBhbV8oLiopXC5zbyQnLCBwYW1fcGtnbmFtZSwgJ1BBTSBwbHVnaW4gZm9yICVzJywgZXh0cmFfZGVwZW5kcz0nJywgcHJlcGVuZD1UcnVlKQorCisgICAgbGliZGlyID0gZC5nZXRWYXIoJ2xpYmRpcicsIFRydWUpCisgICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgbGliZGlyLCAnXmxpYiguKilcLnNvXC4uKiQnLCAnbGliJXMnLCAnU2FtYmEgJXMgbGlicmFyeScsIGV4dHJhX2RlcGVuZHM9JyR7UE59LWNvbW1vbicsIHByZXBlbmQ9VHJ1ZSwgYWxsb3dfbGlua3M9VHJ1ZSkKKyAgICBwa2dsaWJkaXIgPSAnJXMvc2FtYmEnICUgbGliZGlyCisgICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgcGtnbGliZGlyLCAnXmxpYiguKilcLnNvJCcsICdsaWIlcycsICdTYW1iYSAlcyBsaWJyYXJ5JywgZXh0cmFfZGVwZW5kcz0nJHtQTn0tY29tbW9uJywgcHJlcGVuZD1UcnVlKQorICAgIG1vZHVsZWRpciA9ICclcy9zYW1iYS9hdXRoJyAlIGxpYmRpcgorICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIG1vZHVsZWRpciwgJ14oLiopXC5zbyQnLCAnc2FtYmEtYXV0aC0lcycsICdTYW1iYSAlcyBhdXRoZW50aWNhdGlvbiBiYWNrZW5kJywgaG9vaz1tb2R1bGVfaG9vaywgZXh0cmFfZGVwZW5kcz0nJywgcHJlcGVuZD1UcnVlKQorICAgIG1vZHVsZWRpciA9ICclcy9zYW1iYS9wZGInICUgbGliZGlyCisgICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgbW9kdWxlZGlyLCAnXiguKilcLnNvJCcsICdzYW1iYS1wZGItJXMnLCAnU2FtYmEgJXMgcGFzc3dvcmQgYmFja2VuZCcsIGhvb2s9bW9kdWxlX2hvb2ssIGV4dHJhX2RlcGVuZHM9JycsIHByZXBlbmQ9VHJ1ZSkKK30KKworUEFDS0FHRVNQTElURlVOQ1NfcHJlcGVuZCA9ICJzYW1iYV9wb3B1bGF0ZV9wYWNrYWdlcyAiCisKK1JERVBFTkRTXyR7UE59ICs9ICIke1BOfS1iYXNlICR7UE59LXB5dGhvbiAke1BOfS1kc2RiLW1vZHVsZXMiCitSREVQRU5EU18ke1BOfS1weXRob24gKz0gInB5dGFsbG9jIHB5dGhvbi10ZGIiCisKK0ZJTEVTXyR7UE59LWJhc2UgPSAiJHtzYmluZGlyfS9ubWJkIFwKKyAgICAgICAgICAgICAgICAgICAgJHtzYmluZGlyfS9zbWJkIFwKKyAgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9pbml0LmQgXAorICAgICAgICAgICAgICAgICAgICAke2xvY2Fsc3RhdGVkaXJ9L2xpYi9zYW1iYSBcCisgICAgICAgICAgICAgICAgICAgICR7bG9jYWxzdGF0ZWRpcn0vbm1iZCBcCisgICAgICAgICAgICAgICAgICAgICR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wvc2FtYmEgXAorICAgICAgICAgICAgICAgICAgICAke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L25tYi5zZXJ2aWNlIFwKKyAgICAgICAgICAgICAgICAgICAgJHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS9zbWIuc2VydmljZSIKKworRklMRVNfJHtQTn0tYWQtZGMgPSAiJHtzYmluZGlyfS9zYW1iYSBcCisgICAgICAgICAgICAgICAgICAgICAke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L3NhbWJhLnNlcnZpY2UgXAorICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy9rZGIvc2FtYmEuc28gXAorICAgICAgICAgICAgICAgICAgICAiCitSREVQRU5EU18ke1BOfS1hZC1kYyA9ICJrcmI1LWtkYyIKKworRklMRVNfJHtQTn0tY3RkYi10ZXN0cyA9ICIke2JpbmRpcn0vY3RkYl9ydW5fdGVzdHMgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vY3RkYl9ydW5fY2x1c3Rlcl90ZXN0cyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vY3RkYi9ub2RlcyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vY3RkYi10ZXN0cyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vY3RkYi90ZXN0cyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIgorCitGSUxFU18ke0JQTn0tY29tbW9uID0gIiR7c3lzY29uZmRpcn0vZGVmYXVsdCBcCisgICAgICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vc2FtYmEgXAorICAgICAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQgXAorIgorCitGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L3Zmcy8qLnNvIFwKKyAgICAgICAgICAgICAgICAke2xpYmRpcn0vY2hhcnNldC8qLnNvIFwKKyAgICAgICAgICAgICAgICAke2xpYmRpcn0vKi5kYXQgXAorICAgICAgICAgICAgICAgICR7bGliZGlyfS9hdXRoLyouc28gXAorIgorCitGSUxFU18ke1BOfS1kc2RiLW1vZHVsZXMgPSAiJHtsaWJkaXJ9L3NhbWJhL2xkYiIKKworRklMRVNfJHtQTn0tdGVzdHN1aXRlID0gIiR7YmluZGlyfS9nZW50ZXN0IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vbG9ja3Rlc3QgXAorICAgICAgICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9tYXNrdGVzdCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L25kcmR1bXAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9zbWJ0b3J0dXJlIgorCitGSUxFU19yZWdpc3RyeS10b29scyA9ICIke2JpbmRpcn0vcmVnZGlmZiBcCisgICAgICAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vcmVncGF0Y2ggXAorICAgICAgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3JlZ3NoZWxsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9yZWd0cmVlIgorCitGSUxFU193aW5iaW5kID0gIiR7c2JpbmRpcn0vd2luYmluZGQgXAorICAgICAgICAgICAgICAgICAke2JpbmRpcn0vd2JpbmZvIFwKKyAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L250bG1fYXV0aCBcCisgICAgICAgICAgICAgICAgICR7bGliZGlyfS9zYW1iYS9pZG1hcCBcCisgICAgICAgICAgICAgICAgICR7bGliZGlyfS9zYW1iYS9uc3NfaW5mbyBcCisgICAgICAgICAgICAgICAgICR7bGliZGlyfS93aW5iaW5kX2tyYjVfbG9jYXRvci5zbyBcCisgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vaW5pdC5kL3dpbmJpbmQgXAorICAgICAgICAgICAgICAgICAke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L3dpbmJpbmQuc2VydmljZSIKKworRklMRVNfJHtQTn0tcHl0aG9uID0gIiR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9IgorCitGSUxFU19zbWJjbGllbnQgPSAiJHtiaW5kaXJ9L2NpZnNkZCBcCisgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3JwY2NsaWVudCBcCisgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYmNhY2xzIFwKKyAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vc21iY2xpZW50IFwKKyAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vc21iY3F1b3RhcyBcCisgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYmdldCBcCisgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3NtYnNwb29sIFwKKyAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vc21idGFyIFwKKyAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vc21idHJlZSBcCisgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3NhbWJhL3NtYnNwb29sX2tyYjVfd3JhcHBlciIKKworUkRFUEVORFNfJHtQTn0tcGlkbF9hcHBlbmQgPSAiIHBlcmwiCitGSUxFU18ke1BOfS1waWRsID0gIiR7YmluZGlyfS9waWRsICR7ZGF0YWRpcn0vcGVybDUvUGFyc2UiCisKK1JERVBFTkRTXyR7UE59LWNsaWVudCA9ICJcCisgICAgc21iY2xpZW50IFwKKyAgICB3aW5iaW5kIFwKKyAgICByZWdpc3RyeS10b29scyBcCisgICAgJHtQTn0tcGlkbCBcCisgICAgIiAKKworQUxMT1dfRU1QVFlfJHtQTn0tY2xpZW50ID0gIjEiCisKK1JERVBFTkRTXyR7UE59LXNlcnZlciA9ICJcCisgICAgJHtQTn0gXAorICAgIHdpbmJpbmQgXAorICAgIHJlZ2lzdHJ5LXRvb2xzIFwKKyAgICAiIAorCitBTExPV19FTVBUWV8ke1BOfS1zZXJ2ZXIgPSAiMSIKKworUkRFUEVORFNfJHtQTn0tdGVzdCA9ICJcCisgICAgJHtQTn0tY3RkYi10ZXN0cyBcCisgICAgJHtQTn0tdGVzdHN1aXRlIFwKKyAgICAiCisKK0FMTE9XX0VNUFRZXyR7UE59LXRlc3QgPSAiMSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0LzAwMDEtZml4LWRvX3BhY2thZ2UtZmFpbGVkLXNpbmNlLXNub3J0LTIuOS43LjAucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC8wMDAxLWZpeC1kb19wYWNrYWdlLWZhaWxlZC1zaW5jZS1zbm9ydC0yLjkuNy4wLnBhdGNoCmluZGV4IDE1MjA1NTMuLjA0N2NhZWMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0LzAwMDEtZml4LWRvX3BhY2thZ2UtZmFpbGVkLXNpbmNlLXNub3J0LTIuOS43LjAucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvMDAwMS1maXgtZG9fcGFja2FnZS1mYWlsZWQtc2luY2Utc25vcnQtMi45LjcuMC5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gODE1ZTg2MTcyMWE5YzQzZWZkZGI3ODUyMTE0NzE0NWViYzc1NjljYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNDMzNWM0YzYxODc3YzBiNjVmZjRlYzc2N2U4YWQzYWQ4YzczYzMyZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IFpoaXF1YW4gTGkgPHpoaXF1YW4ubGlAd2luZHJpdmVyLmNvbT4KIERhdGU6IEZyaSwgMTMgTm92IDIwMTUgMTc6NDA6MjQgKzA4MDAKIFN1YmplY3Q6IFtQQVRDSF0gZml4IGRvX3BhY2thZ2UgZmFpbGVkIHNpbmNlIHNub3J0IDIuOS43LjAKQEAgLTEzLDYgKzEzLDcgQEAKIFVwc3RyZWFtLVN0YXR1czpJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KIAogU2lnbmVkLW9mZi1ieTogWmhpcXVhbiBMaSA8emhpcXVhbi5saUB3aW5kcml2ZXIuY29tPgorCiAtLS0KICBzcmMvc25vcnQuaCB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKQEAgLTMwLDYgKzMxLDMgQEAKICAjaW5jbHVkZSAicHJvZmlsZXIuaCIKICAjaW5jbHVkZSAicnVsZXMuaCIKICAjaW5jbHVkZSAidHJlZW5vZGVzLmgiCi0tLQotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvMDAwMS1saWJwY2FwLXNlYXJjaC1zeXNyb290LWZvci1oZWFkZXJzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvMDAwMS1saWJwY2FwLXNlYXJjaC1zeXNyb290LWZvci1oZWFkZXJzLnBhdGNoCmluZGV4IDU0YzJhOTUuLjJlMjhjZDAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0LzAwMDEtbGlicGNhcC1zZWFyY2gtc3lzcm9vdC1mb3ItaGVhZGVycy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC8wMDAxLWxpYnBjYXAtc2VhcmNoLXN5c3Jvb3QtZm9yLWhlYWRlcnMucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDRkN2ViZTNlZDZjZWU3MmJjN2RiOThiZDQwOGQyMmMxMGVmNWRkODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDU4NzVkZWE5MGY3MTM1MGI3MjA1Nzg4ZmJjNjdlMzc1OTA3N2NlZmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBKb2UgTWFjRG9uYWxkIDxqb2VAZGVzZXJ0ZWQubmV0PgogRGF0ZTogV2VkLCAyMCBOb3YgMjAxMyAxNjowNjowNyAtMDUwMAogU3ViamVjdDogW1BBVENIXSBsaWJwY2FwOiBzZWFyY2ggc3lzcm9vdCBmb3IgaGVhZGVycwpAQCAtOSwxNSArOSwxNiBAQAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKIFNpZ25lZC1vZmYtYnk6IEpvZSBNYWNEb25hbGQgPGpvZUBkZXNlcnRlZC5uZXQ+CisKIC0tLQotIGNvbmZpZ3VyZS5pbiB8ICAgIDIgKy0KKyBjb25maWd1cmUuaW4gfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KLWluZGV4IGU1MmJiNmMuLjhkZWQzNWQgMTAwNjQ0CitpbmRleCA2MjU3M2E4Li5mZGVkNDViIDEwMDY0NAogLS0tIGEvY29uZmlndXJlLmluCiArKysgYi9jb25maWd1cmUuaW4KLUBAIC03OCw3ICs3OCw3IEBAIGNhc2UgIiRob3N0IiBpbgorQEAgLTY5LDcgKzY5LDcgQEAgY2FzZSAiJGhvc3QiIGluCiAgICAgIGxpbnV4PSJ5ZXMiCiAgICAgIEFDX0RFRklORShbTElOVVhdLFsxXSxbRGVmaW5lIGlmIExpbnV4XSkKICAgICAgQUNfU1VCU1QoZXh0cmFfaW5jbCkKQEAgLTI2LDYgKzI3LDMgQEAKICAgICAgOzsKICAgICotaHB1eDEwKnwqLWhwdXgxMSopCiAgICAgIEFDX0RFRklORShbSFBVWF0sWzFdLFtEZWZpbmUgaWYgSFAtVVggMTAgb3IgMTFdKQotLS0gCi0xLjcuMTAuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9kaXNhYmxlLWRhcC1hZGRyZXNzLXNwYWNlLWlkLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvZGlzYWJsZS1kYXAtYWRkcmVzcy1zcGFjZS1pZC5wYXRjaAppbmRleCAzOWU1YzljLi42YWEwYjczIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9kaXNhYmxlLWRhcC1hZGRyZXNzLXNwYWNlLWlkLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0L2Rpc2FibGUtZGFwLWFkZHJlc3Mtc3BhY2UtaWQucGF0Y2gKQEAgLTEsMTcgKzEsMjcgQEAKK0Zyb20gNWE1MzI2MGE4MTllMjg3M2Y1ODE2NWU5Njg1MjUyOTcxOTEwMWM1MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IENodW5yb25nIEd1byA8QjQwMjkwQGZyZWVzY2FsZS5jb20+CitEYXRlOiBNb24sIDQgTm92IDIwMTMgMTA6Mzk6NTYgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gc25vcnQ6IGFkZCByZWNpcGUKKwogVXBzdHJlYW0tU3RhdHVzOkluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQogCiBmaXggdGhlIGJlbG93IGVycm9yOgotY2hlY2tpbmcgZm9yIGRhcCBhZGRyZXNzIHNwYWNlIGlkLi4uIGNvbmZpZ3VyZTogCitjaGVja2luZyBmb3IgZGFwIGFkZHJlc3Mgc3BhY2UgaWQuLi4gY29uZmlndXJlOgogY29uZmlndXJlOiBlcnJvcjogY2Fubm90IHJ1biB0ZXN0IHByb2dyYW0gd2hpbGUgY3Jvc3MgY29tcGlsaW5nCiAKLQogU2lnbmVkLW9mZi1ieTogQ2h1bnJvbmcgR3VvIDxCNDAyOTBAZnJlZXNjYWxlLmNvbT4KIAotLS0tIGEvY29uZmlndXJlLmluCTIwMTMtMDgtMjMgMDA6MDY6MzcuMjM5MzYxOTMyIC0wNTAwCi0rKysgYi9jb25maWd1cmUuaW4JMjAxMy0wOC0yMyAwMDowNzozMi44NjAyNjY1MzQgLTA1MDAKLUBAIC02NzksMjMgKzY3OSwyMyBAQAorLS0tCisgY29uZmlndXJlLmluIHwgMzQgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgoraW5kZXggNmZlNWQ2OC4uZTc2MzZjZSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5pbgorKysrIGIvY29uZmlndXJlLmluCitAQCAtNjk4LDIzICs2OTgsMjMgQEAgaWYgdGVzdCAieCRhY19jdl9mdW5jX2RhcV9kcF9hZGRfZGMiID0gInh5ZXMiOyB0aGVuCiAgCi0gQUNfQ0hFQ0tfRlVOQ1MoW2RhcV9odXBfYXBwbHldIFtkYXFfYWNxdWlyZV93aXRoX21ldGFdKQorIGZpCiAgCiAtQUNfTVNHX0NIRUNLSU5HKFtmb3IgZGFxIGFkZHJlc3Mgc3BhY2UgSURdKQogLUFDX1JVTl9JRkVMU0UoCkBAIC00OCw1ICs1OCw1IEBACiArIyAgICAgICAgW0RBUSB2ZXJzaW9uIHN1cHBvcnRzIGFkZHJlc3Mgc3BhY2UgSUQgaW4gaGVhZGVyLl0pCiArI2ZpCiAgCi0gIyBhbnkgc3BhcmMgcGxhdGZvcm0gaGFzIHRvIGhhdmUgdGhpcyBvbmUgZGVmaW5lZC4KLSBBQ19NU0dfQ0hFQ0tJTkcoZm9yIHNwYXJjKQorIEFDX01TR19DSEVDS0lORyhbZm9yIGRhcSBmbG93IElEXSkKKyBBQ19SVU5fSUZFTFNFKApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvZGlzYWJsZS1kYXEtZmxvdy1pZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0L2Rpc2FibGUtZGFxLWZsb3ctaWQucGF0Y2gKaW5kZXggZTZhZmNhYi4uMDRkZjM3YyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvZGlzYWJsZS1kYXEtZmxvdy1pZC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9kaXNhYmxlLWRhcS1mbG93LWlkLnBhdGNoCkBAIC0xLDE2ICsxLDI2IEBACitGcm9tIDVhYTQyYTMxMzdjNjU3YjVlZGRkNDYwODM0M2FhMTg1NGJkN2NkMjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBaaGlxdWFuIExpIDx6aGlxdWFuLmxpQHdpbmRyaXZlci5jb20+CitEYXRlOiBNb24sIDE2IE5vdiAyMDE1IDEwOjIzOjAwICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIHNub3J0OiAyLjkuNi4wIC0+IDIuOS43LjUKKwogVXBzdHJlYW0tU3RhdHVzOkluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQogCiBmaXggdGhlIGJlbG93IGVycm9yOgogY2hlY2tpbmcgZm9yIGRhcSBmbG93IElELi4uIGNvbmZpZ3VyZToKIGNvbmZpZ3VyZTogZXJyb3I6IGNhbm5vdCBydW4gdGVzdCBwcm9ncmFtIHdoaWxlIGNyb3NzIGNvbXBpbGluZwogCistLS0KKyBjb25maWd1cmUuaW4gfCAzNCArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQogCi0tLS0gYS9jb25maWd1cmUuaW4gICAgMjAxNS0xMC0yOCAxMDozNjo0Mi45MTg1MTI2OTAgKzA4MDAKLSsrKyBiL2NvbmZpZ3VyZS5pbiAgICAyMDE1LTEwLTI4IDEwOjM3OjM2LjczODUxMDA0OCArMDgwMAotQEAgLTcxNiwyMyArNzE2LDIzIEBACitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCitpbmRleCBlNzYzNmNlLi4yZmJkMjk4IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmluCisrKysgYi9jb25maWd1cmUuaW4KK0BAIC03MTYsMjMgKzcxNiwyMyBAQCBoYXZlX2RhcV9hZGRyZXNzX3NwYWNlX2lkPSJ5ZXMiCiAgIyAgICAgICAgW0RBUSB2ZXJzaW9uIHN1cHBvcnRzIGFkZHJlc3Mgc3BhY2UgSUQgaW4gaGVhZGVyLl0pCiAgI2ZpCi0KKyAKIC1BQ19NU0dfQ0hFQ0tJTkcoW2ZvciBkYXEgZmxvdyBJRF0pCiAtQUNfUlVOX0lGRUxTRSgKIC1bQUNfTEFOR19QUk9HUkFNKApAQCAtNDUsNiArNTUsNiBAQAogKyMgICAgQUNfREVGSU5FKFtIQVZFX0RBUV9GTE9XX0lEXSxbMV0sCiArIyAgICAgICAgW0RBUSB2ZXJzaW9uIHN1cHBvcnRzIGZsb3cgSUQgaW4gaGVhZGVyLl0pCiArI2ZpCi0KKyAKICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBEQVFfVkVSRElDVF9SRVRSWV0pCiAgQUNfUlVOX0lGRUxTRSgKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0L2Rpc2FibGUtZGFxLXZlcmRpY3QtcmV0cnkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9kaXNhYmxlLWRhcS12ZXJkaWN0LXJldHJ5LnBhdGNoCmluZGV4IDFhMTMyOTguLjE1OTU4YTcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0L2Rpc2FibGUtZGFxLXZlcmRpY3QtcmV0cnkucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvZGlzYWJsZS1kYXEtdmVyZGljdC1yZXRyeS5wYXRjaApAQCAtMSwxNiArMSwyNiBAQAorRnJvbSBiOTE2NDQzZDQzZjJlMWVlYWNmYmVkMDAzMzI3NGEwMjcwZWY2MzRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWmhpcXVhbiBMaSA8emhpcXVhbi5saUB3aW5kcml2ZXIuY29tPgorRGF0ZTogTW9uLCAxNiBOb3YgMjAxNSAxMDoyMzowMCArMDgwMAorU3ViamVjdDogW1BBVENIXSBzbm9ydDogMi45LjYuMCAtPiAyLjkuNy41CisKIFVwc3RyZWFtLVN0YXR1czpJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KIAogZml4IHRoZSBiZWxvdyBlcnJvcjoKIGNoZWNraW5nIGZvciBEQVFfVkVSRElDVF9SRVRSWS4uLiBjb25maWd1cmU6CiBjb25maWd1cmU6IGVycm9yOiBjYW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB3aGlsZSBjcm9zcyBjb21waWxpbmcKIAorLS0tCisgY29uZmlndXJlLmluIHwgMzQgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKIAotLS0tIGEvY29uZmlndXJlLmluICAgIDIwMTUtMTAtMjggMTA6NDU6MTguMTc0NDg3Mzk1ICswODAwCi0rKysgYi9jb25maWd1cmUuaW4gICAgMjAxNS0xMC0yOCAxMDo0NTo0Ny41ODY0ODU5NTEgKzA4MDAKLUBAIC03MzQsMjMgKzczNCwyMyBAQAorZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgoraW5kZXggMmZiZDI5OC4uNjI1NzNhOCAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5pbgorKysrIGIvY29uZmlndXJlLmluCitAQCAtNzM0LDIzICs3MzQsMjMgQEAgaGF2ZV9kYXFfZmxvd19pZD0ieWVzIgogICMgICAgICAgIFtEQVEgdmVyc2lvbiBzdXBwb3J0cyBmbG93IElEIGluIGhlYWRlci5dKQogICNmaQotCisgCiAtQUNfTVNHX0NIRUNLSU5HKFtmb3IgREFRX1ZFUkRJQ1RfUkVUUlldKQogLUFDX1JVTl9JRkVMU0UoCiAtW0FDX0xBTkdfUFJPR1JBTSgKQEAgLTQ1LDcgKzU1LDYgQEAKICsjICAgIEFDX0RFRklORShbSEFWRV9EQVFfVkVSRElDVF9SRVRSWV0sWzFdLAogKyMgICAgICAgIFtEQVEgdmVyc2lvbiBzdXBwb3J0cyBEQVFfVkVSRElDVF9SRVRSWSBpbiBEQVFfVmVyZGljdC5dKQogKyNmaQotCisgCiAgIyBhbnkgc3BhcmMgcGxhdGZvcm0gaGFzIHRvIGhhdmUgdGhpcyBvbmUgZGVmaW5lZC4KICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIHNwYXJjKQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9kaXNhYmxlLWluYWRkci1ub25lLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvZGlzYWJsZS1pbmFkZHItbm9uZS5wYXRjaAppbmRleCA5ZGFmZTYzLi43OWU5ZjA3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9kaXNhYmxlLWluYWRkci1ub25lLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0L2Rpc2FibGUtaW5hZGRyLW5vbmUucGF0Y2gKQEAgLTEsMyArMSw4IEBACitGcm9tIGExZmRiY2VkNDE2NmNiMGYzNWQyM2I2M2E1OTMxMmQ4Njg2MDQ4NWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBDaHVucm9uZyBHdW8gPEI0MDI5MEBmcmVlc2NhbGUuY29tPgorRGF0ZTogTW9uLCA0IE5vdiAyMDEzIDEwOjM5OjU2ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIHNub3J0OiBhZGQgcmVjaXBlCisKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCiAKIGZpeCB0aGUgYmVsb3cgZXJyb3I6CkBAIC02LDEwICsxMSwxNSBAQAogCiBTaWduZWQtb2ZmLWJ5OiBDaHVucm9uZyBHdW8gPEI0MDI5MEBmcmVlc2NhbGUuY29tPgogCistLS0KKyBjb25maWd1cmUuaW4gfCA1MCArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKIAotLS0tIGEvY29uZmlndXJlLmluCTIwMTMtMDgtMjEgMDM6NTY6MTcuMTk3NDE0Nzg5IC0wNTAwCi0rKysgYi9jb25maWd1cmUuaW4JMjAxMy0wOC0yMSAyMzoxOTowNS4yOTg1NTM1NjAgLTA1MDAKLUBAIC0yODEsMjUgKzI4MSw3IEBACitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCitpbmRleCAyMGQxNWViLi42ZmU1ZDY4IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmluCisrKysgYi9jb25maWd1cmUuaW4KK0BAIC0yNzQsMjUgKzI3NCw3IEBAIEFDX0NIRUNLX1RZUEVTKFtpbnQ4X3QsaW50MTZfdCxpbnQzMl90LGludDY0X3RdKQogIEFDX0NIRUNLX1RZUEVTKFtib29sZWFuXSkKICAKICAjIEluIGNhc2UgSU5BRERSX05PTkUgaXMgbm90IGRlZmluZWQgKGxpa2Ugb24gU29sYXJpcykKQEAgLTM2LDcgKzQ2LDcgQEAKICAKICBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCiAgI2luY2x1ZGUgPHN0ZGlvLmg+Ci1AQCAtMzk3LDIxICszNzksMjEgQEAKK0BAIC00MjEsMjEgKzQwMywyMSBAQCBpZiB0ZXN0ICJ4JExQQ0FQIiA9ICJ4bm8iOyB0aGVuCiAgICBmaQogIGZpCiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9maXgtaG9zdC1jb250YW1pbmF0aW9uLXdoZW4tZW5hYmxlLXN0YXRpYy1kYXEucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbm9ydC9zbm9ydC9maXgtaG9zdC1jb250YW1pbmF0aW9uLXdoZW4tZW5hYmxlLXN0YXRpYy1kYXEucGF0Y2gKaW5kZXggMmJlY2MwNi4uMDQwNGVhMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvc25vcnQvc25vcnQvZml4LWhvc3QtY29udGFtaW5hdGlvbi13aGVuLWVuYWJsZS1zdGF0aWMtZGFxLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Nub3J0L3Nub3J0L2ZpeC1ob3N0LWNvbnRhbWluYXRpb24td2hlbi1lbmFibGUtc3RhdGljLWRhcS5wYXRjaApAQCAtMSwzICsxLDggQEAKK0Zyb20gZjQ2ZDA5NjAxNWQ3NDAyYTM3YTU5ZWI2NmI4ZjZiN2ZiZjBjZGZmMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEthaSBLYW5nIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgorRGF0ZTogV2VkLCAyNCBNYXkgMjAxNyAxNzozODo1MyArMDgwMAorU3ViamVjdDogW1BBVENIXSBzbm9ydDogZW5hYmxlIHN0YXRpYyBkYXEKKwogVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KIAogV2hlbiBlbmFibGUgc3RhdGljIGRhcSBmb3Igc25vcnQsIGl0IGNhbGxzIHRvIGRhcS1tb2R1bGVzLWNvbmZpZyB0byBnZXQgbGluawpAQCAtNSw3ICsxMCwxMSBAQAogY29udGFtaW5hdGlvbiBpc3N1ZS4gU28gZmlsdGVyIGl0LgogCiBTaWduZWQtb2ZmLWJ5OiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KKwogLS0tCisgY29uZmlndXJlLmluIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCiBpbmRleCBmZGVkNDViLi5hMjQ3YmI5IDEwMDY0NAogLS0tIGEvY29uZmlndXJlLmluCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS92bGFuL3ZsYW5fMS45LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvdmxhbi92bGFuXzEuOS5iYgppbmRleCBiZDU1ZWZjLi43ZWVhNWQxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS92bGFuL3ZsYW5fMS45LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3ZsYW4vdmxhbl8xLjkuYmIKQEAgLTE0LDYgKzE0LDggQEAKIAogUyA9ICIke1dPUktESVJ9LyR7QlBOfSIKIAoraW5oZXJpdCB1cGRhdGUtYWx0ZXJuYXRpdmVzCisKIEVYVFJBX09FTUFLRSA9ICItZSBNQUtFRkxBR1M9IgogCiAjIGNvbW1lbnQgb3V0IE1ha2VJbmNsdWRlIGluIE1ha2VmaWxlIHdoaWNoIHNldHMgYnVpbGQgZW52aXJvbm1lbnQKQEAgLTMwLDMgKzMyLDcgQEAKICAgICBpbnN0YWxsIC1kICR7RH0vJHtiYXNlX3NiaW5kaXJ9CiAgICAgaW5zdGFsbCAtbSAwNzU1ICR7U30vdmNvbmZpZyAke0R9LyR7YmFzZV9zYmluZGlyfS8KIH0KKworQUxURVJOQVRJVkVfUFJJT1JJVFkgPSAiMTAwIgorQUxURVJOQVRJVkVfJHtQTn0gPSAidmNvbmZpZyIKK0FMVEVSTkFUSVZFX0xJTktfTkFNRVt2Y29uZmlnXSA9ICIke2Jhc2Vfc2JpbmRpcn0vdmNvbmZpZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3dvbGZzc2wvd29sZnNzbF8zLjEyLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWNvbm5lY3Rpdml0eS93b2xmc3NsL3dvbGZzc2xfMy4xMi4wLmJiCmluZGV4IDUxMjYxOTAuLjkyOTA2NTEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtY29ubmVjdGl2aXR5L3dvbGZzc2wvd29sZnNzbF8zLjEyLjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1jb25uZWN0aXZpdHkvd29sZnNzbC93b2xmc3NsXzMuMTIuMC5iYgpAQCAtMTIsMTUgKzEyLDEyIEBACiBQUk9WSURFUyArPSAiY3lhc3NsIgogUlBST1ZJREVTXyR7UE59ID0gImN5YXNzbCIKIAotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vd29sZlNTTC93b2xmc3NsL2FyY2hpdmUvdiR7UFZ9LXN0YWJsZS56aXAgXAorUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICJkMTk1MDA5ZGNiNjJkODcxMjE5NTY2MWJkMWQ1MGY4ZGQ2ODMxMDQ0IgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3dvbGZTU0wvd29sZnNzbC5naXQ7cHJvdG9jb2w9aHR0cHM7IFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtZml4LW5vLXJ1bGUtdG8tbWFrZS1jeWFzc2wtb3B0aW9ucy5oLnBhdGNoIFwKICAgICAgICAgICAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJmOWNhZjU1ODE2OWFiNjUwZGM4MjAwNzA4Nzk5ZWJlYiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJiNmQ4N2QzZTJjODc1NzE3N2Q2OWFmZjM3M2M5MWNmMTYyZjRhMzk0NGZhZTkwZmExMGQwODZmZDVmOTU0MmU3IgotCi1TID0gIiR7V09SS0RJUn0vd29sZnNzbC0ke1BWfS1zdGFibGUiCi0KIGluaGVyaXQgYXV0b3Rvb2xzCiAKIFBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdpcHY2JywgZCl9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvMDAwMS1EZWZpbmUtX19TV09SRF9UWVBFLWFuZC1fUEFUSF9OU1NXSVRDSF9DT05GLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvMDAwMS1EZWZpbmUtX19TV09SRF9UWVBFLWFuZC1fUEFUSF9OU1NXSVRDSF9DT05GLnBhdGNoCmluZGV4IDA3NWFmNTcuLjg3MTU5NzEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzLzAwMDEtRGVmaW5lLV9fU1dPUkRfVFlQRS1hbmQtX1BBVEhfTlNTV0lUQ0hfQ09ORi5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy8wMDAxLURlZmluZS1fX1NXT1JEX1RZUEUtYW5kLV9QQVRIX05TU1dJVENIX0NPTkYucGF0Y2gKQEAgLTEsMTkgKzEsMjAgQEAKLUZyb20gOTMzZTA2NWNmOGFlY2ZhMGNjZTVmOGY5MmFiYmVkNWJhYWFmM2Y3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gOTg3YzhmNGE3MThjZGQ2Yjc2NDU5MmJhNzUxMDA5MGE1OTYyMzk1OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBGcmksIDMxIE1hciAyMDE3IDE5OjEwOjU3IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8yXSBEZWZpbmUgX19TV09SRF9UWVBFIGFuZCBfUEFUSF9OU1NXSVRDSF9DT05GCitTdWJqZWN0OiBbUEFUQ0hdIERlZmluZSBfX1NXT1JEX1RZUEUgYW5kIF9QQVRIX05TU1dJVENIX0NPTkYKIAogaWYgdGhleSBhcmUgbm90IGRlZmluZWQgYXMgaXMgaW4gbXVzbCB0aGVuIGRlZmluZQogdGhlbSBoZXJlCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIGluY2x1ZGUvYXV0b21vdW50LmggfCA4ICsrKysrKysrCiAgaW5jbHVkZS9uc3N3aXRjaC5oICB8IDMgKysrCiAgMiBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspCiAKIGRpZmYgLS1naXQgYS9pbmNsdWRlL2F1dG9tb3VudC5oIGIvaW5jbHVkZS9hdXRvbW91bnQuaAotaW5kZXggMjE5YjA3ZC4uYjEyYzIyYSAxMDA2NDQKK2luZGV4IGNjMzM2YWQuLjhiZGNmMTIgMTAwNjQ0CiAtLS0gYS9pbmNsdWRlL2F1dG9tb3VudC5oCiArKysgYi9pbmNsdWRlL2F1dG9tb3VudC5oCiBAQCAtNDIsNiArNDIsMTQgQEAKQEAgLTMyLDcgKzMzLDcgQEAKICAjaWZuZGVmIEhBVkVfTU9VTlQKICAjZXJyb3IgRmFpbGVkIHRvIGxvY2F0ZSBtb3VudCg4KSEKIGRpZmYgLS1naXQgYS9pbmNsdWRlL25zc3dpdGNoLmggYi9pbmNsdWRlL25zc3dpdGNoLmgKLWluZGV4IDJiNDQ1YTkuLjNkYjc3YjIgMTAwNjQ0CitpbmRleCBkM2U0MDI3Li43YTBjMzhmIDEwMDY0NAogLS0tIGEvaW5jbHVkZS9uc3N3aXRjaC5oCiArKysgYi9pbmNsdWRlL25zc3dpdGNoLmgKIEBAIC0yNCw2ICsyNCw5IEBACkBAIC00NSw2ICs0NiwzIEBACiAgI2RlZmluZSBOU1NXSVRDSF9GSUxFIF9QQVRIX05TU1dJVENIX0NPTkYKICAKICBlbnVtIG5zc3dpdGNoX3N0YXR1cyB7Ci0tLSAKLTIuMTIuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy8wMDAxLW1vZHVsZXMtbG9va3VwX211bHRpLmMtUmVwbGFjZS1fX1NfSUVYRUMtd2l0aC1TX0lFWEUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy8wMDAxLW1vZHVsZXMtbG9va3VwX211bHRpLmMtUmVwbGFjZS1fX1NfSUVYRUMtd2l0aC1TX0lFWEUucGF0Y2gKaW5kZXggN2FjMTQ1Ni4uMzIyOTNkZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvMDAwMS1tb2R1bGVzLWxvb2t1cF9tdWx0aS5jLVJlcGxhY2UtX19TX0lFWEVDLXdpdGgtU19JRVhFLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzLzAwMDEtbW9kdWxlcy1sb29rdXBfbXVsdGkuYy1SZXBsYWNlLV9fU19JRVhFQy13aXRoLVNfSUVYRS5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gZTRlZTAwZTA4YWNkN2MwOTEyYTMyNjRhZDMyZTRkZTg2MWM3NDE2ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNzQ1ZTM1NWFjOGI1OTVhMjdlMWZjY2E3NWJmMDFkM2UyNDRmNGE1ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBUaHUsIDcgU2VwIDIwMTcgMjI6MjI6MzEgLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gbW9kdWxlcy9sb29rdXBfbXVsdGkuYzogUmVwbGFjZSBfX1NfSUVYRUMgd2l0aCBTX0lFWEVDCkBAIC03LDYgKzcsNyBAQAogYWxsIGxpYmMgZS5nLiBtdXNsCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIG1vZHVsZXMvbG9va3VwX211bHRpLmMgfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCkBAIC0yNCw2ICsyNSwzIEBACiAgCQkJCQl0eXBlID0gc3JjX3Byb2c7CiAgCQkJCWVsc2UKICAJCQkJCXR5cGUgPSBzcmNfZmlsZTsKLS0tIAotMi4xNC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzLzAwMDItUmVwbGFjZS1fX1NfSUVYRUMtd2l0aC1TX0lFWEVDLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvMDAwMi1SZXBsYWNlLV9fU19JRVhFQy13aXRoLVNfSUVYRUMucGF0Y2gKaW5kZXggNmI2YmE2ZC4uNDY5MDI3YSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvMDAwMi1SZXBsYWNlLV9fU19JRVhFQy13aXRoLVNfSUVYRUMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvMDAwMi1SZXBsYWNlLV9fU19JRVhFQy13aXRoLVNfSUVYRUMucGF0Y2gKQEAgLTEsMjEgKzEsMjIgQEAKLUZyb20gOGZkNzRkZGIzMzY5NTcyYzU5NGIyMmIzOTYzNDYxMzFhZjAwZmFlZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNTU3Y2EzOTlmNGIzYTM5N2YyMGJiMTQ3ZWM2ZGM0YWI5NzMyZGQxZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBGcmksIDMxIE1hciAyMDE3IDE5OjEyOjEwIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8yXSBSZXBsYWNlIF9fU19JRVhFQyB3aXRoIFNfSUVYRUMKK1N1YmplY3Q6IFtQQVRDSF0gUmVwbGFjZSBfX1NfSUVYRUMgd2l0aCBTX0lFWEVDCiAKIFNfSUVYRUMgaXMgcG9ydGFibGUKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgZGFlbW9uL2xvb2t1cC5jICAgICAgICB8IDQgKystLQogIG1vZHVsZXMvbG9va3VwX211bHRpLmMgfCAyICstCiAgMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9kYWVtb24vbG9va3VwLmMgYi9kYWVtb24vbG9va3VwLmMKLWluZGV4IDYyMDcxZGYuLjFiZWM5N2YgMTAwNjQ0CitpbmRleCAyMDFjY2JiLi5kODIxZGI4IDEwMDY0NAogLS0tIGEvZGFlbW9uL2xvb2t1cC5jCiArKysgYi9kYWVtb24vbG9va3VwLmMKLUBAIC00MDAsNyArNDAwLDcgQEAgc3RhdGljIGludCByZWFkX2ZpbGVfc291cmNlX2luc3RhbmNlKHN0cnVjdCBhdXRvZnNfcG9pbnQgKmFwLCBzdHJ1Y3QgbWFwX3NvdXJjZQorQEAgLTM2Niw3ICszNjYsNyBAQCBzdGF0aWMgaW50IHJlYWRfZmlsZV9zb3VyY2VfaW5zdGFuY2Uoc3RydWN0IGF1dG9mc19wb2ludCAqYXAsIHN0cnVjdCBtYXBfc291cmNlCiAgCWlmICghU19JU1JFRyhzdC5zdF9tb2RlKSkKICAJCXJldHVybiBOU1NfU1RBVFVTX05PVEZPVU5EOwogIApAQCAtMjQsNyArMjUsNyBAQAogIAkJdHlwZSA9IHNyY19wcm9nOwogIAllbHNlCiAgCQl0eXBlID0gc3JjX2ZpbGU7Ci1AQCAtODkwLDcgKzg5MCw3IEBAIHN0YXRpYyBpbnQgbG9va3VwX25hbWVfZmlsZV9zb3VyY2VfaW5zdGFuY2Uoc3RydWN0IGF1dG9mc19wb2ludCAqYXAsIHN0cnVjdCBtYXBfCitAQCAtODU2LDcgKzg1Niw3IEBAIHN0YXRpYyBpbnQgbG9va3VwX25hbWVfZmlsZV9zb3VyY2VfaW5zdGFuY2Uoc3RydWN0IGF1dG9mc19wb2ludCAqYXAsIHN0cnVjdCBtYXBfCiAgCWlmICghU19JU1JFRyhzdC5zdF9tb2RlKSkKICAJCXJldHVybiBOU1NfU1RBVFVTX05PVEZPVU5EOwogIApAQCAtMzQsMTAgKzM1LDEwIEBACiAgCWVsc2UKICAJCXR5cGUgPSBzcmNfZmlsZTsKIGRpZmYgLS1naXQgYS9tb2R1bGVzL2xvb2t1cF9tdWx0aS5jIGIvbW9kdWxlcy9sb29rdXBfbXVsdGkuYwotaW5kZXggNmVjODQzNC4uODhkMDgxZiAxMDA2NDQKK2luZGV4IGZhZGQyZWEuLjNlY2RhNmQgMTAwNjQ0CiAtLS0gYS9tb2R1bGVzL2xvb2t1cF9tdWx0aS5jCiArKysgYi9tb2R1bGVzL2xvb2t1cF9tdWx0aS5jCi1AQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgbG9va3VwX21vZCAqbnNzX29wZW5fbG9va3VwKGNvbnN0IGNoYXIgKmZvcm1hdCwgaW50IGFyZ2MsIGNvbnN0IGNoCitAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgbG9va3VwX21vZCAqbnNzX29wZW5fbG9va3VwKGNvbnN0IGNoYXIgKmZvcm1hdCwgaW50IGFyZ2MsIGNvbnN0IGNoCiAgCQkJCWNvbnRpbnVlOwogIAkJCX0KICAKQEAgLTQ2LDYgKzQ3LDMgQEAKICAJCQkJdHlwZSA9IHNyY19wcm9nOwogIAkJCWVsc2UKICAJCQkJdHlwZSA9IHNyY19maWxlOwotLS0gCi0yLjEyLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvYWRkLXRoZS1uZWVkZWQtc3RkYXJnLmgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hZGQtdGhlLW5lZWRlZC1zdGRhcmcuaC5wYXRjaAppbmRleCBmZGI5MDZiLi44MTZhNDA5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hZGQtdGhlLW5lZWRlZC1zdGRhcmcuaC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hZGQtdGhlLW5lZWRlZC1zdGRhcmcuaC5wYXRjaApAQCAtMSwxNCArMSwxOCBAQAotW1BBVENIXSBhZGQgdGhlIG5lZWRlZCBzdGRhcmcuaAorRnJvbSBkZjVkNDViMmQ3YWQ3ZTdiNWYwNTQyYTgxNmQwOGIwNDA5YTUyOWExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVHVlLCAxOSBBdWcgMjAxNCAxMTozMTozNSArMDgwMAorU3ViamVjdDogW1BBVENIXSBbUEFUQ0hdIGFkZCB0aGUgbmVlZGVkIHN0ZGFyZy5oCiAKIFVwc3RyZWFtLXN0YXR1czogUGVuZGluZwogCiBTaWduZWQtb2ZmLWJ5OiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CisKIC0tLQotIGxpYi9kZWZhdWx0cy5jIHwgICAgMSArCisgbGliL2RlZmF1bHRzLmMgfCAxICsKICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKIAogZGlmZiAtLWdpdCBhL2xpYi9kZWZhdWx0cy5jIGIvbGliL2RlZmF1bHRzLmMKLWluZGV4IDJiMDNlYTIuLjU3MjhlNjcgMTAwNjQ0CitpbmRleCAwZTQ4YTc4Li42NjdmMzVkIDEwMDY0NAogLS0tIGEvbGliL2RlZmF1bHRzLmMKICsrKyBiL2xpYi9kZWZhdWx0cy5jCiBAQCAtMTYsNiArMTYsNyBAQApAQCAtMTksNiArMjMsMyBAQAogICNpbmNsdWRlIDxjdHlwZS5oPgogICNpbmNsdWRlIDxzdHJpbmcuaD4KICAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KLS0tIAotMS43LjEwLjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvYXV0b2ZzLTUuMC43LWRvLW5vdC1jaGVjay1mb3ItbW9kcHJvYmUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hdXRvZnMtNS4wLjctZG8tbm90LWNoZWNrLWZvci1tb2Rwcm9iZS5wYXRjaAppbmRleCBhZjViZTZhLi4xZDVjM2UxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hdXRvZnMtNS4wLjctZG8tbm90LWNoZWNrLWZvci1tb2Rwcm9iZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hdXRvZnMtNS4wLjctZG8tbm90LWNoZWNrLWZvci1tb2Rwcm9iZS5wYXRjaApAQCAtMSwzICsxLDggQEAKK0Zyb20gMmNiYzU3NmVhMWZiZDFjYmY0NTc5ZDY0YjMwZTQxZDc2MjA4NGU3ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ICJ5YW5qdW4uemh1IiA8eWFuanVuLnpodUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVHVlLCAxNSBKYW4gMjAxMyAxMjo0NTo0NCArMDgwMAorU3ViamVjdDogW1BBVENIXSBhdXRvZnM6IGRvIG5vdCBjaGVjayBmb3IgbW9kcHJvYmUKKwogRGVzY3JpcHRpb246IExvYWRpbmcgYXV0b2ZzIG1vZHVsZSBpcyAjaWZkZWYnZWQgaW4gdGhlIHNvdXJjZSwgc28KICB0aGVyZSBpcyBubyBuZWVkIHRvIGNoZWNrIGZvciAvcHJvYyAod2hpY2ggaXMgb25seSB1c2VkCiAgdG8gbG9hZCBtb2R1bGUpIG9yIG1vZHByb2JlLiAgQm90aCBtb2Rwcm9iZSBhbmQgL3Byb2MKQEAgLTcsOSArMTIsMTYgQEAKIFVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgWzFdCiBbMV0gaHR0cDovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9hdXRvZnMvbXNnMDAxMzkuaHRtbAogCi1kaWZmIC11cnBOIGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCi0tLS0gYS9jb25maWd1cmUuaW4JMjAxMy0wMS0xNSAxMTozMDoyMi4wMDAwMDAwMDAgKzA4MDAKLSsrKyBiL2NvbmZpZ3VyZS5pbgkyMDEzLTAxLTE1IDExOjMxOjQ1LjAwMDAwMDAwMCArMDgwMAorLS0tCisgY29uZmlndXJlLmluICAgICAgICB8ICA2IC0tLS0tLQorIGRhZW1vbi9tb2R1bGUuYyAgICAgfCAgMyArKysKKyBpbmNsdWRlL2F1dG9tb3VudC5oIHwgMTEgKysrLS0tLS0tLS0KKyAzIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KK2luZGV4IDQ0YTFjOGIuLmIyMjYyMzYgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuaW4KKysrKyBiL2NvbmZpZ3VyZS5pbgogQEAgLTM0LDExICszNCw2IEBAIEFDX01TR19DSEVDS0lORyhbZm9yIGJpbmFyaWVzIGluXSkKICBBQ19NU0dfUkVTVUxUKFskc2VhcmNocGF0aF0pCiAgCkBAIC0yMiw3ICszNCw3IEBACiAgIyBMb2NhdGlvbiBvZiBpbml0LmQgZGlyZWN0b3J5PwogICMKICBBRl9JTklUX0QoKQotQEAgLTE0Miw3ICsxMzcsNiBAQCBBRl9QQVRIX0lOQ0xVREUoVU1PVU5ULCB1bW91bnQsIC9iaW4vdW1vCitAQCAtMTQyLDcgKzEzNyw2IEBAIEFGX1BBVEhfSU5DTFVERShVTU9VTlQsIHVtb3VudCwgL2Jpbi91bW91bnQsICRzZWFyY2hwYXRoKQogIEFGX1BBVEhfSU5DTFVERShFMkZTQ0ssIGZzY2suZXh0MiBlMmZzY2ssICwgJHNlYXJjaHBhdGgpCiAgQUZfUEFUSF9JTkNMVURFKEUzRlNDSywgZnNjay5leHQzIGUzZnNjaywgLCAkc2VhcmNocGF0aCkKICBBRl9QQVRIX0lOQ0xVREUoRTRGU0NLLCBmc2NrLmV4dDQgZTRmc2NrLCAsICRzZWFyY2hwYXRoKQpAQCAtMzAsMzAgKzQyLDMyIEBACiAgCiAgQUZfQ0hFQ0tfUFJPRyhMRVgsIGZsZXggbGV4LCAsICRzZWFyY2hwYXRoKQogIEFGX0NIRUNLX1BST0coWUFDQywgYmlzb24sICwgJHNlYXJjaHBhdGgpCi1kaWZmIC11cnBOIGEvZGFlbW9uL21vZHVsZS5jIGIvZGFlbW9uL21vZHVsZS5jCi0tLS0gYS9kYWVtb24vbW9kdWxlLmMJMjAxMy0wMS0xNSAxMTozMDo0OS4wMDAwMDAwMDAgKzA4MDAKLSsrKyBiL2RhZW1vbi9tb2R1bGUuYwkyMDEzLTAxLTE1IDExOjMyOjAwLjAwMDAwMDAwMCArMDgwMAotQEAgLTE4LDYgKzE4LDggQEAKLSAjaW5jbHVkZSA8c3RkbGliLmg+CitkaWZmIC0tZ2l0IGEvZGFlbW9uL21vZHVsZS5jIGIvZGFlbW9uL21vZHVsZS5jCitpbmRleCBiZWQ4ZjdhLi5lNDFhOThlIDEwMDY0NAorLS0tIGEvZGFlbW9uL21vZHVsZS5jCisrKysgYi9kYWVtb24vbW9kdWxlLmMKK0BAIC0xOSw2ICsxOSw4IEBACiAgI2luY2x1ZGUgImF1dG9tb3VudC5oIgorICNpbmNsdWRlICJuc3N3aXRjaC5oIgogIAogKyNpZiAwCiArLyogc2VlIGNvbW1lbnQgaW4gZGFlbW9uL2F1dG9tb3VudC5jIGFyb3VuZCBsb2FkX2F1dG9mczRfbW9kdWxlKCkgY2FsbCAqLwogIGludCBsb2FkX2F1dG9mczRfbW9kdWxlKHZvaWQpCiAgewogIAlGSUxFICpmcDsKLUBAIC01Miw2ICs1NCw3IEBAIGludCBsb2FkX2F1dG9mczRfbW9kdWxlKHZvaWQpCitAQCAtNTMsNiArNTUsNyBAQCBpbnQgbG9hZF9hdXRvZnM0X21vZHVsZSh2b2lkKQogIAogIAlyZXR1cm4gMTsKICB9CiArI2VuZGlmCiAgCi0gc3RydWN0IGxvb2t1cF9tb2QgKm9wZW5fbG9va3VwKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmVycl9wcmVmaXgsCi0gCQkJICAgICAgIGNvbnN0IGNoYXIgKm1hcGZtdCwgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmNvbnN0ICphcmd2KQotZGlmZiAtdXJwTiBhL2luY2x1ZGUvYXV0b21vdW50LmggYi9pbmNsdWRlL2F1dG9tb3VudC5oCi0tLS0gYS9pbmNsdWRlL2F1dG9tb3VudC5oCTIwMTMtMDEtMTUgMTE6MzE6MTAuMDAwMDAwMDAwICswODAwCi0rKysgYi9pbmNsdWRlL2F1dG9tb3VudC5oCTIwMTMtMDEtMTUgMTE6MzI6MDYuMDAwMDAwMDAwICswODAwCi1AQCAtNTAsMTYgKzUwLDExIEBACisgaW50IG9wZW5fbG9va3VwKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmVycl9wcmVmaXgsIGNvbnN0IGNoYXIgKm1hcGZtdCwKKyAJCWludCBhcmdjLCBjb25zdCBjaGFyICpjb25zdCAqYXJndiwgc3RydWN0IGxvb2t1cF9tb2QgKipsb29rdXApCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hdXRvbW91bnQuaCBiL2luY2x1ZGUvYXV0b21vdW50LmgKK2luZGV4IGMwZjVmYmYuLmNjMzM2YWQgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2F1dG9tb3VudC5oCisrKysgYi9pbmNsdWRlL2F1dG9tb3VudC5oCitAQCAtNTEsMTYgKzUxLDExIEBACiAgI2Vycm9yIEZhaWxlZCB0byBsb2NhdGUgdW1vdW50KDgpIQogICNlbmRpZgogIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvYXV0b2ZzLTUuMC43LWZpeC1saWItZGVwcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2F1dG9mcy01LjAuNy1maXgtbGliLWRlcHMucGF0Y2gKaW5kZXggMDlmZWE0OS4uOGUwNmRiNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvYXV0b2ZzLTUuMC43LWZpeC1saWItZGVwcy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hdXRvZnMtNS4wLjctZml4LWxpYi1kZXBzLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA1NGE5YmQyOGEzMDdkZDc0ZGYwNDRkNzc5Y2E4NWFkY2YzNmFhMjAyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAwODA2MjYxMDhjOWFiNzBlMjQ4OTc1MmVmMmExNDAwNmQwNTY0YjBjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogSm9lIE1hY0RvbmFsZCA8am9lLm1hY2RvbmFsZEB3aW5kcml2ZXIuY29tPgogRGF0ZTogVHVlLCAxOCBKdW4gMjAxMyAxMDowNToyMSAtMDQwMAogU3ViamVjdDogW1BBVENIXSBGaXggdGhlIGRlcGVuZGVuY3kgaXNzdWUKQEAgLTEwLDE5ICsxMCwxNyBAQAogCiBTaWduZWQtb2ZmLWJ5OiBSb3kuTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CiBTaWduZWQtb2ZmLWJ5OiBKb2UgTWFjRG9uYWxkIDxqb2UubWFjZG9uYWxkQHdpbmRyaXZlci5jb20+CisKIC0tLQotIGxpYi9NYWtlZmlsZSB8ICAgIDEgKworIGxpYi9NYWtlZmlsZSB8IDEgKwogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQogCiBkaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxlIGIvbGliL01ha2VmaWxlCi1pbmRleCA1NDE4MDA5Li5iZmY0ZTFkIDEwMDY0NAoraW5kZXggNTE4YjQ4My4uNDc5OGE0YiAxMDA2NDQKIC0tLSBhL2xpYi9NYWtlZmlsZQogKysrIGIvbGliL01ha2VmaWxlCi1AQCAtNzUsMyArNzUsNCBAQCBpbnN0YWxsOiBhbGwKK0BAIC04MSwzICs4MSw0IEBAIGluc3RhbGw6IGFsbAogIGNsZWFuOgogIAlybSAtZiAkKExJQikgJChSUENTKSAkKE9CSlMpICQoWUFDQ1NSQykgKi5vdXRwdXQgKn4KICAKICskKE9CSlMpOiAkKFJQQ1MpCi0tLSAKLTEuNy4xMC40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2F1dG9mcy01LjAuNy1pbmNsdWRlLWxpbnV4LW5mcy5oLWRpcmVjdGx5LWluLXJwY19zdWIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hdXRvZnMtNS4wLjctaW5jbHVkZS1saW51eC1uZnMuaC1kaXJlY3RseS1pbi1ycGNfc3ViLnBhdGNoCmluZGV4IDNhODc4OTguLjliMDk0MmUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2F1dG9mcy01LjAuNy1pbmNsdWRlLWxpbnV4LW5mcy5oLWRpcmVjdGx5LWluLXJwY19zdWIucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvYXV0b2ZzLTUuMC43LWluY2x1ZGUtbGludXgtbmZzLmgtZGlyZWN0bHktaW4tcnBjX3N1Yi5wYXRjaApAQCAtMSwyMSArMSwyMiBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLUZyb20gNDRiZGNlOGM2ZWQ5YjMwYzE2NDNlNTk4MTE3MmE0ZjkwMjVmMDEzYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gMjI1NmI4YWE5OGNmZjE1ZGRmMmE4ZDM2NDk2ZTZjOTEyNTkyNzkwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEFuZHJlYXMgT2JlcnJpdHRlciA8b2JpQG9wZW5kcmVhbWJveC5vcmc+CiBEYXRlOiBXZWQsIDEzIE1hciAyMDEzIDE2OjE3OjA4ICswMTAwCiBTdWJqZWN0OiBbUEFUQ0hdIGF1dG9mcy01LjAuNzogaW5jbHVkZSBsaW51eC9uZnMuaCBkaXJlY3RseSBpbiBycGNfc3Vicy5oCiAKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCiBGaXhlcyBjb21waWxlIGVycm9yIHdpdGggdWNsaWJjLiBHbGliYydzIG5mcy9uZnMuaCBjb250YWlucwogbm90aGluZyBidXQgIiNpbmNsdWRlIGxpbnV4L25mcy5oIi4gcnBjX3N1YnMuaCBhbHJlYWR5IGluY2x1ZGVzCiBvdGhlciBsaW51eC9uZnMqLmggZmlsZXMgZGlyZWN0bHkuCiAKIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgT2JlcnJpdHRlciA8b2JpQG9wZW5kcmVhbWJveC5vcmc+CisKIC0tLQotIGluY2x1ZGUvcnBjX3N1YnMuaCB8ICAgIDIgKy0KKyBpbmNsdWRlL3JwY19zdWJzLmggfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9pbmNsdWRlL3JwY19zdWJzLmggYi9pbmNsdWRlL3JwY19zdWJzLmgKLWluZGV4IGI2ZDU5ZjkuLmEyZDk2NDggMTAwNjQ0CitpbmRleCBlNzQ0ZTg5Li44M2RiNDdlIDEwMDY0NAogLS0tIGEvaW5jbHVkZS9ycGNfc3Vicy5oCiArKysgYi9pbmNsdWRlL3JwY19zdWJzLmgKIEBAIC0xOCw3ICsxOCw3IEBACkBAIC0yNyw2ICsyOCwzIEBACiAgI2luY2x1ZGUgPGxpbnV4L25mczIuaD4KICAjaW5jbHVkZSA8bGludXgvbmZzMy5oPgogIAotLS0gCi0xLjcuMTAuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9hdXRvZnMtNS4xLjItbGlidGlycGMtYXMtbmVlZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2F1dG9mcy01LjEuMi1saWJ0aXJwYy1hcy1uZWVkLnBhdGNoCmluZGV4IGNiZjJiZjguLjE4Y2UxOTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2F1dG9mcy01LjEuMi1saWJ0aXJwYy1hcy1uZWVkLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2F1dG9mcy01LjEuMi1saWJ0aXJwYy1hcy1uZWVkLnBhdGNoCkBAIC0xLDEyICsxLDIxIEBACitGcm9tIGIzMWRlY2FjNGFjYjE5NGIwMjBjNjIxZDJkMTEwMTlmNjM2YTQ1ZTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogTW9uLCAyNCBBcHIgMjAxNyAyMDo0MToyNSAtMDcwMAorU3ViamVjdDogW1BBVENIXSBhdXRvZnM6IFVwZ3JhZGUgdG8gNS4xLjIgcmVsZWFzZQorCiBNYWtlIGNvbmZpZ3VyZSBjb21wYXRpYmxlIHdpdGggLVdsLC0tYXMtbmVlZGVkIGZvbGxvd2luZwogaHR0cHM6Ly93aWtpLmdlbnRvby5vcmcvd2lraS9Qcm9qZWN0OlF1YWxpdHlfQXNzdXJhbmNlL0FzLW5lZWRlZCNGYWlsdXJlX2luXy4uMkZjb25maWd1cmUKIAogMjAxNi0wNy0wNSBNYXJ0aW4gdm9uIEdhZ2VybgogCi1JbmRleDogYXV0b2ZzLTUuMS4yL2FjbG9jYWwubTQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4xLjIub3JpZy9hY2xvY2FsLm00Ci0rKysgYXV0b2ZzLTUuMS4yL2FjbG9jYWwubTQKKy0tLQorIGFjbG9jYWwubTQgfCA2ICsrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9hY2xvY2FsLm00IGIvYWNsb2NhbC5tNAoraW5kZXggMGU0YTYyNC4uMmU2MjBjZCAxMDA2NDQKKy0tLSBhL2FjbG9jYWwubTQKKysrKyBiL2FjbG9jYWwubTQKIEBAIC00MTUsOSArNDE1LDkgQEAgQUNfREVGVU4oW0FGX0NIRUNLX0xJQlRJUlBDXSwKICBbCiAgIyBzYXZlIGN1cnJlbnQgZmxhZ3MKQEAgLTE5LDcgKzI4LDcgQEAKICAKICBBQ19UUllfTElOSygKICAgICAgWyAjaW5jbHVkZSA8cnBjL3JwYy5oPiBdLAotQEAgLTQ0MCw3ICs0NDAsNyBAQCBBQ19DSEVDS19GVU5DUyhbZ2V0cnBjYnluYW1lIGdldHNlcnZieW5hCitAQCAtNDQwLDcgKzQ0MCw3IEBAIEFDX0NIRUNLX0ZVTkNTKFtnZXRycGNieW5hbWUgZ2V0c2VydmJ5bmFtZV0pCiAgCiAgIyByZXN0b3JlIGZsYWdzCiAgQ0ZMQUdTPSIkYWZfY2hlY2tfbGlidGlycGNfc2F2ZV9jZmxhZ3MiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9jcm9zcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2Nyb3NzLnBhdGNoCmluZGV4IDhmMWFmNjIuLmIyNWM0M2YgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2Nyb3NzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2Nyb3NzLnBhdGNoCkBAIC0xLDggKzEsMTcgQEAKLUluZGV4OiBhdXRvZnMtNS4wLjcvYWNsb2NhbC5tNAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGF1dG9mcy01LjAuNy5vcmlnL2FjbG9jYWwubTQJMjAxMi0xMC0yOCAwNDo0NTowNy4wMDAwMDAwMDAgLTA3MDAKLSsrKyBhdXRvZnMtNS4wLjcvYWNsb2NhbC5tNAkyMDEyLTEwLTI4IDEwOjQ3OjUzLjI2Mzk5NjkxMCAtMDcwMAotQEAgLTcsNiArNyw4IEBACitGcm9tIGI5YjQ0Y2Q4MmNhY2VlYjYzOGNjNmE4NjJiNWJiOTBiOTNhZDZjNmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogU2F0LCA1IEphbiAyMDEzIDE5OjUzOjEwIC0wODAwCisKKy0tLQorIGFjbG9jYWwubTQgICB8IDIgKysKKyBjb25maWd1cmUuaW4gfCA4ICsrKysrKy0tCisgMiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9hY2xvY2FsLm00IGIvYWNsb2NhbC5tNAoraW5kZXggMjExNTIwNC4uMmE5YTgwMiAxMDA2NDQKKy0tLSBhL2FjbG9jYWwubTQKKysrKyBiL2FjbG9jYWwubTQKK0BAIC03LDYgKzcsOCBAQCBkbmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBBQ19ERUZVTihBRl9QQVRIX0lOQ0xVREUsCiAgW0FDX1BBVEhfUFJPR1MoJDEsJDIsJDMsJDQpCiAgaWYgdGVzdCAtbiAiJCQxIjsgdGhlbgpAQCAtMTEsMTEgKzIwLDExIEBACiAgICBBQ19ERUZJTkUoSEFWRV8kMSwxLFtkZWZpbmUgaWYgeW91IGhhdmUgJDFdKQogICAgQUNfREVGSU5FX1VOUVVPVEVEKFBBVEhfJDEsICIkJDEiLCBbZGVmaW5lIGlmIHlvdSBoYXZlICQxXSkKICAgIEhBVkVfJDE9MQotSW5kZXg6IGF1dG9mcy01LjAuNy9jb25maWd1cmUuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4wLjcub3JpZy9jb25maWd1cmUuaW4JMjAxMi0xMC0yOCAwNDo0NTowNi4wMDAwMDAwMDAgLTA3MDAKLSsrKyBhdXRvZnMtNS4wLjcvY29uZmlndXJlLmluCTIwMTItMTAtMjggMTA6NTA6MDcuNTgwMDAwNjI4IC0wNzAwCi1AQCAtMzAxLDEzICszMDEsMTUgQEAKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KK2luZGV4IDI1ZDdjNGUuLjQ0YTFjOGIgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuaW4KKysrKyBiL2NvbmZpZ3VyZS5pbgorQEAgLTMyNCwxMyArMzI0LDE1IEBAIEFDX1BST0dfQ0MKICBjYXQgPiBwaWV0ZXN0LmMgPDxFT0YKICBpbnQgbWFpbih2b2lkKSB7IHJldHVybiAwOyB9CiAgRU9GCkBAIC0zMyw3ICs0Miw3IEBACiAgQUNfTVNHX1JFU1VMVChbJGdjY19zdXBwb3J0c19waWVdKQogIGlmIHRlc3QgJGdjY19zdXBwb3J0c19waWUgPSB5ZXMgOyB0aGVuCiAgCURBRU1PTl9DRkxBR1M9Ii1mUElFIgotQEAgLTMxNiw2ICszMTgsOCBAQAorQEAgLTMzOSw2ICszNDEsOCBAQCBmaQogIHJtIC1mIHBpZXRlc3QuYwogIEFDX1NVQlNUKERBRU1PTl9DRkxBR1MpCiAgQUNfU1VCU1QoREFFTU9OX0xERkxBR1MpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9maXgtdGhlLVlBQ0MtcnVsZS10by1maXgtYS1idWlsZGluZy1mYWlsdXJlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvZml4LXRoZS1ZQUNDLXJ1bGUtdG8tZml4LWEtYnVpbGRpbmctZmFpbHVyZS5wYXRjaAppbmRleCA5YjY0MTgzLi4yMWE5N2M4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9maXgtdGhlLVlBQ0MtcnVsZS10by1maXgtYS1idWlsZGluZy1mYWlsdXJlLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2ZpeC10aGUtWUFDQy1ydWxlLXRvLWZpeC1hLWJ1aWxkaW5nLWZhaWx1cmUucGF0Y2gKQEAgLTEsNCArMSw3IEBACi1bUEFUQ0hdIGZpeCB0aGUgWUFDQyBydWxlIHRvIGZpeCBhIGJ1aWxkaW5nIGZhaWx1cmUKK0Zyb20gOTcxZDQ4YTAwZWY4Mjg4MGMzNGU4OTc3OGJmNDMwYTAxMzYwZWJkNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KK0RhdGU6IE1vbiwgMTggTWF5IDIwMTUgMTY6Mjg6MzYgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gW1BBVENIXSBmaXggdGhlIFlBQ0MgcnVsZSB0byBmaXggYSBidWlsZGluZyBmYWlsdXJlCiAKIFVwc3RyZWFtLVN0YXR1OiBQZW5kaW5nCiAKQEAgLTE0LDYgKzE3LDcgQEAKICAgfC4uL01ha2VmaWxlLnJ1bGVzOjY0OiByZWNpcGUgZm9yIHRhcmdldCAnYW1kX3Rvay5vJyBmYWlsZWQKICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFNpZ25lZC1vZmYtYnk6IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KKwogLS0tCiAgbGliL01ha2VmaWxlICAgICB8IDYgKysrKy0tCiAgbW9kdWxlcy9NYWtlZmlsZSB8IDMgKystCkBAIC00NCw3ICs0OCw3IEBACiAgCiAgbnNzX3Rvay5vOiBuc3NfdG9rLmMgbnNzX3BhcnNlLnRhYi5oCiBkaWZmIC0tZ2l0IGEvbW9kdWxlcy9NYWtlZmlsZSBiL21vZHVsZXMvTWFrZWZpbGUKLWluZGV4IDIzN2I3MGIuLjcxNDE1ZDAgMTAwNjQ0CitpbmRleCBkOWFiMDZjLi5hYmM3Njk4IDEwMDY0NAogLS0tIGEvbW9kdWxlcy9NYWtlZmlsZQogKysrIGIvbW9kdWxlcy9NYWtlZmlsZQogQEAgLTEwMyw3ICsxMDMsOCBAQCBhbWRfdG9rLmM6IGFtZF90b2subApAQCAtNTcsNiArNjEsMyBAQAogIAkkKFlBQ0MpIC12IC1kIC1wIGFtZF8gLWIgYW1kX3BhcnNlICQ/CiAgCiAgYW1kX3BhcnNlLnRhYi5vOiBhbWRfcGFyc2UudGFiLmMgYW1kX3BhcnNlLnRhYi5oCi0tLSAKLTEuOS4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2ZpeF9kaXNhYmxlX2xkYXAucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9maXhfZGlzYWJsZV9sZGFwLnBhdGNoCmluZGV4IDk0NzUwYjIuLjQxNDMyNTkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2ZpeF9kaXNhYmxlX2xkYXAucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvZml4X2Rpc2FibGVfbGRhcC5wYXRjaApAQCAtMSw2ICsxLDkgQEAKLWF1dG9mczogZmFpbHMgdG8gY29tcGlsZSB3aXRoIG9wZW5sZGFwIGRpc2FibGVkCitGcm9tIGM1MDBkOTkwNmYxNjNiZjcxNmM4NzJkMzc0MDNiOWRlMDJlZjBhODYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbXkgRm9uZyA8YW15LmZvbmdAd2luZHJpdmVyLmNvbT4KK0RhdGU6IEZyaSwgMTggSmFuIDIwMTMgMTI6MTM6MzIgLTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0gYXV0b2ZzOiBmYWlscyB0byBjb21waWxlIHdpdGggb3BlbmxkYXAgZGlzYWJsZWQKIAotQXMgb2YgNS4wLjYsIGl0IGFwcGVhcnMgdGhhdCBjaGFuZ2VzIHdlcmUgaW50cm9kdWNlZCBzbyB0aGF0IAorQXMgb2YgNS4wLjYsIGl0IGFwcGVhcnMgdGhhdCBjaGFuZ2VzIHdlcmUgaW50cm9kdWNlZCBzbyB0aGF0CiBpZiB5b3UgY29tcGlsZSB3aXRoIG9wZW5sZGFwIGRpc2FibGVkIGFuZCBvcGVubGRhcCBoZWFkZXJzIGFyZSBub3QKIGF2YWlsYWJsZSwgdGhlbiBhdXRvZnMgZmFpbHMgdG8gYnVpbGQuCiAKQEAgLTEyLDEzICsxNSwxMyBAQAogIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKIAogLS0tCi0gaW5jbHVkZS9sb29rdXBfbGRhcC5oIHwgICAgNCArKysrCisgaW5jbHVkZS9sb29rdXBfbGRhcC5oIHwgNCArKysrCiAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQogCi1JbmRleDogYXV0b2ZzLTUuMS4yL2luY2x1ZGUvbG9va3VwX2xkYXAuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGF1dG9mcy01LjEuMi5vcmlnL2luY2x1ZGUvbG9va3VwX2xkYXAuaAotKysrIGF1dG9mcy01LjEuMi9pbmNsdWRlL2xvb2t1cF9sZGFwLmgKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2xvb2t1cF9sZGFwLmggYi9pbmNsdWRlL2xvb2t1cF9sZGFwLmgKK2luZGV4IDNhN2FiYTcuLmJmZGIwYjMgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2xvb2t1cF9sZGFwLmgKKysrKyBiL2luY2x1ZGUvbG9va3VwX2xkYXAuaAogQEAgLTEsNyArMSw5IEBACiAgI2lmbmRlZiBMT09LVVBfTERBUF9ICiAgI2RlZmluZSBMT09LVVBfTERBUF9ICmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9mb3JjZS1TVFJJUC10by1lbXRweS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2ZvcmNlLVNUUklQLXRvLWVtdHB5LnBhdGNoCmluZGV4IDYzNDAwNWIuLjIxMzk2ZGQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2ZvcmNlLVNUUklQLXRvLWVtdHB5LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2ZvcmNlLVNUUklQLXRvLWVtdHB5LnBhdGNoCkBAIC0xLDE0ICsxLDE4IEBACi1bUEFUQ0hdIGZvcmNlIFNUUklQIHRvIGVtdHB5CitGcm9tIDNjYmVlMDBmZTU3MjViODdhYmRhZTgwY2ZhMmVlNzM1ZTQ1MTNjYTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CitEYXRlOiBUdWUsIDE5IEF1ZyAyMDE0IDExOjMxOjM1ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIFtQQVRDSF0gZm9yY2UgU1RSSVAgdG8gZW10cHkKIAogb3RoZXJ3aXNlIHRoZSBnZW5lcmF0ZSBmaWxlIHdpbGwgYmUgc3RyaXBwZWQKIAogU2lnbmVkLW9mZi1ieTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorCiAtLS0KLSBNYWtlZmlsZS5ydWxlcyB8ICAgIDIgKy0KKyBNYWtlZmlsZS5ydWxlcyB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL01ha2VmaWxlLnJ1bGVzIGIvTWFrZWZpbGUucnVsZXMKLWluZGV4IDcxMGEyYzkuLmU0MzM0ZGIgMTAwNjQ0CitpbmRleCA3MDlkZDA0Li5iMWY3ZTUwIDEwMDY0NAogLS0tIGEvTWFrZWZpbGUucnVsZXMKICsrKyBiL01ha2VmaWxlLnJ1bGVzCiBAQCAtMzEsNyArMzEsNyBAQCBMREZMQUdTICAgPz0gLXMKQEAgLTIwLDYgKzI0LDMgQEAKICBlbHNlCiAgU1RSSVAgICAgID89IHN0cmlwIC0tc3RyaXAtZGVidWcKICBlbmRpZgotLS0gCi0xLjcuMTAuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9saWJ0aXJwYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2xpYnRpcnBjLnBhdGNoCmluZGV4IGQ2ODk0NGIuLjBhMmQ1MDIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2xpYnRpcnBjLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL2xpYnRpcnBjLnBhdGNoCkBAIC0xLDIxICsxLDE3IEBACi1JbmRleDogYXV0b2ZzLTUuMC43L2FjbG9jYWwubTQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4wLjcub3JpZy9hY2xvY2FsLm00CTIwMTItMTAtMjggMTM6MTc6NDUuNTA0MjM3MDI3IC0wNzAwCi0rKysgYXV0b2ZzLTUuMC43L2FjbG9jYWwubTQJMjAxMi0xMC0yOCAxMzoyMDo1MC4xMDgyNDI3MzkgLTA3MDAKLUBAIC00MDMsNyArNDAzLDcgQEAKLSAjIHNhdmUgY3VycmVudCBmbGFncwotIGFmX2NoZWNrX2xpYnRpcnBjX3NhdmVfY2ZsYWdzPSIkQ0ZMQUdTIgotIGFmX2NoZWNrX2xpYnRpcnBjX3NhdmVfbGRmbGFncz0iJExERkxBR1MiCi0tQ0ZMQUdTPSIkQ0ZMQUdTIC1JL3Vzci9pbmNsdWRlL3RpcnBjIgotK0NGTEFHUz0iJENGTEFHUyAtST0vdXNyL2luY2x1ZGUvdGlycGMiCi0gTERGTEFHUz0iJExERkxBR1MgLWx0aXJwYyIKLSAKLSBBQ19UUllfTElOSygKLUluZGV4OiBhdXRvZnMtNS4wLjcvTWFrZWZpbGUucnVsZXMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4wLjcub3JpZy9NYWtlZmlsZS5ydWxlcwkyMDEyLTEwLTI4IDEzOjE3OjQ1LjMwODIzNzAyMiAtMDcwMAotKysrIGF1dG9mcy01LjAuNy9NYWtlZmlsZS5ydWxlcwkyMDEyLTEwLTI4IDEzOjIxOjI1LjcyMDI0MjgwMyAtMDcwMAotQEAgLTQ4LDcgKzQ4LDcgQEAKK0Zyb20gY2I2YTRmNjFhZGIwMjdmMjM2NjMxOGYyYzA4YzgyNjRlYmYzOTIxOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDUgSmFuIDIwMTMgMTk6NTM6MTAgLTA4MDAKKworLS0tCisgTWFrZWZpbGUucnVsZXMgfCAyICstCisgYWNsb2NhbC5tNCAgICAgfCAyICstCisgMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZS5ydWxlcyBiL01ha2VmaWxlLnJ1bGVzCitpbmRleCA2ZmEzZTAyLi43MDlkZDA0IDEwMDY0NAorLS0tIGEvTWFrZWZpbGUucnVsZXMKKysrKyBiL01ha2VmaWxlLnJ1bGVzCitAQCAtNDYsNyArNDYsNyBAQCBDRkxBR1MgKz0gLURfUkVFTlRSQU5UIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQKICBMSUJTICs9IC1scHRocmVhZAogIAogIGlmZGVmIFRJUlBDTElCCkBAIC0yNCwzICsyMCwxNiBAQAogIExJQlMgKz0gJChUSVJQQ0xJQikKICBlbmRpZgogIAorZGlmZiAtLWdpdCBhL2FjbG9jYWwubTQgYi9hY2xvY2FsLm00CitpbmRleCAyYTlhODAyLi4wZTRhNjI0IDEwMDY0NAorLS0tIGEvYWNsb2NhbC5tNAorKysrIGIvYWNsb2NhbC5tNAorQEAgLTQxNiw3ICs0MTYsNyBAQCBBQ19ERUZVTihbQUZfQ0hFQ0tfTElCVElSUENdLAorICMgc2F2ZSBjdXJyZW50IGZsYWdzCisgYWZfY2hlY2tfbGlidGlycGNfc2F2ZV9jZmxhZ3M9IiRDRkxBR1MiCisgYWZfY2hlY2tfbGlidGlycGNfc2F2ZV9sZGZsYWdzPSIkTERGTEFHUyIKKy1DRkxBR1M9IiRDRkxBR1MgLUkvdXNyL2luY2x1ZGUvdGlycGMiCisrQ0ZMQUdTPSIkQ0ZMQUdTIC1JPS91c3IvaW5jbHVkZS90aXJwYyIKKyBMREZMQUdTPSIkTERGTEFHUyAtbHRpcnBjIgorIAorIEFDX1RSWV9MSU5LKApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvbm8tYmFzaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL25vLWJhc2gucGF0Y2gKaW5kZXggY2YwMzYzNS4uYzQ2YzBlNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvbm8tYmFzaC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9uby1iYXNoLnBhdGNoCkBAIC0xLDE3ICsxLDI2IEBACi1JbmRleDogYXV0b2ZzLTUuMC43L3NhbXBsZXMvYXV0by5uZXQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4wLjcub3JpZy9zYW1wbGVzL2F1dG8ubmV0CTIwMTItMDctMjQgMjM6MDU6MjYuMDAwMDAwMDAwIC0wNzAwCi0rKysgYXV0b2ZzLTUuMC43L3NhbXBsZXMvYXV0by5uZXQJMjAxMi0xMC0yOCAxMDo0NDoyNS4wMzU5OTE3MTUgLTA3MDAKK0Zyb20gYTMwMDdkN2VhOTMwODIzOTI2NjExMDgxYmI4NzNkZGQ3NzEzMjVjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDUgSmFuIDIwMTMgMTk6NTM6MTAgLTA4MDAKKworLS0tCisgc2FtcGxlcy9hdXRvLm5ldCB8IDIgKy0KKyBzYW1wbGVzL2F1dG8uc21iIHwgMiArLQorIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc2FtcGxlcy9hdXRvLm5ldCBiL3NhbXBsZXMvYXV0by5uZXQKK2luZGV4IDAzODRmNjEuLjYxMjE1ZjYgMTAwNzU1CistLS0gYS9zYW1wbGVzL2F1dG8ubmV0CisrKysgYi9zYW1wbGVzL2F1dG8ubmV0CiBAQCAtMSw0ICsxLDQgQEAKIC0jIS9iaW4vYmFzaAogKyMhL2Jpbi9zaAogIAogICMgVGhpcyBmaWxlIG11c3QgYmUgZXhlY3V0YWJsZSB0byB3b3JrISBjaG1vZCA3NTUhCiAgCi1JbmRleDogYXV0b2ZzLTUuMC43L3NhbXBsZXMvYXV0by5zbWIKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4wLjcub3JpZy9zYW1wbGVzL2F1dG8uc21iCTIwMTItMDctMjQgMjM6MDU6MjYuMDAwMDAwMDAwIC0wNzAwCi0rKysgYXV0b2ZzLTUuMC43L3NhbXBsZXMvYXV0by5zbWIJMjAxMi0xMC0yOCAxMDo0NDoyNS4wMzU5OTE3MTUgLTA3MDAKK2RpZmYgLS1naXQgYS9zYW1wbGVzL2F1dG8uc21iIGIvc2FtcGxlcy9hdXRvLnNtYgoraW5kZXggNmFmNWQ4NS4uZDI5NmI4MSAxMDA3NTUKKy0tLSBhL3NhbXBsZXMvYXV0by5zbWIKKysrKyBiL3NhbXBsZXMvYXV0by5zbWIKIEBAIC0xLDQgKzEsNCBAQAogLSMhL2Jpbi9iYXNoCiArIyEvYmluL3NoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9wa2djb25maWctbGlibnNsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvcGtnY29uZmlnLWxpYm5zbC5wYXRjaAppbmRleCBiZjJjOTY0Li4xYzdiMTE5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9wa2djb25maWctbGlibnNsLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL3BrZ2NvbmZpZy1saWJuc2wucGF0Y2gKQEAgLTEsMTMgKzEsMjIgQEAKK0Zyb20gZTNhZTU2Y2YwYmI0MDYzYzMxMjk1ZjQ1ZDA0ZTNjNTA0ZjRiNmNjNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBNb24sIDI0IEFwciAyMDE3IDIwOjQxOjI1IC0wNzAwCitTdWJqZWN0OiBbUEFUQ0hdIGF1dG9mczogVXBncmFkZSB0byA1LjEuMiByZWxlYXNlCisKIFVzZSBwa2ctY29uZmlnIGZpcnN0IHRvIGxvb2sgZm9yIGV4dGVybmFsIGxpYm5zbCB3aGljaCBpcyBub3cKIHNwbGl0IG91dCBmcm9tIGdsaWJjLCBpZiBpdCBkb2VzIG5vdCBleGlzdCB0aGVuIHNlZSBpZiBpdHMgcHJvdmlkZWQKIGJ5IGdsaWJjIGl0c2VsZi4KIAogLUtoZW0KIAotSW5kZXg6IGF1dG9mcy01LjEuMi9jb25maWd1cmUuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdXRvZnMtNS4xLjIub3JpZy9jb25maWd1cmUuaW4KLSsrKyBhdXRvZnMtNS4xLjIvY29uZmlndXJlLmluCistLS0KKyBjb25maWd1cmUuaW4gfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KK2luZGV4IDljZjczYjguLjEwMTZjNzEgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuaW4KKysrKyBiL2NvbmZpZ3VyZS5pbgogQEAgLTE4Niw3ICsxODYsNyBAQCBmaQogICMKICAjIGdsaWJjL2xpYmMgNiBuZXcgbGlicmFyaWVzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy9yZW1vdmUtYmFzaGlzbS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL3JlbW92ZS1iYXNoaXNtLnBhdGNoCmluZGV4IDI4MmQ2ZjAuLjQxODMwNjkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL3JlbW92ZS1iYXNoaXNtLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL3JlbW92ZS1iYXNoaXNtLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA3OTAzNGY5NjliYmQxMjIxNWQ2NWI0MzM3ZGZkMzhhMTNkMDJkNGVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBjZmFjYmI5MTdmODdiOTAzYjUwMTMyYTUwMjVmODZiMGNjNTIyZTljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogUm9iZXJ0IFlhbmcgPGxpZXpoaS55YW5nQHdpbmRyaXZlci5jb20+CiBEYXRlOiBTYXQsIDEzIFNlcCAyMDE0IDIwOjE5OjI4IC0wNzAwCiBTdWJqZWN0OiBbUEFUQ0hdIGF1dG9mcy5pbml0LmluOiByZW1vdmUgYmFzaGlzbQpAQCAtOSw5ICs5LDEwIEBACiAKIFNpZ25lZC1vZmYtYnk6IE1pa2UgTG9vaWptYW5zIDxtaWtlLmxvb2lqbWFuc0B0b3BpYy5ubD4KIFNpZ25lZC1vZmYtYnk6IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgorCiAtLS0KLSByZWRoYXQvYXV0b2ZzLmluaXQuaW4gfCAgIDEyICsrKysrKy0tLS0tLQotIHNhbXBsZXMvcmMuYXV0b2ZzLmluICB8ICAgMTAgKysrKystLS0tLQorIHJlZGhhdC9hdXRvZnMuaW5pdC5pbiB8IDEyICsrKysrKy0tLS0tLQorIHNhbXBsZXMvcmMuYXV0b2ZzLmluICB8IDEwICsrKysrLS0tLS0KICAyIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvcmVkaGF0L2F1dG9mcy5pbml0LmluIGIvcmVkaGF0L2F1dG9mcy5pbml0LmluCkBAIC0xMTUsNiArMTE2LDMgQEAKICAJcGlkPWBwaWRvZiAkcHJvZ2AKICAJaWYgWyAteiAkcGlkIF07IHRoZW4KICAJCWVjaG8gJCIkcHJvZyBub3QgcnVubmluZyIKLS0tIAotMS43LjkuNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy91c2luZy1wa2ctY29uZmlnLXRvLWRldGVjdC1saWJ4bWwtMi4wLWFuZC1rcmI1LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2F1dG9mcy9hdXRvZnMvdXNpbmctcGtnLWNvbmZpZy10by1kZXRlY3QtbGlieG1sLTIuMC1hbmQta3JiNS5wYXRjaAppbmRleCA5M2I3NmJkLi4zZDBjNmJkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvYXV0b2ZzL2F1dG9mcy91c2luZy1wa2ctY29uZmlnLXRvLWRldGVjdC1saWJ4bWwtMi4wLWFuZC1rcmI1LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9hdXRvZnMvYXV0b2ZzL3VzaW5nLXBrZy1jb25maWctdG8tZGV0ZWN0LWxpYnhtbC0yLjAtYW5kLWtyYjUucGF0Y2gKQEAgLTEsMTQgKzEsMTggQEAKLXVzaW5nIHBrZy1jb25maWcgdG8gZGV0ZWN0IGxpYnhtbC0yLjAgYW5kIGtyYjUKK0Zyb20gZGFiY2JkYWUzODAzOGE4ZTRhZDJjNDI4NjExMjM4MWM0MDdjNWNlNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFR1ZSwgMTkgQXVnIDIwMTQgMTE6MzE6MzUgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gdXNpbmcgcGtnLWNvbmZpZyB0byBkZXRlY3QgbGlieG1sLTIuMCBhbmQga3JiNQogCiBVcHN0cmVhbS1zdGF0dXM6IFBlbmRpbmcKIAogU2lnbmVkLW9mZi1ieTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorCiAtLS0KLSBjb25maWd1cmUuaW4gfCAgIDE2ICsrKysrKysrKysrKysrLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisgY29uZmlndXJlLmluIHwgMTYgKysrKysrKysrKysrKystLQorIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCi1pbmRleCAzOTJkMTIyLi5hMzAyOGFhIDEwMDY0NAoraW5kZXggYjIyNjIzNi4uOWNmNzNiOCAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5pbgogKysrIGIvY29uZmlndXJlLmluCiBAQCAtMTYyLDggKzE2MiwyMCBAQCBpZiB0ZXN0IHgkZW5hYmxlX3Nsb3BweV9tb3VudCA9IHh5ZXM7IHRoZW4KQEAgLTM0LDYgKzM4LDMgQEAKICAKICBBQ19TRUFSQ0hfTElCUyhbdmVyc2lvbnNvcnRdLFtdKQogIGlmIHRlc3QgIiRhY19jdl9zZWFyY2hfdmVyc2lvbnNvcnQiID0gIm5vIjsgdGhlbgotLS0gCi0xLjcuMTAuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvY3lydXMtc2FzbC9jeXJ1cy1zYXNsXzIuMS4yNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9jeXJ1cy1zYXNsL2N5cnVzLXNhc2xfMi4xLjI2LmJiCmluZGV4IGVhYTQ1M2QuLjZkYmZmODcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9jeXJ1cy1zYXNsL2N5cnVzLXNhc2xfMi4xLjI2LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9jeXJ1cy1zYXNsL2N5cnVzLXNhc2xfMi4xLjI2LmJiCkBAIC0xLDcgKzEsNyBAQAogU1VNTUFSWSA9ICJHZW5lcmljIGNsaWVudC9zZXJ2ZXIgbGlicmFyeSBmb3IgU0FTTCBhdXRoZW50aWNhdGlvbiIKIFNFQ1RJT04gPSAibGlicyIKIEhPTUVQQUdFID0gImh0dHA6Ly9hc2cud2ViLmNtdS5lZHUvc2FzbC8iCi1ERVBFTkRTID0gIm9wZW5zc2wgdmlydHVhbC9kYiIKK0RFUEVORFMgPSAib3BlbnNzbCBkYiIKIExJQ0VOU0UgPSAiQlNEIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9M2Y1NWUwOTc0ZTNkNmRiMDBjYTZmNTdmMmQyMDYzOTYiCiAKQEAgLTc1LDggKzc1LDggQEAKIFVTRVJBRERfUEFDS0FHRVMgPSAiJHtQTn0tYmluIgogVVNFUkFERF9QQVJBTV8ke1BOfS1iaW4gPSAiLS1zeXN0ZW0gLS1ob21lPS92YXIvc3Bvb2wvbWFpbCAtZyBtYWlsIGN5cnVzIgogCi1TWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59IgotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gInNhc2xhdXRoZC5zZXJ2aWNlIgorU1lTVEVNRF9QQUNLQUdFUyA9ICIke1BOfS1iaW4iCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0tYmluID0gInNhc2xhdXRoZC5zZXJ2aWNlIgogU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJkaXNhYmxlIgogCiBTUkNfVVJJW21kNXN1bV0gPSAiYTdmNGU1ZTU1OWEwZTM3YjNmZmM0MzhjOTQ1NmU0MjUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzLzAwMDEtbGlib3BlbmlzY3NpdXNyLUluY2x1ZGUtbGltaXQuaC1mb3ItUEFUSF9NQVgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzLzAwMDEtbGlib3BlbmlzY3NpdXNyLUluY2x1ZGUtbGltaXQuaC1mb3ItUEFUSF9NQVgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVlMWJlYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvMDAwMS1saWJvcGVuaXNjc2l1c3ItSW5jbHVkZS1saW1pdC5oLWZvci1QQVRIX01BWC5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIGNmZWU1OGQ1ODYzYTUzNWI2MWFhNTQ2OTBhZTIwNWI4NzZmNTc5NDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogRnJpLCAyIEZlYiAyMDE4IDIyOjUzOjI5IC0wODAwCitTdWJqZWN0OiBbUEFUQ0ggMS8yXSBsaWJvcGVuaXNjc2l1c3I6IEluY2x1ZGUgbGltaXQuaCBmb3IgUEFUSF9NQVgKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorIGxpYm9wZW5pc2NzaXVzci9pZmFjZS5jIHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS9saWJvcGVuaXNjc2l1c3IvaWZhY2UuYyBiL2xpYm9wZW5pc2NzaXVzci9pZmFjZS5jCitpbmRleCA3OTg5OGRmLi5hNDhlZjM2IDEwMDY0NAorLS0tIGEvbGlib3BlbmlzY3NpdXNyL2lmYWNlLmMKKysrKyBiL2xpYm9wZW5pc2NzaXVzci9pZmFjZS5jCitAQCAtMzAsNiArMzAsNyBAQAorICNpbmNsdWRlIDxuZXRkYi5oPgorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8aW50dHlwZXMuaD4KKysjaW5jbHVkZSA8bGltaXRzLmg+CisgCisgI2luY2x1ZGUgImxpYm9wZW5pc2NzaXVzci9saWJvcGVuaXNjc2l1c3IuaCIKKyAjaW5jbHVkZSAibWlzYy5oIgorLS0gCisyLjE2LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9maWxlcy8wMDAxLXFlZGkuYy1SZW1vdmVkLXVudXNlZC1saW51eC1ldGh0b29sLmgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzLzAwMDEtcWVkaS5jLVJlbW92ZWQtdW51c2VkLWxpbnV4LWV0aHRvb2wuaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzRhYTUwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9maWxlcy8wMDAxLXFlZGkuYy1SZW1vdmVkLXVudXNlZC1saW51eC1ldGh0b29sLmgucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJvbSAxOTc3MTNhZDdlM2U5NDQxMDJiYmQ3OTJlMWFiOWVjNGE2NzEwMGMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMiBGZWIgMjAxOCAyMzoyNToyMSAtMDgwMAorU3ViamVjdDogW1BBVENIIDEvNF0gcWVkaS5jOiBSZW1vdmVkIHVudXNlZCBsaW51eC9ldGh0b29sLmgKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorIGlzY3NpdWlvL3NyYy91bml4L2xpYnMvcWVkaS5jIHwgMSAtCisgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2lzY3NpdWlvL3NyYy91bml4L2xpYnMvcWVkaS5jIGIvaXNjc2l1aW8vc3JjL3VuaXgvbGlicy9xZWRpLmMKK2luZGV4IGI4MWZlY2QuLjI0Y2I4OWEgMTAwNjQ0CistLS0gYS9pc2NzaXVpby9zcmMvdW5peC9saWJzL3FlZGkuYworKysrIGIvaXNjc2l1aW8vc3JjL3VuaXgvbGlicy9xZWRpLmMKK0BAIC00OSw3ICs0OSw2IEBACisgI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorICNpbmNsdWRlIDxsaW51eC9zb2NraW9zLmg+CistI2luY2x1ZGUgPGxpbnV4L2V0aHRvb2wuaD4KKyAjaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgorICNpbmNsdWRlIDxzeXMvbW1hbi5oPgorICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKy0tIAorMi4xNi4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvMDAwMi1pZGJtLmMtSW5jbHVkZS1mY25sLmgtZm9yLU9fUkRXUi1hbmQtT19DUkVBVC1kZWZpbml0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9maWxlcy8wMDAyLWlkYm0uYy1JbmNsdWRlLWZjbmwuaC1mb3ItT19SRFdSLWFuZC1PX0NSRUFULWRlZmluaXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVjZWRlNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvMDAwMi1pZGJtLmMtSW5jbHVkZS1mY25sLmgtZm9yLU9fUkRXUi1hbmQtT19DUkVBVC1kZWZpbml0LnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK0Zyb20gMmIzOWY4NWRjZjAyMDY0NzU0NDAwMmNiMGIwZTczNDc0ODM5MWRmYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBGcmksIDIgRmViIDIwMTggMjM6Mjc6MjUgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSCAyLzRdIGlkYm0uYzogSW5jbHVkZSBmY25sLmggZm9yIE9fUkRXUiBhbmQgT19DUkVBVCBkZWZpbml0aW9ucworCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCisgdXNyL2lkYm0uYyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvdXNyL2lkYm0uYyBiL3Vzci9pZGJtLmMKK2luZGV4IDU1MzIyMDIuLjBhNTFiODUgMTAwNjQ0CistLS0gYS91c3IvaWRibS5jCisrKysgYi91c3IvaWRibS5jCitAQCAtMjcsNiArMjcsNyBAQAorICNpbmNsdWRlIDxlcnJuby5oPgorICNpbmNsdWRlIDxkaXJlbnQuaD4KKyAjaW5jbHVkZSA8bGltaXRzLmg+CisrI2luY2x1ZGUgPGZjbnRsLmg+CisgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisgI2luY2x1ZGUgPHN5cy9maWxlLmg+CisgCistLSAKKzIuMTYuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzLzAwMDItbGlib3BlbmlzY3NpdXNyLUFkZC1DRkxBR1MtdG8tbGlua2VyLWNtZGxpbmUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzLzAwMDItbGlib3BlbmlzY3NpdXNyLUFkZC1DRkxBR1MtdG8tbGlua2VyLWNtZGxpbmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM2ZWQ2MAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvMDAwMi1saWJvcGVuaXNjc2l1c3ItQWRkLUNGTEFHUy10by1saW5rZXItY21kbGluZS5wYXRjaApAQCAtMCwwICsxLDI5IEBACitGcm9tIDI5NTcxZjcxNjkyZTI4Y2U5YTE3ZDE0NTAwOTdhOTg0OTJmM2I0NjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogRnJpLCAyIEZlYiAyMDE4IDIyOjU0OjA0IC0wODAwCitTdWJqZWN0OiBbUEFUQ0ggMi8yXSBsaWJvcGVuaXNjc2l1c3I6IEFkZCBDRkxBR1MgdG8gbGlua2VyIGNtZGxpbmUKKworVGhpcyB3aWxsIGVuc3VyZSB0aGF0IC1mUElDIGlzIHBhc3NlZCB0byBsaW5rZXIgYXMKK3dlbGwKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorIGxpYm9wZW5pc2NzaXVzci9NYWtlZmlsZSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2xpYm9wZW5pc2NzaXVzci9NYWtlZmlsZSBiL2xpYm9wZW5pc2NzaXVzci9NYWtlZmlsZQoraW5kZXggOGI5YjUyMy4uNGYxZDBkNiAxMDA2NDQKKy0tLSBhL2xpYm9wZW5pc2NzaXVzci9NYWtlZmlsZQorKysrIGIvbGlib3BlbmlzY3NpdXNyL01ha2VmaWxlCitAQCAtNDksNyArNDksNyBAQCBMSUJBREQgPQorIGFsbDogJChMSUJTKSAkKExJQlNfTUFKT1IpICQoVEVTVFMpIGRvYworIAorICQoTElCUyk6ICQoT0JKUykKKy0JJChDQykgJChMREZMQUdTKSAtc2hhcmVkIC1XbCwtc29uYW1lPSRAIC1vICRAICQoT0JKUykgJChMSUJBREQpCisrCSQoQ0MpICQoQ0ZMQUdTKSAkKExERkxBR1MpIC1zaGFyZWQgLVdsLC1zb25hbWU9JEAgLW8gJEAgJChPQkpTKSAkKExJQkFERCkKKyAJbG4gLXNmICRAICQoREVWTElCKQorIAorICQoTElCU19NQUpPUik6ICQoTElCUykKKy0tIAorMi4xNi4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvMDAwMy1ibngyeC5jLVJlb3JkZXItdGhlLWluY2x1ZGVzLXRvLWF2b2lkLWR1cGxpY2F0ZS1kZWZpLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9maWxlcy8wMDAzLWJueDJ4LmMtUmVvcmRlci10aGUtaW5jbHVkZXMtdG8tYXZvaWQtZHVwbGljYXRlLWRlZmkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNlMTU1ZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvMDAwMy1ibngyeC5jLVJlb3JkZXItdGhlLWluY2x1ZGVzLXRvLWF2b2lkLWR1cGxpY2F0ZS1kZWZpLnBhdGNoCkBAIC0wLDAgKzEsNDkgQEAKK0Zyb20gOWI3YTMyOTAzYjU2Y2U0ZDQxZjI2NGEzNDVjYTU5YTBiMDBkNTNiMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBGcmksIDIgRmViIDIwMTggMjM6Mjg6MzMgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSCAzLzRdIGJueDJ4LmM6IFJlb3JkZXIgdGhlIGluY2x1ZGVzIHRvIGF2b2lkIGR1cGxpY2F0ZSBkZWZpbmVzCisgd2l0aCBtdXNsCisKK2luY2x1ZGluZyBuaWMuaCBiZWZvcmUgbGludXgvZXRodG9vbC5oIGF2b2lkcyByZWRlZmluaXRpb25zIG9mCitldGggc3RydWN0cworCisvbW50L2Evb2UvYnVpbGQvdG1wL3dvcmsvY29ydGV4YTd0MmhmLW5lb24tdmZwdjQtYmVjLWxpbnV4LW11c2xlYWJpL2lzY3NpLWluaXRpYXRvci11dGlscy8yLjAuODc2LXIwL3JlY2lwZS1zeXNyb290LwordXNyL2luY2x1ZGUvbmV0aW5ldC9pZl9ldGhlci5oOjEwNDo4OiBlcnJvcjogcmVkZWZpbml0aW9uIG9mICdzdHJ1Y3QgZXRoaGRyJworIHN0cnVjdCBldGhoZHIgeworICAgICAgICBefn5+fn4KK0luIGZpbGUgaW5jbHVkZWQgZnJvbSAvbW50L2Evb2UvYnVpbGQvdG1wL3dvcmsvY29ydGV4YTd0MmhmLW5lb24tdmZwdjQtYmVjLWxpbnV4LW11c2xlYWJpL2lzY3NpLWluaXRpYXRvci11dGlscy8yLjAuCis4NzYtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvbGludXgvZXRodG9vbC5oOjE5OjAsCisgICAgICAgICAgICAgICAgIGZyb20gcWVkaS5jOjUyOgorL21udC9hL29lL2J1aWxkL3RtcC93b3JrL2NvcnRleGE3dDJoZi1uZW9uLXZmcHY0LWJlYy1saW51eC1tdXNsZWFiaS9pc2NzaS1pbml0aWF0b3ItdXRpbHMvMi4wLjg3Ni1yMC9yZWNpcGUtc3lzcm9vdC8KK3Vzci9pbmNsdWRlL2xpbnV4L2lmX2V0aGVyLmg6MTU0Ojg6IG5vdGU6IG9yaWdpbmFsbHkgZGVmaW5lZCBoZXJlCisgc3RydWN0IGV0aGhkciB7CisgICAgICAgIF5+fn5+fgorCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCisgaXNjc2l1aW8vc3JjL3VuaXgvbGlicy9ibngyeC5jIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvaXNjc2l1aW8vc3JjL3VuaXgvbGlicy9ibngyeC5jIGIvaXNjc2l1aW8vc3JjL3VuaXgvbGlicy9ibngyeC5jCitpbmRleCAzZGY2ZDVmLi42MjUzMGQxIDEwMDY0NAorLS0tIGEvaXNjc2l1aW8vc3JjL3VuaXgvbGlicy9ibngyeC5jCisrKysgYi9pc2NzaXVpby9zcmMvdW5peC9saWJzL2JueDJ4LmMKK0BAIC0zNiw2ICszNiw3IEBACisgICogYm54MnguYyAtIGJueDJ4IHVzZXIgc3BhY2UgZHJpdmVyCisgICoKKyAgKi8KKysjaW5jbHVkZSAibmljLmgiCisgI2luY2x1ZGUgPGVycm5vLmg+CisgI2luY2x1ZGUgPHN0ZGlvLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgorQEAgLTU4LDcgKzU5LDYgQEAKKyAjaW5jbHVkZSAiYm54MnguaCIKKyAjaW5jbHVkZSAiY25pYy5oIgorICNpbmNsdWRlICJsb2dnZXIuaCIKKy0jaW5jbHVkZSAibmljLmgiCisgI2luY2x1ZGUgIm5pY19pZC5oIgorICNpbmNsdWRlICJuaWNfdXRpbHMuaCIKKyAjaW5jbHVkZSAib3B0aW9ucy5oIgorLS0gCisyLjE2LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9maWxlcy8wMDA0LWZ3cGFyYW1fcHBjLmMtRG8tbm90LXVzZS1fX2NvbXBhcl9mbl90LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9maWxlcy8wMDA0LWZ3cGFyYW1fcHBjLmMtRG8tbm90LXVzZS1fX2NvbXBhcl9mbl90LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3YmRjOGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzLzAwMDQtZndwYXJhbV9wcGMuYy1Eby1ub3QtdXNlLV9fY29tcGFyX2ZuX3QucGF0Y2gKQEAgLTAsMCArMSwyOCBAQAorRnJvbSA2ZjljMWEwNGQyNTAzODhkMTU3NGNmYWYyMGExZmY2NmE2NGJlYjQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMiBGZWIgMjAxOCAyMzo0MjoxMiAtMDgwMAorU3ViamVjdDogW1BBVENIIDQvNF0gZndwYXJhbV9wcGMuYzogRG8gbm90IHVzZSBfX2NvbXBhcl9mbl90CisKK19fY29tcGFyX2ZuX3QgaXMgbm90IGRlZmluZWQgaW4gbXVzbAorCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCisgdXRpbHMvZndwYXJhbV9pYmZ0L2Z3cGFyYW1fcHBjLmMgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS91dGlscy9md3BhcmFtX2liZnQvZndwYXJhbV9wcGMuYyBiL3V0aWxzL2Z3cGFyYW1faWJmdC9md3BhcmFtX3BwYy5jCitpbmRleCBjMjk4YjhjLi4zOTFmYWEyIDEwMDY0NAorLS0tIGEvdXRpbHMvZndwYXJhbV9pYmZ0L2Z3cGFyYW1fcHBjLmMKKysrKyBiL3V0aWxzL2Z3cGFyYW1faWJmdC9md3BhcmFtX3BwYy5jCitAQCAtMzU2LDcgKzM1Niw3IEBAIHN0YXRpYyBpbnQgbG9vcF9kZXZzKGNvbnN0IGNoYXIgKmRldnRyZWUpCisgCSAqIFNvcnQgdGhlIG5pY3MgaW50byAibmF0dXJhbCIgb3JkZXIuCVRoZSBwcm9jIGZzCisgCSAqIGRldmljZS10cmVlIGhhcyB0aGVtIGluIHNvbWV3aGF0IHJhbmRvbSwgb3IgcmV2ZXJzZWQgb3JkZXIuCisgCSAqLworLQlxc29ydChuaWNsaXN0LCBuaWNfY291bnQsIHNpemVvZihjaGFyICopLCAoX19jb21wYXJfZm5fdCluaWNfY21wKTsKKysJcXNvcnQobmljbGlzdCwgbmljX2NvdW50LCBzaXplb2YoY2hhciAqKSwgbmljX2NtcCk7CisgCisgCXNucHJpbnRmKHByZWZpeCwgc2l6ZW9mKHByZWZpeCksICIlcy8lcyIsIGRldnRyZWUsICJhbGlhc2VzIik7CisgCWRldl9jb3VudCA9IDA7CistLSAKKzIuMTYuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzL2lzY3NpLWluaXRpYXRvci11dGlscy1Eby1ub3QtY2xlYW4ta2VybmVsLXNvdXJjZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzLURvLW5vdC1jbGVhbi1rZXJuZWwtc291cmNlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzQ2NjExLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzLURvLW5vdC1jbGVhbi1rZXJuZWwtc291cmNlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotRnJvbSA0ZWJhYjhhZGQ0YTU0OWMxNmFiOGIxMjQxMzc1NDZjMGE3YjQ2YTliIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSm9lIE1hY0RvbmFsZCA8am9lX21hY2RvbmFsZEBtZW50b3IuY29tPgotRGF0ZTogVHVlLCAxNSBOb3YgMjAxNiAxMToxMTozMCAtMDUwMAotU3ViamVjdDogW1BBVENIXSBEbyBub3QgY2xlYW4ga2VybmVsIHNvdXJjZQotCi1UaGUgZGVmYXVsdCBiZWhhdmlvdXIgc2hvdWxkIG5vdCBiZSB0byBhdHRlbXB0IHRvIGNsZWFuIHRoZSBrZXJuZWwgc291cmNlCi10cmVlIHdoZW4gYnVpbGRpbmcgdXNlcnNwYWNlLiAgV2hlbiBub3QgY3Jvc3MtY29tcGlsaW5nLCBob3dldmVyLCB0aGlzIGFjdGlvbiBpcwotaGFybWxlc3MsIGJ1dCB3aGVuIGF0dGVtcHRpbmcgdG8gYnVpbGQgd2l0aGluIHRoZSBzeXNyb290IGFuZCBzaW5jZSB0aGlzIHBhY2thZ2UKLWlzIHB1cmVseSB1c2Vyc3BhY2UsIHRoZSBjbGVhbiBzdGVwIHdpbGwgZmFpbC4KLQotUmVtb3ZpbmcgdGhlIGNsZWFuIHN0ZXAgZWxpbWluYXRlcyBhbiB1bm5lY2Vzc2FyeSBkZXBlbmRlbmN5IG9uIHRoZSBrZXJuZWwgYnVpbGQKLWluZnJhc3RydWN0dXJlLgotCi1VcHN0cmVhbS1zdGF0dXM6IEluYXBwcm9wcmlhdGUgKGVtYmVkZGVkIHNwZWNpZmljKQotCi1TaWduZWQtb2ZmLWJ5OiBKb2UgTWFjRG9uYWxkIDxqb2VfbWFjZG9uYWxkQG1lbnRvci5jb20+Ci0tLS0KLSBNYWtlZmlsZSB8IDMgKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQotaW5kZXggYzhjZDAwZS4uOTU3NmJiYSAxMDA2NDQKLS0tLSBhL01ha2VmaWxlCi0rKysgYi9NYWtlZmlsZQotQEAgLTM3LDcgKzM3LDcgQEAgZW5kaWYKLSAKLSBhbGw6IHVzZXIKLSAKLS11c2VyOiBpc2NzaXVpby9NYWtlZmlsZQotK3VzZXI6Ci0gCSQoTUFLRSkgLUMgdXRpbHMvc3lzZGVwcwotIAkkKE1BS0UpIC1DIHV0aWxzL2Z3cGFyYW1faWJmdAotIAkkKE1BS0UpIC1DIHVzcgotQEAgLTc1LDcgKzc1LDYgQEAgY2xlYW46Ci0gCSQoTUFLRSkgLUMgdXRpbHMvZndwYXJhbV9pYmZ0IGNsZWFuCi0gCSQoTUFLRSkgLUMgdXRpbHMgY2xlYW4KLSAJJChNQUtFKSAtQyB1c3IgY2xlYW4KLS0JJChNQUtFKSAtQyBrZXJuZWwgY2xlYW4KLSAJWyAhIC1mIGlzY3NpdWlvL01ha2VmaWxlIF0gfHwgJChNQUtFKSAtQyBpc2NzaXVpbyBjbGVhbgotIAlbICEgLWYgaXNjc2l1aW8vTWFrZWZpbGUgXSB8fCAkKE1BS0UpIC1DIGlzY3NpdWlvIGRpc3RjbGVhbgotIAotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2ZpbGVzL2lzY3NpLWluaXRpYXRvci11dGlscy1md19jb250ZXh0LWFkZC1pbmNsdWRlLWZvci1OSV9NQVhIT1NULWRlZmluaXRvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzLWZ3X2NvbnRleHQtYWRkLWluY2x1ZGUtZm9yLU5JX01BWEhPU1QtZGVmaW5pdG9uLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzN2Q2OTVmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvZmlsZXMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzLWZ3X2NvbnRleHQtYWRkLWluY2x1ZGUtZm9yLU5JX01BWEhPU1QtZGVmaW5pdG9uLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotRnJvbSA3OWJlYTU4YTU1NDIwNWRkMTg1NTA5ZmJjNGU3NmI1ZmM0MGY5MDM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSm9lIE1hY0RvbmFsZCA8am9lX21hY2RvbmFsZEBtZW50b3IuY29tPgotRGF0ZTogVHVlLCAxNSBOb3YgMjAxNiAxMjozNjo0NSAtMDUwMAotU3ViamVjdDogW1BBVENIXSBmd19jb250ZXh0OiBhZGQgaW5jbHVkZSBmb3IgTklfTUFYSE9TVCBkZWZpbml0b24KLQotVGhpcyBhcHBlYXJzIHRvIGJ1aWxkIHN1Y2Nlc3NmdWxseSB3aXRoIGdjYyA0LnggYnV0IGZhaWxzIG9uIGdjYyA1KywgdGhvdWdoIGl0J3MKLW5vdCBpbW1lZGlhdGVseSBjbGVhciB3aHkgTklfTUFYSE9TVCBpc24ndCBiZWluZyBkZWZpbmVkIGZyb20gdGhlIGluY2x1ZGUKLWNoYWluLiAgQ3VycmVudGx5IGVuZ2FnaW5nIHdpdGggdGhlIHVwc3RyZWFtIGRldnMgdG8gZGV0ZXJtaW5lIHRoZSBiZXN0IGNvdXJzZQotb2YgYWN0aW9uLCBidXQgdGhpcyBpcyBhbiBhZGVxdWF0ZSB3b3JrYXJvdW5kLgotCi1VcHN0cmVhbS1zdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogSm9lIE1hY0RvbmFsZCA8am9lX21hY2RvbmFsZEBtZW50b3IuY29tPgotLS0tCi0gaW5jbHVkZS9md19jb250ZXh0LmggfCA0ICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvZndfY29udGV4dC5oIGIvaW5jbHVkZS9md19jb250ZXh0LmgKLWluZGV4IDQ0MDUzZDguLjBiMDVjZWEgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL2Z3X2NvbnRleHQuaAotKysrIGIvaW5jbHVkZS9md19jb250ZXh0LmgKLUBAIC0yMSw2ICsyMSwxMCBAQAotICNpZm5kZWYgRldQQVJBTV9DT05URVhUX0hfCi0gI2RlZmluZSBGV1BBUkFNX0NPTlRFWFRfSF8KLSAKLSsjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotKyNpZm5kZWYgTklfTUFYSE9TVAotKyNkZWZpbmUgTklfTUFYSE9TVCAxMDI1Ci0rI2VuZGlmCi0gI2luY2x1ZGUgPG5ldGRiLmg+Ci0gI2luY2x1ZGUgPG5ldC9pZi5oPgotIAotLS0gCi0yLjEuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2lzY3NpLWluaXRpYXRvci11dGlsc18yLjAuODc0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2lzY3NpLWluaXRpYXRvci11dGlscy9pc2NzaS1pbml0aWF0b3ItdXRpbHNfMi4wLjg3NC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTZhYzE5OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2lzY3NpLWluaXRpYXRvci11dGlsc18yLjAuODc0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLVNVTU1BUlkgPSAiaVNDU0kgZGFlbW9uIGFuZCB1dGlsaXR5IHByb2dyYW1zIgotREVTQ1JJUFRJT04gPSAiT3Blbi1pU0NTSSBwcm9qZWN0IGlzIGEgaGlnaCBwZXJmb3JtYW5jZSwgdHJhbnNwb3J0IFwKLWluZGVwZW5kZW50LCBtdWx0aS1wbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbiBvZiBSRkMzNzIwLiBUaGUgaXNjc2kgcGFja2FnZSBcCi1wcm92aWRlcyB0aGUgc2VydmVyIGRhZW1vbiBmb3IgdGhlIGlTQ1NJIHByb3RvY29sLCBhcyB3ZWxsIGFzIHRoZSB1dGlsaXR5IFwKLXByb2dyYW1zIHVzZWQgdG8gbWFuYWdlIGl0LiBpU0NTSSBpcyBhIHByb3RvY29sIGZvciBkaXN0cmlidXRlZCBcCi1kaXNrIGFjY2VzcyB1c2luZyBTQ1NJIGNvbW1hbmRzIHNlbnQgb3ZlciBJbnRlcm5ldCBQcm90b2NvbCBuZXR3b3Jrcy4iCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3Lm9wZW4taXNjc2kuY29tLyIKLUxJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIuMSIKLVNFQ1RJT04gPSAibmV0IgotREVQRU5EUyA9ICJvcGVuc3NsIGZsZXgtbmF0aXZlIGJpc29uLW5hdGl2ZSBvcGVuLWlzbnMgdXRpbC1saW51eCIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MzkzYTVjYTQ0NWY2OTY1ODczZWNhMDI1OWExN2Y4MzMiCi0KLVNSQ1JFViA/PSAiOGRiOTcxN2U3M2QzMmQyYzUxMzFkYTRmOWFkODZkZmQ5MDY1Zjc0YiIKLQotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL29wZW4taXNjc2kvb3Blbi1pc2NzaSBcCi0gICAgZmlsZTovL2lzY3NpLWluaXRpYXRvci11dGlscy1Eby1ub3QtY2xlYW4ta2VybmVsLXNvdXJjZS5wYXRjaCBcCi0gICAgZmlsZTovL2lzY3NpLWluaXRpYXRvci11dGlscy1md19jb250ZXh0LWFkZC1pbmNsdWRlLWZvci1OSV9NQVhIT1NULWRlZmluaXRvbi5wYXRjaCBcCi0gICAgZmlsZTovL2luaXRkLmRlYmlhbiBcCi0gICAgZmlsZTovLzk5X2lzY3NpLWluaXRpYXRvci11dGlscyBcCi0gICAgZmlsZTovL2lzY3NpLWluaXRpYXRvciBcCi0gICAgZmlsZTovL2lzY3NpLWluaXRpYXRvci5zZXJ2aWNlIFwKLSAgICBmaWxlOi8vaXNjc2ktaW5pdGlhdG9yLXRhcmdldHMuc2VydmljZSBcCi0gICAgZmlsZTovL3NldF9pbml0aWF0b3JuYW1lIFwKLSIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLUIgPSAiJHtXT1JLRElSfS9idWlsZCIKLQotaW5oZXJpdCB1cGRhdGUtcmMuZCBzeXN0ZW1kIGF1dG90b29scyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKLSMgb3Blbi1pc25zIGRlcGVuZHMgb24gc3lzdGVtZAotUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gInN5c3RlbWQiCi0KLUVYVFJBX09FQ09ORiA9ICIgXAotICAgIC0tdGFyZ2V0PSR7VEFSR0VUX1NZU30gXAotICAgIC0taG9zdD0ke0JVSUxEX1NZU30gXAotICAgIC0tcHJlZml4PSR7cHJlZml4fSBcCi0gICAgLS1saWJkaXI9JHtsaWJkaXJ9IFwKLSIKLQotRVhUUkFfT0VNQUtFID0gJyBcCi0gICAgQ0M9IiR7Q0N9IiBcCi0gICAgQVI9IiR7QVJ9IiBcCi0gICAgUkFOTElCPSIke1JBTkxJQn0iIFwKLSAgICBDRkxBR1M9IiR7Q0ZMQUdTfSAke0NQUEZMQUdTfSAtRF9HTlVfU09VUkNFIC1JLiAtSS4uL2luY2x1ZGUgLUkuLi8uLi9pbmNsdWRlIC1JLi4vdXNyIC1JLi4vLi4vdXNyIiBcCi0gICAgTERGTEFHUz0iJHtMREZMQUdTfSIgXAotICAgIExEPSIke0xEfSIgXAotICAgIE9TPSIke1RBUkdFVF9TWVN9IiBcCi0gICAgVEFSR0VUPSIke1RBUkdFVF9PU30iIFwKLSAgICBCQVNFPSIke3ByZWZpeH0iIFwKLSAgICBNQU5ESVI9IiR7bWFuZGlyfSIgXAotJwotCi1UQVJHRVRfQ0NfQVJDSCArPSAiJHtMREZMQUdTfSIKLQotZG9fY29uZmlndXJlICgpIHsKLSAgICBjZCAke1N9L2lzY3NpdWlvIDsgYXV0b3JlY29uZiAtLWluc3RhbGw7IC4vY29uZmlndXJlICR7RVhUUkFfT0VDT05GfQotfQotCi1kb19jb21waWxlICgpIHsKLSAgICAjIE1ha2Ugc3VyZSB3ZSBETyBOT1QgcmVnZW5lcmF0ZSBwcm9tX2xleC5jLgotICAgIG12ICR7U30vdXRpbHMvZndwYXJhbV9pYmZ0L3Byb21fbGV4LmwgJHtTfS91dGlscy9md3BhcmFtX2liZnQvcHJvbV9sZXgubC51bnVzZWQKLSAgICBvZV9ydW5tYWtlIC1DICR7U30gJHtFWFRSQV9PRU1BS0V9IHVzZXIKLX0KLQotZG9faW5zdGFsbCAoKSB7Ci0gICAgI2luc3RhbGwgbmVjZXNzYXJ5IGRpcmVjdG9yaWVzCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzYmluZGlyfSBcCi0gICAgICAgICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZCBcCi0gICAgICAgICR7RH0ke3N5c2NvbmZkaXJ9L2lzY3NpIFwKLSAgICAgICAgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbGliL2lzY3NpL25vZGVzIFwKLSAgICAgICAgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbGliL2lzY3NpL3NlbmRfdGFyZ2V0cyBcCi0gICAgICAgICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9pc2NzaS9zdGF0aWMgXAotICAgICAgICAke0R9JHtsb2NhbHN0YXRlZGlyfS9saWIvaXNjc2kvaXNucyBcCi0gICAgICAgICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9pc2NzaS9zbHAgXAotICAgICAgICAke0R9JHtsb2NhbHN0YXRlZGlyfS9saWIvaXNjc2kvaWZhY2VzIFwKLSAgICAgICAgJHtEfS8ke21hbmRpcn0vbWFuOAotCi0gICAgaW5zdGFsbCAtcCAtbSA3NTUgJHtTfS91c3IvaXNjc2lkICR7U30vdXNyL2lzY3NpYWRtIFwKLSAgICAgICAgJHtTfS91dGlscy9pc2NzaS1pbmFtZSBcCi0gICAgICAgICR7U30vdXNyL2lzY3Npc3RhcnQgJHtEfS8ke3NiaW5kaXJ9Ci0KLSAgICBpbnN0YWxsIC1wIC1tIDY0NCAke1N9L2RvYy9pc2NzaWFkbS44ICR7U30vZG9jL2lzY3NpZC44ICR7RH0vJHttYW5kaXJ9L21hbjgKLSAgICBpbnN0YWxsIC1wIC1tIDY0NCAke1N9L2V0Yy9pc2NzaWQuY29uZiAke0R9JHtzeXNjb25mZGlyfS9pc2NzaQotICAgIGluc3RhbGwgLXAgLW0gNzU1ICR7V09SS0RJUn0vaW5pdGQuZGViaWFuICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9pc2NzaWQKLQotICAgIHNlZCAtaSAtZSAiczo9IC9zYmluL2lzY3NpZDo9ICR7c2JpbmRpcn0vaXNjc2lkOiIgJHtEfSR7c3lzY29uZmRpcn0vaXNjc2kvaXNjc2lkLmNvbmYKLQotICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAotICAgICAgICBlY2hvICJkIC9ydW4vJHtCUE59L2xvY2sgLSAtIC0gLSIgXAotICAgICAgICAgICAgICAgICAgICAgPiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kL2lzY3NpLmNvbmYKLSAgICAgICAgaW5zdGFsbCAtZCAke0R9L2V0Yy9kZWZhdWx0LwotICAgICAgICBpbnN0YWxsIC1wIC1tIDc1NSAke1dPUktESVJ9L2lzY3NpLWluaXRpYXRvciAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0LwotCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCi0gICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2lzY3NpLWluaXRpYXRvci5zZXJ2aWNlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICR7V09SS0RJUn0vaXNjc2ktaW5pdGlhdG9yLXRhcmdldHMuc2VydmljZSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtub25hcmNoX2xpYmRpcn0vaXNjc2kKLSAgICAgICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vc2V0X2luaXRpYXRvcm5hbWUgJHtEfSR7bm9uYXJjaF9saWJkaXJ9L2lzY3NpCi0gICAgZWxzZQotICAgICAgICBpbnN0YWxsIC1kICR7RH0vZXRjL2RlZmF1bHQvdm9sYXRpbGVzCi0gICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9Lzk5X2lzY3NpLWluaXRpYXRvci11dGlscyAke0R9L2V0Yy9kZWZhdWx0L3ZvbGF0aWxlcwotICAgIGZpCi19Ci0KLXBrZ19wb3N0aW5zdF8ke1BOfSgpIHsKLSAgICBpZiBbICJ4JEQiID0gIngiIF07IHRoZW4KLSAgICAgICAgaWYgWyAtZSAvZXRjL2luaXQuZC9wb3B1bGF0ZS12b2xhdGlsZS5zaCBdOyB0aGVuCi0gICAgICAgICAgICAvZXRjL2luaXQuZC9wb3B1bGF0ZS12b2xhdGlsZS5zaCB1cGRhdGUKLSAgICAgICAgZWxpZiBjb21tYW5kIC12IHN5c3RlbWQtdG1wZmlsZXMgPi9kZXYvbnVsbDsgdGhlbgotICAgICAgICAgICAgc3lzdGVtZC10bXBmaWxlcyAtLWNyZWF0ZSAke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvaXNjc2kuY29uZgotICAgICAgICBmaQotICAgIGZpCi19Ci0KLVNZU1RFTURfU0VSVklDRSA9ICIgaXNjc2ktaW5pdGlhdG9yLnNlcnZpY2UgaXNjc2ktaW5pdGlhdG9yLXRhcmdldHMuc2VydmljZSAiCi1JTklUU0NSSVBUX05BTUUgPSAiaXNjc2lkIgotSU5JVFNDUklQVF9QQVJBTVMgPSAic3RhcnQgMzAgMSAyIDMgNCA1IC4gc3RvcCA3MCAwIDEgMiAzIDQgNSA2IC4iCi0KLUZJTEVTXyR7UE59ICs9ICIke25vbmFyY2hfbGliZGlyfS9pc2NzaSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9pc2NzaS1pbml0aWF0b3ItdXRpbHMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzXzIuMC44NzYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2lzY3NpLWluaXRpYXRvci11dGlsc18yLjAuODc2LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyMzIyN2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvaXNjc2ktaW5pdGlhdG9yLXV0aWxzL2lzY3NpLWluaXRpYXRvci11dGlsc18yLjAuODc2LmJiCkBAIC0wLDAgKzEsMTE3IEBACitTVU1NQVJZID0gImlTQ1NJIGRhZW1vbiBhbmQgdXRpbGl0eSBwcm9ncmFtcyIKK0RFU0NSSVBUSU9OID0gIk9wZW4taVNDU0kgcHJvamVjdCBpcyBhIGhpZ2ggcGVyZm9ybWFuY2UsIHRyYW5zcG9ydCBcCitpbmRlcGVuZGVudCwgbXVsdGktcGxhdGZvcm0gaW1wbGVtZW50YXRpb24gb2YgUkZDMzcyMC4gVGhlIGlzY3NpIHBhY2thZ2UgXAorcHJvdmlkZXMgdGhlIHNlcnZlciBkYWVtb24gZm9yIHRoZSBpU0NTSSBwcm90b2NvbCwgYXMgd2VsbCBhcyB0aGUgdXRpbGl0eSBcCitwcm9ncmFtcyB1c2VkIHRvIG1hbmFnZSBpdC4gaVNDU0kgaXMgYSBwcm90b2NvbCBmb3IgZGlzdHJpYnV0ZWQgXAorZGlzayBhY2Nlc3MgdXNpbmcgU0NTSSBjb21tYW5kcyBzZW50IG92ZXIgSW50ZXJuZXQgUHJvdG9jb2wgbmV0d29ya3MuIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5vcGVuLWlzY3NpLmNvbS8iCitMSUNFTlNFID0gIkdQTHYyICYgTEdQTHYyLjEiCitTRUNUSU9OID0gIm5ldCIKK0RFUEVORFMgPSAib3BlbnNzbCBmbGV4LW5hdGl2ZSBiaXNvbi1uYXRpdmUgb3Blbi1pc25zIHV0aWwtbGludXgiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTM5M2E1Y2E0NDVmNjk2NTg3M2VjYTAyNTlhMTdmODMzIgorCitTUkNSRVYgPz0gIjI0NTgwYWRjNGMxNzRiYmM1ZGRlM2FlNzU5NGE0NmQ1NzYzNWU5MDYiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuLWlzY3NpL29wZW4taXNjc2kgXAorICAgIGZpbGU6Ly9pbml0ZC5kZWJpYW4gXAorICAgIGZpbGU6Ly85OV9pc2NzaS1pbml0aWF0b3ItdXRpbHMgXAorICAgIGZpbGU6Ly9pc2NzaS1pbml0aWF0b3IgXAorICAgIGZpbGU6Ly9pc2NzaS1pbml0aWF0b3Iuc2VydmljZSBcCisgICAgZmlsZTovL2lzY3NpLWluaXRpYXRvci10YXJnZXRzLnNlcnZpY2UgXAorICAgIGZpbGU6Ly9zZXRfaW5pdGlhdG9ybmFtZSBcCisgICAgZmlsZTovLzAwMDEtbGlib3BlbmlzY3NpdXNyLUluY2x1ZGUtbGltaXQuaC1mb3ItUEFUSF9NQVgucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAyLWxpYm9wZW5pc2NzaXVzci1BZGQtQ0ZMQUdTLXRvLWxpbmtlci1jbWRsaW5lLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMS1xZWRpLmMtUmVtb3ZlZC11bnVzZWQtbGludXgtZXRodG9vbC5oLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMi1pZGJtLmMtSW5jbHVkZS1mY25sLmgtZm9yLU9fUkRXUi1hbmQtT19DUkVBVC1kZWZpbml0LnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMy1ibngyeC5jLVJlb3JkZXItdGhlLWluY2x1ZGVzLXRvLWF2b2lkLWR1cGxpY2F0ZS1kZWZpLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwNC1md3BhcmFtX3BwYy5jLURvLW5vdC11c2UtX19jb21wYXJfZm5fdC5wYXRjaCBcCisiCitTID0gIiR7V09SS0RJUn0vZ2l0IgorQiA9ICIke1dPUktESVJ9L2J1aWxkIgorCitpbmhlcml0IHVwZGF0ZS1yYy5kIHN5c3RlbWQgYXV0b3Rvb2xzCisKK0VYVFJBX09FQ09ORiA9ICIgXAorICAgIC0tdGFyZ2V0PSR7VEFSR0VUX1NZU30gXAorICAgIC0taG9zdD0ke0JVSUxEX1NZU30gXAorIgorCitFWFRSQV9PRU1BS0UgPSAnIFwKKyAgICBPUz0iJHtUQVJHRVRfU1lTfSIgXAorICAgIFRBUkdFVD0iJHtUQVJHRVRfT1N9IiBcCisgICAgQkFTRT0iJHtwcmVmaXh9IiBcCisgICAgTUFORElSPSIke21hbmRpcn0iIFwKKycKKworZG9fY29uZmlndXJlICgpIHsKKyAgICBjZCAke1N9L2lzY3NpdWlvIDsgYXV0b3JlY29uZiAtLWluc3RhbGw7IC4vY29uZmlndXJlICR7RVhUUkFfT0VDT05GfQorfQorCitkb19jb21waWxlICgpIHsKKyAgICAjIE1ha2Ugc3VyZSB3ZSBETyBOT1QgcmVnZW5lcmF0ZSBwcm9tX2xleC5jLgorICAgIGlmIFsgLWYgJHtTfS91dGlscy9md3BhcmFtX2liZnQvcHJvbV9sZXgubCBdOyB0aGVuCisgICAgICAgIG12ICR7U30vdXRpbHMvZndwYXJhbV9pYmZ0L3Byb21fbGV4LmwgJHtTfS91dGlscy9md3BhcmFtX2liZnQvcHJvbV9sZXgubC51bnVzZWQKKyAgICBmaQorICAgIG9lX3J1bm1ha2UgLUMgJHtTfSAke0VYVFJBX09FTUFLRX0gdXNlcgorfQorCitkb19pbnN0YWxsICgpIHsKKyAgICAjaW5zdGFsbCBuZWNlc3NhcnkgZGlyZWN0b3JpZXMKKyAgICBpbnN0YWxsIC1kICR7RH0ke3NiaW5kaXJ9IFwKKyAgICAgICAgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kIFwKKyAgICAgICAgJHtEfSR7c3lzY29uZmRpcn0vaXNjc2kgXAorICAgICAgICAke0R9JHtsb2NhbHN0YXRlZGlyfS9saWIvaXNjc2kvbm9kZXMgXAorICAgICAgICAke0R9JHtsb2NhbHN0YXRlZGlyfS9saWIvaXNjc2kvc2VuZF90YXJnZXRzIFwKKyAgICAgICAgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbGliL2lzY3NpL3N0YXRpYyBcCisgICAgICAgICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9pc2NzaS9pc25zIFwKKyAgICAgICAgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbGliL2lzY3NpL3NscCBcCisgICAgICAgICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9pc2NzaS9pZmFjZXMgXAorICAgICAgICAke0R9JHtsaWJkaXJ9IFwKKyAgICAgICAgJHtEfSR7bWFuZGlyfS9tYW44CisKKyAgICBpbnN0YWxsIC1wIC1tIDc1NSAke1N9L3Vzci9pc2NzaWQgJHtTfS91c3IvaXNjc2lhZG0gXAorICAgICAgICAke1N9L3V0aWxzL2lzY3NpLWluYW1lIFwKKyAgICAgICAgJHtTfS91c3IvaXNjc2lzdGFydCAke0R9LyR7c2JpbmRpcn0KKworICAgIGNwIC1kUiAke1N9L2xpYm9wZW5pc2NzaXVzci9saWJvcGVuaXNjc2l1c3Iuc28qICR7RH0ke2xpYmRpcn0KKyAgICBpbnN0YWxsIC1wIC1tIDY0NCAke1N9L2RvYy9pc2NzaWFkbS44ICR7U30vZG9jL2lzY3NpZC44ICR7RH0vJHttYW5kaXJ9L21hbjgKKyAgICBpbnN0YWxsIC1wIC1tIDY0NCAke1N9L2V0Yy9pc2NzaWQuY29uZiAke0R9JHtzeXNjb25mZGlyfS9pc2NzaQorICAgIGluc3RhbGwgLXAgLW0gNzU1ICR7V09SS0RJUn0vaW5pdGQuZGViaWFuICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9pc2NzaWQKKworICAgIHNlZCAtaSAtZSAiczo9IC9zYmluL2lzY3NpZDo9ICR7c2JpbmRpcn0vaXNjc2lkOiIgJHtEfSR7c3lzY29uZmRpcn0vaXNjc2kvaXNjc2lkLmNvbmYKKworICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAorICAgICAgICBlY2hvICJkIC9ydW4vJHtCUE59L2xvY2sgLSAtIC0gLSIgXAorICAgICAgICAgICAgICAgICAgICAgPiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kL2lzY3NpLmNvbmYKKyAgICAgICAgaW5zdGFsbCAtZCAke0R9L2V0Yy9kZWZhdWx0LworICAgICAgICBpbnN0YWxsIC1wIC1tIDc1NSAke1dPUktESVJ9L2lzY3NpLWluaXRpYXRvciAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0LworCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCisgICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2lzY3NpLWluaXRpYXRvci5zZXJ2aWNlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICR7V09SS0RJUn0vaXNjc2ktaW5pdGlhdG9yLXRhcmdldHMuc2VydmljZSBcCisgICAgICAgICAgICAgICAgICAgICAgICAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KKyAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtub25hcmNoX2xpYmRpcn0vaXNjc2kKKyAgICAgICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vc2V0X2luaXRpYXRvcm5hbWUgJHtEfSR7bm9uYXJjaF9saWJkaXJ9L2lzY3NpCisgICAgZWxzZQorICAgICAgICBpbnN0YWxsIC1kICR7RH0vZXRjL2RlZmF1bHQvdm9sYXRpbGVzCisgICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9Lzk5X2lzY3NpLWluaXRpYXRvci11dGlscyAke0R9L2V0Yy9kZWZhdWx0L3ZvbGF0aWxlcworICAgIGZpCit9CisKK3BrZ19wb3N0aW5zdF8ke1BOfSgpIHsKKyAgICBpZiBbICJ4JEQiID0gIngiIF07IHRoZW4KKyAgICAgICAgaWYgWyAtZSAvZXRjL2luaXQuZC9wb3B1bGF0ZS12b2xhdGlsZS5zaCBdOyB0aGVuCisgICAgICAgICAgICAvZXRjL2luaXQuZC9wb3B1bGF0ZS12b2xhdGlsZS5zaCB1cGRhdGUKKyAgICAgICAgZWxpZiBjb21tYW5kIC12IHN5c3RlbWQtdG1wZmlsZXMgPi9kZXYvbnVsbDsgdGhlbgorICAgICAgICAgICAgc3lzdGVtZC10bXBmaWxlcyAtLWNyZWF0ZSAke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvaXNjc2kuY29uZgorICAgICAgICBmaQorICAgIGZpCit9CisKK1NZU1RFTURfU0VSVklDRSA9ICIgaXNjc2ktaW5pdGlhdG9yLnNlcnZpY2UgaXNjc2ktaW5pdGlhdG9yLXRhcmdldHMuc2VydmljZSAiCitJTklUU0NSSVBUX05BTUUgPSAiaXNjc2lkIgorSU5JVFNDUklQVF9QQVJBTVMgPSAic3RhcnQgMzAgMSAyIDMgNCA1IC4gc3RvcCA3MCAwIDEgMiAzIDQgNSA2IC4iCisKK0ZJTEVTXyR7UE59ICs9ICIke25vbmFyY2hfbGliZGlyfS9pc2NzaSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9rZWVwYWxpdmVkL2tlZXBhbGl2ZWRfMS4zLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMva2VlcGFsaXZlZC9rZWVwYWxpdmVkXzEuMy41LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTdlNmU0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9rZWVwYWxpdmVkL2tlZXBhbGl2ZWRfMS4zLjUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1TVU1NQVJZID0gIkhpZ2ggQXZhaWxhYmlsaXR5IG1vbml0b3IgYnVpbHQgdXBvbiBMVlMsIFZSUlAgYW5kIHNlcnZpY2UgcG9sbGVycyIKLURFU0NSSVBUSU9OID0gIktlZXBhbGl2ZWQgaXMgYSByb3V0aW5nIHNvZnR3YXJlIHdyaXR0ZW4gaW4gQy4gVGhlIG1haW4gZ29hbCBcCi1vZiB0aGlzIHByb2plY3QgaXMgdG8gcHJvdmlkZSBzaW1wbGUgYW5kIHJvYnVzdCBmYWNpbGl0aWVzIGZvciBsb2FkYmFsYW5jaW5nIFwKLWFuZCBoaWdoLWF2YWlsYWJpbGl0eSB0byBMaW51eCBzeXN0ZW0gYW5kIExpbnV4IGJhc2VkIGluZnJhc3RydWN0dXJlcy4gXAotTG9hZGJhbGFuY2luZyBmcmFtZXdvcmsgcmVsaWVzIG9uIHdlbGwta25vd24gYW5kIHdpZGVseSB1c2VkIExpbnV4IFZpcnR1YWwgXAotU2VydmVyIChJUFZTKSBrZXJuZWwgbW9kdWxlIHByb3ZpZGluZyBMYXllcjQgbG9hZGJhbGFuY2luZyBcCi0iCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LmtlZXBhbGl2ZWQub3JnLyIKLQotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgotCi1TUkNfVVJJID0gImh0dHA6Ly93d3cua2VlcGFsaXZlZC5vcmcvc29mdHdhcmUvJHtCUH0udGFyLmd6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiOTk2NGQyOTVlYzlkMzRlZDM0MDhiNTdkMjg4NDdiNjgiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzAxMTRkODZlYTRjODk2NTU3YmViMGQ5MzY3ODE5YTQyM2ZmYmE3NzJiYzVkN2M1NDhkYzQ1NWU2YjNiZDA0OCIKLQotREVQRU5EUyA9ICJsaWJuZm5ldGxpbmsgb3BlbnNzbCIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIHN5c3RlbWQgdXBkYXRlLXJjLmQKLQotUEFDS0FHRUNPTkZJRyA/Pz0gImxpYm5sIHNubXAgXAotICAgICR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCBkKX0gXAotIgotUEFDS0FHRUNPTkZJR1tsaWJubF0gPSAiLS1lbmFibGUtbGlibmwsLS1kaXNhYmxlLWxpYm5sLGxpYm5sIgotUEFDS0FHRUNPTkZJR1tzbm1wXSA9ICItLWVuYWJsZS1zbm1wLC0tZGlzYWJsZS1zbm1wLG5ldC1zbm1wIgotUEFDS0FHRUNPTkZJR1tzeXN0ZW1kXSA9ICItLXdpdGgtaW5pdD1zeXN0ZW1kIC0td2l0aC1zeXN0ZW1kc3lzdGVtdW5pdGRpcj0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9LC0td2l0aC1pbml0PVNZU1Ysc3lzdGVtZCIKLQotRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1saWJpcHRjIgotRVhUUkFfT0VNQUtFID0gImluaXRkaXI9JHtzeXNjb25mZGlyfS9pbml0LmQiCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIGlmIFsgLWYgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kLyR7QlBOfSBdOyB0aGVuCi0gICAgICAgIGNobW9kIDA3NTUgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kLyR7QlBOfQotICAgICAgICBzZWQgLWkgJ3MjcmMuZC8jIycgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kLyR7QlBOfQotICAgIGZpCi0KLSAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAndHJ1ZScsICdmYWxzZScsIGQpfTsgdGhlbgotICAgICAgICBpbnN0YWxsIC1EIC1tIDA2NDQgJHtCfS8ke0JQTn0vJHtCUE59LnNlcnZpY2UgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0vJHtCUE59LnNlcnZpY2UKLSAgICBmaQotfQotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9zbm1wL21pYnMvS0VFUEFMSVZFRC1NSUIudHh0IgotCi1JTklUU0NSSVBUX05BTUUgPSAia2VlcGFsaXZlZCIKLUlOSVRTQ1JJUFRfUEFSQU1TID0gInJlbW92ZSIKLQotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImtlZXBhbGl2ZWQuc2VydmljZSIKLVNZU1RFTURfQVVUT19FTkFCTEUgPz0gImRpc2FibGUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMva2VlcGFsaXZlZC9rZWVwYWxpdmVkXzEuNC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2tlZXBhbGl2ZWQva2VlcGFsaXZlZF8xLjQuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjQxN2I3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL2tlZXBhbGl2ZWQva2VlcGFsaXZlZF8xLjQuMi5iYgpAQCAtMCwwICsxLDQ4IEBACitTVU1NQVJZID0gIkhpZ2ggQXZhaWxhYmlsaXR5IG1vbml0b3IgYnVpbHQgdXBvbiBMVlMsIFZSUlAgYW5kIHNlcnZpY2UgcG9sbGVycyIKK0RFU0NSSVBUSU9OID0gIktlZXBhbGl2ZWQgaXMgYSByb3V0aW5nIHNvZnR3YXJlIHdyaXR0ZW4gaW4gQy4gVGhlIG1haW4gZ29hbCBcCitvZiB0aGlzIHByb2plY3QgaXMgdG8gcHJvdmlkZSBzaW1wbGUgYW5kIHJvYnVzdCBmYWNpbGl0aWVzIGZvciBsb2FkYmFsYW5jaW5nIFwKK2FuZCBoaWdoLWF2YWlsYWJpbGl0eSB0byBMaW51eCBzeXN0ZW0gYW5kIExpbnV4IGJhc2VkIGluZnJhc3RydWN0dXJlcy4gXAorTG9hZGJhbGFuY2luZyBmcmFtZXdvcmsgcmVsaWVzIG9uIHdlbGwta25vd24gYW5kIHdpZGVseSB1c2VkIExpbnV4IFZpcnR1YWwgXAorU2VydmVyIChJUFZTKSBrZXJuZWwgbW9kdWxlIHByb3ZpZGluZyBMYXllcjQgbG9hZGJhbGFuY2luZyBcCisiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmtlZXBhbGl2ZWQub3JnLyIKKworTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgorCitTUkNfVVJJID0gImh0dHA6Ly93d3cua2VlcGFsaXZlZC5vcmcvc29mdHdhcmUvJHtCUH0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gIjYxMGFmNmUwNDA3MWYwMmQzNDY5MTkxZGU3NDk5ZjRlIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjRlMmQ3Y2MwMWE2ZWUyOWEzOTU1ZjVjNjIyZDQ3NzA0YmE3ZDlkZDc1ODE4OWYxNWU5ZGVmMDE2YTJkMWZhYTMiCisKK0RFUEVORFMgPSAibGlibmZuZXRsaW5rIG9wZW5zc2wiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBzeXN0ZW1kIHVwZGF0ZS1yYy5kCisKK1BBQ0tBR0VDT05GSUcgPz89ICJsaWJubCBzbm1wIFwKKyAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgZCl9IFwKKyIKK1BBQ0tBR0VDT05GSUdbbGlibmxdID0gIi0tZW5hYmxlLWxpYm5sLC0tZGlzYWJsZS1saWJubCxsaWJubCIKK1BBQ0tBR0VDT05GSUdbc25tcF0gPSAiLS1lbmFibGUtc25tcCwtLWRpc2FibGUtc25tcCxuZXQtc25tcCIKK1BBQ0tBR0VDT05GSUdbc3lzdGVtZF0gPSAiLS13aXRoLWluaXQ9c3lzdGVtZCAtLXdpdGgtc3lzdGVtZHN5c3RlbXVuaXRkaXI9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfSwtLXdpdGgtaW5pdD1TWVNWLHN5c3RlbWQiCisKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtbGliaXB0YyIKK0VYVFJBX09FTUFLRSA9ICJpbml0ZGlyPSR7c3lzY29uZmRpcn0vaW5pdC5kIgorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpZiBbIC1mICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC8ke0JQTn0gXTsgdGhlbgorICAgICAgICBjaG1vZCAwNzU1ICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC8ke0JQTn0KKyAgICAgICAgc2VkIC1pICdzI3JjLmQvIyMnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC8ke0JQTn0KKyAgICBmaQorCisgICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJ3RydWUnLCAnZmFsc2UnLCBkKX07IHRoZW4KKyAgICAgICAgaW5zdGFsbCAtRCAtbSAwNjQ0ICR7Qn0vJHtCUE59LyR7QlBOfS5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9LyR7QlBOfS5zZXJ2aWNlCisgICAgZmkKK30KKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vc25tcC9taWJzL0tFRVBBTElWRUQtTUlCLnR4dCIKKworSU5JVFNDUklQVF9OQU1FID0gImtlZXBhbGl2ZWQiCitJTklUU0NSSVBUX1BBUkFNUyA9ICJyZW1vdmUiCisKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJrZWVwYWxpdmVkLnNlcnZpY2UiCitTWVNURU1EX0FVVE9fRU5BQkxFID89ICJkaXNhYmxlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS1maXgtaG9zdC1nY2MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWZpeC1ob3N0LWdjYy5wYXRjaAppbmRleCAwMjliODU3Li45N2M1MTVlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWZpeC1ob3N0LWdjYy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWZpeC1ob3N0LWdjYy5wYXRjaApAQCAtNiwxMSArNiwxMSBAQAogCiBTaWduZWQtb2YtYnk6IEF3cyBJc21haWwgPGF3cy5pc21haWxAd2luZHJpdmVyLmNvbT4KIAotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggZjVhNWI3NC4uNGEyMDE1NCAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNjA1LDExICs2MDUsNiBAQCBBQ19BUkdfRU5BQkxFKFt3ZXJyb3JdLAorSW5kZXg6IG9wZW5ocGktMy42LjEvY29uZmlndXJlLmFjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gb3BlbmhwaS0zLjYuMS5vcmlnL2NvbmZpZ3VyZS5hYworKysrIG9wZW5ocGktMy42LjEvY29uZmlndXJlLmFjCitAQCAtNjU2LDExICs2NTYsNiBAQCBBQ19BUkdfRU5BQkxFKFt3ZXJyb3JdLAogICAgICBmaV0sCiAgICAgIFtdKQogIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS1maXgtdGVzdGZhaWwtZXJyb3JzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS1maXgtdGVzdGZhaWwtZXJyb3JzLnBhdGNoCmluZGV4IDIwNTY5NmUuLjYwZTJlNzkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuaHBpL2ZpbGVzL29wZW5ocGktZml4LXRlc3RmYWlsLWVycm9ycy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWZpeC10ZXN0ZmFpbC1lcnJvcnMucGF0Y2gKQEAgLTQsMTAgKzQsMTEgQEAKIAogU2lnbmVkLW9mZi1ieTogeWFuanVuLnpodSA8eWFuanVuLnpodUB3aW5kcml2ZXIuY29tPgogCi1kaWZmIC11cnBOIGEvb3BlbmhwaWQvc2FmaHBpLmMgYi9vcGVuaHBpZC9zYWZocGkuYwotLS0tIGEvb3BlbmhwaWQvc2FmaHBpLmMKLSsrKyBiL29wZW5ocGlkL3NhZmhwaS5jCi1AQCAtMTk3Niw3ICsxOTc2LDcgQEAgU2FFcnJvclQgU0FIUElfQVBJIHNhSHBpU2Vuc29yVGhyZXNob2xkcworSW5kZXg6IG9wZW5ocGktMy42LjEvb3BlbmhwaWQvc2FmaHBpLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBvcGVuaHBpLTMuNi4xLm9yaWcvb3BlbmhwaWQvc2FmaHBpLmMKKysrKyBvcGVuaHBpLTMuNi4xL29wZW5ocGlkL3NhZmhwaS5jCitAQCAtMTkzMyw3ICsxOTMzLDcgQEAgU2FFcnJvclQgU0FIUElfQVBJIHNhSHBpU2Vuc29yVGhyZXNob2xkcwogICAgICAgICAgb2hfcmVsZWFzZV9kb21haW4oZCk7IC8qIFVubG9jayBkb21haW4gKi8KICAKICAgICAgICAgIE9IX0NBTExfQUJJKGgsIHNldF9zZW5zb3JfdGhyZXNob2xkcywgU0FfRVJSX0hQSV9JTlZBTElEX0NNRCwgcnYsCkBAIC0xNiwxMCArMTcsMTEgQEAKICAgICAgICAgIG9oX3JlbGVhc2VfaGFuZGxlcihoKTsKICAKICAgICAgICAgIHJldHVybiBydjsKLWRpZmYgLXVycE4gYS91dGlscy9zYWhwaV9zdHJ1Y3RfdXRpbHMuYyBiL3V0aWxzL3NhaHBpX3N0cnVjdF91dGlscy5jCi0tLS0gYS91dGlscy9zYWhwaV9zdHJ1Y3RfdXRpbHMuYwotKysrIGIvdXRpbHMvc2FocGlfc3RydWN0X3V0aWxzLmMKLUBAIC0zODU1LDYgKzM4NTUsOSBAQCBTYUhwaUJvb2xUIG9oX3ZhbGlkX3RleHRidWZmZXIoU2FIcGlUZXh0CitJbmRleDogb3BlbmhwaS0zLjYuMS91dGlscy9zYWhwaV9zdHJ1Y3RfdXRpbHMuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG9wZW5ocGktMy42LjEub3JpZy91dGlscy9zYWhwaV9zdHJ1Y3RfdXRpbHMuYworKysrIG9wZW5ocGktMy42LjEvdXRpbHMvc2FocGlfc3RydWN0X3V0aWxzLmMKK0BAIC0zODYxLDYgKzM4NjEsOSBAQCBTYUhwaUJvb2xUIG9oX3ZhbGlkX3RleHRidWZmZXIoU2FIcGlUZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZvdW5kIGEgdW5wYWlyZWQgc3Vycm9nYXRlICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTQUhQSV9GQUxTRTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuaHBpL2ZpbGVzL29wZW5ocGktaHBpLXNoZWxsLXRocmVhZC1maXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWhwaS1zaGVsbC10aHJlYWQtZml4LnBhdGNoCmluZGV4IDdkYWM0NTMuLmNjMjFmZjggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuaHBpL2ZpbGVzL29wZW5ocGktaHBpLXNoZWxsLXRocmVhZC1maXgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS1ocGktc2hlbGwtdGhyZWFkLWZpeC5wYXRjaApAQCAtMTQsMTEgKzE0LDExIEBACiAgICAgCiAgICAgU2lnbmVkLW9mZi1ieTogQXdzIElzbWFpbCA8YXdzLmlzbWFpbEB3aW5kcml2ZXIuY29tPgogCi1kaWZmIC0tZ2l0IGEvaHBpX3NoZWxsL3Nlc3Npb24uYyBiL2hwaV9zaGVsbC9zZXNzaW9uLmMKLWluZGV4IDg1YzMxYmYuLjE4N2RhNGMgMTAwNjQ0Ci0tLS0gYS9ocGlfc2hlbGwvc2Vzc2lvbi5jCi0rKysgYi9ocGlfc2hlbGwvc2Vzc2lvbi5jCi1AQCAtNjYsNyArNjYsNyBAQCBzdGF0aWMgdm9pZCogcHJvZ3Jlc3NfYmFyKHZvaWQgKnVudXNlZCkKK0luZGV4OiBvcGVuaHBpLTMuNi4xL2hwaV9zaGVsbC9zZXNzaW9uLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBvcGVuaHBpLTMuNi4xLm9yaWcvaHBpX3NoZWxsL3Nlc3Npb24uYworKysrIG9wZW5ocGktMy42LjEvaHBpX3NoZWxsL3Nlc3Npb24uYworQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIHZvaWQqIHByb2dyZXNzX2Jhcih2b2lkICp1bnVzZWQpCiAgCQlpZiAoaSA8IChQUk9HUkVTU19CVUZfU0laRSAtIG1lc19sZW4gLSAxKSkgaSsrOwogIAkJdCsrOwogIAl9OwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS1saWJ4bWwyLWNyb3NzLWNvbXBpbGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWxpYnhtbDItY3Jvc3MtY29tcGlsZS5wYXRjaAppbmRleCA2ZDNiNjY0Li5jODQ4YjM1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWxpYnhtbDItY3Jvc3MtY29tcGlsZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbmhwaS9maWxlcy9vcGVuaHBpLWxpYnhtbDItY3Jvc3MtY29tcGlsZS5wYXRjaApAQCAtNiwxMSArNiwxMSBAQAogCiBTaWduZWQtb2YtYnk6IEF3cyBJc21haWwgPGF3cy5pc21haWxAd2luZHJpdmVyLmNvbT4KIAotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggMzBhNzkyYy4uYjVmNWFhZCAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMTc1LDcgKzE3NSw3IEBAIEFDX0NIRUNLX0hFQURFUlMoW29wZW5zc2wvbWQyLmggb3BlbnNzbC9tZDUuaCBvcGVuc3NsL2Jpby5oIG9wZW5zc2wvc3NsLmggb3BlbnNzCitJbmRleDogb3BlbmhwaS0zLjYuMS9jb25maWd1cmUuYWMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBvcGVuaHBpLTMuNi4xLm9yaWcvY29uZmlndXJlLmFjCisrKysgb3BlbmhwaS0zLjYuMS9jb25maWd1cmUuYWMKK0BAIC0xNzcsNyArMTc3LDcgQEAgQUNfQ0hFQ0tfSEVBREVSUyhbb3BlbnNzbC9tZDIuaCBvcGVuc3NsLwogIAogIGRubCB4bWwgaXMgdXNlZCBmb3IgWE1MLWJhc2VkIGNvbW11bmljYXRpb24gaW4gaWxvMl9yaWJjbCBhbmQgb2Ffc29hcAogIEFDX0NIRUNLX0xJQihbeG1sMl0sW3htbFBhcnNlTWVtb3J5XSxbWE1MMl9MSUI9LWx4bWwyXSxbWE1MMl9MSUI9XSkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuaHBpL2ZpbGVzL29wZW5ocGktdXNlLXNlcmlhbC10ZXN0cy1jb25maWctbmVlZGVkLWJ5LXB0ZXN0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS11c2Utc2VyaWFsLXRlc3RzLWNvbmZpZy1uZWVkZWQtYnktcHRlc3QucGF0Y2gKaW5kZXggNTE1MzdlZi4uM2UwOTE4MCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS11c2Utc2VyaWFsLXRlc3RzLWNvbmZpZy1uZWVkZWQtYnktcHRlc3QucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5ocGkvZmlsZXMvb3BlbmhwaS11c2Utc2VyaWFsLXRlc3RzLWNvbmZpZy1uZWVkZWQtYnktcHRlc3QucGF0Y2gKQEAgLTEzLDE5ICsxMywxNiBAQAogIGNvbmZpZ3VyZS5hYyB8ICAgIDIgKy0KICAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggNGI1MTk3MS4uMTYxMzZiMyAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNyw3ICs3LDcgQEAgZG5sICAgdmFyaW91cyBoYWNrcyBieSBTZWFuIERhZ3VlIDxodHRwOi8vZGFndWUubmV0L3NlYW4+IDQvMjMvMDMKK0luZGV4OiBvcGVuaHBpLTMuNi4xL2NvbmZpZ3VyZS5hYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG9wZW5ocGktMy42LjEub3JpZy9jb25maWd1cmUuYWMKKysrKyBvcGVuaHBpLTMuNi4xL2NvbmZpZ3VyZS5hYworQEAgLTcsNyArNyw3IEBAIGRubCAgIHZhcmlvdXMgaGFja3MgYnkgU2VhbiBEYWd1ZSA8aHR0cDoKICBBQ19QUkVSRVEoMi41NykKLSBBQ19JTklUKG9wZW5ocGksIDMuNS4wKQorIEFDX0lOSVQob3BlbmhwaSwgMy42LjEpCiAgQUNfQ09ORklHX1NSQ0RJUihvcGVuaHBpLnNwZWMuaW4pCiAtQU1fSU5JVF9BVVRPTUFLRShbMS44XSkKICtBTV9JTklUX0FVVE9NQUtFKFsxLjggc2VyaWFsLXRlc3RzXSkKICAKICBBTV9DT05GSUdfSEVBREVSKGNvbmZpZy5oKQogIEFIX1RPUChbI2lmbmRlZiBfX09QRU5IUElfQ09ORklHX0gKLS0tIAotMS43LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5zYWYvb3BlbnNhZi8wMDAxLWNvbmZpZ3VyZS1EaXNhYmxlLWZvcm1hdC1vdmVyZmxvdy1pZi1zdXBwb3J0ZWQtYnktZ2MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbnNhZi9vcGVuc2FmLzAwMDEtY29uZmlndXJlLURpc2FibGUtZm9ybWF0LW92ZXJmbG93LWlmLXN1cHBvcnRlZC1ieS1nYy5wYXRjaAppbmRleCA1MTJlMjQ2Li5lZmZlMjVjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbnNhZi9vcGVuc2FmLzAwMDEtY29uZmlndXJlLURpc2FibGUtZm9ybWF0LW92ZXJmbG93LWlmLXN1cHBvcnRlZC1ieS1nYy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvb3BlbnNhZi9vcGVuc2FmLzAwMDEtY29uZmlndXJlLURpc2FibGUtZm9ybWF0LW92ZXJmbG93LWlmLXN1cHBvcnRlZC1ieS1nYy5wYXRjaApAQCAtMTEsMTAgKzExLDEwIEBACiAgMyBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogIGNyZWF0ZSBtb2RlIDEwMDY0NCBtNC9heF9jaGVja19jb21waWxlX2ZsYWcubTQKIAotZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KLWluZGV4IGQ2M2ZiYmIuLjEwMTJhMmMgMTAwNjQ0Ci0tLS0gYS9NYWtlZmlsZS5hbQotKysrIGIvTWFrZWZpbGUuYW0KK0luZGV4OiBvcGVuc2FmLTUuMTguMDIvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBvcGVuc2FmLTUuMTguMDIub3JpZy9NYWtlZmlsZS5hbQorKysrIG9wZW5zYWYtNS4xOC4wMi9NYWtlZmlsZS5hbQogQEAgLTUyLDEwICs1MiwxMCBAQCBBTV9DUFBGTEFHUyA9IFwKICAJLXB0aHJlYWQgXAogIAktRF9HTlVfU09VUkNFIC1ESU5URVJOQUxfVkVSU0lPTl9JRD0nIkBJTlRFUk5BTF9WRVJTSU9OX0lEQCInIFwKQEAgLTI2LDE0ICsyNiwxNCBAQAogLUFNX0NYWEZMQUdTID0gLXBpcGUgLXN0ZD1nbnUrKzExIEBPU0FGX0hBUkRFTl9GTEFHU0AgLVdhbGwgLVdmb3JtYXQ9MiAtV2Vycm9yCiArQU1fQ0ZMQUdTID0gLXBpcGUgLXN0ZD1nbnUxMSBAT1NBRl9IQVJERU5fRkxBR1NAIC1XYWxsIC1XZm9ybWF0PTIgLVdlcnJvciBATk9XQVJOSU5HU0AKICtBTV9DWFhGTEFHUyA9IC1waXBlIC1zdGQ9Z251KysxMSBAT1NBRl9IQVJERU5fRkxBR1NAIC1XYWxsIC1XZm9ybWF0PTIgLVdlcnJvciBATk9XQVJOSU5HU0AKLSBBTV9MREZMQUdTID0gQE9TQUZfSEFSREVOX0ZMQUdTQCAtV2wsLS1hcy1uZWVkZWQgLWxkbCAtbHJ0IC1wdGhyZWFkIC1yZHluYW1pYwotIEFDTE9DQUxfQU1GTEFHUyA9IC1JIG00Ci0gT1NBRl9MSUJfRkxBR1MgPQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggMDI3NzFjNi4uYjc2YjBmZSAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNTU3LDYgKzU1Nyw4IEBAIGlmIHRlc3QgLXogIiRPU0FGX0hBUkRFTl9GTEFHUyI7IHRoZW4KKyAKKyBpZiBFTkFCTEVfR0NPVgorIEFNX0NGTEFHUyArPSAtLWNvdmVyYWdlCitJbmRleDogb3BlbnNhZi01LjE4LjAyL2NvbmZpZ3VyZS5hYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG9wZW5zYWYtNS4xOC4wMi5vcmlnL2NvbmZpZ3VyZS5hYworKysrIG9wZW5zYWYtNS4xOC4wMi9jb25maWd1cmUuYWMKK0BAIC01OTMsNiArNTkzLDggQEAgaWYgdGVzdCAteiAiJE9TQUZfSEFSREVOX0ZMQUdTIjsgdGhlbgogIGZpCiAgQUNfU1VCU1QoT1NBRl9IQVJERU5fRkxBR1MpCiAgCkBAIC00MiwxMSArNDIsMTAgQEAKICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICAjIExpc3QgdGhlIG91dHB1dCBNYWtlZmlsZXMKICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWRpZmYgLS1naXQgYS9tNC9heF9jaGVja19jb21waWxlX2ZsYWcubTQgYi9tNC9heF9jaGVja19jb21waWxlX2ZsYWcubTQKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5kY2FiYjkyCitJbmRleDogb3BlbnNhZi01LjE4LjAyL200L2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAotKysrIGIvbTQvYXhfY2hlY2tfY29tcGlsZV9mbGFnLm00CisrKysgb3BlbnNhZi01LjE4LjAyL200L2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNAogQEAgLTAsMCArMSw3NCBAQAogKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiArIyAgaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9hdXRvY29uZi1hcmNoaXZlL2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5odG1sCkBAIC0xMjIsNiArMTIxLDMgQEAKICsgIFttNF9kZWZhdWx0KFskM10sIDopXSkKICtBU19WQVJfUE9QREVGKFtDQUNIRVZBUl0pZG5sCiArXSlkbmwgQVhfQ0hFQ0tfQ09NUElMRV9GTEFHUwotLS0gCi0yLjEyLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5zYWYvb3BlbnNhZl81LjE3LjA3LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5zYWYvb3BlbnNhZl81LjE3LjA3LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NDQ4M2Q3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuc2FmL29wZW5zYWZfNS4xNy4wNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLVNVTU1BUlkgPSAiT3BlblNBRiBpcyBhbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU0FGIEFJUyBzcGVjaWZpY2F0aW9uIgotREVTQ1JJUFRJT04gPSAiT3BlblNBRiBpcyBhbiBvcGVuIHNvdXJjZSBwcm9qZWN0IGVzdGFibGlzaGVkIHRvIGRldmVsb3AgYSBiYXNlIHBsYXRmb3JtIFwKLW1pZGRsZXdhcmUgY29uc2lzdGVudCB3aXRoIFNlcnZpY2UgQXZhaWxhYmlsaXR5IEZvcnVtIChTQSBGb3J1bSkgXAotc3BlY2lmaWNhdGlvbnMsIHVuZGVyIHRoZSBMR1BMdjIuMSBsaWNlbnNlLiBUaGUgT3BlblNBRiBGb3VuZGF0aW9uIHdhcyBcCi1lc3RhYmxpc2hlZCBieSBsZWFkaW5nIENvbW11bmljYXRpb25zIGFuZCBFbnRlcnByaXNlIENvbXB1dGluZyBDb21wYW5pZXMgdG8gXAotZmFjaWxpdGF0ZSB0aGUgT3BlblNBRiBQcm9qZWN0IGFuZCB0byBhY2NlbGVyYXRlIHRoZSBhZG9wdGlvbiBvZiB0aGUgT3BlblNBRiBcCi1jb2RlIGJhc2UgaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4gXAotVGhlIE9wZW5TQUYgcHJvamVjdCB3YXMgbGF1bmNoZWQgaW4gbWlkIDIwMDcgYW5kIGhhcyBiZWVuIHVuZGVyIGRldmVsb3BtZW50IGJ5IFwKLWFuIGluZm9ybWFsIGdyb3VwIG9mIHN1cHBvcnRlcnMgb2YgdGhlIE9wZW5TQUYgaW5pdGlhdGl2ZS4gVGhlIE9wZW5TQUYgXAotRm91bmRhdGlvbiB3YXMgZm91bmRlZCBvbiBKYW51YXJ5IDIybmQgMjAwOCB3aXRoIEVtZXJzb24gTmV0d29yayBQb3dlciwgXAotRXJpY3Nzb24sIE5va2lhIFNpZW1lbnMgTmV0d29ya3MsIEhQIGFuZCBTdW4gTWljcm9zeXN0ZW1zIGFzIGZvdW5kaW5nIG1lbWJlcnMuIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5vcGVuc2FmLm9yZyIKLVNFQ1RJT04gPSAiYWRtaW4iCi1MSUNFTlNFID0gIkxHUEx2Mi4xIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORy5MSUI7bWQ1PWE5MTY0NjdiOTEwNzZlNjMxZGQ4ZWRiNzQyNDc2OWM3IgotCi1ERVBFTkRTID0gImxpYnhtbDIgcHl0aG9uIgotVE9PTENIQUlOID0gImdjYyIKLQotU0VDVVJJVFlfQ0ZMQUdTID0gIiR7U0VDVVJJVFlfTk9fUElFX0NGTEFHU30iCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9LyR7QlBOfS9yZWxlYXNlcy8ke0JQTn0tJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLVBhc3MtbGlua2VyLXNwZWNpZmljLW9wdGlvbnMtd2l0aC1XbC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS1EaXNhYmxlLWZvcm1hdC1vdmVyZmxvdy1pZi1zdXBwb3J0ZWQtYnktZ2MucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1zcmMtQWRkLW1pc3NpbmctaGVhZGVyLWxpbWl0cy5oLWZvci1fUE9TSVhfSE9TVF9OQU1FLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtaW1tcGJlX2R1bXAuY2MtVXNlLXN5cy13YWl0LmgtaW5zdGVhZC1vZi13YWl0LmgucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gIjEyNWJjZDlhYWJkNzQxMmFlZGNiZmJmNzNmNGU2MTk2IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjNmYjIyMzliYjJjOTMyOGM4YjQ1MzY4ZmY4ZDhkZTk3OWVhMjg2YTI3ZWRjOTg3MWQyMTgyMDBlODhiYjkxY2MiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHVzZXJhZGQgc3lzdGVtZCBwa2djb25maWcKLQotVVNFUkFERF9QQUNLQUdFUyA9ICIke1BOfSIKLUdST1VQQUREX1BBUkFNXyR7UE59ID0gIi1mIC1yIG9wZW5zYWYiCi1VU0VSQUREX1BBUkFNXyR7UE59ID0gICItciAtZyBvcGVuc2FmIC1kICR7ZGF0YWRpcn0vb3BlbnNhZi8gLXMgJHtzYmluZGlyfS9ub2xvZ2luIC1jIFwiT3BlblNBRlwiIG9wZW5zYWYiCi0KLVNZU1RFTURfU0VSVklDRV8ke1BOfSArPSAib3BlbnNhZmQuc2VydmljZSIKLVNZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKLQotUEFDS0FHRUNPTkZJR1tzeXN0ZW1kXSA9ICIsLHN5c3RlbWQiCi1QQUNLQUdFQ09ORklHW29wZW5ocGldID0gIi0td2l0aC1ocGktaW50ZXJmYWNlPUIwMyAtLWVuYWJsZS1haXMtcGxtLCxvcGVuaHBpIgotCi1QQUNLQUdFQ09ORklHX2FwcGVuZCA9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAnIHN5c3RlbWQnLCAnJywgZCl9IgotCi1QS0dMSUJESVI9IiR7bGliZGlyfSIKLQotTERGTEFHUyArPSAiLVdsLC0tYXMtbmVlZGVkIC1sYXRvbWljIC1XbCwtLW5vLWFzLW5lZWRlZCIKLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgY3AgLWF2IC0tbm8tcHJlc2VydmU9b3duZXJzaGlwICR7Qn0vbGliLy5saWJzLyouc28qICR7RH0ke2xpYmRpcn0KLSAgICBybSAtZnIgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xvY2siCi0gICAgcm0gLWZyICIke0R9JHtsb2NhbHN0YXRlZGlyfS9ydW4iCi0gICAgcm1kaXIgLS1pZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9IgotICAgIHJtZGlyIC0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5ICIke0R9JHtkYXRhZGlyfS9qYXZhIgotICAgIGlmIFsgISAtZCAiJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kIiBdOyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCi0gICAgICAgIGluc3RhbGwgLW0gMDc1NSAke0J9L29zYWYvc2VydmljZXMvaW5mcmFzdHJ1Y3R1cmUvbmlkL3NjcmlwdHMvb3BlbnNhZmQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kLwotICAgIGZpCi19Ci0KLUZJTEVTXyR7UE59ICs9ICIke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLyouc2VydmljZSIKLUZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiJHtQS0dMSUJESVJ9LyouYSIKLQotSU5TQU5FX1NLSVBfJHtQTn0gPSAiZGV2LXNvIgotCi1SREVQRU5EU18ke1BOfSArPSAiYmFzaCBweXRob24iCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuc2FmL29wZW5zYWZfNS4xOC4wMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9vcGVuc2FmL29wZW5zYWZfNS4xOC4wMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjU1NmNlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL29wZW5zYWYvb3BlbnNhZl81LjE4LjAyLmJiCkBAIC0wLDAgKzEsNjcgQEAKK1NVTU1BUlkgPSAiT3BlblNBRiBpcyBhbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU0FGIEFJUyBzcGVjaWZpY2F0aW9uIgorREVTQ1JJUFRJT04gPSAiT3BlblNBRiBpcyBhbiBvcGVuIHNvdXJjZSBwcm9qZWN0IGVzdGFibGlzaGVkIHRvIGRldmVsb3AgYSBiYXNlIHBsYXRmb3JtIFwKK21pZGRsZXdhcmUgY29uc2lzdGVudCB3aXRoIFNlcnZpY2UgQXZhaWxhYmlsaXR5IEZvcnVtIChTQSBGb3J1bSkgXAorc3BlY2lmaWNhdGlvbnMsIHVuZGVyIHRoZSBMR1BMdjIuMSBsaWNlbnNlLiBUaGUgT3BlblNBRiBGb3VuZGF0aW9uIHdhcyBcCitlc3RhYmxpc2hlZCBieSBsZWFkaW5nIENvbW11bmljYXRpb25zIGFuZCBFbnRlcnByaXNlIENvbXB1dGluZyBDb21wYW5pZXMgdG8gXAorZmFjaWxpdGF0ZSB0aGUgT3BlblNBRiBQcm9qZWN0IGFuZCB0byBhY2NlbGVyYXRlIHRoZSBhZG9wdGlvbiBvZiB0aGUgT3BlblNBRiBcCitjb2RlIGJhc2UgaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4gXAorVGhlIE9wZW5TQUYgcHJvamVjdCB3YXMgbGF1bmNoZWQgaW4gbWlkIDIwMDcgYW5kIGhhcyBiZWVuIHVuZGVyIGRldmVsb3BtZW50IGJ5IFwKK2FuIGluZm9ybWFsIGdyb3VwIG9mIHN1cHBvcnRlcnMgb2YgdGhlIE9wZW5TQUYgaW5pdGlhdGl2ZS4gVGhlIE9wZW5TQUYgXAorRm91bmRhdGlvbiB3YXMgZm91bmRlZCBvbiBKYW51YXJ5IDIybmQgMjAwOCB3aXRoIEVtZXJzb24gTmV0d29yayBQb3dlciwgXAorRXJpY3Nzb24sIE5va2lhIFNpZW1lbnMgTmV0d29ya3MsIEhQIGFuZCBTdW4gTWljcm9zeXN0ZW1zIGFzIGZvdW5kaW5nIG1lbWJlcnMuIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5vcGVuc2FmLm9yZyIKK1NFQ1RJT04gPSAiYWRtaW4iCitMSUNFTlNFID0gIkxHUEx2Mi4xIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORy5MSUI7bWQ1PWE5MTY0NjdiOTEwNzZlNjMxZGQ4ZWRiNzQyNDc2OWM3IgorCitERVBFTkRTID0gImxpYnhtbDIgcHl0aG9uIgorVE9PTENIQUlOID0gImdjYyIKKworU0VDVVJJVFlfQ0ZMQUdTID0gIiR7U0VDVVJJVFlfTk9fUElFX0NGTEFHU30iCisKK1NSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9LyR7QlBOfS9yZWxlYXNlcy8ke0JQTn0tJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLVBhc3MtbGlua2VyLXNwZWNpZmljLW9wdGlvbnMtd2l0aC1XbC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS1EaXNhYmxlLWZvcm1hdC1vdmVyZmxvdy1pZi1zdXBwb3J0ZWQtYnktZ2MucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1zcmMtQWRkLW1pc3NpbmctaGVhZGVyLWxpbWl0cy5oLWZvci1fUE9TSVhfSE9TVF9OQU1FLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtaW1tcGJlX2R1bXAuY2MtVXNlLXN5cy13YWl0LmgtaW5zdGVhZC1vZi13YWl0LmgucGF0Y2ggXAorIgorU1JDX1VSSVttZDVzdW1dID0gIjQyMDY0ZjVkZGJjN2Y1NjBiZmM1ZmY5M2VhOWVlY2M3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImY5ZTI0ODk3ZjljZmQ2M2JiMzExNWY2Mjc1YzcwNmRlMTcwMmQzZDliYWUyZmM0MjMyMjdkYjcyYjIzYzM3ZjAiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHVzZXJhZGQgc3lzdGVtZCBwa2djb25maWcKKworVVNFUkFERF9QQUNLQUdFUyA9ICIke1BOfSIKK0dST1VQQUREX1BBUkFNXyR7UE59ID0gIi1mIC1yIG9wZW5zYWYiCitVU0VSQUREX1BBUkFNXyR7UE59ID0gICItciAtZyBvcGVuc2FmIC1kICR7ZGF0YWRpcn0vb3BlbnNhZi8gLXMgJHtzYmluZGlyfS9ub2xvZ2luIC1jIFwiT3BlblNBRlwiIG9wZW5zYWYiCisKK1NZU1RFTURfU0VSVklDRV8ke1BOfSArPSAib3BlbnNhZmQuc2VydmljZSIKK1NZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKKworUEFDS0FHRUNPTkZJR1tzeXN0ZW1kXSA9ICIsLHN5c3RlbWQiCitQQUNLQUdFQ09ORklHW29wZW5ocGldID0gIi0td2l0aC1ocGktaW50ZXJmYWNlPUIwMyAtLWVuYWJsZS1haXMtcGxtLCxvcGVuaHBpIgorCitQQUNLQUdFQ09ORklHX2FwcGVuZCA9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAnIHN5c3RlbWQnLCAnJywgZCl9IgorCitQS0dMSUJESVI9IiR7bGliZGlyfSIKKworTERGTEFHUyArPSAiLVdsLC0tYXMtbmVlZGVkIC1sYXRvbWljIC1XbCwtLW5vLWFzLW5lZWRlZCIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgY3AgLWF2IC0tbm8tcHJlc2VydmU9b3duZXJzaGlwICR7Qn0vbGliLy5saWJzLyouc28qICR7RH0ke2xpYmRpcn0KKyAgICBybSAtZnIgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xvY2siCisgICAgcm0gLWZyICIke0R9JHtsb2NhbHN0YXRlZGlyfS9ydW4iCisgICAgcm1kaXIgLS1pZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9IgorICAgIHJtZGlyIC0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5ICIke0R9JHtkYXRhZGlyfS9qYXZhIgorICAgIGlmIFsgISAtZCAiJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kIiBdOyB0aGVuCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgICAgIGluc3RhbGwgLW0gMDc1NSAke0J9L29zYWYvc2VydmljZXMvaW5mcmFzdHJ1Y3R1cmUvbmlkL3NjcmlwdHMvb3BlbnNhZmQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kLworICAgIGZpCit9CisKK0ZJTEVTXyR7UE59ICs9ICIke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLyouc2VydmljZSIKK0ZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiJHtQS0dMSUJESVJ9LyouYSIKKworSU5TQU5FX1NLSVBfJHtQTn0gPSAiZGV2LXNvIgorCitSREVQRU5EU18ke1BOfSArPSAiYmFzaCBweXRob24iCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9wb3N0Zml4L2ZpbGVzL21haW4uY2YgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcG9zdGZpeC9maWxlcy9tYWluLmNmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3NWM2ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcG9zdGZpeC9maWxlcy9tYWluLmNmCkBAIC0wLDAgKzEsMTA1IEBACitjb21wYXRpYmlsaXR5X2xldmVsID0gMgorc210cHV0ZjhfZW5hYmxlID0gbm8KKworIyBDb25maWd1cmUgeW91ciBkb21haW4gYW5kIGFjY291bnRzCisjbXlkb21haW49c2FtcGxlLmNvbQorI0ZRRE4gZnJvbSBnZXRob3N0bmFtZQorI215aG9zdG5hbWUgPQorbXlkb21haW49bG9jYWxkb21haW4KK215ZGVzdGluYXRpb24gPSAkbXlob3N0bmFtZSwgbG9jYWxob3N0LmxvY2FsZG9tYWluIGxvY2FsaG9zdAorbXluZXR3b3JrcyA9IDEyNy4wLjAuMS84CitpbmV0X2ludGVyZmFjZXMgPSAxMjcuMC4wLjEKKwordmlydHVhbF9tYWlsYm94X2RvbWFpbnMgPSBzYW1wbGUuY29tLCBvdGhlci5uZXQKK3ZpcnR1YWxfbWFpbGJveF9tYXBzID0gaGFzaDovZXRjL3Bvc3RmaXgvdmlydHVhbAordmlydHVhbF9hbGlhc19tYXBzID0gaGFzaDovZXRjL3Bvc3RmaXgvdmlydHVhbF9hbGlhcworCithbGlhc19tYXBzID0gaGFzaDovZXRjL2FsaWFzZXMKKworIyBZb3UnbGwgc3RhcnQgd2l0aCB0aGUgZm9sbG93aW5nIGxpbmVzIGZvciBtYWlsZGlyIHN0b3JhZ2UKK3ZpcnR1YWxfbWFpbGJveF9iYXNlID0gL3Zhci9zcG9vbC92bWFpbAordmlydHVhbF91aWRfbWFwcyA9IHN0YXRpYzpgZ3JlcCB2bWFpbCAvZXRjL3Bhc3N3ZCB8IGN1dCAtZCAiOiIgLWYgM2AKK3ZpcnR1YWxfZ2lkX21hcHMgPSBzdGF0aWM6YGdyZXAgdm1haWwgL2V0Yy9wYXNzd2QgfCBjdXQgLWQgIjoiIC1mIDRgCisKKworIyBZb3UnbGwgc3RhcnQgd2l0aCB0aGUgZm9sbG93aW5nIGxpbmVzIGZvciBJTUFQIHN0b3JhZ2UKKyN2aXJ0dWFsX3RyYW5zcG9ydCA9IGxtdHA6dW5peDovdmFyL2xpYi9jeXJ1cy9zb2NrZXQvbG10cAorCisKKyMgR2VuZXJhbCBzdHVmZiBoZXJlIGFnYWluCisjY29uZmlnX2RpcmVjdG9yeSA9IC9ldGMvcG9zdGZpeAorc2FtcGxlX2RpcmVjdG9yeSA9IC9ldGMvcG9zdGZpeAorcXVldWVfZGlyZWN0b3J5ID0gL3Zhci9zcG9vbC9wb3N0Zml4CittYWlsX3Nwb29sX2RpcmVjdG9yeSA9IC92YXIvc3Bvb2wvbWFpbAorcmVhZG1lX2RpcmVjdG9yeSA9IG5vCitjb21tYW5kX2RpcmVjdG9yeSA9IC91c3Ivc2JpbgorZGFlbW9uX2RpcmVjdG9yeSA9IEBMSUJFWEVDRElSQC9wb3N0Zml4CittYWlsX293bmVyID0gcG9zdGZpeAorc2V0Z2lkX2dyb3VwID0gcG9zdGRyb3AKK3Vua25vd25fbG9jYWxfcmVjaXBpZW50X3JlamVjdF9jb2RlID0gNDUwCitteW5ldHdvcmtzX3N0eWxlID0gaG9zdAorZGVidWdfcGVlcl9sZXZlbCA9IDIKK3NlbmRtYWlsX3BhdGggPSAvdXNyL3NiaW4vc2VuZG1haWwKK25ld2FsaWFzZXNfcGF0aCA9IC91c3IvYmluL25ld2FsaWFzZXMKK21haWxxX3BhdGggPSAvdXNyL2Jpbi9tYWlscQorCitzbXRwZF9kYXRhX3Jlc3RyaWN0aW9ucyA9CisgICAgICAgIHBlcm1pdF9teW5ldHdvcmtzLAorICAgICAgICByZWplY3RfdW5hdXRoX3BpcGVsaW5pbmcsCisgICAgICAgIHBlcm1pdAorCitzbXRwZF9jbGllbnRfcmVzdHJpY3Rpb25zID0KKyAgICAgICAgcGVybWl0X215bmV0d29ya3MsCisgICAgICAgICMgcmVqZWN0X3Vua25vd25fY2xpZW50LCAjIFRoaXMgY2FuIGNhdXNlIGEgbG90IG9mIGZhbHNlIHJlamVjdHMuCisgICAgICAgIHJlamVjdF9pbnZhbGlkX2hvc3RuYW1lLAorICAgICAgICByZWplY3RfcmJsX2NsaWVudCBsaXN0LmRzYmwub3JnLAorICAgICAgICByZWplY3RfcmJsX2NsaWVudCBzYmwuc3BhbWhhdXMub3JnLAorICAgICAgICByZWplY3RfcmJsX2NsaWVudCBjYmwuYWJ1c2VhdC5vcmcsCisgICAgICAgIHJlamVjdF9yYmxfY2xpZW50IGR1bC5kbnNibC5zb3Jicy5uZXQsCisgICAgICAgIHBlcm1pdAorCitzbXRwZF9oZWxvX3JlcXVpcmVkID0geWVzCitzbXRwZF9oZWxvX3Jlc3RyaWN0aW9ucyA9CisgICAgICAgIHBlcm1pdF9teW5ldHdvcmtzLAorICAgICAgICByZWplY3RfdW5hdXRoX3BpcGVsaW5pbmcsCisgICAgICAgICMgcmVqZWN0X25vbl9mcWRuX2hvc3RuYW1lLCAjIFRoaXMgY2FuIGNhdXNlIGEgbG90IG9mIGZhbHNlIHJlamVjdHMuCisgICAgICAgICMgcmVqZWN0X3Vua25vd25faG9zdG5hbWUsICMgVGhpcyBjYW4gY2F1c2UgYSBsb3Qgb2YgZmFsc2UgcmVqZWN0cy4KKyAgICAgICAgcmVqZWN0X2ludmFsaWRfaG9zdG5hbWUsCisgICAgICAgIHBlcm1pdAorCitzbXRwZF9zZW5kZXJfcmVzdHJpY3Rpb25zID0KKyAgICAgICAgcGVybWl0X215bmV0d29ya3MsCisgICAgICAgIHJlamVjdF9ub25fZnFkbl9zZW5kZXIsCisgICAgICAgICMgY2hlY2tfc2VuZGVyX2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9hY2Nlc3NfZG9tYWlucywKKyAgICAgICAgcmVqZWN0X3Vua25vd25fc2VuZGVyX2RvbWFpbiwKKyAgICAgICAgcGVybWl0CisKK3NtdHBkX3JlY2lwaWVudF9yZXN0cmljdGlvbnMgPQorICAgICAgICBwZXJtaXRfbXluZXR3b3JrcywKKyAgICAgICAgcGVybWl0X3Nhc2xfYXV0aGVudGljYXRlZCwKKyAgICAgICAgcmVqZWN0X3VuYXV0aF9kZXN0aW5hdGlvbiwKKworICAgICAgICAjIGNoZWNrX3JlY2lwaWVudF9hY2Nlc3MgcGNyZTovZXRjL3Bvc3RmaXgvcmVjaXBpZW50X2NoZWNrcy5wY3JlLAorICAgICAgICAjIGNoZWNrX2hlbG9fYWNjZXNzIHBjcmU6L2V0Yy9wb3N0Zml4L2hlbG9fY2hlY2tzLnBjcmUsCisKKyAgICAgICAgIyBjaGVja19jbGllbnRfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvYWNjZXNzX2NsaWVudCwKKyAgICAgICAgIyBjaGVja19jbGllbnRfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvZXhjZXB0aW9uc19jbGllbnQsCisgICAgICAgICMgY2hlY2tfaGVsb19hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvbWFwcy9hY2Nlc3NfaGVsbywKKyAgICAgICAgIyBjaGVja19oZWxvX2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9tYXBzL3ZlcmlmeV9oZWxvLAorICAgICAgICAjIGNoZWNrX3NlbmRlcl9hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvbWFwcy9hY2Nlc3Nfc2VuZGVyLAorICAgICAgICAjIGNoZWNrX3NlbmRlcl9hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvbWFwcy92ZXJpZnlfc2VuZGVyLAorICAgICAgICAjIGNoZWNrX3JlY2lwaWVudF9hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvbWFwcy9hY2Nlc3NfcmVjaXBpZW50LAorCisgICAgICAgICMgcmVqZWN0X211bHRpX3JlY2lwaWVudF9ib3VuY2UsCisgICAgICAgIHJlamVjdF9ub25fZnFkbl9yZWNpcGllbnQsCisgICAgICAgIHJlamVjdF91bmtub3duX3JlY2lwaWVudF9kb21haW4sCisgICAgICAgICMgcmVqZWN0X3VubGlzdGVkX3JlY2lwaWVudCwKKyAgICAgICAgI2NoZWNrX3BvbGljeV9zZXJ2aWNlIHVuaXg6cHJpdmF0ZS9wb2xpY3ksCisKKyAgICAgICAgIyBjaGVja19zZW5kZXJfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvbm9fdmVyaWZ5X3NlbmRlciwKKyAgICAgICAgIyBjaGVja19zZW5kZXJfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L2FjY2Vzc19kb21haW5zLAorICAgICAgICAjIHJlamVjdF91bnZlcmlmaWVkX3NlbmRlciwKKyAgICAgICAgIyByZWplY3RfdW52ZXJpZmllZF9yZWNpcGllbnQKKyAgICAgICAgY2hlY2tfcmVjaXBpZW50X2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9pbnRlcm5hbF9yZWNpcGllbnQKKworZGlzYWJsZV92cmZ5X2NvbW1hbmQgPSB5ZXMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9wb3N0Zml4L2ZpbGVzL21haW4uY2ZfMi4wIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvZmlsZXMvbWFpbi5jZl8yLjAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjN2ZlYjUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvZmlsZXMvbWFpbi5jZl8yLjAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotIyBDb25maWd1cmUgeW91ciBkb21haW4gYW5kIGFjY291bnRzCi0jbXlkb21haW49c2FtcGxlLmNvbQotI0ZRRE4gZnJvbSBnZXRob3N0bmFtZQotI215aG9zdG5hbWUgPQotbXlkb21haW49bG9jYWxkb21haW4KLW15ZGVzdGluYXRpb24gPSAkbXlob3N0bmFtZSwgbG9jYWxob3N0LmxvY2FsZG9tYWluIGxvY2FsaG9zdAotbXluZXR3b3JrcyA9IDEyNy4wLjAuMS84Ci1pbmV0X2ludGVyZmFjZXMgPSAxMjcuMC4wLjEKLQotdmlydHVhbF9tYWlsYm94X2RvbWFpbnMgPSBzYW1wbGUuY29tLCBvdGhlci5uZXQKLXZpcnR1YWxfbWFpbGJveF9tYXBzID0gaGFzaDovZXRjL3Bvc3RmaXgvdmlydHVhbAotdmlydHVhbF9hbGlhc19tYXBzID0gaGFzaDovZXRjL3Bvc3RmaXgvdmlydHVhbF9hbGlhcwotCi1hbGlhc19tYXBzID0gaGFzaDovZXRjL2FsaWFzZXMKLQotIyBZb3UnbGwgc3RhcnQgd2l0aCB0aGUgZm9sbG93aW5nIGxpbmVzIGZvciBtYWlsZGlyIHN0b3JhZ2UKLXZpcnR1YWxfbWFpbGJveF9iYXNlID0gL3Zhci9zcG9vbC92bWFpbAotdmlydHVhbF91aWRfbWFwcyA9IHN0YXRpYzpgZ3JlcCB2bWFpbCAvZXRjL3Bhc3N3ZCB8IGN1dCAtZCAiOiIgLWYgM2AKLXZpcnR1YWxfZ2lkX21hcHMgPSBzdGF0aWM6YGdyZXAgdm1haWwgL2V0Yy9wYXNzd2QgfCBjdXQgLWQgIjoiIC1mIDRgCi0KLQotIyBZb3UnbGwgc3RhcnQgd2l0aCB0aGUgZm9sbG93aW5nIGxpbmVzIGZvciBJTUFQIHN0b3JhZ2UKLSN2aXJ0dWFsX3RyYW5zcG9ydCA9IGxtdHA6dW5peDovdmFyL2xpYi9jeXJ1cy9zb2NrZXQvbG10cAotCi0KLSMgR2VuZXJhbCBzdHVmZiBoZXJlIGFnYWluCi0jY29uZmlnX2RpcmVjdG9yeSA9IC9ldGMvcG9zdGZpeAotc2FtcGxlX2RpcmVjdG9yeSA9IC9ldGMvcG9zdGZpeAotcXVldWVfZGlyZWN0b3J5ID0gL3Zhci9zcG9vbC9wb3N0Zml4Ci1tYWlsX3Nwb29sX2RpcmVjdG9yeSA9IC92YXIvc3Bvb2wvbWFpbAotcmVhZG1lX2RpcmVjdG9yeSA9IG5vCi1jb21tYW5kX2RpcmVjdG9yeSA9IC91c3Ivc2JpbgotZGFlbW9uX2RpcmVjdG9yeSA9IEBMSUJFWEVDRElSQAotbWFpbF9vd25lciA9IHBvc3RmaXgKLXNldGdpZF9ncm91cCA9IHBvc3Rkcm9wCi11bmtub3duX2xvY2FsX3JlY2lwaWVudF9yZWplY3RfY29kZSA9IDQ1MAotbXluZXR3b3Jrc19zdHlsZSA9IGhvc3QKLWRlYnVnX3BlZXJfbGV2ZWwgPSAyCi1zZW5kbWFpbF9wYXRoID0gL3Vzci9zYmluL3NlbmRtYWlsCi1uZXdhbGlhc2VzX3BhdGggPSAvdXNyL2Jpbi9uZXdhbGlhc2VzCi1tYWlscV9wYXRoID0gL3Vzci9iaW4vbWFpbHEKLQotc210cGRfZGF0YV9yZXN0cmljdGlvbnMgPQotICAgICAgICBwZXJtaXRfbXluZXR3b3JrcywKLSAgICAgICAgcmVqZWN0X3VuYXV0aF9waXBlbGluaW5nLAotICAgICAgICBwZXJtaXQKLQotc210cGRfY2xpZW50X3Jlc3RyaWN0aW9ucyA9Ci0gICAgICAgIHBlcm1pdF9teW5ldHdvcmtzLAotICAgICAgICAjIHJlamVjdF91bmtub3duX2NsaWVudCwgIyBUaGlzIGNhbiBjYXVzZSBhIGxvdCBvZiBmYWxzZSByZWplY3RzLgotICAgICAgICByZWplY3RfaW52YWxpZF9ob3N0bmFtZSwKLSAgICAgICAgcmVqZWN0X3JibF9jbGllbnQgbGlzdC5kc2JsLm9yZywKLSAgICAgICAgcmVqZWN0X3JibF9jbGllbnQgc2JsLnNwYW1oYXVzLm9yZywKLSAgICAgICAgcmVqZWN0X3JibF9jbGllbnQgY2JsLmFidXNlYXQub3JnLAotICAgICAgICByZWplY3RfcmJsX2NsaWVudCBkdWwuZG5zYmwuc29yYnMubmV0LAotICAgICAgICBwZXJtaXQKLQotc210cGRfaGVsb19yZXF1aXJlZCA9IHllcwotc210cGRfaGVsb19yZXN0cmljdGlvbnMgPQotICAgICAgICBwZXJtaXRfbXluZXR3b3JrcywKLSAgICAgICAgcmVqZWN0X3VuYXV0aF9waXBlbGluaW5nLAotICAgICAgICAjIHJlamVjdF9ub25fZnFkbl9ob3N0bmFtZSwgIyBUaGlzIGNhbiBjYXVzZSBhIGxvdCBvZiBmYWxzZSByZWplY3RzLgotICAgICAgICAjIHJlamVjdF91bmtub3duX2hvc3RuYW1lLCAjIFRoaXMgY2FuIGNhdXNlIGEgbG90IG9mIGZhbHNlIHJlamVjdHMuCi0gICAgICAgIHJlamVjdF9pbnZhbGlkX2hvc3RuYW1lLAotICAgICAgICBwZXJtaXQKLQotc210cGRfc2VuZGVyX3Jlc3RyaWN0aW9ucyA9Ci0gICAgICAgIHBlcm1pdF9teW5ldHdvcmtzLAotICAgICAgICByZWplY3Rfbm9uX2ZxZG5fc2VuZGVyLAotICAgICAgICAjIGNoZWNrX3NlbmRlcl9hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvYWNjZXNzX2RvbWFpbnMsCi0gICAgICAgIHJlamVjdF91bmtub3duX3NlbmRlcl9kb21haW4sCi0gICAgICAgIHBlcm1pdAotCi1zbXRwZF9yZWNpcGllbnRfcmVzdHJpY3Rpb25zID0KLSAgICAgICAgcGVybWl0X215bmV0d29ya3MsCi0gICAgICAgIHBlcm1pdF9zYXNsX2F1dGhlbnRpY2F0ZWQsCi0gICAgICAgIHJlamVjdF91bmF1dGhfZGVzdGluYXRpb24sCi0KLSAgICAgICAgIyBjaGVja19yZWNpcGllbnRfYWNjZXNzIHBjcmU6L2V0Yy9wb3N0Zml4L3JlY2lwaWVudF9jaGVja3MucGNyZSwKLSAgICAgICAgIyBjaGVja19oZWxvX2FjY2VzcyBwY3JlOi9ldGMvcG9zdGZpeC9oZWxvX2NoZWNrcy5wY3JlLAotCi0gICAgICAgICMgY2hlY2tfY2xpZW50X2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9tYXBzL2FjY2Vzc19jbGllbnQsCi0gICAgICAgICMgY2hlY2tfY2xpZW50X2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9tYXBzL2V4Y2VwdGlvbnNfY2xpZW50LAotICAgICAgICAjIGNoZWNrX2hlbG9fYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvYWNjZXNzX2hlbG8sCi0gICAgICAgICMgY2hlY2tfaGVsb19hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvbWFwcy92ZXJpZnlfaGVsbywKLSAgICAgICAgIyBjaGVja19zZW5kZXJfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvYWNjZXNzX3NlbmRlciwKLSAgICAgICAgIyBjaGVja19zZW5kZXJfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvdmVyaWZ5X3NlbmRlciwKLSAgICAgICAgIyBjaGVja19yZWNpcGllbnRfYWNjZXNzIGhhc2g6L2V0Yy9wb3N0Zml4L21hcHMvYWNjZXNzX3JlY2lwaWVudCwKLQotICAgICAgICAjIHJlamVjdF9tdWx0aV9yZWNpcGllbnRfYm91bmNlLAotICAgICAgICByZWplY3Rfbm9uX2ZxZG5fcmVjaXBpZW50LAotICAgICAgICByZWplY3RfdW5rbm93bl9yZWNpcGllbnRfZG9tYWluLAotICAgICAgICAjIHJlamVjdF91bmxpc3RlZF9yZWNpcGllbnQsCi0gICAgICAgICNjaGVja19wb2xpY3lfc2VydmljZSB1bml4OnByaXZhdGUvcG9saWN5LAotCi0gICAgICAgICMgY2hlY2tfc2VuZGVyX2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9tYXBzL25vX3ZlcmlmeV9zZW5kZXIsCi0gICAgICAgICMgY2hlY2tfc2VuZGVyX2FjY2VzcyBoYXNoOi9ldGMvcG9zdGZpeC9hY2Nlc3NfZG9tYWlucywKLSAgICAgICAgIyByZWplY3RfdW52ZXJpZmllZF9zZW5kZXIsCi0gICAgICAgICMgcmVqZWN0X3VudmVyaWZpZWRfcmVjaXBpZW50Ci0gICAgICAgIGNoZWNrX3JlY2lwaWVudF9hY2Nlc3MgaGFzaDovZXRjL3Bvc3RmaXgvaW50ZXJuYWxfcmVjaXBpZW50Ci0KLWRpc2FibGVfdnJmeV9jb21tYW5kID0geWVzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcG9zdGZpeC9maWxlcy9wb3N0Zml4LnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcG9zdGZpeC9maWxlcy9wb3N0Zml4LnNlcnZpY2UKaW5kZXggM2E5YTBhMS4uMzBkNTRhNCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvZmlsZXMvcG9zdGZpeC5zZXJ2aWNlCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9wb3N0Zml4L2ZpbGVzL3Bvc3RmaXguc2VydmljZQpAQCAtNyw3ICs3LDcgQEAKIFR5cGU9Zm9ya2luZwogUElERmlsZT1ATE9DQUxTVEFURURJUkAvc3Bvb2wvcG9zdGZpeC9waWQvbWFzdGVyLnBpZAogRXhlY1N0YXJ0UHJlPS1AU0JJTkRJUkAvY2hlY2tfaG9zdG5hbWUuc2gKLUV4ZWNTdGFydFByZT0tQExJQkVYRUNESVJAL2FsaWFzZXNkYgorRXhlY1N0YXJ0UHJlPS1ATElCRVhFQ0RJUkAvcG9zdGZpeC9hbGlhc2VzZGIKIEV4ZWNTdGFydD1AU0JJTkRJUkAvcG9zdGZpeCBzdGFydAogRXhlY1JlbG9hZD1AU0JJTkRJUkAvcG9zdGZpeCByZWxvYWQKIEV4ZWNTdG9wPUBTQklORElSQC9wb3N0Zml4IHN0b3AKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9wb3N0Zml4L3Bvc3RmaXguaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvcG9zdGZpeC5pbmMKaW5kZXggYTU4OGJkMy4uMDk0NDdkNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvcG9zdGZpeC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvcG9zdGZpeC5pbmMKQEAgLTYsMTEgKzYsMTEgQEAKIAogSE9NRVBBR0U9ICJodHRwOi8vd3d3LnBvc3RmaXgub3JnIgogU0VDVElPTiA9ICJtYWlsIgotREVQRU5EUyA9ICJ2aXJ0dWFsL2RiIGljdSBsaWJwY3JlIG9wZW5zc2wgcG9zdGZpeC1uYXRpdmUgXAorREVQRU5EUyA9ICJkYiBpY3UgbGlicGNyZSBvcGVuc3NsIHBvc3RmaXgtbmF0aXZlIFwKICAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ2xkYXAnLCAnb3BlbmxkYXAnLCAnJywgZCl9IFwKICAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3Nhc2wnLCAnY3lydXMtc2FzbCcsICcnLCBkKX0gXAogIgotREVQRU5EU19jbGFzcy1uYXRpdmUgPSAidmlydHVhbC9kYi1uYXRpdmUgaWN1LW5hdGl2ZSBvcGVuc3NsLW5hdGl2ZSBsaWJwY3JlLW5hdGl2ZSIKK0RFUEVORFNfY2xhc3MtbmF0aXZlID0gImRiLW5hdGl2ZSBpY3UtbmF0aXZlIG9wZW5zc2wtbmF0aXZlIGxpYnBjcmUtbmF0aXZlIgogCiBMSUNFTlNFID0gIklQTC0xLjAiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT02NDM3NWYzNzQzMTMzNmVhMWIxYjMwMDVmZTNmYTM1NCIKQEAgLTE4LDcgKzE4LDcgQEAKIFNSQ19VUkkgPSAiZnRwOi8vZnRwLnBvcmN1cGluZS5vcmcvbWlycm9ycy9wb3N0Zml4LXJlbGVhc2Uvb2ZmaWNpYWwvcG9zdGZpeC0ke1BWfS50YXIuZ3ogXAogICAgIGZpbGU6Ly9tYWtlZGVmcy5wYXRjaCBcCiAgICAgZmlsZTovL2luc3RhbGwucGF0Y2ggXAotICAgIGZpbGU6Ly9tYWluLmNmXzIuMCBcCisgICAgZmlsZTovL21haW4uY2YgXAogICAgIGZpbGU6Ly9wb3N0Zml4IFwKICAgICBmaWxlOi8vaW50ZXJuYWxfcmVjaXBpZW50IFwKICAgICBmaWxlOi8vcG9zdGZpeC5zZXJ2aWNlIFwKQEAgLTEzNSw3ICsxMzUsNyBAQAogZG9faW5zdGFsbCAoKSB7CiAgICAgc2ggLi9wb3N0Zml4LWluc3RhbGwgJ2luc3RhbGxfcm9vdD0ke0R9JyBcCiAgICAgICAgICdjb25maWdfZGlyZWN0b3J5PSR7c3lzY29uZmRpcn0vcG9zdGZpeCcgXAotICAgICAgICAnZGFlbW9uX2RpcmVjdG9yeT0ke2xpYmV4ZWNkaXJ9JyBcCisgICAgICAgICdkYWVtb25fZGlyZWN0b3J5PSR7bGliZXhlY2Rpcn0vcG9zdGZpeCcgXAogICAgICAgICAnY29tbWFuZF9kaXJlY3Rvcnk9JHtzYmluZGlyfScgXAogICAgICAgICAncXVldWVfZGlyZWN0b3J5PSR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wvcG9zdGZpeCcgXAogICAgICAgICAnc2VuZG1haWxfcGF0aD0ke3NiaW5kaXJ9L3NlbmRtYWlsLnBvc3RmaXgnIFwKQEAgLTE0OSw3ICsxNDksNyBAQAogICAgIG12ICR7RH0ke3N5c2NvbmZkaXJ9L3Bvc3RmaXgvbWFpbi5jZiAke0R9JHtzeXNjb25mZGlyfS9wb3N0Zml4L3NhbXBsZS1tYWluLmNmCiAgICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9iaW4vc210cC1zaW5rICR7RH0vJHtzYmluZGlyfS8KICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZAotICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vbWFpbi5jZl8yLjAgJHtEfSR7c3lzY29uZmRpcn0vcG9zdGZpeC9tYWluLmNmCisgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9tYWluLmNmICR7RH0ke3N5c2NvbmZkaXJ9L3Bvc3RmaXgvbWFpbi5jZgogICAgIHNlZCAtaSAncyNATElCRVhFQ0RJUkAjJHtsaWJleGVjZGlyfSMnICR7RH0ke3N5c2NvbmZkaXJ9L3Bvc3RmaXgvbWFpbi5jZgogCiAgICAgaW5zdGFsbCAtbSA3NTUgJHtXT1JLRElSfS9jaGVja19ob3N0bmFtZS5zaCAke0R9JHtzYmluZGlyfS8KQEAgLTE2Myw3ICsxNjMsNyBAQAogICAgIHNlZCAtaSAtZSAncyNATE9DQUxTVEFURURJUkAjJHtsb2NhbHN0YXRlZGlyfSNnJyAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9wb3N0Zml4LnNlcnZpY2UKICAgICBzZWQgLWkgLWUgJ3MjQFNCSU5ESVJAIyR7c2JpbmRpcn0jZycgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vcG9zdGZpeC5zZXJ2aWNlCiAKLSAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS9hbGlhc2VzZGIgJHtEfSR7bGliZXhlY2Rpcn0KKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS9hbGlhc2VzZGIgJHtEfSR7bGliZXhlY2Rpcn0vcG9zdGZpeAogCiAgICAgaW5zdGFsbCAtbSA3NzAgLWQgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wvcG9zdGZpeAogICAgIGNob3duIHBvc3RmaXg6cG9zdGZpeCAke0R9JHtsb2NhbHN0YXRlZGlyfS9zcG9vbC9wb3N0Zml4CkBAIC0yMTksOCArMjE5LDYgQEAKICAgICBzZWQgLWkgJ3M6LWZkZWJ1Zy1wcmVmaXgtbWFwW14gXSo6Omc7IHM6LS1zeXNyb290PSR7U1RBR0lOR19ESVJfVEFSR0VUfTo6ZycgJHtEfS9ldGMvcG9zdGZpeC9tYWtlZGVmcy5vdXQKIH0KIAotTkFUSVZFX0lOU1RBTExfV09SS1MgPSAiMSIKLQogQUxURVJOQVRJVkVfJHtQTn0gPSAic2VuZG1haWwiCiBBTFRFUk5BVElWRV9UQVJHRVRbc2VuZG1haWxdID0gIiR7c2JpbmRpcn0vc2VuZG1haWwucG9zdGZpeCIKIEFMVEVSTkFUSVZFX0xJTktfTkFNRVtzZW5kbWFpbF0gPSAiJHtzYmluZGlyfS9zZW5kbWFpbCIKQEAgLTIzMSw2ICsyMjksNyBAQAogQUxURVJOQVRJVkVfTElOS19OQU1FW25ld2FsaWFzZXMuMV0gPSAiJHttYW5kaXJ9L21hbjEvbmV3YWxpYXNlcy4xIgogQUxURVJOQVRJVkVfTElOS19OQU1FW3NlbmRtYWlsLjFdID0gIiR7bWFuZGlyfS9tYW4xL3NlbmRtYWlsLjEiCiAKK1BBQ0tBR0VfV1JJVEVfREVQUyArPSAicG9zdGZpeC1uYXRpdmUiCiBwa2dfcG9zdGluc3RfJHtQTn0gKCkgewogICAgIGlmIFsgIngkRCIgPSAieCIgXTsgdGhlbgogICAgICAgICB0b3VjaCAvZXRjL2FsaWFzZXMKQEAgLTI0MCwxOSArMjM5LDI0IEBACiAgICAgICAgIHRvdWNoIC9ldGMvcG9zdGZpeC92aXJ0dWFsX2FsaWFzCiAgICAgICAgIHBvc3RtYXAgL2V0Yy9wb3N0Zml4L3ZpcnR1YWxfYWxpYXMKICAgICBlbHNlCisgICAgICAgIGlmICR7QCd0cnVlJyBpZiAnbGludXhzdGRiYXNlJyBpbiBkLmdldFZhcignRElTVFJPT1ZFUlJJREVTJywgRmFsc2UpIGVsc2UgJ2ZhbHNlJ307IHRoZW4KKyAgICAgICAgICAgICMgL3Vzci9saWIvc2VuZG1haWwgaXMgcmVxdWlyZWQgYnkgTFNCIGNvcmUgdGVzdAorICAgICAgICAgICAgWyAhIC1MICREL3Vzci9saWIvc2VuZG1haWwgXSAmJiBsbiAtc2YgJHtzYmluZGlyfS9zZW5kbWFpbCAkRC91c3IvbGliLworICAgICAgICBmaQorCiAgICAgICAgIHRvdWNoICREL2V0Yy9hbGlhc2VzCi0gICAgICAgIG5ld2FsaWFzZXMgLUMgJEQvZXRjL3Bvc3RmaXgvbWFpbi5jZiAtb0EkRC9ldGMvYWxpYXNlcworICAgICAgICAjIFRoaXMgY2FuIGZhaWwgZGVwZW5kaW5nIG9uIGhvc3Qgc2V0dXAKKyAgICAgICAgaWYgISBuZXdhbGlhc2VzIC1DICREL2V0Yy9wb3N0Zml4L21haW4uY2YgLW9BJEQvZXRjL2FsaWFzZXM7IHRoZW4KKyAgICAgICAgICAgICRJTlRFUkNFUFRfRElSL3Bvc3RpbnN0X2ludGVyY2VwdCBkZWxheV90b19maXJzdF9ib290ICR7UEtHfSBtbHByZWZpeD0ke01MUFJFRklYfQorICAgICAgICAgICAgZXhpdCAwCisgICAgICAgIGZpCiAgICAgICAgIHRvdWNoICREL2V0Yy9wb3N0Zml4L3ZpcnR1YWxfYWxpYXMKICAgICAgICAgcG9zdG1hcCAtYyAkRC9ldGMvcG9zdGZpeCAkRC9ldGMvcG9zdGZpeC92aXJ0dWFsX2FsaWFzCiAKLSAgICAgICAgaWYgJHtAJ3RydWUnIGlmICdsaW51eHN0ZGJhc2UnIGluIGQuZ2V0VmFyKCdESVNUUk9PVkVSUklERVMnLCBGYWxzZSkgZWxzZSAnZmFsc2UnfTsgdGhlbgotICAgICAgICAgICAgIyAvdXNyL2xpYi9zZW5kbWlhbCBpcyByZXF1aXJlZCBieSBMU0IgY29yZSB0ZXN0Ci0gICAgICAgICAgICBbICEgLUwgJEQvdXNyL2xpYi9zZW5kbWFpbCBdICYmIGxuIC1zZiAke3NiaW5kaXJ9L3NlbmRtYWlsICREL3Vzci9saWIvCi0gICAgICAgIGZpCiAgICAgZmkKIH0KIAogIyBFeGNsdWRlIC5kZWJ1ZyBkaXJlY3RvcmllcyBmcm9tIHRoZSBtYWluIHBhY2thZ2UKIEZJTEVTXyR7UE59ID0gIiR7c3lzY29uZmRpcn0gJHtsb2NhbHN0YXRlZGlyfSAke2JpbmRpcn0vKiAke3NiaW5kaXJ9LyogXAogICAgICAgICAgICAgICAgJHtsaWJleGVjZGlyfS8qICR7c3lzdGVtZF91bml0ZGlyfS8qIgotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmV4ZWNkaXJ9Ly5kZWJ1ZyIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJleGVjZGlyfS9wb3N0Zml4Ly5kZWJ1ZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9wb3N0Zml4L3Bvc3RmaXhfMy4yLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcG9zdGZpeC9wb3N0Zml4XzMuMi4yLmJiCmluZGV4IDQzOWVkZTkuLjg5YWY0MDYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9wb3N0Zml4L3Bvc3RmaXhfMy4yLjIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3Bvc3RmaXgvcG9zdGZpeF8zLjIuMi5iYgpAQCAtMSwxOCArMSw5IEBACiByZXF1aXJlIHBvc3RmaXguaW5jCiAKLVNSQ19VUkkgPSAiZnRwOi8vZnRwLnBvcmN1cGluZS5vcmcvbWlycm9ycy9wb3N0Zml4LXJlbGVhc2Uvb2ZmaWNpYWwvcG9zdGZpeC0ke1BWfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vbWFrZWRlZnMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vaW5zdGFsbC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9tYWluLmNmXzIuMCBcCi0gICAgICAgICAgIGZpbGU6Ly9wb3N0Zml4IFwKLSAgICAgICAgICAgZmlsZTovL2ludGVybmFsX3JlY2lwaWVudCBcCi0gICAgICAgICAgIGZpbGU6Ly9wb3N0Zml4LnNlcnZpY2UgXAotICAgICAgICAgICBmaWxlOi8vYWxpYXNlc2RiIFwKLSAgICAgICAgICAgZmlsZTovL2NoZWNrX2hvc3RuYW1lLnNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtQ2hlY2stZm9yLWdsaWJjLWJlZm9yZS1zZXR0aW5nLUNBTlRfVVNFX1NFTkRfUkVDVl9NUy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLW1ha2VkZWZzLVVzZS1uYXRpdmUtY29tcGlsZXItdG8tYnVpbGQtbWFrZWRlZnMudGVzdC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9wb3N0Zml4LWluc3RhbGwucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vaWN1LWNvbmZpZy5wYXRjaCBcCitTUkNfVVJJICs9ICJmaWxlOi8vMDAwMS1DaGVjay1mb3ItZ2xpYmMtYmVmb3JlLXNldHRpbmctQ0FOVF9VU0VfU0VORF9SRUNWX01TLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly8wMDAxLW1ha2VkZWZzLVVzZS1uYXRpdmUtY29tcGlsZXItdG8tYnVpbGQtbWFrZWRlZnMudGVzdC5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vcG9zdGZpeC1pbnN0YWxsLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly9pY3UtY29uZmlnLnBhdGNoIFwKICAgICAgICAgICAgIgogU1JDX1VSSVttZDVzdW1dID0gImFlYTA3M2E5YjBiZWE1YmRiNTkwNDYwYTI3MGE0YWEwIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImQwNjg0OTQxOGQxMTlkMDkzNjY5OTdiMmI0ODFiYjIzZjczNzYyOTc2OWI0ZTRhNTJkYTQyZmIzYWQ4YjA1NzYiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcmFkdmQvcmFkdmQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3JhZHZkL3JhZHZkLmluYwppbmRleCBiZmY2OTNjLi4wNmQxNmE0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvcmFkdmQvcmFkdmQuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9yYWR2ZC9yYWR2ZC5pbmMKQEAgLTgsNyArOCw3IEBACiBjaG9vc2UgYSBkZWZhdWx0IHJvdXRlciBiYXNlZCBvbiB0aGVzZSBhZHZlcnRpc2VtZW50cy4iCiBIT01FUEFHRSA9ICJodHRwOi8vd3d3LmxpdGVjaC5vcmcvcmFkdmQvIgogU0VDVElPTiA9ICJuZXQiCi1ERVBFTkRTID0gImZsZXgtbmF0aXZlIGxpYmRhZW1vbiIKK0RFUEVORFMgPSAiZmxleC1uYXRpdmUgYmlzb24tbmF0aXZlIGxpYmRhZW1vbiAiCiAKICMgTGljZW5zZSBpcyBCU0QtU3R5bGUgKHdpdGggYWR2ZXJ0aXNpbmcgY2xhdXNlKSBidXQgYWxzbyBoYXMgYW4gYWRkaXRpb25hbCAwdGggY2xhdXNlCiBMSUNFTlNFID0gInJhZHZkIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzLzAwMDEtU3F1aWROZXctdXNlLW5vZXhjZXB0LWluc3RlYWQtb2YtdGhyb3ctZm9yLUMtMTEtY29tcC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy8wMDAxLVNxdWlkTmV3LXVzZS1ub2V4Y2VwdC1pbnN0ZWFkLW9mLXRocm93LWZvci1DLTExLWNvbXAucGF0Y2gKaW5kZXggNDg2NzRjMy4uZjQ4MmY4MCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzLzAwMDEtU3F1aWROZXctdXNlLW5vZXhjZXB0LWluc3RlYWQtb2YtdGhyb3ctZm9yLUMtMTEtY29tcC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvMDAwMS1TcXVpZE5ldy11c2Utbm9leGNlcHQtaW5zdGVhZC1vZi10aHJvdy1mb3ItQy0xMS1jb21wLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBmOTE1MGEwZGMwOTJhYjJjYmQ0N2VlNDI4NDM2Yjc0N2RjZTMyM2E5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAyN2UxMDY2N2JmMjdiYWY1ZjExOWE3OTFlMzQ3M2JiOTQzNWE3ODZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFN1biwgMjMgQXByIDIwMTcgMTA6Mjg6MjggLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gU3F1aWROZXc6IHVzZSBub2V4Y2VwdCBpbnN0ZWFkIG9mIHRocm93IGZvciBDKysxMSBjb21waWxlcnMKQEAgLTExLDYgKzExLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fgogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBpbmNsdWRlL1NxdWlkTmV3LmggfCA4ICsrKystLS0tCiAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKQEAgLTQzLDYgKzQ0LDMgQEAKICB7CiAgICAgIHhmcmVlKGFkZHJlc3MpOwogIH0KLS0tIAotMi4xMi4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy8wMDAxLWNvbmZpZ3VyZS1DaGVjay1mb3ItV25vLWVycm9yLWZvcm1hdC10cnVuY2F0aW9uLWNvbXAucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvMDAwMS1jb25maWd1cmUtQ2hlY2stZm9yLVduby1lcnJvci1mb3JtYXQtdHJ1bmNhdGlvbi1jb21wLnBhdGNoCmluZGV4IDBjMGEzYWEuLjMwMjEzNmEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy8wMDAxLWNvbmZpZ3VyZS1DaGVjay1mb3ItV25vLWVycm9yLWZvcm1hdC10cnVuY2F0aW9uLWNvbXAucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzLzAwMDEtY29uZmlndXJlLUNoZWNrLWZvci1Xbm8tZXJyb3ItZm9ybWF0LXRydW5jYXRpb24tY29tcC5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gMTRkNDY5YmM4MmM3NTgxMTZhZWY3ZDU0OWFiZDQ5YzEzMWI0MTcwZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gYzIxYWRiYjBiMjMwZmZiYTk3Y2Y1ZDA1OWUyYmQwMjRlMTNhMzdkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBTYXQsIDIyIEFwciAyMDE3IDExOjU0OjU3IC0wNzAwCiBTdWJqZWN0OiBbUEFUQ0hdIGNvbmZpZ3VyZTogQ2hlY2sgZm9yIC1Xbm8tZXJyb3I9Zm9ybWF0LXRydW5jYXRpb24gY29tcGlsZXIKQEAgLTksMzYgKzksMTggQEAKIGNsaWVudC5jOjgzNDoyMzogZXJyb3I6ICclcycgZGlyZWN0aXZlIG91dHB1dCBtYXkgYmUgdHJ1bmNhdGVkIHdyaXRpbmcgdXAgdG8gMTAyMyBieXRlcyBpbnRvIGEgcmVnaW9uIG9mIHNpemUgMTAxMCBbLVdlcnJvcj1mb3JtYXQtdHJ1bmNhdGlvbj1dCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgfCAgMyArLQotIG00L2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNCB8IDc0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBtNC9heF9jaGVja19jb21waWxlX2ZsYWcubTQKIAotSW5kZXg6IHNxdWlkLTMuNS4yNi9jb25maWd1cmUuYWMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBzcXVpZC0zLjUuMjYub3JpZy9jb25maWd1cmUuYWMKLSsrKyBzcXVpZC0zLjUuMjYvY29uZmlndXJlLmFjCi1AQCAtMjYsNiArMjYsNyBAQCBtNF9pbmNsdWRlKFthY2luY2x1ZGUvcGtnLm00XSkKLSBtNF9pbmNsdWRlKFthY2luY2x1ZGUvbGliLWNoZWNrcy5tNF0pCi0gbTRfaW5jbHVkZShbYWNpbmNsdWRlL2F4X2N4eF9jb21waWxlX3N0ZGN4eF8xMS5tNF0pCi0gbTRfaW5jbHVkZShbYWNpbmNsdWRlL2F4X2N4eF8weF90eXBlcy5tNF0pCi0rbTRfaW5jbHVkZShbYWNpbmNsdWRlL2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNF0pCi0gCi0gSE9TVENYWD0iJEJVSUxEX0NYWCIKLSBQUkVTRVRfQ0ZMQUdTPSIkQ0ZMQUdTIgotQEAgLTQ0LDYgKzQ1LDcgQEAgQUNfUFJPR19DWFgKLSBBQ19MQU5HKFtDKytdKQotIEFDX0NBTk9OSUNBTF9IT1NUCi0gCi0rQVhfQ0hFQ0tfQ09NUElMRV9GTEFHKFstV2Vycm9yPWZvcm1hdC10cnVuY2F0aW9uXSxbQ0ZMQUdTPSIkQ0ZMQUdTIC1Xbm8tZXJyb3I9Zm9ybWF0LXRydW5jYXRpb24iIENYWEZMQUdTPSIkQ1hYRkxBR1MgLVduby1lcnJvcj1mb3JtYXQtdHJ1bmNhdGlvbiJdKQotICMgQ2xhbmcgMy4yIG9uIHNvbWUgQ1BVcyByZXF1aXJlcyAtbWFyY2gtbmF0aXZlIHRvIGRldGVjdCBjb3JyZWN0bHkuCi0gIyBHQ0MgNC4zKyBjYW4gYWxzbyBwcm9kdWNlIGZhc3RlciBleGVjdXRhYmxlcyB3aGVuIGl0cyB1c2VkLgotICMgQnV0IGJ1aWxkaW5nIGluc2lkZSBhIHZpcnR1YWwgbWFjaGluZSBlbnZpcm9ubWVudCBoYXMgYmVlbiBmb3VuZCB0bwotSW5kZXg6IHNxdWlkLTMuNS4yNi9hY2luY2x1ZGUvYXhfY2hlY2tfY29tcGlsZV9mbGFnLm00Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0KKyBhY2luY2x1ZGUvYXhfY2hlY2tfY29tcGlsZV9mbGFnLm00IHwgNzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKysKKyAyIGZpbGVzIGNoYW5nZWQsIDc2IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgYWNpbmNsdWRlL2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNAorCitkaWZmIC0tZ2l0IGEvYWNpbmNsdWRlL2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNCBiL2FjaW5jbHVkZS9heF9jaGVja19jb21waWxlX2ZsYWcubTQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5kY2FiYjkyCiAtLS0gL2Rldi9udWxsCi0rKysgc3F1aWQtMy41LjI2L2FjaW5jbHVkZS9heF9jaGVja19jb21waWxlX2ZsYWcubTQKKysrKyBiL2FjaW5jbHVkZS9heF9jaGVja19jb21waWxlX2ZsYWcubTQKIEBAIC0wLDAgKzEsNzQgQEAKICsjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKyMgIGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYXV0b2NvbmYtYXJjaGl2ZS9heF9jaGVja19jb21waWxlX2ZsYWcuaHRtbApAQCAtMTE0LDMgKzk2LDIzIEBACiArICBbbTRfZGVmYXVsdChbJDNdLCA6KV0pCiArQVNfVkFSX1BPUERFRihbQ0FDSEVWQVJdKWRubAogK10pZG5sIEFYX0NIRUNLX0NPTVBJTEVfRkxBR1MKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IGZmNDY4OGMuLjkzODJmZGYgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTI2LDYgKzI2LDcgQEAgbTRfaW5jbHVkZShbYWNpbmNsdWRlL3BrZy5tNF0pCisgbTRfaW5jbHVkZShbYWNpbmNsdWRlL2xpYi1jaGVja3MubTRdKQorIG00X2luY2x1ZGUoW2FjaW5jbHVkZS9heF9jeHhfY29tcGlsZV9zdGRjeHhfMTEubTRdKQorIG00X2luY2x1ZGUoW2FjaW5jbHVkZS9heF9jeHhfMHhfdHlwZXMubTRdKQorK200X2luY2x1ZGUoW2FjaW5jbHVkZS9heF9jaGVja19jb21waWxlX2ZsYWcubTRdKQorIAorIEhPU1RDWFg9IiRCVUlMRF9DWFgiCisgUFJFU0VUX0NGTEFHUz0iJENGTEFHUyIKK0BAIC00NCw2ICs0NSw3IEBAIEFDX1BST0dfQ1hYCisgQUNfTEFORyhbQysrXSkKKyBBQ19DQU5PTklDQUxfSE9TVAorIAorK0FYX0NIRUNLX0NPTVBJTEVfRkxBRyhbLVdlcnJvcj1mb3JtYXQtdHJ1bmNhdGlvbl0sW0NGTEFHUz0iJENGTEFHUyAtV25vLWVycm9yPWZvcm1hdC10cnVuY2F0aW9uIiBDWFhGTEFHUz0iJENYWEZMQUdTIC1Xbm8tZXJyb3I9Zm9ybWF0LXRydW5jYXRpb24iXSkKKyAjIENsYW5nIDMuMiBvbiBzb21lIENQVXMgcmVxdWlyZXMgLW1hcmNoLW5hdGl2ZSB0byBkZXRlY3QgY29ycmVjdGx5LgorICMgR0NDIDQuMysgY2FuIGFsc28gcHJvZHVjZSBmYXN0ZXIgZXhlY3V0YWJsZXMgd2hlbiBpdHMgdXNlZC4KKyAjIEJ1dCBidWlsZGluZyBpbnNpZGUgYSB2aXJ0dWFsIG1hY2hpbmUgZW52aXJvbm1lbnQgaGFzIGJlZW4gZm91bmQgdG8KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy8wMDAxLXRvb2xzLmNjLWZpeGVkLXVudXNlZC1yZXN1bHQtd2FybmluZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy8wMDAxLXRvb2xzLmNjLWZpeGVkLXVudXNlZC1yZXN1bHQtd2FybmluZy5wYXRjaAppbmRleCAwODJhMTExLi44ZWE1NWQwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvMDAwMS10b29scy5jYy1maXhlZC11bnVzZWQtcmVzdWx0LXdhcm5pbmcucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzLzAwMDEtdG9vbHMuY2MtZml4ZWQtdW51c2VkLXJlc3VsdC13YXJuaW5nLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBhNzhmMmYwZmVkYThmOTJjYjU5YWZlODIzNmJkOTA3MjY5MDg3NjhmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBmYWFhNzk2YTEzOGNiZDUwMzNiMWU1M2YzM2ZhYWMwY2Y0MTYyYmY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFN1biwgMjUgSnVuIDIwMTcgMDA6NTk6MjQgLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gdG9vbHMuY2M6IGZpeGVkIHVudXNlZC1yZXN1bHQgd2FybmluZwpAQCAtMTAsOSArMTAsOCBAQAogfCAgICAgIH5+fn5+fl5+fgogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi1VcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZAogCistLS0KICBzcmMvdG9vbHMuY2MgfCA0ICsrLS0KICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCkBAIC0zMSw2ICszMCwzIEBACiAgI2VuZGlmCiAgI2lmIEhBVkVfUFJDVEwgJiYgZGVmaW5lZChQUl9TRVRfRFVNUEFCTEUpCiAgICAgIC8qIFNldCBMaW51eCBEVU1QQUJMRSBmbGFnICovCi0tLSAKLTIuMTMuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvRml4LWZsYXdlZC1keW5hbWljLWxkYi1saW5rLXRlc3QtaW4tY29uZmlndXJlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL0ZpeC1mbGF3ZWQtZHluYW1pYy1sZGItbGluay10ZXN0LWluLWNvbmZpZ3VyZS5wYXRjaAppbmRleCAyMzA0YzVmLi4yNWY2OGFmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvRml4LWZsYXdlZC1keW5hbWljLWxkYi1saW5rLXRlc3QtaW4tY29uZmlndXJlLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9GaXgtZmxhd2VkLWR5bmFtaWMtbGRiLWxpbmstdGVzdC1pbi1jb25maWd1cmUucGF0Y2gKQEAgLTEsOCArMSw3IEBACi1Gcm9tIDBkNWIzMzdmZjVlZjdkZDQ4Zjk3MGYwOGJkOTVkNjMyNzkxN2NmZDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1NZXNzYWdlLUlkOiA8MGQ1YjMzN2ZmNWVmN2RkNDhmOTcwZjA4YmQ5NWQ2MzI3OTE3Y2ZkMS4xMzgyMzc1ODA3LmdpdC5KaW0uU29tZXJ2aWxsZUB3aW5kcml2ZXIuY29tPgorRnJvbSBiNDk0MzU5NDY1NGNkMzQwYjk1YWFiZGMyZjM3NTBhNDcwNWNjMGRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogSmltIFNvbWVydmlsbGUgPEppbS5Tb21lcnZpbGxlQHdpbmRyaXZlci5jb20+CiBEYXRlOiBNb24sIDIxIE9jdCAyMDEzIDEyOjUwOjQ0IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8xXSBGaXggZmxhd2VkIGR5bmFtaWMgLWxkYiBsaW5rIHRlc3QgaW4gY29uZmlndXJlCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBmbGF3ZWQgZHluYW1pYyAtbGRiIGxpbmsgdGVzdCBpbiBjb25maWd1cmUKIAogVGhlIHRlc3QgdXNlcyBkYm9wZW4sIGJ1dCBqdXN0IGlnbm9yZXMgdGhlIGZhY3QKIHRoYXQgdGhpcyBmdW5jdGlvbiBtYXkgbm90IGV4aXN0IGluIHRoZSBkYiB2ZXJzaW9uCkBAIC0xMSwxNSArMTAsMTYgQEAKIGFib3V0IHdoeSBhbmQgc2V0dGluZyB0aGUgbmVlZCBmb3IgLWxkYiBpbmNvcnJlY3RseS4KIAogU2lnbmVkLW9mZi1ieTogSmltIFNvbWVydmlsbGUgPEppbS5Tb21lcnZpbGxlQHdpbmRyaXZlci5jb20+CisKIC0tLQotIGNvbmZpZ3VyZS5hYyB8ICAgMTIgKysrKysrKysrKy0tCi0gMSBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorIGNvbmZpZ3VyZS5hYyB8IDEyICsrKysrKysrKystLQorIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCA5NjJhNzQ4Li40MmU2YTkzIDEwMDY0NAoraW5kZXggNTdjZDFhYy4uMzgyNzIyMiAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMzA1MSw4ICszMDUxLDE2IEBAIEFDX0NIRUNLX0RFQ0woZGJvcGVuLCwsWworQEAgLTMyMjksOCArMzIyOSwxNiBAQCBBQ19DSEVDS19ERUNMKGRib3BlbiwsLFsKICAjaW5jbHVkZSA8ZGIuaD4KICAjZW5kaWZdKQogIApAQCAtMzgsNiArMzgsMyBAQAogIGlmIHRlc3QgIngkYWNfY3ZfZGJvcGVuX2xpYmRiIiA9ICJ4eWVzIjsgdGhlbgogICAgICBMSUJfREI9Ii1sZGIiCiAgZmkKLS0tIAotMS43LjQuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvU2V0LXVwLWZvci1jcm9zcy1jb21waWxhdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9TZXQtdXAtZm9yLWNyb3NzLWNvbXBpbGF0aW9uLnBhdGNoCmluZGV4IDRjYTI3NDQuLjM4NTJmN2MgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9TZXQtdXAtZm9yLWNyb3NzLWNvbXBpbGF0aW9uLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9TZXQtdXAtZm9yLWNyb3NzLWNvbXBpbGF0aW9uLnBhdGNoCkBAIC0xLDI5ICsxLDI4IEBACi1Gcm9tIDE3ZTVhMjg2NjdmNjY3ODU5YzQ4YmVlMjVlNTc1YTA3MmQzOWVlMWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1NZXNzYWdlLUlkOiA8MTdlNWEyODY2N2Y2Njc4NTljNDhiZWUyNWU1NzVhMDcyZDM5ZWUxYi4xMzgxOTU2MTcwLmdpdC5KaW0uU29tZXJ2aWxsZUB3aW5kcml2ZXIuY29tPgorRnJvbSA5OTVhYWYzMDc5OWZhOTcyNDQxMzU0YjZmZWI0NWYwNjIxOTY4OTI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogSmltIFNvbWVydmlsbGUgPEppbS5Tb21lcnZpbGxlQHdpbmRyaXZlci5jb20+CiBEYXRlOiBXZWQsIDE2IE9jdCAyMDEzIDE2OjQxOjAzIC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8xXSBTZXQgdXAgZm9yIGNyb3NzIGNvbXBpbGF0aW9uCitTdWJqZWN0OiBbUEFUQ0hdIFNldCB1cCBmb3IgY3Jvc3MgY29tcGlsYXRpb24KKworTWVzc2FnZS1JZDogPDE3ZTVhMjg2NjdmNjY3ODU5YzQ4YmVlMjVlNTc1YTA3MmQzOWVlMWIuMTM4MTk1NjE3MC5naXQuSmltLlNvbWVydmlsbGVAd2luZHJpdmVyLmNvbT4KIAogU2V0IHRoZSBob3N0IGNvbXBpbGVyIHRvIEJVSUxEX0NYWCBzbwogcHJvcGVyIGNyb3NzIGNvbXBpbGF0aW9uIGNhbiBvY2N1ci4KIAogU2lnbmVkLW9mZi1ieTogSmltIFNvbWVydmlsbGUgPEppbS5Tb21lcnZpbGxlQHdpbmRyaXZlci5jb20+CisKIC0tLQotIGNvbmZpZ3VyZS5hYyB8ICAgIDEgKwotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQorIGNvbmZpZ3VyZS5hYyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQogCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCBjMmQzMDMzLi5kZGE5ZWQ5IDEwMDY0NAoraW5kZXggZmU4MGVlMC4uNTdjZDFhYyAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMTksNiArMTksNyBAQCBtNF9pbmNsdWRlKFthY2luY2x1ZGUvbGliLWNoZWNrcy5tNF0pCi0gbTRfaW5jbHVkZShbYWNpbmNsdWRlL2F4X2N4eF9jb21waWxlX3N0ZGN4eF8weC5tNF0pCitAQCAtMjcsNiArMjcsNyBAQCBtNF9pbmNsdWRlKFthY2luY2x1ZGUvbGliLWNoZWNrcy5tNF0pCisgbTRfaW5jbHVkZShbYWNpbmNsdWRlL2F4X2N4eF9jb21waWxlX3N0ZGN4eF8xMS5tNF0pCiAgbTRfaW5jbHVkZShbYWNpbmNsdWRlL2F4X2N4eF8weF90eXBlcy5tNF0pCiAgCiArSE9TVENYWD0iJEJVSUxEX0NYWCIKICBQUkVTRVRfQ0ZMQUdTPSIkQ0ZMQUdTIgogIFBSRVNFVF9DWFhGTEFHUz0iJENYWEZMQUdTIgogIFBSRVNFVF9MREZMQUdTPSIkTERGTEFHUyIKLS0tIAotMS43LjQuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvU2tpcC1BQ19SVU5fSUZFTFNFLXRlc3RzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL1NraXAtQUNfUlVOX0lGRUxTRS10ZXN0cy5wYXRjaAppbmRleCA3YjZkY2M4Li42YTMzNTI1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvU2tpcC1BQ19SVU5fSUZFTFNFLXRlc3RzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9Ta2lwLUFDX1JVTl9JRkVMU0UtdGVzdHMucGF0Y2gKQEAgLTEsMyArMSw2IEBACitGcm9tIGE4NTMxMTk2NTcwN2JhMmZhNzhmN2NlMDQ0ZTZmNjFlNjVlNjZmZDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKaW0gU29tZXJ2aWxsZSA8SmltLlNvbWVydmlsbGVAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFR1ZSwgMTQgT2N0IDIwMTQgMDI6NTY6MDggLTA0MDAKIFN1YmplY3Q6IFtQQVRDSF0gU2tpcCBBQ19SVU5fSUZFTFNFIHRlc3RzCiAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY3Jvc3MgY29tcGlsaW5nIHNwZWNpZmljXQpAQCAtNywxNiArMTAsMTcgQEAKIAogU2lnbmVkLW9mZi1ieTogSmltIFNvbWVydmlsbGUgPEppbS5Tb21lcnZpbGxlQHdpbmRyaXZlci5jb20+CiBTaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgorCiAtLS0KLSBhY2luY2x1ZGUva3JiNS5tNCAgICAgICB8ICAgMTAgKysrKysrKysrLQotIGFjaW5jbHVkZS9saWItY2hlY2tzLm00IHwgICAgOCArKysrKystLQorIGFjaW5jbHVkZS9rcmI1Lm00ICAgICAgIHwgMTAgKysrKysrKysrLQorIGFjaW5jbHVkZS9saWItY2hlY2tzLm00IHwgIDggKysrKysrLS0KICAyIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9hY2luY2x1ZGUva3JiNS5tNCBiL2FjaW5jbHVkZS9rcmI1Lm00Ci1pbmRleCA5NDZiZWE4Li43YTA3MmEyIDEwMDY0NAoraW5kZXggNWM4M2Q4OC4uYzI2NDExOCAxMDA2NDQKIC0tLSBhL2FjaW5jbHVkZS9rcmI1Lm00CiArKysgYi9hY2luY2x1ZGUva3JiNS5tNAotQEAgLTgyLDcgKzgyLDE1IEBAIG1haW4odm9pZCkKK0BAIC02MSw3ICs2MSwxNSBAQCBtYWluKHZvaWQpCiAgCiAgICAgICAgICByZXR1cm4gMDsKICB9CkBAIC0zNCwzMSArMzgsMjggQEAKICAgIF0pCiAgXSkgZG5sIFNRVUlEX0NIRUNLX0tSQjVfSEVJTURBTF9CUk9LRU5fS1JCNV9ICiBkaWZmIC0tZ2l0IGEvYWNpbmNsdWRlL2xpYi1jaGVja3MubTQgYi9hY2luY2x1ZGUvbGliLWNoZWNrcy5tNAotaW5kZXggMmJmOThlZS4uNTBkYmE5YiAxMDA2NDQKK2luZGV4IGM0ODc0ZGEuLmJhNzI5ODIgMTAwNjQ0CiAtLS0gYS9hY2luY2x1ZGUvbGliLWNoZWNrcy5tNAogKysrIGIvYWNpbmNsdWRlL2xpYi1jaGVja3MubTQKLUBAIC0xMjgsNyArMTI4LDkgQEAgQUNfREVGVU4oW1NRVUlEX0NIRUNLX09QRU5TU0xfR0VUQ0VSVElGSUNBVEVfV09SS1NdLFsKLSAgICBBQ19ERUZJTkUoU1FVSURfU1NMR0VUQ0VSVElGSUNBVEVfQlVHR1ksIDEpCi0gICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKK0BAIC0xNzcsNyArMTc3LDkgQEAgQUNfREVGVU4oW1NRVUlEX0NIRUNLX09QRU5TU0xfQ09OU1RfU1NMX01FVEhPRF0sWworICAgWworICAgIEFDX01TR19SRVNVTFQoW25vXSkKICAgIF0sCiAtICBbXSkKICsgIFsKICsgICBBQ19NU0dfUkVTVUxUKFtza2lwcGVkIC0gY2FuJ3QgdGVzdCBpbiBjcm9zcy1jb21waWxlZCBlbnZdKQogKyAgXSkKICAKLSAgIEFDX01TR19DSEVDS0lORyh3aGV0aGVyIHRoZSB3b3JrYXJvdW5kIGZvciBTU0xfZ2V0X2NlcnRpZmljYXRlIHdvcmtzKQotICAgQUNfUlVOX0lGRUxTRShbCi1AQCAtMTU0LDcgKzE1Niw5IEBAIEFDX0RFRlVOKFtTUVVJRF9DSEVDS19PUEVOU1NMX0dFVENFUlRJRklDQVRFX1dPUktTXSxbCi0gICBbCi0gICAgQUNfTVNHX1JFU1VMVChbbm9dKQorIFNRVUlEX1NUQVRFX1JPTExCQUNLKGNoZWNrX2NvbnN0X1NTTF9NRVRIT0QpCisgXQorQEAgLTI2NSw3ICsyNjcsOSBAQCBBQ19ERUZVTihbU1FVSURfQ0hFQ0tfT1BFTlNTTF9UWFREQl0sWworICAgIEFDX01TR19SRVNVTFQoW3llc10pCisgICAgQUNfREVGSU5FKFNRVUlEX1VTRV9TU0xMSEFTSF9IQUNLLCAxKQogICAgXSwKIC1bXSkKICtbCiArICAgQUNfTVNHX1JFU1VMVChbc2tpcHBlZCAtIGNhbid0IHRlc3QgaW4gY3Jvc3MtY29tcGlsZWQgZW52XSkKICtdKQogIAotIFNRVUlEX1NUQVRFX1JPTExCQUNLKGNoZWNrX1NTTF9nZXRfY2VydGlmaWNhdGUpCisgU1FVSURfU1RBVEVfUk9MTEJBQ0soY2hlY2tfVFhUREIpCiAgXSkKLS0tIAotMS43LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL2djYzctZml4ZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvZ2NjNy1maXhlcy5wYXRjaAppbmRleCBjYzFlYTc4Li4yZmVjYTQ5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvZ2NjNy1maXhlcy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvZ2NjNy1maXhlcy5wYXRjaApAQCAtMSwxMSArMSwyMCBAQAorRnJvbSA2NjBmY2U5Y2ZhMDBhNTdlNWI3Y2VjNDYxMTZhMzFlMjE1OTVjMzA2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IE1vbiwgMTkgSnVuIDIwMTcgMjM6NDc6MDEgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gc3F1aWQ6IFVwZ3JhZGUgdG8gMy41LjI2CisKIC4uLy4uL3NxdWlkLTMuNS4yNi9zcmMvRGlza0lPL0Rpc2tUaHJlYWRzL2Fpb3BzLmNjOiBJbiBmdW5jdGlvbiAndm9pZCBzcXVpZGFpb19pbml0KCknOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4vLi4vc3F1aWQtMy41LjI2L3NyYy9EaXNrSU8vRGlza1RocmVhZHMvRGlza1RocmVhZHMuaDozMDo1MDogZXJyb3I6ICcqJyBpbiBib29sZWFuIGNvbnRleHQsIHN1Z2dlc3QgJyYmJyBpbnN0ZWFkIFstV2Vycm9yPWludC1pbi1ib29sLWNvbnRleHRdICAgICAgI2RlZmluZSBOVU1USFJFQURTIChDb25maWcuY2FjaGVTd2FwLm5fY29uZmlndXJlZCoxNikKIAotCiBVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci1JbmRleDogc3F1aWQtMy41LjI2L3NyYy9EaXNrSU8vRGlza1RocmVhZHMvYWlvcHMuY2MKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBzcXVpZC0zLjUuMjYub3JpZy9zcmMvRGlza0lPL0Rpc2tUaHJlYWRzL2Fpb3BzLmNjCi0rKysgc3F1aWQtMy41LjI2L3NyYy9EaXNrSU8vRGlza1RocmVhZHMvYWlvcHMuY2MKKworLS0tCisgc3JjL0Rpc2tJTy9EaXNrVGhyZWFkcy9haW9wcy5jYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NyYy9EaXNrSU8vRGlza1RocmVhZHMvYWlvcHMuY2MgYi9zcmMvRGlza0lPL0Rpc2tUaHJlYWRzL2Fpb3BzLmNjCitpbmRleCBiNDRhZGZhLi5lMTFmOTQ4IDEwMDY0NAorLS0tIGEvc3JjL0Rpc2tJTy9EaXNrVGhyZWFkcy9haW9wcy5jYworKysrIGIvc3JjL0Rpc2tJTy9EaXNrVGhyZWFkcy9haW9wcy5jYwogQEAgLTI5MCw3ICsyOTAsNyBAQCBzcXVpZGFpb19pbml0KHZvaWQpCiAgICAgIC8qIENyZWF0ZSB0aHJlYWRzIGFuZCBnZXQgdGhlbSB0byBzaXQgaW4gdGhlaXIgd2FpdCBsb29wICovCiAgICAgIHNxdWlkYWlvX3RocmVhZF9wb29sID0gbWVtUG9vbENyZWF0ZSgiYWlvX3RocmVhZCIsIHNpemVvZihzcXVpZGFpb190aHJlYWRfdCkpOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL3NldF9zeXNyb290X3BhdGNoLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL3NldF9zeXNyb290X3BhdGNoLnBhdGNoCmluZGV4IGZkY2QxNzQuLmU5OTA0ODAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9zZXRfc3lzcm9vdF9wYXRjaC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvc2V0X3N5c3Jvb3RfcGF0Y2gucGF0Y2gKQEAgLTEsMTUgKzEsMjMgQEAKLVNldCB0aGUgU1lTUk9PVCBmb3IgbGlieG1sMiBoZWFkZXIgZmlsZSB0byBhdm9pZCBob3N0IGNvbnRhbWluYXRpb24uCitGcm9tIDcwMmJkODgxYjY2ZGMwMzRlNzExYzBmZjQ3ODA1ZjJkYTQwYjZlMGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBZdWUgVGFvIDx5dWUudGFvQHdpbmRyaXZlci5jb20+CitEYXRlOiBNb24sIDggQXVnIDIwMTYgMTY6MDQ6MzMgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gU2V0IHRoZSBTWVNST09UIGZvciBsaWJ4bWwyIGhlYWRlciBmaWxlIHRvIGF2b2lkIGhvc3QKKyBjb250YW1pbmF0aW9uLgogCiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQogCiBTaWduZWQtb2ZmLWJ5OiBZdWUgVGFvIDx5dWUudGFvQHdpbmRyaXZlci5jb20+CiBTaWduZWQtb2ZmLWJ5OiBZaSBaaGFvIDx5aS56aGFvQHdpbmRyaXZlci5jb20+CiAKLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMub2xkIGIvY29uZmlndXJlLmFjCi1pbmRleCA1NGVkYTczLi44NzRmNDhlIDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjLm9sZAorLS0tCisgY29uZmlndXJlLmFjIHwgMTIgKysrKysrLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggNTA0YTg0NC4uZmY0Njg4YyAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCi1AQCAtOTY0LDE1ICs5NjQsMTUgQEAgaWYgdGVzdCAieCRzcXVpZF9vcHRfdXNlX2VzaSIgPSAieHllcyIgLWEgIngkd2l0aF9saWJ4bWwyIiAhPSAieG5vIiA7IHRoZW4KK0BAIC05NzQsMTUgKzk3NCwxNSBAQCBpZiB0ZXN0ICJ4JHNxdWlkX29wdF91c2VfZXNpIiA9ICJ4eWVzIiAtYSAieCR3aXRoX2xpYnhtbDIiICE9ICJ4bm8iIDsgdGhlbgogICAgZG5sIEZpbmQgdGhlIG1haW4gaGVhZGVyIGFuZCBpbmNsdWRlIHBhdGguLi4KICAgIEFDX0NBQ0hFX0NIRUNLKFtsb2NhdGlvbiBvZiBsaWJ4bWwyIGluY2x1ZGUgZmlsZXNdLCBbYWNfY3ZfbGlieG1sMl9pbmNsdWRlXSwgWwogICAgICBBQ19DSEVDS19IRUFERVJTKFtsaWJ4bWwvcGFyc2VyLmhdLCBbXSwgWwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL3NxdWlkLWRvbi10LWRvLXNxdWlkLWNvbmYtdGVzdHMtYXQtYnVpbGQtdGltZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9zcXVpZC1kb24tdC1kby1zcXVpZC1jb25mLXRlc3RzLWF0LWJ1aWxkLXRpbWUucGF0Y2gKaW5kZXggMzEyZjQ0Zi4uZTUyNjdlYSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL3NxdWlkLWRvbi10LWRvLXNxdWlkLWNvbmYtdGVzdHMtYXQtYnVpbGQtdGltZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvc3F1aWQtZG9uLXQtZG8tc3F1aWQtY29uZi10ZXN0cy1hdC1idWlsZC10aW1lLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA1NGE5YzJiYTYwYWRjN2VjMjcyNDc4NjY2MmZkMzk4ZTdjMDM5OTlmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA4Nzg2YjkxNDg4ZGFlM2Y2ZGZlYWRkNjg2ZTgwZDJmZmM1YzI5MzIwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KIERhdGU6IFRodSwgMjUgQXVnIDIwMTYgMTU6MjI6NTcgKzA4MDAKIFN1YmplY3Q6IFtQQVRDSF0gc3F1aWQ6IGRvbid0IGRvIHNxdWlkLWNvbmYtdGVzdHMgYXQgYnVpbGQgdGltZQpAQCAtMTQsMTIgKzE0LDEzIEBACiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2Nyb3NzIGNvbXBpbGUgc3BlY2lmaWNdCiAKIFNpZ25lZC1vZmYtYnk6IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CisKIC0tLQogIHRlc3Qtc3VpdGUvTWFrZWZpbGUuYW0gfCAxNSArKysrKysrLS0tLS0tLS0KICAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbSBiL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0KLWluZGV4IGQ1NDY4YmUuLjc3ZmM0ODAgMTAwNjQ0CitpbmRleCAwNjFhNDYzLi4zNTBkZmIyIDEwMDY0NAogLS0tIGEvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQogKysrIGIvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQogQEAgLTQxLDggKzQxLDcgQEAgVEVTVFMgKz0gZGVidWcgXApAQCAtNTgsNiArNTksMyBAQAogIAkJZWxzZSBicmVhazsgZmk7IFwKICAJZG9uZTsgXAogIAlpZiB0ZXN0ICIkJGZhaWxlZCIgLWVxIDA7IHRoZW4gY3AgJChUUlVFKSAkQCA7IGZpCi0tLSAKLTIuOC4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9zcXVpZC11c2Utc2VyaWFsLXRlc3RzLWNvbmZpZy1uZWVkZWQtYnktcHRlc3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvc3F1aWQvZmlsZXMvc3F1aWQtdXNlLXNlcmlhbC10ZXN0cy1jb25maWctbmVlZGVkLWJ5LXB0ZXN0LnBhdGNoCmluZGV4IDAxZWM1OTYuLjljNzVmMTcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy9zcXVpZC9maWxlcy9zcXVpZC11c2Utc2VyaWFsLXRlc3RzLWNvbmZpZy1uZWVkZWQtYnktcHRlc3QucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3NxdWlkL2ZpbGVzL3NxdWlkLXVzZS1zZXJpYWwtdGVzdHMtY29uZmlnLW5lZWRlZC1ieS1wdGVzdC5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gYmQ1OGQzNjcyYmMyNjc4MjQwMDBmMzRhMzc1NjFjN2FiMmJkNTcxZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gOWJjZWMyMjFhMmJiNDM4ZDhhOWVkNTlhZWQ4NDZmZmUzYmU5Y2ZmYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CiBEYXRlOiBUdWUsIDE5IEp1bCAyMDE2IDAxOjU2OjIzIC0wNDAwCiBTdWJqZWN0OiBbUEFUQ0hdIHNxdWlkOiB1c2Ugc2VyaWFsLXRlc3RzIGNvbmZpZyBuZWVkZWQgYnkgcHRlc3QKQEAgLTksMTIgKzksMTMgQEAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZGVmYXVsdCBhdXRvbWFrZSBiZWhhdmlvciBpbmNvbXBhdGlibGUgd2l0aCBwdGVzdF0KIAogU2lnbmVkLW9mZi1ieTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KKwogLS0tCiAgY29uZmlndXJlLmFjIHwgMiArLQogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQogCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCAwNWFkMDI3Li5lMzI0YjkzIDEwMDY0NAoraW5kZXggMzgyNzIyMi4uNTA0YTg0NCAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCiBAQCAtMTAsNyArMTAsNyBAQCBBQ19QUkVSRVEoMi42MSkKQEAgLTI2LDYgKzI3LDMgQEAKICBBQ19SRVZJU0lPTigkUmV2aXNpb24kKWRubAogIEFDX1BSRUZJWF9ERUZBVUxUKC91c3IvbG9jYWwvc3F1aWQpCiAgQU1fTUFJTlRBSU5FUl9NT0RFCi0tLSAKLTIuOC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvZmlsZXMvY2hhbmdlLXNlY3VyZV9jaHJvb3RfZGlyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC9maWxlcy9jaGFuZ2Utc2VjdXJlX2Nocm9vdF9kaXIucGF0Y2gKaW5kZXggNWYyODYwZS4uYjY5ZGUxZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC9maWxlcy9jaGFuZ2Utc2VjdXJlX2Nocm9vdF9kaXIucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC9maWxlcy9jaGFuZ2Utc2VjdXJlX2Nocm9vdF9kaXIucGF0Y2gKQEAgLTEsMjAgKzEsMjUgQEAKLXZzZnRwZDogY2hhbmdlIGRlZmF1bHQgdmFsdWUgb2Ygc2VjdXJlX2Nocm9vdF9kaXIKK0Zyb20gY2UyYmU1ZDQ5Njc0NDU4MjhkNWFlOWQ5NDYyY2ZhYTc4YWUwM2M3MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pbmcgTGl1IDxtaW5nLmxpdUB3aW5kcml2ZXIuY29tPgorRGF0ZTogV2VkLCAxOCBTZXAgMjAxMyAwOTo0NDoyMCArMDgwMAorU3ViamVjdDogW1BBVENIXSB2c2Z0cGQ6IGNoYW5nZSBkZWZhdWx0IHZhbHVlIG9mIHNlY3VyZV9jaHJvb3RfZGlyCiAKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwogCiBDaGFuZ2Ugc2VjdXJlX2Nocm9vdF9kaXIgcG9pbnRpbmcgdG8gYSB2b2xhdGlsZSBkaXJlY3RvcnkuCiAKIFNpZ25lZC1vZmYtYnk6IE1pbmcgTGl1IDxtaW5nLmxpdUB3aW5kcml2ZXIuY29tPgorCiAtLS0KLSBJTlNUQUxMICAgICAgIHwgICAgNiArKystLS0KLSB0dW5hYmxlcy5jICAgIHwgICAgMiArLQotIHZzZnRwZC5jb25mLjUgfCAgICAyICstCisgSU5TVEFMTCAgICAgICB8IDYgKysrLS0tCisgdHVuYWJsZXMuYyAgICB8IDIgKy0KKyB2c2Z0cGQuY29uZi41IHwgMiArLQogIDMgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogCi1kaWZmIC11cnBOIGEvSU5TVEFMTCBiL0lOU1RBTEwKLS0tLSBhL0lOU1RBTEwJMjAxMy0wOS0xMyAxMDoyMzo1Ny41MDQ5NzIzOTcgKzA4MDAKLSsrKyBiL0lOU1RBTEwJMjAxMy0wOS0xMyAxMDoyNToyNS42NjQ5NzE3NzkgKzA4MDAKLUBAIC0yNywxMSArMjcsMTEgQEAgdXNlciBpbiBjYXNlIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QuIAorZGlmZiAtLWdpdCBhL0lOU1RBTEwgYi9JTlNUQUxMCitpbmRleCA0ZjgxMWFhLi40MjcxMjJhIDEwMDY0NAorLS0tIGEvSU5TVEFMTAorKysrIGIvSU5TVEFMTAorQEAgLTI3LDExICsyNywxMSBAQCB1c2VyIGluIGNhc2UgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdC4gZS5nLjoKICBbcm9vdEBsb2NhbGhvc3Qgcm9vdF0jIHVzZXJhZGQgbm9ib2R5CiAgdXNlcmFkZDogdXNlciBub2JvZHkgZXhpc3RzCiAgCkBAIC0yOSw5ICszNCwxMCBAQAogIAogIDJjKSBGb3IgYW5vbnltb3VzIEZUUCwgeW91IHdpbGwgbmVlZCB0aGUgdXNlciAiZnRwIiB0byBleGlzdCwgYW5kIGhhdmUgYQogIHZhbGlkIGhvbWUgZGlyZWN0b3J5ICh3aGljaCBpcyBOT1Qgb3duZWQgb3Igd3JpdGFibGUgYnkgdGhlIHVzZXIgImZ0cCIpLgotZGlmZiAtdXJwTiBhL3R1bmFibGVzLmMgYi90dW5hYmxlcy5jCi0tLS0gYS90dW5hYmxlcy5jCTIwMTMtMDktMTMgMTA6MjY6MjkuNTU0OTcyODE3ICswODAwCi0rKysgYi90dW5hYmxlcy5jCTIwMTMtMDktMTMgMTA6Mjc6MTguMTA0OTcyMjEwICswODAwCitkaWZmIC0tZ2l0IGEvdHVuYWJsZXMuYyBiL3R1bmFibGVzLmMKK2luZGV4IDI4NGExMGQuLjhjNjNjM2YgMTAwNjQ0CistLS0gYS90dW5hYmxlcy5jCisrKysgYi90dW5hYmxlcy5jCiBAQCAtMjU0LDcgKzI1NCw3IEBAIHR1bmFibGVzX2xvYWRfZGVmYXVsdHMoKQogICAgLyogLXJ3LS0tLS0tLSAqLwogICAgdHVuYWJsZV9jaG93bl91cGxvYWRfbW9kZSA9IDA2MDA7CkBAIC00MSwxMCArNDcsMTEgQEAKICAgIGluc3RhbGxfc3RyX3NldHRpbmcoImZ0cCIsICZ0dW5hYmxlX2Z0cF91c2VybmFtZSk7CiAgICBpbnN0YWxsX3N0cl9zZXR0aW5nKCJyb290IiwgJnR1bmFibGVfY2hvd25fdXNlcm5hbWUpOwogICAgaW5zdGFsbF9zdHJfc2V0dGluZygiL3Zhci9sb2cveGZlcmxvZyIsICZ0dW5hYmxlX3hmZXJsb2dfZmlsZSk7Ci1kaWZmIC11cnBOIGEvdnNmdHBkLmNvbmYuNSBiL3ZzZnRwZC5jb25mLjUKLS0tLSBhL3ZzZnRwZC5jb25mLjUJMjAxMy0wOS0xMyAxMDowOTozMy43NzQ5NzI0NjIgKzA4MDAKLSsrKyBiL3ZzZnRwZC5jb25mLjUJMjAxMy0wOS0xMyAxMDoxMDo0MS45MTQ5NzE5ODkgKzA4MDAKLUBAIC05NjksNyArOTY5LDcgQEAgVGhpcyBvcHRpb24gc2hvdWxkIGJlIHRoZSBuYW1lIG9mIGEgZGlyZQorZGlmZiAtLWdpdCBhL3ZzZnRwZC5jb25mLjUgYi92c2Z0cGQuY29uZi41CitpbmRleCBmY2M2MDIyLi5lNGZmZGVlIDEwMDY0NAorLS0tIGEvdnNmdHBkLmNvbmYuNQorKysrIGIvdnNmdHBkLmNvbmYuNQorQEAgLTk2OSw3ICs5NjksNyBAQCBUaGlzIG9wdGlvbiBzaG91bGQgYmUgdGhlIG5hbWUgb2YgYSBkaXJlY3Rvcnkgd2hpY2ggaXMgZW1wdHkuIEFsc28sIHRoZQogIGRpcmVjdG9yeSBzaG91bGQgbm90IGJlIHdyaXRhYmxlIGJ5IHRoZSBmdHAgdXNlci4gVGhpcyBkaXJlY3RvcnkgaXMgdXNlZAogIGFzIGEgc2VjdXJlIGNocm9vdCgpIGphaWwgYXQgdGltZXMgdnNmdHBkIGRvZXMgbm90IHJlcXVpcmUgZmlsZXN5c3RlbSBhY2Nlc3MuCiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy8wMDAxLXN5c2RlcHV0aWwuYy1GaXgtd2l0aC1tdXNsLXdoaWNoLWRvZXMtbm90LWhhdmUtdXRtcHgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy8wMDAxLXN5c2RlcHV0aWwuYy1GaXgtd2l0aC1tdXNsLXdoaWNoLWRvZXMtbm90LWhhdmUtdXRtcHgucGF0Y2gKaW5kZXggYzM5MTllMS4uZDgxYzk0YSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvMDAwMS1zeXNkZXB1dGlsLmMtRml4LXdpdGgtbXVzbC13aGljaC1kb2VzLW5vdC1oYXZlLXV0bXB4LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zLzAwMDEtc3lzZGVwdXRpbC5jLUZpeC13aXRoLW11c2wtd2hpY2gtZG9lcy1ub3QtaGF2ZS11dG1weC5wYXRjaApAQCAtMSw5ICsxLDEwIEBACi1Gcm9tIGU1NTEzNWMyYTRlYTdlYWUzY2IxZjRkY2NmNjljYTQ3N2VhMDk1YmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGM1Y2FmNTJiOWVkNzlkYTg5MTZlZjU3MjJlZmU2ZGY2MWE4NTZlMmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogVHVlLCAyOCBNYXIgMjAxNyAyMDowOToxMiAtMDcwMAogU3ViamVjdDogW1BBVENIXSBzeXNkZXB1dGlsLmM6IEZpeCB3aXRoIG11c2wgd2hpY2ggZG9lcyBub3QgaGF2ZSB1dG1weAogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBzeXNkZXB1dGlsLmMgfCA0ICsrKy0KICAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCkBAIC0yMyw2ICsyNCwzIEBACiAgCiAgI2RlZmluZSBfX1VTRV9HTlUKICAjaW5jbHVkZSA8dXRtcHguaD4KLS0tIAotMi4xMi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zLzAwMDEtdnNmdHBkLWFsbG93LXN5c2luZm8taW4tdGhlLXNlY2NvbXAtc2FuZGJveC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zLzAwMDEtdnNmdHBkLWFsbG93LXN5c2luZm8taW4tdGhlLXNlY2NvbXAtc2FuZGJveC5wYXRjaAppbmRleCA3YWNjYmJjLi5jNmMwZjgwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy8wMDAxLXZzZnRwZC1hbGxvdy1zeXNpbmZvLWluLXRoZS1zZWNjb21wLXNhbmRib3gucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvMDAwMS12c2Z0cGQtYWxsb3ctc3lzaW5mby1pbi10aGUtc2VjY29tcC1zYW5kYm94LnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSAzN2NjOTI0MzYzNTE1YzhjMzA5OTQ0YzQ1NWJjYmJhN2RkY2M4ZWRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA5YzQ4MjZjMTlmMDRkYTUzMzg4NjIwOTM2MWEyY2FkZGY1ODJkNjVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTWluZ2xpIFl1IDxNaW5nbGkuWXVAd2luZHJpdmVyLmNvbT4KIERhdGU6IFR1ZSwgNiBTZXAgMjAxNiAxNzoxNzo0NCArMDgwMAogU3ViamVjdDogW1BBVENIXSB2c2Z0cGQ6IGFsbG93IHN5c2luZm8oKSBpbiB0aGUgc2VjY29tcCBzYW5kYm94CkBAIC0yNCw2ICsyNCw3IEBACiBPT1BTOiBwcml2X3NvY2tfZ2V0X2NtZAogCiBTaWduZWQtb2ZmLWJ5OiBNaW5nbGkgWXUgPE1pbmdsaS5ZdUB3aW5kcml2ZXIuY29tPgorCiAtLS0KICBzZWNjb21wc2FuZGJveC5jIHwgMSArCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCkBAIC00MCw2ICs0MSwzIEBACiAgICAvKiBNaXNjICovCiAgICBhbGxvd19ucihfX05SX3VtYXNrKTsKICAKLS0tIAotMi44LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvbWFrZWZpbGUtZGVzdGRpci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL21ha2VmaWxlLWRlc3RkaXIucGF0Y2gKaW5kZXggMTk4MGQwOS4uNWFkNWMxNCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvbWFrZWZpbGUtZGVzdGRpci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy9tYWtlZmlsZS1kZXN0ZGlyLnBhdGNoCkBAIC0xLDE0ICsxLDIyIEBACi1Vc2UgREVTVERJUiB3aXRoaW4gaW5zdGFsbCB0byBhbGxvdyBpbnN0YWxsaW5nIHVuZGVyIGEgcHJlZml4CitGcm9tIGJhYjNmNjJmMWZkNWI3YzJhYjE5N2Y0MzExYWQxOTFiZjE4ODE2YjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQYXVsIEVnZ2xldG9uIDxwYXVsLmVnZ2xldG9uQGxpbnV4LmludGVsLmNvbT4KK0RhdGU6IE1vbiwgMjAgRmViIDIwMTIgMTM6NTE6NDkgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIERFU1RESVIgd2l0aGluIGluc3RhbGwgdG8gYWxsb3cgaW5zdGFsbGluZyB1bmRlciBhIHByZWZpeAogCiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAogU2lnbmVkLW9mZi1ieTogUGF1bCBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+CiAKKy0tLQorIE1ha2VmaWxlIHwgMjYgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCisKIGRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCitpbmRleCBjNjNlZDFiLi45ZTRmMzVmIDEwMDY0NAogLS0tIGEvTWFrZWZpbGUKICsrKyBiL01ha2VmaWxlCi1AQCAtMjQsMjEgKzI0LDIxIEBACi0gCSQoQ0MpIC1vIHZzZnRwZCAkKE9CSlMpICQoTElOSykgJChMSUJTKQorQEAgLTI5LDIxICsyOSwyMSBAQCB2c2Z0cGQ6ICQoT0JKUykKKyAJJChDQykgLW8gdnNmdHBkICQoT0JKUykgJChMSU5LKSAkKExERkxBR1MpICQoTElCUykKICAKICBpbnN0YWxsOgogLQlpZiBbIC14IC91c3IvbG9jYWwvc2JpbiBdOyB0aGVuIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL21ha2VmaWxlLWxpYnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy9tYWtlZmlsZS1saWJzLnBhdGNoCmluZGV4IDlhMTBmNzIuLmQyZTU4YTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL21ha2VmaWxlLWxpYnMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvbWFrZWZpbGUtbGlicy5wYXRjaApAQCAtMSw0ICsxLDggQEAKLUhhcmRjb2RlIExJQlMgaW5zdGVhZCBvZiB1c2luZyBhIHNjcmlwdCB0byBkZXRlcm1pbmUgYXZhaWxhYmxlIGxpYnMKK0Zyb20gMzI4Nzk5ZDBjZDVjNTIzYWQ3YTgxNGZlZmVjMTZkOGE4NGFhODAxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBhdWwgRWdnbGV0b24gPHBhdWwuZWdnbGV0b25AbGludXguaW50ZWwuY29tPgorRGF0ZTogVHVlLCAxNiBBcHIgMjAxMyAxMDo1Mzo1NSArMDAwMAorU3ViamVjdDogW1BBVENIXSBIYXJkY29kZSBMSUJTIGluc3RlYWQgb2YgdXNpbmcgYSBzY3JpcHQgdG8gZGV0ZXJtaW5lCisgYXZhaWxhYmxlIGxpYnMKIAogV2Ugd2FudCB0byBhdm9pZCB0aGlzIGR5bmFtaWMgZGV0ZWN0aW9uIHNvIHdlIGhhdmUgYSBkZXRlcm1pbmlzdGljCiBidWlsZC4KQEAgLTcsMTUgKzExLDIwIEBACiAKIFNpZ25lZC1vZmYtYnk6IFBhdWwgRWdnbGV0b24gPHBhdWwuZWdnbGV0b25AbGludXguaW50ZWwuY29tPgogCistLS0KKyBNYWtlZmlsZSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKwogZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKK2luZGV4IDllNGYzNWYuLjNhNTUzNWQgMTAwNjQ0CiAtLS0gYS9NYWtlZmlsZQogKysrIGIvTWFrZWZpbGUKLUBAIC01LDcgKzUsNyBAQAotICNDRkxBR1MgPSAtZwotIENGTEFHUwk9CS1PMiAtV2FsbCAtVyAtV3NoYWRvdyAjLXBlZGFudGljIC1XZXJyb3IgLVdjb252ZXJzaW9uCitAQCAtOCw3ICs4LDcgQEAgQ0ZMQUdTCT0JLU8yIC1mUElFIC1mc3RhY2stcHJvdGVjdG9yIC0tcGFyYW09c3NwLWJ1ZmZlci1zaXplPTQgXAorIAktRF9GT1JUSUZZX1NPVVJDRT0yIFwKKyAJIy1wZWRhbnRpYyAtV2NvbnZlcnNpb24KICAKIC1MSUJTCT0JYC4vdnNmX2ZpbmRsaWJzLnNoYAogK0xJQlMJPQktbHNzbCAtbGNyeXB0byAtbG5zbCAtbHJlc29sdgogIExJTksJPQktV2wsLXMKKyBMREZMQUdTCT0JLWZQSUUgLXBpZSAtV2wsLXoscmVscm8gLVdsLC16LG5vdwogIAotIE9CSlMJPQltYWluLm8gdXRpbGl0eS5vIHByZWxvZ2luLm8gZnRwY21kaW8ubyBwb3N0bG9naW4ubyBwcml2c29jay5vIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL21ha2VmaWxlLXN0cmlwLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvbWFrZWZpbGUtc3RyaXAucGF0Y2gKaW5kZXggZmQzMTYwMC4uZTU5NjA3MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvbWFrZWZpbGUtc3RyaXAucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvbWFrZWZpbGUtc3RyaXAucGF0Y2gKQEAgLTEsMTAgKzEsMTggQEAKLURpc2FibGUgc3RyaXBwaW5nIGF0IGxpbmsgdGltZQorRnJvbSAyNjE4NzRlYTQ3OTczZWExNTYxNDExODUwODIyNTJmYzkyMDgxOTA2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGF1bCBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+CitEYXRlOiBUdWUsIDE2IEFwciAyMDEzIDEwOjUzOjU1ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIERpc2FibGUgc3RyaXBwaW5nIGF0IGxpbmsgdGltZQogCiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ10KIAogU2lnbmVkLW9mZi1ieTogUGF1bCBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+CiAKKy0tLQorIE1ha2VmaWxlIHwgMSAtCisgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKKwogZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKK2luZGV4IDNhNTUzNWQuLmU3ODAxOWEgMTAwNjQ0CiAtLS0gYS9NYWtlZmlsZQogKysrIGIvTWFrZWZpbGUKIEBAIC05LDcgKzksNiBAQCBDRkxBR1MJPQktTzIgLWZQSUUgLWZzdGFjay1wcm90ZWN0b3IgLS1wYXJhbT1zc3AtYnVmZmVyLXNpemU9NCBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy9ub3BhbS13aXRoLXRjcF93cmFwcGVycy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL25vcGFtLXdpdGgtdGNwX3dyYXBwZXJzLnBhdGNoCmluZGV4IGZkY2YzYTAuLmE0Mzg3YzEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL25vcGFtLXdpdGgtdGNwX3dyYXBwZXJzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL25vcGFtLXdpdGgtdGNwX3dyYXBwZXJzLnBhdGNoCkBAIC0xLDExICsxLDIwIEBACi1EaXNhYmxlIFBBTQorRnJvbSA3MTYyOGRkYzkxYjZlZmI5YjkyMmEzZmNmOGNjMTg1MjJmNTM4N2JlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIlJveS5MaSIgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CitEYXRlOiBNb24sIDIwIEZlYiAyMDEyIDEzOjUxOjQ5ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIERpc2FibGUgUEFNCiAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlnXQogCiBTaWduZWQtb2ZmLWJ5OiBSb3kuTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+Ci1kaWZmIC11ciB2c2Z0cGQtMi4wLjFfb3JnL2J1aWxkZGVmcy5oIHZzZnRwZC0yLjAuMV9wYXRjaC9idWlsZGRlZnMuaAotLS0tIHZzZnRwZC0yLjAuMV9vcmcvYnVpbGRkZWZzLmgJMjAwNC0wNy0wMiAxNjozNjo1OS4wMDAwMDAwMDAgKzAyMDAKLSsrKyB2c2Z0cGQtMi4wLjFfcGF0Y2gvYnVpbGRkZWZzLmgJMjAwNC0wNy0yMSAwOTozNDo0OS4wNDQ5MDA0ODggKzAyMDAKKworLS0tCisgYnVpbGRkZWZzLmggfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9idWlsZGRlZnMuaCBiL2J1aWxkZGVmcy5oCitpbmRleCAwMTA2ZDFhLi5mNDhhNTY4IDEwMDY0NAorLS0tIGEvYnVpbGRkZWZzLmgKKysrKyBiL2J1aWxkZGVmcy5oCiBAQCAtMiw3ICsyLDcgQEAKICAjZGVmaW5lIFZTRl9CVUlMRERFRlNfSAogIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvdnNmdHBkLTIuMS4wLWZpbHRlci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL3ZzZnRwZC0yLjEuMC1maWx0ZXIucGF0Y2gKaW5kZXggMzJmN2U4Mi4uNTkwZWI1OCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvdnNmdHBkLTIuMS4wLWZpbHRlci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy92c2Z0cGQtMi4xLjAtZmlsdGVyLnBhdGNoCkBAIC0xLDQgKzEsNyBAQAotRml4IHRoZSBDVkUtMjAxNS0xNDE5CitGcm9tIGI3NTY0NDQ4NTRjNWFiM2IxMjg0ZmQ3MTEzMDQzZmU4ODYwZTk5ZWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CitEYXRlOiBGcmksIDI0IEFwciAyMDE1IDA5OjM2OjQ4ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCB0aGUgQ1ZFLTIwMTUtMTQxOQogCiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIApAQCAtOSwxMCArMTIsMTcgQEAKIAogU2lnbmVkLW9mZi1ieTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgogCi1kaWZmIC11cCB2c2Z0cGQtMi4xLjAvbHMuYy5maWx0ZXIgdnNmdHBkLTIuMS4wL2xzLmMKLS0tLSB2c2Z0cGQtMi4xLjAvbHMuYy5maWx0ZXIJMjAwOC0wMi0wMiAwMjozMDo0MS4wMDAwMDAwMDAgKzAxMDAKLSsrKyB2c2Z0cGQtMi4xLjAvbHMuYwkyMDA5LTAxLTA4IDE5OjMxOjE1LjAwMDAwMDAwMCArMDEwMAotQEAgLTIzOSw5ICsyMzksMzEgQEAgdnNmX2ZpbGVuYW1lX3Bhc3Nlc19maWx0ZXIoY29uc3Qgc3RydWN0IAorLS0tCisgbHMuYyAgfCAyNiArKysrKysrKysrKysrKysrKysrKysrKystLQorIHN0ci5jIHwgMTEgKysrKysrKysrKysKKyBzdHIuaCB8ICAxICsKKyAzIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9scy5jIGIvbHMuYworaW5kZXggN2UxMzc2ZC4uZTkzMDJkZCAxMDA2NDQKKy0tLSBhL2xzLmMKKysrKyBiL2xzLmMKK0BAIC0yNDYsOSArMjQ2LDMxIEBAIHZzZl9maWxlbmFtZV9wYXNzZXNfZmlsdGVyKGNvbnN0IHN0cnVjdCBteXN0ciogcF9maWxlbmFtZV9zdHIsCiAgICBpbnQgcmV0ID0gMDsKICAgIGNoYXIgbGFzdF90b2tlbiA9IDA7CiAgICBpbnQgbXVzdF9tYXRjaF9hdF9jdXJyZW50X3BvcyA9IDE7CkBAIC00NiwxMCArNTYsMTEgQEAKICAgIHdoaWxlICghc3RyX2lzZW1wdHkoJmZpbHRlcl9yZW1haW5fc3RyKSAmJiAqaXRlcnMgPCBWU0ZUUF9NQVRDSElURVJTX01BWCkKICAgIHsKICAgICAgc3RhdGljIHN0cnVjdCBteXN0ciBzX21hdGNoX25lZWRlZF9zdHI7Ci1kaWZmIC11cCB2c2Z0cGQtMi4xLjAvc3RyLmMuZmlsdGVyIHZzZnRwZC0yLjEuMC9zdHIuYwotLS0tIHZzZnRwZC0yLjEuMC9zdHIuYy5maWx0ZXIJMjAwOC0xMi0xNyAwNjo1NDoxNi4wMDAwMDAwMDAgKzAxMDAKLSsrKyB2c2Z0cGQtMi4xLjAvc3RyLmMJMjAwOS0wMS0wOCAxOTozMToxNS4wMDAwMDAwMDAgKzAxMDAKLUBAIC02ODAsMyArNjgwLDE0IEBAIHN0cl9yZXBsYWNlX3VucHJpbnRhYmxlKHN0cnVjdCBteXN0ciogcF8KK2RpZmYgLS1naXQgYS9zdHIuYyBiL3N0ci5jCitpbmRleCA2NTk2MjA0Li5iYTRiOTJhIDEwMDY0NAorLS0tIGEvc3RyLmMKKysrKyBiL3N0ci5jCitAQCAtNzExLDMgKzcxMSwxNCBAQCBzdHJfcmVwbGFjZV91bnByaW50YWJsZShzdHJ1Y3QgbXlzdHIqIHBfc3RyLCBjaGFyIG5ld19jaGFyKQogICAgfQogIH0KICAKQEAgLTY0LDEwICs3NSwxMSBAQAogKyAgaWYgKHN0cl9pc2VtcHR5KGRfc3RyKSkKICsgICBzdHJfY29weSAoZF9zdHIsIHBhdGgpOwogK30KLWRpZmYgLXVwIHZzZnRwZC0yLjEuMC9zdHIuaC5maWx0ZXIgdnNmdHBkLTIuMS4wL3N0ci5oCi0tLS0gdnNmdHBkLTIuMS4wL3N0ci5oLmZpbHRlcgkyMDA4LTEyLTE3IDA2OjUzOjIzLjAwMDAwMDAwMCArMDEwMAotKysrIHZzZnRwZC0yLjEuMC9zdHIuaAkyMDA5LTAxLTA4IDE5OjMyOjE0LjAwMDAwMDAwMCArMDEwMAotQEAgLTEwMCw2ICsxMDAsNyBAQCB2b2lkIHN0cl9yZXBsYWNlX3VucHJpbnRhYmxlKHN0cnVjdCBteXN0CitkaWZmIC0tZ2l0IGEvc3RyLmggYi9zdHIuaAoraW5kZXggYWIwYTlhNC4uM2EyMWI1MCAxMDA2NDQKKy0tLSBhL3N0ci5oCisrKysgYi9zdHIuaAorQEAgLTEwMCw2ICsxMDAsNyBAQCB2b2lkIHN0cl9yZXBsYWNlX3VucHJpbnRhYmxlKHN0cnVjdCBteXN0ciogcF9zdHIsIGNoYXIgbmV3X2NoYXIpOwogIGludCBzdHJfYXRvaShjb25zdCBzdHJ1Y3QgbXlzdHIqIHBfc3RyKTsKICBmaWxlc2l6ZV90IHN0cl9hX3RvX2ZpbGVzaXplX3QoY29uc3Qgc3RydWN0IG15c3RyKiBwX3N0cik7CiAgdW5zaWduZWQgaW50IHN0cl9vY3RhbF90b191aW50KGNvbnN0IHN0cnVjdCBteXN0ciogcF9zdHIpOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvdnNmdHBkLXRjcF93cmFwcGVycy1zdXBwb3J0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1kYWVtb25zL3ZzZnRwZC92c2Z0cGQtMy4wLjMvdnNmdHBkLXRjcF93cmFwcGVycy1zdXBwb3J0LnBhdGNoCmluZGV4IDY5NzQ1YjMuLmM1NThhZWUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZGFlbW9ucy92c2Z0cGQvdnNmdHBkLTMuMC4zL3ZzZnRwZC10Y3Bfd3JhcHBlcnMtc3VwcG9ydC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWRhZW1vbnMvdnNmdHBkL3ZzZnRwZC0zLjAuMy92c2Z0cGQtdGNwX3dyYXBwZXJzLXN1cHBvcnQucGF0Y2gKQEAgLTEsMTEgKzEsMTUgQEAKLUVuYWJsZSB0Y3Bfd3JhcHBlci4KK0Zyb20gYzAyNmIwYzBkZTRlZWJiMTg5YmM3N2IyZDRjM2I5NTI4NDU0YWMwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ICJSb3kuTGkiIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorRGF0ZTogRnJpLCAxOSBKdWwgMjAxMyAxMDoxOToyNSArMDgwMAorU3ViamVjdDogW1BBVENIXSBFbmFibGUgdGNwX3dyYXBwZXIuCiAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KIAogU2lnbmVkLW9mZi1ieTogUm95LkxpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorCiAtLS0KLSBidWlsZGRlZnMuaCB8ICAgIDIgKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKKyBidWlsZGRlZnMuaCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL2J1aWxkZGVmcy5oIGIvYnVpbGRkZWZzLmgKIGluZGV4IGU5MDgzNTIuLjAxMDZkMWEgMTAwNjQ0CkBAIC0yMCw2ICsyNCwzIEBACiAgI2RlZmluZSBWU0ZfQlVJTERfUEFNCiAgI3VuZGVmIFZTRl9CVUlMRF9TU0wKICAKLS0tIAotMS43LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1leHRlbmRlZC9jb3Jvc3luYy9jb3Jvc3luYy8wMDAxLUluY2x1ZGUtZmNudGwuaC1mb3ItRl8tYW5kLU9fLWRlZmluZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWV4dGVuZGVkL2Nvcm9zeW5jL2Nvcm9zeW5jLzAwMDEtSW5jbHVkZS1mY250bC5oLWZvci1GXy1hbmQtT18tZGVmaW5lcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmU0YjA3OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWV4dGVuZGVkL2Nvcm9zeW5jL2Nvcm9zeW5jLzAwMDEtSW5jbHVkZS1mY250bC5oLWZvci1GXy1hbmQtT18tZGVmaW5lcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLUZyb20gODVlYTQ3ZmVkYmM5NmVkOTE4MGUwOGIwZDM3MWQ5OTY2ZTNhODhkYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDMwIEF1ZyAyMDE3IDE3OjI4OjU1IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIEluY2x1ZGUgZmNudGwuaCBmb3IgRl8qIGFuZCBPXyogZGVmaW5lcwotCi1GaXhlcyBlcnJvcnMgbGlrZQotdXRpbHMuYzo5NToyMjogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ09fV1JPTkxZJwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gcWRldmljZXMvdXRpbHMuYyB8IDEgKwotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQotCi1kaWZmIC0tZ2l0IGEvcWRldmljZXMvdXRpbHMuYyBiL3FkZXZpY2VzL3V0aWxzLmMKLWluZGV4IDQxODUwYjhjLi44NzA5MDg1MyAxMDA2NDQKLS0tLSBhL3FkZXZpY2VzL3V0aWxzLmMKLSsrKyBiL3FkZXZpY2VzL3V0aWxzLmMKLUBAIC0zOSw2ICszOSw3IEBACi0gCi0gI2luY2x1ZGUgPGVyci5oPgotICNpbmNsdWRlIDxlcnJuby5oPgotKyNpbmNsdWRlIDxmY250bC5oPgotICNpbmNsdWRlIDxpbnR0eXBlcy5oPgotICNpbmNsdWRlIDxsaWJnZW4uaD4KLSAjaW5jbHVkZSA8c3RkaW8uaD4KLS0tIAotMi4xNC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZXh0ZW5kZWQvY29yb3N5bmMvY29yb3N5bmNfMi40LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWV4dGVuZGVkL2Nvcm9zeW5jL2Nvcm9zeW5jXzIuNC4yLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzM2U3NGUyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZXh0ZW5kZWQvY29yb3N5bmMvY29yb3N5bmNfMi40LjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi1TVU1NQVJZID0gIlRoZSBDb3Jvc3luYyBDbHVzdGVyIEVuZ2luZSBhbmQgQXBwbGljYXRpb24gUHJvZ3JhbW1pbmcgSW50ZXJmYWNlcyIKLURFU0NSSVBUSU9OID0gIlRoaXMgcGFja2FnZSBjb250YWlucyB0aGUgQ29yb3N5bmMgQ2x1c3RlciBFbmdpbmUgRXhlY3V0aXZlLCBzZXZlcmFsIGRlZmF1bHQgXAotQVBJcyBhbmQgbGlicmFyaWVzLCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZXMsIGFuZCBhbiBpbml0IHNjcmlwdC4iCi1IT01FUEFHRSA9ICJodHRwOi8vY29yb3N5bmMuZ2l0aHViLmlvL2Nvcm9zeW5jLyIKLQotU0VDVElPTiA9ICJiYXNlIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgc3lzdGVtZCB1c2VyYWRkCi0KLVNSQ19VUkkgPSAiaHR0cDovL2J1aWxkLmNsdXN0ZXJsYWJzLm9yZy9jb3Jvc3luYy9yZWxlYXNlcy8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1JbmNsdWRlLWZjbnRsLmgtZm9yLUZfLWFuZC1PXy1kZWZpbmVzLnBhdGNoIFwKLSAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiNTQ3ZmE3ODcwNGRhNTNhYTM1OTEyYmU1OGQzMTAzNWYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjI2ZTMwMTEzMDlmZTRiY2NlOTRiMWRjMjBlYThjNDYyZjE5NDgzYTczZjNjYTYyZjEzYjkyNWQwMTFhNGJhOSIKLQotTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1hODVlYjRjZTI0MDMzYWRiNjA4OGRkMWQ2ZmZjNWU1ZCIKLQotREVQRU5EUyA9ICJncm9mZi1uYXRpdmUgbnNzIGxpYnFiIgotCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiY29yb3N5bmMuc2VydmljZSBjb3Jvc3luYy1ub3RpZnlkLnNlcnZpY2UgXAotICAgICAgICAgICAgICAgICAgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3FkZXZpY2UnLCAnY29yb3N5bmMtcWRldmljZS5zZXJ2aWNlJywgJycsIGQpfSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAncW5ldGQnLCAnY29yb3N5bmMtcW5ldGQuc2VydmljZScsICcnLCBkKX0gXAotIgotU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJlbmFibGUiCi0KLUlOSVRTQ1JJUFRfTkFNRSA9ICJjb3Jvc3luYy1kYWVtb24iCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgZCl9IFwKLSAgICAgICAgICAgICAgICAgICBkYnVzIHFkZXZpY2UgcW5ldGQgc25tcCBcCi0iCi0KLVBBQ0tBR0VDT05GSUdbZGJ1c10gPSAiLS1lbmFibGUtZGJ1cywtLWRpc2FibGUtZGJ1cyxkYnVzIgotUEFDS0FHRUNPTkZJR1txZGV2aWNlXSA9ICItLWVuYWJsZS1xZGV2aWNlcywtLWRpc2FibGUtcWRldmljZXMiCi1QQUNLQUdFQ09ORklHW3FuZXRkXSA9ICItLWVuYWJsZS1xbmV0ZCwtLWRpc2FibGUtcW5ldGQiCi1QQUNLQUdFQ09ORklHW3JkbWFdID0gIi0tZW5hYmxlLXJkbWEsLS1kaXNhYmxlLXJkbWEiCi1QQUNLQUdFQ09ORklHW3NubXBdID0gIi0tZW5hYmxlLXNubXAsLS1kaXNhYmxlLXNubXAsbmV0LXNubXAiCi1QQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIi0tZW5hYmxlLXN5c3RlbWQgLS13aXRoLXN5c3RlbWRkaXI9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfSwtLWRpc2FibGUtc3lzdGVtZCAtLXdpdGhvdXQtc3lzdGVtZGRpcixzeXN0ZW1kIgotCi1FWFRSQV9PRUNPTkYgPSAiYWNfY3ZfcGF0aF9CQVNIUEFUSD0ke2Jhc2VfYmluZGlyfS9iYXNoIgotRVhUUkFfT0VNQUtFID0gInRtcGZpbGVzZGlyX0RBVEE9IgotCi1kb19jb25maWd1cmVfcHJlcGVuZCgpIHsKLSAgICAoIGNkICR7U30KLSAgICAke1N9L2F1dG9nZW4uc2ggKQotfQotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3N5c2NvbmZpZy8KLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS9pbml0L2Nvcm9zeW5jLnN5c2NvbmZpZy5leGFtcGxlICR7RH0ke3N5c2NvbmZkaXJ9L3N5c2NvbmZpZy9jb3Jvc3luYwotICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L3Rvb2xzL2Nvcm9zeW5jLW5vdGlmeWQuc3lzY29uZmlnLmV4YW1wbGUgJHtEfSR7c3lzY29uZmRpcn0vc3lzY29uZmlnL2Nvcm9zeW5jLW5vdGlmeWQKLQotICAgIHJtIC1yZiAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0vcnVuIgotCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcwotICAgIGVjaG8gImQgcm9vdCByb290IDA3NTUgJHtsb2NhbHN0YXRlZGlyfS9sb2cvY2x1c3RlciBub25lIiA+ICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvdm9sYXRpbGVzLzA1X2Nvcm9zeW5jCi0KLSAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdxbmV0ZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCi0gICAgICAgIGNob3duIC1SIGNvcm9xbmV0ZDpjb3JvcW5ldGQgJHtEfSR7c3lzY29uZmRpcn0vJHtCUE59L3FuZXRkCi0gICAgICAgIGVjaG8gImQgY29yb3FuZXRkIGNvcm9xbmV0ZCAwNzcwIC92YXIvcnVuL2Nvcm9zeW5jLXFuZXRkIG5vbmUiID4+ICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvdm9sYXRpbGVzLzA1X2Nvcm9zeW5jCi0gICAgZmkKLQotICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCdzeXN0ZW1kJywndHJ1ZScsJ2ZhbHNlJyxkKX07IHRoZW4KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kCi0gICAgICAgIGVjaG8gImQgJHtsb2NhbHN0YXRlZGlyfS9sb2cvY2x1c3RlciAtIC0gLSAtIiA+ICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvY29yb3N5bmMuY29uZgotCi0gICAgICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3FuZXRkJywgJ3RydWUnLCAnZmFsc2UnLCBkKX07IHRoZW4KLSAgICAgICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L2NvbmYvdG1wZmlsZXMuZC9jb3Jvc3luYy1xbmV0ZC5jb25mICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQKLSAgICAgICAgZmkKLSAgICBmaQotfQotCi1SREVQRU5EU18ke1BOfSArPSAiYmFzaCIKLQotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmV4ZWNkaXJ9L2xjcnNvLy5kZWJ1ZyIKLUZJTEVTXyR7UE59LWRvYyArPSAiJHtkYXRhZGlyfS9zbm1wL21pYnMvQ09ST1NZTkMtTUlCLnR4dCIKLQotVVNFUkFERF9QQUNLQUdFUyA9ICIke1BOfSIKLUdST1VQQUREX1BBUkFNXyR7UE59ID0gIi0tc3lzdGVtIGNvcm9xbmV0ZCIKLVVTRVJBRERfUEFSQU1fJHtQTn0gPSAiLS1zeXN0ZW0gLWQgLyAtTSAtcyAvYmluL25vbG9naW4gLWMgJ1VzZXIgZm9yIGNvcm9zeW5jLXFuZXRkJyAtZyBjb3JvcW5ldGQgY29yb3FuZXRkIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1leHRlbmRlZC9jb3Jvc3luYy9jb3Jvc3luY18yLjQuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZXh0ZW5kZWQvY29yb3N5bmMvY29yb3N5bmNfMi40LjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY3M2ZhMwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZXh0ZW5kZWQvY29yb3N5bmMvY29yb3N5bmNfMi40LjMuYmIKQEAgLTAsMCArMSw3OSBAQAorU1VNTUFSWSA9ICJUaGUgQ29yb3N5bmMgQ2x1c3RlciBFbmdpbmUgYW5kIEFwcGxpY2F0aW9uIFByb2dyYW1taW5nIEludGVyZmFjZXMiCitERVNDUklQVElPTiA9ICJUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIENvcm9zeW5jIENsdXN0ZXIgRW5naW5lIEV4ZWN1dGl2ZSwgc2V2ZXJhbCBkZWZhdWx0IFwKK0FQSXMgYW5kIGxpYnJhcmllcywgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZpbGVzLCBhbmQgYW4gaW5pdCBzY3JpcHQuIgorSE9NRVBBR0UgPSAiaHR0cDovL2Nvcm9zeW5jLmdpdGh1Yi5pby9jb3Jvc3luYy8iCisKK1NFQ1RJT04gPSAiYmFzZSIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIHN5c3RlbWQgdXNlcmFkZAorCitTUkNfVVJJID0gImh0dHA6Ly9idWlsZC5jbHVzdGVybGFicy5vcmcvY29yb3N5bmMvcmVsZWFzZXMvJHtCUH0udGFyLmd6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiYmYwZWRlMTMwMThhYWRjOGEwNDYxODNiYzU5M2IwZTAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjFlN2U0MjJlOGQyZjdhZjhlNTMxNWZhMzI5YjFkYmQxMTc1ZmZmMzJlZmFhNTVlODA1NDU4NGM4MGEyYzU5NyIKKworTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1hODVlYjRjZTI0MDMzYWRiNjA4OGRkMWQ2ZmZjNWU1ZCIKKworREVQRU5EUyA9ICJncm9mZi1uYXRpdmUgbnNzIGxpYnFiIgorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiY29yb3N5bmMuc2VydmljZSBjb3Jvc3luYy1ub3RpZnlkLnNlcnZpY2UgXAorICAgICAgICAgICAgICAgICAgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3FkZXZpY2UnLCAnY29yb3N5bmMtcWRldmljZS5zZXJ2aWNlJywgJycsIGQpfSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAncW5ldGQnLCAnY29yb3N5bmMtcW5ldGQuc2VydmljZScsICcnLCBkKX0gXAorIgorU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJkaXNhYmxlIgorCitJTklUU0NSSVBUX05BTUUgPSAiY29yb3N5bmMtZGFlbW9uIgorCitQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsIGQpfSBcCisgICAgICAgICAgICAgICAgICAgZGJ1cyBxZGV2aWNlIHFuZXRkIHNubXAgXAorIgorCitQQUNLQUdFQ09ORklHW2RidXNdID0gIi0tZW5hYmxlLWRidXMsLS1kaXNhYmxlLWRidXMsZGJ1cyIKK1BBQ0tBR0VDT05GSUdbcWRldmljZV0gPSAiLS1lbmFibGUtcWRldmljZXMsLS1kaXNhYmxlLXFkZXZpY2VzIgorUEFDS0FHRUNPTkZJR1txbmV0ZF0gPSAiLS1lbmFibGUtcW5ldGQsLS1kaXNhYmxlLXFuZXRkIgorUEFDS0FHRUNPTkZJR1tyZG1hXSA9ICItLWVuYWJsZS1yZG1hLC0tZGlzYWJsZS1yZG1hIgorUEFDS0FHRUNPTkZJR1tzbm1wXSA9ICItLWVuYWJsZS1zbm1wLC0tZGlzYWJsZS1zbm1wLG5ldC1zbm1wIgorUEFDS0FHRUNPTkZJR1tzeXN0ZW1kXSA9ICItLWVuYWJsZS1zeXN0ZW1kIC0td2l0aC1zeXN0ZW1kZGlyPSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0sLS1kaXNhYmxlLXN5c3RlbWQgLS13aXRob3V0LXN5c3RlbWRkaXIsc3lzdGVtZCIKKworRVhUUkFfT0VDT05GID0gImFjX2N2X3BhdGhfQkFTSFBBVEg9JHtiYXNlX2JpbmRpcn0vYmFzaCBhcF9jdl9jY19waWU9bm8iCitFWFRSQV9PRU1BS0UgPSAidG1wZmlsZXNkaXJfREFUQT0iCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgeworICAgICggY2QgJHtTfQorICAgICR7U30vYXV0b2dlbi5zaCApCit9CisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vc3lzY29uZmlnLworICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L2luaXQvY29yb3N5bmMuc3lzY29uZmlnLmV4YW1wbGUgJHtEfSR7c3lzY29uZmRpcn0vc3lzY29uZmlnL2Nvcm9zeW5jCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vdG9vbHMvY29yb3N5bmMtbm90aWZ5ZC5zeXNjb25maWcuZXhhbXBsZSAke0R9JHtzeXNjb25mZGlyfS9zeXNjb25maWcvY29yb3N5bmMtbm90aWZ5ZAorCisgICAgcm0gLXJmICIke0R9JHtsb2NhbHN0YXRlZGlyfS9ydW4iCisKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvdm9sYXRpbGVzCisgICAgZWNobyAiZCByb290IHJvb3QgMDc1NSAke2xvY2Fsc3RhdGVkaXJ9L2xvZy9jbHVzdGVyIG5vbmUiID4gJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMvMDVfY29yb3N5bmMKKworICAgIGlmIFsgJHtAYmIudXRpbHMuZmlsdGVyKCdQQUNLQUdFQ09ORklHJywgJ3FuZXRkJywgZCl9IF07IHRoZW4KKyAgICAgICAgY2hvd24gLVIgY29yb3FuZXRkOmNvcm9xbmV0ZCAke0R9JHtzeXNjb25mZGlyfS8ke0JQTn0vcW5ldGQKKyAgICAgICAgZWNobyAiZCBjb3JvcW5ldGQgY29yb3FuZXRkIDA3NzAgL3Zhci9ydW4vY29yb3N5bmMtcW5ldGQgbm9uZSIgPj4gJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMvMDVfY29yb3N5bmMKKyAgICBmaQorCisgICAgaWYgWyAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsJ3N5c3RlbWQnLGQpfSBdOyB0aGVuCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAorICAgICAgICBlY2hvICJkICR7bG9jYWxzdGF0ZWRpcn0vbG9nL2NsdXN0ZXIgLSAtIC0gLSIgPiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kL2Nvcm9zeW5jLmNvbmYKKworICAgICAgICBpZiBbICR7QGJiLnV0aWxzLmZpbHRlcignUEFDS0FHRUNPTkZJRycsICdxbmV0ZCcsIGQpfSBdOyB0aGVuCisgICAgICAgICAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS9jb25mL3RtcGZpbGVzLmQvY29yb3N5bmMtcW5ldGQuY29uZiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kCisgICAgICAgIGZpCisgICAgZmkKK30KKworUkRFUEVORFNfJHtQTn0gKz0gImJhc2ggJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN2aW5pdCcsICdzeXN2aW5pdC1waWRvZicsICdwcm9jcHMnLCBkKX0iCisKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJleGVjZGlyfS9sY3Jzby8uZGVidWciCitGSUxFU18ke1BOfS1kb2MgKz0gIiR7ZGF0YWRpcn0vc25tcC9taWJzL0NPUk9TWU5DLU1JQi50eHQiCisKK1VTRVJBRERfUEFDS0FHRVMgPSAiJHtQTn0iCitHUk9VUEFERF9QQVJBTV8ke1BOfSA9ICItLXN5c3RlbSBjb3JvcW5ldGQiCitVU0VSQUREX1BBUkFNXyR7UE59ID0gIi0tc3lzdGVtIC1kIC8gLU0gLXMgL2Jpbi9ub2xvZ2luIC1jICdVc2VyIGZvciBjb3Jvc3luYy1xbmV0ZCcgLWcgY29yb3FuZXRkIGNvcm9xbmV0ZCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZXh0ZW5kZWQvaXNjc2l0YXJnZXQvaXNjc2l0YXJnZXRfMS40LjIwLjMrc3ZuNTAyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1leHRlbmRlZC9pc2NzaXRhcmdldC9pc2NzaXRhcmdldF8xLjQuMjAuMytzdm41MDIuYmIKaW5kZXggNjU5MzY2MS4uNWQxMzU5MSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1leHRlbmRlZC9pc2NzaXRhcmdldC9pc2NzaXRhcmdldF8xLjQuMjAuMytzdm41MDIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1leHRlbmRlZC9pc2NzaXRhcmdldC9pc2NzaXRhcmdldF8xLjQuMjAuMytzdm41MDIuYmIKQEAgLTYwLDMgKzYwLDUgQEAKIAogUkRFUEVORFNfJHtQTn0gPSAia2VybmVsLW1vZHVsZS1pc2NzaS10cmd0IgogUlJFQ09NTUVORFNfJHtQTn0gPSAia2VybmVsLW1vZHVsZS1jcmMzMmMga2VybmVsLW1vZHVsZS1saWJjcmMzMmMiCisKK1BOQkxBQ0tMSVNUW2lzY3NpdGFyZ2V0XSA9ICJlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2luaXRfdGltZXInOyBkaWQgeW91IG1lYW4gJ2luaXRfdGltZXJzJz87IDQuMTUga2VybmVsIGlzc3VlcyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZmlsdGVyL2VidGFibGVzL2VidGFibGVzLTIuMC4xMC00L2VidGFibGVzLmNvbW1vbiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZmlsdGVyL2VidGFibGVzL2VidGFibGVzLTIuMC4xMC00L2VidGFibGVzLmNvbW1vbgppbmRleCA2NDAwMjVkLi4xYWUxOGZlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWZpbHRlci9lYnRhYmxlcy9lYnRhYmxlcy0yLjAuMTAtNC9lYnRhYmxlcy5jb21tb24KKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1maWx0ZXIvZWJ0YWJsZXMvZWJ0YWJsZXMtMi4wLjEwLTQvZWJ0YWJsZXMuY29tbW9uCkBAIC0yMCw3ICsyMCw3IEBACiBjb25maWc9L2V0Yy9kZWZhdWx0LyRwcm9nCiBbIC1mICIkY29uZmlnIiBdICYmIC4gIiRjb25maWciCiAKLWZ1bmN0aW9uIGdldF9zdXBwb3J0ZWRfdGFibGVzKCkgeworZ2V0X3N1cHBvcnRlZF90YWJsZXMoKSB7CiAJRUJUQUJMRVNfU1VQUE9SVEVEX1RBQkxFUz0KIAkvc2Jpbi9lYnRhYmxlcyAtdCBmaWx0ZXIgLUwgMj4mMSAxPi9kZXYvbnVsbCB8IGdyZXAgLXEgcGVybWlzc2lvbgogCWlmIFsgJD8gLWVxIDAgXTsgdGhlbgpAQCAtMzUsNyArMzUsNyBAQAogCWRvbmUKIH0KIAotZnVuY3Rpb24gbG9hZCgpIHsKK2xvYWQoKSB7CiAJUkVUVkFMPTAKIAlnZXRfc3VwcG9ydGVkX3RhYmxlcwogCWVjaG8gLW4gIlJlc3RvcmluZyBlYnRhYmxlcyBydWxlc2V0czogIgpAQCAtNjQsNyArNjQsNyBAQAogCWZpCiB9CiAKLWZ1bmN0aW9uIGNsZWFyKCkgeworY2xlYXJfcnVsZXMoKSB7CiAJUkVUVkFMPTAKIAlnZXRfc3VwcG9ydGVkX3RhYmxlcwogCWVjaG8gLW4gIkNsZWFyaW5nIGVidGFibGVzIHJ1bGVzZXRzOiAiCkBAIC05MCw3ICs5MCw3IEBACiAJZmkKIH0KIAotZnVuY3Rpb24gc2F2ZSgpIHsKK3NhdmUoKSB7CiAJUkVUVkFMPTAKIAlnZXRfc3VwcG9ydGVkX3RhYmxlcwogCWVjaG8gLW4gIlNhdmluZyBlYnRhYmxlcyBydWxlc2V0czogIgpAQCAtMTI3LDExICsxMjcsMTEgQEAKIAk7OwogICBzdG9wKQogCVsgIiRFQlRBQkxFU19TQVZFX09OX1NUT1AiID0gInllcyIgXSAmJiBzYXZlCi0JY2xlYXIKKwljbGVhcl9ydWxlcwogCTs7CiAgIHJlc3RhcnR8cmVsb2FkfGZvcmNlLXJlbG9hZCkKIAlbICIkRUJUQUJMRVNfU0FWRV9PTl9SRVNUQVJUIiA9ICJ5ZXMiIF0gJiYgc2F2ZQotCWNsZWFyCisJY2xlYXJfcnVsZXMKIAlbICIkRUJUQUJMRVNfTE9BRF9PTl9TVEFSVCIgPSAieWVzIiBdICYmIGxvYWQKIAk7OwogICBsb2FkKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1maWx0ZXIvZWJ0YWJsZXMvZWJ0YWJsZXNfMi4wLjEwLTQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWZpbHRlci9lYnRhYmxlcy9lYnRhYmxlc18yLjAuMTAtNC5iYgppbmRleCBkNWU3MzQxLi5iOWRjZTY5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWZpbHRlci9lYnRhYmxlcy9lYnRhYmxlc18yLjAuMTAtNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWZpbHRlci9lYnRhYmxlcy9lYnRhYmxlc18yLjAuMTAtNC5iYgpAQCAtMjksOSArMjksMTAgQEAKICAgICAgICAgICAgZmlsZTovLzAwMDctZXh0ZW5zaW9ucy1Vc2Utc3RkaW50LXR5cGVzLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDgtZXRoZXJuZXRkYi5oLVJlbW92ZS1DLXNwZWNpZmljLWNvbXBpbGVyLWhpbnQtbWFjcm8tXy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDA5LWVidGFibGVzLUFsbG93LVJFVFVSTi10YXJnZXQtcnVsZXMtaW4tdXNlci1kZWZpbmVkLWMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAxMC1BZGp1c3QtaGVhZGVyLWluY2x1ZGUtc2VxdWVuY2UucGF0Y2ggXAogICAgICAgICAgICAiCiAKK1NSQ19VUklfYXBwZW5kX2xpYmMtbXVzbCA9ICIgZmlsZTovLzAwMTAtQWRqdXN0LWhlYWRlci1pbmNsdWRlLXNlcXVlbmNlLnBhdGNoIgorCiBTUkNfVVJJW21kNXN1bV0gPSAiNTA2NzQyYTNkNDRiOTkyNTk1NTQyNWE2NTljMWE4ZDAiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZGM2ZjdiNDg0ZjIwN2RjNzEyYmZjYTgxNjQ1ZjQ1MTIwY2I2YWVlMzM4MGU3N2ExNzcxZTljMzRhOWE0NDU1ZCIKIApAQCAtNDIsMTAgKzQzLDEwIEBACiBweXRob24gX19hbm9ueW1vdXMgKCkgewogICAgIGltcG9ydCByZQogCi0gICAga2FyY2ggPSBkLmdldFZhcignS0FSQ0gnKQorICAgIGthcmNoID0gZC5nZXRWYXIoJ1RBUkdFVF9BUkNIJykKICAgICBtdWx0aWxpYiA9IGQuZ2V0VmFyKCdNTFBSRUZJWCcpCiAKLSAgICBpZiBtdWx0aWxpYiBhbmQga2FyY2ggPT0gJ3Bvd2VycGM2NCc6CisgICAgaWYgbXVsdGlsaWIgYW5kICgga2FyY2ggPT0gJ3Bvd2VycGM2NCcgb3Iga2FyY2ggPT0gJ2FybScgKToKICAgICAgICAgc2VhcmNoc3RyID0gImxpYi4/MzIiCiAgICAgICAgIHJlZyA9IHJlLmNvbXBpbGUoc2VhcmNoc3RyKQogICAgICAgICBpZiByZWcuc2VhcmNoKG11bHRpbGliKToKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZmlsdGVyL2xpYm5ldGZpbHRlci9maWxlcy9saWJuZXRmaWx0ZXItY3RoZWxwZXItdmlzaWJpbGl0eS1oaWRkZW4ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWZpbHRlci9saWJuZXRmaWx0ZXIvZmlsZXMvbGlibmV0ZmlsdGVyLWN0aGVscGVyLXZpc2liaWxpdHktaGlkZGVuLnBhdGNoCmluZGV4IDkzNzdmNTcuLmU3MTdkNWIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtZmlsdGVyL2xpYm5ldGZpbHRlci9maWxlcy9saWJuZXRmaWx0ZXItY3RoZWxwZXItdmlzaWJpbGl0eS1oaWRkZW4ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1maWx0ZXIvbGlibmV0ZmlsdGVyL2ZpbGVzL2xpYm5ldGZpbHRlci1jdGhlbHBlci12aXNpYmlsaXR5LWhpZGRlbi5wYXRjaApAQCAtMjAsMTAgKzIwLDEwIEBACiAgc3JjL2xpYm5ldGZpbHRlcl9jdGhlbHBlci5jIHwgODMgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgMyBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL2RveHlnZW4uY2ZnLmluIGIvZG94eWdlbi5jZmcuaW4KLWluZGV4IGNhYzliMDUuLjE5MGI3Y2QgMTAwNjQ0Ci0tLS0gYS9kb3h5Z2VuLmNmZy5pbgotKysrIGIvZG94eWdlbi5jZmcuaW4KK0luZGV4OiBsaWJuZXRmaWx0ZXJfY3RoZWxwZXItMS4wLjAvZG94eWdlbi5jZmcuaW4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBsaWJuZXRmaWx0ZXJfY3RoZWxwZXItMS4wLjAub3JpZy9kb3h5Z2VuLmNmZy5pbgorKysrIGxpYm5ldGZpbHRlcl9jdGhlbHBlci0xLjAuMC9kb3h5Z2VuLmNmZy5pbgogQEAgLTcyLDcgKzcyLDcgQEAgUkVDVVJTSVZFICAgICAgICAgICAgICA9IFlFUwogIEVYQ0xVREUgICAgICAgICAgICAgICAgPSAKICBFWENMVURFX1NZTUxJTktTICAgICAgID0gTk8KQEAgLTMzLDEwICszMywxMCBAQAogIEVYQU1QTEVfUEFUSCAgICAgICAgICAgPSAKICBFWEFNUExFX1BBVFRFUk5TICAgICAgID0gCiAgRVhBTVBMRV9SRUNVUlNJVkUgICAgICA9IE5PCi1kaWZmIC0tZ2l0IGEvc3JjL2ludGVybmFsLmggYi9zcmMvaW50ZXJuYWwuaAotaW5kZXggM2E4OGQxYS4uNWQ3ODE3MSAxMDA2NDQKLS0tLSBhL3NyYy9pbnRlcm5hbC5oCi0rKysgYi9zcmMvaW50ZXJuYWwuaAorSW5kZXg6IGxpYm5ldGZpbHRlcl9jdGhlbHBlci0xLjAuMC9zcmMvaW50ZXJuYWwuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGxpYm5ldGZpbHRlcl9jdGhlbHBlci0xLjAuMC5vcmlnL3NyYy9pbnRlcm5hbC5oCisrKysgbGlibmV0ZmlsdGVyX2N0aGVscGVyLTEuMC4wL3NyYy9pbnRlcm5hbC5oCiBAQCAtMywxMCArMyw5IEBACiAgCiAgI2luY2x1ZGUgImNvbmZpZy5oIgpAQCAtNTAsMTAgKzUwLDEwIEBACiAgI2VuZGlmCiAgCiAgI2VuZGlmCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYm5ldGZpbHRlcl9jdGhlbHBlci5jIGIvc3JjL2xpYm5ldGZpbHRlcl9jdGhlbHBlci5jCi1pbmRleCBmOGY1OGU2Li5hZjU0M2ExIDEwMDY0NAotLS0tIGEvc3JjL2xpYm5ldGZpbHRlcl9jdGhlbHBlci5jCi0rKysgYi9zcmMvbGlibmV0ZmlsdGVyX2N0aGVscGVyLmMKK0luZGV4OiBsaWJuZXRmaWx0ZXJfY3RoZWxwZXItMS4wLjAvc3JjL2xpYm5ldGZpbHRlcl9jdGhlbHBlci5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbGlibmV0ZmlsdGVyX2N0aGVscGVyLTEuMC4wLm9yaWcvc3JjL2xpYm5ldGZpbHRlcl9jdGhlbHBlci5jCisrKysgbGlibmV0ZmlsdGVyX2N0aGVscGVyLTEuMC4wL3NyYy9saWJuZXRmaWx0ZXJfY3RoZWxwZXIuYwogQEAgLTk5LDE3ICs5OSwxNiBAQCBzdHJ1Y3QgbmZjdF9oZWxwZXIgewogICAqIEluIGNhc2Ugb2Ygc3VjY2VzcywgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgdmFsaWQgcG9pbnRlciwgb3RoZXJ3aXNlIE5VTEwKICAgKiBzIHJldHVybmVkIGFuZCBlcnJubyBpcyBhcHByb3ByaWF0ZWx5IHNldC4KQEAgLTc0LDkgKzc0LDkgQEAKICB7CiAgCWludCBpOwogIAotQEAgLTExOSw3ICsxMTgsNiBAQCB2b2lkIG5mY3RfaGVscGVyX2ZyZWUoc3RydWN0IG5mY3RfaGVscGVyICpoKQorQEAgLTExOSw3ICsxMTgsNiBAQCB2b2lkIG5mY3RfaGVscGVyX2ZyZWUoc3RydWN0IG5mY3RfaGVscGVyCisgCQkJZnJlZShoLT5leHBlY3RfcG9saWN5W2ldKTsKICAJfQotIAlmcmVlKGgpOwogIH0KIC1FWFBPUlRfU1lNQk9MKG5mY3RfaGVscGVyX2ZyZWUpOwogIApAQCAtMTE1LDcgKzExNSw3IEBACiAgbmZjdF9oZWxwZXJfcG9saWN5X2F0dHJfc2V0KHN0cnVjdCBuZmN0X2hlbHBlcl9wb2xpY3kgKnAsCiAgCQkJICAgIGVudW0gbmZjdF9oZWxwZXJfcG9saWN5X2F0dHJfdHlwZSB0eXBlLAogIAkJCSAgICBjb25zdCB2b2lkICpkYXRhKQotQEAgLTE3MCw3ICsxNjYsNiBAQCBuZmN0X2hlbHBlcl9wb2xpY3lfYXR0cl9zZXQoc3RydWN0IG5mY3RfaGVscGVyX3BvbGljeSAqcCwKK0BAIC0xNzAsNyArMTY2LDYgQEAgbmZjdF9oZWxwZXJfcG9saWN5X2F0dHJfc2V0KHN0cnVjdCBuZmN0XwogIAkJYnJlYWs7CiAgCX0KICB9CkBAIC0xMjMsNyArMTIzLDcgQEAKICAKICAvKioKICAgKiBuZmN0X2hlbHBlcl9hdHRyX3NldF9zdHIgLSBzZXQgb25lIGF0dHJpYnV0ZSB0aGUgaGVscGVyIG9iamVjdAotQEAgLTE3OCwyMyArMTczLDIxIEBAIEVYUE9SVF9TWU1CT0wobmZjdF9oZWxwZXJfcG9saWN5X2F0dHJfc2V0KTsKK0BAIC0xNzgsMjMgKzE3MywyMSBAQCBFWFBPUlRfU1lNQk9MKG5mY3RfaGVscGVyX3BvbGljeV9hdHRyX3NlCiAgICogXHBhcmFtIHR5cGUgYXR0cmlidXRlIHR5cGUgeW91IHdhbnQgdG8gc2V0CiAgICogXHBhcmFtIG5hbWUgc3RyaW5nIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNldCB0aGlzIGF0dHJpYnV0ZQogICAqLwpAQCAtMTQ5LDcgKzE0OSw3IEBACiAgCiAgLyoqCiAgICogbmZjdF9oZWxwZXJfYXR0cl9zZXQgLSBzZXQgb25lIGF0dHJpYnV0ZSBvZiB0aGUgaGVscGVyIG9iamVjdAotQEAgLTIwMiw3ICsxOTUsNyBAQCBFWFBPUlRfU1lNQk9MKG5mY3RfaGVscGVyX3BvbGljeV9hdHRyX3NldF91MzIpOworQEAgLTIwMiw3ICsxOTUsNyBAQCBFWFBPUlRfU1lNQk9MKG5mY3RfaGVscGVyX3BvbGljeV9hdHRyX3NlCiAgICogXHBhcmFtIHR5cGUgYXR0cmlidXRlIHR5cGUgeW91IHdhbnQgdG8gc2V0CiAgICogXHBhcmFtIGRhdGEgcG9pbnRlciB0byBkYXRhIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNldCB0aGlzIGF0dHJpYnV0ZQogICAqLwpAQCAtMTU4LDcgKzE1OCw3IEBACiAgbmZjdF9oZWxwZXJfYXR0cl9zZXQoc3RydWN0IG5mY3RfaGVscGVyICpoLAogIAkJICAgICBlbnVtIG5mY3RfaGVscGVyX2F0dHJfdHlwZSB0eXBlLCBjb25zdCB2b2lkICpkYXRhKQogIHsKLUBAIC0yNTAsNyArMjQzLDYgQEAgbmZjdF9oZWxwZXJfYXR0cl9zZXQoc3RydWN0IG5mY3RfaGVscGVyICpoLAorQEAgLTI1MCw3ICsyNDMsNiBAQCBuZmN0X2hlbHBlcl9hdHRyX3NldChzdHJ1Y3QgbmZjdF9oZWxwZXIKICAJCWJyZWFrOwogIAl9CiAgfQpAQCAtMjE2LDcgKzIxNiw3IEBACiAgbmZjdF9oZWxwZXJfYXR0cl91bnNldChzdHJ1Y3QgbmZjdF9oZWxwZXIgKm5mY3RfaGVscGVyLCBlbnVtIG5mY3RfaGVscGVyX2F0dHJfdHlwZSB0eXBlKQogIHsKICAJc3dpdGNoKHR5cGUpIHsKLUBAIC0zMDcsNyArMjk1LDYgQEAgbmZjdF9oZWxwZXJfYXR0cl91bnNldChzdHJ1Y3QgbmZjdF9oZWxwZXIgKm5mY3RfaGVscGVyLCBlbnVtIG5mY3RfaGVscGVyX2F0dHJfdHkKK0BAIC0zMDcsNyArMjk1LDYgQEAgbmZjdF9oZWxwZXJfYXR0cl91bnNldChzdHJ1Y3QgbmZjdF9oZWxwZQogIAkJYnJlYWs7CiAgCX0KICB9CkBAIC0yMzYsNyArMjM2LDcgQEAKICB7CiAgCWNvbnN0IHZvaWQgKnJldCA9IE5VTEw7CiAgCi1AQCAtMzU4LDcgKzM0Niw2IEBAIGNvbnN0IHZvaWQgKm5mY3RfaGVscGVyX2F0dHJfZ2V0KHN0cnVjdCBuZmN0X2hlbHBlciAqaGVscGVyLAorQEAgLTM1OCw3ICszNDYsNiBAQCBjb25zdCB2b2lkICpuZmN0X2hlbHBlcl9hdHRyX2dldChzdHJ1Y3QKICAJfQogIAlyZXR1cm4gcmV0OwogIH0KQEAgLTMyMSw3ICszMjEsNyBAQAogIHsKICAJaW50IHJldDsKICAKLUBAIC00NTQsNyArNDQxLDYgQEAgaW50IG5mY3RfaGVscGVyX3NucHJpbnRmKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsCitAQCAtNDU0LDcgKzQ0MSw2IEBAIGludCBuZmN0X2hlbHBlcl9zbnByaW50ZihjaGFyICpidWYsIHNpemUKICAKICAJcmV0dXJuIHJldDsKICB9CkBAIC0zMzgsNyArMzM4LDcgQEAKICBuZmN0X2hlbHBlcl9ubG1zZ19idWlsZF9oZHIoY2hhciAqYnVmLCB1aW50OF90IGNtZCwKICAJCQkgICAgdWludDE2X3QgZmxhZ3MsIHVpbnQzMl90IHNlcSkKICB7Ci1AQCAtNTA5LDcgKzQ5NSw2IEBAIG5mY3RfaGVscGVyX25sbXNnX2J1aWxkX2hkcihjaGFyICpidWYsIHVpbnQ4X3QgY21kLAorQEAgLTUwOSw3ICs0OTUsNiBAQCBuZmN0X2hlbHBlcl9ubG1zZ19idWlsZF9oZHIoY2hhciAqYnVmLCB1CiAgCiAgCXJldHVybiBubGg7CiAgfQpAQCAtMzQ2LDcgKzM0Niw3IEBACiAgCiAgc3RhdGljIHZvaWQKICBuZmN0X2hlbHBlcl9ubG1zZ19idWlsZF9wb2xpY3koc3RydWN0IG5sbXNnaGRyICpubGgsCi1AQCAtNTMwLDcgKzUxNSw3IEBAIG5mY3RfaGVscGVyX25sbXNnX2J1aWxkX3BvbGljeShzdHJ1Y3Qgbmxtc2doZHIgKm5saCwKK0BAIC01MzAsNyArNTE1LDcgQEAgbmZjdF9oZWxwZXJfbmxtc2dfYnVpbGRfcG9saWN5KHN0cnVjdCBubAogICAqIFxwYXJhbSBubGg6IG5ldGxpbmsgbWVzc2FnZSB0aGF0IHlvdSB3YW50IHRvIHVzZSB0byBhZGQgdGhlIHBheWxvYWQuCiAgICogXHBhcmFtIG5mY3RfaGVscGVyOiBwb2ludGVyIHRvIGEgaGVscGVyIG9iamVjdAogICAqLwpAQCAtMzU1LDcgKzM1NSw3IEBACiAgbmZjdF9oZWxwZXJfbmxtc2dfYnVpbGRfcGF5bG9hZChzdHJ1Y3Qgbmxtc2doZHIgKm5saCwgc3RydWN0IG5mY3RfaGVscGVyICpoKQogIHsKICAJc3RydWN0IG5sYXR0ciAqbmVzdDsKLUBAIC01OTMsNyArNTc4LDYgQEAgbmZjdF9oZWxwZXJfbmxtc2dfYnVpbGRfcGF5bG9hZChzdHJ1Y3Qgbmxtc2doZHIgKm5saCwgc3RydWN0IG5mY3RfaGVscGVyICpoKQorQEAgLTU5Myw3ICs1NzgsNiBAQCBuZmN0X2hlbHBlcl9ubG1zZ19idWlsZF9wYXlsb2FkKHN0cnVjdCBuCiAgCWlmIChoLT5iaXRzZXQgJiAoMSA8PCBORkNUSF9BVFRSX1NUQVRVUykpCiAgCQltbmxfYXR0cl9wdXRfdTMyKG5saCwgTkZDVEhfU1RBVFVTLCBudG9obChoLT5zdGF0dXMpKTsKICB9CkBAIC0zNjMsNyArMzYzLDcgQEAKICAKICBzdGF0aWMgaW50CiAgbmZjdF9oZWxwZXJfbmxtc2dfcGFyc2VfdHVwbGVfY2IoY29uc3Qgc3RydWN0IG5sYXR0ciAqYXR0ciwgdm9pZCAqZGF0YSkKLUBAIC03OTUsNyArNzc5LDcgQEAgbmZjdF9oZWxwZXJfbmxtc2dfcGFyc2VfYXR0cl9jYihjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLCB2b2lkICpkYXRhKQorQEAgLTc5NSw3ICs3NzksNyBAQCBuZmN0X2hlbHBlcl9ubG1zZ19wYXJzZV9hdHRyX2NiKGNvbnN0IHN0CiAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIC0xIGluIGNhc2UgdGhhdCBzb21lIG1hbmRhdG9yeSBhdHRyaWJ1dGVzIGFyZQogICAqIG1pc3NpbmcuIE9uIHN1Y2VzcywgaXQgcmV0dXJucyAwLgogICAqLwpAQCAtMzcyLDcgKzM3Miw3IEBACiAgbmZjdF9oZWxwZXJfbmxtc2dfcGFyc2VfcGF5bG9hZChjb25zdCBzdHJ1Y3Qgbmxtc2doZHIgKm5saCwKICAJCQkJc3RydWN0IG5mY3RfaGVscGVyICpoKQogIHsKLUBAIC04MzIsNyArODE2LDYgQEAgbmZjdF9oZWxwZXJfbmxtc2dfcGFyc2VfcGF5bG9hZChjb25zdCBzdHJ1Y3Qgbmxtc2doZHIgKm5saCwKK0BAIC04MzIsNyArODE2LDYgQEAgbmZjdF9oZWxwZXJfbmxtc2dfcGFyc2VfcGF5bG9hZChjb25zdCBzdAogIAl9CiAgCXJldHVybiAwOwogIH0KQEAgLTM4MCw2ICszODAsMyBAQAogIAogIC8qKgogICAqIEB9Ci0tLSAKLWNnaXQgdjEuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWtlcm5lbC93aXJlZ3VhcmQvd2lyZWd1YXJkLW1vZHVsZV8wLjAuMjAxNzA4MTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWtlcm5lbC93aXJlZ3VhcmQvd2lyZWd1YXJkLW1vZHVsZV8wLjAuMjAxNzEyMjEuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMta2VybmVsL3dpcmVndWFyZC93aXJlZ3VhcmQtbW9kdWxlXzAuMC4yMDE3MDgxMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1rZXJuZWwvd2lyZWd1YXJkL3dpcmVndWFyZC1tb2R1bGVfMC4wLjIwMTcxMjIxLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWtlcm5lbC93aXJlZ3VhcmQvd2lyZWd1YXJkLXRvb2xzXzAuMC4yMDE3MDgxMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMta2VybmVsL3dpcmVndWFyZC93aXJlZ3VhcmQtdG9vbHNfMC4wLjIwMTcxMjIxLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLWtlcm5lbC93aXJlZ3VhcmQvd2lyZWd1YXJkLXRvb2xzXzAuMC4yMDE3MDgxMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1rZXJuZWwvd2lyZWd1YXJkL3dpcmVndWFyZC10b29sc18wLjAuMjAxNzEyMjEuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMta2VybmVsL3dpcmVndWFyZC93aXJlZ3VhcmQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1rZXJuZWwvd2lyZWd1YXJkL3dpcmVndWFyZC5pbmMKaW5kZXggZjM3ZDUyYi4uNmJkNTgxYSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1rZXJuZWwvd2lyZWd1YXJkL3dpcmVndWFyZC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1rZXJuZWwvd2lyZWd1YXJkL3dpcmVndWFyZC5pbmMKQEAgLTExLDcgKzExLDcgQEAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLy4uL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgogCiBTUkNfVVJJID0gImh0dHBzOi8vZ2l0Lnp4MmM0LmNvbS9XaXJlR3VhcmQvc25hcHNob3QvV2lyZUd1YXJkLSR7UFZ9LnRhci54eiIKLVNSQ19VUklbbWQ1c3VtXSA9ICI4ZGQzZTA4MDQwN2I4Mjk1YzI1NTY1YTg0N2E0Y2EyNyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJhYjk2MjMwMzkwNjI1YWFkNmY0ODE2ZmEyM2FlZjZlOWY3ZmVlMTMwZjA4M2Q4Mzg5MTkxMjlmZjEyMDg5YmY3IgorU1JDX1VSSVttZDVzdW1dID0gIjM5YmI5OWZlMTEzNTY0MjNmYjFhYjQ1YWUyZDkzOGJiIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjJiOTc2OTdlOWIyNzFiYTg4MzZhMDQxMjBhMjg3YjgyNDY0ODEyNGYyMWQ1MzA5MTcwZWM1MWMxZjg2YWM1ZWQiCiAKIFMgPSAiJHtXT1JLRElSfS9XaXJlR3VhcmQtJHtQVn0vc3JjLyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9SZXBsYWNlLW11cm11cmhhc2gtYWxnb3JpdGhtLXdpdGgtUm9iZXJ0LUplbmtpbi1zLWhhLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZpbGVzL1JlcGxhY2UtbXVybXVyaGFzaC1hbGdvcml0aG0td2l0aC1Sb2JlcnQtSmVua2luLXMtaGEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFhNWExYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9SZXBsYWNlLW11cm11cmhhc2gtYWxnb3JpdGhtLXdpdGgtUm9iZXJ0LUplbmtpbi1zLWhhLnBhdGNoCkBAIC0wLDAgKzEsMjIzIEBACitSZXBsYWNlIG11cm11cmhhc2ggYWxnb3JpdGhtIHdpdGggUm9iZXJ0IEplbmtpbidzIGhhc2ggYWxnb3JpdGhtCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitGcm9tIHRlc3QgcmVzdWx0LCBtdXJtdXJoYXNoIGFsZ29yaXRobSBkb2VzIG5vdCB3b3JrIGluIGJpZyBlbmRpYW4KK3Byb2Nlc3Nvciwgc28gcmVwbGFjZSBpdCB3aXRoIFJvYmVydCBKZW5raW4ncyBoYXNoIHdoaWNoIGhhcyB3b3JrZWQKK2luIGxpbnV4IGtlcm5lbCBmb3IgbWFueSB5ZWFycyBhbmQgaGFzIG1vcmUgYWRhcHRhYmlsaXR5LgorCitTaWduZWQtb2ZmLWJ5OiBSb3kuTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CistLS0KKyBsaWJmZHByb3RvL29zdHIuYyB8ICAxOTIgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwgMTE4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGliZmRwcm90by9vc3RyLmMgYi9saWJmZHByb3RvL29zdHIuYworaW5kZXggOGYyOWI0OC4uY2UxZjRkZCAxMDA2NDQKKy0tLSBhL2xpYmZkcHJvdG8vb3N0ci5jCisrKysgYi9saWJmZHByb3RvL29zdHIuYworQEAgLTQzMCwxMjggKzQzMCw4NCBAQCBhZnRlcl9wcm90bzoKKyAKKyAKKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCistLyogSGFzaCBmdW5jdGlvbiAtLSBjcmVkaXRzIHRvIEF1c3RpbiBBcHBsZWJ5LCB0aGFuayB5b3UgXl4gKi8KKy0vKiBTZWUgaHR0cDovL211cm11cmhhc2guZ29vZ2xlcGFnZXMuY29tIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgZnVuY3Rpb24gKi8KKy0KKy0vKiB0aGUgc3RyaW5ncyBhcmUgTk9UIGFsd2F5cyBhbGlnbmVkIHByb3Blcmx5IChleDogcmVjZWl2ZWQgaW4gUkFESVVTIG1lc3NhZ2UpLCBzbyB3ZSB1c2UgdGhlIGFsaWduZWQgTXVybXVySGFzaDIgZnVuY3Rpb24gYXMgbmVlZGVkICovCistI2RlZmluZSBfSEFTSF9NSVgoaCxrLG0pIHsgayAqPSBtOyBrIF49IGsgPj4gcjsgayAqPSBtOyBoICo9IG07IGggXj0gazsgfQorLXVpbnQzMl90IGZkX29zX2hhc2ggKCB1aW50OF90ICogc3RyaW5nLCBzaXplX3QgbGVuICkKKysvKgorKyAqIFJvYmVydCBKZW5raW4ncyBoYXNoIGZ1bmN0aW9uLgorKyAqIGh0dHA6Ly9idXJ0bGVidXJ0bGUubmV0L2JvYi9oYXNoL2V2YWhhc2guaHRtbAorKyAqIFRoaXMgaXMgaW4gdGhlIHB1YmxpYyBkb21haW4uCisrICovCisrI2RlZmluZSBtaXgoYSwgYiwgYykJCQkJCQlcCisrCWRvIHsJCQkJCQkJXAorKwkJYSA9IGEgLSBiOyAgYSA9IGEgLSBjOyAgYSA9IGEgXiAoYyA+PiAxMyk7CVwKKysJCWIgPSBiIC0gYzsgIGIgPSBiIC0gYTsgIGIgPSBiIF4gKGEgPDwgOCk7CVwKKysJCWMgPSBjIC0gYTsgIGMgPSBjIC0gYjsgIGMgPSBjIF4gKGIgPj4gMTMpOwlcCisrCQlhID0gYSAtIGI7ICBhID0gYSAtIGM7ICBhID0gYSBeIChjID4+IDEyKTsJXAorKwkJYiA9IGIgLSBjOyAgYiA9IGIgLSBhOyAgYiA9IGIgXiAoYSA8PCAxNik7CVwKKysJCWMgPSBjIC0gYTsgIGMgPSBjIC0gYjsgIGMgPSBjIF4gKGIgPj4gNSk7CVwKKysJCWEgPSBhIC0gYjsgIGEgPSBhIC0gYzsgIGEgPSBhIF4gKGMgPj4gMyk7CVwKKysJCWIgPSBiIC0gYzsgIGIgPSBiIC0gYTsgIGIgPSBiIF4gKGEgPDwgMTApOwlcCisrCQljID0gYyAtIGE7ICBjID0gYyAtIGI7ICBjID0gYyBeIChiID4+IDE1KTsJXAorKwl9IHdoaWxlICgwKQorKworK3Vuc2lnbmVkIGhhc2hfcmplbmtpbnMoY29uc3QgY2hhciAqc3RyLCB1bnNpZ25lZCBsZW5ndGgpCisgeworLQl1aW50MzJfdCBoYXNoID0gbGVuOworLQl1aW50OF90ICogZGF0YSA9IHN0cmluZzsKKy0JCistCWNvbnN0IHVuc2lnbmVkIGludCBtID0gMHg1YmQxZTk5NTsKKy0JY29uc3QgaW50IHIgPSAyNDsKKy0JaW50IGFsaWduID0gKGxvbmcpc3RyaW5nICYgMzsKKy0JCistCWlmICghYWxpZ24gfHwgKGxlbiA8IDQpKSB7CistCQkvKiBJbiBjYXNlIGRhdGEgaXMgYWxpZ25lZCwgTXVybXVySGFzaDIgZnVuY3Rpb24gKi8KKy0JCXdoaWxlKGxlbiA+PSA0KQorLQkJeworLQkJCS8qIE1peCA0IGJ5dGVzIGF0IGEgdGltZSBpbnRvIHRoZSBoYXNoICovCistCQkJdWludDMyX3QgayA9ICoodWludDMyX3QgKilkYXRhOwkvKiBXZSBkb24ndCBjYXJlIGFib3V0IHRoZSBieXRlIG9yZGVyICovCistCistCQkJX0hBU0hfTUlYKGhhc2gsIGssIG0pOworLQorLQkJCWRhdGEgKz0gNDsKKy0JCQlsZW4gLT0gNDsKKy0JCX0KKy0KKy0JCS8qIEhhbmRsZSB0aGUgbGFzdCBmZXcgYnl0ZXMgb2YgdGhlIGlucHV0ICovCistCQlzd2l0Y2gobGVuKSB7CistCQkJY2FzZSAzOiBoYXNoIF49IGRhdGFbMl0gPDwgMTY7CistCQkJY2FzZSAyOiBoYXNoIF49IGRhdGFbMV0gPDwgODsKKy0JCQljYXNlIDE6IGhhc2ggXj0gZGF0YVswXTsKKy0JICAgICAgICAJCWhhc2ggKj0gbTsKKy0JCX0KKy0JCQorLQl9IGVsc2UgeworLQkJLyogVW5hbGlnbmVkIGRhdGEsIHVzZSBhbGlnbm1lbnQtc2FmZSBzbG93ZXIgdmVyc2lvbiAqLworLQkJCistCQkvKiBQcmUtbG9hZCB0aGUgdGVtcCByZWdpc3RlcnMgKi8KKy0JCXVpbnQzMl90IHQgPSAwLCBkID0gMDsKKy0JCXN3aXRjaChhbGlnbikKKy0JCXsKKy0JCQljYXNlIDE6IHQgfD0gZGF0YVsyXSA8PCAxNjsKKy0JCQljYXNlIDI6IHQgfD0gZGF0YVsxXSA8PCA4OworLQkJCWNhc2UgMzogdCB8PSBkYXRhWzBdOworLQkJfQorLQkJdCA8PD0gKDggKiBhbGlnbik7CistCistCQlkYXRhICs9IDQtYWxpZ247CistCQlsZW4gLT0gNC1hbGlnbjsKKy0JCQorLQkJLyogRnJvbSB0aGlzIHBvaW50LCAiZGF0YSIgY2FuIGJlIHJlYWQgYnkgY2h1bmtzIG9mIDQgYnl0ZXMgKi8KKy0JCQorLQkJaW50IHNsID0gOCAqICg0LWFsaWduKTsKKy0JCWludCBzciA9IDggKiBhbGlnbjsKKy0KKy0JCS8qIE1peCAqLworLQkJd2hpbGUobGVuID49IDQpCistCQl7CistCQkJdWludDMyX3QgazsKKy0JCQkKKy0JCQlkID0gKih1bnNpZ25lZCBpbnQgKilkYXRhOworLQkJCWsgPSAodCA+PiBzcikgfCAoZCA8PCBzbCk7CistCistCQkJX0hBU0hfTUlYKGhhc2gsIGssIG0pOworLQorLQkJCXQgPSBkOworLQorLQkJCWRhdGEgKz0gNDsKKy0JCQlsZW4gLT0gNDsKKy0JCX0KKy0KKy0JCS8qIEhhbmRsZSBsZWZ0b3ZlciBkYXRhIGluIHRlbXAgcmVnaXN0ZXJzICovCistCQlkID0gMDsKKy0JCWlmKGxlbiA+PSBhbGlnbikKKy0JCXsKKy0JCQl1aW50MzJfdCBrOworLQkJCQorLQkJCXN3aXRjaChhbGlnbikKKy0JCQl7CistCQkJY2FzZSAzOiBkIHw9IGRhdGFbMl0gPDwgMTY7CistCQkJY2FzZSAyOiBkIHw9IGRhdGFbMV0gPDwgODsKKy0JCQljYXNlIDE6IGQgfD0gZGF0YVswXTsKKy0JCQl9CistCistCQkJayA9ICh0ID4+IHNyKSB8IChkIDw8IHNsKTsKKy0JCQlfSEFTSF9NSVgoaGFzaCwgaywgbSk7CistCistCQkJZGF0YSArPSBhbGlnbjsKKy0JCQlsZW4gLT0gYWxpZ247CistCistCQkJLyogSGFuZGxlIHRhaWwgYnl0ZXMgKi8KKy0KKy0JCQlzd2l0Y2gobGVuKQorLQkJCXsKKy0JCQljYXNlIDM6IGhhc2ggXj0gZGF0YVsyXSA8PCAxNjsKKy0JCQljYXNlIDI6IGhhc2ggXj0gZGF0YVsxXSA8PCA4OworLQkJCWNhc2UgMTogaGFzaCBePSBkYXRhWzBdOworLQkJCQkJaGFzaCAqPSBtOworLQkJCX07CistCQl9CistCQllbHNlCistCQl7CistCQkJc3dpdGNoKGxlbikKKy0JCQl7CistCQkJY2FzZSAzOiBkIHw9IGRhdGFbMl0gPDwgMTY7CistCQkJY2FzZSAyOiBkIHw9IGRhdGFbMV0gPDwgODsKKy0JCQljYXNlIDE6IGQgfD0gZGF0YVswXTsKKy0JCQljYXNlIDA6IGhhc2ggXj0gKHQgPj4gc3IpIHwgKGQgPDwgc2wpOworLQkJCQkJaGFzaCAqPSBtOworLQkJCX0KKy0JCX0KKy0KKysJY29uc3QgdW5zaWduZWQgY2hhciAqayA9IChjb25zdCB1bnNpZ25lZCBjaGFyICopc3RyOworKwl1aW50MzJfdCBhLCBiLCBjOyAgLyogdGhlIGludGVybmFsIHN0YXRlICovCisrCXVpbnQzMl90IGxlbjsgICAgICAvKiBob3cgbWFueSBrZXkgYnl0ZXMgc3RpbGwgbmVlZCBtaXhpbmcgKi8KKysKKysJLyogU2V0IHVwIHRoZSBpbnRlcm5hbCBzdGF0ZSAqLworKwlsZW4gPSBsZW5ndGg7CisrCWEgPSAweDllMzc3OWI5OyAgICAgIC8qIHRoZSBnb2xkZW4gcmF0aW87IGFuIGFyYml0cmFyeSB2YWx1ZSAqLworKwliID0gYTsKKysJYyA9IDA7ICAgICAgICAgICAgICAgLyogdmFyaWFibGUgaW5pdGlhbGl6YXRpb24gb2YgaW50ZXJuYWwgc3RhdGUgKi8KKysKKysJLyogaGFuZGxlIG1vc3Qgb2YgdGhlIGtleSAqLworKwl3aGlsZSAobGVuID49IDEyKSB7CisrCQlhID0gYSArIChrWzBdICsgKCh1aW50MzJfdClrWzFdIDw8IDgpICsgKCh1aW50MzJfdClrWzJdIDw8IDE2KSArCisrCQkJICgodWludDMyX3Qpa1szXSA8PCAyNCkpOworKwkJYiA9IGIgKyAoa1s0XSArICgodWludDMyX3Qpa1s1XSA8PCA4KSArICgodWludDMyX3Qpa1s2XSA8PCAxNikgKworKwkJCSAoKHVpbnQzMl90KWtbN10gPDwgMjQpKTsKKysJCWMgPSBjICsgKGtbOF0gKyAoKHVpbnQzMl90KWtbOV0gPDwgOCkgKyAoKHVpbnQzMl90KWtbMTBdIDw8IDE2KSArCisrCQkJICgodWludDMyX3Qpa1sxMV0gPDwgMjQpKTsKKysJCW1peChhLCBiLCBjKTsKKysJCWsgPSBrICsgMTI7CisrCQlsZW4gPSBsZW4gLSAxMjsKKysJfQorIAorKwkvKiBoYW5kbGUgdGhlIGxhc3QgMTEgYnl0ZXMgKi8KKysJYyA9IGMgKyBsZW5ndGg7CisrCXN3aXRjaCAobGVuKSB7ICAgICAgICAgICAgLyogYWxsIHRoZSBjYXNlIHN0YXRlbWVudHMgZmFsbCB0aHJvdWdoICovCisrCWNhc2UgMTE6CisrCQljID0gYyArICgodWludDMyX3Qpa1sxMF0gPDwgMjQpOworKwljYXNlIDEwOgorKwkJYyA9IGMgKyAoKHVpbnQzMl90KWtbOV0gPDwgMTYpOworKwljYXNlIDk6CisrCQljID0gYyArICgodWludDMyX3Qpa1s4XSA8PCA4KTsKKysJCS8qIHRoZSBmaXJzdCBieXRlIG9mIGMgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBsZW5ndGggKi8KKysJY2FzZSA4OgorKwkJYiA9IGIgKyAoKHVpbnQzMl90KWtbN10gPDwgMjQpOworKwljYXNlIDc6CisrCQliID0gYiArICgodWludDMyX3Qpa1s2XSA8PCAxNik7CisrCWNhc2UgNjoKKysJCWIgPSBiICsgKCh1aW50MzJfdClrWzVdIDw8IDgpOworKwljYXNlIDU6CisrCQliID0gYiArIGtbNF07CisrCWNhc2UgNDoKKysJCWEgPSBhICsgKCh1aW50MzJfdClrWzNdIDw8IDI0KTsKKysJY2FzZSAzOgorKwkJYSA9IGEgKyAoKHVpbnQzMl90KWtbMl0gPDwgMTYpOworKwljYXNlIDI6CisrCQlhID0gYSArICgodWludDMyX3Qpa1sxXSA8PCA4KTsKKysJY2FzZSAxOgorKwkJYSA9IGEgKyBrWzBdOworKwkJLyogY2FzZSAwOiBub3RoaW5nIGxlZnQgdG8gYWRkICovCisgCX0KKysJbWl4KGEsIGIsIGMpOworIAorLQkvKiBEbyBhIGZldyBmaW5hbCBtaXhlcyBvZiB0aGUgaGFzaCB0byBlbnN1cmUgdGhlIGxhc3QgZmV3CistCSAgIGJ5dGVzIGFyZSB3ZWxsLWluY29ycG9yYXRlZC4gKi8KKy0JaGFzaCBePSBoYXNoID4+IDEzOworLQloYXNoICo9IG07CistCWhhc2ggXj0gaGFzaCA+PiAxNTsKKysJcmV0dXJuIGM7CisrfQorIAorLQlyZXR1cm4gaGFzaDsKKyt1aW50MzJfdCBmZF9vc19oYXNoICggdWludDhfdCAqIHN0cmluZywgc2l6ZV90IGxlbiApCisreworKwlyZXR1cm4gaGFzaF9yamVua2lucyhzdHJpbmcsIGxlbik7IAorIH0gCisgCistLSAKKzEuNy4xMC40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9mcmVlRGlhbWV0ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9mcmVlRGlhbWV0ZXIuY29uZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjU2ZDc0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZpbGVzL2ZyZWVEaWFtZXRlci5jb25mCkBAIC0wLDAgKzEsMjUwIEBACisjIFRoaXMgaXMgYSBzYW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIGZvciBmcmVlRGlhbWV0ZXIgZGFlbW9uLgorCisjIE1vc3Qgb2YgdGhlIG9wdGlvbnMgY2FuIGJlIG9taXR0ZWQsIGFzIHRoZXkgZGVmYXVsdCB0byByZWFzb25hYmxlIHZhbHVlcy4KKyMgT25seSBUTFMtcmVsYXRlZCBvcHRpb25zIG11c3QgYmUgY29uZmlndXJlZCBwcm9wZXJseSBpbiB1c3VhbCBzZXR1cHMuCisKKyMgSXQgaXMgcG9zc2libGUgdG8gdXNlICJpbmNsdWRlIiBrZXl3b3JkIHRvIGltcG9ydCBhZGRpdGlvbmFsIGZpbGVzCisjIGUuZy46IGluY2x1ZGUgIi9ldGMvZnJlZURpYW1ldGVyLmQvKi5jb25mIgorIyBUaGlzIGlzIGV4YWN0bHkgZXF1aXZhbGVudCBhcyBjb3B5ICYgcGFzdGUgdGhlIGNvbnRlbnQgb2YgdGhlIGluY2x1ZGVkIGZpbGUocykgCisjIHdoZXJlIHRoZSAiaW5jbHVkZSIga2V5d29yZCBpcyBmb3VuZC4KKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgIFBlZXIgaWRlbnRpdHkgYW5kIHJlYWxtIAorCisjIFRoZSBEaWFtZXRlciBJZGVudGl0eSBvZiB0aGlzIGRhZW1vbi4KKyMgVGhpcyBtdXN0IGJlIGEgdmFsaWQgRlFETiB0aGF0IHJlc29sdmVzIHRvIHRoZSBsb2NhbCBob3N0LgorIyBEZWZhdWx0OiBob3N0bmFtZSdzIEZRRE4KKyNJZGVudGl0eSA9ICJhYWEua29nYW5laS5mcmVlZGlhbWV0ZXIubmV0IjsKKworIyBUaGUgRGlhbWV0ZXIgUmVhbG0gb2YgdGhpcyBkYWVtb24uCisjIERlZmF1bHQ6IHRoZSBkb21haW4gcGFydCBvZiBJZGVudGl0eSAoYWZ0ZXIgdGhlIGZpcnN0IGRvdCkuCisjUmVhbG0gPSAia29nYW5laS5mcmVlZGlhbWV0ZXIubmV0IjsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjICBUcmFuc3BvcnQgcHJvdG9jb2wgY29uZmlndXJhdGlvbgorCisjIFRoZSBwb3J0IHRoaXMgcGVlciBpcyBsaXN0ZW5pbmcgb24gZm9yIGluY29taW5nIGNvbm5lY3Rpb25zIChUQ1AgYW5kIFNDVFApLgorIyBEZWZhdWx0OiAzODY4LiBVc2UgMCB0byBkaXNhYmxlLgorI1BvcnQgPSAzODY4OworCisjIFRoZSBwb3J0IHRoaXMgcGVlciBpcyBsaXN0ZW5pbmcgb24gZm9yIGluY29taW5nIFRMUy1wcm90ZWN0ZWQgY29ubmVjdGlvbnMgKFRDUCBhbmQgU0NUUCkuCisjIFNlZSBUTFNfb2xkX21ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBUTFMgZmxhdm91cnMuCisjIE5vdGU6IHdlIHVzZSBUTFMvU0NUUCBpbnN0ZWFkIG9mIERUTFMvU0NUUCBhdCB0aGUgbW9tZW50LiBUaGlzIHdpbGwgY2hhbmdlIGluIGZ1dHVyZSB2ZXJzaW9uIG9mIGZyZWVEaWFtZXRlci4KKyMgRGVmYXVsdDogNTg2OC4gVXNlIDAgdG8gZGlzYWJsZS4KKyNTZWNQb3J0ID0gNTg2ODsKKworIyBVc2UgUkZDMzU4OCBtZXRob2QgZm9yIFRMUyBwcm90ZWN0aW9uLCB3aGVyZSBUTFMgaXMgbmVnb2NpYXRlZCBhZnRlciBDRVIvQ0VBIGV4Y2hhbmdlIGlzIGNvbXBsZXRlZCAKKyMgb24gdGhlIHVuc2VjdXJlIGNvbm5lY3Rpb24uIFRoZSBhbHRlcm5hdGl2ZSBpcyBSRkM2NzMzIG1lY2hhbmlzbSwgd2hlcmUgVExTIHByb3RlY3RzIGFsc28gdGhlIAorIyBDRVIvQ0VBIGV4Y2hhbmdlIG9uIGEgZGVkaWNhdGVkIHNlY3VyZSBwb3J0LgorIyBUaGlzIHBhcmFtZXRlciBvbmx5IGFmZmVjdHMgb3V0Z29pbmcgY29ubmVjdGlvbnMuIAorIyBUaGUgc2V0dGluZyBjYW4gYmUgYWxzbyBkZWZpbmVkIHBlci1wZWVyIChzZWUgUGVlcnMgY29uZmlndXJhdGlvbiBzZWN0aW9uKS4KKyMgRGVmYXVsdDogdXNlIFJGQzY3MzMgbWV0aG9kIHdpdGggc2VwYXJhdGUgcG9ydCBmb3IgVExTLgorI1RMU19vbGRfbWV0aG9kOworCisjIERpc2FibGUgdXNlIG9mIFRDUCBwcm90b2NvbCAob25seSBsaXN0ZW4gYW5kIGNvbm5lY3Qgb3ZlciBTQ1RQKQorIyBEZWZhdWx0IDogVENQIGVuYWJsZWQKKyNOb19UQ1A7CisKKyMgRGlzYWJsZSB1c2Ugb2YgU0NUUCBwcm90b2NvbCAob25seSBsaXN0ZW4gYW5kIGNvbm5lY3Qgb3ZlciBUQ1ApCisjIERlZmF1bHQgOiBTQ1RQIGVuYWJsZWQKKyNOb19TQ1RQOworIyBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGlmIGZyZWVEaWFtZXRlciBpcyBjb21waWxlZCB3aXRoIERJU0FCTEVfU0NUUCBvcHRpb24uCisKKyMgUHJlZmVyIFRDUCBpbnN0ZWFkIG9mIFNDVFAgZm9yIGVzdGFibGlzaGluZyBuZXcgY29ubmVjdGlvbnMuCisjIFRoaXMgc2V0dGluZyBtYXkgYmUgb3ZlcndyaXR0ZW4gcGVyIHBlZXIgaW4gcGVlciBjb25maWd1cmF0aW9uIGJsb2NzLgorIyBEZWZhdWx0IDogU0NUUCBpcyBhdHRlbXB0ZWQgZmlyc3QuCisjUHJlZmVyX1RDUDsKKworIyBEZWZhdWx0IG51bWJlciBvZiBzdHJlYW1zIHBlciBTQ1RQIGFzc29jaWF0aW9ucy4KKyMgVGhpcyBzZXR0aW5nIG1heSBiZSBvdmVyd3JpdHRlbiBwZXIgcGVlciBiYXNpcy4KKyMgRGVmYXVsdCA6IDMwIHN0cmVhbXMKKyNTQ1RQX3N0cmVhbXMgPSAzMDsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjICBFbmRwb2ludCBjb25maWd1cmF0aW9uCisKKyMgRGlzYWJsZSB1c2Ugb2YgSVAgYWRkcmVzc2VzIChvbmx5IElQdjYpCisjIERlZmF1bHQgOiBJUCBlbmFibGVkCisjTm9fSVA7CisKKyMgRGlzYWJsZSB1c2Ugb2YgSVB2NiBhZGRyZXNzZXMgKG9ubHkgSVApCisjIERlZmF1bHQgOiBJUHY2IGVuYWJsZWQKKyNOb19JUHY2OworCisjIFNwZWNpZnkgbG9jYWwgYWRkcmVzc2VzIHRoZSBzZXJ2ZXIgbXVzdCBiaW5kIHRvCisjIERlZmF1bHQgOiBsaXN0ZW4gb24gYWxsIGFkZHJlc3NlcyBhdmFpbGFibGUuCisjTGlzdGVuT24gPSAiMjAyLjI0OS4zNy41IjsKKyNMaXN0ZW5PbiA9ICIyMDAxOjIwMDo5MDM6Mjo6MjAyOjEiOworI0xpc3Rlbk9uID0gImZlODA6OjIxYzo1ZmY6ZmU5ODo3ZDYyJWV0aDAiOworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyAgU2VydmVyIGNvbmZpZ3VyYXRpb24KKworIyBIb3cgbWFueSBEaWFtZXRlciBwZWVycyBhcmUgYWxsb3dlZCB0byBiZSBjb25uZWN0aW5nIGF0IHRoZSBzYW1lIHRpbWUgPworIyBUaGlzIHBhcmFtZXRlciBsaW1pdHMgdGhlIG51bWJlciBvZiBpbmNvbWluZyBjb25uZWN0aW9ucyBmcm9tIHRoZSB0aW1lCisjIHRoZSBjb25uZWN0aW9uIGlzIGFjY2VwdGVkIHVudGlsIHRoZSBmaXJzdCBDRVIgaXMgcmVjZWl2ZWQuCisjIERlZmF1bHQ6IDUgdW5pZGVudGlmaWVkIGNsaWVudHMgaW4gcGFyYWxlbC4KKyNUaHJlYWRzUGVyU2VydmVyID0gNTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjICBUTFMgQ29uZmlndXJhdGlvbgorCisjIFRMUyBpcyBtYW5hZ2VkIGJ5IHRoZSBHTlVUTFMgbGlicmFyeSBpbiB0aGUgZnJlZURpYW1ldGVyIGRhZW1vbi4KKyMgWW91IG1heSBmaW5kIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgcGFyYW1ldGVycyBhbmQgc3BlY2lhbCBiZWhhdmlvcnMKKyMgaW4gdGhlIHJlbGV2YW50IGRvY3VtZW50YXRpb24uCisjIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9nbnV0bHMvbWFudWFsLworCisjIENyZWRlbnRpYWxzIG9mIHRoZSBsb2NhbCBwZWVyCisjIFRoZSBYNTA5IGNlcnRpZmljYXRlIGFuZCBwcml2YXRlIGtleSBmaWxlIHRvIHVzZSBmb3IgdGhlIGxvY2FsIHBlZXIuCisjIFRoZSBmaWxlcyBtdXN0IGNvbnRhaW4gUEtDUy0xIGVuY29kZWQgUlNBIGtleSwgaW4gUEVNIGZvcm1hdC4KKyMgKFRoZXNlIHBhcmFtZXRlcnMgYXJlIHBhc3NlZCB0byBnbnV0bHNfY2VydGlmaWNhdGVfc2V0X3g1MDlfa2V5X2ZpbGUgZnVuY3Rpb24pCisjIERlZmF1bHQgOiBOTyBERUZBVUxUCisjVExTX0NyZWQgPSAiPHg1MDkgY2VydGlmIGZpbGUuUEVNPiIgLCAiPHg1MDkgcHJpdmF0ZSBrZXkgZmlsZS5QRU0+IjsKKyNUTFNfQ3JlZCA9ICIvZXRjL3NzbC9jZXJ0cy9mcmVlRGlhbWV0ZXIucGVtIiwgIi9ldGMvc3NsL3ByaXZhdGUvZnJlZURpYW1ldGVyLmtleSI7CisKKyMgQ2VydGlmaWNhdGUgYXV0aG9yaXR5IC8gdHJ1c3QgYW5jaG9ycworIyBUaGUgZmlsZSBjb250YWluaW5nIHRoZSBsaXN0IG9mIHRydXN0ZWQgQ2VydGlmaWNhdGUgQXV0aG9yaXRpZXMgKFBFTSBsaXN0KQorIyAoVGhpcyBwYXJhbWV0ZXIgaXMgcGFzc2VkIHRvIGdudXRsc19jZXJ0aWZpY2F0ZV9zZXRfeDUwOV90cnVzdF9maWxlIGZ1bmN0aW9uKQorIyBUaGUgZGlyZWN0aXZlIGNhbiBhcHBlYXIgc2V2ZXJhbCB0aW1lcyB0byBzcGVjaWZ5IHNldmVyYWwgZmlsZXMuCisjIERlZmF1bHQgOiBHTlVUTFMgZGVmYXVsdCBiZWhhdmlvcgorI1RMU19DQSA9ICI8ZmlsZS5QRU0+IjsKKworIyBDZXJ0aWZpY2F0ZSBSZXZvY2F0aW9uIExpc3QgZmlsZQorIyBUaGUgaW5mb3JtYXRpb24gYWJvdXQgcmV2b2tlZCBjZXJ0aWZpY2F0ZXMuCisjIFRoZSBmaWxlIGNvbnRhaW5zIGEgbGlzdCBvZiB0cnVzdGVkIENSTHMgaW4gUEVNIGZvcm1hdC4gVGhleSBzaG91bGQgaGF2ZSBiZWVuIHZlcmlmaWVkIGJlZm9yZS4gCisjIChUaGlzIHBhcmFtZXRlciBpcyBwYXNzZWQgdG8gZ251dGxzX2NlcnRpZmljYXRlX3NldF94NTA5X2NybF9maWxlIGZ1bmN0aW9uKQorIyBOb3RlOiBvcGVuc3NsIENSTCBmb3JtYXQgbWlnaHQgaGF2ZSBpbnRlcm9wZXJhYmlsaXR5IGlzc3VlIHdpdGggR05VVExTIGZvcm1hdC4KKyMgRGVmYXVsdCA6IEdOVVRMUyBkZWZhdWx0IGJlaGF2aW9yCisjVExTX0NSTCA9ICI8ZmlsZS5QRU0+IjsKKworIyBHTlUgVExTIFByaW9yaXR5IHN0cmluZworIyBUaGlzIHN0cmluZyBhbGxvd3MgdG8gY29uZmlndXJlIHRoZSBiZWhhdmlvciBvZiBHTlVUTFMga2V5IGV4Y2hhbmdlcyAKKyMgYWxnb3JpdGhtcy4gU2VlIGdudXRsc19wcmlvcml0eV9pbml0IGZ1bmN0aW9uIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uLgorIyBZb3Ugc2hvdWxkIGFsc28gcmVmZXIgdG8gdGhlIERpYW1ldGVyIHJlcXVpcmVkIFRMUyBzdXBwb3J0IGhlcmU6CisjICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjczMyNzZWN0aW9uLTEzLjEKKyMgRGVmYXVsdCA6ICJOT1JNQUwiCisjIEV4YW1wbGU6IFRMU19QcmlvID0gIk5PTkU6K1ZFUlMtVExTMS4xOitBRVMtMTI4LUNCQzorUlNBOitTSEExOitDT01QLU5VTEwiOworI1RMU19QcmlvID0gIk5PUk1BTCI7CisKKyMgRGlmZmllLUhlbGxtYW4gcGFyYW1ldGVycyBzaXplCisjIFNldCB0aGUgbnVtYmVyIG9mIGJpdHMgZm9yIGdlbmVyYXRlZCBESCBwYXJhbWV0ZXJzCisjIFZhbGlkIHZhbHVlIHNob3VsZCBiZSA3NjgsIDEwMjQsIDIwNDgsIDMwNzIgb3IgNDA5Ni4KKyMgKFRoaXMgcGFyYW1ldGVyIGlzIHBhc3NlZCB0byBnbnV0bHNfZGhfcGFyYW1zX2dlbmVyYXRlMiBmdW5jdGlvbiwgCisjIGl0IHVzdWFsbHkgc2hvdWxkIG1hdGNoIFJTQSBrZXkgc2l6ZSkKKyMgRGVmYXVsdCA6IDEwMjQKKyNUTFNfREhfQml0cyA9IDEwMjQ7CisKKyMgQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBzcGVjaWZ5IGEgZmlsZSB0byBsb2FkIHRoZSBQS0NTIzMgZW5jb2RlZAorIyBESCBwYXJhbWV0ZXJzIGRpcmVjdGx5IGZyb20uIFRoaXMgYWNjZWxlcmF0ZXMgdGhlIGRhZW1vbiBzdGFydCAKKyMgYnV0IGlzIHNsaWdodGx5IGxlc3Mgc2VjdXJlLiBJZiB0aGlzIGZpbGUgaXMgcHJvdmlkZWQsIHRoZQorIyBUTFNfREhfQml0cyBwYXJhbWV0ZXJzIGhhcyBubyBlZmZlY3QuCisjIERlZmF1bHQgOiBubyBkZWZhdWx0LgorI1RMU19ESF9GaWxlID0gIjxmaWxlLlBFTT4iOworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyAgVGltZXJzIGNvbmZpZ3VyYXRpb24KKworIyBUaGUgVGMgdGltZXIgb2YgdGhpcyBwZWVyLgorIyBJdCBpcyB0aGUgZGVsYXkgYmVmb3JlIGEgbmV3IGF0dGVtcHQgaXMgbWFkZSB0byByZWNvbm5lY3QgYSBkaXNjb25uZWN0ZWQgcGVlci4KKyMgVGhlIHZhbHVlIGlzIGV4cHJlc3NlZCBpbiBzZWNvbmRzLiBUaGUgcmVjb21tZW5kZWQgdmFsdWUgaXMgMzAgc2Vjb25kcy4KKyMgRGVmYXVsdDogMzAKKyNUY1RpbWVyID0gMzA7CisKKyMgVGhlIFR3IHRpbWVyIG9mIHRoaXMgcGVlci4KKyMgSXQgaXMgdGhlIGRlbGF5IGJlZm9yZSBhIHdhdGNoZG9nIG1lc3NhZ2UgaXMgc2VudCwgYXMgZGVzY3JpYmVkIGluIFJGQyAzNTM5LgorIyBUaGUgdmFsdWUgaXMgZXhwcmVzc2VkIGluIHNlY29uZHMuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDMwIHNlY29uZHMuIFZhbHVlIG11c3QKKyMgYmUgZ3JlYXRlciBvciBlcXVhbCB0byA2IHNlY29uZHMuIFNlZSBkZXRhaWxzIGluIHRoZSBSRkMuCisjIERlZmF1bHQ6IDMwCisjVHdUaW1lciA9IDMwOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMgIEFwcGxpY2F0aW9ucyBjb25maWd1cmF0aW9uCisKKyMgRGlzYWJsZSB0aGUgcmVsYXlpbmcgb2YgRGlhbWV0ZXIgbWVzc2FnZXM/CisjIEZvciBtZXNzYWdlcyBub3QgaGFuZGxlZCBsb2NhbGx5LCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBmb3J3YXJkIHRoZQorIyBtZXNzYWdlIHRvIGFub3RoZXIgcGVlciBpZiBhbnkgaXMgYXZhaWxhYmxlLCBhY2NvcmRpbmcgdG8gdGhlIHJvdXRpbmcgCisjIGFsZ29yaXRobXMuIEluIGFkZGl0aW9uIHRoZSAiMHhmZmZmZmYiIGFwcGxpY2F0aW9uIGlzIGFkdmVydGlzZWQgaW4gQ0VSL0NFQSAKKyMgZXhjaGFuZ2VzLgorIyBEZWZhdWx0OiBSZWxheWluZyBpcyBlbmFibGVkLgorI05vUmVsYXk7CisKKyMgTnVtYmVyIG9mIHNlcnZlciB0aHJlYWRzIHRoYXQgY2FuIGhhbmRsZSBpbmNvbWluZyBtZXNzYWdlcyBhdCB0aGUgc2FtZSB0aW1lLgorIyBEZWZhdWx0OiA0CisjQXBwU2VydlRocmVhZHMgPSA0OworCisjIE90aGVyIGFwcGxpY2F0aW9ucyBhcmUgY29uZmlndXJlZCBieSBsb2FkZWQgZXh0ZW5zaW9ucy4KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMjICBFeHRlbnNpb25zIGNvbmZpZ3VyYXRpb24KKworIyAgVGhlIGZyZWVEaWFtZXRlciBmcmFtZXdvcmsgbWVyZWx5IHByb3ZpZGVzIHN1cHBvcnQgZm9yCisjIERpYW1ldGVyIEJhc2UgUHJvdG9jb2wuIFRoZSBzcGVjaWZpYyBhcHBsaWNhdGlvbiBiZWhhdmlvcnMsCisjIGFzIHdlbGwgYXMgYWR2YW5jZWQgZnVuY3Rpb25zLCBhcmUgcHJvdmlkZWQKKyMgYnkgbG9hZGFibGUgZXh0ZW5zaW9ucyAocGx1Zy1pbnMpLgorIyAgVGhlc2UgZXh0ZW5zaW9ucyBtYXkgaW4gYWRkaXRpb24gcmVjZWl2ZSB0aGUgbmFtZSBvZiBhIAorIyBjb25maWd1cmF0aW9uIGZpbGUsIHRoZSBmb3JtYXQgb2Ygd2hpY2ggaXMgZXh0ZW5zaW9uLXNwZWNpZmljLgorIworIyBGb3JtYXQ6CisjTG9hZEV4dGVuc2lvbiA9ICIvcGF0aC90by9leHRlbnNpb24iIFsgOiAiL29wdGlvbmFsL2NvbmZpZ3VyYXRpb24vZmlsZSIgXSA7CisjCisjIEV4YW1wbGVzOgorI0xvYWRFeHRlbnNpb24gPSAiZXh0ZW5zaW9ucy9zYW1wbGUuZmR4IjsKKyNMb2FkRXh0ZW5zaW9uID0gImV4dGVuc2lvbnMvc2FtcGxlLmZkeCI6ImNvbmYvc2FtcGxlLmNvbmYiOworCisjIEV4dGVuc2lvbnMgYXJlIG5hbWVkIGFzIGZvbGxvdzoKKyMgZGljdF8qIGZvciBleHRlbnNpb25zIHRoYXQgYWRkIGNvbnRlbnQgdG8gdGhlIGRpY3Rpb25hcnkgZGVmaW5pdGlvbnMuCisjIGRiZ18qICBmb3IgZXh0ZW5zaW9ucyB1c2VmdWwgb25seSB0byByZXRyaWV2ZSBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBmcmFtZXdvcmsgZXhlY3V0aW9uLgorIyBhY2xfKiAgOiBBY2Nlc3MgY29udHJvbCBsaXN0LCB0byBjb250cm9sIHdoaWNoIHBlZXJzIGFyZSBhbGxvd2VkIHRvIGNvbm5lY3QuCisjIHJ0XyogICA6IHJvdXRpbmcgZXh0ZW5zaW9ucyB0aGF0IGltcGFjdCBob3cgbWVzc2FnZXMgYXJlIGZvcndhcmRlZCB0byBvdGhlciBwZWVycy4KKyMgYXBwXyogIDogYXBwbGljYXRpb25zLCB0aGVzZSBleHRlbnNpb25zIHVzdWFsbHkgcmVnaXN0ZXIgY2FsbGJhY2tzIHRvIGhhbmRsZSBzcGVjaWZpYyBtZXNzYWdlcy4KKyMgdGVzdF8qIDogZHVtbXkgZXh0ZW5zaW9ucyB0aGF0IGFyZSB1c2VmdWwgb25seSBpbiB0ZXN0aW5nIGVudmlyb25tZW50cy4KKworCisjIFRoZSBkYmdfbXNnX2R1bXAuZmR4IGV4dGVuc2lvbiBhbGxvd3MgeW91IHRvIHR3ZWFrIHRoZSB3YXkgZnJlZURpYW1ldGVyIGRpc3BsYXlzIHNvbWUKKyMgaW5mb3JtYXRpb24gYWJvdXQgc29tZSBldmVudHMuIFRoaXMgZXh0ZW5zaW9uIGRvZXMgbm90IGFjdHVhbGx5IHVzZSBhIGNvbmZpZ3VyYXRpb24gZmlsZQorIyBidXQgcmVjZWl2ZXMgZGlyZWN0bHkgYSBwYXJhbWV0ZXIgaW4gdGhlIHN0cmluZyBwYXNzZWQgdG8gdGhlIGV4dGVuc2lvbi4gSGVyZSBhcmUgc29tZSBleGFtcGxlczoKKyMjIExvYWRFeHRlbnNpb24gPSAiZGJnX21zZ19kdW1wcy5mZHgiIDogIjB4MTExMSI7ICMgUmVtb3ZlcyBhbGwgZGVmYXVsdCBob29rcywgdmVyeSBxdWlldCBldmVuIGluIGNhc2Ugb2YgZXJyb3JzLgorIyMgTG9hZEV4dGVuc2lvbiA9ICJkYmdfbXNnX2R1bXBzLmZkeCIgOiAiMHgyMjIyIjsgIyBEaXNwbGF5IGFsbCBldmVudHMgd2l0aCBmZXcgZGV0YWlscy4KKyMjIExvYWRFeHRlbnNpb24gPSAiZGJnX21zZ19kdW1wcy5mZHgiIDogIjB4MDA4MCI7ICMgRHVtcCBjb21wbGV0ZSBpbmZvcm1hdGlvbiBhYm91dCBzZW50IGFuZCByZWNlaXZlZCBtZXNzYWdlcy4KKyMgVGhlIGZvdXIgZGlnaXRzIHJlc3BlY3RpdmVseSBjb250cm9sOiBjb25uZWN0aW9ucywgcm91dGluZyBkZWNpc2lvbnMsIHNlbnQvcmVjZWl2ZWQgbWVzc2FnZXMsIGVycm9ycy4KKyMgVGhlIHZhbHVlcyBmb3IgZWFjaCBkaWdpdCBhcmU6CisjICAwIC0gZGVmYXVsdCAtIGtlZXAgdGhlIGRlZmF1bHQgYmVoYXZpb3IKKyMgIDEgLSBxdWlldCAgIC0gcmVtb3ZlIGFueSBzcGVjaWZpYyBsb2cKKyMgIDIgLSBjb21wYWN0IC0gZGlzcGxheSBvbmx5IGEgc3VtbWFyeSBvZiB0aGUgaW5mb3JtYXRpb24KKyMgIDQgLSBmdWxsICAgIC0gZGlzcGxheSB0aGUgY29tcGxldGUgaW5mb3JtYXRpb24gb24gYSBzaW5nbGUgbG9uZyBsaW5lCisjICA4IC0gdHJlZSAgICAtIGRpc3BsYXkgdGhlIGNvbXBsZXRlIGluZm9ybWF0aW9uIGluIGFuIGVhc2llciB0byByZWFkIGZvcm1hdCBzcGFubmluZyBzZXZlcmFsIGxpbmVzLgorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyAgUGVlcnMgY29uZmlndXJhdGlvbgorCisjICBUaGUgbG9jYWwgc2VydmVyIGxpc3RlbnMgZm9yIGluY29taW5nIGNvbm5lY3Rpb25zLiBCeSBkZWZhdWx0LAorIyBhbGwgdW5rbm93biBjb25uZWN0aW5nIHBlZXJzIGFyZSByZWplY3RlZC4gRXh0ZW5zaW9ucyBjYW4gb3ZlcnJpZGUgdGhpcyBiZWhhdmlvciAoZS5nLiwgYWNsX3dsKS4KKyMgCisjICBJbiBhZGRpdGlvbiB0byBpbmNvbWluZyBjb25uZWN0aW9ucywgdGhlIGxvY2FsIHBlZXIgY2FuCisjIGJlIGNvbmZpZ3VyZWQgdG8gZXN0YWJsaXNoIGFuZCBtYWludGFpbiBjb25uZWN0aW9ucyB0byBzb21lIAorIyBEaWFtZXRlciBub2RlcyBhbmQgYWxsb3cgY29ubmVjdGlvbnMgZnJvbSB0aGVzZSBub2Rlcy4KKyMgIFRoaXMgaXMgYWNoaWV2ZWQgd2l0aCB0aGUgQ29ubmVjdFBlZXIgZGlyZWN0aXZlIGRlc2NyaWJlZCBiZWxvdy4KKyMKKyMgTm90ZSB0aGF0IHRoZSBjb25maWd1cmVkIERpYW1ldGVyIElkZW50aXR5IE1VU1QgbWF0Y2gKKyMgdGhlIGluZm9ybWF0aW9uIHJlY2VpdmVkIGluc2lkZSBDRUEsIG9yIHRoZSBjb25uZWN0aW9uIHdpbGwgYmUgYWJvcnRlZC4KKyMKKyMgRm9ybWF0OgorI0Nvbm5lY3RQZWVyID0gImRpYW1ldGVyaWQiIFsgeyBwYXJhbWV0ZXIxOyBwYXJhbWV0ZXIyOyAuLi59IF0gOworIyBQYXJhbWV0ZXJzIHRoYXQgY2FuIGJlIHNwZWNpZmllZCBpbiB0aGUgcGVlcidzIHBhcmFtZXRlciBsaXN0OgorIyAgTm9fVENQOyBOb19TQ1RQOyBOb19JUDsgTm9fSVB2NjsgUHJlZmVyX1RDUDsgVExTX29sZF9tZXRob2Q7CisjICBOb19UTFM7ICAgICAgICMgYXNzdW1lIHRyYW5zcGFyZW50IHNlY3VyaXR5IGluc3RlYWQgb2YgVExTLiBEVExTIGlzIG5vdCBzdXBwb3J0ZWQgeWV0ICh3aWxsIGNoYW5nZSBpbiBmdXR1cmUgdmVyc2lvbnMpLgorIyAgUG9ydCA9IDU4Njg7ICAjIFRoZSBwb3J0IHRvIGNvbm5lY3QgdG8KKyMgIFRjVGltZXIgPSAzMDsKKyMgIFR3VGltZXIgPSAzMDsKKyMgIENvbm5lY3RUbyA9ICIyMDIuMjQ5LjM3LjUiOworIyAgQ29ubmVjdFRvID0gIjIwMDE6MjAwOjkwMzoyOjoyMDI6MSI7CisjICBUTFNfUHJpbyA9ICJOT1JNQUwiOworIyAgUmVhbG0gPSAicmVhbG0ubmV0IjsgIyBSZWplY3QgdGhlIHBlZXIgaWYgaXQgZG9lcyBub3QgYWR2ZXJ0aXNlIHRoaXMgcmVhbG0uCisjIEV4YW1wbGVzOgorI0Nvbm5lY3RQZWVyID0gImFhYS53aWRlLmFkLmpwIjsKKyNDb25uZWN0UGVlciA9ICJvbGQuZGlhbWV0ZXIuc2VydiIgeyBUY1RpbWVyID0gNjA7IFRMU19vbGRfbWV0aG9kOyBOb19TQ1RQOyBQb3J0PTM4Njg7IH0gOworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9mcmVlZGlhbWV0ZXIuaW5pdCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9mcmVlZGlhbWV0ZXIuaW5pdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNjNhNDJhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZpbGVzL2ZyZWVkaWFtZXRlci5pbml0CkBAIC0wLDAgKzEsNzIgQEAKKyMhL2Jpbi9zaAorIworIyMjIEJFR0lOIElOSVQgSU5GTworIyBQcm92aWRlczogICAgICAgICAgZnJlZWRpYW1ldGVyCisjIERlZmF1bHQtU3RhcnQ6ICAgICAyIDMgNCA1CisjIERlZmF1bHQtU3RvcDogICAgICAwIDEgNgorIyBSZXF1aXJlZC1TdGFydDogICAgJHJlbW90ZV9mcyAkc3lzbG9nCisjIFJlcXVpcmVkLVN0b3A6ICAgICAkcmVtb3RlX2ZzICRzeXNsb2cKKyMgU2hvcnQtRGVzY3JpcHRpb246IFN0YXJ0IGZyZWVEaWFtZXRlciBkYWVtb24gYXQgYm9vdCB0aW1lCisjIERlc2NyaXB0aW9uOiAgICAgICBTdGFydCB0aGUgZnJlZURpYW1ldGVyIGRhZW1vbiBhdCBib290IHRpbWUuCisjICAgICAgIGZyZWVEaWFtZXRlciBpcyBhbiBleHRlbnNpYmxlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEaWFtZXRlciBwcm90b2NvbCwKKyMgICAgICAgZGVzaWduZWQgZm9yIEF1dGhlbnRpY2F0aW9uLCBBdXRob3JpemF0aW9uIGFuZCBBY2NvdW50aW5nLiBEaWFtZXRlciBpcworIyAgICAgICBhbiBldm9sdXRpb24gb2YgdGhlIFJBRElVUyBwcm90b2NvbC4KKyMjIyBFTkQgSU5JVCBJTkZPIworREFFTU9OPS91c3IvYmluL2ZyZWVEaWFtZXRlcmQKK0NPTkY9L2V0Yy9mcmVlRGlhbWV0ZXIvZnJlZURpYW1ldGVyLmNvbmYKK05BTUU9ZnJlZWRpYW1ldGVyCitERVNDPSJmcmVlRGlhbWV0ZXIgZGFlbW9uIgorCisuIC9ldGMvaW5pdC5kL2Z1bmN0aW9ucworc3RhcnQoKSB7CisJWyAteCAkREFFTU9OIF0gfHwgZXhpdCA1CisJZWNobyAtbiAkIlN0YXJ0aW5nICREQUVNT046ICIKKwlzdGFydC1zdG9wLWRhZW1vbiAtUyAtYiAteCAke0RBRU1PTn0gJiYgc3VjY2VzcyB8fCBmYWlsdXJlCisJcmV0dmFsPSQ/CisJZWNobyAiIgorCXJldHVybiAkcmV0dmFsCit9CisKK3N0b3AoKSB7CisJZWNobyAtbiAkIlN0b3BwaW5nICRwcm9nOiAiCisJc3RhcnQtc3RvcC1kYWVtb24gLUsgLXggJERBRU1PTgorCXJldHZhbD0kPworCWVjaG8gIiIKKwlyZXR1cm4gJHJldHZhbAorfQorCityZXN0YXJ0KCkgeworCXN0b3AKKwlzbGVlcCAzCisJc3RhcnQKK30KKworcmhfc3RhdHVzKCkgeworCXN0YXR1cyAkREFFTU9OCit9CisKK3JoX3N0YXR1c19xKCkgeworCXJoX3N0YXR1cyA+IC9kZXYvbnVsbCAyPiYxCit9CisKK2Nhc2UgIiQxIiBpbgorICBzdGFydCkKKwlyaF9zdGF0dXNfcSAmJiBleGl0IDAKKwlzdGFydAorCTs7CisgIHN0b3ApCisJcmhfc3RhdHVzX3EgfHwgZXhpdCAwCisJc3RvcAorCTs7CisgIHJlc3RhcnQpCisJcmVzdGFydAorCTs7CisgIHN0YXR1cykKKwlyaF9zdGF0dXMKKwk7OworICAqKQorCWVjaG8gJCJVc2FnZTogJHByb2cge3N0YXJ0fHN0b3B8c3RhdHVzfHJlc3RhcnR9IgorCWV4aXQgMgorZXNhYworCitleGl0ICQ/CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9mcmVlZGlhbWV0ZXIvZmlsZXMvZnJlZWRpYW1ldGVyLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9mcmVlZGlhbWV0ZXIvZmlsZXMvZnJlZWRpYW1ldGVyLnNlcnZpY2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE0NDgxYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9mcmVlZGlhbWV0ZXIuc2VydmljZQpAQCAtMCwwICsxLDExIEBACitbVW5pdF0KK0Rlc2NyaXB0aW9uPWZyZWVkaWFtZXRlciBkYWVtb24KK0FmdGVyPW5ldHdvcmsudGFyZ2V0CisKK1tTZXJ2aWNlXQorVHlwZT1zaW1wbGUKK1BJREZpbGU9L3Zhci9ydW4vZnJlZWRpYW1ldGVyLnBpZAorRXhlY1N0YXJ0PUBCSU5ESVJAL2ZyZWVEaWFtZXRlcmQKKworW0luc3RhbGxdCitXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZpbGVzL2luc3RhbGxfdGVzdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9pbnN0YWxsX3Rlc3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUxMDM3ZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9pbnN0YWxsX3Rlc3QucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorQ01ha2VMaXN0czogYWRkIGFuIG9wdGlvbiB0byBpbnN0YWxsIHRlc3RzCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbT0UgcHRlc3Qgc3BlY2lmaWNdCisKK09yaWdpbmFsIGF1dGhvcjogWWFvIFpoYW8gPHlhby56aGFvQHdpbmRyaXZlci5jb20+CitTaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgorCitkaWZmIC0tZ2l0IGEvdGVzdHMvQ01ha2VMaXN0cy50eHQgYi90ZXN0cy9DTWFrZUxpc3RzLnR4dAoraW5kZXggZGE4ZGExYi4uZGUwNDA1OSAxMDA2NDQKKy0tLSBhL3Rlc3RzL0NNYWtlTGlzdHMudHh0CisrKysgYi90ZXN0cy9DTWFrZUxpc3RzLnR4dAorQEAgLTExMyw0ICsxMTMsOSBAQCBFTkRGT1JFQUNIKCBURVNUICkKKyAjIyMjCisgIyMgSU5TVEFMTCBzZWN0aW9uICMjCisgCistIyB3ZSBkbyBub3QgaW5zdGFsbCB0aGUgdGVzdHMKKysjIGluc3RhbGwgdGhlIHRlc3RzCisrU0VUKElOU1RBTExfVEVTVF9TVUZGSVggICAgICAgL29wdC8ke0ZEX1BST0pFQ1RfTkFNRX0tdGVzdHMgICBDQUNIRSBQQVRIICJEaXJlY3Rvcnkgd2hlcmUgdGhlIHRlc3QgYmluYXJ5IGlzIGluc3RhbGxlZC4iKQorKworK0lOU1RBTEwoVEFSR0VUUyAke1RFU1RfTElTVH0KKysgICAgICAgIFJVTlRJTUUgREVTVElOQVRJT04gJHtJTlNUQUxMX1RFU1RfU1VGRklYfQorKyAgICAgICAgQ09NUE9ORU5UIGZyZWVEaWFtZXRlci1jb21tb24pCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9mcmVlZGlhbWV0ZXIvZmlsZXMvcGFzcy1wdGVzdC1lbnYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9mcmVlZGlhbWV0ZXIvZmlsZXMvcGFzcy1wdGVzdC1lbnYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWE4NTdhZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9wYXNzLXB0ZXN0LWVudi5wYXRjaApAQCAtMCwwICsxLDcyIEBACitmcmVlZGlhbWV0ZXIgcHRlc3QgY2FzZXMgdGVzdG1lc2dfc3RyZXNzLmMgYW5kIHRlc3Rsb2FkZXh0LmMgbmVlZCBsb2FkCitleHRlbnNpb25zIGJvdGggYnVpbGQgdGltZSBhbmQgcnVudGltZS4gVGhlbiB0aGV5IHNlYXJjaCBleHRlbnNpb25zIHdpdGgKK2J1aWxkIGRpcmVjdG9yeSB0aGF0IGNhdXNlcyBydW50aW1lIGZhaWx1cmVzLgorCitQYXNzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGRlZmluZSBydW50aW1lIGV4dGVuc2lvbiBwYXRoLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIHB0ZXN0IHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CisKK2RpZmYgLU51ciBmcmVlRGlhbWV0ZXItMS4yLjAub3JpZy90ZXN0cy90ZXN0bG9hZGV4dC5jIGZyZWVEaWFtZXRlci0xLjIuMC90ZXN0cy90ZXN0bG9hZGV4dC5jCistLS0gZnJlZURpYW1ldGVyLTEuMi4wLm9yaWcvdGVzdHMvdGVzdGxvYWRleHQuYwkyMDE0LTAyLTE5IDE3OjMzOjI0Ljc4NTQwNTAzMiArMDgwMAorKysrIGZyZWVEaWFtZXRlci0xLjIuMC90ZXN0cy90ZXN0bG9hZGV4dC5jCTIwMTQtMDItMTkgMjA6MDg6MDMuODcxNDAzOTI0ICswODAwCitAQCAtNDksNyArNDksNyBAQAorIHsKKyAJRElSICpkaXI7CisgCXN0cnVjdCBkaXJlbnQgKmRwOworLQljaGFyIGZ1bGxuYW1lWzUxMl07CisrCWNoYXIgZnVsbG5hbWVbMTAyNF07CisgCWludCBwYXRobGVuOworIAorIAkvKiBGaXJzdCwgaW5pdGlhbGl6ZSB0aGUgZGFlbW9uIG1vZHVsZXMgKi8KK0BAIC01NywxMSArNTcsMTYgQEAKKyAJQ0hFQ0soIDAsIGZkX3F1ZXVlc19pbml0KCkgICk7CisgCUNIRUNLKCAwLCBmZF9tc2dfaW5pdCgpICApOworIAlDSEVDSyggMCwgZmRfcnRkaXNwX2luaXQoKSAgKTsKKy0JCisrCisrCWNoYXIgKmV4dF9kaXIgPSBnZXRlbnYoIkVYVEVOU0lPTlNfRElSIik7CisrCWlmIChleHRfZGlyKQorKwkJcGF0aGxlbiA9IHNucHJpbnRmKGZ1bGxuYW1lLCBzaXplb2YoZnVsbG5hbWUpLCAiJXMiLCBleHRfZGlyKTsKKysJZWxzZQorKwkJcGF0aGxlbiA9IHNucHJpbnRmKGZ1bGxuYW1lLCBzaXplb2YoZnVsbG5hbWUpLCBCVUlMRF9ESVIgIi9leHRlbnNpb25zLyIpOworKworIAkvKiBGaW5kIGFsbCBleHRlbnNpb25zIHdoaWNoIGhhdmUgYmVlbiBjb21waWxlZCBhbG9uZyB0aGUgdGVzdCAqLworLQlUUkFDRV9ERUJVRyhJTkZPLCAiTG9hZGluZyBmcm9tOiAnJXMnIiwgQlVJTERfRElSICIvZXh0ZW5zaW9ucyIpOworLQlDSEVDSyggMCwgKGRpciA9IG9wZW5kaXIgKEJVSUxEX0RJUiAiL2V4dGVuc2lvbnMiKSkgPT0gTlVMTCA/IDEgOiAwICk7CistCXBhdGhsZW4gPSBzbnByaW50ZihmdWxsbmFtZSwgc2l6ZW9mKGZ1bGxuYW1lKSwgQlVJTERfRElSICIvZXh0ZW5zaW9ucy8iKTsKKysJVFJBQ0VfREVCVUcoSU5GTywgIkxvYWRpbmcgZnJvbTogJyVzJyIsIGZ1bGxuYW1lKTsKKysJQ0hFQ0soIDAsIChkaXIgPSBvcGVuZGlyIChmdWxsbmFtZSkpID09IE5VTEwgPyAxIDogMCApOworIAkKKyAJd2hpbGUgKChkcCA9IHJlYWRkaXIgKGRpcikpICE9IE5VTEwpIHsKKyAJCWNoYXIgKiBkb3QgPSBzdHJyY2hyKGRwLT5kX25hbWUsICcuJyk7CitkaWZmIC1OdXIgZnJlZURpYW1ldGVyLTEuMi4wLm9yaWcvdGVzdHMvdGVzdG1lc2dfc3RyZXNzLmMgZnJlZURpYW1ldGVyLTEuMi4wL3Rlc3RzL3Rlc3RtZXNnX3N0cmVzcy5jCistLS0gZnJlZURpYW1ldGVyLTEuMi4wLm9yaWcvdGVzdHMvdGVzdG1lc2dfc3RyZXNzLmMJMjAxNC0wMi0xOSAxNzozMzoyNC43ODU0MDUwMzIgKzA4MDAKKysrKyBmcmVlRGlhbWV0ZXItMS4yLjAvdGVzdHMvdGVzdG1lc2dfc3RyZXNzLmMJMjAxNC0wMi0xOSAyMDowODowMy45Mjg0MDM5MjQgKzA4MDAKK0BAIC02NywxNSArNjcsMjAgQEAKKyB7CisgCURJUiAqZGlyOworIAlzdHJ1Y3QgZGlyZW50ICpkcDsKKy0JY2hhciBmdWxsbmFtZVs1MTJdOworKwljaGFyIGZ1bGxuYW1lWzEwMjRdOworIAlpbnQgcGF0aGxlbjsKKyAJc3RydWN0IGZkX2xpc3QgYWxsX2V4dGVuc2lvbnMgPSBGRF9MSVNUX0lOSVRJQUxJWkVSKGFsbF9leHRlbnNpb25zKTsKKyAJc3RydWN0IGZkX2xpc3QgZXh0X3dpdGhfZGVwZW5kcyA9IEZEX0xJU1RfSU5JVElBTElaRVIoZXh0X3dpdGhfZGVwZW5kcyk7CisgCisrCWNoYXIgKmV4dF9kaXIgPSBnZXRlbnYoIkVYVEVOU0lPTlNfRElSIik7CisrCWlmIChleHRfZGlyKQorKwkJcGF0aGxlbiA9IHNucHJpbnRmKGZ1bGxuYW1lLCBzaXplb2YoZnVsbG5hbWUpLCAiJXMiLCBleHRfZGlyKTsKKysJZWxzZQorKwkJcGF0aGxlbiA9IHNucHJpbnRmKGZ1bGxuYW1lLCBzaXplb2YoZnVsbG5hbWUpLCBCVUlMRF9ESVIgIi9leHRlbnNpb25zLyIpOworKworIAkvKiBGaW5kIGFsbCBleHRlbnNpb25zIHdoaWNoIGhhdmUgYmVlbiBjb21waWxlZCBhbG9uZyB0aGUgdGVzdCAqLworLQlMT0dfRCgiTG9hZGluZyAlcyouZmR4IGZyb206ICclcyciLCBCVUlMRF9ESVIgIi9leHRlbnNpb25zIiwgcHJlZml4ID86ICIiKTsKKy0JQ0hFQ0soIDAsIChkaXIgPSBvcGVuZGlyIChCVUlMRF9ESVIgIi9leHRlbnNpb25zIikpID09IE5VTEwgPyAxIDogMCApOworLQlwYXRobGVuID0gc25wcmludGYoZnVsbG5hbWUsIHNpemVvZihmdWxsbmFtZSksIEJVSUxEX0RJUiAiL2V4dGVuc2lvbnMvIik7CisrCVRSQUNFX0RFQlVHKElORk8sICJMb2FkaW5nIGZyb206ICclcyciLCBmdWxsbmFtZSk7CisrCUNIRUNLKCAwLCAoZGlyID0gb3BlbmRpciAoZnVsbG5hbWUpKSA9PSBOVUxMID8gMSA6IDAgKTsKKyAJCisgCXdoaWxlICgoZHAgPSByZWFkZGlyIChkaXIpKSAhPSBOVUxMKSB7CisgCQljaGFyICogZG90ID0gc3RycmNocihkcC0+ZF9uYW1lLCAnLicpOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZpbGVzL3J1bi1wdGVzdCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9ydW4tcHRlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDBjYThkOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL2ZyZWVkaWFtZXRlci9maWxlcy9ydW4tcHRlc3QKQEAgLTAsMCArMSwxMSBAQAorIyEvYmluL3NoCisKK2lmICEgbHNtb2QgfCBncmVwIC1xIHNjdHAgJiYgISBtb2Rwcm9iZSBzY3RwIDI+L2Rldi9udWxsOyB0aGVuCisgICAgICAgIGVjaG8gIkNvdWxkbid0IGxvYWQga2VybmVsIG1vZHVsZSBzY3RwLiIKKyAgICAgICAgZWNobyAiVGVzdCBjYXNlcyB0ZXN0c2N0cCBhbmQgdGVzdGNueCB3aWxsIGZhaWwuIgorICAgICAgICBlY2hvCitmaQorCitleHBvcnQgRVhURU5TSU9OU19ESVI9JEVYVEVOU0lPTlNfRElSCitjbWFrZSAgLUUgY21ha2VfZWNob19jb2xvciAtLWN5YW4gIlJ1bm5pbmcgdGVzdHMuLi4iCitjdGVzdCAtLWZvcmNlLW5ldy1jdGVzdC1wcm9jZXNzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9mcmVlZGlhbWV0ZXIvZnJlZWRpYW1ldGVyXzEuMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZyZWVkaWFtZXRlcl8xLjIuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTU2ZWI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvZnJlZWRpYW1ldGVyL2ZyZWVkaWFtZXRlcl8xLjIuMS5iYgpAQCAtMCwwICsxLDEzOCBAQAorU1VNTUFSWSA9ICJBbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGlhbWV0ZXIgcHJvdG9jb2wiCitERVNDUklQVElPTiA9ICJcCitmcmVlRGlhbWV0ZXIgaXMgYW4gb3BlbiBzb3VyY2UgRGlhbWV0ZXIgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24gXAorKFJGQzM1ODgpLiBJdCBwcm92aWRlcyBhbiBleHRlbnNpYmxlIHBsYXRmb3JtIGZvciBkZXBsb3lpbmcgYSBcCitEaWFtZXRlciBuZXR3b3JrIGZvciB5b3VyIEF1dGhlbnRpY2F0aW9uLCBBdXRob3JpemF0aW9uIGFuZCBcCitBY2NvdW50aW5nIG5lZWRzLiIKKworSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5mcmVlZGlhbWV0ZXIubmV0IgorCitERVBFTkRTID0gImZsZXggYmlzb24gY21ha2UtbmF0aXZlIGxpYmdjcnlwdCBnbnV0bHMgbGliaWRuIGxrc2N0cC10b29scyB2aXJ0dWFsL2tlcm5lbCIKKworUEFDS0FHRV9BUkNIID0gIiR7TUFDSElORV9BUkNIfSIKKworZmRfcGtnbmFtZSA9ICJmcmVlRGlhbWV0ZXIiCisKK1NSQ19VUkkgPSAiXAorICAgIGh0dHA6Ly93d3cuZnJlZWRpYW1ldGVyLm5ldC9oZy8ke2ZkX3BrZ25hbWV9L2FyY2hpdmUvJHtQVn0udGFyLmd6O2Rvd25sb2FkZmlsZW5hbWU9JHtmZF9wa2duYW1lfS0ke1BWfS50YXIuZ3ogXAorICAgIGZpbGU6Ly9SZXBsYWNlLW11cm11cmhhc2gtYWxnb3JpdGhtLXdpdGgtUm9iZXJ0LUplbmtpbi1zLWhhLnBhdGNoIFwKKyAgICBmaWxlOi8vZnJlZWRpYW1ldGVyLnNlcnZpY2UgXAorICAgIGZpbGU6Ly9mcmVlZGlhbWV0ZXIuaW5pdCBcCisgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdwdGVzdCcsICdmaWxlOi8vaW5zdGFsbF90ZXN0LnBhdGNoIGZpbGU6Ly9ydW4tcHRlc3QgZmlsZTovL3Bhc3MtcHRlc3QtZW52LnBhdGNoJywgJycsIGQpfSBcCisgICAgZmlsZTovL2ZyZWVEaWFtZXRlci5jb25mIFwKKyAgICAiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI2MWIxMDYyYWExNDRiNWYxMmVlZDUxNDYxMWU2ZDY5NyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJiZDdmMTA1NTQyZTk5MDNlNzc2YWEwMDZjNjkzMWMxZjVkM2Q0NzdjYjU5YWYzM2E5MTYyNDIyZWZhNDc3MDk3IgorCitTID0gIiR7V09SS0RJUn0vJHtmZF9wa2duYW1lfS0ke1BWfSIKKworTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT04OTJiMmVkNmFlODE1NDg4YTA4NDE2ZmY3ZWU3NGEzNSIKKworUFRFU1RfUEFUSCA9ICIke2xpYmRpcn0vJHtmZF9wa2duYW1lfS9wdGVzdCIKKworaW5oZXJpdCBjbWFrZSBwa2djb25maWcgdXBkYXRlLXJjLmQgcHRlc3Qgc3lzdGVtZAorCitFWFRSQV9PRUNNQUtFID0gIiBcCisgICAgLURERUZBVUxUX0NPTkZfUEFUSDpQQVRIPSR7c3lzY29uZmRpcn0vJHtmZF9wa2duYW1lfSBcCisgICAgLURCVUlMRF9EQkdfTU9OSVRPUjpCT09MPU9OICBcCisgICAgLURCVUlMRF9URVNUX0FQUDpCT09MPU9OIFwKKyAgICAtREJVSUxEX1RFU1RJTkc6Qk9PTD1PTiBcCisgICAgLURCVUlMRF9BUFBfUkFER1c6Qk9PTD1PTiBcCisgICAgLURCVUlMRF9BUFBfUkVESVJFQ1Q6Qk9PTD1PTiBcCisgICAgLURCVUlMRF9URVNUX0FDQ1Q6Qk9PTD1PTiBcCisgICAgLURCVUlMRF9URVNUX05FVEVNVUw6Qk9PTD1PTiBcCisgICAgLURCVUlMRF9URVNUX1JUX0FOWTpCT09MPU9OIFwKKyAgICAtRElOU1RBTExfTElCUkFSWV9TVUZGSVg6UEFUSD0ke2Jhc2VsaWJ9IFwKKyAgICAtRElOU1RBTExfRVhURU5TSU9OU19TVUZGSVg6UEFUSD0ke2Jhc2VsaWJ9LyR7ZmRfcGtnbmFtZX0gXAorICAgIC1ESU5TVEFMTF9URVNUX1NVRkZJWDpQQVRIPSR7UFRFU1RfUEFUSH0tdGVzdHMgXAorICAgIC1EQ01BS0VfU0tJUF9SUEFUSDpCT09MPU9OIFwKKyIKKyMgSU5TVEFMTF9MSUJSQVJZX1NVRkZJWCBpcyByZWxhdGl2ZSB0byBDTUFLRV9JTlNUQUxMX1BSRUZJWAorIyBzcGVjaWZ5IGl0IG9uIGNtZCBsaW5lIHdpbGwgZml4IHRoZSBTRVQgYnVnIGluIENNYWtlTGlzdC50eHQKKworIyAtREJVSUxEX0FQUF9BQ0NUOkJPT0w9T04gVGhpcyBuZWVkcyBQT1NUR1JFU1FMIHN1cHBvcnQKKworIyAtREJVSUxEX0FQUF9ESUFNRUFQOkJPT0w9T04gIC1EQlVJTERfQVBQX1NJUDpCT09MPU9OIC1EQlVJTERfVEVTVF9TSVA6Qk9PTD1PTgorIyBUaGVzZSBuZWVkIE15U1FMIHN1cHBvcnQKKworIyAtREJVSUxEX0RCR19JTlRFUkFDVElWRTpCT09MPU9OIFRoaXMgbmVlZHMgU1dJRyBzdXBwb3J0CisKKyMgLURBTExfRVhURU5TSU9OUz1PTiB3aWxsIGVuYWJsZSBhbGwKKworRkRfS0VZID89IiR7QlBOfS5rZXkiCitGRF9QRU0gPz0gIiR7QlBOfS5wZW0iCitGRF9DQSA/PSAiJHtCUE59LnBlbSIKK0ZEX0RIX1BFTSA/PSAiJHtCUE59LWRoLnBlbSIKK0ZEX0hPU1ROQU1FID89ICIke01BQ0hJTkV9IgorRkRfUkVBTE0gPz0gIm9wZW5lbWJlZGRlZC5vcmciCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgICMgaW5zdGFsbCB0aGUgc2FtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZXMKKyAgICBpbnN0YWxsIC1kIC1tIDA3NTUgJHtEfSR7c3lzY29uZmRpcn0vJHtmZF9wa2duYW1lfQorICAgIGZvciBpIGluICR7U30vZG9jLyouY29uZi5zYW1wbGU7IGRvCisgICAgICAgIGluc3RhbGwgLW0gMDY0NCAkaSAke0R9JHtzeXNjb25mZGlyfS8ke2ZkX3BrZ25hbWV9LworICAgIGRvbmUKKyAgICBtdiAke0R9JHtzeXNjb25mZGlyfS8ke2ZkX3BrZ25hbWV9L2ZyZWVkaWFtZXRlci5jb25mLnNhbXBsZSBcCisgICAgICAgJHtEfSR7c3lzY29uZmRpcn0vJHtmZF9wa2duYW1lfS9mcmVlRGlhbWV0ZXIuY29uZi5zYW1wbGUKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2ZyZWVEaWFtZXRlcgorCSBpbnN0YWxsICR7V09SS0RJUn0vZnJlZURpYW1ldGVyLmNvbmYgJHtEfSR7c3lzY29uZmRpcn0vJHtmZF9wa2duYW1lfS9mcmVlRGlhbWV0ZXIuY29uZgorCisgICAgIyBpbnN0YWxsIGRhZW1vbiBpbml0IHJlbGF0ZWQgZmlsZXMKKyAgICBpbnN0YWxsIC1kIC1tIDA3NTUgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdAorICAgIGluc3RhbGwgLWQgLW0gMDc1NSAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS9jb250cmliL2RlYmlhbi9mcmVlZGlhbWV0ZXItZGFlbW9uLmRlZmF1bHQgXAorICAgICAgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC8ke0JQTn0KKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS9mcmVlZGlhbWV0ZXIuaW5pdCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvJHtCUE59CisKKyAgICAjIGluc3RhbGwgZm9yIHN5c3RlbWQKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9CisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vZnJlZWRpYW1ldGVyLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0KKyAgICBzZWQgLWkgLWUgJ3MsQEJJTkRJUkAsJHtiaW5kaXJ9LGcnICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9Lyouc2VydmljZQorCisgICAgY2F0ID4+ICR7RH0ke3N5c2NvbmZkaXJ9L2ZyZWVEaWFtZXRlci9mcmVlRGlhbWV0ZXIuY29uZiA8PEVPRgorIyMgT0Ugc3BlY2lmaWMgIyMKKyNJZGVudGl0eT0iJHtGRF9IT1NUTkFNRX0iOworSWRlbnRpdHkgPSAiJHtGRF9IT1NUTkFNRX0uJHtGRF9SRUFMTX0iOworUmVhbG0gPSAiJHtGRF9SRUFMTX0iOworUG9ydCA9IDMwODY4OworU2VjUG9ydCA9IDMwODY5OworVExTX0NyZWQgPSAiL2V0Yy9mcmVlRGlhbWV0ZXIvJHtGRF9QRU19IiAsICIvZXRjL2ZyZWVEaWFtZXRlci8ke0ZEX0tFWX0iOworVExTX0NBID0gIi9ldGMvZnJlZURpYW1ldGVyLyR7RkRfQ0F9IjsKK1RMU19ESF9GaWxlID0gIi9ldGMvZnJlZURpYW1ldGVyLyR7RkRfREhfUEVNfSI7CitFT0YKKworICAgICMgY3JlYXRlIHNlbGYgY2VydAorICAgIG9wZW5zc2wgcmVxIC14NTA5IC1jb25maWcgJHtTVEFHSU5HX0RJUl9OQVRJVkV9L2V0Yy9zc2wvb3BlbnNzbC5jbmYgLW5ld2tleSByc2E6NDA5NiAtc2hhMjU2IC1ub2RlcyAtb3V0ICR7RH0ke3N5c2NvbmZkaXJ9L2ZyZWVEaWFtZXRlci8ke0ZEX1BFTX0gLWtleW91dCAke0R9JHtzeXNjb25mZGlyfS9mcmVlRGlhbWV0ZXIvJHtGRF9LRVl9IC1kYXlzIDM2NTAgLXN1YmogJy9DTj0ke0ZEX0hPU1ROQU1FfS4ke0ZEX1JFQUxNfScKKyAgICBvcGVuc3NsIGRocGFyYW0gLW91dCAke0R9JHtzeXNjb25mZGlyfS9mcmVlRGlhbWV0ZXIvJHtGRF9ESF9QRU19IDEwMjQKKworfQorCitkb19pbnN0YWxsX3B0ZXN0KCkgeworICAgIHNlZCAtaSAicyNcKEVYVEVOU0lPTlNfRElSPVwpLipcJCNcMSR7bGliZGlyfS8ke2ZkX3BrZ25hbWV9LyMiICR7RH0ke1BURVNUX1BBVEh9L3J1bi1wdGVzdAorICAgIG12ICR7RH0ke1BURVNUX1BBVEh9LXRlc3RzLyogJHtEfSR7UFRFU1RfUEFUSH0vCisgICAgcm1kaXIgJHtEfSR7UFRFU1RfUEFUSH0tdGVzdHMKKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtCfS90ZXN0cy9DVGVzdFRlc3RmaWxlLmNtYWtlICR7RH0ke1BURVNUX1BBVEh9LworfQorCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS8ke2ZkX3BrZ25hbWV9Ly5kZWJ1Zy8qIgorCisjIGluY2x1ZGUgdGhlIGV4dGVuc2lvbnMgaW4gbWFpbiBwYWNrYWdlCitGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9LyR7ZmRfcGtnbmFtZX0vKiIKKworUkRFUEVORFNfJHtQTn0gID0gImdsaWItMi4wIGdudXRscyBsaWJpZG4iCitSREVQRU5EU18ke1BOfSArPSAib3BlbnNzbCBvcGVuc3NsLWNvbmYgb3BlbnNzbC1lbmdpbmVzIgorUlJFQ09NTUVORFNfJHtQTn0gKz0gImtlcm5lbC1tb2R1bGUtdGlwYyBrZXJuZWwtbW9kdWxlLXNjdHAiIAorUlJFQ09NTUVORFNfJHtQTn0gKz0gImtlcm5lbC1tb2R1bGUtdWRwLXR1bm5lbCBrZXJuZWwtbW9kdWxlLWlwaXAiCitSREVQRU5EU18ke1BOfS1wdGVzdCA9ICJjbWFrZSIKKworSU5JVFNDUklQVF9QQUNLQUdFUyA9ICIke1BOfSIKK0lOSVRTQ1JJUFRfTkFNRV8ke1BOfSA9ICIke0JQTn0iCitJTklUU0NSSVBUX1BBUkFNUyRfJHtQTn0gPSAic3RhcnQgMzAgLiBzdG9wIDcwIDAgMSAyIDMgNCA1IDYgLiIKKworU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImZyZWVkaWFtZXRlci5zZXJ2aWNlIgorU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJkaXNhYmxlIgorCitDT05GRklMRVNfJHtQTn0gPSAiJHtzeXNjb25mZGlyfS9mcmVlZGlhbWV0ZXIuY29uZiIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbWRucy9maWxlcy8wMDAxLW5zc19tZG5zLURvLW5vdC1pbmNsdWRlLW5zcy5oLXdoZW4tbGliYy1nbGliYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL21kbnMvZmlsZXMvMDAwMS1uc3NfbWRucy1Eby1ub3QtaW5jbHVkZS1uc3MuaC13aGVuLWxpYmMtZ2xpYmMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODYzODY2ZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL21kbnMvZmlsZXMvMDAwMS1uc3NfbWRucy1Eby1ub3QtaW5jbHVkZS1uc3MuaC13aGVuLWxpYmMtZ2xpYmMucGF0Y2gKQEAgLTAsMCArMSw0MiBAQAorRnJvbSBkMzA4MmQyYzYwNmM4MTBhYTBhMzkzNzhiZjFlMDI1NzVhZjNhMzAxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMiBGZWIgMjAxOCAyMTo1NDoxMSAtMDgwMAorU3ViamVjdDogW1BBVENIXSBuc3NfbWRuczogRG8gbm90IGluY2x1ZGUgbnNzLmggd2hlbiBsaWJjICE9IGdsaWJjCisKK1Byb3ZpZGUgbnNzX3N0YXR1cyBtYWNybyBpbnN0ZWFkIGZvciBub24tZ2xpYmMgY2FzZQord2hlcmUgbnNzLmggaXMgYWJzZW50CisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorIG1ETlNQb3NpeC9uc3NfbWRucy5jIHwgMTMgKysrKysrKysrKysrLQorIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9tRE5TUG9zaXgvbnNzX21kbnMuYyBiL21ETlNQb3NpeC9uc3NfbWRucy5jCitpbmRleCBhZmFkYjNjLi5jNDY5NTg0IDEwMDc1NQorLS0tIGEvbUROU1Bvc2l4L25zc19tZG5zLmMKKysrKyBiL21ETlNQb3NpeC9uc3NfbWRucy5jCitAQCAtMzc4LDggKzM3OCwxOSBAQCBpbml0X2NvbmZpZyAoKTsKKyAKKyAjZGVmaW5lIEVOVE5BTUUgIGhvc3RlbnQKKyAjZGVmaW5lIERBVEFCQVNFICJob3N0cyIKKy0KKysjaWZkZWYgX19HTElCQ19fCisgI2luY2x1ZGUgPG5zcy5oPgorKyNlbHNlCisrZW51bSBuc3Nfc3RhdHVzCisreworKyAgICBOU1NfU1RBVFVTX1RSWUFHQUlOID0gLTIsCisrICAgIE5TU19TVEFUVVNfVU5BVkFJTCwKKysgICAgTlNTX1NUQVRVU19OT1RGT1VORCwKKysgICAgTlNTX1NUQVRVU19TVUNDRVNTLAorKyAgICBOU1NfU1RBVFVTX1JFVFVSTgorK307CisrI2RlZmluZSBORVREQl9JTlRFUk5BTCBOVUxMCisrI2VuZGlmCisgLy8gRm9yIG5zc19zdGF0dXMKKyAjaW5jbHVkZSA8bmV0ZGIuaD4KKyAvLyBGb3IgaG9zdGVudAorLS0gCisyLjE2LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbWRucy9tZG5zXzc2NS41MC45LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbWRucy9tZG5zXzc2NS41MC45LmJiCmluZGV4IDFhODBmN2EuLjlhNzE1MmYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL21kbnMvbWRuc183NjUuNTAuOS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9tZG5zL21kbnNfNzY1LjUwLjkuYmIKQEAgLTksNiArOSw3IEBACiBTUkNfVVJJID0gImh0dHA6Ly9vcGVuc291cmNlLmFwcGxlLmNvbS90YXJiYWxscy9tRE5TUmVzcG9uZGVyL21ETlNSZXNwb25kZXItJHtQVn0udGFyLmd6IFwKICAgICAgICAgICAgZmlsZTovL2J1aWxkLnBhdGNoO3BhdGNoZGlyPS4uIFwKICAgICAgICAgICAgZmlsZTovL21kbnMuc2VydmljZSBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLW5zc19tZG5zLURvLW5vdC1pbmNsdWRlLW5zcy5oLXdoZW4tbGliYy1nbGliYy5wYXRjaDtwYXRjaGRpcj0uLiBcCiAgICAgICAgICAgICIKIAogU1JDX1VSSVttZDVzdW1dID0gIjRhNmJjMTYyODg1MTAwMjYzNGVhMzgzM2E0ZGNhMzE3IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvMDAwMS1CVUctYTI1ODQtRml4LXNubXB0cmFwLXRvLXVzZS1jbGllbnRhZGRyLWZyb20tc25tcC5jLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvMDAwMS1CVUctYTI1ODQtRml4LXNubXB0cmFwLXRvLXVzZS1jbGllbnRhZGRyLWZyb20tc25tcC5jLnBhdGNoCmluZGV4IGIwNWVlYTUuLmIxNGI3NjEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wLzAwMDEtQlVHLWEyNTg0LUZpeC1zbm1wdHJhcC10by11c2UtY2xpZW50YWRkci1mcm9tLXNubXAuYy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC8wMDAxLUJVRy1hMjU4NC1GaXgtc25tcHRyYXAtdG8tdXNlLWNsaWVudGFkZHItZnJvbS1zbm1wLmMucGF0Y2gKQEAgLTExLDEzICsxMSwxMyBAQAogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jIHwgMjEgKysrKysrKysrKysrKysrKysrKysrCiAgMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKykKIAotZGlmZiAtLWdpdCBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jIGIvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMKLWluZGV4IDU1ZTM2MTAuLmFjYTY5YWUgMTAwNjQ0Ci0tLS0gYS9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYwotKysrIGIvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMKLUBAIC0yNTYsNiArMjU2LDI3IEBAIG5ldHNubXBfdWRwNl90cmFuc3BvcnQoc3RydWN0IHNvY2thZGRyX2luNiAqYWRkciwgaW50IGxvY2FsKQotICAgICAgICAgdC0+ZGF0YSA9IE5VTEw7Ci0gICAgICAgICB0LT5kYXRhX2xlbmd0aCA9IDA7CitJbmRleDogbmV0LXNubXAtNS43LjMvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBuZXQtc25tcC01LjcuMy5vcmlnL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jCisrKysgbmV0LXNubXAtNS43LjMvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMKK0BAIC0yODYsNiArMjg2LDI3IEBAIG5ldHNubXBfdWRwNl90cmFuc3BvcnQoc3RydWN0IHNvY2thZGRyX2kKKyAgICAgICAgIHJldHVybiBOVUxMOworICNlbmRpZiAvKiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUICovCiAgICAgIH0gZWxzZSB7CiArICAgICAgICBjaGFyICAgICAgICAgICAqY2xpZW50X3NvY2tldCA9IE5VTEw7CiArICAgICAgICAvKgpAQCAtNDMsNiArNDMsMyBAQAogICAgICAgICAgLyoKICAgICAgICAgICAqIFRoaXMgaXMgYSBjbGllbnQgc2Vzc2lvbi4gIFNhdmUgdGhlIGFkZHJlc3MgaW4gdGhlCiAgICAgICAgICAgKiB0cmFuc3BvcnQtc3BlY2lmaWMgZGF0YSBwb2ludGVyIGZvciBsYXRlciB1c2UgYnkgbmV0c25tcF91ZHA2X3NlbmQuCi0tLSAKLTIuOS4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wLzAwMDEtUmVtb3ZlLVU2NC10eXBlZGVmLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvMDAwMS1SZW1vdmUtVTY0LXR5cGVkZWYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzMxNGFiMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wLzAwMDEtUmVtb3ZlLVU2NC10eXBlZGVmLnBhdGNoCkBAIC0wLDAgKzEsMjUyNCBAQAorbmV0LXNubXA6IHJlbW92ZSBVNjQgdHlwZWRlZgorCitGcm9tIGdpdDovL2dpdC5jb2RlLnNmLm5ldC9wL25ldC1zbm1wL2NvZGUKKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCAodW5tb2RpZmllZCkKKworU2lnbmVkLW9mZi1ieTogSm9lIFNsYXRlciA8am9lLnNsYXRlckB3aW5kcml2ZXIuY29tPgorCitGcm9tIDQ3N2I0MzA3ZWYxMmRkY2UzYjZhOTIwNWUwYmRkZGJmYjJlMGU5YjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KK0RhdGU6IFNhdCwgMjAgRmViIDIwMTYgMTg6NTg6MTggLTA4MDAKK1N1YmplY3Q6IFtQQVRDSCAxLzFdIFJlbW92ZSBVNjQgdHlwZWRlZgorCitUaGUgVTY0IHR5cGVkZWYgY29uZmxpY3RzIHdpdGggYSB0eXBlZGVmIGluIGEgUGVybCBoZWFkZXIgZmlsZS4gSGVuY2UKK3JlbW92ZSB0aGUgVTY0IHR5cGVkZWYgZnJvbSB0aGUgTmV0LVNOTVAgaGVhZGVyIGZpbGVzLiBUaGlzIHBhdGNoIGRvZXMKK25vdCBtb2RpZnkgdGhlIE5ldC1TTk1QIEFCSS4KKy0tLQorIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jICAgICAgICAgIHwgIDE2ICstCisgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmggICAgICAgICAgfCAgNDggKy0KKyAuLi4vbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jICB8ICAzMiArLQorIC4uLi9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMgICAgICAgIHwgICAyICstCisgLi4uL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmMgICAgICAgfCAgMjggKy0KKyAuLi4vaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuaCAgICAgICB8ICAyOCArLQorIC4uLi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYyAgICAgIHwgIDU2ICstCisgLi4uL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMgfCAgMjggKy0KKyAuLi4vaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaCB8IDkyMSArKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAuLi4vaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jICAgICAgICAgICAgICAgICB8ICA1NiArLQorIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oICAgICAgICAgICAgIHwgIDQyICstCisgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmggICAgICAgICAgICAgICAgICAgfCAgMzQgKy0KKyBzbm1wbGliL2ludDY0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzOCArLQorIHNubXBsaWIvcmVhZF9jb25maWcuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCisgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDE1aW50NjRfY2xpYi5jICAgICAgfCAgMTAgKy0KKyAxNSBmaWxlcyBjaGFuZ2VkLCAyNzQgaW5zZXJ0aW9ucygrKSwgMTA3MSBkZWxldGlvbnMoLSkKKworSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYworKysrIG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jCitAQCAtNzIyLDcgKzcyMiw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHJlY2VpdmVkIG9uIHQKKyAgKi8KKyBpbnQKKyBpZkhDSW5PY3RldHNfZ2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgVTY0ICogaWZIQ0luT2N0ZXRzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppZkhDSW5PY3RldHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlmSENJbk9jdGV0c192YWxfcHRyKTsKK0BAIC03NzksNyArNzc5LDcgQEAgVGhlIG51bWJlciBvZiBwYWNrZXRzLCBkZWxpdmVyZWQgYnkgdGhpcworICAqLworIGludAorIGlmSENJblVjYXN0UGt0c19nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICBVNjQgKiBpZkhDSW5VY2FzdFBrdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlmSENJblVjYXN0UGt0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaWZIQ0luVWNhc3RQa3RzX3ZhbF9wdHIpOworQEAgLTgzOCw3ICs4MzgsNyBAQCBUaGUgbnVtYmVyIG9mIHBhY2tldHMsIGRlbGl2ZXJlZCBieSB0aGlzCisgICovCisgaW50CisgaWZIQ0luTXVsdGljYXN0UGt0c19nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaWZIQ0luTXVsdGljYXN0UGt0c192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlmSENJbk11bHRpY2FzdFBrdHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlmSENJbk11bHRpY2FzdFBrdHNfdmFsX3B0cik7CitAQCAtODk3LDcgKzg5Nyw3IEBAIFRoZSBudW1iZXIgb2YgcGFja2V0cywgZGVsaXZlcmVkIGJ5IHRoaXMKKyAgKi8KKyBpbnQKKyBpZkhDSW5Ccm9hZGNhc3RQa3RzX2dldChpZlhUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpZkhDSW5Ccm9hZGNhc3RQa3RzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaWZIQ0luQnJvYWRjYXN0UGt0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaWZIQ0luQnJvYWRjYXN0UGt0c192YWxfcHRyKTsKK0BAIC05NTUsNyArOTU1LDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgdHJhbnNtaXR0ZWQgbworICAqLworIGludAorIGlmSENPdXRPY3RldHNfZ2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgIFU2NCAqIGlmSENPdXRPY3RldHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppZkhDT3V0T2N0ZXRzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpZkhDT3V0T2N0ZXRzX3ZhbF9wdHIpOworQEAgLTEwMTMsNyArMTAxMyw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2YgcGFja2V0cyB0aGF0IGhpZ2hlci0KKyAgKi8KKyBpbnQKKyBpZkhDT3V0VWNhc3RQa3RzX2dldChpZlhUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICBVNjQgKiBpZkhDT3V0VWNhc3RQa3RzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaWZIQ091dFVjYXN0UGt0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaWZIQ091dFVjYXN0UGt0c192YWxfcHRyKTsKK0BAIC0xMDc0LDcgKzEwNzQsNyBAQCBUaGUgdG90YWwgbnVtYmVyIG9mIHBhY2tldHMgdGhhdCBoaWdoZXItCisgICovCisgaW50CisgaWZIQ091dE11bHRpY2FzdFBrdHNfZ2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpZkhDT3V0TXVsdGljYXN0UGt0c192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppZkhDT3V0TXVsdGljYXN0UGt0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaWZIQ091dE11bHRpY2FzdFBrdHNfdmFsX3B0cik7CitAQCAtMTEzNCw3ICsxMTM0LDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBwYWNrZXRzIHRoYXQgaGlnaGVyLQorICAqLworIGludAorIGlmSENPdXRCcm9hZGNhc3RQa3RzX2dldChpZlhUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaWZIQ091dEJyb2FkY2FzdFBrdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaWZIQ091dEJyb2FkY2FzdFBrdHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlmSENPdXRCcm9hZGNhc3RQa3RzX3ZhbF9wdHIpOworSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaAorKysrIG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oCitAQCAtMTQzLDI4ICsxNDMsMjggQEAgY29uZmlnX3JlcXVpcmUoaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZk91dEJyb2FkY2FzdFBrdHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpZkhDSW5PY3RldHNfZ2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpZkhDSW5PY3RldHNfdmFsX3B0cik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlmSENJbk9jdGV0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJblVjYXN0UGt0c19nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlmSENJblVjYXN0UGt0c192YWxfcHRyKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaWZIQ0luVWNhc3RQa3RzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ0luTXVsdGljYXN0UGt0c19nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZIQ0luTXVsdGljYXN0UGt0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfZ2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0T2N0ZXRzX2dldChpZlhUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlmSENPdXRPY3RldHNfdmFsX3B0cik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppZkhDT3V0T2N0ZXRzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ091dFVjYXN0UGt0c19nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpZkhDT3V0VWNhc3RQa3RzX3ZhbF9wdHIpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaWZIQ091dFVjYXN0UGt0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRNdWx0aWNhc3RQa3RzX2dldChpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZIQ091dE11bHRpY2FzdFBrdHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0QnJvYWRjYXN0UGt0c19nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmSENPdXRCcm9hZGNhc3RQa3RzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaWZMaW5rVXBEb3duVHJhcEVuYWJsZV9nZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorQEAgLTI4NCw4NiArMjg0LDg2IEBAIGNvbmZpZ19yZXF1aXJlKGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV8KKyAKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk9jdGV0c19jaGVja192YWx1ZShpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDSW5PY3RldHNfdmFsKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0IGlmSENJbk9jdGV0c192YWwpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ0luT2N0ZXRzX3VuZG9fc2V0dXAoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk9jdGV0c19zZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDSW5PY3RldHNfdmFsKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCBpZkhDSW5PY3RldHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk9jdGV0c191bmRvKGlmWFRhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4KTsKKyAKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJblVjYXN0UGt0c19jaGVja192YWx1ZShpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDSW5VY2FzdFBrdHNfdmFsKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0IGlmSENJblVjYXN0UGt0c192YWwpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ0luVWNhc3RQa3RzX3VuZG9fc2V0dXAoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJblVjYXN0UGt0c19zZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDSW5VY2FzdFBrdHNfdmFsKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCBpZkhDSW5VY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJblVjYXN0UGt0c191bmRvKGlmWFRhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4KTsKKyAKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk11bHRpY2FzdFBrdHNfY2hlY2tfdmFsdWUoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmSENJbk11bHRpY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk11bHRpY2FzdFBrdHNfdW5kb19zZXR1cChpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk11bHRpY2FzdFBrdHNfc2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDSW5NdWx0aWNhc3RQa3RzX3ZhbCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0IGlmSENJbk11bHRpY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbk11bHRpY2FzdFBrdHNfdW5kbyhpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfY2hlY2tfdmFsdWUoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfdW5kb19zZXR1cChpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfc2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDSW5Ccm9hZGNhc3RQa3RzX3ZhbCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0IGlmSENJbkJyb2FkY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHNfdW5kbyhpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRPY3RldHNfY2hlY2tfdmFsdWUoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDT3V0T2N0ZXRzX3ZhbCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgaWZIQ091dE9jdGV0c192YWwpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ091dE9jdGV0c191bmRvX3NldHVwKGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ091dE9jdGV0c19zZXQoaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgaWZIQ091dE9jdGV0c192YWwpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCBpZkhDT3V0T2N0ZXRzX3ZhbCk7CisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0T2N0ZXRzX3VuZG8oaWZYVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgpOworIAorICAgICBpbnQgICAgICAgICAgICAgaWZIQ091dFVjYXN0UGt0c19jaGVja192YWx1ZShpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0IGlmSENPdXRVY2FzdFBrdHNfdmFsKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCBpZkhDT3V0VWNhc3RQa3RzX3ZhbCk7CisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0VWNhc3RQa3RzX3VuZG9fc2V0dXAoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCk7CisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0VWNhc3RQa3RzX3NldChpZlhUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDT3V0VWNhc3RQa3RzX3ZhbCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0IGlmSENPdXRVY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRVY2FzdFBrdHNfdW5kbyhpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRNdWx0aWNhc3RQa3RzX2NoZWNrX3ZhbHVlKGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZIQ091dE11bHRpY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRNdWx0aWNhc3RQa3RzX3VuZG9fc2V0dXAoaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ091dE11bHRpY2FzdFBrdHNfc2V0KGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0IGlmSENPdXRNdWx0aWNhc3RQa3RzX3ZhbCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCBpZkhDT3V0TXVsdGljYXN0UGt0c192YWwpOworICAgICBpbnQgICAgICAgICAgICAgaWZIQ091dE11bHRpY2FzdFBrdHNfdW5kbyhpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCk7CisgCisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0QnJvYWRjYXN0UGt0c19jaGVja192YWx1ZShpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmSENPdXRCcm9hZGNhc3RQa3RzX3ZhbCk7CisgICAgIGludCAgICAgICAgICAgICBpZkhDT3V0QnJvYWRjYXN0UGt0c191bmRvX3NldHVwKGlmWFRhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4KTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRCcm9hZGNhc3RQa3RzX3NldChpZlhUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCBpZkhDT3V0QnJvYWRjYXN0UGt0c192YWwpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgaWZIQ091dEJyb2FkY2FzdFBrdHNfdmFsKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlmSENPdXRCcm9hZGNhc3RQa3RzX3VuZG8oaWZYVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgpOworIAorSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5ldC1zbm1wLTUuNy4zLm9yaWcvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jCisrKysgbmV0LXNubXAtNS43LjMvYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jCitAQCAtNzI5LDcyICs3MjksNzIgQEAgX2lmWFRhYmxlX2dldF9jb2x1bW4oaWZYVGFibGVfcm93cmVxX2N0eAorICAgICAgICAgICogaWZIQ0luT2N0ZXRzKDYpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lGSENJTk9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaWZIQ0luT2N0ZXRzX2dldChyb3dyZXFfY3R4LCAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICByYyA9IGlmSENJbk9jdGV0c19nZXQocm93cmVxX2N0eCwgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKKyAgICAgICAgICAqIGlmSENJblVjYXN0UGt0cyg3KS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JRkhDSU5VQ0FTVFBLVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CistICAgICAgICByYyA9IGlmSENJblVjYXN0UGt0c19nZXQocm93cmVxX2N0eCwgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgcmMgPSBpZkhDSW5VY2FzdFBrdHNfZ2V0KHJvd3JlcV9jdHgsIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCisgICAgICAgICAgKiBpZkhDSW5NdWx0aWNhc3RQa3RzKDgpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lGSENJTk1VTFRJQ0FTVFBLVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CistICAgICAgICByYyA9IGlmSENJbk11bHRpY2FzdFBrdHNfZ2V0KHJvd3JlcV9jdHgsIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgIHJjID0gaWZIQ0luTXVsdGljYXN0UGt0c19nZXQocm93cmVxX2N0eCwgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKKyAgICAgICAgICAqIGlmSENJbkJyb2FkY2FzdFBrdHMoOSkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSUZIQ0lOQlJPQURDQVNUUEtUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaWZIQ0luQnJvYWRjYXN0UGt0c19nZXQocm93cmVxX2N0eCwgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgcmMgPSBpZkhDSW5Ccm9hZGNhc3RQa3RzX2dldChyb3dyZXFfY3R4LCAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorICAgICAgICAgICogaWZIQ091dE9jdGV0cygxMCkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSUZIQ09VVE9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaWZIQ091dE9jdGV0c19nZXQocm93cmVxX2N0eCwgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgcmMgPSBpZkhDT3V0T2N0ZXRzX2dldChyb3dyZXFfY3R4LCAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorICAgICAgICAgICogaWZIQ091dFVjYXN0UGt0cygxMSkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSUZIQ09VVFVDQVNUUEtUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaWZIQ091dFVjYXN0UGt0c19nZXQocm93cmVxX2N0eCwgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgcmMgPSBpZkhDT3V0VWNhc3RQa3RzX2dldChyb3dyZXFfY3R4LCAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorICAgICAgICAgICogaWZIQ091dE11bHRpY2FzdFBrdHMoMTIpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lGSENPVVRNVUxUSUNBU1RQS1RTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworLSAgICAgICAgcmMgPSBpZkhDT3V0TXVsdGljYXN0UGt0c19nZXQocm93cmVxX2N0eCwgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgcmMgPSBpZkhDT3V0TXVsdGljYXN0UGt0c19nZXQocm93cmVxX2N0eCwgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKKyAgICAgICAgICAqIGlmSENPdXRCcm9hZGNhc3RQa3RzKDEzKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JRkhDT1VUQlJPQURDQVNUUEtUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaWZIQ091dEJyb2FkY2FzdFBrdHNfZ2V0KHJvd3JlcV9jdHgsIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgIHJjID0gaWZIQ091dEJyb2FkY2FzdFBrdHNfZ2V0KHJvd3JlcV9jdHgsIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitJbmRleDogbmV0LXNubXAtNS43LjMvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMKKysrKyBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMKK0BAIC0yNjQsNyArMjY0LDcgQEAgX2NhbGN1bGF0ZV9lbnRyaWVzKG5ldHNubXBfc3lzdGVtc3RhdHNfZQorICAgICAgICAgICAgJiYgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVEZSQUdDUkVBVEVTXQorICAgICAgICAgJiYgZW50cnktPnN0YXRzLmNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9IQ09VVERJU0NBUkRTXSkgeworIAorLSAgICAgICAgVTY0IHRtcCwgdG1wMiwgdG1wMzsKKysgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgdG1wLCB0bXAyLCB0bXAzOworICAgICAgICAgdG1wID0gZW50cnktPnN0YXRzLkhDT3V0UmVxdWVzdHM7CisgICAgICAgICB1NjRJbmNyKCZ0bXAsICZlbnRyeS0+c3RhdHMuSENPdXRGb3J3RGF0YWdyYW1zKTsKKyAgICAgICAgIHU2NEluY3IoJnRtcCwgJmVudHJ5LT5zdGF0cy5IQ091dEZyYWdDcmVhdGVzKTsKK0luZGV4OiBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5ldC1zbm1wLTUuNy4zLm9yaWcvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmMKKysrKyBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuYworQEAgLTI3MCw3ICsyNzAsNyBAQCBUaGUgdG90YWwgbnVtYmVyIG9mIGlucHV0IElQIGRhdGFncmFtcyByCisgICovCisgaW50CisgaXBJZlN0YXRzSENJblJlY2VpdmVzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwSWZTdGF0c0hDSW5SZWNlaXZlc192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBJZlN0YXRzSENJblJlY2VpdmVzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcElmU3RhdHNIQ0luUmVjZWl2ZXNfdmFsX3B0cik7CitAQCAtMzk1LDcgKzM5NSw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHJlY2VpdmVkIGluIGkKKyAgKi8KKyBpbnQKKyBpcElmU3RhdHNIQ0luT2N0ZXRzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcElmU3RhdHNIQ0luT2N0ZXRzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBJZlN0YXRzSENJbk9jdGV0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBJZlN0YXRzSENJbk9jdGV0c192YWxfcHRyKTsKK0BAIC04NjIsNyArODYyLDcgQEAgVGhlIG51bWJlciBvZiBpbnB1dCBkYXRhZ3JhbXMgZm9yIHdoaWNoCisgICovCisgaW50CisgaXBJZlN0YXRzSENJbkZvcndEYXRhZ3JhbXNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcElmU3RhdHNIQ0luRm9yd0RhdGFncmFtc192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppcElmU3RhdHNIQ0luRm9yd0RhdGFncmFtc192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBJZlN0YXRzSENJbkZvcndEYXRhZ3JhbXNfdmFsX3B0cik7CitAQCAtMTI2Nyw3ICsxMjY3LDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBkYXRhZ3JhbXMgc3VjY2Vzc2Z1bAorICAqLworIGludAorIGlwSWZTdGF0c0hDSW5EZWxpdmVyc19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcElmU3RhdHNIQ0luRGVsaXZlcnNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDSW5EZWxpdmVyc192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBJZlN0YXRzSENJbkRlbGl2ZXJzX3ZhbF9wdHIpOworQEAgLTEzOTYsNyArMTM5Niw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2YgSVAgZGF0YWdyYW1zIHRoYXQgbG8KKyAgKi8KKyBpbnQKKyBpcElmU3RhdHNIQ091dFJlcXVlc3RzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcElmU3RhdHNIQ091dFJlcXVlc3RzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBJZlN0YXRzSENPdXRSZXF1ZXN0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBJZlN0YXRzSENPdXRSZXF1ZXN0c192YWxfcHRyKTsKK0BAIC0xNTMyLDcgKzE1MzIsNyBAQCBUaGUgbnVtYmVyIG9mIGRhdGFncmFtcyBmb3Igd2hpY2ggdGhpcyBlCisgICovCisgaW50CisgaXBJZlN0YXRzSENPdXRGb3J3RGF0YWdyYW1zX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwSWZTdGF0c0hDT3V0Rm9yd0RhdGFncmFtc192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBJZlN0YXRzSENPdXRGb3J3RGF0YWdyYW1zX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcElmU3RhdHNIQ091dEZvcndEYXRhZ3JhbXNfdmFsX3B0cik7CitAQCAtMTk5OSw3ICsxOTk5LDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBJUCBkYXRhZ3JhbXMgdGhhdCB0aAorICAqLworIGludAorIGlwSWZTdGF0c0hDT3V0VHJhbnNtaXRzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBJZlN0YXRzSENPdXRUcmFuc21pdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBJZlN0YXRzSENPdXRUcmFuc21pdHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwSWZTdGF0c0hDT3V0VHJhbnNtaXRzX3ZhbF9wdHIpOworQEAgLTIxMjMsNyArMjEyMyw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIGluIElQIGRhdGFncmEKKyAgKi8KKyBpbnQKKyBpcElmU3RhdHNIQ091dE9jdGV0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwSWZTdGF0c0hDT3V0T2N0ZXRzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDT3V0T2N0ZXRzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcElmU3RhdHNIQ091dE9jdGV0c192YWxfcHRyKTsKK0BAIC0yMjQ1LDcgKzIyNDUsNyBAQCBUaGUgbnVtYmVyIG9mIElQIG11bHRpY2FzdCBkYXRhZ3JhbXMgcmVjCisgICovCisgaW50CisgaXBJZlN0YXRzSENJbk1jYXN0UGt0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBJZlN0YXRzSENJbk1jYXN0UGt0c192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDSW5NY2FzdFBrdHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwSWZTdGF0c0hDSW5NY2FzdFBrdHNfdmFsX3B0cik7CitAQCAtMjM3Miw3ICsyMzcyLDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgcmVjZWl2ZWQgaW4gSQorICAqLworIGludAorIGlwSWZTdGF0c0hDSW5NY2FzdE9jdGV0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcElmU3RhdHNIQ0luTWNhc3RPY3RldHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDSW5NY2FzdE9jdGV0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBJZlN0YXRzSENJbk1jYXN0T2N0ZXRzX3ZhbF9wdHIpOworQEAgLTI0OTcsNyArMjQ5Nyw3IEBAIFRoZSBudW1iZXIgb2YgSVAgbXVsdGljYXN0IGRhdGFncmFtcyB0cmEKKyAgKi8KKyBpbnQKKyBpcElmU3RhdHNIQ091dE1jYXN0UGt0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwSWZTdGF0c0hDT3V0TWNhc3RQa3RzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDT3V0TWNhc3RQa3RzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcElmU3RhdHNIQ091dE1jYXN0UGt0c192YWxfcHRyKTsKK0BAIC0yNjIxLDcgKzI2MjEsNyBAQCBUaGUgdG90YWwgbnVtYmVyIG9mIG9jdGV0cyB0cmFuc21pdHRlZCBpCisgICovCisgaW50CisgaXBJZlN0YXRzSENPdXRNY2FzdE9jdGV0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBJZlN0YXRzSENPdXRNY2FzdE9jdGV0c192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDT3V0TWNhc3RPY3RldHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwSWZTdGF0c0hDT3V0TWNhc3RPY3RldHNfdmFsX3B0cik7CitAQCAtMjc0Myw3ICsyNzQzLDcgQEAgVGhlIG51bWJlciBvZiBJUCBicm9hZGNhc3QgZGF0YWdyYW1zIHJlYworICAqLworIGludAorIGlwSWZTdGF0c0hDSW5CY2FzdFBrdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwSWZTdGF0c0hDSW5CY2FzdFBrdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppcElmU3RhdHNIQ0luQmNhc3RQa3RzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcElmU3RhdHNIQ0luQmNhc3RQa3RzX3ZhbF9wdHIpOworQEAgLTI4NjUsNyArMjg2NSw3IEBAIFRoZSBudW1iZXIgb2YgSVAgYnJvYWRjYXN0IGRhdGFncmFtcyB0cmEKKyAgKi8KKyBpbnQKKyBpcElmU3RhdHNIQ091dEJjYXN0UGt0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwSWZTdGF0c0hDT3V0QmNhc3RQa3RzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwSWZTdGF0c0hDT3V0QmNhc3RQa3RzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcElmU3RhdHNIQ091dEJjYXN0UGt0c192YWxfcHRyKTsKK0luZGV4OiBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5ldC1zbm1wLTUuNy4zLm9yaWcvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmgKKysrKyBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuaAorQEAgLTUwLDcgKzUwLDcgQEAgZXh0ZXJuICAgICAgICAgICJDIiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNJblJlY2VpdmVzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENJblJlY2VpdmVzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDSW5SZWNlaXZlc192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c0luT2N0ZXRzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorQEAgLTU4LDcgKzU4LDcgQEAgZXh0ZXJuICAgICAgICAgICJDIiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzSW5PY3RldHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpcElmU3RhdHNIQ0luT2N0ZXRzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNIQ0luT2N0ZXRzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSW5IZHJFcnJvcnNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCitAQCAtODcsNyArODcsNyBAQCBleHRlcm4gICAgICAgICAgIkMiIHsKKyAgICAgaW50ICAgICAgICAgICAgCisgICAgICAgICBpcElmU3RhdHNIQ0luRm9yd0RhdGFncmFtc19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDSW5Gb3J3RGF0YWdyYW1zX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzUmVhc21SZXFkc19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorQEAgLTExMSw3ICsxMTEsNyBAQCBleHRlcm4gICAgICAgICAgIkMiIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0luRGVsaXZlcnNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpcElmU3RhdHNIQ0luRGVsaXZlcnNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzSENJbkRlbGl2ZXJzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzT3V0UmVxdWVzdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCitAQCAtMTE5LDcgKzExOSw3IEBAIGV4dGVybiAgICAgICAgICAiQyIgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c091dFJlcXVlc3RzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENPdXRSZXF1ZXN0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzSENPdXRSZXF1ZXN0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c091dEZvcndEYXRhZ3JhbXNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcm93cmVxX2N0eCwKK0BAIC0xMjgsNyArMTI4LDcgQEAgZXh0ZXJuICAgICAgICAgICJDIiB7CisgICAgIGludCAgICAgICAgICAgIAorICAgICAgICAgaXBJZlN0YXRzSENPdXRGb3J3RGF0YWdyYW1zX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDT3V0Rm9yd0RhdGFncmFtc192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c091dERpc2NhcmRzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorQEAgLTE1Niw3ICsxNTYsNyBAQCBleHRlcm4gICAgICAgICAgIkMiIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzT3V0VHJhbnNtaXRzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENPdXRUcmFuc21pdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNIQ091dFRyYW5zbWl0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c091dE9jdGV0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCitAQCAtMTY0LDcgKzE2NCw3IEBAIGV4dGVybiAgICAgICAgICAiQyIgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNPdXRPY3RldHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpcElmU3RhdHNIQ091dE9jdGV0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDT3V0T2N0ZXRzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSW5NY2FzdFBrdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCitAQCAtMTcyLDcgKzE3Miw3IEBAIGV4dGVybiAgICAgICAgICAiQyIgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0luTWNhc3RQa3RzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENJbk1jYXN0UGt0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzSENJbk1jYXN0UGt0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c0luTWNhc3RPY3RldHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKK0BAIC0xODAsNyArMTgwLDcgQEAgZXh0ZXJuICAgICAgICAgICJDIiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNJbk1jYXN0T2N0ZXRzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENJbk1jYXN0T2N0ZXRzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDSW5NY2FzdE9jdGV0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c091dE1jYXN0UGt0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCitAQCAtMTg4LDcgKzE4OCw3IEBAIGV4dGVybiAgICAgICAgICAiQyIgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNPdXRNY2FzdFBrdHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpcElmU3RhdHNIQ091dE1jYXN0UGt0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDT3V0TWNhc3RQa3RzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzT3V0TWNhc3RPY3RldHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCitAQCAtMTk2LDcgKzE5Niw3IEBAIGV4dGVybiAgICAgICAgICAiQyIgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c091dE1jYXN0T2N0ZXRzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENPdXRNY2FzdE9jdGV0c19nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzSENPdXRNY2FzdE9jdGV0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c0luQmNhc3RQa3RzX2dldChpcElmU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorQEAgLTIwNCw3ICsyMDQsNyBAQCBleHRlcm4gICAgICAgICAgIkMiIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNJbkJjYXN0UGt0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgIGlwSWZTdGF0c0hDSW5CY2FzdFBrdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwSWZTdGF0c0hDSW5CY2FzdFBrdHNfdmFsX3B0cik7CisgICAgIGludCAgICAgICAgICAgICBpcElmU3RhdHNPdXRCY2FzdFBrdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorQEAgLTIxMiw3ICsyMTIsNyBAQCBleHRlcm4gICAgICAgICAgIkMiIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBJZlN0YXRzT3V0QmNhc3RQa3RzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBJZlN0YXRzSENPdXRCY2FzdFBrdHNfZ2V0KGlwSWZTdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcElmU3RhdHNIQ091dEJjYXN0UGt0c192YWxfcHRyKTsKKyAgICAgaW50ICAgICAgICAgICAgCisgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZV9nZXQoaXBJZlN0YXRzVGFibGVfcm93cmVxX2N0eCAqCitJbmRleDogbmV0LXNubXAtNS43LjMvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMKKysrKyBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMKK0BAIC03MjIsMTAgKzcyMiwxMCBAQCBfaXBJZlN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcElmU3RhdHNUYWJsCisgICAgICAgICAgKiBpcElmU3RhdHNIQ0luUmVjZWl2ZXMoNCkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBJRlNUQVRTSENJTlJFQ0VJVkVTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ0luUmVjZWl2ZXNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtNzQxLDkgKzc0MSw5IEBAIF9pcElmU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwSWZTdGF0c1RhYmwKKyAgICAgICAgICAqIGlwSWZTdGF0c0hDSW5PY3RldHMoNikvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBJRlNUQVRTSENJTk9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaXBJZlN0YXRzSENJbk9jdGV0c19nZXQocm93cmVxX2N0eCwgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgcmMgPSBpcElmU3RhdHNIQ0luT2N0ZXRzX2dldChyb3dyZXFfY3R4LCAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTgxMCwxMCArODEwLDEwIEBAIF9pcElmU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwSWZTdGF0c1RhYmwKKyAgICAgICAgICAqIGlwSWZTdGF0c0hDSW5Gb3J3RGF0YWdyYW1zKDEzKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUElGU1RBVFNIQ0lORk9SV0RBVEFHUkFNUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBJZlN0YXRzSENJbkZvcndEYXRhZ3JhbXNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTg2OSwxMCArODY5LDEwIEBAIF9pcElmU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwSWZTdGF0c1RhYmwKKyAgICAgICAgICAqIGlwSWZTdGF0c0hDSW5EZWxpdmVycygxOSkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBJRlNUQVRTSENJTkRFTElWRVJTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ0luRGVsaXZlcnNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtODg5LDEwICs4ODksMTAgQEAgX2lwSWZTdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBJZlN0YXRzVGFibAorICAgICAgICAgICogaXBJZlN0YXRzSENPdXRSZXF1ZXN0cygyMSkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBJRlNUQVRTSENPVVRSRVFVRVNUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBJZlN0YXRzSENPdXRSZXF1ZXN0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTkwOSwxMCArOTA5LDEwIEBAIF9pcElmU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwSWZTdGF0c1RhYmwKKyAgICAgICAgICAqIGlwSWZTdGF0c0hDT3V0Rm9yd0RhdGFncmFtcygyNCkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBJRlNUQVRTSENPVVRGT1JXREFUQUdSQU1TOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ091dEZvcndEYXRhZ3JhbXNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtOTc5LDEwICs5NzksMTAgQEAgX2lwSWZTdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBJZlN0YXRzVGFibAorICAgICAgICAgICogaXBJZlN0YXRzSENPdXRUcmFuc21pdHMoMzEpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQSUZTVEFUU0hDT1VUVFJBTlNNSVRTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ091dFRyYW5zbWl0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtOTk5LDkgKzk5OSw5IEBAIF9pcElmU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwSWZTdGF0c1RhYmwKKyAgICAgICAgICAqIGlwSWZTdGF0c0hDT3V0T2N0ZXRzKDMzKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUElGU1RBVFNIQ09VVE9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKy0gICAgICAgIHJjID0gaXBJZlN0YXRzSENPdXRPY3RldHNfZ2V0KHJvd3JlcV9jdHgsIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgIHJjID0gaXBJZlN0YXRzSENPdXRPY3RldHNfZ2V0KHJvd3JlcV9jdHgsIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtMTAxOCwxMCArMTAxOCwxMCBAQCBfaXBJZlN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcElmU3RhdHNUYWJsCisgICAgICAgICAgKiBpcElmU3RhdHNIQ0luTWNhc3RQa3RzKDM1KS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUElGU1RBVFNIQ0lOTUNBU1RQS1RTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ0luTWNhc3RQa3RzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtMTAzOCwxMCArMTAzOCwxMCBAQCBfaXBJZlN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcElmU3RhdHNUYWJsCisgICAgICAgICAgKiBpcElmU3RhdHNIQ0luTWNhc3RPY3RldHMoMzcpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQSUZTVEFUU0hDSU5NQ0FTVE9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBJZlN0YXRzSENJbk1jYXN0T2N0ZXRzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTEwNTgsMTAgKzEwNTgsMTAgQEAgX2lwSWZTdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBJZlN0YXRzVGFibAorICAgICAgICAgICogaXBJZlN0YXRzSENPdXRNY2FzdFBrdHMoMzkpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQSUZTVEFUU0hDT1VUTUNBU1RQS1RTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ091dE1jYXN0UGt0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtMTA3OCwxMCArMTA3OCwxMCBAQCBfaXBJZlN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcElmU3RhdHNUYWJsCisgICAgICAgICAgKiBpcElmU3RhdHNIQ091dE1jYXN0T2N0ZXRzKDQxKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUElGU1RBVFNIQ09VVE1DQVNUT0NURVRTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ091dE1jYXN0T2N0ZXRzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtMTA5OCwxMCArMTA5OCwxMCBAQCBfaXBJZlN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcElmU3RhdHNUYWJsCisgICAgICAgICAgKiBpcElmU3RhdHNIQ0luQmNhc3RQa3RzKDQzKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUElGU1RBVFNIQ0lOQkNBU1RQS1RTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcElmU3RhdHNIQ0luQmNhc3RQa3RzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtMTExOCwxMCArMTExOCwxMCBAQCBfaXBJZlN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcElmU3RhdHNUYWJsCisgICAgICAgICAgKiBpcElmU3RhdHNIQ091dEJjYXN0UGt0cyg0NSkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBJRlNUQVRTSENPVVRCQ0FTVFBLVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CisgICAgICAgICByYyA9IGlwSWZTdGF0c0hDT3V0QmNhc3RQa3RzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKK0luZGV4OiBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jCisrKysgbmV0LXNubXAtNS43LjMvYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYworQEAgLTQ1Miw3ICs0NTIsNyBAQCBUaGUgdG90YWwgbnVtYmVyIG9mIGlucHV0IElQIGRhdGFncmFtcyByCisgICovCisgaW50CisgaXBTeXN0ZW1TdGF0c0hDSW5SZWNlaXZlc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwU3lzdGVtU3RhdHNIQ0luUmVjZWl2ZXNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppcFN5c3RlbVN0YXRzSENJblJlY2VpdmVzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcFN5c3RlbVN0YXRzSENJblJlY2VpdmVzX3ZhbF9wdHIpOworQEAgLTU3OSw3ICs1NzksNyBAQCBUaGUgdG90YWwgbnVtYmVyIG9mIG9jdGV0cyByZWNlaXZlZCBpbiBpCisgICovCisgaW50CisgaXBTeXN0ZW1TdGF0c0hDSW5PY3RldHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBTeXN0ZW1TdGF0c0hDSW5PY3RldHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBTeXN0ZW1TdGF0c0hDSW5PY3RldHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwU3lzdGVtU3RhdHNIQ0luT2N0ZXRzX3ZhbF9wdHIpOworQEAgLTEwNTgsNyArMTA1OCw3IEBAIFRoZSBudW1iZXIgb2YgaW5wdXQgZGF0YWdyYW1zIGZvciB3aGljaAorIGludAorIGlwU3lzdGVtU3RhdHNIQ0luRm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luRm9yd0RhdGFncmFtc192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCitAQCAtMTQ3NCw3ICsxNDc0LDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBkYXRhZ3JhbXMgc3VjY2Vzc2Z1bAorICAqLworIGludAorIGlwU3lzdGVtU3RhdHNIQ0luRGVsaXZlcnNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcFN5c3RlbVN0YXRzSENJbkRlbGl2ZXJzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBTeXN0ZW1TdGF0c0hDSW5EZWxpdmVyc192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBTeXN0ZW1TdGF0c0hDSW5EZWxpdmVyc192YWxfcHRyKTsKK0BAIC0xNjAyLDcgKzE2MDIsNyBAQCBUaGUgdG90YWwgbnVtYmVyIG9mIElQIGRhdGFncmFtcyB3aGljaCBsCisgICovCisgaW50CisgaXBTeXN0ZW1TdGF0c0hDT3V0UmVxdWVzdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBTeXN0ZW1TdGF0c0hDT3V0UmVxdWVzdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBTeXN0ZW1TdGF0c0hDT3V0UmVxdWVzdHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwU3lzdGVtU3RhdHNIQ091dFJlcXVlc3RzX3ZhbF9wdHIpOworQEAgLTE4MDksNyArMTgwOSw3IEBAIFRoZSBudW1iZXIgb2YgZGF0YWdyYW1zIGZvciB3aGljaCB0aGlzIGUKKyBpbnQKKyBpcFN5c3RlbVN0YXRzSENPdXRGb3J3RGF0YWdyYW1zX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dEZvcndEYXRhZ3JhbXNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworQEAgLTIyODgsNyArMjI4OCw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2YgSVAgZGF0YWdyYW1zIHRoYXQgdGgKKyAgKi8KKyBpbnQKKyBpcFN5c3RlbVN0YXRzSENPdXRUcmFuc21pdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwU3lzdGVtU3RhdHNIQ091dFRyYW5zbWl0c192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBTeXN0ZW1TdGF0c0hDT3V0VHJhbnNtaXRzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcFN5c3RlbVN0YXRzSENPdXRUcmFuc21pdHNfdmFsX3B0cik7CitAQCAtMjQxNSw3ICsyNDE1LDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgaW4gSVAgZGF0YWdyYQorICAqLworIGludAorIGlwU3lzdGVtU3RhdHNIQ091dE9jdGV0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKiByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBTeXN0ZW1TdGF0c0hDT3V0T2N0ZXRzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICppcFN5c3RlbVN0YXRzSENPdXRPY3RldHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwU3lzdGVtU3RhdHNIQ091dE9jdGV0c192YWxfcHRyKTsKK0BAIC0yNTM5LDcgKzI1MzksNyBAQCBUaGUgbnVtYmVyIG9mIElQIG11bHRpY2FzdCBkYXRhZ3JhbXMgcmVjCisgICovCisgaW50CisgaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdFBrdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdFBrdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdFBrdHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworICAgICBuZXRzbm1wX2Fzc2VydChOVUxMICE9IGlwU3lzdGVtU3RhdHNIQ0luTWNhc3RQa3RzX3ZhbF9wdHIpOworQEAgLTI2NjUsNyArMjY2NSw3IEBAIFRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHJlY2VpdmVkIGluIEkKKyBpbnQKKyBpcFN5c3RlbVN0YXRzSENJbk1jYXN0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luTWNhc3RPY3RldHNfdmFsX3B0cikKKyB7CisgICAgLyoqIHdlIHNob3VsZCBoYXZlIGEgbm9uLU5VTEwgcG9pbnRlciAqLworQEAgLTI3OTAsNyArMjc5MCw3IEBAIFRoZSBudW1iZXIgb2YgSVAgbXVsdGljYXN0IGRhdGFncmFtcyB0cmEKKyAgKi8KKyBpbnQKKyBpcFN5c3RlbVN0YXRzSENPdXRNY2FzdFBrdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICogcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0UGt0c192YWxfcHRyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqaXBTeXN0ZW1TdGF0c0hDT3V0TWNhc3RQa3RzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcFN5c3RlbVN0YXRzSENPdXRNY2FzdFBrdHNfdmFsX3B0cik7CitAQCAtMjkyMSw3ICsyOTIxLDcgQEAgVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgdHJhbnNtaXR0ZWQgaQorIGludAorIGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSENPdXRNY2FzdE9jdGV0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCitAQCAtMzA0Niw3ICszMDQ2LDcgQEAgVGhlIG51bWJlciBvZiBJUCBicm9hZGNhc3QgZGF0YWdyYW1zIHJlYworICAqLworIGludAorIGlwU3lzdGVtU3RhdHNIQ0luQmNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwU3lzdGVtU3RhdHNIQ0luQmNhc3RQa3RzX3ZhbF9wdHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwU3lzdGVtU3RhdHNIQ0luQmNhc3RQa3RzX3ZhbF9wdHIpCisgeworICAgIC8qKiB3ZSBzaG91bGQgaGF2ZSBhIG5vbi1OVUxMIHBvaW50ZXIgKi8KKyAgICAgbmV0c25tcF9hc3NlcnQoTlVMTCAhPSBpcFN5c3RlbVN0YXRzSENJbkJjYXN0UGt0c192YWxfcHRyKTsKK0BAIC0zMTcwLDcgKzMxNzAsNyBAQCBUaGUgbnVtYmVyIG9mIElQIGJyb2FkY2FzdCBkYXRhZ3JhbXMgdHJhCisgICovCisgaW50CisgaXBTeXN0ZW1TdGF0c0hDT3V0QmNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKiBpcFN5c3RlbVN0YXRzSENPdXRCY2FzdFBrdHNfdmFsX3B0cikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwU3lzdGVtU3RhdHNIQ091dEJjYXN0UGt0c192YWxfcHRyKQorIHsKKyAgICAvKiogd2Ugc2hvdWxkIGhhdmUgYSBub24tTlVMTCBwb2ludGVyICovCisgICAgIG5ldHNubXBfYXNzZXJ0KE5VTEwgIT0gaXBTeXN0ZW1TdGF0c0hDT3V0QmNhc3RQa3RzX3ZhbF9wdHIpOworSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBuZXQtc25tcC01LjcuMy5vcmlnL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgKKysrKyBuZXQtc25tcC01LjcuMy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5oCitAQCAtMTQ0LDkzICsxNDQsMjIgQEAgY29uZmlnX3JlcXVpcmUoaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZQorICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICAgICAqIGZ1bmN0aW9uIHByb3RvdHlwZXMKKyAgICAgICovCistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX3ByZV9yZXF1ZXN0KGlwU3lzdGVtU3RhdHNUYWJsZV9yZWdpc3RyYXRpb24gKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c1RhYmxlX3ByZV9yZXF1ZXN0KGlwU3lzdGVtU3RhdHNUYWJsZV9yZWdpc3RyYXRpb24gKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfY29udGV4dCk7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX3Bvc3RfcmVxdWVzdChpcFN5c3RlbVN0YXRzVGFibGVfcmVnaXN0cmF0aW9uICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNUYWJsZV9wb3N0X3JlcXVlc3QoaXBTeXN0ZW1TdGF0c1RhYmxlX3JlZ2lzdHJhdGlvbiAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfY29udGV4dCwgaW50IHJjKTsKKyAKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eF9pbml0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4X2luaXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp1c2VyX2luaXRfY3R4KTsKKyAgICAgdm9pZAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorICAgICAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHhfY2xlYW51cChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHJvd3JlcV9jdHgpOworIAorICAgICBpcFN5c3RlbVN0YXRzVGFibGVfZGF0YSAqaXBTeXN0ZW1TdGF0c1RhYmxlX2FsbG9jYXRlX2RhdGEodm9pZCk7CisgICAgIHZvaWQgICAgICAgICAgICBpcFN5c3RlbVN0YXRzVGFibGVfcmVsZWFzZV9kYXRhKGlwU3lzdGVtU3RhdHNUYWJsZV9kYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogZGF0YSk7CistCistCistICAgICAgICAgCistICAgICAgICAgCistICAgICAgICAgCistICAgICAgICAgCistICAgICAgICAgCistICAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eAorKyAgICBpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eAorICAgICAgICAgKiBpcFN5c3RlbVN0YXRzVGFibGVfcm93X2ZpbmRfYnlfbWliX2luZGV4CisgICAgICAgICAoaXBTeXN0ZW1TdGF0c1RhYmxlX21pYl9pbmRleCAqIG1pYl9pZHgpOworIAorQEAgLTI2NSwyMjYgKzE5NCw1MCBAQCBjb25maWdfcmVxdWlyZShpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlCisgICAgICAqIGluZGV4ZXMKKyAgICAgICovCisgCistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0luUmVjZWl2ZXNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNJblJlY2VpdmVzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJblJlY2VpdmVzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luUmVjZWl2ZXNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNIQ0luUmVjZWl2ZXNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSENJblJlY2VpdmVzX3ZhbF9wdHIpOworICAgICBpbnQgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luT2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJbk9jdGV0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSENJbk9jdGV0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0hDSW5PY3RldHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqIGlwU3lzdGVtU3RhdHNIQ0luT2N0ZXRzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNJbkhkckVycm9yc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKmlwU3lzdGVtU3RhdHNIQ0luT2N0ZXRzX3ZhbF9wdHIpOworKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0luSGRyRXJyb3JzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJbkhkckVycm9yc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSW5Ob1JvdXRlc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0luTm9Sb3V0ZXNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luTm9Sb3V0ZXNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0luQWRkckVycm9yc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0luQWRkckVycm9yc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSW5BZGRyRXJyb3JzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNJblVua25vd25Qcm90b3NfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNJblVua25vd25Qcm90b3NfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luVW5rbm93blByb3Rvc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSW5UcnVuY2F0ZWRQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSW5UcnVuY2F0ZWRQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJblRydW5jYXRlZFBrdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0luRm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0luRm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSW5Gb3J3RGF0YWdyYW1zX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luRm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0hDSW5Gb3J3RGF0YWdyYW1zX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSENJbkZvcndEYXRhZ3JhbXNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c1JlYXNtUmVxZHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNSZWFzbVJlcWRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNSZWFzbVJlcWRzX3ZhbF9wdHIpOworQEAgLTQ5Miw2OTAgKzI0NSwxNDIgQEAgY29uZmlnX3JlcXVpcmUoaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNSZWFzbU9Lc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzUmVhc21GYWlsc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c1JlYXNtRmFpbHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c1JlYXNtRmFpbHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0luRGlzY2FyZHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNJbkRpc2NhcmRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJbkRpc2NhcmRzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNJbkRlbGl2ZXJzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSW5EZWxpdmVyc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSW5EZWxpdmVyc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSENJbkRlbGl2ZXJzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSENJbkRlbGl2ZXJzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0hDSW5EZWxpdmVyc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0UmVxdWVzdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNPdXRSZXF1ZXN0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0UmVxdWVzdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0UmVxdWVzdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNIQ091dFJlcXVlc3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dFJlcXVlc3RzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNPdXROb1JvdXRlc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c091dE5vUm91dGVzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXROb1JvdXRlc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0Rm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c091dEZvcndEYXRhZ3JhbXNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZvcndEYXRhZ3JhbXNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0Rm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0hDT3V0Rm9yd0RhdGFncmFtc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY291bnRlcjY0ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dEZvcndEYXRhZ3JhbXNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c091dERpc2NhcmRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzT3V0RGlzY2FyZHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dERpc2NhcmRzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNPdXRGcmFnUmVxZHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNPdXRGcmFnUmVxZHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZyYWdSZXFkc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0RnJhZ09Lc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c091dEZyYWdPS3NfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZyYWdPS3NfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZyYWdGYWlsc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c091dEZyYWdGYWlsc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0RnJhZ0ZhaWxzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNPdXRGcmFnQ3JlYXRlc19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c091dEZyYWdDcmVhdGVzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRGcmFnQ3JlYXRlc192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0VHJhbnNtaXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzT3V0VHJhbnNtaXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRUcmFuc21pdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0VHJhbnNtaXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSENPdXRUcmFuc21pdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dFRyYW5zbWl0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzT3V0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRPY3RldHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSENPdXRPY3RldHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dE9jdGV0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSW5NY2FzdFBrdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNJbk1jYXN0UGt0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSW5NY2FzdFBrdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdFBrdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNIQ0luTWNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luTWNhc3RQa3RzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNJbk1jYXN0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSW5NY2FzdE9jdGV0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSW5NY2FzdE9jdGV0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSENJbk1jYXN0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSENJbk1jYXN0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdE9jdGV0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0TWNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzT3V0TWNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRNY2FzdFBrdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0TWNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzSENPdXRNY2FzdFBrdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0UGt0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzT3V0TWNhc3RPY3RldHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNPdXRNY2FzdE9jdGV0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0TWNhc3RPY3RldHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0TWNhc3RPY3RldHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKysgICAgaW50IGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0T2N0ZXRzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVNjQgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0T2N0ZXRzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNJbkJjYXN0UGt0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0luQmNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJbkJjYXN0UGt0c192YWxfcHRyKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzSENJbkJjYXN0UGt0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0hDSW5CY2FzdFBrdHNfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0hDSW5CY2FzdFBrdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c091dEJjYXN0UGt0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c091dEJjYXN0UGt0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0QmNhc3RQa3RzX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dEJjYXN0UGt0c19nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c0hDT3V0QmNhc3RQa3RzX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFU2NCAqCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSENPdXRCY2FzdFBrdHNfdmFsX3B0cik7CistICAgIGludAorLSAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgaXBTeXN0ZW1TdGF0c0Rpc2NvbnRpbnVpdHlUaW1lX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisrICAgIGludCBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWVfZ2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cmVxX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdV9sb25nICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0Rpc2NvbnRpbnVpdHlUaW1lX3ZhbF9wdHIpOworLSAgICBpbnQKKy0gICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIGlwU3lzdGVtU3RhdHNSZWZyZXNoUmF0ZV9nZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c1JlZnJlc2hSYXRlX2dldChpcFN5c3RlbVN0YXRzVGFibGVfcm93cmVxX2N0eCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3JlcV9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNSZWZyZXNoUmF0ZV92YWxfcHRyKTsKKy0KKy0KKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzVGFibGVfaW5kZXhlc19zZXRfdGJsX2lkeChpcFN5c3RlbVN0YXRzVGFibGVfbWliX2luZGV4CisrICAgIGludCBpcFN5c3RlbVN0YXRzVGFibGVfaW5kZXhlc19zZXRfdGJsX2lkeChpcFN5c3RlbVN0YXRzVGFibGVfbWliX2luZGV4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRibF9pZHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2xvbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJUFZlcnNpb25fdmFsKTsKKy0gICAgaW50CistICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICAKKy0gICAgICAgIAorLSAgICAgICAgCistICAgICAgICBpcFN5c3RlbVN0YXRzVGFibGVfaW5kZXhlc19zZXQoaXBTeXN0ZW1TdGF0c1RhYmxlX3Jvd3JlcV9jdHggKgorKyAgICBpbnQgaXBTeXN0ZW1TdGF0c1RhYmxlX2luZGV4ZXNfc2V0KGlwU3lzdGVtU3RhdHNUYWJsZV9yb3dyZXFfY3R4ICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dyZXFfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVfbG9uZyBpcFN5c3RlbVN0YXRzSVBWZXJzaW9uX3ZhbCk7CisgCistCistCisgICAgIC8qCisgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICAgICogU0VUIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucworSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYworKysrIG5ldC1zbm1wLTUuNy4zL2FnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jCitAQCAtNjc0LDEwICs2NzQsMTAgQEAgX2lwU3lzdGVtU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwU3lzdGVtUworICAgICAgICAgICogaXBTeXN0ZW1TdGF0c0hDSW5SZWNlaXZlcyg0KS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUFNZU1RFTVNUQVRTSENJTlJFQ0VJVkVTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcFN5c3RlbVN0YXRzSENJblJlY2VpdmVzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtNjk0LDEwICs2OTQsMTAgQEAgX2lwU3lzdGVtU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwU3lzdGVtUworICAgICAgICAgICogaXBTeXN0ZW1TdGF0c0hDSW5PY3RldHMoNikvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBTWVNURU1TVEFUU0hDSU5PQ1RFVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CisgICAgICAgICByYyA9IGlwU3lzdGVtU3RhdHNIQ0luT2N0ZXRzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKK0BAIC03NjQsMTAgKzc2NCwxMCBAQCBfaXBTeXN0ZW1TdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBTeXN0ZW1TCisgICAgICAgICAgKiBpcFN5c3RlbVN0YXRzSENJbkZvcndEYXRhZ3JhbXMoMTMpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQU1lTVEVNU1RBVFNIQ0lORk9SV0RBVEFHUkFNUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBTeXN0ZW1TdGF0c0hDSW5Gb3J3RGF0YWdyYW1zX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTgyNCwxMCArODI0LDEwIEBAIF9pcFN5c3RlbVN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcFN5c3RlbVMKKyAgICAgICAgICAqIGlwU3lzdGVtU3RhdHNIQ0luRGVsaXZlcnMoMTkpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQU1lTVEVNU1RBVFNIQ0lOREVMSVZFUlM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CisgICAgICAgICByYyA9IGlwU3lzdGVtU3RhdHNIQ0luRGVsaXZlcnNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKK0BAIC04NDQsMTAgKzg0NCwxMCBAQCBfaXBTeXN0ZW1TdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBTeXN0ZW1TCisgICAgICAgICAgKiBpcFN5c3RlbVN0YXRzSENPdXRSZXF1ZXN0cygyMSkvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBTWVNURU1TVEFUU0hDT1VUUkVRVUVTVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CisgICAgICAgICByYyA9IGlwU3lzdGVtU3RhdHNIQ091dFJlcXVlc3RzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKK0BAIC04NzQsMTAgKzg3NCwxMCBAQCBfaXBTeXN0ZW1TdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBTeXN0ZW1TCisgICAgICAgICAgKiBpcFN5c3RlbVN0YXRzSENPdXRGb3J3RGF0YWdyYW1zKDI0KS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUFNZU1RFTVNUQVRTSENPVVRGT1JXREFUQUdSQU1TOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcFN5c3RlbVN0YXRzSENPdXRGb3J3RGF0YWdyYW1zX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtOTQ0LDEwICs5NDQsMTAgQEAgX2lwU3lzdGVtU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwU3lzdGVtUworICAgICAgICAgICogaXBTeXN0ZW1TdGF0c0hDT3V0VHJhbnNtaXRzKDMxKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUFNZU1RFTVNUQVRTSENPVVRUUkFOU01JVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CisgICAgICAgICByYyA9IGlwU3lzdGVtU3RhdHNIQ091dFRyYW5zbWl0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKK0BAIC05NjQsMTAgKzk2NCwxMCBAQCBfaXBTeXN0ZW1TdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBTeXN0ZW1TCisgICAgICAgICAgKiBpcFN5c3RlbVN0YXRzSENPdXRPY3RldHMoMzMpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQU1lTVEVNU1RBVFNIQ09VVE9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBTeXN0ZW1TdGF0c0hDT3V0T2N0ZXRzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTk4NCwxMCArOTg0LDEwIEBAIF9pcFN5c3RlbVN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcFN5c3RlbVMKKyAgICAgICAgICAqIGlwU3lzdGVtU3RhdHNIQ0luTWNhc3RQa3RzKDM1KS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUFNZU1RFTVNUQVRTSENJTk1DQVNUUEtUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdFBrdHNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTEwMDQsMTAgKzEwMDQsMTAgQEAgX2lwU3lzdGVtU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwU3lzdGVtUworICAgICAgICAgICogaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdE9jdGV0cygzNykvQ09VTlRFUjY0L0FTTl9DT1VOVEVSNjQvVTY0KFU2NCkvL2wvQS93L2Uvci9kL2ggCisgICAgICAgICAgKi8KKyAgICAgY2FzZSBDT0xVTU5fSVBTWVNURU1TVEFUU0hDSU5NQ0FTVE9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdE9jdGV0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFU2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTEwMjQsMTAgKzEwMjQsMTAgQEAgX2lwU3lzdGVtU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwU3lzdGVtUworICAgICAgICAgICogaXBTeXN0ZW1TdGF0c0hDT3V0TWNhc3RQa3RzKDM5KS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUFNZU1RFTVNUQVRTSENPVVRNQ0FTVFBLVFM6CistICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2YoVTY0KTsKKysgICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKyAgICAgICAgIHZhci0+dHlwZSA9IEFTTl9DT1VOVEVSNjQ7CisgICAgICAgICByYyA9IGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0UGt0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBjb3VudGVyNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKyAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyoKK0BAIC0xMDQ0LDEwICsxMDQ0LDEwIEBAIF9pcFN5c3RlbVN0YXRzVGFibGVfZ2V0X2NvbHVtbihpcFN5c3RlbVMKKyAgICAgICAgICAqIGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0T2N0ZXRzKDQxKS9DT1VOVEVSNjQvQVNOX0NPVU5URVI2NC9VNjQoVTY0KS8vbC9BL3cvZS9yL2QvaCAKKyAgICAgICAgICAqLworICAgICBjYXNlIENPTFVNTl9JUFNZU1RFTVNUQVRTSENPVVRNQ0FTVE9DVEVUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBTeXN0ZW1TdGF0c0hDT3V0TWNhc3RPY3RldHNfZ2V0KHJvd3JlcV9jdHgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVTY0ICopIHZhci0+dmFsLnN0cmluZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorQEAgLTEwNjQsMTAgKzEwNjQsMTAgQEAgX2lwU3lzdGVtU3RhdHNUYWJsZV9nZXRfY29sdW1uKGlwU3lzdGVtUworICAgICAgICAgICogaXBTeXN0ZW1TdGF0c0hDSW5CY2FzdFBrdHMoNDMpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQU1lTVEVNU1RBVFNIQ0lOQkNBU1RQS1RTOgorLSAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKFU2NCk7CisrICAgICAgICB2YXItPnZhbF9sZW4gPSBzaXplb2Yoc3RydWN0IGNvdW50ZXI2NCk7CisgICAgICAgICB2YXItPnR5cGUgPSBBU05fQ09VTlRFUjY0OworICAgICAgICAgcmMgPSBpcFN5c3RlbVN0YXRzSENJbkJjYXN0UGt0c19nZXQocm93cmVxX2N0eCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3QgY291bnRlcjY0ICopIHZhci0+dmFsLnN0cmluZyk7CisgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIC8qCitAQCAtMTA4NCwxMCArMTA4NCwxMCBAQCBfaXBTeXN0ZW1TdGF0c1RhYmxlX2dldF9jb2x1bW4oaXBTeXN0ZW1TCisgICAgICAgICAgKiBpcFN5c3RlbVN0YXRzSENPdXRCY2FzdFBrdHMoNDUpL0NPVU5URVI2NC9BU05fQ09VTlRFUjY0L1U2NChVNjQpLy9sL0Evdy9lL3IvZC9oIAorICAgICAgICAgICovCisgICAgIGNhc2UgQ09MVU1OX0lQU1lTVEVNU1RBVFNIQ09VVEJDQVNUUEtUUzoKKy0gICAgICAgIHZhci0+dmFsX2xlbiA9IHNpemVvZihVNjQpOworKyAgICAgICAgdmFyLT52YWxfbGVuID0gc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpOworICAgICAgICAgdmFyLT50eXBlID0gQVNOX0NPVU5URVI2NDsKKyAgICAgICAgIHJjID0gaXBTeXN0ZW1TdGF0c0hDT3V0QmNhc3RQa3RzX2dldChyb3dyZXFfY3R4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVNjQgKikgdmFyLT52YWwuc3RyaW5nKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RydWN0IGNvdW50ZXI2NCAqKSB2YXItPnZhbC5zdHJpbmcpOworICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKgorSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9pbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwc3RhdHMuaAorKysrIG5ldC1zbm1wLTUuNy4zL2luY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oCitAQCAtNTgsNDUgKzU4LDQ1IEBAIHR5cGVkZWYgc3RydWN0IG5ldHNubXBfaXBzdGF0c19zIHsKKyAgICAgKiBvdGhlciBjb2x1bW5zLCB3aGVuIHVuZGVybHlpbmcgT1MgZG9lcyBub3QgcHJvdmlkZSB0aGVtLgorICAgICAqIEFsd2F5cyBmaWxsIGF0IGxlYXN0IDMyIGJpdHMsIHRoZSB0YWJsZSBpcyBwZXJpb2RpY2FsbHkgcG9sbGVkIC0+IDMyIGJpdAorICAgICAqIG92ZXJmbG93IHNoYWxsIGJlIGRldGVjdGVkIGFuZCA2NCBiaXQgdmFsdWUgc2hvdWxkIGJlIGNvbXB1dGVkIGF1dG9tYXRpY2FsbHkuICovCistICAgVTY0ICAgICAgICAgICAgIEhDSW5SZWNlaXZlczsKKy0gICBVNjQgICAgICAgICAgICAgSENJbk9jdGV0czsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDSW5SZWNlaXZlczsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDSW5PY3RldHM7CisgICAgdV9sb25nICAgICAgICAgIEluSGRyRXJyb3JzOworLSAgIFU2NCAgICAgICAgICAgICBIQ0luTm9Sb3V0ZXM7IAorKyAgIHN0cnVjdCBjb3VudGVyNjQgSENJbk5vUm91dGVzOyAKKyAgICB1X2xvbmcgICAgICAgICAgSW5BZGRyRXJyb3JzOworICAgIHVfbG9uZyAgICAgICAgICBJblVua25vd25Qcm90b3M7CisgICAgdV9sb25nICAgICAgICAgIEluVHJ1bmNhdGVkUGt0czsKKyAgICAKKyAgICAvKiBvcHRpb25hbCwgY2FuIGJlIGNvbXB1dGVkIGZyb20gSENJbk5vUm91dGVzIGFuZCBIQ091dEZvcndEYXRhZ3JhbXMgKi8KKy0gICBVNjQgICAgICAgICAgICAgSENJbkZvcndEYXRhZ3JhbXM7IAorKyAgIHN0cnVjdCBjb3VudGVyNjQgSENJbkZvcndEYXRhZ3JhbXM7IAorICAgIAorICAgIHVfbG9uZyAgICAgICAgICBSZWFzbVJlcWRzOworICAgIHVfbG9uZyAgICAgICAgICBSZWFzbU9LczsKKyAgICB1X2xvbmcgICAgICAgICAgUmVhc21GYWlsczsKKyAgICB1X2xvbmcgICAgICAgICAgSW5EaXNjYXJkczsKKy0gICBVNjQgICAgICAgICAgICAgSENJbkRlbGl2ZXJzOworLSAgIFU2NCAgICAgICAgICAgICBIQ091dFJlcXVlc3RzOworLSAgIFU2NCAgICAgICAgICAgICBIQ091dE5vUm91dGVzOworLSAgIFU2NCAgICAgICAgICAgICBIQ091dEZvcndEYXRhZ3JhbXM7CistICAgVTY0ICAgICAgICAgICAgIEhDT3V0RGlzY2FyZHM7CisrICAgc3RydWN0IGNvdW50ZXI2NCBIQ0luRGVsaXZlcnM7CisrICAgc3RydWN0IGNvdW50ZXI2NCBIQ091dFJlcXVlc3RzOworKyAgIHN0cnVjdCBjb3VudGVyNjQgSENPdXROb1JvdXRlczsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDT3V0Rm9yd0RhdGFncmFtczsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDT3V0RGlzY2FyZHM7CisgICAgCisgICAgLyogb3B0aW9uYWwsIGNhbiBiZSBjb21wdXRlZCBmcm9tIEhDT3V0RnJhZ09LcyArIEhDT3V0RnJhZ0ZhaWxzKi8KKy0gICBVNjQgICAgICAgICAgICAgSENPdXRGcmFnUmVxZHM7CistICAgVTY0ICAgICAgICAgICAgIEhDT3V0RnJhZ09LczsKKy0gICBVNjQgICAgICAgICAgICAgSENPdXRGcmFnRmFpbHM7CistICAgVTY0ICAgICAgICAgICAgIEhDT3V0RnJhZ0NyZWF0ZXM7CisrICAgc3RydWN0IGNvdW50ZXI2NCBIQ091dEZyYWdSZXFkczsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDT3V0RnJhZ09LczsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDT3V0RnJhZ0ZhaWxzOworKyAgIHN0cnVjdCBjb3VudGVyNjQgSENPdXRGcmFnQ3JlYXRlczsKKyAgICAKKyAgICAvKiBvcHRpb25hbCwgY2FuIGJlIGNvbXB1dGVkIGZyb20gCisgICAgICogSENPdXRSZXF1ZXN0cyArSENPdXRGb3J3RGF0YWdyYW1zICsgSENPdXRGcmFnQ3JlYXRlcworICAgICAqIC0gSENPdXRGcmFnUmVxZHMgLSBIQ091dE5vUm91dGVzICAtIEhDT3V0RGlzY2FyZHMgKi8KKy0gICBVNjQgICAgICAgICAgICAgSENPdXRUcmFuc21pdHM7CisrICAgc3RydWN0IGNvdW50ZXI2NCBIQ091dFRyYW5zbWl0czsKKyAgICAKKy0gICBVNjQgICAgICAgICAgICAgSENPdXRPY3RldHM7CistICAgVTY0ICAgICAgICAgICAgIEhDSW5NY2FzdFBrdHM7CistICAgVTY0ICAgICAgICAgICAgIEhDSW5NY2FzdE9jdGV0czsKKy0gICBVNjQgICAgICAgICAgICAgSENPdXRNY2FzdFBrdHM7CistICAgVTY0ICAgICAgICAgICAgIEhDT3V0TWNhc3RPY3RldHM7CistICAgVTY0ICAgICAgICAgICAgIEhDSW5CY2FzdFBrdHM7CistICAgVTY0ICAgICAgICAgICAgIEhDT3V0QmNhc3RQa3RzOworKyAgIHN0cnVjdCBjb3VudGVyNjQgSENPdXRPY3RldHM7CisrICAgc3RydWN0IGNvdW50ZXI2NCBIQ0luTWNhc3RQa3RzOworKyAgIHN0cnVjdCBjb3VudGVyNjQgSENJbk1jYXN0T2N0ZXRzOworKyAgIHN0cnVjdCBjb3VudGVyNjQgSENPdXRNY2FzdFBrdHM7CisrICAgc3RydWN0IGNvdW50ZXI2NCBIQ091dE1jYXN0T2N0ZXRzOworKyAgIHN0cnVjdCBjb3VudGVyNjQgSENJbkJjYXN0UGt0czsKKysgICBzdHJ1Y3QgY291bnRlcjY0IEhDT3V0QmNhc3RQa3RzOworIAorICAgIC8qIEFycmF5IG9mIGF2YWlsYWJsZSBjb2x1bW5zLiovCisgICAgaW50ICAgICAgICAgICAgIGNvbHVtbkF2YWlsW0lQU1lTVEVNU1RBVFNUQUJMRV9MQVNUKzFdOworSW5kZXg6IG5ldC1zbm1wLTUuNy4zL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9pbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaAorKysrIG5ldC1zbm1wLTUuNy4zL2luY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oCitAQCAtNSwzMSArNSwyOSBAQAorIGV4dGVybiAgICAgICAgICAiQyIgeworICNlbmRpZgorIAorLSAgICB0eXBlZGVmIHN0cnVjdCBjb3VudGVyNjQgVTY0OworLQorICNkZWZpbmUgSTY0Q0hBUlNaIDIxCisgCistICAgIHZvaWQgICAgICAgICAgICBkaXZCeTEwKFU2NCwgVTY0ICosIHVuc2lnbmVkIGludCAqKTsKKy0gICAgdm9pZCAgICAgICAgICAgIG11bHRCeTEwKFU2NCwgVTY0ICopOworLSAgICB2b2lkICAgICAgICAgICAgaW5jckJ5VTE2KFU2NCAqLCB1bnNpZ25lZCBpbnQpOworLSAgICB2b2lkICAgICAgICAgICAgaW5jckJ5VTMyKFU2NCAqLCB1bnNpZ25lZCBpbnQpOworKyAgICB2b2lkICAgICAgICAgICAgZGl2QnkxMChzdHJ1Y3QgY291bnRlcjY0LCBzdHJ1Y3QgY291bnRlcjY0ICosIHVuc2lnbmVkIGludCAqKTsKKysgICAgdm9pZCAgICAgICAgICAgIG11bHRCeTEwKHN0cnVjdCBjb3VudGVyNjQsIHN0cnVjdCBjb3VudGVyNjQgKik7CisrICAgIHZvaWQgICAgICAgICAgICBpbmNyQnlVMTYoc3RydWN0IGNvdW50ZXI2NCAqLCB1bnNpZ25lZCBpbnQpOworKyAgICB2b2lkICAgICAgICAgICAgaW5jckJ5VTMyKHN0cnVjdCBjb3VudGVyNjQgKiwgdW5zaWduZWQgaW50KTsKKyAgICAgTkVUU05NUF9JTVBPUlQKKy0gICAgdm9pZCAgICAgICAgICAgIHplcm9VNjQoVTY0ICopOworLSAgICBpbnQgICAgICAgICAgICAgaXNaZXJvVTY0KGNvbnN0IFU2NCAqKTsKKysgICAgdm9pZCAgICAgICAgICAgIHplcm9VNjQoc3RydWN0IGNvdW50ZXI2NCAqKTsKKysgICAgaW50ICAgICAgICAgICAgIGlzWmVyb1U2NChjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICopOworICAgICBORVRTTk1QX0lNUE9SVAorLSAgICB2b2lkICAgICAgICAgICAgcHJpbnRVNjQoY2hhciAqLCBjb25zdCBVNjQgKik7CisrICAgIHZvaWQgICAgICAgICAgICBwcmludFU2NChjaGFyICosIGNvbnN0IHN0cnVjdCBjb3VudGVyNjQgKik7CisgICAgIE5FVFNOTVBfSU1QT1JUCistICAgIHZvaWQgICAgICAgICAgICBwcmludEk2NChjaGFyICosIGNvbnN0IFU2NCAqKTsKKy0gICAgaW50ICAgICAgICAgICAgIHJlYWQ2NChVNjQgKiwgY29uc3QgY2hhciAqKTsKKysgICAgdm9pZCAgICAgICAgICAgIHByaW50STY0KGNoYXIgKiwgY29uc3Qgc3RydWN0IGNvdW50ZXI2NCAqKTsKKysgICAgaW50ICAgICAgICAgICAgIHJlYWQ2NChzdHJ1Y3QgY291bnRlcjY0ICosIGNvbnN0IGNoYXIgKik7CisgICAgIE5FVFNOTVBfSU1QT1JUCistICAgIHZvaWQgICAgICAgICAgICB1NjRTdWJ0cmFjdChjb25zdCBVNjQgKiBwdTY0b25lLCBjb25zdCBVNjQgKiBwdTY0dHdvLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVTY0ICogcHU2NG91dCk7CistICAgIHZvaWQgICAgICAgICAgICB1NjRJbmNyKFU2NCAqIHB1NjRvdXQsIGNvbnN0IFU2NCAqIHB1NjRvbmUpOworLSAgICB2b2lkICAgICAgICAgICAgdTY0VXBkYXRlQ291bnRlcihVNjQgKiBwdTY0b3V0LCBjb25zdCBVNjQgKiBwdTY0b25lLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVNjQgKiBwdTY0dHdvKTsKKy0gICAgdm9pZCAgICAgICAgICAgIHU2NENvcHkoVTY0ICogcHU2NG9uZSwgY29uc3QgVTY0ICogcHU2NHR3byk7CisrICAgIHZvaWQgICAgICAgICAgICB1NjRTdWJ0cmFjdChjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0b25lLCBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0dHdvLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvdW50ZXI2NCAqcHU2NG91dCk7CisrICAgIHZvaWQgICAgICAgICAgICB1NjRJbmNyKHN0cnVjdCBjb3VudGVyNjQgKnB1NjRvdXQsIGNvbnN0IHN0cnVjdCBjb3VudGVyNjQgKnB1NjRvbmUpOworKyAgICB2b2lkICAgICAgICAgICAgdTY0VXBkYXRlQ291bnRlcihzdHJ1Y3QgY291bnRlcjY0ICpwdTY0b3V0LCBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0b25lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0dHdvKTsKKysgICAgdm9pZCAgICAgICAgICAgIHU2NENvcHkoc3RydWN0IGNvdW50ZXI2NCAqcHU2NG9uZSwgY29uc3Qgc3RydWN0IGNvdW50ZXI2NCAqcHU2NHR3byk7CisgCistICAgIGludCAgICAgICAgICAgICBuZXRzbm1wX2M2NF9jaGVja19mb3JfMzJiaXRfd3JhcChVNjQgKm9sZF92YWwsIFU2NCAqbmV3X3ZhbCwKKysgICAgaW50ICAgICAgICAgICAgIG5ldHNubXBfYzY0X2NoZWNrX2Zvcl8zMmJpdF93cmFwKHN0cnVjdCBjb3VudGVyNjQgKm9sZF92YWwsIHN0cnVjdCBjb3VudGVyNjQgKm5ld192YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWRqdXN0KTsKKyAgICAgTkVUU05NUF9JTVBPUlQKKyAgICAgaW50ICAgICAgICAgICAgIG5ldHNubXBfYzY0X2NoZWNrMzJfYW5kX3VwZGF0ZShzdHJ1Y3QgY291bnRlcjY0ICpwcmV2X3ZhbCwKK0luZGV4OiBuZXQtc25tcC01LjcuMy9zbm1wbGliL2ludDY0LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBuZXQtc25tcC01LjcuMy5vcmlnL3NubXBsaWIvaW50NjQuYworKysrIG5ldC1zbm1wLTUuNy4zL3NubXBsaWIvaW50NjQuYworQEAgLTMzLDcgKzMzLDcgQEAKKyAgKiBAcGFyYW1bb3V0XSBwdVIgICBSZW1haW5kZXIuCisgICovCisgdm9pZAorLWRpdkJ5MTAoVTY0IHU2NCwgVTY0ICogcHU2NFEsIHVuc2lnbmVkIGludCAqcHVSKQorK2RpdkJ5MTAoc3RydWN0IGNvdW50ZXI2NCB1NjQsIHN0cnVjdCBjb3VudGVyNjQgKnB1NjRRLCB1bnNpZ25lZCBpbnQgKnB1UikKKyB7CisgICAgIHVuc2lnbmVkIGxvbmcgICB1bFQ7CisgICAgIHVuc2lnbmVkIGxvbmcgICB1bFE7CitAQCAtODMsNyArODMsNyBAQCBkaXZCeTEwKFU2NCB1NjQsIFU2NCAqIHB1NjRRLCB1bnNpZ25lZCBpCisgICogQHBhcmFtW291dF0gcHU2NFAgUHJvZHVjdC4KKyAgKi8KKyB2b2lkCistbXVsdEJ5MTAoVTY0IHU2NCwgVTY0ICogcHU2NFApCisrbXVsdEJ5MTAoc3RydWN0IGNvdW50ZXI2NCB1NjQsIHN0cnVjdCBjb3VudGVyNjQgKnB1NjRQKQorIHsKKyAgICAgdW5zaWduZWQgbG9uZyAgIHVsVDsKKyAgICAgdW5zaWduZWQgbG9uZyAgIHVsUDsKK0BAIC0xMzAsNyArMTMwLDcgQEAgbXVsdEJ5MTAoVTY0IHU2NCwgVTY0ICogcHU2NFApCisgICoKKyAgKi8KKyB2b2lkCistaW5jckJ5VTE2KFU2NCAqIHB1NjQsIHVuc2lnbmVkIGludCB1MTYpCisraW5jckJ5VTE2KHN0cnVjdCBjb3VudGVyNjQgKnB1NjQsIHVuc2lnbmVkIGludCB1MTYpCisgeworICAgICBpbmNyQnlVMzIocHU2NCwgdTE2KTsKKyB9CitAQCAtMTQzLDcgKzE0Myw3IEBAIGluY3JCeVUxNihVNjQgKiBwdTY0LCB1bnNpZ25lZCBpbnQgdTE2KQorICAqCisgICovCisgdm9pZAorLWluY3JCeVUzMihVNjQgKiBwdTY0LCB1bnNpZ25lZCBpbnQgdTMyKQorK2luY3JCeVUzMihzdHJ1Y3QgY291bnRlcjY0ICpwdTY0LCB1bnNpZ25lZCBpbnQgdTMyKQorIHsKKyAgICAgdWludDMyX3QgdG1wOworIAorQEAgLTE2MSw3ICsxNjEsNyBAQCBpbmNyQnlVMzIoVTY0ICogcHU2NCwgdW5zaWduZWQgaW50IHUzMikKKyAgKiBAcGFyYW1bb3V0XSBwdTY0b3V0IHB1NjRvbmUgLSBwdTY0dHdvLgorICAqLworIHZvaWQKKy11NjRTdWJ0cmFjdChjb25zdCBVNjQgKiBwdTY0b25lLCBjb25zdCBVNjQgKiBwdTY0dHdvLCBVNjQgKiBwdTY0b3V0KQorK3U2NFN1YnRyYWN0KGNvbnN0IHN0cnVjdCBjb3VudGVyNjQgKnB1NjRvbmUsIGNvbnN0IHN0cnVjdCBjb3VudGVyNjQgKnB1NjR0d28sIHN0cnVjdCBjb3VudGVyNjQgKnB1NjRvdXQpCisgeworICAgICBpbnQgY2Fycnk7CisgCitAQCAtMTc3LDcgKzE3Nyw3IEBAIHU2NFN1YnRyYWN0KGNvbnN0IFU2NCAqIHB1NjRvbmUsIGNvbnN0IFUKKyAgKiBAcGFyYW1baW4sb3V0XSBwdTY0b3V0IHB1NjRvdXQgKz0gcHU2NG9uZS4KKyAgKi8KKyB2b2lkCistdTY0SW5jcihVNjQgKiBwdTY0b3V0LCBjb25zdCBVNjQgKiBwdTY0b25lKQorK3U2NEluY3Ioc3RydWN0IGNvdW50ZXI2NCAqcHU2NG91dCwgY29uc3Qgc3RydWN0IGNvdW50ZXI2NCAqcHU2NG9uZSkKKyB7CisgICAgIHB1NjRvdXQtPmhpZ2ggPSAodWludDMyX3QpKHB1NjRvdXQtPmhpZ2ggKyBwdTY0b25lLT5oaWdoKTsKKyAgICAgaW5jckJ5VTMyKHB1NjRvdXQsIHB1NjRvbmUtPmxvdyk7CitAQCAtMTkxLDkgKzE5MSw5IEBAIHU2NEluY3IoVTY0ICogcHU2NG91dCwgY29uc3QgVTY0ICogcHU2NG8KKyAgKiBAcGFyYW1bb3V0XSBwdTY0b3V0IHB1NjRvdXQgKz0gKHB1NjRvbmUgLSBwdTY0dHdvKQorICAqLworIHZvaWQKKy11NjRVcGRhdGVDb3VudGVyKFU2NCAqIHB1NjRvdXQsIGNvbnN0IFU2NCAqIHB1NjRvbmUsIGNvbnN0IFU2NCAqIHB1NjR0d28pCisrdTY0VXBkYXRlQ291bnRlcihzdHJ1Y3QgY291bnRlcjY0ICpwdTY0b3V0LCBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0b25lLCBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0dHdvKQorIHsKKy0gICAgVTY0IHRtcDsKKysgICAgc3RydWN0IGNvdW50ZXI2NCB0bXA7CisgCisgICAgIHU2NFN1YnRyYWN0KHB1NjRvbmUsIHB1NjR0d28sICZ0bXApOworICAgICB1NjRJbmNyKHB1NjRvdXQsICZ0bXApOworQEAgLTIwOCw3ICsyMDgsNyBAQCBuZXRzbm1wX2ZlYXR1cmVfY2hpbGRfb2YodTY0Y29weSwgbmV0c25tCisgICogQHBhcmFtW291dF0gcHU2NG9uZSBXaGVyZSB0byBzdG9yZSB0aGUgY29weSAtICpwdTY0b25lID0gKnB1NjR0d28uCisgICovCisgdm9pZAorLXU2NENvcHkoVTY0ICogcHU2NG9uZSwgY29uc3QgVTY0ICogcHU2NHR3bykKKyt1NjRDb3B5KHN0cnVjdCBjb3VudGVyNjQgKnB1NjRvbmUsIGNvbnN0IHN0cnVjdCBjb3VudGVyNjQgKnB1NjR0d28pCisgeworICAgICAqcHU2NG9uZSA9ICpwdTY0dHdvOworIH0KK0BAIC0yMjAsNyArMjIwLDcgQEAgdTY0Q29weShVNjQgKiBwdTY0b25lLCBjb25zdCBVNjQgKiBwdTY0dAorICAqIEBwYXJhbVtpbl0gcHU2NCBOdW1iZXIgdG8gYmUgemVyb2VkLgorICAqLworIHZvaWQKKy16ZXJvVTY0KFU2NCAqIHB1NjQpCisremVyb1U2NChzdHJ1Y3QgY291bnRlcjY0ICpwdTY0KQorIHsKKyAgICAgcHU2NC0+bG93ID0gMDsKKyAgICAgcHU2NC0+aGlnaCA9IDA7CitAQCAtMjMyLDcgKzIzMiw3IEBAIHplcm9VNjQoVTY0ICogcHU2NCkKKyAgKiBAcGFyYW1baW5dIHB1NjQgTnVtYmVyIHRvIGJlIGNoZWNrZWQuCisgICovCisgaW50CistaXNaZXJvVTY0KGNvbnN0IFU2NCAqIHB1NjQpCisraXNaZXJvVTY0KGNvbnN0IHN0cnVjdCBjb3VudGVyNjQgKnB1NjQpCisgeworICAgICByZXR1cm4gcHU2NC0+bG93ID09IDAgJiYgcHU2NC0+aGlnaCA9PSAwOworIH0KK0BAIC0zOTAsMTAgKzM5MCwxMCBAQCBuZXRzbm1wX2M2NF9jaGVjazMyX2FuZF91cGRhdGUoc3RydWN0IGNvCisgLyoqIENvbnZlcnQgYW4gdW5zaWduZWQgNjQtYml0IG51bWJlciB0byBBU0NJSS4gKi8KKyB2b2lkCisgcHJpbnRVNjQoY2hhciAqYnVmLCAvKiBjaGFyIFtJNjRDSEFSU1orMV07ICovCistICAgICAgICAgY29uc3QgVTY0ICogcHU2NCkKKysgICAgICAgICBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0KQorIHsKKy0gICAgVTY0ICAgICAgICAgICAgIHU2NGE7CistICAgIFU2NCAgICAgICAgICAgICB1NjRiOworKyAgICBzdHJ1Y3QgY291bnRlcjY0IHU2NGE7CisrICAgIHN0cnVjdCBjb3VudGVyNjQgdTY0YjsKKyAKKyAgICAgY2hhciAgICAgICAgICAgIGFSZXNbSTY0Q0hBUlNaICsgMV07CisgICAgIHVuc2lnbmVkIGludCAgICB1OworQEAgLTQxNCw5ICs0MTQsOSBAQCBwcmludFU2NChjaGFyICpidWYsIC8qIGNoYXIgW0k2NENIQVJTWisxCisgLyoqIENvbnZlcnQgYSBzaWduZWQgNjQtYml0IG51bWJlciB0byBBU0NJSS4gKi8KKyB2b2lkCisgcHJpbnRJNjQoY2hhciAqYnVmLCAvKiBjaGFyIFtJNjRDSEFSU1orMV07ICovCistICAgICAgICAgY29uc3QgVTY0ICogcHU2NCkKKysgICAgICAgICBjb25zdCBzdHJ1Y3QgY291bnRlcjY0ICpwdTY0KQorIHsKKy0gICAgVTY0ICAgICAgICAgICAgIHU2NGE7CisrICAgIHN0cnVjdCBjb3VudGVyNjQgdTY0YTsKKyAKKyAgICAgaWYgKHB1NjQtPmhpZ2ggJiAweDgwMDAwMDAwKSB7CisgICAgICAgICB1NjRhLmhpZ2ggPSAodWludDMyX3QpIH5wdTY0LT5oaWdoOworQEAgLTQyOSwxMSArNDI5LDExIEBAIHByaW50STY0KGNoYXIgKmJ1ZiwgLyogY2hhciBbSTY0Q0hBUlNaKzEKKyAgICAgfQorIH0KKyAKKy0vKiogQ29udmVydCBhIHNpZ25lZCA2NC1iaXQgaW50ZWdlciBmcm9tIEFTQ0lJIHRvIFU2NC4gKi8KKysvKiogQ29udmVydCBhIHNpZ25lZCA2NC1iaXQgaW50ZWdlciBmcm9tIEFTQ0lJIHRvIHN0cnVjdCBjb3VudGVyNjQuICovCisgaW50CistcmVhZDY0KFU2NCAqIGk2NCwgY29uc3QgY2hhciAqc3RyKQorK3JlYWQ2NChzdHJ1Y3QgY291bnRlcjY0ICppNjQsIGNvbnN0IGNoYXIgKnN0cikKKyB7CistICAgIFU2NCAgICAgICAgICAgICBpNjRwOworKyAgICBzdHJ1Y3QgY291bnRlcjY0IGk2NHA7CisgICAgIHVuc2lnbmVkIGludCAgICB1OworICAgICBpbnQgICAgICAgICAgICAgc2lnbiA9IDA7CisgICAgIGludCAgICAgICAgICAgICBvayA9IDA7CitJbmRleDogbmV0LXNubXAtNS43LjMvc25tcGxpYi9yZWFkX2NvbmZpZy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9zbm1wbGliL3JlYWRfY29uZmlnLmMKKysrKyBuZXQtc25tcC01LjcuMy9zbm1wbGliL3JlYWRfY29uZmlnLmMKK0BAIC0yMjcwLDEwICsyMjcwLDEwIEBAIHJlYWRfY29uZmlnX3JlYWRfbWVtb3J5KGludCB0eXBlLCBjaGFyICoKKyAgICAgICAgIHJldHVybiByZWFkZnJvbTsKKyAKKyAgICAgY2FzZSBBU05fQ09VTlRFUjY0OgorLSAgICAgICAgaWYgKCpsZW4gPCBzaXplb2YoVTY0KSkKKysgICAgICAgIGlmICgqbGVuIDwgc2l6ZW9mKHN0cnVjdCBjb3VudGVyNjQpKQorICAgICAgICAgICAgIHJldHVybiBOVUxMOworLSAgICAgICAgKmxlbiA9IHNpemVvZihVNjQpOworLSAgICAgICAgcmVhZDY0KChVNjQgKikgZGF0YXB0ciwgcmVhZGZyb20pOworKyAgICAgICAgKmxlbiA9IHNpemVvZihzdHJ1Y3QgY291bnRlcjY0KTsKKysgICAgICAgIHJlYWQ2NCgoc3RydWN0IGNvdW50ZXI2NCAqKSBkYXRhcHRyLCByZWFkZnJvbSk7CisgICAgICAgICByZWFkZnJvbSA9IHNraXBfdG9rZW4ocmVhZGZyb20pOworICAgICAgICAgcmV0dXJuIHJlYWRmcm9tOworICAgICB9CitJbmRleDogbmV0LXNubXAtNS43LjMvdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDE1aW50NjRfY2xpYi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTVpbnQ2NF9jbGliLmMKKysrKyBuZXQtc25tcC01LjcuMy90ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTVpbnQ2NF9jbGliLmMKK0BAIC0xLDQgKzEsNCBAQAorLS8qIEhFQURFUiBUZXN0aW5nIDY0LWJpdCBpbnRlZ2VyIG9wZXJhdGlvbnMgKFU2NCkuICovCisrLyogSEVBREVSIFRlc3RpbmcgNjQtYml0IGludGVnZXIgb3BlcmF0aW9ucyAoc3RydWN0IGNvdW50ZXI2NCkuICovCisgCisgaW50IGksIGo7CisgY2hhciBidWZbMjJdOworQEAgLTE1LDcgKzE1LDcgQEAgc3RhdGljIGNvbnN0IGludDY0X3QgaW50dmFsW10gPSB7CisgfTsKKyAKKyBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGludHZhbCkvc2l6ZW9mKGludHZhbFswXSk7ICsraSkgeworLSAgICBVNjQgYSwgYjsKKysgICAgc3RydWN0IGNvdW50ZXI2NCBhLCBiOworICAgICBhLmxvdyA9ICh1aW50MzJfdClpbnR2YWxbaV07CisgICAgIGEuaGlnaCA9ICh1aW50MzJfdCkoaW50dmFsW2ldID4+IDMyKTsKKyAgICAgcHJpbnRJNjQoYnVmLCAmYSk7CitAQCAtMjcsNyArMjcsNyBAQCBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGludHZhbCkvc2l6ZW9mKGluCisgCisgZm9yIChpID0gMDsgaSA8IHNpemVvZihpbnR2YWwpL3NpemVvZihpbnR2YWxbMF0pOyArK2kpIHsKKyAgICAgZm9yIChqID0gaTsgaiA8IHNpemVvZihpbnR2YWwpL3NpemVvZihpbnR2YWxbMF0pOyArK2opIHsKKy0gICAgICAgIFU2NCBhLCBiOworKyAgICAgICAgc3RydWN0IGNvdW50ZXI2NCBhLCBiOworICAgICAgICAgdWludDY0X3QgZDsKKyAgICAgICAgIGEubG93ID0gKHVpbnQzMl90KWludHZhbFtpXTsKKyAgICAgICAgIGEuaGlnaCA9ICh1aW50MzJfdCkoaW50dmFsW2ldID4+IDMyKTsKK0BAIC00Myw3ICs0Myw3IEBAIGZvciAoaSA9IDA7IGkgPCBzaXplb2YoaW50dmFsKS9zaXplb2YoaW4KKyAgICAgICAgIAorIGZvciAoaSA9IDA7IGkgPCBzaXplb2YoaW50dmFsKS9zaXplb2YoaW50dmFsWzBdKTsgKytpKSB7CisgICAgIGZvciAoaiA9IGk7IGogPCBzaXplb2YoaW50dmFsKS9zaXplb2YoaW50dmFsWzBdKTsgKytqKSB7CistICAgICAgICBVNjQgYSwgYiwgYzsKKysgICAgICAgIHN0cnVjdCBjb3VudGVyNjQgYSwgYiwgYzsKKyAgICAgICAgIHVpbnQ2NF90IGQ7CisgICAgICAgICBhLmxvdyA9ICh1aW50MzJfdClpbnR2YWxbaV07CisgICAgICAgICBhLmhpZ2ggPSAodWludDMyX3QpKGludHZhbFtpXSA+PiAzMik7CitAQCAtNTgsNyArNTgsNyBAQCBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGludHZhbCkvc2l6ZW9mKGluCisgfQorICAgICAgICAgCisgeworLSAgICBVNjQgb2xkX3ZhbCwgbmV3X3ZhbDsKKysgICAgc3RydWN0IGNvdW50ZXI2NCBvbGRfdmFsLCBuZXdfdmFsOworICAgICBvbGRfdmFsLmxvdyA9IDc7CisgICAgIG9sZF92YWwuaGlnaCA9IDA7CisgICAgIG5ld192YWwgPSBvbGRfdmFsOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvMDAwMS1jb25maWdfb3NfaGVhZGVycy1FcnJvci1GaXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC8wMDAxLWNvbmZpZ19vc19oZWFkZXJzLUVycm9yLUZpeC5wYXRjaAppbmRleCBjNjQwMWZlLi40NDM1OWJlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC8wMDAxLWNvbmZpZ19vc19oZWFkZXJzLUVycm9yLUZpeC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC8wMDAxLWNvbmZpZ19vc19oZWFkZXJzLUVycm9yLUZpeC5wYXRjaApAQCAtMTcsMTEgKzE3LDExIEBACiAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMgfCA0ICsrLS0KICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMgYi9jb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycwotaW5kZXggNzA4YWEwOS4uMGRmMzJjYSAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzCi0rKysgYi9jb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycwotQEAgLTQ4Miw4ICs0ODIsOCBAQCB0aGVuCitJbmRleDogbmV0LXNubXAtNS43LjMvY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBuZXQtc25tcC01LjcuMy5vcmlnL2NvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzCisrKysgbmV0LXNubXAtNS43LjMvY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMKK0BAIC00ODQsOCArNDg0LDggQEAgdGhlbgogICAgICB1bnNldCBhY19jdl9oZWFkZXJfcGtnX2gKICAgICAgbmV0c25tcF9zYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCiAgICAgIG5ldHNubXBfc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKQEAgLTMyLDYgKzMyLDMgQEAKICAgICAgQUNfQ0hFQ0tfSEVBREVSUyhwa2cuaCwKICAgICAgICAgIE5FVFNOTVBfU0VBUkNIX0xJQlMocGtnX2luaXQsIHBrZywKICAJICAgIEFDX0RFRklORShIQVZFX0xJQlBLRywgMSwgW2RlZmluZSBpZiB5b3UgaGF2ZSBCU0QgcGtnLW5nXSkpKQotLS0gCi0xLjguNC4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wLzAwMDEtc25tcGxpYi1VRFBJUHY2LXRyYW5zcG9ydC1BZGQtYS1taXNzaW5nLXJldHVybi1zdGF0ZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wLzAwMDEtc25tcGxpYi1VRFBJUHY2LXRyYW5zcG9ydC1BZGQtYS1taXNzaW5nLXJldHVybi1zdGF0ZS5wYXRjaAppbmRleCA2MjU1ZjdjLi41MjdhYTM5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC8wMDAxLXNubXBsaWItVURQSVB2Ni10cmFuc3BvcnQtQWRkLWEtbWlzc2luZy1yZXR1cm4tc3RhdGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvMDAwMS1zbm1wbGliLVVEUElQdjYtdHJhbnNwb3J0LUFkZC1hLW1pc3NpbmctcmV0dXJuLXN0YXRlLnBhdGNoCkBAIC0xMiwxMSArMTIsMTEgQEAKICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYyB8IDEgKwogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQogCi1kaWZmIC0tZ2l0IGEvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYwotaW5kZXggMDI5YjE2NC4uMTFjMzliYiAxMDA2NDQKLS0tLSBhL3NubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jCi0rKysgYi9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYwotQEAgLTI4NSw2ICsyODUsNyBAQCBuZXRzbm1wX3VkcDZfdHJhbnNwb3J0KHN0cnVjdCBzb2NrYWRkcl9pbjYgKmFkZHIsIGludCBsb2NhbCkKK0luZGV4OiBuZXQtc25tcC01LjcuMy9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5ldC1zbm1wLTUuNy4zLm9yaWcvc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMKKysrKyBuZXQtc25tcC01LjcuMy9zbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYworQEAgLTMwNSw2ICszMDUsNyBAQCBuZXRzbm1wX3VkcDZfdHJhbnNwb3J0KHN0cnVjdCBzb2NrYWRkcl9pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybm8sIHN0cmVycm9yKGVycm5vKSkpOwogICAgICAgICAgICAgICAgICBuZXRzbm1wX3NvY2tldGJhc2VfY2xvc2UodCk7CiAgICAgICAgICAgICAgICAgIG5ldHNubXBfdHJhbnNwb3J0X2ZyZWUodCk7CkBAIC0yNCw2ICsyNCwzIEBACiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgLyoKLS0tIAotMi45LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvZml4LWxpYnRvb2wtZmluaXNoLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvZml4LWxpYnRvb2wtZmluaXNoLnBhdGNoCmluZGV4IGEzNjBjM2EuLmQyOWJlMzMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wL2ZpeC1saWJ0b29sLWZpbmlzaC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC9maXgtbGlidG9vbC1maW5pc2gucGF0Y2gKQEAgLTEwLDExICsxMCwxMSBAQAogCiBTaWduZWQtb2ZmLWJ5OiBSb3kuTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CiAtLS0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZS50b3AgYi9NYWtlZmlsZS50b3AKLWluZGV4IDg2MmZiOTQuLmVkN2RjZmMgMTAwNjQ0Ci0tLS0gYS9NYWtlZmlsZS50b3AKLSsrKyBiL01ha2VmaWxlLnRvcAotQEAgLTg2LDcgKzg2LDcgQEAgTElCUkVWSVNJT04gPSAyCitJbmRleDogbmV0LXNubXAtNS43LjMvTWFrZWZpbGUudG9wCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9NYWtlZmlsZS50b3AKKysrKyBuZXQtc25tcC01LjcuMy9NYWtlZmlsZS50b3AKK0BAIC04Nyw3ICs4Nyw3IEBAIExJQlJFVklTSU9OID0gMwogIExJQl9MRF9DTUQgICAgICA9ICQoTElCVE9PTCkgLS1tb2RlPWxpbmsgJChMSU5LQ0MpICQoQ0ZMQUdTKSAtcnBhdGggJChsaWJkaXIpIC12ZXJzaW9uLWluZm8gJChMSUJDVVJSRU5UKTokKExJQlJFVklTSU9OKTokKExJQkFHRSkgLW8KICBMSUJfRVhURU5TSU9OICAgPSBsYQogIExJQl9WRVJTSU9OICAgICA9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC9uZXQtc25tcC01LjcuMi1maXgtZW5naW5lQm9vdHMtdmFsdWUtb24tU0lHSFVQLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvbmV0LXNubXAtNS43LjItZml4LWVuZ2luZUJvb3RzLXZhbHVlLW9uLVNJR0hVUC5wYXRjaAppbmRleCBlZmU4MDM4Li5mYmQyNzRiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC9uZXQtc25tcC01LjcuMi1maXgtZW5naW5lQm9vdHMtdmFsdWUtb24tU0lHSFVQLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wL25ldC1zbm1wLTUuNy4yLWZpeC1lbmdpbmVCb290cy12YWx1ZS1vbi1TSUdIVVAucGF0Y2gKQEAgLTEyLDExICsxMiwxMSBAQAogIHNubXBsaWIvc25tcHYzLmMgfCA0ICsrLS0KICAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL2FnZW50L3NubXBkLmMgYi9hZ2VudC9zbm1wZC5jCi1pbmRleCAwNTYwNDhhLi4xMmE3ZWExIDEwMDY0NAotLS0tIGEvYWdlbnQvc25tcGQuYwotKysrIGIvYWdlbnQvc25tcGQuYwotQEAgLTEyNDYsNiArMTI0Niw3IEBAIHJlY2VpdmUodm9pZCkKK0luZGV4OiBuZXQtc25tcC01LjcuMy9hZ2VudC9zbm1wZC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV0LXNubXAtNS43LjMub3JpZy9hZ2VudC9zbm1wZC5jCisrKysgbmV0LXNubXAtNS43LjMvYWdlbnQvc25tcGQuYworQEAgLTEyNTMsNiArMTI1Myw3IEBAIHJlY2VpdmUodm9pZCkKICAJICAgIHNubXBfbG9nKExPR19JTkZPLCAiTkVULVNOTVAgdmVyc2lvbiAlcyByZXN0YXJ0ZWRcbiIsCiAgCQkgICAgIG5ldHNubXBfZ2V0X3ZlcnNpb24oKSk7CiAgICAgICAgICAgICAgdXBkYXRlX2NvbmZpZygpOwpAQCAtMjQsMTEgKzI0LDExIEBACiAgICAgICAgICAgICAgc2VuZF9lYXN5X3RyYXAoU05NUF9UUkFQX0VOVEVSUFJJU0VTUEVDSUZJQywgMyk7CiAgI2lmIEhBVkVfU0lHSE9MRAogICAgICAgICAgICAgIHNpZ3JlbHNlKFNJR0hVUCk7Ci1kaWZmIC0tZ2l0IGEvc25tcGxpYi9zbm1wdjMuYyBiL3NubXBsaWIvc25tcHYzLmMKLWluZGV4IDQzNWNhZmQuLjZhZDgyMDggMTAwNjQ0Ci0tLS0gYS9zbm1wbGliL3NubXB2My5jCi0rKysgYi9zbm1wbGliL3NubXB2My5jCi1AQCAtOTg0LDkgKzk4NCw5IEBAIGluaXRfc25tcHYzX3Bvc3RfY29uZmlnKGludCBtYWpvcmlkLCBpbnQgbWlub3JpZCwgdm9pZCAqc2VydmVyYXJnLAorSW5kZXg6IG5ldC1zbm1wLTUuNy4zL3NubXBsaWIvc25tcHYzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBuZXQtc25tcC01LjcuMy5vcmlnL3NubXBsaWIvc25tcHYzLmMKKysrKyBuZXQtc25tcC01LjcuMy9zbm1wbGliL3NubXB2My5jCitAQCAtOTg0LDkgKzk4NCw5IEBAIGluaXRfc25tcHYzX3Bvc3RfY29uZmlnKGludCBtYWpvcmlkLCBpbnQKICAgICAgLyoKICAgICAgICogaWYgb3VyIGVuZ2luZUlEIGhhcyBjaGFuZ2VkIGF0IGFsbCwgdGhlIGJvb3RzIHJlY29yZCBtdXN0IGJlIHNldCB0byAxIAogICAgICAgKi8KQEAgLTQwLDYgKzQwLDMgQEAKICAgICAgICAgIGVuZ2luZUJvb3RzID0gMTsKICAgICAgfQogIAotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC9uZXQtc25tcC10ZXN0aW5nLWFkZC10aGUtb3V0cHV0LWZvcm1hdC1mb3ItcHRlc3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9uZXQtc25tcC9uZXQtc25tcC9uZXQtc25tcC10ZXN0aW5nLWFkZC10aGUtb3V0cHV0LWZvcm1hdC1mb3ItcHRlc3QucGF0Y2gKaW5kZXggOWZiMTliMy4uOGY4MzM2YSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXAvbmV0LXNubXAtdGVzdGluZy1hZGQtdGhlLW91dHB1dC1mb3JtYXQtZm9yLXB0ZXN0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wL25ldC1zbm1wLXRlc3RpbmctYWRkLXRoZS1vdXRwdXQtZm9ybWF0LWZvci1wdGVzdC5wYXRjaApAQCAtMTAsMTEgKzEwLDExIEBACiAgdGVzdGluZy9SVU5URVNUUyB8ICAgIDQgKysrKwogIDEgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvdGVzdGluZy9SVU5URVNUUyBiL3Rlc3RpbmcvUlVOVEVTVFMKLWluZGV4IGUxMWM5NjkuLmZiOTBmNzYgMTAwNzU1Ci0tLS0gYS90ZXN0aW5nL1JVTlRFU1RTCi0rKysgYi90ZXN0aW5nL1JVTlRFU1RTCi1AQCAtMjUsMTMgKzI1LDE3IEBAIGZhaWxlZF9jb3VudD0wCitJbmRleDogbmV0LXNubXAtNS43LjMvdGVzdGluZy9SVU5URVNUUworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5ldC1zbm1wLTUuNy4zLm9yaWcvdGVzdGluZy9SVU5URVNUUworKysrIG5ldC1zbm1wLTUuNy4zL3Rlc3RpbmcvUlVOVEVTVFMKK0BAIC0yOSwxMyArMjksMTcgQEAgZmFpbGVkX2NvdW50PTAKICBybSAtZiBmYWlsZWRfdGVzdHMKICBmb3IgaSBpbiAiJHtzcmNkaXJ9Ii90ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QqJDEqOyBkbwogICAgICBlY2hvICJSVU5OSU5HICRpIgpAQCAtMzIsNiArMzIsMyBAQAogIGRvbmUKICAKICBpZiBbIC1mIGZhaWxlZF90ZXN0cyBdOyB0aGVuCi0tLSAKLTEuNy4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL25ldC1zbm1wL25ldC1zbm1wXzUuNy4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXBfNS43LjMuYmIKaW5kZXggODQ5YWUwNy4uZmFmNzNhNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXBfNS43LjMuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvbmV0LXNubXAvbmV0LXNubXBfNS43LjMuYmIKQEAgLTMyLDYgKzMyLDcgQEAKICAgICAgICAgICAgZmlsZTovLzAwMDQtY29uZmlndXJlLWZpeC1pbmNvcnJlY3QtdmFyaWFibGUucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vbmV0LXNubXAtNS43LjItZml4LWVuZ2luZUJvb3RzLXZhbHVlLW9uLVNJR0hVUC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly9uZXQtc25tcC1maXgtZm9yLWRpc2FibGUtZGVzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtUmVtb3ZlLVU2NC10eXBlZGVmLnBhdGNoIFwKICAgICAgICAgICAgIgogU1JDX1VSSVttZDVzdW1dID0gIjlmNjgyYmQ3MGM3MTdlZmRkOWYxNWI2ODZkMDdiYWVlIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImU4ZGZjNzliNjUzOWI3MWE2ZmYzMzU3NDZjZTYzZDJkYTIyMzkwNjJhZDQxODcyZmZmNDM1NGNhZmVkMDdhM2UiCkBAIC02MCw3ICs2MSw3IEBACiAgICAgICAgICAgICAgICAgLS13aXRoLWRlZmF1bHRzIFwKICAgICAgICAgICAgICAgICAtLXdpdGgtaW5zdGFsbC1wcmVmaXg9JHtEfSBcCiAgICAgICAgICAgICAgICAgLS13aXRoLXBlcnNpc3RlbnQtZGlyZWN0b3J5PSR7bG9jYWxzdGF0ZWRpcn0vbGliL25ldC1zbm1wIFwKLSAgICAgICAgICAgICAgICAke0BiYXNlX2NvbmRpdGlvbmFsKCdTSVRFSU5GT19FTkRJQU5ORVNTJywgJ2xlJywgJy0td2l0aC1lbmRpYW5uZXNzPWxpdHRsZScsICctLXdpdGgtZW5kaWFubmVzcz1iaWcnLCBkKX0gXAorICAgICAgICAgICAgICAgICR7QG9lLnV0aWxzLmNvbmRpdGlvbmFsKCdTSVRFSU5GT19FTkRJQU5ORVNTJywgJ2xlJywgJy0td2l0aC1lbmRpYW5uZXNzPWxpdHRsZScsICctLXdpdGgtZW5kaWFubmVzcz1iaWcnLCBkKX0gXAogIgogCiAjIG5ldC1zbm1wIG5lZWRzIHRvIGhhdmUgbWliLW1vZHVsZXM9c211eCBlbmFibGVkIHRvIGVuYWJsZSBxdWFnZ2EgdG8gc3VwcG9ydCBzbm1wCkBAIC0xMTgsNiArMTE5LDEwIEBACiAgICAgc2VkICAgIC1lICJzQF5OU0NfU1JDRElSPS4qQE5TQ19TUkNESVI9LkBnIiBcCiAgICAgICAgIC1pICR7RH0ke2JpbmRpcn0vbmV0LXNubXAtY3JlYXRlLXYzLXVzZXIKICAgICBzZWQgICAgLWUgInNAXk5TQ19TUkNESVI9LipATlNDX1NSQ0RJUj0uQGciIFwKKyAgICAgICAgICAgLWUgInNAXChbXiBdKi1mZGVidWctcHJlZml4LW1hcD1bXiBdKlwpXDEqQEBnIiBcCisgICAgICAgICAgIC1lICJzQFwoW14gXSotLXN5c3Jvb3Q9W14gXSpcKVwxKkBAZyIgXAorICAgICAgICAgICAtZSAic0BcKFteIF0qLS13aXRoLWxpYnRvb2wtc3lzcm9vdD1bXiBdKlwpXDEqQEBnIiBcCisgICAgICAgICAgIC1lICJzQFwoW14gXSotLXdpdGgtaW5zdGFsbC1wcmVmaXg9W14gXSpcKVwxKkBAZyIgXAogICAgICAgICAtaSAke0R9JHtiaW5kaXJ9L25ldC1zbm1wLWNvbmZpZwogCiAgICAgaWYgWyAiJHtIQVNfUEVSTH0iID0gIjEiIF07IHRoZW4KQEAgLTE0Niw2ICsxNTEsNyBAQAogfQogCiBTWVNST09UX1BSRVBST0NFU1NfRlVOQ1MgKz0gIm5ldF9zbm1wX3N5c3Jvb3RfcHJlcHJvY2VzcyIKK1NOTVBfREJHRElSID0gIi91c3Ivc3JjL2RlYnVnLyR7UE59LyR7RVhURU5EUEV9JHtQVn0tJHtQUn0iCiAKIG5ldF9zbm1wX3N5c3Jvb3RfcHJlcHJvY2VzcyAoKSB7CiAgICAgaWYgWyAtZSAke0R9JHtiaW5kaXJ9L25ldC1zbm1wLWNvbmZpZyBdOyB0aGVuCkBAIC0xNTcsNiArMTYzLDEyIEBACiAgICAgICAgICAgICAtZSAic0BeaW5jbHVkZWRpcj0uKkBpbmNsdWRlZGlyPSR7U1RBR0lOR19JTkNESVJ9QGciIFwKICAgICAgICAgICAgIC1lICJzQF5saWJkaXI9LipAbGliZGlyPSR7U1RBR0lOR19MSUJESVJ9QGciIFwKICAgICAgICAgICAgIC1lICJzQF5OU0NfU1JDRElSPS4qQE5TQ19TUkNESVI9JHtTfUBnIiBcCisgICAgICAgICAgICAtZSAic0AtZmRlYnVnLXByZWZpeC1tYXA9JHtTTk1QX0RCR0RJUn1ALWZkZWJ1Zy1wcmVmaXgtbWFwPSR7V09SS0RJUn09JHtTTk1QX0RCR0RJUn1AZyIgXAorICAgICAgICAgICAgLWUgInNALWZkZWJ1Zy1wcmVmaXgtbWFwPSAtZmRlYnVnLXByZWZpeC1tYXA9QC1mZGVidWctcHJlZml4LW1hcD0ke1NUQUdJTkdfRElSX05BVElWRX09IFwKKyAgICAgICAgICAgICAgICAgIC1mZGVidWctcHJlZml4LW1hcD0ke1NUQUdJTkdfRElSX0hPU1R9PUBnIiBcCisgICAgICAgICAgICAtZSAic0AtLXN5c3Jvb3Q9QC0tc3lzcm9vdD0ke1NUQUdJTkdfRElSX0hPU1R9QGciIFwKKyAgICAgICAgICAgIC1lICJzQC0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9QC0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9JHtTVEFHSU5HX0RJUl9IT1NUfUBnIiBcCisgICAgICAgICAgICAtZSAic0AtLXdpdGgtaW5zdGFsbC1wcmVmaXg9QC0td2l0aC1pbnN0YWxsLXByZWZpeD0ke0R9QGciIFwKICAgICAgICAgICAtaSAgJHtTWVNST09UX0RFU1RESVJ9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS9uZXQtc25tcC1jb25maWcKICAgICBmaQogfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvb3BlbmwydHAvb3BlbmwydHAvZml4X2xpbnV4XzQuMTVfY29tcGlsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwL2ZpeF9saW51eF80LjE1X2NvbXBpbGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU5N2RmOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwL2ZpeF9saW51eF80LjE1X2NvbXBpbGUucGF0Y2gKQEAgLTAsMCArMSw0NCBAQAorVGhpcyBmaXhlcyBhIGNvbXBpbGUgaXNzdWUgaW50cm9kdWNlZCB3aXRoIGxpbnV4IGtlcm5lbCA0LjE1CisKK2luY2x1ZGUvbGludXgvaW4uaDoyMjI6ODogZXJyb3I6IHJlZGVmaW5pdGlvbiBvZiAnc3RydWN0IGluX3BrdGluZm8nCit8ICBzdHJ1Y3QgaW5fcGt0aW5mbyB7CisKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCitTaWduZWQtb2ZmLWJ5OiBBcm1pbiBLdXN0ZXIgPGFrdXN0ZXI4MDhAZ21haWwuY29tPgorCitJbmRleDogb3BlbmwydHAtMS44L3BsdWdpbnMvcHBwX3VuaXguYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG9wZW5sMnRwLTEuOC5vcmlnL3BsdWdpbnMvcHBwX3VuaXguYworKysrIG9wZW5sMnRwLTEuOC9wbHVnaW5zL3BwcF91bml4LmMKK0BAIC0yNSw5ICsyNSwxNCBAQAorICNpbmNsdWRlIDxmY250bC5oPgorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CisrI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKysKKysjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwgMTUsIDApCisgI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgorICNpbmNsdWRlIDxuZXQvaWYuaD4KKyAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorKyNlbmRpZgorKworICNpbmNsdWRlIDxhcnBhL2luZXQuaD4KKyAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyAjaW5jbHVkZSA8dW5pc3RkLmg+CitAQCAtNDEsMTIgKzQ2LDEyIEBACisgI2RlZmluZSBfX3VzZXIKKyAjZW5kaWYKKyAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CistI2luY2x1ZGUgPGxpbnV4L2lmX2V0aGVyLmg+CistI2luY2x1ZGUgPGxpbnV4L2lmX3BwcG94Lmg+CisgI2luY2x1ZGUgPGxpbnV4L3BwcF9kZWZzLmg+CisgI2luY2x1ZGUgPGxpbnV4L2lmX3BwcC5oPgorKyNpbmNsdWRlIDxsaW51eC9pZl9wcHBveC5oPgorKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LCAxNSwgMCkKKyAjaW5jbHVkZSA8bGludXgvaWZfcHBwb2wydHAuaD4KKy0KKysjZW5kaWYKKyAjaW5jbHVkZSAidXNsLmgiCisgI2luY2x1ZGUgImwydHBfcHJpdmF0ZS5oIgorIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvb3BlbmwydHAvb3BlbmwydHAvb3BlbmwydHBkLWVuYWJsZS10ZXN0cy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwL29wZW5sMnRwZC1lbmFibGUtdGVzdHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJlY2UyZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwL29wZW5sMnRwZC1lbmFibGUtdGVzdHMucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorY29tbWl0IDNlOTZhNmM0MWJkZDI2NDE3MjY1YTQ1ZWQ2ODUxMzhkOGVlZDU2NGUKK0F1dGhvcjogQXdzIElzbWFpbCA8YXdzLmlzbWFpbEB3aW5kcml2ZXIuY29tPgorRGF0ZTogICBGcmkgU2VwIDE0IDAyOjMyOjUzIDIwMTIgLTA0MDAKKworICAgIG9wZW5sMnRwOiBFbmFibGUgdGVzdHMKKyAgICAKKyAgICBCdWlsZCB0aGUgdGVzdCBkaXJlY2N0b3J5IGFzIHBhcnQKKyAgICBvZiB0aGUgb3ZlcmFsbCBidWlsZAorICAgIAorICAgIFNpZ25lZC1vZmYtYnk6IEF3cyBJc21haWwgPGF3cy5pc21haWxAd2luZHJpdmVyLmNvbT4KKworZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKK2luZGV4IDQxMmNmNGQuLmFkZjRmNDQgMTAwNjQ0CistLS0gYS9NYWtlZmlsZQorKysrIGIvTWFrZWZpbGUKK0BAIC0xNiw3ICsxNiw3IEBAIEwyVFBfRkVBVFVSRV9MT0NBTF9DT05GX0ZJTEU9CXkKKyAKKyAjIERlZmluZSB0byBpbmNsdWRlIHRlc3QgY29kZS4gVGhpcyBtdXN0IGJlIGRlZmluZWQgdG8gcnVuIHRoZQorICMgcmVncmVzc2lvbiB0ZXN0cworLSMgTDJUUF9URVNUPQkJeQorK0wyVFBfVEVTVD15CisgCisgIyBEZWZpbmUgdG8gY29tcGlsZSBpbiBkZWJ1ZyBjb2RlLiBBbHNvIG1ha2VzIGRlZmF1bHQgdHJhY2UgZmxhZ3MKKyAjIGVuYWJsZSBhbGwgbWVzc2FnZXMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwL3J1bi1wdGVzdCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwL3J1bi1wdGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWM5YzdiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvb3BlbmwydHAvb3BlbmwydHAvcnVuLXB0ZXN0CkBAIC0wLDAgKzEsOTcgQEAKKyMhL2Jpbi9zaAorCitUTVBfRElSPWBta3RlbXAgLWQgL3RtcC9zdGQuMjYudG1wLlhYWFhYWGAKKworIyByZXN0b3JlIHRoZSBmaWxlIGlmIGV4aXN0CityZXN0b3JlX2ZpbGUoKQoreworCWZpbGVsaXN0PSJ0ZXN0X3Byb2NzLnRjbCB0dW5uZWwudGVzdCBzZXNzaW9uLnRlc3QiCisJZm9yIGZpbGUgaW4gJHtmaWxlbGlzdH0KKwlkbworCQlpZiBbIC1mICR7VE1QX0RJUn0vJHtmaWxlfSBdOyB0aGVuCisJCQltdiAke1RNUF9ESVJ9LyR7ZmlsZX0gJHtPUEVOTDJUUF9ESVJ9CisJCWZpCisJZG9uZQorfQorCitleGl0X2N1cygpCit7CisJcmVzdG9yZV9maWxlCisJZWNobyAkMQorCWV4aXQgJDIKK30KKworaWYgWyAtZCAvdXNyL2xpYjY0L29wZW5sMnRwL3B0ZXN0IF07IHRoZW4KKwlPUEVOTDJUUF9ESVI9Ii91c3IvbGliNjQvb3BlbmwydHAiCitlbGlmIFsgLWQgL3Vzci9saWIvb3BlbmwydHAvcHRlc3QgXTsgdGhlbgorCU9QRU5MMlRQX0RJUj0iL3Vzci9saWIvb3BlbmwydHAiCitlbHNlCisJZXhpdF9jdXMgIlRoZSBvcGVubDJ0cCBwdGVzdCBkaXJlY3Rvcnkgbm90IGluc3RhbGxlZCwgc2tpcCB0aGUgdGVzdCIgMQorZmkKKworI3JlYWQgLXAgIlBsZWFzZSBpbnB1dCB0aGUgbmV0d29yayBpbnRlcmZhY2UgeW91IHVzZSB0byB0ZXN0KHN1Y2ggYXMgZXRoMCwgZW0xIGV0Yyk6IiBFVEhfVEVTVAorZWNobyAiUGxlYXNlIGlucHV0IHRoZSBuZXR3b3JrIGludGVyZmFjZSB5b3UgdXNlIHRvIHRlc3Qoc3VjaCBhcyBldGgwLCBlbTEgZXRjKToiCityZWFkIEVUSF9URVNUID4gL2Rldi9udWxsCisKK2lmIFsgeCIkRVRIX1RFU1QiID0geCBdOyB0aGVuCisgICAgZXhpdF9jdXMgIlRoZSBuZXR3b3JrIGludGVyZmFjZSBjYW5ub3QgYmUgbnVsbCIgMQorZmkKK2lmY29uZmlnIHwgZ3JlcCAkRVRIX1RFU1QgPiAvZGV2L251bGwgfHwgZXhpdF9jdXMgIlRoZSBuZXR3b3JrIGludGVyZmFjZSB5b3UgcHJvdmlkZSBpcyBpbnZhbGlkIiAxCisKKyMgY2hlY2sgb3BlbmwydHAgcmVsYXRlZCBrZXJuZWwgY29uZmlnCit6Y2F0IC9wcm9jL2NvbmZpZy5neiB8IGdyZXAgQ09ORklHX0wyVFA9eSA+IC9kZXYvbnVsbCB8fCBleGl0X2N1cyAiRmFpbGVkIHRvIGNoZWNrIENPTkZJR19MMlRQPXksIHNraXAgdGhlIHRlc3RzLiIgMQoremNhdCAvcHJvYy9jb25maWcuZ3ogfCBncmVwIENPTkZJR19QUFBPTDJUUD1tID4gL2Rldi9udWxsIHx8IGV4aXRfY3VzICJGYWlsZWQgdG8gY2hlY2sgQ09ORklHX1BQUE9MMlRQPW0sIHNraXAgdGhlIHRlc3RzLiIgMQorCitTWVNWX0lOSVQ9Ii9ldGMvaW5pdC5kL3JwY2JpbmQiCitpZiBbIC1lICR7U1lTVl9JTklUfSBdOyB0aGVuCisJJHtTWVNWX0lOSVR9IHN0YXR1cyA+IC9kZXYvbnVsbCB8fCAke1NZU1ZfSU5JVH0gc3RhcnQgPiAvZGV2L251bGwKK2Vsc2UKKwlzeXN0ZW1jdGwgc3RhdHVzIHJwY2JpbmQgPiAvZGV2L251bGwgfHwgc3lzdGVtY3RsIHN0YXJ0IHJwY2JpbmQgPiAvZGV2L251bGwKK2ZpCisKK3doaWNoIHN5c3RlbWN0bCA+IC9kZXYvbnVsbCAmJiBzeXN0ZW1jdGwgc3RhdHVzIHJwY2JpbmQgPiAvZGV2L251bGwgfHwgc2VydmljZSBycGNiaW5kIHN0YXR1cyA+IC9kZXYvbnVsbAorWyAkPyAtbmUgMCBdICYmIGV4aXRfY3VzICJGYWlsZWQgdG8gc3RhcnQgcnBjYmluZCBzZXJ2aWNlLCBza2lwIHRoZSB0ZXN0cy4iIDEKKworIyBiYWNrdXAgdGhlIGJlbG93IGZpbGVzCitjcCAke09QRU5MMlRQX0RJUn0vcHRlc3QvdGVzdF9wcm9jcy50Y2wgJFRNUF9ESVIKK2NwICR7T1BFTkwyVFBfRElSfS9wdGVzdC90dW5uZWwudGVzdCAkVE1QX0RJUgorY3AgJHtPUEVOTDJUUF9ESVJ9L3B0ZXN0L3Nlc3Npb24udGVzdCAkVE1QX0RJUgorCisjIGN1c3RvbWlzZSB0aGUgY29uZmlnCitpZiBbIHgiJEVUSF9URVNUIiA9IHggXTsgdGhlbgorCWV4aXRfY3VzICJQbGVhc2Ugc2V0IEVUSF9URVNUIHdoaWNoIHVzZWQgdG8gdGVzdCBmaXJzdCwgc2tpcCB0aGUgdGVzdHMuIiAxCitmaQorCitzZWQgLWkgJ3MvZXRoMi8nXCIkRVRIX1RFU1RcIicvZycgJHtPUEVOTDJUUF9ESVJ9L3B0ZXN0L3Rlc3RfcHJvY3MudGNsCit0ZXN0X2lwPSJgaWZjb25maWcgJEVUSF9URVNUIHwgZ3JlcCAnaW5ldCAnIHwgc2VkICdzL14uKmluZXQgYWRkcjovL2cnIHwgXAorICAgIHNlZCAncy8gKk1hc2suKiQvL2cnfHNlZCAncy8gKkJjYXN0LiokLy9nJ2AiCitzZWQgLWkgJ3MvMTkyLjE2OC4wLjEvJyIkdGVzdF9pcCInL2cnICR7T1BFTkwyVFBfRElSfS9wdGVzdC90dW5uZWwudGVzdAorCisjIGxvYWQgbW9kdWxlIGwydHBfcHBwCittb2Rwcm9iZSAgbDJ0cF9wcHAgPiAvZGV2L251bGwKK2xzbW9kIHwgZ3JlcCBsMnRwX3BwcCA+IC9kZXYvbnVsbCB8fCBleGl0X2N1cyAiRkFJTDogTG9hZCBtb2R1bGUgbDJ0cF9wcHAiIDIKKworIyBzdGFydCBvcGVubDJ0cGQKK3BzIGF1eCB8IGdyZXAgb3BlbmwydHBkIHwgZ3JlcCAtdiBncmVwID4gL2Rldi9udWxsICYmIGtpbGxhbGwgb3BlbmwydHBkID4gL2Rldi9udWxsCitwcHBfcGF0aD1gcnBtIC1xbCBvcGVubDJ0cCB8IGdyZXAgcHBwX251bGwuc29gCitlY2hvICJ0ZXN0IGl0IGhlcmUiCisvdXNyL3NiaW4vb3BlbmwydHBkIC1kIGFsbCAtRCAtZiAtcCAke3BwcF9wYXRofSAmICA+IC9kZXYvbnVsbAorCisjIHByZXBhcmUgdGhlIHRlc3QgZW52CitybSAtcmYgJE9QRU5MMlRQX0RJUi9yZXN1bHRzCitta2RpciAtcCAkT1BFTkwyVFBfRElSL3Jlc3VsdHMgfHwgZXhpdF9jdXMgIkZBSUw6IG1rZGlyICRPUEVOTDJUUF9ESVIvcmVzdWx0cyIgMgorY3AgL3Vzci9iaW4vbDJ0cGNvbmZpZyAke09QRU5MMlRQX0RJUn0gfHwgZXhpdF9jdXMgIkZBSUw6IGNvcHkgL3Vzci9iaW4vbDJ0cGNvbmZpZyB0byAke09QRU5MMlRQX0RJUn0iIDIKKworIyBzdGFydCB0aGUgdGVzdAorY2QgJHtPUEVOTDJUUF9ESVJ9L3B0ZXN0ICYmIHRjbHNoIGFsbC50Y2wgLXByZXNlcnZlY29yZSAzIC12ZXJib3NlIGJwcyAtdG1wZGlyICRPUEVOTDJUUF9ESVIvcmVzdWx0cyAtb3V0ZmlsZSB0ZXN0LWwydHBkLnJlc3VsdCAtY29uc3RyYWludHMgImwydHBkUnVubmluZyBwZWVyUHJvZmlsZSB0dW5uZWxQcm9maWxlIHNlc3Npb25Qcm9maWxlIHBwcFByb2ZpbGUgc3lzdGVtIiAtbWF0Y2ggInBlZXJfcHJvZmlsZS0xLjEgdHVubmVsX3Byb2ZpbGUtMS4xIHNlc3Npb25fcHJvZmlsZS0xLjEgcHBwX3Byb2ZpbGUtMS4xIHN5c3RlbS0xLjEiCisKKyMgY2hlY2sgdGhlIHJlc3VsdAorUEFTU05VTT1gZ3JlcCBQQVNTICRPUEVOTDJUUF9ESVIvcmVzdWx0cy90ZXN0LWwydHBkLnJlc3VsdCB8IHdjIC1sYAorRkFJTE5VTT1gZ3JlcCBGQUlMICRPUEVOTDJUUF9ESVIvcmVzdWx0cy90ZXN0LWwydHBkLnJlc3VsdCB8IHdjIC1sYAoraWYgWyAkUEFTU05VTSAtbmUgMCBdICYmIFsgJEZBSUxOVU0gLWVxIDAgXTsgdGhlbgorICAgIGVjaG8gIlBBU1M6IG9wZW5sMnRwIgorZWxzZQorICAgIGVjaG8gIkZBSUw6IG9wZW5sMnRwIgorZmkKKworcmVzdG9yZV9maWxlCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9vcGVubDJ0cC9vcGVubDJ0cF8xLjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9vcGVubDJ0cC9vcGVubDJ0cF8xLjguYmIKaW5kZXggYmJkZThhMy4uMWY2YjRkZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvb3BlbmwydHAvb3BlbmwydHBfMS44LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL29wZW5sMnRwL29wZW5sMnRwXzEuOC5iYgpAQCAtMzEsNiArMzEsOSBAQAogICAgICAgICAgICBmaWxlOi8vb3BlbmwydHBkLWluaXRzY3JpcHQtZml4LXN5c2NvbmZpZy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly9vcGVubDJ0cGQtaW5pdHNjcmlwdC1maXgtd2FybmluZy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly9vcGVubDJ0cGQuc2VydmljZSBcCisgICAgICAgICAgIGZpbGU6Ly9vcGVubDJ0cGQtZW5hYmxlLXRlc3RzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCBcCisgICAgICAgICAgIGZpbGU6Ly9maXhfbGludXhfNC4xNV9jb21waWxlLnBhdGNoIFwKICAgICAgICAgICAgIgogCiBTUkNfVVJJX2FwcGVuZF9saWJjLW11c2wgPSAiXApAQCAtNDEsNyArNDQsNyBAQAogU1JDX1VSSVttZDVzdW1dID0gImUzZDA4ZGVkZmI5ZTZhOWExZTI0ZjY3NjZmNmRhZGQwIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjFjOTc3MDRkNGI5NjNhODdmYmMwZTc0MTY2OGQ0NTMwOTMzOTkxNTE1YWU5YWIwZGZmZDExYjU0NDRmNDg2MGYiCiAKLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcgc3lzdGVtZAoraW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIHBrZ2NvbmZpZyBzeXN0ZW1kIHB0ZXN0CiAKIFNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJvcGVubDJ0cGQuc2VydmljZSIKIFNZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKQEAgLTg1LDQgKzg4LDEyIEBACiAgICAgZmkKIH0KIAorZG9faW5zdGFsbF9wdGVzdCAoKSB7CisgICAgZm9yIGkgaW4gYWxsLnRjbCBjb25maWdmaWxlLnRlc3QgcGVlcl9wcm9maWxlLnRlc3QgcHBwX3Byb2ZpbGUudGVzdCBcCisgICAgc2Vzc2lvbl9wcm9maWxlLnRlc3Qgc2Vzc2lvbi50ZXN0IHN5c3RlbS50ZXN0IHRlc3RfcHJvY3MudGNsIFwKKyAgICB0aGlyZHBhcnR5X2xucy50ZXN0IHR1bm5lbF9wcm9maWxlLnRlc3QgdHVubmVsLnRlc3Q7IGRvCisgICAgICAgIGluc3RhbGwgLW0gMDc1NSAke1N9L3Rlc3QvJGkgJHtEfSR7UFRFU1RfUEFUSH0KKyAgICBkb25lCit9CisKIFJERVBFTkRTXyR7UE59ID0gInBwcCBwcHAtbDJ0cCBiYXNoIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcXVhZ2dhL3F1YWdnYV8xLjIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3F1YWdnYS9xdWFnZ2FfMS4yLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkNDNkN2IuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcXVhZ2dhL3F1YWdnYV8xLjIuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotcmVxdWlyZSBxdWFnZ2EuaW5jCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJiMTU0NmRlODkwNjJmNzA3MGQ1NmU3ODBiMzBiZTRiMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJhYWRkYmE1ZDRmNDFlZDhlNGMyZjE1NWY0NTg0Yzk5MzQ2NWQxMjJjOTA5NmI1YjUyYWRhM2ZjNzUyNjZmYmNkIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcXVhZ2dhL3F1YWdnYV8xLjIuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3F1YWdnYS9xdWFnZ2FfMS4yLjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc2OTdhMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3F1YWdnYS9xdWFnZ2FfMS4yLjQuYmIKQEAgLTAsMCArMSw0IEBACityZXF1aXJlIHF1YWdnYS5pbmMKKworU1JDX1VSSVttZDVzdW1dID0gImVjZWQyMWIwNTRkNzFjOWUxYjdjNmFjNDMyODZhMTY2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImUzNjRjMDgyYzMzMDk5MTBlMWViN2IwNjhiZjM5ZWUyOThlMmYyZjNmMzFhNjQzMWE1YzExNTE5M2JkNjUzZDMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyLzAwMDEtcHBvZS1Eb250LWluY2x1ZGUtbGludXgtaWZfZXRoZXIuaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvMDAwMS1wcG9lLURvbnQtaW5jbHVkZS1saW51eC1pZl9ldGhlci5oLnBhdGNoCmluZGV4IDExMzU2Y2UuLjc2MDFmMGQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvMDAwMS1wcG9lLURvbnQtaW5jbHVkZS1saW51eC1pZl9ldGhlci5oLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvMDAwMS1wcG9lLURvbnQtaW5jbHVkZS1saW51eC1pZl9ldGhlci5oLnBhdGNoCkBAIC0xLDExICsxLDEyIEBACi1Gcm9tIDhkNGQ0NTJkNzMzYmFjOGM1YjU1YTkwYmRkZWM4Y2MzMjNjYzlmYTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGZkYjY0ZDIxNTYwYmZkYWZlZWZjY2M3ZDIwZTEwNWU0ODU3ZmFhOTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogVHVlLCAyOCBNYXIgMjAxNyAxOToyMDowNyAtMDcwMAotU3ViamVjdDogW1BBVENIIDEvMl0gcHBvZTogRG9udCBpbmNsdWRlIGxpbnV4L2lmX2V0aGVyLmgKK1N1YmplY3Q6IFtQQVRDSF0gcHBvZTogRG9udCBpbmNsdWRlIGxpbnV4L2lmX2V0aGVyLmgKIAogRml4ZXMgYnVpbGQgd2l0aCBtdXNsCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIHNyYy9wcHBvZS5oIHwgNCAtLS0tCiAgMSBmaWxlIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0pCkBAIC0yNSw2ICsyNiwzIEBACiAgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KICAKICAjaWZkZWYgSEFWRV9ORVRJTkVUX0lGX0VUSEVSX0gKLS0tIAotMi4xMi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvMDAwMi1FbmFibGUtc3VwcG9ydC1mb3ItdGhlLWtlcm5lbC1tb2R1bGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyLzAwMDItRW5hYmxlLXN1cHBvcnQtZm9yLXRoZS1rZXJuZWwtbW9kdWxlLnBhdGNoCmluZGV4IDEzOWQxZjAuLjIxMDNiMzggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvMDAwMi1FbmFibGUtc3VwcG9ydC1mb3ItdGhlLWtlcm5lbC1tb2R1bGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi8wMDAyLUVuYWJsZS1zdXBwb3J0LWZvci10aGUta2VybmVsLW1vZHVsZS5wYXRjaApAQCAtMSw5ICsxLDEwIEBACi1Gcm9tIGFjYTg0NzNhNTE2YThkYzAxMzg2NjEwNWRhMTQxZmUxY2Q5NDc0NzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDMxYjZlZWNkN2U1ZWJmYjlhMzc5MTVmMjg4MjNlNWFmOWQxMDYyYjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogVHVlLCAyOCBNYXIgMjAxNyAxOToyNDo1MyAtMDcwMAotU3ViamVjdDogW1BBVENIIDIvMl0gRW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBrZXJuZWwgbW9kdWxlCitTdWJqZWN0OiBbUEFUQ0hdIEVuYWJsZSBzdXBwb3J0IGZvciB0aGUga2VybmVsIG1vZHVsZQogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBzcmMvY29uZmlndXJlLmluIHwgMSArCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCkBAIC0yMCw2ICsyMSwzIEBACiAgXSkKICAKICBkbmwgQ2hlY2tzIGZvciB0eXBlZGVmcywgc3RydWN0dXJlcywgYW5kIGNvbXBpbGVyIGNoYXJhY3RlcmlzdGljcy4KLS0tIAotMi4xMi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvY29uZmlndXJlLmluLUVycm9yLWZpeC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvY29uZmlndXJlLmluLUVycm9yLWZpeC5wYXRjaAppbmRleCAyNjYxZmQzLi5iYmQ1MTZmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL2NvbmZpZ3VyZS5pbi1FcnJvci1maXgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9jb25maWd1cmUuaW4tRXJyb3ItZml4LnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA3MTk1NmRlNDZmZWVmOTYyZGMwNjQ1YWY0YzgxYWUwNzRjYTNiODE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBiZGQyMGI3YTU4NGEyMDUwNGRmYWJiNDA5YTQxZWUyYjlhZTQxNjU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTGVpIE1hb2h1aSA8bGVpbWFvaHVpQGNuLmZ1aml0c3UuY29tPgogRGF0ZTogV2VkLCAxOSBBdWcgMjAxNSAxMzo1Mjo1NyArMDkwMAogU3ViamVjdDogW1BBVENIXSBjb25maWd1cmUuaW46IEVycm9yIGZpeC4KQEAgLTksMTUgKzksMTYgQEAKIFVwc3RyZWFtLVN0YXR1czogcGVuZGluZwogCiBTaWduZWQtb2ZmLWJ5OiBMaSBYaW4gPGxpeGluLmZuc3RAY24uZnVqaXRzdS5jb20+CisKIC0tLQogIHNyYy9jb25maWd1cmUuaW4gfCAzMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAxIGZpbGUgY2hhbmdlZCwgMzAgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9zcmMvY29uZmlndXJlLmluIGIvc3JjL2NvbmZpZ3VyZS5pbgotaW5kZXggMGIyM2RmNS4uMzFjN2ZiYyAxMDA2NDQKK2luZGV4IDE3MTRlNjkuLmNhZTA5NzYgMTAwNjQ0CiAtLS0gYS9zcmMvY29uZmlndXJlLmluCiArKysgYi9zcmMvY29uZmlndXJlLmluCi1AQCAtMTkzLDM2ICsxOTMsNiBAQCBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorQEAgLTE5NSwzNiArMTk1LDYgQEAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KICAJQ0ZMQUdTPSIkQ0ZMQUdTIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1XYWxsIC1Xc3RyaWN0LXByb3RvdHlwZXMiCiAgZmkKICAKQEAgLTU0LDYgKzU1LDMgQEAKICBpZiB0ZXN0ICIkcnBwcG9lX2N2X3BhY2tfYml0ZmllbGRzIiA9ICJyZXYiIDsgdGhlbgogIAlBQ19NU0dfUkVTVUxUKHJldmVyc2VkKQogIAlBQ19ERUZJTkUoW1BBQ0tfQklURklFTERTX1JFVkVSU0VEXSwgW10sIFtSZXZlcnNlZCBiaXRmaWVsZHNdKQotLS0gCi0xLjguNC4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvY29uZmlndXJlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9jb25maWd1cmUucGF0Y2gKaW5kZXggMTM4MGJhNC4uYmU4OTI4MCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9jb25maWd1cmUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9jb25maWd1cmUucGF0Y2gKQEAgLTEsNyArMSwxNSBAQAotSW5kZXg6IHJwLXBwcG9lLTMuOC9jb25maWd1cmUuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBycC1wcHBvZS0zLjgub3JpZy9jb25maWd1cmUuaW4JMjAxNC0wNy0xNiAxOTozMTozMy41NDk5OTEzODggKzAwMDAKLSsrKyBycC1wcHBvZS0zLjgvY29uZmlndXJlLmluCTIwMTQtMDctMTcgMjI6MDE6MTguMTE2NTkwODI3ICswMDAwCitGcm9tIGM5NmRkYTA0ZWMwMjRiZGVmMmExNWQzNzRlNWY4MjQyZTA0MWNhZDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSaWNoYXJkIFB1cmRpZSA8cmljaGFyZC5wdXJkaWVAbGludXhmb3VuZGF0aW9uLm9yZz4KK0RhdGU6IEZyaSwgMTggSnVsIDIwMTQgMDg6MjU6MTYgKzAwMDAKKworLS0tCisgY29uZmlndXJlLmluIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgoraW5kZXggYWMxYTdlNC4uMTFiOWYzMSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5pbgorKysrIGIvY29uZmlndXJlLmluCiBAQCAtMSw0ICsxLDQgQEAKIC1BQ19JTklUKHNyYy9wcHBvZS5jKQogLUFNX0lOSVRfQVVUT01BS0UoW3JwLXBwcG9lXSwgWzMuOF0pCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL2NvbmZpZ3VyZV9pbl9jcm9zcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvY29uZmlndXJlX2luX2Nyb3NzLnBhdGNoCmluZGV4IDg4Y2Y3ZTYuLjNiOTQ1OTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvY29uZmlndXJlX2luX2Nyb3NzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvY29uZmlndXJlX2luX2Nyb3NzLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBjYWIwMjA3NmFmYjgwOGE0M2M2ZmYzZDdiMWM2NGU3MWY1YTFiMzk3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAxNzI5MDdmMzFkNjRkYTRjM2YyODlhNDM5ZmQ2MDVkMmFiNTFiMjRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTGVpIE1hb2h1aSA8bGVpbWFvaHVpQGNuLmZ1aml0c3UuY29tPgogRGF0ZTogV2VkLCAxOSBBdWcgMjAxNSAxMjoxNzowMyArMDkwMAogU3ViamVjdDogW1BBVENIXSBjb25maWd1cmUgaW4gY3Jvc3MKQEAgLTE0LDcgKzE0LDcgQEAKICAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9zcmMvY29uZmlndXJlLmluIGIvc3JjL2NvbmZpZ3VyZS5pbgotaW5kZXggZTE5NDI5NS4uODJkNjRkNiAxMDA2NDQKK2luZGV4IDkwYTA3ZGYuLjFkMzAyNDMgMTAwNjQ0CiAtLS0gYS9zcmMvY29uZmlndXJlLmluCiArKysgYi9zcmMvY29uZmlndXJlLmluCiBAQCAtNSw2ICs1LDEzIEBAIEFDX0lOSVQocHBwb2UuYykKQEAgLTQwLDcgKzQwLDcgQEAKICBmaQogIAogIGRubCBDaGVjayBmb3IgTl9IRExDIGxpbmUgZGlzY2lwbGluZQotQEAgLTU2LDcgKzYzLDcgQEAgQUNfVFJZX0NPTVBJTEUoWyNpbmNsdWRlIDxsaW51eC90ZXJtaW9zLmg+XSwKK0BAIC01OCw3ICs2NSw3IEBAIEFDX1RSWV9DT01QSUxFKFsKICAJYWNfY3Zfbl9oZGxjPW5vKQogIEFDX01TR19SRVNVTFQoJGFjX2N2X25faGRsYykKICBpZiB0ZXN0ICIkYWNfY3Zfbl9oZGxjIiA9IHllcyA7IHRoZW4KQEAgLTQ5LDcgKzQ5LDcgQEAKICBmaQogIAogIEFDX0FSR19FTkFCTEUocGx1Z2luLCBbICAtLWVuYWJsZS1wbHVnaW49cHBwZF9zcmNfcGF0aCAgIGJ1aWxkIHBwcGQgcGx1Z2luXSwgYWNfY3ZfcGx1Z2lucGF0aD0kZW5hYmxldmFsLCBhY19jdl9wbHVnaW5wYXRoPW5vKQotQEAgLTEwNCw3ICsxMTEsNyBAQCBQUFBEX0lOQ0RJUj0iIgorQEAgLTEwNiw3ICsxMTMsNyBAQCBQUFBEX0lOQ0RJUj0iIgogIGlmIHRlc3QgIiRhY19jdl9oZWFkZXJfbGludXhfaWZfcHBwb3hfaCIgPSB5ZXMgOyB0aGVuCiAgCWlmIHRlc3QgIiRhY19jdl9wbHVnaW5wYXRoIiAhPSBubyA7IHRoZW4KICAJCUxJTlVYX0tFUk5FTE1PREVfUExVR0lOPXJwLXBwcG9lLnNvCkBAIC01OCw3ICs1OCw3IEBACiAgCQlQUFBEX0lOQ0RJUj0kYWNfY3ZfcGx1Z2lucGF0aAogIAlmaQogIGZpCi1AQCAtMTE0LDcgKzEyMSw3IEBAIGlmIHRlc3QgIiRQUFBEX0lOQ0RJUiIgPSAiIiA7IHRoZW4KK0BAIC0xMTYsNyArMTIzLDcgQEAgaWYgdGVzdCAiJFBQUERfSU5DRElSIiA9ICIiIDsgdGhlbgogIGZpCiAgCiAgaWYgdGVzdCAiJGFjX2N2X2RlYnVnZ2luZyIgPSAieWVzIiA7IHRoZW4KQEAgLTY3LDcgKzY3LDcgQEAKICBmaQogIAogIEFDX1NVQlNUKExJTlVYX0tFUk5FTE1PREVfUExVR0lOKQotQEAgLTE0MCwxNSArMTQ3LDggQEAgQUNfQ0hFQ0tfU0laRU9GKHVuc2lnbmVkIHNob3J0KQorQEAgLTE0MiwxNSArMTQ5LDggQEAgQUNfQ0hFQ0tfU0laRU9GKHVuc2lnbmVkIHNob3J0KQogIEFDX0NIRUNLX1NJWkVPRih1bnNpZ25lZCBpbnQpCiAgQUNfQ0hFQ0tfU0laRU9GKHVuc2lnbmVkIGxvbmcpCiAgCkBAIC04NCw3ICs4NCw3IEBACiAgCiAgZG5sIENoZWNrIGZvciBMaW51eC1zcGVjaWZpYyBrZXJuZWwgc3VwcG9ydCBmb3IgUFBQb0UKICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIExpbnV4IDIuNC5YIGtlcm5lbC1tb2RlIFBQUG9FIHN1cHBvcnQpCi1AQCAtMTkzLDQ0ICsxOTMsOCBAQCBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorQEAgLTE5NSw0NCArMTk1LDggQEAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KICAJQ0ZMQUdTPSIkQ0ZMQUdTIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1XYWxsIC1Xc3RyaWN0LXByb3RvdHlwZXMiCiAgZmkKICAKQEAgLTEzMCw3ICsxMzAsNyBAQAogIGlmIHRlc3QgIiR7cnBwcG9lX2N2X3BhY2tfYml0ZmllbGRzK3NldH0iICE9IHNldCA7IHRoZW4KICBBQ19UUllfUlVOKFsKICB1bmlvbiBmb28gewotQEAgLTI1NywxMCArMjIxLDExIEBAIG1haW4odm9pZCkKK0BAIC0yNTksMTAgKzIyMywxMSBAQCBtYWluKHZvaWQpCiAgfV0sIHJwcHBvZV9jdl9wYWNrX2JpdGZpZWxkcz1ub3JtYWwsIHJwcHBvZV9jdl9wYWNrX2JpdGZpZWxkcz1yZXYsCiAgJEVDSE8gIm5vIGRlZmF1bHRzIGZvciBjcm9zcy1jb21waWxpbmciOyBleGl0IDApCiAgZmkKQEAgLTE0Myw3ICsxNDMsNyBAQAogIGVsc2UKICAJQUNfTVNHX1JFU1VMVChub3JtYWwpCiAgZmkKLUBAIC0zMjQsNiArMjg5LDcgQEAgQUNfU1VCU1QoUFBQT0VfU0VSVkVSX0RFUFMpCitAQCAtMzI2LDYgKzI5MSw3IEBAIEFDX1NVQlNUKFBQUE9FX1NFUlZFUl9ERVBTKQogIEFDX1NVQlNUKFJEWU5BTUlDKQogIEFDX1NVQlNUKExJQkVWRU5UKQogIEFDX1NVQlNUKEVDSE8pCkBAIC0xNTEsNiArMTUxLDMgQEAKICBBQ19TVUJTVChMREZMQUdTKQogIAogIGRhdGFkaXJfZXZhbHVhdGVkPWBldmFsIGVjaG8gJGRhdGFkaXJgCi0tLSAKLTEuOC40LjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9kaXNjYXJkLXVzZS1vZi1kbmwtaW4tTWFrZWZpbGUuYW0ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL2Rpc2NhcmQtdXNlLW9mLWRubC1pbi1NYWtlZmlsZS5hbS5wYXRjaAppbmRleCA4Yjc4ODY0Li45ODAxZjZlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL2Rpc2NhcmQtdXNlLW9mLWRubC1pbi1NYWtlZmlsZS5hbS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL2Rpc2NhcmQtdXNlLW9mLWRubC1pbi1NYWtlZmlsZS5hbS5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gNjExYzlmZTcxOWM1YWEyNjRhMmFkMmViOTIwY2Y0NTIyYWUyZGRlYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZjY1ODE4MWM1ODM0N2MzZTJiMGVlNGYwYTZhM2QxOTE2MjkyMTQ3MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IFRpbmcgTGl1IDxiMjg0OTVAZnJlZXNjYWxlLmNvbT4KIERhdGU6IFR1ZSwgMTIgSnVuIDIwMTIgMTQ6MjY6MTYgLTA0MDAKIFN1YmplY3Q6IFtQQVRDSF0gZGlzY2FyZCB1c2Ugb2YgZG5sIGluIE1ha2VmaWxlLmFtCkBAIC03LDkgKzcsMTAgQEAKIG5vdCBpbnRyb2R1Y2UgYSBjb21tZW50LgogCiBTaWduZWQtb2ZmLWJ5OiBUaW5nIExpdSA8YjI4NDk1QGZyZWVzY2FsZS5jb20+CisKIC0tLQotIE1ha2VmaWxlLmFtIHwgICAgMiArLQotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQorIE1ha2VmaWxlLmFtIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQogCiBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQogaW5kZXggZWZmNjk3Ny4uMzA5MWMzMyAxMDA2NDQKQEAgLTIyLDYgKzIzLDMgQEAKIC1kbmwgQU1fQ0ZMQUdTID0gLVdhbGwgLURERUJVRwogKyMjZG5sIEFNX0NGTEFHUyA9IC1XYWxsIC1EREVCVUcKICBTVUJESVJTID0gc3JjCi0tLSAKLTEuNy42LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9kb250LXN3YWxsb3ctZXJyb3JzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9kb250LXN3YWxsb3ctZXJyb3JzLnBhdGNoCmluZGV4IGY2MTMzN2YuLjhhODU3ODggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvZG9udC1zd2FsbG93LWVycm9ycy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL2RvbnQtc3dhbGxvdy1lcnJvcnMucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIGJiZGFkYjgwM2IxOWYwMDJlNzZlN2JiNWNlM2ZhZjc3MGRkN2M0MTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGE5YTczMjIyNzNjNTE4ODJhZjU4YzM1YmEyODhhMGZhZTAwYmE4NDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBMZWkgTWFvaHVpIDxsZWltYW9odWlAY24uZnVqaXRzdS5jb20+CiBEYXRlOiBXZWQsIDE5IEF1ZyAyMDE1IDEyOjMzOjQxICswOTAwCiBTdWJqZWN0OiBbUEFUQ0hdIGRvbid0IHN3YWxsb3cgZXJyb3JzCkBAIC02LDE1ICs2LDE2IEBACiBGdXJ0aGVyIGZpeHVwIHRvIHRoZSBjb25maWd1cmUgc2NyaXB0cyB0byBub3Qgc3dhbGxvdyBlcnJvcnMKIAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKIC0tLQogIHNyYy9jb25maWd1cmUuaW4gfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9zcmMvY29uZmlndXJlLmluIGIvc3JjL2NvbmZpZ3VyZS5pbgotaW5kZXggODJkNjRkNi4uMGIyM2RmNSAxMDA2NDQKK2luZGV4IDFkMzAyNDMuLjE3MTRlNjkgMTAwNjQ0CiAtLS0gYS9zcmMvY29uZmlndXJlLmluCiArKysgYi9zcmMvY29uZmlndXJlLmluCi1AQCAtMjE5LDcgKzIxOSw3IEBAIG1haW4odm9pZCkKK0BAIC0yMjEsNyArMjIxLDcgQEAgbWFpbih2b2lkKQogIAlyZXR1cm4gMjsKICAgICAgfQogIH1dLCBycHBwb2VfY3ZfcGFja19iaXRmaWVsZHM9bm9ybWFsLCBycHBwb2VfY3ZfcGFja19iaXRmaWVsZHM9cmV2LApAQCAtMjMsNiArMjQsMyBAQAogIGZpCiAgXSkKICAKLS0tIAotMS44LjQuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL3BwcG9lLXNyYy1yZXN0cmljdGlvbnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL3BwcG9lLXNyYy1yZXN0cmljdGlvbnMucGF0Y2gKaW5kZXggYmNmNGQxMS4uMDM2OTdmZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi9wcHBvZS1zcmMtcmVzdHJpY3Rpb25zLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvcHBwb2Utc3JjLXJlc3RyaWN0aW9ucy5wYXRjaApAQCAtMSwzICsxLDggQEAKK0Zyb20gYTZhODVlYzVjODVjYmQzYzg2NzQzYjZlMmZhMzkxMTk4ODY5YmZmOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRvbSBSaW5pIDx0b21fcmluaUBtZW50b3IuY29tPgorRGF0ZTogV2VkLCAyNyBKdWwgMjAxMSAwMzo0Njo1MiArMDAwMAorU3ViamVjdDogW1BBVENIXSBycC1wcHBvZTogUG9ydCBmcm9tIG9lLmRldgorCiBSZWxheCByZXN0cmljdGlvbnMgb24gdGhlIFBQUG9FIHNyYyBhZGRyZXNzLCBhcyBwZXIgZGViaWFuIGJ1ZwogMjkzODExOgogCkBAIC01LDkgKzEwLDE1IEBACiAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbQmFja3BvcnQgZnJvbSBEZWJpYW5dCiAKLS0tLSBycC1wcHBvZS0zLjgub3JpZy9zcmMvZGlzY292ZXJ5LmMKLSsrKyBycC1wcHBvZS0zLjgvc3JjL2Rpc2NvdmVyeS5jCi1AQCAtMzc2LDggKzM3Niw4IEBACistLS0KKyBzcmMvZGlzY292ZXJ5LmMgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2Rpc2NvdmVyeS5jIGIvc3JjL2Rpc2NvdmVyeS5jCitpbmRleCA3ZWUyNTlkLi41MjEzYTM3IDEwMDY0NAorLS0tIGEvc3JjL2Rpc2NvdmVyeS5jCisrKysgYi9zcmMvZGlzY292ZXJ5LmMKK0BAIC00NzIsOCArNDcyLDggQEAgd2FpdEZvclBBRE8oUFBQb0VDb25uZWN0aW9uICpjb25uLCBpbnQgdGltZW91dCkKICAJaWYgKCFwYWNrZXRJc0Zvck1lKGNvbm4sICZwYWNrZXQpKSBjb250aW51ZTsKICAKICAJaWYgKHBhY2tldC5jb2RlID09IENPREVfUEFETykgewpAQCAtMTcsNCArMjgsNCBAQAogKwkJcHJpbnRFcnIoIklnbm9yaW5nIGJyb2FkY2FzdCBQQURPIHBhY2tldCIpOwogIAkJY29udGludWU7CiAgCSAgICB9Ci0gCSAgICBwYXJzZVBhY2tldCgmcGFja2V0LCBwYXJzZVBBRE9UYWdzLCAmcGMpOworICNpZmRlZiBQTFVHSU4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvdG9wLWF1dG9jb25mLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi90b3AtYXV0b2NvbmYucGF0Y2gKaW5kZXggNGZlNzNkMC4uZjY0ZGE0ZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi90b3AtYXV0b2NvbmYucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi90b3AtYXV0b2NvbmYucGF0Y2gKQEAgLTEsMyArMSw4IEBACitGcm9tIDBiNjJmNzFlYjVkNDRkNGE1NzEwMzU2NmJhNTgwMjJiNjMwNGZhNGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBUb20gUmluaSA8dG9tX3JpbmlAbWVudG9yLmNvbT4KK0RhdGU6IFdlZCwgMjcgSnVsIDIwMTEgMDM6NDY6NTIgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gcnAtcHBwb2U6IFBvcnQgZnJvbSBvZS5kZXYKKwogVGhlIGF1dG9jb25mIHN0dWZmIGlzIGFsbCBpbiBhIHN1YmRpcmVjdG9yeSwgd2hpY2ggaXMgcmF0aGVyIGFubm95aW5nCiBhcyBPRSBleHBlY3RzIHBhdGNoZXMgdG8gYmUgYXBwbGllZCBhbmQgYXV0b2NvbmYgc3R1ZmYgdG8gYmUgZG9uZSBpbgogUy4gVGhpcyBhZGRzIGVub3VnaCBhdXRvY29uZiBhdCB0aGUgdG9wIGxldmVsIHRvIGFsbG93IGl0IHRvIGJlCkBAIC02LDIwICsxMSwyOSBAQAogCiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2J1aWxkIHN5c3RlbSBzcGVjaWZpYyBjaGFuZ2VdCiAKLUluZGV4OiBycC1wcHBvZS0zLjgvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBycC1wcHBvZS0zLjgvTWFrZWZpbGUuYW0JMjAwNy0wNi0wOCAxNTo1ODoxNi4wMDAwMDAwMDAgKzEwMDAKKy0tLQorIE1ha2VmaWxlLmFtICB8IDUgKysrKysKKyBjb25maWd1cmUuaW4gfCA0ICsrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBNYWtlZmlsZS5hbQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb25maWd1cmUuaW4KKworZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lZmY2OTc3CistLS0gL2Rldi9udWxsCisrKysgYi9NYWtlZmlsZS5hbQogQEAgLTAsMCArMSw1IEBACiArUEFDS0FHRSA9IHJwLXBwcG9lCiArVkVSU0lPTiA9IDMuOAogKwogK2RubCBBTV9DRkxBR1MgPSAtV2FsbCAtRERFQlVHCiArU1VCRElSUyA9IHNyYwotSW5kZXg6IHJwLXBwcG9lLTMuOC9jb25maWd1cmUuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBycC1wcHBvZS0zLjgvY29uZmlndXJlLmluCTIwMDctMDYtMDggMTU6NTg6MTYuMDAwMDAwMDAwICsxMDAwCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uYWMxYTdlNAorLS0tIC9kZXYvbnVsbAorKysrIGIvY29uZmlndXJlLmluCiBAQCAtMCwwICsxLDQgQEAKICtBQ19JTklUKHNyYy9wcHBvZS5jKQogK0FNX0lOSVRfQVVUT01BS0UoW3JwLXBwcG9lXSwgWzMuOF0pCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL3VwZGF0ZS1jb25maWcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXByb3RvY29scy9ycC1wcHBvZS9ycC1wcHBvZS0zLjEyL3VwZGF0ZS1jb25maWcucGF0Y2gKaW5kZXggNDJhM2JjNi4uYzc1OWUwOSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1wcm90b2NvbHMvcnAtcHBwb2UvcnAtcHBwb2UtMy4xMi91cGRhdGUtY29uZmlnLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtcHJvdG9jb2xzL3JwLXBwcG9lL3JwLXBwcG9lLTMuMTIvdXBkYXRlLWNvbmZpZy5wYXRjaApAQCAtMSwzICsxLDggQEAKK0Zyb20gNGQzNGUwZDdkNzkwZWM0MWIwYWZiNzMxYzdkYzFiMWVlOTBkZDM3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRvbSBSaW5pIDx0b21fcmluaUBtZW50b3IuY29tPgorRGF0ZTogV2VkLCAyNyBKdWwgMjAxMSAwMzo0Njo1MiArMDAwMAorU3ViamVjdDogW1BBVENIXSBycC1wcHBvZTogUG9ydCBmcm9tIG9lLmRldgorCiBTZXQgdGhlIHRpbWVvdXQgdG8gMCBzaW5jZSB3ZSBkb24ndCB3YW50IHBwcG9lIHRvIHRyeSByZWNvbm5lY3RpbmcsCiB3ZSB3YW50IHdoYXRldmVyIGlzIGNhbGxpbmcgaXQgdG8gcmVjb25uZWN0LiBMb3RzIG9mIG9kZCB0aGluZ3MKIGhhcHBlbiB3aGVuIHlvdSBoYXZlIHBwcG9lIHJldHJ5aW5nIGl0c2VsZi4KQEAgLTgsMTEgKzEzLDE1IEBACiAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KIAotSW5kZXg6IHJwLXBwcG9lLTMuOC9jb25maWdzL3BwcG9lLmNvbmYKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBycC1wcHBvZS0zLjgub3JpZy9jb25maWdzL3BwcG9lLmNvbmYJMjAwNi0wNC0wMyAwMDoyOTo0MS4wMDAwMDAwMDAgKzEwMDAKLSsrKyBycC1wcHBvZS0zLjgvY29uZmlncy9wcHBvZS5jb25mCTIwMDctMDYtMDggMTY6MDI6NDcuMDAwMDAwMDAwICsxMDAwCi1AQCAtNjYsNyArNjYsNyBAQAorLS0tCisgY29uZmlncy9wcHBvZS5jb25mIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3MvcHBwb2UuY29uZiBiL2NvbmZpZ3MvcHBwb2UuY29uZgoraW5kZXggYzIyMmIyZi4uNjU2MThhNSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3MvcHBwb2UuY29uZgorKysrIGIvY29uZmlncy9wcHBvZS5jb25mCitAQCAtNjYsNyArNjYsNyBAQCBERUZBVUxUUk9VVEU9eWVzCiAgIyB0byBjb25uZWN0IGZvcmV2ZXIgYWZ0ZXIgcHBwb2Utc3RhcnQgaXMgY2FsbGVkLiAgT3RoZXJ3aXNlLCBpdCB3aWxsCiAgIyBnaXZlIG91dCBhZnRlciBDT05ORUNUX1RJTUVPVVQgc2Vjb25kcyBhbmQgd2lsbCBub3QgYXR0ZW1wdCB0bwogICMgY29ubmVjdCBhZ2FpbiwgbWFraW5nIGl0IGltcG9zc2libGUgdG8gcmVhY2guCkBAIC0yMSw3ICszMCw3IEBACiAgCiAgIyBIb3cgb2Z0ZW4gaW4gc2Vjb25kcyBwcHBvZS1zdGFydCBwb2xscyB0byBjaGVjayBpZiBsaW5rIGlzIHVwCiAgQ09OTkVDVF9QT0xMPTIKLUBAIC0xMTUsNyArMTE1LDcgQEAKK0BAIC0xMTUsNyArMTE1LDcgQEAgUFBQT0VfVElNRU9VVD04MAogIEZJUkVXQUxMPU5PTkUKICAKICAjIExpbnV4IGtlcm5lbC1tb2RlIHBsdWdpbiBmb3IgcHBwZC4gIElmIHlvdSB3YW50IHRvIHRyeSB0aGUga2VybmVsLW1vZGUKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzLmluYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGZiMThkNS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy5pbmMKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1TVU1NQVJZID0gIlRvb2xzIGZvciBldGhlcm5ldCBicmlkZ2luZyIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cubGludXhmb3VuZGF0aW9uLm9yZy9jb2xsYWJvcmF0ZS93b3JrZ3JvdXBzL25ldHdvcmtpbmcvYnJpZGdlIgotU0VDVElPTiA9ICJuZXQiCi1MSUNFTlNFID0gIkdQTHYyIgotCi1ERVBFTkRTID0gInN5c2ZzdXRpbHMiCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L2JyaWRnZS9icmlkZ2UtdXRpbHMtJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICBmaWxlOi8vYnJpZGdlLXV0aWxzLTEuNS1jaGVjay1lcnJvci1yZXR1cm5zLWZyb20td3JpdGUtdG8tc3lzZnMucGF0Y2ggXAotICAgICAgICAgIGZpbGU6Ly9icmlkZ2UtdXRpbHMtMS41LWZpeC1lcnJvci1tZXNzYWdlLWZvci1pbmNvcnJlY3QtY29tbWFuZC5wYXRjaCBcCi0gICAgICAgICAgZmlsZTovL2JyaWRnZS11dGlscy0xLjUtZml4LWluY29ycmVjdC1jb21tYW5kLWluLW1hbnVhbC5wYXRjaCBcCi0iCi0KLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCB1cGRhdGUtYWx0ZXJuYXRpdmVzCi0KLUFMVEVSTkFUSVZFXyR7UE59ID0gImJyY3RsIgotQUxURVJOQVRJVkVfUFJJT1JJVFlbYnJjdGxdID0gIjEwMCIKLUFMVEVSTkFUSVZFX0xJTktfTkFNRVticmN0bF0gPSAiJHtzYmluZGlyfS9icmN0bCIKLQotRVhUUkFfT0VDT05GID0gIi0td2l0aC1saW51eC1oZWFkZXJzPSR7U1RBR0lOR19JTkNESVJ9IgotCi1kb19pbnN0YWxsX2FwcGVuZCAoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9LyR7ZGF0YWRpcn0vYnJpZGdlLXV0aWxzCi0gICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vbmV0d29yay9pZi1wcmUtdXAuZAotICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L25ldHdvcmsvaWYtcG9zdC1kb3duLmQKLX0KLQotUlJFQ09NTUVORFNfJHtQTn0gPSAia2VybmVsLW1vZHVsZS1icmlkZ2UiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDAxLWJ1aWxkLWVycm9yLW91dC1jb3JyZWN0bHktaWYtYS1zdWJtYWtlLWZhaWxzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwMS1idWlsZC1lcnJvci1vdXQtY29ycmVjdGx5LWlmLWEtc3VibWFrZS1mYWlscy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY4OTdiNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDAxLWJ1aWxkLWVycm9yLW91dC1jb3JyZWN0bHktaWYtYS1zdWJtYWtlLWZhaWxzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotRnJvbSA1ZTEwMmI0NTNlMjU0ZDE2YWYxZjk1MDUzMTM0ZjU4MzQ4ZTBmODNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogcm9vdCA8Z2l0QGFuZHJlZC5uZXQ+Ci1EYXRlOiBXZWQsIDIwIEp1bCAyMDE2IDIzOjQwOjMwICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMS81XSBidWlsZDogZXJyb3Igb3V0IGNvcnJlY3RseSBpZiBhIHN1Ym1ha2UgZmFpbHMKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotRHVlIHRvIHVzZSBvZiBhIGZvciBsb29wLCByZXR1cm4gc3RhdHVzIGZyb20gc3VibWFrZSB3YXMgYWx3YXlzCi1pZ25vcmVkLgotCi1JbiB0aGUgY29udGV4dCBvZiBidWlsZC1zeXN0ZW1zIGxpa2UgT0UgdGhpcyBjYXVzZXMgdGhlbSB0byBub3QKLWRldGVjdCBhbnkgZXJyb3JzIGFuZCBjb250aW51ZSBoYXBwaWx5LCByZXN1bHRpbmcgaW4gYSBzdWNjZXNzZnVsLAotYnV0IGluY29tcGxldGUsIGJ1aWxkLgotCi1GaXggYnkgaGF2aW5nIGEgbmljZXIgTWFrZWZpbGUuaW4gd2hpY2ggbm93IGhhcyBydWxlcyBmb3IgdGhlCi1pbmRpdmlkdWFsIHRhcmdldHMgKGRpcmVjdG9yaWVzKSBzbyB0aGF0IG1ha2UgaXRzZWxmIGNhbgotZmlndXJlIG91dCBhbGwgdGhlIGRlcGVuZGVuY2llcyBhbmQgYnVpbGQgdGhvc2UgdGFyZ2V0cyBhcwotbmVlZGVkIHJhdGhlciB0aGFuIHVzaW5nIGEgZm9yIGxvb3AgdG8gaXRlcmF0ZSBvdmVyIHRoZQotZGlyZWN0b3JpZXMgaW4gYSBzaGVsbCBhbmQgdGh1cyBsb29zaW5nIHRoZSByZXR1cm4gc3RhdHVzIG9mCi10aGUgY29tbWFuZCBpbnNpZGUgdGhlIGxvb3AuCi0KLVRoaXMgaGFzIHRoZSBhZGRlZCBhZHZhbnRhZ2UgdGhhdCBwYXJhbGxlbCBidWlsZHMgd29yayBub3cuCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyw6kgRHJhc3ppayA8Z2l0QGFuZHJlZC5uZXQ+Ci0tLS0KLSBNYWtlZmlsZS5pbiB8IDE4ICsrKysrKysrKysrKy0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUuaW4gYi9NYWtlZmlsZS5pbgotaW5kZXggNjAyODUxMy4uZGFiODhiYiAxMDA2NDQKLS0tLSBhL01ha2VmaWxlLmluCi0rKysgYi9NYWtlZmlsZS5pbgotQEAgLTEzLDExICsxMywxMSBAQCBkaXN0ZGlyID0gJChQQUNLQUdFKS0kKFZFUlNJT04pCi0gCi0gU1VCRElSUz1saWJicmlkZ2UgYnJjdGwgZG9jCi0gCi0tYWxsOgotLQlmb3IgeCBpbiAkKFNVQkRJUlMpOyBkbyAkKE1BS0UpICQoTUZMQUdTKSAtQyAkJHggOyBkb25lCi0rYWxsOiBvdmVycmlkZSBBQ1RJT049Ci0rYWxsOiAkKFNVQkRJUlMpCi0gCi0tY2xlYW46Ci0tCWZvciB4IGluICQoU1VCRElSUyk7IGRvICQoTUFLRSkgJChNRkxBR1MpIC1DICQkeCBjbGVhbiA7IGRvbmUKLStjbGVhbjogb3ZlcnJpZGUgQUNUSU9OPWNsZWFuCi0rY2xlYW46ICQoU1VCRElSUykKLSAKLSBkaXN0Y2xlYW46CWNsZWFuCi0gCXJtIC1mIGNvbmZpZy5sb2cKLUBAIC0zMCw2ICszMCwxMiBAQCBtYWludGFpbmVyLWNsZWFuOiBkaXN0Y2xlYW4KLSAJcm0gLWYgbGliYnJpZGdlL01ha2VmaWxlCi0gCXJtIC1mIGRvYy9NYWtlZmlsZQotIAotLWluc3RhbGw6Ci0tCWZvciB4IGluICQoU1VCRElSUyk7IGRvICQoTUFLRSkgJChNRkxBR1MpIC1DICQkeCBpbnN0YWxsOyBkb25lCi0raW5zdGFsbDogb3ZlcnJpZGUgQUNUSU9OPWluc3RhbGwKLStpbnN0YWxsOiAkKFNVQkRJUlMpCi0gCi0rCi0rYnJjdGw6IGxpYmJyaWRnZQotKyQoU1VCRElSUyk6Ci0rCSQoTUFLRSkgJChNRkxBR1MpIC1DICRAICQoQUNUSU9OKQotKwotKy5QSE9OWTogJChTVUJESVJTKQotLS0gCi0yLjguMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDAyLWxpYmJyaWRnZS1maXgtc29tZS1idWlsZC10aW1lLXdhcm5pbmdzLWZjbnRsLmgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDAyLWxpYmJyaWRnZS1maXgtc29tZS1idWlsZC10aW1lLXdhcm5pbmdzLWZjbnRsLmgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1ZDA4YWIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwMi1saWJicmlkZ2UtZml4LXNvbWUtYnVpbGQtdGltZS13YXJuaW5ncy1mY250bC5oLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotRnJvbSA2OGZhZmM0ZWExMDM2NWFjMmU3NGFiN2M2NjBkMDk3Njk2ODU3Njc3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogcm9vdCA8Z2l0QGFuZHJlZC5uZXQ+Ci1EYXRlOiBXZWQsIDIwIEp1bCAyMDE2IDIzOjQwOjMyICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMi81XSBsaWJicmlkZ2U6IGZpeCBzb21lIGJ1aWxkLXRpbWUgd2FybmluZ3MgKGZjbnRsLmgpCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVRoZXJlIGFyZSBidWlsZC10aW1lIHdhcm5pbmdzIGF0IHRoZSBtb21lbnQgd2hlbiBidWlsZGluZwotYWdhaW5zdCBtdXNsLCBhcyB0aGUgY29kZSBoZXJlICNpbmNsdWRlJ3MgdGhlIHdyb25nIGZpbGUsCi1zeXMvZmNudGwuaCBpbnN0ZWFkIG9mIGZjbnRsLmgKLQotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGxpYmJyaWRnZV9kZXZpZi5jOjI2OjA6Ci08c3lzcm9vdD4vdXNyL2luY2x1ZGUvc3lzL2ZjbnRsLmg6MToyOiB3YXJuaW5nOiAjd2FybmluZyByZWRpcmVjdGluZyBpbmNvcnJlY3QgI2luY2x1ZGUgPHN5cy9mY250bC5oPiB0byA8ZmNudGwuaD4gWy1XY3BwXQotICN3YXJuaW5nIHJlZGlyZWN0aW5nIGluY29ycmVjdCAjaW5jbHVkZSA8c3lzL2ZjbnRsLmg+IHRvIDxmY250bC5oPgotICBefn5+fn5+Ci1JbiBmaWxlIGluY2x1ZGVkIGZyb20gbGliYnJpZGdlX2lmLmM6MjM6MDoKLTxzeXNyb290Pi91c3IvaW5jbHVkZS9zeXMvZmNudGwuaDoxOjI6IHdhcm5pbmc6ICN3YXJuaW5nIHJlZGlyZWN0aW5nIGluY29ycmVjdCAjaW5jbHVkZSA8c3lzL2ZjbnRsLmg+IHRvIDxmY250bC5oPiBbLVdjcHBdCi0gI3dhcm5pbmcgcmVkaXJlY3RpbmcgaW5jb3JyZWN0ICNpbmNsdWRlIDxzeXMvZmNudGwuaD4gdG8gPGZjbnRsLmg+Ci0gIF5+fn5+fn4KLQotZ2xpYmMgaGVhZGVycyBzaWxlbnRseSByZWRpcmVjdCBzeXMvZmNudGwuaCB0byBmY250bC5oIHNvIHRoZQotaXNzdWUgaXMgbm90IHNlZW4gdGhlcmUuCi0KLUxldCdzIGZpeCB0aGUgI2luY2x1ZGUncyB0byBzbyBhcyB0byB1c2UgdGhlIGNvcnJlY3Qgb25lcwotYW5kIHNpbGVuY2UgdGhlIGNvbXBpbGVyLgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogQW5kcsOpIERyYXN6aWsgPGdpdEBhbmRyZWQubmV0PgotLS0tCi0gbGliYnJpZGdlL2xpYmJyaWRnZV9kZXZpZi5jIHwgMiArLQotIGxpYmJyaWRnZS9saWJicmlkZ2VfaWYuYyAgICB8IDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYmJyaWRnZS9saWJicmlkZ2VfZGV2aWYuYyBiL2xpYmJyaWRnZS9saWJicmlkZ2VfZGV2aWYuYwotaW5kZXggMWU4MzkyNS4uMmNmNzhmNiAxMDA2NDQKLS0tLSBhL2xpYmJyaWRnZS9saWJicmlkZ2VfZGV2aWYuYwotKysrIGIvbGliYnJpZGdlL2xpYmJyaWRnZV9kZXZpZi5jCi1AQCAtMjMsNyArMjMsNyBAQAotICNpbmNsdWRlIDxlcnJuby5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLSAjaW5jbHVkZSA8ZGlyZW50Lmg+Ci0tI2luY2x1ZGUgPHN5cy9mY250bC5oPgotKyNpbmNsdWRlIDxmY250bC5oPgotIAotICNpbmNsdWRlICJsaWJicmlkZ2UuaCIKLSAjaW5jbHVkZSAibGliYnJpZGdlX3ByaXZhdGUuaCIKLWRpZmYgLS1naXQgYS9saWJicmlkZ2UvbGliYnJpZGdlX2lmLmMgYi9saWJicmlkZ2UvbGliYnJpZGdlX2lmLmMKLWluZGV4IDc3ZDNmOGEuLjljZjRiYWMgMTAwNjQ0Ci0tLS0gYS9saWJicmlkZ2UvbGliYnJpZGdlX2lmLmMKLSsrKyBiL2xpYmJyaWRnZS9saWJicmlkZ2VfaWYuYwotQEAgLTIwLDcgKzIwLDcgQEAKLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPGVycm5vLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotLSNpbmNsdWRlIDxzeXMvZmNudGwuaD4KLSsjaW5jbHVkZSA8ZmNudGwuaD4KLSAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0gCi0gI2luY2x1ZGUgImxpYmJyaWRnZS5oIgotLS0gCi0yLjguMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDAzLWJyaWRnZS1maXgtc29tZS1idWlsZC10aW1lLXdhcm5pbmdzLWVycm5vLmgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDAzLWJyaWRnZS1maXgtc29tZS1idWlsZC10aW1lLXdhcm5pbmdzLWVycm5vLmgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyZjJhNjIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwMy1icmlkZ2UtZml4LXNvbWUtYnVpbGQtdGltZS13YXJuaW5ncy1lcnJuby5oLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotRnJvbSAyYjlkYzI0NWY5M2FiMjdkN2RhNDJhMTZkZGJiOTIxMjg4ODAwNmU0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogcm9vdCA8Z2l0QGFuZHJlZC5uZXQ+Ci1EYXRlOiBXZWQsIDIwIEp1bCAyMDE2IDIzOjQwOjMzICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggMy81XSBicmlkZ2U6IGZpeCBzb21lIGJ1aWxkLXRpbWUgd2FybmluZ3MgKGVycm5vLmgpCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVRoZXJlIGlzIGEgYnVpbGQtdGltZSB3YXJuaW5nIGF0IHRoZSBtb21lbnQgd2hlbiBidWlsZGluZwotYWdhaW5zdCBtdXNsLCBhcyB0aGUgY29kZSBoZXJlICNpbmNsdWRlJ3MgdGhlIHdyb25nIGZpbGUsCi1zeXMvZXJybm8uaCBpbnN0ZWFkIG9mIGVycm5vLmgKLQotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGJyY3RsLmM6MjI6MDoKLTxzeXNyb290Pi91c3IvaW5jbHVkZS9zeXMvZXJybm8uaDoxOjI6IHdhcm5pbmc6ICN3YXJuaW5nIHJlZGlyZWN0aW5nIGluY29ycmVjdCAjaW5jbHVkZSA8c3lzL2Vycm5vLmg+IHRvIDxlcnJuby5oPiBbLVdjcHBdCi0gI3dhcm5pbmcgcmVkaXJlY3RpbmcgaW5jb3JyZWN0ICNpbmNsdWRlIDxzeXMvZXJybm8uaD4gdG8gPGVycm5vLmg+Ci0gIF5+fn5+fn4KLQotZ2xpYmMgaGVhZGVycyBzaWxlbnRseSByZWRpcmVjdCBzeXMvZXJybm8uaCB0byBlcnJuby5oIHNvIHRoZQotaXNzdWUgaXMgbm90IHNlZW4gdGhlcmUuCi0KLUxldCdzIGZpeCB0aGUgI2luY2x1ZGUncyB0byBzbyBhcyB0byB1c2UgdGhlIGNvcnJlY3Qgb25lcwotYW5kIHNpbGVuY2UgdGhlIGNvbXBpbGVyLgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogQW5kcsOpIERyYXN6aWsgPGdpdEBhbmRyZWQubmV0PgotLS0tCi0gYnJjdGwvYnJjdGwuYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2JyY3RsL2JyY3RsLmMgYi9icmN0bC9icmN0bC5jCi1pbmRleCA0NmNhMzUyLi44ODU1MjM0IDEwMDY0NAotLS0tIGEvYnJjdGwvYnJjdGwuYwotKysrIGIvYnJjdGwvYnJjdGwuYwotQEAgLTE5LDcgKzE5LDcgQEAKLSAjaW5jbHVkZSA8c3RkaW8uaD4KLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotLSNpbmNsdWRlIDxzeXMvZXJybm8uaD4KLSsjaW5jbHVkZSA8ZXJybm8uaD4KLSAjaW5jbHVkZSA8Z2V0b3B0Lmg+Ci0gCi0gI2luY2x1ZGUgImxpYmJyaWRnZS5oIgotLS0gCi0yLjguMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDA0LWxpYmJyaWRnZS1hZGQtbWlzc2luZy1pbmNsdWRlLXMtZml4LWJ1aWxkLWFnYWluc3QtbXUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDA0LWxpYmJyaWRnZS1hZGQtbWlzc2luZy1pbmNsdWRlLXMtZml4LWJ1aWxkLWFnYWluc3QtbXUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2NTE4NmUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwNC1saWJicmlkZ2UtYWRkLW1pc3NpbmctaW5jbHVkZS1zLWZpeC1idWlsZC1hZ2FpbnN0LW11LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotRnJvbSBjNDViNzM4MjlhOGI4Yzc5MjRkZjUyOGJhYTdlMTY0OThmOTE3Mjg4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogcm9vdCA8Z2l0QGFuZHJlZC5uZXQ+Ci1EYXRlOiBXZWQsIDIwIEp1bCAyMDE2IDIzOjQwOjMzICswMTAwCi1TdWJqZWN0OiBbUEFUQ0ggNC81XSBsaWJicmlkZ2U6IGFkZCBtaXNzaW5nICNpbmNsdWRlJ3MgKGZpeCBidWlsZCBhZ2FpbnN0Ci0gbXVzbCkKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotRml4ZXMgZXJyb3IgbGlrZToKLQotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGxpYmJyaWRnZV9kZXZpZi5jOjI4OjA6Ci1saWJicmlkZ2UuaDo0NToxNzogZXJyb3I6IGZpZWxkICdtYXhfYWdlJyBoYXMgaW5jb21wbGV0ZSB0eXBlCi0gIHN0cnVjdCB0aW1ldmFsIG1heF9hZ2U7Ci0gICAgICAgICAgICAgICAgIF5+fn5+fn4KLUluIGZpbGUgaW5jbHVkZWQgZnJvbSBsaWJicmlkZ2VfZGV2aWYuYzoyODowOgotbGliYnJpZGdlLmg6NTE6MjogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICd1X2ludDE2X3QnCi0gIHVfaW50MTZfdCByb290X3BvcnQ7Ci0gIF5+fn5+fn5+fgotCi1UaGVzZSB0eXBlcyBhcmUgbm90IHN0YW5kYXJkIEMgYnV0IHJhdGhlciBQb3NpeCwKLWZvciBzdHJ1Y3QgdGltZXZhbCBzZWU6Ci1odHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvNzkwODc5OS94c2gvc3lzdGltZS5oLmh0bWwKLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEFuZHLDqSBEcmFzemlrIDxnaXRAYW5kcmVkLm5ldD4KLS0tLQotIGxpYmJyaWRnZS9saWJicmlkZ2UuaCB8IDIgKysKLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9saWJicmlkZ2UvbGliYnJpZGdlLmggYi9saWJicmlkZ2UvbGliYnJpZGdlLmgKLWluZGV4IDUzZWM4NjkuLmIwNzI3YzEgMTAwNjQ0Ci0tLS0gYS9saWJicmlkZ2UvbGliYnJpZGdlLmgKLSsrKyBiL2xpYmJyaWRnZS9saWJicmlkZ2UuaAotQEAgLTIwLDYgKzIwLDggQEAKLSAjZGVmaW5lIF9MSUJCUklER0VfSAotIAotICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0rI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0rI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotICNpbmNsdWRlIDxsaW51eC9pbjYuaD4KLSAjaW5jbHVkZSA8bGludXgvaWYuaD4KLSAjaW5jbHVkZSA8bGludXgvaWZfYnJpZGdlLmg+Ci0tLSAKLTIuOC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzLzAwMDUtYnVpbGQtZG9uLXQtaWdub3JlLUNGTEFHUy1mcm9tLWVudmlyb25tZW50LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwNS1idWlsZC1kb24tdC1pZ25vcmUtQ0ZMQUdTLWZyb20tZW52aXJvbm1lbnQucGF0Y2gKaW5kZXggOWYyMTU1ZS4uMGE3MmM2YiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwNS1idWlsZC1kb24tdC1pZ25vcmUtQ0ZMQUdTLWZyb20tZW52aXJvbm1lbnQucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwNS1idWlsZC1kb24tdC1pZ25vcmUtQ0ZMQUdTLWZyb20tZW52aXJvbm1lbnQucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1Gcm9tIDdiYzE5MzJjYWJmYWZjYThjNjhlMThiZDQzZTNkMjAzYzcwZDJkZDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiByb290IDxnaXRAYW5kcmVkLm5ldD4KLURhdGU6IFdlZCwgMjAgSnVsIDIwMTYgMjM6NDA6MzMgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSCA1LzVdIGJ1aWxkOiBkb24ndCBpZ25vcmUgQ0ZMQUdTIGZyb20gZW52aXJvbm1lbnQKK0Zyb20gOWQ2MzgzOGQxMmM3NzJkZmUzMzM3MWUyYmI4YjgxOTE2MjU1MzlmMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEpvZSBNYWNEb25hbGQgPGpvZV9tYWNkb25hbGRAbWVudG9yLmNvbT4KK0RhdGU6IE1vbiwgMzAgT2N0IDIwMTcgMTM6Mzc6NDggLTA0MDAKK1N1YmplY3Q6IFtQQVRDSF0gYnVpbGQ6IGRvbid0IGlnbm9yZSBDRkxBR1MgZnJvbSBlbnZpcm9ubWVudAogTUlNRS1WZXJzaW9uOiAxLjAKIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAogQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApAQCAtMTcsMTAgKzE3LDEwIEBACiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAogU2lnbmVkLW9mZi1ieTogQW5kcsOpIERyYXN6aWsgPGdpdEBhbmRyZWQubmV0PgorU2lnbmVkLW9mZi1ieTogSm9lIE1hY0RvbmFsZCA8am9lX21hY2RvbmFsZEBtZW50b3IuY29tPgogLS0tCi0gYnJjdGwvTWFrZWZpbGUuaW4gICAgIHwgMiArLQotIGxpYmJyaWRnZS9NYWtlZmlsZS5pbiB8IDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKyBicmN0bC9NYWtlZmlsZS5pbiB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL2JyY3RsL01ha2VmaWxlLmluIGIvYnJjdGwvTWFrZWZpbGUuaW4KIGluZGV4IGUxOTU2ZDYuLmVmZjI2MGMgMTAwNjQ0CkBAIC0zNSwxOSArMzUsNiBAQAogIAogICUubzogJS5jIGJyY3RsLmgKICAJJChDQykgJChDRkxBR1MpICQoSU5DTFVERSkgLWMgJDwgCi1kaWZmIC0tZ2l0IGEvbGliYnJpZGdlL01ha2VmaWxlLmluIGIvbGliYnJpZGdlL01ha2VmaWxlLmluCi1pbmRleCAyMDUxMmM0Li40ZTFjZGRjIDEwMDY0NAotLS0tIGEvbGliYnJpZGdlL01ha2VmaWxlLmluCi0rKysgYi9saWJicmlkZ2UvTWFrZWZpbGUuaW4KLUBAIC01LDcgKzUsNyBAQCBBUj1hcgotIFJBTkxJQj1AUkFOTElCQAotIAotIENDPUBDQ0AKLS1DRkxBR1MgPSAtV2FsbCAtZyAkKEtFUk5FTF9IRUFERVJTKQotK0NGTEFHUyA9IC1XYWxsIC1nICQoS0VSTkVMX0hFQURFUlMpIEBDRkxBR1NACi0gCi0gcHJlZml4PUBwcmVmaXhACi0gZXhlY19wcmVmaXg9QGV4ZWNfcHJlZml4QAogLS0gCi0yLjguMQorMi43LjQKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwNi1saWJicmlkZ2UtTW9kaWZ5aW5nLXRoZS1BUi10by1jcm9zcy10b29sY2hhaW4ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy8wMDA2LWxpYmJyaWRnZS1Nb2RpZnlpbmctdGhlLUFSLXRvLWNyb3NzLXRvb2xjaGFpbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjY1NzYxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvMDAwNi1saWJicmlkZ2UtTW9kaWZ5aW5nLXRoZS1BUi10by1jcm9zcy10b29sY2hhaW4ucGF0Y2gKQEAgLTAsMCArMSw1MSBAQAorRnJvbSBjOTI0ZjY2NzQzYzA1NGQ3ZWJhZmVmOTBjYTFiYmViYzk2NzMyMzU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSm9lIE1hY0RvbmFsZCA8am9lX21hY2RvbmFsZEBtZW50b3IuY29tPgorRGF0ZTogTW9uLCAzMCBPY3QgMjAxNyAxMzo0ODozMyAtMDQwMAorU3ViamVjdDogW1BBVENIXSBsaWJicmlkZ2U6IE1vZGlmeWluZyB0aGUgQVIgdG8gY3Jvc3MgdG9vbGNoYWluCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1RoZSBNYWtlZmlsZSB1c2VzIHRoZSBob3N0IOKAnGFy4oCdIHRvb2wgd2hlbiBpdCBzaG91bGQgYmUgdXNpbmcgdGhlIGFyIGZyb20KK3RoZSB0YXJnZXQgdG9vbGNoYWluLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogTGkgWmhvdSA8bGkuemhvdUB3aW5kcml2ZXIuY29tPgorU2lnbmVkLW9mZi1ieTogSm9lIE1hY0RvbmFsZCA8am9lX21hY2RvbmFsZEBtZW50b3IuY29tPgorLS0tCisgY29uZmlndXJlLmFjICAgICAgICAgIHwgMSArCisgbGliYnJpZGdlL01ha2VmaWxlLmluIHwgMiArLQorIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IDhiMmUyZWEuLjg0MjZiN2MgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTEyLDYgKzEyLDEwIEBAIGRubCBDaGVja3MgZm9yIHByb2dyYW1zLgorIEFDX1BST0dfQ0MKKyBBQ19QUk9HX0lOU1RBTEwKKyBBQ19QUk9HX1JBTkxJQgorK0FOX01BS0VWQVIoW0FSXSwgW0FDX1BST0dfQVJdKQorK0FOX1BST0dSQU0oW2FyXSwgW0FDX1BST0dfQVJdKQorK0FDX0RFRlVOKFtBQ19QUk9HX0FSXSwgW0FDX0NIRUNLX1RPT0woQVIsIGFyLCA6KV0pCisrQUNfUFJPR19BUgorIAorIGRubCBDaGVja3MgZm9yIGhlYWRlciBmaWxlcy4KKyBBQ19IRUFERVJfU1REQworZGlmZiAtLWdpdCBhL2xpYmJyaWRnZS9NYWtlZmlsZS5pbiBiL2xpYmJyaWRnZS9NYWtlZmlsZS5pbgoraW5kZXggNzkzMmJmZS4uYmQ1NWU5YiAxMDA2NDQKKy0tLSBhL2xpYmJyaWRnZS9NYWtlZmlsZS5pbgorKysrIGIvbGliYnJpZGdlL01ha2VmaWxlLmluCitAQCAtMSw3ICsxLDcgQEAKKyAKKyBLRVJORUxfSEVBREVSUz0tSUBLRVJORUxfSEVBREVSU0AKKyAKKy1BUj1hcgorK0FSPUBBUkAKKyBSQU5MSUI9QFJBTkxJQkAKKyAKKyBDQz1AQ0NACistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy0xLjUtY2hlY2stZXJyb3ItcmV0dXJucy1mcm9tLXdyaXRlLXRvLXN5c2ZzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzLTEuNS1jaGVjay1lcnJvci1yZXR1cm5zLWZyb20td3JpdGUtdG8tc3lzZnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwMGFmOWMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzLTEuNS1jaGVjay1lcnJvci1yZXR1cm5zLWZyb20td3JpdGUtdG8tc3lzZnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi1VcHN0cmVhbS1zdGF0dXM6IEJhY2tQb3J0IFtodHRwOi8vcGtncy5mZWRvcmFwcm9qZWN0Lm9yZy9jZ2l0L2JyaWRnZS11dGlscy5naXQvZGlmZi9icmlkZ2UtdXRpbHMtMS41LWNoZWNrLWVycm9yLXJldHVybnMtZnJvbS13cml0ZS10by1zeXNmcy5wYXRjaD9pZD1iMGQxMDcxN2ZkN2NlYmY1ZDg1ZWVkM2Y5NDFiNDA5ZmEwMzg0ZjA4XQotCi1TaWduZWQtb2ZmLWJ5OiBSb3kuTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+Ci0KLUZyb20gYmI5OTcwYTlkZjk1ODM3ZTM5ZDY4MDAyMWIxZjczZDIzMWU4NTQwNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gSGVtbWluZ2VyIDxzaGVtbWluZ2VyQHZ5YXR0YS5jb20+Ci1EYXRlOiBUdWUsIDMgTWF5IDIwMTEgMDk6NTI6NDMgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAzLzNdIENoZWNrIGVycm9yIHJldHVybnMgZnJvbSB3cml0ZSB0byBzeXNmcwotCi1BZGQgaGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIHdyaXRlIHRvIHN5c2ZzIGZpbGVzLgotCi1TaWduZWQtb2ZmLWJ5OiBQZXRyIFNhYmF0YSA8Y29udHlrQHJlZGhhdC5jb20+Ci0tLS0KLSBsaWJicmlkZ2UvbGliYnJpZGdlX2RldmlmLmMgfCAgIDM3ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGliYnJpZGdlL2xpYmJyaWRnZV9kZXZpZi5jIGIvbGliYnJpZGdlL2xpYmJyaWRnZV9kZXZpZi5jCi1pbmRleCBhYThiYzM2Li4xZTgzOTI1IDEwMDY0NAotLS0tIGEvbGliYnJpZGdlL2xpYmJyaWRnZV9kZXZpZi5jCi0rKysgYi9saWJicmlkZ2UvbGliYnJpZGdlX2RldmlmLmMKLUBAIC0yODAsMjUgKzI4MCwzOCBAQCBmYWxsYmFjazoKLSAJcmV0dXJuIG9sZF9nZXRfcG9ydF9pbmZvKGJybmFtZSwgcG9ydCwgaW5mbyk7Ci0gfQotIAotK3N0YXRpYyBpbnQgc2V0X3N5c2ZzKGNvbnN0IGNoYXIgKnBhdGgsIHVuc2lnbmVkIGxvbmcgdmFsdWUpCi0rewotKwlpbnQgZmQsIHJldCA9IDAsIGNjOwotKwljaGFyIGJ1ZlszMl07Ci0rCi0rCWZkID0gb3BlbihwYXRoLCBPX1dST05MWSk7Ci0rCWlmIChmZCA8IDApCi0rCQlyZXR1cm4gLTE7Ci0rCi0rCWNjID0gc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVsdVxuIiwgdmFsdWUpOwotKwlpZiAod3JpdGUoZmQsIGJ1ZiwgY2MpIDwgMCkKLSsJCXJldCA9IC0xOwotKwljbG9zZShmZCk7Ci0rCi0rCXJldHVybiByZXQ7Ci0rfQotKwotIAotIHN0YXRpYyBpbnQgYnJfc2V0KGNvbnN0IGNoYXIgKmJyaWRnZSwgY29uc3QgY2hhciAqbmFtZSwKLSAJCSAgdW5zaWduZWQgbG9uZyB2YWx1ZSwgdW5zaWduZWQgbG9uZyBvbGRjb2RlKQotIHsKLSAJaW50IHJldDsKLSAJY2hhciBwYXRoW1NZU0ZTX1BBVEhfTUFYXTsKLS0JRklMRSAqZjsKLSAKLS0Jc25wcmludGYocGF0aCwgU1lTRlNfUEFUSF9NQVgsIFNZU0ZTX0NMQVNTX05FVCAiJXMvJXMiLCBicmlkZ2UsIG5hbWUpOwotKwlzbnByaW50ZihwYXRoLCBTWVNGU19QQVRIX01BWCwgU1lTRlNfQ0xBU1NfTkVUICIlcy9icmlkZ2UvJXMiLAotKwkJIGJyaWRnZSwgbmFtZSk7Ci0gCi0tCWYgPSBmb3BlbihwYXRoLCAidyIpOwotLQlpZiAoZikgewotLQkJcmV0ID0gZnByaW50ZihmLCAiJWxkXG4iLCB2YWx1ZSk7Ci0tCQlmY2xvc2UoZik7Ci0tCX0gZWxzZSB7Ci0rCWlmICgocmV0ID0gc2V0X3N5c2ZzKHBhdGgsIHZhbHVlKSkgPCAwKSB7Ci0gCQkvKiBmYWxsYmFjayB0byBvbGQgaW9jdGwgKi8KLSAJCXN0cnVjdCBpZnJlcSBpZnI7Ci0gCQl1bnNpZ25lZCBsb25nIGFyZ3NbNF0gPSB7IG9sZGNvZGUsIHZhbHVlLCAwLCAwIH07Ci0tCQkKLSsKLSAJCXN0cm5jcHkoaWZyLmlmcl9uYW1lLCBicmlkZ2UsIElGTkFNU0laKTsKLSAJCWlmci5pZnJfZGF0YSA9IChjaGFyICopICZhcmdzOwotIAkJcmV0ID0gaW9jdGwoYnJfc29ja2V0X2ZkLCBTSU9DREVWUFJJVkFURSwgJmlmcik7Ci1AQCAtMzQ4LDE0ICszNjEsMTAgQEAgc3RhdGljIGludCBwb3J0X3NldChjb25zdCBjaGFyICpicmlkZ2UsIGNvbnN0IGNoYXIgKmlmbmFtZSwKLSB7Ci0gCWludCByZXQ7Ci0gCWNoYXIgcGF0aFtTWVNGU19QQVRIX01BWF07Ci0tCUZJTEUgKmY7Ci0gCi0gCXNucHJpbnRmKHBhdGgsIFNZU0ZTX1BBVEhfTUFYLCBTWVNGU19DTEFTU19ORVQgIiVzL2JycG9ydC8lcyIsIGlmbmFtZSwgbmFtZSk7Ci0tCWYgPSBmb3BlbihwYXRoLCAidyIpOwotLQlpZiAoZikgewotLQkJcmV0ID0gZnByaW50ZihmLCAiJWxkXG4iLCB2YWx1ZSk7Ci0tCQlmY2xvc2UoZik7Ci0tCX0gZWxzZSB7Ci0rCi0rCWlmICgocmV0ID0gc2V0X3N5c2ZzKHBhdGgsIHZhbHVlKSkgPCAwKSB7Ci0gCQlpbnQgaW5kZXggPSBnZXRfcG9ydG5vKGJyaWRnZSwgaWZuYW1lKTsKLSAKLSAJCWlmIChpbmRleCA8IDApCi0tLSAKLTEuNy41LjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzLTEuNS1maXgtZXJyb3ItbWVzc2FnZS1mb3ItaW5jb3JyZWN0LWNvbW1hbmQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMtMS41LWZpeC1lcnJvci1tZXNzYWdlLWZvci1pbmNvcnJlY3QtY29tbWFuZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQwNDk0ZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMtMS41LWZpeC1lcnJvci1tZXNzYWdlLWZvci1pbmNvcnJlY3QtY29tbWFuZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLVVwc3RyZWFtLXN0YXR1czogQmFja1BvcnQgW2h0dHA6Ly9wa2dzLmZlZG9yYXByb2plY3Qub3JnL2NnaXQvYnJpZGdlLXV0aWxzLmdpdC9kaWZmL2JyaWRnZS11dGlscy0xLjUtZml4LWVycm9yLW1lc3NhZ2UtZm9yLWluY29ycmVjdC1jb21tYW5kLnBhdGNoP2lkPWIwZDEwNzE3ZmQ3Y2ViZjVkODVlZWQzZjk0MWI0MDlmYTAzODRmMDhdCi0KLVNpZ25lZC1vZmYtYnk6IFJveS5MaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KLQotRnJvbSBjN2VkMDk5NmVmNThiNDk3ZDNkMzBiZTgwMmFiNWFlNmMzNzA5OWI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBIZW1taW5nZXIgPHNoZW1taW5nZXJAdnlhdHRhLmNvbT4KLURhdGU6IFR1ZSwgMyBNYXkgMjAxMSAwOTo0OTo1NyAtMDcwMAotU3ViamVjdDogW1BBVENIIDIvM10gRml4IGVycm9yIG1lc3NhZ2UgZm9yIGluY29ycmVjdCBjb21tYW5kCi0KLURlYmlhbiBidWcgNDA2OTA3Ci1FcnJvciBtZXNzYWdlIHdhcyByZWZlcmluZyB0byBpbmNvcnJlY3QgY29tbWFuZCBhcmd1bWVudC4KLQotU2lnbmVkLW9mZi1ieTogUGV0ciBTYWJhdGEgPGNvbnR5a0ByZWRoYXQuY29tPgotLS0tCi0gYnJjdGwvYnJjdGwuYyB8ICAgIDIgKy0KLSAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2JyY3RsL2JyY3RsLmMgYi9icmN0bC9icmN0bC5jCi1pbmRleCA0NTRiOGRkLi40NmNhMzUyIDEwMDY0NAotLS0tIGEvYnJjdGwvYnJjdGwuYwotKysrIGIvYnJjdGwvYnJjdGwuYwotQEAgLTY5LDcgKzY5LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmNvbnN0KiBhcmd2KQotIAlhcmdjIC09IG9wdGluZDsKLSAJYXJndiArPSBvcHRpbmQ7Ci0gCWlmICgoY21kID0gY29tbWFuZF9sb29rdXAoKmFyZ3YpKSA9PSBOVUxMKSB7Ci0tCQlmcHJpbnRmKHN0ZGVyciwgIm5ldmVyIGhlYXJkIG9mIGNvbW1hbmQgWyVzXVxuIiwgYXJndlsxXSk7Ci0rCQlmcHJpbnRmKHN0ZGVyciwgIm5ldmVyIGhlYXJkIG9mIGNvbW1hbmQgWyVzXVxuIiwgKmFyZ3YpOwotIAkJZ290byBoZWxwOwotIAl9Ci0gCQotLS0gCi0xLjcuNS4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy0xLjUtZml4LWluY29ycmVjdC1jb21tYW5kLWluLW1hbnVhbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy0xLjUtZml4LWluY29ycmVjdC1jb21tYW5kLWluLW1hbnVhbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY2ZDZkNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMtMS41LWZpeC1pbmNvcnJlY3QtY29tbWFuZC1pbi1tYW51YWwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1VcHN0cmVhbS1zdGF0dXM6IEJhY2tQb3J0IFtodHRwOi8vcGtncy5mZWRvcmFwcm9qZWN0Lm9yZy9jZ2l0L2JyaWRnZS11dGlscy5naXQvZGlmZi9icmlkZ2UtdXRpbHMtMS41LWZpeC1pbmNvcnJlY3QtY29tbWFuZC1pbi1tYW51YWwucGF0Y2g/aWQ9YjBkMTA3MTdmZDdjZWJmNWQ4NWVlZDNmOTQxYjQwOWZhMDM4NGYwOF0KLQotU2lnbmVkLW9mZi1ieTogUm95LkxpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgotCi1Gcm9tIDhlZjdiNzc1NjJiNjM2ZWZjYmQ4Yjc1OWViMzI0ZDZjMDY5MjAwZjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c2hlbW1pbmdlckB2eWF0dGEuY29tPgotRGF0ZTogVHVlLCAzIE1heSAyMDExIDA5OjQ4OjQwIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8zXSBGaXggaW5jb3JyZWN0IGNvbW1hbmQgaW4gbWFudWFsCi0KLUNvbW1hbmQgaXMgInNldGFnZWluZyIgbm90ICJzZXRhZ2Vpbmd0aW1lIjsgZml4IG1hbiBwYWdlLgotRGViaWFuIGJ1ZyByZXBvcnQuCi0KLVNpZ25lZC1vZmYtYnk6IFBldHIgU2FiYXRhIDxjb250eWtAcmVkaGF0LmNvbT4KLS0tLQotIGRvYy9icmN0bC44IHwgICAgMiArLQotIDEgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZG9jL2JyY3RsLjggYi9kb2MvYnJjdGwuOAotaW5kZXggZDkwNDA0Ny4uNzcxZjMyMyAxMDA2NDQKLS0tLSBhL2RvYy9icmN0bC44Ci0rKysgYi9kb2MvYnJjdGwuOAotQEAgLTg5LDcgKzg5LDcgQEAgZGF0YS4gTWFjaGluZXMgY2FuIG1vdmUgdG8gb3RoZXIgcG9ydHMsIG5ldHdvcmsgY2FyZHMgY2FuIGJlIHJlcGxhY2VkCi0gLkIgYnJjdGwgc2hvd21hY3MgPGJybmFtZT4KLSBzaG93cyBhIGxpc3Qgb2YgbGVhcm5lZCBNQUMgYWRkcmVzc2VzIGZvciB0aGlzIGJyaWRnZS4KLSAKLS0uQiBicmN0bCBzZXRhZ2Vpbmd0aW1lIDxicm5hbWU+IDx0aW1lPgotKy5CIGJyY3RsIHNldGFnZWluZyA8YnJuYW1lPiA8dGltZT4KLSBzZXRzIHRoZSBldGhlcm5ldCAoTUFDKSBhZGRyZXNzIGFnZWluZyB0aW1lLCBpbiBzZWNvbmRzLiBBZnRlciA8dGltZT4KLSBzZWNvbmRzIG9mIG5vdCBoYXZpbmcgc2VlbiBhIGZyYW1lIGNvbWluZyBmcm9tIGEgY2VydGFpbiBhZGRyZXNzLCB0aGUKLSBicmlkZ2Ugd2lsbCB0aW1lIG91dCAoZGVsZXRlKSB0aGF0IGFkZHJlc3MgZnJvbSB0aGUgRm9yd2FyZGluZwotLS0gCi0xLjcuNS4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzL2tlcm5lbC1oZWFkZXJzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMva2VybmVsLWhlYWRlcnMucGF0Y2gKaW5kZXggZGUzNmYwNS4uOGEyM2EzMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMva2VybmVsLWhlYWRlcnMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHMva2VybmVsLWhlYWRlcnMucGF0Y2gKQEAgLTEsMjIgKzEsMzMgQEAKLWluY2x1ZGUgbWlzc2luZyBrZXJuZWwgaGVhZGVyCitGcm9tIDgyNGY4MzhjYzljN2I4YTQ0MTc0MzU4NDQ2OTkzZDYxYmU3YmJiM2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKb2UgTWFjRG9uYWxkIDxqb2VfbWFjZG9uYWxkQG1lbnRvci5jb20+CitEYXRlOiBNb24sIDMwIE9jdCAyMDE3IDEzOjE4OjIwIC0wNDAwCitTdWJqZWN0OiBbUEFUQ0hdIGluY2x1ZGUgbWlzc2luZyBrZXJuZWwgaGVhZGVyCiAKIEZpeGVzIGVycm9ycyBsaWtlCiAKIHwgL2Iva3Jhai9qbGludXgtbmV4dC9wb2t5L2J1aWxkL3RtcC1lZ2xpYmMvc3lzcm9vdHMvcmUtNjRiL3Vzci9pbmNsdWRlL2xpbnV4L2lmX2JyaWRnZS5oOjE3MjoyMDogZXJyb3I6IGZpZWxkICdpcDYnIGhhcyBpbmNvbXBsZXRlIHR5cGUKIHwgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4uL2xpYmJyaWRnZS9saWJicmlkZ2UuaDoyNDowLAogCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKLUluZGV4OiBicmlkZ2UtdXRpbHMtMS41L2xpYmJyaWRnZS9saWJicmlkZ2UuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGJyaWRnZS11dGlscy0xLjUub3JpZy9saWJicmlkZ2UvbGliYnJpZGdlLmgJMjAxMS0wMy0yOCAxNzo1Mjo1NC4wMDAwMDAwMDAgLTA3MDAKLSsrKyBicmlkZ2UtdXRpbHMtMS41L2xpYmJyaWRnZS9saWJicmlkZ2UuaAkyMDEzLTAzLTA0IDIxOjE2OjI1Ljc4MTE4ODMwOSAtMDgwMAotQEAgLTIwLDYgKzIwLDcgQEAKLSAjZGVmaW5lIF9MSUJCUklER0VfSAorU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEpvZSBNYWNEb25hbGQgPGpvZV9tYWNkb25hbGRAbWVudG9yLmNvbT4KKy0tLQorIGxpYmJyaWRnZS9saWJicmlkZ2UuaCB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvbGliYnJpZGdlL2xpYmJyaWRnZS5oIGIvbGliYnJpZGdlL2xpYmJyaWRnZS5oCitpbmRleCBjMDM4YjkyLi5mZDA5MzA2IDEwMDY0NAorLS0tIGEvbGliYnJpZGdlL2xpYmJyaWRnZS5oCisrKysgYi9saWJicmlkZ2UvbGliYnJpZGdlLmgKK0BAIC0yNCw2ICsyNCw3IEBACisgI2luY2x1ZGUgPHN5cy90aW1lLmg+CisgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KICAKLSAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgogKyNpbmNsdWRlIDxsaW51eC9pbjYuaD4KICAjaW5jbHVkZSA8bGludXgvaWYuaD4KICAjaW5jbHVkZSA8bGludXgvaWZfYnJpZGdlLmg+CiAgCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzXzEuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9icmlkZ2UtdXRpbHMvYnJpZGdlLXV0aWxzXzEuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjAzMmFiMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlsc18xLjUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1yZXF1aXJlIGJyaWRnZS11dGlscy5pbmMKLQotU1JDX1VSSSArPSAiXAotICAgIGZpbGU6Ly9rZXJuZWwtaGVhZGVycy5wYXRjaCBcCi0gICAgZmlsZTovLzAwMDEtYnVpbGQtZXJyb3Itb3V0LWNvcnJlY3RseS1pZi1hLXN1Ym1ha2UtZmFpbHMucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAyLWxpYmJyaWRnZS1maXgtc29tZS1idWlsZC10aW1lLXdhcm5pbmdzLWZjbnRsLmgucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAzLWJyaWRnZS1maXgtc29tZS1idWlsZC10aW1lLXdhcm5pbmdzLWVycm5vLmgucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDA0LWxpYmJyaWRnZS1hZGQtbWlzc2luZy1pbmNsdWRlLXMtZml4LWJ1aWxkLWFnYWluc3QtbXUucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDA1LWJ1aWxkLWRvbi10LWlnbm9yZS1DRkxBR1MtZnJvbS1lbnZpcm9ubWVudC5wYXRjaCBcCi0iCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWY5ZDIwYTQ1MzIyMWExYjdlMzJhZTg0Njk0ZGEyYzM3IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZWM3YjM4MTE2MGIzNDA2NDhkZWRlNThjMzFiYjIyMzgiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDJmOWU1ZmI4ZjZjNTJlNjNhOThhNDNiODFiZDI4MWMyMjdjNTI5ZjE5NDkxM2UxYzUxZWM0OGEzOTNiNjY4OCIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHNfMS42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2JyaWRnZS11dGlscy9icmlkZ2UtdXRpbHNfMS42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjODdjNDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvYnJpZGdlLXV0aWxzL2JyaWRnZS11dGlsc18xLjYuYmIKQEAgLTAsMCArMSwzNSBAQAorU1VNTUFSWSA9ICJUb29scyBmb3IgZXRoZXJuZXQgYnJpZGdpbmciCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmxpbnV4Zm91bmRhdGlvbi5vcmcvY29sbGFib3JhdGUvd29ya2dyb3Vwcy9uZXR3b3JraW5nL2JyaWRnZSIKK1NFQ1RJT04gPSAibmV0IgorTElDRU5TRSA9ICJHUEx2MiIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZjlkMjBhNDUzMjIxYTFiN2UzMmFlODQ2OTRkYTJjMzciCisKK1NSQ1JFViA9ICI0MmMxYWVmYzMwM2ZkZjg5MWZiYjA5OWVhNTFmMDBkY2E4M2FiNjA2IgorCitTUkNfVVJJID0gIlwKKyAgICBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvc2hlbW1pbmdlci9icmlkZ2UtdXRpbHMuZ2l0IFwKKyAgICBmaWxlOi8va2VybmVsLWhlYWRlcnMucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDA1LWJ1aWxkLWRvbi10LWlnbm9yZS1DRkxBR1MtZnJvbS1lbnZpcm9ubWVudC5wYXRjaCBcCisgICAgZmlsZTovLzAwMDYtbGliYnJpZGdlLU1vZGlmeWluZy10aGUtQVItdG8tY3Jvc3MtdG9vbGNoYWluLnBhdGNoIFwKKyIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworREVQRU5EUyA9ICJzeXNmc3V0aWxzIgorCitpbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAgdXBkYXRlLWFsdGVybmF0aXZlcworCitBTFRFUk5BVElWRV8ke1BOfSA9ICJicmN0bCIKK0FMVEVSTkFUSVZFX1BSSU9SSVRZW2JyY3RsXSA9ICIxMDAiCitBTFRFUk5BVElWRV9MSU5LX05BTUVbYnJjdGxdID0gIiR7c2JpbmRpcn0vYnJjdGwiCisKK0VYVFJBX09FQ09ORiA9ICItLXdpdGgtbGludXgtaGVhZGVycz0ke1NUQUdJTkdfSU5DRElSfSIKKworZG9faW5zdGFsbF9hcHBlbmQgKCkgeworICAgIGluc3RhbGwgLWQgJHtEfS8ke2RhdGFkaXJ9L2JyaWRnZS11dGlscworICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L25ldHdvcmsvaWYtcHJlLXVwLmQKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9uZXR3b3JrL2lmLXBvc3QtZG93bi5kCit9CisKK1JSRUNPTU1FTkRTXyR7UE59ID0gImtlcm5lbC1tb2R1bGUtYnJpZGdlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2Nocm9ueS9jaHJvbnkvYXJtX2VhYmkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2hyb255L2Nocm9ueS9hcm1fZWFiaS5wYXRjaAppbmRleCBkMTU4NmJiLi45MmEyZGJkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2hyb255L2Nocm9ueS9hcm1fZWFiaS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2hyb255L2Nocm9ueS9hcm1fZWFiaS5wYXRjaApAQCAtMSw0OCArMSw1NCBAQAogICAgIGNocm9ueTogZml4IGJ1aWxkIGZhaWx1cmUgZm9yIGFybWE5Ci0gICAgCisKICAgICBFbGltaW5hdGUgcmVmZXJlbmNlcyB0byBzeXNjYWxscyBub3QgYXZhaWxhYmxlCiAgICAgZm9yIEFSTV9FQUJJLiAgQWxzbyBhZGQgYSBkZXBlbmRlbmN5IG9uIGxpYnNlY2NvbXAKICAgICB3aGljaCBpcyBuZWVkZWQgZm9yIHNjZmlsdGVyIHRvIHdvcmsuCi0gICAgCisKICAgICBTZXQgUEFDS0FHRUNPTkZJRyB0byBub3QgZW5hYmxlIHNjZmlsdGVyLCBzaW5jZQogICAgIGtlcm5lbCBDT05GSUdfU0VDQ09NUCBpcyB1bmxpa2VseSB0byBiZSBzZXQuICBUaGlzCiAgICAgYWxpZ25zIHRoZSB1c2FnZSBvZiBsaWJzZWNjb21wIHdpdGggdGhhdCBvZiBvdGhlciBwYWNrYWdlcy4KIAogICAgIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotICAgIAorCiAgICAgU2lnbmVkLW9mZi1ieTogSm9lIFNsYXRlciA8anNsYXRlckB3aW5kcml2ZXIuY29tPgogCisgICAgUmVmcmVzaCBwYXRjaCBmb3IgbmV3IHVwc3RyZWFtIHZlcnNpb24uCisKKyAgICBTaWduZWQtb2ZmLWJ5OiBSb2JlcnQgSm9zbHluIDxyb2JlcnQuam9zbHluQHJlZHJlY3RhbmdsZS5vcmc+CisKIC0tLSBhL3N5c19saW51eC5jCiArKysgYi9zeXNfbGludXguYwotQEAgLTQ1MywxMyArNDUzLDEyIEBAIFNZU19MaW51eF9FbmFibGVTeXN0ZW1DYWxsRmlsdGVyKGludCBsZXYKK0BAIC00NjUsMTQgKzQ2NSwxNCBAQCBTWVNfTGludXhfRW5hYmxlU3lzdGVtQ2FsbEZpbHRlcihpbnQgbGV2CiAgICBjb25zdCBpbnQgc3lzY2FsbHNbXSA9IHsKICAgICAgLyogQ2xvY2sgKi8KLSAgICAgU0NNUF9TWVMoYWRqdGltZXgpLCBTQ01QX1NZUyhnZXR0aW1lb2ZkYXkpLCBTQ01QX1NZUyhzZXR0aW1lb2ZkYXkpLAotLSAgICBTQ01QX1NZUyh0aW1lKSwKKyAgICAgU0NNUF9TWVMoYWRqdGltZXgpLCBTQ01QX1NZUyhjbG9ja19nZXR0aW1lKSwgU0NNUF9TWVMoZ2V0dGltZW9mZGF5KSwKKy0gICAgU0NNUF9TWVMoc2V0dGltZW9mZGF5KSwgU0NNUF9TWVModGltZSksCisrICAgIFNDTVBfU1lTKHNldHRpbWVvZmRheSksCiAgICAgIC8qIFByb2Nlc3MgKi8KLS0gICAgU0NNUF9TWVMoY2xvbmUpLCBTQ01QX1NZUyhleGl0KSwgU0NNUF9TWVMoZXhpdF9ncm91cCksIFNDTVBfU1lTKGdldHJsaW1pdCksCi0rICAgIFNDTVBfU1lTKGNsb25lKSwgU0NNUF9TWVMoZXhpdCksIFNDTVBfU1lTKGV4aXRfZ3JvdXApLAotICAgICBTQ01QX1NZUyhydF9zaWdhY3Rpb24pLCBTQ01QX1NZUyhydF9zaWdyZXR1cm4pLCBTQ01QX1NZUyhydF9zaWdwcm9jbWFzayksCi0gICAgIFNDTVBfU1lTKHNldF90aWRfYWRkcmVzcyksIFNDTVBfU1lTKHNpZ3JldHVybiksIFNDTVBfU1lTKHdhaXQ0KSwKKyAgICAgU0NNUF9TWVMoY2xvbmUpLCBTQ01QX1NZUyhleGl0KSwgU0NNUF9TWVMoZXhpdF9ncm91cCksIFNDTVBfU1lTKGdldHBpZCksCistICAgIFNDTVBfU1lTKGdldHJsaW1pdCksIFNDTVBfU1lTKHJ0X3NpZ2FjdGlvbiksIFNDTVBfU1lTKHJ0X3NpZ3JldHVybiksCisrICAgIFNDTVBfU1lTKHJ0X3NpZ2FjdGlvbiksIFNDTVBfU1lTKHJ0X3NpZ3JldHVybiksCisgICAgIFNDTVBfU1lTKHJ0X3NpZ3Byb2NtYXNrKSwgU0NNUF9TWVMoc2V0X3RpZF9hZGRyZXNzKSwgU0NNUF9TWVMoc2lncmV0dXJuKSwKKyAgICAgU0NNUF9TWVMod2FpdDQpLAogICAgICAvKiBNZW1vcnkgKi8KIC0gICAgU0NNUF9TWVMoYnJrKSwgU0NNUF9TWVMobWFkdmlzZSksIFNDTVBfU1lTKG1tYXApLCBTQ01QX1NZUyhtbWFwMiksCiArICAgIFNDTVBfU1lTKGJyayksIFNDTVBfU1lTKG1hZHZpc2UpLCBTQ01QX1NZUyhtbWFwMiksCiAgICAgIFNDTVBfU1lTKG1wcm90ZWN0KSwgU0NNUF9TWVMobXJlbWFwKSwgU0NNUF9TWVMobXVubWFwKSwgU0NNUF9TWVMoc2htZHQpLAogICAgICAvKiBGaWxlc3lzdGVtICovCiAgICAgIFNDTVBfU1lTKGFjY2VzcyksIFNDTVBfU1lTKGNobW9kKSwgU0NNUF9TWVMoY2hvd24pLCBTQ01QX1NZUyhjaG93bjMyKSwKLUBAIC00NzAsMTQgKzQ2OSwyMSBAQCBTWVNfTGludXhfRW5hYmxlU3lzdGVtQ2FsbEZpbHRlcihpbnQgbGV2CitAQCAtNDgzLDE0ICs0ODMsMjEgQEAKICAgICAgU0NNUF9TWVMoYmluZCksIFNDTVBfU1lTKGNvbm5lY3QpLCBTQ01QX1NZUyhnZXRzb2NrbmFtZSksCi0gICAgIFNDTVBfU1lTKHJlY3Zmcm9tKSwgU0NNUF9TWVMocmVjdm1zZyksIFNDTVBfU1lTKHNlbmRtbXNnKSwKLSAgICAgU0NNUF9TWVMoc2VuZG1zZyksIFNDTVBfU1lTKHNlbmR0byksCisgICAgIFNDTVBfU1lTKHJlY3Zmcm9tKSwgU0NNUF9TWVMocmVjdm1tc2cpLCBTQ01QX1NZUyhyZWN2bXNnKSwKKyAgICAgU0NNUF9TWVMoc2VuZG1tc2cpLCBTQ01QX1NZUyhzZW5kbXNnKSwgU0NNUF9TWVMoc2VuZHRvKSwKIC0gICAgLyogVE9ETzogY2hlY2sgc29ja2V0Y2FsbCBhcmd1bWVudHMgKi8KIC0gICAgU0NNUF9TWVMoc29ja2V0Y2FsbCksCiAgICAgIC8qIEdlbmVyYWwgSS9PICovCi0gICAgIFNDTVBfU1lTKF9uZXdzZWxlY3QpLCBTQ01QX1NZUyhjbG9zZSksIFNDTVBfU1lTKG9wZW4pLCBTQ01QX1NZUyhwaXBlKSwKKyAgICAgU0NNUF9TWVMoX25ld3NlbGVjdCksIFNDTVBfU1lTKGNsb3NlKSwgU0NNUF9TWVMob3BlbiksIFNDTVBfU1lTKG9wZW5hdCksIFNDTVBfU1lTKHBpcGUpLAogLSAgICBTQ01QX1NZUyhwb2xsKSwgU0NNUF9TWVMocmVhZCksIFNDTVBfU1lTKGZ1dGV4KSwgU0NNUF9TWVMoc2VsZWN0KSwKICsgICAgU0NNUF9TWVMocG9sbCksIFNDTVBfU1lTKHJlYWQpLCBTQ01QX1NZUyhmdXRleCksCiAgICAgIFNDTVBfU1lTKHNldF9yb2J1c3RfbGlzdCksIFNDTVBfU1lTKHdyaXRlKSwKICAgICAgLyogTWlzY2VsbGFuZW91cyAqLwotICAgICBTQ01QX1NZUyh1bmFtZSksCisgICAgIFNDTVBfU1lTKGdldHJhbmRvbSksIFNDTVBfU1lTKHN5c2luZm8pLCBTQ01QX1NZUyh1bmFtZSksCiArICAgIC8qIG5vdCBhbHdheXMgYXZhaWxhYmxlICovCiArI2lmICEgZGVmaW5lZChfX0FSTV9FQUJJX18pCiArICAgIFNDTVBfU1lTKHRpbWUpLApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2Nocm9ueS9jaHJvbnlfMi40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2Nocm9ueS9jaHJvbnlfMi40LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTQzMWY0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9jaHJvbnkvY2hyb255XzIuNC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi1TVU1NQVJZID0gIlZlcnNhdGlsZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTmV0d29yayBUaW1lIFByb3RvY29sIgotREVTQ1JJUFRJT04gPSAiQ2hyb255IGNhbiBzeW5jaHJvbml6ZSB0aGUgc3lzdGVtIGNsb2NrIHdpdGggTlRQIFwKLXNlcnZlcnMsIHJlZmVyZW5jZSBjbG9ja3MgKGUuZy4gR1BTIHJlY2VpdmVyKSwgYW5kIG1hbnVhbCBpbnB1dCB1c2luZyBcCi13cmlzdHdhdGNoIGFuZCBrZXlib2FyZC4gSXQgY2FuIGFsc28gb3BlcmF0ZSBhcyBhbiBOVFB2NCAoUkZDIDU5MDUpIFwKLXNlcnZlciBhbmQgcGVlciB0byBwcm92aWRlIGEgdGltZSBzZXJ2aWNlIHRvIG90aGVyIGNvbXB1dGVycyBpbiB0aGUgXAotbmV0d29yay4gXAotXAotSXQgaXMgZGVzaWduZWQgdG8gcGVyZm9ybSB3ZWxsIGluIGEgd2lkZSByYW5nZSBvZiBjb25kaXRpb25zLCBcCi1pbmNsdWRpbmcgaW50ZXJtaXR0ZW50IG5ldHdvcmsgY29ubmVjdGlvbnMsIGhlYXZpbHkgY29uZ2VzdGVkIFwKLW5ldHdvcmtzLCBjaGFuZ2luZyB0ZW1wZXJhdHVyZXMgKG9yZGluYXJ5IGNvbXB1dGVyIGNsb2NrcyBhcmUgXAotc2Vuc2l0aXZlIHRvIHRlbXBlcmF0dXJlKSwgYW5kIHN5c3RlbXMgdGhhdCBkbyBub3QgcnVuIGNvbnRpbnVvdXNseSwgb3IgXAotcnVuIG9uIGEgdmlydHVhbCBtYWNoaW5lLiBcCi1cCi1UeXBpY2FsIGFjY3VyYWN5IGJldHdlZW4gdHdvIG1hY2hpbmVzIG9uIGEgTEFOIGlzIGluIHRlbnMsIG9yIGEgZmV3IFwKLWh1bmRyZWRzLCBvZiBtaWNyb3NlY29uZHM7IG92ZXIgdGhlIEludGVybmV0LCBhY2N1cmFjeSBpcyB0eXBpY2FsbHkgXAotd2l0aGluIGEgZmV3IG1pbGxpc2Vjb25kcy4gV2l0aCBhIGdvb2QgaGFyZHdhcmUgcmVmZXJlbmNlIGNsb2NrIFwKLXN1Yi1taWNyb3NlY29uZCBhY2N1cmFjeSBpcyBwb3NzaWJsZS4gXAotXAotVHdvIHByb2dyYW1zIGFyZSBpbmNsdWRlZCBpbiBjaHJvbnk6IGNocm9ueWQgaXMgYSBkYWVtb24gdGhhdCBjYW4gYmUgXAotc3RhcnRlZCBhdCBib290IHRpbWUgYW5kIGNocm9ueWMgaXMgYSBjb21tYW5kLWxpbmUgaW50ZXJmYWNlIHByb2dyYW0gXAotd2hpY2ggY2FuIGJlIHVzZWQgdG8gbW9uaXRvciBjaHJvbnlkJ3MgcGVyZm9ybWFuY2UgYW5kIHRvIGNoYW5nZSBcCi12YXJpb3VzIG9wZXJhdGluZyBwYXJhbWV0ZXJzIHdoaWxzdCBpdCBpcyBydW5uaW5nLiBcCi1cCi1UaGlzIHJlY2lwZSBwcm9kdWNlcyB0d28gYmluYXJ5IHBhY2thZ2VzOiAnY2hyb255JyB3aGljaCBjb250YWlucyBjaHJvbnlkLCBcCi10aGUgY29uZmlndXJhdGlvbiBmaWxlIGFuZCB0aGUgaW5pdCBzY3JpcHQsIGFuZCAnY2hyb255Yycgd2hpY2ggY29udGFpbnMgXAotdGhlIGNsaWVudCBwcm9ncmFtIG9ubHkuIgotCi1IT01FUEFHRSA9ICJodHRwOi8vY2hyb255LnR1eGZhbWlseS5vcmcvIgotU0VDVElPTiA9ICJuZXQiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9kb3dubG9hZC50dXhmYW1pbHkub3JnL2Nocm9ueS9jaHJvbnktJHtQVn0udGFyLmd6IFwKLSAgICBmaWxlOi8vY2hyb255LmNvbmYgXAotICAgIGZpbGU6Ly9jaHJvbnlkIFwKLSAgICBmaWxlOi8vYXJtX2VhYmkucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gImQwNTk4YWE4YTliZThmYWNjZWY5Mzg2ZjZmYzBkNWYyIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjhkMDRlN2NkYTIzMzMyODljMjEwNGI3MzFkMzljM2MxZGI5NDgxNmU0M2JhZTM1ZDdlZTRlN2FlOGFmNjM5MWYiCi0KLURFUEVORFMgPSAicHBzLXRvb2xzIgotCi0jIE5vdGU6IERlc3BpdGUgYmVpbmcgYnVpbHQgdmlhICcuL2NvbmZpZ3VyZTsgbWFrZTsgbWFrZSBpbnN0YWxsJywKLSMgICAgICAgY2hyb255IGRvZXMgbm90IHVzZSBHTlUgQXV0b3Rvb2xzLgotaW5oZXJpdCB1cGRhdGUtcmMuZCBzeXN0ZW1kCi0KLSMgQ29uZmlndXJhdGlvbiBvcHRpb25zOgotIyAtIEZvciBjb21tYW5kIGxpbmUgZWRpdGluZyBzdXBwb3J0IGluIGNocm9ueWMsIHlvdSBtYXkgc3BlY2lmeSBlaXRoZXIKLSMgICAnZWRpdGxpbmUnIG9yICdyZWFkbGluZScgYnV0IG5vdCBib3RoLiAgZWRpdGxpbmUgaXMgc21hbGxlciwgYnV0Ci0jICAgbWFueSBzeXN0ZW1zIGFscmVhZHkgaGF2ZSByZWFkbGluZSBmb3Igb3RoZXIgcHVycG9zZXMgc28geW91IG1pZ2h0IHdhbnQKLSMgICB0byBjaG9vc2UgdGhhdCBpbnN0ZWFkLiAgSG93ZXZlciwgYmV3YXJlIGxpY2Vuc2UgaW5jb21wYXRpYmlsaXR5Ci0jICAgc2luY2UgY2hyb255IGlzIEdQTHYyIGFuZCByZWFkbGluZSB2ZXJzaW9ucyBhZnRlciA2LjAgYXJlIEdQTHYzKy4KLSMgICBZb3UgY2FuIG9mIGNvdXJzZSBjaG9vc2UgbmVpdGhlciwgYnV0IGlmIHlvdSdyZSB0aGF0IHRpZ2h0IG9uIHNwYWNlCi0jICAgY29uc2lkZXIgZHJvcHBpbmcgY2hyb255YyBlbnRpcmVseSAoeW91IGNhbiB1c2UgaXQgcmVtb3RlbHkgd2l0aAotIyAgIGFwcHJvcHJpYXRlIGNocm9ueS5jb25mIG9wdGlvbnMpLgotIyAtIFNlY3VyaXR5LXJlbGF0ZWQ6Ci0jICAgLSAnc2VjaGFzaCcgaXMgb21pdHRlZCBieSBkZWZhdWx0IGJlY2F1c2UgaXQgcHVsbHMgaW4gbnNzIHdoaWNoIGlzIGh1Z2UuCi0jICAgLSAncHJpdmRyb3AnIGFsbG93cyBjaHJvbnlkIHRvIHJ1biBhcyBub24tcm9vdDsgd291bGQgbmVlZCBjaGFuZ2VzIHRvCi0jICAgICBjaHJvbnkuY29uZiBhbmQgaW5pdCBzY3JpcHQuCi0jICAgLSAnc2NmaWx0ZXInIGVuYWJsZXMgc3VwcG9ydCBmb3Igc3lzdGVtIGNhbGwgZmlsdGVyaW5nLCBidXQgcmVxdWlyZXMgdGhlCi0jICAgICBrZXJuZWwgdG8gaGF2ZSBDT05GSUdfU0VDQ09NUCBlbmFibGVkLgotUEFDS0FHRUNPTkZJRyA/Pz0gImVkaXRsaW5lIFwKLSAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdpcHY2JywgZCl9IFwKLSIKLVBBQ0tBR0VDT05GSUdbcmVhZGxpbmVdID0gIi0td2l0aG91dC1lZGl0bGluZSwtLXdpdGhvdXQtcmVhZGxpbmUscmVhZGxpbmUiCi1QQUNLQUdFQ09ORklHW2VkaXRsaW5lXSA9ICIsLS13aXRob3V0LWVkaXRsaW5lLGxpYmVkaXQiCi1QQUNLQUdFQ09ORklHW3NlY2hhc2hdID0gIi0td2l0aG91dC10b21jcnlwdCwtLWRpc2FibGUtc2VjaGFzaCxuc3MiCi1QQUNLQUdFQ09ORklHW3ByaXZkcm9wXSA9ICIsLS1kaXNhYmxlLXByaXZkcm9wLGxpYmNhcCIKLVBBQ0tBR0VDT05GSUdbc2NmaWx0ZXJdID0gIi0tZW5hYmxlLXNjZmlsdGVyLC0td2l0aG91dC1zZWNjb21wLGxpYnNlY2NvbXAiCi1QQUNLQUdFQ09ORklHW2lwdjZdID0gIiwtLWRpc2FibGUtaXB2NiwiCi1QQUNLQUdFQ09ORklHW25zc10gPSAiLS13aXRoLW5zcywtLXdpdGhvdXQtbnNzLG5zcyIKLVBBQ0tBR0VDT05GSUdbbGliY2FwXSA9ICItLXdpdGgtbGliY2FwLC0td2l0aG91dC1saWJjYXAsbGliY2FwIgotCi0jIC0tZGlzYWJsZS1zdGF0aWMgaXNuJ3Qgc3VwcG9ydGVkIGJ5IGNocm9ueSdzIGNvbmZpZ3VyZSBzY3JpcHQuCi1ESVNBQkxFX1NUQVRJQyA9ICIiCi0KLWRvX2NvbmZpZ3VyZSgpIHsKLSAgICAuL2NvbmZpZ3VyZSAtLXN5c2NvbmZkaXI9JHtzeXNjb25mZGlyfSAtLWJpbmRpcj0ke2JpbmRpcn0gLS1zYmluZGlyPSR7c2JpbmRpcn0gXAotICAgICAgICAgICAgICAgIC0tbG9jYWxzdGF0ZWRpcj0ke2xvY2Fsc3RhdGVkaXJ9IC0tZGF0YXJvb3RkaXI9JHtkYXRhZGlyfSBcCi0gICAgICAgICAgICAgICAgJHtQQUNLQUdFQ09ORklHX0NPTkZBUkdTfQotfQotCi1kb19pbnN0YWxsKCkgewotICAgICMgQmluYXJpZXMKLSAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0KLSAgICBpbnN0YWxsIC1tIDA3NTUgJHtTfS9jaHJvbnljICR7RH0ke2JpbmRpcn0KLSAgICBpbnN0YWxsIC1kICR7RH0ke3NiaW5kaXJ9Ci0gICAgaW5zdGFsbCAtbSAwNzU1ICR7U30vY2hyb255ZCAke0R9JHtzYmluZGlyfQotCi0gICAgIyBDb25maWcgZmlsZQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0KLSAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L2Nocm9ueS5jb25mICR7RH0ke3N5c2NvbmZkaXJ9Ci0KLSAgICAjIFN5c3RlbSBWIGluaXQgc2NyaXB0Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKLSAgICBpbnN0YWxsIC1tIDc1NSAke1dPUktESVJ9L2Nocm9ueWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCi0KLSAgICAjIHN5c3RlbWQgdW5pdCBjb25maWd1cmF0aW9uIGZpbGUKLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vZXhhbXBsZXMvY2hyb255ZC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLwotCi0gICAgIyBWYXJpYWJsZSBkYXRhIChmb3IgZHJpZnQgYW5kL29yIHJ0YyBmaWxlKQotICAgIGluc3RhbGwgLWQgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbGliL2Nocm9ueQotCi0gICAgIyBMb2cgZmlsZXMKLSAgICBpbnN0YWxsIC1kICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xvZy9jaHJvbnkKLQotICAgICMgRml4IGhhcmQtY29kZWQgcGF0aHMgaW4gY29uZmlnIGZpbGVzIGFuZCBpbml0IHNjcmlwdHMKLSAgICBzZWQgLWkgLWUgJ3MhL3Zhci8hJHtsb2NhbHN0YXRlZGlyfS8hZycgLWUgJ3MhL2V0Yy8hJHtzeXNjb25mZGlyfS8hZycgXAotICAgICAgICAgICAtZSAncyEvdXNyL3NiaW4vISR7c2JpbmRpcn0vIWcnIC1lICdzIS91c3IvYmluLyEke2JpbmRpcn0vIWcnIFwKLSAgICAgICAgICAgJHtEfSR7c3lzY29uZmRpcn0vY2hyb255LmNvbmYgXAotICAgICAgICAgICAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvY2hyb255ZCBcCi0gICAgICAgICAgICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2Nocm9ueWQuc2VydmljZQotICAgIHNlZCAtaSAncyFeUEFUSD0uKiFQQVRIPSR7YmFzZV9zYmluZGlyfToke2Jhc2VfYmluZGlyfToke3NiaW5kaXJ9OiR7YmluZGlyfSEnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9jaHJvbnlkCi0gICAgc2VkIC1pICdzIV5FbnZpcm9ubWVudEZpbGU9LiohRW52aXJvbm1lbnRGaWxlPS0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvY2hyb255ZCEnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2Nocm9ueWQuc2VydmljZQotfQotCi1GSUxFU18ke1BOfSA9ICIke3NiaW5kaXJ9L2Nocm9ueWQgJHtzeXNjb25mZGlyfSAke2xvY2Fsc3RhdGVkaXJ9IgotQ09ORkZJTEVTXyR7UE59ID0gIiR7c3lzY29uZmRpcn0vY2hyb255LmNvbmYiCi1JTklUU0NSSVBUX05BTUUgPSAiY2hyb255ZCIKLUlOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIgotU1lTVEVNRF9QQUNLQUdFUyA9ICIke1BOfSIKLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJjaHJvbnlkLnNlcnZpY2UiCi0KLSMgSXQncyBwcm9iYWJseSBhIGJhZCBpZGVhIHRvIHJ1biBjaHJvbnkgYW5kIGFub3RoZXIgdGltZSBkYWVtb24gb24KLSMgdGhlIHNhbWUgc3lzdGVtLiAgc3lzdGVtZCBpbmNsdWRlcyB0aGUgU05UUCBjbGllbnQgJ3RpbWVzeW5jZCcsIHdoaWNoCi0jIHdpbGwgYmUgZGlzYWJsZWQgYnkgY2hyb255ZC5zZXJ2aWNlLCBob3dldmVyIGl0IHdpbGwgcmVtYWluIG9uIHRoZSByb290ZnMKLSMgd2FzdGluZyAxNTAga0IgdW5sZXNzIHlvdSBwdXQgJ1BBQ0tBR0VDT05GSUdfcmVtb3ZlX3BuLXN5c3RlbWQgPSAidGltZXN5bmNkIicKLSMgaW4gYSBjb25mIGZpbGUgb3IgYmJhcHBlbmQgc29tZXdoZXJlLgotUkNPTkZMSUNUU18ke1BOfSA9ICJudHAgbnRpbWVkIgotCi0jIFNlcGFyYXRlIHRoZSBjbGllbnQgcHJvZ3JhbSBpbnRvIGl0cyBvd24gcGFja2FnZQotUEFDS0FHRVMgPSsgImNocm9ueWMiCi1GSUxFU19jaHJvbnljID0gIiR7YmluZGlyfS9jaHJvbnljIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2Nocm9ueS9jaHJvbnlfMy4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2Nocm9ueS9jaHJvbnlfMy4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiOTBhMzUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2hyb255L2Nocm9ueV8zLjIuYmIKQEAgLTAsMCArMSwxMzQgQEAKK1NVTU1BUlkgPSAiVmVyc2F0aWxlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBOZXR3b3JrIFRpbWUgUHJvdG9jb2wiCitERVNDUklQVElPTiA9ICJDaHJvbnkgY2FuIHN5bmNocm9uaXplIHRoZSBzeXN0ZW0gY2xvY2sgd2l0aCBOVFAgXAorc2VydmVycywgcmVmZXJlbmNlIGNsb2NrcyAoZS5nLiBHUFMgcmVjZWl2ZXIpLCBhbmQgbWFudWFsIGlucHV0IHVzaW5nIFwKK3dyaXN0d2F0Y2ggYW5kIGtleWJvYXJkLiBJdCBjYW4gYWxzbyBvcGVyYXRlIGFzIGFuIE5UUHY0IChSRkMgNTkwNSkgXAorc2VydmVyIGFuZCBwZWVyIHRvIHByb3ZpZGUgYSB0aW1lIHNlcnZpY2UgdG8gb3RoZXIgY29tcHV0ZXJzIGluIHRoZSBcCituZXR3b3JrLiBcCitcCitJdCBpcyBkZXNpZ25lZCB0byBwZXJmb3JtIHdlbGwgaW4gYSB3aWRlIHJhbmdlIG9mIGNvbmRpdGlvbnMsIFwKK2luY2x1ZGluZyBpbnRlcm1pdHRlbnQgbmV0d29yayBjb25uZWN0aW9ucywgaGVhdmlseSBjb25nZXN0ZWQgXAorbmV0d29ya3MsIGNoYW5naW5nIHRlbXBlcmF0dXJlcyAob3JkaW5hcnkgY29tcHV0ZXIgY2xvY2tzIGFyZSBcCitzZW5zaXRpdmUgdG8gdGVtcGVyYXR1cmUpLCBhbmQgc3lzdGVtcyB0aGF0IGRvIG5vdCBydW4gY29udGludW91c2x5LCBvciBcCitydW4gb24gYSB2aXJ0dWFsIG1hY2hpbmUuIFwKK1wKK1R5cGljYWwgYWNjdXJhY3kgYmV0d2VlbiB0d28gbWFjaGluZXMgb24gYSBMQU4gaXMgaW4gdGVucywgb3IgYSBmZXcgXAoraHVuZHJlZHMsIG9mIG1pY3Jvc2Vjb25kczsgb3ZlciB0aGUgSW50ZXJuZXQsIGFjY3VyYWN5IGlzIHR5cGljYWxseSBcCit3aXRoaW4gYSBmZXcgbWlsbGlzZWNvbmRzLiBXaXRoIGEgZ29vZCBoYXJkd2FyZSByZWZlcmVuY2UgY2xvY2sgXAorc3ViLW1pY3Jvc2Vjb25kIGFjY3VyYWN5IGlzIHBvc3NpYmxlLiBcCitcCitUd28gcHJvZ3JhbXMgYXJlIGluY2x1ZGVkIGluIGNocm9ueTogY2hyb255ZCBpcyBhIGRhZW1vbiB0aGF0IGNhbiBiZSBcCitzdGFydGVkIGF0IGJvb3QgdGltZSBhbmQgY2hyb255YyBpcyBhIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UgcHJvZ3JhbSBcCit3aGljaCBjYW4gYmUgdXNlZCB0byBtb25pdG9yIGNocm9ueWQncyBwZXJmb3JtYW5jZSBhbmQgdG8gY2hhbmdlIFwKK3ZhcmlvdXMgb3BlcmF0aW5nIHBhcmFtZXRlcnMgd2hpbHN0IGl0IGlzIHJ1bm5pbmcuIFwKK1wKK1RoaXMgcmVjaXBlIHByb2R1Y2VzIHR3byBiaW5hcnkgcGFja2FnZXM6ICdjaHJvbnknIHdoaWNoIGNvbnRhaW5zIGNocm9ueWQsIFwKK3RoZSBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHRoZSBpbml0IHNjcmlwdCwgYW5kICdjaHJvbnljJyB3aGljaCBjb250YWlucyBcCit0aGUgY2xpZW50IHByb2dyYW0gb25seS4iCisKK0hPTUVQQUdFID0gImh0dHBzOi8vY2hyb255LnR1eGZhbWlseS5vcmcvIgorU0VDVElPTiA9ICJuZXQiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCisKK1NSQ19VUkkgPSAiaHR0cHM6Ly9kb3dubG9hZC50dXhmYW1pbHkub3JnL2Nocm9ueS9jaHJvbnktJHtQVn0udGFyLmd6IFwKKyAgICBmaWxlOi8vY2hyb255LmNvbmYgXAorICAgIGZpbGU6Ly9jaHJvbnlkIFwKKyAgICBmaWxlOi8vYXJtX2VhYmkucGF0Y2ggXAorIgorU1JDX1VSSVttZDVzdW1dID0gImY0YzRlYjBkYzkyZjM1ZWU0YmI3ZDNkY2Q4MDI5ZWNiIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjMyOWY2NzE4ZGQ4YzNlY2UzZWVlNzhiZTFmNDgyMWNiYmViNjI2MDhlN2QyM2YyNWRhMjkzY2ZhNDMzYzQxMTYiCisKK0RFUEVORFMgPSAicHBzLXRvb2xzIgorCisjIE5vdGU6IERlc3BpdGUgYmVpbmcgYnVpbHQgdmlhICcuL2NvbmZpZ3VyZTsgbWFrZTsgbWFrZSBpbnN0YWxsJywKKyMgICAgICAgY2hyb255IGRvZXMgbm90IHVzZSBHTlUgQXV0b3Rvb2xzLgoraW5oZXJpdCB1cGRhdGUtcmMuZCBzeXN0ZW1kCisKKyMgQ29uZmlndXJhdGlvbiBvcHRpb25zOgorIyAtIEZvciBjb21tYW5kIGxpbmUgZWRpdGluZyBzdXBwb3J0IGluIGNocm9ueWMsIHlvdSBtYXkgc3BlY2lmeSBlaXRoZXIKKyMgICAnZWRpdGxpbmUnIG9yICdyZWFkbGluZScgYnV0IG5vdCBib3RoLiAgZWRpdGxpbmUgaXMgc21hbGxlciwgYnV0CisjICAgbWFueSBzeXN0ZW1zIGFscmVhZHkgaGF2ZSByZWFkbGluZSBmb3Igb3RoZXIgcHVycG9zZXMgc28geW91IG1pZ2h0IHdhbnQKKyMgICB0byBjaG9vc2UgdGhhdCBpbnN0ZWFkLiAgSG93ZXZlciwgYmV3YXJlIGxpY2Vuc2UgaW5jb21wYXRpYmlsaXR5CisjICAgc2luY2UgY2hyb255IGlzIEdQTHYyIGFuZCByZWFkbGluZSB2ZXJzaW9ucyBhZnRlciA2LjAgYXJlIEdQTHYzKy4KKyMgICBZb3UgY2FuIG9mIGNvdXJzZSBjaG9vc2UgbmVpdGhlciwgYnV0IGlmIHlvdSdyZSB0aGF0IHRpZ2h0IG9uIHNwYWNlCisjICAgY29uc2lkZXIgZHJvcHBpbmcgY2hyb255YyBlbnRpcmVseSAoeW91IGNhbiB1c2UgaXQgcmVtb3RlbHkgd2l0aAorIyAgIGFwcHJvcHJpYXRlIGNocm9ueS5jb25mIG9wdGlvbnMpLgorIyAtIFNlY3VyaXR5LXJlbGF0ZWQ6CisjICAgLSAnc2VjaGFzaCcgaXMgb21pdHRlZCBieSBkZWZhdWx0IGJlY2F1c2UgaXQgcHVsbHMgaW4gbnNzIHdoaWNoIGlzIGh1Z2UuCisjICAgLSAncHJpdmRyb3AnIGFsbG93cyBjaHJvbnlkIHRvIHJ1biBhcyBub24tcm9vdDsgd291bGQgbmVlZCBjaGFuZ2VzIHRvCisjICAgICBjaHJvbnkuY29uZiBhbmQgaW5pdCBzY3JpcHQuCisjICAgLSAnc2NmaWx0ZXInIGVuYWJsZXMgc3VwcG9ydCBmb3Igc3lzdGVtIGNhbGwgZmlsdGVyaW5nLCBidXQgcmVxdWlyZXMgdGhlCisjICAgICBrZXJuZWwgdG8gaGF2ZSBDT05GSUdfU0VDQ09NUCBlbmFibGVkLgorUEFDS0FHRUNPTkZJRyA/Pz0gImVkaXRsaW5lIFwKKyAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdpcHY2JywgZCl9IFwKKyIKK1BBQ0tBR0VDT05GSUdbcmVhZGxpbmVdID0gIi0td2l0aG91dC1lZGl0bGluZSwtLXdpdGhvdXQtcmVhZGxpbmUscmVhZGxpbmUiCitQQUNLQUdFQ09ORklHW2VkaXRsaW5lXSA9ICIsLS13aXRob3V0LWVkaXRsaW5lLGxpYmVkaXQiCitQQUNLQUdFQ09ORklHW3NlY2hhc2hdID0gIi0td2l0aG91dC10b21jcnlwdCwtLWRpc2FibGUtc2VjaGFzaCxuc3MiCitQQUNLQUdFQ09ORklHW3ByaXZkcm9wXSA9ICIsLS1kaXNhYmxlLXByaXZkcm9wLGxpYmNhcCIKK1BBQ0tBR0VDT05GSUdbc2NmaWx0ZXJdID0gIi0tZW5hYmxlLXNjZmlsdGVyLC0td2l0aG91dC1zZWNjb21wLGxpYnNlY2NvbXAiCitQQUNLQUdFQ09ORklHW2lwdjZdID0gIiwtLWRpc2FibGUtaXB2NiwiCitQQUNLQUdFQ09ORklHW25zc10gPSAiLS13aXRoLW5zcywtLXdpdGhvdXQtbnNzLG5zcyIKK1BBQ0tBR0VDT05GSUdbbGliY2FwXSA9ICItLXdpdGgtbGliY2FwLC0td2l0aG91dC1saWJjYXAsbGliY2FwIgorCisjIC0tZGlzYWJsZS1zdGF0aWMgaXNuJ3Qgc3VwcG9ydGVkIGJ5IGNocm9ueSdzIGNvbmZpZ3VyZSBzY3JpcHQuCitESVNBQkxFX1NUQVRJQyA9ICIiCisKK2RvX2NvbmZpZ3VyZSgpIHsKKyAgICAuL2NvbmZpZ3VyZSAtLXN5c2NvbmZkaXI9JHtzeXNjb25mZGlyfSAtLWJpbmRpcj0ke2JpbmRpcn0gLS1zYmluZGlyPSR7c2JpbmRpcn0gXAorICAgICAgICAgICAgICAgIC0tbG9jYWxzdGF0ZWRpcj0ke2xvY2Fsc3RhdGVkaXJ9IC0tZGF0YXJvb3RkaXI9JHtkYXRhZGlyfSBcCisgICAgICAgICAgICAgICAgJHtQQUNLQUdFQ09ORklHX0NPTkZBUkdTfQorfQorCitkb19pbnN0YWxsKCkgeworICAgICMgQmluYXJpZXMKKyAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0KKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtTfS9jaHJvbnljICR7RH0ke2JpbmRpcn0KKyAgICBpbnN0YWxsIC1kICR7RH0ke3NiaW5kaXJ9CisgICAgaW5zdGFsbCAtbSAwNzU1ICR7U30vY2hyb255ZCAke0R9JHtzYmluZGlyfQorCisgICAgIyBDb25maWcgZmlsZQorICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0KKyAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L2Nocm9ueS5jb25mICR7RH0ke3N5c2NvbmZkaXJ9CisKKyAgICAjIFN5c3RlbSBWIGluaXQgc2NyaXB0CisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICBpbnN0YWxsIC1tIDc1NSAke1dPUktESVJ9L2Nocm9ueWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisKKyAgICAjIHN5c3RlbWQgdW5pdCBjb25maWd1cmF0aW9uIGZpbGUKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vZXhhbXBsZXMvY2hyb255ZC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLworCisgICAgIyBWYXJpYWJsZSBkYXRhIChmb3IgZHJpZnQgYW5kL29yIHJ0YyBmaWxlKQorICAgIGluc3RhbGwgLWQgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbGliL2Nocm9ueQorCisgICAgIyBMb2cgZmlsZXMKKyAgICBpbnN0YWxsIC1kICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L2xvZy9jaHJvbnkKKworICAgICMgRml4IGhhcmQtY29kZWQgcGF0aHMgaW4gY29uZmlnIGZpbGVzIGFuZCBpbml0IHNjcmlwdHMKKyAgICBzZWQgLWkgLWUgJ3MhL3Zhci8hJHtsb2NhbHN0YXRlZGlyfS8hZycgLWUgJ3MhL2V0Yy8hJHtzeXNjb25mZGlyfS8hZycgXAorICAgICAgICAgICAtZSAncyEvdXNyL3NiaW4vISR7c2JpbmRpcn0vIWcnIC1lICdzIS91c3IvYmluLyEke2JpbmRpcn0vIWcnIFwKKyAgICAgICAgICAgJHtEfSR7c3lzY29uZmRpcn0vY2hyb255LmNvbmYgXAorICAgICAgICAgICAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvY2hyb255ZCBcCisgICAgICAgICAgICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2Nocm9ueWQuc2VydmljZQorICAgIHNlZCAtaSAncyFeUEFUSD0uKiFQQVRIPSR7YmFzZV9zYmluZGlyfToke2Jhc2VfYmluZGlyfToke3NiaW5kaXJ9OiR7YmluZGlyfSEnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9jaHJvbnlkCisgICAgc2VkIC1pICdzIV5FbnZpcm9ubWVudEZpbGU9LiohRW52aXJvbm1lbnRGaWxlPS0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvY2hyb255ZCEnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2Nocm9ueWQuc2VydmljZQorfQorCitGSUxFU18ke1BOfSA9ICIke3NiaW5kaXJ9L2Nocm9ueWQgJHtzeXNjb25mZGlyfSAke2xvY2Fsc3RhdGVkaXJ9IgorQ09ORkZJTEVTXyR7UE59ID0gIiR7c3lzY29uZmRpcn0vY2hyb255LmNvbmYiCitJTklUU0NSSVBUX05BTUUgPSAiY2hyb255ZCIKK0lOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIgorU1lTVEVNRF9QQUNLQUdFUyA9ICIke1BOfSIKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJjaHJvbnlkLnNlcnZpY2UiCisKKyMgSXQncyBwcm9iYWJseSBhIGJhZCBpZGVhIHRvIHJ1biBjaHJvbnkgYW5kIGFub3RoZXIgdGltZSBkYWVtb24gb24KKyMgdGhlIHNhbWUgc3lzdGVtLiAgc3lzdGVtZCBpbmNsdWRlcyB0aGUgU05UUCBjbGllbnQgJ3RpbWVzeW5jZCcsIHdoaWNoCisjIHdpbGwgYmUgZGlzYWJsZWQgYnkgY2hyb255ZC5zZXJ2aWNlLCBob3dldmVyIGl0IHdpbGwgcmVtYWluIG9uIHRoZSByb290ZnMKKyMgd2FzdGluZyAxNTAga0IgdW5sZXNzIHlvdSBwdXQgJ1BBQ0tBR0VDT05GSUdfcmVtb3ZlX3BuLXN5c3RlbWQgPSAidGltZXN5bmNkIicKKyMgaW4gYSBjb25mIGZpbGUgb3IgYmJhcHBlbmQgc29tZXdoZXJlLgorUkNPTkZMSUNUU18ke1BOfSA9ICJudHAgbnRpbWVkIgorCisjIFNlcGFyYXRlIHRoZSBjbGllbnQgcHJvZ3JhbSBpbnRvIGl0cyBvd24gcGFja2FnZQorUEFDS0FHRVMgPSsgImNocm9ueWMiCitGSUxFU19jaHJvbnljID0gIiR7YmluZGlyfS9jaHJvbnljIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2NpZnMvY2lmcy11dGlsc19naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2lmcy9jaWZzLXV0aWxzX2dpdC5iYgppbmRleCAzY2E1Yjc4Li4xOThlM2VmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2lmcy9jaWZzLXV0aWxzX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2lmcy9jaWZzLXV0aWxzX2dpdC5iYgpAQCAtNyw3ICs3LDkgQEAKIFBWID0gIjYuNyIKIAogU1JDUkVWID0gIjgxMDFhMDc4NzFmMTg1YzcwNDRmYTJjYTIyMWIyODJhYjQ2MDdjOGIiCi1TUkNfVVJJID0gImdpdDovL2dpdC5zYW1iYS5vcmcvY2lmcy11dGlscy5naXQiCitTUkNfVVJJID0gImdpdDovL2dpdC5zYW1iYS5vcmcvY2lmcy11dGlscy5naXQgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1tb3VudC5jaWZzLVJlbW92ZS1kYXRhX2Jsb2IuaC1pbmNsdWRlLnBhdGNoIFwKKyAgICAgICAgICAiCiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiBERVBFTkRTICs9ICJsaWJ0YWxsb2MiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2lmcy9maWxlcy8wMDAxLW1vdW50LmNpZnMtUmVtb3ZlLWRhdGFfYmxvYi5oLWluY2x1ZGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY2lmcy9maWxlcy8wMDAxLW1vdW50LmNpZnMtUmVtb3ZlLWRhdGFfYmxvYi5oLWluY2x1ZGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdmMmE1NwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9jaWZzL2ZpbGVzLzAwMDEtbW91bnQuY2lmcy1SZW1vdmUtZGF0YV9ibG9iLmgtaW5jbHVkZS5wYXRjaApAQCAtMCwwICsxLDMyIEBACitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CitTaWduZWQtb2ZmLWJ5OiBTLiBMb2Nrd29vZC1DaGlsZHMgPHNqbEB2Y3RsYWJzLmNvbT4KKworRnJvbSAyNzJkNTIzYTU3YTRlODc5MWQ2MjVhNDc5MTI4NjEzYmU1ZTQwMWY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogVGhvbWFzIFdpdHQgPHB5cm9tYW5pYWNAZXhoZXJiby5vcmc+CitEYXRlOiBXZWQsIDE1IE1hciAyMDE3IDIwOjIwOjQ0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIG1vdW50LmNpZnM6IFJlbW92ZSBkYXRhX2Jsb2IuaCBpbmNsdWRlCisKK2RhdGFfYmxvYi5oIGluY2x1ZGVzIHRhbGxvYy5oIGZyb20gbGlidGFsbG9jLCBidXQgdGhhdCBpcyBvbmx5IG1hcmtlZCBhcworYSBkZXBlbmRlbmN5IGZvciBjaWZzLnVwY2FsbC4gTm8gc3ltYm9scyBmcm9tIHRoYXQgaGVhZGVyIGFyZSB1c2VkIGJ5CitjaWZzLm1vdW50LCBzbyByZW1vdmUgaXQgdG8gYXZvaWQgdGhlIGxpYnRhbGxvYyBkZXBlbmRlbmN5CisKK1NpZ25lZC1vZmYtYnk6IFRob21hcyBXaXR0IDxweXJvbWFuaWFjQGV4aGVyYm8ub3JnPgorLS0tCisgbW91bnQuY2lmcy5jIHwgMSAtCisgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL21vdW50LmNpZnMuYyBiL21vdW50LmNpZnMuYworaW5kZXggMTNiNzFlZi4uMjYxMmZlYiAxMDA2NDQKKy0tLSBhL21vdW50LmNpZnMuYworKysrIGIvbW91bnQuY2lmcy5jCitAQCAtNjEsNyArNjEsNiBAQAorICNpbmNsdWRlICJtb3VudC5oIgorICNpbmNsdWRlICJ1dGlsLmgiCisgI2luY2x1ZGUgInJlc29sdmVfaG9zdC5oIgorLSNpbmNsdWRlICJkYXRhX2Jsb2IuaCIKKyAKKyAjaWZuZGVmIE1TX01PVkUgCisgI2RlZmluZSBNU19NT1ZFIDgxOTIgCistLSAKKzEuOS40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9jaW0tc2NoZW1hL2NpbS1zY2hlbWEtZXhwZXJfMi4zOS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2NpbS1zY2hlbWEvY2ltLXNjaGVtYS1leHBlcl8yLjM5LjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNDkwOTYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2NpbS1zY2hlbWEvY2ltLXNjaGVtYS1leHBlcl8yLjM5LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1yZXF1aXJlIGNpbS1zY2hlbWEuaW5jCi0KLUxJQ0VOU0UgPSAiRE1URiIKLQotUkNPTkZMSUNUU18ke1BOfSA9ICJjaW0tc2NoZW1hLWZpbmFsIgotCi1TUkNfVVJJID0gImh0dHA6Ly9kbXRmLm9yZy9zaXRlcy9kZWZhdWx0L2ZpbGVzL2NpbS9jaW1fc2NoZW1hX3YyMzkwL2NpbV9zY2hlbWFfJHtQVn1FeHBlcmltZW50YWwtTU9Gcy56aXA7c3ViZGlyPSR7QlBOfS0ke1BWfSBcCi0gICAgZmlsZTovL0xJQ0VOU0UgXAotIgotU1JDX1VSSVttZDVzdW1dID0gImI4MmIzMWM2MDljNmJjYzY5NTIxODI5NDA5ZjU4Y2NjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImVkMjA5NmVmMWVhMjVkMTg5YTAyYmJjNjYwM2ZlZDdhNDgyOTdmMjk4N2YyNTQyNjU3NjNhNmVlY2I3ZmM4NzAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8ke1dPUktESVJ9L0xJQ0VOU0U7bWQ1PWVlY2M2ZjcxYTU2ZmYzY2FmMTdmMTViZjdhZWFjN2I0IgotCi1kb19pbnN0YWxsKCkgewotICAgIGluc3RhbGwgLWQgLW0gMDc1NSAke0R9JHtkYXRhZGlyfS9tb2YvY2ltdiR7UFZ9LwotICAgIGluc3RhbGwgLWQgLW0gMDc1NSAke0R9JHtkYXRhZGlyfS9kb2MvY2ltLXNjaGVtYS0ke1BWfQotICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vTElDRU5TRSAke0R9JHtkYXRhZGlyfS9kb2MvY2ltLXNjaGVtYS0ke1BWfQotCi0gICAgY3AgLVIgLS1uby1kZXJlZmVyZW5jZSAtLXByZXNlcnZlPW1vZGUsbGlua3MgLXYgJHtTfS8qICR7RH0ke2RhdGFkaXJ9L21vZi9jaW12JHtQVn0vCi0gICAgY2hvd24gLVIgcm9vdDpyb290ICR7RH0ke2RhdGFkaXJ9L21vZi9jaW12JHtQVn0KLSAgICBmb3IgaSBpbiBgZmluZCAke0R9JHtkYXRhZGlyfS9tb2YvY2ltdiR7UFZ9IC1uYW1lICIqLm1vZiJgOyBkbwotICAgICAgICBzZWQgLWkgLWUgJ3MvXHIvL2cnICRpCi0gICAgZG9uZQotICAgIGxuIC1zIGNpbXYke1BWfSAke0R9JHtkYXRhZGlyfS9tb2YvY2ltLWN1cnJlbnQKLSAgICBsbiAtcyBjaW1fc2NoZW1hXyR7UFZ9Lm1vZiAke0R9JHtkYXRhZGlyfS9tb2YvY2ltLWN1cnJlbnQvQ0lNX1NjaGVtYS5tb2YKLX0KLQotRklMRVNfJHtQTn0gPSAiJHtkYXRhZGlyfS9tb2YvKiAke2RhdGFkaXJ9L2RvYy8qIgotRklMRVNfJHtQTn0tZG9jID0gIiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9jaW0tc2NoZW1hL2NpbS1zY2hlbWEtZXhwZXJfMi41MC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2NpbS1zY2hlbWEvY2ltLXNjaGVtYS1leHBlcl8yLjUwLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTBlYTg4MgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9jaW0tc2NoZW1hL2NpbS1zY2hlbWEtZXhwZXJfMi41MC4wLmJiCkBAIC0wLDAgKzEsMjkgQEAKK3JlcXVpcmUgY2ltLXNjaGVtYS5pbmMKKworTElDRU5TRSA9ICJETVRGIgorCitSQ09ORkxJQ1RTXyR7UE59ID0gImNpbS1zY2hlbWEtZmluYWwiCisKK1NSQ19VUkkgPSAiaHR0cDovL2RtdGYub3JnL3NpdGVzL2RlZmF1bHQvZmlsZXMvY2ltL2NpbV9zY2hlbWFfdjI1MDAvY2ltX3NjaGVtYV8ke1BWfUV4cGVyaW1lbnRhbC1NT0ZzLnppcDtzdWJkaXI9JHtCUE59LSR7UFZ9IFwKKyAgICBmaWxlOi8vTElDRU5TRSBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiZWU0YWQ2NDQxYTJiNjVjYTYwYTNhYmM1M2UzZWM2MjkiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYTQ0ZDY3ODgxMzI1ZTI2N2VmNDZiNzJlYWJlMGM2OWY5MDQ3MGIxMDMzYjFjZTdjMjZkOWJhOTkwNzJhZGI1MCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLyR7V09SS0RJUn0vTElDRU5TRTttZDU9ZWVjYzZmNzFhNTZmZjNjYWYxN2YxNWJmN2FlYWM3YjQiCisKK2RvX2luc3RhbGwoKSB7CisgICAgaW5zdGFsbCAtZCAtbSAwNzU1ICR7RH0ke2RhdGFkaXJ9L21vZi9jaW12JHtQVn0vCisgICAgaW5zdGFsbCAtZCAtbSAwNzU1ICR7RH0ke2RhdGFkaXJ9L2RvYy9jaW0tc2NoZW1hLSR7UFZ9CisgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9MSUNFTlNFICR7RH0ke2RhdGFkaXJ9L2RvYy9jaW0tc2NoZW1hLSR7UFZ9CisKKyAgICBjcCAtUiAtLW5vLWRlcmVmZXJlbmNlIC0tcHJlc2VydmU9bW9kZSxsaW5rcyAtdiAke1N9LyogJHtEfSR7ZGF0YWRpcn0vbW9mL2NpbXYke1BWfS8KKyAgICBjaG93biAtUiByb290OnJvb3QgJHtEfSR7ZGF0YWRpcn0vbW9mL2NpbXYke1BWfQorICAgIGZvciBpIGluIGBmaW5kICR7RH0ke2RhdGFkaXJ9L21vZi9jaW12JHtQVn0gLW5hbWUgIioubW9mImA7IGRvCisgICAgICAgIHNlZCAtaSAtZSAncy9cci8vZycgJGkKKyAgICBkb25lCisgICAgbG4gLXMgY2ltdiR7UFZ9ICR7RH0ke2RhdGFkaXJ9L21vZi9jaW0tY3VycmVudAorICAgIGxuIC1zIGNpbV9zY2hlbWFfJHtQVn0ubW9mICR7RH0ke2RhdGFkaXJ9L21vZi9jaW0tY3VycmVudC9DSU1fU2NoZW1hLm1vZgorfQorCitGSUxFU18ke1BOfSA9ICIke2RhdGFkaXJ9L21vZi8qICR7ZGF0YWRpcn0vZG9jLyoiCitGSUxFU18ke1BOfS1kb2MgPSAiIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2N0ZGIvY3RkYi8wMi1saW5rLXJlcF9zbnByaW50Zi1mb3ItbHRkYnRvb2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY3RkYi9jdGRiLzAyLWxpbmstcmVwX3NucHJpbnRmLWZvci1sdGRidG9vbC5wYXRjaAppbmRleCAxZGQ5YjkzLi4xMjk0ZmU0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY3RkYi9jdGRiLzAyLWxpbmstcmVwX3NucHJpbnRmLWZvci1sdGRidG9vbC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvY3RkYi9jdGRiLzAyLWxpbmstcmVwX3NucHJpbnRmLWZvci1sdGRidG9vbC5wYXRjaApAQCAtMiwxNSArMiwxNiBAQAogCiBTaWduZWQtb2ZmLWJ5OiBCaWFuIE5haW1lbmcgPGJpYW5ubUBjbi5mdWppdHN1LmNvbT4KIAotZGlmZiAtTnVycCBjdGRiLTIuNS4xLm9yaWcvTWFrZWZpbGUuaW4gY3RkYi0yLjUuMS9NYWtlZmlsZS5pbgotLS0tIGN0ZGItMi41LjEub3JpZy9NYWtlZmlsZS5pbgkyMDE1LTA1LTA3IDE2OjQzOjM5LjI3NjAwMDIzNiArMDkwMAotKysrIGN0ZGItMi41LjEvTWFrZWZpbGUuaW4JMjAxNS0wNS0wNyAxNjo0NDowOS42MjcwMDAyMzcgKzA5MDAKLUBAIC0xNzAsNyArMTcwLDcgQEAgYmluL2N0ZGI6ICQoQ1REQl9DTElFTlRfT0JKKSB0b29scy9jdGRiLgorSW5kZXg6IGN0ZGItMi41LjYvTWFrZWZpbGUuaW4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBjdGRiLTIuNS42Lm9yaWcvTWFrZWZpbGUuaW4KKysrKyBjdGRiLTIuNS42L01ha2VmaWxlLmluCitAQCAtMTc2LDcgKzE3Niw3IEBAIGJpbi9jdGRiOiAkKENUREJfQ0xJRU5UX09CSikgdG9vbHMvY3RkYi4KICAJQGVjaG8gTGlua2luZyAkQAogIAkkKFdSQVBQRVIpICQoQ0MpICQoQ0ZMQUdTKSAtbyAkQCB0b29scy9jdGRiLm8gdG9vbHMvY3RkYl92YWN1dW0ubyAkKENUREJfQ0xJRU5UX09CSikgJChMSUJfRkxBR1MpCiAgCiAtYmluL2x0ZGJ0b29sOiB0b29scy9sdGRidG9vbC5vICQoVERCX09CSikKICtiaW4vbHRkYnRvb2w6IHRvb2xzL2x0ZGJ0b29sLm8gJChUREJfT0JKKSBsaWIvcmVwbGFjZS9zbnByaW50Zi5vCiAgCUBlY2hvIExpbmtpbmcgJEAKLSAJJChXUkFQUEVSKSAkKENDKSAkKENGTEFHUykgLW8gJEAgJCsgJChUREJfTElCUykgJChMSUJfRkxBR1MpCisgCSQoV1JBUFBFUikgJChDQykgJChDRkxBR1MpIC1vICRAICQrICQoTElCX0ZMQUdTKQogIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2RvdmVjb3QvZG92ZWNvdF8yLjIuMjkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZG92ZWNvdC9kb3ZlY290XzIuMi4yOS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY2MzQwOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZG92ZWNvdC9kb3ZlY290XzIuMi4yOS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLVNVTU1BUlkgPSAiRG92ZWNvdCBpcyBhbiBvcGVuIHNvdXJjZSBJTUFQIGFuZCBQT1AzIGVtYWlsIHNlcnZlciIKLUhPTUVQQUdFID0gImh0dHBzOi8vd3d3LmRvdmVjb3Qub3JnLyIKLURFU0NSSVBUSU9OID0gIkRvdmVjb3QgaXMgYW4gb3BlbiBzb3VyY2UgSU1BUCBhbmQgUE9QMyBlbWFpbCBzZXJ2ZXIgZm9yIExpbnV4L1VOSVgtbGlrZSBzeXN0ZW1zLCB3cml0dGVuIHdpdGggc2VjdXJpdHkgcHJpbWFyaWx5IGluIG1pbmQuIERvdmVjb3QgaXMgYW4gZXhjZWxsZW50IGNob2ljZSBmb3IgYm90aCBzbWFsbCBhbmQgbGFyZ2UgaW5zdGFsbGF0aW9ucy4gSXQncyBmYXN0LCBzaW1wbGUgdG8gc2V0IHVwLCByZXF1aXJlcyBubyBzcGVjaWFsIGFkbWluaXN0cmF0aW9uIGFuZCBpdCB1c2VzIHZlcnkgbGl0dGxlIG1lbW9yeS4iCi1TRUNUSU9OID0gIm1haWwiCi1MSUNFTlNFID0gIkxHUEx2Mi4xICYgTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YTk4MTM3OWJkMGYxYzM2MmY4ZDFkMjE1MTVlNWIzMGIiCi0KLVNSQ19VUkkgPSAiaHR0cDovL2RvdmVjb3Qub3JnL3JlbGVhc2VzLzIuMi9kb3ZlY290LSR7UFZ9LnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS5hYy1jb252ZXJ0LUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTkstc3RhdGUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vZG92ZWNvdC5zZXJ2aWNlIFwKLSAgICAgICAgICAgZmlsZTovL2RvdmVjb3Quc29ja2V0IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtZG92ZWFkbS1GaXgtcGFyYWxsZWwtYnVpbGQucGF0Y2ggXAotICAgICAgICAgICAiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJmZjk1NDg2YTVjNDMwMjVhMmMzZjVhNzEyZTc5NjJiOSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkOTM5ZWE5OTEyNmViOGE4YzY5NTUzOTBiNDIyYjZlMjdlYzBmYTQzYTNiNTliMmIzMjE4Y2I1YWQ2NzEzOWE2IgotCi1ERVBFTkRTID0gIm9wZW5zc2wgeHogemxpYiBiemlwMiBsaWJjYXAgaWN1IgotCi1ERVBFTkRTX2FwcGVuZF9saWJjLW11c2wgPSAiIGxpYnRpcnBjIgotQ0ZMQUdTX2FwcGVuZF9saWJjLW11c2wgPSAiIC1JJHtTVEFHSU5HX0lOQ0RJUn0vdGlycGMiCi1MREZMQUdTX2FwcGVuZF9saWJjLW11c2wgPSAiIC1sdGlycGMiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBzeXN0ZW1kIHVzZXJhZGQKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ2xkYXAgcGFtJywgZCl9IgotCi1QQUNLQUdFQ09ORklHW3BhbV0gPSAiLS13aXRoLXBhbSwtLXdpdGhvdXQtcGFtLGxpYnBhbSwiCi1QQUNLQUdFQ09ORklHW2xkYXBdID0gIi0td2l0aC1sZGFwPXBsdWdpbiwtLXdpdGhvdXQtbGRhcCxvcGVubGRhcCwiCi1QQUNLQUdFQ09ORklHW2x6NF0gPSAiLS13aXRoLWx6NCwtLXdpdGhvdXQtbHo0LGx6NCwiCi0KLSMgRnJvbSBuYXRpdmUgYnVpbGQgaW4gYXJtdjdhLWhmL2VnbGliYwotQ0FDSEVEX0NPTkZJR1VSRVZBUlMgKz0gImlfY3Zfc2lnbmVkX3NpemVfdD1ubyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgaV9jdl9nbXRpbWVfbWF4X3RpbWVfdD0zMiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgaV9jdl9zaWduZWRfdGltZV90PXllcyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgaV9jdl9tbWFwX3BsYXlzX3dpdGhfd3JpdGU9eWVzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpX2N2X2ZkX3Bhc3Npbmc9eWVzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpX2N2X2M5OV92c25wcmludGY9eWVzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBsaWJfY3ZfX192YV9jb3B5PXllcyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGliX2N2X3ZhX2NvcHk9eWVzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBsaWJfY3ZfdmFfdmFsX2NvcHk9eWVzIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICIKLQotIyBoYXJkY29kZSBlcG9sbCgpIHRvIGF2b2lkIHJ1bm5pbmcgdW5zYWZlIHRlc3RzCi0jIEJTRCBuZWVkcyBrcXVldWUgYW5kIHVjbGliYyBwb2xsKCkKLUVYVFJBX09FQ09ORiA9ICIgLS13aXRoLWlvbG9vcD1lcG9sbCBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1zeXN0ZW1kc3lzdGVtdW5pdGRpcj0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtIgotCi1TWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59IgotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImRvdmVjb3Quc2VydmljZSBkb3ZlY290LnNvY2tldCIKLVNZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKLQotZG9faW5zdGFsbF9hcHBlbmQgKCkgewotICAgIGluc3RhbGwgLWQgNzU1ICR7RH0vZXRjL2RvdmVjb3QKLSAgICB0b3VjaCA2NDQgJHtEfS9ldGMvZG92ZWNvdC9kb3ZlY290LmNvbmYKLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9kb3ZlY290LnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICBzZWQgLWkgLWUgJ3MjQFNZU0NPTkZESVJAIyR7c3lzY29uZmRpcn0jZycgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vZG92ZWNvdC5zZXJ2aWNlCi0gICAgc2VkIC1pIC1lICdzI0BTQklORElSQCMke3NiaW5kaXJ9I2cnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2RvdmVjb3Quc2VydmljZQotfQotCi1VU0VSQUREX1BBQ0tBR0VTID0gIiR7UE59IgotVVNFUkFERF9QQVJBTV8ke1BOfSA9ICItciAtZCAke2xpYmV4ZWNkaXJ9IC1NIC1zICR7YmFzZV9zYmluZGlyfS9ub2xvZ2luIC1nIGRvdmVjb3QgZG92ZWNvdDsgXAotICAgICAgICAgICAgICAgICAgICAgIC1yIC1kICR7bGliZXhlY2Rpcn0gLU0gLXMgJHtiYXNlX3NiaW5kaXJ9L25vbG9naW4gLWcgZG92ZW51bGwgZG92ZW51bGwiCi1HUk9VUEFERF9QQVJBTV8ke1BOfSA9ICItZiAtciBkb3ZlY290Oy1mIC1yIGRvdmVudWxsIgotCi1GSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L2RvdmVjb3QvKnBsdWdpbi5zbyBcCi0gICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2RvdmVjb3QvbGliZnNfY29tcHJlc3Muc28gXAotICAgICAgICAgICAgICAgICR7bGliZGlyfS9kb3ZlY290L2xpYnNzbF9pb3N0cmVhbV9vcGVuc3NsLnNvIgotRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIke2xpYmRpcn0vZG92ZWNvdC8qLyouYSIKLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2RvdmVjb3QvbGliZG92ZWNvdCouc28iCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9kb3ZlY290LyovLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2RvdmVjb3QvZG92ZWNvdF8yLjIuMzMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZG92ZWNvdC9kb3ZlY290XzIuMi4zMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWJkYTE5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2RvdmVjb3QvZG92ZWNvdF8yLjIuMzMuYmIKQEAgLTAsMCArMSw3MSBAQAorU1VNTUFSWSA9ICJEb3ZlY290IGlzIGFuIG9wZW4gc291cmNlIElNQVAgYW5kIFBPUDMgZW1haWwgc2VydmVyIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly93d3cuZG92ZWNvdC5vcmcvIgorREVTQ1JJUFRJT04gPSAiRG92ZWNvdCBpcyBhbiBvcGVuIHNvdXJjZSBJTUFQIGFuZCBQT1AzIGVtYWlsIHNlcnZlciBmb3IgTGludXgvVU5JWC1saWtlIHN5c3RlbXMsIHdyaXR0ZW4gd2l0aCBzZWN1cml0eSBwcmltYXJpbHkgaW4gbWluZC4gRG92ZWNvdCBpcyBhbiBleGNlbGxlbnQgY2hvaWNlIGZvciBib3RoIHNtYWxsIGFuZCBsYXJnZSBpbnN0YWxsYXRpb25zLiBJdCdzIGZhc3QsIHNpbXBsZSB0byBzZXQgdXAsIHJlcXVpcmVzIG5vIHNwZWNpYWwgYWRtaW5pc3RyYXRpb24gYW5kIGl0IHVzZXMgdmVyeSBsaXR0bGUgbWVtb3J5LiIKK1NFQ1RJT04gPSAibWFpbCIKK0xJQ0VOU0UgPSAiTEdQTHYyLjEgJiBNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1hOTgxMzc5YmQwZjFjMzYyZjhkMWQyMTUxNWU1YjMwYiIKKworU1JDX1VSSSA9ICJodHRwOi8vZG92ZWNvdC5vcmcvcmVsZWFzZXMvMi4yL2RvdmVjb3QtJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLmFjLWNvbnZlcnQtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy1zdGF0ZS5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9kb3ZlY290LnNlcnZpY2UgXAorICAgICAgICAgICBmaWxlOi8vZG92ZWNvdC5zb2NrZXQgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1kb3ZlYWRtLUZpeC1wYXJhbGxlbC1idWlsZC5wYXRjaCBcCisgICAgICAgICAgICIKKworU1JDX1VSSVttZDVzdW1dID0gImQ2MWQxZTkyM2EyMmY5MDYyY2M5ZjQ3Njk2ODgyNjY2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImU5NDgzZDY4YTc2OThkNzAxYmMwNjEyNGZjZjZlMWIxZjE2MzgwYzI5ODZjN2VjMGNmNGUxNDc1YjlkMGMyMTgiCisKK0RFUEVORFMgPSAib3BlbnNzbCB4eiB6bGliIGJ6aXAyIGxpYmNhcCBpY3UiCisKK0RFUEVORFNfYXBwZW5kX2xpYmMtbXVzbCA9ICIgbGlidGlycGMiCitDRkxBR1NfYXBwZW5kX2xpYmMtbXVzbCA9ICIgLUkke1NUQUdJTkdfSU5DRElSfS90aXJwYyIKK0xERkxBR1NfYXBwZW5kX2xpYmMtbXVzbCA9ICIgLWx0aXJwYyIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIHN5c3RlbWQgdXNlcmFkZAorCitQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnbGRhcCBwYW0nLCBkKX0iCisKK1BBQ0tBR0VDT05GSUdbcGFtXSA9ICItLXdpdGgtcGFtLC0td2l0aG91dC1wYW0sbGlicGFtLCIKK1BBQ0tBR0VDT05GSUdbbGRhcF0gPSAiLS13aXRoLWxkYXA9cGx1Z2luLC0td2l0aG91dC1sZGFwLG9wZW5sZGFwLCIKK1BBQ0tBR0VDT05GSUdbbHo0XSA9ICItLXdpdGgtbHo0LC0td2l0aG91dC1sejQsbHo0LCIKKworIyBGcm9tIG5hdGl2ZSBidWlsZCBpbiBhcm12N2EtaGYvZWdsaWJjCitDQUNIRURfQ09ORklHVVJFVkFSUyArPSAiaV9jdl9zaWduZWRfc2l6ZV90PW5vIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpX2N2X2dtdGltZV9tYXhfdGltZV90PTMyIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpX2N2X3NpZ25lZF90aW1lX3Q9eWVzIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpX2N2X21tYXBfcGxheXNfd2l0aF93cml0ZT15ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGlfY3ZfZmRfcGFzc2luZz15ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGlfY3ZfYzk5X3ZzbnByaW50Zj15ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGxpYl9jdl9fX3ZhX2NvcHk9eWVzIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsaWJfY3ZfdmFfY29weT15ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGxpYl9jdl92YV92YWxfY29weT15ZXMgXAorICAgICAgICAgICAgICAgICAgICAgICAgIgorCisjIGhhcmRjb2RlIGVwb2xsKCkgdG8gYXZvaWQgcnVubmluZyB1bnNhZmUgdGVzdHMKKyMgQlNEIG5lZWRzIGtxdWV1ZSBhbmQgdWNsaWJjIHBvbGwoKQorRVhUUkFfT0VDT05GID0gIiAtLXdpdGgtaW9sb29wPWVwb2xsIFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLXN5c3RlbWRzeXN0ZW11bml0ZGlyPSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0iCisKK1NZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0iCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiZG92ZWNvdC5zZXJ2aWNlIGRvdmVjb3Quc29ja2V0IgorU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJkaXNhYmxlIgorCitkb19pbnN0YWxsX2FwcGVuZCAoKSB7CisgICAgaW5zdGFsbCAtZCA3NTUgJHtEfS9ldGMvZG92ZWNvdAorICAgIHRvdWNoIDY0NCAke0R9L2V0Yy9kb3ZlY290L2RvdmVjb3QuY29uZgorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2RvdmVjb3Quc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIHNlZCAtaSAtZSAncyNAU1lTQ09ORkRJUkAjJHtzeXNjb25mZGlyfSNnJyAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9kb3ZlY290LnNlcnZpY2UKKyAgICBzZWQgLWkgLWUgJ3MjQFNCSU5ESVJAIyR7c2JpbmRpcn0jZycgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vZG92ZWNvdC5zZXJ2aWNlCit9CisKK1VTRVJBRERfUEFDS0FHRVMgPSAiJHtQTn0iCitVU0VSQUREX1BBUkFNXyR7UE59ID0gIi1yIC1kICR7bGliZXhlY2Rpcn0gLU0gLXMgJHtiYXNlX3NiaW5kaXJ9L25vbG9naW4gLWcgZG92ZWNvdCBkb3ZlY290OyBcCisgICAgICAgICAgICAgICAgICAgICAgLXIgLWQgJHtsaWJleGVjZGlyfSAtTSAtcyAke2Jhc2Vfc2JpbmRpcn0vbm9sb2dpbiAtZyBkb3ZlbnVsbCBkb3ZlbnVsbCIKK0dST1VQQUREX1BBUkFNXyR7UE59ID0gIi1mIC1yIGRvdmVjb3Q7LWYgLXIgZG92ZW51bGwiCisKK0ZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vZG92ZWNvdC8qcGx1Z2luLnNvIFwKKyAgICAgICAgICAgICAgICAke2xpYmRpcn0vZG92ZWNvdC9saWJmc19jb21wcmVzcy5zbyBcCisgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2RvdmVjb3QvbGlic3NsX2lvc3RyZWFtX29wZW5zc2wuc28iCitGSUxFU18ke1BOfS1zdGF0aWNkZXYgKz0gIiR7bGliZGlyfS9kb3ZlY290LyovKi5hIgorRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vZG92ZWNvdC9saWJkb3ZlY290Ki5zbyIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2RvdmVjb3QvKi8uZGVidWciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZHJiZC9kcmJkLXV0aWxzXzguOS42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2RyYmQvZHJiZC11dGlsc184LjkuNi5iYgppbmRleCA1ZjZjNDNmLi44MWYxY2ZlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZHJiZC9kcmJkLXV0aWxzXzguOS42LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9kcmJkL2RyYmQtdXRpbHNfOC45LjYuYmIKQEAgLTgsNyArOCw3IEBACiBMSUNFTlNFID0gIkdQTHYyKyIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU1NzRjNjk2NWFlNWY1ODNlNTU4ODBlMzk3ZmJiMDE4IgogCi1TUkNfVVJJID0gImh0dHA6Ly9vc3MubGluYml0LmNvbS9kcmJkLyR7QlB9LnRhci5neiBcCitTUkNfVVJJID0gImh0dHA6Ly93d3cubGluYml0LmNvbS9kb3dubG9hZHMvZHJiZC91dGlscy9hcmNoaXZlLyR7QlB9LnRhci5neiBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLU1ha2VmaWxlLmluLWZpeC1wZXJtaXNzaW9uLWJpdHMtZm9yLWRyYmQuc2VydmljZS5wYXRjaCBcCiAgICAgICAgICAgIgogU1JDX1VSSVttZDVzdW1dID0gIjc2ZWQ2ZDMxOTBjZDc3YjAwODkwZjMzNjUzNTMxMjRiIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2RyYmQvZHJiZF85LjAuOC0xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2RyYmQvZHJiZF85LjAuOC0xLmJiCmluZGV4IGU5NDNmMjQuLmZhNGQxMGIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9kcmJkL2RyYmRfOS4wLjgtMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZHJiZC9kcmJkXzkuMC44LTEuYmIKQEAgLTIwLDMgKzIwLDUgQEAKIGRvX2luc3RhbGwgKCkgewogICAgIG9lX3J1bm1ha2UgaW5zdGFsbCBERVNURElSPSIke0R9IgogfQorCitQTkJMQUNLTElTVFtkcmJkXSA9ICJpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnc2V0dXBfdGltZXInOyA0LjE1IGhlYWQgZmlsZSBpc3N1ZT8iIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2Z3a25vcC9md2tub3BfMi42LjkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZndrbm9wL2Z3a25vcF8yLjYuOS5iYgppbmRleCA0OWIxMWFkLi4wZmQ1ZjZmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZndrbm9wL2Z3a25vcF8yLjYuOS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZndrbm9wL2Z3a25vcF8yLjYuOS5iYgpAQCAtMTcsNiArMTcsOSBAQAogICAgICAgICAgICAgICAgIgogCiBkb19jb25maWd1cmUgKCkgeworCWluc3RhbGwgLW0gMDc1NSAke1NUQUdJTkdfREFUQURJUl9OQVRJVkV9L2dudS1jb25maWcvY29uZmlnLmd1ZXNzICR7U30vY29uZmlnCisJaW5zdGFsbCAtbSAwNzU1ICR7U1RBR0lOR19EQVRBRElSX05BVElWRX0vZ251LWNvbmZpZy9jb25maWcuc3ViICR7U30vY29uZmlnCisKIAlhY2xvY2FsCiAJbGlidG9vbGl6ZSAtLWF1dG9tYWtlIC0tY29weSAtLWZvcmNlCiAJYXV0b2NvbmYKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcC1wZXJsXzEuNTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXAtcGVybF8xLjUwLmJiCmluZGV4IGE4YzhiY2YuLjk1MTQ3YmQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcC1wZXJsXzEuNTAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2dlb2lwL2dlb2lwLXBlcmxfMS41MC5iYgpAQCAtOSwxNyArOSwxMiBAQAogTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWI3YTM2ZjU1ZThiYTYyYWFkZDc0ZTRmMDg4NmE0MDVlIgogCi0jIE5vdGUgdGhhdCB3ZSBkbyBub3Qgd2FudCB0byB1c2UgdGhlIHVwc3RyZWFtIGZpbGUgbmFtZSBsb2NhbGx5LgotIwotU1JDX1VSSSA9ICJodHRwOi8vZ2l0aHViLmNvbS9tYXhtaW5kL2dlb2lwLWFwaS1wZXJsL2FyY2hpdmUvdiR7UFZ9LnRhci5nejtkb3dubG9hZGZpbGVuYW1lPSR7QlBOfS0ke1BWfS50YXIuZ3ogXAorUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICI0N2Y3ZDQ5YmQxNWNmYzJlNWY4YzBmNWM0MDY4ZGM4YmIwZTEwZTk2IgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL21heG1pbmQvZ2VvaXAtYXBpLXBlcmwuZ2l0O3Byb3RvY29sPWh0dHBzOyBcCiAgICAgZmlsZTovL3J1bi1wdGVzdCBcCiAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIyZDdmOGIxYjU0ZTZiYTZkOWUzZmVmY2U1MjY3NTgxNSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4NmRhMGRkNjdmNDE3YTQzZGM3MGYxNWE0OWJkMzYxOWY2Njg5NzBjMTE3YjllN2Y3MzdiNGFiMjQ2YzI0MGE2IgotCi1TID0gIiR7V09SS0RJUn0vZ2VvaXAtYXBpLXBlcmwtJHtQVn0iCi0KIERFUEVORFMgKz0gImdlb2lwIgogCiBpbmhlcml0IGNwYW4gcHRlc3QKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcF8xLjYuMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXBfMS42LjExLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1MjdkMGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXBfMS42LjExLmJiCkBAIC0wLDAgKzEsOTAgQEAKK1NVTU1BUlkgPSAiQyBsaWJyYXJ5IGZvciBjb3VudHJ5L2NpdHkvb3JnYW5pemF0aW9uIHRvIElQIGFkZHJlc3Mgb3IgaG9zdG5hbWUgbWFwcGluZyIKK0RFU0NSSVBUSU9OID0gIkdlb0lQIGlzIGEgQyBsaWJyYXJ5IHRoYXQgZW5hYmxlcyB0aGUgdXNlciB0byBmaW5kIHRoZSBjb3VudHJ5IHRoYXQgYW55IElQIFwKK2FkZHJlc3Mgb3IgaG9zdG5hbWUgb3JpZ2luYXRlcyBmcm9tLiBJdCB1c2VzIGEgZmlsZSBiYXNlZCBkYXRhYmFzZSB0aGF0IGlzIFwKK2FjY3VyYXRlIGFzIG9mIE1hcmNoIDIwMDMuIFRoaXMgZGF0YWJhc2Ugc2ltcGx5IGNvbnRhaW5zIElQIGJsb2NrcyBhcyBrZXlzLCBhbmQgXAorY291bnRyaWVzIGFzIHZhbHVlcy4gVGhpcyBkYXRhYmFzZSBzaG91bGQgYmUgbW9yZSBjb21wbGV0ZSBhbmQgYWNjdXJhdGUgdGhhbiBcCit1c2luZyByZXZlcnNlIEROUyBsb29rdXBzLiIKKworSE9NRVBBR0UgPSAiaHR0cDovL2Rldi5tYXhtaW5kLmNvbS9nZW9pcC8iCitTRUNUSU9OID0gImxpYmRldmVsIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbWF4bWluZC9nZW9pcC1hcGktYy5naXQgXAorICAgICAgICAgICBodHRwOi8vZ2VvbGl0ZS5tYXhtaW5kLmNvbS9kb3dubG9hZC9nZW9pcC9kYXRhYmFzZS9HZW9MaXRlQ291bnRyeS9HZW9JUC5kYXQuZ3o7YXBwbHk9bm87bmFtZT1HZW9JUC1kYXQgXAorICAgICAgICAgICBodHRwOi8vZ2VvbGl0ZS5tYXhtaW5kLmNvbS9kb3dubG9hZC9nZW9pcC9kYXRhYmFzZS9HZW9JUHY2LmRhdC5nejthcHBseT1ubztuYW1lPUdlb0lQdjYtZGF0IFwKKyAgICAgICAgICAgaHR0cDovL2dlb2xpdGUubWF4bWluZC5jb20vZG93bmxvYWQvZ2VvaXAvZGF0YWJhc2UvR2VvTGl0ZUNpdHkuZGF0Lmd6O2FwcGx5PW5vO25hbWU9R2VvTGl0ZUNpdHktZGF0IFwKKyAgICAgICAgICAgaHR0cDovL2dlb2xpdGUubWF4bWluZC5jb20vZG93bmxvYWQvZ2VvaXAvZGF0YWJhc2UvR2VvTGl0ZUNpdHl2Ni1iZXRhL0dlb0xpdGVDaXR5djYuZGF0Lmd6O2FwcGx5PW5vO25hbWU9R2VvTGl0ZUNpdHl2Ni1kYXQgXAorICAgICAgICAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKKyIKK1NSQ1JFViA9ICIzMTY5YThhODg4MDhjOGRmODYyZTBiMDM1NWY5OWM3MzhjY2U5ZjdlIgorCitTUkNfVVJJW0dlb0lQLWRhdC5tZDVzdW1dID0gIjM3Yzg0ZWFkMzMyZGRhMDM2MmE1YWM3YjA0OWI3MmQ0IgorU1JDX1VSSVtHZW9JUC1kYXQuc2hhMjU2c3VtXSA9ICI3OWZmMTA5OWU5NmMyZGMxYzI1MzljOWExOGFhYTEzYTlhZmQwODVjYWU0NzdkZjYwZDk1ZjE2NDRkNDJiYzA3IgorCitTUkNfVVJJW0dlb0lQdjYtZGF0Lm1kNXN1bV0gPSAiZTc1Yjg0YTQwNDRlODFkNmQ0NDg0ZTMzODE2YmM3NjIiCitTUkNfVVJJW0dlb0lQdjYtZGF0LnNoYTI1NnN1bV0gPSAiYTAwOWIwZjIxOTY4ZDI4NjhlNmRkMTlkMTRmM2MzYjhjZDYwYWU4NGE0YmZjMjk3MGRmMzRkNzcxYTA0ODExZSIKKworU1JDX1VSSVtHZW9MaXRlQ2l0eS1kYXQubWQ1c3VtXSA9ICI0YjY1ODhkMGJmZTFhZjIyZTI2N2FjOTBhYTk3Zjc2OSIKK1NSQ19VUklbR2VvTGl0ZUNpdHktZGF0LnNoYTI1NnN1bV0gPSAiOGE2NDY3MDMzYTUyOGY2OGIxYTk3ZGUyNGQ5ZDBjZTg2YzhlOGU4MzY4MzgyMGUxNmU0MzNkZGJkM2Y3MTJmNyIKKworU1JDX1VSSVtHZW9MaXRlQ2l0eXY2LWRhdC5tZDVzdW1dID0gImFkMGNiNDI1MThhZjdmNzUyNDk5NDI1ZGNhMDk1MmJiIgorU1JDX1VSSVtHZW9MaXRlQ2l0eXY2LWRhdC5zaGEyNTZzdW1dID0gImVkYTY3ZjQyMDRiYTlmYTUyMDRhNTNjZGI2MjkxNjdjY2E5Mzk0YzcxMmY1Mzc4YmM3MjNhOGMyOWMwYjQ0MGYiCisKK0xJQ0VOU0UgPSAiTEdQTC0yLjEiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTI0M2I3MjVkNzFiYjVkZjRhMWU1OTIwYjM0NGI4NmFkIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0xJQ0VOU0U7bWQ1PTAzODgyNzY3NDlhNTQyYjBkNjExNjAxZmE3YzFkY2M4ICIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBhdXRvdG9vbHMKKworRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1zdGF0aWMgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgICIKKworZG9faW5zdGFsbCgpIHsKKyAgICBtYWtlIERFU1RESVI9JHtEfSBpbnN0YWxsCisgICAgaW5zdGFsbCAtZCAke0R9LyR7ZGF0YWRpcn0vR2VvSVAKKyAgICBpbnN0YWxsICR7V09SS0RJUn0vR2VvSVAuZGF0ICR7RH0vJHtkYXRhZGlyfS9HZW9JUC8KKyAgICBpbnN0YWxsICR7V09SS0RJUn0vR2VvSVB2Ni5kYXQgJHtEfS8ke2RhdGFkaXJ9L0dlb0lQLworICAgIGluc3RhbGwgJHtXT1JLRElSfS9HZW9MaXRlQ2l0eS5kYXQgJHtEfS8ke2RhdGFkaXJ9L0dlb0lQLworICAgIGluc3RhbGwgJHtXT1JLRElSfS9HZW9MaXRlQ2l0eXY2LmRhdCAke0R9LyR7ZGF0YWRpcn0vR2VvSVAvCisgICAgbG4gLXMgR2VvTGl0ZUNpdHkuZGF0ICR7RH0ke2RhdGFkaXJ9L0dlb0lQL0dlb0lQQ2l0eS5kYXQKK30KKworUEFDS0FHRVMgPSsgIiR7UE59LWRhdGFiYXNlIgorRklMRVNfJHtQTn0tZGF0YWJhc2UgPSAiIgorRklMRVNfJHtQTn0tZGF0YWJhc2UgKz0gIiR7ZGF0YWRpcn0vR2VvSVAvKiIKKworIyBXZSBjYW5ub3QgZG8gbXVjaCBsb29raW5nIHVwIHdpdGhvdXQgZGF0YWJhc2VzLgorIworUkRFUEVORFNfJHtQTn0gKz0gIiR7UE59LWRhdGFiYXNlIgorCitpbmhlcml0IHB0ZXN0CisKK2RvX2NvbmZpZ3VyZV9wdGVzdCgpIHsKKyAgICBzZWQgLWkgLWUgInMvbm9pbnN0X1BST0dSQU1TID0gL3Rlc3RfUFJPR1JBTVMgPSAvZyIgXAorICAgICAgICAtZSAnczpTUkNESVI9XFwiJCh0b3Bfc3JjZGlyKVxcIjpTUkNESVI9XFwiJCh0ZXN0ZGlyKVxcIjonIFwKKyAgICAgICAgJHtTfS90ZXN0L01ha2VmaWxlLmFtCisKKyAgICBpZiAhIGdyZXAgIl50ZXN0ZGlyID0gIiAke1N9L3Rlc3QvTWFrZWZpbGUuYW0gOyB0aGVuCisgICAgICAgIHNlZCAtZSAnL0VYVFJBX1BST0dSQU1TID0gL2l0ZXN0ZGlyID0gJHtQVEVTVF9QQVRIfS90ZXN0cycgXAorICAgICAgICAgICAgLWkgJHtTfS90ZXN0L01ha2VmaWxlLmFtCisgICAgZmkKKworICAgIHNlZCAtaSAtZSAiczovdXNyL2xvY2FsL3NoYXJlOi91c3Ivc2hhcmU6ZyIgXAorICAgICAgICAke1N9L3Rlc3QvYmVuY2htYXJrLmMKKworICAgIHNlZCAtaSAtZSAnczoiLi4vZGF0YS86Ii91c3Ivc2hhcmUvR2VvSVAvOmcnIFwKKyAgICAgICAgJHtTfS90ZXN0L3Rlc3QtZ2VvaXAtY2l0eS5jIFwKKyAgICAgICAgJHtTfS90ZXN0L3Rlc3QtZ2VvaXAtaXNwLmMgXAorICAgICAgICAke1N9L3Rlc3QvdGVzdC1nZW9pcC1hc251bS5jIFwKKyAgICAgICAgJHtTfS90ZXN0L3Rlc3QtZ2VvaXAtbmV0c3BlZWQuYyBcCisgICAgICAgICR7U30vdGVzdC90ZXN0LWdlb2lwLW9yZy5jIFwKKyAgICAgICAgJHtTfS90ZXN0L3Rlc3QtZ2VvaXAtcmVnaW9uLmMKK30KKworCitkb19pbnN0YWxsX3B0ZXN0KCkgeworICAgIG9lX3J1bm1ha2UgLUMgdGVzdCBERVNURElSPSR7RH0gIGluc3RhbGwtdGVzdFBST0dSQU1TCisgICAgaW5zdGFsbCAke1N9L3Rlc3QvKi50eHQgJHtEfSR7UFRFU1RfUEFUSH0vdGVzdHMKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcF8xLjYuOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcF8xLjYuOS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWU4ZTA3MS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXBfMS42LjkuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi1TVU1NQVJZID0gIkMgbGlicmFyeSBmb3IgY291bnRyeS9jaXR5L29yZ2FuaXphdGlvbiB0byBJUCBhZGRyZXNzIG9yIGhvc3RuYW1lIG1hcHBpbmciCi1ERVNDUklQVElPTiA9ICJHZW9JUCBpcyBhIEMgbGlicmFyeSB0aGF0IGVuYWJsZXMgdGhlIHVzZXIgdG8gZmluZCB0aGUgY291bnRyeSB0aGF0IGFueSBJUCBcCi1hZGRyZXNzIG9yIGhvc3RuYW1lIG9yaWdpbmF0ZXMgZnJvbS4gSXQgdXNlcyBhIGZpbGUgYmFzZWQgZGF0YWJhc2UgdGhhdCBpcyBcCi1hY2N1cmF0ZSBhcyBvZiBNYXJjaCAyMDAzLiBUaGlzIGRhdGFiYXNlIHNpbXBseSBjb250YWlucyBJUCBibG9ja3MgYXMga2V5cywgYW5kIFwKLWNvdW50cmllcyBhcyB2YWx1ZXMuIFRoaXMgZGF0YWJhc2Ugc2hvdWxkIGJlIG1vcmUgY29tcGxldGUgYW5kIGFjY3VyYXRlIHRoYW4gXAotdXNpbmcgcmV2ZXJzZSBETlMgbG9va3Vwcy4iCi0KLUhPTUVQQUdFID0gImh0dHA6Ly9kZXYubWF4bWluZC5jb20vZ2VvaXAvIgotU0VDVElPTiA9ICJsaWJkZXZlbCIKLQotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL21heG1pbmQvZ2VvaXAtYXBpLWMuZ2l0IFwKLSAgICAgICAgICAgaHR0cDovL2dlb2xpdGUubWF4bWluZC5jb20vZG93bmxvYWQvZ2VvaXAvZGF0YWJhc2UvR2VvTGl0ZUNvdW50cnkvR2VvSVAuZGF0Lmd6O2FwcGx5PW5vO25hbWU9R2VvSVAtZGF0IFwKLSAgICAgICAgICAgaHR0cDovL2dlb2xpdGUubWF4bWluZC5jb20vZG93bmxvYWQvZ2VvaXAvZGF0YWJhc2UvR2VvSVB2Ni5kYXQuZ3o7YXBwbHk9bm87bmFtZT1HZW9JUHY2LWRhdCBcCi0gICAgICAgICAgIGh0dHA6Ly9nZW9saXRlLm1heG1pbmQuY29tL2Rvd25sb2FkL2dlb2lwL2RhdGFiYXNlL0dlb0xpdGVDaXR5LmRhdC5nejthcHBseT1ubztuYW1lPUdlb0xpdGVDaXR5LWRhdCBcCi0gICAgICAgICAgIGh0dHA6Ly9nZW9saXRlLm1heG1pbmQuY29tL2Rvd25sb2FkL2dlb2lwL2RhdGFiYXNlL0dlb0xpdGVDaXR5djYtYmV0YS9HZW9MaXRlQ2l0eXY2LmRhdC5nejthcHBseT1ubztuYW1lPUdlb0xpdGVDaXR5djYtZGF0IFwKLSAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCBcCi0iCi1TUkNSRVYgPSAiNGY0ODdiZjk1NTMyZTBiYmE3NzgzZDU5MWZhZmYxNzhhYjBhYTQ2MiIKLQotU1JDX1VSSVtHZW9JUC1kYXQubWQ1c3VtXSA9ICIzN2M4NGVhZDMzMmRkYTAzNjJhNWFjN2IwNDliNzJkNCIKLVNSQ19VUklbR2VvSVAtZGF0LnNoYTI1NnN1bV0gPSAiNzlmZjEwOTllOTZjMmRjMWMyNTM5YzlhMThhYWExM2E5YWZkMDg1Y2FlNDc3ZGY2MGQ5NWYxNjQ0ZDQyYmMwNyIKLQotU1JDX1VSSVtHZW9JUHY2LWRhdC5tZDVzdW1dID0gImU3NWI4NGE0MDQ0ZTgxZDZkNDQ4NGUzMzgxNmJjNzYyIgotU1JDX1VSSVtHZW9JUHY2LWRhdC5zaGEyNTZzdW1dID0gImEwMDliMGYyMTk2OGQyODY4ZTZkZDE5ZDE0ZjNjM2I4Y2Q2MGFlODRhNGJmYzI5NzBkZjM0ZDc3MWEwNDgxMWUiCi0KLVNSQ19VUklbR2VvTGl0ZUNpdHktZGF0Lm1kNXN1bV0gPSAiNGI2NTg4ZDBiZmUxYWYyMmUyNjdhYzkwYWE5N2Y3NjkiCi1TUkNfVVJJW0dlb0xpdGVDaXR5LWRhdC5zaGEyNTZzdW1dID0gIjhhNjQ2NzAzM2E1MjhmNjhiMWE5N2RlMjRkOWQwY2U4NmM4ZThlODM2ODM4MjBlMTZlNDMzZGRiZDNmNzEyZjciCi0KLVNSQ19VUklbR2VvTGl0ZUNpdHl2Ni1kYXQubWQ1c3VtXSA9ICJhZDBjYjQyNTE4YWY3Zjc1MjQ5OTQyNWRjYTA5NTJiYiIKLVNSQ19VUklbR2VvTGl0ZUNpdHl2Ni1kYXQuc2hhMjU2c3VtXSA9ICJlZGE2N2Y0MjA0YmE5ZmE1MjA0YTUzY2RiNjI5MTY3Y2NhOTM5NGM3MTJmNTM3OGJjNzIzYThjMjljMGI0NDBmIgotCi1MSUNFTlNFID0gIkxHUEwtMi4xIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0yNDNiNzI1ZDcxYmI1ZGY0YTFlNTkyMGIzNDRiODZhZCBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9MSUNFTlNFO21kNT0wMzg4Mjc2NzQ5YTU0MmIwZDYxMTYwMWZhN2MxZGNjOCAiCi0KLVMgPSAiJHtXT1JLRElSfS9naXQiCi0KLWluaGVyaXQgYXV0b3Rvb2xzCi0KLUVYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtc3RhdGljICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAiCi0KLWRvX2luc3RhbGwoKSB7Ci0gICAgbWFrZSBERVNURElSPSR7RH0gaW5zdGFsbAotICAgIGluc3RhbGwgLWQgJHtEfS8ke2RhdGFkaXJ9L0dlb0lQCi0gICAgaW5zdGFsbCAke1dPUktESVJ9L0dlb0lQLmRhdCAke0R9LyR7ZGF0YWRpcn0vR2VvSVAvCi0gICAgaW5zdGFsbCAke1dPUktESVJ9L0dlb0lQdjYuZGF0ICR7RH0vJHtkYXRhZGlyfS9HZW9JUC8KLSAgICBpbnN0YWxsICR7V09SS0RJUn0vR2VvTGl0ZUNpdHkuZGF0ICR7RH0vJHtkYXRhZGlyfS9HZW9JUC8KLSAgICBpbnN0YWxsICR7V09SS0RJUn0vR2VvTGl0ZUNpdHl2Ni5kYXQgJHtEfS8ke2RhdGFkaXJ9L0dlb0lQLwotICAgIGxuIC1zIEdlb0xpdGVDaXR5LmRhdCAke0R9JHtkYXRhZGlyfS9HZW9JUC9HZW9JUENpdHkuZGF0Ci19Ci0KLVBBQ0tBR0VTID0rICIke1BOfS1kYXRhYmFzZSIKLUZJTEVTXyR7UE59LWRhdGFiYXNlID0gIiIKLUZJTEVTXyR7UE59LWRhdGFiYXNlICs9ICIke2RhdGFkaXJ9L0dlb0lQLyoiCi0KLSMgV2UgY2Fubm90IGRvIG11Y2ggbG9va2luZyB1cCB3aXRob3V0IGRhdGFiYXNlcy4KLSMKLVJERVBFTkRTXyR7UE59ICs9ICIke1BOfS1kYXRhYmFzZSIKLQotaW5oZXJpdCBwdGVzdAotCi1kb19jb25maWd1cmVfcHRlc3QoKSB7Ci0gICAgc2VkIC1pIC1lICJzL25vaW5zdF9QUk9HUkFNUyA9IC90ZXN0X1BST0dSQU1TID0gL2ciIFwKLSAgICAgICAgLWUgJ3M6U1JDRElSPVxcIiQodG9wX3NyY2RpcilcXCI6U1JDRElSPVxcIiQodGVzdGRpcilcXCI6JyBcCi0gICAgICAgICR7U30vdGVzdC9NYWtlZmlsZS5hbQotCi0gICAgaWYgISBncmVwICJedGVzdGRpciA9ICIgJHtTfS90ZXN0L01ha2VmaWxlLmFtIDsgdGhlbgotICAgICAgICBzZWQgLWUgJy9FWFRSQV9QUk9HUkFNUyA9IC9pdGVzdGRpciA9ICR7UFRFU1RfUEFUSH0vdGVzdHMnIFwKLSAgICAgICAgICAgIC1pICR7U30vdGVzdC9NYWtlZmlsZS5hbQotICAgIGZpCi0KLSAgICBzZWQgLWkgLWUgInM6L3Vzci9sb2NhbC9zaGFyZTovdXNyL3NoYXJlOmciIFwKLSAgICAgICAgJHtTfS90ZXN0L2JlbmNobWFyay5jCi0KLSAgICBzZWQgLWkgLWUgJ3M6Ii4uL2RhdGEvOiIvdXNyL3NoYXJlL0dlb0lQLzpnJyBcCi0gICAgICAgICR7U30vdGVzdC90ZXN0LWdlb2lwLWNpdHkuYyBcCi0gICAgICAgICR7U30vdGVzdC90ZXN0LWdlb2lwLWlzcC5jIFwKLSAgICAgICAgJHtTfS90ZXN0L3Rlc3QtZ2VvaXAtYXNudW0uYyBcCi0gICAgICAgICR7U30vdGVzdC90ZXN0LWdlb2lwLW5ldHNwZWVkLmMgXAotICAgICAgICAke1N9L3Rlc3QvdGVzdC1nZW9pcC1vcmcuYyBcCi0gICAgICAgICR7U30vdGVzdC90ZXN0LWdlb2lwLXJlZ2lvbi5jCi19Ci0KLQotZG9faW5zdGFsbF9wdGVzdCgpIHsKLSAgICBvZV9ydW5tYWtlIC1DIHRlc3QgREVTVERJUj0ke0R9ICBpbnN0YWxsLXRlc3RQUk9HUkFNUwotICAgIGluc3RhbGwgJHtTfS90ZXN0LyoudHh0ICR7RH0ke1BURVNUX1BBVEh9L3Rlc3RzCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXB1cGRhdGUtMi40LjAvR2VvSVAuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcHVwZGF0ZS0yLjUuMC9HZW9JUC5jb25mCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXB1cGRhdGUtMi40LjAvR2VvSVAuY29uZgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2dlb2lwL2dlb2lwdXBkYXRlLTIuNS4wL0dlb0lQLmNvbmYKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcHVwZGF0ZS0yLjQuMC9nZW9pcHVwZGF0ZS5jcm9uIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2dlb2lwL2dlb2lwdXBkYXRlLTIuNS4wL2dlb2lwdXBkYXRlLmNyb24Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcHVwZGF0ZS0yLjQuMC9nZW9pcHVwZGF0ZS5jcm9uCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXB1cGRhdGUtMi41LjAvZ2VvaXB1cGRhdGUuY3JvbgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2dlb2lwL2dlb2lwdXBkYXRlXzIuNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2dlb2lwL2dlb2lwdXBkYXRlXzIuNC4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTA0NWJiLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcHVwZGF0ZV8yLjQuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLVNVTU1BUlkgPSAiQ3JvbnRhYiBlbnRyeSB0byBwcm92aWRlIHdlZWtseSB1cGRhdGVzIG9mIHRoZSBHZW9JUCBmcmVlIGRhdGFiYXNlcy4iCi1ERVNDUklQVElPTiA9ICJ1cGRhdGUgZGF0YWJhc2VzIGZvciBHZW9JUCIKLQotSE9NRVBBR0UgPSAiaHR0cDovL2Rldi5tYXhtaW5kLmNvbS9nZW9pcC8iCi1TRUNUSU9OID0gIm5ldCIKLQotREVQRU5EUyA9ICJ6bGliIGN1cmwiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL21heG1pbmQvZ2VvaXB1cGRhdGUvcmVsZWFzZXMvZG93bmxvYWQvdjIuNC4wL2dlb2lwdXBkYXRlLTIuNC4wLnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly9HZW9JUC5jb25mIFwKLSAgICAgICAgICAgZmlsZTovL2dlb2lwdXBkYXRlLmNyb24gXAotICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICIwMmY5NzEyZmI4MGU4ZTk3OWQzZDU0Y2RhN2Y3NzA0ZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4YjRlODhjZThkODRlOWM3NWJjNjgxNzA0ZDE5ZWM1YzYzYzU0ZjAxZTk0NWY3NjY5Zjk3ZmIwZGY3ZTEzOTUyIgotCi1MSUNFTlNFID0gIkdQTHYyIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gIlwKLWZpbGU6Ly9DaGFuZ2VMb2cubWQ7bWQ1PTMzNDMzN2I2ZWNiYjY1MDkzYmFlNjZiM2FlMjFjOGMyIFwKLSIKLUZJTEVTXyR7UE59ID0gIi91c3Ivc2hhcmUvR2VvSVAgXAotICAgICAgICAgICAgICAvZXRjL0dlb0lQLmNvbmYgXAotICAgICAgICAgICAgIC9ldGMvY3Jvbi5kL2dlb2lwdXBkYXRlLmNyb24gXAotICAgICAgICAgICAgIC91c3IvYmluL2dlb2lwdXBkYXRlIFwKLSIKLWluaGVyaXQgYXV0b3Rvb2xzCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9Ci0gICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vY3Jvbi5kCi0gICAgaW5zdGFsbCAke1dPUktESVJ9L0dlb0lQLmNvbmYgJHtEfS8ke3N5c2NvbmZkaXJ9LwotICAgIGluc3RhbGwgJHtXT1JLRElSfS9nZW9pcHVwZGF0ZS5jcm9uICR7RH0vJHtzeXNjb25mZGlyfS9jcm9uLmQvCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXB1cGRhdGVfMi41LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvZ2VvaXAvZ2VvaXB1cGRhdGVfMi41LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRlYjJiNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9nZW9pcC9nZW9pcHVwZGF0ZV8yLjUuMC5iYgpAQCAtMCwwICsxLDMzIEBACitTVU1NQVJZID0gIkNyb250YWIgZW50cnkgdG8gcHJvdmlkZSB3ZWVrbHkgdXBkYXRlcyBvZiB0aGUgR2VvSVAgZnJlZSBkYXRhYmFzZXMuIgorREVTQ1JJUFRJT04gPSAidXBkYXRlIGRhdGFiYXNlcyBmb3IgR2VvSVAiCisKK0hPTUVQQUdFID0gImh0dHA6Ly9kZXYubWF4bWluZC5jb20vZ2VvaXAvIgorU0VDVElPTiA9ICJuZXQiCisKK0RFUEVORFMgPSAiemxpYiBjdXJsIgorCitTUkNfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9tYXhtaW5kL2dlb2lwdXBkYXRlL3JlbGVhc2VzL2Rvd25sb2FkL3YyLjUuMC9nZW9pcHVwZGF0ZS0yLjUuMC50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vR2VvSVAuY29uZiBcCisgICAgICAgICAgIGZpbGU6Ly9nZW9pcHVwZGF0ZS5jcm9uIFwKKyAgICAgICAgICAiCitTUkNfVVJJW21kNXN1bV0gPSAiMjhmNjMzYzQ5ZWM4N2FiMDFhZDNjMGZiMDIyOGE2OTYiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTExOWZkMGUzMzhjZDA4M2U4ODYyMjhiMjY2NzljNjRiY2JhYWRlOGE4MTViZTA5MmFlY2Y4NjVhNjEwYWIyNiIKKworTElDRU5TRSA9ICJHUEx2MiIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJcCitmaWxlOi8vQ2hhbmdlTG9nLm1kO21kNT0xMWQyZTMxZGYwZGUyYmUzY2NjM2UyMjg2YzRkYWZjYiBcCisiCitGSUxFU18ke1BOfSA9ICIvdXNyL3NoYXJlL0dlb0lQIFwKKyAgICAgICAgICAgICAgL2V0Yy9HZW9JUC5jb25mIFwKKyAgICAgICAgICAgICAvZXRjL2Nyb24uZC9nZW9pcHVwZGF0ZS5jcm9uIFwKKyAgICAgICAgICAgICAvdXNyL2Jpbi9nZW9pcHVwZGF0ZSBcCisiCitpbmhlcml0IGF1dG90b29scworCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfQorICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2Nyb24uZAorICAgIGluc3RhbGwgJHtXT1JLRElSfS9HZW9JUC5jb25mICR7RH0vJHtzeXNjb25mZGlyfS8KKyAgICBpbnN0YWxsICR7V09SS0RJUn0vZ2VvaXB1cGRhdGUuY3JvbiAke0R9LyR7c3lzY29uZmRpcn0vY3Jvbi5kLworfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2lwY2FsYy9pcGNhbGMvMDAwMS1NYWtlZmlsZS1wYXNzLWV4dHJhLWxpbmtlci1mbGFncy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9pcGNhbGMvaXBjYWxjLzAwMDEtTWFrZWZpbGUtcGFzcy1leHRyYS1saW5rZXItZmxhZ3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhkMzA2NAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9pcGNhbGMvaXBjYWxjLzAwMDEtTWFrZWZpbGUtcGFzcy1leHRyYS1saW5rZXItZmxhZ3MucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorRnJvbSBmZDgwYzA1OTkwODMwMTNhMWI1ODNmZWJhNWQ3NDczZjUyYjM1OTM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWFyaWlhIE1vdmNoYW4gPG1tb3ZjaGFuQGNpc2NvLmNvbT4KK0RhdGU6IFR1ZSwgNiBNYXIgMjAxOCAxNjowMzozOSArMDIwMAorU3ViamVjdDogW1BBVENIXSBNYWtlZmlsZTogcGFzcyBleHRyYSBsaW5rZXIgZmxhZ3MKKworRml4ZXMKK0VSUk9SOiBRQSBJc3N1ZTogTm8gR05VX0hBU0ggaW4gdGhlIGVsZiBiaW5hcnkKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IE1hcmlpYSBNb3ZjaGFuIDxtbW92Y2hhbkBjaXNjby5jb20+CistLS0KKyBNYWtlZmlsZSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKK2luZGV4IDhiZWZmOGYuLjA0N2YwMmEgMTAwNjQ0CistLS0gYS9NYWtlZmlsZQorKysrIGIvTWFrZWZpbGUKK0BAIC04LDcgKzgsNyBAQCBMSUJTPz0KKyBWRVJTSU9OPTAuMi4yCisgQ0M/PWdjYworIENGTEFHUz89LU8yIC1nIC1XYWxsCistTERGTEFHUz0kKExJQlMpCisrTERGTEFHUys9JChMSUJTKQorIAorIGlmZXEgKCQoVVNFX0dFT0lQKSx5ZXMpCisgaWZlcSAoJChVU0VfRFlOX0dFT0lQKSx5ZXMpCistLSAKKzIuMTUuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvaXBjYWxjL2lwY2FsY18wLjIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9pcGNhbGMvaXBjYWxjXzAuMi4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0NTY0MjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvaXBjYWxjL2lwY2FsY18wLjIuMi5iYgpAQCAtMCwwICsxLDIxIEBACitTVU1NQVJZID0gIlRvb2wgdG8gYXNzaXN0IGluIG5ldHdvcmsgYWRkcmVzcyBjYWxjdWxhdGlvbnMgZm9yIElQdjQgYW5kIElQdjYuIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL25tYXYvaXBjYWxjIgorCitTRUNUSU9OID0gIm5ldCIKKworTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorU1JDUkVWID0gIjgzNDg4MDhhNzg2OWNhOGYyNWE1YjVkZWVhYTQxOGMyZjZkNTI3NTgiCitTUkNfVVJJID0gIlwKKyAgICBnaXQ6Ly9naXRodWIuY29tL25tYXYvaXBjYWxjLmdpdDtwcm90b2NvbD1odHRwczsgXAorICAgIGZpbGU6Ly8wMDAxLU1ha2VmaWxlLXBhc3MtZXh0cmEtbGlua2VyLWZsYWdzLnBhdGNoIFwKKyIKKworZXhwb3J0IFVTRV9HRU9JUCA9ICJubyIKKworZG9faW5zdGFsbCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtiaW5kaXJ9CisgICAgaW5zdGFsbCAtbSAwNzU1ICR7U30vaXBjYWxjICR7RH0vJHtiaW5kaXJ9Cit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlibGRiL2xpYmxkYi9sZGItQWRkLWNvbmZpZ3VyZS1vcHRpb25zLWZvci1wYWNrYWdlcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJsZGIvbGlibGRiL2xkYi1BZGQtY29uZmlndXJlLW9wdGlvbnMtZm9yLXBhY2thZ2VzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5M2JkNDU3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJsZGIvbGlibGRiL2xkYi1BZGQtY29uZmlndXJlLW9wdGlvbnMtZm9yLXBhY2thZ2VzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTc3ICswLDAgQEAKLUZyb20gNDlkZGUyMmU3OThmZDdmMzlmZDU5MjUwMDM2YzBhZTFmZTJiOTE1MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+Ci1EYXRlOiBXZWQsIDIxIFNlcCAyMDE2IDEwOjA2OjM5ICswODAwCi1TdWJqZWN0OiBbUEFUQ0hdIGxkYjogQWRkIGNvbmZpZ3VyZSBvcHRpb25zIGZvciBwYWNrYWdlcwotCi1BZGQgY29uZmlndXJlIG9wdGlvbnMgZm9yIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6Ci0gLSBhY2wKLSAtIGF0dHIKLSAtIGxpYmFpbwotIC0gbGliYnNkCi0gLSBsaWJjYXAKLSAtIHZhbGdyaW5kCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbb2UgZGV0ZXJtaW5pc3RpYyBidWlsZCBzcGVjaWZpY10KLQotU2lnbmVkLW9mZi1ieTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KLS0tLQotIGxpYi9yZXBsYWNlL3N5c3RlbS93c2NyaXB0X2NvbmZpZ3VyZSB8ICA2ICsrLQotIGxpYi9yZXBsYWNlL3dzY3JpcHQgICAgICAgICAgICAgICAgICB8IDg1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQotIHdzY3JpcHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrKwotIDMgZmlsZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUgYi9saWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUKLWluZGV4IDIwMzU0NzQuLjEwZjlhZTcgMTAwNjQ0Ci0tLS0gYS9saWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUKLSsrKyBiL2xpYi9yZXBsYWNlL3N5c3RlbS93c2NyaXB0X2NvbmZpZ3VyZQotQEAgLTEsNiArMSwxMCBAQAotICMhL3Vzci9iaW4vZW52IHB5dGhvbgotIAotLWNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2NhcGFiaWxpdHkuaCcpCi0raW1wb3J0IE9wdGlvbnMKLSsKLStpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmNhcDoKLSsgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvY2FwYWJpbGl0eS5oJykKLSsKLSBjb25mLkNIRUNLX0ZVTkNTKCdnZXRwd25hbV9yIGdldHB3dWlkX3IgZ2V0cHdlbnRfcicpCi0gCi0gIyBzb2xhcmlzIHZhcmllbnRzIG9mIGdldFhYZW50X3IKLWRpZmYgLS1naXQgYS9saWIvcmVwbGFjZS93c2NyaXB0IGIvbGliL3JlcGxhY2Uvd3NjcmlwdAotaW5kZXggMTQ1MzAwZC4uODIxOGZhNSAxMDA2NDQKLS0tLSBhL2xpYi9yZXBsYWNlL3dzY3JpcHQKLSsrKyBiL2xpYi9yZXBsYWNlL3dzY3JpcHQKLUBAIC0yMyw2ICsyMyw0MSBAQCBkZWYgc2V0X29wdGlvbnMob3B0KToKLSAgICAgb3B0LlBSSVZBVEVfRVhURU5TSU9OX0RFRkFVTFQoJycpCi0gICAgIG9wdC5SRUNVUlNFKCdidWlsZHRvb2xzL3dhZnNhbWJhJykKLSAKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1hY2wnLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBhY2wiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2FjbCcpCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtYWNsJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGFjbCIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2FjbCcsIGRlZmF1bHQ9RmFsc2UpCi0rCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtYXR0cicsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGF0dHIiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2F0dHInKQotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWF0dHInLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgYXR0ciIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2F0dHInLCBkZWZhdWx0PUZhbHNlKQotKwotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWxpYmFpbycsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGxpYmFpbyIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfbGliYWlvJykKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1saWJhaW8nLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgbGliYWlvIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfbGliYWlvJywgZGVmYXVsdD1GYWxzZSkKLSsKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1saWJic2QnLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBsaWJic2QiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2xpYmJzZCcpCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtbGliYnNkJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGxpYmJzZCIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2xpYmJzZCcsIGRlZmF1bHQ9RmFsc2UpCi0rCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtbGliY2FwJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgbGliY2FwIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9saWJjYXAnKQotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWxpYmNhcCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBsaWJjYXAiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9saWJjYXAnLCBkZWZhdWx0PUZhbHNlKQotKwotIEBVdGlscy5ydW5fb25jZQotIGRlZiBjb25maWd1cmUoY29uZik6Ci0gICAgIGNvbmYuUkVDVVJTRSgnYnVpbGR0b29scy93YWZzYW1iYScpCi1AQCAtMzIsMTIgKzY3LDI1IEBAIGRlZiBjb25maWd1cmUoY29uZik6Ci0gICAgIGNvbmYuREVGSU5FKCdIQVZFX0xJQlJFUExBQ0UnLCAxKQotICAgICBjb25mLkRFRklORSgnTElCUkVQTEFDRV9ORVRXT1JLX0NIRUNLUycsIDEpCi0gCi0tICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGludXgvdHlwZXMuaCBjcnlwdC5oIGxvY2FsZS5oIGFjbC9saWJhY2wuaCBjb21wYXQuaCcpCi0tICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYWNsL2xpYmFjbC5oIGF0dHIveGF0dHIuaCBjb21wYXQuaCBjdHlwZS5oIGR1c3RhdC5oJykKLSsgICAgY29uZi5DSEVDS19IRUFERVJTKCdsaW51eC90eXBlcy5oIGNyeXB0LmggbG9jYWxlLmggY29tcGF0LmgnKQotKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2NvbXBhdC5oIGN0eXBlLmggZHVzdGF0LmgnKQotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2ZjbnRsLmggZm5tYXRjaC5oIGdsb2IuaCBoaXN0b3J5Lmgga3JiNS5oIGxhbmdpbmZvLmgnKQotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpYmFpby5oIGxvY2FsZS5oIG5kaXIuaCBwd2QuaCcpCi0tICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc2hhZG93Lmggc3lzL2FjbC5oJykKLS0gICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvYXR0cmlidXRlcy5oIGF0dHIvYXR0cmlidXRlcy5oIHN5cy9jYXBhYmlsaXR5Lmggc3lzL2Rpci5oIHN5cy9lcG9sbC5oJykKLSsgICAgY29uZi5DSEVDS19IRUFERVJTKCdsb2NhbGUuaCBuZGlyLmggcHdkLmgnKQotKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3NoYWRvdy5oJykKLSsgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvYXR0cmlidXRlcy5oIHN5cy9kaXIuaCBzeXMvZXBvbGwuaCcpCi0rCi0rICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfYWNsOgotKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdhY2wvbGliYWNsLmggc3lzL2FjbC5oJykKLSsKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9hdHRyOgotKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdhdHRyL2F0dHJpYnV0ZXMuaCBhdHRyL3hhdHRyLmgnKQotKwotKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmFpbzoKLSsgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGliYWlvLmgnKQotKwotKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmNhcDoKLSsgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2NhcGFiaWxpdHkuaCcpCi0rCi0gICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygncG9ydC5oJykKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvZmNudGwuaCBzeXMvZmlsaW8uaCBzeXMvZmlsc3lzLmggc3lzL2ZzL3M1cGFyYW0uaCBzeXMvZnMvdngvcXVvdGEuaCcpCi0gICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2lkLmggc3lzL2lvY3RsLmggc3lzL2lwYy5oIHN5cy9tbWFuLmggc3lzL21vZGUuaCBzeXMvbmRpci5oIHN5cy9wcml2LmgnKQotQEAgLTczLDcgKzEyMSw5IEBAIGRlZiBjb25maWd1cmUoY29uZik6Ci0gCi0gICAgIGNvbmYuQ0hFQ0tfQ09ERSgnJywgaGVhZGVycz0ncnBjL3JwYy5oIHJwY3N2Yy95cF9wcm90LmgnLCBkZWZpbmU9J0hBVkVfUlBDU1ZDX1lQX1BST1RfSCcpCi0gCi0tICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndmFsZ3JpbmQuaCB2YWxncmluZC92YWxncmluZC5oIHZhbGdyaW5kL21lbWNoZWNrLmgnKQotKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX3ZhbGdyaW5kOgotKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCd2YWxncmluZC5oIHZhbGdyaW5kL3ZhbGdyaW5kLmggdmFsZ3JpbmQvbWVtY2hlY2suaCcpCi0rCi0gICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbnNzX2NvbW1vbi5oIG5zc3dpdGNoLmggbnNfYXBpLmgnKQotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9leHRhdHRyLmggc3lzL2VhLmggc3lzL3Byb3BsaXN0Lmggc3lzL2NkZWZzLmgnKQotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3V0bXAuaCB1dG1weC5oIGxhc3Rsb2cuaCcpCi1AQCAtMjQ4LDE3ICsyOTgsMTggQEAgZGVmIGNvbmZpZ3VyZShjb25mKToKLSAKLSAgICAgY29uZi5DSEVDS19GVU5DUygncHJjdGwgZGlybmFtZSBiYXNlbmFtZScpCi0gCi0tICAgICMgbGliYnNkIG9uIHNvbWUgcGxhdGZvcm1zIHByb3ZpZGVzIHN0cmxjcHkgYW5kIHN0cmxjYXQKLS0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ3N0cmxjcHkgc3RybGNhdCcpOgotLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc3RybGNweSBzdHJsY2F0JywgJ2JzZCcsIGhlYWRlcnM9J2JzZC9zdHJpbmcuaCcsCi0tICAgICAgICAgICAgICAgIGNoZWNrbGliYz1UcnVlKQotLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnZ2V0cGVlcmVpZCcpOgotLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignZ2V0cGVlcmVpZCcsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQotLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ3NldHByb2N0aXRsZScsIGhlYWRlcnM9J3NldHByb2N0aXRsZS5oJyk6Ci0tICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKLS0KLS0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2Nsb3NlZnJvbScpOgotLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignY2xvc2Vmcm9tJywgJ2JzZCcsIGhlYWRlcnM9J2JzZC91bmlzdGQuaCcpCi0rICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfbGliYnNkOgotKyAgICAgICAgIyBsaWJic2Qgb24gc29tZSBwbGF0Zm9ybXMgcHJvdmlkZXMgc3RybGNweSBhbmQgc3RybGNhdAotKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ3N0cmxjcHkgc3RybGNhdCcpOgotKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3N0cmxjcHkgc3RybGNhdCcsICdic2QnLCBoZWFkZXJzPSdic2Qvc3RyaW5nLmgnLAotKyAgICAgICAgICAgICAgICAgICAgY2hlY2tsaWJjPVRydWUpCi0rICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnZ2V0cGVlcmVpZCcpOgotKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2dldHBlZXJlaWQnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKLSsgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnc2V0cHJvY3RpdGxlJywgaGVhZGVycz0nc2V0cHJvY3RpdGxlLmgnKToKLSsgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKLSsKLSsgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdjbG9zZWZyb20nKToKLSsgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdjbG9zZWZyb20nLCAnYnNkJywgaGVhZGVycz0nYnNkL3VuaXN0ZC5oJykKLSAKLSAgICAgY29uZi5DSEVDS19DT0RFKCcnJwotICAgICAgICAgICAgICAgICBzdHJ1Y3QgdWNyZWQgY3JlZDsKLWRpZmYgLS1naXQgYS93c2NyaXB0IGIvd3NjcmlwdAotaW5kZXggMmFmODU3MS4uMDU5NDA4YiAxMDA3NTUKLS0tLSBhL3dzY3JpcHQKLSsrKyBiL3dzY3JpcHQKLUBAIC0yOSw2ICsyOSwxMyBAQCBkZWYgc2V0X29wdGlvbnMob3B0KToKLSAgICAgb3B0LlJFQ1VSU0UoJ2xpYi9yZXBsYWNlJykKLSAgICAgb3B0LnRvb2xfb3B0aW9ucygncHl0aG9uJykgIyBvcHRpb25zIGZvciBkaXNhYmxpbmcgcHljIG9yIHB5byBjb21waWxhdGlvbgotIAotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLXZhbGdyaW5kJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oImVuYWJsZSB1c2Ugb2YgdmFsZ3JpbmQiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX3ZhbGdyaW5kJykKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC12YWxncmluZCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJkaXNhYmxlIHVzZSBvZiB2YWxncmluZCIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX3ZhbGdyaW5kJywgZGVmYXVsdD1GYWxzZSkKLSsKLSBkZWYgY29uZmlndXJlKGNvbmYpOgotICAgICBjb25mLlJFQ1VSU0UoJ2xpYi90ZGInKQotICAgICBjb25mLlJFQ1VSU0UoJ2xpYi90ZXZlbnQnKQotLS0gCi0yLjguMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlibGRiL2xpYmxkYi9vcHRpb25zLTEuMy4xLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYmxkYi9saWJsZGIvb3B0aW9ucy0xLjMuMS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmUyNTNiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYmxkYi9saWJsZGIvb3B0aW9ucy0xLjMuMS5wYXRjaApAQCAtMCwwICsxLDE5MyBAQAorRnJvbSBhNGRhM2FiNGQ3NjAxM2FhYTczMWQ0M2Q1MmNjY2ExZWJkMzdjMzk1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFdlZCwgMjEgU2VwIDIwMTYgMTA6MDY6MzkgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAxLzFdIGxkYjogQWRkIGNvbmZpZ3VyZSBvcHRpb25zIGZvciBwYWNrYWdlcworCitBZGQgY29uZmlndXJlIG9wdGlvbnMgZm9yIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6CisgLSBhY2wKKyAtIGF0dHIKKyAtIGxpYmFpbworIC0gbGliYnNkCisgLSBsaWJjYXAKKyAtIHZhbGdyaW5kCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbb2UgZGV0ZXJtaW5pc3RpYyBidWlsZCBzcGVjaWZpY10KKworU2lnbmVkLW9mZi1ieTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KKy0tLQorIGxpYi9yZXBsYWNlL3N5c3RlbS93c2NyaXB0X2NvbmZpZ3VyZSB8ICA2ICsrLQorIGxpYi9yZXBsYWNlL3dzY3JpcHQgICAgICAgICAgICAgICAgICB8IDk0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQorIHdzY3JpcHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrKworIDMgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUgYi9saWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUKK2luZGV4IDIwMzU0NzQuLjEwZjlhZTcgMTAwNjQ0CistLS0gYS9saWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUKKysrKyBiL2xpYi9yZXBsYWNlL3N5c3RlbS93c2NyaXB0X2NvbmZpZ3VyZQorQEAgLTEsNiArMSwxMCBAQAorICMhL3Vzci9iaW4vZW52IHB5dGhvbgorIAorLWNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2NhcGFiaWxpdHkuaCcpCisraW1wb3J0IE9wdGlvbnMKKysKKytpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmNhcDoKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvY2FwYWJpbGl0eS5oJykKKysKKyBjb25mLkNIRUNLX0ZVTkNTKCdnZXRwd25hbV9yIGdldHB3dWlkX3IgZ2V0cHdlbnRfcicpCisgCisgIyBzb2xhcmlzIHZhcmllbnRzIG9mIGdldFhYZW50X3IKK2RpZmYgLS1naXQgYS9saWIvcmVwbGFjZS93c2NyaXB0IGIvbGliL3JlcGxhY2Uvd3NjcmlwdAoraW5kZXggMmY5NGQ0OS4uNjhiMmQzYSAxMDA2NDQKKy0tLSBhL2xpYi9yZXBsYWNlL3dzY3JpcHQKKysrKyBiL2xpYi9yZXBsYWNlL3dzY3JpcHQKK0BAIC0yMyw2ICsyMyw0MSBAQCBkZWYgc2V0X29wdGlvbnMob3B0KToKKyAgICAgb3B0LlBSSVZBVEVfRVhURU5TSU9OX0RFRkFVTFQoJycpCisgICAgIG9wdC5SRUNVUlNFKCdidWlsZHRvb2xzL3dhZnNhbWJhJykKKyAKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1hY2wnLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBhY2wiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2FjbCcpCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtYWNsJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGFjbCIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2FjbCcsIGRlZmF1bHQ9RmFsc2UpCisrCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtYXR0cicsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGF0dHIiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2F0dHInKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWF0dHInLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgYXR0ciIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2F0dHInLCBkZWZhdWx0PUZhbHNlKQorKworKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWxpYmFpbycsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGxpYmFpbyIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfbGliYWlvJykKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1saWJhaW8nLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgbGliYWlvIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfbGliYWlvJywgZGVmYXVsdD1GYWxzZSkKKysKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1saWJic2QnLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBsaWJic2QiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2xpYmJzZCcpCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtbGliYnNkJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGxpYmJzZCIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2xpYmJzZCcsIGRlZmF1bHQ9RmFsc2UpCisrCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtbGliY2FwJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgbGliY2FwIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9saWJjYXAnKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWxpYmNhcCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBsaWJjYXAiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9saWJjYXAnLCBkZWZhdWx0PUZhbHNlKQorKworIEBVdGlscy5ydW5fb25jZQorIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgIGNvbmYuUkVDVVJTRSgnYnVpbGR0b29scy93YWZzYW1iYScpCitAQCAtMzIsMTIgKzY3LDI1IEBAIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgIGNvbmYuREVGSU5FKCdIQVZFX0xJQlJFUExBQ0UnLCAxKQorICAgICBjb25mLkRFRklORSgnTElCUkVQTEFDRV9ORVRXT1JLX0NIRUNLUycsIDEpCisgCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGludXgvdHlwZXMuaCBjcnlwdC5oIGxvY2FsZS5oIGFjbC9saWJhY2wuaCBjb21wYXQuaCcpCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYWNsL2xpYmFjbC5oIGF0dHIveGF0dHIuaCBjb21wYXQuaCBjdHlwZS5oIGR1c3RhdC5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdsaW51eC90eXBlcy5oIGNyeXB0LmggbG9jYWxlLmggY29tcGF0LmgnKQorKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2NvbXBhdC5oIGN0eXBlLmggZHVzdGF0LmgnKQorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2ZjbnRsLmggZm5tYXRjaC5oIGdsb2IuaCBoaXN0b3J5Lmgga3JiNS5oIGxhbmdpbmZvLmgnKQorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpYmFpby5oIGxvY2FsZS5oIG5kaXIuaCBwd2QuaCcpCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc2hhZG93Lmggc3lzL2FjbC5oJykKKy0gICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvYXR0cmlidXRlcy5oIGF0dHIvYXR0cmlidXRlcy5oIHN5cy9jYXBhYmlsaXR5Lmggc3lzL2Rpci5oIHN5cy9lcG9sbC5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdsb2NhbGUuaCBuZGlyLmggcHdkLmgnKQorKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3NoYWRvdy5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvYXR0cmlidXRlcy5oIHN5cy9kaXIuaCBzeXMvZXBvbGwuaCcpCisrCisrICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfYWNsOgorKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdhY2wvbGliYWNsLmggc3lzL2FjbC5oJykKKysKKysgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9hdHRyOgorKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdhdHRyL2F0dHJpYnV0ZXMuaCBhdHRyL3hhdHRyLmgnKQorKworKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmFpbzoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGliYWlvLmgnKQorKworKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmNhcDoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2NhcGFiaWxpdHkuaCcpCisrCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygncG9ydC5oJykKKyAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvZmNudGwuaCBzeXMvZmlsaW8uaCBzeXMvZmlsc3lzLmggc3lzL2ZzL3M1cGFyYW0uaCBzeXMvZnMvdngvcXVvdGEuaCcpCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2lkLmggc3lzL2lvY3RsLmggc3lzL2lwYy5oIHN5cy9tbWFuLmggc3lzL21vZGUuaCBzeXMvbmRpci5oIHN5cy9wcml2LmgnKQorQEAgLTczLDcgKzEyMSw5IEBAIGRlZiBjb25maWd1cmUoY29uZik6CisgCisgICAgIGNvbmYuQ0hFQ0tfQ09ERSgnJywgaGVhZGVycz0ncnBjL3JwYy5oIHJwY3N2Yy95cF9wcm90LmgnLCBkZWZpbmU9J0hBVkVfUlBDU1ZDX1lQX1BST1RfSCcpCisgCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndmFsZ3JpbmQuaCB2YWxncmluZC92YWxncmluZC5oIHZhbGdyaW5kL21lbWNoZWNrLmgnKQorKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX3ZhbGdyaW5kOgorKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCd2YWxncmluZC5oIHZhbGdyaW5kL3ZhbGdyaW5kLmggdmFsZ3JpbmQvbWVtY2hlY2suaCcpCisrCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbnNzX2NvbW1vbi5oIG5zc3dpdGNoLmggbnNfYXBpLmgnKQorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9leHRhdHRyLmggc3lzL2VhLmggc3lzL3Byb3BsaXN0Lmggc3lzL2NkZWZzLmgnKQorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3V0bXAuaCB1dG1weC5oIGxhc3Rsb2cuaCcpCitAQCAtMjY2LDIyICszMTYsMjAgQEAgZGVmIGNvbmZpZ3VyZShjb25mKToKKyAKKyAgICAgY29uZi5DSEVDS19GVU5DUygncHJjdGwgZGlybmFtZSBiYXNlbmFtZScpCisgCistICAgIHN0cmxjcHlfaW5fYnNkID0gRmFsc2UKKy0KKy0gICAgIyBsaWJic2Qgb24gc29tZSBwbGF0Zm9ybXMgcHJvdmlkZXMgc3RybGNweSBhbmQgc3RybGNhdAorLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnc3RybGNweSBzdHJsY2F0Jyk6CistICAgICAgICBpZiBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzdHJsY3B5IHN0cmxjYXQnLCAnYnNkJywgaGVhZGVycz0nYnNkL3N0cmluZy5oJywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tsaWJjPVRydWUpOgorLSAgICAgICAgICAgIHN0cmxjcHlfaW5fYnNkID0gVHJ1ZQorLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnZ2V0cGVlcmVpZCcpOgorLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignZ2V0cGVlcmVpZCcsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQorLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ3NldHByb2N0aXRsZScsIGhlYWRlcnM9J3NldHByb2N0aXRsZS5oJyk6CistICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKKy0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ3NldHByb2N0aXRsZV9pbml0Jyk6CistICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGVfaW5pdCcsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQorLQorLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnY2xvc2Vmcm9tJyk6CistICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdjbG9zZWZyb20nLCAnYnNkJywgaGVhZGVycz0nYnNkL3VuaXN0ZC5oJykKKysgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJic2Q6CisrICAgICAgICAjIGxpYmJzZCBvbiBzb21lIHBsYXRmb3JtcyBwcm92aWRlcyBzdHJsY3B5IGFuZCBzdHJsY2F0CisrICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnc3RybGNweSBzdHJsY2F0Jyk6CisrICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc3RybGNweSBzdHJsY2F0JywgJ2JzZCcsIGhlYWRlcnM9J2JzZC9zdHJpbmcuaCcsCisrICAgICAgICAgICAgICAgICAgICBjaGVja2xpYmM9VHJ1ZSkKKysgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdnZXRwZWVyZWlkJyk6CisrICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignZ2V0cGVlcmVpZCcsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQorKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdzZXRwcm9jdGl0bGUnLCBoZWFkZXJzPSdzZXRwcm9jdGl0bGUuaCcpOgorKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQorKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ3NldHByb2N0aXRsZV9pbml0Jyk6CisrICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlX2luaXQnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKKysKKysgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdjbG9zZWZyb20nKToKKysgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdjbG9zZWZyb20nLCAnYnNkJywgaGVhZGVycz0nYnNkL3VuaXN0ZC5oJykKKyAKKyAgICAgY29uZi5DSEVDS19DT0RFKCcnJworICAgICAgICAgICAgICAgICBzdHJ1Y3QgdWNyZWQgY3JlZDsKK0BAIC02MzIsNyArNjgwLDcgQEAgcmVtb3ZlZWEgc2V0ZWEKKyAgICAgIyBsb29rIGZvciBhIG1ldGhvZCBvZiBmaW5kaW5nIHRoZSBsaXN0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcworICAgICBmb3IgbWV0aG9kIGluIFsnSEFWRV9JRkFDRV9HRVRJRkFERFJTJywgJ0hBVkVfSUZBQ0VfQUlYJywgJ0hBVkVfSUZBQ0VfSUZDT05GJywgJ0hBVkVfSUZBQ0VfSUZSRVEnXToKKyAgICAgICAgIGJzZF9mb3Jfc3RybGNweSA9ICcnCistICAgICAgICBpZiBzdHJsY3B5X2luX2JzZDoKKysgICAgICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfbGliYnNkOgorICAgICAgICAgICAgIGJzZF9mb3Jfc3RybGNweSA9ICcgYnNkJworICAgICAgICAgaWYgY29uZi5DSEVDS19DT0RFKCcnJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICNkZWZpbmUgJXMgMQorZGlmZiAtLWdpdCBhL3dzY3JpcHQgYi93c2NyaXB0CitpbmRleCA4YWU1YmUzLi5hMTc4Y2M0IDEwMDY0NAorLS0tIGEvd3NjcmlwdAorKysrIGIvd3NjcmlwdAorQEAgLTMxLDYgKzMxLDEzIEBAIGRlZiBzZXRfb3B0aW9ucyhvcHQpOgorICAgICBvcHQuUkVDVVJTRSgnbGliL3JlcGxhY2UnKQorICAgICBvcHQudG9vbF9vcHRpb25zKCdweXRob24nKSAjIG9wdGlvbnMgZm9yIGRpc2FibGluZyBweWMgb3IgcHlvIGNvbXBpbGF0aW9uCisgCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtdmFsZ3JpbmQnLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiZW5hYmxlIHVzZSBvZiB2YWxncmluZCIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfdmFsZ3JpbmQnKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LXZhbGdyaW5kJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oImRpc2FibGUgdXNlIG9mIHZhbGdyaW5kIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfdmFsZ3JpbmQnLCBkZWZhdWx0PUZhbHNlKQorKworIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgIGNvbmYuUkVDVVJTRSgnbGliL3RkYicpCisgICAgIGNvbmYuUkVDVVJTRSgnbGliL3RldmVudCcpCistLSAKKzIuMTYuMgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlibGRiL2xpYmxkYl8xLjEuMjkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlibGRiL2xpYmxkYl8xLjEuMjkuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5MDkxOWIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYmxkYi9saWJsZGJfMS4xLjI5LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotU1VNTUFSWSA9ICJIaWVyYXJjaGljYWwsIHJlZmVyZW5jZSBjb3VudGVkIG1lbW9yeSBwb29sIHN5c3RlbSB3aXRoIGRlc3RydWN0b3JzIgotSE9NRVBBR0UgPSAiaHR0cDovL2xkYi5zYW1iYS5vcmciCi1TRUNUSU9OID0gImxpYnMiCi1MSUNFTlNFID0gIkxHUEwtMy4wKyAmIExHUEwtMi4xKyAmIEdQTC0zLjArIgotCi1ERVBFTkRTICs9ICJsaWJ0ZGIgbGlidGFsbG9jIGxpYnRldmVudCBwb3B0IgotUkRFUEVORFNfcHlsZGIgKz0gInB5dGhvbiIKLQotU1JDX1VSSSA9ICJodHRwOi8vc2FtYmEub3JnL2Z0cC9sZGIvbGRiLSR7UFZ9LnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly9kby1ub3QtaW1wb3J0LXRhcmdldC1tb2R1bGUtd2hpbGUtY3Jvc3MtY29tcGlsZS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9sZGItQWRkLWNvbmZpZ3VyZS1vcHRpb25zLWZvci1wYWNrYWdlcy5wYXRjaCBcCi0gICAgICAgICAgIgotCi1QQUNLQUdFQ09ORklHID8/PSAiXAotICAgICR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ2FjbCcsIGQpfSBcCi0gICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4YXR0cicsICdhdHRyJywgJycsIGQpfSBcCi0iCi1QQUNLQUdFQ09ORklHW2FjbF0gPSAiLS13aXRoLWFjbCwtLXdpdGhvdXQtYWNsLGFjbCIKLVBBQ0tBR0VDT05GSUdbYXR0cl0gPSAiLS13aXRoLWF0dHIsLS13aXRob3V0LWF0dHIsYXR0ciIKLVBBQ0tBR0VDT05GSUdbbGRhcF0gPSAiLCxvcGVubGRhcCIKLVBBQ0tBR0VDT05GSUdbbGliYWlvXSA9ICItLXdpdGgtbGliYWlvLC0td2l0aG91dC1saWJhaW8sbGliYWlvIgotUEFDS0FHRUNPTkZJR1tsaWJic2RdID0gIi0td2l0aC1saWJic2QsLS13aXRob3V0LWxpYmJzZCxsaWJic2QiCi1QQUNLQUdFQ09ORklHW2xpYmNhcF0gPSAiLS13aXRoLWxpYmNhcCwtLXdpdGhvdXQtbGliY2FwLGxpYmNhcCIKLVBBQ0tBR0VDT05GSUdbdmFsZ3JpbmRdID0gIi0td2l0aC12YWxncmluZCwtLXdpdGhvdXQtdmFsZ3JpbmQsdmFsZ3JpbmQiCi0KLVNSQ19VUkkgKz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ2xkYXAnLCAnJywgJ2ZpbGU6Ly9hdm9pZC1vcGVubGRhcC11bmxlc3Mtd2FudGVkLnBhdGNoJywgZCl9IgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9weWxkYi5oO2VuZGxpbmU9MjQ7bWQ1PWRmYmQyMzhjZWNhZDc2OTU3ZjdmODYwZmJlOWFkYWRlIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL21hbi9sZGIuMy54bWw7YmVnaW5saW5lPTI2MTtlbmRsaW5lPTI2MjttZDU9MTM3ZjlmZDYxMDQwYzE1MDVkMWFhMTAxOTY2M2ZkMDggXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vdG9vbHMvbGRiZHVtcC5jO2VuZGxpbmU9MTk7bWQ1PWE3ZDRmYzVkMWY3NTY3NmI0OWRmNDkxNTc1YTg2YTQyIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiOWM5MGFiZmI5NGMxZTJhNjkzMzk5MzkyY2Y0Y2RkYjkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTlkODRmOWE1Yjc5OWY1MTliYTdiMjY4NWJiNDZmNWEyNmYxYmJmMDViN2ExNDRiMmY1ZTAxN2QwMWQ4MGY5NyIKLQotaW5oZXJpdCB3YWYtc2FtYmEKLQotUyA9ICIke1dPUktESVJ9L2xkYi0ke1BWfSIKLQotRVhUUkFfT0VDT05GICs9ICItLWRpc2FibGUtcnBhdGggXAotICAgICAgICAgICAgICAgICAtLWRpc2FibGUtcnBhdGgtaW5zdGFsbCBcCi0gICAgICAgICAgICAgICAgIC0tYnVuZGxlZC1saWJyYXJpZXM9Tk9ORSBcCi0gICAgICAgICAgICAgICAgIC0tYnVpbHRpbi1saWJyYXJpZXM9cmVwbGFjZSBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1tb2R1bGVzZGlyPSR7bGliZGlyfS9sZGIvbW9kdWxlcyBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1wcml2YXRlbGliZGlyPSR7bGliZGlyfS9sZGIgXAotICAgICAgICAgICAgICAgICAtLXdpdGgtbGliaWNvbnY9JHtTVEFHSU5HX0RJUl9IT1NUfSR7cHJlZml4fVwKLSAgICAgICAgICAgICAgICAiCi0KLVBBQ0tBR0VTID0rICJweWxkYiBweWxkYi1kYmcgcHlsZGItZGV2IgotCi1OT0FVVE9QQUNLQUdFREVCVUcgPSAiMSIKLQotRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9sZGIvKiIKLUZJTEVTXyR7UE59LWRiZyArPSAiJHtiaW5kaXJ9Ly5kZWJ1Zy8qIFwKLSAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9Ly5kZWJ1Zy8qIFwKLSAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2xkYi8uZGVidWcvKiBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9sZGIvbW9kdWxlcy9sZGIvLmRlYnVnLyoiCi0KLUZJTEVTX3B5bGRiID0gIiR7bGliZGlyfS9weXRob24ke1BZVEhPTl9CQVNFVkVSU0lPTn0vc2l0ZS1wYWNrYWdlcy8qIFwKLSAgICAgICAgICAgICAgICR7bGliZGlyfS9saWJweWxkYi11dGlsLnNvLiogXAotICAgICAgICAgICAgICAiCi1GSUxFU19weWxkYi1kYmcgPSAiJHtsaWJkaXJ9L3B5dGhvbiR7UFlUSE9OX0JBU0VWRVJTSU9OfS9zaXRlLXBhY2thZ2VzLy5kZWJ1ZyBcCi0gICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9Ly5kZWJ1Zy9saWJweWxkYi11dGlsLnNvLioiCi1GSUxFU19weWxkYi1kZXYgPSAiJHtsaWJkaXJ9L2xpYnB5bGRiLXV0aWwuc28iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlibGRiL2xpYmxkYl8xLjMuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJsZGIvbGlibGRiXzEuMy4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlMTRjZGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlibGRiL2xpYmxkYl8xLjMuMS5iYgpAQCAtMCwwICsxLDYzIEBACitTVU1NQVJZID0gIkhpZXJhcmNoaWNhbCwgcmVmZXJlbmNlIGNvdW50ZWQgbWVtb3J5IHBvb2wgc3lzdGVtIHdpdGggZGVzdHJ1Y3RvcnMiCitIT01FUEFHRSA9ICJodHRwOi8vbGRiLnNhbWJhLm9yZyIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiTEdQTC0zLjArICYgTEdQTC0yLjErICYgR1BMLTMuMCsiCisKK0RFUEVORFMgKz0gImxpYnRkYiBsaWJ0YWxsb2MgbGlidGV2ZW50IHBvcHQiCitSREVQRU5EU19weWxkYiArPSAicHl0aG9uIgorCitTUkNfVVJJID0gImh0dHA6Ly9zYW1iYS5vcmcvZnRwL2xkYi9sZGItJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL2RvLW5vdC1pbXBvcnQtdGFyZ2V0LW1vZHVsZS13aGlsZS1jcm9zcy1jb21waWxlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL29wdGlvbnMtMS4zLjEucGF0Y2ggXAorICAgICAgICAgICIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIlwKKyAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdhY2wnLCBkKX0gXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneGF0dHInLCAnYXR0cicsICcnLCBkKX0gXAorIgorUEFDS0FHRUNPTkZJR1thY2xdID0gIi0td2l0aC1hY2wsLS13aXRob3V0LWFjbCxhY2wiCitQQUNLQUdFQ09ORklHW2F0dHJdID0gIi0td2l0aC1hdHRyLC0td2l0aG91dC1hdHRyLGF0dHIiCitQQUNLQUdFQ09ORklHW2xkYXBdID0gIiwsb3BlbmxkYXAiCitQQUNLQUdFQ09ORklHW2xpYmFpb10gPSAiLS13aXRoLWxpYmFpbywtLXdpdGhvdXQtbGliYWlvLGxpYmFpbyIKK1BBQ0tBR0VDT05GSUdbbGliYnNkXSA9ICItLXdpdGgtbGliYnNkLC0td2l0aG91dC1saWJic2QsbGliYnNkIgorUEFDS0FHRUNPTkZJR1tsaWJjYXBdID0gIi0td2l0aC1saWJjYXAsLS13aXRob3V0LWxpYmNhcCxsaWJjYXAiCitQQUNLQUdFQ09ORklHW3ZhbGdyaW5kXSA9ICItLXdpdGgtdmFsZ3JpbmQsLS13aXRob3V0LXZhbGdyaW5kLHZhbGdyaW5kIgorCitTUkNfVVJJICs9ICIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdsZGFwJywgJycsICdmaWxlOi8vYXZvaWQtb3BlbmxkYXAtdW5sZXNzLXdhbnRlZC5wYXRjaCcsIGQpfSIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vcHlsZGIuaDtlbmRsaW5lPTI0O21kNT1kZmJkMjM4Y2VjYWQ3Njk1N2Y3Zjg2MGZiZTlhZGFkZSBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9tYW4vbGRiLjMueG1sO2JlZ2lubGluZT0yNjE7ZW5kbGluZT0yNjI7bWQ1PTEzN2Y5ZmQ2MTA0MGMxNTA1ZDFhYTEwMTk2NjNmZDA4IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3Rvb2xzL2xkYmR1bXAuYztlbmRsaW5lPTE5O21kNT1hN2Q0ZmM1ZDFmNzU2NzZiNDlkZjQ5MTU3NWE4NmE0MiIKKworU1JDX1VSSVttZDVzdW1dID0gImU1MjMzZjIwMmJjYTI3ZjZjZTg0NzRmYjhhZTY1OTgzIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImIxOWYyYzlmNTVhZTBmNDZhYTVlYmFlYTBiZjFhNDdlYzFhYzEzNWUxZDc4YWYwZjYzMThjZjUwYmY2MmNiZDIiCisKK2luaGVyaXQgd2FmLXNhbWJhCisKK1MgPSAiJHtXT1JLRElSfS9sZGItJHtQVn0iCisKK0VYVFJBX09FQ09ORiArPSAiLS1kaXNhYmxlLXJwYXRoIFwKKyAgICAgICAgICAgICAgICAgLS1kaXNhYmxlLXJwYXRoLWluc3RhbGwgXAorICAgICAgICAgICAgICAgICAtLWJ1bmRsZWQtbGlicmFyaWVzPWNtb2NrYSBcCisgICAgICAgICAgICAgICAgIC0tYnVpbHRpbi1saWJyYXJpZXM9cmVwbGFjZSBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1tb2R1bGVzZGlyPSR7bGliZGlyfS9sZGIvbW9kdWxlcyBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1wcml2YXRlbGliZGlyPSR7bGliZGlyfS9sZGIgXAorICAgICAgICAgICAgICAgICAtLXdpdGgtbGliaWNvbnY9JHtTVEFHSU5HX0RJUl9IT1NUfSR7cHJlZml4fVwKKyAgICAgICAgICAgICAgICAiCisKK1BBQ0tBR0VTID0rICJweWxkYiBweWxkYi1kYmcgcHlsZGItZGV2IgorCitOT0FVVE9QQUNLQUdFREVCVUcgPSAiMSIKKworRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9sZGIvKiIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtiaW5kaXJ9Ly5kZWJ1Zy8qIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9Ly5kZWJ1Zy8qIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2xkYi8uZGVidWcvKiBcCisgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9sZGIvbW9kdWxlcy9sZGIvLmRlYnVnLyoiCisKK0ZJTEVTX3B5bGRiID0gIiR7bGliZGlyfS9weXRob24ke1BZVEhPTl9CQVNFVkVSU0lPTn0vc2l0ZS1wYWNrYWdlcy8qIFwKKyAgICAgICAgICAgICAgICR7bGliZGlyfS9saWJweWxkYi11dGlsLnNvLiogXAorICAgICAgICAgICAgICAiCitGSUxFU19weWxkYi1kYmcgPSAiJHtsaWJkaXJ9L3B5dGhvbiR7UFlUSE9OX0JBU0VWRVJTSU9OfS9zaXRlLXBhY2thZ2VzLy5kZWJ1ZyBcCisgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9Ly5kZWJ1Zy9saWJweWxkYi11dGlsLnNvLioiCitGSUxFU19weWxkYi1kZXYgPSAiJHtsaWJkaXJ9L2xpYnB5bGRiLXV0aWwuc28iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGFsbG9jL2xpYnRhbGxvYy9vcHRpb25zLTIuMS4xMC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0YWxsb2MvbGlidGFsbG9jL29wdGlvbnMtMi4xLjEwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzZjIxZTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGFsbG9jL2xpYnRhbGxvYy9vcHRpb25zLTIuMS4xMC5wYXRjaApAQCAtMCwwICsxLDE4NCBAQAorRnJvbSBlZmMxYjAyMTQ0ZjIzZmRmODRkYmM1ZmYxNTMwNzgxNWUwZjJhNDI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFdlZCwgMTQgU2VwIDIwMTYgMTE6MTE6MzUgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gdGFsbG9jOiBBZGQgY29uZmlndXJlIG9wdGlvbnMgZm9yIHBhY2thZ2VzCisKK0FkZCBjb25maWd1cmUgb3B0aW9ucyBmb3IgdGhlIGZvbGxvd2luZyBwYWNrYWdlczoKKyAtIGFjbAorIC0gYXR0cgorIC0gbGliYWlvCisgLSBsaWJic2QKKyAtIGxpYmNhcAorIC0gdmFsZ3JpbmQKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtvZSBkZXRlcm1pbmlzdGljIGJ1aWxkIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgorCitNb2RpZmllZCB0byBhcHBseSB0byB2ZXJzaW9uIDIuMS4xMC4KKworU2lnbmVkLW9mZi1ieTogSm9lIFNsYXRlciA8am9lLnNsYXRlckB3aW5kcml2ZXIuY29tPgorCistLS0KKyBsaWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUgfCAgNiArKy0KKyBsaWIvcmVwbGFjZS93c2NyaXB0ICAgICAgICAgICAgICAgICAgfCA4NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KKyB3c2NyaXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNyArKy0KKyAzIGZpbGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQorCitJbmRleDogdGFsbG9jLTIuMS4xMS9saWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0YWxsb2MtMi4xLjExLm9yaWcvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlCisrKysgdGFsbG9jLTIuMS4xMS9saWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUKK0BAIC0xLDYgKzEsMTAgQEAKKyAjIS91c3IvYmluL2VudiBweXRob24KKyAKKy1jb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQorK2ltcG9ydCBPcHRpb25zCisrCisraWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJjYXA6CisrICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2NhcGFiaWxpdHkuaCcpCisrCisgY29uZi5DSEVDS19GVU5DUygnZ2V0cHduYW1fciBnZXRwd3VpZF9yIGdldHB3ZW50X3InKQorIAorICMgc29sYXJpcyB2YXJpZW50cyBvZiBnZXRYWGVudF9yCitJbmRleDogdGFsbG9jLTIuMS4xMS9saWIvcmVwbGFjZS93c2NyaXB0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gdGFsbG9jLTIuMS4xMS5vcmlnL2xpYi9yZXBsYWNlL3dzY3JpcHQKKysrKyB0YWxsb2MtMi4xLjExL2xpYi9yZXBsYWNlL3dzY3JpcHQKK0BAIC0yMyw2ICsyMyw0MSBAQCBkZWYgc2V0X29wdGlvbnMob3B0KToKKyAgICAgb3B0LlBSSVZBVEVfRVhURU5TSU9OX0RFRkFVTFQoJycpCisgICAgIG9wdC5SRUNVUlNFKCdidWlsZHRvb2xzL3dhZnNhbWJhJykKKyAKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1hY2wnLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBhY2wiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2FjbCcpCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtYWNsJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGFjbCIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2FjbCcsIGRlZmF1bHQ9RmFsc2UpCisrCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtYXR0cicsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGF0dHIiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2F0dHInKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWF0dHInLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgYXR0ciIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2F0dHInLCBkZWZhdWx0PUZhbHNlKQorKworKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWxpYmFpbycsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGxpYmFpbyIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfbGliYWlvJykKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1saWJhaW8nLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgbGliYWlvIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfbGliYWlvJywgZGVmYXVsdD1GYWxzZSkKKysKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1saWJic2QnLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBsaWJic2QiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2xpYmJzZCcpCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtbGliYnNkJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGxpYmJzZCIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2xpYmJzZCcsIGRlZmF1bHQ9RmFsc2UpCisrCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtbGliY2FwJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgbGliY2FwIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9saWJjYXAnKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWxpYmNhcCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBsaWJjYXAiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9saWJjYXAnLCBkZWZhdWx0PUZhbHNlKQorKworIEBVdGlscy5ydW5fb25jZQorIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgIGNvbmYuUkVDVVJTRSgnYnVpbGR0b29scy93YWZzYW1iYScpCitAQCAtMzIsMTIgKzY3LDI1IEBAIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgIGNvbmYuREVGSU5FKCdIQVZFX0xJQlJFUExBQ0UnLCAxKQorICAgICBjb25mLkRFRklORSgnTElCUkVQTEFDRV9ORVRXT1JLX0NIRUNLUycsIDEpCisgCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGludXgvdHlwZXMuaCBjcnlwdC5oIGxvY2FsZS5oIGFjbC9saWJhY2wuaCBjb21wYXQuaCcpCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYWNsL2xpYmFjbC5oIGF0dHIveGF0dHIuaCBjb21wYXQuaCBjdHlwZS5oIGR1c3RhdC5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdsaW51eC90eXBlcy5oIGNyeXB0LmggbG9jYWxlLmggY29tcGF0LmgnKQorKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2NvbXBhdC5oIGN0eXBlLmggZHVzdGF0LmgnKQorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2ZjbnRsLmggZm5tYXRjaC5oIGdsb2IuaCBoaXN0b3J5Lmgga3JiNS5oIGxhbmdpbmZvLmgnKQorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpYmFpby5oIGxvY2FsZS5oIG5kaXIuaCBwd2QuaCcpCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc2hhZG93Lmggc3lzL2FjbC5oJykKKy0gICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvYXR0cmlidXRlcy5oIGF0dHIvYXR0cmlidXRlcy5oIHN5cy9jYXBhYmlsaXR5Lmggc3lzL2Rpci5oIHN5cy9lcG9sbC5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdsb2NhbGUuaCBuZGlyLmggcHdkLmgnKQorKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3NoYWRvdy5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvYXR0cmlidXRlcy5oIHN5cy9kaXIuaCBzeXMvZXBvbGwuaCcpCisrCisrICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfYWNsOgorKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdhY2wvbGliYWNsLmggc3lzL2FjbC5oJykKKysKKysgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9hdHRyOgorKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdhdHRyL2F0dHJpYnV0ZXMuaCBhdHRyL3hhdHRyLmgnKQorKworKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmFpbzoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGliYWlvLmgnKQorKworKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmNhcDoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2NhcGFiaWxpdHkuaCcpCisrCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygncG9ydC5oJykKKyAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvZmNudGwuaCBzeXMvZmlsaW8uaCBzeXMvZmlsc3lzLmggc3lzL2ZzL3M1cGFyYW0uaCBzeXMvZnMvdngvcXVvdGEuaCcpCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2lkLmggc3lzL2lvY3RsLmggc3lzL2lwYy5oIHN5cy9tbWFuLmggc3lzL21vZGUuaCBzeXMvbmRpci5oIHN5cy9wcml2LmgnKQorQEAgLTczLDcgKzEyMSw5IEBAIGRlZiBjb25maWd1cmUoY29uZik6CisgCisgICAgIGNvbmYuQ0hFQ0tfQ09ERSgnJywgaGVhZGVycz0ncnBjL3JwYy5oIHJwY3N2Yy95cF9wcm90LmgnLCBkZWZpbmU9J0hBVkVfUlBDU1ZDX1lQX1BST1RfSCcpCisgCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndmFsZ3JpbmQuaCB2YWxncmluZC92YWxncmluZC5oIHZhbGdyaW5kL21lbWNoZWNrLmgnKQorKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX3ZhbGdyaW5kOgorKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCd2YWxncmluZC5oIHZhbGdyaW5kL3ZhbGdyaW5kLmggdmFsZ3JpbmQvbWVtY2hlY2suaCcpCisrCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbnNzX2NvbW1vbi5oIG5zc3dpdGNoLmggbnNfYXBpLmgnKQorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9leHRhdHRyLmggc3lzL2VhLmggc3lzL3Byb3BsaXN0Lmggc3lzL2NkZWZzLmgnKQorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3V0bXAuaCB1dG1weC5oIGxhc3Rsb2cuaCcpCitAQCAtMjY3LDIxICszMTcsMjEgQEAgZGVmIGNvbmZpZ3VyZShjb25mKToKKyAgICAgY29uZi5DSEVDS19GVU5DUygncHJjdGwgZGlybmFtZSBiYXNlbmFtZScpCisgCisgICAgIHN0cmxjcHlfaW5fYnNkID0gRmFsc2UKKy0KKy0gICAgIyBsaWJic2Qgb24gc29tZSBwbGF0Zm9ybXMgcHJvdmlkZXMgc3RybGNweSBhbmQgc3RybGNhdAorLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnc3RybGNweSBzdHJsY2F0Jyk6CistICAgICAgICBpZiBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzdHJsY3B5IHN0cmxjYXQnLCAnYnNkJywgaGVhZGVycz0nYnNkL3N0cmluZy5oJywKKysgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJic2Q6CisrICAgICAgICAjIGxpYmJzZCBvbiBzb21lIHBsYXRmb3JtcyBwcm92aWRlcyBzdHJsY3B5IGFuZCBzdHJsY2F0CisrICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnc3RybGNweSBzdHJsY2F0Jyk6CisrICAgICAgICAgICAgaWYgY29uZi5DSEVDS19GVU5DU19JTignc3RybGNweSBzdHJsY2F0JywgJ2JzZCcsIGhlYWRlcnM9J2JzZC9zdHJpbmcuaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrbGliYz1UcnVlKToKKy0gICAgICAgICAgICBzdHJsY3B5X2luX2JzZCA9IFRydWUKKy0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2dldHBlZXJlaWQnKToKKy0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2dldHBlZXJlaWQnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKKy0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdzZXRwcm9jdGl0bGUnLCBoZWFkZXJzPSdzZXRwcm9jdGl0bGUuaCcpOgorLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCistICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdzZXRwcm9jdGl0bGVfaW5pdCcpOgorLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlX2luaXQnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKKysgICAgICAgICAgICAgICAgc3RybGNweV9pbl9ic2QgPSBUcnVlCisrICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnZ2V0cGVlcmVpZCcpOgorKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2dldHBlZXJlaWQnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKKysgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnc2V0cHJvY3RpdGxlJywgaGVhZGVycz0nc2V0cHJvY3RpdGxlLmgnKToKKysgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKKysgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdzZXRwcm9jdGl0bGVfaW5pdCcpOgorKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZV9pbml0JywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCisgCistICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdjbG9zZWZyb20nKToKKy0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2Nsb3NlZnJvbScsICdic2QnLCBoZWFkZXJzPSdic2QvdW5pc3RkLmgnKQorKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2Nsb3NlZnJvbScpOgorKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2Nsb3NlZnJvbScsICdic2QnLCBoZWFkZXJzPSdic2QvdW5pc3RkLmgnKQorIAorICAgICBjb25mLkNIRUNLX0NPREUoJycnCisgICAgICAgICAgICAgICAgIHN0cnVjdCB1Y3JlZCBjcmVkOworSW5kZXg6IHRhbGxvYy0yLjEuMTEvd3NjcmlwdAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHRhbGxvYy0yLjEuMTEub3JpZy93c2NyaXB0CisrKysgdGFsbG9jLTIuMS4xMS93c2NyaXB0CitAQCAtMzIsNyArMzIsMTIgQEAgZGVmIHNldF9vcHRpb25zKG9wdCk6CisgICAgICAgICBvcHQuYWRkX29wdGlvbignLS1lbmFibGUtdGFsbG9jLWNvbXBhdDEnLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0oIkJ1aWxkIHRhbGxvYyAxLngueCBjb21wYXQgbGlicmFyeSBbRmFsc2VdIiksCisgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdUQUxMT0NfQ09NUEFUMScsIGRlZmF1bHQ9RmFsc2UpCistCisrICAgICAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLXZhbGdyaW5kJywKKysgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCJlbmFibGUgdXNlIG9mIHZhbGdyaW5kIiksCisrICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfdmFsZ3JpbmQnKQorKyAgICAgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC12YWxncmluZCcsCisrICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgiZGlzYWJsZSB1c2Ugb2YgdmFsZ3JpbmQiKSwKKysgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfdmFsZ3JpbmQnLCBkZWZhdWx0PUZhbHNlKQorIAorIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgIGNvbmYuUkVDVVJTRSgnbGliL3JlcGxhY2UnKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRhbGxvYy9saWJ0YWxsb2MvdGFsbG9jLUFkZC1jb25maWd1cmUtb3B0aW9ucy1mb3ItcGFja2FnZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGFsbG9jL2xpYnRhbGxvYy90YWxsb2MtQWRkLWNvbmZpZ3VyZS1vcHRpb25zLWZvci1wYWNrYWdlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDZiMjQwNS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGFsbG9jL2xpYnRhbGxvYy90YWxsb2MtQWRkLWNvbmZpZ3VyZS1vcHRpb25zLWZvci1wYWNrYWdlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBACi1Gcm9tIGVmYzFiMDIxNDRmMjNmZGY4NGRiYzVmZjE1MzA3ODE1ZTBmMmE0MjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgotRGF0ZTogV2VkLCAxNCBTZXAgMjAxNiAxMToxMTozNSArMDgwMAotU3ViamVjdDogW1BBVENIXSB0YWxsb2M6IEFkZCBjb25maWd1cmUgb3B0aW9ucyBmb3IgcGFja2FnZXMKLQotQWRkIGNvbmZpZ3VyZSBvcHRpb25zIGZvciB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOgotIC0gYWNsCi0gLSBhdHRyCi0gLSBsaWJhaW8KLSAtIGxpYmJzZAotIC0gbGliY2FwCi0gLSB2YWxncmluZAotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW29lIGRldGVybWluaXN0aWMgYnVpbGQgc3BlY2lmaWNdCi0KLVNpZ25lZC1vZmYtYnk6IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBsaWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUgfCAgNiArKy0KLSBsaWIvcmVwbGFjZS93c2NyaXB0ICAgICAgICAgICAgICAgICAgfCA4NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KLSB3c2NyaXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNyArKy0KLSAzIGZpbGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlIGIvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlCi1pbmRleCAyMDM1NDc0Li4xMGY5YWU3IDEwMDY0NAotLS0tIGEvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlCi0rKysgYi9saWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUKLUBAIC0xLDYgKzEsMTAgQEAKLSAjIS91c3IvYmluL2VudiBweXRob24KLSAKLS1jb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQotK2ltcG9ydCBPcHRpb25zCi0rCi0raWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJjYXA6Ci0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2NhcGFiaWxpdHkuaCcpCi0rCi0gY29uZi5DSEVDS19GVU5DUygnZ2V0cHduYW1fciBnZXRwd3VpZF9yIGdldHB3ZW50X3InKQotIAotICMgc29sYXJpcyB2YXJpZW50cyBvZiBnZXRYWGVudF9yCi1kaWZmIC0tZ2l0IGEvbGliL3JlcGxhY2Uvd3NjcmlwdCBiL2xpYi9yZXBsYWNlL3dzY3JpcHQKLWluZGV4IGZjNDNlMWEuLjEyZDJhNzAgMTAwNjQ0Ci0tLS0gYS9saWIvcmVwbGFjZS93c2NyaXB0Ci0rKysgYi9saWIvcmVwbGFjZS93c2NyaXB0Ci1AQCAtMjMsNiArMjMsNDEgQEAgZGVmIHNldF9vcHRpb25zKG9wdCk6Ci0gICAgIG9wdC5QUklWQVRFX0VYVEVOU0lPTl9ERUZBVUxUKCcnKQotICAgICBvcHQuUkVDVVJTRSgnYnVpbGR0b29scy93YWZzYW1iYScpCi0gCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtYWNsJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgYWNsIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9hY2wnKQotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWFjbCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBhY2wiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9hY2wnLCBkZWZhdWx0PUZhbHNlKQotKwotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWF0dHInLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBhdHRyIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9hdHRyJykKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1hdHRyJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGF0dHIiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9hdHRyJywgZGVmYXVsdD1GYWxzZSkKLSsKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1saWJhaW8nLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBsaWJhaW8iKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2xpYmFpbycpCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtbGliYWlvJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGxpYmFpbyIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2xpYmFpbycsIGRlZmF1bHQ9RmFsc2UpCi0rCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtbGliYnNkJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgbGliYnNkIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9saWJic2QnKQotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWxpYmJzZCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBsaWJic2QiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9saWJic2QnLCBkZWZhdWx0PUZhbHNlKQotKwotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWxpYmNhcCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGxpYmNhcCIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfbGliY2FwJykKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1saWJjYXAnLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgbGliY2FwIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfbGliY2FwJywgZGVmYXVsdD1GYWxzZSkKLSsKLSBAVXRpbHMucnVuX29uY2UKLSBkZWYgY29uZmlndXJlKGNvbmYpOgotICAgICBjb25mLlJFQ1VSU0UoJ2J1aWxkdG9vbHMvd2Fmc2FtYmEnKQotQEAgLTMyLDEyICs2NywyNSBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgotICAgICBjb25mLkRFRklORSgnSEFWRV9MSUJSRVBMQUNFJywgMSkKLSAgICAgY29uZi5ERUZJTkUoJ0xJQlJFUExBQ0VfTkVUV09SS19DSEVDS1MnLCAxKQotIAotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpbnV4L3R5cGVzLmggY3J5cHQuaCBsb2NhbGUuaCBhY2wvbGliYWNsLmggY29tcGF0LmgnKQotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2FjbC9saWJhY2wuaCBhdHRyL3hhdHRyLmggY29tcGF0LmggY3R5cGUuaCBkdXN0YXQuaCcpCi0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGludXgvdHlwZXMuaCBjcnlwdC5oIGxvY2FsZS5oIGNvbXBhdC5oJykKLSsgICAgY29uZi5DSEVDS19IRUFERVJTKCdjb21wYXQuaCBjdHlwZS5oIGR1c3RhdC5oJykKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCdmY250bC5oIGZubWF0Y2guaCBnbG9iLmggaGlzdG9yeS5oIGtyYjUuaCBsYW5naW5mby5oJykKLS0gICAgY29uZi5DSEVDS19IRUFERVJTKCdsaWJhaW8uaCBsb2NhbGUuaCBuZGlyLmggcHdkLmgnKQotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3NoYWRvdy5oIHN5cy9hY2wuaCcpCi0tICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2F0dHJpYnV0ZXMuaCBhdHRyL2F0dHJpYnV0ZXMuaCBzeXMvY2FwYWJpbGl0eS5oIHN5cy9kaXIuaCBzeXMvZXBvbGwuaCcpCi0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbG9jYWxlLmggbmRpci5oIHB3ZC5oJykKLSsgICAgY29uZi5DSEVDS19IRUFERVJTKCdzaGFkb3cuaCcpCi0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2F0dHJpYnV0ZXMuaCBzeXMvZGlyLmggc3lzL2Vwb2xsLmgnKQotKwotKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2FjbDoKLSsgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYWNsL2xpYmFjbC5oIHN5cy9hY2wuaCcpCi0rCi0rICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfYXR0cjoKLSsgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYXR0ci9hdHRyaWJ1dGVzLmggYXR0ci94YXR0ci5oJykKLSsKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJhaW86Ci0rICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpYmFpby5oJykKLSsKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJjYXA6Ci0rICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQotKwotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3BvcnQuaCcpCi0gICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2ZjbnRsLmggc3lzL2ZpbGlvLmggc3lzL2ZpbHN5cy5oIHN5cy9mcy9zNXBhcmFtLmggc3lzL2ZzL3Z4L3F1b3RhLmgnKQotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9pZC5oIHN5cy9pb2N0bC5oIHN5cy9pcGMuaCBzeXMvbW1hbi5oIHN5cy9tb2RlLmggc3lzL25kaXIuaCBzeXMvcHJpdi5oJykKLUBAIC03Myw3ICsxMjEsOSBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgotIAotICAgICBjb25mLkNIRUNLX0NPREUoJycsIGhlYWRlcnM9J3JwYy9ycGMuaCBycGNzdmMveXBfcHJvdC5oJywgZGVmaW5lPSdIQVZFX1JQQ1NWQ19ZUF9QUk9UX0gnKQotIAotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3ZhbGdyaW5kLmggdmFsZ3JpbmQvdmFsZ3JpbmQuaCB2YWxncmluZC9tZW1jaGVjay5oJykKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV92YWxncmluZDoKLSsgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndmFsZ3JpbmQuaCB2YWxncmluZC92YWxncmluZC5oIHZhbGdyaW5kL21lbWNoZWNrLmgnKQotKwotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ25zc19jb21tb24uaCBuc3N3aXRjaC5oIG5zX2FwaS5oJykKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvZXh0YXR0ci5oIHN5cy9lYS5oIHN5cy9wcm9wbGlzdC5oIHN5cy9jZGVmcy5oJykKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCd1dG1wLmggdXRtcHguaCBsYXN0bG9nLmgnKQotQEAgLTI0OCwxNyArMjk4LDE4IEBAIGRlZiBjb25maWd1cmUoY29uZik6Ci0gCi0gICAgIGNvbmYuQ0hFQ0tfRlVOQ1MoJ3ByY3RsIGRpcm5hbWUgYmFzZW5hbWUnKQotIAotLSAgICAjIGxpYmJzZCBvbiBzb21lIHBsYXRmb3JtcyBwcm92aWRlcyBzdHJsY3B5IGFuZCBzdHJsY2F0Ci0tICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdzdHJsY3B5IHN0cmxjYXQnKToKLS0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3N0cmxjcHkgc3RybGNhdCcsICdic2QnLCBoZWFkZXJzPSdic2Qvc3RyaW5nLmgnLAotLSAgICAgICAgICAgICAgICBjaGVja2xpYmM9VHJ1ZSkKLS0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2dldHBlZXJlaWQnKToKLS0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2dldHBlZXJlaWQnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKLS0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdzZXRwcm9jdGl0bGUnLCBoZWFkZXJzPSdzZXRwcm9jdGl0bGUuaCcpOgotLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCi0tCi0tICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdjbG9zZWZyb20nKToKLS0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2Nsb3NlZnJvbScsICdic2QnLCBoZWFkZXJzPSdic2QvdW5pc3RkLmgnKQotKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmJzZDoKLSsgICAgICAgICMgbGliYnNkIG9uIHNvbWUgcGxhdGZvcm1zIHByb3ZpZGVzIHN0cmxjcHkgYW5kIHN0cmxjYXQKLSsgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdzdHJsY3B5IHN0cmxjYXQnKToKLSsgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzdHJsY3B5IHN0cmxjYXQnLCAnYnNkJywgaGVhZGVycz0nYnNkL3N0cmluZy5oJywKLSsgICAgICAgICAgICAgICAgICAgIGNoZWNrbGliYz1UcnVlKQotKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2dldHBlZXJlaWQnKToKLSsgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdnZXRwZWVyZWlkJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCi0rICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ3NldHByb2N0aXRsZScsIGhlYWRlcnM9J3NldHByb2N0aXRsZS5oJyk6Ci0rICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCi0rCi0rICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnY2xvc2Vmcm9tJyk6Ci0rICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignY2xvc2Vmcm9tJywgJ2JzZCcsIGhlYWRlcnM9J2JzZC91bmlzdGQuaCcpCi0gCi0gICAgIGNvbmYuQ0hFQ0tfQ09ERSgnJycKLSAgICAgICAgICAgICAgICAgc3RydWN0IHVjcmVkIGNyZWQ7Ci1kaWZmIC0tZ2l0IGEvd3NjcmlwdCBiL3dzY3JpcHQKLWluZGV4IDQxZjNiZTcuLjU1NmMxYzggMTAwNjQ0Ci0tLS0gYS93c2NyaXB0Ci0rKysgYi93c2NyaXB0Ci1AQCAtMzUsNyArMzUsMTIgQEAgZGVmIHNldF9vcHRpb25zKG9wdCk6Ci0gICAgICAgICBvcHQuYWRkX29wdGlvbignLS1kaXNhYmxlLXB5dGhvbicsCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgiZGlzYWJsZSB0aGUgcHl0YWxsb2MgbW9kdWxlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdkaXNhYmxlX3B5dGhvbicsIGRlZmF1bHQ9RmFsc2UpCi0tCi0rICAgICAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLXZhbGdyaW5kJywKLSsgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCJlbmFibGUgdXNlIG9mIHZhbGdyaW5kIiksCi0rICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfdmFsZ3JpbmQnKQotKyAgICAgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC12YWxncmluZCcsCi0rICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgiZGlzYWJsZSB1c2Ugb2YgdmFsZ3JpbmQiKSwKLSsgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfdmFsZ3JpbmQnLCBkZWZhdWx0PUZhbHNlKQotIAotIGRlZiBjb25maWd1cmUoY29uZik6Ci0gICAgIGNvbmYuUkVDVVJTRSgnbGliL3JlcGxhY2UnKQotLS0gCi0yLjguMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGFsbG9jL2xpYnRhbGxvY18yLjEuMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGFsbG9jL2xpYnRhbGxvY18yLjEuMTEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ4Y2Y0ZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0YWxsb2MvbGlidGFsbG9jXzIuMS4xMS5iYgpAQCAtMCwwICsxLDQ5IEBACitTVU1NQVJZID0gIkhpZXJhcmNoaWNhbCwgcmVmZXJlbmNlIGNvdW50ZWQgbWVtb3J5IHBvb2wgc3lzdGVtIHdpdGggZGVzdHJ1Y3RvcnMiCitIT01FUEFHRSA9ICJodHRwOi8vdGFsbG9jLnNhbWJhLm9yZyIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiTEdQTC0zLjArICYgR1BMLTMuMCsiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly90YWxsb2MuaDtiZWdpbmxpbmU9MztlbmRsaW5lPTI3O21kNT1hMzAxNzEyNzgyY2FkNmRkNmQ1MjI4YmZhNzgyNTI0OSBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9weXRhbGxvYy5oO2JlZ2lubGluZT0xO2VuZGxpbmU9MTg7bWQ1PTJjNDk4Y2M2ZjIyNjM2NzI0ODMyMzdiMjBmNDZiNDNkIgorCisKK1NSQ19VUkkgPSAiaHR0cHM6Ly9zYW1iYS5vcmcvZnRwL3RhbGxvYy90YWxsb2MtJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL29wdGlvbnMtMi4xLjEwLnBhdGNoIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICI0NTI1OTZmOTA0Y2EyYjEwMzIyYmRhYWJmMTQ3YTcyMSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2MzllYjM1NTU2YTBhZjk5OTEyM2M0ZDg4M2U3OWJlMDVmZjlmMDBhYjRmOWU0YWMyZTU3NzVmOWM1ZWVlZWQzIgorCitpbmhlcml0IHdhZi1zYW1iYQorCitQQUNLQUdFQ09ORklHID8/PSAiXAorICAgICR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ2FjbCcsIGQpfSBcCisgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4YXR0cicsICdhdHRyJywgJycsIGQpfSBcCisiCitQQUNLQUdFQ09ORklHW2FjbF0gPSAiLS13aXRoLWFjbCwtLXdpdGhvdXQtYWNsLGFjbCIKK1BBQ0tBR0VDT05GSUdbYXR0cl0gPSAiLS13aXRoLWF0dHIsLS13aXRob3V0LWF0dHIsYXR0ciIKK1BBQ0tBR0VDT05GSUdbbGliYWlvXSA9ICItLXdpdGgtbGliYWlvLC0td2l0aG91dC1saWJhaW8sbGliYWlvIgorUEFDS0FHRUNPTkZJR1tsaWJic2RdID0gIi0td2l0aC1saWJic2QsLS13aXRob3V0LWxpYmJzZCxsaWJic2QiCitQQUNLQUdFQ09ORklHW2xpYmNhcF0gPSAiLS13aXRoLWxpYmNhcCwtLXdpdGhvdXQtbGliY2FwLGxpYmNhcCIKK1BBQ0tBR0VDT05GSUdbdmFsZ3JpbmRdID0gIi0td2l0aC12YWxncmluZCwtLXdpdGhvdXQtdmFsZ3JpbmQsdmFsZ3JpbmQiCisKK1NSQ19VUkkgKz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ2F0dHInLCAnJywgJ2ZpbGU6Ly9hdm9pZC1hdHRyLXVubGVzcy13YW50ZWQucGF0Y2gnLCBkKX0iCisKK1MgPSAiJHtXT1JLRElSfS90YWxsb2MtJHtQVn0iCisKK0VYVFJBX09FQ09ORiArPSAiLS1kaXNhYmxlLXJwYXRoIFwKKyAgICAgICAgICAgICAgICAgLS1kaXNhYmxlLXJwYXRoLWluc3RhbGwgXAorICAgICAgICAgICAgICAgICAtLWJ1bmRsZWQtbGlicmFyaWVzPU5PTkUgXAorICAgICAgICAgICAgICAgICAtLWJ1aWx0aW4tbGlicmFyaWVzPXJlcGxhY2UgXAorICAgICAgICAgICAgICAgICAtLWRpc2FibGUtc2lsZW50LXJ1bGVzIFwKKyAgICAgICAgICAgICAgICAgLS13aXRoLWxpYmljb252PSR7U1RBR0lOR19ESVJfSE9TVH0ke3ByZWZpeH1cCisgICAgICAgICAgICAgICAgIgorCitQQUNLQUdFUyArPSAicHl0YWxsb2MgcHl0YWxsb2MtZGJnIHB5dGFsbG9jLWRldiIKKworRklMRVNfcHl0YWxsb2MgPSAiJHtsaWJkaXJ9L3B5dGhvbiR7UFlUSE9OX0JBU0VWRVJTSU9OfS9zaXRlLXBhY2thZ2VzLyogXAorICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2xpYnB5dGFsbG9jLXV0aWwuc28uMiBcCisgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vbGlicHl0YWxsb2MtdXRpbC5zby4yLjEuMSBcCisgICAgICAgICAgICAgICAgICIKK0ZJTEVTX3B5dGFsbG9jLWRiZyA9ICIke2xpYmRpcn0vcHl0aG9uJHtQWVRIT05fQkFTRVZFUlNJT059L3NpdGUtcGFja2FnZXMvLmRlYnVnIFwKKyAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vLmRlYnVnL2xpYnB5dGFsbG9jLXV0aWwuc28uMi4xLjEiCitGSUxFU19weXRhbGxvYy1kZXYgPSAiJHtsaWJkaXJ9L2xpYnB5dGFsbG9jLXV0aWwuc28iCitSREVQRU5EU19weXRhbGxvYyA9ICJweXRob24iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGFsbG9jL2xpYnRhbGxvY18yLjEuOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0YWxsb2MvbGlidGFsbG9jXzIuMS45LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODBhZjUwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0YWxsb2MvbGlidGFsbG9jXzIuMS45LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotU1VNTUFSWSA9ICJIaWVyYXJjaGljYWwsIHJlZmVyZW5jZSBjb3VudGVkIG1lbW9yeSBwb29sIHN5c3RlbSB3aXRoIGRlc3RydWN0b3JzIgotSE9NRVBBR0UgPSAiaHR0cDovL3RhbGxvYy5zYW1iYS5vcmciCi1TRUNUSU9OID0gImxpYnMiCi1MSUNFTlNFID0gIkxHUEwtMy4wKyAmIEdQTC0zLjArIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vdGFsbG9jLmg7YmVnaW5saW5lPTM7ZW5kbGluZT0yNzttZDU9YTMwMTcxMjc4MmNhZDZkZDZkNTIyOGJmYTc4MjUyNDkgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vcHl0YWxsb2MuaDtiZWdpbmxpbmU9MTtlbmRsaW5lPTE4O21kNT0yYzQ5OGNjNmYyMjYzNjcyNDgzMjM3YjIwZjQ2YjQzZCIKLQotCi1TUkNfVVJJID0gImh0dHBzOi8vc2FtYmEub3JnL2Z0cC90YWxsb2MvdGFsbG9jLSR7UFZ9LnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly90YWxsb2MtQWRkLWNvbmZpZ3VyZS1vcHRpb25zLWZvci1wYWNrYWdlcy5wYXRjaCBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiMTliYTE0ZWJhOTdkNzlhMTY5ZmE5MmVhODI0ZDJiOWUiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjBhYWQ0Y2I4OGEzMzIyMjA3YzgyMTM2ZGRjMDdiZWQ0OGEzN2MyYzIxZjgyOTYyZDZjNWNjYjQyMjcxMTA2MiIKLQotaW5oZXJpdCB3YWYtc2FtYmEKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIlwKLSAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdhY2wnLCBkKX0gXAotICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneGF0dHInLCAnYXR0cicsICcnLCBkKX0gXAotIgotUEFDS0FHRUNPTkZJR1thY2xdID0gIi0td2l0aC1hY2wsLS13aXRob3V0LWFjbCxhY2wiCi1QQUNLQUdFQ09ORklHW2F0dHJdID0gIi0td2l0aC1hdHRyLC0td2l0aG91dC1hdHRyLGF0dHIiCi1QQUNLQUdFQ09ORklHW2xpYmFpb10gPSAiLS13aXRoLWxpYmFpbywtLXdpdGhvdXQtbGliYWlvLGxpYmFpbyIKLVBBQ0tBR0VDT05GSUdbbGliYnNkXSA9ICItLXdpdGgtbGliYnNkLC0td2l0aG91dC1saWJic2QsbGliYnNkIgotUEFDS0FHRUNPTkZJR1tsaWJjYXBdID0gIi0td2l0aC1saWJjYXAsLS13aXRob3V0LWxpYmNhcCxsaWJjYXAiCi1QQUNLQUdFQ09ORklHW3ZhbGdyaW5kXSA9ICItLXdpdGgtdmFsZ3JpbmQsLS13aXRob3V0LXZhbGdyaW5kLHZhbGdyaW5kIgotCi1TUkNfVVJJICs9ICIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdhdHRyJywgJycsICdmaWxlOi8vYXZvaWQtYXR0ci11bmxlc3Mtd2FudGVkLnBhdGNoJywgZCl9IgotCi1TID0gIiR7V09SS0RJUn0vdGFsbG9jLSR7UFZ9IgotCi1FWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1ycGF0aCBcCi0gICAgICAgICAgICAgICAgIC0tZGlzYWJsZS1ycGF0aC1pbnN0YWxsIFwKLSAgICAgICAgICAgICAgICAgLS1idW5kbGVkLWxpYnJhcmllcz1OT05FIFwKLSAgICAgICAgICAgICAgICAgLS1idWlsdGluLWxpYnJhcmllcz1yZXBsYWNlIFwKLSAgICAgICAgICAgICAgICAgLS1kaXNhYmxlLXNpbGVudC1ydWxlcyBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1saWJpY29udj0ke1NUQUdJTkdfRElSX0hPU1R9JHtwcmVmaXh9XAotICAgICAgICAgICAgICAgICIKLQotUEFDS0FHRVMgKz0gInB5dGFsbG9jIHB5dGFsbG9jLWRiZyBweXRhbGxvYy1kZXYiCi0KLUZJTEVTX3B5dGFsbG9jID0gIiR7bGliZGlyfS9weXRob24ke1BZVEhPTl9CQVNFVkVSU0lPTn0vc2l0ZS1wYWNrYWdlcy8qIFwKLSAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9saWJweXRhbGxvYy11dGlsLnNvLjIgXAotICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2xpYnB5dGFsbG9jLXV0aWwuc28uMi4xLjEgXAotICAgICAgICAgICAgICAgICAiCi1GSUxFU19weXRhbGxvYy1kYmcgPSAiJHtsaWJkaXJ9L3B5dGhvbiR7UFlUSE9OX0JBU0VWRVJTSU9OfS9zaXRlLXBhY2thZ2VzLy5kZWJ1ZyBcCi0gICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9Ly5kZWJ1Zy9saWJweXRhbGxvYy11dGlsLnNvLjIuMS4xIgotRklMRVNfcHl0YWxsb2MtZGV2ID0gIiR7bGliZGlyfS9saWJweXRhbGxvYy11dGlsLnNvIgotUkRFUEVORFNfcHl0YWxsb2MgPSAicHl0aG9uIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRkYi9saWJ0ZGJfMS4zLjE0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRkYi9saWJ0ZGJfMS4zLjE0LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTIyYjkzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZGIvbGlidGRiXzEuMy4xNC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLVNVTU1BUlkgPSAiVGhlIHRkYiBsaWJyYXJ5IgotSE9NRVBBR0UgPSAiaHR0cDovL3RkYi5zYW1iYS5vcmcvIgotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJMR1BMLTMuMCsgJiBHUEwtMy4wKyIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vdG9vbHMvdGRiZHVtcC5jO2VuZGxpbmU9MTg7bWQ1PWI1OWNkNDVhYTg2MjQ1NzgxMjZhOGM5OGY0ODAxOGM0IFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2luY2x1ZGUvdGRiLmg7ZW5kbGluZT0yNzttZDU9ZjViYjU0NDY0MWQzMDgxODIxYmNjMWRkNTgzMTBiZTYiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9zYW1iYS5vcmcvZnRwL3RkYi90ZGItJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL2RvLW5vdC1jaGVjay14c2x0cHJvYy1tYW5wYWdlcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly90ZGItQWRkLWNvbmZpZ3VyZS1vcHRpb25zLWZvci1wYWNrYWdlcy5wYXRjaCBcCi0iCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJkZDIzZjJiYThjYTJiZmRjYjgzM2JjNzlkNWI1YWM2ZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIzYTdkNGJiNzkyMjk0NjBkZjUzMGM3ZTFjNzA2N2JhOWZiOWQzNzBhYTYxZmZmNTM3ZmRjMmJkZjkxOGFjYmU5IgotCi1QQUNLQUdFQ09ORklHID8/PSAiXAotICAgICR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ2FjbCcsIGQpfSBcCi0gICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4YXR0cicsICdhdHRyJywgJycsIGQpfSBcCi0iCi1QQUNLQUdFQ09ORklHW2FjbF0gPSAiLS13aXRoLWFjbCwtLXdpdGhvdXQtYWNsLGFjbCIKLVBBQ0tBR0VDT05GSUdbYXR0cl0gPSAiLS13aXRoLWF0dHIsLS13aXRob3V0LWF0dHIsYXR0ciIKLVBBQ0tBR0VDT05GSUdbbGliYWlvXSA9ICItLXdpdGgtbGliYWlvLC0td2l0aG91dC1saWJhaW8sbGliYWlvIgotUEFDS0FHRUNPTkZJR1tsaWJic2RdID0gIi0td2l0aC1saWJic2QsLS13aXRob3V0LWxpYmJzZCxsaWJic2QiCi1QQUNLQUdFQ09ORklHW2xpYmNhcF0gPSAiLS13aXRoLWxpYmNhcCwtLXdpdGhvdXQtbGliY2FwLGxpYmNhcCIKLVBBQ0tBR0VDT05GSUdbdmFsZ3JpbmRdID0gIi0td2l0aC12YWxncmluZCwtLXdpdGhvdXQtdmFsZ3JpbmQsdmFsZ3JpbmQiCi0KLVMgPSAiJHtXT1JLRElSfS90ZGItJHtQVn0iCi0KLWluaGVyaXQgd2FmLXNhbWJhCi0KLUVYVFJBX09FQ09ORiArPSAiLS1kaXNhYmxlLXJwYXRoIFwKLSAgICAgICAgICAgICAgICAgLS1idW5kbGVkLWxpYnJhcmllcz1OT05FIFwKLSAgICAgICAgICAgICAgICAgLS1idWlsdGluLWxpYnJhcmllcz1yZXBsYWNlIFwKLSAgICAgICAgICAgICAgICAgLS13aXRoLWxpYmljb252PSR7U1RBR0lOR19ESVJfSE9TVH0ke3ByZWZpeH1cCi0gICAgICAgICAgICAgICAgIgotCi1QQUNLQUdFUyArPSAidGRiLXRvb2xzIHB5dGhvbi10ZGIgcHl0aG9uLXRkYi1kYmciCi0KLUZJTEVTXyR7UE59ID0gIiR7bGliZGlyfS8qLnNvLioiCi1GSUxFU190ZGItdG9vbHMgPSAiJHtiaW5kaXJ9LyoiCi1GSUxFU19weXRob24tdGRiID0gIiR7bGliZGlyfS9weXRob24ke1BZVEhPTl9CQVNFVkVSU0lPTn0vc2l0ZS1wYWNrYWdlcy8qIgotRklMRVNfcHl0aG9uLXRkYi1kYmcgPSAiJHtsaWJkaXJ9L3B5dGhvbiR7UFlUSE9OX0JBU0VWRVJTSU9OfS9zaXRlLXBhY2thZ2VzLy5kZWJ1Zy8qIgotUkRFUEVORFNfcHl0aG9uLXRkYiA9ICJweXRob24iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGRiL2xpYnRkYl8xLjMuMTUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGRiL2xpYnRkYl8xLjMuMTUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzAyYTMwNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZGIvbGlidGRiXzEuMy4xNS5iYgpAQCAtMCwwICsxLDQ0IEBACitTVU1NQVJZID0gIlRoZSB0ZGIgbGlicmFyeSIKK0hPTUVQQUdFID0gImh0dHA6Ly90ZGIuc2FtYmEub3JnLyIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiTEdQTC0zLjArICYgR1BMLTMuMCsiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL3Rvb2xzL3RkYmR1bXAuYztlbmRsaW5lPTE4O21kNT1iNTljZDQ1YWE4NjI0NTc4MTI2YThjOThmNDgwMThjNCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9pbmNsdWRlL3RkYi5oO2VuZGxpbmU9Mjc7bWQ1PWY1YmI1NDQ2NDFkMzA4MTgyMWJjYzFkZDU4MzEwYmU2IgorCitTUkNfVVJJID0gImh0dHBzOi8vc2FtYmEub3JnL2Z0cC90ZGIvdGRiLSR7UFZ9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9kby1ub3QtY2hlY2steHNsdHByb2MtbWFucGFnZXMucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vdGRiLUFkZC1jb25maWd1cmUtb3B0aW9ucy1mb3ItcGFja2FnZXMucGF0Y2ggXAorIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNjBlY2UzOTk2YWNjOGQ4NWI2ZjcxMzE5OWRhOTcxYTYiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjRhMWJmMzgzMzYwMWJkOWYxMGFmZjM2M2NiNzUwODYwYWVmOWNlNWI0NjE3OTg5MjM5OTIzMTkyZjk0NjcyOCIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIlwKKyAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdhY2wnLCBkKX0gXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneGF0dHInLCAnYXR0cicsICcnLCBkKX0gXAorIgorUEFDS0FHRUNPTkZJR1thY2xdID0gIi0td2l0aC1hY2wsLS13aXRob3V0LWFjbCxhY2wiCitQQUNLQUdFQ09ORklHW2F0dHJdID0gIi0td2l0aC1hdHRyLC0td2l0aG91dC1hdHRyLGF0dHIiCitQQUNLQUdFQ09ORklHW2xpYmFpb10gPSAiLS13aXRoLWxpYmFpbywtLXdpdGhvdXQtbGliYWlvLGxpYmFpbyIKK1BBQ0tBR0VDT05GSUdbbGliYnNkXSA9ICItLXdpdGgtbGliYnNkLC0td2l0aG91dC1saWJic2QsbGliYnNkIgorUEFDS0FHRUNPTkZJR1tsaWJjYXBdID0gIi0td2l0aC1saWJjYXAsLS13aXRob3V0LWxpYmNhcCxsaWJjYXAiCitQQUNLQUdFQ09ORklHW3ZhbGdyaW5kXSA9ICItLXdpdGgtdmFsZ3JpbmQsLS13aXRob3V0LXZhbGdyaW5kLHZhbGdyaW5kIgorCitTID0gIiR7V09SS0RJUn0vdGRiLSR7UFZ9IgorCitpbmhlcml0IHdhZi1zYW1iYQorCitFWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1ycGF0aCBcCisgICAgICAgICAgICAgICAgIC0tYnVuZGxlZC1saWJyYXJpZXM9Tk9ORSBcCisgICAgICAgICAgICAgICAgIC0tYnVpbHRpbi1saWJyYXJpZXM9cmVwbGFjZSBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1saWJpY29udj0ke1NUQUdJTkdfRElSX0hPU1R9JHtwcmVmaXh9XAorICAgICAgICAgICAgICAgICIKKworUEFDS0FHRVMgKz0gInRkYi10b29scyBweXRob24tdGRiIHB5dGhvbi10ZGItZGJnIgorCitGSUxFU18ke1BOfSA9ICIke2xpYmRpcn0vKi5zby4qIgorRklMRVNfdGRiLXRvb2xzID0gIiR7YmluZGlyfS8qIgorRklMRVNfcHl0aG9uLXRkYiA9ICIke2xpYmRpcn0vcHl0aG9uJHtQWVRIT05fQkFTRVZFUlNJT059L3NpdGUtcGFja2FnZXMvKiIKK0ZJTEVTX3B5dGhvbi10ZGItZGJnID0gIiR7bGliZGlyfS9weXRob24ke1BZVEhPTl9CQVNFVkVSU0lPTn0vc2l0ZS1wYWNrYWdlcy8uZGVidWcvKiIKK1JERVBFTkRTX3B5dGhvbi10ZGIgPSAicHl0aG9uIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnQvYXZvaWQtYXR0ci11bmxlc3Mtd2FudGVkLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnQvYXZvaWQtYXR0ci11bmxlc3Mtd2FudGVkLnBhdGNoCmluZGV4IDJmYzU1MjMuLjM1ODkwMzMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZXZlbnQvbGlidGV2ZW50L2F2b2lkLWF0dHItdW5sZXNzLXdhbnRlZC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGV2ZW50L2xpYnRldmVudC9hdm9pZC1hdHRyLXVubGVzcy13YW50ZWQucGF0Y2gKQEAgLTEsMjAgKzEsMjIgQEAKLS0tLSBhL2xpYi9yZXBsYWNlL3dzY3JpcHQJMjAxNS0xMS0xOCAxNTo0MDoxOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBiL2xpYi9yZXBsYWNlL3dzY3JpcHQJMjAxNS0xMS0xOCAxNTo0ODowOS4wMDAwMDAwMDAgKzAxMDAKLUBAIC02MTgsOCArNjE4LDYgQEAKK2RpZmYgLS1naXQgYS9saWIvcmVwbGFjZS93c2NyaXB0IGIvbGliL3JlcGxhY2Uvd3NjcmlwdAoraW5kZXggMDc5NzYxZC4uMDdlMDEwNCAxMDA2NDQKKy0tLSBhL2xpYi9yZXBsYWNlL3dzY3JpcHQKKysrKyBiL2xpYi9yZXBsYWNlL3dzY3JpcHQKK0BAIC03OTMsOCArNzkzLDYgQEAgZGVmIGJ1aWxkKGJsZCk6CiAgICAgIGlmIG5vdCBibGQuQ09ORklHX1NFVCgnSEFWRV9JTkVUX0FUT04nKTogICAgIFJFUExBQ0VfU09VUkNFICs9ICcgaW5ldF9hdG9uLmMnCiAgICAgIGlmIG5vdCBibGQuQ09ORklHX1NFVCgnSEFWRV9JTkVUX05UT1AnKTogICAgIFJFUExBQ0VfU09VUkNFICs9ICcgaW5ldF9udG9wLmMnCiAgICAgIGlmIG5vdCBibGQuQ09ORklHX1NFVCgnSEFWRV9JTkVUX1BUT04nKTogICAgIFJFUExBQ0VfU09VUkNFICs9ICcgaW5ldF9wdG9uLmMnCiAtICAgIGlmIG5vdCBibGQuQ09ORklHX1NFVCgnSEFWRV9HRVRYQVRUUicpIG9yIGJsZC5DT05GSUdfU0VUKCdYQVRUUl9BRERJVElPTkFMX09QVElPTlMnKToKIC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVQTEFDRV9TT1VSQ0UgKz0gJyB4YXR0ci5jJwogIAotICAgICBibGQuU0FNQkFfTElCUkFSWSgncmVwbGFjZScsCi0gICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZT1SRVBMQUNFX1NPVVJDRSwKLUBAIC02MzAsNyArNjI4LDcgQEAKKyAgICAgaWYgbm90IGJsZC5DT05GSUdfU0VUKCdIQVZFX0NMT1NFRlJPTScpOgorICAgICAgICAgUkVQTEFDRV9TT1VSQ0UgKz0gJyBjbG9zZWZyb20uYycKK0BAIC04MDgsNyArODA2LDcgQEAgZGVmIGJ1aWxkKGJsZCk6CiAgICAgICAgICAgICAgICAgICAgICAgICMgYXQgdGhlIG1vbWVudDoKICAgICAgICAgICAgICAgICAgICAgICAgIyBoaWRlX3N5bWJvbHM9YmxkLkJVSUxUSU5fTElCUkFSWSgncmVwbGFjZScpLAogICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlX2xpYnJhcnk9VHJ1ZSwKIC0gICAgICAgICAgICAgICAgICAgICAgZGVwcz0nY3J5cHQgZGwgbnNsIHNvY2tldCBydCBhdHRyJyArIGV4dHJhX2xpYnMpCiArICAgICAgICAgICAgICAgICAgICAgIGRlcHM9J2NyeXB0IGRsIG5zbCBzb2NrZXQgcnQgJyArIGV4dHJhX2xpYnMpCiAgCi0gICAgIGJsZC5TQU1CQV9TVUJTWVNURU0oJ3JlcGxhY2UtdGVzdCcsCi0gICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZT0nJyd0ZXN0L3Rlc3RzdWl0ZS5jIHRlc3Qvc3RycHRpbWUuYworICAgICByZXBsYWNlX3Rlc3RfY2ZsYWdzPSItV25vLWZvcm1hdC16ZXJvLWxlbmd0aCIKKyAgICAgaWYgYmxkLkNPTkZJR19TRVQoJ0hBVkVfV05PX0ZPUk1BVF9UUlVOQ0FUSU9OJyk6CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGV2ZW50L2xpYnRldmVudC9vcHRpb25zLTAuOS4zNi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZXZlbnQvbGlidGV2ZW50L29wdGlvbnMtMC45LjM2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2M2M1ODYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGV2ZW50L2xpYnRldmVudC9vcHRpb25zLTAuOS4zNi5wYXRjaApAQCAtMCwwICsxLDE3NiBAQAorRnJvbSBjM2UyZTRmODljZjM3YjI3NjA5ZmQwMmFkNjdlYjAyZDAwMTVjYzFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFdlZCwgMjEgU2VwIDIwMTYgMDk6NTc6NDkgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCAxLzFdIHRldmVudDogQWRkIGNvbmZpZ3VyZSBvcHRpb25zIGZvciBwYWNrYWdlcworCitBZGQgY29uZmlndXJlIG9wdGlvbnMgZm9yIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6CisgLSBhY2wKKyAtIGF0dHIKKyAtIGxpYmFpbworIC0gbGliYnNkCisgLSBsaWJjYXAKKyAtIHZhbGdyaW5kCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbb2UgZGV0ZXJtaW5pc3RpYyBidWlsZCBzcGVjaWZpY10KKworU2lnbmVkLW9mZi1ieTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KKworTW9kaWZpZWQgdG8gYXBwbHkgdG8gdmVyc2lvbiAwLjkuMzMuCisKK1NpZ25lZC1vZmYtYnk6IEpvZSBTbGF0ZXIgPGpvZS5zbGF0ZXJAd2luZHJpdmVyLmNvbT4KKy0tLQorIGxpYi9yZXBsYWNlL3dzY3JpcHQgfCA4OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQorIHdzY3JpcHQgICAgICAgICAgICAgfCAgNyArKysrLQorIDIgZmlsZXMgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvcmVwbGFjZS93c2NyaXB0IGIvbGliL3JlcGxhY2Uvd3NjcmlwdAoraW5kZXggMmM2MzhiNy4uMDc5NzYxZCAxMDA2NDQKKy0tLSBhL2xpYi9yZXBsYWNlL3dzY3JpcHQKKysrKyBiL2xpYi9yZXBsYWNlL3dzY3JpcHQKK0BAIC0yMyw2ICsyMyw0MSBAQCBkZWYgc2V0X29wdGlvbnMob3B0KToKKyAgICAgb3B0LlBSSVZBVEVfRVhURU5TSU9OX0RFRkFVTFQoJycpCisgICAgIG9wdC5SRUNVUlNFKCdidWlsZHRvb2xzL3dhZnNhbWJhJykKKyAKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1hY2wnLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBhY2wiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2FjbCcpCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtYWNsJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGFjbCIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2FjbCcsIGRlZmF1bHQ9RmFsc2UpCisrCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtYXR0cicsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGF0dHIiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2F0dHInKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWF0dHInLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgYXR0ciIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2F0dHInLCBkZWZhdWx0PUZhbHNlKQorKworKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWxpYmFpbycsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGxpYmFpbyIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfbGliYWlvJykKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1saWJhaW8nLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgbGliYWlvIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfbGliYWlvJywgZGVmYXVsdD1GYWxzZSkKKysKKysgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1saWJic2QnLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBsaWJic2QiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2xpYmJzZCcpCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtbGliYnNkJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGxpYmJzZCIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2xpYmJzZCcsIGRlZmF1bHQ9RmFsc2UpCisrCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtbGliY2FwJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgbGliY2FwIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9saWJjYXAnKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWxpYmNhcCcsCisrICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBsaWJjYXAiKSwKKysgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9saWJjYXAnLCBkZWZhdWx0PUZhbHNlKQorKworIEBVdGlscy5ydW5fb25jZQorIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgIGNvbmYuUkVDVVJTRSgnYnVpbGR0b29scy93YWZzYW1iYScpCitAQCAtMzIsMTIgKzY3LDI1IEBAIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgIGNvbmYuREVGSU5FKCdIQVZFX0xJQlJFUExBQ0UnLCAxKQorICAgICBjb25mLkRFRklORSgnTElCUkVQTEFDRV9ORVRXT1JLX0NIRUNLUycsIDEpCisgCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGludXgvdHlwZXMuaCBjcnlwdC5oIGxvY2FsZS5oIGFjbC9saWJhY2wuaCBjb21wYXQuaCcpCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYWNsL2xpYmFjbC5oIGF0dHIveGF0dHIuaCBjb21wYXQuaCBjdHlwZS5oIGR1c3RhdC5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdsaW51eC90eXBlcy5oIGNyeXB0LmggbG9jYWxlLmggY29tcGF0LmgnKQorKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2NvbXBhdC5oIGN0eXBlLmggZHVzdGF0LmgnKQorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2ZjbnRsLmggZm5tYXRjaC5oIGdsb2IuaCBoaXN0b3J5Lmgga3JiNS5oIGxhbmdpbmZvLmgnKQorLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpYmFpby5oIGxvY2FsZS5oIG5kaXIuaCBwd2QuaCcpCistICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc2hhZG93Lmggc3lzL2FjbC5oJykKKy0gICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvYXR0cmlidXRlcy5oIGF0dHIvYXR0cmlidXRlcy5oIHN5cy9jYXBhYmlsaXR5Lmggc3lzL2Rpci5oIHN5cy9lcG9sbC5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdsb2NhbGUuaCBuZGlyLmggcHdkLmgnKQorKyAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3NoYWRvdy5oJykKKysgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvYXR0cmlidXRlcy5oIHN5cy9kaXIuaCBzeXMvZXBvbGwuaCcpCisrCisrICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfYWNsOgorKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdhY2wvbGliYWNsLmggc3lzL2FjbC5oJykKKysKKysgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9hdHRyOgorKyAgICAgICAgY29uZi5DSEVDS19IRUFERVJTKCdhdHRyL2F0dHJpYnV0ZXMuaCBhdHRyL3hhdHRyLmgnKQorKworKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmFpbzoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGliYWlvLmgnKQorKworKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmNhcDoKKysgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2NhcGFiaWxpdHkuaCcpCisrCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygncG9ydC5oJykKKyAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvZmNudGwuaCBzeXMvZmlsaW8uaCBzeXMvZmlsc3lzLmggc3lzL2ZzL3M1cGFyYW0uaCBzeXMvZnMvdngvcXVvdGEuaCcpCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2lkLmggc3lzL2lvY3RsLmggc3lzL2lwYy5oIHN5cy9tbWFuLmggc3lzL21vZGUuaCBzeXMvbmRpci5oIHN5cy9wcml2LmgnKQorQEAgLTEwMSw3ICsxNDksOCBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9maWxlaW8uaCBzeXMvZmlsZXN5cy5oIHN5cy9kdXN0YXQuaCBzeXMvc3lzbWFjcm9zLmgnKQorICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3hmcy9saWJ4ZnMuaCBuZXRncm91cC5oJykKKyAKKy0gICAgY29uZi5DSEVDS19IRUFERVJTKCd2YWxncmluZC5oIHZhbGdyaW5kL3ZhbGdyaW5kLmggdmFsZ3JpbmQvbWVtY2hlY2suaCcpCisrICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfdmFsZ3JpbmQ6CisrICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3ZhbGdyaW5kLmggdmFsZ3JpbmQvdmFsZ3JpbmQuaCB2YWxncmluZC9tZW1jaGVjay5oJykKKyAgICAgY29uZi5DSEVDS19IRUFERVJTKCduc3NfY29tbW9uLmggbnNzd2l0Y2guaCBuc19hcGkuaCcpCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2V4dGF0dHIuaCBzeXMvZWEuaCBzeXMvcHJvcGxpc3QuaCBzeXMvY2RlZnMuaCcpCisgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndXRtcC5oIHV0bXB4LmggbGFzdGxvZy5oJykKK0BAIC0yOTQsMjIgKzM0MywxOCBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgorIAorICAgICBjb25mLkNIRUNLX0ZVTkNTKCdwcmN0bCBkaXJuYW1lIGJhc2VuYW1lJykKKyAKKy0gICAgc3RybGNweV9pbl9ic2QgPSBGYWxzZQorLQorLSAgICAjIGxpYmJzZCBvbiBzb21lIHBsYXRmb3JtcyBwcm92aWRlcyBzdHJsY3B5IGFuZCBzdHJsY2F0CistICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdzdHJsY3B5IHN0cmxjYXQnKToKKy0gICAgICAgIGlmIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3N0cmxjcHkgc3RybGNhdCcsICdic2QnLCBoZWFkZXJzPSdic2Qvc3RyaW5nLmgnLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2xpYmM9VHJ1ZSk6CistICAgICAgICAgICAgc3RybGNweV9pbl9ic2QgPSBUcnVlCistICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdnZXRwZWVyZWlkJyk6CistICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdnZXRwZWVyZWlkJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCistICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnc2V0cHJvY3RpdGxlJywgaGVhZGVycz0nc2V0cHJvY3RpdGxlLmgnKToKKy0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdic2QnLCBoZWFkZXJzPSdzeXMvdHlwZXMuaCBic2QvdW5pc3RkLmgnKQorLSAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnc2V0cHJvY3RpdGxlX2luaXQnKToKKy0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZV9pbml0JywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCisrICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfbGliYnNkOgorKyAgICAgICAgIyBsaWJic2Qgb24gc29tZSBwbGF0Zm9ybXMgcHJvdmlkZXMgc3RybGNweSBhbmQgc3RybGNhdAorKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ3N0cmxjcHkgc3RybGNhdCcpOgorKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3N0cmxjcHkgc3RybGNhdCcsICdic2QnLCBoZWFkZXJzPSdic2Qvc3RyaW5nLmgnLAorKyAgICAgICAgICAgICAgICAgICAgY2hlY2tsaWJjPVRydWUpCisrICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnZ2V0cGVlcmVpZCcpOgorKyAgICAgICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2dldHBlZXJlaWQnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKKysgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnc2V0cHJvY3RpdGxlJywgaGVhZGVycz0nc2V0cHJvY3RpdGxlLmgnKToKKysgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzZXRwcm9jdGl0bGUnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKKyAKKy0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2Nsb3NlZnJvbScpOgorLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignY2xvc2Vmcm9tJywgJ2JzZCcsIGhlYWRlcnM9J2JzZC91bmlzdGQuaCcpCisrICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnY2xvc2Vmcm9tJyk6CisrICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignY2xvc2Vmcm9tJywgJ2JzZCcsIGhlYWRlcnM9J2JzZC91bmlzdGQuaCcpCisgCisgICAgIGNvbmYuQ0hFQ0tfQ09ERSgnJycKKyAgICAgICAgICAgICAgICAgc3RydWN0IHVjcmVkIGNyZWQ7CitAQCAtNjYwLDcgKzcwNSw3IEBAIHJlbW92ZWVhIHNldGVhCisgICAgICMgbG9vayBmb3IgYSBtZXRob2Qgb2YgZmluZGluZyB0aGUgbGlzdCBvZiBuZXR3b3JrIGludGVyZmFjZXMKKyAgICAgZm9yIG1ldGhvZCBpbiBbJ0hBVkVfSUZBQ0VfR0VUSUZBRERSUycsICdIQVZFX0lGQUNFX0FJWCcsICdIQVZFX0lGQUNFX0lGQ09ORicsICdIQVZFX0lGQUNFX0lGUkVRJ106CisgICAgICAgICBic2RfZm9yX3N0cmxjcHkgPSAnJworLSAgICAgICAgaWYgc3RybGNweV9pbl9ic2Q6CisrICAgICAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmJzZDoKKyAgICAgICAgICAgICBic2RfZm9yX3N0cmxjcHkgPSAnIGJzZCcKKyAgICAgICAgIGlmIGNvbmYuQ0hFQ0tfQ09ERSgnJycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZGVmaW5lICVzIDEKK2RpZmYgLS1naXQgYS93c2NyaXB0IGIvd3NjcmlwdAoraW5kZXggOTRkMTkwZi4uNzQyZjc3OSAxMDA2NDQKKy0tLSBhL3dzY3JpcHQKKysrKyBiL3dzY3JpcHQKK0BAIC0yMiw3ICsyMiwxMiBAQCBkZWYgc2V0X29wdGlvbnMob3B0KToKKyAgICAgb3B0LlBSSVZBVEVfRVhURU5TSU9OX0RFRkFVTFQoJ3RldmVudCcsIG5vZXh0ZW5zaW9uPSd0ZXZlbnQnKQorICAgICBvcHQuUkVDVVJTRSgnbGliL3JlcGxhY2UnKQorICAgICBvcHQuUkVDVVJTRSgnbGliL3RhbGxvYycpCistCisrICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtdmFsZ3JpbmQnLAorKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiZW5hYmxlIHVzZSBvZiB2YWxncmluZCIpLAorKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfdmFsZ3JpbmQnKQorKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LXZhbGdyaW5kJywKKysgICAgICAgICAgICAgICAgICAgaGVscD0oImRpc2FibGUgdXNlIG9mIHZhbGdyaW5kIiksCisrICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfdmFsZ3JpbmQnLCBkZWZhdWx0PUZhbHNlKQorIAorIGRlZiBjb25maWd1cmUoY29uZik6CisgICAgIGNvbmYuUkVDVVJTRSgnbGliL3JlcGxhY2UnKQorLS0gCisyLjE2LjIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnQvdGV2ZW50LUFkZC1jb25maWd1cmUtb3B0aW9ucy1mb3ItcGFja2FnZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGV2ZW50L2xpYnRldmVudC90ZXZlbnQtQWRkLWNvbmZpZ3VyZS1vcHRpb25zLWZvci1wYWNrYWdlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGRiOGU0ZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGV2ZW50L2xpYnRldmVudC90ZXZlbnQtQWRkLWNvbmZpZ3VyZS1vcHRpb25zLWZvci1wYWNrYWdlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE4MCArMCwwIEBACi1Gcm9tIGMwMGY2ZDM1YmRjMDZkZmZiNTRkYWE4MTVlNTdiNDQyMTBhNWRlMDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgotRGF0ZTogV2VkLCAyMSBTZXAgMjAxNiAwOTo1Nzo0OSArMDgwMAotU3ViamVjdDogW1BBVENIXSB0ZXZlbnQ6IEFkZCBjb25maWd1cmUgb3B0aW9ucyBmb3IgcGFja2FnZXMKLQotQWRkIGNvbmZpZ3VyZSBvcHRpb25zIGZvciB0aGUgZm9sbG93aW5nIHBhY2thZ2VzOgotIC0gYWNsCi0gLSBhdHRyCi0gLSBsaWJhaW8KLSAtIGxpYmJzZAotIC0gbGliY2FwCi0gLSB2YWxncmluZAotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW29lIGRldGVybWluaXN0aWMgYnVpbGQgc3BlY2lmaWNdCi0KLVNpZ25lZC1vZmYtYnk6IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBsaWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUgfCAgNiArKy0KLSBsaWIvcmVwbGFjZS93c2NyaXB0ICAgICAgICAgICAgICAgICAgfCA4NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KLSB3c2NyaXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNyArKy0KLSAzIGZpbGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQotIG1vZGUgY2hhbmdlIDEwMDc1NSA9PiAxMDA2NDQgd3NjcmlwdAotCi1kaWZmIC0tZ2l0IGEvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlIGIvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlCi1pbmRleCAyMDM1NDc0Li4xMGY5YWU3IDEwMDY0NAotLS0tIGEvbGliL3JlcGxhY2Uvc3lzdGVtL3dzY3JpcHRfY29uZmlndXJlCi0rKysgYi9saWIvcmVwbGFjZS9zeXN0ZW0vd3NjcmlwdF9jb25maWd1cmUKLUBAIC0xLDYgKzEsMTAgQEAKLSAjIS91c3IvYmluL2VudiBweXRob24KLSAKLS1jb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQotK2ltcG9ydCBPcHRpb25zCi0rCi0raWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJjYXA6Ci0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2NhcGFiaWxpdHkuaCcpCi0rCi0gY29uZi5DSEVDS19GVU5DUygnZ2V0cHduYW1fciBnZXRwd3VpZF9yIGdldHB3ZW50X3InKQotIAotICMgc29sYXJpcyB2YXJpZW50cyBvZiBnZXRYWGVudF9yCi1kaWZmIC0tZ2l0IGEvbGliL3JlcGxhY2Uvd3NjcmlwdCBiL2xpYi9yZXBsYWNlL3dzY3JpcHQKLWluZGV4IGZjNDNlMWEuLjEyZDJhNzAgMTAwNjQ0Ci0tLS0gYS9saWIvcmVwbGFjZS93c2NyaXB0Ci0rKysgYi9saWIvcmVwbGFjZS93c2NyaXB0Ci1AQCAtMjMsNiArMjMsNDEgQEAgZGVmIHNldF9vcHRpb25zKG9wdCk6Ci0gICAgIG9wdC5QUklWQVRFX0VYVEVOU0lPTl9ERUZBVUxUKCcnKQotICAgICBvcHQuUkVDVVJTRSgnYnVpbGR0b29scy93YWZzYW1iYScpCi0gCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtYWNsJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgYWNsIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9hY2wnKQotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWFjbCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBhY2wiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9hY2wnLCBkZWZhdWx0PUZhbHNlKQotKwotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWF0dHInLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBhdHRyIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9hdHRyJykKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1hdHRyJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGF0dHIiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9hdHRyJywgZGVmYXVsdD1GYWxzZSkKLSsKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC1saWJhaW8nLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRW5hYmxlIHVzZSBvZiBsaWJhaW8iKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0nZW5hYmxlX2xpYmFpbycpCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGhvdXQtbGliYWlvJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkRpc2FibGUgdXNlIG9mIGxpYmFpbyIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0nZW5hYmxlX2xpYmFpbycsIGRlZmF1bHQ9RmFsc2UpCi0rCi0rICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtbGliYnNkJywKLSsgICAgICAgICAgICAgICAgICAgaGVscD0oIkVuYWJsZSB1c2Ugb2YgbGliYnNkIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9J2VuYWJsZV9saWJic2QnKQotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRob3V0LWxpYmJzZCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJEaXNhYmxlIHVzZSBvZiBsaWJic2QiKSwKLSsgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9J2VuYWJsZV9saWJic2QnLCBkZWZhdWx0PUZhbHNlKQotKwotKyAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLWxpYmNhcCcsCi0rICAgICAgICAgICAgICAgICAgIGhlbHA9KCJFbmFibGUgdXNlIG9mIGxpYmNhcCIpLAotKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfbGliY2FwJykKLSsgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC1saWJjYXAnLAotKyAgICAgICAgICAgICAgICAgICBoZWxwPSgiRGlzYWJsZSB1c2Ugb2YgbGliY2FwIiksCi0rICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfbGliY2FwJywgZGVmYXVsdD1GYWxzZSkKLSsKLSBAVXRpbHMucnVuX29uY2UKLSBkZWYgY29uZmlndXJlKGNvbmYpOgotICAgICBjb25mLlJFQ1VSU0UoJ2J1aWxkdG9vbHMvd2Fmc2FtYmEnKQotQEAgLTMyLDEyICs2NywyNSBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgotICAgICBjb25mLkRFRklORSgnSEFWRV9MSUJSRVBMQUNFJywgMSkKLSAgICAgY29uZi5ERUZJTkUoJ0xJQlJFUExBQ0VfTkVUV09SS19DSEVDS1MnLCAxKQotIAotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpbnV4L3R5cGVzLmggY3J5cHQuaCBsb2NhbGUuaCBhY2wvbGliYWNsLmggY29tcGF0LmgnKQotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2FjbC9saWJhY2wuaCBhdHRyL3hhdHRyLmggY29tcGF0LmggY3R5cGUuaCBkdXN0YXQuaCcpCi0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbGludXgvdHlwZXMuaCBjcnlwdC5oIGxvY2FsZS5oIGNvbXBhdC5oJykKLSsgICAgY29uZi5DSEVDS19IRUFERVJTKCdjb21wYXQuaCBjdHlwZS5oIGR1c3RhdC5oJykKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCdmY250bC5oIGZubWF0Y2guaCBnbG9iLmggaGlzdG9yeS5oIGtyYjUuaCBsYW5naW5mby5oJykKLS0gICAgY29uZi5DSEVDS19IRUFERVJTKCdsaWJhaW8uaCBsb2NhbGUuaCBuZGlyLmggcHdkLmgnKQotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3NoYWRvdy5oIHN5cy9hY2wuaCcpCi0tICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2F0dHJpYnV0ZXMuaCBhdHRyL2F0dHJpYnV0ZXMuaCBzeXMvY2FwYWJpbGl0eS5oIHN5cy9kaXIuaCBzeXMvZXBvbGwuaCcpCi0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnbG9jYWxlLmggbmRpci5oIHB3ZC5oJykKLSsgICAgY29uZi5DSEVDS19IRUFERVJTKCdzaGFkb3cuaCcpCi0rICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2F0dHJpYnV0ZXMuaCBzeXMvZGlyLmggc3lzL2Vwb2xsLmgnKQotKwotKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2FjbDoKLSsgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYWNsL2xpYmFjbC5oIHN5cy9hY2wuaCcpCi0rCi0rICAgIGlmIE9wdGlvbnMub3B0aW9ucy5lbmFibGVfYXR0cjoKLSsgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnYXR0ci9hdHRyaWJ1dGVzLmggYXR0ci94YXR0ci5oJykKLSsKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJhaW86Ci0rICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ2xpYmFpby5oJykKLSsKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV9saWJjYXA6Ci0rICAgICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9jYXBhYmlsaXR5LmgnKQotKwotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3BvcnQuaCcpCi0gICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygnc3lzL2ZjbnRsLmggc3lzL2ZpbGlvLmggc3lzL2ZpbHN5cy5oIHN5cy9mcy9zNXBhcmFtLmggc3lzL2ZzL3Z4L3F1b3RhLmgnKQotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3N5cy9pZC5oIHN5cy9pb2N0bC5oIHN5cy9pcGMuaCBzeXMvbW1hbi5oIHN5cy9tb2RlLmggc3lzL25kaXIuaCBzeXMvcHJpdi5oJykKLUBAIC03Myw3ICsxMjEsOSBAQCBkZWYgY29uZmlndXJlKGNvbmYpOgotIAotICAgICBjb25mLkNIRUNLX0NPREUoJycsIGhlYWRlcnM9J3JwYy9ycGMuaCBycGNzdmMveXBfcHJvdC5oJywgZGVmaW5lPSdIQVZFX1JQQ1NWQ19ZUF9QUk9UX0gnKQotIAotLSAgICBjb25mLkNIRUNLX0hFQURFUlMoJ3ZhbGdyaW5kLmggdmFsZ3JpbmQvdmFsZ3JpbmQuaCB2YWxncmluZC9tZW1jaGVjay5oJykKLSsgICAgaWYgT3B0aW9ucy5vcHRpb25zLmVuYWJsZV92YWxncmluZDoKLSsgICAgICAgIGNvbmYuQ0hFQ0tfSEVBREVSUygndmFsZ3JpbmQuaCB2YWxncmluZC92YWxncmluZC5oIHZhbGdyaW5kL21lbWNoZWNrLmgnKQotKwotICAgICBjb25mLkNIRUNLX0hFQURFUlMoJ25zc19jb21tb24uaCBuc3N3aXRjaC5oIG5zX2FwaS5oJykKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCdzeXMvZXh0YXR0ci5oIHN5cy9lYS5oIHN5cy9wcm9wbGlzdC5oIHN5cy9jZGVmcy5oJykKLSAgICAgY29uZi5DSEVDS19IRUFERVJTKCd1dG1wLmggdXRtcHguaCBsYXN0bG9nLmgnKQotQEAgLTI0OCwxNyArMjk4LDE4IEBAIGRlZiBjb25maWd1cmUoY29uZik6Ci0gCi0gICAgIGNvbmYuQ0hFQ0tfRlVOQ1MoJ3ByY3RsIGRpcm5hbWUgYmFzZW5hbWUnKQotIAotLSAgICAjIGxpYmJzZCBvbiBzb21lIHBsYXRmb3JtcyBwcm92aWRlcyBzdHJsY3B5IGFuZCBzdHJsY2F0Ci0tICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdzdHJsY3B5IHN0cmxjYXQnKToKLS0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3N0cmxjcHkgc3RybGNhdCcsICdic2QnLCBoZWFkZXJzPSdic2Qvc3RyaW5nLmgnLAotLSAgICAgICAgICAgICAgICBjaGVja2xpYmM9VHJ1ZSkKLS0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2dldHBlZXJlaWQnKToKLS0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2dldHBlZXJlaWQnLCAnYnNkJywgaGVhZGVycz0nc3lzL3R5cGVzLmggYnNkL3VuaXN0ZC5oJykKLS0gICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ3NldHByb2N0aXRsZScsICdzZXRwcm9jdGl0bGUnLCBoZWFkZXJzPSdzZXRwcm9jdGl0bGUuaCcpOgotLSAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCi0tCi0tICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdjbG9zZWZyb20nKToKLS0gICAgICAgIGNvbmYuQ0hFQ0tfRlVOQ1NfSU4oJ2Nsb3NlZnJvbScsICdic2QnLCBoZWFkZXJzPSdic2QvdW5pc3RkLmgnKQotKyAgICBpZiBPcHRpb25zLm9wdGlvbnMuZW5hYmxlX2xpYmJzZDoKLSsgICAgICAgICMgbGliYnNkIG9uIHNvbWUgcGxhdGZvcm1zIHByb3ZpZGVzIHN0cmxjcHkgYW5kIHN0cmxjYXQKLSsgICAgICAgIGlmIG5vdCBjb25mLkNIRUNLX0ZVTkNTKCdzdHJsY3B5IHN0cmxjYXQnKToKLSsgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdzdHJsY3B5IHN0cmxjYXQnLCAnYnNkJywgaGVhZGVycz0nYnNkL3N0cmluZy5oJywKLSsgICAgICAgICAgICAgICAgICAgIGNoZWNrbGliYz1UcnVlKQotKyAgICAgICAgaWYgbm90IGNvbmYuQ0hFQ0tfRlVOQ1MoJ2dldHBlZXJlaWQnKToKLSsgICAgICAgICAgICBjb25mLkNIRUNLX0ZVTkNTX0lOKCdnZXRwZWVyZWlkJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCi0rICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ3NldHByb2N0aXRsZScsIGhlYWRlcnM9J3NldHByb2N0aXRsZS5oJyk6Ci0rICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignc2V0cHJvY3RpdGxlJywgJ2JzZCcsIGhlYWRlcnM9J3N5cy90eXBlcy5oIGJzZC91bmlzdGQuaCcpCi0rCi0rICAgICAgICBpZiBub3QgY29uZi5DSEVDS19GVU5DUygnY2xvc2Vmcm9tJyk6Ci0rICAgICAgICAgICAgY29uZi5DSEVDS19GVU5DU19JTignY2xvc2Vmcm9tJywgJ2JzZCcsIGhlYWRlcnM9J2JzZC91bmlzdGQuaCcpCi0gCi0gICAgIGNvbmYuQ0hFQ0tfQ09ERSgnJycKLSAgICAgICAgICAgICAgICAgc3RydWN0IHVjcmVkIGNyZWQ7Ci1kaWZmIC0tZ2l0IGEvd3NjcmlwdCBiL3dzY3JpcHQKLW9sZCBtb2RlIDEwMDc1NQotbmV3IG1vZGUgMTAwNjQ0Ci1pbmRleCA3MWI5NDc1Li41MDc5M2RiCi0tLS0gYS93c2NyaXB0Ci0rKysgYi93c2NyaXB0Ci1AQCAtMjYsNyArMjYsMTIgQEAgZGVmIHNldF9vcHRpb25zKG9wdCk6Ci0gICAgICAgICBvcHQuYWRkX29wdGlvbignLS1kaXNhYmxlLXB5dGhvbicsCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgiZGlzYWJsZSB0aGUgcHl0ZXZlbnQgbW9kdWxlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdkaXNhYmxlX3B5dGhvbicsIGRlZmF1bHQ9RmFsc2UpCi0tCi0rICAgICAgICBvcHQuYWRkX29wdGlvbignLS13aXRoLXZhbGdyaW5kJywKLSsgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCJlbmFibGUgdXNlIG9mIHZhbGdyaW5kIiksCi0rICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdlbmFibGVfdmFsZ3JpbmQnKQotKyAgICAgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aG91dC12YWxncmluZCcsCi0rICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgiZGlzYWJsZSB1c2Ugb2YgdmFsZ3JpbmQiKSwKLSsgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSdlbmFibGVfdmFsZ3JpbmQnLCBkZWZhdWx0PUZhbHNlKQotIAotIGRlZiBjb25maWd1cmUoY29uZik6Ci0gICAgIGNvbmYuUkVDVVJTRSgnbGliL3JlcGxhY2UnKQotLS0gCi0yLjguMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGV2ZW50L2xpYnRldmVudF8wLjkuMzEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGV2ZW50L2xpYnRldmVudF8wLjkuMzEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkNzExZTcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnRfMC45LjMxLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotU1VNTUFSWSA9ICJIaWVyYXJjaGljYWwsIHJlZmVyZW5jZSBjb3VudGVkIG1lbW9yeSBwb29sIHN5c3RlbSB3aXRoIGRlc3RydWN0b3JzIgotSE9NRVBBR0UgPSAiaHR0cDovL3RldmVudC5zYW1iYS5vcmciCi1TRUNUSU9OID0gImxpYnMiCi1MSUNFTlNFID0gIkxHUEx2MysiCi0KLURFUEVORFMgKz0gImxpYnRhbGxvYyIKLVJERVBFTkRTX3B5dGhvbi10ZXZlbnQgPSAicHl0aG9uIgotCi1TUkNfVVJJID0gImh0dHBzOi8vc2FtYmEub3JnL2Z0cC90ZXZlbnQvdGV2ZW50LSR7UFZ9LnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly90ZXZlbnQtQWRkLWNvbmZpZ3VyZS1vcHRpb25zLWZvci1wYWNrYWdlcy5wYXRjaCBcCi0iCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly90ZXZlbnQuaDtlbmRsaW5lPTI2O21kNT00ZTQ1OGQ2NThjYjI1ZTIxZWZjMTZmNzIwZTc4Yjg1YSIKLQotU1JDX1VSSVttZDVzdW1dID0gIjU0NTM4NDc2NjRhZTZiYzRlYzAxNTNlNTlhYzYzNWI5IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjRhMTNmMjI1NmFkODA0Yzg2MGU4NDA2ODI1OGJkMGY4YmUzMWNmMGM3OWFhOGYzMDE5ZmEzMmY2OTI4YzJiZmMiCi0KLWluaGVyaXQgd2FmLXNhbWJhCi0KLVBBQ0tBR0VDT05GSUcgPz89ICJcCi0gICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnYWNsJywgZCl9IFwKLSAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3hhdHRyJywgJ2F0dHInLCAnJywgZCl9IFwKLSIKLVBBQ0tBR0VDT05GSUdbYWNsXSA9ICItLXdpdGgtYWNsLC0td2l0aG91dC1hY2wsYWNsIgotUEFDS0FHRUNPTkZJR1thdHRyXSA9ICItLXdpdGgtYXR0ciwtLXdpdGhvdXQtYXR0cixhdHRyIgotUEFDS0FHRUNPTkZJR1tsaWJhaW9dID0gIi0td2l0aC1saWJhaW8sLS13aXRob3V0LWxpYmFpbyxsaWJhaW8iCi1QQUNLQUdFQ09ORklHW2xpYmJzZF0gPSAiLS13aXRoLWxpYmJzZCwtLXdpdGhvdXQtbGliYnNkLGxpYmJzZCIKLVBBQ0tBR0VDT05GSUdbbGliY2FwXSA9ICItLXdpdGgtbGliY2FwLC0td2l0aG91dC1saWJjYXAsbGliY2FwIgotUEFDS0FHRUNPTkZJR1t2YWxncmluZF0gPSAiLS13aXRoLXZhbGdyaW5kLC0td2l0aG91dC12YWxncmluZCx2YWxncmluZCIKLQotU1JDX1VSSSArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnYXR0cicsICcnLCAnZmlsZTovL2F2b2lkLWF0dHItdW5sZXNzLXdhbnRlZC5wYXRjaCcsIGQpfSIKLQotUyA9ICIke1dPUktESVJ9L3RldmVudC0ke1BWfSIKLQotRVhUUkFfT0VDT05GICs9ICItLWRpc2FibGUtcnBhdGggXAotICAgICAgICAgICAgICAgICAtLWJ1bmRsZWQtbGlicmFyaWVzPU5PTkUgXAotICAgICAgICAgICAgICAgICAtLWJ1aWx0aW4tbGlicmFyaWVzPXJlcGxhY2UgXAotICAgICAgICAgICAgICAgICAtLXdpdGgtbGliaWNvbnY9JHtTVEFHSU5HX0RJUl9IT1NUfSR7cHJlZml4fVwKLSAgICAgICAgICAgICAgICAgLS13aXRob3V0LWdldHRleHQgXAotICAgICAgICAgICAgICAgICIKLQotUEFDS0FHRVMgKz0gInB5dGhvbi10ZXZlbnQgcHl0aG9uLXRldmVudC1kYmciCi0KLUZJTEVTX3B5dGhvbi10ZXZlbnQgPSAiJHtsaWJkaXJ9L3B5dGhvbiR7UFlUSE9OX0JBU0VWRVJTSU9OfS9zaXRlLXBhY2thZ2VzLyoiCi1GSUxFU19weXRob24tdGV2ZW50LWRiZyA9ICIke2xpYmRpcn0vcHl0aG9uJHtQWVRIT05fQkFTRVZFUlNJT059L3NpdGUtcGFja2FnZXMvLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnRfMC45LjM2LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xpYnRldmVudC9saWJ0ZXZlbnRfMC45LjM2LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5MWIyMjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGlidGV2ZW50L2xpYnRldmVudF8wLjkuMzYuYmIKQEAgLTAsMCArMSw0NCBAQAorU1VNTUFSWSA9ICJIaWVyYXJjaGljYWwsIHJlZmVyZW5jZSBjb3VudGVkIG1lbW9yeSBwb29sIHN5c3RlbSB3aXRoIGRlc3RydWN0b3JzIgorSE9NRVBBR0UgPSAiaHR0cDovL3RldmVudC5zYW1iYS5vcmciCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkxHUEx2MysiCisKK0RFUEVORFMgKz0gImxpYnRhbGxvYyBsaWJ0aXJwYyIKK1JERVBFTkRTX3B5dGhvbi10ZXZlbnQgPSAicHl0aG9uIgorCitTUkNfVVJJID0gImh0dHBzOi8vc2FtYmEub3JnL2Z0cC90ZXZlbnQvdGV2ZW50LSR7UFZ9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9vcHRpb25zLTAuOS4zNi5wYXRjaCBcCisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly90ZXZlbnQuaDtlbmRsaW5lPTI2O21kNT00ZTQ1OGQ2NThjYjI1ZTIxZWZjMTZmNzIwZTc4Yjg1YSIKKworU1JDX1VSSVttZDVzdW1dID0gIjg3ZDY3YmNhNzViMjMxODE0NDM1YzQ3YmVjMGFmZjhhIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImJkMmI2YmUzZmQxNjAxZWQ3ZjE3NmU5OTExMWUzMjJjNTdkNThlNDI1Y2MxNDllZTgwYzdkZDRmZWQyNjNiNGMiCisKK2luaGVyaXQgd2FmLXNhbWJhCisKK1BBQ0tBR0VDT05GSUcgPz89ICJcCisgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnYWNsJywgZCl9IFwKKyAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3hhdHRyJywgJ2F0dHInLCAnJywgZCl9IFwKKyIKK1BBQ0tBR0VDT05GSUdbYWNsXSA9ICItLXdpdGgtYWNsLC0td2l0aG91dC1hY2wsYWNsIgorUEFDS0FHRUNPTkZJR1thdHRyXSA9ICItLXdpdGgtYXR0ciwtLXdpdGhvdXQtYXR0cixhdHRyIgorUEFDS0FHRUNPTkZJR1tsaWJhaW9dID0gIi0td2l0aC1saWJhaW8sLS13aXRob3V0LWxpYmFpbyxsaWJhaW8iCitQQUNLQUdFQ09ORklHW2xpYmJzZF0gPSAiLS13aXRoLWxpYmJzZCwtLXdpdGhvdXQtbGliYnNkLGxpYmJzZCIKK1BBQ0tBR0VDT05GSUdbbGliY2FwXSA9ICItLXdpdGgtbGliY2FwLC0td2l0aG91dC1saWJjYXAsbGliY2FwIgorUEFDS0FHRUNPTkZJR1t2YWxncmluZF0gPSAiLS13aXRoLXZhbGdyaW5kLC0td2l0aG91dC12YWxncmluZCx2YWxncmluZCIKKworU1JDX1VSSSArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnYXR0cicsICcnLCAnZmlsZTovL2F2b2lkLWF0dHItdW5sZXNzLXdhbnRlZC5wYXRjaCcsIGQpfSIKKworUyA9ICIke1dPUktESVJ9L3RldmVudC0ke1BWfSIKKworRVhUUkFfT0VDT05GICs9ICItLWRpc2FibGUtcnBhdGggXAorICAgICAgICAgICAgICAgICAtLWJ1bmRsZWQtbGlicmFyaWVzPU5PTkUgXAorICAgICAgICAgICAgICAgICAtLWJ1aWx0aW4tbGlicmFyaWVzPXJlcGxhY2UgXAorICAgICAgICAgICAgICAgICAtLXdpdGgtbGliaWNvbnY9JHtTVEFHSU5HX0RJUl9IT1NUfSR7cHJlZml4fVwKKyAgICAgICAgICAgICAgICAgLS13aXRob3V0LWdldHRleHQgXAorICAgICAgICAgICAgICAgICIKKworUEFDS0FHRVMgKz0gInB5dGhvbi10ZXZlbnQgcHl0aG9uLXRldmVudC1kYmciCisKK0ZJTEVTX3B5dGhvbi10ZXZlbnQgPSAiJHtsaWJkaXJ9L3B5dGhvbiR7UFlUSE9OX0JBU0VWRVJTSU9OfS9zaXRlLXBhY2thZ2VzLyoiCitGSUxFU19weXRob24tdGV2ZW50LWRiZyA9ICIke2xpYmRpcn0vcHl0aG9uJHtQWVRIT05fQkFTRVZFUlNJT059L3NpdGUtcGFja2FnZXMvLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xrc2N0cC10b29scy9sa3NjdHAtdG9vbHNfMS4wLjE3LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xrc2N0cC10b29scy9sa3NjdHAtdG9vbHNfMS4wLjE3LmJiCmluZGV4IDExYzQzZmYuLjEyMWNjOTkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9sa3NjdHAtdG9vbHMvbGtzY3RwLXRvb2xzXzEuMC4xNy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbGtzY3RwLXRvb2xzL2xrc2N0cC10b29sc18xLjAuMTcuYmIKQEAgLTgsMjIgKzgsMTkgQEAKICAgICBmaWxlOi8vQ09QWUlORzttZDU9MGM1NmRiMDE0M2Y0ZjgwYzM2OWVlM2FmNzQyNWFmNmUgXAogIgogCi1TUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9sa3NjdHAvJHtCUH0udGFyLmd6IFwKK1NSQ1JFViA9ICI3MzZiOTFkMzQwZTNmMjUxOTcxNGYyOTMwZWQ2M2IxNjRkMzYzNTExIgorCitQViAuPSAiK2dpdCR7U1JDUFZ9IgorTEtfUkVMID0gIjEuMC4xNyIKKworU1JDX1VSSSA9ICIgXAorICAgIGdpdDovL2dpdGh1Yi5jb20vc2N0cC9sa3NjdHAtdG9vbHMuZ2l0IFwKICAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKICAgICBmaWxlOi8vdjR0ZXN0LnNoIFwKICAgICBmaWxlOi8vdjZ0ZXN0LnNoIFwKICIKIAotU1JDX1VSSVttZDVzdW1dID0gIjY4ZTliOGZhNGQ0ZTMzMTAyOWIyNDdiNzJkNDZkN2E1IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjFhZWIyMDRjZGIyYmVmYzk0ZDllYjMwMzdkMTYwOWM5ZDFkMmNkNTM3OWQ2ZGQyYzBhOGNhOWIxMDUzM2FhMTUiCi0KLSN8IGFybS1vZS1saW51eC1nbnVlYWJpLWxpYnRvb2w6IGxpbms6IGFybS1vZS1saW51eC1nbnVlYWJpLWdjYyAgLW1hcmNoPWFybXY1dGUgLW1hcm0gLW10aHVtYi1pbnRlcndvcmsgLS1zeXNyb290PS9ob21lL2plbmtpbnMvb2Uvd29ybGQvc2hyLWNvcmUvdG1wLWVnbGliYy9zeXNyb290cy9xZW11YXJtIC1zaGFyZWQgIC1mUElDIC1EUElDICAubGlicy9iaW5keC5vIC5saWJzL2Nvbm5lY3R4Lm8gLmxpYnMvcGVlbG9mZi5vIC5saWJzL29wdF9pbmZvLm8gLmxpYnMvYWRkcnMubyAubGlicy9zZW5kbXNnLm8gLmxpYnMvcmVjdm1zZy5vICAgIC1tYXJjaD1hcm12NXRlIC1tYXJtIC1tdGh1bWItaW50ZXJ3b3JrIC0tc3lzcm9vdD0vaG9tZS9qZW5raW5zL29lL3dvcmxkL3Noci1jb3JlL3RtcC1lZ2xpYmMvc3lzcm9vdHMvcWVtdWFybSAtTzIgLVdsLC0tdmVyc2lvbi1zY3JpcHQ9L2hvbWUvamVua2lucy9vZS93b3JsZC9zaHItY29yZS90bXAtZWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL2xrc2N0cC10b29scy8xLjAuMTYtcjAvbGtzY3RwLXRvb2xzLTEuMC4xNi9zcmMvbGliL1ZlcnNpb25zLm1hcCAtV2wsLU8xIC1XbCwtLWhhc2gtc3R5bGU9Z251IC1XbCwtLWFzLW5lZWRlZCAgIC1XbCwtc29uYW1lIC1XbCxsaWJzY3RwLnNvLjEgLW8gLmxpYnMvbGlic2N0cC5zby4xLjAuMTYKLSN8IC9ob21lL2plbmtpbnMvb2Uvd29ybGQvc2hyLWNvcmUvdG1wLWVnbGliYy9zeXNyb290cy94ODZfNjQtbGludXgvdXNyL2xpYmV4ZWMvYXJtLW9lLWxpbnV4LWdudWVhYmkvZ2NjL2FybS1vZS1saW51eC1nbnVlYWJpLzQuOS4wL2xkOiBlcnJvcjogc3ltYm9sIHNjdHBfY29ubmVjdHggaGFzIHVuZGVmaW5lZCB2ZXJzaW9uCi0jfCBjb2xsZWN0MjogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKLSN8IG1ha2VbNF06ICoqKiBbbGlic2N0cC5sYV0gRXJyb3IgMQotUE5CTEFDS0xJU1RbbGtzY3RwLXRvb2xzXSA/PSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdsZC1pcy1nb2xkJywgIkJST0tFTjogZmFpbHMgdG8gbGluayBhZ2FpbnN0IHNjdHBfY29ubmVjdHggc3ltYm9sIiwgJycsIGQpfSIKLQotUyA9ICIke1dPUktESVJ9LyR7QlB9IgorUyA9ICIke1dPUktESVJ9L2dpdCIKIAogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCiAKQEAgLTM3LDcgKzM0LDcgQEAKICAgICBkb25lCiB9CiAKLVNPTElCVkVSU0lPTj0iJHtQVn0iCitTT0xJQlZFUlNJT049IiR7TEtfUkVMfSIKIFNPTElCTUFKT1JWRVJTSU9OPSIxIgogCiBQQUNLQUdFUyA9KyAiJHtQTn0td2l0aHNjdHAgJHtQTn0tdXRpbHMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbG93cGFuLXRvb2xzL2xvd3Bhbi10b29scy8wMDAxLWNvb3JkaW5hdG9yLUZpeC1zdHJuY3B5LXJhbmdlLXdhcm5pbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbG93cGFuLXRvb2xzL2xvd3Bhbi10b29scy8wMDAxLWNvb3JkaW5hdG9yLUZpeC1zdHJuY3B5LXJhbmdlLXdhcm5pbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkzODMyYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9sb3dwYW4tdG9vbHMvbG93cGFuLXRvb2xzLzAwMDEtY29vcmRpbmF0b3ItRml4LXN0cm5jcHktcmFuZ2Utd2FybmluZy5wYXRjaApAQCAtMCwwICsxLDMwIEBACitGcm9tIGYwMTczNTNiOGYzMTcwY2U3OWU3YWRkYzEyNzA1NmMwMTQyZjA4N2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogU3VuLCAxIEFwciAyMDE4IDE0OjMxOjA1IC0wNzAwCitTdWJqZWN0OiBbUEFUQ0hdIGNvb3JkaW5hdG9yOiBGaXggc3RybmNweSByYW5nZSB3YXJuaW5nCisKK0ZpeGVzCitlcnJvcjogJ3N0cm5jcHknIHNwZWNpZmllZCBib3VuZCA0MDk2IGVxdWFscyBkZXN0aW5hdGlvbiBzaXplIFstV2Vycm9yPXN0cmluZ29wLXRydW5jYXRpb25dCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CistLS0KKyBzcmMvY29vcmRpbmF0b3IuYyB8IDUgKysrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2Nvb3JkaW5hdG9yLmMgYi9zcmMvY29vcmRpbmF0b3IuYworaW5kZXggYzEzOWFhZS4uY2E0OTQxOCAxMDA2NDQKKy0tLSBhL3NyYy9jb29yZGluYXRvci5jCisrKysgYi9zcmMvY29vcmRpbmF0b3IuYworQEAgLTI5Niw3ICsyOTYsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisgCWlmKCFsZWFzZV9maWxlKQorIAkJbGVhc2VfZmlsZSA9IExFQVNFX0ZJTEU7CisgCistCXN0cm5jcHkocG5hbWUsIGFyZ3ZbMF0sIFBBVEhfTUFYKTsKKysJc3RybmNweShwbmFtZSwgYXJndlswXSwgUEFUSF9NQVggLSAxKTsKKysJcG5hbWVbUEFUSF9NQVggLSAxXSA9ICdcMCc7CisgCisgCXBpZF9maWxlID0gZ2V0ZW52KCJQSURfRklMRSIpOworIAlpZiAoIXBpZF9maWxlKQorLS0gCisyLjE2LjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xvd3Bhbi10b29scy9sb3dwYW4tdG9vbHNfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L2xvd3Bhbi10b29scy9sb3dwYW4tdG9vbHNfZ2l0LmJiCmluZGV4IGJlNzNmOGEuLmQwZmU1OWMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9sb3dwYW4tdG9vbHMvbG93cGFuLXRvb2xzX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbG93cGFuLXRvb2xzL2xvd3Bhbi10b29sc19naXQuYmIKQEAgLTgsMTQgKzgsMTUgQEAKIERFUEVORFMgPSAiZmxleC1uYXRpdmUgYmlzb24tbmF0aXZlIGxpYm5sIHB5dGhvbiIKIAogUFYgPSAiMC4zLjErZ2l0JHtTUkNQVn0iCi1TUkNfVVJJID0gImdpdDovL2dpdC5jb2RlLnNmLm5ldC9wL2xpbnV4LXppZ2JlZS9saW51eC16aWdiZWUgXAorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2xpbnV4LXdwYW4vbG93cGFuLXRvb2xzIFwKICAgICAgICAgICAgZmlsZTovL25vLWhlbHAybWFuLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtRml4LWJ1aWxkLWVycm9ycy13aXRoLWNsYW5nLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtYWRkcmRiLWNvb3JkLWNvbmZpZy1wYXJzZS55LWFkZC1taXNzaW5nLXRpbWUuaC1pbmNsdS5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLXNyYy1pei5jLVVuZGVmLWRwcmludGYtYmVmb3JlLXJlZGVmaW5pbmcucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1SZW1vdmUtbmV3bGluZS1mcm9tLWZvcm1hdC1saW5lLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtY29vcmRpbmF0b3ItRml4LXN0cm5jcHktcmFuZ2Utd2FybmluZy5wYXRjaCBcCiAgICAgICAgICAgICIKLVNSQ1JFViA9ICIzOGY0MmRiZmNlOWUxMzYyOTI2M2RiM2JkM2I4MWYxNGM2OWJiNzMzIgorU1JDUkVWID0gIjFjMmQ4Njc0Y2M2ZjRiMTE2NmEwNjZlODgyMmUyOTVjMTA1YWU3YTIiCiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9uZGlzYzYvbmRpc2M2X2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9uZGlzYzYvbmRpc2M2X2dpdC5iYgppbmRleCA0OGE4M2I4Li5jZWJjMWQ5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmRpc2M2L25kaXNjNl9naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25kaXNjNi9uZGlzYzZfZ2l0LmJiCkBAIC0yMCw4ICsyMCwxMiBAQAogRVhUUkFfT0VDT05GICs9ICJQRVJMPSR7VVNSQklOUEFUSH0vcGVybCIKIAogTERGTEFHUyArPSAiLWZ1c2UtbGQ9Z29sZCIKK0xERkxBR1NfcmVtb3ZlX3Jpc2N2NjQgPSAiLWZ1c2UtbGQ9Z29sZCIKKwogVE9PTENIQUlOID0gImdjYyIKIAorVVNFX05MUyA9ICJ5ZXMiCisKIGRvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgewogICAgIGNwICR7U1RBR0lOR19EQVRBRElSX05BVElWRX0vZ2V0dGV4dC9nZXR0ZXh0LmggJHtTfS9pbmNsdWRlCiAgICAgJHtTfS9hdXRvZ2VuLnNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmdodHRwMi9uZ2h0dHAyXzEuMjYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9uZ2h0dHAyL25naHR0cDJfMS4yNi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjY2Q0ODYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmdodHRwMi9uZ2h0dHAyXzEuMjYuMC5iYgpAQCAtMCwwICsxLDEzIEBACitTVU1NQVJZID0gIkhUVFAvMiBDIExpYnJhcnkgYW5kIHRvb2xzIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9uZ2h0dHAyLm9yZy8iCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTc2NGFiZGYzMGIyZWFkZDM3Y2U0N2RjYmNlMGVhMWVjIgorCitTUkNfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9uZ2h0dHAyL25naHR0cDIvcmVsZWFzZXMvZG93bmxvYWQvdiR7UFZ9L25naHR0cDItJHtQVn0udGFyLmJ6MiIKK1NSQ19VUklbbWQ1c3VtXSA9ICI5MjZmMDdhZDNiNTBmMzhmN2Q4OTM1Y2VkMDQ3MTZjZiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwZGY0MjI5ZjQxMjNiNWFhOTZlODM0ZWJjZmRmZmU5NTRlOTNkOTg2ZjAyNTJmZDEwMTIzZDUwYzZmMDEwOTgzIgorCitERVBFTkRTID0gImxpYnhtbDIgb3BlbnNzbCB6bGliIGphbnNzb24gY3VuaXQgYy1hcmVzIgorCitpbmhlcml0IGNtYWtlIHB5dGhvbm5hdGl2ZSBweXRob24tZGlyCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL25pcy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL25pcy5pbmMKaW5kZXggZTAyN2ExYy4uMjAwZWFmNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25pcy9uaXMuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9uaXMvbmlzLmluYwpAQCAtMjcsNSArMjcsNSBAQAogcHl0aG9uICgpIHsKICAgICBvcyA9IGQuZ2V0VmFyKCJUQVJHRVRfT1MiLCBUcnVlKQogICAgIGlmIG9zID09ICJsaW51eC11Y2xpYmMiOgotICAgICAgICByYWlzZSBiYi5wYXJzZS5Ta2lwUGFja2FnZSgiTklTIGZ1bmN0aW9uYWxpdHkgcmVxdWlyZXMgcnBjc3ZjL3lwLmgsIHVDbGliQyBkb2VzIG5vdCBwcm92aWRlIHRoaXMiKQorICAgICAgICByYWlzZSBiYi5wYXJzZS5Ta2lwUmVjaXBlKCJOSVMgZnVuY3Rpb25hbGl0eSByZXF1aXJlcyBycGNzdmMveXAuaCwgdUNsaWJDIGRvZXMgbm90IHByb3ZpZGUgdGhpcyIpCiB9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL3lwLXRvb2xzLzAwMDEteXBiaW5kM19iaW5kaW5nX2R1cC5jLUluY2x1ZGUtc3RyaW5nLmgtZm9yLXN0cmR1cC1kZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9uaXMveXAtdG9vbHMvMDAwMS15cGJpbmQzX2JpbmRpbmdfZHVwLmMtSW5jbHVkZS1zdHJpbmcuaC1mb3Itc3RyZHVwLWRlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDRkNGYyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9uaXMveXAtdG9vbHMvMDAwMS15cGJpbmQzX2JpbmRpbmdfZHVwLmMtSW5jbHVkZS1zdHJpbmcuaC1mb3Itc3RyZHVwLWRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotRnJvbSA0MjBjYjY5Mjc1NTNiYmNhNWI0OWI3NjgxY2YyMDhlNmRmNmU0ZDdjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgOCBTZXAgMjAxNyAwODo0Mjo0NSAtMDcwMAotU3ViamVjdDogW1BBVENIIDEvMl0geXBiaW5kM19iaW5kaW5nX2R1cC5jOiBJbmNsdWRlIHN0cmluZy5oIGZvciBzdHJkdXAKLSBkZWNsYXJhdGlvbgotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi1VcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZAotCi0gbGliL3lwYmluZDNfYmluZGluZ19kdXAuYyB8IDEgKwotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQotCi1kaWZmIC0tZ2l0IGEvbGliL3lwYmluZDNfYmluZGluZ19kdXAuYyBiL2xpYi95cGJpbmQzX2JpbmRpbmdfZHVwLmMKLWluZGV4IGNlNGFhZGYuLjgxOTljMGIgMTAwNjQ0Ci0tLS0gYS9saWIveXBiaW5kM19iaW5kaW5nX2R1cC5jCi0rKysgYi9saWIveXBiaW5kM19iaW5kaW5nX2R1cC5jCi1AQCAtMTksNiArMTksNyBAQAotIAotICNpZiBkZWZpbmVkKEhBVkVfWVBCSU5EMykKLSAKLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0gI2luY2x1ZGUgPHJwY3N2Yy95cF9wcm90Lmg+Ci0gI2luY2x1ZGUgImludGVybmFsLmgiCi0gCi0tLSAKLTIuMTQuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL3lwLXRvb2xzLzAwMDIteXBfZHVtcF9iaW5kaW5ncy5jLUluY2x1ZGUtc3RyaW5nLmgtZm9yLW1lbXNldC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9uaXMveXAtdG9vbHMvMDAwMi15cF9kdW1wX2JpbmRpbmdzLmMtSW5jbHVkZS1zdHJpbmcuaC1mb3ItbWVtc2V0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTYyZTU4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9uaXMveXAtdG9vbHMvMDAwMi15cF9kdW1wX2JpbmRpbmdzLmMtSW5jbHVkZS1zdHJpbmcuaC1mb3ItbWVtc2V0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotRnJvbSAwM2NjYWJiNjI2NGMwMDg0MzBjNGIxNzM5MzUxZGY1YTYzODI5ZjhlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgOCBTZXAgMjAxNyAwODo1MjozMiAtMDcwMAotU3ViamVjdDogW1BBVENIIDIvMl0geXBfZHVtcF9iaW5kaW5ncy5jOiBJbmNsdWRlIHN0cmluZy5oIGZvciBtZW1zZXQKLQotRml4ZXMKLWVycm9yOiBpbXBsaWNpdGx5IGRlY2xhcmluZyBsaWJyYXJ5IGZ1bmN0aW9uICdtZW1zZXQnCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLVVwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkCi0KLSBzcmMveXBfZHVtcF9iaW5kaW5nLmMgfCAxICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBhL3NyYy95cF9kdW1wX2JpbmRpbmcuYyBiL3NyYy95cF9kdW1wX2JpbmRpbmcuYwotaW5kZXggYTVhYjkyMC4uZDc1ZTJjMiAxMDA2NDQKLS0tLSBhL3NyYy95cF9kdW1wX2JpbmRpbmcuYwotKysrIGIvc3JjL3lwX2R1bXBfYmluZGluZy5jCi1AQCAtMjYsNiArMjYsNyBAQAotICNpbmNsdWRlIDxsaWJpbnRsLmg+Ci0gI2luY2x1ZGUgPGxvY2FsZS5oPgotICNpbmNsdWRlIDxnZXRvcHQuaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0gI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0gI2luY2x1ZGUgPGFycGEvaW5ldC5oPgotICNpbmNsdWRlIDxycGNzdmMveXBjbG50Lmg+Ci0tLSAKLTIuMTQuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL3lwLXRvb2xzXzQuMi4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L25pcy95cC10b29sc180LjIuMi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWFjOTczOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL3lwLXRvb2xzXzQuMi4yLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotIyBUaGlzIHBhY2thZ2UgYnVpbGRzIHRvb2xzIHRvIG1hbmFnZSBOSVMKLSMgVGhlIHNvdXJjZSBwYWNrYWdlIGlzIHV0aWxzL25ldC9OSVMveXAtdG9vbHMKLSMKLXJlcXVpcmUgbmlzLmluYwotCi1TVU1NQVJZID0gIk5JUyBjbGllbnQgcHJvZ3JhbXMiCi1ERVNDUklQVElPTiA9ICIgXAotTmV0d29yayBJbmZvcm1hdGlvbiBTZXJ2aWNlIHRvb2xzLiAgXAotVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHlwY2F0LCB5cG1hdGNoLCB5cHNldCwgXAoteXB3aGljaCwgeXBwYXNzd2QsIGRvbWFpbm5hbWUsIG5pc2RvbWFpbm5hbWUgXAotYW5kIHlwZG9tYWlubmFtZS4gXAotIgotCi1TUkNfVVJJID0gImh0dHA6Ly93d3cubGludXgtbmlzLm9yZy9kb3dubG9hZC95cC10b29scy8ke0JQfS50YXIuYnoyIFwKLSAgICAgICAgICAgZmlsZTovL2RvbWFpbm5hbWUuc2VydmljZSBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLXlwYmluZDNfYmluZGluZ19kdXAuYy1JbmNsdWRlLXN0cmluZy5oLWZvci1zdHJkdXAtZGUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi15cF9kdW1wX2JpbmRpbmdzLmMtSW5jbHVkZS1zdHJpbmcuaC1mb3ItbWVtc2V0LnBhdGNoIFwKLSAgICAgICAgICAgIgotU1JDX1VSSVttZDVzdW1dID0gImZiNGE4YmZmYjQ0YWU1ZDMzOTAzNTFkNjdmMzIwZWYzIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjEzN2YxOWE5ODYzODJiMjc1YmY0YTJiMWE2OWViMjY2ODlkNmY0YWMwNTZkZGFhMjE3ODRkNmI4MGViOThmYWEiCi0KLURFUEVORFMgPSAibGlidGlycGMgbGlibnNsMiIKLQotaW5oZXJpdCBhdXRvdG9vbHMgc3lzdGVtZAotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImRvbWFpbm5hbWUuc2VydmljZSIKLQotUlBST1ZJREVTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgotUlJFUExBQ0VTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgotUkNPTkZMSUNUU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKLQotQ0FDSEVEX0NPTkZJR1VSRVZBUlMgKz0gImFjX2N2X3Byb2dfU1RSSVA9L2Jpbi90cnVlIgotCi1FWFRSQV9PRUNPTkYgPSAiIFwKLSAgICAgICAgICAgICAgICAtLWRpc2FibGUtcnBhdGggLS1kaXNhYmxlLWRvbWFpbm5hbWUgXAotICAgICAgICAgICAgICAgIgotQ0ZMQUdTX2FwcGVuZF9saWJjLW11c2wgPSAiIC1Xbm8tZXJyb3I9Y3BwIgotCi1GSUxFU18ke1BOfSArPSAiICR7bGliZGlyfS95cC1uaXMvKi5zby4qLiogJHtsaWJkaXJ9L3lwLW5pcy9wa2djb25maWcvIgotRklMRVNfJHtQTn0tZGJnICs9ICIgJHtsaWJkaXJ9L3lwLW5pcy8uZGVidWciCi1GSUxFU18ke1BOfS1kZXYgKz0gIiAke2xpYmRpcn0veXAtbmlzLyouc28gJHtsaWJkaXJ9L3lwLW5pcy8qLnNvLlsxMl0gJHtsaWJkaXJ9L3lwLW5pcy8qLmxhIgotRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIgJHtsaWJkaXJ9L3lwLW5pcy8qLmEiCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9kb21haW5uYW1lLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9uaXMveXAtdG9vbHNfNC4yLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL3lwLXRvb2xzXzQuMi4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlMjdlMzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbmlzL3lwLXRvb2xzXzQuMi4zLmJiCkBAIC0wLDAgKzEsNDcgQEAKKyMgVGhpcyBwYWNrYWdlIGJ1aWxkcyB0b29scyB0byBtYW5hZ2UgTklTCisjIFRoZSBzb3VyY2UgcGFja2FnZSBpcyB1dGlscy9uZXQvTklTL3lwLXRvb2xzCisjCityZXF1aXJlIG5pcy5pbmMKKworU1VNTUFSWSA9ICJOSVMgY2xpZW50IHByb2dyYW1zIgorREVTQ1JJUFRJT04gPSAiIFwKK05ldHdvcmsgSW5mb3JtYXRpb24gU2VydmljZSB0b29scy4gIFwKK1RoaXMgcGFja2FnZSBjb250YWlucyB5cGNhdCwgeXBtYXRjaCwgeXBzZXQsIFwKK3lwd2hpY2gsIHlwcGFzc3dkLCBkb21haW5uYW1lLCBuaXNkb21haW5uYW1lIFwKK2FuZCB5cGRvbWFpbm5hbWUuIFwKKyIKKworIyB2NC4yLjMKK1NSQ1JFViA9ICIxYmZkYTI5YzM0MmE4MWI5N2NiMTk5NWZmZDllOGRhNWRlNjNlN2FiIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vdGhrdWt1ay95cC10b29scyBcCisgICAgICAgICAgIGZpbGU6Ly9kb21haW5uYW1lLnNlcnZpY2UgXAorICAgICAgICAgICAiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK0RFUEVORFMgPSAibGlidGlycGMgbGlibnNsMiIKKworaW5oZXJpdCBhdXRvdG9vbHMgc3lzdGVtZAorU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImRvbWFpbm5hbWUuc2VydmljZSIKKworUlBST1ZJREVTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorUlJFUExBQ0VTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorUkNPTkZMSUNUU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKKworQ0FDSEVEX0NPTkZJR1VSRVZBUlMgKz0gImFjX2N2X3Byb2dfU1RSSVA9L2Jpbi90cnVlIgorCitFWFRSQV9PRUNPTkYgPSAiIFwKKyAgICAgICAgICAgICAgICAtLWRpc2FibGUtcnBhdGggLS1kaXNhYmxlLWRvbWFpbm5hbWUgXAorICAgICAgICAgICAgICAgIgorQ0ZMQUdTX2FwcGVuZF9saWJjLW11c2wgPSAiIC1Xbm8tZXJyb3I9Y3BwIgorCitGSUxFU18ke1BOfSArPSAiICR7bGliZGlyfS95cC1uaXMvKi5zby4qLiogJHtsaWJkaXJ9L3lwLW5pcy9wa2djb25maWcvIgorRklMRVNfJHtQTn0tZGJnICs9ICIgJHtsaWJkaXJ9L3lwLW5pcy8uZGVidWciCitGSUxFU18ke1BOfS1kZXYgKz0gIiAke2xpYmRpcn0veXAtbmlzLyouc28gJHtsaWJkaXJ9L3lwLW5pcy8qLnNvLlsxMl0gJHtsaWJkaXJ9L3lwLW5pcy8qLmxhIgorRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIgJHtsaWJkaXJ9L3lwLW5pcy8qLmEiCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9kb21haW5uYW1lLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9udGltZWQvbnRpbWVkX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9udGltZWQvbnRpbWVkX2dpdC5iYgppbmRleCA1MjdlYTMzLi5hNzQ5YjE2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbnRpbWVkL250aW1lZF9naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L250aW1lZC9udGltZWRfZ2l0LmJiCkBAIC02LDcgKzYsNyBAQAogU0VDVElPTiA9ICJuZXQiCiAKIExJQ0VOU0UgPSAiQlNELTItQ2xhdXNlIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vbWFpbi5jO3N0YXJ0bGluZT0yO2VuZGxpbmU9MjQ7bWQ1PWVkYTExZDIxMDA1MzE5YmI3NmNiYjZmOTExZjBmNjZkIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vbWFpbi5jO2JlZ2lubGluZT0yO2VuZGxpbmU9MjQ7bWQ1PTg5ZGI4ZTc2ZjI5NTFmM2ZhZDE2N2U3YWE5NzE4YTQ0IgogCiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vYnNkcGhrL050aW1lZCBcCiAgICAgICAgICAgIGZpbGU6Ly91c2UtbGRmbGFncy5wYXRjaCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9udHAvbnRwL250cC00LjIuNF9wNi1uYW5vLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L250cC9udHAvbnRwLTQuMi40X3A2LW5hbm8ucGF0Y2gKaW5kZXggY2IxZTJmNy4uZDQ1YjdlMyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L250cC9udHAvbnRwLTQuMi40X3A2LW5hbm8ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L250cC9udHAvbnRwLTQuMi40X3A2LW5hbm8ucGF0Y2gKQEAgLTEsNiArMSwxNiBAQAotLS0tIGEvaW5jbHVkZS9udHBfc3lzY2FsbC5oLm9yaWcJMjAwOS0wNS0xOSAxNjo0NDo1NS4wNDgxNTY0NjcgLTA0MDAKLSsrKyBiL2luY2x1ZGUvbnRwX3N5c2NhbGwuaAkyMDA5LTA1LTE5IDE2OjQ2OjE5LjI5MzMyMzY4NiAtMDQwMAotQEAgLTE0LDYgKzE0LDE0IEBACitGcm9tIDIzMTA4OTg1MzNmMDU5ZDg3NWRjZmZkMjZhYjZjZjFiMjgwMjkyZmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgorRGF0ZTogV2VkLCAxMiBKYW4gMjAxMSAyMTozODo0NiArMDEwMAorCistLS0KKyBpbmNsdWRlL250cF9zeXNjYWxsLmggfCA4ICsrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9udHBfc3lzY2FsbC5oIGIvaW5jbHVkZS9udHBfc3lzY2FsbC5oCitpbmRleCBkMWNlMDNlLi45ZTE4NDMyIDEwMDY0NAorLS0tIGEvaW5jbHVkZS9udHBfc3lzY2FsbC5oCisrKysgYi9pbmNsdWRlL250cF9zeXNjYWxsLmgKK0BAIC0xMCw2ICsxMCwxNCBAQAogICMgaW5jbHVkZSA8c3lzL3RpbWV4Lmg+CiAgI2VuZGlmCiAgCkBAIC0xMyw1ICsyMyw1IEBACiArI2VuZGlmCiArCiAgI2lmbmRlZiBOVFBfU1lTQ0FMTFNfTElCQwotICNpZmRlZiBOVFBfU1lTQ0FMTFNfU1RECi0gIyBkZWZpbmUgbnRwX2FkanRpbWUodCkJCXN5c2NhbGwoU1lTX250cF9hZGp0aW1lLCAodCkpCisgIyBpZmRlZiBOVFBfU1lTQ0FMTFNfU1RECisgIyAgZGVmaW5lIG50cF9hZGp0aW1lKHQpCXN5c2NhbGwoU1lTX250cF9hZGp0aW1lLCAodCkpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbnRwL250cF80LjIuOHAxMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9udHAvbnRwXzQuMi44cDEwLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTljNjBiLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9udHAvbnRwXzQuMi44cDEwLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTcwICswLDAgQEAKLVNVTU1BUlkgPSAiTmV0d29yayBUaW1lIFByb3RvY29sIGRhZW1vbiBhbmQgdXRpbGl0aWVzIgotREVTQ1JJUFRJT04gPSAiVGhlIE5ldHdvcmsgVGltZSBQcm90b2NvbCAoTlRQKSBpcyB1c2VkIHRvIFwKLXN5bmNocm9uaXplIHRoZSB0aW1lIG9mIGEgY29tcHV0ZXIgY2xpZW50IG9yIHNlcnZlciB0byBcCi1hbm90aGVyIHNlcnZlciBvciByZWZlcmVuY2UgdGltZSBzb3VyY2UsIHN1Y2ggYXMgYSByYWRpbyBcCi1vciBzYXRlbGxpdGUgcmVjZWl2ZXIgb3IgbW9kZW0uIgotSE9NRVBBR0UgPSAiaHR0cDovL3N1cHBvcnQubnRwLm9yZyIKLVNFQ1RJT04gPSAibmV0IgotTElDRU5TRSA9ICJOVFAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZUklHSFQ7bWQ1PWU4NzdhMWQ1NjdhNmE1ODk5NmQyYjY2ZTNlMzg3MDAzIgotCi1ERVBFTkRTID0gImxpYmV2ZW50IgotCi1TUkNfVVJJID0gImh0dHA6Ly93d3cuZWVjaXMudWRlbC5lZHUvfm50cC9udHBfc3Bvb2wvbnRwNC9udHAtNC4yL250cC0ke1BWfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vbnRwLTQuMi40X3A2LW5hbm8ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbnRwZCBcCi0gICAgICAgICAgIGZpbGU6Ly9udHAuY29uZiBcCi0gICAgICAgICAgIGZpbGU6Ly9udHBkYXRlIFwKLSAgICAgICAgICAgZmlsZTovL250cGRhdGUuZGVmYXVsdCBcCi0gICAgICAgICAgIGZpbGU6Ly9udHBkYXRlLnNlcnZpY2UgXAotICAgICAgICAgICBmaWxlOi8vbnRwZC5zZXJ2aWNlIFwKLSAgICAgICAgICAgZmlsZTovL3NudHAuc2VydmljZSBcCi0gICAgICAgICAgIGZpbGU6Ly9zbnRwIFwKLSAgICAgICAgICAgZmlsZTovL250cGQubGlzdCBcCi0iCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI3NDUzODRlZDBkZWRiM2Y2NmIzM2ZlODRkNjY0NjZmOSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkZGQyMzY2ZTY0MjE5YjllZmEwZjc0MzhlMDY4MDBkMGRiMzk0YWM1Yzg4ZTEzYzE3YjcwZDBkY2RmOTliOTlmIgotCi1pbmhlcml0IGF1dG90b29scyB1cGRhdGUtcmMuZCB1c2VyYWRkIHN5c3RlbWQgcGtnY29uZmlnCi0KLSMgVGhlIGFjX2N2X2hlYWRlcl9yZWFkbGluZV9oaXN0b3J5IGlzIHRvIHN0b3AgbnRwZGMgZGVwZW5kaW5nIG9uIGVpdGhlcgotIyByZWFkbGluZSBvciBjdXJzZXMKLUVYVFJBX09FQ09ORiArPSAiLS13aXRoLW5ldC1zbm1wLWNvbmZpZz1ubyBcCi0gICAgICAgICAgICAgICAgIC0td2l0aG91dC1udHBzbm1wZCBcCi0gICAgICAgICAgICAgICAgIGFjX2N2X2hlYWRlcl9yZWFkbGluZV9oaXN0b3J5X2g9bm8gXAotICAgICAgICAgICAgICAgICAtLXdpdGgteWllbGRpbmdfc2VsZWN0PXllcyBcCi0gICAgICAgICAgICAgICAgIC0td2l0aC1sb2NmaWxlPXJlZGhhdCBcCi0gICAgICAgICAgICAgICAgIC0td2l0aG91dC1ycGF0aCBcCi0gICAgICAgICAgICAgICAgICIKLUNGTEFHU19hcHBlbmQgPSAiIC1EUFRZU19BUkVfR0VUUFQgLURQVFlTX0FSRV9TRUFSQ0hFRCIKLQotVVNFUkFERF9QQUNLQUdFUyA9ICIke1BOfSIKLU5UUF9VU0VSX0hPTUUgPz0gIi92YXIvbGliL250cCIKLVVTRVJBRERfUEFSQU1fJHtQTn0gPSAiLS1zeXN0ZW0gLS1ob21lLWRpciAke05UUF9VU0VSX0hPTUV9IFwKLSAgICAgICAgICAgICAgICAgICAgICAgLS1uby1jcmVhdGUtaG9tZSBcCi0gICAgICAgICAgICAgICAgICAgICAgIC0tc2hlbGwgL2Jpbi9mYWxzZSAtLXVzZXItZ3JvdXAgbnRwIgotCi0jIE5COiBkZWJ1ZyBpcyBkZWZhdWx0LWVuYWJsZWQgYnkgTlRQOyBrZWVwIGl0IGRlZmF1bHQtZW5hYmxlZCBoZXJlLgotUEFDS0FHRUNPTkZJRyA/Pz0gImNhcCBkZWJ1ZyByZWZjbG9ja3Mgb3BlbnNzbCBcCi0gICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnaXB2NicsIGQpfSBcCi0iCi1QQUNLQUdFQ09ORklHW29wZW5zc2xdID0gIi0td2l0aC1vcGVuc3NsLWxpYmRpcj0ke1NUQUdJTkdfTElCRElSfSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC0td2l0aC1vcGVuc3NsLWluY2Rpcj0ke1NUQUdJTkdfSU5DRElSfSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC0td2l0aC1jcnlwdG8sIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLS13aXRob3V0LW9wZW5zc2wgLS13aXRob3V0LWNyeXB0bywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuc3NsIgotUEFDS0FHRUNPTkZJR1tjYXBdID0gIi0tZW5hYmxlLWxpbnV4Y2FwcywtLWRpc2FibGUtbGludXhjYXBzLGxpYmNhcCIKLVBBQ0tBR0VDT05GSUdbcmVhZGxpbmVdID0gIi0td2l0aC1saW5lZWRpdGxpYnMsLS13aXRob3V0LWxpbmVlZGl0bGlicyxyZWFkbGluZSIKLVBBQ0tBR0VDT05GSUdbcmVmY2xvY2tzXSA9ICItLWVuYWJsZS1hbGwtY2xvY2tzLC0tZGlzYWJsZS1hbGwtY2xvY2tzLHBwcy10b29scyIKLVBBQ0tBR0VDT05GSUdbZGVidWddID0gIi0tZW5hYmxlLWRlYnVnZ2luZywtLWRpc2FibGUtZGVidWdnaW5nIgotUEFDS0FHRUNPTkZJR1ttZG5zXSA9ICJhY19jdl9oZWFkZXJfZG5zX3NkX2g9eWVzLGFjX2N2X2hlYWRlcl9kbnNfc2RfaD1ubyxtZG5zIgotUEFDS0FHRUNPTkZJR1tpcHY2XSA9ICItLWVuYWJsZS1pcHY2LC0tZGlzYWJsZS1pcHY2LCIKLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKLSAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L250cC5jb25mICR7RH0ke3N5c2NvbmZkaXJ9Ci0gICAgaW5zdGFsbCAtbSA3NTUgJHtXT1JLRElSfS9udHBkICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZAotICAgIGluc3RhbGwgLWQgJHtEfSR7YmluZGlyfQotICAgIGluc3RhbGwgLW0gNzU1ICR7V09SS0RJUn0vbnRwZGF0ZSAke0R9JHtiaW5kaXJ9L250cGRhdGUtc3luYwotCi0gICAgaW5zdGFsbCAtbSA3NTUgLWQgJHtEfSR7TlRQX1VTRVJfSE9NRX0KLSAgICBjaG93biBudHA6bnRwICR7RH0ke05UUF9VU0VSX0hPTUV9Ci0KLSAgICAjIEZpeCBoYXJkY29kZWQgcGF0aHMgaW4gc2NyaXB0cwotICAgIHNlZCAtaSAncyEvdXNyL3NiaW4vISR7c2JpbmRpcn0vIWcnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9udHBkICR7RH0ke2JpbmRpcn0vbnRwZGF0ZS1zeW5jCi0gICAgc2VkIC1pICdzIS91c3IvYmluLyEke2JpbmRpcn0vIWcnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9udHBkICR7RH0ke2JpbmRpcn0vbnRwZGF0ZS1zeW5jCi0gICAgc2VkIC1pICdzIS9ldGMvISR7c3lzY29uZmRpcn0vIWcnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9udHBkICR7RH0ke2JpbmRpcn0vbnRwZGF0ZS1zeW5jCi0gICAgc2VkIC1pICdzIS92YXIvISR7bG9jYWxzdGF0ZWRpcn0vIWcnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9udHBkICR7RH0ke2JpbmRpcn0vbnRwZGF0ZS1zeW5jCi0gICAgc2VkIC1pICdzIV5QQVRIPS4qIVBBVEg9JHtiYXNlX3NiaW5kaXJ9OiR7YmFzZV9iaW5kaXJ9OiR7c2JpbmRpcn06JHtiaW5kaXJ9IScgJHtEfSR7YmluZGlyfS9udHBkYXRlLXN5bmMKLSAgICBzZWQgLWkgJzFzLCMhLipwZXJsIC13LCMhICR7YmluZGlyfS9lbnYgcGVybCwnICR7RH0ke3NiaW5kaXJ9L250cHRyYWNlCi0gICAgc2VkIC1pICcvdXNlL2kgdXNlIHdhcm5pbmdzOycgJHtEfSR7c2JpbmRpcn0vbnRwdHJhY2UKLSAgICBzZWQgLWkgJzFzLCMhLipwZXJsLCMhICR7YmluZGlyfS9lbnYgcGVybCwnICR7RH0ke3NiaW5kaXJ9L250cC13YWl0Ci0gICAgc2VkIC1pICcvdXNlL2kgdXNlIHdhcm5pbmdzOycgJHtEfSR7c2JpbmRpcn0vbnRwLXdhaXQKLSAgICBzZWQgLWkgJzFzLCMhLipwZXJsIC13LCMhICR7YmluZGlyfS9lbnYgcGVybCwnICR7RH0ke3NiaW5kaXJ9L2NhbGNfdGlja2FkagotICAgIHNlZCAtaSAnL3VzZS9pIHVzZSB3YXJuaW5nczsnICR7RH0ke3NiaW5kaXJ9L2NhbGNfdGlja2FkagotCi0gICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vZGVmYXVsdAotICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vbnRwZGF0ZS5kZWZhdWx0ICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvbnRwZGF0ZQotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3NudHAgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC8KLQotICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L25ldHdvcmsvaWYtdXAuZAotICAgIGxuIC1zICR7YmluZGlyfS9udHBkYXRlLXN5bmMgJHtEfS8ke3N5c2NvbmZkaXJ9L25ldHdvcmsvaWYtdXAuZAotCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L250cGRhdGUuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9udHBkLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vc250cC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLwotCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L250cC11bml0cy5kCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vbnRwZC5saXN0ICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vbnRwLXVuaXRzLmQvNjAtbnRwZC5saXN0Ci0KLSAgICAjIFJlbW92ZSBhbiBlbXB0eSBsaWJleGVjZGlyLgotICAgIHJtZGlyIC0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5ICR7RH0ke2xpYmV4ZWNkaXJ9Ci19Ci0KLVBBQ0tBR0VTICs9ICJudHBkYXRlIHNudHAgJHtQTn0tdGlja2FkaiAke1BOfS11dGlscyIKLSMgTk9URTogeW91IGRvbid0IG5lZWQgbnRwZGF0ZSwgdXNlICJudHBkIC1xIC1nIC14IgotCi0jIG50cCBvcmlnaW5hbGx5IGluY2x1ZGVzIHRpY2thZGouIEl0J3Mgc3BsaXQgb2ZmIGZvciBpbmNsdXNpb24gaW4gc21hbGwgZmlybXdhcmUgaW1hZ2VzIG9uIHBsYXRmb3JtcwotIyB3aXRoIHdvbmt5IGNsb2NrcyAoZS5nLiBPcGVuU2x1ZykKLVJERVBFTkRTXyR7UE59ID0gIiR7UE59LXRpY2thZGoiCi0jIEhhbmRsZSBtb3ZlIGZyb20gYmluIHRvIHV0aWxzIHBhY2thZ2UKLVJQUk9WSURFU18ke1BOfS11dGlscyA9ICIke1BOfS1iaW4iCi1SUkVQTEFDRVNfJHtQTn0tdXRpbHMgPSAiJHtQTn0tYmluIgotUkNPTkZMSUNUU18ke1BOfS11dGlscyA9ICIke1BOfS1iaW4iCi0KLVNZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0gbnRwZGF0ZSBzbnRwIgotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gIm50cGQuc2VydmljZSIKLVNZU1RFTURfU0VSVklDRV9udHBkYXRlID0gIm50cGRhdGUuc2VydmljZSIKLVNZU1RFTURfU0VSVklDRV9zbnRwID0gInNudHAuc2VydmljZSIKLQotUlBST1ZJREVTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgotUlJFUExBQ0VTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgotUkNPTkZMSUNUU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKLQotUlBST1ZJREVTX250cGRhdGUgKz0gIm50cGRhdGUtc3lzdGVtZCIKLVJSRVBMQUNFU19udHBkYXRlICs9ICJudHBkYXRlLXN5c3RlbWQiCi1SQ09ORkxJQ1RTX250cGRhdGUgKz0gIm50cGRhdGUtc3lzdGVtZCIKLQotUlNVR0dFU1RTXyR7UE59ID0gImlhbmEtZXRjIgotCi1GSUxFU18ke1BOfSA9ICIke3NiaW5kaXJ9L250cGQubnRwICR7c3lzY29uZmRpcn0vbnRwLmNvbmYgJHtzeXNjb25mZGlyfS9pbml0LmQvbnRwZCAke2xpYmRpcn0gXAotICAgICR7TlRQX1VTRVJfSE9NRX0gXAotICAgICR7c3lzdGVtZF91bml0ZGlyfS9udHAtdW5pdHMuZC82MC1udHBkLmxpc3QgJHtsaWJleGVjZGlyfVwKLSIKLUZJTEVTXyR7UE59LXRpY2thZGogPSAiJHtzYmluZGlyfS90aWNrYWRqIgotRklMRVNfJHtQTn0tdXRpbHMgPSAiJHtzYmluZGlyfSAke2RhdGFkaXJ9L250cC9saWIiCi1SREVQRU5EU18ke1BOfS11dGlscyArPSAicGVybCIKLUZJTEVTX250cGRhdGUgPSAiJHtzYmluZGlyfS9udHBkYXRlIFwKLSAgICAke3N5c2NvbmZkaXJ9L25ldHdvcmsvaWYtdXAuZC9udHBkYXRlLXN5bmMgXAotICAgICR7YmluZGlyfS9udHBkYXRlLXN5bmMgXAotICAgICR7c3lzY29uZmRpcn0vZGVmYXVsdC9udHBkYXRlIFwKLSAgICAke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL250cGRhdGUuc2VydmljZSBcCi0iCi1GSUxFU19zbnRwID0gIiR7c2JpbmRpcn0vc250cCBcCi0gICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vZGVmYXVsdC9zbnRwIFwKLSAgICAgICAgICAgICAgJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9zbnRwLnNlcnZpY2UgXAotICAgICAgICAgICAgICIKLQotQ09ORkZJTEVTXyR7UE59ID0gIiR7c3lzY29uZmRpcn0vbnRwLmNvbmYiCi1DT05GRklMRVNfbnRwZGF0ZSA9ICIke3N5c2NvbmZkaXJ9L2RlZmF1bHQvbnRwZGF0ZSIKLQotSU5JVFNDUklQVF9OQU1FID0gIm50cGQiCi0jIE5vIGRlcGVuZGVuY2llcywgc28ganVzdCBnbyBpbiBhdCB0aGUgc3RhbmRhcmQgbGV2ZWwgKDIwKQotSU5JVFNDUklQVF9QQVJBTVMgPSAiZGVmYXVsdHMiCi0KLXBrZ19wb3N0aW5zdF9udHBkYXRlKCkgewotICAgIGlmICEgZ3JlcCAtcSAtcyBudHBkYXRlICREL3Zhci9zcG9vbC9jcm9uL3Jvb3Q7IHRoZW4KLSAgICAgICAgZWNobyAiYWRkaW5nIGNyb250YWIiCi0gICAgICAgIHRlc3QgLWQgJEQvdmFyL3Nwb29sL2Nyb24gfHwgbWtkaXIgLXAgJEQvdmFyL3Nwb29sL2Nyb24KLSAgICAgICAgZWNobyAiMzAgKiAqICogKiAgICAke2JpbmRpcn0vbnRwZGF0ZS1zeW5jIHNpbGVudCIgPj4gJEQvdmFyL3Nwb29sL2Nyb24vcm9vdAotICAgIGZpCi19Ci0KLWluaGVyaXQgdXBkYXRlLWFsdGVybmF0aXZlcwotCi1BTFRFUk5BVElWRV9QUklPUklUWSA9ICIxMDAiCi0KLUFMVEVSTkFUSVZFXyR7UE59ID0gIm50cGQiCi1BTFRFUk5BVElWRV9MSU5LX05BTUVbbnRwZF0gPSAiJHtzYmluZGlyfS9udHBkIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L250cC9udHBfNC4yLjhwMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvbnRwL250cF80LjIuOHAxMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjk4ZmEwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L250cC9udHBfNC4yLjhwMTEuYmIKQEAgLTAsMCArMSwxNzIgQEAKK1NVTU1BUlkgPSAiTmV0d29yayBUaW1lIFByb3RvY29sIGRhZW1vbiBhbmQgdXRpbGl0aWVzIgorREVTQ1JJUFRJT04gPSAiVGhlIE5ldHdvcmsgVGltZSBQcm90b2NvbCAoTlRQKSBpcyB1c2VkIHRvIFwKK3N5bmNocm9uaXplIHRoZSB0aW1lIG9mIGEgY29tcHV0ZXIgY2xpZW50IG9yIHNlcnZlciB0byBcCithbm90aGVyIHNlcnZlciBvciByZWZlcmVuY2UgdGltZSBzb3VyY2UsIHN1Y2ggYXMgYSByYWRpbyBcCitvciBzYXRlbGxpdGUgcmVjZWl2ZXIgb3IgbW9kZW0uIgorSE9NRVBBR0UgPSAiaHR0cDovL3N1cHBvcnQubnRwLm9yZyIKK1NFQ1RJT04gPSAibmV0IgorTElDRU5TRSA9ICJOVFAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZUklHSFQ7bWQ1PWU4NzdhMWQ1NjdhNmE1ODk5NmQyYjY2ZTNlMzg3MDAzIgorCitERVBFTkRTID0gImxpYmV2ZW50IgorCitTUkNfVVJJID0gImh0dHA6Ly93d3cuZWVjaXMudWRlbC5lZHUvfm50cC9udHBfc3Bvb2wvbnRwNC9udHAtNC4yL250cC0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vbnRwLTQuMi40X3A2LW5hbm8ucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vbnRwZCBcCisgICAgICAgICAgIGZpbGU6Ly9udHAuY29uZiBcCisgICAgICAgICAgIGZpbGU6Ly9udHBkYXRlIFwKKyAgICAgICAgICAgZmlsZTovL250cGRhdGUuZGVmYXVsdCBcCisgICAgICAgICAgIGZpbGU6Ly9udHBkYXRlLnNlcnZpY2UgXAorICAgICAgICAgICBmaWxlOi8vbnRwZC5zZXJ2aWNlIFwKKyAgICAgICAgICAgZmlsZTovL3NudHAuc2VydmljZSBcCisgICAgICAgICAgIGZpbGU6Ly9zbnRwIFwKKyAgICAgICAgICAgZmlsZTovL250cGQubGlzdCBcCisiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIwMDk1MGNhMjg1NTU3OTU0MTg5NjUxM2U3ODI5NTM2MSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJmMTRhMzlmNzUzNjg4MjUyZDY4M2ZmOTA3MDM1ZmZmZjEwNmJhOGQzZGIyMTMwOWI3NDJlMDliNWMzY2QyNzhlIgorCitpbmhlcml0IGF1dG90b29scyB1cGRhdGUtcmMuZCB1c2VyYWRkIHN5c3RlbWQgcGtnY29uZmlnCisKKyMgVGhlIGFjX2N2X2hlYWRlcl9yZWFkbGluZV9oaXN0b3J5IGlzIHRvIHN0b3AgbnRwZGMgZGVwZW5kaW5nIG9uIGVpdGhlcgorIyByZWFkbGluZSBvciBjdXJzZXMKK0VYVFJBX09FQ09ORiArPSAiLS13aXRoLW5ldC1zbm1wLWNvbmZpZz1ubyBcCisgICAgICAgICAgICAgICAgIC0td2l0aG91dC1udHBzbm1wZCBcCisgICAgICAgICAgICAgICAgIGFjX2N2X2hlYWRlcl9yZWFkbGluZV9oaXN0b3J5X2g9bm8gXAorICAgICAgICAgICAgICAgICAtLXdpdGgteWllbGRpbmdfc2VsZWN0PXllcyBcCisgICAgICAgICAgICAgICAgIC0td2l0aC1sb2NmaWxlPXJlZGhhdCBcCisgICAgICAgICAgICAgICAgIC0td2l0aG91dC1ycGF0aCBcCisgICAgICAgICAgICAgICAgICIKK0NGTEFHU19hcHBlbmQgPSAiIC1EUFRZU19BUkVfR0VUUFQgLURQVFlTX0FSRV9TRUFSQ0hFRCIKKworVVNFUkFERF9QQUNLQUdFUyA9ICIke1BOfSIKK05UUF9VU0VSX0hPTUUgPz0gIi92YXIvbGliL250cCIKK1VTRVJBRERfUEFSQU1fJHtQTn0gPSAiLS1zeXN0ZW0gLS1ob21lLWRpciAke05UUF9VU0VSX0hPTUV9IFwKKyAgICAgICAgICAgICAgICAgICAgICAgLS1uby1jcmVhdGUtaG9tZSBcCisgICAgICAgICAgICAgICAgICAgICAgIC0tc2hlbGwgL2Jpbi9mYWxzZSAtLXVzZXItZ3JvdXAgbnRwIgorCisjIE5COiBkZWJ1ZyBpcyBkZWZhdWx0LWVuYWJsZWQgYnkgTlRQOyBrZWVwIGl0IGRlZmF1bHQtZW5hYmxlZCBoZXJlLgorUEFDS0FHRUNPTkZJRyA/Pz0gImNhcCBkZWJ1ZyByZWZjbG9ja3Mgb3BlbnNzbCBcCisgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnaXB2NicsIGQpfSBcCisiCitQQUNLQUdFQ09ORklHW29wZW5zc2xdID0gIi0td2l0aC1vcGVuc3NsLWxpYmRpcj0ke1NUQUdJTkdfTElCRElSfSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIC0td2l0aC1vcGVuc3NsLWluY2Rpcj0ke1NUQUdJTkdfSU5DRElSfSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIC0td2l0aC1jcnlwdG8sIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLS13aXRob3V0LW9wZW5zc2wgLS13aXRob3V0LWNyeXB0bywgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuc3NsIgorUEFDS0FHRUNPTkZJR1tjYXBdID0gIi0tZW5hYmxlLWxpbnV4Y2FwcywtLWRpc2FibGUtbGludXhjYXBzLGxpYmNhcCIKK1BBQ0tBR0VDT05GSUdbcmVhZGxpbmVdID0gIi0td2l0aC1saW5lZWRpdGxpYnMsLS13aXRob3V0LWxpbmVlZGl0bGlicyxyZWFkbGluZSIKK1BBQ0tBR0VDT05GSUdbcmVmY2xvY2tzXSA9ICItLWVuYWJsZS1hbGwtY2xvY2tzLC0tZGlzYWJsZS1hbGwtY2xvY2tzLHBwcy10b29scyIKK1BBQ0tBR0VDT05GSUdbZGVidWddID0gIi0tZW5hYmxlLWRlYnVnZ2luZywtLWRpc2FibGUtZGVidWdnaW5nIgorUEFDS0FHRUNPTkZJR1ttZG5zXSA9ICJhY19jdl9oZWFkZXJfZG5zX3NkX2g9eWVzLGFjX2N2X2hlYWRlcl9kbnNfc2RfaD1ubyxtZG5zIgorUEFDS0FHRUNPTkZJR1tpcHY2XSA9ICItLWVuYWJsZS1pcHY2LC0tZGlzYWJsZS1pcHY2LCIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L250cC5jb25mICR7RH0ke3N5c2NvbmZkaXJ9CisgICAgaW5zdGFsbCAtbSA3NTUgJHtXT1JLRElSfS9udHBkICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZAorICAgIGluc3RhbGwgLWQgJHtEfSR7YmluZGlyfQorICAgIGluc3RhbGwgLW0gNzU1ICR7V09SS0RJUn0vbnRwZGF0ZSAke0R9JHtiaW5kaXJ9L250cGRhdGUtc3luYworCisgICAgaW5zdGFsbCAtbSA3NTUgLWQgJHtEfSR7TlRQX1VTRVJfSE9NRX0KKyAgICBjaG93biBudHA6bnRwICR7RH0ke05UUF9VU0VSX0hPTUV9CisKKyAgICAjIEZpeCBoYXJkY29kZWQgcGF0aHMgaW4gc2NyaXB0cworICAgIHNlZCAtaSAncyEvdXNyL3NiaW4vISR7c2JpbmRpcn0vIWcnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9udHBkICR7RH0ke2JpbmRpcn0vbnRwZGF0ZS1zeW5jCisgICAgc2VkIC1pICdzIS91c3IvYmluLyEke2JpbmRpcn0vIWcnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9udHBkICR7RH0ke2JpbmRpcn0vbnRwZGF0ZS1zeW5jCisgICAgc2VkIC1pICdzIS9ldGMvISR7c3lzY29uZmRpcn0vIWcnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9udHBkICR7RH0ke2JpbmRpcn0vbnRwZGF0ZS1zeW5jCisgICAgc2VkIC1pICdzIS92YXIvISR7bG9jYWxzdGF0ZWRpcn0vIWcnICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9udHBkICR7RH0ke2JpbmRpcn0vbnRwZGF0ZS1zeW5jCisgICAgc2VkIC1pICdzIV5QQVRIPS4qIVBBVEg9JHtiYXNlX3NiaW5kaXJ9OiR7YmFzZV9iaW5kaXJ9OiR7c2JpbmRpcn06JHtiaW5kaXJ9IScgJHtEfSR7YmluZGlyfS9udHBkYXRlLXN5bmMKKyAgICBzZWQgLWkgJzFzLCMhLipwZXJsIC13LCMhICR7YmluZGlyfS9lbnYgcGVybCwnICR7RH0ke3NiaW5kaXJ9L250cHRyYWNlCisgICAgc2VkIC1pICcvdXNlL2kgdXNlIHdhcm5pbmdzOycgJHtEfSR7c2JpbmRpcn0vbnRwdHJhY2UKKyAgICBzZWQgLWkgJzFzLCMhLipwZXJsLCMhICR7YmluZGlyfS9lbnYgcGVybCwnICR7RH0ke3NiaW5kaXJ9L250cC13YWl0CisgICAgc2VkIC1pICcvdXNlL2kgdXNlIHdhcm5pbmdzOycgJHtEfSR7c2JpbmRpcn0vbnRwLXdhaXQKKyAgICBzZWQgLWkgJzFzLCMhLipwZXJsIC13LCMhICR7YmluZGlyfS9lbnYgcGVybCwnICR7RH0ke3NiaW5kaXJ9L2NhbGNfdGlja2FkagorICAgIHNlZCAtaSAnL3VzZS9pIHVzZSB3YXJuaW5nczsnICR7RH0ke3NiaW5kaXJ9L2NhbGNfdGlja2FkagorCisgICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vZGVmYXVsdAorICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vbnRwZGF0ZS5kZWZhdWx0ICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvbnRwZGF0ZQorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3NudHAgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC8KKworICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L25ldHdvcmsvaWYtdXAuZAorICAgIGxuIC1zICR7YmluZGlyfS9udHBkYXRlLXN5bmMgJHtEfS8ke3N5c2NvbmZkaXJ9L25ldHdvcmsvaWYtdXAuZAorCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L250cGRhdGUuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9udHBkLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vc250cC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLworCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L250cC11bml0cy5kCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vbnRwZC5saXN0ICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vbnRwLXVuaXRzLmQvNjAtbnRwZC5saXN0CisKKyAgICAjIFJlbW92ZSBhbiBlbXB0eSBsaWJleGVjZGlyLgorICAgIHJtZGlyIC0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5ICR7RH0ke2xpYmV4ZWNkaXJ9Cit9CisKK1BBQ0tBR0VTICs9ICJudHBkYXRlIHNudHAgJHtQTn0tdGlja2FkaiAke1BOfS11dGlscyIKKyMgTk9URTogeW91IGRvbid0IG5lZWQgbnRwZGF0ZSwgdXNlICJudHBkIC1xIC1nIC14IgorCisjIG50cCBvcmlnaW5hbGx5IGluY2x1ZGVzIHRpY2thZGouIEl0J3Mgc3BsaXQgb2ZmIGZvciBpbmNsdXNpb24gaW4gc21hbGwgZmlybXdhcmUgaW1hZ2VzIG9uIHBsYXRmb3JtcworIyB3aXRoIHdvbmt5IGNsb2NrcyAoZS5nLiBPcGVuU2x1ZykKK1JERVBFTkRTXyR7UE59ID0gIiR7UE59LXRpY2thZGoiCisjIG50cGQgcmVxdWlyZSBsaWJnY2MgZm9yIGV4ZWN1dGlvbgorUkRFUEVORFNfJHtQTn0gKz0gImxpYmdjYyIKKyMgSGFuZGxlIG1vdmUgZnJvbSBiaW4gdG8gdXRpbHMgcGFja2FnZQorUlBST1ZJREVTXyR7UE59LXV0aWxzID0gIiR7UE59LWJpbiIKK1JSRVBMQUNFU18ke1BOfS11dGlscyA9ICIke1BOfS1iaW4iCitSQ09ORkxJQ1RTXyR7UE59LXV0aWxzID0gIiR7UE59LWJpbiIKKworU1lTVEVNRF9QQUNLQUdFUyA9ICIke1BOfSBudHBkYXRlIHNudHAiCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAibnRwZC5zZXJ2aWNlIgorU1lTVEVNRF9TRVJWSUNFX250cGRhdGUgPSAibnRwZGF0ZS5zZXJ2aWNlIgorU1lTVEVNRF9TRVJWSUNFX3NudHAgPSAic250cC5zZXJ2aWNlIgorCitSUFJPVklERVNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCitSUkVQTEFDRVNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCitSQ09ORkxJQ1RTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorCitSUFJPVklERVNfbnRwZGF0ZSArPSAibnRwZGF0ZS1zeXN0ZW1kIgorUlJFUExBQ0VTX250cGRhdGUgKz0gIm50cGRhdGUtc3lzdGVtZCIKK1JDT05GTElDVFNfbnRwZGF0ZSArPSAibnRwZGF0ZS1zeXN0ZW1kIgorCitSU1VHR0VTVFNfJHtQTn0gPSAiaWFuYS1ldGMiCisKK0ZJTEVTXyR7UE59ID0gIiR7c2JpbmRpcn0vbnRwZC5udHAgJHtzeXNjb25mZGlyfS9udHAuY29uZiAke3N5c2NvbmZkaXJ9L2luaXQuZC9udHBkICR7bGliZGlyfSBcCisgICAgJHtOVFBfVVNFUl9IT01FfSBcCisgICAgJHtzeXN0ZW1kX3VuaXRkaXJ9L250cC11bml0cy5kLzYwLW50cGQubGlzdCAke2xpYmV4ZWNkaXJ9XAorIgorRklMRVNfJHtQTn0tdGlja2FkaiA9ICIke3NiaW5kaXJ9L3RpY2thZGoiCitGSUxFU18ke1BOfS11dGlscyA9ICIke3NiaW5kaXJ9ICR7ZGF0YWRpcn0vbnRwL2xpYiIKK1JERVBFTkRTXyR7UE59LXV0aWxzICs9ICJwZXJsIgorRklMRVNfbnRwZGF0ZSA9ICIke3NiaW5kaXJ9L250cGRhdGUgXAorICAgICR7c3lzY29uZmRpcn0vbmV0d29yay9pZi11cC5kL250cGRhdGUtc3luYyBcCisgICAgJHtiaW5kaXJ9L250cGRhdGUtc3luYyBcCisgICAgJHtzeXNjb25mZGlyfS9kZWZhdWx0L250cGRhdGUgXAorICAgICR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vbnRwZGF0ZS5zZXJ2aWNlIFwKKyIKK0ZJTEVTX3NudHAgPSAiJHtzYmluZGlyfS9zbnRwIFwKKyAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9kZWZhdWx0L3NudHAgXAorICAgICAgICAgICAgICAke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL3NudHAuc2VydmljZSBcCisgICAgICAgICAgICAgIgorCitDT05GRklMRVNfJHtQTn0gPSAiJHtzeXNjb25mZGlyfS9udHAuY29uZiIKK0NPTkZGSUxFU19udHBkYXRlID0gIiR7c3lzY29uZmRpcn0vZGVmYXVsdC9udHBkYXRlIgorCitJTklUU0NSSVBUX05BTUUgPSAibnRwZCIKKyMgTm8gZGVwZW5kZW5jaWVzLCBzbyBqdXN0IGdvIGluIGF0IHRoZSBzdGFuZGFyZCBsZXZlbCAoMjApCitJTklUU0NSSVBUX1BBUkFNUyA9ICJkZWZhdWx0cyIKKworcGtnX3Bvc3RpbnN0X250cGRhdGUoKSB7CisgICAgaWYgISBncmVwIC1xIC1zIG50cGRhdGUgJEQvdmFyL3Nwb29sL2Nyb24vcm9vdDsgdGhlbgorICAgICAgICBlY2hvICJhZGRpbmcgY3JvbnRhYiIKKyAgICAgICAgdGVzdCAtZCAkRC92YXIvc3Bvb2wvY3JvbiB8fCBta2RpciAtcCAkRC92YXIvc3Bvb2wvY3JvbgorICAgICAgICBlY2hvICIzMCAqICogKiAqICAgICR7YmluZGlyfS9udHBkYXRlLXN5bmMgc2lsZW50IiA+PiAkRC92YXIvc3Bvb2wvY3Jvbi9yb290CisgICAgZmkKK30KKworaW5oZXJpdCB1cGRhdGUtYWx0ZXJuYXRpdmVzCisKK0FMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjEwMCIKKworQUxURVJOQVRJVkVfJHtQTn0gPSAibnRwZCIKK0FMVEVSTkFUSVZFX0xJTktfTkFNRVtudHBkXSA9ICIke3NiaW5kaXJ9L250cGQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvb3Blbi1pc25zL29wZW4taXNuc18wLjk3LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW4taXNucy9vcGVuLWlzbnNfMC45Ny5iYgppbmRleCBjYzI5NTllLi5hYmZhNzUxMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW4taXNucy9vcGVuLWlzbnNfMC45Ny5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvb3Blbi1pc25zL29wZW4taXNuc18wLjk3LmJiCkBAIC0xMSw3ICsxMSw3IEBACiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0zMjFiZjQxZjI4MGNmODA1MDg2ZGQ1YTcyMGIzNzc4NSIKIFNFQ1RJT04gPSAibmV0IgogCi1ERVBFTkRTID0gIm9wZW5zc2wgc3lzdGVtZCIKK0RFUEVORFMgPSAib3BlbnNzbCIKIAogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL29wZW4taXNjc2kvb3Blbi1pc25zIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtdXRpbC5oLWVuZGlhbi5oLWlzLWF2YWlsYWJsZS1vbi1tdXNsLW9uLWxpbnV4LnBhdGNoIFwKQEAgLTIxLDkgKzIxLDcgQEAKIAogUyA9ICIke1dPUktESVJ9L2dpdCIKIAotaW5oZXJpdCBzeXN0ZW1kIGF1dG90b29scy1icm9rZW5zZXAgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCi0jIGRlcGVuZHMgb24gc3lzdGVtZAotUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gInN5c3RlbWQiCitpbmhlcml0IHN5c3RlbWQgYXV0b3Rvb2xzLWJyb2tlbnNlcCB1cGRhdGUtcmMuZAogCiBFWFRSQV9PRUNPTkYgPSAiIC0tcHJlZml4PSR7cHJlZml4fSAtLWVuYWJsZS1zaGFyZWQiCiBFWFRSQV9PRU1BS0UgKz0gIlNZU1RFTURESVI9JHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0iCkBAIC0zMSw2ICsyOSwxMiBAQAogZG9faW5zdGFsbF9hcHBlbmQgKCkgewogICAgIG9lX3J1bm1ha2UgSU5DRElSPSR7RH0ke2luY2x1ZGVkaXJ9L2xpYmlzbnMvIGluc3RhbGxfaGRycwogICAgIG9lX3J1bm1ha2UgTElCRElSPSR7RH0ke2xpYmRpcn0gaW5zdGFsbF9saWIKKworICAgIGluc3RhbGwgLUQgLW0gNzU1ICR7U30vZXRjL29wZW5pc25zLmluaXQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL29wZW5pc25zCisgICAgc2VkIC1pICdzfGRhZW1vbiBpc25zZHxzdGFydC1zdG9wLWRhZW1vbiAtLXN0YXJ0IC0tcXVpZXQgLS1va25vZG8gLS1leGVjICR7c2JpbmRpcn0vaXNuc2QgLS18JyBcCisgICAgICAgICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9vcGVuaXNucwogfQogCiBGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9ICR7c3lzdGVtZF91bml0ZGlyfSIKKworSU5JVFNDUklQVF9OQU1FID0gIm9wZW5pc25zIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW5pcG1pL2ZpbGVzL2ZpeC1zeW1saW5rLWluc3RhbGwtZXJyb3ItaW4tY21kbGFuZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9vcGVuaXBtaS9maWxlcy9maXgtc3ltbGluay1pbnN0YWxsLWVycm9yLWluLWNtZGxhbmcucGF0Y2gKaW5kZXggOWE1NjhiMi4uNDQ5MTQyZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW5pcG1pL2ZpbGVzL2ZpeC1zeW1saW5rLWluc3RhbGwtZXJyb3ItaW4tY21kbGFuZy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvb3BlbmlwbWkvZmlsZXMvZml4LXN5bWxpbmstaW5zdGFsbC1lcnJvci1pbi1jbWRsYW5nLnBhdGNoCkBAIC04LDExICs4LDExIEBACiAgICAgCiAgICAgU2lnbmVkLW9mZi1ieTogQXdzIElzbWFpbCA8YXdzLmlzbWFpbEB3aW5kcml2ZXIuY29tPgogCi1kaWZmIC0tZ2l0IGEvY21kbGFuZy9NYWtlZmlsZS5hbSBiL2NtZGxhbmcvTWFrZWZpbGUuYW0KLWluZGV4IDkyZDZlODMuLmY2MDM5ZjkgMTAwNjQ0Ci0tLS0gYS9jbWRsYW5nL01ha2VmaWxlLmFtCi0rKysgYi9jbWRsYW5nL01ha2VmaWxlLmFtCi1AQCAtMzYsNiArMzYsNyBAQCBDTEVBTkZJTEVTID0gbGliT3BlbklQTUljbWRsYW5nLm1hcAorSW5kZXg6IE9wZW5JUE1JLTIuMC4yNC9jbWRsYW5nL01ha2VmaWxlLmFtCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gT3BlbklQTUktMi4wLjI0Lm9yaWcvY21kbGFuZy9NYWtlZmlsZS5hbQorKysrIE9wZW5JUE1JLTIuMC4yNC9jbWRsYW5nL01ha2VmaWxlLmFtCitAQCAtMzUsNiArMzUsNyBAQCBvcGVuaXBtaXNoX0xEQUREID0gIGxpYk9wZW5JUE1JY21kbGFuZy5sCiAgIyBjb21wYXRhYmlsaXR5LgogIGluc3RhbGwtZGF0YS1sb2NhbDoKICAJcm0gLWYgJChERVNURElSKSQoYmluZGlyKS9pcG1pc2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9vcGVuaXBtaS9maWxlcy9pbmNsdWRlX3N5c190eXBlcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9vcGVuaXBtaS9maWxlcy9pbmNsdWRlX3N5c190eXBlcy5wYXRjaAppbmRleCA1OGVjNWQ4Li4wODI1MTFhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvb3BlbmlwbWkvZmlsZXMvaW5jbHVkZV9zeXNfdHlwZXMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW5pcG1pL2ZpbGVzL2luY2x1ZGVfc3lzX3R5cGVzLnBhdGNoCkBAIC0zLDEwICszLDEwIEBACiB1aS5jOjM0MDo1OiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ3VfaW50MzJfdCc7IGRpZCB5b3UgbWVhbiAndWludDMyX3QnPwogICAgICB1X2ludDMyX3QgICAgIGFkZHI7CiAgICAgIF5+fn5+fn5+fgotSW5kZXg6IE9wZW5JUE1JLTIuMC4yMi91aS91aS5jCitJbmRleDogT3BlbklQTUktMi4wLjI0L3VpL3VpLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBPcGVuSVBNSS0yLjAuMjIub3JpZy91aS91aS5jCi0rKysgT3BlbklQTUktMi4wLjIyL3VpL3VpLmMKKy0tLSBPcGVuSVBNSS0yLjAuMjQub3JpZy91aS91aS5jCisrKysgT3BlbklQTUktMi4wLjI0L3VpL3VpLmMKIEBAIC00Miw2ICs0Miw3IEBACiAgI2luY2x1ZGUgPGZjbnRsLmg+CiAgI2luY2x1ZGUgPHRpbWUuaD4KQEAgLTE0LDQgKzE0LDQgQEAKICsjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAgI2luY2x1ZGUgPGN0eXBlLmg+CiAgCi0gI2luY2x1ZGUgPE9wZW5JUE1JL3NlbGVjdG9yLmg+CisgI2luY2x1ZGUgPE9wZW5JUE1JL2lwbWlfZXJyLmg+CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvb3BlbnZwbi9vcGVudnBuXzIuNC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L29wZW52cG4vb3BlbnZwbl8yLjQuMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTAwOTdmMy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvb3BlbnZwbi9vcGVudnBuXzIuNC4zLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotU1VNTUFSWSA9ICJBIGZ1bGwtZmVhdHVyZWQgU1NMIFZQTiBzb2x1dGlvbiB2aWEgdHVuIGRldmljZS4iCi1IT01FUEFHRSA9ICJodHRwOi8vb3BlbnZwbi5zb3VyY2Vmb3JnZS5uZXQiCi1TRUNUSU9OID0gIm5ldCIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1lOWI2NDQ5MWVjOThlYjZjNjQ5M2FjNWU0MTE4ZjEwNyIKLURFUEVORFMgPSAibHpvIG9wZW5zc2wgaXByb3V0ZTIgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdwYW0nLCAnbGlicGFtJywgJycsIGQpfSIKLQotaW5oZXJpdCBhdXRvdG9vbHMgc3lzdGVtZAotCi1TUkNfVVJJID0gImh0dHA6Ly9zd3VwZGF0ZS5vcGVudnBuLm9yZy9jb21tdW5pdHkvcmVsZWFzZXMvJHtCUH0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL29wZW52cG4gXAotICAgICAgICAgICBmaWxlOi8vb3BlbnZwbkAuc2VydmljZSBcCi0gICAgICAgICAgIGZpbGU6Ly9vcGVudnBuLXZvbGF0aWxlLmNvbmYiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJlMTkyOWY4MmFmZjQwZjNkMTA1ZTVmNzJhYWNmZjljMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJjZWUzZDNjYTQ2Mjk2MGE1MGE2N2MwZWJkMTg2ZTAxYjZkMTNkYjcwMjc1MjA1NjYzNjk1MTUyYzlhY2E4NTc5IgotCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0gKz0gIm9wZW52cG5AbG9vcGJhY2stc2VydmVyLnNlcnZpY2Ugb3BlbnZwbkBsb29wYmFjay1jbGllbnQuc2VydmljZSIKLVNZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKLQotQ0ZMQUdTICs9ICItZm5vLWlubGluZSIKLQotIyBJIHdhbnQgb3BlbnZwbiB0byBiZSBhYmxlIHRvIHJlYWQgcGFzc3dvcmQgZnJvbSBmaWxlIChocncpCi1FWFRSQV9PRUNPTkYgKz0gIi0tZW5hYmxlLWlwcm91dGUyIgotRVhUUkFfT0VDT05GICs9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3BhbScsICcnLCAnLS1kaXNhYmxlLXBsdWdpbi1hdXRoLXBhbScsIGQpfSIKLQotIyBFeHBsaWNpdGx5IHNwZWNpZnkgSVBST1VURSB0byBieXBhc3MgdGhlIGNvbmZpZ3VyZS10aW1lIGNoZWNrIGZvciAvc2Jpbi9pcCBvbiB0aGUgaG9zdC4KLUVYVFJBX09FQ09ORiArPSAiSVBST1VURT0ke2Jhc2Vfc2JpbmRpcn0vaXAiCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZAotICAgIGluc3RhbGwgLW0gNzU1ICR7V09SS0RJUn0vb3BlbnZwbiAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kCi0KLSAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9vcGVudnBuCi0gICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vb3BlbnZwbi9zYW1wbGUKLSAgICBpbnN0YWxsIC1tIDc1NSAke1N9L3NhbXBsZS9zYW1wbGUtY29uZmlnLWZpbGVzL2xvb3BiYWNrLXNlcnZlciAgJHtEfSR7c3lzY29uZmRpcn0vb3BlbnZwbi9zYW1wbGUvbG9vcGJhY2stc2VydmVyLmNvbmYKLSAgICBpbnN0YWxsIC1tIDc1NSAke1N9L3NhbXBsZS9zYW1wbGUtY29uZmlnLWZpbGVzL2xvb3BiYWNrLWNsaWVudCAgJHtEfSR7c3lzY29uZmRpcn0vb3BlbnZwbi9zYW1wbGUvbG9vcGJhY2stY2xpZW50LmNvbmYKLSAgICBpbnN0YWxsIC1kbSA3NTUgJHtEfSR7c3lzY29uZmRpcn0vb3BlbnZwbi9zYW1wbGUvc2FtcGxlLWtleXMKLSAgICBpbnN0YWxsIC1tIDY0NCAke1N9L3NhbXBsZS9zYW1wbGUta2V5cy8qICR7RH0ke3N5c2NvbmZkaXJ9L29wZW52cG4vc2FtcGxlL3NhbXBsZS1rZXlzCi0KLSAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywnc3lzdGVtZCcsJ3RydWUnLCdmYWxzZScsZCl9OyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vb3BlbnZwbkAuc2VydmljZSAke0R9LyR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICAgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9vcGVudnBuQC5zZXJ2aWNlICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9vcGVudnBuQGxvb3BiYWNrLXNlcnZlci5zZXJ2aWNlCi0gICAgICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vb3BlbnZwbkAuc2VydmljZSAke0R9LyR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vb3BlbnZwbkBsb29wYmFjay1jbGllbnQuc2VydmljZQotCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfS8ke2xvY2Fsc3RhdGVkaXJ9Ci0gICAgICAgIGluc3RhbGwgLWQgJHtEfS8ke2xvY2Fsc3RhdGVkaXJ9L2xpYgotICAgICAgICBpbnN0YWxsIC1kIC1tIDcxMCAke0R9LyR7bG9jYWxzdGF0ZWRpcn0vbGliL29wZW52cG4KLQotICAgICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQKLSAgICAgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vb3BlbnZwbi12b2xhdGlsZS5jb25mICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvb3BlbnZwbi5jb25mCi0gICAgICAgIHNlZCAtaSAtZSAncyNATE9DQUxTVEFURURJUkAjJHtsb2NhbHN0YXRlZGlyfSNnJyAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kL29wZW52cG4uY29uZgotICAgIGZpCi19Ci0KLVBBQ0tBR0VTID0rICIgJHtQTn0tc2FtcGxlICIKLQotUlJFQ09NTUVORFNfJHtQTn0gPSAia2VybmVsLW1vZHVsZS10dW4iCi0KLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L29wZW52cG4vcGx1Z2lucy8uZGVidWciCi1GSUxFU18ke1BOfSArPSAiJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9vcGVudnBuQC5zZXJ2aWNlIFwKLSAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQgXAotICAgICAgICAgICAgICAgIgotRklMRVNfJHtQTn0tc2FtcGxlICs9ICIke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL29wZW52cG5AbG9vcGJhY2stc2VydmVyLnNlcnZpY2UgXAotICAgICAgICAgICAgICAgICAgICAgICAke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL29wZW52cG5AbG9vcGJhY2stY2xpZW50LnNlcnZpY2UgXAotICAgICAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L29wZW52cG4vc2FtcGxlLyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9vcGVudnBuL29wZW52cG5fMi40LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvb3BlbnZwbi9vcGVudnBuXzIuNC40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjYWQ5OTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvb3BlbnZwbi9vcGVudnBuXzIuNC40LmJiCkBAIC0wLDAgKzEsNjcgQEAKK1NVTU1BUlkgPSAiQSBmdWxsLWZlYXR1cmVkIFNTTCBWUE4gc29sdXRpb24gdmlhIHR1biBkZXZpY2UuIgorSE9NRVBBR0UgPSAiaHR0cDovL29wZW52cG4uc291cmNlZm9yZ2UubmV0IgorU0VDVElPTiA9ICJuZXQiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZTliNjQ0OTFlYzk4ZWI2YzY0OTNhYzVlNDExOGYxMDciCitERVBFTkRTID0gImx6byBvcGVuc3NsIGlwcm91dGUyICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgJ2xpYnBhbScsICcnLCBkKX0iCisKK2luaGVyaXQgYXV0b3Rvb2xzIHN5c3RlbWQKKworU1JDX1VSSSA9ICJodHRwOi8vc3d1cGRhdGUub3BlbnZwbi5vcmcvY29tbXVuaXR5L3JlbGVhc2VzLyR7QlB9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9vcGVudnBuIFwKKyAgICAgICAgICAgZmlsZTovL29wZW52cG5ALnNlcnZpY2UgXAorICAgICAgICAgICBmaWxlOi8vb3BlbnZwbi12b2xhdGlsZS5jb25mIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNzA1YTc5ZDAwNTU1OGQ5NGZhMWUyYjc0ZTQ0MTNlOTciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMWFlODgzZDk1MjJjOWZhNmQxODllNWU0YWFhMDU4YTkzZWRkM2QwYjg5N2UzYzI2NjQxMDdjNDc4NTA5OWZjMyIKKworU1lTVEVNRF9TRVJWSUNFXyR7UE59ICs9ICJvcGVudnBuQGxvb3BiYWNrLXNlcnZlci5zZXJ2aWNlIG9wZW52cG5AbG9vcGJhY2stY2xpZW50LnNlcnZpY2UiCitTWVNURU1EX0FVVE9fRU5BQkxFID0gImRpc2FibGUiCisKK0NGTEFHUyArPSAiLWZuby1pbmxpbmUiCisKKyMgSSB3YW50IG9wZW52cG4gdG8gYmUgYWJsZSB0byByZWFkIHBhc3N3b3JkIGZyb20gZmlsZSAoaHJ3KQorRVhUUkFfT0VDT05GICs9ICItLWVuYWJsZS1pcHJvdXRlMiIKK0VYVFJBX09FQ09ORiArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdwYW0nLCAnJywgJy0tZGlzYWJsZS1wbHVnaW4tYXV0aC1wYW0nLCBkKX0iCisKKyMgRXhwbGljaXRseSBzcGVjaWZ5IElQUk9VVEUgdG8gYnlwYXNzIHRoZSBjb25maWd1cmUtdGltZSBjaGVjayBmb3IgL3NiaW4vaXAgb24gdGhlIGhvc3QuCitFWFRSQV9PRUNPTkYgKz0gIklQUk9VVEU9JHtiYXNlX3NiaW5kaXJ9L2lwIgorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICBpbnN0YWxsIC1tIDc1NSAke1dPUktESVJ9L29wZW52cG4gJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZAorCisgICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vb3BlbnZwbgorICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L29wZW52cG4vc2FtcGxlCisgICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9zYW1wbGUvc2FtcGxlLWNvbmZpZy1maWxlcy9sb29wYmFjay1zZXJ2ZXIgICR7RH0ke3N5c2NvbmZkaXJ9L29wZW52cG4vc2FtcGxlL2xvb3BiYWNrLXNlcnZlci5jb25mCisgICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9zYW1wbGUvc2FtcGxlLWNvbmZpZy1maWxlcy9sb29wYmFjay1jbGllbnQgICR7RH0ke3N5c2NvbmZkaXJ9L29wZW52cG4vc2FtcGxlL2xvb3BiYWNrLWNsaWVudC5jb25mCisgICAgaW5zdGFsbCAtZG0gNzU1ICR7RH0ke3N5c2NvbmZkaXJ9L29wZW52cG4vc2FtcGxlL3NhbXBsZS1rZXlzCisgICAgaW5zdGFsbCAtbSA2NDQgJHtTfS9zYW1wbGUvc2FtcGxlLWtleXMvKiAke0R9JHtzeXNjb25mZGlyfS9vcGVudnBuL3NhbXBsZS9zYW1wbGUta2V5cworCisgICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsJ3N5c3RlbWQnLCd0cnVlJywnZmFsc2UnLGQpfTsgdGhlbgorICAgICAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgICAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L29wZW52cG5ALnNlcnZpY2UgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vb3BlbnZwbkAuc2VydmljZSAke0R9LyR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vb3BlbnZwbkBsb29wYmFjay1zZXJ2ZXIuc2VydmljZQorICAgICAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L29wZW52cG5ALnNlcnZpY2UgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL29wZW52cG5AbG9vcGJhY2stY2xpZW50LnNlcnZpY2UKKworICAgICAgICBpbnN0YWxsIC1kICR7RH0vJHtsb2NhbHN0YXRlZGlyfQorICAgICAgICBpbnN0YWxsIC1kICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9saWIKKyAgICAgICAgaW5zdGFsbCAtZCAtbSA3MTAgJHtEfS8ke2xvY2Fsc3RhdGVkaXJ9L2xpYi9vcGVudnBuCisKKyAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kCisgICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L29wZW52cG4tdm9sYXRpbGUuY29uZiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kL29wZW52cG4uY29uZgorICAgICAgICBzZWQgLWkgLWUgJ3MjQExPQ0FMU1RBVEVESVJAIyR7bG9jYWxzdGF0ZWRpcn0jZycgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC9vcGVudnBuLmNvbmYKKyAgICBmaQorfQorCitQQUNLQUdFUyA9KyAiICR7UE59LXNhbXBsZSAiCisKK1JSRUNPTU1FTkRTXyR7UE59ID0gImtlcm5lbC1tb2R1bGUtdHVuIgorCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9vcGVudnBuL3BsdWdpbnMvLmRlYnVnIgorRklMRVNfJHtQTn0gKz0gIiR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vb3BlbnZwbkAuc2VydmljZSBcCisgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS90bXBmaWxlcy5kIFwKKyAgICAgICAgICAgICAgICIKK0ZJTEVTXyR7UE59LXNhbXBsZSArPSAiJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9vcGVudnBuQGxvb3BiYWNrLXNlcnZlci5zZXJ2aWNlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9vcGVudnBuQGxvb3BiYWNrLWNsaWVudC5zZXJ2aWNlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9vcGVudnBuL3NhbXBsZS8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvc3NtdHAvc3NtdHAvc3NtdHAtYnVnNTg0MTYyLWZpeC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zc210cC9zc210cC9zc210cC1idWc1ODQxNjItZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwODdiYzcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvc3NtdHAvc3NtdHAvc3NtdHAtYnVnNTg0MTYyLWZpeC5wYXRjaApAQCAtMCwwICsxLDEyNiBAQAorQnVnLURlYmlhbjogaHR0cDovL2J1Z3MuZGViaWFuLm9yZy81ODQxNjIKK1JlcG9ydGVkLUJ5OiBDaHJpc3RvcGggQmllZGwgPGRlYmlhbi5heGhuQG1hbmNobWFsLmluLXVsbS5kZT4KK0ZvcndhcmRlZDogbm90LW5lZWRlZAorUmV2aWV3ZWQtQnk6IEFuaWJhbCBNb25zYWx2ZSBTYWxhemFyIDxhbmliYWxAZGViaWFuLm9yZz4KK0xhc3QtVXBkYXRlOiAyMDE0LTA4LTE1CisKK0Zyb206ICJEYW5pZWwgUmljaGFyZCBHLiIgPHNrdW5rQGlTS1VOSy5PUkc+CitTdWJqZWN0OiBSZTogc3NtdHA6IFBhcnRpYWwgbG9zcyBvZiBtZXNzYWdlIGJvZHksIHNlbmRpbmcgbWVzc2FnZSB0byB3cm9uZyByZWNpcGljaWVudHMKK0RhdGU6IFRodSwgMTkgSnVuIDIwMTQgMTQ6NDQ6MzAgLTA0MDAKKworQXR0YWNoZWQgaXMgYSBwYXRjaCBhZ2FpbnN0IHRoZSBvcmlnaW5hbCAyLjY0IHNvdXJjZSB0aGF0IHNob3VsZCBhZGRyZXNzCit0aGlzIGJ1ZywgYW5kIGhvcGVmdWxseSBub3QgYnJlYWsgYW55dGhpbmcuIEFuIG92ZXJ2aWV3IG9mIG15IGNoYW5nZXM6CisKKyogQWRkZWQgY29kZSB0byBzdGFuZGFyaXNlKCkgdG8gZHJvcCB0aGUgdHJhaWxpbmcgJ1xyJyBpZiB0aGUgbGluZQorICBvcmlnaW5hbGx5IGVuZGVkIHdpdGggIlxyXG4iLgorCisqIEFkZGVkIGEgY2hlY2sgdG8gaGVhZGVyX3BhcnNlKCkgdGhhdCBlZmZlY3RpdmVseSBjb252ZXJ0cyBhbiAiXHJcbiIgaW4KKyAgdGhlIGlucHV0IGludG8gJ1xuJy4KKworKiBBZGRlZCBhIGNvbmRpdGlvbmFsIHNvIHRoYXQgaGVhZGVyX3BhcnNlKCkgZG9lc24ndCBwYXNzIHRoZSBlbXB0eQorICBzdHJpbmcgdG8gaGVhZGVyX3NhdmUoKS0tLWEgYmVoYXZpb3IgSSBvYnNlcnZlZCBpbiB0ZXN0aW5nLCBhdCB0aGUgZW5kCisgIG9mIGEgaGVhZGVyIGJsb2NrIHdpdGggIlxyXG4iIGxpbmUgZW5kaW5ncy4KKworKiBTaW1wbGlmaWVkIHRoZSBsYXN0IGlmKGluX2hlYWRlcikgY29uZGl0aW9uYWwgaW4gaGVhZGVyX3BhcnNlKCksCisgIGJlY2F1c2UgaXQgZXJyb25lb3VzbHkgYXNzdW1lcyB0aGF0IGlmIGluX2hlYWRlciA9PSBUcnVlLCB0aGVuIGMgY291bGQKKyAgaGF2ZSBzb21lIHZhbHVlIG90aGVyIHRoYW4gRU9GLiAoU2VlIHRoZSBjb25kaXRpb24gb24gdGhlIHByZXZpb3VzCisgICJ3aGlsZSIgbG9vcCwgYW5kIHRoZSBsYWNrIG9mIGFueSBvdGhlciB3YXkgdG8gZXhpdCBzYWlkIGxvb3AuKQorCisgIGhlYWRlcl9wYXJzZSgpIHdpbGwgbm93IHByb3Blcmx5IGdyYWIgYSBoZWFkZXIgaWYgZmVkIGEgbWVzc2FnZQorICB3aXRob3V0IGEgYm9keSAoaS5lLiBubyAiXG5cbiIgZW5kaW5nIHRoZSBoZWFkZXIgYmxvY2spLCBhbHRob3VnaCB0aGlzCisgIGNvZGUgd2lsbCBzdGlsbCBkcm9wIGEgaGVhZGVyIGlmIHRoZXJlIGlzIG5vIG5ld2xpbmUgYXQgdGhlIGVuZC4KKworQ2hyaXN0b3BoLCB0aGFuayB5b3UgZm9yIHlvdXIgZXhjZWxsZW50IGFuYWx5c2lzLCBhbmQgdGhlIHRlc3QgY2FzZXMuIEkKK21hZGUgdXNlIG9mIHRoZW0sIGFuZCB3aXRoIG15IGNoYW5nZXMgc1NNVFAgYXBwZWFycyB0byBkbyB0aGUgcmlnaHQKK3RoaW5nLgorCitEZWJpYW4gcGF0Y2ggZnJvbTogaHR0cHM6Ly9zb3VyY2VzLmRlYmlhbi5uZXQvcGF0Y2hlcy9zc210cC8yLjY0LTgvCisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgW2RlYmlhbl0KKworU2lnbmVkLW9mZi1ieTogQW5kcmUgTWNDdXJkeSA8YXJtY2N1cmR5QGdtYWlsLmNvbT4KKworSW5kZXg6IHNzbXRwLTIuNjQvc3NtdHAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHNzbXRwLTIuNjQub3JpZy9zc210cC5jCisrKysgc3NtdHAtMi42NC9zc210cC5jCitAQCAtMzc1LDYgKzM3NSwxMiBAQCBib29sX3Qgc3RhbmRhcmRpc2UoY2hhciAqc3RyLCBib29sX3QgKmxpCisgCWlmKChwID0gc3RyY2hyKHN0ciwgJ1xuJykpKSB7CisgCQkqcCA9IChjaGFyKU5VTEw7CisgCQkqbGluZXN0YXJ0ID0gVHJ1ZTsKKysKKysJCS8qIElmIHRoZSBsaW5lIGVuZGVkIGluICJcclxuIiwgdGhlbiBkcm9wIHRoZSAnXHInIHRvbyAqLworKwkJc2wgPSBzdHJsZW4oc3RyKTsKKysJCWlmKHNsID49IDEgJiYgc3RyW3NsIC0gMV0gPT0gJ1xyJykgeworKwkJCXN0cltzbCAtIDFdID0gKGNoYXIpTlVMTDsKKysJCX0KKyAJfQorIAlyZXR1cm4obGVhZGluZ2RvdCk7CisgfQorQEAgLTc2OCw2ICs3NzQsMTQgQEAgdm9pZCBoZWFkZXJfcGFyc2UoRklMRSAqc3RyZWFtKQorIAkJfQorIAkJbGVuKys7CisgCisrCQlpZihsID09ICdccicgJiYgYyA9PSAnXG4nKSB7CisrCQkJLyogUHJvcGVybHkgaGFuZGxlIGlucHV0IHRoYXQgYWxyZWFkeSBoYXMgIlxyXG4iCisrCQkJICAgbGluZSBlbmRpbmdzOyBzZWUgaHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcvNTg0MTYyICovCisrCQkJbCA9IChsZW4gPj0gMiA/ICoocSAtIDIpIDogJ1xuJyk7CisrCQkJcS0tOworKwkJCWxlbi0tOworKwkJfQorKworIAkJaWYobCA9PSAnXG4nKSB7CisgCQkJc3dpdGNoKGMpIHsKKyAJCQkJY2FzZSAnICc6CitAQCAtNzkwLDcgKzgwNCw5IEBAIHZvaWQgaGVhZGVyX3BhcnNlKEZJTEUgKnN0cmVhbSkKKyAJCQkJCQlpZigocSA9IHN0cnJjaHIocCwgJ1xuJykpKSB7CisgCQkJCQkJCSpxID0gKGNoYXIpTlVMTDsKKyAJCQkJCQl9CistCQkJCQkJaGVhZGVyX3NhdmUocCk7CisrCQkJCQkJaWYobGVuID4gMCkgeworKwkJCQkJCQloZWFkZXJfc2F2ZShwKTsKKysJCQkJCQl9CisgCisgCQkJCQkJcSA9IHA7CisgCQkJCQkJbGVuID0gMDsKK0BAIC04MDAsMzUgKzgxNiwxMiBAQCB2b2lkIGhlYWRlcl9wYXJzZShGSUxFICpzdHJlYW0pCisgCisgCQlsID0gYzsKKyAJfQorLQlpZihpbl9oZWFkZXIpIHsKKy0JCWlmKGwgPT0gJ1xuJykgeworLQkJCXN3aXRjaChjKSB7CistCQkJCWNhc2UgJyAnOgorLQkJCQljYXNlICdcdCc6CistCQkJCQkJLyogTXVzdCBpbnNlcnQgJ1xyJyBiZWZvcmUgJ1xuJ3MgZW1iZWRkZWQgaW4gaGVhZGVyCistCQkJCQkJICAgZmllbGRzIG90aGVyd2lzZSBxbWFpbCB3b24ndCBhY2NlcHQgb3VyIG1haWwKKy0JCQkJCQkgICBiZWNhdXNlIGEgYmFyZSAnXG4nIHZpb2xhdGVzIHNvbWUgUkZDICovCistCQkJCQkJCistCQkJCQkJKihxIC0gMSkgPSAnXHInOwkvKiBSZXBsYWNlIHByZXZpb3VzIFxuIHdpdGggXHIgKi8KKy0JCQkJCQkqcSsrID0gJ1xuJzsJCS8qIEluc2VydCBcbiAqLworLQkJCQkJCWxlbisrOworLQkJCQkJCQorLQkJCQkJCWJyZWFrOworLQorLQkJCQljYXNlICdcbic6CistCQkJCQkJaW5faGVhZGVyID0gRmFsc2U7CistCistCQkJCWRlZmF1bHQ6CistCQkJCQkJKnEgPSAoY2hhcilOVUxMOworLQkJCQkJCWlmKChxID0gc3RycmNocihwLCAnXG4nKSkpIHsKKy0JCQkJCQkJKnEgPSAoY2hhcilOVUxMOworLQkJCQkJCX0KKy0JCQkJCQloZWFkZXJfc2F2ZShwKTsKKy0KKy0JCQkJCQlxID0gcDsKKy0JCQkJCQlsZW4gPSAwOworLQkJCX0KKysJaWYoaW5faGVhZGVyICYmIGwgPT0gJ1xuJykgeworKwkJLyogR290IEVPRiB3aGlsZSByZWFkaW5nIHRoZSBoZWFkZXIgKi8KKysJCWlmKChxID0gc3RycmNocihwLCAnXG4nKSkpIHsKKysJCQkqcSA9IChjaGFyKU5VTEw7CisgCQl9CisrCQloZWFkZXJfc2F2ZShwKTsKKyAJfQorIAkodm9pZClmcmVlKHApOworIH0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zc210cC9zc210cF8yLjY0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3NzbXRwL3NzbXRwXzIuNjQuYmIKaW5kZXggOWQ0ODY0ZC4uMDdlM2ZmZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3NzbXRwL3NzbXRwXzIuNjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3NzbXRwL3NzbXRwXzIuNjQuYmIKQEAgLTEsMjUgKzEsMjkgQEAKIFNVTU1BUlkgPSAiZXh0cmVtZWx5IHNpbXBsZSBNVEEgdG8gZ2V0IG1haWwgb2ZmIHRoZSBzeXN0ZW0gdG8gYSBtYWlsIGh1YiIKIEhPTUVQQUdFID0gImh0dHA6Ly9wYWNrYWdlcy5xYS5kZWJpYW4ub3JnL3Mvc3NtdHAuaHRtbCIKLQogTElDRU5TRSA9ICJHUEx2MiIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTBjNTZkYjAxNDNmNGY4MGMzNjllZTNhZjc0MjVhZjZlIgogCi1TUkNfVVJJID0gIlwKLSAgICAgICAgICAgJHtERUJJQU5fTUlSUk9SfS9tYWluL3MvJHtCUE59LyR7QlBOfV8ke1BWfS5vcmlnLnRhci5iejIgXAorU1JDX1VSSSA9ICIke0RFQklBTl9NSVJST1J9L21haW4vcy8ke0JQTn0vJHtCUE59XyR7UFZ9Lm9yaWcudGFyLmJ6MiBcCisgICAgICAgICAgIGZpbGU6Ly9zc210cC1idWc1ODQxNjItZml4LnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovL2J1aWxkLW91c2lkZV9zcmNkaXIucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vdXNlLURFU1RESVIucGF0Y2ggXAotICAgICAgICAgICIKKyIKKworU1JDX1VSSVttZDVzdW1dID0gIjY1YjRlMGRmNDkzNGE2Y2QwOGM1MDZjYWJjYmU1ODRmIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjIyYzM3ZGM5MGM4NzFlOGUwNTJiMmNhYjBhZDIxOWQwMTBmYTkzODYwOGNkNjZiMjFjOGYzYzc1OTA0NmZhMzYiCisKK2luaGVyaXQgYXV0b3Rvb2xzCisKK1BBQ0tBR0VDT05GSUcgPz0gInNzbCAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdpcHY2JywgZCl9IgorCitQQUNLQUdFQ09ORklHW3NzbF0gPSAiLS1lbmFibGUtc3NsLC0tZGlzYWJsZS1zc2wsb3BlbnNzbCIKK1BBQ0tBR0VDT05GSUdbaXB2Nl0gPSAiLS1lbmFibGUtaW5ldDYsLS1kaXNhYmxlLWluZXQ2IgogCiBFWFRSQV9PRUNPTkYgKz0gIi0tbWFuZGlyPSR7bWFuZGlyfSIKIAogRVhUUkFfT0VNQUtFID0gIkdFTl9DT05GSUc9Jy9iaW4vdHJ1ZSciCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI2NWI0ZTBkZjQ5MzRhNmNkMDhjNTA2Y2FiY2JlNTg0ZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIyMmMzN2RjOTBjODcxZThlMDUyYjJjYWIwYWQyMTlkMDEwZmE5Mzg2MDhjZDY2YjIxYzhmM2M3NTkwNDZmYTM2IgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKLQotREVQRU5EUyArPSAib3BlbnNzbCBpbmV0dXRpbHMiCitMREZMQUdTICs9ICIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdzc2wnLCAnLWxzc2wgLWxjcnlwdG8nLCAnJywgZCl9IgogCiBkb19pbnN0YWxsX2FwcGVuZCAoKSB7CiAgICAgaW5zdGFsbCAtZCAke0R9JHttYW5kaXJ9LwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3N0cm9uZ3N3YW4vZmlsZXMvMDAwMS1tZW1vcnkuaC1JbmNsdWRlLXN0ZGludC5oLWZvci11aW50cHRyX3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvc3Ryb25nc3dhbi9maWxlcy8wMDAxLW1lbW9yeS5oLUluY2x1ZGUtc3RkaW50LmgtZm9yLXVpbnRwdHJfdC5wYXRjaAppbmRleCA3ZWJjMzk4Li4wMDE3OGM4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvc3Ryb25nc3dhbi9maWxlcy8wMDAxLW1lbW9yeS5oLUluY2x1ZGUtc3RkaW50LmgtZm9yLXVpbnRwdHJfdC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvc3Ryb25nc3dhbi9maWxlcy8wMDAxLW1lbW9yeS5oLUluY2x1ZGUtc3RkaW50LmgtZm9yLXVpbnRwdHJfdC5wYXRjaApAQCAtMSwxNSArMSwxNiBAQAotRnJvbSAyYTNhYjA0YmJkYzQ2MjQ3OTI4ODZhYTUxNTc5ZWFkYjQyN2VmOTllIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAzM2E1M2RjMTNmZDkyNDk0OWE1ODIxMDliNDVmZWRkOGQwYmVkNTliIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFR1ZSwgMjcgSnVuIDIwMTcgMDc6NDI6MTEgLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gbWVtb3J5Lmg6IEluY2x1ZGUgc3RkaW50LmggZm9yIHVpbnRwdHJfdAogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBzcmMvbGlic3Ryb25nc3dhbi91dGlscy91dGlscy9tZW1vcnkuaCB8IDIgKysKICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCiAKIGRpZmYgLS1naXQgYS9zcmMvbGlic3Ryb25nc3dhbi91dGlscy91dGlscy9tZW1vcnkuaCBiL3NyYy9saWJzdHJvbmdzd2FuL3V0aWxzL3V0aWxzL21lbW9yeS5oCi1pbmRleCBiOTc4ZTdjLi41NWFhYWY1IDEwMDY0NAoraW5kZXggZTg0MDMzMC4uOGEzNTZhOCAxMDA2NDQKIC0tLSBhL3NyYy9saWJzdHJvbmdzd2FuL3V0aWxzL3V0aWxzL21lbW9yeS5oCiArKysgYi9zcmMvbGlic3Ryb25nc3dhbi91dGlscy91dGlscy9tZW1vcnkuaAogQEAgLTIyLDYgKzIyLDggQEAKQEAgLTIxLDYgKzIyLDMgQEAKICAvKioKICAgKiBIZWxwZXIgZnVuY3Rpb24gdGhhdCBjb21wYXJlcyB0d28gYmluYXJ5IGJsb2JzIGZvciBlcXVhbGl0eQogICAqLwotLS0gCi0yLjEzLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3N0cm9uZ3N3YW4vZmlsZXMvZml4LWZ1bnRpb24tcGFyYW1ldGVyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3N0cm9uZ3N3YW4vZmlsZXMvZml4LWZ1bnRpb24tcGFyYW1ldGVyLnBhdGNoCmluZGV4IGRhOTY5ODMuLmJlNjYwZDEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zdHJvbmdzd2FuL2ZpbGVzL2ZpeC1mdW50aW9uLXBhcmFtZXRlci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvc3Ryb25nc3dhbi9maWxlcy9maXgtZnVudGlvbi1wYXJhbWV0ZXIucGF0Y2gKQEAgLTEsNCArMSw3IEBACi1maXggdGhlIGZ1bmN0aW9uIHBhcmFtZXRlcgorRnJvbSA5Zjk3NDc5MzczZjNmY2VlZGM0NzEwNzRiODE0ODZkNzdhNDk2MThkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIlJveS5MaSIgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CitEYXRlOiBUdWUsIDQgTWFyIDIwMTQgMTQ6Mzg6NDIgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4IHRoZSBmdW5jdGlvbiBwYXJhbWV0ZXIKIAogVXBzdHJlYW0tU3RhdHVzOiBwZW5kaW5nCiAKQEAgLTMxLDkgKzM0LDEwIEBACiAgICAgIzExIDB4NDgzNmMzNzggaW4gcHJvY2Vzc19tZXNzYWdlICh0aGlzPTB4NTE0MDA1ZjAsIG1lc3NhZ2U9MHg1MTUwMDc3OCkKICAgICAgICAgIGF0IHNhL2lrZV9zYS5jOjEzMTcKICAgICAjMTIgMHg0ODM2MjI3MCBpbiBleGVjdXRlICh0aGlzPTB4NTE1MDA4ZDApCi0gICAgICAgICBhdCBwcm9jZXNzaW5nL2pvYnMvcHJvY2Vzc19tZXNzYWdlX2pvYi5jOjc0IAorICAgICAgICAgYXQgcHJvY2Vzc2luZy9qb2JzL3Byb2Nlc3NfbWVzc2FnZV9qb2IuYzo3NAogCiBTaWduZWQtb2ZmLWJ5OiBSb3kuTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CisKIC0tLQogIHNyYy9saWJzdHJvbmdzd2FuL3BsdWdpbnMvb3BlbnNzbC9vcGVuc3NsX2RpZmZpZV9oZWxsbWFuLmMgfCA4ICsrKysrKystCiAgc3JjL2xpYnN0cm9uZ3N3YW4vcGx1Z2lucy9vcGVuc3NsL29wZW5zc2xfZGlmZmllX2hlbGxtYW4uaCB8IDQgKysrLQpAQCAtNDEsMjAgKzQ1LDIwIEBACiAgMyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvc3JjL2xpYnN0cm9uZ3N3YW4vcGx1Z2lucy9vcGVuc3NsL29wZW5zc2xfZGlmZmllX2hlbGxtYW4uYyBiL3NyYy9saWJzdHJvbmdzd2FuL3BsdWdpbnMvb3BlbnNzbC9vcGVuc3NsX2RpZmZpZV9oZWxsbWFuLmMKLWluZGV4IGZmMzM4MjQuLmJkMjE0NDYgMTAwNjQ0CitpbmRleCA4ZTljMTE4Li5hNzNiMDM4IDEwMDY0NAogLS0tIGEvc3JjL2xpYnN0cm9uZ3N3YW4vcGx1Z2lucy9vcGVuc3NsL29wZW5zc2xfZGlmZmllX2hlbGxtYW4uYwogKysrIGIvc3JjL2xpYnN0cm9uZ3N3YW4vcGx1Z2lucy9vcGVuc3NsL29wZW5zc2xfZGlmZmllX2hlbGxtYW4uYwotQEAgLTE0Miw3ICsxNDIsNyBAQCBNRVRIT0QoZGlmZmllX2hlbGxtYW5fdCwgZGVzdHJveSwgdm9pZCwKK0BAIC0xOTIsNyArMTkyLDcgQEAgTUVUSE9EKGRpZmZpZV9oZWxsbWFuX3QsIGRlc3Ryb3ksIHZvaWQsCiAgLyoKICAgKiBEZXNjcmliZWQgaW4gaGVhZGVyLgogICAqLwogLW9wZW5zc2xfZGlmZmllX2hlbGxtYW5fdCAqb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl9jcmVhdGUoCiArb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl90ICpvcGVuc3NsX2RpZmZpZV9oZWxsbWFuX2NyZWF0ZV9jdXN0b20oCi0gCQkJCQkJCWRpZmZpZV9oZWxsbWFuX2dyb3VwX3QgZ3JvdXAsIGNodW5rX3QgZywgY2h1bmtfdCBwKQorIAkJCQkJCQkJCQkJZGlmZmllX2hlbGxtYW5fZ3JvdXBfdCBncm91cCwgLi4uKQogIHsKICAJcHJpdmF0ZV9vcGVuc3NsX2RpZmZpZV9oZWxsbWFuX3QgKnRoaXM7Ci1AQCAtMTk3LDUgKzE5NywxMSBAQCBvcGVuc3NsX2RpZmZpZV9oZWxsbWFuX3QgKm9wZW5zc2xfZGlmZmllX2hlbGxtYW5fY3JlYXRlKAotIAorQEAgLTI1NSw1ICsyNTUsMTEgQEAgb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl90ICpvcGVuc3NsX2RpZmZpZV9oZWxsbWFuX2NyZWF0ZSgKKyAJREJHMihEQkdfTElCLCAic2l6ZSBvZiBESCBzZWNyZXQgZXhwb25lbnQ6ICVkIGJpdHMiLCBCTl9udW1fYml0cyhwcml2a2V5KSk7CiAgCXJldHVybiAmdGhpcy0+cHVibGljOwogIH0KICtvcGVuc3NsX2RpZmZpZV9oZWxsbWFuX3QgKm9wZW5zc2xfZGlmZmllX2hlbGxtYW5fY3JlYXRlKCBkaWZmaWVfaGVsbG1hbl9ncm91cF90IGdyb3VwKQpAQCAtNjYsMjYgKzcwLDI2IEBACiAgCiAgI2VuZGlmIC8qIE9QRU5TU0xfTk9fREggKi8KIGRpZmYgLS1naXQgYS9zcmMvbGlic3Ryb25nc3dhbi9wbHVnaW5zL29wZW5zc2wvb3BlbnNzbF9kaWZmaWVfaGVsbG1hbi5oIGIvc3JjL2xpYnN0cm9uZ3N3YW4vcGx1Z2lucy9vcGVuc3NsL29wZW5zc2xfZGlmZmllX2hlbGxtYW4uaAotaW5kZXggNTNkYzU5Yy4uZWI2OWVhYSAxMDA2NDQKK2luZGV4IDVkZTU1MjAuLjIyNTg2ZTAgMTAwNjQ0CiAtLS0gYS9zcmMvbGlic3Ryb25nc3dhbi9wbHVnaW5zL29wZW5zc2wvb3BlbnNzbF9kaWZmaWVfaGVsbG1hbi5oCiArKysgYi9zcmMvbGlic3Ryb25nc3dhbi9wbHVnaW5zL29wZW5zc2wvb3BlbnNzbF9kaWZmaWVfaGVsbG1hbi5oCi1AQCAtNDQsOCArNDQsMTAgQEAgc3RydWN0IG9wZW5zc2xfZGlmZmllX2hlbGxtYW5fdCB7Ci0gICogQHBhcmFtIHAJCQkJY3VzdG9tIHByaW1lLCBpZiBNT0RQX0NVU1RPTQorQEAgLTQzLDggKzQzLDEwIEBAIHN0cnVjdCBvcGVuc3NsX2RpZmZpZV9oZWxsbWFuX3QgeworICAqIEBwYXJhbSAuLi4JCQlleHBlY3RzIGdlbmVyYXRvciBhbmQgcHJpbWUgYXMgY2h1bmtfdCBpZiBNT0RQX0NVU1RPTQogICAqIEByZXR1cm4JCQkJb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl90IG9iamVjdCwgTlVMTCBpZiBub3Qgc3VwcG9ydGVkCiAgICovCiAtb3BlbnNzbF9kaWZmaWVfaGVsbG1hbl90ICpvcGVuc3NsX2RpZmZpZV9oZWxsbWFuX2NyZWF0ZSgKICtvcGVuc3NsX2RpZmZpZV9oZWxsbWFuX3QgKm9wZW5zc2xfZGlmZmllX2hlbGxtYW5fY3JlYXRlX2N1c3RvbSgKLSAJCQkJCQkJZGlmZmllX2hlbGxtYW5fZ3JvdXBfdCBncm91cCwgY2h1bmtfdCBnLCBjaHVua190IHApOworIAkJCQkJCQkJCQkJZGlmZmllX2hlbGxtYW5fZ3JvdXBfdCBncm91cCwgLi4uKTsKICtvcGVuc3NsX2RpZmZpZV9oZWxsbWFuX3QgKm9wZW5zc2xfZGlmZmllX2hlbGxtYW5fY3JlYXRlKAogKwkJCQkJCQlkaWZmaWVfaGVsbG1hbl9ncm91cF90IGdyb3VwKTsKICAKICAjZW5kaWYgLyoqIE9QRU5TU0xfRElGRklFX0hFTExNQU5fSF8gQH0qLwogIAogZGlmZiAtLWdpdCBhL3NyYy9saWJzdHJvbmdzd2FuL3BsdWdpbnMvb3BlbnNzbC9vcGVuc3NsX3BsdWdpbi5jIGIvc3JjL2xpYnN0cm9uZ3N3YW4vcGx1Z2lucy9vcGVuc3NsL29wZW5zc2xfcGx1Z2luLmMKLWluZGV4IGZmMjUwODYuLmM3Njg3M2QgMTAwNjQ0CitpbmRleCA4YjBhN2M1Li4xMTRkNTc1IDEwMDY0NAogLS0tIGEvc3JjL2xpYnN0cm9uZ3N3YW4vcGx1Z2lucy9vcGVuc3NsL29wZW5zc2xfcGx1Z2luLmMKICsrKyBiL3NyYy9saWJzdHJvbmdzd2FuL3BsdWdpbnMvb3BlbnNzbC9vcGVuc3NsX3BsdWdpbi5jCi1AQCAtMzg4LDYgKzM4OCw3IEBAIE1FVEhPRChwbHVnaW5fdCwgZ2V0X2ZlYXR1cmVzLCBpbnQsCitAQCAtNjA5LDYgKzYwOSw3IEBAIE1FVEhPRChwbHVnaW5fdCwgZ2V0X2ZlYXR1cmVzLCBpbnQsCiAgCQkJUExVR0lOX1BST1ZJREUoREgsIE1PRFBfMTAyNF9CSVQpLAogIAkJCVBMVUdJTl9QUk9WSURFKERILCBNT0RQXzEwMjRfMTYwKSwKICAJCQlQTFVHSU5fUFJPVklERShESCwgTU9EUF83NjhfQklUKSwKQEAgLTkzLDYgKzk3LDMgQEAKICAJCQlQTFVHSU5fUFJPVklERShESCwgTU9EUF9DVVNUT00pLAogICNlbmRpZgogICNpZm5kZWYgT1BFTlNTTF9OT19SU0EKLS0tIAotMS44LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3N0cm9uZ3N3YW4vc3Ryb25nc3dhbl81LjUuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC9zdHJvbmdzd2FuL3N0cm9uZ3N3YW5fNS41LjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmYjU2YmMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3N0cm9uZ3N3YW4vc3Ryb25nc3dhbl81LjUuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi1ERVNDUklQVElPTiA9ICJzdHJvbmdTd2FuIGlzIGFuIE9wZW5Tb3VyY2UgSVBzZWMgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBcCi1MaW51eCBvcGVyYXRpbmcgc3lzdGVtLiIKLVNVTU1BUlkgPSAic3Ryb25nU3dhbiBpcyBhbiBPcGVuU291cmNlIElQc2VjIGltcGxlbWVudGF0aW9uIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5zdHJvbmdzd2FuLm9yZyIKLVNFQ1RJT04gPSAibmV0IgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgotREVQRU5EUyA9ICJnbXAgb3BlbnNzbCBmbGV4LW5hdGl2ZSBmbGV4IGJpc29uLW5hdGl2ZSIKLQotU1JDX1VSSSA9ICJodHRwOi8vZG93bmxvYWQuc3Ryb25nc3dhbi5vcmcvc3Ryb25nc3dhbi0ke1BWfS50YXIuYnoyIFwKLSAgICAgICAgICAgZmlsZTovL2ZpeC1mdW50aW9uLXBhcmFtZXRlci5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLW1lbW9yeS5oLUluY2x1ZGUtc3RkaW50LmgtZm9yLXVpbnRwdHJfdC5wYXRjaCBcCi0gICAgICAgICAgICIKLQotU1JDX1VSSVttZDVzdW1dID0gIjRhZmZmZTNjMjE5YmIyZTA0ZjA5NTEwOTA1YWY4MzZiIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImM1ZWE1NGIxOTkxNzQ3MDhkZTExYWY5YjhmNGVjZjI4YjViMDc0M2Q0YmMwZTM4MGU3NDFmMjViMjhjMGY4ZDQiCi0KLUVYVFJBX09FQ09ORiA9ICIgXAotICAgICAgICAtLXdpdGhvdXQtbGliLXByZWZpeCBcCi0iCi0KLUVYVFJBX09FQ09ORiArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJy0td2l0aC1zeXN0ZW1kc3lzdGVtdW5pdGRpcj0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLycsICctLXdpdGhvdXQtc3lzdGVtZHN5c3RlbXVuaXRkaXInLCBkKX0iCi0KLQotUEFDS0FHRUNPTkZJRyA/Pz0gImNoYXJvbiBjdXJsIGdtcCBvcGVuc3NsIHN0cm9rZSBzcWxpdGUzIFwKLSAgICAgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnbGRhcCcsIGQpfSBcCi0iCi1QQUNLQUdFQ09ORklHW2Flc25pXSA9ICItLWVuYWJsZS1hZXNuaSwtLWRpc2FibGUtYWVzbmksLCR7UE59LXBsdWdpbi1hZXNuaSIKLVBBQ0tBR0VDT05GSUdbY2hhcm9uXSA9ICItLWVuYWJsZS1jaGFyb24sLS1kaXNhYmxlLWNoYXJvbiwiCi1QQUNLQUdFQ09ORklHW2N1cmxdID0gIi0tZW5hYmxlLWN1cmwsLS1kaXNhYmxlLWN1cmwsY3VybCwke1BOfS1wbHVnaW4tY3VybCIKLVBBQ0tBR0VDT05GSUdbZ21wXSA9ICItLWVuYWJsZS1nbXAsLS1kaXNhYmxlLWdtcCxnbXAsJHtQTn0tcGx1Z2luLWdtcCIKLVBBQ0tBR0VDT05GSUdbbGRhcF0gPSAiLS1lbmFibGUtbGRhcCwtLWRpc2FibGUtbGRhcCxvcGVubGRhcCwke1BOfS1wbHVnaW4tbGRhcCIKLVBBQ0tBR0VDT05GSUdbbXlzcWxdID0gIi0tZW5hYmxlLW15c3FsLC0tZGlzYWJsZS1teXNxbCxteXNxbDUsJHtQTn0tcGx1Z2luLW15c3FsIgotUEFDS0FHRUNPTkZJR1tvcGVuc3NsXSA9ICItLWVuYWJsZS1vcGVuc3NsLC0tZGlzYWJsZS1vcGVuc3NsLG9wZW5zc2wsJHtQTn0tcGx1Z2luLW9wZW5zc2wiCi1QQUNLQUdFQ09ORklHW3NjZXBdID0gIi0tZW5hYmxlLXNjZXBjbGllbnQsLS1kaXNhYmxlLXNjZXBjbGllbnQsIgotUEFDS0FHRUNPTkZJR1tzb3VwXSA9ICItLWVuYWJsZS1zb3VwLC0tZGlzYWJsZS1zb3VwLGxpYnNvdXAtMi40LCR7UE59LXBsdWdpbi1zb3VwIgotUEFDS0FHRUNPTkZJR1tzcWxpdGUzXSA9ICItLWVuYWJsZS1zcWxpdGUsLS1kaXNhYmxlLXNxbGl0ZSxzcWxpdGUzLCR7UE59LXBsdWdpbi1zcWxpdGUiCi1QQUNLQUdFQ09ORklHW3N0cm9rZV0gPSAiLS1lbmFibGUtc3Ryb2tlLC0tZGlzYWJsZS1zdHJva2UsLCR7UE59LXBsdWdpbi1zdHJva2UiCi1QQUNLQUdFQ09ORklHW3N3YW5jdGxdID0gIi0tZW5hYmxlLXN3YW5jdGwsLS1kaXNhYmxlLXN3YW5jdGwsLGxpYmdjYyIKLQotIyByZXF1aXJlcyBzd2FuY3RsCi1QQUNLQUdFQ09ORklHW3N5c3RlbWQtY2hhcm9uXSA9ICItLWVuYWJsZS1zeXN0ZW1kLC0tZGlzYWJsZS1zeXN0ZW1kLHN5c3RlbWQsIgotCi1pbmhlcml0IGF1dG90b29scyBzeXN0ZW1kIHBrZ2NvbmZpZwotCi1SUkVDT01NRU5EU18ke1BOfSA9ICJrZXJuZWwtbW9kdWxlLWlwc2VjIgotCi1GSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L2lwc2VjL2xpYioke1NPTElCU30iCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7YmluZGlyfS8uZGVidWcgJHtsaWJkaXJ9L2lwc2VjLy5kZWJ1ZyAke2xpYmV4ZWNkaXJ9L2lwc2VjLy5kZWJ1ZyIKLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2lwc2VjL2xpYioke1NPTElCU0RFVn0gJHtsaWJkaXJ9L2lwc2VjLyoubGEiCi1GSUxFU18ke1BOfS1zdGF0aWNkZXYgKz0gIiR7bGliZGlyfS9pcHNlYy8qLmEiCi0KLUNPTkZGSUxFU18ke1BOfSA9ICIke3N5c2NvbmZkaXJ9LyouY29uZiAke3N5c2NvbmZkaXJ9L2lwc2VjLmQvKi5jb25mICR7c3lzY29uZmRpcn0vc3Ryb25nc3dhbi5kLyouY29uZiIKLQotUEFDS0FHRVMgKz0gIiR7UE59LXBsdWdpbnMiCi1BTExPV19FTVBUWV8ke1BOfS1wbHVnaW5zID0gIjEiCi0KLVBBQ0tBR0VTX0RZTkFNSUMgKz0gIl4ke1BOfS1wbHVnaW4tLiokIgotTk9BVVRPUEFDS0FHRURFQlVHID0gIjEiCi0KLXB5dGhvbiBzcGxpdF9zdHJvbmdzd2FuX3BsdWdpbnMgKCkgewotICAgIHN5c2NvbmZkaXIgPSBkLmV4cGFuZCgnJHtzeXNjb25mZGlyfS9zdHJvbmdzd2FuLmQvY2hhcm9uJykKLSAgICBsaWJkaXIgPSBkLmV4cGFuZCgnJHtsaWJkaXJ9L2lwc2VjL3BsdWdpbnMnKQotICAgIGRiZ2xpYmRpciA9IG9zLnBhdGguam9pbihsaWJkaXIsICcuZGVidWcnKQotCi0gICAgZGVmIGFkZF9wbHVnaW5fY29uZihmLCBwa2csIGZpbGVfcmVnZXgsIG91dHB1dF9wYXR0ZXJuLCBtb2R1bGVuYW1lKToKLSAgICAgICAgZHZhciA9IGQuZ2V0VmFyKCdQS0dEJywgVHJ1ZSkKLSAgICAgICAgb2xkZmlsZXMgPSBkLmdldFZhcignQ09ORkZJTEVTXycgKyBwa2csIFRydWUpCi0gICAgICAgIG5ld2ZpbGUgPSAnLycgKyBvcy5wYXRoLnJlbHBhdGgoZiwgZHZhcikKLQotICAgICAgICBpZiBub3Qgb2xkZmlsZXM6Ci0gICAgICAgICAgICBkLnNldFZhcignQ09ORkZJTEVTXycgKyBwa2csIG5ld2ZpbGUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBkLnNldFZhcignQ09ORkZJTEVTXycgKyBwa2csIG9sZGZpbGVzICsgIiAiICsgbmV3ZmlsZSkKLQotICAgIHNwbGl0X3BhY2thZ2VzID0gZG9fc3BsaXRfcGFja2FnZXMoZCwgbGliZGlyLCAnbGlic3Ryb25nc3dhbi0oLiopXC5zbycsICcke1BOfS1wbHVnaW4tJXMnLCAnc3Ryb25nU3dhbiAlcyBwbHVnaW4nLCBwcmVwZW5kPVRydWUpCi0gICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgc3lzY29uZmRpciwgJyguKilcLmNvbmYnLCAnJHtQTn0tcGx1Z2luLSVzJywgJ3N0cm9uZ1N3YW4gJXMgcGx1Z2luJywgcHJlcGVuZD1UcnVlLCBob29rPWFkZF9wbHVnaW5fY29uZikKLQotICAgIHNwbGl0X2RiZ19wYWNrYWdlcyA9IGRvX3NwbGl0X3BhY2thZ2VzKGQsIGRiZ2xpYmRpciwgJ2xpYnN0cm9uZ3N3YW4tKC4qKVwuc28nLCAnJHtQTn0tcGx1Z2luLSVzLWRiZycsICdzdHJvbmdTd2FuICVzIHBsdWdpbiAtIERlYnVnZ2luZyBmaWxlcycsIHByZXBlbmQ9VHJ1ZSwgZXh0cmFfZGVwZW5kcz0nJHtQTn0tZGJnJykKLSAgICBzcGxpdF9kZXZfcGFja2FnZXMgPSBkb19zcGxpdF9wYWNrYWdlcyhkLCBsaWJkaXIsICdsaWJzdHJvbmdzd2FuLSguKilcLmxhJywgJyR7UE59LXBsdWdpbi0lcy1kZXYnLCAnc3Ryb25nU3dhbiAlcyBwbHVnaW4gLSBEZXZlbG9wbWVudCBmaWxlcycsIHByZXBlbmQ9VHJ1ZSwgZXh0cmFfZGVwZW5kcz0nJHtQTn0tZGV2JykKLSAgICBzcGxpdF9zdGF0aWNkZXZfcGFja2FnZXMgPSBkb19zcGxpdF9wYWNrYWdlcyhkLCBsaWJkaXIsICdsaWJzdHJvbmdzd2FuLSguKilcLmEnLCAnJHtQTn0tcGx1Z2luLSVzLXN0YXRpY2RldicsICdzdHJvbmdTd2FuICVzIHBsdWdpbiAtIERldmVsb3BtZW50IGZpbGVzIChTdGF0aWMgTGlicmFyaWVzKScsIHByZXBlbmQ9VHJ1ZSwgZXh0cmFfZGVwZW5kcz0nJHtQTn0tc3RhdGljZGV2JykKLQotICAgIGlmIHNwbGl0X3BhY2thZ2VzOgotICAgICAgICBwbiA9IGQuZ2V0VmFyKCdQTicsIFRydWUpCi0gICAgICAgIGQuc2V0VmFyKCdSUkVDT01NRU5EU18nICsgcG4gKyAnLXBsdWdpbnMnLCAnICcuam9pbihzcGxpdF9wYWNrYWdlcykpCi0gICAgICAgIGQuYXBwZW5kVmFyKCdSUkVDT01NRU5EU18nICsgcG4gKyAnLWRiZycsICcgJyArICcgJy5qb2luKHNwbGl0X2RiZ19wYWNrYWdlcykpCi0gICAgICAgIGQuYXBwZW5kVmFyKCdSUkVDT01NRU5EU18nICsgcG4gKyAnLWRldicsICcgJyArICcgJy5qb2luKHNwbGl0X2Rldl9wYWNrYWdlcykpCi0gICAgICAgIGQuYXBwZW5kVmFyKCdSUkVDT01NRU5EU18nICsgcG4gKyAnLXN0YXRpY2RldicsICcgJyArICcgJy5qb2luKHNwbGl0X3N0YXRpY2Rldl9wYWNrYWdlcykpCi19Ci0KLVBBQ0tBR0VTUExJVEZVTkNTX3ByZXBlbmQgPSAic3BsaXRfc3Ryb25nc3dhbl9wbHVnaW5zICIKLQotIyBJbnN0YWxsIHNvbWUgZGVmYXVsdCBwbHVnaW5zIGJhc2VkIG9uIGRlZmF1bHQgc3Ryb25nU3dhbiAuL2NvbmZpZ3VyZSBvcHRpb25zCi0jIFNlZSBodHRwczovL3dpa2kuc3Ryb25nc3dhbi5vcmcvcHJvamVjdHMvc3Ryb25nc3dhbi93aWtpL1BsdWdpbmxpc3QKLVJERVBFTkRTXyR7UE59ICs9ICJcCi0gICAgJHtQTn0tcGx1Z2luLWFlcyBcCi0gICAgJHtQTn0tcGx1Z2luLWF0dHIgXAotICAgICR7UE59LXBsdWdpbi1jbWFjIFwKLSAgICAke1BOfS1wbHVnaW4tY29uc3RyYWludHMgXAotICAgICR7UE59LXBsdWdpbi1kZXMgXAotICAgICR7UE59LXBsdWdpbi1kbnNrZXkgXAotICAgICR7UE59LXBsdWdpbi1obWFjIFwKLSAgICAke1BOfS1wbHVnaW4ta2VybmVsLW5ldGxpbmsgXAotICAgICR7UE59LXBsdWdpbi1tZDUgXAotICAgICR7UE59LXBsdWdpbi1ub25jZSBcCi0gICAgJHtQTn0tcGx1Z2luLXBlbSBcCi0gICAgJHtQTn0tcGx1Z2luLXBncCBcCi0gICAgJHtQTn0tcGx1Z2luLXBrY3MxIFwKLSAgICAke1BOfS1wbHVnaW4tcGtjczcgXAotICAgICR7UE59LXBsdWdpbi1wa2NzOCBcCi0gICAgJHtQTn0tcGx1Z2luLXBrY3MxMiBcCi0gICAgJHtQTn0tcGx1Z2luLXB1YmtleSBcCi0gICAgJHtQTn0tcGx1Z2luLXJhbmRvbSBcCi0gICAgJHtQTn0tcGx1Z2luLXJjMiBcCi0gICAgJHtQTn0tcGx1Z2luLXJlc29sdmUgXAotICAgICR7UE59LXBsdWdpbi1yZXZvY2F0aW9uIFwKLSAgICAke1BOfS1wbHVnaW4tc2hhMSBcCi0gICAgJHtQTn0tcGx1Z2luLXNoYTIgXAotICAgICR7UE59LXBsdWdpbi1zb2NrZXQtZGVmYXVsdCBcCi0gICAgJHtQTn0tcGx1Z2luLXNzaGtleSBcCi0gICAgJHtQTn0tcGx1Z2luLXVwZG93biBcCi0gICAgJHtQTn0tcGx1Z2luLXZpY2kgXAotICAgICR7UE59LXBsdWdpbi14NTA5IFwKLSAgICAke1BOfS1wbHVnaW4teGF1dGgtZ2VuZXJpYyBcCi0gICAgJHtQTn0tcGx1Z2luLXhjYmMgXAotICAgICIKLQotUlBST1ZJREVTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgotUlJFUExBQ0VTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgotUkNPTkZMSUNUU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdzd2FuY3RsJywgJyR7QlBOfS1zd2FuY3RsLnNlcnZpY2UnLCAnJHtCUE59LnNlcnZpY2UnLCBkKX0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvc3Ryb25nc3dhbi9zdHJvbmdzd2FuXzUuNi4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3N0cm9uZ3N3YW4vc3Ryb25nc3dhbl81LjYuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMmZlMWYxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3N0cm9uZ3N3YW4vc3Ryb25nc3dhbl81LjYuMi5iYgpAQCAtMCwwICsxLDEzMiBAQAorREVTQ1JJUFRJT04gPSAic3Ryb25nU3dhbiBpcyBhbiBPcGVuU291cmNlIElQc2VjIGltcGxlbWVudGF0aW9uIGZvciB0aGUgXAorTGludXggb3BlcmF0aW5nIHN5c3RlbS4iCitTVU1NQVJZID0gInN0cm9uZ1N3YW4gaXMgYW4gT3BlblNvdXJjZSBJUHNlYyBpbXBsZW1lbnRhdGlvbiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuc3Ryb25nc3dhbi5vcmciCitTRUNUSU9OID0gIm5ldCIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKK0RFUEVORFMgPSAiZ21wIG9wZW5zc2wgZmxleC1uYXRpdmUgZmxleCBiaXNvbi1uYXRpdmUiCisKK1NSQ19VUkkgPSAiaHR0cDovL2Rvd25sb2FkLnN0cm9uZ3N3YW4ub3JnL3N0cm9uZ3N3YW4tJHtQVn0udGFyLmJ6MiBcCisgICAgICAgICAgIGZpbGU6Ly9maXgtZnVudGlvbi1wYXJhbWV0ZXIucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1tZW1vcnkuaC1JbmNsdWRlLXN0ZGludC5oLWZvci11aW50cHRyX3QucGF0Y2ggXAorICAgICAgICAgICAiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI0NmFhM2FhMThmYmM0YmQ1MjhmOWEwMzQ1Y2U3OTkxMyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlMGE2MGEzMGViZjNjNTM0YzIyMzU1OWUxNjg2NDk3YTIxZGVkNzA5YTVkNjA1YzUxMjNjMmY1MmJjYzIyZTkyIgorCitFWFRSQV9PRUNPTkYgPSAiIFwKKyAgICAgICAgLS13aXRob3V0LWxpYi1wcmVmaXggXAorIgorCitFWFRSQV9PRUNPTkYgKz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICctLXdpdGgtc3lzdGVtZHN5c3RlbXVuaXRkaXI9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8nLCAnLS13aXRob3V0LXN5c3RlbWRzeXN0ZW11bml0ZGlyJywgZCl9IgorCisKK1BBQ0tBR0VDT05GSUcgPz89ICJjaGFyb24gY3VybCBnbXAgb3BlbnNzbCBzdHJva2Ugc3FsaXRlMyBcCisgICAgICAgICR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ2xkYXAnLCBkKX0gXAorIgorUEFDS0FHRUNPTkZJR1thZXNuaV0gPSAiLS1lbmFibGUtYWVzbmksLS1kaXNhYmxlLWFlc25pLCwke1BOfS1wbHVnaW4tYWVzbmkiCitQQUNLQUdFQ09ORklHW2NoYXJvbl0gPSAiLS1lbmFibGUtY2hhcm9uLC0tZGlzYWJsZS1jaGFyb24sIgorUEFDS0FHRUNPTkZJR1tjdXJsXSA9ICItLWVuYWJsZS1jdXJsLC0tZGlzYWJsZS1jdXJsLGN1cmwsJHtQTn0tcGx1Z2luLWN1cmwiCitQQUNLQUdFQ09ORklHW2dtcF0gPSAiLS1lbmFibGUtZ21wLC0tZGlzYWJsZS1nbXAsZ21wLCR7UE59LXBsdWdpbi1nbXAiCitQQUNLQUdFQ09ORklHW2xkYXBdID0gIi0tZW5hYmxlLWxkYXAsLS1kaXNhYmxlLWxkYXAsb3BlbmxkYXAsJHtQTn0tcGx1Z2luLWxkYXAiCitQQUNLQUdFQ09ORklHW215c3FsXSA9ICItLWVuYWJsZS1teXNxbCwtLWRpc2FibGUtbXlzcWwsbXlzcWw1LCR7UE59LXBsdWdpbi1teXNxbCIKK1BBQ0tBR0VDT05GSUdbb3BlbnNzbF0gPSAiLS1lbmFibGUtb3BlbnNzbCwtLWRpc2FibGUtb3BlbnNzbCxvcGVuc3NsLCR7UE59LXBsdWdpbi1vcGVuc3NsIgorUEFDS0FHRUNPTkZJR1tzY2VwXSA9ICItLWVuYWJsZS1zY2VwY2xpZW50LC0tZGlzYWJsZS1zY2VwY2xpZW50LCIKK1BBQ0tBR0VDT05GSUdbc291cF0gPSAiLS1lbmFibGUtc291cCwtLWRpc2FibGUtc291cCxsaWJzb3VwLTIuNCwke1BOfS1wbHVnaW4tc291cCIKK1BBQ0tBR0VDT05GSUdbc3FsaXRlM10gPSAiLS1lbmFibGUtc3FsaXRlLC0tZGlzYWJsZS1zcWxpdGUsc3FsaXRlMywke1BOfS1wbHVnaW4tc3FsaXRlIgorUEFDS0FHRUNPTkZJR1tzdHJva2VdID0gIi0tZW5hYmxlLXN0cm9rZSwtLWRpc2FibGUtc3Ryb2tlLCwke1BOfS1wbHVnaW4tc3Ryb2tlIgorUEFDS0FHRUNPTkZJR1tzd2FuY3RsXSA9ICItLWVuYWJsZS1zd2FuY3RsLC0tZGlzYWJsZS1zd2FuY3RsLCxsaWJnY2MiCisKKyMgcmVxdWlyZXMgc3dhbmN0bAorUEFDS0FHRUNPTkZJR1tzeXN0ZW1kLWNoYXJvbl0gPSAiLS1lbmFibGUtc3lzdGVtZCwtLWRpc2FibGUtc3lzdGVtZCxzeXN0ZW1kLCIKKworaW5oZXJpdCBhdXRvdG9vbHMgc3lzdGVtZCBwa2djb25maWcKKworUlJFQ09NTUVORFNfJHtQTn0gPSAia2VybmVsLW1vZHVsZS1pcHNlYyIKKworRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9pcHNlYy9saWIqJHtTT0xJQlN9IgorRklMRVNfJHtQTn0tZGJnICs9ICIke2JpbmRpcn0vLmRlYnVnICR7bGliZGlyfS9pcHNlYy8uZGVidWcgJHtsaWJleGVjZGlyfS9pcHNlYy8uZGVidWciCitGSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9pcHNlYy9saWIqJHtTT0xJQlNERVZ9ICR7bGliZGlyfS9pcHNlYy8qLmxhIgorRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIke2xpYmRpcn0vaXBzZWMvKi5hIgorCitDT05GRklMRVNfJHtQTn0gPSAiJHtzeXNjb25mZGlyfS8qLmNvbmYgJHtzeXNjb25mZGlyfS9pcHNlYy5kLyouY29uZiAke3N5c2NvbmZkaXJ9L3N0cm9uZ3N3YW4uZC8qLmNvbmYiCisKK1BBQ0tBR0VTICs9ICIke1BOfS1wbHVnaW5zIgorQUxMT1dfRU1QVFlfJHtQTn0tcGx1Z2lucyA9ICIxIgorCitQQUNLQUdFU19EWU5BTUlDICs9ICJeJHtQTn0tcGx1Z2luLS4qJCIKK05PQVVUT1BBQ0tBR0VERUJVRyA9ICIxIgorCitweXRob24gc3BsaXRfc3Ryb25nc3dhbl9wbHVnaW5zICgpIHsKKyAgICBzeXNjb25mZGlyID0gZC5leHBhbmQoJyR7c3lzY29uZmRpcn0vc3Ryb25nc3dhbi5kL2NoYXJvbicpCisgICAgbGliZGlyID0gZC5leHBhbmQoJyR7bGliZGlyfS9pcHNlYy9wbHVnaW5zJykKKyAgICBkYmdsaWJkaXIgPSBvcy5wYXRoLmpvaW4obGliZGlyLCAnLmRlYnVnJykKKworICAgIGRlZiBhZGRfcGx1Z2luX2NvbmYoZiwgcGtnLCBmaWxlX3JlZ2V4LCBvdXRwdXRfcGF0dGVybiwgbW9kdWxlbmFtZSk6CisgICAgICAgIGR2YXIgPSBkLmdldFZhcignUEtHRCcsIFRydWUpCisgICAgICAgIG9sZGZpbGVzID0gZC5nZXRWYXIoJ0NPTkZGSUxFU18nICsgcGtnLCBUcnVlKQorICAgICAgICBuZXdmaWxlID0gJy8nICsgb3MucGF0aC5yZWxwYXRoKGYsIGR2YXIpCisKKyAgICAgICAgaWYgbm90IG9sZGZpbGVzOgorICAgICAgICAgICAgZC5zZXRWYXIoJ0NPTkZGSUxFU18nICsgcGtnLCBuZXdmaWxlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZC5zZXRWYXIoJ0NPTkZGSUxFU18nICsgcGtnLCBvbGRmaWxlcyArICIgIiArIG5ld2ZpbGUpCisKKyAgICBzcGxpdF9wYWNrYWdlcyA9IGRvX3NwbGl0X3BhY2thZ2VzKGQsIGxpYmRpciwgJ2xpYnN0cm9uZ3N3YW4tKC4qKVwuc28nLCAnJHtQTn0tcGx1Z2luLSVzJywgJ3N0cm9uZ1N3YW4gJXMgcGx1Z2luJywgcHJlcGVuZD1UcnVlKQorICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIHN5c2NvbmZkaXIsICcoLiopXC5jb25mJywgJyR7UE59LXBsdWdpbi0lcycsICdzdHJvbmdTd2FuICVzIHBsdWdpbicsIHByZXBlbmQ9VHJ1ZSwgaG9vaz1hZGRfcGx1Z2luX2NvbmYpCisKKyAgICBzcGxpdF9kYmdfcGFja2FnZXMgPSBkb19zcGxpdF9wYWNrYWdlcyhkLCBkYmdsaWJkaXIsICdsaWJzdHJvbmdzd2FuLSguKilcLnNvJywgJyR7UE59LXBsdWdpbi0lcy1kYmcnLCAnc3Ryb25nU3dhbiAlcyBwbHVnaW4gLSBEZWJ1Z2dpbmcgZmlsZXMnLCBwcmVwZW5kPVRydWUsIGV4dHJhX2RlcGVuZHM9JyR7UE59LWRiZycpCisgICAgc3BsaXRfZGV2X3BhY2thZ2VzID0gZG9fc3BsaXRfcGFja2FnZXMoZCwgbGliZGlyLCAnbGlic3Ryb25nc3dhbi0oLiopXC5sYScsICcke1BOfS1wbHVnaW4tJXMtZGV2JywgJ3N0cm9uZ1N3YW4gJXMgcGx1Z2luIC0gRGV2ZWxvcG1lbnQgZmlsZXMnLCBwcmVwZW5kPVRydWUsIGV4dHJhX2RlcGVuZHM9JyR7UE59LWRldicpCisgICAgc3BsaXRfc3RhdGljZGV2X3BhY2thZ2VzID0gZG9fc3BsaXRfcGFja2FnZXMoZCwgbGliZGlyLCAnbGlic3Ryb25nc3dhbi0oLiopXC5hJywgJyR7UE59LXBsdWdpbi0lcy1zdGF0aWNkZXYnLCAnc3Ryb25nU3dhbiAlcyBwbHVnaW4gLSBEZXZlbG9wbWVudCBmaWxlcyAoU3RhdGljIExpYnJhcmllcyknLCBwcmVwZW5kPVRydWUsIGV4dHJhX2RlcGVuZHM9JyR7UE59LXN0YXRpY2RldicpCisKKyAgICBpZiBzcGxpdF9wYWNrYWdlczoKKyAgICAgICAgcG4gPSBkLmdldFZhcignUE4nLCBUcnVlKQorICAgICAgICBkLnNldFZhcignUlJFQ09NTUVORFNfJyArIHBuICsgJy1wbHVnaW5zJywgJyAnLmpvaW4oc3BsaXRfcGFja2FnZXMpKQorICAgICAgICBkLmFwcGVuZFZhcignUlJFQ09NTUVORFNfJyArIHBuICsgJy1kYmcnLCAnICcgKyAnICcuam9pbihzcGxpdF9kYmdfcGFja2FnZXMpKQorICAgICAgICBkLmFwcGVuZFZhcignUlJFQ09NTUVORFNfJyArIHBuICsgJy1kZXYnLCAnICcgKyAnICcuam9pbihzcGxpdF9kZXZfcGFja2FnZXMpKQorICAgICAgICBkLmFwcGVuZFZhcignUlJFQ09NTUVORFNfJyArIHBuICsgJy1zdGF0aWNkZXYnLCAnICcgKyAnICcuam9pbihzcGxpdF9zdGF0aWNkZXZfcGFja2FnZXMpKQorfQorCitQQUNLQUdFU1BMSVRGVU5DU19wcmVwZW5kID0gInNwbGl0X3N0cm9uZ3N3YW5fcGx1Z2lucyAiCisKKyMgSW5zdGFsbCBzb21lIGRlZmF1bHQgcGx1Z2lucyBiYXNlZCBvbiBkZWZhdWx0IHN0cm9uZ1N3YW4gLi9jb25maWd1cmUgb3B0aW9ucworIyBTZWUgaHR0cHM6Ly93aWtpLnN0cm9uZ3N3YW4ub3JnL3Byb2plY3RzL3N0cm9uZ3N3YW4vd2lraS9QbHVnaW5saXN0CitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UE59LXBsdWdpbi1hZXMgXAorICAgICR7UE59LXBsdWdpbi1hdHRyIFwKKyAgICAke1BOfS1wbHVnaW4tY21hYyBcCisgICAgJHtQTn0tcGx1Z2luLWNvbnN0cmFpbnRzIFwKKyAgICAke1BOfS1wbHVnaW4tZGVzIFwKKyAgICAke1BOfS1wbHVnaW4tZG5za2V5IFwKKyAgICAke1BOfS1wbHVnaW4taG1hYyBcCisgICAgJHtQTn0tcGx1Z2luLWtlcm5lbC1uZXRsaW5rIFwKKyAgICAke1BOfS1wbHVnaW4tbWQ1IFwKKyAgICAke1BOfS1wbHVnaW4tbm9uY2UgXAorICAgICR7UE59LXBsdWdpbi1wZW0gXAorICAgICR7UE59LXBsdWdpbi1wZ3AgXAorICAgICR7UE59LXBsdWdpbi1wa2NzMSBcCisgICAgJHtQTn0tcGx1Z2luLXBrY3M3IFwKKyAgICAke1BOfS1wbHVnaW4tcGtjczggXAorICAgICR7UE59LXBsdWdpbi1wa2NzMTIgXAorICAgICR7UE59LXBsdWdpbi1wdWJrZXkgXAorICAgICR7UE59LXBsdWdpbi1yYW5kb20gXAorICAgICR7UE59LXBsdWdpbi1yYzIgXAorICAgICR7UE59LXBsdWdpbi1yZXNvbHZlIFwKKyAgICAke1BOfS1wbHVnaW4tcmV2b2NhdGlvbiBcCisgICAgJHtQTn0tcGx1Z2luLXNoYTEgXAorICAgICR7UE59LXBsdWdpbi1zaGEyIFwKKyAgICAke1BOfS1wbHVnaW4tc29ja2V0LWRlZmF1bHQgXAorICAgICR7UE59LXBsdWdpbi1zc2hrZXkgXAorICAgICR7UE59LXBsdWdpbi11cGRvd24gXAorICAgICR7UE59LXBsdWdpbi12aWNpIFwKKyAgICAke1BOfS1wbHVnaW4teDUwOSBcCisgICAgJHtQTn0tcGx1Z2luLXhhdXRoLWdlbmVyaWMgXAorICAgICR7UE59LXBsdWdpbi14Y2JjIFwKKyAgICAke1BOfS1wbHVnaW4tY3VydmUyNTUxOSBcCisgICAgIgorCitSUFJPVklERVNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCitSUkVQTEFDRVNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCitSQ09ORkxJQ1RTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3N3YW5jdGwnLCAnJHtCUE59LXN3YW5jdGwuc2VydmljZScsICcke0JQTn0uc2VydmljZScsIGQpfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC90Y3BkdW1wL3RjcGR1bXAvYWRkLXB0ZXN0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3RjcGR1bXAvdGNwZHVtcC9hZGQtcHRlc3QucGF0Y2gKaW5kZXggMTk2Y2VjNy4uYjcxNDM1YSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3RjcGR1bXAvdGNwZHVtcC9hZGQtcHRlc3QucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3RjcGR1bXAvdGNwZHVtcC9hZGQtcHRlc3QucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDdiMjU5NTgwODAwZTI1OWQyMzIyMjlkYzg5Zjk3MDU4YjU2ZTJmZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDhlZTFhYjFhYzg5NTU3ZDQ4YWMxYWI3ZGRjYzNjNTFiZTliNzM0YWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiAiSG9uZ2p1bi5ZYW5nIiA8aG9uZ2p1bi55YW5nQHdpbmRyaXZlci5jb20+CiBEYXRlOiBXZWQsIDIyIE9jdCAyMDE0IDEwOjAyOjQ4ICswODAwCiBTdWJqZWN0OiBbUEFUQ0hdIEFkZCBwdGVzdCBmb3IgdGNwZHVtcApAQCAtNiwxNSArNiwxNiBAQAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKIFNpZ25lZC1vZmYtYnk6IEhvbmdqdW4uWWFuZyA8aG9uZ2p1bi55YW5nQHdpbmRyaXZlci5jb20+CisKIC0tLQogIE1ha2VmaWxlLmluIHwgMTAgKysrKysrKysrLQogIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIAotSW5kZXg6IHRjcGR1bXAtNC45LjAvTWFrZWZpbGUuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSB0Y3BkdW1wLTQuOS4wLm9yaWcvTWFrZWZpbGUuaW4KLSsrKyB0Y3BkdW1wLTQuOS4wL01ha2VmaWxlLmluCi1AQCAtNDM2LDkgKzQzNiwxNyBAQCBkaXN0Y2xlYW46CitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuaW4gYi9NYWtlZmlsZS5pbgoraW5kZXggMDk0MWYwZS4uM2NlNDBjNiAxMDA2NDQKKy0tLSBhL01ha2VmaWxlLmluCisrKysgYi9NYWtlZmlsZS5pbgorQEAgLTQzNyw5ICs0MzcsMTcgQEAgZGlzdGNsZWFuOgogIAkgICAgdGVzdHMvZmFpbHVyZS1vdXRwdXRzLnR4dAogIAlybSAtcmYgYXV0b200dGUuY2FjaGUgdGVzdHMvRElGRiB0ZXN0cy9ORVcKICAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC90Y3BkdW1wL3RjcGR1bXAvdW5uZWNlc3NhcnktdG8tY2hlY2stbGlicGNhcC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC90Y3BkdW1wL3RjcGR1bXAvdW5uZWNlc3NhcnktdG8tY2hlY2stbGlicGNhcC5wYXRjaAppbmRleCBkN2EzYWMyLi44Y2VmYWRmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvdGNwZHVtcC90Y3BkdW1wL3VubmVjZXNzYXJ5LXRvLWNoZWNrLWxpYnBjYXAucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3RjcGR1bXAvdGNwZHVtcC91bm5lY2Vzc2FyeS10by1jaGVjay1saWJwY2FwLnBhdGNoCkBAIC0xLDQgKzEsNyBAQAotdW5uZWNlc3NhcnkgdG8gY2hlY2sgbGlicGNhcAorRnJvbSA3NDFkNzdlNDJmYzRhZjQ5ODA0ZjdlZTQzYjcyMzdlMDE2MzNjYmNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVHVlLCA4IEp1bCAyMDE0IDEzOjIwOjQ3ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIHVubmVjZXNzYXJ5IHRvIGNoZWNrIGxpYnBjYXAKIAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKQEAgLTExLDIzICsxNCwyMSBAQAogY2hlY2sgaWYgbGlicGNhcCBleGlzdGVkLgogCiBTaWduZWQtb2ZmLWJ5OiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CisKIC0tLQotIGNvbmZpZ3VyZS5pbiB8ICAgIDIgKy0KKyBjb25maWd1cmUuaW4gfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KLWluZGV4IDA2ZmFkZTEuLjkxMjVkZTcgMTAwNjQ0CitpbmRleCBiMjMwNWE1Li5iM2I1ZGJmIDEwMDY0NAogLS0tIGEvY29uZmlndXJlLmluCiArKysgYi9jb25maWd1cmUuaW4KLUBAIC01NjcsNyArNTY3LDcgQEAgQUNfU0VBUkNIX0xJQlMoZ2V0cnBjYnludW1iZXIsIG5zbCwKLSBkbmwgQUNfQ0hFQ0tfTElCKHosIHVuY29tcHJlc3MpCi0gZG5sIEFDX0NIRUNLX0hFQURFUlMoemxpYi5oKQorQEAgLTQxOCw3ICs0MTgsNyBAQCBkbmwgU29tZSBwbGF0Zm9ybXMgbWF5IG5lZWQgLWxuc2wgZm9yIGdldHJwY2J5bnVtYmVyLgorIEFDX1NFQVJDSF9MSUJTKGdldHJwY2J5bnVtYmVyLCBuc2wsCisgICAgIEFDX0RFRklORShIQVZFX0dFVFJQQ0JZTlVNQkVSLCAxLCBbZGVmaW5lIGlmIHlvdSBoYXZlIGdldHJwY2J5bnVtYmVyKCldKSkKICAKIC1BQ19MQkxfTElCUENBUChWX1BDQVBERVAsIFZfSU5DTFMpCiArI0FDX0xCTF9MSUJQQ0FQKFZfUENBUERFUCwgVl9JTkNMUykKICAKICAjCiAgIyBDaGVjayBmb3IgdGhlc2UgYWZ0ZXIgQUNfTEJMX0xJQlBDQVAsIHNvIHdlIGxpbmsgd2l0aCB0aGUgYXBwcm9wcmlhdGUKLS0tIAotMS43LjkuNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvdGlueXByb3h5L3Rpbnlwcm94eV8xLjguNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC90aW55cHJveHkvdGlueXByb3h5XzEuOC40LmJiCmluZGV4IGU4MDI1YzQuLjk4MTkyZGMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC90aW55cHJveHkvdGlueXByb3h5XzEuOC40LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC90aW55cHJveHkvdGlueXByb3h5XzEuOC40LmJiCkBAIC0yMyw4ICsyMyw4IEBACiAKICNVc2VyIHNwZWNpZmljCiBVU0VSQUREX1BBQ0tBR0VTID0gIiR7UE59IgotVVNFUkFERF9QQVJBTV8ke1BOfSA9ICJub2JvZHkiCi1HUk9VUEFERF9QQVJBTV8ke1BOfSA9ICItLXN5c3RlbSB0aW55cHJveHkiCitVU0VSQUREX1BBUkFNXyR7UE59ID0gIi0tc3lzdGVtIC0taG9tZSAvZGV2L251bGwgXAorICAgICAgICAgICAgICAgICAgICAgICAtLW5vLXVzZXItZ3JvdXAgLS1naWQgbm9ncm91cCB0aW55cG94eSIKIAogU1lTVEVNRF9QQUNLQUdFUyArPSAiJHtCUE59IgogU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gInRpbnlwcm94eS5zZXJ2aWNlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3dpcmVzaGFyay9maWxlcy9saWJnY3J5cHQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvd2lyZXNoYXJrL2ZpbGVzL2xpYmdjcnlwdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWE1OGY3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3dpcmVzaGFyay9maWxlcy9saWJnY3J5cHQucGF0Y2gKQEAgLTAsMCArMSw1MyBAQAordXNlIE9SIFBLR19DT05GSUcgc2NoZW1lIGZvciBsaWJnY3J5cHQKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIE9FIHNwZWNpZmljCisKK1NpZ25lZC1vZmYtYnk6IEFybWluIEt1c3RlciA8YWt1c3RlcjgwOEBnbWFpbC5jb20+CisKK0luZGV4OiB3aXJlc2hhcmstMi40LjQvbTQvbGliZ2NyeXB0Lm00Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gd2lyZXNoYXJrLTIuNC40Lm9yaWcvbTQvbGliZ2NyeXB0Lm00CisrKysgd2lyZXNoYXJrLTIuNC40L200L2xpYmdjcnlwdC5tNAorQEAgLTI3LDExICsyNywxMSBAQCBBQ19ERUZVTihbQU1fUEFUSF9MSUJHQ1JZUFRdLAorICAgICAgbGliZ2NyeXB0X2NvbmZpZ19wcmVmaXg9IiR3aXRodmFsIiwgbGliZ2NyeXB0X2NvbmZpZ19wcmVmaXg9IiIpCisgICBpZiB0ZXN0IHgkbGliZ2NyeXB0X2NvbmZpZ19wcmVmaXggIT0geCA7IHRoZW4KKyAgICAgIGlmIHRlc3QgeCR7TElCR0NSWVBUX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCistICAgICAgICBMSUJHQ1JZUFRfQ09ORklHPSRsaWJnY3J5cHRfY29uZmlnX3ByZWZpeC9iaW4vbGliZ2NyeXB0LWNvbmZpZworKyAgICAgICAgTElCR0NSWVBUX0NPTkZJRz0kbGliZ2NyeXB0X2NvbmZpZ19wcmVmaXgvbGliZ2NyeXB0LnBjCisgICAgICBmaQorICAgZmkKKyAKKy0gIEFDX1BBVEhfUFJPRyhMSUJHQ1JZUFRfQ09ORklHLCBsaWJnY3J5cHQtY29uZmlnLCBubykKKysgIEFDX1BBVEhfUFJPRyhMSUJHQ1JZUFRfQ09ORklHLCBsaWJnY3J5cHQucGMsIG5vKQorICAgdG1wPWlmZWxzZShbJDFdLCAsMToxLjIuMCwkMSkKKyAgIGlmIGVjaG8gIiR0bXAiIHwgZ3JlcCAnOicgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbCA7IHRoZW4KKyAgICAgIHJlcV9saWJnY3J5cHRfYXBpPWBlY2hvICIkdG1wIiAgICAgfCBzZWQgJ3MvXCguKlwpOlwoLipcKS9cMS8nYAorQEAgLTUwLDcgKzUwLDcgQEAgQUNfREVGVU4oW0FNX1BBVEhfTElCR0NSWVBUXSwKKyAgICAgICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpXC5cKFtbMC05XV0qXClcLlwoW1swLTldXSpcKS9cMi8nYAorICAgICByZXFfbWljcm89YGVjaG8gJG1pbl9saWJnY3J5cHRfdmVyc2lvbiB8IFwKKyAgICAgICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpXC5cKFtbMC05XV0qXClcLlwoW1swLTldXSpcKS9cMy8nYAorLSAgICBsaWJnY3J5cHRfY29uZmlnX3ZlcnNpb249YCRMSUJHQ1JZUFRfQ09ORklHIC0tdmVyc2lvbmAKKysgICAgbGliZ2NyeXB0X2NvbmZpZ192ZXJzaW9uPWAkUEtHX0NPTkZJRyAtLW1vZHZlcnNpb24gbGliZ2NyeXB0YAorICAgICBtYWpvcj1gZWNobyAkbGliZ2NyeXB0X2NvbmZpZ192ZXJzaW9uIHwgXAorICAgICAgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXClcLlwoW1swLTldXSpcKVwuXChbWzAtOV1dKlwpLiovXDEvJ2AKKyAgICAgbWlub3I9YGVjaG8gJGxpYmdjcnlwdF9jb25maWdfdmVyc2lvbiB8IFwKK0BAIC04Miw3ICs4Miw3IEBAIEFDX0RFRlVOKFtBTV9QQVRIX0xJQkdDUllQVF0sCisgICAgICAjIElmIHdlIGhhdmUgYSByZWNlbnQgbGliZ2NyeXB0LCB3ZSBzaG91bGQgYWxzbyBjaGVjayB0aGF0IHRoZQorICAgICAgIyBBUEkgaXMgY29tcGF0aWJsZQorICAgICAgaWYgdGVzdCAiJHJlcV9saWJnY3J5cHRfYXBpIiAtZ3QgMCA7IHRoZW4KKy0gICAgICAgIHRtcD1gJExJQkdDUllQVF9DT05GSUcgLS1hcGktdmVyc2lvbiAyPi9kZXYvbnVsbCB8fCBlY2hvIDBgCisrICAgICAgICB0bXA9YCRQS0dfQ09ORklHIC0tYXBpLXZlcnNpb24gbGliZ2NyeXB0IDI+L2Rldi9udWxsIHx8IGVjaG8gMGAKKyAgICAgICAgIGlmIHRlc3QgIiR0bXAiIC1ndCAwIDsgdGhlbgorICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtMSUJHQ1JZUFQgQVBJIHZlcnNpb25dKQorICAgICAgICAgICAgaWYgdGVzdCAiJHJlcV9saWJnY3J5cHRfYXBpIiAtZXEgIiR0bXAiIDsgdGhlbgorQEAgLTk1LDggKzk1LDggQEAgQUNfREVGVU4oW0FNX1BBVEhfTElCR0NSWVBUXSwKKyAgICAgIGZpCisgICBmaQorICAgaWYgdGVzdCAkb2sgPSB5ZXM7IHRoZW4KKy0gICAgTElCR0NSWVBUX0NGTEFHUz1gJExJQkdDUllQVF9DT05GSUcgLS1jZmxhZ3NgCistICAgIExJQkdDUllQVF9MSUJTPWAkTElCR0NSWVBUX0NPTkZJRyAtLWxpYnNgCisrICAgIExJQkdDUllQVF9DRkxBR1M9YCRQS0dfQ09ORklHIC0tY2ZsYWdzIGxpYmdjcnlwdGAKKysgICAgTElCR0NSWVBUX0xJQlM9YCRQS0dfQ09ORklHIC0tbGlicyBsaWJnY3J5cHRgCisgICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0pCisgICBlbHNlCisgICAgIExJQkdDUllQVF9DRkxBR1M9IiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC93aXJlc2hhcmsvd2lyZXNoYXJrXzIuMi4xMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC93aXJlc2hhcmsvd2lyZXNoYXJrXzIuMi4xMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTM1OGJhMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvd2lyZXNoYXJrL3dpcmVzaGFya18yLjIuMTAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi1ERVNDUklQVElPTiA9ICJ3aXJlc2hhcmsgLSBhIHBvcHVsYXIgbmV0d29yayBwcm90b2NvbCBhbmFseXplciIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cud2lyZXNoYXJrLm9yZyIKLVNFQ1RJT04gPSAibmV0IgotTElDRU5TRSA9ICJHUEwtMi4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NmUyNzEyMzRiYTFhMTNjNmU1MTJlNzZiOTRhYzJmNzciCi0KLURFUEVORFMgPSAicGNyZSBleHBhdCBnbGliLTIuMCBnbGliLTIuMC1uYXRpdmUiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly8yLm5hLmRsLndpcmVzaGFyay5vcmcvc3JjL2FsbC12ZXJzaW9ucy8ke0JQfS50YXIuYnoyIgotCi1QRSA9ICIxIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiYWUzYTFhNDNhNmUzNjg3ZjQ0YTczOGZkMTVkNzgwMjEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiODU3NGE1ZTFmZGVjN2FmZmFlNjQwOTI0YmQ0NmMxYWVkMWJkODY2ZTAyNjMyZmE1NjI1ZTE0NTBlNGE1MDcwNyIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIHBlcmxuYXRpdmUKLQotQVJNX0lOU1RSVUNUSU9OX1NFVCA9ICJhcm0iCi0KLVBBQ0tBR0VDT05GSUcgPz0gImxpYnBjYXAgZ251dGxzIGxpYm5sIGxpYmNhcCBzYmMiCi1QQUNLQUdFQ09ORklHICs9ICIgJHtAYmIudXRpbHMuY29udGFpbnMoIkRJU1RST19GRUFUVVJFUyIsICJ4MTEiLCAiZ3RrMiBncmFwaGljcyIsICIiLCBkKX0iCi0jUEFDS0FHRUNPTkZJRyArPSAiICR7QGJiLnV0aWxzLmNvbnRhaW5zKCJESVNUUk9fRkVBVFVSRVMiLCAib3BlbmdsIiwgImd0azMiLCAiIiwgZCl9IgotCi1QQUNLQUdFQ09ORklHW2xpYmNhcF0gPSAiLS13aXRoLWxpYmNhcD0ke1NUQUdJTkdfTElCRElSfSwgLS13aXRoLWxpYmNhcD1ubyAtLWVuYWJsZS1wY2FwLW5nLWRlZmF1bHQgLCBsaWJjYXAiCi1QQUNLQUdFQ09ORklHW2xpYnBjYXBdID0gIi0td2l0aC1wY2FwPSR7U1RBR0lOR19MSUJESVJ9IC0td2l0aC1wY2FwLXJlbW90ZSwgLS13aXRoLXBjYXA9bm8gLS1lbmFibGUtcGNhcC1uZy1kZWZhdWx0ICAsIGxpYnBjYXAiCi1QQUNLQUdFQ09ORklHW2xpYnNtaV0gPSAiLS13aXRoLWxpYnNtaT15ZXMsIC0td2l0aC1saWJzbWk9bm8sIGxpYnNtaSIKLVBBQ0tBR0VDT05GSUdbbGlibmxdID0gIi0td2l0aC1saWJubD15ZXMsIC0td2l0aC1saWJubD1ubywgbGlibmwiCi1QQUNLQUdFQ09ORklHW3BvcnRhdWRpb10gPSAiLS13aXRoLXBvcnRhdWRpbz15ZXMsIC0td2l0aC1wb3J0YXVkaW89bm8sIHBvcnRhdWRpby12MTkiCi1QQUNLQUdFQ09ORklHW2d0azJdID0gIi0td2l0aC1ndGs9MiwgLCBndGsrIgotUEFDS0FHRUNPTkZJR1tndGszXSA9ICItLXdpdGgtZ3RrPTMsICwgZ3RrKzMiCi1QQUNLQUdFQ09ORklHW2dyYXBoaWNzXSA9ICItLWVuYWJsZS13aXJlc2hhcmssIC0td2l0aC1ndGs9bm8gLS1kaXNhYmxlLXdpcmVzaGFyaywiCi1QQUNLQUdFQ09ORklHW2dudXRsc10gPSAiLS13aXRoLWdudXRscz15ZXMsIC0td2l0aC1nbnV0bHM9bm8sIGdudXRscyIKLVBBQ0tBR0VDT05GSUdbZ2NyeXB0XSA9ICItLXdpdGgtZ2NyeXB0PXllcywgLS13aXRoLWdjcnlwdD1ubywgbGliZ2NyeXB0IgotUEFDS0FHRUNPTkZJR1tzc2xdID0gIi0td2l0aC1zc2w9eWVzLCAtLXdpdGgtc3NsPW5vLCBvcGVuc3NsIgotUEFDS0FHRUNPTkZJR1trcmI1XSA9ICItLXdpdGgta3JiNT15ZXMsIC0td2l0aC1rcmI1PW5vLCBrcmI1IgotUEFDS0FHRUNPTkZJR1tsdWFdID0gIi0td2l0aC1sdWE9eWVzLCAtLXdpdGgtbHVhPW5vLCBsdWEiCi1QQUNLQUdFQ09ORklHW3psaWJdID0gIi0td2l0aC16bGliPXllcywgLS13aXRoLXpsaWI9bm8sIHpsaWIiCi1QQUNLQUdFQ09ORklHW2dlb2lwXSA9ICItLXdpdGgtZ2VvaXA9eWVzLCAtLXdpdGgtZ2VvaXA9bm8sIGdlb2lwIgotUEFDS0FHRUNPTkZJR1twbHVnaW5zXSA9ICItLXdpdGgtcGx1Z2lucz15ZXMsIC0td2l0aC1wbHVnaW5zPW5vIgotUEFDS0FHRUNPTkZJR1tzYmNdID0gIi0td2l0aC1zYmM9eWVzLCAtLXdpdGgtc2JjPW5vLCBzYmMiCi0KLVBBQ0tBR0VDT05GSUdbbGlic3NoXSA9ICItLXdpdGgtc3NoPXllcywgLS13aXRoLXNzaD1ubywgbGlic3NoMiIKLQotCi0jIHRoZXNlIG5leHQgdHdvIG9wdGlvbnMgcmVxdWlyZSBhZGRpb25hbCBsYXllcnMKLVBBQ0tBR0VDT05GSUdbYy1hcmVzXSA9ICItLXdpdGgtYy1hcmVzPXllcywgLS13aXRoLWMtYXJlcz1ubywgYy1hcmVzIgotCi1FWFRSQV9PRUNPTkYgKz0gIi0td2l0aC1xdD1ubyAtLWVuYWJsZS10c2hhcmsgLS1lbmFibGUtcmF3c2hhcmsiCi0KLSMgQ3VycmVudGx5IHdpcmVzaGFyayBkb2VzIG5vdCBpbnN0YWxsIGhlYWRlciBmaWxlcwotZG9faW5zdGFsbF9hcHBlbmQgKCkgewotCi0JaW5zdGFsbCAtZCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59Ci0JaW5zdGFsbCAtZCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4KLQlpbnN0YWxsIC1kICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbi9jcnlwdAotCWluc3RhbGwgLWQgJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL2RmaWx0ZXIKLQlpbnN0YWxsIC1kICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbi9kaXNzZWN0b3JzCi0JaW5zdGFsbCAtZCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4vZnR5cGVzCi0JaW5zdGFsbCAtZCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4vd21lbQotCi0JaW5zdGFsbCBjb25maWcuaCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59Ci0JaW5zdGFsbCAke1N9L3JlZ2lzdGVyLmggJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfQotCWluc3RhbGwgLUQgJHtTfS9lcGFuLyouaCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4KLQlpbnN0YWxsIC1EICR7U30vZXBhbi9jcnlwdC8qLmggJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL2NyeXB0Ci0JaW5zdGFsbCAtRCAke1N9L2VwYW4vZGZpbHRlci8qLmggJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL2RmaWx0ZXIKLQlpbnN0YWxsIC1EICR7U30vZXBhbi9kaXNzZWN0b3JzLyouaCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4vZGlzc2VjdG9ycwotCWluc3RhbGwgLUQgJHtTfS9lcGFuL2Z0eXBlcy8qLmggJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL2Z0eXBlcwotCWluc3RhbGwgLUQgJHtTfS9lcGFuL3dtZW0vKi5oICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbi93bWVtCi19Ci0KLUZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9KiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC93aXJlc2hhcmsvd2lyZXNoYXJrXzIuNC42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3dpcmVzaGFyay93aXJlc2hhcmtfMi40LjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RhMGE3YgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3JlY2lwZXMtc3VwcG9ydC93aXJlc2hhcmsvd2lyZXNoYXJrXzIuNC42LmJiCkBAIC0wLDAgKzEsNzMgQEAKK0RFU0NSSVBUSU9OID0gIndpcmVzaGFyayAtIGEgcG9wdWxhciBuZXR3b3JrIHByb3RvY29sIGFuYWx5emVyIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy53aXJlc2hhcmsub3JnIgorU0VDVElPTiA9ICJuZXQiCitMSUNFTlNFID0gIkdQTC0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT02ZTI3MTIzNGJhMWExM2M2ZTUxMmU3NmI5NGFjMmY3NyIKKworREVQRU5EUyA9ICJwY3JlIGV4cGF0IGdsaWItMi4wIGdsaWItMi4wLW5hdGl2ZSBsaWJnY3J5cHQgbGliZ3BnLWVycm9yIgorCitTUkNfVVJJID0gImh0dHBzOi8vMS5hcy5kbC53aXJlc2hhcmsub3JnL3NyYy8ke0JQfS50YXIueHoiCitTUkNfVVJJICs9ICJmaWxlOi8vbGliZ2NyeXB0LnBhdGNoIgorCitVUFNUUkVBTV9DSEVDS19VUkkgPSAiaHR0cHM6Ly8xLmFzLmRsLndpcmVzaGFyay5vcmcvc3JjIgorCitTUkNfVVJJW21kNXN1bV0gPSAiOGNmYjczZTI4NmRkNjQyN2NhNDQwNWU2ZTgwMmQxM2UiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOGU5NjVmZDI4MmJjMGMwOWU3YzRlYmE1ZjA4YTU1NWQwY2NmNDBhN2QxNTQ0YjkzOWUwMWI5MGJjODkzZDVmZSIKKworUEUgPSAiMSIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIHBlcmxuYXRpdmUgdXBzdHJlYW0tdmVyc2lvbi1pcy1ldmVuCisKK0FSTV9JTlNUUlVDVElPTl9TRVQgPSAiYXJtIgorCitQQUNLQUdFQ09ORklHID89ICJsaWJwY2FwIGdudXRscyBsaWJubCBsaWJjYXAgc2JjIgorUEFDS0FHRUNPTkZJRyArPSAiICR7QGJiLnV0aWxzLmNvbnRhaW5zKCJESVNUUk9fRkVBVFVSRVMiLCAieDExIiwgImd0azIgZ3JhcGhpY3MiLCAiIiwgZCl9IgorCitQQUNLQUdFQ09ORklHW2xpYmNhcF0gPSAiLS13aXRoLWxpYmNhcD0ke1NUQUdJTkdfRElSX0hPU1R9L3VzciwgLS13aXRoLWxpYmNhcD1ubyAtLWVuYWJsZS1wY2FwLW5nLWRlZmF1bHQgLCBsaWJjYXAiCitQQUNLQUdFQ09ORklHW2xpYnBjYXBdID0gIi0td2l0aC1wY2FwPSR7U1RBR0lOR19ESVJfSE9TVH0vdXNyIC0td2l0aC1wY2FwLXJlbW90ZSwgLS13aXRoLXBjYXA9bm8gLS1lbmFibGUtcGNhcC1uZy1kZWZhdWx0ICAsIGxpYnBjYXAiCitQQUNLQUdFQ09ORklHW2xpYnNtaV0gPSAiLS13aXRoLWxpYnNtaT15ZXMsIC0td2l0aC1saWJzbWk9bm8sIGxpYnNtaSIKK1BBQ0tBR0VDT05GSUdbbGlibmxdID0gIi0td2l0aC1saWJubD15ZXMsIC0td2l0aC1saWJubD1ubywgbGlibmwiCitQQUNLQUdFQ09ORklHW3BvcnRhdWRpb10gPSAiLS13aXRoLXBvcnRhdWRpbz15ZXMsIC0td2l0aC1wb3J0YXVkaW89bm8sIHBvcnRhdWRpby12MTkiCitQQUNLQUdFQ09ORklHW2d0azJdID0gIi0td2l0aC1ndGs9MiwgLCBndGsrIgorUEFDS0FHRUNPTkZJR1tndGszXSA9ICItLXdpdGgtZ3RrPTMsICwgZ3RrKzMiCitQQUNLQUdFQ09ORklHW2dyYXBoaWNzXSA9ICItLWVuYWJsZS13aXJlc2hhcmssIC0td2l0aC1ndGs9bm8gLS1kaXNhYmxlLXdpcmVzaGFyaywiCitQQUNLQUdFQ09ORklHW2dudXRsc10gPSAiLS13aXRoLWdudXRscz15ZXMsIC0td2l0aC1nbnV0bHM9bm8sIGdudXRscyIKK1BBQ0tBR0VDT05GSUdbc3NsXSA9ICItLXdpdGgtc3NsPXllcywgLS13aXRoLXNzbD1ubywgb3BlbnNzbCIKK1BBQ0tBR0VDT05GSUdba3JiNV0gPSAiLS13aXRoLWtyYjU9eWVzLCAtLXdpdGgta3JiNT1ubywga3JiNSIKK1BBQ0tBR0VDT05GSUdbbHVhXSA9ICItLXdpdGgtbHVhPXllcywgLS13aXRoLWx1YT1ubywgbHVhIgorUEFDS0FHRUNPTkZJR1t6bGliXSA9ICItLXdpdGgtemxpYj15ZXMsIC0td2l0aC16bGliPW5vLCB6bGliIgorUEFDS0FHRUNPTkZJR1tnZW9pcF0gPSAiLS13aXRoLWdlb2lwPXllcywgLS13aXRoLWdlb2lwPW5vLCBnZW9pcCIKK1BBQ0tBR0VDT05GSUdbcGx1Z2luc10gPSAiLS13aXRoLXBsdWdpbnM9eWVzLCAtLXdpdGgtcGx1Z2lucz1ubyIKK1BBQ0tBR0VDT05GSUdbc2JjXSA9ICItLXdpdGgtc2JjPXllcywgLS13aXRoLXNiYz1ubywgc2JjIgorUEFDS0FHRUNPTkZJR1tsaWJzc2hdID0gIi0td2l0aC1saWJzc2g9JHtTVEFHSU5HX0RJUl9IT1NUfS91c3IsIC0td2l0aC1saWJzc2g9bm8sIGxpYnNzaDIiCitQQUNLQUdFQ09ORklHW2x6NF0gPSAiLS13aXRoLWx6ND0ke1NUQUdJTkdfRElSX0hPU1R9L3VzciwgLS13aXRoLWx6ND1ubywgbHo0IgorCisjIHRoZXNlIG5leHQgdHdvIG9wdGlvbnMgcmVxdWlyZSBhZGRpb25hbCBsYXllcnMKK1BBQ0tBR0VDT05GSUdbYy1hcmVzXSA9ICItLXdpdGgtYy1hcmVzPXllcywgLS13aXRoLWMtYXJlcz1ubywgYy1hcmVzIgorCitFWFRSQV9PRUNPTkYgKz0gIi0td2l0aC1saWJnY3J5cHQtcHJlZml4PSR7UEtHX0NPTkZJR19ESVJ9IC0td2l0aC1xdD1ubyAtLWVuYWJsZS10c2hhcmsgLS1lbmFibGUtcmF3c2hhcmsiCisKK0xERkxBR1NfYXBwZW5kID0gIiAtbGdwZy1lcnJvciIKKworIyBDdXJyZW50bHkgd2lyZXNoYXJrIGRvZXMgbm90IGluc3RhbGwgaGVhZGVyIGZpbGVzCitkb19pbnN0YWxsX2FwcGVuZCAoKSB7CisKKwlpbnN0YWxsIC1kICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0KKwlpbnN0YWxsIC1kICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbgorCWluc3RhbGwgLWQgJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL2NyeXB0CisJaW5zdGFsbCAtZCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4vZGZpbHRlcgorCWluc3RhbGwgLWQgJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL2Rpc3NlY3RvcnMKKwlpbnN0YWxsIC1kICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbi9mdHlwZXMKKwlpbnN0YWxsIC1kICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbi93bWVtCisKKwlpbnN0YWxsIGNvbmZpZy5oICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0KKwlpbnN0YWxsICR7U30vcmVnaXN0ZXIuaCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59CisJaW5zdGFsbCAtRCAke1N9L2VwYW4vKi5oICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbgorCWluc3RhbGwgLUQgJHtTfS9lcGFuL2NyeXB0LyouaCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4vY3J5cHQKKwlpbnN0YWxsIC1EICR7U30vZXBhbi9kZmlsdGVyLyouaCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4vZGZpbHRlcgorCWluc3RhbGwgLUQgJHtTfS9lcGFuL2Rpc3NlY3RvcnMvKi5oICR7RH0vJHtpbmNsdWRlZGlyfS8ke0JQTn0vZXBhbi9kaXNzZWN0b3JzCisJaW5zdGFsbCAtRCAke1N9L2VwYW4vZnR5cGVzLyouaCAke0R9LyR7aW5jbHVkZWRpcn0vJHtCUE59L2VwYW4vZnR5cGVzCisJaW5zdGFsbCAtRCAke1N9L2VwYW4vd21lbS8qLmggJHtEfS8ke2luY2x1ZGVkaXJ9LyR7QlBOfS9lcGFuL3dtZW0KK30KKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0qIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3dwYW4tdG9vbHMvd3Bhbi10b29sc19naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9yZWNpcGVzLXN1cHBvcnQvd3Bhbi10b29scy93cGFuLXRvb2xzX2dpdC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNmQyZjY5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvcmVjaXBlcy1zdXBwb3J0L3dwYW4tdG9vbHMvd3Bhbi10b29sc19naXQuYmIKQEAgLTAsMCArMSwxOCBAQAorU1VNTUFSWSA9ICJVc2Vyc3BhY2UgdG9vbHMgZm9yIExpbnV4IElFRUUgODAyLjE1LjQgc3RhY2siCitIT01FUEFHRSA9ICJodHRwOi8vd3Bhbi5jYWtlbGFiLm9yZy9yZWxlYXNlcy8iCitERVNDUklQVElPTiA9ICJUaGlzIGlzIGEgc2V0IG9mIHV0aWxzIHRvIG1hbmFnZSB0aGUgTGludXggV1BBTiBzdGFjayB2aWEgXAorbmV0bGluayBpbnRlcmZhY2UuIFRoaXMgcmVxdWlyZXMgcmVjZW50IGtlcm5lbCB3aXRoIG5sODAyMTU0IGludGVyZmFjZS4iCisKK0xJQ0VOU0UgPSAiSVNDIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NGNmZDkzOWIxZDdlNmFiYTlmY2VmYjdmNmUyZmQ0NWQiCisKK0RFUEVORFMgPSAibGlibmwiCisKK1BWID0gIjAuOCtnaXQke1NSQ1BWfSIKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9saW51eC13cGFuL3dwYW4tdG9vbHMgXAorICAgICAgICAgICAiCitTUkNSRVYgPSAiM2Y0NzNmNTEzNmY4OTc3Mzk5N2NiNGZmZjJkOGVkNjQ3NzM0ZTJmNSIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2Uvc2l0ZS9lbmRpYW4tYmlnIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW5ldHdvcmtpbmcvc2l0ZS9lbmRpYW4tYmlnCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2Uvc2l0ZS9lbmRpYW4tYmlnCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9zaXRlL2VuZGlhbi1iaWcKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9zaXRlL2VuZGlhbi1saXR0bGUgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtbmV0d29ya2luZy9zaXRlL2VuZGlhbi1saXR0bGUKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9zaXRlL2VuZGlhbi1saXR0bGUKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1uZXR3b3JraW5nL3NpdGUvZW5kaWFuLWxpdHRsZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL1JFQURNRSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9SRUFETUUKaW5kZXggZGFiZWQyZi4uN2NkZTBhMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL1JFQURNRQorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvUkVBRE1FCkBAIC0xLDE1ICsxLDE0IEBACiBUaGlzIGxheWVyIGRlcGVuZHMgb246CiAKIFVSSTogZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuZW1iZWRkZWQvb2UtY29yZS5naXQKLWJyYW5jaDogcm9ja28KK2JyYW5jaDogbWFzdGVyCiByZXZpc2lvbjogSEVBRAogCi1TZW5kIHB1bGwgcmVxdWVzdHMgdG8gb3BlbmVtYmVkZGVkLWRldmVsQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcgd2l0aCAnW21ldGEtb2VdW3JvY2tvXScgaW4gdGhlIHN1YmplY3QnCitTZW5kIHB1bGwgcmVxdWVzdHMgdG8gb3BlbmVtYmVkZGVkLWRldmVsQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcgd2l0aCAnW21ldGEtb2VdJyBpbiB0aGUgc3ViamVjdCcKIAogV2hlbiBzZW5kaW5nIHNpbmdsZSBwYXRjaGVzLCBwbGVhc2UgdXNlIHNvbWV0aGluZyBsaWtlOgotJ2dpdCBzZW5kLWVtYWlsIC1NIC0xIC0tdG8gb3BlbmVtYmVkZGVkLWRldmVsQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcgLS1zdWJqZWN0LXByZWZpeD1tZXRhLW9lXVtyb2Nrb11bUEFUQ0gnCisnZ2l0IHNlbmQtZW1haWwgLU0gLTEgLS10byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyAtLXN1YmplY3QtcHJlZml4PW1ldGEtb2VdW1BBVENIJwogCiBZb3UgYXJlIGVuY291cmFnZWQgdG8gZm9yayB0aGUgbWlycm9yIG9uIGdpdGh1YiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmVtYmVkZGVkL21ldGEtb2UvIHRvIHNoYXJlIHlvdXIgcGF0Y2hlcywgdGhpcyBpcyBwcmVmZXJyZWQgZm9yIHBhdGNoIHNldHMgY29uc2lzdGluZyBvZiBtb3JlIHRoYW4gb25lIHBhdGNoLiBPdGhlciBzZXJ2aWNlcyBsaWtlIGdpdG9yaW91cywgcmVwby5vci5jeiBvciBzZWxmIGhvc3RlZCBzZXR1cHMgYXJlIG9mIGNvdXJzZSBhY2NlcHRlZCBhcyB3ZWxsLCAnZ2l0IGZldGNoIDxyZW1vdGU+JyB3b3JrcyB0aGUgc2FtZSBvbiBhbGwgb2YgdGhlbS4gV2UgcmVjb21tZW5kIGdpdGh1YiBiZWNhdXNlIGl0IGlzIGZyZWUsIGVhc3kgdG8gdXNlLCBoYXMgYmVlbiBwcm92ZW4gdG8gYmUgcmVsaWFibGUgYW5kIGhhcyBhIHJlYWxseSBnb29kIHdlYiBHVUkuCiAKLXJvY2tvIEJyYW5jaCBNYWludGFpbmVyOgotQXJtaW4gS3VzdGVyIDxha3VzdGVyODA4QGdtYWlsLmNvbT4KK01haW4gbGF5ZXIgbWFpbnRhaW5lcjogQXJtaW4gS3VzdGVyIDxha3VzdGVyODA4QGdtYWlsLmNvbT4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9jbGFzc2VzL2dpdHZlci5iYmNsYXNzIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL2NsYXNzZXMvZ2l0dmVyLmJiY2xhc3MKaW5kZXggMzgwMzc0YS4uMDdmNDRjMyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL2NsYXNzZXMvZ2l0dmVyLmJiY2xhc3MKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL2NsYXNzZXMvZ2l0dmVyLmJiY2xhc3MKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gIjAuMCIKIAogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4YzoKLSAgICAgICAgICAgIHJhaXNlIGJiLnBhcnNlLlNraXBQYWNrYWdlKHN0cihleGMpKQorICAgICAgICAgICAgcmFpc2UgYmIucGFyc2UuU2tpcFJlY2lwZShzdHIoZXhjKSkKIAogICAgIGlmIHZlciBhbmQgdGFnYWRqdXN0OgogICAgICAgICB2ZXIgPSB0YWdhZGp1c3QodmVyKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL2NsYXNzZXMvbWVzb24uYmJjbGFzcyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9jbGFzc2VzL21lc29uLmJiY2xhc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwOWJjMjQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL2NsYXNzZXMvbWVzb24uYmJjbGFzcworKysgL2Rldi9udWxsCkBAIC0xLDEwNiArMCwwIEBACi1pbmhlcml0IHB5dGhvbjNuYXRpdmUKLQotREVQRU5EU19hcHBlbmQgPSAiIG1lc29uLW5hdGl2ZSBuaW5qYS1uYXRpdmUiCi0KLSMgQXMgTWVzb24gZW5mb3JjZXMgb3V0LW9mLXRyZWUgYnVpbGRzIHdlIGNhbiBqdXN0IHVzZSBjbGVhbmRpcnMKLUIgPSAiJHtXT1JLRElSfS9idWlsZCIKLWRvX2NvbmZpZ3VyZVtjbGVhbmRpcnNdID0gIiR7Qn0iCi0KLSMgV2hlcmUgdGhlIG1lc29uLmJ1aWxkIGJ1aWxkIGNvbmZpZ3VyYXRpb24gaXMKLU1FU09OX1NPVVJDRVBBVEggPSAiJHtTfSIKLQotIyBUaGVzZSB2YXJpYWJsZXMgaW4gdGhlIGVudmlyb25tZW50IG92ZXJyaWRlIHRoZSAqbmF0aXZlKiB0b29scywgbm90IHRoZSBjcm9zcy4KLWV4cG9ydCBDUFBGTEFHUyA9ICIke0JVSUxEX0NQUEZMQUdTfSIKLWV4cG9ydCBDQyA9ICIke0JVSUxEX0NDfSIKLWV4cG9ydCBDRkxBR1MgPSAiJHtCVUlMRF9DRkxBR1N9IgotZXhwb3J0IENYWCA9ICIke0JVSUxEX0NYWH0iCi1leHBvcnQgQ1hYRkxBR1MgPSAiJHtCVUlMRF9DWFhGTEFHU30iCi1leHBvcnQgTEQgPSAiJHtCVUlMRF9MRH0iCi1leHBvcnQgTERGTEFHUyA9ICIke0JVSUxEX0xERkxBR1N9IgotZXhwb3J0IEFSID0gIiR7QlVJTERfQVJ9IgotZXhwb3J0IFBLR19DT05GSUcgPSAicGtnLWNvbmZpZy1uYXRpdmUiCi0KLWRlZiBub3ByZWZpeCh2YXIsIGQpOgotICAgIHJldHVybiBkLmdldFZhcih2YXIsIFRydWUpLnJlcGxhY2UoZC5nZXRWYXIoJ3ByZWZpeCcsIFRydWUpICsgJy8nLCAnJywgMSkKLQotTUVTT05PUFRTID0gIiAtLXByZWZpeCAke3ByZWZpeH0gXAotICAgICAgICAgICAgICAtLWJpbmRpciAke0Bub3ByZWZpeCgnYmluZGlyJywgZCl9IFwKLSAgICAgICAgICAgICAgLS1zYmluZGlyICR7QG5vcHJlZml4KCdzYmluZGlyJywgZCl9IFwKLSAgICAgICAgICAgICAgLS1kYXRhZGlyICR7QG5vcHJlZml4KCdkYXRhZGlyJywgZCl9IFwKLSAgICAgICAgICAgICAgLS1saWJkaXIgJHtAbm9wcmVmaXgoJ2xpYmRpcicsIGQpfSBcCi0gICAgICAgICAgICAgIC0tbGliZXhlY2RpciAke0Bub3ByZWZpeCgnbGliZXhlY2RpcicsIGQpfSBcCi0gICAgICAgICAgICAgIC0taW5jbHVkZWRpciAke0Bub3ByZWZpeCgnaW5jbHVkZWRpcicsIGQpfSBcCi0gICAgICAgICAgICAgIC0tbWFuZGlyICR7QG5vcHJlZml4KCdtYW5kaXInLCBkKX0gXAotICAgICAgICAgICAgICAtLWluZm9kaXIgJHtAbm9wcmVmaXgoJ2luZm9kaXInLCBkKX0gXAotICAgICAgICAgICAgICAtLXN5c2NvbmZkaXIgJHtzeXNjb25mZGlyfSBcCi0gICAgICAgICAgICAgIC0tbG9jYWxzdGF0ZWRpciAke2xvY2Fsc3RhdGVkaXJ9IFwKLSAgICAgICAgICAgICAgLS1zaGFyZWRzdGF0ZWRpciAke3NoYXJlZHN0YXRlZGlyfSIKLQotTUVTT05fQ19BUkdTID0gIiR7VEFSR0VUX0NDX0FSQ0h9JHtUT09MQ0hBSU5fT1BUSU9OU30iCi1NRVNPTl9MSU5LX0FSR1MgPSAiJHtNRVNPTl9DX0FSR1N9ICR7TERGTEFHU30iCi0KLU1FU09OX0hPU1RfRU5ESUFOID0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdTSVRFSU5GT19FTkRJQU5ORVNTJywgJ2JlJywgJ2JpZycsICdsaXR0bGUnLCBkKX0iCi1NRVNPTl9UQVJHRVRfRU5ESUFOID0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ2JpZ2VuZGlhbicsICdiaWcnLCAnbGl0dGxlJywgZCl9IgotCi1FWFRSQV9PRU1FU09OICs9ICIke1BBQ0tBR0VDT05GSUdfQ09ORkFSR1N9IgotCi1NRVNPTl9DUk9TU19GSUxFID0gIiIKLU1FU09OX0NST1NTX0ZJTEVfY2xhc3MtdGFyZ2V0ID0gIi0tY3Jvc3MtZmlsZSAke1dPUktESVJ9L21lc29uLmNyb3NzIgotCi1kZWYgbWVzb25fYXJyYXkodmFyLCBkKToKLSAgICByZXR1cm4gIicsICciLmpvaW4oZC5nZXRWYXIodmFyLCBUcnVlKS5zcGxpdCgpKS5qb2luKCgiJyIsICInIikpCi0KLWFkZHRhc2sgd3JpdGVfY29uZmlnIGJlZm9yZSBkb19jb25maWd1cmUKLWRvX3dyaXRlX2NvbmZpZ1t2YXJkZXBzXSArPSAiTUVTT05fQ19BUkdTIFRPT0xDSEFJTl9PUFRJT05TIgotZG9fd3JpdGVfY29uZmlnKCkgewotICAgICMgVGhpcyBuZWVkcyB0byBiZSBQeSB0byBzcGxpdCB0aGUgYXJncyBpbnRvIHNpbmdsZS1lbGVtZW50IGxpc3RzCi0gICAgY2F0ID4ke1dPUktESVJ9L21lc29uLmNyb3NzIDw8RU9GCi1bYmluYXJpZXNdCi1jID0gJyR7SE9TVF9QUkVGSVh9Z2NjJwotY3BwID0gJyR7SE9TVF9QUkVGSVh9ZysrJwotYXIgPSAnJHtIT1NUX1BSRUZJWH1hcicKLWxkID0gJyR7SE9TVF9QUkVGSVh9bGQnCi1zdHJpcCA9ICcke0hPU1RfUFJFRklYfXN0cmlwJwotcmVhZGVsZiA9ICcke0hPU1RfUFJFRklYfXJlYWRlbGYnCi1wa2djb25maWcgPSAncGtnLWNvbmZpZycKLQotW3Byb3BlcnRpZXNdCi1uZWVkc19leGVfd3JhcHBlciA9IHRydWUKLWNfYXJncyA9IFske0BtZXNvbl9hcnJheSgnTUVTT05fQ19BUkdTJywgZCl9XQotY19saW5rX2FyZ3MgPSBbJHtAbWVzb25fYXJyYXkoJ01FU09OX0xJTktfQVJHUycsIGQpfV0KLWNwcF9hcmdzID0gWyR7QG1lc29uX2FycmF5KCdNRVNPTl9DX0FSR1MnLCBkKX1dCi1jcHBfbGlua19hcmdzID0gWyR7QG1lc29uX2FycmF5KCdNRVNPTl9MSU5LX0FSR1MnLCBkKX1dCi0KLVtob3N0X21hY2hpbmVdCi1zeXN0ZW0gPSAnJHtIT1NUX09TfScKLWNwdV9mYW1pbHkgPSAnJHtIT1NUX0FSQ0h9JwotY3B1ID0gJyR7SE9TVF9BUkNIfScKLWVuZGlhbiA9ICcke01FU09OX0hPU1RfRU5ESUFOfScKLQotW3RhcmdldF9tYWNoaW5lXQotc3lzdGVtID0gJyR7VEFSR0VUX09TfScKLWNwdV9mYW1pbHkgPSAnJHtUQVJHRVRfQVJDSH0nCi1jcHUgPSAnJHtUQVJHRVRfQVJDSH0nCi1lbmRpYW4gPSAnJHtNRVNPTl9UQVJHRVRfRU5ESUFOfScKLUVPRgotfQotCi1DT05GSUdVUkVfRklMRVMgPSAibWVzb24uYnVpbGQiCi0KLW1lc29uX2RvX2NvbmZpZ3VyZSgpIHsKLSAgICBpZiAhIG1lc29uICR7TUVTT05PUFRTfSAiJHtNRVNPTl9TT1VSQ0VQQVRIfSIgIiR7Qn0iICR7TUVTT05fQ1JPU1NfRklMRX0gJHtFWFRSQV9PRU1FU09OfTsgdGhlbgotICAgICAgICBjYXQgJHtCfS9tZXNvbi1sb2dzL21lc29uLWxvZy50eHQKLSAgICAgICAgYmJmYXRhbF9sb2cgbWVzb24gZmFpbGVkCi0gICAgZmkKLX0KLQotZG9fY29tcGlsZVtwcm9ncmVzc10gPSAib3V0b2Y6XlxbKFxkKykvKFxkKylcXVxzKyIKLW1lc29uX2RvX2NvbXBpbGUoKSB7Ci0gICAgbmluamEgJHtQQVJBTExFTF9NQUtFfQotfQotCi1tZXNvbl9kb19pbnN0YWxsKCkgewotICAgIERFU1RESVI9JyR7RH0nIG5pbmphICR7UEFSQUxMRUxfTUFLRUlOU1R9IGluc3RhbGwKLX0KLQotRVhQT1JUX0ZVTkNUSU9OUyBkb19jb25maWd1cmUgZG9fY29tcGlsZSBkb19pbnN0YWxsCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvY29uZi9sYXllci5jb25mIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL2NvbmYvbGF5ZXIuY29uZgppbmRleCBkODRiZDA5Li4xYTQzNTc1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvY29uZi9sYXllci5jb25mCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9jb25mL2xheWVyLmNvbmYKQEAgLTI5LDYgKzI5LDggQEAKIAogTEFZRVJERVBFTkRTX29wZW5lbWJlZGRlZC1sYXllciA9ICJjb3JlIgogCitMQVlFUlNFUklFU19DT01QQVRfb3BlbmVtYmVkZGVkLWxheWVyID0gInN1bW8iCisKIExJQ0VOU0VfUEFUSCArPSAiJHtMQVlFUkRJUn0vbGljZW5zZXMiCiAKIFNJR0dFTl9FWENMVURFUkVDSVBFU19BQklTQUZFICs9ICIgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2dsbWFyazIvZmlsZXMvRml4LWNvbmZpZ3VyZS1mb3Itc3FydC1jaGVjay5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9nbG1hcmsyL2ZpbGVzL0ZpeC1jb25maWd1cmUtZm9yLXNxcnQtY2hlY2sucGF0Y2gKaW5kZXggZmRlODIzOC4uN2RlMDVlZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2dsbWFyazIvZmlsZXMvRml4LWNvbmZpZ3VyZS1mb3Itc3FydC1jaGVjay5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvZ2xtYXJrMi9maWxlcy9GaXgtY29uZmlndXJlLWZvci1zcXJ0LWNoZWNrLnBhdGNoCkBAIC0xLDEzICsxLDIxIEBACi1JbmRleDogZ2l0L3dzY3JpcHQKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnaXQub3JpZy93c2NyaXB0CTIwMTYtMDctMjkgMTM6MTU6NDQuOTU0MjQ5Nzk2IC0wNTAwCi0rKysgZ2l0L3dzY3JpcHQJMjAxNi0wNy0yOSAxNTo1MjowNi4xOTY3Njg4NjUgLTA1MDAKLUBAIC05MCw3ICs5MCw3IEBACi0gICAgICAgICBjdHguY2hlY2tfY3h4KGxpYiA9IGxpYiwgdXNlbGliX3N0b3JlID0gdXNlbGliKQorRnJvbSA5ZmIyOThjMzk4Zjg4YTYzZDcxNDMyYmUxNDEwZDUyZmFlMDg5MDYzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogVG9tIEhvY2hzdGVpbiA8dG9tLmhvY2hzdGVpbkBueHAuY29tPgorRGF0ZTogTW9uLCA4IEF1ZyAyMDE2IDExOjM5OjU0IC0wNTAwCisKKy0tLQorIHdzY3JpcHQgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS93c2NyaXB0IGIvd3NjcmlwdAoraW5kZXggY2E4NDNmNC4uZWI0YTI2YSAxMDA2NDQKKy0tLSBhL3dzY3JpcHQKKysrKyBiL3dzY3JpcHQKK0BAIC04NCw3ICs4NCw3IEBAIGRlZiBjb25maWd1cmUoY3R4KToKKyAgICAgICAgIGN0eC5jaGVja19jYyhsaWIgPSBsaWIsIHVzZWxpYl9zdG9yZSA9IHVzZWxpYikKICAKICAgICAgIyBDaGVjayByZXF1aXJlZCBmdW5jdGlvbnMKIC0gICAgcmVxX2Z1bmNzID0gWygnbWVtc2V0JywgJ3N0cmluZy5oJywgW10pICwoJ3NxcnQnLCAnbWF0aC5oJywgWydtJ10pXQogKyAgICByZXFfZnVuY3MgPSBbKCdtZW1zZXQnLCAnc3RyaW5nLmgnLCBbXSldCiAgICAgIGZvciBmdW5jLCBoZWFkZXIsIHVzZWxpYiBpbiByZXFfZnVuY3M6Ci0gICAgICAgICBjdHguY2hlY2tfY3h4KGZ1bmN0aW9uX25hbWUgPSBmdW5jLCBoZWFkZXJfbmFtZSA9IGhlYWRlciwKKyAgICAgICAgIGN0eC5jaGVja19jYyhmdW5jdGlvbl9uYW1lID0gZnVuYywgaGVhZGVyX25hbWUgPSBoZWFkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZWxpYiA9IHVzZWxpYiwgbWFuZGF0b3J5ID0gVHJ1ZSkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9pcGVyZjIvaXBlcmYyXzIuMC4xMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9pcGVyZjIvaXBlcmYyXzIuMC4xMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzIyZDA3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2lwZXJmMi9pcGVyZjJfMi4wLjEwLmJiCkBAIC0wLDAgKzEsMTkgQEAKK0RFU0NSSVBUSU9OID0gIklwZXJmIGlzIGEgdG9vbCB0byBtZWFzdXJlIG1heGltdW0gVENQIGJhbmR3aWR0aCwgYWxsb3dpbmcgdGhlIHR1bmluZyBvZiB2YXJpb3VzIHBhcmFtZXRlcnMgYW5kIFVEUCBjaGFyYWN0ZXJpc3RpY3MiCitIT01FUEFHRSA9ICJodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9pcGVyZjIvIgorU0VDVElPTiA9ICJjb25zb2xlL25ldHdvcmsiCitMSUNFTlNFID0gIkJTRC0yLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWUxMzZhN2IyNTYwZDgwYmNiZjBkOWIzZTEzNTZlY2ZmIgorCitTUkNfVVJJID0gIiAke1NPVVJDRUZPUkdFX01JUlJPUn0vaXBlcmYyL2lwZXJmLSR7UFZ9LnRhci5neiIKKworU1JDX1VSSVttZDVzdW1dID0gIjA5N2NmMDc1NGJjMWFmYTE2NTk3NWMwNmE5MWU2OTA2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjdmZTQzNDhkY2NhMzEzYjc0ZTBhYTljMzRhOGNjZDcxM2I4NGE1NjE1Yjg1NzhmNGFhOTRjZWRjZTk4OTFlZjIiCisKK1MgPSAiJHtXT1JLRElSfS9pcGVyZi0ke1BWfSIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCisKK0VYVFJBX09FQ09ORiA9ICItLWV4ZWMtcHJlZml4PSR7U1RBR0lOR19ESVJfSE9TVH0ke2xheW91dF9leGVjX3ByZWZpeH0iCisKK1BBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ2lwdjYnLCAnaXB2NicsICcnLCBkKX0iCitQQUNLQUdFQ09ORklHW2lwdjZdID0gIi0tZW5hYmxlLWlwdjYsLS1kaXNhYmxlLWlwdjYsIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2lwZXJmMy9pcGVyZjMvMDAwMS1pbmNsdWRlLXN0ZGludC5oLWZvci12YXJpb3VzLXN0ZC1jOTktaW50LXR5cGVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2lwZXJmMy9pcGVyZjMvMDAwMS1pbmNsdWRlLXN0ZGludC5oLWZvci12YXJpb3VzLXN0ZC1jOTktaW50LXR5cGVzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTM2MjA4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9pcGVyZjMvaXBlcmYzLzAwMDEtaW5jbHVkZS1zdGRpbnQuaC1mb3ItdmFyaW91cy1zdGQtYzk5LWludC10eXBlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLUZyb20gYmU2NTM3MTFmYjkyZDI0MzBiM2VjYzU0NmI0ZTNhZDkyN2QxOWVjNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDE0IEp1bCAyMDE3IDEyOjU5OjQyIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8yXSBpbmNsdWRlIHN0ZGludC5oIGZvciB2YXJpb3VzIHN0ZCBjOTkgaW50IHR5cGVzCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvY2pzb24uaCB8IDIgKysKLSBzcmMvdGltZXIuaCB8IDEgKwotIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9zcmMvY2pzb24uaCBiL3NyYy9janNvbi5oCi1pbmRleCBmYjhjZDNiLi42OWNkMjcyIDEwMDY0NAotLS0tIGEvc3JjL2Nqc29uLmgKLSsrKyBiL3NyYy9janNvbi5oCi1AQCAtMjMsNiArMjMsOCBAQAotICNpZm5kZWYgY0pTT05fX2gKLSAjZGVmaW5lIGNKU09OX19oCi0gCi0rI2luY2x1ZGUgPHN0ZGludC5oPgotKwotICNpZmRlZiBfX2NwbHVzcGx1cwotIGV4dGVybiAiQyIKLSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL3RpbWVyLmggYi9zcmMvdGltZXIuaAotaW5kZXggMGY5YzVlYi4uMGIxOTViZSAxMDA2NDQKLS0tLSBhL3NyYy90aW1lci5oCi0rKysgYi9zcmMvdGltZXIuaAotQEAgLTMxLDYgKzMxLDcgQEAKLSAjZGVmaW5lIF9fVElNRVJfSAotIAotICNpbmNsdWRlIDxzeXMvdGltZS5oPgotKyNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSAvKiBUaW1lckNsaWVudERhdGEgaXMgYW4gb3BhcXVlIHZhbHVlIHRoYXQgdGFncyBhbG9uZyB3aXRoIGEgdGltZXIuICBUaGUKLSAqKiBjbGllbnQgY2FuIHVzZSBpdCBmb3Igd2hhdGV2ZXIsIGFuZCBpdCBnZXRzIHBhc3NlZCB0byB0aGUgY2FsbGJhY2sgd2hlbgotLS0gCi0yLjEzLjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2lwZXJmMy9pcGVyZjNfMy4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2lwZXJmMy9pcGVyZjNfMy4yLmJiCmluZGV4IDRkMWIwYzQuLjJlZDA4MTEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9pcGVyZjMvaXBlcmYzXzMuMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvaXBlcmYzL2lwZXJmM18zLjIuYmIKQEAgLTE1LDcgKzE1LDYgQEAKIAogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2VzbmV0L2lwZXJmLmdpdCBcCiAgICAgICAgICAgIGZpbGU6Ly9hdXRvbWFrZS1mb3JlaWduLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtaW5jbHVkZS1zdGRpbnQuaC1mb3ItdmFyaW91cy1zdGQtYzk5LWludC10eXBlcy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAyLVJlbW92ZS1wZy1mcm9tLXByb2ZpbGVfQ0ZMQUdTLnBhdGNoIFwKICAgICAgICAgICAgIgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbGliYy1iZW5jaC9saWJjLWJlbmNoXzIwMTEwMjA2LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xpYmMtYmVuY2gvbGliYy1iZW5jaF8yMDExMDIwNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTM0YzczCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xpYmMtYmVuY2gvbGliYy1iZW5jaF8yMDExMDIwNi5iYgpAQCAtMCwwICsxLDE3IEBACitTVU1NQVJZID0gIlRlc3RzIHRvIGNvbXBhcmUgc3RhbmRhcmQgZnVuY3Rpb25zIG9mIGRpZmZlcmVudCBsaWJjIGltcGxlbWVudGF0aW9ucyIKK0RFU0NSSVBUSU9OID0gImxpYmMtYmVuY2ggaXMgYSBzZXQgb2YgdGltZS0gYW5kIG1lbW9yeS1lZmZpY2llbmN5IHRlc3RzIHRvIGNvbXBhcmUgXAoraW1wbGVtZW50YXRpb25zIG9mIHZhcmlvdXMgQy9QT1NJWCBzdGFuZGFyZCBsaWJyYXJ5IGZ1bmN0aW9ucy4iCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmV0YWxhYnMubmV0L2xpYmMtYmVuY2guaHRtbCIKK1NFQ1RJT04gPSAiY29uc29sZS91dGlscyIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9NYWtlZmlsZTttZDU9ZTEyZjExM2RhMjdkZmU5Y2ZiNmMyYzUzN2RhOGQ4ZGYiCisKK1NSQ19VUkkgPSAiaHR0cDovL3d3dy5ldGFsYWJzLm5ldC9yZWxlYXNlcy8ke0JQTn0tJHtQVn0udGFyLmd6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiZjc2M2RlOTBmOTVmZTY4ZTRlMDNlNWI2ZjQ5Njk4YWMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjgyNTI2MGFhNWYxNWY0ZmJjNzk1N2VjNTc4ZTljODU5Y2JiZTIxMGUwMjVlYzc0YzRhMGQwNTY3NzUyMzc5NCIKKworZG9faW5zdGFsbCAoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9JHtiaW5kaXJ9CisgICAgaW5zdGFsbCAtbSAwNzU1ICR7Qn0vbGliYy1iZW5jaCAke0R9JHtiaW5kaXJ9Cit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbGlucGFjay9saW5wYWNrXzEuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9saW5wYWNrL2xpbnBhY2tfMS4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlZDk1Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbGlucGFjay9saW5wYWNrXzEuMC5iYgpAQCAtMCwwICsxLDIwIEBACitERVNDUklQVElPTiA9ICJMSU5QQUNLIEJlbmNobWFya3MgYXJlIGEgbWVhc3VyZSBvZiBhIHN5c3RlbSdzIGZsb2F0aW5nIHBvaW50IGNvbXB1dGluZyBwb3dlciIKK1NVTU1BUlkgPSAiTElOUEFDSyBpcyBhIHNvZnR3YXJlIGxpYnJhcnkgZm9yIHBlcmZvcm1pbmcgbnVtZXJpY2FsIGxpbmVhciBhbGdlYnJhIG9uIGRpZ2l0YWwgY29tcHV0ZXJzIgorCitMSUNFTlNFID0gIlBEIgorTElDX0ZJTEVTX0NIS1NVTSA9ImZpbGU6Ly8ke1dPUktESVJ9L2xpbnBhY2tuZXcuYztiZWdpbmxpbmU9MTtlbmRsaW5lPTIzO21kNT1hYTAyNWUzYmM0NDE5MGM3MWU0YzVlM2IwODRmZWQ4NyIKKworU1JDX1VSSSA9ICJodHRwOi8vd3d3Lm5ldGxpYi5vcmcvYmVuY2htYXJrL2xpbnBhY2tjLm5ldztkb3dubG9hZGZpbGVuYW1lPWxpbnBhY2tuZXcuYyIKK1NSQ19VUklbbWQ1c3VtXSA9ICIxYzVkMGI2YTMxMjY0Njg1ZDJlNjUxYzkyMGUzY2RmNCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJhNjNmMmVjODY1MTI5NTlmMWZkOTI2YmZhZmI4NTkwNWIyZDdiNzQwMjk0MmZmYWUzYWYzNzRkNDg3NDVlOTdlIgorCitTID0gIiR7V09SS0RJUn0iCisKK2RvX2NvbXBpbGUgKCkgeworCSR7Q0N9ICR7Q0ZMQUdTfSAke0xERkxBR1N9IC1vIGxpbnBhY2sgbGlucGFja25ldy5jIC1sbQorfQorCitkb19pbnN0YWxsICgpIHsKKwlpbnN0YWxsIC1EbSAwNzU1IGxpbnBhY2sgJHtEfSR7YmluZGlyfS9saW5wYWNrCit9CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5LzAwMDEtQ2hlY2stZm9yLW11c2wtZGVmaW5lLWd1YXJkLWJlZm9yZS1yZWRlZmluaW5nLXNvY2tsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5LzAwMDEtQ2hlY2stZm9yLW11c2wtZGVmaW5lLWd1YXJkLWJlZm9yZS1yZWRlZmluaW5nLXNvY2tsZS5wYXRjaAppbmRleCAyMDc5MWJmLi5kNzE2OTQ5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS8wMDAxLUNoZWNrLWZvci1tdXNsLWRlZmluZS1ndWFyZC1iZWZvcmUtcmVkZWZpbmluZy1zb2NrbGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvMDAwMS1DaGVjay1mb3ItbXVzbC1kZWZpbmUtZ3VhcmQtYmVmb3JlLXJlZGVmaW5pbmctc29ja2xlLnBhdGNoCkBAIC0xLDEyICsxLDEzIEBACi1Gcm9tIDMxZDU4ZWQ3ZTY1NTI3ODFmNDE1NTAxZTk2ZDdjYzc0ZjgzYjkxMGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGFjMTY1N2UxMWNiYjA1NDViZGY0ZDExMjRkZWY4YzAxMzk1OGVkN2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogV2VkLCAxMiBKdWwgMjAxNyAxODowODo1MSAtMDcwMAotU3ViamVjdDogW1BBVENIIDEvMl0gQ2hlY2sgZm9yIG11c2wgZGVmaW5lIGd1YXJkIGJlZm9yZSByZWRlZmluaW5nIHNvY2tsZW5fdAorU3ViamVjdDogW1BBVENIXSBDaGVjayBmb3IgbXVzbCBkZWZpbmUgZ3VhcmQgYmVmb3JlIHJlZGVmaW5pbmcgc29ja2xlbl90CiAKIG11c2wgdXNlcyBfX0RFRklORURfc29ja2xlbl90IHNvIGNoZWNrIGZvciB0aGF0IGFzIHdlbGwKIGFsb25nIHdpdGggSEFWRV9zb2NrbGVuX3QKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgc3JjL2JlbmNoLmggfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCkBAIC0yNCw2ICsyNSwzIEBACiAgdHlwZWRlZiBpbnQgc29ja2xlbl90OwogICNlbmRpZgogIAotLS0gCi0yLjEzLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvMDAwMS1sYXRfaHR0cC5jLUFkZC1wcmludGYtZm9ybWF0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvMDAwMS1sYXRfaHR0cC5jLUFkZC1wcmludGYtZm9ybWF0LnBhdGNoCmluZGV4IDE4ZWQ0M2QuLjk0M2IzZWMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5LzAwMDEtbGF0X2h0dHAuYy1BZGQtcHJpbnRmLWZvcm1hdC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS8wMDAxLWxhdF9odHRwLmMtQWRkLXByaW50Zi1mb3JtYXQucGF0Y2gKQEAgLTEsOSArMSwxMCBAQAotRnJvbSA2ZmFhNmFjZGYyMGFhNmY3MzhlZWQxNDgzYjdkY2VlZDk0Mjg2YWRiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA3YzA1ZmE1MzUzYWQ5MWFjYWU2ZTVlOGEwMWY2NWQ1NDkzNWVmNzc4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFR1ZSwgMjcgSnVuIDIwMTcgMTQ6Mzk6MTAgLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gbGF0X2h0dHAuYzogQWRkIHByaW50ZiBmb3JtYXQKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgc3JjL2xhdF9odHRwLmMgfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCkBAIC0yMSw2ICsyMiwzIEBACiAgCX0KICAJd3JpdGUoc29jaywgYnVmLCBzdHJsZW4oYnVmKSk7CiAgCXdoaWxlICgobiA9IHJlYWQoc29jaywgYnVmLCBYRkVSU0laRSkpID4gMCkgewotLS0gCi0yLjEzLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvMDAwMi1idWlsZC1BZGp1c3QtQ0ZMQUdTLUxERkxBR1MtdG8tYXBwZW5kLXZhbHVlcy1wYXNzZWQtLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvMDAwMi1idWlsZC1BZGp1c3QtQ0ZMQUdTLUxERkxBR1MtdG8tYXBwZW5kLXZhbHVlcy1wYXNzZWQtLnBhdGNoCmluZGV4IGQ1YzhmNWYuLjM1M2Q4MGIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5LzAwMDItYnVpbGQtQWRqdXN0LUNGTEFHUy1MREZMQUdTLXRvLWFwcGVuZC12YWx1ZXMtcGFzc2VkLS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS8wMDAyLWJ1aWxkLUFkanVzdC1DRkxBR1MtTERGTEFHUy10by1hcHBlbmQtdmFsdWVzLXBhc3NlZC0ucGF0Y2gKQEAgLTEsMTMgKzEsMTMgQEAKLUZyb20gNzZmM2E5YWJjMmZmOTYxNTU0MjVlZjk3ZDhjNTUyMGNmYmM4ZmU2YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gYjI3YzI1M2JmYjc4ZmEzYzVmNDE2ZTZjYWVlMTAxMDk4YTRiNThjYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBXZWQsIDEyIEp1bCAyMDE3IDE4OjA5OjQ2IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8yXSBidWlsZDogQWRqdXN0IENGTEFHUy9MREZMQUdTIHRvIGFwcGVuZCB2YWx1ZXMgcGFzc2VkIGZyb20KLSBlbnYKK1N1YmplY3Q6IFtQQVRDSF0gYnVpbGQ6IEFkanVzdCBDRkxBR1MvTERGTEFHUyB0byBhcHBlbmQgdmFsdWVzIHBhc3NlZCBmcm9tIGVudgogCiBGb3IgbXVzbCB3ZSBoYXZlIHRvIHBhc3MgYWRkaXRpb25hbCBhcmd1bWVudHMgdmlhIGNmbGFncyBhbmQgbGRmbGFncwogdG8gbGluayBpbiBsaWJyaXJwYywgbWFrZSByb29tIGZvciB0aG9zZSBjaGFuZ2VzIHRvIHRha2UgZWZmZWN0CiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIHNjcmlwdHMvYnVpbGQgfCAgMiArLQogIHNyYy9NYWtlZmlsZSAgfCAxNCArKysrKysrLS0tLS0tLQpAQCAtNzEsNiArNzEsMyBAQAogIAogIAogIHRhZzoKLS0tIAotMi4xMy4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L2ZpeC1sbWJlbmNoLW1lbW9yeS1jaGVjay1mYWlsdXJlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvZml4LWxtYmVuY2gtbWVtb3J5LWNoZWNrLWZhaWx1cmUucGF0Y2gKaW5kZXggNTQ5YTExNC4uY2JhYjVjNCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvZml4LWxtYmVuY2gtbWVtb3J5LWNoZWNrLWZhaWx1cmUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvZml4LWxtYmVuY2gtbWVtb3J5LWNoZWNrLWZhaWx1cmUucGF0Y2gKQEAgLTEsNCArMSw3IEBACi1sbWJlbmNoOiBDYW4ndCBwcm9jZWVkIG9uIHNvbWUgdGFyZ2V0cworRnJvbSA2NTE4MDk3NmM5OTYzNDMyZDE2NmI0N2EwYjY5MjI2MGE2OWMwZDQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUWluZ21pbmcgU3UgPHFpbmdtaW5nLnN1QHdpbmRyaXZlci5jb20+CitEYXRlOiBUdWUsIDE5IEF1ZyAyMDE0IDA1OjE2OjE3IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0hdIGxtYmVuY2g6IENhbid0IHByb2NlZWQgb24gc29tZSB0YXJnZXRzCiAKIGxtYmVuY2ggY2FuJ3QgcHJvY2VlZCBvbiBzb21lIHRhcmdldHMuICBUaGUgbWVtb3J5IGNoZWNrIGZhaWxzIGJlY2F1c2UgdGhlCiBtZW1vcnkgbGF0ZW5jeSBvZiBlYWNoIHBhZ2UgaXMgbG9uZ2VyIHRoZW4gMTB1cywgd2hpY2ggaXMgYSB0aW1lIGxpbWl0IHNldApAQCAtMjUsMTMgKzI4LDE5IEBACiAKIFNpZ25lZC1vZmYtYnk6IE1hcmsgSGF0bGUgPG1hcmsuaGF0bGVAd2luZHJpdmVyLmNvbT4KIAorLS0tCisgc2NyaXB0cy9jb25maWctcnVuIHwgMTIgKysrKysrKy0tLQorIHNyYy9NYWtlZmlsZSAgICAgICB8ICA0ICsrLS0KKyBzcmMvbWVtc2l6ZS5jICAgICAgfCA2NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAzIGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQorCiBkaWZmIC0tZ2l0IGEvc2NyaXB0cy9jb25maWctcnVuIGIvc2NyaXB0cy9jb25maWctcnVuCi1pbmRleCBlMWY3YjZkLi4zMWI5MjU2IDEwMDc1NQoraW5kZXggOTE4Y2JkZi4uMDk2ZWQxMiAxMDA3NTUKIC0tLSBhL3NjcmlwdHMvY29uZmlnLXJ1bgogKysrIGIvc2NyaXB0cy9jb25maWctcnVuCi1AQCAtMjE0LDYgKzIxNCwxMiBAQCBUaGUgYmlnZ2VyIHRoZSByYW5nZSwgdGhlIG1vcmUgYWNjdXJhdGUgdGhlIHJlc3VsdHMsIGJ1dCBsYXJnZXIgc2l6ZXMKK0BAIC0xOTcsNiArMTk3LDEyIEBAIFRoZSBiaWdnZXIgdGhlIHJhbmdlLCB0aGUgbW9yZSBhY2N1cmF0ZSB0aGUgcmVzdWx0cywgYnV0IGxhcmdlciBzaXplcwogIHRha2Ugc29tZXdoYXQgbG9uZ2VyIHRvIHJ1biB0aGUgYmVuY2htYXJrLgotCisgCiAgRU9GCiArCiArIyBCeSBkZWZhdWx0LCB1c2UgNTEyTSBtZW1vcnkgYXMgdGhlIHVwcGVyIGxpbWl0IGZvciBsbWJlbmNoIHRlc3QKQEAgLTQwLDEyICs0OSwxMiBAQAogK2ZpCiArCiAgZWNobyAkRUNIT04gIk1CIFtkZWZhdWx0ICRNQl06ICRFQ0hPQyIKLSAjcmVhZCBUTVAKLSBUTVA9IiIKLUBAIC03MTgsMTAgKzcyNCwxMCBAQCBjYXNlICRNQUlMIGluCi0JCTs7CisgcmVhZCBUTVAKKyBpZiBbIFgkVE1QICE9IFggXQorQEAgLTY4NywxMCArNjkzLDEwIEBAIGNhc2UgJE1BSUwgaW4KKyAJCTs7CiAgZXNhYwotCisgCiAtSU5GTz1gLi4vc2NyaXB0cy9pbmZvYAogK0lORk89YC4uL3NjcmlwdHMvaG9zdGluZm9gCiAgaWYgWyAkTUFJTCA9IHllcyBdCkBAIC01NCw4ICs2Myw4IEBACiArCXRoZW4JY3AgLi4vc2NyaXB0cy9ob3N0aW5mby10ZW1wbGF0ZSAkSU5GTwogIAkJY2htb2QgK3cgJElORk8KICAJCVJFVVNFPW5vCi0gCWVsc2UKLUBAIC03NjUsNyArNzcxLDcgQEAgRU9GCisgCWVsc2UJCitAQCAtNzMzLDcgKzczOSw3IEBAIEVPRgogIAkJdGhlbglFRElUT1I9JFRNUAogIAkJZmkKICAJCWlmIFsgWCRFRElUT1IgIT0gIm5vbmUiIF0KQEAgLTY1LDEwICs3NCwxMCBAQAogIAlmaQogIGZpCiBkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlIGIvc3JjL01ha2VmaWxlCi1pbmRleCBkMWYwZGM2Li41MDk4OTk4IDEwMDY0NAoraW5kZXggYzdlNGUzYy4uZDllZmQ1NCAxMDA2NDQKIC0tLSBhL3NyYy9NYWtlZmlsZQogKysrIGIvc3JjL01ha2VmaWxlCi1AQCAtNDksNyArNDksNyBAQCBUQVJHRVQ9YC4uL3NjcmlwdHMvdGFyZ2V0YAorQEAgLTUwLDcgKzUwLDcgQEAgVEFSR0VUPWAuLi9zY3JpcHRzL3RhcmdldGAKICBCSU5ESVI9Li4vYmluLyQoT1MpCiAgQ09ORklHPS4uL2Jpbi8kKE9TKS9gLi4vc2NyaXB0cy9jb25maWdgCiAgVVRJTFM9Li4vc2NyaXB0cy90YXJnZXQgLi4vc2NyaXB0cy9vcyAuLi9zY3JpcHRzL2dudS1vcyAuLi9zY3JpcHRzL2NvbXBpbGVyIFwKQEAgLTc5LDIxICs4OCwyMSBAQAogIElOU1RBTEw9Y3AKIEBAIC0yNDAsNyArMjQwLDcgQEAgJE8vZ2V0b3B0Lm8gOiBnZXRvcHQuYyAkKElOQ1MpCiAgCSQoQ09NUElMRSkgLWMgZ2V0b3B0LmMgLW8gJE8vZ2V0b3B0Lm8KLQorIAogICQoVVRJTFMpIDoKIC0JLWNkIC4uL3NjcmlwdHM7IG1ha2UgZ2V0CiArCS1jZCAuLi9zY3JpcHRzOyBjcCBpbmZvIGhvc3RpbmZvOyBjcCBpbmZvLXRlbXBsYXRlIGhvc3RpbmZvLXRlbXBsYXRlCi0KKyAKICAjIERvIG5vdCByZW1vdmUgdGhlIG5leHQgbGluZSwgJChNQUtFKSBkZXBlbmQgbmVlZHMgaXQKICAjIE1BS0VERVBFTkQgZm9sbG93cwogZGlmZiAtLWdpdCBhL3NyYy9tZW1zaXplLmMgYi9zcmMvbWVtc2l6ZS5jCi1pbmRleCBlYjI1YTA5Li5jZjlmZTBjIDEwMDY0NAoraW5kZXggZWIyNWEwOS4uODJkN2ZhZiAxMDA2NDQKIC0tLSBhL3NyYy9tZW1zaXplLmMKICsrKyBiL3NyYy9tZW1zaXplLmMKIEBAIC0xNCw5ICsxNCwxMiBAQCBjaGFyCSppZCA9ICIkSWQkXG4iOwotCisgCiAgI2RlZmluZQlDSEsoeCkJaWYgKCh4KSA9PSAtMSkgeyBwZXJyb3IoIngiKTsgZXhpdCgxKTsgfQotCisgCiAtI2lmbmRlZglUT09fTE9ORwogLSNkZWZpbmUJVE9PX0xPTkcJMTAJLyogdXNlY3MgKi8KIC0jZW5kaWYKQEAgLTEwMywxMiArMTEyLDEyIEBACiArCiArI2RlZmluZQlNRU1PUllfU0laRV8xTUIgKDEwMjQgKiAxMDI0KQogKyNkZWZpbmUJTUVNT1JZX1NJWkVfOE1CICg4ICogMTAyNCAqIDEwMjQpCi0KKyAKICBpbnQJYWxhcm1fdHJpZ2dlcmVkID0gMDsKLQorIAogQEAgLTM1LDEwICszOCwxMCBAQCBtYWluKGludCBhYywgY2hhciAqKmF2KQogIAlzaXplX3QJZGVsdGE7Ci0KKyAKICAJaWYgKGFjID09IDIpIHsKIC0JCW1heCA9IHNpemUgPSBieXRlcyhhdlsxXSkgKiAxMDI0ICogMTAyNDsKICsJCW1heCA9IHNpemUgPSBieXRlcyhhdlsxXSkgKiBNRU1PUllfU0laRV8xTUI7CkBAIC0xNzAsNyArMTc5LDcgQEAKICsJCXRpbWVfZWFjaF9wYWdlID0gMTsKICsJLy9TZXQgdGhlIHVwZXIgbGltaXQgb2YgdGltZSBzcGVuZGluZyBvbiBvbmUgcGFnZQogKyAgICAgICAgdG9vX2xvbmcgPSAxMCAqIHRpbWVfZWFjaF9wYWdlOwotCisgCiAtCXJhbmdlID0gMTAyNCAqIDEwMjQ7CiAtCWluY3IgPSAxMDI0ICogMTAyNDsKIC0JdG91Y2hSYW5nZSh3aGVyZSwgcmFuZ2UsIHBhZ2VzaXplKTsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L2xtYmVuY2hfcmVzdWx0X2h0bWxfcmVwb3J0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvbG1iZW5jaF9yZXN1bHRfaHRtbF9yZXBvcnQucGF0Y2gKaW5kZXggY2RhMmYwYy4uMzA3MDhjOCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvbG1iZW5jaF9yZXN1bHRfaHRtbF9yZXBvcnQucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvbG1iZW5jaF9yZXN1bHRfaHRtbF9yZXBvcnQucGF0Y2gKQEAgLTEsNCArMSw3IEBACi1sbWJlbmNoOiBGaXggIm1ha2UgaHRtbCIgZ3JhcGggZmFpbHVyZQorRnJvbSBiMjFjYTlmMzkxMTYyOGZiNjZmMzA4YzY5MTY0ODViYmJjZmIyOWE0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTGluIFl1IDxsaW4ueXVAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFR1ZSwgMTkgQXVnIDIwMTQgMDU6MTY6MTYgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSF0gbG1iZW5jaDogRml4ICJtYWtlIGh0bWwiIGdyYXBoIGZhaWx1cmUKIAogVGhlIGh0bWwtbGlzdCBwZXJsIHNjcmlwdCBjYW5ub3QgcGFyc2UgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHJlc3VsdAogZmlsZXMgYWJvdXQgdGhlIGxtYmVuY2ggdmVyc2lvbi4KQEAgLTE0LDYgKzE3LDExIEBACiAKIFNpZ25lZC1vZmYtYnk6IE1hcmsgSGF0bGUgPG1hcmsuaGF0bGVAd2luZHJpdmVyLmNvbT4KIAorLS0tCisgcmVzdWx0cy9NYWtlZmlsZSAgfCAxICsKKyBzY3JpcHRzL2h0bWwtbGlzdCB8IDcgKystLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCiBkaWZmIC0tZ2l0IGEvcmVzdWx0cy9NYWtlZmlsZSBiL3Jlc3VsdHMvTWFrZWZpbGUKIGluZGV4IDA5MzUzNzYuLjFlZjlhMTUgMTAwNjQ0CiAtLS0gYS9yZXN1bHRzL01ha2VmaWxlCkBAIC0zOCw3ICs0Niw3IEBACiArPGgyPjxhIGhyZWY9c3VtbWFyeS5vdXQ+U3VtbWFyeSBvZiByZXN1bHRzPC9hPjwvaDI+CiAgPGhyPgogIEVPRgotCisgCiBAQCAtNDcsNyArNDcsNyBAQCBmb3JlYWNoICRvcyAoQG9zKSB7CiAgCQlvcGVuKEYsICRmaWxlKTsKICAJCSRfID0gPEY+OwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvb2JleS1yYW5saWIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS9vYmV5LXJhbmxpYi5wYXRjaAppbmRleCA0MWEzYjMyLi5mYTVlNmRiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS9vYmV5LXJhbmxpYi5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS9vYmV5LXJhbmxpYi5wYXRjaApAQCAtMSwxNiArMSwyMiBAQAorRnJvbSAxODJhNWQzZGJhM2Y0NDBiYmYzNTU1MWRhNmQyMWFiMWM5OTBlYjU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTm9vciBBaHNhbiA8bm9vcl9haHNhbkBtZW50b3IuY29tPgorRGF0ZTogTW9uLCAyOSBBdWcgMjAxMSAxNjoxNzo1MSArMDAwMAorU3ViamVjdDogW1BBVENIXSBsbWJlbmNoOiBBZGQgdmVyc2lvbiAzLjAtYTkgKGluaXRpYWwgcmVjaXBlKQorCiBJbiBzb21lIGNhc2VzIHRoZSBob3N0IG1heSBoYXZlIHRvbyBvbGQgb2YgYSByYW5saWIgdG8gd29yay4gIFNpbmNlIGl0J3MKIG5vdCBleGFjdGx5IGEgZ3JlYXQgaWRlYSB0byBub3QgYmUgdXNpbmcgdGhlIGNyb3NzIHJhbmxpYiBhbnlob3csIGZpeCB0aGUKIE1ha2VmaWxlIHNvIHdlIGNhbiBvdmVycmlkZSByYW5saWIgYW5kIHRoZW4gb3ZlcnJpZGUgaXQKIAogVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtidWlsZCBzeXN0ZW0gc3BlY2lmaWMgY2hhbmdlXQorCiAtLS0KLSBzcmMvTWFrZWZpbGUgfCAgICAzICsrLQorIHNyYy9NYWtlZmlsZSB8IDMgKystCiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogCi1JbmRleDogbG1iZW5jaC0zLjAtYTkvc3JjL01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbG1iZW5jaC0zLjAtYTkub3JpZy9zcmMvTWFrZWZpbGUKLSsrKyBsbWJlbmNoLTMuMC1hOS9zcmMvTWFrZWZpbGUKK2RpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUgYi9zcmMvTWFrZWZpbGUKK2luZGV4IDQ5NjI4MTUuLmM3YThjNzkgMTAwNjQ0CistLS0gYS9zcmMvTWFrZWZpbGUKKysrKyBiL3NyYy9NYWtlZmlsZQogQEAgLTM4LDYgKzM4LDcgQEAgQ0M9YC4uL3NjcmlwdHMvY29tcGlsZXJgCiAgTUFLRT1gLi4vc2NyaXB0cy9tYWtlYAogIEFSPWFyCkBAIC0xOSw3ICsyNSw3IEBACiAgCiAgIyBiYXNlIG9mIGluc3RhbGxhdGlvbiBsb2NhdGlvbgogIEJBU0U9L3Vzci9sb2NhbAotQEAgLTIxNyw3ICsyMTgsNyBAQCAkTy9sbWJlbmNoIDogLi4vc2NyaXB0cy9sbWJlbmNoIHZlcnNpb24uCitAQCAtMjE3LDcgKzIxOCw3IEBAICRPL2xtYmVuY2ggOiAuLi9zY3JpcHRzL2xtYmVuY2ggdmVyc2lvbi5oCiAgJE8vbG1iZW5jaC5hOiAkKExJQk9CSlMpCiAgCS9iaW4vcm0gLWYgJE8vbG1iZW5jaC5hCiAgCSQoQVIpICQoQVJDUkVBVEUpICRPL2xtYmVuY2guYSAkKExJQk9CSlMpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS91cGRhdGUtY29uZmlnLXNjcmlwdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L3VwZGF0ZS1jb25maWctc2NyaXB0LnBhdGNoCmluZGV4IGI0NmUwOWEuLjQ0YmM3YmIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L3VwZGF0ZS1jb25maWctc2NyaXB0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L3VwZGF0ZS1jb25maWctc2NyaXB0LnBhdGNoCkBAIC0xLDggKzEsMTggQEAKK0Zyb20gYWNhMWE1OWQ4ODg0MjFjMWZjNTUzMjI5YjgwNDliZTQ3ZThiM2RkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IENodW5yb25nIEd1byA8YjQwMjkwQGZyZWVzY2FsZS5jb20+CitEYXRlOiBGcmksIDEgTWFyIDIwMTMgMDk6NTA6NDIgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gbG1iZW5jaDogdXBkYXRlIGNvbmZpZyBzY3JpcHQKKwogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi1JbmRleDogbG1iZW5jaC0zLjAtYTkvc2NyaXB0cy9jb25maWcKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBsbWJlbmNoLTMuMC1hOS9zY3JpcHRzL2NvbmZpZwkyMDAwLTAxLTMxIDE4OjI5OjMxLjAwMDAwMDAwMCAtMDYwMAotKysrIGxtYmVuY2gtMy4wLWE5L3NjcmlwdHMvY29uZmlnCTIwMTMtMDMtMDEgMDA6MTk6NDEuMDMyOTg0MzE1IC0wNjAwCisKKy0tLQorIHNjcmlwdHMvY29uZmlnIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc2NyaXB0cy9jb25maWcgYi9zY3JpcHRzL2NvbmZpZworaW5kZXggYjU4Y2I2MC4uMjVkOWQ3NyAxMDA3NTUKKy0tLSBhL3NjcmlwdHMvY29uZmlnCisrKysgYi9zY3JpcHRzL2NvbmZpZwogQEAgLTMsNSArMyw1IEBACiAgVU5BTUU9YHVuYW1lIC1uIDI+L2Rldi9udWxsYAogIGlmIFsgWCRVTkFNRSA9IFggXQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvdXBkYXRlLXJlc3VsdHMtc2NyaXB0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvdXBkYXRlLXJlc3VsdHMtc2NyaXB0LnBhdGNoCmluZGV4IDg5NGYxNDYuLjMxYzRhZWMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L3VwZGF0ZS1yZXN1bHRzLXNjcmlwdC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS91cGRhdGUtcmVzdWx0cy1zY3JpcHQucGF0Y2gKQEAgLTEsNDUgKzEsMjQgQEAKK0Zyb20gNDk1NTAyMWJjMjgzYmU0MDRkZjYyYjk3Yjg2YWYzOTQzZWZkMjlkZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5vb3IgQWhzYW4gPG5vb3JfYWhzYW5AbWVudG9yLmNvbT4KK0RhdGU6IE1vbiwgMjkgQXVnIDIwMTEgMTY6MTc6NTEgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gbG1iZW5jaDogQWRkIHZlcnNpb24gMy4wLWE5IChpbml0aWFsIHJlY2lwZSkKKwogTm93IHRoYXQgd2UgaGF2ZSBvdXIgYmluYXJpZXMgaW4gL3Vzci9iaW4gcmF0aGVyIHRoYW4gdGhlIG5vcm1hbAogbG1iZW5jaCBoaWVyYXJjaHkgd2UgbmVlZCB0byB1cGRhdGUgdGhlIHNjcmlwdHMgYXMgd2VsbCB0byBiZWhhdmUgd2VsbCBoZXJlLgogCiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW1RoaXMgaXMgcmVsYXRlZCB0byB0aGUgT0Utc3BlY2lmaWMgYmVoYXZpb3IKLW9mIGluc3RhbGxpbmcgaW50byAvdXNyL2JpbiwgZXRjLCByYXRoZXIgdGhhbiBkdW1waW5nIGV2ZXJ5dGhpbmcgaW50byAKK29mIGluc3RhbGxpbmcgaW50byAvdXNyL2JpbiwgZXRjLCByYXRoZXIgdGhhbiBkdW1waW5nIGV2ZXJ5dGhpbmcgaW50bwogL3Vzci9zaGFyZS9sbWJlbmNoIG9yIHNpbWlsYXJdCiAKLUluZGV4OiBsbWJlbmNoLTMuMC1hOS9zY3JpcHRzL3Jlc3VsdHMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBsbWJlbmNoLTMuMC1hOS5vcmlnL3NjcmlwdHMvcmVzdWx0cwotKysrIGxtYmVuY2gtMy4wLWE5L3NjcmlwdHMvcmVzdWx0cwotQEAgLTgsMTEgKzgsMTEgQEAgUkVTVUxUUz1yZXN1bHRzLyRPUwotIEJBU0U9Li4vJFJFU1VMVFMvYHVuYW1lIC1uYAotIEVYVD0wCi0gCi0taWYgWyAhIC1mICIuLi9iaW4vJE9TLyRDT05GSUciIF0KLStpZiBbICEgLWYgIiRDT05GSUciIF0KLSB0aGVuCWVjaG8gIk5vIGNvbmZpZyBmaWxlPyIKLSAJZXhpdCAxCi0gZmkKLS0uIC4uL2Jpbi8kT1MvJENPTkZJRwotKy4gJENPTkZJRwotIAotIGlmIFsgISAtZCAuLi8kUkVTVUxUUyBdCi0gdGhlbglta2RpciAtcCAuLi8kUkVTVUxUUwotQEAgLTIzLDExICsyMyw5IEBAIGRvICAgICAgRVhUPWBleHByICRFWFQgKyAxYAotIAlSRVNVTFRTPSRCQVNFLiRFWFQKLSBkb25lCi0gCi0tY2QgLi4vYmluLyRPUyAKLS1QQVRIPS46JHtQQVRIfTsgZXhwb3J0IFBBVEgKLSBleHBvcnQgU1lOQ19NQVgKLSBleHBvcnQgT1VUUFVUCi0tbG1iZW5jaCAkQ09ORklHIDI+Li4vJHtSRVNVTFRTfQotK2xtYmVuY2ggJENPTkZJRyAyPiR7UkVTVUxUU30KLSAKLSBpZiBbIFgkTUFJTCA9IFh5ZXMgXQotIHRoZW4JZWNobyBNYWlsaW5nIHJlc3VsdHMKLUluZGV4OiBsbWJlbmNoLTMuMC1hOS9zY3JpcHRzL2NvbmZpZy1ydW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBsbWJlbmNoLTMuMC1hOS5vcmlnL3NjcmlwdHMvY29uZmlnLXJ1bgotKysrIGxtYmVuY2gtMy4wLWE5L3NjcmlwdHMvY29uZmlnLXJ1bgorLS0tCisgc2NyaXB0cy9jb25maWctcnVuIHwgNDAgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQorIHNjcmlwdHMvcmVzdWx0cyAgICB8ICA4ICsrKy0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NjcmlwdHMvY29uZmlnLXJ1biBiL3NjcmlwdHMvY29uZmlnLXJ1bgoraW5kZXggYTJkNWJhNC4uOTE4Y2JkZiAxMDA3NTUKKy0tLSBhL3NjcmlwdHMvY29uZmlnLXJ1bgorKysrIGIvc2NyaXB0cy9jb25maWctcnVuCiBAQCAtMTMyLDIwICsxMzIsMjAgQEAgZXhwb3J0IExNQkVOQ0hfU0NIRUQKICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAgZWNobyAkTDsgZWNobyAiIjsKQEAgLTg5LDcgKzY4LDcgQEAKICBpZiBbIGBleHByICRTWU5DX01BWCBcKiAkTUJgIC1ndCBgZXhwciAkVE9UQUxfTUVNYCBdCiAgdGhlbgogIAlNQj1gZXhwciAkVE9UQUxfTUVNIC8gJFNZTkNfTUFYYAotQEAgLTIyMyw4ICsyMjMsOCBAQCB0aGVuCWVjaG8gV2FybmluZzogeW91IGhhdmUgb25seSAke01CfU1CCitAQCAtMjIzLDggKzIyMyw4IEBAIHRoZW4JZWNobyBXYXJuaW5nOiB5b3UgaGF2ZSBvbmx5ICR7TUJ9TUIgYXZhaWxhYmxlIG1lbW9yeS4KICBmaQogIAogIGVjaG8gIkhhbmcgb24sIHdlIGFyZSBjYWxjdWxhdGluZyB5b3VyIGNhY2hlIGxpbmUgc2l6ZS4iCkBAIC0xNTgsMyArMTM3LDM0IEBACiAgZWNobyBESVNLUz1cIiRESVNLU1wiID4gJEMKICBlY2hvIERJU0tfREVTQz1cIiRESVNLX0RFU0NcIiA+PiAkQwogIGVjaG8gT1VUUFVUPSRPVVRQVVQgPj4gJEMKK2RpZmYgLS1naXQgYS9zY3JpcHRzL3Jlc3VsdHMgYi9zY3JpcHRzL3Jlc3VsdHMKK2luZGV4IGNkMDdjMTUuLmQ1YWE1NTggMTAwNzU1CistLS0gYS9zY3JpcHRzL3Jlc3VsdHMKKysrKyBiL3NjcmlwdHMvcmVzdWx0cworQEAgLTgsMTEgKzgsMTEgQEAgUkVTVUxUUz1yZXN1bHRzLyRPUworIEJBU0U9Li4vJFJFU1VMVFMvYHVuYW1lIC1uYAorIEVYVD0wCisgCistaWYgWyAhIC1mICIuLi9iaW4vJE9TLyRDT05GSUciIF0KKytpZiBbICEgLWYgIiRDT05GSUciIF0KKyB0aGVuCWVjaG8gIk5vIGNvbmZpZyBmaWxlPyIKKyAJZXhpdCAxCisgZmkKKy0uIC4uL2Jpbi8kT1MvJENPTkZJRworKy4gJENPTkZJRworIAorIGlmIFsgISAtZCAuLi8kUkVTVUxUUyBdCisgdGhlbglta2RpciAtcCAuLi8kUkVTVUxUUworQEAgLTIzLDExICsyMyw5IEBAIGRvICAgICAgRVhUPWBleHByICRFWFQgKyAxYAorIAlSRVNVTFRTPSRCQVNFLiRFWFQKKyBkb25lCisgCistY2QgLi4vYmluLyRPUyAKKy1QQVRIPS46JHtQQVRIfTsgZXhwb3J0IFBBVEgKKyBleHBvcnQgU1lOQ19NQVgKKyBleHBvcnQgT1VUUFVUCistbG1iZW5jaCAkQ09ORklHIDI+Li4vJHtSRVNVTFRTfQorK2xtYmVuY2ggJENPTkZJRyAyPiR7UkVTVUxUU30KKyAKKyBpZiBbIFgkTUFJTCA9IFh5ZXMgXQorIHRoZW4JZWNobyBNYWlsaW5nIHJlc3VsdHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L3VzZS1iYXNlX2xpYmRpci1pbnN0ZWFkLW9mLWhhcmRjb2RlZC1saWIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLTMuMC1hOS91c2UtYmFzZV9saWJkaXItaW5zdGVhZC1vZi1oYXJkY29kZWQtbGliLnBhdGNoCmluZGV4IDMzNTFjZTguLmM2ZTk0NjUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gtMy4wLWE5L3VzZS1iYXNlX2xpYmRpci1pbnN0ZWFkLW9mLWhhcmRjb2RlZC1saWIucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC0zLjAtYTkvdXNlLWJhc2VfbGliZGlyLWluc3RlYWQtb2YtaGFyZGNvZGVkLWxpYi5wYXRjaApAQCAtMSwxNCArMSwxNSBAQAotRnJvbSAwZDA5ZTMxOTcwNjE2ZTA5YmViN2YyMzhjMmI1OWJmYzU0MTE0OGZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA3M2ZkYzU4Y2E0ZWI5ZTJmMjRkODU0YjNhZjNhNGU1ZGFhYzVhMzNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogVGluZyBMaXUgPGIyODQ5NUBmcmVlc2NhbGUuY29tPgogRGF0ZTogRnJpLCAyMiBOb3YgMjAxMyAxNToyMDowOCArMDgwMAogU3ViamVjdDogW1BBVENIXSB1c2UgYmFzZV9saWJkaXIgaW5zdGVhZCBvZiBoYXJkY29kZWQgL2xpYgogCi1VcHN0ZWFtIFN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KK1Vwc3RyZWFtIFN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KIAogU2lnbmVkLW9mZi1ieTogVGluZyBMaXUgPGIyODQ5NUBmcmVlc2NhbGUuY29tPgorCiAtLS0KLSBzcmMvTWFrZWZpbGUgfCAgICA0ICsrLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKyBzcmMvTWFrZWZpbGUgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlIGIvc3JjL01ha2VmaWxlCiBpbmRleCBjN2E4Yzc5Li5jN2U0ZTNjIDEwMDY0NApAQCAtMjcsNiArMjgsMyBAQAogIAljZCAuLi9kb2M7IGVudiBNQUtFRkxBR1M9IiQoTUFLRUZMQUdTKSIgbWFrZSBDQz0iJHtDQ30iIE9TPSIke09TfSIgQkFTRT0iJChCQVNFKSIgaW5zdGFsbAogIAogIAotLS0gCi0xLjcuNS40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gvMDAwMS1hdm9pZC1nY2Mtb3B0aW1pemUtYXdheS10aGUtbG9vcHMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvbG1iZW5jaC9sbWJlbmNoLzAwMDEtYXZvaWQtZ2NjLW9wdGltaXplLWF3YXktdGhlLWxvb3BzLnBhdGNoCmluZGV4IDJkOGEyNDYuLmI5NjRiZWYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gvMDAwMS1hdm9pZC1nY2Mtb3B0aW1pemUtYXdheS10aGUtbG9vcHMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC8wMDAxLWF2b2lkLWdjYy1vcHRpbWl6ZS1hd2F5LXRoZS1sb29wcy5wYXRjaApAQCAtMSw0ICsxLDcgQEAKLVtQQVRDSF0gYXZvaWQgZ2NjIG9wdGltaXplLWF3YXkgdGhlIGxvb3BzCitGcm9tIDI1NzM4YmI5Yzc1Zjk0YjQ1MTIwMWFjZmQ2YmNhYjEzYmRlZWU1MTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CitEYXRlOiBUaHUsIDUgTWF5IDIwMTYgMDk6NTI6MDEgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gW1BBVENIXSBhdm9pZCBnY2Mgb3B0aW1pemUtYXdheSB0aGUgbG9vcHMKIAogVXBzdHJlYW0tU3RhdHVzOiBwZW5kaW5nCiAKQEAgLTE1LDYgKzE4LDcgQEAKIAkjZGVmaW5lIFRFTihhKSBhIGEgYSBhIGEgYSBhIGEgYSBhCiAKIFNpZ25lZC1vZmYtYnk6IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KKwogLS0tCiAgc3JjL2xhdF9vcHMuYyB8IDMwICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogIDEgZmlsZSBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQpAQCAtNzQsNiArNzgsMyBAQAogIAl9CiAgCXVzZV9pbnQoKGludClyKTsKICB9Ci0tLSAKLTIuOC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9sbWJlbmNoL2xtYmVuY2gvcmVuYW1lLWxpbmUtYmluYXJ5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC9yZW5hbWUtbGluZS1iaW5hcnkucGF0Y2gKaW5kZXggOWE0MDUyMS4uYjQyZWU3ZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC9yZW5hbWUtbGluZS1iaW5hcnkucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL2xtYmVuY2gvbG1iZW5jaC9yZW5hbWUtbGluZS1iaW5hcnkucGF0Y2gKQEAgLTEsMyArMSw4IEBACitGcm9tIDE2ODIzZjVjM2QzZDVhZGFkMGI3MGU5MDU1YzA4Y2I0ZTE4ZDI1NWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBOb29yIEFoc2FuIDxub29yX2Foc2FuQG1lbnRvci5jb20+CitEYXRlOiBNb24sIDI5IEF1ZyAyMDExIDE2OjE3OjUxICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIGxtYmVuY2g6IEFkZCB2ZXJzaW9uIDMuMC1hOSAoaW5pdGlhbCByZWNpcGUpCisKIEJvdGggbG1iZW5jaCBhbmQgdXRpbC1saW51eC1uZyBwYWNrYWdlcyBwcm92aWRlIG93biAvdXNyL2Jpbi9saW5lIGJpbmFyaWVzLgogRXZlbiB0aG91Z2ggdGhlIGJpbmFyaWVzIG5hbWUgaXMgdGhlIHNhbWUsIHRoZWlyIGZ1bmN0aW9uYWxpdHkgaXMgZGlmZmVyZW50LgogVGhpcyBwYXRjaCByZW5hbWVzIGxtYmVuY2gncyBsaW5lIGJpbmFyeSBhcyBsbV9saW5lIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoCkBAIC02LDggKzExLDE0IEBACiAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbYnVpbGQgc3lzdGVtIHNwZWNpZmljIGNoYW5nZV0KIAotLS0tIHBhdGNoZXMvc2NyaXB0cy9jb25maWctcnVuCTIwMDYtMTEtMjYgMTU6MTE6MDQuMDAwMDAwMDAwIC0wNTAwCi0rKysgcGF0Y2hlcy9zY3JpcHRzL2NvbmZpZy1ydW4JMjAxMS0wNC0wMSAwOTozNTo1MC4wMDAwMDAwMDAgLTA0MDAKKy0tLQorIHNjcmlwdHMvY29uZmlnLXJ1biB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NjcmlwdHMvY29uZmlnLXJ1biBiL3NjcmlwdHMvY29uZmlnLXJ1bgoraW5kZXggZjYyMGMxNS4uYTJkNWJhNCAxMDA3NTUKKy0tLSBhL3NjcmlwdHMvY29uZmlnLXJ1bgorKysrIGIvc2NyaXB0cy9jb25maWctcnVuCiBAQCAtMjI0LDcgKzIyNCw3IEBAIGZpCiAgCiAgZWNobyAiSGFuZyBvbiwgd2UgYXJlIGNhbGN1bGF0aW5nIHlvdXIgY2FjaGUgbGluZSBzaXplLiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9waG9yb25peC10ZXN0LXN1aXRlL3Bob3Jvbml4LXRlc3Qtc3VpdGVfNy40LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvcGhvcm9uaXgtdGVzdC1zdWl0ZS9waG9yb25peC10ZXN0LXN1aXRlXzcuNC4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzY2NkNWRiLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9waG9yb25peC10ZXN0LXN1aXRlL3Bob3Jvbml4LXRlc3Qtc3VpdGVfNy40LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1TVU1NQVJZID0gIlBob3Jvbml4IFRlc3QgU3VpdGUiCi1ERVNDUklQVElPTiA9ICJUaGUgUGhvcm9uaXggVGVzdCBTdWl0ZSBpcyBkZXNpZ25lZCB0byBjYXJyeSBvdXQgYm90aCBxdWFsaXRhdGl2ZSBcCi1hbmQgcXVhbnRpdGF0aXZlIGJlbmNobWFya3MgaW4gYSBjbGVhbiwgcmVwcm9kdWNpYmxlLCBhbmQgZWFzeS10by11c2UgbWFubmVyLiIKLUxJQ0VOU0UgPSAiR1BMdjMiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKLVNFQ1RJT04gPSAiY29uc29sZS90ZXN0cyIKLQotU1JDX1VSSSA9ICJodHRwOi8vd3d3LnBob3Jvbml4LXRlc3Qtc3VpdGUuY29tL3JlbGVhc2VzLyR7QlB9LnRhci5neiIKLVNSQ19VUklbbWQ1c3VtXSA9ICI4NmZhM2VlZGU0M2ZmZmY4ODk5MmZlMjEzNjhiMTFiNyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkZTlhZWMzZWY0Zjk4MDU4MTc1NmZkMGJmN2IzMGRkMWNjYjIwZTdhYWU2MzcwNzhhNTg3NjA2YmY3NWE2YjY3IgotCi1TID0gIiR7V09SS0RJUn0vcGhvcm9uaXgtdGVzdC1zdWl0ZSIKLQotaW5oZXJpdCBzeXN0ZW1kIGFsbGFyY2gKLQotZG9faW5zdGFsbCgpIHsKLSAgICBERVNURElSPSR7RH0gLi9pbnN0YWxsLXNoICR7ZXhlY19wcmVmaXh9Ci0KLSAgICBpZiBbICIke3N5c3RlbWRfdW5pdGRpcn0iICE9ICIvdXNyL2xpYi9zeXN0ZW1kIiBdOyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLwotICAgICAgICBtdiAke0R9L3Vzci9saWIvc3lzdGVtZC9zeXN0ZW0vKiAke0R9LyR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCi0gICAgICAgIHJtIC1yZiAke0R9L3Vzci9saWIvCi0gICAgZmkKLX0KLQotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gInBob3JvbWF0aWMtY2xpZW50LnNlcnZpY2UgcGhvcm9tYXRpYy1zZXJ2ZXIuc2VydmljZSIKLVJERVBFTkRTXyR7UE59ICs9ICJiYXNoIHB5dGhvbiBwaHAtY2xpIgotCi1GSUxFU18ke1BOfSArPSAiIFwKLSAgICAke2RhdGFkaXJ9L3Bob3Jvbml4LXRlc3Qtc3VpdGUgXAotICAgICR7ZGF0YWRpcn0vYXBwZGF0YS9waG9yb25peC10ZXN0LXN1aXRlLmFwcGRhdGEueG1sIFwKLSAgICAke2RhdGFkaXJ9L2ljb25zL2hpY29sb3IvNDh4NDgvYXBwcy9waG9yb25peC10ZXN0LXN1aXRlLnBuZyBcCi0gICAgJHtkYXRhZGlyfS9pY29ucy9oaWNvbG9yLzY0eDY0L21pbWV0eXBlcy9hcHBsaWNhdGlvbi14LW9wZW5iZW5jaG1hcmtpbmcucG5nIFwKLSAgICAke2RhdGFkaXJ9L21pbWUvcGFja2FnZXMvb3BlbmJlbmNobWFya2luZy1taW1lLnhtbCBcCi0gICAgJHtzeXN0ZW1kX3VuaXRkaXJ9LyogXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL3Bob3Jvbml4LXRlc3Qtc3VpdGUvcGhvcm9uaXgtdGVzdC1zdWl0ZV83LjguMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9waG9yb25peC10ZXN0LXN1aXRlL3Bob3Jvbml4LXRlc3Qtc3VpdGVfNy44LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY5MGE3MQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJlbmNobWFyay9waG9yb25peC10ZXN0LXN1aXRlL3Bob3Jvbml4LXRlc3Qtc3VpdGVfNy44LjAuYmIKQEAgLTAsMCArMSw0MSBAQAorU1VNTUFSWSA9ICJQaG9yb25peCBUZXN0IFN1aXRlIgorREVTQ1JJUFRJT04gPSAiVGhlIFBob3Jvbml4IFRlc3QgU3VpdGUgaXMgZGVzaWduZWQgdG8gY2Fycnkgb3V0IGJvdGggcXVhbGl0YXRpdmUgXAorYW5kIHF1YW50aXRhdGl2ZSBiZW5jaG1hcmtzIGluIGEgY2xlYW4sIHJlcHJvZHVjaWJsZSwgYW5kIGVhc3ktdG8tdXNlIG1hbm5lci4iCitMSUNFTlNFID0gIkdQTHYzIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQiCitTRUNUSU9OID0gImNvbnNvbGUvdGVzdHMiCisKK1NSQ19VUkkgPSAiaHR0cDovL3d3dy5waG9yb25peC10ZXN0LXN1aXRlLmNvbS9yZWxlYXNlcy8ke0JQfS50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiODUwODQzYmQ5MjUyODIzZTdlMjRiYzA4NDk3NzMwMDAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiY2Q2Yzg2OTg0MWYyOGU0YWMxZThhNWU0Y2RhMDVmYWZjZTlhNTIzYTZiNGYwZjNhNDc4MDVlZmQzMDQ5NGQ4OCIKKworUyA9ICIke1dPUktESVJ9L3Bob3Jvbml4LXRlc3Qtc3VpdGUiCisKK2luaGVyaXQgc3lzdGVtZCBhbGxhcmNoCisKK2RvX2luc3RhbGwoKSB7CisgICAgREVTVERJUj0ke0R9IC4vaW5zdGFsbC1zaCAke2V4ZWNfcHJlZml4fQorCisgICAgaWYgWyAiJHtzeXN0ZW1kX3VuaXRkaXJ9IiAhPSAiL3Vzci9saWIvc3lzdGVtZCIgXTsgdGhlbgorICAgICAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KKyAgICAgICAgbXYgJHtEfS91c3IvbGliL3N5c3RlbWQvc3lzdGVtLyogJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLworICAgICAgICBybSAtcmYgJHtEfS91c3IvbGliLworICAgIGZpCit9CisKKyMgSXQgaXMgbm90IGFkdmlzYWJsZSB0byBlbmFibGUgdGhlc2Ugc2VydmljZXMgYnkgZGVmYXVsdCBzaW5jZSB0aGV5IGNhbiBjYXVzZQorIyBjb250aW51YWwgdGFyZ2V0IHJlYm9vdHMgaWYgdGhleSBlbmNvdW50ZXIgbmV0d29yayBwcm9ibGVtcy4KKyMKK1NZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJwaG9yb21hdGljLWNsaWVudC5zZXJ2aWNlIHBob3JvbWF0aWMtc2VydmVyLnNlcnZpY2UiCisKK1JERVBFTkRTXyR7UE59ICs9ICJiYXNoIHB5dGhvbiBwaHAtY2xpIgorCitGSUxFU18ke1BOfSArPSAiIFwKKyAgICAke2RhdGFkaXJ9L3Bob3Jvbml4LXRlc3Qtc3VpdGUgXAorICAgICR7ZGF0YWRpcn0vYXBwZGF0YS9waG9yb25peC10ZXN0LXN1aXRlLmFwcGRhdGEueG1sIFwKKyAgICAke2RhdGFkaXJ9L2ljb25zL2hpY29sb3IvNDh4NDgvYXBwcy9waG9yb25peC10ZXN0LXN1aXRlLnBuZyBcCisgICAgJHtkYXRhZGlyfS9pY29ucy9oaWNvbG9yLzY0eDY0L21pbWV0eXBlcy9hcHBsaWNhdGlvbi14LW9wZW5iZW5jaG1hcmtpbmcucG5nIFwKKyAgICAke2RhdGFkaXJ9L21pbWUvcGFja2FnZXMvb3BlbmJlbmNobWFya2luZy1taW1lLnhtbCBcCisgICAgJHtzeXN0ZW1kX3VuaXRkaXJ9LyogXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL3doZXRzdG9uZS93aGV0c3RvbmVfMS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYmVuY2htYXJrL3doZXRzdG9uZS93aGV0c3RvbmVfMS4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmYWQwNGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1iZW5jaG1hcmsvd2hldHN0b25lL3doZXRzdG9uZV8xLjIuYmIKQEAgLTAsMCArMSwyMCBAQAorREVTQ1JJUFRJT04gPSAiV2hldHN0b25lIGJlbmNobWFyayBpcyBhIHN5bnRoZXRpYyBiZW5jaG1hcmsgZm9yIGV2YWx1YXRpbmcgdGhlIHBlcmZvcm1hbmNlIG9mIGNvbXB1dGVycyIKK1NVTU1BUlkgPSAiQ1BVIGJlbmNobWFyayB0byBtZWFzdXJlIGZsb2F0aW5nIHBvaW50IHBlcmZvcm1hbmNlIgorCitMSUNFTlNFID0gIlBEIgorTElDX0ZJTEVTX0NIS1NVTSA9ImZpbGU6Ly8ke1dPUktESVJ9L3doZXRzdG9uZS5jO2JlZ2lubGluZT0xO2VuZGxpbmU9NTI7bWQ1PWM3OTVlZGMxNWU3ZTFkOTJjYThmODhhZDcxODQ0OWY1IgorCitTUkNfVVJJID0gImh0dHA6Ly93d3cubmV0bGliLm9yZy9iZW5jaG1hcmsvd2hldHN0b25lLmMiCitTUkNfVVJJW21kNXN1bV0gPSAiZDhlYjJjZDcxMDRiYjVhMTJkNjE0YWM2ZDNmMWY5ZmIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzMzZTRjZWNhMDQyYzE0NmY2M2VlYzYwNTU3M2QxNmFlOGIwNzE2NmNiYzQ0YTE3YmVjMWVhOTdjNmYxZWZiZiIKKworUyA9ICIke1dPUktESVJ9IgorCitkb19jb21waWxlICgpIHsKKwkke0NDfSAke0NGTEFHU30gJHtMREZMQUdTfSAtT2Zhc3QgLW8gd2hldHN0b25lIHdoZXRzdG9uZS5jIC1sbQorfQorCitkb19pbnN0YWxsICgpIHsKKwlpbnN0YWxsIC1EbSAwNzU1IHdoZXRzdG9uZSAke0R9JHtiaW5kaXJ9L3doZXRzdG9uZQorfQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9hY3BpdG9vbC9hY3BpdG9vbF8wLjUuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9hY3BpdG9vbC9hY3BpdG9vbF8wLjUuMS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvYWNwaXRvb2wvYWNwaXRvb2xfMC41LjEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9hY3BpdG9vbC9hY3BpdG9vbF8wLjUuMS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jcHVmcmVxdXRpbHMvY3B1ZnJlcXV0aWxzLzAwMDEtZG9udC11bnNldC1jZmxhZ3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvY3B1ZnJlcXV0aWxzL2NwdWZyZXF1dGlscy8wMDAxLWRvbnQtdW5zZXQtY2ZsYWdzLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2NwdWZyZXF1dGlscy9jcHVmcmVxdXRpbHMvMDAwMS1kb250LXVuc2V0LWNmbGFncy5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2NwdWZyZXF1dGlscy9jcHVmcmVxdXRpbHMvMDAwMS1kb250LXVuc2V0LWNmbGFncy5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jcHVmcmVxdXRpbHMvY3B1ZnJlcXV0aWxzXzAwOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9jcHVmcmVxdXRpbHMvY3B1ZnJlcXV0aWxzXzAwOC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jcHVmcmVxdXRpbHMvY3B1ZnJlcXV0aWxzXzAwOC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2NwdWZyZXF1dGlscy9jcHVmcmVxdXRpbHNfMDA4LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2VkYWMtdXRpbHMvZWRhYy11dGlsc19naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWRhYy11dGlscy9lZGFjLXV0aWxzX2dpdC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9lZGFjLXV0aWxzL2VkYWMtdXRpbHNfZ2l0LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWRhYy11dGlscy9lZGFjLXV0aWxzX2dpdC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9lZGFjLXV0aWxzL2ZpbGVzL2FkZC1yZXN0YXJ0LXRvLWluaXRzY3JpcHQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWRhYy11dGlscy9maWxlcy9hZGQtcmVzdGFydC10by1pbml0c2NyaXB0LnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2VkYWMtdXRpbHMvZmlsZXMvYWRkLXJlc3RhcnQtdG8taW5pdHNjcmlwdC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VkYWMtdXRpbHMvZmlsZXMvYWRkLXJlc3RhcnQtdG8taW5pdHNjcmlwdC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9lZGFjLXV0aWxzL2ZpbGVzL2VkYWMuc2VydmljZSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZGFjLXV0aWxzL2ZpbGVzL2VkYWMuc2VydmljZQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9lZGFjLXV0aWxzL2ZpbGVzL2VkYWMuc2VydmljZQpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VkYWMtdXRpbHMvZmlsZXMvZWRhYy5zZXJ2aWNlCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2VkYWMtdXRpbHMvZmlsZXMvbWFrZS1pbml0LXNjcmlwdC1iZS1hYmxlLXRvLWF1dG9tYXRpY2FsbHktbG9hZC1FREFDLS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZGFjLXV0aWxzL2ZpbGVzL21ha2UtaW5pdC1zY3JpcHQtYmUtYWJsZS10by1hdXRvbWF0aWNhbGx5LWxvYWQtRURBQy0ucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZWRhYy11dGlscy9maWxlcy9tYWtlLWluaXQtc2NyaXB0LWJlLWFibGUtdG8tYXV0b21hdGljYWxseS1sb2FkLUVEQUMtLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWRhYy11dGlscy9maWxlcy9tYWtlLWluaXQtc2NyaXB0LWJlLWFibGUtdG8tYXV0b21hdGljYWxseS1sb2FkLUVEQUMtLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZmlib290bWdyL2VmaWJvb3RtZ3JfMC4xNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZmlib290bWdyL2VmaWJvb3RtZ3JfMC4xNS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpYm9vdG1nci9lZmlib290bWdyXzAuMTUuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZmlib290bWdyL2VmaWJvb3RtZ3JfMC4xNS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvMDAwMS1lZml2YXItZHAuaC1BZGQtV3Vua25vd24tYXR0cmlidXRlcy13aGVuLXVzaW5nLWNsYW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvMDAwMS1lZml2YXItZHAuaC1BZGQtV3Vua25vd24tYXR0cmlidXRlcy13aGVuLXVzaW5nLWNsYW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0Y2UxMzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci8wMDAxLWVmaXZhci1kcC5oLUFkZC1XdW5rbm93bi1hdHRyaWJ1dGVzLXdoZW4tdXNpbmctY2xhbmcucGF0Y2gKQEAgLTAsMCArMSwzMyBAQAorRnJvbSBkNjVjMzI1ZGQ4NjgxZWRmMmVlMzMzMmVlYjBhNTQ3MjI5YzdmZmI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IFRodSwgMjQgQXVnIDIwMTcgMTU6NTQ6NDcgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gZWZpdmFyLWRwLmg6IEFkZCAtV3Vua25vd24tYXR0cmlidXRlcyB3aGVuIHVzaW5nIGNsYW5nCisKK2NoYW5nZSAhZHAgY2hlY2sgdG8gYSBjb21wYXJpc2lvbiBhZ2FpbnN0IE5VTEwgdG8gc2lsZW50IGNsYW5nIHdhcm5pbmcKK25vbm51bGwgcGFyYW1ldGVyICdkcCcgd2lsbCBldmFsdWF0ZSB0byAndHJ1ZScgb24gZmlyc3QgZW5jb3VudGVyCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKKy0tLQorIHNyYy9pbmNsdWRlL2VmaXZhci9lZml2YXItZHAuaCB8IDUgKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9lZml2YXIvZWZpdmFyLWRwLmggYi9zcmMvaW5jbHVkZS9lZml2YXIvZWZpdmFyLWRwLmgKK2luZGV4IDNhNTA5YjcuLmMxNDBlOGQgMTAwNjQ0CistLS0gYS9zcmMvaW5jbHVkZS9lZml2YXIvZWZpdmFyLWRwLmgKKysrKyBiL3NyYy9pbmNsdWRlL2VmaXZhci9lZml2YXItZHAuaAorQEAgLTc4Myw5ICs3ODMsMTQgQEAgZXh0ZXJuIGludCBlZmlkcF9hcHBlbmRfaW5zdGFuY2UoY29uc3RfZWZpZHAgZHAsIGNvbnN0X2VmaWRwIGRwaSwgZWZpZHAgKm91dCk7CisgICogdGhvdWdoIG9sZGVyIG9yIG90aGVyIGNvbXBpbGVycyBtaWdodCBqdXN0IGlnbm9yZSB0aGF0IGF0dHJpYnV0ZSBpZiB0aGV5CisgICogZG9uJ3Qgc3VwcG9ydCBpdC4gIFVnaC4KKyAgKi8KKysjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKyAjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgX19HTlVDX18gPj0gNgorICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdub25udWxsLWNvbXBhcmUiCisgI2VuZGlmCisrI2lmIGRlZmluZWQoX19jbGFuZ19fKQorKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLWF0dHJpYnV0ZXMiCisrI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3BvaW50ZXItYm9vbC1jb252ZXJzaW9uIgorKyNlbmRpZgorIAorIHN0YXRpYyBpbmxpbmUgaW50MTZfdAorIF9fYXR0cmlidXRlX18oKF9fYXJ0aWZpY2lhbF9fKSkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyLzAwMDEtZWZpdmFyLWZpeC1mb3ItY3Jvc3MtY29tcGlsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyLzAwMDEtZWZpdmFyLWZpeC1mb3ItY3Jvc3MtY29tcGlsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTFlNTBjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvMDAwMS1lZml2YXItZml4LWZvci1jcm9zcy1jb21waWxlLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zyb20gYTkxMTVkOWU2ZjBmNjJkNmJiNzM1Y2UzNjk4ODU4ZDFmODlmOGQ3MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEthaSBLYW5nIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgorRGF0ZTogRnJpLCAyNSBTZXAgMjAxNSAxODoxNDozMSArMDgwMAorU3ViamVjdDogW1BBVENIXSBlZml2YXI6IGZpeCBmb3IgY3Jvc3MgY29tcGlsZQorCitJdCBidWlsZHMgYW5kIGNhbGxzIGVsZiBmaWxlIG1ha2VndWlkcyB0byBnZW5lcmF0ZSBhIGhlYWRlciBmaWxlIHdoaWNoCitkb2Vzbid0IHdvcmsgZm9yIGNyb3NzIGNvbXBpbGUuIEZpeCBpdC4KKworU2lnbmVkLW9mZi1ieTogS2FpIEthbmcgPGthaS5rYW5nQHdpbmRyaXZlci5jb20+CisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworU2lnbmVkLW9mZi1ieTogSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPgorCistLS0KKyBzcmMvTWFrZWZpbGUgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlIGIvc3JjL01ha2VmaWxlCitpbmRleCAwYzE2NTk3Li5kY2M3ZmM4IDEwMDY0NAorLS0tIGEvc3JjL01ha2VmaWxlCisrKysgYi9zcmMvTWFrZWZpbGUKK0BAIC00MCw4ICs0MCw4IEBAIGFiaWNoZWNrIDogJChwYXRzdWJzdCAlLnNvLCUuYWJpY2hlY2ssJChMSUJUQVJHRVRTKSkKKyAuL2d1aWQtc3ltYm9scy5jIDogaW5jbHVkZS9lZml2YXIvZWZpdmFyLWd1aWRzLmgKKyAuL2d1aWRzLmJpbiA6IGluY2x1ZGUvZWZpdmFyL2VmaXZhci1ndWlkcy5oCisgLi9uYW1lcy5iaW4gOiBpbmNsdWRlL2VmaXZhci9lZml2YXItZ3VpZHMuaAorLWluY2x1ZGUvZWZpdmFyL2VmaXZhci1ndWlkcy5oIDogbWFrZWd1aWRzIGd1aWRzLnR4dAorLQkuL21ha2VndWlkcyBndWlkcy50eHQgZ3VpZHMuYmluIG5hbWVzLmJpbiBcCisraW5jbHVkZS9lZml2YXIvZWZpdmFyLWd1aWRzLmggOiBndWlkcy50eHQKKysJbWFrZWd1aWRzIGd1aWRzLnR4dCBndWlkcy5iaW4gbmFtZXMuYmluIFwKKyAJCWd1aWQtc3ltYm9scy5jIGluY2x1ZGUvZWZpdmFyL2VmaXZhci1ndWlkcy5oCisgCisgbWFrZWd1aWRzIDogQ1BQRkxBR1MrPS1ERUZJVkFSX0JVSUxEX0VOVklST05NRU5UCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci8wMDAxLW1ha2VndWlkcy1Eby1ub3QtdXNlLV9fYnN3YXBfY29uc3RhbnRfLTE2LTMyLW1hY3Jvcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyLzAwMDEtbWFrZWd1aWRzLURvLW5vdC11c2UtX19ic3dhcF9jb25zdGFudF8tMTYtMzItbWFjcm9zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNmViMDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci8wMDAxLW1ha2VndWlkcy1Eby1ub3QtdXNlLV9fYnN3YXBfY29uc3RhbnRfLTE2LTMyLW1hY3Jvcy5wYXRjaApAQCAtMCwwICsxLDM1IEBACitGcm9tIGRkNDI5MTI2NWI3YjNkN2Q3ZmZhMWQ4YWRmMzI3ODFhZTI1ZGJmZWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogU2F0LCAxNSBKdWwgMjAxNyAwMDoyOTo0MiAtMDcwMAorU3ViamVjdDogW1BBVENIXSBtYWtlZ3VpZHM6IERvIG5vdCB1c2UgX19ic3dhcF9jb25zdGFudF97MTZ8MzJ9IG1hY3JvcworCitub3QgYXZhaWxhYmxlIG9uIG11c2wKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKworLS0tCisgc3JjL21ha2VndWlkcy5jIHwgOCArKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvbWFrZWd1aWRzLmMgYi9zcmMvbWFrZWd1aWRzLmMKK2luZGV4IGRhMmY1ZjcuLmRhZjgyMWEgMTAwNjQ0CistLS0gYS9zcmMvbWFrZWd1aWRzLmMKKysrKyBiL3NyYy9tYWtlZ3VpZHMuYworQEAgLTE1NSwxMyArMTU1LDEzIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyAjaWYgQllURV9PUkRFUiA9PSBCSUdfRU5ESUFOXG5cCisgI2RlZmluZSBjcHVfdG9fYmUzMihuKSAobilcblwKKyAjZGVmaW5lIGNwdV90b19iZTE2KG4pIChuKVxuXAorLSNkZWZpbmUgY3B1X3RvX2xlMzIobikgKF9fYnN3YXBfY29uc3RhbnRfMzIobikpXG5cCistI2RlZmluZSBjcHVfdG9fbGUxNihuKSAoX19ic3dhcF9jb25zdGFudF8xNihuKSlcblwKKysjZGVmaW5lIGNwdV90b19sZTMyKG4pICgodWludDMyX3QpICgobik+PjI0IHwgKG4pPj44JjB4ZmYwMCB8IChuKTw8OCYweGZmMDAwMCB8IChuKTw8MjQpKVxuXAorKyNkZWZpbmUgY3B1X3RvX2xlMTYobikgKCh1aW50MTZfdCkgKChuKTw8OCB8IChuKT4+OCkpXG5cCisgI2Vsc2VcblwKKyAjZGVmaW5lIGNwdV90b19sZTMyKG4pIChuKVxuXAorICNkZWZpbmUgY3B1X3RvX2xlMTYobikgKG4pXG5cCistI2RlZmluZSBjcHVfdG9fYmUzMihuKSAoX19ic3dhcF9jb25zdGFudF8zMihuKSlcblwKKy0jZGVmaW5lIGNwdV90b19iZTE2KG4pIChfX2Jzd2FwX2NvbnN0YW50XzE2KG4pKVxuXAorKyNkZWZpbmUgY3B1X3RvX2JlMzIobikgKCh1aW50MzJfdCkgKChuKT4+MjQgfCAobik+PjgmMHhmZjAwIHwgKG4pPDw4JjB4ZmYwMDAwIHwgKG4pPDwyNCkpXG5cCisrI2RlZmluZSBjcHVfdG9fYmUxNihuKSAoKHVpbnQxNl90KSAoKG4pPDw4IHwgKG4pPj44KSlcblwKKyAjZW5kaWZcblwKKyAiIiIpOworIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvMDAwMy1lZml2YXItZml4LWZvci1jcm9zcy1jb21waWxlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvMDAwMy1lZml2YXItZml4LWZvci1jcm9zcy1jb21waWxlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzMTA1ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci8wMDAzLWVmaXZhci1maXgtZm9yLWNyb3NzLWNvbXBpbGUucGF0Y2gKQEAgLTAsMCArMSw0MiBAQAorRnJvbSBkZWE0YTU1NzE0MjQ5YjI3MzRhMzY3MDExMjBmZDIyYzkxYzY0ZWMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPgorRGF0ZTogU2F0LCA3IE1heSAyMDE2IDAyOjA2OjQ3IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0hdIE1ha2VmaWxlOiBmaXggZWZpdmFyLnBjIG5vdCBmb3VuZAorCitJdCBmaXhlcyBlZml2YXIucGMgbm90IGZvdW5kOgorLi4uCit8IGluc3RhbGwgLWQgLW0gNzU1IGVmaXZhci8wLjIzLXIwL2ltYWdlL3Vzci9saWIvcGtnY29uZmlnLworfCBpbnN0YWxsIC1tIDY0NCBlZml2YXIucGMgZWZpdmFyLzAuMjMtcjAvaW1hZ2UvdXNyL2xpYi9wa2djb25maWcvCis7ICBpbnN0YWxsIC1tIDY0NCBlZmlib290LnBjIGVmaXZhci8wLjIzLXIwL2ltYWdlL3Vzci9saWIvcGtnY29uZmlnLworOworfCBpbnN0YWxsOiBjYW5ub3Qgc3RhdCAnZWZpdmFyLnBjJzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorfCBpbnN0YWxsOiBjYW5ub3Qgc3RhdCAnZWZpYm9vdC5wYyc6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK3wgbWFrZVsxXTogKioqIFtpbnN0YWxsXSBFcnJvciAxCit8IG1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5IGBlZml2YXIvMC4yMy1yMC9naXQvc3JjJworfCBtYWtlOiAqKiogW2luc3RhbGxdIEVycm9yIDIKK3wgRVJST1I6IG9lX3J1bm1ha2UgZmFpbGVkCisuLi4KKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KKworLS0tCisgc3JjL01ha2VmaWxlIHwgNCArKystCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlIGIvc3JjL01ha2VmaWxlCitpbmRleCBkY2M3ZmM4Li42OTFhYThhIDEwMDY0NAorLS0tIGEvc3JjL01ha2VmaWxlCisrKysgYi9zcmMvTWFrZWZpbGUKK0BAIC05NCw3ICs5NCw5IEBAIGluc3RhbGwgOiBhbGwKKyAJCWxuIC1mcyAkKHgpLjEuJChWRVJTSU9OKSAkKERFU1RESVIpJChsaWJkaXIpLyQoeCkgO1wKKyAJCSkKKyAJJChJTlNUQUxMKSAtZCAtbSA3NTUgJChERVNURElSKSQoUENESVIpCistCSQoZm9yZWFjaCB4LCAkKFBDVEFSR0VUUyksICQoSU5TVEFMTCkgLW0gNjQ0ICQoeCkgJChERVNURElSKSQoUENESVIpIDspCisrCSQoZm9yZWFjaCB4LCAkKFBDVEFSR0VUUyksICQoSU5TVEFMTCkgLW0gNjQ0ICQoVE9QRElSKS9zcmMvJCh4KS5pbiAkKERFU1RESVIpJChQQ0RJUikvJCh4KSA7XAorKwkJc2VkIC1pIC1lICJzOkBATElCRElSQEA6JChsaWJkaXIpOmciIC1lICJzOkBAVkVSU0lPTkBAOiQoVkVSU0lPTik6ZyIgXAorKwkJCSQoREVTVERJUikkKFBDRElSKS8kKHgpOyApCisgCSQoSU5TVEFMTCkgLWQgLW0gNzU1ICQoREVTVERJUikkKGluY2x1ZGVkaXIpL2VmaXZhcgorIAkkKGZvcmVhY2ggeCwgJCh3aWxkY2FyZCAkKFRPUERJUikvc3JjL2luY2x1ZGUvZWZpdmFyLyouaCksICQoSU5TVEFMTCkgLW0gNjQ0ICQoeCkgJChERVNURElSKSQoaW5jbHVkZWRpcikvZWZpdmFyLyQobm90ZGlyICQoeCkpOykKKyAJJChJTlNUQUxMKSAtZCAtbSA3NTUgJChERVNURElSKSQoYmluZGlyKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci8wMDA0LWZpeC11bmtub3ctb3B0aW9uLWZvci1nb2xkLWxpbmtlci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyLzAwMDQtZml4LXVua25vdy1vcHRpb24tZm9yLWdvbGQtbGlua2VyLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyLzAwMDQtZml4LXVua25vdy1vcHRpb24tZm9yLWdvbGQtbGlua2VyLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci8wMDA0LWZpeC11bmtub3ctb3B0aW9uLWZvci1nb2xkLWxpbmtlci5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvYWxsb3ctbXVsdGktZGVmaW5pdGlvbnMtZm9yLW5hdGl2ZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyL2FsbG93LW11bHRpLWRlZmluaXRpb25zLWZvci1uYXRpdmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4YWYxZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyL2FsbG93LW11bHRpLWRlZmluaXRpb25zLWZvci1uYXRpdmUucGF0Y2gKQEAgLTAsMCArMSwzMiBAQAorRnJvbSBjODAxZGNiMDNkNDJlYjUzM2E5YmVhZDBiMzk3ZDdjZTRmYzVhNmZlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2FpIEthbmcgPGthaS5rYW5nQHdpbmRyaXZlci5jb20+CitEYXRlOiBXZWQsIDEwIEF1ZyAyMDE2IDE3OjQ5OjUwICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIGFsbG93IG11bHRpIGRlZmluaXRpb25zIGZvciBuYXRpdmUKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK0l0IGZhaWxzIHRvIGNyZWF0ZSAuc28gZmlsZSB3aGVuIGJ1aWxkIGVmaXZhci1uYXRpdmU6CisKK3wgbGliLm86KCpJTkQqKzB4MCk6IG11bHRpcGxlIGRlZmluaXRpb24gb2YgYGVmaV9zZXRfdmFyaWFibGUnCit8IGxpYi5vOmxpYi5jOigudGV4dCsweGEwKTogZmlyc3QgZGVmaW5lZCBoZXJlCisKK0FkZCBsaW5rIG9wdGlvbiAnLXogbXVsZGVmcycgdG8gZml4IGl0LgorCitTaWduZWQtb2ZmLWJ5OiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KKworLS0tCisgTWFrZS5ydWxlcyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvTWFrZS5ydWxlcyBiL01ha2UucnVsZXMKK2luZGV4IDg4YjlhYTcuLjc5OTMzMmYgMTAwNjQ0CistLS0gYS9NYWtlLnJ1bGVzCisrKysgYi9NYWtlLnJ1bGVzCitAQCAtMjAsNiArMjAsNyBAQCBpbmNsdWRlICQoVE9QRElSKS9NYWtlLnZlcnNpb24KKyAJJChDQ0xEKSAkKGNjbGRmbGFncykgJChDUFBGTEFHUykgJChTT0ZMQUdTKSBcCisgCSAgLVdsLC1zb25hbWUsJEAuMSBcCisgCSAgLVdsLC0tdmVyc2lvbi1zY3JpcHQ9JChNQVApIFwKKysJICAtV2wsLXosbXVsZGVmcyBcCisgCSAgLW8gJEAgJF4gJChMRExJQlMpCisgCisgJS5hYml4bWwgOiAlLnNvCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhci9maXgtY29tcGlsZS1mYWlsdXJlLXdpdGgtaG9zdC1nY2MtNC42LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvZml4LWNvbXBpbGUtZmFpbHVyZS13aXRoLWhvc3QtZ2NjLTQuNi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmM5YTU3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvZml4LWNvbXBpbGUtZmFpbHVyZS13aXRoLWhvc3QtZ2NjLTQuNi5wYXRjaApAQCAtMCwwICsxLDQzIEBACitGcm9tIDNlZGNlNmEwMDE5YmNiOTBmZWJjMWY2NTRiNWIyZTJiYWQ1YzU5YmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+CitEYXRlOiBUaHUsIDI2IE1heSAyMDE2IDIxOjUwOjAxIC0wNDAwCitTdWJqZWN0OiBbUEFUQ0hdIGZpeCBjb21waWxlIGZhaWx1cmUgd2l0aCBvbGRlciBob3N0IGdjYyAoPD00LjYpCisKK1doaWxlIGhvc3QgZ2NjIHZlcnNpb24gaXMgNC42LjMgaW4gdWJ1bnR1IDEyMDQsIGl0CitkaWQgbm90IHJlY29nbml6ZSAtc3RkPWdudTExIGFuZCAtV21heWJlLXVuaW5pdGlhbGl6ZWQuCisKK1doaWxlIGhvc3QgZ2NjIHZlcnNpb24gaXMgNC40LjcgaW4gY2VudG9zNiwgaXQKK2RpZCBub3QgcmVjb2duaXplIC1zdGQ9Z251MTEsIC1XbWF5YmUtdW5pbml0aWFsaXplZCwKK2FuZCAtZmx0by4KKworRm9yIG5hdGl2ZSBidWlsZCwgdXNlIC1zdGQ9Z251OTkgdG8gcmVwbGFjZSAtc3RkPWdudTExLAorYW5kIGRpcmVjdGx5IHJlbW92ZSAtV21heWJlLXVuaW5pdGlhbGl6ZWQgYW5kIC1mbHRvLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPgorCistLS0KKyBnY2Muc3BlY3MgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ2NjLnNwZWNzIGIvZ2NjLnNwZWNzCitpbmRleCA0NWQ0M2QxLi5mMWM2OTQ0IDEwMDY0NAorLS0tIGEvZ2NjLnNwZWNzCisrKysgYi9nY2Muc3BlY3MKK0BAIC0yLDEzICsyLDEzIEBACisgKyAtRF9HTlVfU09VUkNFCisgCisgKmVmaXZhcl9jcHBfb3B0aW9uczoKKy0gLVdlcnJvciAtV2FsbCAtc3RkPWdudTExIC1XZXh0cmEKKysgLVdlcnJvciAtV2FsbCAtc3RkPWdudTk5IC1XZXh0cmEKKyAKKyAqY3BwX29wdGlvbnM6CisgKyAlKGVmaXZhcl9jcHBfb3B0aW9ucykKKyAKKyAqY2MxX29wdGlvbnM6CistKyAlKGVmaXZhcl9jcHBfb3B0aW9ucykgLVdtYXliZS11bmluaXRpYWxpemVkIC1mbm8tbWVyZ2UtY29uc3RhbnRzIC1mdmlzaWJpbGl0eT1oaWRkZW4gJXshcjoleyFmcGllOiV7IWZQSUU6JXshZnBpYzoleyFmUElDOiV7IWZuby1waWM6LWZQSUV9fX19fX0KKysrICUoZWZpdmFyX2NwcF9vcHRpb25zKSAtZm5vLW1lcmdlLWNvbnN0YW50cyAtZnZpc2liaWxpdHk9aGlkZGVuICV7IXI6JXshZnBpZToleyFmUElFOiV7IWZwaWM6JXshZlBJQzoleyFmbm8tcGljOi1mUElFfX19fX19CisgCisgKnNlbGZfc3BlYzoKKyArICV7IXNoYXJlZDoleyFzdGF0aWM6JXshcjotcGllfX19ICV7c3RhdGljOi1XbCwtbm8tZmF0YWwtd2FybmluZ3MgLVdsLC1zdGF0aWMgLXN0YXRpYyAtV2wsLXoscmVscm8sLXosbm93fQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2VmaXZhci9lZml2YXIvbXVzbC1zdHJuZHVwYS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyL211c2wtc3RybmR1cGEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg2NGFjNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyL211c2wtc3RybmR1cGEucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJvbSA4MDAwYjlhZmM4NTg0NzI5MTJhYWNlOTg1MDA0YjQ0ZjhlYjQ2N2UwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMTggQXVnIDIwMTcgMDk6NDk6NDkgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gc3VwcG9ydCBtdXNsCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworLS0tCisgc3JjL2xpbnV4LmMgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zcmMvbGludXguYyBiL3NyYy9saW51eC5jCitpbmRleCAzNGVkNDc5Li4xMzA0ZjJiIDEwMDY0NAorLS0tIGEvc3JjL2xpbnV4LmMKKysrKyBiL3NyYy9saW51eC5jCitAQCAtNDAsNiArNDAsMTAgQEAKKyAjaW5jbHVkZSA8ZWZpdmFyLmg+CisgI2luY2x1ZGUgPGVmaWJvb3QuaD4KKyAKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyNkZWZpbmUgc3RybmR1cGEoeCxzKSBzdHJuY3B5KGFsbG9jYShzdHJsZW4oeCkrMSkseCxzKQorKyNlbmRpZgorKworICNpbmNsdWRlICJkcC5oIgorICNpbmNsdWRlICJsaW51eC5oIgorICNpbmNsdWRlICJ1dGlsLmgiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyXzAuMzEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZWZpdmFyL2VmaXZhcl8wLjMxLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyXzAuMzEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9lZml2YXIvZWZpdmFyXzAuMzEuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9mbGFzaHJvbS9mbGFzaHJvbS8wMDAxLXBsYXRmb3JtLUFkZC1yaXNjdi10by1rbm93bi1wbGF0Zm9ybXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZmxhc2hyb20vZmxhc2hyb20vMDAwMS1wbGF0Zm9ybS1BZGQtcmlzY3YtdG8ta25vd24tcGxhdGZvcm1zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiYTY5YTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZmxhc2hyb20vZmxhc2hyb20vMDAwMS1wbGF0Zm9ybS1BZGQtcmlzY3YtdG8ta25vd24tcGxhdGZvcm1zLnBhdGNoCkBAIC0wLDAgKzEsMzcgQEAKK0Zyb20gZDJhMjhkY2RiZDEwNTFkMmY0ODMyMGUyZWRhMzM5MzU4MWZlMDUxOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDE3IE1hciAyMDE4IDIzOjA4OjI5IC0wNzAwCitTdWJqZWN0OiBbUEFUQ0hdIHBsYXRmb3JtOiBBZGQgcmlzY3YgdG8ga25vd24gcGxhdGZvcm1zCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CistLS0KK1Vwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkIFtodHRwczovL3Jldmlldy5jb3JlYm9vdC5vcmcvIy9jL2ZsYXNocm9tLysvMjUyNjAvXQorIHBsYXRmb3JtLmggfCA1ICsrKystCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvcGxhdGZvcm0uaCBiL3BsYXRmb3JtLmgKK2luZGV4IGIyZmRjZDAuLjJjYWRiYjMgMTAwNjQ0CistLS0gYS9wbGF0Zm9ybS5oCisrKysgYi9wbGF0Zm9ybS5oCitAQCAtNjksNiArNjksOSBAQAorICNlbGlmIGRlZmluZWQgKF9fbTY4a19fKQorIAkjZGVmaW5lIF9fRkxBU0hST01fQVJDSF9fICJtNjhrIgorIAkjZGVmaW5lIElTX002OEsgMQorKyNlbGlmIGRlZmluZWQgKF9fcmlzY3YpCisrCSNkZWZpbmUgX19GTEFTSFJPTV9BUkNIX18gInJpc2N2IgorKwkjZGVmaW5lIElTX1JJU0NWIDEKKyAjZWxpZiBkZWZpbmVkIChfX3NoX18pCisgCSNkZWZpbmUgX19GTEFTSFJPTV9BUkNIX18gInNoIgorIAkjZGVmaW5lIElTX1NIIDEKK0BAIC03Nyw3ICs4MCw3IEBACisgCSNkZWZpbmUgSVNfUzM5MCAxCisgI2VuZGlmCisgCistI2lmICEoSVNfWDg2IHx8IElTX01JUFMgfHwgSVNfUFBDIHx8IElTX0FSTSB8fCBJU19TUEFSQyB8fCBJU19BTFBIQSB8fCBJU19IUFBBIHx8IElTX002OEsgfHwgSVNfU0ggfHwgSVNfUzM5MCkKKysjaWYgIShJU19YODYgfHwgSVNfTUlQUyB8fCBJU19QUEMgfHwgSVNfQVJNIHx8IElTX1NQQVJDIHx8IElTX0FMUEhBIHx8IElTX0hQUEEgfHwgSVNfTTY4SyB8fCBJU19SSVNDViB8fCBJU19TSCB8fCBJU19TMzkwKQorICNlcnJvciBVbmtub3duIGFyY2hpdGVjdHVyZQorICNlbmRpZgorIAorLS0gCisyLjE2LjIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZmxhc2hyb20vZmxhc2hyb20vc3N0MjYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZmxhc2hyb20vZmxhc2hyb20vc3N0MjYucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2ZsYXNocm9tL2ZsYXNocm9tL3NzdDI2LnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZmxhc2hyb20vZmxhc2hyb20vc3N0MjYucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9mbGFzaHJvbS9mbGFzaHJvbV8xLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZmxhc2hyb20vZmxhc2hyb21fMS4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllYWM4NzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvZmxhc2hyb20vZmxhc2hyb21fMS4wLmJiCkBAIC0wLDAgKzEsMTkgQEAKK0RFU0NSSVBUSU9OID0gImZsYXNocm9tIGlzIGEgdXRpbGl0eSBmb3IgaWRlbnRpZnlpbmcsIHJlYWRpbmcsIHdyaXRpbmcsIHZlcmlmeWluZyBhbmQgZXJhc2luZyBmbGFzaCBjaGlwcyIKK0xJQ0VOU0UgPSAiR1BMdjIiCitIT01FUEFHRSA9ICJodHRwOi8vZmxhc2hyb20ub3JnIgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKK0RFUEVORFMgPSAicGNpdXRpbHMgbGlidXNiIGxpYnVzYi1jb21wYXQiCisKK1NSQ19VUkkgPSAiaHR0cHM6Ly9kb3dubG9hZC5mbGFzaHJvbS5vcmcvcmVsZWFzZXMvZmxhc2hyb20tJHtQVn0udGFyLmJ6MiBcCisgICAgICAgICAgIGZpbGU6Ly9zc3QyNi5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLXBsYXRmb3JtLUFkZC1yaXNjdi10by1rbm93bi1wbGF0Zm9ybXMucGF0Y2ggXAorICAgICAgICAgICAiCitTUkNfVVJJW21kNXN1bV0gPSAiNDJkOTk5OTkwYzczNWQ4ODY1MzYyN2NlZmNjMTNiOWEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzcwMmZhMjE1YmE1ZmI1YWY4ZTU0Yzg1MmQyMzk4OTljZmExMzg5MTk0YzFlNTFjYjJhMTcwYzRkYzlkZWU2NCIKKworaW5oZXJpdCBwa2djb25maWcKKworZG9faW5zdGFsbCgpIHsKKyAgICBvZV9ydW5tYWtlIFBSRUZJWD0ke3ByZWZpeH0gREVTVERJUj0ke0R9IGluc3RhbGwKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL2ZhbmNvbnRyb2wgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL2ZhbmNvbnRyb2wKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL2ZhbmNvbnRyb2wKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWcvZmFuY29udHJvbApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWcvc2Vuc29yZCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWcvc2Vuc29yZApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWcvc2Vuc29yZApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZy9zZW5zb3JkCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZy9zZW5zb3JkLmNnaSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWcvc2Vuc29yZC5jZ2kKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL3NlbnNvcmQuY2dpCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL3NlbnNvcmQuY2dpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZy9zZW5zb3JkLmNvbmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL3NlbnNvcmQuY29uZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWcvc2Vuc29yZC5jb25mCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL3NlbnNvcmQuY29uZgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWcvc2Vuc29ycy5jb25mIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZy9zZW5zb3JzLmNvbmYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnL3NlbnNvcnMuY29uZgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZy9zZW5zb3JzLmNvbmYKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbG1fc2Vuc29ycy9sbXNlbnNvcnMtY29uZmlnXzEuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWdfMS4wLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzLWNvbmZpZ18xLjAuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sbV9zZW5zb3JzL2xtc2Vuc29ycy1jb25maWdfMS4wLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzLzAwMDEtbG1zZW5zb3JzLXNlbnNvcnMtZGV0ZWN0LXByaW50LWEtc3BlY2lhbC1tZXNzYWdlLXdoZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sbV9zZW5zb3JzL2xtc2Vuc29ycy8wMDAxLWxtc2Vuc29ycy1zZW5zb3JzLWRldGVjdC1wcmludC1hLXNwZWNpYWwtbWVzc2FnZS13aGUucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbG1fc2Vuc29ycy9sbXNlbnNvcnMvMDAwMS1sbXNlbnNvcnMtc2Vuc29ycy1kZXRlY3QtcHJpbnQtYS1zcGVjaWFsLW1lc3NhZ2Utd2hlLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMvMDAwMS1sbXNlbnNvcnMtc2Vuc29ycy1kZXRlY3QtcHJpbnQtYS1zcGVjaWFsLW1lc3NhZ2Utd2hlLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzLzAwMDEtcHJvZy1Eby1ub3QtbGltaXQtc3lzLWlvLmgtaGVhZGVyLWluY2x1ZGUtdG8tanVzdC1nbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sbV9zZW5zb3JzL2xtc2Vuc29ycy8wMDAxLXByb2ctRG8tbm90LWxpbWl0LXN5cy1pby5oLWhlYWRlci1pbmNsdWRlLXRvLWp1c3QtZ2wucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbG1fc2Vuc29ycy9sbXNlbnNvcnMvMDAwMS1wcm9nLURvLW5vdC1saW1pdC1zeXMtaW8uaC1oZWFkZXItaW5jbHVkZS10by1qdXN0LWdsLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMvMDAwMS1wcm9nLURvLW5vdC1saW1pdC1zeXMtaW8uaC1oZWFkZXItaW5jbHVkZS10by1qdXN0LWdsLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzL2ZhbmNvbnRyb2wuaW5pdCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sbV9zZW5zb3JzL2xtc2Vuc29ycy9mYW5jb250cm9sLmluaXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbG1fc2Vuc29ycy9sbXNlbnNvcnMvZmFuY29udHJvbC5pbml0CnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMvZmFuY29udHJvbC5pbml0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzL3NlbnNvcmQuaW5pdCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWJzcC9sbV9zZW5zb3JzL2xtc2Vuc29ycy9zZW5zb3JkLmluaXQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbG1fc2Vuc29ycy9sbXNlbnNvcnMvc2Vuc29yZC5pbml0CnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnMvc2Vuc29yZC5pbml0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzXzMuNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xtX3NlbnNvcnMvbG1zZW5zb3JzXzMuNC4wLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xtX3NlbnNvcnMvbG1zZW5zb3JzXzMuNC4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ic3AvbG1fc2Vuc29ycy9sbXNlbnNvcnNfMy40LjAuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xzc2NpL2xzc2NzaV8wLjI4LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xzc2NpL2xzc2NzaV8wLjI4LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9sc3NjaS9sc3Njc2lfMC4yOC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtYnNwL2xzc2NpL2xzc2NzaV8wLjI4LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkLzAwMDEtaG9zdGFwZC1Bdm9pZC1rZXktcmVpbnN0YWxsYXRpb24taW4tRlQtaGFuZHNoYWtlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDAxLWhvc3RhcGQtQXZvaWQta2V5LXJlaW5zdGFsbGF0aW9uLWluLUZULWhhbmRzaGFrZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTM1YTNjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDAxLWhvc3RhcGQtQXZvaWQta2V5LXJlaW5zdGFsbGF0aW9uLWluLUZULWhhbmRzaGFrZS5wYXRjaApAQCAtMCwwICsxLDE3NyBAQAorRnJvbSAwNDRhZTM1YzU2OTRjMzlhNGFjYTJhMzM1MDJjYzM4OTdlODhmNzllIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF0aHkgVmFuaG9lZiA8TWF0aHkuVmFuaG9lZkBjcy5rdWxldXZlbi5iZT4KK0RhdGU6IEZyaSwgMTQgSnVsIDIwMTcgMTU6MTU6MzUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzddIGhvc3RhcGQ6IEF2b2lkIGtleSByZWluc3RhbGxhdGlvbiBpbiBGVCBoYW5kc2hha2UKKworRG8gbm90IHJlaW5zdGFsbCBUSyB0byB0aGUgZHJpdmVyIGR1cmluZyBSZWFzc29jaWF0aW9uIFJlc3BvbnNlIGZyYW1lCitwcm9jZXNzaW5nIGlmIHRoZSBmaXJzdCBhdHRlbXB0IG9mIHNldHRpbmcgdGhlIFRLIHN1Y2NlZWRlZC4gVGhpcyBhdm9pZHMKK2lzc3VlcyByZWxhdGVkIHRvIGNsZWFyaW5nIHRoZSBUWC9SWCBQTiB0aGF0IGNvdWxkIHJlc3VsdCBpbiByZXVzaW5nCitzYW1lIFBOIHZhbHVlcyBmb3IgdHJhbnNtaXR0ZWQgZnJhbWVzIChlLmcuLCBkdWUgdG8gQ0NNIG5vbmNlIHJldXNlIGFuZAorYWxzbyBoaXR0aW5nIHJlcGxheSBwcm90ZWN0aW9uIG9uIHRoZSByZWNlaXZlcikgYW5kIGFjY2VwdGluZyByZXBsYXllZAorZnJhbWVzIG9uIFJYIHNpZGUuCisKK1RoaXMgaXNzdWUgd2FzIGludHJvZHVjZWQgYnkgdGhlIGNvbW1pdAorMGU4NGMyNTQzNGU2YTFmMjgzYzdiNGU2MmU0ODM3MjkwODViNzhkMiAoJ0ZUOiBGaXggUFRLIGNvbmZpZ3VyYXRpb24gaW4KK2F1dGhlbnRpY2F0b3InKSB3aGljaCBhbGxvd2VkIHdwYV9mdF9pbnN0YWxsX3B0aygpIHRvIGJlIGNhbGxlZCBtdWx0aXBsZQordGltZXMgd2l0aCB0aGUgc2FtZSBQVEsuIFdoaWxlIHRoZSBzZWNvbmQgY29uZmlndXJhdGlvbiBhdHRlbXB0IGlzCituZWVkZWQgd2l0aCBzb21lIGRyaXZlcnMsIGl0IG11c3QgYmUgZG9uZSBvbmx5IGlmIHRoZSBmaXJzdCBhdHRlbXB0CitmYWlsZWQuCisKK1NpZ25lZC1vZmYtYnk6IE1hdGh5IFZhbmhvZWYgPE1hdGh5LlZhbmhvZWZAY3Mua3VsZXV2ZW4uYmU+CisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKK1NpZ25lZC1vZmYtYnk6IFpoZW5nIFJ1b3FpbiA8emhlbmdycS5mbnN0QGNuLmZ1aml0c3UuY29tPgorLS0tCisgc3JjL2FwL2llZWU4MDJfMTEuYyAgfCAxNiArKysrKysrKysrKysrLS0tCisgc3JjL2FwL3dwYV9hdXRoLmMgICAgfCAxMSArKysrKysrKysrKworIHNyYy9hcC93cGFfYXV0aC5oICAgIHwgIDMgKystCisgc3JjL2FwL3dwYV9hdXRoX2Z0LmMgfCAxMCArKysrKysrKysrCisgc3JjL2FwL3dwYV9hdXRoX2kuaCAgfCAgMSArCisgNSBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2FwL2llZWU4MDJfMTEuYyBiL3NyYy9hcC9pZWVlODAyXzExLmMKK2luZGV4IDRlMDQxNjkuLjMzMzAzNWYgMTAwNjQ0CistLS0gYS9zcmMvYXAvaWVlZTgwMl8xMS5jCisrKysgYi9zcmMvYXAvaWVlZTgwMl8xMS5jCitAQCAtMTg0MSw2ICsxODQxLDcgQEAgc3RhdGljIGludCBhZGRfYXNzb2NpYXRlZF9zdGEoc3RydWN0IGhvc3RhcGRfZGF0YSAqaGFwZCwKKyB7CisgCXN0cnVjdCBpZWVlODAyMTFfaHRfY2FwYWJpbGl0aWVzIGh0X2NhcDsKKyAJc3RydWN0IGllZWU4MDIxMV92aHRfY2FwYWJpbGl0aWVzIHZodF9jYXA7CisrCWludCBzZXQgPSAxOworIAorIAkvKgorIAkgKiBSZW1vdmUgdGhlIFNUQSBlbnRyeSB0byBlbnN1cmUgdGhlIFNUQSBQUyBzdGF0ZSBnZXRzIGNsZWFyZWQgYW5kCitAQCAtMTg0OCw5ICsxODQ5LDE4IEBAIHN0YXRpYyBpbnQgYWRkX2Fzc29jaWF0ZWRfc3RhKHN0cnVjdCBob3N0YXBkX2RhdGEgKmhhcGQsCisgCSAqIEZULW92ZXItdGhlLURTLCB3aGVyZSBhIHN0YXRpb24gcmUtYXNzb2NpYXRlcyBiYWNrIHRvIHRoZSBzYW1lIEFQIGJ1dAorIAkgKiBza2lwcyB0aGUgYXV0aGVudGljYXRpb24gZmxvdywgb3IgaWYgd29ya2luZyB3aXRoIGEgZHJpdmVyIHRoYXQKKyAJICogZG9lcyBub3Qgc3VwcG9ydCBmdWxsIEFQIGNsaWVudCBzdGF0ZS4KKysJICoKKysJICogU2tpcCB0aGlzIGlmIHRoZSBTVEEgaGFzIGFscmVhZHkgY29tcGxldGVkIEZUIHJlYXNzb2NpYXRpb24gYW5kIHRoZQorKwkgKiBUSyBoYXMgYmVlbiBjb25maWd1cmVkIHNpbmNlIHRoZSBUWC9SWCBQTiBtdXN0IG5vdCBiZSByZXNldCB0byAwIGZvcgorKwkgKiB0aGUgc2FtZSBrZXkuCisgCSAqLworLQlpZiAoIXN0YS0+YWRkZWRfdW5hc3NvYykKKysJaWYgKCFzdGEtPmFkZGVkX3VuYXNzb2MgJiYKKysJICAgICghKHN0YS0+ZmxhZ3MgJiBXTEFOX1NUQV9BVVRIT1JJWkVEKSB8fAorKwkgICAgICF3cGFfYXV0aF9zdGFfZnRfdGtfYWxyZWFkeV9zZXQoc3RhLT53cGFfc20pKSkgeworIAkJaG9zdGFwZF9kcnZfc3RhX3JlbW92ZShoYXBkLCBzdGEtPmFkZHIpOworKwkJd3BhX2F1dGhfc21fZXZlbnQoc3RhLT53cGFfc20sIFdQQV9EUlZfU1RBX1JFTU9WRUQpOworKwkJc2V0ID0gMDsKKysJfQorIAorICNpZmRlZiBDT05GSUdfSUVFRTgwMjExTgorIAlpZiAoc3RhLT5mbGFncyAmIFdMQU5fU1RBX0hUKQorQEAgLTE4NzMsMTEgKzE4ODMsMTEgQEAgc3RhdGljIGludCBhZGRfYXNzb2NpYXRlZF9zdGEoc3RydWN0IGhvc3RhcGRfZGF0YSAqaGFwZCwKKyAJCQkgICAgc3RhLT5mbGFncyAmIFdMQU5fU1RBX1ZIVCA/ICZ2aHRfY2FwIDogTlVMTCwKKyAJCQkgICAgc3RhLT5mbGFncyB8IFdMQU5fU1RBX0FTU09DLCBzdGEtPnFvc2luZm8sCisgCQkJICAgIHN0YS0+dmh0X29wbW9kZSwgc3RhLT5wMnBfaWUgPyAxIDogMCwKKy0JCQkgICAgc3RhLT5hZGRlZF91bmFzc29jKSkgeworKwkJCSAgICBzZXQpKSB7CisgCQlob3N0YXBkX2xvZ2dlcihoYXBkLCBzdGEtPmFkZHIsCisgCQkJICAgICAgIEhPU1RBUERfTU9EVUxFX0lFRUU4MDIxMSwgSE9TVEFQRF9MRVZFTF9OT1RJQ0UsCisgCQkJICAgICAgICJDb3VsZCBub3QgJXMgU1RBIHRvIGtlcm5lbCBkcml2ZXIiLAorLQkJCSAgICAgICBzdGEtPmFkZGVkX3VuYXNzb2MgPyAic2V0IiA6ICJhZGQiKTsKKysJCQkgICAgICAgc2V0ID8gInNldCIgOiAiYWRkIik7CisgCisgCQlpZiAoc3RhLT5hZGRlZF91bmFzc29jKSB7CisgCQkJaG9zdGFwZF9kcnZfc3RhX3JlbW92ZShoYXBkLCBzdGEtPmFkZHIpOworZGlmZiAtLWdpdCBhL3NyYy9hcC93cGFfYXV0aC5jIGIvc3JjL2FwL3dwYV9hdXRoLmMKK2luZGV4IDM1ODcwODYuLjcwNzk3MWQgMTAwNjQ0CistLS0gYS9zcmMvYXAvd3BhX2F1dGguYworKysrIGIvc3JjL2FwL3dwYV9hdXRoLmMKK0BAIC0xNzQ1LDYgKzE3NDUsOSBAQCBpbnQgd3BhX2F1dGhfc21fZXZlbnQoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSwgZW51bSB3cGFfZXZlbnQgZXZlbnQpCisgI2Vsc2UgLyogQ09ORklHX0lFRUU4MDIxMVIgKi8KKyAJCWJyZWFrOworICNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExUiAqLworKwljYXNlIFdQQV9EUlZfU1RBX1JFTU9WRUQ6CisrCQlzbS0+dGtfYWxyZWFkeV9zZXQgPSBGQUxTRTsKKysJCXJldHVybiAwOworIAl9CisgCisgI2lmZGVmIENPTkZJR19JRUVFODAyMTFSCitAQCAtMzI1MCw2ICszMjUzLDE0IEBAIGludCB3cGFfYXV0aF9zdGFfd3BhX3ZlcnNpb24oc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSkKKyB9CisgCisgCisraW50IHdwYV9hdXRoX3N0YV9mdF90a19hbHJlYWR5X3NldChzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKQorK3sKKysJaWYgKCFzbSB8fCAhd3BhX2tleV9tZ210X2Z0KHNtLT53cGFfa2V5X21nbXQpKQorKwkJcmV0dXJuIDA7CisrCXJldHVybiBzbS0+dGtfYWxyZWFkeV9zZXQ7CisrfQorKworKworIGludCB3cGFfYXV0aF9zdGFfY2xlYXJfcG1rc2Eoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSwKKyAJCQkgICAgIHN0cnVjdCByc25fcG1rc2FfY2FjaGVfZW50cnkgKmVudHJ5KQorIHsKK2RpZmYgLS1naXQgYS9zcmMvYXAvd3BhX2F1dGguaCBiL3NyYy9hcC93cGFfYXV0aC5oCitpbmRleCAwZGU4ZDk3Li45NzQ2MWIwIDEwMDY0NAorLS0tIGEvc3JjL2FwL3dwYV9hdXRoLmgKKysrKyBiL3NyYy9hcC93cGFfYXV0aC5oCitAQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQgd3BhX3JlY2VpdmUoc3RydWN0IHdwYV9hdXRoZW50aWNhdG9yICp3cGFfYXV0aCwKKyAJCSB1OCAqZGF0YSwgc2l6ZV90IGRhdGFfbGVuKTsKKyBlbnVtIHdwYV9ldmVudCB7CisgCVdQQV9BVVRILCBXUEFfQVNTT0MsIFdQQV9ESVNBU1NPQywgV1BBX0RFQVVUSCwgV1BBX1JFQVVUSCwKKy0JV1BBX1JFQVVUSF9FQVBPTCwgV1BBX0FTU09DX0ZUCisrCVdQQV9SRUFVVEhfRUFQT0wsIFdQQV9BU1NPQ19GVCwgV1BBX0RSVl9TVEFfUkVNT1ZFRAorIH07Cisgdm9pZCB3cGFfcmVtb3ZlX3B0ayhzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKTsKKyBpbnQgd3BhX2F1dGhfc21fZXZlbnQoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSwgZW51bSB3cGFfZXZlbnQgZXZlbnQpOworQEAgLTI4MCw2ICsyODAsNyBAQCBpbnQgd3BhX2F1dGhfcGFpcndpc2Vfc2V0KHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20pOworIGludCB3cGFfYXV0aF9nZXRfcGFpcndpc2Uoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSk7CisgaW50IHdwYV9hdXRoX3N0YV9rZXlfbWdtdChzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKTsKKyBpbnQgd3BhX2F1dGhfc3RhX3dwYV92ZXJzaW9uKHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20pOworK2ludCB3cGFfYXV0aF9zdGFfZnRfdGtfYWxyZWFkeV9zZXQoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSk7CisgaW50IHdwYV9hdXRoX3N0YV9jbGVhcl9wbWtzYShzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtLAorIAkJCSAgICAgc3RydWN0IHJzbl9wbWtzYV9jYWNoZV9lbnRyeSAqZW50cnkpOworIHN0cnVjdCByc25fcG1rc2FfY2FjaGVfZW50cnkgKgorZGlmZiAtLWdpdCBhL3NyYy9hcC93cGFfYXV0aF9mdC5jIGIvc3JjL2FwL3dwYV9hdXRoX2Z0LmMKK2luZGV4IDQyMjQyYTUuLmU2M2I5OWEgMTAwNjQ0CistLS0gYS9zcmMvYXAvd3BhX2F1dGhfZnQuYworKysrIGIvc3JjL2FwL3dwYV9hdXRoX2Z0LmMKK0BAIC03ODAsNiArNzgwLDE0IEBAIHZvaWQgd3BhX2Z0X2luc3RhbGxfcHRrKHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20pCisgCQlyZXR1cm47CisgCX0KKyAKKysJaWYgKHNtLT50a19hbHJlYWR5X3NldCkgeworKwkJLyogTXVzdCBhdm9pZCBUSyByZWNvbmZpZ3VyYXRpb24gdG8gcHJldmVudCBjbGVhcmluZyBvZiBUWC9SWAorKwkJICogUE4gaW4gdGhlIGRyaXZlciAqLworKwkJd3BhX3ByaW50ZihNU0dfREVCVUcsCisrCQkJICAgIkZUOiBEbyBub3QgcmUtaW5zdGFsbCBzYW1lIFBUSyB0byB0aGUgZHJpdmVyIik7CisrCQlyZXR1cm47CisrCX0KKysKKyAJLyogRklYOiBhZGQgU1RBIGVudHJ5IHRvIGtlcm5lbC9kcml2ZXIgaGVyZT8gVGhlIHNldF9rZXkgd2lsbCBmYWlsCisgCSAqIG1vc3QgbGlrZWx5IHdpdGhvdXQgdGhpcy4uIEF0IHRoZSBtb21lbnQsIFNUQSBlbnRyeSBpcyBhZGRlZCBvbmx5CisgCSAqIGFmdGVyIGFzc29jaWF0aW9uIGhhcyBiZWVuIGNvbXBsZXRlZC4gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZAorQEAgLTc5Miw2ICs4MDAsNyBAQCB2b2lkIHdwYV9mdF9pbnN0YWxsX3B0ayhzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKQorIAorIAkvKiBGSVg6IE1MTUUtU2V0UHJvdGVjdGlvbi5SZXF1ZXN0KFRBLCBUeF9SeCkgKi8KKyAJc20tPnBhaXJ3aXNlX3NldCA9IFRSVUU7CisrCXNtLT50a19hbHJlYWR5X3NldCA9IFRSVUU7CisgfQorIAorIAorQEAgLTg5OCw2ICs5MDcsNyBAQCBzdGF0aWMgaW50IHdwYV9mdF9wcm9jZXNzX2F1dGhfcmVxKHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20sCisgCisgCXNtLT5wYWlyd2lzZSA9IHBhaXJ3aXNlOworIAlzbS0+UFRLX3ZhbGlkID0gVFJVRTsKKysJc20tPnRrX2FscmVhZHlfc2V0ID0gRkFMU0U7CisgCXdwYV9mdF9pbnN0YWxsX3B0ayhzbSk7CisgCisgCWJ1ZmxlbiA9IDIgKyBzaXplb2Yoc3RydWN0IHJzbl9tZGllKSArIDIgKyBzaXplb2Yoc3RydWN0IHJzbl9mdGllKSArCitkaWZmIC0tZ2l0IGEvc3JjL2FwL3dwYV9hdXRoX2kuaCBiL3NyYy9hcC93cGFfYXV0aF9pLmgKK2luZGV4IDcyYjdlYjMuLjdmZDhmMDUgMTAwNjQ0CistLS0gYS9zcmMvYXAvd3BhX2F1dGhfaS5oCisrKysgYi9zcmMvYXAvd3BhX2F1dGhfaS5oCitAQCAtNjUsNiArNjUsNyBAQCBzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgeworIAlzdHJ1Y3Qgd3BhX3B0ayBQVEs7CisgCUJvb2xlYW4gUFRLX3ZhbGlkOworIAlCb29sZWFuIHBhaXJ3aXNlX3NldDsKKysJQm9vbGVhbiB0a19hbHJlYWR5X3NldDsKKyAJaW50IGtleWNvdW50OworIAlCb29sZWFuIFBhaXI7CisgCXN0cnVjdCB3cGFfa2V5X3JlcGxheV9jb3VudGVyIHsKKy0tIAorMS44LjMuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkLzAwMDItUHJldmVudC1yZWluc3RhbGxhdGlvbi1vZi1hbi1hbHJlYWR5LWluLXVzZS1ncm91cC1rZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwMi1QcmV2ZW50LXJlaW5zdGFsbGF0aW9uLW9mLWFuLWFscmVhZHktaW4tdXNlLWdyb3VwLWtlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlNTdiY2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkLzAwMDItUHJldmVudC1yZWluc3RhbGxhdGlvbi1vZi1hbi1hbHJlYWR5LWluLXVzZS1ncm91cC1rZS5wYXRjaApAQCAtMCwwICsxLDI1MyBAQAorRnJvbSBjNjIzY2M5NzNkZTUyNWY3NDExZGZmZTQzOGU5NTdiYTg2ZWY0NzMzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF0aHkgVmFuaG9lZiA8TWF0aHkuVmFuaG9lZkBjcy5rdWxldXZlbi5iZT4KK0RhdGU6IFdlZCwgMTIgSnVsIDIwMTcgMTY6MDM6MjQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzddIFByZXZlbnQgcmVpbnN0YWxsYXRpb24gb2YgYW4gYWxyZWFkeSBpbi11c2UgZ3JvdXAga2V5CisKK1RyYWNrIHRoZSBjdXJyZW50IEdUSyBhbmQgSUdUSyB0aGF0IGlzIGluIHVzZSBhbmQgd2hlbiByZWNlaXZpbmcgYQorKHBvc3NpYmx5IHJldHJhbnNtaXR0ZWQpIEdyb3VwIE1lc3NhZ2UgMSBvciBXTk0tU2xlZXAgTW9kZSBSZXNwb25zZSwgZG8KK25vdCBpbnN0YWxsIHRoZSBnaXZlbiBrZXkgaWYgaXQgaXMgYWxyZWFkeSBpbiB1c2UuIFRoaXMgcHJldmVudHMgYW4KK2F0dGFja2VyIGZyb20gdHJ5aW5nIHRvIHRyaWNrIHRoZSBjbGllbnQgaW50byByZXNldHRpbmcgb3IgbG93ZXJpbmcgdGhlCitzZXF1ZW5jZSBjb3VudGVyIGFzc29jaWF0ZWQgdG8gdGhlIGdyb3VwIGtleS4KKworU2lnbmVkLW9mZi1ieTogTWF0aHkgVmFuaG9lZiA8TWF0aHkuVmFuaG9lZkBjcy5rdWxldXZlbi5iZT4KKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAorU2lnbmVkLW9mZi1ieTogWmhlbmcgUnVvcWluIDx6aGVuZ3JxLmZuc3RAY24uZnVqaXRzdS5jb20+CistLS0KKyBzcmMvY29tbW9uL3dwYV9jb21tb24uaCB8ICAxMSArKysrKworIHNyYy9yc25fc3VwcC93cGEuYyAgICAgIHwgMTE2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQorIHNyYy9yc25fc3VwcC93cGFfaS5oICAgIHwgICA0ICsrCisgMyBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vd3BhX2NvbW1vbi5oIGIvc3JjL2NvbW1vbi93cGFfY29tbW9uLmgKK2luZGV4IGFmMWQwZjAuLmQyMDAyODUgMTAwNjQ0CistLS0gYS9zcmMvY29tbW9uL3dwYV9jb21tb24uaAorKysrIGIvc3JjL2NvbW1vbi93cGFfY29tbW9uLmgKK0BAIC0yMTcsNiArMjE3LDE3IEBAIHN0cnVjdCB3cGFfcHRrIHsKKyAJc2l6ZV90IHRrX2xlbjsKKyB9OworIAorK3N0cnVjdCB3cGFfZ3RrIHsKKysJdTggZ3RrW1dQQV9HVEtfTUFYX0xFTl07CisrCXNpemVfdCBndGtfbGVuOworK307CisrCisrI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCisrc3RydWN0IHdwYV9pZ3RrIHsKKysJdTggaWd0a1tXUEFfSUdUS19NQVhfTEVOXTsKKysJc2l6ZV90IGlndGtfbGVuOworK307CisrI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCisgCisgLyogV1BBIElFIHZlcnNpb24gMQorICAqIDAwLTUwLWYyOjEgKE9VSTpPVUkgdHlwZSkKK2RpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvd3BhLmMgYi9zcmMvcnNuX3N1cHAvd3BhLmMKK2luZGV4IDNjNDc4NzkuLjk1YmQ3YmUgMTAwNjQ0CistLS0gYS9zcmMvcnNuX3N1cHAvd3BhLmMKKysrKyBiL3NyYy9yc25fc3VwcC93cGEuYworQEAgLTcxNCw2ICs3MTQsMTUgQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKKyAJY29uc3QgdTggKl9ndGsgPSBnZC0+Z3RrOworIAl1OCBndGtfYnVmWzMyXTsKKyAKKysJLyogRGV0ZWN0IHBvc3NpYmxlIGtleSByZWluc3RhbGxhdGlvbiAqLworKwlpZiAoc20tPmd0ay5ndGtfbGVuID09IChzaXplX3QpIGdkLT5ndGtfbGVuICYmCisrCSAgICBvc19tZW1jbXAoc20tPmd0ay5ndGssIGdkLT5ndGssIHNtLT5ndGsuZ3RrX2xlbikgPT0gMCkgeworKwkJd3BhX2RiZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfREVCVUcsCisrCQkJIldQQTogTm90IHJlaW5zdGFsbGluZyBhbHJlYWR5IGluLXVzZSBHVEsgdG8gdGhlIGRyaXZlciAoa2V5aWR4PSVkIHR4PSVkIGxlbj0lZCkiLAorKwkJCWdkLT5rZXlpZHgsIGdkLT50eCwgZ2QtPmd0a19sZW4pOworKwkJcmV0dXJuIDA7CisrCX0KKysKKyAJd3BhX2hleGR1bXBfa2V5KE1TR19ERUJVRywgIldQQTogR3JvdXAgS2V5IiwgZ2QtPmd0aywgZ2QtPmd0a19sZW4pOworIAl3cGFfZGJnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19ERUJVRywKKyAJCSJXUEE6IEluc3RhbGxpbmcgR1RLIHRvIHRoZSBkcml2ZXIgKGtleWlkeD0lZCB0eD0lZCBsZW49JWQpIiwKK0BAIC03NDgsNiArNzU3LDkgQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKKyAJfQorIAlvc19tZW1zZXQoZ3RrX2J1ZiwgMCwgc2l6ZW9mKGd0a19idWYpKTsKKyAKKysJc20tPmd0ay5ndGtfbGVuID0gZ2QtPmd0a19sZW47CisrCW9zX21lbWNweShzbS0+Z3RrLmd0aywgZ2QtPmd0aywgc20tPmd0ay5ndGtfbGVuKTsKKysKKyAJcmV0dXJuIDA7CisgfQorIAorQEAgLTg1NCw2ICs4NjYsNDggQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9wYWlyd2lzZV9ndGsoc3RydWN0IHdwYV9zbSAqc20sCisgfQorIAorIAorKyNpZmRlZiBDT05GSUdfSUVFRTgwMjExVworK3N0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9pZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAorKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqaWd0aykKKyt7CisrCXNpemVfdCBsZW4gPSB3cGFfY2lwaGVyX2tleV9sZW4oc20tPm1nbXRfZ3JvdXBfY2lwaGVyKTsKKysJdTE2IGtleWlkeCA9IFdQQV9HRVRfTEUxNihpZ3RrLT5rZXlpZCk7CisrCisrCS8qIERldGVjdCBwb3NzaWJsZSBrZXkgcmVpbnN0YWxsYXRpb24gKi8KKysJaWYgKHNtLT5pZ3RrLmlndGtfbGVuID09IGxlbiAmJgorKwkgICAgb3NfbWVtY21wKHNtLT5pZ3RrLmlndGssIGlndGstPmlndGssIHNtLT5pZ3RrLmlndGtfbGVuKSA9PSAwKSB7CisrCQl3cGFfZGJnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19ERUJVRywKKysJCQkiV1BBOiBOb3QgcmVpbnN0YWxsaW5nIGFscmVhZHkgaW4tdXNlIElHVEsgdG8gdGhlIGRyaXZlciAoa2V5aWR4PSVkKSIsCisrCQkJa2V5aWR4KTsKKysJCXJldHVybiAgMDsKKysJfQorKworKwl3cGFfZGJnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19ERUJVRywKKysJCSJXUEE6IElHVEsga2V5aWQgJWQgcG4gJTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4IiwKKysJCWtleWlkeCwgTUFDMlNUUihpZ3RrLT5wbikpOworKwl3cGFfaGV4ZHVtcF9rZXkoTVNHX0RFQlVHLCAiV1BBOiBJR1RLIiwgaWd0ay0+aWd0aywgbGVuKTsKKysJaWYgKGtleWlkeCA+IDQwOTUpIHsKKysJCXdwYV9tc2coc20tPmN0eC0+bXNnX2N0eCwgTVNHX1dBUk5JTkcsCisrCQkJIldQQTogSW52YWxpZCBJR1RLIEtleUlEICVkIiwga2V5aWR4KTsKKysJCXJldHVybiAtMTsKKysJfQorKwlpZiAod3BhX3NtX3NldF9rZXkoc20sIHdwYV9jaXBoZXJfdG9fYWxnKHNtLT5tZ210X2dyb3VwX2NpcGhlciksCisrCQkJICAgYnJvYWRjYXN0X2V0aGVyX2FkZHIsCisrCQkJICAga2V5aWR4LCAwLCBpZ3RrLT5wbiwgc2l6ZW9mKGlndGstPnBuKSwKKysJCQkgICBpZ3RrLT5pZ3RrLCBsZW4pIDwgMCkgeworKwkJd3BhX21zZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfV0FSTklORywKKysJCQkiV1BBOiBGYWlsZWQgdG8gY29uZmlndXJlIElHVEsgdG8gdGhlIGRyaXZlciIpOworKwkJcmV0dXJuIC0xOworKwl9CisrCisrCXNtLT5pZ3RrLmlndGtfbGVuID0gbGVuOworKwlvc19tZW1jcHkoc20tPmlndGsuaWd0aywgaWd0ay0+aWd0aywgc20tPmlndGsuaWd0a19sZW4pOworKworKwlyZXR1cm4gMDsKKyt9CisrI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCisrCisrCisgc3RhdGljIGludCBpZWVlODAyMTF3X3NldF9rZXlzKHN0cnVjdCB3cGFfc20gKnNtLAorIAkJCSAgICAgICBzdHJ1Y3Qgd3BhX2VhcG9sX2llX3BhcnNlICppZSkKKyB7CitAQCAtODY0LDMwICs5MTgsMTQgQEAgc3RhdGljIGludCBpZWVlODAyMTF3X3NldF9rZXlzKHN0cnVjdCB3cGFfc20gKnNtLAorIAlpZiAoaWUtPmlndGspIHsKKyAJCXNpemVfdCBsZW47CisgCQljb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICppZ3RrOworLQkJdTE2IGtleWlkeDsKKysKKyAJCWxlbiA9IHdwYV9jaXBoZXJfa2V5X2xlbihzbS0+bWdtdF9ncm91cF9jaXBoZXIpOworIAkJaWYgKGllLT5pZ3RrX2xlbiAhPSBXUEFfSUdUS19LREVfUFJFRklYX0xFTiArIGxlbikKKyAJCQlyZXR1cm4gLTE7CisrCisgCQlpZ3RrID0gKGNvbnN0IHN0cnVjdCB3cGFfaWd0a19rZGUgKikgaWUtPmlndGs7CistCQlrZXlpZHggPSBXUEFfR0VUX0xFMTYoaWd0ay0+a2V5aWQpOworLQkJd3BhX2RiZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfREVCVUcsICJXUEE6IElHVEsga2V5aWQgJWQgIgorLQkJCSJwbiAlMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMngiLAorLQkJCWtleWlkeCwgTUFDMlNUUihpZ3RrLT5wbikpOworLQkJd3BhX2hleGR1bXBfa2V5KE1TR19ERUJVRywgIldQQTogSUdUSyIsCistCQkJCWlndGstPmlndGssIGxlbik7CistCQlpZiAoa2V5aWR4ID4gNDA5NSkgeworLQkJCXdwYV9tc2coc20tPmN0eC0+bXNnX2N0eCwgTVNHX1dBUk5JTkcsCistCQkJCSJXUEE6IEludmFsaWQgSUdUSyBLZXlJRCAlZCIsIGtleWlkeCk7CistCQkJcmV0dXJuIC0xOworLQkJfQorLQkJaWYgKHdwYV9zbV9zZXRfa2V5KHNtLCB3cGFfY2lwaGVyX3RvX2FsZyhzbS0+bWdtdF9ncm91cF9jaXBoZXIpLAorLQkJCQkgICBicm9hZGNhc3RfZXRoZXJfYWRkciwKKy0JCQkJICAga2V5aWR4LCAwLCBpZ3RrLT5wbiwgc2l6ZW9mKGlndGstPnBuKSwKKy0JCQkJICAgaWd0ay0+aWd0aywgbGVuKSA8IDApIHsKKy0JCQl3cGFfbXNnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19XQVJOSU5HLAorLQkJCQkiV1BBOiBGYWlsZWQgdG8gY29uZmlndXJlIElHVEsgdG8gdGhlIGRyaXZlciIpOworKwkJaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfaWd0ayhzbSwgaWd0aykgPCAwKQorIAkJCXJldHVybiAtMTsKKy0JCX0KKyAJfQorIAorIAlyZXR1cm4gMDsKK0BAIC0yMzA3LDcgKzIzNDUsNyBAQCB2b2lkIHdwYV9zbV9kZWluaXQoc3RydWN0IHdwYV9zbSAqc20pCisgICovCisgdm9pZCB3cGFfc21fbm90aWZ5X2Fzc29jKHN0cnVjdCB3cGFfc20gKnNtLCBjb25zdCB1OCAqYnNzaWQpCisgeworLQlpbnQgY2xlYXJfcHRrID0gMTsKKysJaW50IGNsZWFyX2tleXMgPSAxOworIAorIAlpZiAoc20gPT0gTlVMTCkKKyAJCXJldHVybjsKK0BAIC0yMzMzLDExICsyMzcxLDExIEBAIHZvaWQgd3BhX3NtX25vdGlmeV9hc3NvYyhzdHJ1Y3Qgd3BhX3NtICpzbSwgY29uc3QgdTggKmJzc2lkKQorIAkJLyogUHJlcGFyZSBmb3IgdGhlIG5leHQgdHJhbnNpdGlvbiAqLworIAkJd3BhX2Z0X3ByZXBhcmVfYXV0aF9yZXF1ZXN0KHNtLCBOVUxMKTsKKyAKKy0JCWNsZWFyX3B0ayA9IDA7CisrCQljbGVhcl9rZXlzID0gMDsKKyAJfQorICNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExUiAqLworIAorLQlpZiAoY2xlYXJfcHRrKSB7CisrCWlmIChjbGVhcl9rZXlzKSB7CisgCQkvKgorIAkJICogSUVFRSA4MDIuMTEsIDguNC4xMDogRGVsZXRlIFBUSyBTQSBvbiAocmUpYXNzb2NpYXRpb24gaWYKKyAJCSAqIHRoaXMgaXMgbm90IHBhcnQgb2YgYSBGYXN0IEJTUyBUcmFuc2l0aW9uLgorQEAgLTIzNDcsNiArMjM4NSwxMCBAQCB2b2lkIHdwYV9zbV9ub3RpZnlfYXNzb2Moc3RydWN0IHdwYV9zbSAqc20sIGNvbnN0IHU4ICpic3NpZCkKKyAJCW9zX21lbXNldCgmc20tPnB0aywgMCwgc2l6ZW9mKHNtLT5wdGspKTsKKyAJCXNtLT50cHRrX3NldCA9IDA7CisgCQlvc19tZW1zZXQoJnNtLT50cHRrLCAwLCBzaXplb2Yoc20tPnRwdGspKTsKKysJCW9zX21lbXNldCgmc20tPmd0aywgMCwgc2l6ZW9mKHNtLT5ndGspKTsKKysjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVcKKysJCW9zX21lbXNldCgmc20tPmlndGssIDAsIHNpemVvZihzbS0+aWd0aykpOworKyNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLworIAl9CisgCisgI2lmZGVmIENPTkZJR19URExTCitAQCAtMjg3Nyw2ICsyOTE5LDEwIEBAIHZvaWQgd3BhX3NtX2Ryb3Bfc2Eoc3RydWN0IHdwYV9zbSAqc20pCisgCW9zX21lbXNldChzbS0+cG1rLCAwLCBzaXplb2Yoc20tPnBtaykpOworIAlvc19tZW1zZXQoJnNtLT5wdGssIDAsIHNpemVvZihzbS0+cHRrKSk7CisgCW9zX21lbXNldCgmc20tPnRwdGssIDAsIHNpemVvZihzbS0+dHB0aykpOworKwlvc19tZW1zZXQoJnNtLT5ndGssIDAsIHNpemVvZihzbS0+Z3RrKSk7CisrI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCisrCW9zX21lbXNldCgmc20tPmlndGssIDAsIHNpemVvZihzbS0+aWd0aykpOworKyNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLworICNpZmRlZiBDT05GSUdfSUVFRTgwMjExUgorIAlvc19tZW1zZXQoc20tPnh4a2V5LCAwLCBzaXplb2Yoc20tPnh4a2V5KSk7CisgCW9zX21lbXNldChzbS0+cG1rX3IwLCAwLCBzaXplb2Yoc20tPnBta19yMCkpOworQEAgLTI5NDksMjkgKzI5OTUsMTEgQEAgaW50IHdwYV93bm1zbGVlcF9pbnN0YWxsX2tleShzdHJ1Y3Qgd3BhX3NtICpzbSwgdTggc3ViZWxlbV9pZCwgdTggKmJ1ZikKKyAJCW9zX21lbXNldCgmZ2QsIDAsIHNpemVvZihnZCkpOworICNpZmRlZiBDT05GSUdfSUVFRTgwMjExVworIAl9IGVsc2UgaWYgKHN1YmVsZW1faWQgPT0gV05NX1NMRUVQX1NVQkVMRU1fSUdUSykgeworLQkJc3RydWN0IHdwYV9pZ3RrX2tkZSBpZ2Q7CistCQl1MTYga2V5aWR4OworLQorLQkJb3NfbWVtc2V0KCZpZ2QsIDAsIHNpemVvZihpZ2QpKTsKKy0JCWtleWxlbiA9IHdwYV9jaXBoZXJfa2V5X2xlbihzbS0+bWdtdF9ncm91cF9jaXBoZXIpOworLQkJb3NfbWVtY3B5KGlnZC5rZXlpZCwgYnVmICsgMiwgMik7CistCQlvc19tZW1jcHkoaWdkLnBuLCBidWYgKyA0LCA2KTsKKy0KKy0JCWtleWlkeCA9IFdQQV9HRVRfTEUxNihpZ2Qua2V5aWQpOworLQkJb3NfbWVtY3B5KGlnZC5pZ3RrLCBidWYgKyAxMCwga2V5bGVuKTsKKy0KKy0JCXdwYV9oZXhkdW1wX2tleShNU0dfREVCVUcsICJJbnN0YWxsIElHVEsgKFdOTSBTTEVFUCkiLAorLQkJCQlpZ2QuaWd0aywga2V5bGVuKTsKKy0JCWlmICh3cGFfc21fc2V0X2tleShzbSwgd3BhX2NpcGhlcl90b19hbGcoc20tPm1nbXRfZ3JvdXBfY2lwaGVyKSwKKy0JCQkJICAgYnJvYWRjYXN0X2V0aGVyX2FkZHIsCistCQkJCSAgIGtleWlkeCwgMCwgaWdkLnBuLCBzaXplb2YoaWdkLnBuKSwKKy0JCQkJICAgaWdkLmlndGssIGtleWxlbikgPCAwKSB7CistCQkJd3BhX3ByaW50ZihNU0dfREVCVUcsICJGYWlsZWQgdG8gaW5zdGFsbCB0aGUgSUdUSyBpbiAiCistCQkJCSAgICJXTk0gbW9kZSIpOworLQkJCW9zX21lbXNldCgmaWdkLCAwLCBzaXplb2YoaWdkKSk7CisrCQljb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICppZ3RrOworKworKwkJaWd0ayA9IChjb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICopIChidWYgKyAyKTsKKysJCWlmICh3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2lndGsoc20sIGlndGspIDwgMCkKKyAJCQlyZXR1cm4gLTE7CistCQl9CistCQlvc19tZW1zZXQoJmlnZCwgMCwgc2l6ZW9mKGlnZCkpOworICNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLworIAl9IGVsc2UgeworIAkJd3BhX3ByaW50ZihNU0dfREVCVUcsICJVbmtub3duIGVsZW1lbnQgaWQiKTsKK2RpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvd3BhX2kuaCBiL3NyYy9yc25fc3VwcC93cGFfaS5oCitpbmRleCBmNjUzYmE2Li5hZmM5ZTM3IDEwMDY0NAorLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKKysrKyBiL3NyYy9yc25fc3VwcC93cGFfaS5oCitAQCAtMzEsNiArMzEsMTAgQEAgc3RydWN0IHdwYV9zbSB7CisgCXU4IHJ4X3JlcGxheV9jb3VudGVyW1dQQV9SRVBMQVlfQ09VTlRFUl9MRU5dOworIAlpbnQgcnhfcmVwbGF5X2NvdW50ZXJfc2V0OworIAl1OCByZXF1ZXN0X2NvdW50ZXJbV1BBX1JFUExBWV9DT1VOVEVSX0xFTl07CisrCXN0cnVjdCB3cGFfZ3RrIGd0azsKKysjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVcKKysJc3RydWN0IHdwYV9pZ3RrIGlndGs7CisrI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCisgCisgCXN0cnVjdCBlYXBvbF9zbSAqZWFwb2w7IC8qIEVBUE9MIHN0YXRlIG1hY2hpbmUgZnJvbSB1cHBlciBsZXZlbCBjb2RlICovCisgCistLSAKKzEuOC4zLjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDAzLUV4dGVuZC1wcm90ZWN0aW9uLW9mLUdUSy1JR1RLLXJlaW5zdGFsbGF0aW9uLW9mLVdOTS0ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkLzAwMDMtRXh0ZW5kLXByb3RlY3Rpb24tb2YtR1RLLUlHVEstcmVpbnN0YWxsYXRpb24tb2YtV05NLS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzliYmY2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDAzLUV4dGVuZC1wcm90ZWN0aW9uLW9mLUdUSy1JR1RLLXJlaW5zdGFsbGF0aW9uLW9mLVdOTS0ucGF0Y2gKQEAgLTAsMCArMSwxODcgQEAKK0Zyb20gYTZjYWFiODA2MGFiNjA4NzZlMjMzMzA2ZjVjNTg2NDUxMTY5ZWJhMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEpvdW5pIE1hbGluZW4gPGpAdzEuZmk+CitEYXRlOiBTdW4sIDEgT2N0IDIwMTcgMTI6MTI6MjQgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCAzLzddIEV4dGVuZCBwcm90ZWN0aW9uIG9mIEdUSy9JR1RLIHJlaW5zdGFsbGF0aW9uIG9mIFdOTS1TbGVlcAorIE1vZGUgY2FzZXMKKworVGhpcyBleHRlbmRzIHRoZSBwcm90ZWN0aW9uIHRvIHRyYWNrIGxhc3QgY29uZmlndXJlZCBHVEsvSUdUSyB2YWx1ZQorc2VwYXJhdGVseSBmcm9tIEVBUE9MLUtleSBmcmFtZXMgYW5kIFdOTS1TbGVlcCBNb2RlIGZyYW1lcyB0byBjb3ZlciBhCitjb3JuZXIgY2FzZSB3aGVyZSB0aGVzZSB0d28gZGlmZmVyZW50IG1lY2hhbmlzbXMgbWF5IGdldCB1c2VkIHdoZW4gdGhlCitHVEsvSUdUSyBoYXMgY2hhbmdlZCBhbmQgdHJhY2tpbmcgYSBzaW5nbGUgdmFsdWUgaXMgbm90IHN1ZmZpY2llbnQgdG8KK2RldGVjdCBhIHBvc3NpYmxlIGtleSByZWNvbmZpZ3VyYXRpb24uCisKK1NpZ25lZC1vZmYtYnk6IEpvdW5pIE1hbGluZW4gPGpAdzEuZmk+CisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKK1NpZ25lZC1vZmYtYnk6IFpoZW5nIFJ1b3FpbiA8emhlbmdycS5mbnN0QGNuLmZ1aml0c3UuY29tPgorLS0tCisgc3JjL3Jzbl9zdXBwL3dwYS5jICAgfCA1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCisgc3JjL3Jzbl9zdXBwL3dwYV9pLmggfCAgMiArKworIDIgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvd3BhLmMgYi9zcmMvcnNuX3N1cHAvd3BhLmMKK2luZGV4IDk1YmQ3YmUuLjdhMmM2OGQgMTAwNjQ0CistLS0gYS9zcmMvcnNuX3N1cHAvd3BhLmMKKysrKyBiL3NyYy9yc25fc3VwcC93cGEuYworQEAgLTcwOSwxNCArNzA5LDE3IEBAIHN0cnVjdCB3cGFfZ3RrX2RhdGEgeworIAorIHN0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9ndGsoc3RydWN0IHdwYV9zbSAqc20sCisgCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB3cGFfZ3RrX2RhdGEgKmdkLAorLQkJCQkgICAgICBjb25zdCB1OCAqa2V5X3JzYykKKysJCQkJICAgICAgY29uc3QgdTggKmtleV9yc2MsIGludCB3bm1fc2xlZXApCisgeworIAljb25zdCB1OCAqX2d0ayA9IGdkLT5ndGs7CisgCXU4IGd0a19idWZbMzJdOworIAorIAkvKiBEZXRlY3QgcG9zc2libGUga2V5IHJlaW5zdGFsbGF0aW9uICovCistCWlmIChzbS0+Z3RrLmd0a19sZW4gPT0gKHNpemVfdCkgZ2QtPmd0a19sZW4gJiYKKy0JICAgIG9zX21lbWNtcChzbS0+Z3RrLmd0aywgZ2QtPmd0aywgc20tPmd0ay5ndGtfbGVuKSA9PSAwKSB7CisrCWlmICgoc20tPmd0ay5ndGtfbGVuID09IChzaXplX3QpIGdkLT5ndGtfbGVuICYmCisrCSAgICAgb3NfbWVtY21wKHNtLT5ndGsuZ3RrLCBnZC0+Z3RrLCBzbS0+Z3RrLmd0a19sZW4pID09IDApIHx8CisrCSAgICAoc20tPmd0a193bm1fc2xlZXAuZ3RrX2xlbiA9PSAoc2l6ZV90KSBnZC0+Z3RrX2xlbiAmJgorKwkgICAgIG9zX21lbWNtcChzbS0+Z3RrX3dubV9zbGVlcC5ndGssIGdkLT5ndGssCisrCQkgICAgICAgc20tPmd0a193bm1fc2xlZXAuZ3RrX2xlbikgPT0gMCkpIHsKKyAJCXdwYV9kYmcoc20tPmN0eC0+bXNnX2N0eCwgTVNHX0RFQlVHLAorIAkJCSJXUEE6IE5vdCByZWluc3RhbGxpbmcgYWxyZWFkeSBpbi11c2UgR1RLIHRvIHRoZSBkcml2ZXIgKGtleWlkeD0lZCB0eD0lZCBsZW49JWQpIiwKKyAJCQlnZC0+a2V5aWR4LCBnZC0+dHgsIGdkLT5ndGtfbGVuKTsKK0BAIC03NTcsOCArNzYwLDE0IEBAIHN0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9ndGsoc3RydWN0IHdwYV9zbSAqc20sCisgCX0KKyAJb3NfbWVtc2V0KGd0a19idWYsIDAsIHNpemVvZihndGtfYnVmKSk7CisgCistCXNtLT5ndGsuZ3RrX2xlbiA9IGdkLT5ndGtfbGVuOworLQlvc19tZW1jcHkoc20tPmd0ay5ndGssIGdkLT5ndGssIHNtLT5ndGsuZ3RrX2xlbik7CisrCWlmICh3bm1fc2xlZXApIHsKKysJCXNtLT5ndGtfd25tX3NsZWVwLmd0a19sZW4gPSBnZC0+Z3RrX2xlbjsKKysJCW9zX21lbWNweShzbS0+Z3RrX3dubV9zbGVlcC5ndGssIGdkLT5ndGssCisrCQkJICBzbS0+Z3RrX3dubV9zbGVlcC5ndGtfbGVuKTsKKysJfSBlbHNlIHsKKysJCXNtLT5ndGsuZ3RrX2xlbiA9IGdkLT5ndGtfbGVuOworKwkJb3NfbWVtY3B5KHNtLT5ndGsuZ3RrLCBnZC0+Z3RrLCBzbS0+Z3RrLmd0a19sZW4pOworKwl9CisgCisgCXJldHVybiAwOworIH0KK0BAIC04NTIsNyArODYxLDcgQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9wYWlyd2lzZV9ndGsoc3RydWN0IHdwYV9zbSAqc20sCisgCSAgICAod3BhX3N1cHBsaWNhbnRfY2hlY2tfZ3JvdXBfY2lwaGVyKHNtLCBzbS0+Z3JvdXBfY2lwaGVyLAorIAkJCQkJICAgICAgIGd0a19sZW4sIGd0a19sZW4sCisgCQkJCQkgICAgICAgJmdkLmtleV9yc2NfbGVuLCAmZ2QuYWxnKSB8fAorLQkgICAgIHdwYV9zdXBwbGljYW50X2luc3RhbGxfZ3RrKHNtLCAmZ2QsIGtleV9yc2MpKSkgeworKwkgICAgIHdwYV9zdXBwbGljYW50X2luc3RhbGxfZ3RrKHNtLCAmZ2QsIGtleV9yc2MsIDApKSkgeworIAkJd3BhX2RiZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfREVCVUcsCisgCQkJIlJTTjogRmFpbGVkIHRvIGluc3RhbGwgR1RLIik7CisgCQlvc19tZW1zZXQoJmdkLCAwLCBzaXplb2YoZ2QpKTsKK0BAIC04NjgsMTQgKzg3NywxOCBAQCBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X3BhaXJ3aXNlX2d0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKKyAKKyAjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVcKKyBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X2luc3RhbGxfaWd0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKKy0JCQkJICAgICAgIGNvbnN0IHN0cnVjdCB3cGFfaWd0a19rZGUgKmlndGspCisrCQkJCSAgICAgICBjb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICppZ3RrLAorKwkJCQkgICAgICAgaW50IHdubV9zbGVlcCkKKyB7CisgCXNpemVfdCBsZW4gPSB3cGFfY2lwaGVyX2tleV9sZW4oc20tPm1nbXRfZ3JvdXBfY2lwaGVyKTsKKyAJdTE2IGtleWlkeCA9IFdQQV9HRVRfTEUxNihpZ3RrLT5rZXlpZCk7CisgCisgCS8qIERldGVjdCBwb3NzaWJsZSBrZXkgcmVpbnN0YWxsYXRpb24gKi8KKy0JaWYgKHNtLT5pZ3RrLmlndGtfbGVuID09IGxlbiAmJgorLQkgICAgb3NfbWVtY21wKHNtLT5pZ3RrLmlndGssIGlndGstPmlndGssIHNtLT5pZ3RrLmlndGtfbGVuKSA9PSAwKSB7CisrCWlmICgoc20tPmlndGsuaWd0a19sZW4gPT0gbGVuICYmCisrCSAgICAgb3NfbWVtY21wKHNtLT5pZ3RrLmlndGssIGlndGstPmlndGssIHNtLT5pZ3RrLmlndGtfbGVuKSA9PSAwKSB8fAorKwkgICAgKHNtLT5pZ3RrX3dubV9zbGVlcC5pZ3RrX2xlbiA9PSBsZW4gJiYKKysJICAgICBvc19tZW1jbXAoc20tPmlndGtfd25tX3NsZWVwLmlndGssIGlndGstPmlndGssCisrCQkgICAgICAgc20tPmlndGtfd25tX3NsZWVwLmlndGtfbGVuKSA9PSAwKSkgeworIAkJd3BhX2RiZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfREVCVUcsCisgCQkJIldQQTogTm90IHJlaW5zdGFsbGluZyBhbHJlYWR5IGluLXVzZSBJR1RLIHRvIHRoZSBkcml2ZXIgKGtleWlkeD0lZCkiLAorIAkJCWtleWlkeCk7CitAQCAtOTAwLDggKzkxMywxNCBAQCBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X2luc3RhbGxfaWd0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKKyAJCXJldHVybiAtMTsKKyAJfQorIAorLQlzbS0+aWd0ay5pZ3RrX2xlbiA9IGxlbjsKKy0Jb3NfbWVtY3B5KHNtLT5pZ3RrLmlndGssIGlndGstPmlndGssIHNtLT5pZ3RrLmlndGtfbGVuKTsKKysJaWYgKHdubV9zbGVlcCkgeworKwkJc20tPmlndGtfd25tX3NsZWVwLmlndGtfbGVuID0gbGVuOworKwkJb3NfbWVtY3B5KHNtLT5pZ3RrX3dubV9zbGVlcC5pZ3RrLCBpZ3RrLT5pZ3RrLAorKwkJCSAgc20tPmlndGtfd25tX3NsZWVwLmlndGtfbGVuKTsKKysJfSBlbHNlIHsKKysJCXNtLT5pZ3RrLmlndGtfbGVuID0gbGVuOworKwkJb3NfbWVtY3B5KHNtLT5pZ3RrLmlndGssIGlndGstPmlndGssIHNtLT5pZ3RrLmlndGtfbGVuKTsKKysJfQorIAorIAlyZXR1cm4gMDsKKyB9CitAQCAtOTI0LDcgKzk0Myw3IEBAIHN0YXRpYyBpbnQgaWVlZTgwMjExd19zZXRfa2V5cyhzdHJ1Y3Qgd3BhX3NtICpzbSwKKyAJCQlyZXR1cm4gLTE7CisgCisgCQlpZ3RrID0gKGNvbnN0IHN0cnVjdCB3cGFfaWd0a19rZGUgKikgaWUtPmlndGs7CistCQlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9pZ3RrKHNtLCBpZ3RrKSA8IDApCisrCQlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9pZ3RrKHNtLCBpZ3RrLCAwKSA8IDApCisgCQkJcmV0dXJuIC0xOworIAl9CisgCitAQCAtMTU3NCw3ICsxNTkzLDcgQEAgc3RhdGljIHZvaWQgd3BhX3N1cHBsaWNhbnRfcHJvY2Vzc18xX29mXzIoc3RydWN0IHdwYV9zbSAqc20sCisgCWlmICh3cGFfc3VwcGxpY2FudF9yc2NfcmVsYXhhdGlvbihzbSwga2V5LT5rZXlfcnNjKSkKKyAJCWtleV9yc2MgPSBudWxsX3JzYzsKKyAKKy0JaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfZ3RrKHNtLCAmZ2QsIGtleV9yc2MpIHx8CisrCWlmICh3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzbSwgJmdkLCBrZXlfcnNjLCAwKSB8fAorIAkgICAgd3BhX3N1cHBsaWNhbnRfc2VuZF8yX29mXzIoc20sIGtleSwgdmVyLCBrZXlfaW5mbykgPCAwKQorIAkJZ290byBmYWlsZWQ7CisgCW9zX21lbXNldCgmZ2QsIDAsIHNpemVvZihnZCkpOworQEAgLTIzODYsOCArMjQwNSwxMCBAQCB2b2lkIHdwYV9zbV9ub3RpZnlfYXNzb2Moc3RydWN0IHdwYV9zbSAqc20sIGNvbnN0IHU4ICpic3NpZCkKKyAJCXNtLT50cHRrX3NldCA9IDA7CisgCQlvc19tZW1zZXQoJnNtLT50cHRrLCAwLCBzaXplb2Yoc20tPnRwdGspKTsKKyAJCW9zX21lbXNldCgmc20tPmd0aywgMCwgc2l6ZW9mKHNtLT5ndGspKTsKKysJCW9zX21lbXNldCgmc20tPmd0a193bm1fc2xlZXAsIDAsIHNpemVvZihzbS0+Z3RrX3dubV9zbGVlcCkpOworICNpZmRlZiBDT05GSUdfSUVFRTgwMjExVworIAkJb3NfbWVtc2V0KCZzbS0+aWd0aywgMCwgc2l6ZW9mKHNtLT5pZ3RrKSk7CisrCQlvc19tZW1zZXQoJnNtLT5pZ3RrX3dubV9zbGVlcCwgMCwgc2l6ZW9mKHNtLT5pZ3RrX3dubV9zbGVlcCkpOworICNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLworIAl9CisgCitAQCAtMjkyMCw4ICsyOTQxLDEwIEBAIHZvaWQgd3BhX3NtX2Ryb3Bfc2Eoc3RydWN0IHdwYV9zbSAqc20pCisgCW9zX21lbXNldCgmc20tPnB0aywgMCwgc2l6ZW9mKHNtLT5wdGspKTsKKyAJb3NfbWVtc2V0KCZzbS0+dHB0aywgMCwgc2l6ZW9mKHNtLT50cHRrKSk7CisgCW9zX21lbXNldCgmc20tPmd0aywgMCwgc2l6ZW9mKHNtLT5ndGspKTsKKysJb3NfbWVtc2V0KCZzbS0+Z3RrX3dubV9zbGVlcCwgMCwgc2l6ZW9mKHNtLT5ndGtfd25tX3NsZWVwKSk7CisgI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCisgCW9zX21lbXNldCgmc20tPmlndGssIDAsIHNpemVvZihzbS0+aWd0aykpOworKwlvc19tZW1zZXQoJnNtLT5pZ3RrX3dubV9zbGVlcCwgMCwgc2l6ZW9mKHNtLT5pZ3RrX3dubV9zbGVlcCkpOworICNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLworICNpZmRlZiBDT05GSUdfSUVFRTgwMjExUgorIAlvc19tZW1zZXQoc20tPnh4a2V5LCAwLCBzaXplb2Yoc20tPnh4a2V5KSk7CitAQCAtMjk4Niw3ICszMDA5LDcgQEAgaW50IHdwYV93bm1zbGVlcF9pbnN0YWxsX2tleShzdHJ1Y3Qgd3BhX3NtICpzbSwgdTggc3ViZWxlbV9pZCwgdTggKmJ1ZikKKyAKKyAJCXdwYV9oZXhkdW1wX2tleShNU0dfREVCVUcsICJJbnN0YWxsIEdUSyAoV05NIFNMRUVQKSIsCisgCQkJCWdkLmd0aywgZ2QuZ3RrX2xlbik7CistCQlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9ndGsoc20sICZnZCwga2V5X3JzYykpIHsKKysJCWlmICh3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzbSwgJmdkLCBrZXlfcnNjLCAxKSkgeworIAkJCW9zX21lbXNldCgmZ2QsIDAsIHNpemVvZihnZCkpOworIAkJCXdwYV9wcmludGYoTVNHX0RFQlVHLCAiRmFpbGVkIHRvIGluc3RhbGwgdGhlIEdUSyBpbiAiCisgCQkJCSAgICJXTk0gbW9kZSIpOworQEAgLTI5OTgsNyArMzAyMSw3IEBAIGludCB3cGFfd25tc2xlZXBfaW5zdGFsbF9rZXkoc3RydWN0IHdwYV9zbSAqc20sIHU4IHN1YmVsZW1faWQsIHU4ICpidWYpCisgCQljb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICppZ3RrOworIAorIAkJaWd0ayA9IChjb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICopIChidWYgKyAyKTsKKy0JCWlmICh3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2lndGsoc20sIGlndGspIDwgMCkKKysJCWlmICh3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2lndGsoc20sIGlndGssIDEpIDwgMCkKKyAJCQlyZXR1cm4gLTE7CisgI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCisgCX0gZWxzZSB7CitkaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3dwYV9pLmggYi9zcmMvcnNuX3N1cHAvd3BhX2kuaAoraW5kZXggYWZjOWUzNy4uOWE1NDYzMSAxMDA2NDQKKy0tLSBhL3NyYy9yc25fc3VwcC93cGFfaS5oCisrKysgYi9zcmMvcnNuX3N1cHAvd3BhX2kuaAorQEAgLTMyLDggKzMyLDEwIEBAIHN0cnVjdCB3cGFfc20geworIAlpbnQgcnhfcmVwbGF5X2NvdW50ZXJfc2V0OworIAl1OCByZXF1ZXN0X2NvdW50ZXJbV1BBX1JFUExBWV9DT1VOVEVSX0xFTl07CisgCXN0cnVjdCB3cGFfZ3RrIGd0azsKKysJc3RydWN0IHdwYV9ndGsgZ3RrX3dubV9zbGVlcDsKKyAjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVcKKyAJc3RydWN0IHdwYV9pZ3RrIGlndGs7CisrCXN0cnVjdCB3cGFfaWd0ayBpZ3RrX3dubV9zbGVlcDsKKyAjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVcgKi8KKyAKKyAJc3RydWN0IGVhcG9sX3NtICplYXBvbDsgLyogRUFQT0wgc3RhdGUgbWFjaGluZSBmcm9tIHVwcGVyIGxldmVsIGNvZGUgKi8KKy0tIAorMS44LjMuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkLzAwMDQtUHJldmVudC1pbnN0YWxsYXRpb24tb2YtYW4tYWxsLXplcm8tVEsucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkLzAwMDQtUHJldmVudC1pbnN0YWxsYXRpb24tb2YtYW4tYWxsLXplcm8tVEsucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTEwMzYyNQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwNC1QcmV2ZW50LWluc3RhbGxhdGlvbi1vZi1hbi1hbGwtemVyby1USy5wYXRjaApAQCAtMCwwICsxLDgyIEBACitGcm9tIGFiZjk0MTY0N2YyZGMzM2IwYjU5NjEyZjUyNWUxYjI5MjMzMWNjOWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXRoeSBWYW5ob2VmIDxNYXRoeS5WYW5ob2VmQGNzLmt1bGV1dmVuLmJlPgorRGF0ZTogRnJpLCAyOSBTZXAgMjAxNyAwNDoyMjo1MSArMDIwMAorU3ViamVjdDogW1BBVENIIDQvN10gUHJldmVudCBpbnN0YWxsYXRpb24gb2YgYW4gYWxsLXplcm8gVEsKKworUHJvcGVybHkgdHJhY2sgd2hldGhlciBhIFBUSyBoYXMgYWxyZWFkeSBiZWVuIGluc3RhbGxlZCB0byB0aGUgZHJpdmVyCithbmQgdGhlIFRLIHBhcnQgY2xlYXJlZCBmcm9tIG1lbW9yeS4gVGhpcyBwcmV2ZW50cyBhbiBhdHRhY2tlciBmcm9tCit0cnlpbmcgdG8gdHJpY2sgdGhlIGNsaWVudCBpbnRvIGluc3RhbGxpbmcgYW4gYWxsLXplcm8gVEsuCisKK1RoaXMgZml4ZXMgdGhlIGVhcmxpZXIgZml4IGluIGNvbW1pdAorYWQwMGQ2NGU3ZDg4MjdiM2NlYmQ2NjVhMGNlYjA4YWRhYmYxNWUxZSAoJ0ZpeCBUSyBjb25maWd1cmF0aW9uIHRvIHRoZQorZHJpdmVyIGluIEVBUE9MLUtleSAzLzQgcmV0cnkgY2FzZScpIHdoaWNoIGRpZCBub3QgdGFrZSBpbnRvIGFjY291bnQKK3Bvc3NpYmlsaXR5IG9mIGFuIGV4dHJhIG1lc3NhZ2UgMS80IHNob3dpbmcgdXAgYmV0d2VlbiByZXRyaWVzIG9mCittZXNzYWdlIDMvNC4KKworU2lnbmVkLW9mZi1ieTogTWF0aHkgVmFuaG9lZiA8TWF0aHkuVmFuaG9lZkBjcy5rdWxldXZlbi5iZT4KKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAorU2lnbmVkLW9mZi1ieTogWmhlbmcgUnVvcWluIDx6aGVuZ3JxLmZuc3RAY24uZnVqaXRzdS5jb20+CistLS0KKyBzcmMvY29tbW9uL3dwYV9jb21tb24uaCB8IDEgKworIHNyYy9yc25fc3VwcC93cGEuYyAgICAgIHwgNSArKy0tLQorIHNyYy9yc25fc3VwcC93cGFfaS5oICAgIHwgMSAtCisgMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY29tbW9uL3dwYV9jb21tb24uaCBiL3NyYy9jb21tb24vd3BhX2NvbW1vbi5oCitpbmRleCBkMjAwMjg1Li4xMDIxY2NiIDEwMDY0NAorLS0tIGEvc3JjL2NvbW1vbi93cGFfY29tbW9uLmgKKysrKyBiL3NyYy9jb21tb24vd3BhX2NvbW1vbi5oCitAQCAtMjE1LDYgKzIxNSw3IEBAIHN0cnVjdCB3cGFfcHRrIHsKKyAJc2l6ZV90IGtja19sZW47CisgCXNpemVfdCBrZWtfbGVuOworIAlzaXplX3QgdGtfbGVuOworKwlpbnQgaW5zdGFsbGVkOyAvKiAxIGlmIGtleSBoYXMgYWxyZWFkeSBiZWVuIGluc3RhbGxlZCB0byBkcml2ZXIgKi8KKyB9OworIAorIHN0cnVjdCB3cGFfZ3RrIHsKK2RpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvd3BhLmMgYi9zcmMvcnNuX3N1cHAvd3BhLmMKK2luZGV4IDdhMmM2OGQuLjA1NTBhNDEgMTAwNjQ0CistLS0gYS9zcmMvcnNuX3N1cHAvd3BhLmMKKysrKyBiL3NyYy9yc25fc3VwcC93cGEuYworQEAgLTUxMCw3ICs1MTAsNiBAQCBzdGF0aWMgdm9pZCB3cGFfc3VwcGxpY2FudF9wcm9jZXNzXzFfb2ZfNChzdHJ1Y3Qgd3BhX3NtICpzbSwKKyAJCW9zX21lbXNldChidWYsIDAsIHNpemVvZihidWYpKTsKKyAJfQorIAlzbS0+dHB0a19zZXQgPSAxOworLQlzbS0+dGtfdG9fc2V0ID0gMTsKKyAKKyAJa2RlID0gc20tPmFzc29jX3dwYV9pZTsKKyAJa2RlX2xlbiA9IHNtLT5hc3NvY193cGFfaWVfbGVuOworQEAgLTYxNSw3ICs2MTQsNyBAQCBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X2luc3RhbGxfcHRrKHN0cnVjdCB3cGFfc20gKnNtLAorIAllbnVtIHdwYV9hbGcgYWxnOworIAljb25zdCB1OCAqa2V5X3JzYzsKKyAKKy0JaWYgKCFzbS0+dGtfdG9fc2V0KSB7CisrCWlmIChzbS0+cHRrLmluc3RhbGxlZCkgeworIAkJd3BhX2RiZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfREVCVUcsCisgCQkJIldQQTogRG8gbm90IHJlLWluc3RhbGwgc2FtZSBQVEsgdG8gdGhlIGRyaXZlciIpOworIAkJcmV0dXJuIDA7CitAQCAtNjU5LDcgKzY1OCw3IEBAIHN0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9wdGsoc3RydWN0IHdwYV9zbSAqc20sCisgCisgCS8qIFRLIGlzIG5vdCBuZWVkZWQgYW55bW9yZSBpbiBzdXBwbGljYW50ICovCisgCW9zX21lbXNldChzbS0+cHRrLnRrLCAwLCBXUEFfVEtfTUFYX0xFTik7CistCXNtLT50a190b19zZXQgPSAwOworKwlzbS0+cHRrLmluc3RhbGxlZCA9IDE7CisgCisgCWlmIChzbS0+d3BhX3B0a19yZWtleSkgeworIAkJZWxvb3BfY2FuY2VsX3RpbWVvdXQod3BhX3NtX3Jla2V5X3B0aywgc20sIE5VTEwpOworZGlmZiAtLWdpdCBhL3NyYy9yc25fc3VwcC93cGFfaS5oIGIvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKK2luZGV4IDlhNTQ2MzEuLjQxZjM3MWYgMTAwNjQ0CistLS0gYS9zcmMvcnNuX3N1cHAvd3BhX2kuaAorKysrIGIvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKK0BAIC0yNCw3ICsyNCw2IEBAIHN0cnVjdCB3cGFfc20geworIAlzdHJ1Y3Qgd3BhX3B0ayBwdGssIHRwdGs7CisgCWludCBwdGtfc2V0LCB0cHRrX3NldDsKKyAJdW5zaWduZWQgaW50IG1zZ18zX29mXzRfb2s6MTsKKy0JdW5zaWduZWQgaW50IHRrX3RvX3NldDoxOworIAl1OCBzbm9uY2VbV1BBX05PTkNFX0xFTl07CisgCXU4IGFub25jZVtXUEFfTk9OQ0VfTEVOXTsgLyogQU5vbmNlIGZyb20gdGhlIGxhc3QgMS80IG1zZyAqLworIAlpbnQgcmVuZXdfc25vbmNlOworLS0gCisxLjguMy4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwNS1GaXgtUFRLLXJla2V5aW5nLXRvLWdlbmVyYXRlLWEtbmV3LUFOb25jZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwNS1GaXgtUFRLLXJla2V5aW5nLXRvLWdlbmVyYXRlLWEtbmV3LUFOb25jZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMGUxZGYzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDA1LUZpeC1QVEstcmVrZXlpbmctdG8tZ2VuZXJhdGUtYS1uZXctQU5vbmNlLnBhdGNoCkBAIC0wLDAgKzEsNjcgQEAKK0Zyb20gODA0YjlkNzI4MDhjZGRkODIyZTdkY2VjNGQ2MGY0MGMxYWNlZGE4MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEpvdW5pIE1hbGluZW4gPGpAdzEuZmk+CitEYXRlOiBTdW4sIDEgT2N0IDIwMTcgMTI6MzI6NTcgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCA1LzddIEZpeCBQVEsgcmVrZXlpbmcgdG8gZ2VuZXJhdGUgYSBuZXcgQU5vbmNlCisKK1RoZSBBdXRoZW50aWNhdG9yIHN0YXRlIG1hY2hpbmUgcGF0aCBmb3IgUFRLIHJla2V5aW5nIGVuZGVkIHVwIGJ5cGFzc2luZwordGhlIEFVVEhFTlRJQ0FUSU9OMiBzdGF0ZSB3aGVyZSBhIG5ldyBBTm9uY2UgaXMgZ2VuZXJhdGVkIHdoZW4gZ29pbmcKK2RpcmVjdGx5IHRvIHRoZSBQVEtTVEFSVCBzdGF0ZSBzaW5jZSB0aGVyZSBpcyBubyBuZWVkIHRvIHRyeSB0bworZGV0ZXJtaW5lIHRoZSBQTUsgYWdhaW4gaW4gc3VjaCBhIGNhc2UuIFRoaXMgaXMgZmFyIGZyb20gaWRlYWwgc2luY2UgdGhlCituZXcgUFRLIHdvdWxkIGRlcGVuZCBvbiBhIG5ldyBub25jZSBvbmx5IGZyb20gdGhlIHN1cHBsaWNhbnQuCisKK0ZpeCB0aGlzIGJ5IGdlbmVyYXRpbmcgYSBuZXcgQU5vbmNlIHdoZW4gbW92aW5nIHRvIHRoZSBQVEtTVEFSVCBzdGF0ZQorZm9yIHRoZSBwdXJwb3NlIG9mIHN0YXJ0aW5nIG5ldyA0LXdheSBoYW5kc2hha2UgdG8gcmVrZXkgUFRLLgorCitTaWduZWQtb2ZmLWJ5OiBKb3VuaSBNYWxpbmVuIDxqQHcxLmZpPgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CitTaWduZWQtb2ZmLWJ5OiBaaGVuZyBSdW9xaW4gPHpoZW5ncnEuZm5zdEBjbi5mdWppdHN1LmNvbT4KKy0tLQorIHNyYy9hcC93cGFfYXV0aC5jIHwgMjQgKysrKysrKysrKysrKysrKysrKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvYXAvd3BhX2F1dGguYyBiL3NyYy9hcC93cGFfYXV0aC5jCitpbmRleCA3MDc5NzFkLi5iZjEwY2MxIDEwMDY0NAorLS0tIGEvc3JjL2FwL3dwYV9hdXRoLmMKKysrKyBiL3NyYy9hcC93cGFfYXV0aC5jCitAQCAtMTkwMSw2ICsxOTAxLDIxIEBAIFNNX1NUQVRFKFdQQV9QVEssIEFVVEhFTlRJQ0FUSU9OMikKKyB9CisgCisgCisrc3RhdGljIGludCB3cGFfYXV0aF9zbV9wdGtfdXBkYXRlKHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20pCisreworKwlpZiAocmFuZG9tX2dldF9ieXRlcyhzbS0+QU5vbmNlLCBXUEFfTk9OQ0VfTEVOKSkgeworKwkJd3BhX3ByaW50ZihNU0dfRVJST1IsCisrCQkJICAgIldQQTogRmFpbGVkIHRvIGdldCByYW5kb20gZGF0YSBmb3IgQU5vbmNlIik7CisrCQlzbS0+RGlzY29ubmVjdCA9IFRSVUU7CisrCQlyZXR1cm4gLTE7CisrCX0KKysJd3BhX2hleGR1bXAoTVNHX0RFQlVHLCAiV1BBOiBBc3NpZ24gbmV3IEFOb25jZSIsIHNtLT5BTm9uY2UsCisrCQkgICAgV1BBX05PTkNFX0xFTik7CisrCXNtLT5UaW1lb3V0Q3RyID0gMDsKKysJcmV0dXJuIDA7CisrfQorKworKworIFNNX1NUQVRFKFdQQV9QVEssIElOSVRQTUspCisgeworIAl1OCBtc2tbMiAqIFBNS19MRU5dOworQEAgLTI0NTgsOSArMjQ3MywxMiBAQCBTTV9TVEVQKFdQQV9QVEspCisgCQlTTV9FTlRFUihXUEFfUFRLLCBBVVRIRU5USUNBVElPTik7CisgCWVsc2UgaWYgKHNtLT5SZUF1dGhlbnRpY2F0aW9uUmVxdWVzdCkKKyAJCVNNX0VOVEVSKFdQQV9QVEssIEFVVEhFTlRJQ0FUSU9OMik7CistCWVsc2UgaWYgKHNtLT5QVEtSZXF1ZXN0KQorLQkJU01fRU5URVIoV1BBX1BUSywgUFRLU1RBUlQpOworLQllbHNlIHN3aXRjaCAoc20tPndwYV9wdGtfc3RhdGUpIHsKKysJZWxzZSBpZiAoc20tPlBUS1JlcXVlc3QpIHsKKysJCWlmICh3cGFfYXV0aF9zbV9wdGtfdXBkYXRlKHNtKSA8IDApCisrCQkJU01fRU5URVIoV1BBX1BUSywgRElTQ09OTkVDVEVEKTsKKysJCWVsc2UKKysJCQlTTV9FTlRFUihXUEFfUFRLLCBQVEtTVEFSVCk7CisrCX0gZWxzZSBzd2l0Y2ggKHNtLT53cGFfcHRrX3N0YXRlKSB7CisgCWNhc2UgV1BBX1BUS19JTklUSUFMSVpFOgorIAkJYnJlYWs7CisgCWNhc2UgV1BBX1BUS19ESVNDT05ORUNUOgorLS0gCisxLjguMy4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwNi1URExTLVJlamVjdC1UUEstVEstcmVjb25maWd1cmF0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDA2LVRETFMtUmVqZWN0LVRQSy1USy1yZWNvbmZpZ3VyYXRpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJjN2Q1MQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQvMDAwNi1URExTLVJlamVjdC1UUEstVEstcmVjb25maWd1cmF0aW9uLnBhdGNoCkBAIC0wLDAgKzEsMTM1IEBACitGcm9tIDdmZDI2ZGIyZDgxNDdlZDY2MmRiMTkyYzQxZDdiYzE1NzUyYTYwMWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKb3VuaSBNYWxpbmVuIDxqQHcxLmZpPgorRGF0ZTogRnJpLCAyMiBTZXAgMjAxNyAxMTowMzoxNSArMDMwMAorU3ViamVjdDogW1BBVENIIDYvN10gVERMUzogUmVqZWN0IFRQSy1USyByZWNvbmZpZ3VyYXRpb24KKworRG8gbm90IHRyeSB0byByZWNvbmZpZ3VyZSB0aGUgc2FtZSBUUEstVEsgdG8gdGhlIGRyaXZlciBhZnRlciBpdCBoYXMKK2JlZW4gc3VjY2Vzc2Z1bGx5IGNvbmZpZ3VyZWQuIFRoaXMgaXMgYW4gZXhwbGljaXQgY2hlY2sgdG8gYXZvaWQgaXNzdWVzCityZWxhdGVkIHRvIHJlc2V0dGluZyB0aGUgVFgvUlggcGFja2V0IG51bWJlci4gVGhlcmUgd2FzIGFscmVhZHkgYSBjaGVjaworZm9yIHRoaXMgZm9yIFRQSyBNMiAocmV0cmllcyBvZiB0aGF0IG1lc3NhZ2UgYXJlIGlnbm9yZWQgY29tcGxldGVseSksIHNvCit0aGF0IGJlaGF2aW9yIGRvZXMgbm90IGdldCBtb2RpZmllZC4KKworRm9yIFRQSyBNMywgdGhlIFRQSy1USyBjb3VsZCBoYXZlIGJlZW4gcmVjb25maWd1cmVkLCBidXQgdGhhdCB3YXMKK2ZvbGxvd2VkIGJ5IGltbWVkaWF0ZSB0ZWFyZG93biBvZiB0aGUgbGluayBkdWUgdG8gYW4gaXNzdWUgaW4gdXBkYXRpbmcKK3RoZSBTVEEgZW50cnkuIEZ1cnRoZXJtb3JlLCBmb3IgVERMUyB3aXRoIGFueSByZWFsIHNlY3VyaXR5IChpLmUuLAoraWdub3Jpbmcgb3Blbi9XRVApLCB0aGUgVFBLIG1lc3NhZ2UgZXhjaGFuZ2UgaXMgcHJvdGVjdGVkIG9uIHRoZSBBUCBwYXRoCithbmQgc2ltcGxlIHJlcGxheSBhdHRhY2tzIGFyZSBub3QgZmVhc2libGUuCisKK0FzIGFuIGFkZGl0aW9uYWwgY29ybmVyIGNhc2UsIG1ha2Ugc3VyZSB0aGUgbG9jYWwgbm9uY2UgZ2V0cyB1cGRhdGVkIGlmCit0aGUgcGVlciB1c2VzIGEgdmVyeSB1bmxpa2VseSAicmFuZG9tIG5vbmNlIiBvZiBhbGwgemVyb3MuCisKK1NpZ25lZC1vZmYtYnk6IEpvdW5pIE1hbGluZW4gPGpAdzEuZmk+CisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKK1NpZ25lZC1vZmYtYnk6IFpoZW5nIFJ1b3FpbiA8emhlbmdycS5mbnN0QGNuLmZ1aml0c3UuY29tPgorLS0tCisgc3JjL3Jzbl9zdXBwL3RkbHMuYyB8IDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCisgMSBmaWxlIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvdGRscy5jIGIvc3JjL3Jzbl9zdXBwL3RkbHMuYworaW5kZXggZTQyNDE2OC4uOWViOTczOCAxMDA2NDQKKy0tLSBhL3NyYy9yc25fc3VwcC90ZGxzLmMKKysrKyBiL3NyYy9yc25fc3VwcC90ZGxzLmMKK0BAIC0xMTIsNiArMTEyLDcgQEAgc3RydWN0IHdwYV90ZGxzX3BlZXIgeworIAkJdTggdGtbMTZdOyAvKiBUUEstVEs7IGFzc3VtaW5nIG9ubHkgQ0NNUCB3aWxsIGJlIHVzZWQgKi8KKyAJfSB0cGs7CisgCWludCB0cGtfc2V0OworKwlpbnQgdGtfc2V0OyAvKiBUUEstVEsgY29uZmlndXJlZCB0byB0aGUgZHJpdmVyICovCisgCWludCB0cGtfc3VjY2VzczsKKyAJaW50IHRwa19pbl9wcm9ncmVzczsKKyAKK0BAIC0xOTIsNiArMTkzLDIwIEBAIHN0YXRpYyBpbnQgd3BhX3RkbHNfc2V0X2tleShzdHJ1Y3Qgd3BhX3NtICpzbSwgc3RydWN0IHdwYV90ZGxzX3BlZXIgKnBlZXIpCisgCXU4IHJzY1s2XTsKKyAJZW51bSB3cGFfYWxnIGFsZzsKKyAKKysJaWYgKHBlZXItPnRrX3NldCkgeworKwkJLyoKKysJCSAqIFRoaXMgc2FtZSBUUEstVEsgaGFzIGFscmVhZHkgYmVlbiBjb25maWd1cmVkIHRvIHRoZSBkcml2ZXIKKysJCSAqIGFuZCB0aGlzIG5ldyBjb25maWd1cmF0aW9uIGF0dGVtcHQgKGxpa2VseSBkdWUgdG8gYW4KKysJCSAqIHVuZXhwZWN0ZWQgcmV0cmFuc21pdHRlZCBmcmFtZSkgd291bGQgcmVzdWx0IGluIGNsZWFyaW5nCisrCQkgKiB0aGUgVFgvUlggc2VxdWVuY2UgbnVtYmVyIHdoaWNoIGNhbiBicmVhayBzZWN1cml0eSwgc28gbXVzdAorKwkJICogbm90IGFsbG93IHRoYXQgdG8gaGFwcGVuLgorKwkJICovCisrCQl3cGFfcHJpbnRmKE1TR19JTkZPLCAiVERMUzogVFBLLVRLIGZvciB0aGUgcGVlciAiIE1BQ1NUUgorKwkJCSAgICIgaGFzIGFscmVhZHkgYmVlbiBjb25maWd1cmVkIHRvIHRoZSBkcml2ZXIgLSBkbyBub3QgcmVjb25maWd1cmUiLAorKwkJCSAgIE1BQzJTVFIocGVlci0+YWRkcikpOworKwkJcmV0dXJuIC0xOworKwl9CisrCisgCW9zX21lbXNldChyc2MsIDAsIDYpOworIAorIAlzd2l0Y2ggKHBlZXItPmNpcGhlcikgeworQEAgLTIwOSwxMiArMjI0LDE1IEBAIHN0YXRpYyBpbnQgd3BhX3RkbHNfc2V0X2tleShzdHJ1Y3Qgd3BhX3NtICpzbSwgc3RydWN0IHdwYV90ZGxzX3BlZXIgKnBlZXIpCisgCQlyZXR1cm4gLTE7CisgCX0KKyAKKysJd3BhX3ByaW50ZihNU0dfREVCVUcsICJURExTOiBDb25maWd1cmUgcGFpcndpc2Uga2V5IGZvciBwZWVyICIgTUFDU1RSLAorKwkJICAgTUFDMlNUUihwZWVyLT5hZGRyKSk7CisgCWlmICh3cGFfc21fc2V0X2tleShzbSwgYWxnLCBwZWVyLT5hZGRyLCAtMSwgMSwKKyAJCQkgICByc2MsIHNpemVvZihyc2MpLCBwZWVyLT50cGsudGssIGtleV9sZW4pIDwgMCkgeworIAkJd3BhX3ByaW50ZihNU0dfV0FSTklORywgIlRETFM6IEZhaWxlZCB0byBzZXQgVFBLIHRvIHRoZSAiCisgCQkJICAgImRyaXZlciIpOworIAkJcmV0dXJuIC0xOworIAl9CisrCXBlZXItPnRrX3NldCA9IDE7CisgCXJldHVybiAwOworIH0KKyAKK0BAIC02OTYsNyArNzE0LDcgQEAgc3RhdGljIHZvaWQgd3BhX3RkbHNfcGVlcl9jbGVhcihzdHJ1Y3Qgd3BhX3NtICpzbSwgc3RydWN0IHdwYV90ZGxzX3BlZXIgKnBlZXIpCisgCXBlZXItPmNpcGhlciA9IDA7CisgCXBlZXItPnFvc19pbmZvID0gMDsKKyAJcGVlci0+d21tX2NhcGFibGUgPSAwOworLQlwZWVyLT50cGtfc2V0ID0gcGVlci0+dHBrX3N1Y2Nlc3MgPSAwOworKwlwZWVyLT50a19zZXQgPSBwZWVyLT50cGtfc2V0ID0gcGVlci0+dHBrX3N1Y2Nlc3MgPSAwOworIAlwZWVyLT5jaGFuX3N3aXRjaF9lbmFibGVkID0gMDsKKyAJb3NfbWVtc2V0KCZwZWVyLT50cGssIDAsIHNpemVvZihwZWVyLT50cGspKTsKKyAJb3NfbWVtc2V0KHBlZXItPmlub25jZSwgMCwgV1BBX05PTkNFX0xFTik7CitAQCAtMTE1OSw2ICsxMTc3LDcgQEAgc2tpcF9yc25pZToKKyAJCXdwYV90ZGxzX3BlZXJfZnJlZShzbSwgcGVlcik7CisgCQlyZXR1cm4gLTE7CisgCX0KKysJcGVlci0+dGtfc2V0ID0gMDsgLyogQSBuZXcgbm9uY2UgcmVzdWx0cyBpbiBhIG5ldyBUSyAqLworIAl3cGFfaGV4ZHVtcChNU0dfREVCVUcsICJURExTOiBJbml0aWF0b3IgTm9uY2UgZm9yIFRQSyBoYW5kc2hha2UiLAorIAkJICAgIHBlZXItPmlub25jZSwgV1BBX05PTkNFX0xFTik7CisgCW9zX21lbWNweShmdGllLT5Tbm9uY2UsIHBlZXItPmlub25jZSwgV1BBX05PTkNFX0xFTik7CitAQCAtMTc1MSw2ICsxNzcwLDE5IEBAIHN0YXRpYyBpbnQgd3BhX3RkbHNfYWRkc2V0X3BlZXIoc3RydWN0IHdwYV9zbSAqc20sIHN0cnVjdCB3cGFfdGRsc19wZWVyICpwZWVyLAorIH0KKyAKKyAKKytzdGF0aWMgaW50IHRkbHNfbm9uY2Vfc2V0KGNvbnN0IHU4ICpub25jZSkKKyt7CisrCWludCBpOworKworKwlmb3IgKGkgPSAwOyBpIDwgV1BBX05PTkNFX0xFTjsgaSsrKSB7CisrCQlpZiAobm9uY2VbaV0pCisrCQkJcmV0dXJuIDE7CisrCX0KKysKKysJcmV0dXJuIDA7CisrfQorKworKworIHN0YXRpYyBpbnQgd3BhX3RkbHNfcHJvY2Vzc190cGtfbTEoc3RydWN0IHdwYV9zbSAqc20sIGNvbnN0IHU4ICpzcmNfYWRkciwKKyAJCQkJICAgY29uc3QgdTggKmJ1Ziwgc2l6ZV90IGxlbikKKyB7CitAQCAtMjAwNCw3ICsyMDM2LDggQEAgc2tpcF9yc246CisgCXBlZXItPnJzbmllX2lfbGVuID0ga2RlLnJzbl9pZV9sZW47CisgCXBlZXItPmNpcGhlciA9IGNpcGhlcjsKKyAKKy0JaWYgKG9zX21lbWNtcChwZWVyLT5pbm9uY2UsIGZ0aWUtPlNub25jZSwgV1BBX05PTkNFX0xFTikgIT0gMCkgeworKwlpZiAob3NfbWVtY21wKHBlZXItPmlub25jZSwgZnRpZS0+U25vbmNlLCBXUEFfTk9OQ0VfTEVOKSAhPSAwIHx8CisrCSAgICAhdGRsc19ub25jZV9zZXQocGVlci0+aW5vbmNlKSkgeworIAkJLyoKKyAJCSAqIFRoZXJlIGlzIG5vIHBvaW50IGluIHVwZGF0aW5nIHRoZSBSTm9uY2UgZm9yIGV2ZXJ5IG9idGFpbmVkCisgCQkgKiBUUEsgTTEgZnJhbWUgKGUuZy4sIHJldHJhbnNtaXNzaW9uIGR1ZSB0byB0aW1lb3V0KSB3aXRoIHRoZQorQEAgLTIwMjAsNiArMjA1Myw3IEBAIHNraXBfcnNuOgorIAkJCQkiVERMUzogRmFpbGVkIHRvIGdldCByYW5kb20gZGF0YSBmb3IgcmVzcG9uZGVyIG5vbmNlIik7CisgCQkJZ290byBlcnJvcjsKKyAJCX0KKysJCXBlZXItPnRrX3NldCA9IDA7IC8qIEEgbmV3IG5vbmNlIHJlc3VsdHMgaW4gYSBuZXcgVEsgKi8KKyAJfQorIAorICNpZiAwCistLSAKKzEuOC4zLjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDA3LUZULURvLW5vdC1hbGxvdy1tdWx0aXBsZS1SZWFzc29jaWF0aW9uLVJlc3BvbnNlLWZyYW0ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkLzAwMDctRlQtRG8tbm90LWFsbG93LW11bHRpcGxlLVJlYXNzb2NpYXRpb24tUmVzcG9uc2UtZnJhbS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDk3OGM3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC8wMDA3LUZULURvLW5vdC1hbGxvdy1tdWx0aXBsZS1SZWFzc29jaWF0aW9uLVJlc3BvbnNlLWZyYW0ucGF0Y2gKQEAgLTAsMCArMSw4NSBAQAorRnJvbSBhNDJlYjY3YzQyZjg0NWZhZjI2NmIwNjMzZDUyZTE3ZjJhODJmNTExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSm91bmkgTWFsaW5lbiA8akB3MS5maT4KK0RhdGU6IEZyaSwgMjIgU2VwIDIwMTcgMTI6MDY6MzcgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCA3LzddIEZUOiBEbyBub3QgYWxsb3cgbXVsdGlwbGUgUmVhc3NvY2lhdGlvbiBSZXNwb25zZSBmcmFtZXMKKworVGhlIGRyaXZlciBpcyBleHBlY3RlZCB0byBub3QgcmVwb3J0IGEgc2Vjb25kIGFzc29jaWF0aW9uIGV2ZW50IHdpdGhvdXQKK3RoZSBzdGF0aW9uIGhhdmluZyBleHBsaWNpdGx5IHJlcXVlc3QgYSBuZXcgYXNzb2NpYXRpb24uIEFzIHN1Y2gsIHRoaXMKK2Nhc2Ugc2hvdWxkIG5vdCBiZSByZWFjaGFibGUuIEhvd2V2ZXIsIHNpbmNlIHJlY29uZmlndXJpbmcgdGhlIHNhbWUKK3BhaXJ3aXNlIG9yIGdyb3VwIGtleXMgdG8gdGhlIGRyaXZlciBjb3VsZCByZXN1bHQgaW4gbm9uY2UgcmV1c2UgaXNzdWVzLAorYmUgZXh0cmEgY2FyZWZ1bCBoZXJlIGFuZCBkbyBhbiBhZGRpdGlvbmFsIHN0YXRlIGNoZWNrIHRvIGF2b2lkIHRoaXMKK2V2ZW4gaWYgdGhlIGxvY2FsIGRyaXZlciBlbmRzIHVwIHNvbWVob3cgYWNjZXB0aW5nIGFuIHVuZXhwZWN0ZWQKK1JlYXNzb2NpYXRpb24gUmVzcG9uc2UgZnJhbWUuCisKK1NpZ25lZC1vZmYtYnk6IEpvdW5pIE1hbGluZW4gPGpAdzEuZmk+CisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKK1NpZ25lZC1vZmYtYnk6IFpoZW5nIFJ1b3FpbiA8emhlbmdycS5mbnN0QGNuLmZ1aml0c3UuY29tPgorLS0tCisgc3JjL3Jzbl9zdXBwL3dwYS5jICAgIHwgMyArKysKKyBzcmMvcnNuX3N1cHAvd3BhX2Z0LmMgfCA4ICsrKysrKysrCisgc3JjL3Jzbl9zdXBwL3dwYV9pLmggIHwgMSArCisgMyBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvd3BhLmMgYi9zcmMvcnNuX3N1cHAvd3BhLmMKK2luZGV4IDA1NTBhNDEuLjJhNTNjNmYgMTAwNjQ0CistLS0gYS9zcmMvcnNuX3N1cHAvd3BhLmMKKysrKyBiL3NyYy9yc25fc3VwcC93cGEuYworQEAgLTI0NDAsNiArMjQ0MCw5IEBAIHZvaWQgd3BhX3NtX25vdGlmeV9kaXNhc3NvYyhzdHJ1Y3Qgd3BhX3NtICpzbSkKKyAjaWZkZWYgQ09ORklHX1RETFMKKyAJd3BhX3RkbHNfZGlzYXNzb2Moc20pOworICNlbmRpZiAvKiBDT05GSUdfVERMUyAqLworKyNpZmRlZiBDT05GSUdfSUVFRTgwMjExUgorKwlzbS0+ZnRfcmVhc3NvY19jb21wbGV0ZWQgPSAwOworKyNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExUiAqLworIAorIAkvKiBLZXlzIGFyZSBub3QgbmVlZGVkIGluIHRoZSBXUEEgc3RhdGUgbWFjaGluZSBhbnltb3JlICovCisgCXdwYV9zbV9kcm9wX3NhKHNtKTsKK2RpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvd3BhX2Z0LmMgYi9zcmMvcnNuX3N1cHAvd3BhX2Z0LmMKK2luZGV4IDIwNTc5M2UuLmQ0NWJiNDUgMTAwNjQ0CistLS0gYS9zcmMvcnNuX3N1cHAvd3BhX2Z0LmMKKysrKyBiL3NyYy9yc25fc3VwcC93cGFfZnQuYworQEAgLTE1Myw2ICsxNTMsNyBAQCBzdGF0aWMgdTggKiB3cGFfZnRfZ2VuX3JlcV9pZXMoc3RydWN0IHdwYV9zbSAqc20sIHNpemVfdCAqbGVuLAorIAl1MTYgY2FwYWI7CisgCisgCXNtLT5mdF9jb21wbGV0ZWQgPSAwOworKwlzbS0+ZnRfcmVhc3NvY19jb21wbGV0ZWQgPSAwOworIAorIAlidWZfbGVuID0gMiArIHNpemVvZihzdHJ1Y3QgcnNuX21kaWUpICsgMiArIHNpemVvZihzdHJ1Y3QgcnNuX2Z0aWUpICsKKyAJCTIgKyBzbS0+cjBraF9pZF9sZW4gKyByaWNfaWVzX2xlbiArIDEwMDsKK0BAIC02ODEsNiArNjgyLDExIEBAIGludCB3cGFfZnRfdmFsaWRhdGVfcmVhc3NvY19yZXNwKHN0cnVjdCB3cGFfc20gKnNtLCBjb25zdCB1OCAqaWVzLAorIAkJcmV0dXJuIC0xOworIAl9CisgCisrCWlmIChzbS0+ZnRfcmVhc3NvY19jb21wbGV0ZWQpIHsKKysJCXdwYV9wcmludGYoTVNHX0RFQlVHLCAiRlQ6IFJlYXNzb2NpYXRpb24gaGFzIGFscmVhZHkgYmVlbiBjb21wbGV0ZWQgZm9yIHRoaXMgRlQgcHJvdG9jb2wgaW5zdGFuY2UgLSBpZ25vcmUgdW5leHBlY3RlZCByZXRyYW5zbWlzc2lvbiIpOworKwkJcmV0dXJuIDA7CisrCX0KKysKKyAJaWYgKHdwYV9mdF9wYXJzZV9pZXMoaWVzLCBpZXNfbGVuLCAmcGFyc2UpIDwgMCkgeworIAkJd3BhX3ByaW50ZihNU0dfREVCVUcsICJGVDogRmFpbGVkIHRvIHBhcnNlIElFcyIpOworIAkJcmV0dXJuIC0xOworQEAgLTc4MSw2ICs3ODcsOCBAQCBpbnQgd3BhX2Z0X3ZhbGlkYXRlX3JlYXNzb2NfcmVzcChzdHJ1Y3Qgd3BhX3NtICpzbSwgY29uc3QgdTggKmllcywKKyAJCXJldHVybiAtMTsKKyAJfQorIAorKwlzbS0+ZnRfcmVhc3NvY19jb21wbGV0ZWQgPSAxOworKworIAlpZiAod3BhX2Z0X3Byb2Nlc3NfZ3RrX3N1YmVsZW0oc20sIHBhcnNlLmd0aywgcGFyc2UuZ3RrX2xlbikgPCAwKQorIAkJcmV0dXJuIC0xOworIAorZGlmZiAtLWdpdCBhL3NyYy9yc25fc3VwcC93cGFfaS5oIGIvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKK2luZGV4IDQxZjM3MWYuLjU2Zjg4ZGMgMTAwNjQ0CistLS0gYS9zcmMvcnNuX3N1cHAvd3BhX2kuaAorKysrIGIvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKK0BAIC0xMjgsNiArMTI4LDcgQEAgc3RydWN0IHdwYV9zbSB7CisgCXNpemVfdCByMGtoX2lkX2xlbjsKKyAJdTggcjFraF9pZFtGVF9SMUtIX0lEX0xFTl07CisgCWludCBmdF9jb21wbGV0ZWQ7CisrCWludCBmdF9yZWFzc29jX2NvbXBsZXRlZDsKKyAJaW50IG92ZXJfdGhlX2RzX2luX3Byb2dyZXNzOworIAl1OCB0YXJnZXRfYXBbRVRIX0FMRU5dOyAvKiBvdmVyLXRoZS1EUyB0YXJnZXQgQVAgKi8KKyAJaW50IHNldF9wdGtfYWZ0ZXJfYXNzb2M7CistLSAKKzEuOC4zLjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC9rZXktcmVwbGF5LWN2ZS1tdWx0aXBsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9ob3N0YXBkL2hvc3RhcGQva2V5LXJlcGxheS1jdmUtbXVsdGlwbGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5NGRhOGYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZC9rZXktcmVwbGF5LWN2ZS1tdWx0aXBsZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDk4NCArMCwwIEBACi1UaGUgV1BBMiBmb3VyLXdheSBoYW5kc2hha2UgcHJvdG9jb2wgaXMgdnVsbmVyYWJsZSB0byByZXBsYXkgYXR0YWNrcyB3aGljaCBjYW4KLXJlc3VsdCBpbiB1bmF1dGhlbnRpY2F0ZWQgY2xpZW50cyBnYWluaW5nIGFjY2VzcyB0byB0aGUgbmV0d29yay4KLQotQmFja3BvcnQgYSBudW1iZXIgb2YgcGF0Y2hlcyBmcm9tIHVwc3RyZWFtIHRvIGZpeCB0aGlzLgotCi1DVkU6IENWRS0yMDE3LTEzMDc3Ci1DVkU6IENWRS0yMDE3LTEzMDc4Ci1DVkU6IENWRS0yMDE3LTEzMDc5Ci1DVkU6IENWRS0yMDE3LTEzMDgwCi1DVkU6IENWRS0yMDE3LTEzMDgxCi1DVkU6IENWRS0yMDE3LTEzMDgyCi1DVkU6IENWRS0yMDE3LTEzMDg2Ci1DVkU6IENWRS0yMDE3LTEzMDg3Ci1DVkU6IENWRS0yMDE3LTEzMDg4Ci0KLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKLVNpZ25lZC1vZmYtYnk6IFJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+Ci0KLUZyb20gY2Y0Y2FiODA0YzdhZmQ1YzQ1NTA1NTI4YThkMTZlNDYxNjMyNDNhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hdGh5IFZhbmhvZWYgPE1hdGh5LlZhbmhvZWZAY3Mua3VsZXV2ZW4uYmU+Ci1EYXRlOiBGcmksIDE0IEp1bCAyMDE3IDE1OjE1OjM1ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMS84XSBob3N0YXBkOiBBdm9pZCBrZXkgcmVpbnN0YWxsYXRpb24gaW4gRlQgaGFuZHNoYWtlCi0KLURvIG5vdCByZWluc3RhbGwgVEsgdG8gdGhlIGRyaXZlciBkdXJpbmcgUmVhc3NvY2lhdGlvbiBSZXNwb25zZSBmcmFtZQotcHJvY2Vzc2luZyBpZiB0aGUgZmlyc3QgYXR0ZW1wdCBvZiBzZXR0aW5nIHRoZSBUSyBzdWNjZWVkZWQuIFRoaXMgYXZvaWRzCi1pc3N1ZXMgcmVsYXRlZCB0byBjbGVhcmluZyB0aGUgVFgvUlggUE4gdGhhdCBjb3VsZCByZXN1bHQgaW4gcmV1c2luZwotc2FtZSBQTiB2YWx1ZXMgZm9yIHRyYW5zbWl0dGVkIGZyYW1lcyAoZS5nLiwgZHVlIHRvIENDTSBub25jZSByZXVzZSBhbmQKLWFsc28gaGl0dGluZyByZXBsYXkgcHJvdGVjdGlvbiBvbiB0aGUgcmVjZWl2ZXIpIGFuZCBhY2NlcHRpbmcgcmVwbGF5ZWQKLWZyYW1lcyBvbiBSWCBzaWRlLgotCi1UaGlzIGlzc3VlIHdhcyBpbnRyb2R1Y2VkIGJ5IHRoZSBjb21taXQKLTBlODRjMjU0MzRlNmExZjI4M2M3YjRlNjJlNDgzNzI5MDg1Yjc4ZDIgKCdGVDogRml4IFBUSyBjb25maWd1cmF0aW9uIGluCi1hdXRoZW50aWNhdG9yJykgd2hpY2ggYWxsb3dlZCB3cGFfZnRfaW5zdGFsbF9wdGsoKSB0byBiZSBjYWxsZWQgbXVsdGlwbGUKLXRpbWVzIHdpdGggdGhlIHNhbWUgUFRLLiBXaGlsZSB0aGUgc2Vjb25kIGNvbmZpZ3VyYXRpb24gYXR0ZW1wdCBpcwotbmVlZGVkIHdpdGggc29tZSBkcml2ZXJzLCBpdCBtdXN0IGJlIGRvbmUgb25seSBpZiB0aGUgZmlyc3QgYXR0ZW1wdAotZmFpbGVkLgotCi1TaWduZWQtb2ZmLWJ5OiBNYXRoeSBWYW5ob2VmIDxNYXRoeS5WYW5ob2VmQGNzLmt1bGV1dmVuLmJlPgotLS0tCi0gc3JjL2FwL2llZWU4MDJfMTEuYyAgfCAxNiArKysrKysrKysrKysrLS0tCi0gc3JjL2FwL3dwYV9hdXRoLmMgICAgfCAxMSArKysrKysrKysrKwotIHNyYy9hcC93cGFfYXV0aC5oICAgIHwgIDMgKystCi0gc3JjL2FwL3dwYV9hdXRoX2Z0LmMgfCAxMCArKysrKysrKysrCi0gc3JjL2FwL3dwYV9hdXRoX2kuaCAgfCAgMSArCi0gNSBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2FwL2llZWU4MDJfMTEuYyBiL3NyYy9hcC9pZWVlODAyXzExLmMKLWluZGV4IDRlMDQxNjkuLjMzMzAzNWYgMTAwNjQ0Ci0tLS0gYS9zcmMvYXAvaWVlZTgwMl8xMS5jCi0rKysgYi9zcmMvYXAvaWVlZTgwMl8xMS5jCi1AQCAtMTg0MSw2ICsxODQxLDcgQEAgc3RhdGljIGludCBhZGRfYXNzb2NpYXRlZF9zdGEoc3RydWN0IGhvc3RhcGRfZGF0YSAqaGFwZCwKLSB7Ci0gCXN0cnVjdCBpZWVlODAyMTFfaHRfY2FwYWJpbGl0aWVzIGh0X2NhcDsKLSAJc3RydWN0IGllZWU4MDIxMV92aHRfY2FwYWJpbGl0aWVzIHZodF9jYXA7Ci0rCWludCBzZXQgPSAxOwotIAotIAkvKgotIAkgKiBSZW1vdmUgdGhlIFNUQSBlbnRyeSB0byBlbnN1cmUgdGhlIFNUQSBQUyBzdGF0ZSBnZXRzIGNsZWFyZWQgYW5kCi1AQCAtMTg0OCw5ICsxODQ5LDE4IEBAIHN0YXRpYyBpbnQgYWRkX2Fzc29jaWF0ZWRfc3RhKHN0cnVjdCBob3N0YXBkX2RhdGEgKmhhcGQsCi0gCSAqIEZULW92ZXItdGhlLURTLCB3aGVyZSBhIHN0YXRpb24gcmUtYXNzb2NpYXRlcyBiYWNrIHRvIHRoZSBzYW1lIEFQIGJ1dAotIAkgKiBza2lwcyB0aGUgYXV0aGVudGljYXRpb24gZmxvdywgb3IgaWYgd29ya2luZyB3aXRoIGEgZHJpdmVyIHRoYXQKLSAJICogZG9lcyBub3Qgc3VwcG9ydCBmdWxsIEFQIGNsaWVudCBzdGF0ZS4KLSsJICoKLSsJICogU2tpcCB0aGlzIGlmIHRoZSBTVEEgaGFzIGFscmVhZHkgY29tcGxldGVkIEZUIHJlYXNzb2NpYXRpb24gYW5kIHRoZQotKwkgKiBUSyBoYXMgYmVlbiBjb25maWd1cmVkIHNpbmNlIHRoZSBUWC9SWCBQTiBtdXN0IG5vdCBiZSByZXNldCB0byAwIGZvcgotKwkgKiB0aGUgc2FtZSBrZXkuCi0gCSAqLwotLQlpZiAoIXN0YS0+YWRkZWRfdW5hc3NvYykKLSsJaWYgKCFzdGEtPmFkZGVkX3VuYXNzb2MgJiYKLSsJICAgICghKHN0YS0+ZmxhZ3MgJiBXTEFOX1NUQV9BVVRIT1JJWkVEKSB8fAotKwkgICAgICF3cGFfYXV0aF9zdGFfZnRfdGtfYWxyZWFkeV9zZXQoc3RhLT53cGFfc20pKSkgewotIAkJaG9zdGFwZF9kcnZfc3RhX3JlbW92ZShoYXBkLCBzdGEtPmFkZHIpOwotKwkJd3BhX2F1dGhfc21fZXZlbnQoc3RhLT53cGFfc20sIFdQQV9EUlZfU1RBX1JFTU9WRUQpOwotKwkJc2V0ID0gMDsKLSsJfQotIAotICNpZmRlZiBDT05GSUdfSUVFRTgwMjExTgotIAlpZiAoc3RhLT5mbGFncyAmIFdMQU5fU1RBX0hUKQotQEAgLTE4NzMsMTEgKzE4ODMsMTEgQEAgc3RhdGljIGludCBhZGRfYXNzb2NpYXRlZF9zdGEoc3RydWN0IGhvc3RhcGRfZGF0YSAqaGFwZCwKLSAJCQkgICAgc3RhLT5mbGFncyAmIFdMQU5fU1RBX1ZIVCA/ICZ2aHRfY2FwIDogTlVMTCwKLSAJCQkgICAgc3RhLT5mbGFncyB8IFdMQU5fU1RBX0FTU09DLCBzdGEtPnFvc2luZm8sCi0gCQkJICAgIHN0YS0+dmh0X29wbW9kZSwgc3RhLT5wMnBfaWUgPyAxIDogMCwKLS0JCQkgICAgc3RhLT5hZGRlZF91bmFzc29jKSkgewotKwkJCSAgICBzZXQpKSB7Ci0gCQlob3N0YXBkX2xvZ2dlcihoYXBkLCBzdGEtPmFkZHIsCi0gCQkJICAgICAgIEhPU1RBUERfTU9EVUxFX0lFRUU4MDIxMSwgSE9TVEFQRF9MRVZFTF9OT1RJQ0UsCi0gCQkJICAgICAgICJDb3VsZCBub3QgJXMgU1RBIHRvIGtlcm5lbCBkcml2ZXIiLAotLQkJCSAgICAgICBzdGEtPmFkZGVkX3VuYXNzb2MgPyAic2V0IiA6ICJhZGQiKTsKLSsJCQkgICAgICAgc2V0ID8gInNldCIgOiAiYWRkIik7Ci0gCi0gCQlpZiAoc3RhLT5hZGRlZF91bmFzc29jKSB7Ci0gCQkJaG9zdGFwZF9kcnZfc3RhX3JlbW92ZShoYXBkLCBzdGEtPmFkZHIpOwotZGlmZiAtLWdpdCBhL3NyYy9hcC93cGFfYXV0aC5jIGIvc3JjL2FwL3dwYV9hdXRoLmMKLWluZGV4IDM1ODcwODYuLjcwNzk3MWQgMTAwNjQ0Ci0tLS0gYS9zcmMvYXAvd3BhX2F1dGguYwotKysrIGIvc3JjL2FwL3dwYV9hdXRoLmMKLUBAIC0xNzQ1LDYgKzE3NDUsOSBAQCBpbnQgd3BhX2F1dGhfc21fZXZlbnQoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSwgZW51bSB3cGFfZXZlbnQgZXZlbnQpCi0gI2Vsc2UgLyogQ09ORklHX0lFRUU4MDIxMVIgKi8KLSAJCWJyZWFrOwotICNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExUiAqLwotKwljYXNlIFdQQV9EUlZfU1RBX1JFTU9WRUQ6Ci0rCQlzbS0+dGtfYWxyZWFkeV9zZXQgPSBGQUxTRTsKLSsJCXJldHVybiAwOwotIAl9Ci0gCi0gI2lmZGVmIENPTkZJR19JRUVFODAyMTFSCi1AQCAtMzI1MCw2ICszMjUzLDE0IEBAIGludCB3cGFfYXV0aF9zdGFfd3BhX3ZlcnNpb24oc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSkKLSB9Ci0gCi0gCi0raW50IHdwYV9hdXRoX3N0YV9mdF90a19hbHJlYWR5X3NldChzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKQotK3sKLSsJaWYgKCFzbSB8fCAhd3BhX2tleV9tZ210X2Z0KHNtLT53cGFfa2V5X21nbXQpKQotKwkJcmV0dXJuIDA7Ci0rCXJldHVybiBzbS0+dGtfYWxyZWFkeV9zZXQ7Ci0rfQotKwotKwotIGludCB3cGFfYXV0aF9zdGFfY2xlYXJfcG1rc2Eoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSwKLSAJCQkgICAgIHN0cnVjdCByc25fcG1rc2FfY2FjaGVfZW50cnkgKmVudHJ5KQotIHsKLWRpZmYgLS1naXQgYS9zcmMvYXAvd3BhX2F1dGguaCBiL3NyYy9hcC93cGFfYXV0aC5oCi1pbmRleCAwZGU4ZDk3Li45NzQ2MWIwIDEwMDY0NAotLS0tIGEvc3JjL2FwL3dwYV9hdXRoLmgKLSsrKyBiL3NyYy9hcC93cGFfYXV0aC5oCi1AQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQgd3BhX3JlY2VpdmUoc3RydWN0IHdwYV9hdXRoZW50aWNhdG9yICp3cGFfYXV0aCwKLSAJCSB1OCAqZGF0YSwgc2l6ZV90IGRhdGFfbGVuKTsKLSBlbnVtIHdwYV9ldmVudCB7Ci0gCVdQQV9BVVRILCBXUEFfQVNTT0MsIFdQQV9ESVNBU1NPQywgV1BBX0RFQVVUSCwgV1BBX1JFQVVUSCwKLS0JV1BBX1JFQVVUSF9FQVBPTCwgV1BBX0FTU09DX0ZUCi0rCVdQQV9SRUFVVEhfRUFQT0wsIFdQQV9BU1NPQ19GVCwgV1BBX0RSVl9TVEFfUkVNT1ZFRAotIH07Ci0gdm9pZCB3cGFfcmVtb3ZlX3B0ayhzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKTsKLSBpbnQgd3BhX2F1dGhfc21fZXZlbnQoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSwgZW51bSB3cGFfZXZlbnQgZXZlbnQpOwotQEAgLTI4MCw2ICsyODAsNyBAQCBpbnQgd3BhX2F1dGhfcGFpcndpc2Vfc2V0KHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20pOwotIGludCB3cGFfYXV0aF9nZXRfcGFpcndpc2Uoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSk7Ci0gaW50IHdwYV9hdXRoX3N0YV9rZXlfbWdtdChzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKTsKLSBpbnQgd3BhX2F1dGhfc3RhX3dwYV92ZXJzaW9uKHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20pOwotK2ludCB3cGFfYXV0aF9zdGFfZnRfdGtfYWxyZWFkeV9zZXQoc3RydWN0IHdwYV9zdGF0ZV9tYWNoaW5lICpzbSk7Ci0gaW50IHdwYV9hdXRoX3N0YV9jbGVhcl9wbWtzYShzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtLAotIAkJCSAgICAgc3RydWN0IHJzbl9wbWtzYV9jYWNoZV9lbnRyeSAqZW50cnkpOwotIHN0cnVjdCByc25fcG1rc2FfY2FjaGVfZW50cnkgKgotZGlmZiAtLWdpdCBhL3NyYy9hcC93cGFfYXV0aF9mdC5jIGIvc3JjL2FwL3dwYV9hdXRoX2Z0LmMKLWluZGV4IDQyMjQyYTUuLmU2M2I5OWEgMTAwNjQ0Ci0tLS0gYS9zcmMvYXAvd3BhX2F1dGhfZnQuYwotKysrIGIvc3JjL2FwL3dwYV9hdXRoX2Z0LmMKLUBAIC03ODAsNiArNzgwLDE0IEBAIHZvaWQgd3BhX2Z0X2luc3RhbGxfcHRrKHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20pCi0gCQlyZXR1cm47Ci0gCX0KLSAKLSsJaWYgKHNtLT50a19hbHJlYWR5X3NldCkgewotKwkJLyogTXVzdCBhdm9pZCBUSyByZWNvbmZpZ3VyYXRpb24gdG8gcHJldmVudCBjbGVhcmluZyBvZiBUWC9SWAotKwkJICogUE4gaW4gdGhlIGRyaXZlciAqLwotKwkJd3BhX3ByaW50ZihNU0dfREVCVUcsCi0rCQkJICAgIkZUOiBEbyBub3QgcmUtaW5zdGFsbCBzYW1lIFBUSyB0byB0aGUgZHJpdmVyIik7Ci0rCQlyZXR1cm47Ci0rCX0KLSsKLSAJLyogRklYOiBhZGQgU1RBIGVudHJ5IHRvIGtlcm5lbC9kcml2ZXIgaGVyZT8gVGhlIHNldF9rZXkgd2lsbCBmYWlsCi0gCSAqIG1vc3QgbGlrZWx5IHdpdGhvdXQgdGhpcy4uIEF0IHRoZSBtb21lbnQsIFNUQSBlbnRyeSBpcyBhZGRlZCBvbmx5Ci0gCSAqIGFmdGVyIGFzc29jaWF0aW9uIGhhcyBiZWVuIGNvbXBsZXRlZC4gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZAotQEAgLTc5Miw2ICs4MDAsNyBAQCB2b2lkIHdwYV9mdF9pbnN0YWxsX3B0ayhzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKQotIAotIAkvKiBGSVg6IE1MTUUtU2V0UHJvdGVjdGlvbi5SZXF1ZXN0KFRBLCBUeF9SeCkgKi8KLSAJc20tPnBhaXJ3aXNlX3NldCA9IFRSVUU7Ci0rCXNtLT50a19hbHJlYWR5X3NldCA9IFRSVUU7Ci0gfQotIAotIAotQEAgLTg5OCw2ICs5MDcsNyBAQCBzdGF0aWMgaW50IHdwYV9mdF9wcm9jZXNzX2F1dGhfcmVxKHN0cnVjdCB3cGFfc3RhdGVfbWFjaGluZSAqc20sCi0gCi0gCXNtLT5wYWlyd2lzZSA9IHBhaXJ3aXNlOwotIAlzbS0+UFRLX3ZhbGlkID0gVFJVRTsKLSsJc20tPnRrX2FscmVhZHlfc2V0ID0gRkFMU0U7Ci0gCXdwYV9mdF9pbnN0YWxsX3B0ayhzbSk7Ci0gCi0gCWJ1ZmxlbiA9IDIgKyBzaXplb2Yoc3RydWN0IHJzbl9tZGllKSArIDIgKyBzaXplb2Yoc3RydWN0IHJzbl9mdGllKSArCi1kaWZmIC0tZ2l0IGEvc3JjL2FwL3dwYV9hdXRoX2kuaCBiL3NyYy9hcC93cGFfYXV0aF9pLmgKLWluZGV4IDcyYjdlYjMuLjdmZDhmMDUgMTAwNjQ0Ci0tLS0gYS9zcmMvYXAvd3BhX2F1dGhfaS5oCi0rKysgYi9zcmMvYXAvd3BhX2F1dGhfaS5oCi1AQCAtNjUsNiArNjUsNyBAQCBzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgewotIAlzdHJ1Y3Qgd3BhX3B0ayBQVEs7Ci0gCUJvb2xlYW4gUFRLX3ZhbGlkOwotIAlCb29sZWFuIHBhaXJ3aXNlX3NldDsKLSsJQm9vbGVhbiB0a19hbHJlYWR5X3NldDsKLSAJaW50IGtleWNvdW50OwotIAlCb29sZWFuIFBhaXI7Ci0gCXN0cnVjdCB3cGFfa2V5X3JlcGxheV9jb3VudGVyIHsKLS0tIAotMi43LjQKLQotRnJvbSA5MjdmODkxMDA3YzQwMmZlZmQxZmYzODQ2NDViM2YwNzU5N2MzZWRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWF0aHkgVmFuaG9lZiA8TWF0aHkuVmFuaG9lZkBjcy5rdWxldXZlbi5iZT4KLURhdGU6IFdlZCwgMTIgSnVsIDIwMTcgMTY6MDM6MjQgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAyLzhdIFByZXZlbnQgcmVpbnN0YWxsYXRpb24gb2YgYW4gYWxyZWFkeSBpbi11c2UgZ3JvdXAga2V5Ci0KLVRyYWNrIHRoZSBjdXJyZW50IEdUSyBhbmQgSUdUSyB0aGF0IGlzIGluIHVzZSBhbmQgd2hlbiByZWNlaXZpbmcgYQotKHBvc3NpYmx5IHJldHJhbnNtaXR0ZWQpIEdyb3VwIE1lc3NhZ2UgMSBvciBXTk0tU2xlZXAgTW9kZSBSZXNwb25zZSwgZG8KLW5vdCBpbnN0YWxsIHRoZSBnaXZlbiBrZXkgaWYgaXQgaXMgYWxyZWFkeSBpbiB1c2UuIFRoaXMgcHJldmVudHMgYW4KLWF0dGFja2VyIGZyb20gdHJ5aW5nIHRvIHRyaWNrIHRoZSBjbGllbnQgaW50byByZXNldHRpbmcgb3IgbG93ZXJpbmcgdGhlCi1zZXF1ZW5jZSBjb3VudGVyIGFzc29jaWF0ZWQgdG8gdGhlIGdyb3VwIGtleS4KLQotU2lnbmVkLW9mZi1ieTogTWF0aHkgVmFuaG9lZiA8TWF0aHkuVmFuaG9lZkBjcy5rdWxldXZlbi5iZT4KLS0tLQotIHNyYy9jb21tb24vd3BhX2NvbW1vbi5oIHwgIDExICsrKysrCi0gc3JjL3Jzbl9zdXBwL3dwYS5jICAgICAgfCAxMTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCi0gc3JjL3Jzbl9zdXBwL3dwYV9pLmggICAgfCAgIDQgKysKLSAzIGZpbGVzIGNoYW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi93cGFfY29tbW9uLmggYi9zcmMvY29tbW9uL3dwYV9jb21tb24uaAotaW5kZXggYWYxZDBmMC4uZDIwMDI4NSAxMDA2NDQKLS0tLSBhL3NyYy9jb21tb24vd3BhX2NvbW1vbi5oCi0rKysgYi9zcmMvY29tbW9uL3dwYV9jb21tb24uaAotQEAgLTIxNyw2ICsyMTcsMTcgQEAgc3RydWN0IHdwYV9wdGsgewotIAlzaXplX3QgdGtfbGVuOwotIH07Ci0gCi0rc3RydWN0IHdwYV9ndGsgewotKwl1OCBndGtbV1BBX0dUS19NQVhfTEVOXTsKLSsJc2l6ZV90IGd0a19sZW47Ci0rfTsKLSsKLSsjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVcKLStzdHJ1Y3Qgd3BhX2lndGsgewotKwl1OCBpZ3RrW1dQQV9JR1RLX01BWF9MRU5dOwotKwlzaXplX3QgaWd0a19sZW47Ci0rfTsKLSsjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVcgKi8KLSAKLSAvKiBXUEEgSUUgdmVyc2lvbiAxCi0gICogMDAtNTAtZjI6MSAoT1VJOk9VSSB0eXBlKQotZGlmZiAtLWdpdCBhL3NyYy9yc25fc3VwcC93cGEuYyBiL3NyYy9yc25fc3VwcC93cGEuYwotaW5kZXggM2M0Nzg3OS4uOTViZDdiZSAxMDA2NDQKLS0tLSBhL3NyYy9yc25fc3VwcC93cGEuYwotKysrIGIvc3JjL3Jzbl9zdXBwL3dwYS5jCi1AQCAtNzE0LDYgKzcxNCwxNSBAQCBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X2luc3RhbGxfZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAotIAljb25zdCB1OCAqX2d0ayA9IGdkLT5ndGs7Ci0gCXU4IGd0a19idWZbMzJdOwotIAotKwkvKiBEZXRlY3QgcG9zc2libGUga2V5IHJlaW5zdGFsbGF0aW9uICovCi0rCWlmIChzbS0+Z3RrLmd0a19sZW4gPT0gKHNpemVfdCkgZ2QtPmd0a19sZW4gJiYKLSsJICAgIG9zX21lbWNtcChzbS0+Z3RrLmd0aywgZ2QtPmd0aywgc20tPmd0ay5ndGtfbGVuKSA9PSAwKSB7Ci0rCQl3cGFfZGJnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19ERUJVRywKLSsJCQkiV1BBOiBOb3QgcmVpbnN0YWxsaW5nIGFscmVhZHkgaW4tdXNlIEdUSyB0byB0aGUgZHJpdmVyIChrZXlpZHg9JWQgdHg9JWQgbGVuPSVkKSIsCi0rCQkJZ2QtPmtleWlkeCwgZ2QtPnR4LCBnZC0+Z3RrX2xlbik7Ci0rCQlyZXR1cm4gMDsKLSsJfQotKwotIAl3cGFfaGV4ZHVtcF9rZXkoTVNHX0RFQlVHLCAiV1BBOiBHcm91cCBLZXkiLCBnZC0+Z3RrLCBnZC0+Z3RrX2xlbik7Ci0gCXdwYV9kYmcoc20tPmN0eC0+bXNnX2N0eCwgTVNHX0RFQlVHLAotIAkJIldQQTogSW5zdGFsbGluZyBHVEsgdG8gdGhlIGRyaXZlciAoa2V5aWR4PSVkIHR4PSVkIGxlbj0lZCkiLAotQEAgLTc0OCw2ICs3NTcsOSBAQCBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X2luc3RhbGxfZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAotIAl9Ci0gCW9zX21lbXNldChndGtfYnVmLCAwLCBzaXplb2YoZ3RrX2J1ZikpOwotIAotKwlzbS0+Z3RrLmd0a19sZW4gPSBnZC0+Z3RrX2xlbjsKLSsJb3NfbWVtY3B5KHNtLT5ndGsuZ3RrLCBnZC0+Z3RrLCBzbS0+Z3RrLmd0a19sZW4pOwotKwotIAlyZXR1cm4gMDsKLSB9Ci0gCi1AQCAtODU0LDYgKzg2Niw0OCBAQCBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X3BhaXJ3aXNlX2d0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKLSB9Ci0gCi0gCi0rI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCi0rc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2lndGsoc3RydWN0IHdwYV9zbSAqc20sCi0rCQkJCSAgICAgICBjb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICppZ3RrKQotK3sKLSsJc2l6ZV90IGxlbiA9IHdwYV9jaXBoZXJfa2V5X2xlbihzbS0+bWdtdF9ncm91cF9jaXBoZXIpOwotKwl1MTYga2V5aWR4ID0gV1BBX0dFVF9MRTE2KGlndGstPmtleWlkKTsKLSsKLSsJLyogRGV0ZWN0IHBvc3NpYmxlIGtleSByZWluc3RhbGxhdGlvbiAqLwotKwlpZiAoc20tPmlndGsuaWd0a19sZW4gPT0gbGVuICYmCi0rCSAgICBvc19tZW1jbXAoc20tPmlndGsuaWd0aywgaWd0ay0+aWd0aywgc20tPmlndGsuaWd0a19sZW4pID09IDApIHsKLSsJCXdwYV9kYmcoc20tPmN0eC0+bXNnX2N0eCwgTVNHX0RFQlVHLAotKwkJCSJXUEE6IE5vdCByZWluc3RhbGxpbmcgYWxyZWFkeSBpbi11c2UgSUdUSyB0byB0aGUgZHJpdmVyIChrZXlpZHg9JWQpIiwKLSsJCQlrZXlpZHgpOwotKwkJcmV0dXJuICAwOwotKwl9Ci0rCi0rCXdwYV9kYmcoc20tPmN0eC0+bXNnX2N0eCwgTVNHX0RFQlVHLAotKwkJIldQQTogSUdUSyBrZXlpZCAlZCBwbiAlMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMngiLAotKwkJa2V5aWR4LCBNQUMyU1RSKGlndGstPnBuKSk7Ci0rCXdwYV9oZXhkdW1wX2tleShNU0dfREVCVUcsICJXUEE6IElHVEsiLCBpZ3RrLT5pZ3RrLCBsZW4pOwotKwlpZiAoa2V5aWR4ID4gNDA5NSkgewotKwkJd3BhX21zZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfV0FSTklORywKLSsJCQkiV1BBOiBJbnZhbGlkIElHVEsgS2V5SUQgJWQiLCBrZXlpZHgpOwotKwkJcmV0dXJuIC0xOwotKwl9Ci0rCWlmICh3cGFfc21fc2V0X2tleShzbSwgd3BhX2NpcGhlcl90b19hbGcoc20tPm1nbXRfZ3JvdXBfY2lwaGVyKSwKLSsJCQkgICBicm9hZGNhc3RfZXRoZXJfYWRkciwKLSsJCQkgICBrZXlpZHgsIDAsIGlndGstPnBuLCBzaXplb2YoaWd0ay0+cG4pLAotKwkJCSAgIGlndGstPmlndGssIGxlbikgPCAwKSB7Ci0rCQl3cGFfbXNnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19XQVJOSU5HLAotKwkJCSJXUEE6IEZhaWxlZCB0byBjb25maWd1cmUgSUdUSyB0byB0aGUgZHJpdmVyIik7Ci0rCQlyZXR1cm4gLTE7Ci0rCX0KLSsKLSsJc20tPmlndGsuaWd0a19sZW4gPSBsZW47Ci0rCW9zX21lbWNweShzbS0+aWd0ay5pZ3RrLCBpZ3RrLT5pZ3RrLCBzbS0+aWd0ay5pZ3RrX2xlbik7Ci0rCi0rCXJldHVybiAwOwotK30KLSsjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVcgKi8KLSsKLSsKLSBzdGF0aWMgaW50IGllZWU4MDIxMXdfc2V0X2tleXMoc3RydWN0IHdwYV9zbSAqc20sCi0gCQkJICAgICAgIHN0cnVjdCB3cGFfZWFwb2xfaWVfcGFyc2UgKmllKQotIHsKLUBAIC04NjQsMzAgKzkxOCwxNCBAQCBzdGF0aWMgaW50IGllZWU4MDIxMXdfc2V0X2tleXMoc3RydWN0IHdwYV9zbSAqc20sCi0gCWlmIChpZS0+aWd0aykgewotIAkJc2l6ZV90IGxlbjsKLSAJCWNvbnN0IHN0cnVjdCB3cGFfaWd0a19rZGUgKmlndGs7Ci0tCQl1MTYga2V5aWR4OwotKwotIAkJbGVuID0gd3BhX2NpcGhlcl9rZXlfbGVuKHNtLT5tZ210X2dyb3VwX2NpcGhlcik7Ci0gCQlpZiAoaWUtPmlndGtfbGVuICE9IFdQQV9JR1RLX0tERV9QUkVGSVhfTEVOICsgbGVuKQotIAkJCXJldHVybiAtMTsKLSsKLSAJCWlndGsgPSAoY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqKSBpZS0+aWd0azsKLS0JCWtleWlkeCA9IFdQQV9HRVRfTEUxNihpZ3RrLT5rZXlpZCk7Ci0tCQl3cGFfZGJnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19ERUJVRywgIldQQTogSUdUSyBrZXlpZCAlZCAiCi0tCQkJInBuICUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCIsCi0tCQkJa2V5aWR4LCBNQUMyU1RSKGlndGstPnBuKSk7Ci0tCQl3cGFfaGV4ZHVtcF9rZXkoTVNHX0RFQlVHLCAiV1BBOiBJR1RLIiwKLS0JCQkJaWd0ay0+aWd0aywgbGVuKTsKLS0JCWlmIChrZXlpZHggPiA0MDk1KSB7Ci0tCQkJd3BhX21zZyhzbS0+Y3R4LT5tc2dfY3R4LCBNU0dfV0FSTklORywKLS0JCQkJIldQQTogSW52YWxpZCBJR1RLIEtleUlEICVkIiwga2V5aWR4KTsKLS0JCQlyZXR1cm4gLTE7Ci0tCQl9Ci0tCQlpZiAod3BhX3NtX3NldF9rZXkoc20sIHdwYV9jaXBoZXJfdG9fYWxnKHNtLT5tZ210X2dyb3VwX2NpcGhlciksCi0tCQkJCSAgIGJyb2FkY2FzdF9ldGhlcl9hZGRyLAotLQkJCQkgICBrZXlpZHgsIDAsIGlndGstPnBuLCBzaXplb2YoaWd0ay0+cG4pLAotLQkJCQkgICBpZ3RrLT5pZ3RrLCBsZW4pIDwgMCkgewotLQkJCXdwYV9tc2coc20tPmN0eC0+bXNnX2N0eCwgTVNHX1dBUk5JTkcsCi0tCQkJCSJXUEE6IEZhaWxlZCB0byBjb25maWd1cmUgSUdUSyB0byB0aGUgZHJpdmVyIik7Ci0rCQlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9pZ3RrKHNtLCBpZ3RrKSA8IDApCi0gCQkJcmV0dXJuIC0xOwotLQkJfQotIAl9Ci0gCi0gCXJldHVybiAwOwotQEAgLTIzMDcsNyArMjM0NSw3IEBAIHZvaWQgd3BhX3NtX2RlaW5pdChzdHJ1Y3Qgd3BhX3NtICpzbSkKLSAgKi8KLSB2b2lkIHdwYV9zbV9ub3RpZnlfYXNzb2Moc3RydWN0IHdwYV9zbSAqc20sIGNvbnN0IHU4ICpic3NpZCkKLSB7Ci0tCWludCBjbGVhcl9wdGsgPSAxOwotKwlpbnQgY2xlYXJfa2V5cyA9IDE7Ci0gCi0gCWlmIChzbSA9PSBOVUxMKQotIAkJcmV0dXJuOwotQEAgLTIzMzMsMTEgKzIzNzEsMTEgQEAgdm9pZCB3cGFfc21fbm90aWZ5X2Fzc29jKHN0cnVjdCB3cGFfc20gKnNtLCBjb25zdCB1OCAqYnNzaWQpCi0gCQkvKiBQcmVwYXJlIGZvciB0aGUgbmV4dCB0cmFuc2l0aW9uICovCi0gCQl3cGFfZnRfcHJlcGFyZV9hdXRoX3JlcXVlc3Qoc20sIE5VTEwpOwotIAotLQkJY2xlYXJfcHRrID0gMDsKLSsJCWNsZWFyX2tleXMgPSAwOwotIAl9Ci0gI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFSICovCi0gCi0tCWlmIChjbGVhcl9wdGspIHsKLSsJaWYgKGNsZWFyX2tleXMpIHsKLSAJCS8qCi0gCQkgKiBJRUVFIDgwMi4xMSwgOC40LjEwOiBEZWxldGUgUFRLIFNBIG9uIChyZSlhc3NvY2lhdGlvbiBpZgotIAkJICogdGhpcyBpcyBub3QgcGFydCBvZiBhIEZhc3QgQlNTIFRyYW5zaXRpb24uCi1AQCAtMjM0Nyw2ICsyMzg1LDEwIEBAIHZvaWQgd3BhX3NtX25vdGlmeV9hc3NvYyhzdHJ1Y3Qgd3BhX3NtICpzbSwgY29uc3QgdTggKmJzc2lkKQotIAkJb3NfbWVtc2V0KCZzbS0+cHRrLCAwLCBzaXplb2Yoc20tPnB0aykpOwotIAkJc20tPnRwdGtfc2V0ID0gMDsKLSAJCW9zX21lbXNldCgmc20tPnRwdGssIDAsIHNpemVvZihzbS0+dHB0aykpOwotKwkJb3NfbWVtc2V0KCZzbS0+Z3RrLCAwLCBzaXplb2Yoc20tPmd0aykpOwotKyNpZmRlZiBDT05GSUdfSUVFRTgwMjExVwotKwkJb3NfbWVtc2V0KCZzbS0+aWd0aywgMCwgc2l6ZW9mKHNtLT5pZ3RrKSk7Ci0rI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCi0gCX0KLSAKLSAjaWZkZWYgQ09ORklHX1RETFMKLUBAIC0yODc3LDYgKzI5MTksMTAgQEAgdm9pZCB3cGFfc21fZHJvcF9zYShzdHJ1Y3Qgd3BhX3NtICpzbSkKLSAJb3NfbWVtc2V0KHNtLT5wbWssIDAsIHNpemVvZihzbS0+cG1rKSk7Ci0gCW9zX21lbXNldCgmc20tPnB0aywgMCwgc2l6ZW9mKHNtLT5wdGspKTsKLSAJb3NfbWVtc2V0KCZzbS0+dHB0aywgMCwgc2l6ZW9mKHNtLT50cHRrKSk7Ci0rCW9zX21lbXNldCgmc20tPmd0aywgMCwgc2l6ZW9mKHNtLT5ndGspKTsKLSsjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVcKLSsJb3NfbWVtc2V0KCZzbS0+aWd0aywgMCwgc2l6ZW9mKHNtLT5pZ3RrKSk7Ci0rI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCi0gI2lmZGVmIENPTkZJR19JRUVFODAyMTFSCi0gCW9zX21lbXNldChzbS0+eHhrZXksIDAsIHNpemVvZihzbS0+eHhrZXkpKTsKLSAJb3NfbWVtc2V0KHNtLT5wbWtfcjAsIDAsIHNpemVvZihzbS0+cG1rX3IwKSk7Ci1AQCAtMjk0OSwyOSArMjk5NSwxMSBAQCBpbnQgd3BhX3dubXNsZWVwX2luc3RhbGxfa2V5KHN0cnVjdCB3cGFfc20gKnNtLCB1OCBzdWJlbGVtX2lkLCB1OCAqYnVmKQotIAkJb3NfbWVtc2V0KCZnZCwgMCwgc2l6ZW9mKGdkKSk7Ci0gI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCi0gCX0gZWxzZSBpZiAoc3ViZWxlbV9pZCA9PSBXTk1fU0xFRVBfU1VCRUxFTV9JR1RLKSB7Ci0tCQlzdHJ1Y3Qgd3BhX2lndGtfa2RlIGlnZDsKLS0JCXUxNiBrZXlpZHg7Ci0tCi0tCQlvc19tZW1zZXQoJmlnZCwgMCwgc2l6ZW9mKGlnZCkpOwotLQkJa2V5bGVuID0gd3BhX2NpcGhlcl9rZXlfbGVuKHNtLT5tZ210X2dyb3VwX2NpcGhlcik7Ci0tCQlvc19tZW1jcHkoaWdkLmtleWlkLCBidWYgKyAyLCAyKTsKLS0JCW9zX21lbWNweShpZ2QucG4sIGJ1ZiArIDQsIDYpOwotLQotLQkJa2V5aWR4ID0gV1BBX0dFVF9MRTE2KGlnZC5rZXlpZCk7Ci0tCQlvc19tZW1jcHkoaWdkLmlndGssIGJ1ZiArIDEwLCBrZXlsZW4pOwotLQotLQkJd3BhX2hleGR1bXBfa2V5KE1TR19ERUJVRywgIkluc3RhbGwgSUdUSyAoV05NIFNMRUVQKSIsCi0tCQkJCWlnZC5pZ3RrLCBrZXlsZW4pOwotLQkJaWYgKHdwYV9zbV9zZXRfa2V5KHNtLCB3cGFfY2lwaGVyX3RvX2FsZyhzbS0+bWdtdF9ncm91cF9jaXBoZXIpLAotLQkJCQkgICBicm9hZGNhc3RfZXRoZXJfYWRkciwKLS0JCQkJICAga2V5aWR4LCAwLCBpZ2QucG4sIHNpemVvZihpZ2QucG4pLAotLQkJCQkgICBpZ2QuaWd0aywga2V5bGVuKSA8IDApIHsKLS0JCQl3cGFfcHJpbnRmKE1TR19ERUJVRywgIkZhaWxlZCB0byBpbnN0YWxsIHRoZSBJR1RLIGluICIKLS0JCQkJICAgIldOTSBtb2RlIik7Ci0tCQkJb3NfbWVtc2V0KCZpZ2QsIDAsIHNpemVvZihpZ2QpKTsKLSsJCWNvbnN0IHN0cnVjdCB3cGFfaWd0a19rZGUgKmlndGs7Ci0rCi0rCQlpZ3RrID0gKGNvbnN0IHN0cnVjdCB3cGFfaWd0a19rZGUgKikgKGJ1ZiArIDIpOwotKwkJaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfaWd0ayhzbSwgaWd0aykgPCAwKQotIAkJCXJldHVybiAtMTsKLS0JCX0KLS0JCW9zX21lbXNldCgmaWdkLCAwLCBzaXplb2YoaWdkKSk7Ci0gI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCi0gCX0gZWxzZSB7Ci0gCQl3cGFfcHJpbnRmKE1TR19ERUJVRywgIlVua25vd24gZWxlbWVudCBpZCIpOwotZGlmZiAtLWdpdCBhL3NyYy9yc25fc3VwcC93cGFfaS5oIGIvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKLWluZGV4IGY2NTNiYTYuLmFmYzllMzcgMTAwNjQ0Ci0tLS0gYS9zcmMvcnNuX3N1cHAvd3BhX2kuaAotKysrIGIvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKLUBAIC0zMSw2ICszMSwxMCBAQCBzdHJ1Y3Qgd3BhX3NtIHsKLSAJdTggcnhfcmVwbGF5X2NvdW50ZXJbV1BBX1JFUExBWV9DT1VOVEVSX0xFTl07Ci0gCWludCByeF9yZXBsYXlfY291bnRlcl9zZXQ7Ci0gCXU4IHJlcXVlc3RfY291bnRlcltXUEFfUkVQTEFZX0NPVU5URVJfTEVOXTsKLSsJc3RydWN0IHdwYV9ndGsgZ3RrOwotKyNpZmRlZiBDT05GSUdfSUVFRTgwMjExVwotKwlzdHJ1Y3Qgd3BhX2lndGsgaWd0azsKLSsjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVcgKi8KLSAKLSAJc3RydWN0IGVhcG9sX3NtICplYXBvbDsgLyogRUFQT0wgc3RhdGUgbWFjaGluZSBmcm9tIHVwcGVyIGxldmVsIGNvZGUgKi8KLSAKLS0tIAotMi43LjQKLQotRnJvbSA4MjgwMjk0ZTc0ODQ2ZWEzNDIzODlhMGNkMTcyMTUwNTBmYTVhZmU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSm91bmkgTWFsaW5lbiA8akB3MS5maT4KLURhdGU6IFN1biwgMSBPY3QgMjAxNyAxMjoxMjoyNCArMDMwMAotU3ViamVjdDogW1BBVENIIDMvOF0gRXh0ZW5kIHByb3RlY3Rpb24gb2YgR1RLL0lHVEsgcmVpbnN0YWxsYXRpb24gb2YgV05NLVNsZWVwCi0gTW9kZSBjYXNlcwotCi1UaGlzIGV4dGVuZHMgdGhlIHByb3RlY3Rpb24gdG8gdHJhY2sgbGFzdCBjb25maWd1cmVkIEdUSy9JR1RLIHZhbHVlCi1zZXBhcmF0ZWx5IGZyb20gRUFQT0wtS2V5IGZyYW1lcyBhbmQgV05NLVNsZWVwIE1vZGUgZnJhbWVzIHRvIGNvdmVyIGEKLWNvcm5lciBjYXNlIHdoZXJlIHRoZXNlIHR3byBkaWZmZXJlbnQgbWVjaGFuaXNtcyBtYXkgZ2V0IHVzZWQgd2hlbiB0aGUKLUdUSy9JR1RLIGhhcyBjaGFuZ2VkIGFuZCB0cmFja2luZyBhIHNpbmdsZSB2YWx1ZSBpcyBub3Qgc3VmZmljaWVudCB0bwotZGV0ZWN0IGEgcG9zc2libGUga2V5IHJlY29uZmlndXJhdGlvbi4KLQotU2lnbmVkLW9mZi1ieTogSm91bmkgTWFsaW5lbiA8akB3MS5maT4KLS0tLQotIHNyYy9yc25fc3VwcC93cGEuYyAgIHwgNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQotIHNyYy9yc25fc3VwcC93cGFfaS5oIHwgIDIgKysKLSAyIGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3dwYS5jIGIvc3JjL3Jzbl9zdXBwL3dwYS5jCi1pbmRleCA5NWJkN2JlLi43YTJjNjhkIDEwMDY0NAotLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYS5jCi0rKysgYi9zcmMvcnNuX3N1cHAvd3BhLmMKLUBAIC03MDksMTQgKzcwOSwxNyBAQCBzdHJ1Y3Qgd3BhX2d0a19kYXRhIHsKLSAKLSBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X2luc3RhbGxfZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAotIAkJCQkgICAgICBjb25zdCBzdHJ1Y3Qgd3BhX2d0a19kYXRhICpnZCwKLS0JCQkJICAgICAgY29uc3QgdTggKmtleV9yc2MpCi0rCQkJCSAgICAgIGNvbnN0IHU4ICprZXlfcnNjLCBpbnQgd25tX3NsZWVwKQotIHsKLSAJY29uc3QgdTggKl9ndGsgPSBnZC0+Z3RrOwotIAl1OCBndGtfYnVmWzMyXTsKLSAKLSAJLyogRGV0ZWN0IHBvc3NpYmxlIGtleSByZWluc3RhbGxhdGlvbiAqLwotLQlpZiAoc20tPmd0ay5ndGtfbGVuID09IChzaXplX3QpIGdkLT5ndGtfbGVuICYmCi0tCSAgICBvc19tZW1jbXAoc20tPmd0ay5ndGssIGdkLT5ndGssIHNtLT5ndGsuZ3RrX2xlbikgPT0gMCkgewotKwlpZiAoKHNtLT5ndGsuZ3RrX2xlbiA9PSAoc2l6ZV90KSBnZC0+Z3RrX2xlbiAmJgotKwkgICAgIG9zX21lbWNtcChzbS0+Z3RrLmd0aywgZ2QtPmd0aywgc20tPmd0ay5ndGtfbGVuKSA9PSAwKSB8fAotKwkgICAgKHNtLT5ndGtfd25tX3NsZWVwLmd0a19sZW4gPT0gKHNpemVfdCkgZ2QtPmd0a19sZW4gJiYKLSsJICAgICBvc19tZW1jbXAoc20tPmd0a193bm1fc2xlZXAuZ3RrLCBnZC0+Z3RrLAotKwkJICAgICAgIHNtLT5ndGtfd25tX3NsZWVwLmd0a19sZW4pID09IDApKSB7Ci0gCQl3cGFfZGJnKHNtLT5jdHgtPm1zZ19jdHgsIE1TR19ERUJVRywKLSAJCQkiV1BBOiBOb3QgcmVpbnN0YWxsaW5nIGFscmVhZHkgaW4tdXNlIEdUSyB0byB0aGUgZHJpdmVyIChrZXlpZHg9JWQgdHg9JWQgbGVuPSVkKSIsCi0gCQkJZ2QtPmtleWlkeCwgZ2QtPnR4LCBnZC0+Z3RrX2xlbik7Ci1AQCAtNzU3LDggKzc2MCwxNCBAQCBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X2luc3RhbGxfZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAotIAl9Ci0gCW9zX21lbXNldChndGtfYnVmLCAwLCBzaXplb2YoZ3RrX2J1ZikpOwotIAotLQlzbS0+Z3RrLmd0a19sZW4gPSBnZC0+Z3RrX2xlbjsKLS0Jb3NfbWVtY3B5KHNtLT5ndGsuZ3RrLCBnZC0+Z3RrLCBzbS0+Z3RrLmd0a19sZW4pOwotKwlpZiAod25tX3NsZWVwKSB7Ci0rCQlzbS0+Z3RrX3dubV9zbGVlcC5ndGtfbGVuID0gZ2QtPmd0a19sZW47Ci0rCQlvc19tZW1jcHkoc20tPmd0a193bm1fc2xlZXAuZ3RrLCBnZC0+Z3RrLAotKwkJCSAgc20tPmd0a193bm1fc2xlZXAuZ3RrX2xlbik7Ci0rCX0gZWxzZSB7Ci0rCQlzbS0+Z3RrLmd0a19sZW4gPSBnZC0+Z3RrX2xlbjsKLSsJCW9zX21lbWNweShzbS0+Z3RrLmd0aywgZ2QtPmd0aywgc20tPmd0ay5ndGtfbGVuKTsKLSsJfQotIAotIAlyZXR1cm4gMDsKLSB9Ci1AQCAtODUyLDcgKzg2MSw3IEBAIHN0YXRpYyBpbnQgd3BhX3N1cHBsaWNhbnRfcGFpcndpc2VfZ3RrKHN0cnVjdCB3cGFfc20gKnNtLAotIAkgICAgKHdwYV9zdXBwbGljYW50X2NoZWNrX2dyb3VwX2NpcGhlcihzbSwgc20tPmdyb3VwX2NpcGhlciwKLSAJCQkJCSAgICAgICBndGtfbGVuLCBndGtfbGVuLAotIAkJCQkJICAgICAgICZnZC5rZXlfcnNjX2xlbiwgJmdkLmFsZykgfHwKLS0JICAgICB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzbSwgJmdkLCBrZXlfcnNjKSkpIHsKLSsJICAgICB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzbSwgJmdkLCBrZXlfcnNjLCAwKSkpIHsKLSAJCXdwYV9kYmcoc20tPmN0eC0+bXNnX2N0eCwgTVNHX0RFQlVHLAotIAkJCSJSU046IEZhaWxlZCB0byBpbnN0YWxsIEdUSyIpOwotIAkJb3NfbWVtc2V0KCZnZCwgMCwgc2l6ZW9mKGdkKSk7Ci1AQCAtODY4LDE0ICs4NzcsMTggQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9wYWlyd2lzZV9ndGsoc3RydWN0IHdwYV9zbSAqc20sCi0gCi0gI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCi0gc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2lndGsoc3RydWN0IHdwYV9zbSAqc20sCi0tCQkJCSAgICAgICBjb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICppZ3RrKQotKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqaWd0aywKLSsJCQkJICAgICAgIGludCB3bm1fc2xlZXApCi0gewotIAlzaXplX3QgbGVuID0gd3BhX2NpcGhlcl9rZXlfbGVuKHNtLT5tZ210X2dyb3VwX2NpcGhlcik7Ci0gCXUxNiBrZXlpZHggPSBXUEFfR0VUX0xFMTYoaWd0ay0+a2V5aWQpOwotIAotIAkvKiBEZXRlY3QgcG9zc2libGUga2V5IHJlaW5zdGFsbGF0aW9uICovCi0tCWlmIChzbS0+aWd0ay5pZ3RrX2xlbiA9PSBsZW4gJiYKLS0JICAgIG9zX21lbWNtcChzbS0+aWd0ay5pZ3RrLCBpZ3RrLT5pZ3RrLCBzbS0+aWd0ay5pZ3RrX2xlbikgPT0gMCkgewotKwlpZiAoKHNtLT5pZ3RrLmlndGtfbGVuID09IGxlbiAmJgotKwkgICAgIG9zX21lbWNtcChzbS0+aWd0ay5pZ3RrLCBpZ3RrLT5pZ3RrLCBzbS0+aWd0ay5pZ3RrX2xlbikgPT0gMCkgfHwKLSsJICAgIChzbS0+aWd0a193bm1fc2xlZXAuaWd0a19sZW4gPT0gbGVuICYmCi0rCSAgICAgb3NfbWVtY21wKHNtLT5pZ3RrX3dubV9zbGVlcC5pZ3RrLCBpZ3RrLT5pZ3RrLAotKwkJICAgICAgIHNtLT5pZ3RrX3dubV9zbGVlcC5pZ3RrX2xlbikgPT0gMCkpIHsKLSAJCXdwYV9kYmcoc20tPmN0eC0+bXNnX2N0eCwgTVNHX0RFQlVHLAotIAkJCSJXUEE6IE5vdCByZWluc3RhbGxpbmcgYWxyZWFkeSBpbi11c2UgSUdUSyB0byB0aGUgZHJpdmVyIChrZXlpZHg9JWQpIiwKLSAJCQlrZXlpZHgpOwotQEAgLTkwMCw4ICs5MTMsMTQgQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2lndGsoc3RydWN0IHdwYV9zbSAqc20sCi0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAKLS0Jc20tPmlndGsuaWd0a19sZW4gPSBsZW47Ci0tCW9zX21lbWNweShzbS0+aWd0ay5pZ3RrLCBpZ3RrLT5pZ3RrLCBzbS0+aWd0ay5pZ3RrX2xlbik7Ci0rCWlmICh3bm1fc2xlZXApIHsKLSsJCXNtLT5pZ3RrX3dubV9zbGVlcC5pZ3RrX2xlbiA9IGxlbjsKLSsJCW9zX21lbWNweShzbS0+aWd0a193bm1fc2xlZXAuaWd0aywgaWd0ay0+aWd0aywKLSsJCQkgIHNtLT5pZ3RrX3dubV9zbGVlcC5pZ3RrX2xlbik7Ci0rCX0gZWxzZSB7Ci0rCQlzbS0+aWd0ay5pZ3RrX2xlbiA9IGxlbjsKLSsJCW9zX21lbWNweShzbS0+aWd0ay5pZ3RrLCBpZ3RrLT5pZ3RrLCBzbS0+aWd0ay5pZ3RrX2xlbik7Ci0rCX0KLSAKLSAJcmV0dXJuIDA7Ci0gfQotQEAgLTkyNCw3ICs5NDMsNyBAQCBzdGF0aWMgaW50IGllZWU4MDIxMXdfc2V0X2tleXMoc3RydWN0IHdwYV9zbSAqc20sCi0gCQkJcmV0dXJuIC0xOwotIAotIAkJaWd0ayA9IChjb25zdCBzdHJ1Y3Qgd3BhX2lndGtfa2RlICopIGllLT5pZ3RrOwotLQkJaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfaWd0ayhzbSwgaWd0aykgPCAwKQotKwkJaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfaWd0ayhzbSwgaWd0aywgMCkgPCAwKQotIAkJCXJldHVybiAtMTsKLSAJfQotIAotQEAgLTE1NzQsNyArMTU5Myw3IEBAIHN0YXRpYyB2b2lkIHdwYV9zdXBwbGljYW50X3Byb2Nlc3NfMV9vZl8yKHN0cnVjdCB3cGFfc20gKnNtLAotIAlpZiAod3BhX3N1cHBsaWNhbnRfcnNjX3JlbGF4YXRpb24oc20sIGtleS0+a2V5X3JzYykpCi0gCQlrZXlfcnNjID0gbnVsbF9yc2M7Ci0gCi0tCWlmICh3cGFfc3VwcGxpY2FudF9pbnN0YWxsX2d0ayhzbSwgJmdkLCBrZXlfcnNjKSB8fAotKwlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9ndGsoc20sICZnZCwga2V5X3JzYywgMCkgfHwKLSAJICAgIHdwYV9zdXBwbGljYW50X3NlbmRfMl9vZl8yKHNtLCBrZXksIHZlciwga2V5X2luZm8pIDwgMCkKLSAJCWdvdG8gZmFpbGVkOwotIAlvc19tZW1zZXQoJmdkLCAwLCBzaXplb2YoZ2QpKTsKLUBAIC0yMzg2LDggKzI0MDUsMTAgQEAgdm9pZCB3cGFfc21fbm90aWZ5X2Fzc29jKHN0cnVjdCB3cGFfc20gKnNtLCBjb25zdCB1OCAqYnNzaWQpCi0gCQlzbS0+dHB0a19zZXQgPSAwOwotIAkJb3NfbWVtc2V0KCZzbS0+dHB0aywgMCwgc2l6ZW9mKHNtLT50cHRrKSk7Ci0gCQlvc19tZW1zZXQoJnNtLT5ndGssIDAsIHNpemVvZihzbS0+Z3RrKSk7Ci0rCQlvc19tZW1zZXQoJnNtLT5ndGtfd25tX3NsZWVwLCAwLCBzaXplb2Yoc20tPmd0a193bm1fc2xlZXApKTsKLSAjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVcKLSAJCW9zX21lbXNldCgmc20tPmlndGssIDAsIHNpemVvZihzbS0+aWd0aykpOwotKwkJb3NfbWVtc2V0KCZzbS0+aWd0a193bm1fc2xlZXAsIDAsIHNpemVvZihzbS0+aWd0a193bm1fc2xlZXApKTsKLSAjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVcgKi8KLSAJfQotIAotQEAgLTI5MjAsOCArMjk0MSwxMCBAQCB2b2lkIHdwYV9zbV9kcm9wX3NhKHN0cnVjdCB3cGFfc20gKnNtKQotIAlvc19tZW1zZXQoJnNtLT5wdGssIDAsIHNpemVvZihzbS0+cHRrKSk7Ci0gCW9zX21lbXNldCgmc20tPnRwdGssIDAsIHNpemVvZihzbS0+dHB0aykpOwotIAlvc19tZW1zZXQoJnNtLT5ndGssIDAsIHNpemVvZihzbS0+Z3RrKSk7Ci0rCW9zX21lbXNldCgmc20tPmd0a193bm1fc2xlZXAsIDAsIHNpemVvZihzbS0+Z3RrX3dubV9zbGVlcCkpOwotICNpZmRlZiBDT05GSUdfSUVFRTgwMjExVwotIAlvc19tZW1zZXQoJnNtLT5pZ3RrLCAwLCBzaXplb2Yoc20tPmlndGspKTsKLSsJb3NfbWVtc2V0KCZzbS0+aWd0a193bm1fc2xlZXAsIDAsIHNpemVvZihzbS0+aWd0a193bm1fc2xlZXApKTsKLSAjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVcgKi8KLSAjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVIKLSAJb3NfbWVtc2V0KHNtLT54eGtleSwgMCwgc2l6ZW9mKHNtLT54eGtleSkpOwotQEAgLTI5ODYsNyArMzAwOSw3IEBAIGludCB3cGFfd25tc2xlZXBfaW5zdGFsbF9rZXkoc3RydWN0IHdwYV9zbSAqc20sIHU4IHN1YmVsZW1faWQsIHU4ICpidWYpCi0gCi0gCQl3cGFfaGV4ZHVtcF9rZXkoTVNHX0RFQlVHLCAiSW5zdGFsbCBHVEsgKFdOTSBTTEVFUCkiLAotIAkJCQlnZC5ndGssIGdkLmd0a19sZW4pOwotLQkJaWYgKHdwYV9zdXBwbGljYW50X2luc3RhbGxfZ3RrKHNtLCAmZ2QsIGtleV9yc2MpKSB7Ci0rCQlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9ndGsoc20sICZnZCwga2V5X3JzYywgMSkpIHsKLSAJCQlvc19tZW1zZXQoJmdkLCAwLCBzaXplb2YoZ2QpKTsKLSAJCQl3cGFfcHJpbnRmKE1TR19ERUJVRywgIkZhaWxlZCB0byBpbnN0YWxsIHRoZSBHVEsgaW4gIgotIAkJCQkgICAiV05NIG1vZGUiKTsKLUBAIC0yOTk4LDcgKzMwMjEsNyBAQCBpbnQgd3BhX3dubXNsZWVwX2luc3RhbGxfa2V5KHN0cnVjdCB3cGFfc20gKnNtLCB1OCBzdWJlbGVtX2lkLCB1OCAqYnVmKQotIAkJY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqaWd0azsKLSAKLSAJCWlndGsgPSAoY29uc3Qgc3RydWN0IHdwYV9pZ3RrX2tkZSAqKSAoYnVmICsgMik7Ci0tCQlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9pZ3RrKHNtLCBpZ3RrKSA8IDApCi0rCQlpZiAod3BhX3N1cHBsaWNhbnRfaW5zdGFsbF9pZ3RrKHNtLCBpZ3RrLCAxKSA8IDApCi0gCQkJcmV0dXJuIC0xOwotICNlbmRpZiAvKiBDT05GSUdfSUVFRTgwMjExVyAqLwotIAl9IGVsc2UgewotZGlmZiAtLWdpdCBhL3NyYy9yc25fc3VwcC93cGFfaS5oIGIvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKLWluZGV4IGFmYzllMzcuLjlhNTQ2MzEgMTAwNjQ0Ci0tLS0gYS9zcmMvcnNuX3N1cHAvd3BhX2kuaAotKysrIGIvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKLUBAIC0zMiw4ICszMiwxMCBAQCBzdHJ1Y3Qgd3BhX3NtIHsKLSAJaW50IHJ4X3JlcGxheV9jb3VudGVyX3NldDsKLSAJdTggcmVxdWVzdF9jb3VudGVyW1dQQV9SRVBMQVlfQ09VTlRFUl9MRU5dOwotIAlzdHJ1Y3Qgd3BhX2d0ayBndGs7Ci0rCXN0cnVjdCB3cGFfZ3RrIGd0a193bm1fc2xlZXA7Ci0gI2lmZGVmIENPTkZJR19JRUVFODAyMTFXCi0gCXN0cnVjdCB3cGFfaWd0ayBpZ3RrOwotKwlzdHJ1Y3Qgd3BhX2lndGsgaWd0a193bm1fc2xlZXA7Ci0gI2VuZGlmIC8qIENPTkZJR19JRUVFODAyMTFXICovCi0gCi0gCXN0cnVjdCBlYXBvbF9zbSAqZWFwb2w7IC8qIEVBUE9MIHN0YXRlIG1hY2hpbmUgZnJvbSB1cHBlciBsZXZlbCBjb2RlICovCi0tLSAKLTIuNy40Ci0KLUZyb20gOGY4MmJjOTRlODY5N2E5ZDQ3ZmE4Nzc0ZGZkYWFlZGUxMDg0OTEyYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hdGh5IFZhbmhvZWYgPE1hdGh5LlZhbmhvZWZAY3Mua3VsZXV2ZW4uYmU+Ci1EYXRlOiBGcmksIDI5IFNlcCAyMDE3IDA0OjIyOjUxICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggNC84XSBQcmV2ZW50IGluc3RhbGxhdGlvbiBvZiBhbiBhbGwtemVybyBUSwotCi1Qcm9wZXJseSB0cmFjayB3aGV0aGVyIGEgUFRLIGhhcyBhbHJlYWR5IGJlZW4gaW5zdGFsbGVkIHRvIHRoZSBkcml2ZXIKLWFuZCB0aGUgVEsgcGFydCBjbGVhcmVkIGZyb20gbWVtb3J5LiBUaGlzIHByZXZlbnRzIGFuIGF0dGFja2VyIGZyb20KLXRyeWluZyB0byB0cmljayB0aGUgY2xpZW50IGludG8gaW5zdGFsbGluZyBhbiBhbGwtemVybyBUSy4KLQotVGhpcyBmaXhlcyB0aGUgZWFybGllciBmaXggaW4gY29tbWl0Ci1hZDAwZDY0ZTdkODgyN2IzY2ViZDY2NWEwY2ViMDhhZGFiZjE1ZTFlICgnRml4IFRLIGNvbmZpZ3VyYXRpb24gdG8gdGhlCi1kcml2ZXIgaW4gRUFQT0wtS2V5IDMvNCByZXRyeSBjYXNlJykgd2hpY2ggZGlkIG5vdCB0YWtlIGludG8gYWNjb3VudAotcG9zc2liaWxpdHkgb2YgYW4gZXh0cmEgbWVzc2FnZSAxLzQgc2hvd2luZyB1cCBiZXR3ZWVuIHJldHJpZXMgb2YKLW1lc3NhZ2UgMy80LgotCi1TaWduZWQtb2ZmLWJ5OiBNYXRoeSBWYW5ob2VmIDxNYXRoeS5WYW5ob2VmQGNzLmt1bGV1dmVuLmJlPgotLS0tCi0gc3JjL2NvbW1vbi93cGFfY29tbW9uLmggfCAxICsKLSBzcmMvcnNuX3N1cHAvd3BhLmMgICAgICB8IDUgKystLS0KLSBzcmMvcnNuX3N1cHAvd3BhX2kuaCAgICB8IDEgLQotIDMgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi93cGFfY29tbW9uLmggYi9zcmMvY29tbW9uL3dwYV9jb21tb24uaAotaW5kZXggZDIwMDI4NS4uMTAyMWNjYiAxMDA2NDQKLS0tLSBhL3NyYy9jb21tb24vd3BhX2NvbW1vbi5oCi0rKysgYi9zcmMvY29tbW9uL3dwYV9jb21tb24uaAotQEAgLTIxNSw2ICsyMTUsNyBAQCBzdHJ1Y3Qgd3BhX3B0ayB7Ci0gCXNpemVfdCBrY2tfbGVuOwotIAlzaXplX3Qga2VrX2xlbjsKLSAJc2l6ZV90IHRrX2xlbjsKLSsJaW50IGluc3RhbGxlZDsgLyogMSBpZiBrZXkgaGFzIGFscmVhZHkgYmVlbiBpbnN0YWxsZWQgdG8gZHJpdmVyICovCi0gfTsKLSAKLSBzdHJ1Y3Qgd3BhX2d0ayB7Ci1kaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3dwYS5jIGIvc3JjL3Jzbl9zdXBwL3dwYS5jCi1pbmRleCA3YTJjNjhkLi4wNTUwYTQxIDEwMDY0NAotLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYS5jCi0rKysgYi9zcmMvcnNuX3N1cHAvd3BhLmMKLUBAIC01MTAsNyArNTEwLDYgQEAgc3RhdGljIHZvaWQgd3BhX3N1cHBsaWNhbnRfcHJvY2Vzc18xX29mXzQoc3RydWN0IHdwYV9zbSAqc20sCi0gCQlvc19tZW1zZXQoYnVmLCAwLCBzaXplb2YoYnVmKSk7Ci0gCX0KLSAJc20tPnRwdGtfc2V0ID0gMTsKLS0Jc20tPnRrX3RvX3NldCA9IDE7Ci0gCi0gCWtkZSA9IHNtLT5hc3NvY193cGFfaWU7Ci0gCWtkZV9sZW4gPSBzbS0+YXNzb2Nfd3BhX2llX2xlbjsKLUBAIC02MTUsNyArNjE0LDcgQEAgc3RhdGljIGludCB3cGFfc3VwcGxpY2FudF9pbnN0YWxsX3B0ayhzdHJ1Y3Qgd3BhX3NtICpzbSwKLSAJZW51bSB3cGFfYWxnIGFsZzsKLSAJY29uc3QgdTggKmtleV9yc2M7Ci0gCi0tCWlmICghc20tPnRrX3RvX3NldCkgewotKwlpZiAoc20tPnB0ay5pbnN0YWxsZWQpIHsKLSAJCXdwYV9kYmcoc20tPmN0eC0+bXNnX2N0eCwgTVNHX0RFQlVHLAotIAkJCSJXUEE6IERvIG5vdCByZS1pbnN0YWxsIHNhbWUgUFRLIHRvIHRoZSBkcml2ZXIiKTsKLSAJCXJldHVybiAwOwotQEAgLTY1OSw3ICs2NTgsNyBAQCBzdGF0aWMgaW50IHdwYV9zdXBwbGljYW50X2luc3RhbGxfcHRrKHN0cnVjdCB3cGFfc20gKnNtLAotIAotIAkvKiBUSyBpcyBub3QgbmVlZGVkIGFueW1vcmUgaW4gc3VwcGxpY2FudCAqLwotIAlvc19tZW1zZXQoc20tPnB0ay50aywgMCwgV1BBX1RLX01BWF9MRU4pOwotLQlzbS0+dGtfdG9fc2V0ID0gMDsKLSsJc20tPnB0ay5pbnN0YWxsZWQgPSAxOwotIAotIAlpZiAoc20tPndwYV9wdGtfcmVrZXkpIHsKLSAJCWVsb29wX2NhbmNlbF90aW1lb3V0KHdwYV9zbV9yZWtleV9wdGssIHNtLCBOVUxMKTsKLWRpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvd3BhX2kuaCBiL3NyYy9yc25fc3VwcC93cGFfaS5oCi1pbmRleCA5YTU0NjMxLi40MWYzNzFmIDEwMDY0NAotLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKLSsrKyBiL3NyYy9yc25fc3VwcC93cGFfaS5oCi1AQCAtMjQsNyArMjQsNiBAQCBzdHJ1Y3Qgd3BhX3NtIHsKLSAJc3RydWN0IHdwYV9wdGsgcHRrLCB0cHRrOwotIAlpbnQgcHRrX3NldCwgdHB0a19zZXQ7Ci0gCXVuc2lnbmVkIGludCBtc2dfM19vZl80X29rOjE7Ci0tCXVuc2lnbmVkIGludCB0a190b19zZXQ6MTsKLSAJdTggc25vbmNlW1dQQV9OT05DRV9MRU5dOwotIAl1OCBhbm9uY2VbV1BBX05PTkNFX0xFTl07IC8qIEFOb25jZSBmcm9tIHRoZSBsYXN0IDEvNCBtc2cgKi8KLSAJaW50IHJlbmV3X3Nub25jZTsKLS0tIAotMi43LjQKLQotRnJvbSAxMmZhYzA5YjQzN2ExZGM4YTBmMjUzZTI2NTkzNGE4YWFmNGQyZjhiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSm91bmkgTWFsaW5lbiA8akB3MS5maT4KLURhdGU6IFN1biwgMSBPY3QgMjAxNyAxMjozMjo1NyArMDMwMAotU3ViamVjdDogW1BBVENIIDUvOF0gRml4IFBUSyByZWtleWluZyB0byBnZW5lcmF0ZSBhIG5ldyBBTm9uY2UKLQotVGhlIEF1dGhlbnRpY2F0b3Igc3RhdGUgbWFjaGluZSBwYXRoIGZvciBQVEsgcmVrZXlpbmcgZW5kZWQgdXAgYnlwYXNzaW5nCi10aGUgQVVUSEVOVElDQVRJT04yIHN0YXRlIHdoZXJlIGEgbmV3IEFOb25jZSBpcyBnZW5lcmF0ZWQgd2hlbiBnb2luZwotZGlyZWN0bHkgdG8gdGhlIFBUS1NUQVJUIHN0YXRlIHNpbmNlIHRoZXJlIGlzIG5vIG5lZWQgdG8gdHJ5IHRvCi1kZXRlcm1pbmUgdGhlIFBNSyBhZ2FpbiBpbiBzdWNoIGEgY2FzZS4gVGhpcyBpcyBmYXIgZnJvbSBpZGVhbCBzaW5jZSB0aGUKLW5ldyBQVEsgd291bGQgZGVwZW5kIG9uIGEgbmV3IG5vbmNlIG9ubHkgZnJvbSB0aGUgc3VwcGxpY2FudC4KLQotRml4IHRoaXMgYnkgZ2VuZXJhdGluZyBhIG5ldyBBTm9uY2Ugd2hlbiBtb3ZpbmcgdG8gdGhlIFBUS1NUQVJUIHN0YXRlCi1mb3IgdGhlIHB1cnBvc2Ugb2Ygc3RhcnRpbmcgbmV3IDQtd2F5IGhhbmRzaGFrZSB0byByZWtleSBQVEsuCi0KLVNpZ25lZC1vZmYtYnk6IEpvdW5pIE1hbGluZW4gPGpAdzEuZmk+Ci0tLS0KLSBzcmMvYXAvd3BhX2F1dGguYyB8IDI0ICsrKysrKysrKysrKysrKysrKysrKy0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2FwL3dwYV9hdXRoLmMgYi9zcmMvYXAvd3BhX2F1dGguYwotaW5kZXggNzA3OTcxZC4uYmYxMGNjMSAxMDA2NDQKLS0tLSBhL3NyYy9hcC93cGFfYXV0aC5jCi0rKysgYi9zcmMvYXAvd3BhX2F1dGguYwotQEAgLTE5MDEsNiArMTkwMSwyMSBAQCBTTV9TVEFURShXUEFfUFRLLCBBVVRIRU5USUNBVElPTjIpCi0gfQotIAotIAotK3N0YXRpYyBpbnQgd3BhX2F1dGhfc21fcHRrX3VwZGF0ZShzdHJ1Y3Qgd3BhX3N0YXRlX21hY2hpbmUgKnNtKQotK3sKLSsJaWYgKHJhbmRvbV9nZXRfYnl0ZXMoc20tPkFOb25jZSwgV1BBX05PTkNFX0xFTikpIHsKLSsJCXdwYV9wcmludGYoTVNHX0VSUk9SLAotKwkJCSAgICJXUEE6IEZhaWxlZCB0byBnZXQgcmFuZG9tIGRhdGEgZm9yIEFOb25jZSIpOwotKwkJc20tPkRpc2Nvbm5lY3QgPSBUUlVFOwotKwkJcmV0dXJuIC0xOwotKwl9Ci0rCXdwYV9oZXhkdW1wKE1TR19ERUJVRywgIldQQTogQXNzaWduIG5ldyBBTm9uY2UiLCBzbS0+QU5vbmNlLAotKwkJICAgIFdQQV9OT05DRV9MRU4pOwotKwlzbS0+VGltZW91dEN0ciA9IDA7Ci0rCXJldHVybiAwOwotK30KLSsKLSsKLSBTTV9TVEFURShXUEFfUFRLLCBJTklUUE1LKQotIHsKLSAJdTggbXNrWzIgKiBQTUtfTEVOXTsKLUBAIC0yNDU4LDkgKzI0NzMsMTIgQEAgU01fU1RFUChXUEFfUFRLKQotIAkJU01fRU5URVIoV1BBX1BUSywgQVVUSEVOVElDQVRJT04pOwotIAllbHNlIGlmIChzbS0+UmVBdXRoZW50aWNhdGlvblJlcXVlc3QpCi0gCQlTTV9FTlRFUihXUEFfUFRLLCBBVVRIRU5USUNBVElPTjIpOwotLQllbHNlIGlmIChzbS0+UFRLUmVxdWVzdCkKLS0JCVNNX0VOVEVSKFdQQV9QVEssIFBUS1NUQVJUKTsKLS0JZWxzZSBzd2l0Y2ggKHNtLT53cGFfcHRrX3N0YXRlKSB7Ci0rCWVsc2UgaWYgKHNtLT5QVEtSZXF1ZXN0KSB7Ci0rCQlpZiAod3BhX2F1dGhfc21fcHRrX3VwZGF0ZShzbSkgPCAwKQotKwkJCVNNX0VOVEVSKFdQQV9QVEssIERJU0NPTk5FQ1RFRCk7Ci0rCQllbHNlCi0rCQkJU01fRU5URVIoV1BBX1BUSywgUFRLU1RBUlQpOwotKwl9IGVsc2Ugc3dpdGNoIChzbS0+d3BhX3B0a19zdGF0ZSkgewotIAljYXNlIFdQQV9QVEtfSU5JVElBTElaRToKLSAJCWJyZWFrOwotIAljYXNlIFdQQV9QVEtfRElTQ09OTkVDVDoKLS0tIAotMi43LjQKLQotRnJvbSA2YzRiZWQ0ZjQ3ZDE5NjBlYzA0OTgxYTlkNTBlNTA3NmFlYTUyMjNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSm91bmkgTWFsaW5lbiA8akB3MS5maT4KLURhdGU6IEZyaSwgMjIgU2VwIDIwMTcgMTE6MDM6MTUgKzAzMDAKLVN1YmplY3Q6IFtQQVRDSCA2LzhdIFRETFM6IFJlamVjdCBUUEstVEsgcmVjb25maWd1cmF0aW9uCi0KLURvIG5vdCB0cnkgdG8gcmVjb25maWd1cmUgdGhlIHNhbWUgVFBLLVRLIHRvIHRoZSBkcml2ZXIgYWZ0ZXIgaXQgaGFzCi1iZWVuIHN1Y2Nlc3NmdWxseSBjb25maWd1cmVkLiBUaGlzIGlzIGFuIGV4cGxpY2l0IGNoZWNrIHRvIGF2b2lkIGlzc3VlcwotcmVsYXRlZCB0byByZXNldHRpbmcgdGhlIFRYL1JYIHBhY2tldCBudW1iZXIuIFRoZXJlIHdhcyBhbHJlYWR5IGEgY2hlY2sKLWZvciB0aGlzIGZvciBUUEsgTTIgKHJldHJpZXMgb2YgdGhhdCBtZXNzYWdlIGFyZSBpZ25vcmVkIGNvbXBsZXRlbHkpLCBzbwotdGhhdCBiZWhhdmlvciBkb2VzIG5vdCBnZXQgbW9kaWZpZWQuCi0KLUZvciBUUEsgTTMsIHRoZSBUUEstVEsgY291bGQgaGF2ZSBiZWVuIHJlY29uZmlndXJlZCwgYnV0IHRoYXQgd2FzCi1mb2xsb3dlZCBieSBpbW1lZGlhdGUgdGVhcmRvd24gb2YgdGhlIGxpbmsgZHVlIHRvIGFuIGlzc3VlIGluIHVwZGF0aW5nCi10aGUgU1RBIGVudHJ5LiBGdXJ0aGVybW9yZSwgZm9yIFRETFMgd2l0aCBhbnkgcmVhbCBzZWN1cml0eSAoaS5lLiwKLWlnbm9yaW5nIG9wZW4vV0VQKSwgdGhlIFRQSyBtZXNzYWdlIGV4Y2hhbmdlIGlzIHByb3RlY3RlZCBvbiB0aGUgQVAgcGF0aAotYW5kIHNpbXBsZSByZXBsYXkgYXR0YWNrcyBhcmUgbm90IGZlYXNpYmxlLgotCi1BcyBhbiBhZGRpdGlvbmFsIGNvcm5lciBjYXNlLCBtYWtlIHN1cmUgdGhlIGxvY2FsIG5vbmNlIGdldHMgdXBkYXRlZCBpZgotdGhlIHBlZXIgdXNlcyBhIHZlcnkgdW5saWtlbHkgInJhbmRvbSBub25jZSIgb2YgYWxsIHplcm9zLgotCi1TaWduZWQtb2ZmLWJ5OiBKb3VuaSBNYWxpbmVuIDxqQHcxLmZpPgotLS0tCi0gc3JjL3Jzbl9zdXBwL3RkbHMuYyB8IDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvdGRscy5jIGIvc3JjL3Jzbl9zdXBwL3RkbHMuYwotaW5kZXggZTQyNDE2OC4uOWViOTczOCAxMDA2NDQKLS0tLSBhL3NyYy9yc25fc3VwcC90ZGxzLmMKLSsrKyBiL3NyYy9yc25fc3VwcC90ZGxzLmMKLUBAIC0xMTIsNiArMTEyLDcgQEAgc3RydWN0IHdwYV90ZGxzX3BlZXIgewotIAkJdTggdGtbMTZdOyAvKiBUUEstVEs7IGFzc3VtaW5nIG9ubHkgQ0NNUCB3aWxsIGJlIHVzZWQgKi8KLSAJfSB0cGs7Ci0gCWludCB0cGtfc2V0OwotKwlpbnQgdGtfc2V0OyAvKiBUUEstVEsgY29uZmlndXJlZCB0byB0aGUgZHJpdmVyICovCi0gCWludCB0cGtfc3VjY2VzczsKLSAJaW50IHRwa19pbl9wcm9ncmVzczsKLSAKLUBAIC0xOTIsNiArMTkzLDIwIEBAIHN0YXRpYyBpbnQgd3BhX3RkbHNfc2V0X2tleShzdHJ1Y3Qgd3BhX3NtICpzbSwgc3RydWN0IHdwYV90ZGxzX3BlZXIgKnBlZXIpCi0gCXU4IHJzY1s2XTsKLSAJZW51bSB3cGFfYWxnIGFsZzsKLSAKLSsJaWYgKHBlZXItPnRrX3NldCkgewotKwkJLyoKLSsJCSAqIFRoaXMgc2FtZSBUUEstVEsgaGFzIGFscmVhZHkgYmVlbiBjb25maWd1cmVkIHRvIHRoZSBkcml2ZXIKLSsJCSAqIGFuZCB0aGlzIG5ldyBjb25maWd1cmF0aW9uIGF0dGVtcHQgKGxpa2VseSBkdWUgdG8gYW4KLSsJCSAqIHVuZXhwZWN0ZWQgcmV0cmFuc21pdHRlZCBmcmFtZSkgd291bGQgcmVzdWx0IGluIGNsZWFyaW5nCi0rCQkgKiB0aGUgVFgvUlggc2VxdWVuY2UgbnVtYmVyIHdoaWNoIGNhbiBicmVhayBzZWN1cml0eSwgc28gbXVzdAotKwkJICogbm90IGFsbG93IHRoYXQgdG8gaGFwcGVuLgotKwkJICovCi0rCQl3cGFfcHJpbnRmKE1TR19JTkZPLCAiVERMUzogVFBLLVRLIGZvciB0aGUgcGVlciAiIE1BQ1NUUgotKwkJCSAgICIgaGFzIGFscmVhZHkgYmVlbiBjb25maWd1cmVkIHRvIHRoZSBkcml2ZXIgLSBkbyBub3QgcmVjb25maWd1cmUiLAotKwkJCSAgIE1BQzJTVFIocGVlci0+YWRkcikpOwotKwkJcmV0dXJuIC0xOwotKwl9Ci0rCi0gCW9zX21lbXNldChyc2MsIDAsIDYpOwotIAotIAlzd2l0Y2ggKHBlZXItPmNpcGhlcikgewotQEAgLTIwOSwxMiArMjI0LDE1IEBAIHN0YXRpYyBpbnQgd3BhX3RkbHNfc2V0X2tleShzdHJ1Y3Qgd3BhX3NtICpzbSwgc3RydWN0IHdwYV90ZGxzX3BlZXIgKnBlZXIpCi0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAKLSsJd3BhX3ByaW50ZihNU0dfREVCVUcsICJURExTOiBDb25maWd1cmUgcGFpcndpc2Uga2V5IGZvciBwZWVyICIgTUFDU1RSLAotKwkJICAgTUFDMlNUUihwZWVyLT5hZGRyKSk7Ci0gCWlmICh3cGFfc21fc2V0X2tleShzbSwgYWxnLCBwZWVyLT5hZGRyLCAtMSwgMSwKLSAJCQkgICByc2MsIHNpemVvZihyc2MpLCBwZWVyLT50cGsudGssIGtleV9sZW4pIDwgMCkgewotIAkJd3BhX3ByaW50ZihNU0dfV0FSTklORywgIlRETFM6IEZhaWxlZCB0byBzZXQgVFBLIHRvIHRoZSAiCi0gCQkJICAgImRyaXZlciIpOwotIAkJcmV0dXJuIC0xOwotIAl9Ci0rCXBlZXItPnRrX3NldCA9IDE7Ci0gCXJldHVybiAwOwotIH0KLSAKLUBAIC02OTYsNyArNzE0LDcgQEAgc3RhdGljIHZvaWQgd3BhX3RkbHNfcGVlcl9jbGVhcihzdHJ1Y3Qgd3BhX3NtICpzbSwgc3RydWN0IHdwYV90ZGxzX3BlZXIgKnBlZXIpCi0gCXBlZXItPmNpcGhlciA9IDA7Ci0gCXBlZXItPnFvc19pbmZvID0gMDsKLSAJcGVlci0+d21tX2NhcGFibGUgPSAwOwotLQlwZWVyLT50cGtfc2V0ID0gcGVlci0+dHBrX3N1Y2Nlc3MgPSAwOwotKwlwZWVyLT50a19zZXQgPSBwZWVyLT50cGtfc2V0ID0gcGVlci0+dHBrX3N1Y2Nlc3MgPSAwOwotIAlwZWVyLT5jaGFuX3N3aXRjaF9lbmFibGVkID0gMDsKLSAJb3NfbWVtc2V0KCZwZWVyLT50cGssIDAsIHNpemVvZihwZWVyLT50cGspKTsKLSAJb3NfbWVtc2V0KHBlZXItPmlub25jZSwgMCwgV1BBX05PTkNFX0xFTik7Ci1AQCAtMTE1OSw2ICsxMTc3LDcgQEAgc2tpcF9yc25pZToKLSAJCXdwYV90ZGxzX3BlZXJfZnJlZShzbSwgcGVlcik7Ci0gCQlyZXR1cm4gLTE7Ci0gCX0KLSsJcGVlci0+dGtfc2V0ID0gMDsgLyogQSBuZXcgbm9uY2UgcmVzdWx0cyBpbiBhIG5ldyBUSyAqLwotIAl3cGFfaGV4ZHVtcChNU0dfREVCVUcsICJURExTOiBJbml0aWF0b3IgTm9uY2UgZm9yIFRQSyBoYW5kc2hha2UiLAotIAkJICAgIHBlZXItPmlub25jZSwgV1BBX05PTkNFX0xFTik7Ci0gCW9zX21lbWNweShmdGllLT5Tbm9uY2UsIHBlZXItPmlub25jZSwgV1BBX05PTkNFX0xFTik7Ci1AQCAtMTc1MSw2ICsxNzcwLDE5IEBAIHN0YXRpYyBpbnQgd3BhX3RkbHNfYWRkc2V0X3BlZXIoc3RydWN0IHdwYV9zbSAqc20sIHN0cnVjdCB3cGFfdGRsc19wZWVyICpwZWVyLAotIH0KLSAKLSAKLStzdGF0aWMgaW50IHRkbHNfbm9uY2Vfc2V0KGNvbnN0IHU4ICpub25jZSkKLSt7Ci0rCWludCBpOwotKwotKwlmb3IgKGkgPSAwOyBpIDwgV1BBX05PTkNFX0xFTjsgaSsrKSB7Ci0rCQlpZiAobm9uY2VbaV0pCi0rCQkJcmV0dXJuIDE7Ci0rCX0KLSsKLSsJcmV0dXJuIDA7Ci0rfQotKwotKwotIHN0YXRpYyBpbnQgd3BhX3RkbHNfcHJvY2Vzc190cGtfbTEoc3RydWN0IHdwYV9zbSAqc20sIGNvbnN0IHU4ICpzcmNfYWRkciwKLSAJCQkJICAgY29uc3QgdTggKmJ1Ziwgc2l6ZV90IGxlbikKLSB7Ci1AQCAtMjAwNCw3ICsyMDM2LDggQEAgc2tpcF9yc246Ci0gCXBlZXItPnJzbmllX2lfbGVuID0ga2RlLnJzbl9pZV9sZW47Ci0gCXBlZXItPmNpcGhlciA9IGNpcGhlcjsKLSAKLS0JaWYgKG9zX21lbWNtcChwZWVyLT5pbm9uY2UsIGZ0aWUtPlNub25jZSwgV1BBX05PTkNFX0xFTikgIT0gMCkgewotKwlpZiAob3NfbWVtY21wKHBlZXItPmlub25jZSwgZnRpZS0+U25vbmNlLCBXUEFfTk9OQ0VfTEVOKSAhPSAwIHx8Ci0rCSAgICAhdGRsc19ub25jZV9zZXQocGVlci0+aW5vbmNlKSkgewotIAkJLyoKLSAJCSAqIFRoZXJlIGlzIG5vIHBvaW50IGluIHVwZGF0aW5nIHRoZSBSTm9uY2UgZm9yIGV2ZXJ5IG9idGFpbmVkCi0gCQkgKiBUUEsgTTEgZnJhbWUgKGUuZy4sIHJldHJhbnNtaXNzaW9uIGR1ZSB0byB0aW1lb3V0KSB3aXRoIHRoZQotQEAgLTIwMjAsNiArMjA1Myw3IEBAIHNraXBfcnNuOgotIAkJCQkiVERMUzogRmFpbGVkIHRvIGdldCByYW5kb20gZGF0YSBmb3IgcmVzcG9uZGVyIG5vbmNlIik7Ci0gCQkJZ290byBlcnJvcjsKLSAJCX0KLSsJCXBlZXItPnRrX3NldCA9IDA7IC8qIEEgbmV3IG5vbmNlIHJlc3VsdHMgaW4gYSBuZXcgVEsgKi8KLSAJfQotIAotICNpZiAwCi0tLSAKLTIuNy40Ci0KLU5vdGU6IFtQQVRDSCA3LzhdIG9ubHkgYXBwbGllcyB0byB3cGFfc3VwcGxpY2FudAotCi1Gcm9tIGIzNzJhYjBiN2RhZWE3MTk3NDkxOTRkYzU1NGIyNmU2MzY3NjAzZjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKb3VuaSBNYWxpbmVuIDxqQHcxLmZpPgotRGF0ZTogRnJpLCAyMiBTZXAgMjAxNyAxMjowNjozNyArMDMwMAotU3ViamVjdDogW1BBVENIIDgvOF0gRlQ6IERvIG5vdCBhbGxvdyBtdWx0aXBsZSBSZWFzc29jaWF0aW9uIFJlc3BvbnNlIGZyYW1lcwotCi1UaGUgZHJpdmVyIGlzIGV4cGVjdGVkIHRvIG5vdCByZXBvcnQgYSBzZWNvbmQgYXNzb2NpYXRpb24gZXZlbnQgd2l0aG91dAotdGhlIHN0YXRpb24gaGF2aW5nIGV4cGxpY2l0bHkgcmVxdWVzdCBhIG5ldyBhc3NvY2lhdGlvbi4gQXMgc3VjaCwgdGhpcwotY2FzZSBzaG91bGQgbm90IGJlIHJlYWNoYWJsZS4gSG93ZXZlciwgc2luY2UgcmVjb25maWd1cmluZyB0aGUgc2FtZQotcGFpcndpc2Ugb3IgZ3JvdXAga2V5cyB0byB0aGUgZHJpdmVyIGNvdWxkIHJlc3VsdCBpbiBub25jZSByZXVzZSBpc3N1ZXMsCi1iZSBleHRyYSBjYXJlZnVsIGhlcmUgYW5kIGRvIGFuIGFkZGl0aW9uYWwgc3RhdGUgY2hlY2sgdG8gYXZvaWQgdGhpcwotZXZlbiBpZiB0aGUgbG9jYWwgZHJpdmVyIGVuZHMgdXAgc29tZWhvdyBhY2NlcHRpbmcgYW4gdW5leHBlY3RlZAotUmVhc3NvY2lhdGlvbiBSZXNwb25zZSBmcmFtZS4KLQotU2lnbmVkLW9mZi1ieTogSm91bmkgTWFsaW5lbiA8akB3MS5maT4KLS0tLQotIHNyYy9yc25fc3VwcC93cGEuYyAgICB8IDMgKysrCi0gc3JjL3Jzbl9zdXBwL3dwYV9mdC5jIHwgOCArKysrKysrKwotIHNyYy9yc25fc3VwcC93cGFfaS5oICB8IDEgKwotIDMgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3dwYS5jIGIvc3JjL3Jzbl9zdXBwL3dwYS5jCi1pbmRleCAwNTUwYTQxLi4yYTUzYzZmIDEwMDY0NAotLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYS5jCi0rKysgYi9zcmMvcnNuX3N1cHAvd3BhLmMKLUBAIC0yNDQwLDYgKzI0NDAsOSBAQCB2b2lkIHdwYV9zbV9ub3RpZnlfZGlzYXNzb2Moc3RydWN0IHdwYV9zbSAqc20pCi0gI2lmZGVmIENPTkZJR19URExTCi0gCXdwYV90ZGxzX2Rpc2Fzc29jKHNtKTsKLSAjZW5kaWYgLyogQ09ORklHX1RETFMgKi8KLSsjaWZkZWYgQ09ORklHX0lFRUU4MDIxMVIKLSsJc20tPmZ0X3JlYXNzb2NfY29tcGxldGVkID0gMDsKLSsjZW5kaWYgLyogQ09ORklHX0lFRUU4MDIxMVIgKi8KLSAKLSAJLyogS2V5cyBhcmUgbm90IG5lZWRlZCBpbiB0aGUgV1BBIHN0YXRlIG1hY2hpbmUgYW55bW9yZSAqLwotIAl3cGFfc21fZHJvcF9zYShzbSk7Ci1kaWZmIC0tZ2l0IGEvc3JjL3Jzbl9zdXBwL3dwYV9mdC5jIGIvc3JjL3Jzbl9zdXBwL3dwYV9mdC5jCi1pbmRleCAyMDU3OTNlLi5kNDViYjQ1IDEwMDY0NAotLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYV9mdC5jCi0rKysgYi9zcmMvcnNuX3N1cHAvd3BhX2Z0LmMKLUBAIC0xNTMsNiArMTUzLDcgQEAgc3RhdGljIHU4ICogd3BhX2Z0X2dlbl9yZXFfaWVzKHN0cnVjdCB3cGFfc20gKnNtLCBzaXplX3QgKmxlbiwKLSAJdTE2IGNhcGFiOwotIAotIAlzbS0+ZnRfY29tcGxldGVkID0gMDsKLSsJc20tPmZ0X3JlYXNzb2NfY29tcGxldGVkID0gMDsKLSAKLSAJYnVmX2xlbiA9IDIgKyBzaXplb2Yoc3RydWN0IHJzbl9tZGllKSArIDIgKyBzaXplb2Yoc3RydWN0IHJzbl9mdGllKSArCi0gCQkyICsgc20tPnIwa2hfaWRfbGVuICsgcmljX2llc19sZW4gKyAxMDA7Ci1AQCAtNjgxLDYgKzY4MiwxMSBAQCBpbnQgd3BhX2Z0X3ZhbGlkYXRlX3JlYXNzb2NfcmVzcChzdHJ1Y3Qgd3BhX3NtICpzbSwgY29uc3QgdTggKmllcywKLSAJCXJldHVybiAtMTsKLSAJfQotIAotKwlpZiAoc20tPmZ0X3JlYXNzb2NfY29tcGxldGVkKSB7Ci0rCQl3cGFfcHJpbnRmKE1TR19ERUJVRywgIkZUOiBSZWFzc29jaWF0aW9uIGhhcyBhbHJlYWR5IGJlZW4gY29tcGxldGVkIGZvciB0aGlzIEZUIHByb3RvY29sIGluc3RhbmNlIC0gaWdub3JlIHVuZXhwZWN0ZWQgcmV0cmFuc21pc3Npb24iKTsKLSsJCXJldHVybiAwOwotKwl9Ci0rCi0gCWlmICh3cGFfZnRfcGFyc2VfaWVzKGllcywgaWVzX2xlbiwgJnBhcnNlKSA8IDApIHsKLSAJCXdwYV9wcmludGYoTVNHX0RFQlVHLCAiRlQ6IEZhaWxlZCB0byBwYXJzZSBJRXMiKTsKLSAJCXJldHVybiAtMTsKLUBAIC03ODEsNiArNzg3LDggQEAgaW50IHdwYV9mdF92YWxpZGF0ZV9yZWFzc29jX3Jlc3Aoc3RydWN0IHdwYV9zbSAqc20sIGNvbnN0IHU4ICppZXMsCi0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAKLSsJc20tPmZ0X3JlYXNzb2NfY29tcGxldGVkID0gMTsKLSsKLSAJaWYgKHdwYV9mdF9wcm9jZXNzX2d0a19zdWJlbGVtKHNtLCBwYXJzZS5ndGssIHBhcnNlLmd0a19sZW4pIDwgMCkKLSAJCXJldHVybiAtMTsKLSAKLWRpZmYgLS1naXQgYS9zcmMvcnNuX3N1cHAvd3BhX2kuaCBiL3NyYy9yc25fc3VwcC93cGFfaS5oCi1pbmRleCA0MWYzNzFmLi41NmY4OGRjIDEwMDY0NAotLS0tIGEvc3JjL3Jzbl9zdXBwL3dwYV9pLmgKLSsrKyBiL3NyYy9yc25fc3VwcC93cGFfaS5oCi1AQCAtMTI4LDYgKzEyOCw3IEBAIHN0cnVjdCB3cGFfc20gewotIAlzaXplX3QgcjBraF9pZF9sZW47Ci0gCXU4IHIxa2hfaWRbRlRfUjFLSF9JRF9MRU5dOwotIAlpbnQgZnRfY29tcGxldGVkOwotKwlpbnQgZnRfcmVhc3NvY19jb21wbGV0ZWQ7Ci0gCWludCBvdmVyX3RoZV9kc19pbl9wcm9ncmVzczsKLSAJdTggdGFyZ2V0X2FwW0VUSF9BTEVOXTsgLyogb3Zlci10aGUtRFMgdGFyZ2V0IEFQICovCi0gCWludCBzZXRfcHRrX2FmdGVyX2Fzc29jOwotLS0gCi0yLjcuNApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2hvc3RhcGQvaG9zdGFwZF8yLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkXzIuNi5iYgppbmRleCBjM2ExZWFkLi4yNTBhZGQ4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkXzIuNi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvaG9zdGFwZC9ob3N0YXBkXzIuNi5iYgpAQCAtMSwzNCArMSw0OCBAQAorU1VNTUFSWSA9ICJVc2VyIHNwYWNlIGRhZW1vbiBmb3IgZXh0ZW5kZWQgSUVFRSA4MDIuMTEgbWFuYWdlbWVudCIKIEhPTUVQQUdFID0gImh0dHA6Ly93MS5maS9ob3N0YXBkLyIKIFNFQ1RJT04gPSAia2VybmVsL3VzZXJsYW5kIgotTElDRU5TRSA9ICJHUEx2MiB8IEJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLyR7Qn0vUkVBRE1FO21kNT04YWE0ZThjNzhiNTliMTIwMTZjNGNiMmQwYThkYjM1MCIKK0xJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vaG9zdGFwZC9SRUFETUU7bWQ1PThhYTRlOGM3OGI1OWIxMjAxNmM0Y2IyZDBhOGRiMzUwIgorCiBERVBFTkRTID0gImxpYm5sIG9wZW5zc2wiCi1TVU1NQVJZID0gIlVzZXIgc3BhY2UgZGFlbW9uIGZvciBleHRlbmRlZCBJRUVFIDgwMi4xMSBtYW5hZ2VtZW50IgotCi1pbmhlcml0IHVwZGF0ZS1yYy5kIHN5c3RlbWQKLUlOSVRTQ1JJUFRfTkFNRSA9ICJob3N0YXBkIgotCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiaG9zdGFwZC5zZXJ2aWNlIgotU1lTVEVNRF9BVVRPX0VOQUJMRV8ke1BOfSA9ICJkaXNhYmxlIgogCiBTUkNfVVJJID0gIiBcCiAgICAgaHR0cDovL3cxLmZpL3JlbGVhc2VzL2hvc3RhcGQtJHtQVn0udGFyLmd6IFwKICAgICBmaWxlOi8vZGVmY29uZmlnIFwKICAgICBmaWxlOi8vaW5pdCBcCiAgICAgZmlsZTovL2hvc3RhcGQuc2VydmljZSBcCi0gICAgZmlsZTovL2tleS1yZXBsYXktY3ZlLW11bHRpcGxlLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMS1ob3N0YXBkLUF2b2lkLWtleS1yZWluc3RhbGxhdGlvbi1pbi1GVC1oYW5kc2hha2UucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAyLVByZXZlbnQtcmVpbnN0YWxsYXRpb24tb2YtYW4tYWxyZWFkeS1pbi11c2UtZ3JvdXAta2UucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAzLUV4dGVuZC1wcm90ZWN0aW9uLW9mLUdUSy1JR1RLLXJlaW5zdGFsbGF0aW9uLW9mLVdOTS0ucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDA0LVByZXZlbnQtaW5zdGFsbGF0aW9uLW9mLWFuLWFsbC16ZXJvLVRLLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwNS1GaXgtUFRLLXJla2V5aW5nLXRvLWdlbmVyYXRlLWEtbmV3LUFOb25jZS5wYXRjaCBcCisgICAgZmlsZTovLzAwMDYtVERMUy1SZWplY3QtVFBLLVRLLXJlY29uZmlndXJhdGlvbi5wYXRjaCBcCisgICAgZmlsZTovLzAwMDctRlQtRG8tbm90LWFsbG93LW11bHRpcGxlLVJlYXNzb2NpYXRpb24tUmVzcG9uc2UtZnJhbS5wYXRjaCBcCiAiCiAKK1NSQ19VUklbbWQ1c3VtXSA9ICJlYWE1NmRjZTliZDhmMWQxOTVlYjYyNTk2ZWFiMzRjNyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwMTUyNmI5MGMxZDIzYmVjNGIwZjA1MjAzOWNjNDQ1NmMyZmQxOTM0N2I0ZDgzMGQxZDU4YTBhNmFlYTcxMTdkIgorCiBTID0gIiR7V09SS0RJUn0vaG9zdGFwZC0ke1BWfSIKIEIgPSAiJHtXT1JLRElSfS9ob3N0YXBkLSR7UFZ9L2hvc3RhcGQiCiAKLWRvX2NvbmZpZ3VyZSgpIHsKK2luaGVyaXQgdXBkYXRlLXJjLmQgc3lzdGVtZCBwa2djb25maWcgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisKK0NPTkZMSUNUX0RJU1RST19GRUFUVVJFUyA9ICJvcGVuc3NsLW5vLXdlYWstY2lwaGVycyIKKworSU5JVFNDUklQVF9OQU1FID0gImhvc3RhcGQiCisKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJob3N0YXBkLnNlcnZpY2UiCitTWVNURU1EX0FVVE9fRU5BQkxFXyR7UE59ID0gImRpc2FibGUiCisKK2RvX2NvbmZpZ3VyZV9hcHBlbmQoKSB7CiAgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vZGVmY29uZmlnICR7Qn0vLmNvbmZpZwogfQogCiBkb19jb21waWxlKCkgewotICAgIGV4cG9ydCBDRkxBR1M9Ii1NTUQgLU8yIC1XYWxsIC1nIC1JJHtTVEFHSU5HX0lOQ0RJUn0vbGlibmwzIgotICAgIG1ha2UKKyAgICBleHBvcnQgQ0ZMQUdTPSItTU1EIC1PMiAtV2FsbCAtZyIKKyAgICBleHBvcnQgRVhUUkFfQ0ZMQUdTPSIke0NGTEFHU30iCisgICAgbWFrZSBWPTEKIH0KIAogZG9faW5zdGFsbCgpIHsKQEAgLTQyLDcgKzU2LDMgQEAKIH0KIAogQ09ORkZJTEVTXyR7UE59ICs9ICIke3N5c2NvbmZkaXJ9L2hvc3RhcGQuY29uZiIKLQotU1JDX1VSSVttZDVzdW1dID0gImVhYTU2ZGNlOWJkOGYxZDE5NWViNjI1OTZlYWIzNGM3IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjAxNTI2YjkwYzFkMjNiZWM0YjBmMDUyMDM5Y2M0NDU2YzJmZDE5MzQ3YjRkODMwZDFkNThhMGE2YWVhNzExN2QiCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjUvMDAwMS1hY2xvY2FsLUFkZC1wYXJhbWV0ZXItdG8tZGlzYWJsZS1rZXl1dGlscy1kZXRlY3Rpb24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1LzAwMDEtYWNsb2NhbC1BZGQtcGFyYW1ldGVyLXRvLWRpc2FibGUta2V5dXRpbHMtZGV0ZWN0aW9uLnBhdGNoCmluZGV4IGYwYzMxMGMuLmNiZDVkNzEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjUvMDAwMS1hY2xvY2FsLUFkZC1wYXJhbWV0ZXItdG8tZGlzYWJsZS1rZXl1dGlscy1kZXRlY3Rpb24ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS8wMDAxLWFjbG9jYWwtQWRkLXBhcmFtZXRlci10by1kaXNhYmxlLWtleXV0aWxzLWRldGVjdGlvbi5wYXRjaApAQCAtMSwxOCArMSwxOSBAQAotRnJvbSBlY2I2MmYzNDY3ZjQ5M2NjMGQ2NzkzMjNmMDUzNjdlZWJiZjBmYjY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBhOWU0MDU3YmZkYTE5MGFkMzY1YjUwM2FmMDU4YjQ2MGFiOGM3NjE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgogRGF0ZTogVHVlLCAxIE9jdCAyMDEzIDIyOjIyOjU3ICswMjAwCiBTdWJqZWN0OiBbUEFUQ0hdIGFjbG9jYWw6IEFkZCBwYXJhbWV0ZXIgdG8gZGlzYWJsZSBrZXl1dGlscyBkZXRlY3Rpb24KIAogU2lnbmVkLW9mZi1ieTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgorCiAtLS0KICBhY2xvY2FsLm00IHwgNCArKysrCiAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQogCiBkaWZmIC0tZ2l0IGEvYWNsb2NhbC5tNCBiL2FjbG9jYWwubTQKLWluZGV4IDIxMGM0NzMuLjgzYjFmMDIgMTAwNjQ0CitpbmRleCBkNmQxMjc5Li44MGNlNjA0IDEwMDY0NAogLS0tIGEvYWNsb2NhbC5tNAogKysrIGIvYWNsb2NhbC5tNAotQEAgLTE2NTAsMTEgKzE2NTAsMTUgQEAgZmkKK0BAIC0xNjc5LDEyICsxNjc5LDE2IEBAIGZpCiAgZG5sCiAgZG5sIElmIGxpYmtleXV0aWxzIGV4aXN0cyAob24gTGludXgpIGluY2x1ZGUgaXQgYW5kIHVzZSBrZXlyaW5nIGNjYWNoZQogIEFDX0RFRlVOKEtSQjVfQUNfS0VZUklOR19DQ0FDSEUsWwpAQCAtMjgsNiArMjksNCBAQAogK2ZpCiAgXSlkbmwKICBkbmwKLS0tIAotMS44LjMuMgotCisgZG5sIElmIGxpYmtleXV0aWxzIHN1cHBvcnRzIHBlcnNpc3RlbnQga2V5cmluZ3MsIHVzZSB0aGVtCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1L0NWRS0yMDE3LTExNDYyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9DVkUtMjAxNy0xMTQ2Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGI4MmYwMi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1L0NWRS0yMDE3LTExNDYyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDE5ICswLDAgQEAKLUZyb20gNTZmN2IxYmM5NWEyYTNlZWI0MjBlMDY5ZTc2NTVmYjE4MWFkZTVjZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEdyZWcgSHVkc29uIDxnaHVkc29uQG1pdC5lZHU+Ci1EYXRlOiBGcmksIDE0IEp1bCAyMDE3IDEzOjAyOjQ2IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIFByZXNlcnZlIEdTUyBjb250ZXh0IG9uIGluaXQvYWNjZXB0IGZhaWx1cmUKLQotQWZ0ZXIgZ3NzX2luaXRfc2VjX2NvbnRleHQoKSBvciBnc3NfYWNjZXB0X3NlY19jb250ZXh0KCkgaGFzIGNyZWF0ZWQgYQotY29udGV4dCwgZG9uJ3QgZGVsZXRlIHRoZSBtZWNoZ2x1ZSBjb250ZXh0IG9uIGZhaWx1cmVzIGZyb20gc3Vic2VxdWVudAotY2FsbHMsIGV2ZW4gaWYgdGhlIG1lY2hhbmlzbSBkZWxldGVzIHRoZSBtZWNoLXNwZWNpZmljIGNvbnRleHQgKHdoaWNoCi1pcyBhbGxvd2VkIGJ5IFJGQyAyNzQ0IGJ1dCBub3QgcHJlZmVycmVkKS4gIENoZWNrIGZvciB1bmlvbiBjb250ZXh0cwotd2l0aCBubyBtZWNoYW5pc20gY29udGV4dCBpbiBlYWNoIEdTUyBmdW5jdGlvbiB3aGljaCBhY2NlcHRzIGEKLWdzc19jdHhfaWRfdC4KLQotQ1ZFLTIwMTctMTE0NjI6Ci0KLVJGQyAyNzQ0IHBlcm1pdHMgYSBHU1MtQVBJIGltcGxlbWVudGF0aW9uIHRvIGRlbGV0ZSBhbiBleGlzdGluZwotc2VjdXJpdHkgY29udGV4dCBvbiBhIHNlY29uZCBvciBzdWJzZXF1ZW50IGNhbGwgdG8KLWdzc19pbml0X3NlY19jb250ZXh0KCkgb3IgZ3NzX2FjY2VwdF9zZWNfY29udGV4dCgpIGlmIHRoZSBjYWxsIHJlc3VsdHMKLWluIGFuIGVycm9yLiAgVGhpcyBBUEkgYmVoYXZpb3IgaGFzIGJlZW4gZm91bmQgdG8gYmUgZGFuZ2Vyb3VzLAotbGVhZGluZyB0byB0aGUgcG9zc2liaWxpdHkgb2YgbWVtb3J5IGVycm9ycyBpbiBzb21lIGNhbGxlcnMuICBGb3IKLXNhZmV0eSwgR1NTLUFQSSBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIGluc3RlYWQgcHJlc2VydmUgZXhpc3RpbmcKLXNlY3VyaXR5IGNvbnRleHRzIG9uIGVycm9yIHVudGlsIHRoZSBjYWxsZXIgZGVsZXRlcyB0aGVtLgotCi1BbGwgdmVyc2lvbnMgb2YgTUlUIGtyYjUgcHJpb3IgdG8gdGhpcyBjaGFuZ2UgbWF5IGRlbGV0ZSBhY2NlcHRvcgotY29udGV4dHMgb24gZXJyb3IuICBWZXJzaW9ucyAxLjEzLjQgdGhyb3VnaCAxLjEzLjcsIDEuMTQuMSB0aHJvdWdoCi0xLjE0LjUsIGFuZCAxLjE1IHRocm91Z2ggMS4xNS4xIG1heSBhbHNvIGRlbGV0ZSBpbml0aWF0b3IgY29udGV4dHMgb24KLWVycm9yLgotCi10aWNrZXQ6IDg1OTggKG5ldykKLXRhcmdldF92ZXJzaW9uOiAxLjE1LW5leHQKLXRhcmdldF92ZXJzaW9uOiAxLjE0LW5leHQKLXRhZ3M6IHB1bGx1cAotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci1DVkU6IENWRS0yMDE3LTExNDYyCi0KLVNpZ25lZC1vZmYtYnk6IENhdGFsaW4gRW5hY2hlIDxjYXRhbGluLmVuYWNoZUB3aW5kcml2ZXIuY29tPgotLS0tCi0gc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19hY2NlcHRfc2VjX2NvbnRleHQuYyAgfCAyMiArKysrKysrKysrKysrKystLS0tLS0tCi0gc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19jb21wbGV0ZV9hdXRoX3Rva2VuLmMgfCAgMiArKwotIHNyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfY29udGV4dF90aW1lLmMgICAgICAgIHwgIDIgKysKLSBzcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2RlbGV0ZV9zZWNfY29udGV4dC5jICB8IDE0ICsrKysrKysrLS0tLS0tCi0gc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19leHBfc2VjX2NvbnRleHQuYyAgICAgfCAgMiArKwotIHNyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfaW5pdF9zZWNfY29udGV4dC5jICAgIHwgMTkgKysrKysrKysrKystLS0tLS0tLQotIHNyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfaW5xX2NvbnRleHQuYyAgICAgICAgIHwgIDIgKysKLSBzcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3ByZi5jICAgICAgICAgICAgICAgICB8ICAyICsrCi0gc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19wcm9jZXNzX2NvbnRleHQuYyAgICAgfCAgMiArKwotIHNyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfc2VhbC5jICAgICAgICAgICAgICAgIHwgIDQgKysrKwotIHNyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfc2lnbi5jICAgICAgICAgICAgICAgIHwgIDIgKysKLSBzcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Vuc2VhbC5jICAgICAgICAgICAgICB8ICAyICsrCi0gc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ191bndyYXBfYWVhZC5jICAgICAgICAgfCAgMiArKwotIHNyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfdW53cmFwX2lvdi5jICAgICAgICAgIHwgIDQgKysrKwotIHNyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfdmVyaWZ5LmMgICAgICAgICAgICAgIHwgIDIgKysKLSBzcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3dyYXBfYWVhZC5jICAgICAgICAgICB8ICAyICsrCi0gc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ193cmFwX2lvdi5jICAgICAgICAgICAgfCAgOCArKysrKysrKwotIDE3IGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19hY2NlcHRfc2VjX2NvbnRleHQuYyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfYWNjZXB0X3NlY19jb250ZXh0LmMKLWluZGV4IGRkYWY4NzQuLmYyOGUyYjEgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2FjY2VwdF9zZWNfY29udGV4dC5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2FjY2VwdF9zZWNfY29udGV4dC5jCi1AQCAtMjE2LDYgKzIxNiw4IEBAIGdzc19jcmVkX2lkX3QgKgkJZF9jcmVkOwotICAgICB9IGVsc2UgewotIAl1bmlvbl9jdHhfaWQgPSAoZ3NzX3VuaW9uX2N0eF9pZF90KSpjb250ZXh0X2hhbmRsZTsKLSAJc2VsZWN0ZWRfbWVjaCA9IHVuaW9uX2N0eF9pZC0+bWVjaF90eXBlOwotKwlpZiAodW5pb25fY3R4X2lkLT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJICAgIHJldHVybiAoR1NTX1NfTk9fQ09OVEVYVCk7Ci0gICAgIH0KLSAKLSAgICAgLyogTm93IGNyZWF0ZSBhIG5ldyBjb250ZXh0IGlmIHdlIGRpZG4ndCBnZXQgb25lLiAqLwotQEAgLTIzNCw5ICsyMzYsNiBAQCBnc3NfY3JlZF9pZF90ICoJCWRfY3JlZDsKLSAJICAgIGZyZWUodW5pb25fY3R4X2lkKTsKLSAJICAgIHJldHVybiAoc3RhdHVzKTsKLSAJfQotLQotLQkvKiBzZXQgdGhlIG5ldyBjb250ZXh0IGhhbmRsZSB0byBjYWxsZXIncyBkYXRhICovCi0tCSpjb250ZXh0X2hhbmRsZSA9IChnc3NfY3R4X2lkX3QpdW5pb25fY3R4X2lkOwotICAgICB9Ci0gCi0gICAgIC8qCi1AQCAtMjc3LDggKzI3NiwxMCBAQCBnc3NfY3JlZF9pZF90ICoJCWRfY3JlZDsKLSAJCQkJCWRfY3JlZCA/ICZ0bXBfZF9jcmVkIDogTlVMTCk7Ci0gCi0gCSAgICAvKiBJZiB0aGVyZSdzIG1vcmUgd29yayB0byBkbywga2VlcCBnb2luZy4uLiAqLwotLQkgICAgaWYgKHN0YXR1cyA9PSBHU1NfU19DT05USU5VRV9ORUVERUQpCi0rCSAgICBpZiAoc3RhdHVzID09IEdTU19TX0NPTlRJTlVFX05FRURFRCkgewotKwkJKmNvbnRleHRfaGFuZGxlID0gKGdzc19jdHhfaWRfdCl1bmlvbl9jdHhfaWQ7Ci0gCQlyZXR1cm4gR1NTX1NfQ09OVElOVUVfTkVFREVEOwotKwkgICAgfQotIAotIAkgICAgLyogaWYgdGhlIGNhbGwgZmFpbGVkLCByZXR1cm4gd2l0aCBmYWlsdXJlICovCi0gCSAgICBpZiAoc3RhdHVzICE9IEdTU19TX0NPTVBMRVRFKSB7Ci1AQCAtMzY0LDE0ICszNjUsMjIgQEAgZ3NzX2NyZWRfaWRfdCAqCQlkX2NyZWQ7Ci0gCQkqbWVjaF90eXBlID0gZ3NzaW50X2dldF9wdWJsaWNfb2lkKGFjdHVhbF9tZWNoKTsKLSAJICAgIGlmIChyZXRfZmxhZ3MgIT0gTlVMTCkKLSAJCSpyZXRfZmxhZ3MgPSB0ZW1wX3JldF9mbGFnczsKLS0JICAgIHJldHVybgkoc3RhdHVzKTsKLSsJICAgICpjb250ZXh0X2hhbmRsZSA9IChnc3NfY3R4X2lkX3QpdW5pb25fY3R4X2lkOwotKwkgICAgcmV0dXJuIEdTU19TX0NPTVBMRVRFOwotICAgICB9IGVsc2UgewotIAotIAlzdGF0dXMgPSBHU1NfU19CQURfTUVDSDsKLSAgICAgfQotIAotIGVycm9yX291dDoKLS0gICAgaWYgKHVuaW9uX2N0eF9pZCkgewotKwkvKgotKwkgKiBSRkMgMjc0NCA1LjEgcmVxdWlyZXMgdGhhdCB3ZSBub3QgY3JlYXRlIGEgY29udGV4dCBvbiBhIGZhaWxlZCBmaXJzdAotKwkgKiBjYWxsIHRvIGFjY2VwdCwgYW5kIHJlY29tbWVuZHMgdGhhdCBvbiBhIGZhaWxlZCBzdWJzZXF1ZW50IGNhbGwgd2UKLSsJICogbWFrZSB0aGUgY2FsbGVyIHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIGdzc19kZWxldGVfc2VjX2NvbnRleHQuCi0rCSAqIEV2ZW4gaWYgdGhlIG1lY2ggZGVsZXRlZCBpdHMgY29udGV4dCwga2VlcCB0aGUgdW5pb24gY29udGV4dCBhcm91bmQKLSsJICogZm9yIHRoZSBjYWxsZXIgdG8gZGVsZXRlLgotKwkgKi8KLSsgICAgaWYgKHVuaW9uX2N0eF9pZCAmJiAqY29udGV4dF9oYW5kbGUgPT0gR1NTX0NfTk9fQ09OVEVYVCkgewotIAlpZiAodW5pb25fY3R4X2lkLT5tZWNoX3R5cGUpIHsKLSAJICAgIGlmICh1bmlvbl9jdHhfaWQtPm1lY2hfdHlwZS0+ZWxlbWVudHMpCi0gCQlmcmVlKHVuaW9uX2N0eF9pZC0+bWVjaF90eXBlLT5lbGVtZW50cyk7Ci1AQCAtMzg0LDcgKzM5Myw2IEBAIGVycm9yX291dDoKLSAJCQkJCSBHU1NfQ19OT19CVUZGRVIpOwotIAl9Ci0gCWZyZWUodW5pb25fY3R4X2lkKTsKLS0JKmNvbnRleHRfaGFuZGxlID0gR1NTX0NfTk9fQ09OVEVYVDsKLSAgICAgfQotIAotICAgICBpZiAoc3JjX25hbWUpCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19jb21wbGV0ZV9hdXRoX3Rva2VuLmMgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2NvbXBsZXRlX2F1dGhfdG9rZW4uYwotaW5kZXggOTE4MTU1MS4uNGJjYjQ3ZSAxMDA2NDQKLS0tLSBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfY29tcGxldGVfYXV0aF90b2tlbi5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2NvbXBsZXRlX2F1dGhfdG9rZW4uYwotQEAgLTUyLDYgKzUyLDggQEAgZ3NzX2NvbXBsZXRlX2F1dGhfdG9rZW4gKE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLAotICAgICAgKi8KLSAKLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCkgY29udGV4dF9oYW5kbGU7Ci0rICAgIGlmIChjdHgtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKQotKwlyZXR1cm4gR1NTX1NfTk9fQ09OVEVYVDsKLSAgICAgbWVjaCA9IGdzc2ludF9nZXRfbWVjaGFuaXNtIChjdHgtPm1lY2hfdHlwZSk7Ci0gCi0gICAgIGlmIChtZWNoICE9IE5VTEwpIHsKLWRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2NvbnRleHRfdGltZS5jIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19jb250ZXh0X3RpbWUuYwotaW5kZXggMmZmOGQwOS4uYzk0N2U3NiAxMDA2NDQKLS0tLSBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfY29udGV4dF90aW1lLmMKLSsrKyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfY29udGV4dF90aW1lLmMKLUBAIC01OCw2ICs1OCw4IEBAIE9NX3VpbnQzMiAqCQl0aW1lX3JlYzsKLSAgICAgICovCi0gCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpIGNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJcmV0dXJuIChHU1NfU19OT19DT05URVhUKTsKLSAgICAgbWVjaCA9IGdzc2ludF9nZXRfbWVjaGFuaXNtIChjdHgtPm1lY2hfdHlwZSk7Ci0gCi0gICAgIGlmIChtZWNoKSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19kZWxldGVfc2VjX2NvbnRleHQuYyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfZGVsZXRlX3NlY19jb250ZXh0LmMKLWluZGV4IDRiZjBkZWMuLjU3NGZmMDIgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2RlbGV0ZV9zZWNfY29udGV4dC5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2RlbGV0ZV9zZWNfY29udGV4dC5jCi1AQCAtODcsMTIgKzg3LDE0IEBAIGdzc19idWZmZXJfdAkJb3V0cHV0X3Rva2VuOwotICAgICBpZiAoR1NTSU5UX0NIS19MT09QKGN0eCkpCi0gCXJldHVybiAoR1NTX1NfQ0FMTF9JTkFDQ0VTU0lCTEVfUkVBRCB8IEdTU19TX05PX0NPTlRFWFQpOwotIAotLSAgICBzdGF0dXMgPSBnc3NpbnRfZGVsZXRlX2ludGVybmFsX3NlY19jb250ZXh0KG1pbm9yX3N0YXR1cywKLS0JCQkJCQljdHgtPm1lY2hfdHlwZSwKLS0JCQkJCQkmY3R4LT5pbnRlcm5hbF9jdHhfaWQsCi0tCQkJCQkJb3V0cHV0X3Rva2VuKTsKLS0gICAgaWYgKHN0YXR1cykKLS0JcmV0dXJuIHN0YXR1czsKLSsgICAgaWYgKGN0eC0+aW50ZXJuYWxfY3R4X2lkICE9IEdTU19DX05PX0NPTlRFWFQpIHsKLSsJc3RhdHVzID0gZ3NzaW50X2RlbGV0ZV9pbnRlcm5hbF9zZWNfY29udGV4dChtaW5vcl9zdGF0dXMsCi0rCQkJCQkJICAgIGN0eC0+bWVjaF90eXBlLAotKwkJCQkJCSAgICAmY3R4LT5pbnRlcm5hbF9jdHhfaWQsCi0rCQkJCQkJICAgIG91dHB1dF90b2tlbik7Ci0rCWlmIChzdGF0dXMpCi0rCSAgICByZXR1cm4gc3RhdHVzOwotKyAgICB9Ci0gCi0gICAgIC8qIG5vdyBmcmVlIHVwIHRoZSBzcGFjZSBmb3IgdGhlIHVuaW9uIGNvbnRleHQgc3RydWN0dXJlICovCi0gICAgIGZyZWUoY3R4LT5tZWNoX3R5cGUtPmVsZW1lbnRzKTsKLWRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2V4cF9zZWNfY29udGV4dC5jIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19leHBfc2VjX2NvbnRleHQuYwotaW5kZXggYjYzNzQ1Mi4uMWQ3OTkwYiAxMDA2NDQKLS0tLSBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfZXhwX3NlY19jb250ZXh0LmMKLSsrKyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfZXhwX3NlY19jb250ZXh0LmMKLUBAIC05NSw2ICs5NSw4IEBAIGdzc19idWZmZXJfdAkJaW50ZXJwcm9jZXNzX3Rva2VuOwotICAgICAgKi8KLSAKLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCkgKmNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJcmV0dXJuIChHU1NfU19OT19DT05URVhUKTsKLSAgICAgbWVjaCA9IGdzc2ludF9nZXRfbWVjaGFuaXNtIChjdHgtPm1lY2hfdHlwZSk7Ci0gICAgIGlmICghbWVjaCkKLSAJcmV0dXJuIEdTU19TX0JBRF9NRUNIOwotZGlmZiAtLWdpdCBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfaW5pdF9zZWNfY29udGV4dC5jIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19pbml0X3NlY19jb250ZXh0LmMKLWluZGV4IDlmMTU0YjguLmUyZGYxY2UgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX2luaXRfc2VjX2NvbnRleHQuYwotKysrIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19pbml0X3NlY19jb250ZXh0LmMKLUBAIC0xOTIsOCArMTkyLDEzIEBAIE9NX3VpbnQzMiAqCQl0aW1lX3JlYzsKLSAKLSAJLyogY29weSB0aGUgc3VwcGxpZWQgY29udGV4dCBoYW5kbGUgKi8KLSAJdW5pb25fY3R4X2lkLT5pbnRlcm5hbF9jdHhfaWQgPSBHU1NfQ19OT19DT05URVhUOwotLSAgICB9IGVsc2UKLSsgICAgfSBlbHNlIHsKLSAJdW5pb25fY3R4X2lkID0gKGdzc191bmlvbl9jdHhfaWRfdCkqY29udGV4dF9oYW5kbGU7Ci0rCWlmICh1bmlvbl9jdHhfaWQtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKSB7Ci0rCSAgICBzdGF0dXMgPSBHU1NfU19OT19DT05URVhUOwotKwkgICAgZ290byBlbmQ7Ci0rCX0KLSsgICAgfQotIAotICAgICAvKgotICAgICAgKiBnZXQgdGhlIGFwcHJvcHJpYXRlIGNyZWQgaGFuZGxlIGZyb20gdGhlIHVuaW9uIGNyZWQgc3RydWN0LgotQEAgLTIyNCwxNSArMjI5LDEzIEBAIE9NX3VpbnQzMiAqCQl0aW1lX3JlYzsKLSAKLSAgICAgaWYgKHN0YXR1cyAhPSBHU1NfU19DT01QTEVURSAmJiBzdGF0dXMgIT0gR1NTX1NfQ09OVElOVUVfTkVFREVEKSB7Ci0gCS8qCi0tCSAqIFRoZSBzcGVjIHNheXMgdGhlIHByZWZlcnJlZCBtZXRob2QgaXMgdG8gZGVsZXRlIGFsbCBjb250ZXh0IGluZm8gb24KLS0JICogdGhlIGZpcnN0IGNhbGwgdG8gaW5pdCwgYW5kIG9uIGFsbCBzdWJzZXF1ZW50IGNhbGxzIG1ha2UgdGhlIGNhbGxlcgotLQkgKiByZXNwb25zaWJsZSBmb3IgY2FsbGluZyBnc3NfZGVsZXRlX3NlY19jb250ZXh0LiAgSG93ZXZlciwgaWYgdGhlCi0tCSAqIG1lY2hhbmlzbSBkZWNpZGVkIHRvIGRlbGV0ZSB0aGUgaW50ZXJuYWwgY29udGV4dCwgd2Ugc2hvdWxkIGFsc28KLS0JICogZGVsZXRlIHRoZSB1bmlvbiBjb250ZXh0LgotKwkgKiBSRkMgMjc0NCA1LjE5IHJlcXVpcmVzIHRoYXQgd2Ugbm90IGNyZWF0ZSBhIGNvbnRleHQgb24gYSBmYWlsZWQKLSsJICogZmlyc3QgY2FsbCB0byBpbml0LCBhbmQgcmVjb21tZW5kcyB0aGF0IG9uIGEgZmFpbGVkIHN1YnNlcXVlbnQgY2FsbAotKwkgKiB3ZSBtYWtlIHRoZSBjYWxsZXIgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgZ3NzX2RlbGV0ZV9zZWNfY29udGV4dC4KLSsJICogRXZlbiBpZiB0aGUgbWVjaCBkZWxldGVkIGl0cyBjb250ZXh0LCBrZWVwIHRoZSB1bmlvbiBjb250ZXh0IGFyb3VuZAotKwkgKiBmb3IgdGhlIGNhbGxlciB0byBkZWxldGUuCi0gCSAqLwotIAltYXBfZXJyb3IobWlub3Jfc3RhdHVzLCBtZWNoKTsKLS0JaWYgKHVuaW9uX2N0eF9pZC0+aW50ZXJuYWxfY3R4X2lkID09IEdTU19DX05PX0NPTlRFWFQpCi0tCSAgICAqY29udGV4dF9oYW5kbGUgPSBHU1NfQ19OT19DT05URVhUOwotIAlpZiAoKmNvbnRleHRfaGFuZGxlID09IEdTU19DX05PX0NPTlRFWFQpIHsKLSAJICAgIGZyZWUodW5pb25fY3R4X2lkLT5tZWNoX3R5cGUtPmVsZW1lbnRzKTsKLSAJICAgIGZyZWUodW5pb25fY3R4X2lkLT5tZWNoX3R5cGUpOwotZGlmZiAtLWdpdCBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfaW5xX2NvbnRleHQuYyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfaW5xX2NvbnRleHQuYwotaW5kZXggNmYxYzcxZS4uNmMwZDk4ZCAxMDA2NDQKLS0tLSBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfaW5xX2NvbnRleHQuYwotKysrIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19pbnFfY29udGV4dC5jCi1AQCAtMTA0LDYgKzEwNCw4IEBAIGdzc19pbnF1aXJlX2NvbnRleHQoCi0gICAgICAqLwotIAotICAgICBjdHggPSAoZ3NzX3VuaW9uX2N0eF9pZF90KSBjb250ZXh0X2hhbmRsZTsKLSsgICAgaWYgKGN0eC0+aW50ZXJuYWxfY3R4X2lkID09IEdTU19DX05PX0NPTlRFWFQpCi0rCXJldHVybiAoR1NTX1NfTk9fQ09OVEVYVCk7Ci0gICAgIG1lY2ggPSBnc3NpbnRfZ2V0X21lY2hhbmlzbSAoY3R4LT5tZWNoX3R5cGUpOwotIAotICAgICBpZiAoIW1lY2ggfHwgIW1lY2gtPmdzc19pbnF1aXJlX2NvbnRleHQgfHwgIW1lY2gtPmdzc19kaXNwbGF5X25hbWUgfHwKLWRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3ByZi5jIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19wcmYuYwotaW5kZXggZmNjYTNlNC4uOWUxNjhhZCAxMDA2NDQKLS0tLSBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfcHJmLmMKLSsrKyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfcHJmLmMKLUBAIC01OSw2ICs1OSw4IEBAIGdzc19wc2V1ZG9fcmFuZG9tIChPTV91aW50MzIgKm1pbm9yX3N0YXR1cywKLSAgICAgICovCi0gCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpIGNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJcmV0dXJuIEdTU19TX05PX0NPTlRFWFQ7Ci0gICAgIG1lY2ggPSBnc3NpbnRfZ2V0X21lY2hhbmlzbSAoY3R4LT5tZWNoX3R5cGUpOwotIAotICAgICBpZiAobWVjaCAhPSBOVUxMKSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19wcm9jZXNzX2NvbnRleHQuYyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfcHJvY2Vzc19jb250ZXh0LmMKLWluZGV4IGJjMjYwYWUuLjM5NjhiNWQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Byb2Nlc3NfY29udGV4dC5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Byb2Nlc3NfY29udGV4dC5jCi1AQCAtNjEsNiArNjEsOCBAQCBnc3NfYnVmZmVyX3QJCXRva2VuX2J1ZmZlcjsKLSAgICAgICovCi0gCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpIGNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJcmV0dXJuIChHU1NfU19OT19DT05URVhUKTsKLSAgICAgbWVjaCA9IGdzc2ludF9nZXRfbWVjaGFuaXNtIChjdHgtPm1lY2hfdHlwZSk7Ci0gCi0gICAgIGlmIChtZWNoKSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19zZWFsLmMgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3NlYWwuYwotaW5kZXggZjE3MjQxYy4uM2RiMWVlMCAxMDA2NDQKLS0tLSBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfc2VhbC5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3NlYWwuYwotQEAgLTkyLDYgKzkyLDggQEAgZ3NzX3dyYXAoIE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLAotICAgICAgKi8KLSAKLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCkgY29udGV4dF9oYW5kbGU7Ci0rICAgIGlmIChjdHgtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKQotKyAgICAgICAgcmV0dXJuIChHU1NfU19OT19DT05URVhUKTsKLSAgICAgbWVjaCA9IGdzc2ludF9nZXRfbWVjaGFuaXNtIChjdHgtPm1lY2hfdHlwZSk7Ci0gCi0gICAgIGlmIChtZWNoKSB7Ci1AQCAtMjI2LDYgKzIyOCw4IEBAIGdzc193cmFwX3NpemVfbGltaXQoT01fdWludDMyICAqbWlub3Jfc3RhdHVzLAotICAgICAgKi8KLSAKLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCkgY29udGV4dF9oYW5kbGU7Ci0rICAgIGlmIChjdHgtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKQotKyAgICAgICAgcmV0dXJuIChHU1NfU19OT19DT05URVhUKTsKLSAgICAgbWVjaCA9IGdzc2ludF9nZXRfbWVjaGFuaXNtIChjdHgtPm1lY2hfdHlwZSk7Ci0gCi0gICAgIGlmICghbWVjaCkKLWRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3NpZ24uYyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfc2lnbi5jCi1pbmRleCA4NmQ2NDFhLi4wM2ZiZDhjIDEwMDY0NAotLS0tIGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ19zaWduLmMKLSsrKyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfc2lnbi5jCi1AQCAtOTQsNiArOTQsOCBAQCBnc3NfYnVmZmVyX3QJCW1zZ190b2tlbjsKLSAgICAgICovCi0gCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpIGNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJcmV0dXJuIChHU1NfU19OT19DT05URVhUKTsKLSAgICAgbWVjaCA9IGdzc2ludF9nZXRfbWVjaGFuaXNtIChjdHgtPm1lY2hfdHlwZSk7Ci0gCi0gICAgIGlmIChtZWNoKSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ191bnNlYWwuYyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfdW5zZWFsLmMKLWluZGV4IDNlODA1M2MuLmMyMDg2MzUgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Vuc2VhbC5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Vuc2VhbC5jCi1AQCAtNzYsNiArNzYsOCBAQCBnc3NfcW9wX3QgKgkJcW9wX3N0YXRlOwotICAgICAgKiBjYWxsIGl0LgotICAgICAgKi8KLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCkgY29udGV4dF9oYW5kbGU7Ci0rICAgIGlmIChjdHgtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKQotKwlyZXR1cm4gKEdTU19TX05PX0NPTlRFWFQpOwotICAgICBtZWNoID0gZ3NzaW50X2dldF9tZWNoYW5pc20gKGN0eC0+bWVjaF90eXBlKTsKLSAKLSAgICAgaWYgKG1lY2gpIHsKLWRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Vud3JhcF9hZWFkLmMgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Vud3JhcF9hZWFkLmMKLWluZGV4IGU3OGJmZjIuLjA2ODJiZDggMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Vud3JhcF9hZWFkLmMKLSsrKyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfdW53cmFwX2FlYWQuYwotQEAgLTE4Niw2ICsxODYsOCBAQCBnc3NfcW9wX3QJCSpxb3Bfc3RhdGU7Ci0gICAgICAqIGNhbGwgaXQuCi0gICAgICAqLwotICAgICBjdHggPSAoZ3NzX3VuaW9uX2N0eF9pZF90KSBjb250ZXh0X2hhbmRsZTsKLSsgICAgaWYgKGN0eC0+aW50ZXJuYWxfY3R4X2lkID09IEdTU19DX05PX0NPTlRFWFQpCi0rCXJldHVybiAoR1NTX1NfTk9fQ09OVEVYVCk7Ci0gICAgIG1lY2ggPSBnc3NpbnRfZ2V0X21lY2hhbmlzbSAoY3R4LT5tZWNoX3R5cGUpOwotIAotICAgICBpZiAoIW1lY2gpCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ191bndyYXBfaW92LmMgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Vud3JhcF9pb3YuYwotaW5kZXggYzBkZDMxNC4uNTk5YmUyYyAxMDA2NDQKLS0tLSBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfdW53cmFwX2lvdi5jCi0rKysgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3Vud3JhcF9pb3YuYwotQEAgLTg5LDYgKzg5LDggQEAgaW50CQkJaW92X2NvdW50OwotICAgICAgKi8KLSAKLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCkgY29udGV4dF9oYW5kbGU7Ci0rICAgIGlmIChjdHgtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKQotKwlyZXR1cm4gKEdTU19TX05PX0NPTlRFWFQpOwotICAgICBtZWNoID0gZ3NzaW50X2dldF9tZWNoYW5pc20gKGN0eC0+bWVjaF90eXBlKTsKLSAKLSAgICAgaWYgKG1lY2gpIHsKLUBAIC0xMjgsNiArMTMwLDggQEAgZ3NzX3ZlcmlmeV9taWNfaW92KE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLCBnc3NfY3R4X2lkX3QgY29udGV4dF9oYW5kbGUsCi0gCi0gICAgIC8qIFNlbGVjdCB0aGUgYXBwcm9wcmF0ZSB1bmRlcmx5aW5nIG1lY2hhbmlzbSByb3V0aW5lIGFuZCBjYWxsIGl0LiAqLwotICAgICBjdHggPSAoZ3NzX3VuaW9uX2N0eF9pZF90KWNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJcmV0dXJuIEdTU19TX05PX0NPTlRFWFQ7Ci0gICAgIG1lY2ggPSBnc3NpbnRfZ2V0X21lY2hhbmlzbShjdHgtPm1lY2hfdHlwZSk7Ci0gICAgIGlmIChtZWNoID09IE5VTEwpCi0gCXJldHVybiBHU1NfU19CQURfTUVDSDsKLWRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3ZlcmlmeS5jIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ192ZXJpZnkuYwotaW5kZXggMTU3OGFlMS4uODk5NmZjZSAxMDA2NDQKLS0tLSBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfdmVyaWZ5LmMKLSsrKyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfdmVyaWZ5LmMKLUBAIC02NSw2ICs2NSw4IEBAIGdzc19xb3BfdCAqCQlxb3Bfc3RhdGU7Ci0gICAgICAqLwotIAotICAgICBjdHggPSAoZ3NzX3VuaW9uX2N0eF9pZF90KSBjb250ZXh0X2hhbmRsZTsKLSsgICAgaWYgKGN0eC0+aW50ZXJuYWxfY3R4X2lkID09IEdTU19DX05PX0NPTlRFWFQpCi0rCXJldHVybiAoR1NTX1NfTk9fQ09OVEVYVCk7Ci0gICAgIG1lY2ggPSBnc3NpbnRfZ2V0X21lY2hhbmlzbSAoY3R4LT5tZWNoX3R5cGUpOwotIAotICAgICBpZiAobWVjaCkgewotZGlmZiAtLWdpdCBhL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfd3JhcF9hZWFkLmMgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3dyYXBfYWVhZC5jCi1pbmRleCA5NmNkZjNjLi43ZmUzYjdiIDEwMDY0NAotLS0tIGEvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ193cmFwX2FlYWQuYwotKysrIGIvc3JjL2xpYi9nc3NhcGkvbWVjaGdsdWUvZ193cmFwX2FlYWQuYwotQEAgLTI1Niw2ICsyNTYsOCBAQCBnc3NfYnVmZmVyX3QJCW91dHB1dF9tZXNzYWdlX2J1ZmZlcjsKLSAgICAgICogY2FsbCBpdC4KLSAgICAgICovCi0gICAgIGN0eCA9IChnc3NfdW5pb25fY3R4X2lkX3QpY29udGV4dF9oYW5kbGU7Ci0rICAgIGlmIChjdHgtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKQotKwlyZXR1cm4gKEdTU19TX05PX0NPTlRFWFQpOwotICAgICBtZWNoID0gZ3NzaW50X2dldF9tZWNoYW5pc20gKGN0eC0+bWVjaF90eXBlKTsKLSAgICAgaWYgKCFtZWNoKQotIAlyZXR1cm4gKEdTU19TX0JBRF9NRUNIKTsKLWRpZmYgLS1naXQgYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3dyYXBfaW92LmMgYi9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3dyYXBfaW92LmMKLWluZGV4IDQwY2Q5OGYuLjE0NDQ3YzQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliL2dzc2FwaS9tZWNoZ2x1ZS9nX3dyYXBfaW92LmMKLSsrKyBiL3NyYy9saWIvZ3NzYXBpL21lY2hnbHVlL2dfd3JhcF9pb3YuYwotQEAgLTkzLDYgKzkzLDggQEAgaW50CQkJaW92X2NvdW50OwotICAgICAgKi8KLSAKLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCkgY29udGV4dF9oYW5kbGU7Ci0rICAgIGlmIChjdHgtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKQotKwlyZXR1cm4gKEdTU19TX05PX0NPTlRFWFQpOwotICAgICBtZWNoID0gZ3NzaW50X2dldF9tZWNoYW5pc20gKGN0eC0+bWVjaF90eXBlKTsKLSAKLSAgICAgaWYgKG1lY2gpIHsKLUBAIC0xNTEsNiArMTUzLDggQEAgaW50CQkJaW92X2NvdW50OwotICAgICAgKi8KLSAKLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCkgY29udGV4dF9oYW5kbGU7Ci0rICAgIGlmIChjdHgtPmludGVybmFsX2N0eF9pZCA9PSBHU1NfQ19OT19DT05URVhUKQotKwlyZXR1cm4gKEdTU19TX05PX0NPTlRFWFQpOwotICAgICBtZWNoID0gZ3NzaW50X2dldF9tZWNoYW5pc20gKGN0eC0+bWVjaF90eXBlKTsKLSAKLSAgICAgaWYgKG1lY2gpIHsKLUBAIC0xOTAsNiArMTk0LDggQEAgZ3NzX2dldF9taWNfaW92KE9NX3VpbnQzMiAqbWlub3Jfc3RhdHVzLCBnc3NfY3R4X2lkX3QgY29udGV4dF9oYW5kbGUsCi0gCi0gICAgIC8qIFNlbGVjdCB0aGUgYXBwcm9wcmF0ZSB1bmRlcmx5aW5nIG1lY2hhbmlzbSByb3V0aW5lIGFuZCBjYWxsIGl0LiAqLwotICAgICBjdHggPSAoZ3NzX3VuaW9uX2N0eF9pZF90KWNvbnRleHRfaGFuZGxlOwotKyAgICBpZiAoY3R4LT5pbnRlcm5hbF9jdHhfaWQgPT0gR1NTX0NfTk9fQ09OVEVYVCkKLSsJcmV0dXJuIEdTU19TX05PX0NPTlRFWFQ7Ci0gICAgIG1lY2ggPSBnc3NpbnRfZ2V0X21lY2hhbmlzbShjdHgtPm1lY2hfdHlwZSk7Ci0gICAgIGlmIChtZWNoID09IE5VTEwpCi0gCXJldHVybiBHU1NfU19CQURfTUVDSDsKLUBAIC0yMTgsNiArMjI0LDggQEAgZ3NzX2dldF9taWNfaW92X2xlbmd0aChPTV91aW50MzIgKm1pbm9yX3N0YXR1cywgZ3NzX2N0eF9pZF90IGNvbnRleHRfaGFuZGxlLAotIAotICAgICAvKiBTZWxlY3QgdGhlIGFwcHJvcHJhdGUgdW5kZXJseWluZyBtZWNoYW5pc20gcm91dGluZSBhbmQgY2FsbCBpdC4gKi8KLSAgICAgY3R4ID0gKGdzc191bmlvbl9jdHhfaWRfdCljb250ZXh0X2hhbmRsZTsKLSsgICAgaWYgKGN0eC0+aW50ZXJuYWxfY3R4X2lkID09IEdTU19DX05PX0NPTlRFWFQpCi0rCXJldHVybiBHU1NfU19OT19DT05URVhUOwotICAgICBtZWNoID0gZ3NzaW50X2dldF9tZWNoYW5pc20oY3R4LT5tZWNoX3R5cGUpOwotICAgICBpZiAobWVjaCA9PSBOVUxMKQotIAlyZXR1cm4gR1NTX1NfQkFEX01FQ0g7Ci0tLSAKLTIuMTAuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1L2V0Yy9kZWZhdWx0L2tyYjUtYWRtaW4tc2VydmVyIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9ldGMvZGVmYXVsdC9rcmI1LWFkbWluLXNlcnZlcgppbmRleCAyODM1OTI5Li5lMDk3MzUzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1L2V0Yy9kZWZhdWx0L2tyYjUtYWRtaW4tc2VydmVyCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjUvZXRjL2RlZmF1bHQva3JiNS1hZG1pbi1zZXJ2ZXIKQEAgLTEsNiArMSw0IEBACiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLiAgSWYgeW91IGNoYW5nZSBhbnl0aGluZyBpbiB0aGlzIGZpbGUgb3RoZXIgdGhhbiB0aGUKLSMgdmFsdWVzIG9mIFJVTl9LQURNSU5EIG9yIERBRU1PTl9BUkdTLCBmaXJzdCBydW4gZHBrZy1yZWNvbmZpZ3VyZQorIyB2YWx1ZXMgb2YgREFFTU9OX0FSR1MsIGZpcnN0IHJ1biBkcGtnLXJlY29uZmlndXJlCiAjIGtyYjUtYWRtaW4tc2VydmVyIGFuZCBkaXNhYmxlIG1hbmFnaW5nIHRoZSBrYWRtaW4gY29uZmlndXJhdGlvbiB3aXRoCiAjIGRlYmNvbmYuICBPdGhlcndpc2UsIGNoYW5nZXMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KLQotUlVOX0tBRE1JTkQ9dHJ1ZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9maXgtQ1ZFLTIwMTctMTEzNjgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1L2ZpeC1DVkUtMjAxNy0xMTM2OC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTJlYjdiYy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1L2ZpeC1DVkUtMjAxNy0xMTM2OC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExNiArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFtodHRwczovL2dpdGh1Yi5jb20va3JiNS9rcmI1L2NvbW1pdC9mZmIzNWJhYWM2OTgxZjllODkxNGY4ZjNiZmZkMzdmMjg0Yjg1OTcwXQotCi1CYWNrcG9ydCBwYXRjaCB0byBmaXggQ1ZFLTIwMTctMTEzNjguCi0KLVNpZ25lZC1vZmYtYnk6IEthaSBLYW5nIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi1Gcm9tIGZmYjM1YmFhYzY5ODFmOWU4OTE0ZjhmM2JmZmQzN2YyODRiODU5NzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBHcmVnIEh1ZHNvbiA8Z2h1ZHNvbkBtaXQuZWR1PgotRGF0ZTogVGh1LCAxMyBKdWwgMjAxNyAxMjoxNDoyMCAtMDQwMAotU3ViamVjdDogW1BBVENIXSBQcmV2ZW50IEtEQyB1bnNldCBzdGF0dXMgYXNzZXJ0aW9uIGZhaWx1cmVzCi0KLUFzc2lnbiBzdGF0dXMgdmFsdWVzIGlmIFM0VTJTZWxmIHBhZGF0YSBmYWlscyB0byBkZWNvZGUsIGlmIGFuCi1TNFUyUHJveHkgcmVxdWVzdCB1c2VzIGludmFsaWQgS0RDIG9wdGlvbnMsIG9yIGlmIGFuIFM0VTJQcm94eSByZXF1ZXN0Ci11c2VzIGFuIGV2aWRlbmNlIHRpY2tldCB3aGljaCBkb2VzIG5vdCBtYXRjaCB0aGUgY2Fub25pY2FsaXplZCByZXF1ZXN0Ci1zZXJ2ZXIgcHJpbmNpcGFsIG5hbWUuICBSZXBvcnRlZCBieSBTYW11ZWwgQ2FicmVyby4KLQotSWYgYSBzdGF0dXMgdmFsdWUgaXMgbm90IGFzc2lnbmVkIGR1cmluZyBLREMgcHJvY2Vzc2luZywgZGVmYXVsdCB0bwotIlVOS05PV05fUkVBU09OIiByYXRoZXIgdGhhbiBmYWlsaW5nIGFuIGFzc2VydGlvbi4gIFRoaXMgY2hhbmdlIHdpbGwKLXByZXZlbnQgZnV0dXJlIGRlbmlhbCBvZiBzZXJ2aWNlIGJ1Z3MgZHVlIHRvIHNpbWlsYXIgbWlzdGFrZXMsIGFuZAotd2lsbCBhbGxvdyB1cyB0byBvbWl0IGFzc2lnbmluZyBzdGF0dXMgdmFsdWVzIGZvciB1bmxpa2VseSBlcnJvcnMgc3VjaAotYXMgc21hbGwgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZXMuCi0KLUNWRS0yMDE3LTExMzY4OgotCi1JbiBNSVQga3JiNSAxLjcgYW5kIGxhdGVyLCBhbiBhdXRoZW50aWNhdGVkIGF0dGFja2VyIGNhbiBjYXVzZSBhbgotYXNzZXJ0aW9uIGZhaWx1cmUgaW4ga3JiNWtkYyBieSBzZW5kaW5nIGFuIGludmFsaWQgUzRVMlNlbGYgb3IKLVM0VTJQcm94eSByZXF1ZXN0LgotCi0gIENWU1N2MyBWZWN0b3I6IEFWOk4vQUM6TC9QUjpML1VJOk4vUzpVL0M6Ti9JOk4vQTpIL0U6SC9STDpPL1JDOkMKLQotdGlja2V0OiA4NTk5IChuZXcpCi10YXJnZXRfdmVyc2lvbjogMS4xNS1uZXh0Ci10YXJnZXRfdmVyc2lvbjogMS4xNC1uZXh0Ci10YWdzOiBwdWxsdXAKLS0tLQotIHNyYy9rZGMvZG9fYXNfcmVxLmMgIHwgIDQgKystLQotIHNyYy9rZGMvZG9fdGdzX3JlcS5jIHwgIDMgKystCi0gc3JjL2tkYy9rZGNfdXRpbC5jICAgfCAxMCArKysrKysrKy0tCi0gMyBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2tkYy9kb19hc19yZXEuYyBiL3NyYy9rZGMvZG9fYXNfcmVxLmMKLWluZGV4IDJkM2FkMTMuLjliMjU2YzggMTAwNjQ0Ci0tLS0gYS9zcmMva2RjL2RvX2FzX3JlcS5jCi0rKysgYi9zcmMva2RjL2RvX2FzX3JlcS5jCi1AQCAtMzY2LDggKzM2Niw4IEBAIGZpbmlzaF9wcm9jZXNzX2FzX3JlcShzdHJ1Y3QgYXNfcmVxX3N0YXRlICpzdGF0ZSwga3JiNV9lcnJvcl9jb2RlIGVycmNvZGUpCi0gICAgIGRpZF9sb2cgPSAxOwotIAotIGVncmVzczoKLS0gICAgaWYgKGVycmNvZGUgIT0gMCkKLS0gICAgICAgIGFzc2VydCAoc3RhdGUtPnN0YXR1cyAhPSAwKTsKLSsgICAgaWYgKGVycmNvZGUgIT0gMCAmJiBzdGF0ZS0+c3RhdHVzID09IE5VTEwpCi0rICAgICAgICBzdGF0ZS0+c3RhdHVzID0gIlVOS05PV05fUkVBU09OIjsKLSAKLSAgICAgYXVfc3RhdGUtPnN0YXR1cyA9IHN0YXRlLT5zdGF0dXM7Ci0gICAgIGF1X3N0YXRlLT5yZXBseSA9ICZzdGF0ZS0+cmVwbHk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2tkYy9kb190Z3NfcmVxLmMgYi9zcmMva2RjL2RvX3Rnc19yZXEuYwotaW5kZXggY2RjNzlhZC4uZDhkNjcxOSAxMDA2NDQKLS0tLSBhL3NyYy9rZGMvZG9fdGdzX3JlcS5jCi0rKysgYi9zcmMva2RjL2RvX3Rnc19yZXEuYwotQEAgLTgyMyw3ICs4MjMsOCBAQCBwcm9jZXNzX3Rnc19yZXEoc3RydWN0IHNlcnZlcl9oYW5kbGUgKmhhbmRsZSwga3JiNV9kYXRhICpwa3QsCi0gICAgIGZyZWUocmVwbHkuZW5jX3BhcnQuY2lwaGVydGV4dC5kYXRhKTsKLSAKLSBjbGVhbnVwOgotLSAgICBhc3NlcnQoc3RhdHVzICE9IE5VTEwpOwotKyAgICBpZiAoc3RhdHVzID09IE5VTEwpCi0rICAgICAgICBzdGF0dXMgPSAiVU5LTk9XTl9SRUFTT04iOwotICAgICBpZiAocmVwbHlfa2V5KQotICAgICAgICAga3JiNV9mcmVlX2tleWJsb2NrKGtkY19jb250ZXh0LCByZXBseV9rZXkpOwotICAgICBpZiAoZXJyY29kZSkKLWRpZmYgLS1naXQgYS9zcmMva2RjL2tkY191dGlsLmMgYi9zcmMva2RjL2tkY191dGlsLmMKLWluZGV4IDc3OGE2MjkuLmI3MTBhZWYgMTAwNjQ0Ci0tLS0gYS9zcmMva2RjL2tkY191dGlsLmMKLSsrKyBiL3NyYy9rZGMva2RjX3V0aWwuYwotQEAgLTEyMjAsOCArMTIyMCwxMCBAQCBrZGNfcHJvY2Vzc19mb3JfdXNlcihrZGNfcmVhbG1fdCAqa2RjX2FjdGl2ZV9yZWFsbSwKLSAgICAgcmVxX2RhdGEuZGF0YSA9IChjaGFyICopcGFfZGF0YS0+Y29udGVudHM7Ci0gCi0gICAgIGNvZGUgPSBkZWNvZGVfa3JiNV9wYV9mb3JfdXNlcigmcmVxX2RhdGEsICZmb3JfdXNlcik7Ci0tICAgIGlmIChjb2RlKQotKyAgICBpZiAoY29kZSkgewotKyAgICAgICAgKnN0YXR1cyA9ICJERUNPREVfUEFfRk9SX1VTRVIiOwotICAgICAgICAgcmV0dXJuIGNvZGU7Ci0rICAgIH0KLSAKLSAgICAgY29kZSA9IHZlcmlmeV9mb3JfdXNlcl9jaGVja3N1bShrZGNfY29udGV4dCwgdGdzX3Nlc3Npb24sIGZvcl91c2VyKTsKLSAgICAgaWYgKGNvZGUpIHsKLUBAIC0xMzIwLDggKzEzMjIsMTAgQEAga2RjX3Byb2Nlc3NfczR1X3g1MDlfdXNlcihrcmI1X2NvbnRleHQgY29udGV4dCwKLSAgICAgcmVxX2RhdGEuZGF0YSA9IChjaGFyICopcGFfZGF0YS0+Y29udGVudHM7Ci0gCi0gICAgIGNvZGUgPSBkZWNvZGVfa3JiNV9wYV9zNHVfeDUwOV91c2VyKCZyZXFfZGF0YSwgczR1X3g1MDlfdXNlcik7Ci0tICAgIGlmIChjb2RlKQotKyAgICBpZiAoY29kZSkgewotKyAgICAgICAgKnN0YXR1cyA9ICJERUNPREVfUEFfUzRVX1g1MDlfVVNFUiI7Ci0gICAgICAgICByZXR1cm4gY29kZTsKLSsgICAgfQotIAotICAgICBjb2RlID0gdmVyaWZ5X3M0dV94NTA5X3VzZXJfY2hlY2tzdW0oY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRnc19zdWJrZXkgPyB0Z3Nfc3Via2V5IDoKLUBAIC0xNjI0LDYgKzE2MjgsNyBAQCBrZGNfcHJvY2Vzc19zNHUycHJveHlfcmVxKGtkY19yZWFsbV90ICprZGNfYWN0aXZlX3JlYWxtLAotICAgICAgKiB0aGF0IGlzIHZhbGlkYXRlZCBwcmV2aW91c2x5IGluIHZhbGlkYXRlX3Rnc19yZXF1ZXN0KCkuCi0gICAgICAqLwotICAgICBpZiAocmVxdWVzdC0+a2RjX29wdGlvbnMgJiAoTk9OX1RHVF9PUFRJT04gfCBLRENfT1BUX0VOQ19US1RfSU5fU0tFWSkpIHsKLSsgICAgICAgICpzdGF0dXMgPSAiSU5WQUxJRF9TNFUyUFJPWFlfT1BUSU9OUyI7Ci0gICAgICAgICByZXR1cm4gS1JCNUtEQ19FUlJfQkFET1BUSU9OOwotICAgICB9Ci0gCi1AQCAtMTYzMSw2ICsxNjM2LDcgQEAga2RjX3Byb2Nlc3NfczR1MnByb3h5X3JlcShrZGNfcmVhbG1fdCAqa2RjX2FjdGl2ZV9yZWFsbSwKLSAgICAgaWYgKCFrcmI1X3ByaW5jaXBhbF9jb21wYXJlKGtkY19jb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyLT5wcmluYywgLyogYWZ0ZXIgY2Fub24gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9wcmluYykpIHsKLSsgICAgICAgICpzdGF0dXMgPSAiRVZJREVOQ0VfVElDS0VUX01JU01BVENIIjsKLSAgICAgICAgIHJldHVybiBLUkI1S0RDX0VSUl9TRVJWRVJfTk9NQVRDSDsKLSAgICAgfQotIAotLS0gCi0yLjEwLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9rcmI1LWFkbWluLXNlcnZlci5zZXJ2aWNlIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9rcmI1LWFkbWluLXNlcnZlci5zZXJ2aWNlCmluZGV4IDFiNDI3MTYuLjIxOTM5YTEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjUva3JiNS1hZG1pbi1zZXJ2ZXIuc2VydmljZQorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1L2tyYjUtYWRtaW4tc2VydmVyLnNlcnZpY2UKQEAgLTcsNiArNyw3IEBACiBUeXBlPWZvcmtpbmcKIEV4ZWNTdGFydFByZT0vYmluL3NoIC1jICJ0ZXN0ICEgLWYgL3Zhci9sb2cva2FkbWluZC5sb2cgfHwgdGVzdCAhIC14IC9zYmluL3Jlc3RvcmVjb24gfHwgL3NiaW4vcmVzdG9yZWNvbiAtRiAvdmFyL2xvZy9rYWRtaW5kLmxvZyIKIEV4ZWNTdGFydD0vdXNyL3NiaW4va2FkbWluZAorRW52aXJvbm1lbnRGaWxlPS0vZXRjL2RlZmF1bHQva3JiNS1hZG1pbi1zZXJ2ZXIKIFN1Y2Nlc3NFeGl0U3RhdHVzPTEgMiBTSUdLSUxMCiBUaW1lb3V0U3RvcFNlYz0zMAogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1L2tyYjUta2RjLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1L2tyYjUta2RjLnNlcnZpY2UKaW5kZXggZDVlNWE5NS4uYmYzN2M0NSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNS9rcmI1LWtkYy5zZXJ2aWNlCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9rcmI1L2tyYjUva3JiNS1rZGMuc2VydmljZQpAQCAtNiw2ICs2LDcgQEAKIFtTZXJ2aWNlXQogVHlwZT1mb3JraW5nCiBFeGVjU3RhcnQ9L3Vzci9zYmluL2tyYjVrZGMKK0Vudmlyb25tZW50RmlsZT0tL2V0Yy9kZWZhdWx0L2tyYjUta2RjCiBTdWNjZXNzRXhpdFN0YXR1cz0xIDIgU0lHS0lMTAogVGltZW91dFN0b3BTZWM9MzAKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNV8xLjE1LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1XzEuMTUuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc1ZTg2MS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1XzEuMTUuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE4NCArMCwwIEBACi1TVU1NQVJZID0gIkEgbmV0d29yayBhdXRoZW50aWNhdGlvbiBwcm90b2NvbCIKLURFU0NSSVBUSU9OID0gIktlcmJlcm9zIGlzIGEgc3lzdGVtIGZvciBhdXRoZW50aWNhdGluZyB1c2VycyBhbmQgc2VydmljZXMgb24gYSBuZXR3b3JrLiBcCi0gS2VyYmVyb3MgaXMgYSB0cnVzdGVkIHRoaXJkLXBhcnR5IHNlcnZpY2UuICBUaGF0IG1lYW5zIHRoYXQgdGhlcmUgaXMgYSBcCi0gdGhpcmQgcGFydHkgKHRoZSBLZXJiZXJvcyBzZXJ2ZXIpIHRoYXQgaXMgdHJ1c3RlZCBieSBhbGwgdGhlIGVudGl0aWVzIG9uIFwKLSB0aGUgbmV0d29yayAodXNlcnMgYW5kIHNlcnZpY2VzLCB1c3VhbGx5IGNhbGxlZCAicHJpbmNpcGFscyIpLiBcCi0gLiBcCi0gVGhpcyBpcyB0aGUgTUlUIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBvZiBLZXJiZXJvcyBWNS4gXAotIC4gXAotIFRoaXMgcGFja2FnZSBjb250YWlucyB0aGUgS2VyYmVyb3Mga2V5IHNlcnZlciAoS0RDKS4gIFRoZSBLREMgbWFuYWdlcyBhbGwgXAotIGF1dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzIGZvciBhIEtlcmJlcm9zIHJlYWxtLCBob2xkcyB0aGUgbWFzdGVyIGtleXMgXAotIGZvciB0aGUgcmVhbG0sIGFuZCByZXNwb25kcyB0byBhdXRoZW50aWNhdGlvbiByZXF1ZXN0cy4gIFRoaXMgcGFja2FnZSBcCi0gc2hvdWxkIGJlIGluc3RhbGxlZCBvbiBib3RoIG1hc3RlciBhbmQgc2xhdmUgS0RDcy4iCi0KLUhPTUVQQUdFID0gImh0dHA6Ly93ZWIubWl0LmVkdS9LZXJiZXJvcy8iCi1TRUNUSU9OID0gImNvbnNvbGUvbmV0d29yayIKLUxJQ0VOU0UgPSAiTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vJHtTfS8uLi9OT1RJQ0U7bWQ1PTNlMTJiOGEwNjVjY2EyNWRmZGNhYzczNGZiM2VjMGI5IgotREVQRU5EUyA9ICJuY3Vyc2VzIHV0aWwtbGludXggZTJmc3Byb2dzIGUyZnNwcm9ncy1uYXRpdmUiCi0KLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBiaW5jb25maWcgcGVybG5hdGl2ZSBzeXN0ZW1kIHVwZGF0ZS1yYy5kCi0KLVNIUlRfVkVSID0gIiR7QG9lLnV0aWxzLnRyaW1fdmVyc2lvbigiJHtQVn0iLCAyKX0iCi1TUkNfVVJJID0gImh0dHA6Ly93ZWIubWl0LmVkdS9rZXJiZXJvcy9kaXN0LyR7QlBOfS8ke1NIUlRfVkVSfS8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1hY2xvY2FsLUFkZC1wYXJhbWV0ZXItdG8tZGlzYWJsZS1rZXl1dGlscy1kZXRlY3Rpb24ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vZGViaWFuLXN1cHByZXNzLXVzci1saWItaW4ta3JiNS1jb25maWcucGF0Y2g7c3RyaXBsZXZlbD0yIFwKLSAgICAgICAgICAgZmlsZTovL2Nyb3NzY29tcGlsZV9ubS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9ldGMvaW5pdC5kL2tyYjUta2RjIFwKLSAgICAgICAgICAgZmlsZTovL2V0Yy9pbml0LmQva3JiNS1hZG1pbi1zZXJ2ZXIgXAotICAgICAgICAgICBmaWxlOi8vZXRjL2RlZmF1bHQva3JiNS1rZGMgXAotICAgICAgICAgICBmaWxlOi8vZXRjL2RlZmF1bHQva3JiNS1hZG1pbi1zZXJ2ZXIgXAotICAgICAgICAgICBmaWxlOi8va3JiNS1rZGMuc2VydmljZSBcCi0gICAgICAgICAgIGZpbGU6Ly9rcmI1LWFkbWluLXNlcnZlci5zZXJ2aWNlIFwKLSAgICAgICAgICAgZmlsZTovL2ZpeC1DVkUtMjAxNy0xMTM2OC5wYXRjaDtzdHJpcGxldmVsPTIgXAotICAgICAgICAgICBmaWxlOi8vQ1ZFLTIwMTctMTE0NjIucGF0Y2g7c3RyaXBsZXZlbD0yIFwKLSIKLVNSQ19VUklbbWQ1c3VtXSA9ICI4MDIyZjNhMWNkZTg0NjNlNDRmZDM1ZWY0MjczMWY4NSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI0MzdjODgzMWRkZDVmZGUyYTk5M2ZlZjQyNWRlZGI0ODQ2ODEwOWJiM2QzMjYxZWY4MzgyOTUwNDVhODllYjQ1IgotCi1DVkVfUFJPRFVDVCA9ICJrZXJiZXJvcyIKLQotUyA9ICIke1dPUktESVJ9LyR7QlB9L3NyYyIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIm9wZW5zc2wiCi1QQUNLQUdFQ09ORklHW2xpYmVkaXRdID0gIi0td2l0aC1saWJlZGl0LC0td2l0aG91dC1saWJlZGl0LGxpYmVkaXQiCi1QQUNLQUdFQ09ORklHW29wZW5zc2xdID0gIi0td2l0aC1wa2luaXQtY3J5cHRvLWltcGw9b3BlbnNzbCwsb3BlbnNzbCIKLVBBQ0tBR0VDT05GSUdba2V5dXRpbHNdID0gIi0tZW5hYmxlLWtleXV0aWxzLC0tZGlzYWJsZS1rZXl1dGlscyxrZXl1dGlscyIKLVBBQ0tBR0VDT05GSUdbbGRhcF0gPSAiLS13aXRoLWxkYXAsLS13aXRob3V0LWxkYXAsb3BlbmxkYXAiCi1QQUNLQUdFQ09ORklHW3JlYWRsaW5lXSA9ICItLXdpdGgtcmVhZGxpbmUsLS13aXRob3V0LXJlYWRsaW5lLHJlYWRsaW5lIgotCi1FWFRSQV9PRUNPTkYgKz0gIiAtLXdpdGhvdXQtdGNsIC0td2l0aC1zeXN0ZW0tZXQgLS1kaXNhYmxlLXJwYXRoIgotQ0FDSEVEX0NPTkZJR1VSRVZBUlMgKz0gImtyYjVfY3ZfYXR0cl9jb25zdHJ1Y3Rvcl9kZXN0cnVjdG9yPXllcyBhY19jdl9mdW5jX3JlZ2NvbXA9eWVzIFwKLSAgICAgICAgICAgICAgICAgIGFjX2N2X3ByaW50Zl9wb3NpdGlvbmFsPXllcyBhY19jdl9maWxlX19ldGNfZW52aXJvbm1lbnQ9eWVzIFwKLSAgICAgICAgICAgICAgICAgIGFjX2N2X2ZpbGVfX2V0Y19USU1FWk9ORT1ubyIKLQotQ0ZMQUdTX2FwcGVuZCA9ICIgLWZQSUMgLURERVNUUlVDVE9SX0FUVFJfV09SS1M9MSAtSSR7U1RBR0lOR19JTkNESVJ9L2V0IgotTERGTEFHU19hcHBlbmQgPSAiIC1wdGhyZWFkIgotCi1kb19jb25maWd1cmUoKSB7Ci0gICAgZ251LWNvbmZpZ2l6ZSAtLWZvcmNlCi0gICAgYXV0b3JlY29uZgotICAgIG9lX3J1bmNvbmYKLX0KLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgcm0gLXJmICR7RH0vJHtsb2NhbHN0YXRlZGlyfS9ydW4KLSAgICBybSAtZiAke0R9JHtiaW5kaXJ9L3NjbGllbnQKLSAgICBybSAtZiAke0R9JHtiaW5kaXJ9L3NpbV9jbGllbnQKLSAgICBybSAtZiAke0R9JHtiaW5kaXJ9L3V1Y2xpZW50Ci0gICAgcm0gLWYgJHtEfSR7c2JpbmRpcn0va3JiNS1zZW5kLXByCi0gICAgcm0gLWYgJHtEfSR7c2JpbmRpcn0vc2ltX3NlcnZlcgotICAgIHJtIC1mICR7RH0ke3NiaW5kaXJ9L3NzZXJ2ZXIKLSAgICBybSAtZiAke0R9JHtzYmluZGlyfS91dXNlcnZlcgotCi0gICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN2aW5pdCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCi0gICAgICAgIG1rZGlyIC1wICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQgJHtEfS8ke3N5c2NvbmZkaXJ9L2RlZmF1bHQKLSAgICAgICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vZXRjL2luaXQuZC8qICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQKLSAgICAgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vZXRjL2RlZmF1bHQvKiAke0R9LyR7c3lzY29uZmRpcn0vZGVmYXVsdAotCi0gICAgICAgIG1rZGlyIC1wICR7RH0vJHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcwotICAgICAgICBlY2hvICJkIHJvb3Qgcm9vdCAwNzU1ICR7bG9jYWxzdGF0ZWRpcn0vcnVuL2tyYjVrZGMgbm9uZSIgXAotICAgICAgICAgICAgICA+ICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvdm9sYXRpbGVzLzg3X2tyYjUKLSAgICBmaQotICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAotICAgICAgICBlY2hvICJkIC9ydW4va3JiNWtkYyAtIC0gLSAtIiBcCi0gICAgICAgICAgICAgID4gJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC9rcmI1LmNvbmYKLQotICAgICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9Ci0gICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2tyYjUtYWRtaW4tc2VydmVyLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0KLSAgICAgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0va3JiNS1rZGMuc2VydmljZSAke0R9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfQotICAgIGZpCi19Ci0KLVBBQ0tBR0VTID0rICIke1BOfS1hZG1pbi1zZXJ2ZXIgXAotICAgICAgICAgICAgICR7UE59LWdzcy1zYW1wbGVzIFwKLSAgICAgICAgICAgICAke1BOfS1rNXRscyBcCi0gICAgICAgICAgICAgJHtQTn0ta2RjIFwKLSAgICAgICAgICAgICAke1BOfS1rZGMtbGRhcCBcCi0gICAgICAgICAgICAgJHtQTn0ta3Byb3BkIFwKLSAgICAgICAgICAgICAke1BOfS1vdHAgXAotICAgICAgICAgICAgICR7UE59LXBraW5pdCBcCi0gICAgICAgICAgICAgJHtQTn0tdXNlciBcCi0gICAgICAgICAgICAgbGliZ3NzYXBpLWtyYjUgXAotICAgICAgICAgICAgIGxpYmdzc3JwYyBcCi0gICAgICAgICAgICAgbGliazVjcnlwdG8gXAotICAgICAgICAgICAgIGxpYmthZG01Y2xudC1taXQgXAotICAgICAgICAgICAgIGxpYmthZG01c3J2LW1pdCBcCi0gICAgICAgICAgICAgbGlia2RiNSBcCi0gICAgICAgICAgICAgbGlia3JhZCBcCi0gICAgICAgICAgICAgbGlia3JiNSBcCi0gICAgICAgICAgICAgbGlia3JiNXN1cHBvcnQgXAotICAgICAgICAgICAgIGxpYnZlcnRvIgotCi1GSUxFU18ke1BOfSA9ICIke2xpYmRpcn0va3JiNS9wbHVnaW5zL3ByZWF1dGgvdGVzdC5zbyIKLUZJTEVTXyR7UE59LWRvYyArPSAiJHtkYXRhZGlyfS9leGFtcGxlcyIKLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy8qLy5kZWJ1ZyIKLQotRklMRVNfJHtQTn0tYWRtaW4tc2VydmVyID0gIiR7c2JpbmRpcn0va2FkbWluLmxvY2FsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3NiaW5kaXJ9L2thZG1pbmQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7c2JpbmRpcn0va3Byb3AgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vZGVmYXVsdC9rcmI1LWFkbWluLXNlcnZlciBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9pbml0LmQva3JiNS1hZG1pbi1zZXJ2ZXIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0va3JiNS1hZG1pbi1zZXJ2ZXIuc2VydmljZSIKLQotRklMRVNfJHtQTn0tZ3NzLXNhbXBsZXMgPSAiJHtiaW5kaXJ9L2dzcy1jbGllbnQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtzYmluZGlyfS9nc3Mtc2VydmVyIgotCi1GSUxFU18ke1BOfS1rNXRscyA9ICIke2xpYmRpcn0va3JiNS9wbHVnaW5zL3Rscy9rNXRscy5zbyIKLQotRklMRVNfJHtQTn0ta2RjID0gIiR7bGliZGlyfS9rcmI1L3BsdWdpbnMva2RiL2RiMi5zbyBcCi0gICAgICAgICAgICAgICAgICAgJHtsb2NhbHN0YXRlZGlyfS9rcmI1a2RjIFwKLSAgICAgICAgICAgICAgICAgICAke3NiaW5kaXJ9L2tkYjVfdXRpbCBcCi0gICAgICAgICAgICAgICAgICAgJHtzYmluZGlyfS9rcHJvcGxvZyBcCi0gICAgICAgICAgICAgICAgICAgJHtzYmluZGlyfS9rcmI1a2RjIFwKLSAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2RlZmF1bHQva3JiNS1rZGMgXAotICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMvODdfa3JiNSBcCi0gICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9pbml0LmQva3JiNS1rZGMgXAotICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC9rcmI1LmNvbmYgXAotICAgICAgICAgICAgICAgICAgICR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0va3JiNS1rZGMuc2VydmljZSIKLQotRklMRVNfJHtQTn0ta2RjLWxkYXAgPSAiJHtsaWJkaXJ9L2tyYjUvbGlia2RiX2xkYXAke1NPTElCU30gXAotICAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy9rZGIva2xkYXAuc28gXAotICAgICAgICAgICAgICAgICAgICAgICAgJHtzYmluZGlyfS9rZGI1X2xkYXBfdXRpbCIKLQotRklMRVNfJHtQTn0ta3Byb3BkID0gIiR7c2JpbmRpcn0va3Byb3BkIgotRklMRVNfJHtQTn0tb3RwID0gIiR7bGliZGlyfS9rcmI1L3BsdWdpbnMvcHJlYXV0aC9vdHAuc28iCi1GSUxFU18ke1BOfS1wa2luaXQgPSAiJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy9wcmVhdXRoL3BraW5pdC5zbyIKLUZJTEVTXyR7UE59LXVzZXIgPSAiJHtiaW5kaXJ9L2sqIgotCi1GSUxFU19saWJnc3NhcGkta3JiNSA9ICIke2xpYmRpcn0vbGliZ3NzYXBpX2tyYjUke1NPTElCU30iCi1GSUxFU19saWJnc3NycGMgPSAiJHtsaWJkaXJ9L2xpYmdzc3JwYyR7U09MSUJTfSIKLUZJTEVTX2xpYms1Y3J5cHRvID0gIiR7bGliZGlyfS9saWJrNWNyeXB0byR7U09MSUJTfSIKLUZJTEVTX2xpYmthZG01Y2xudC1taXQgPSAiJHtsaWJkaXJ9L2xpYmthZG01Y2xudF9taXQke1NPTElCU30iCi1GSUxFU19saWJrYWRtNXNydi1taXQgPSAiJHtsaWJkaXJ9L2xpYmthZG01c3J2X21pdCR7U09MSUJTfSIKLUZJTEVTX2xpYmtkYjUgPSAiJHtsaWJkaXJ9L2xpYmtkYjUke1NPTElCU30iCi1GSUxFU19saWJrcmFkID0gIiR7bGliZGlyfS9saWJrcmFkJHtTT0xJQlN9IgotRklMRVNfbGlia3JiNSA9ICIke2xpYmRpcn0vbGlia3JiNSR7U09MSUJTfSBcCi0gICAgICAgICAgICAgICAgICR7bGliZGlyfS9rcmI1L3BsdWdpbnMvYXV0aGRhdGEgXAotICAgICAgICAgICAgICAgICAke2xpYmRpcn0va3JiNS9wbHVnaW5zL2xpYmtyYjUiCi1GSUxFU19saWJrcmI1c3VwcG9ydCA9ICIke2xpYmRpcn0vbGlia3JiNXN1cHBvcnQke1NPTElCU30iCi1GSUxFU19saWJ2ZXJ0byA9ICIke2xpYmRpcn0vbGlidmVydG8ke1NPTElCU30iCi0KLVJERVBFTkRTXyR7UE59LWthZG1pbi1zZXJ2ZXIgPSAiJHtQTn0ta2RjIgotUkRFUEVORFNfJHtQTn0ta3Byb3BkID0gIiR7UE59LWtkYyIKLQotSU5JVFNDUklQVF9QQUNLQUdFUyA9ICIke1BOfS1hZG1pbi1zZXJ2ZXIgJHtQTn0ta2RjIgotSU5JVFNDUklQVF9OQU1FXyR7UE59LWFkbWluLXNlcnZlciA9ICJrcmI1LWFkbWluLXNlcnZlciIKLUlOSVRTQ1JJUFRfTkFNRV8ke1BOfS1rZGMgPSAia3JiNS1rZGMiCi0KLVNZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0tYWRtaW4tc2VydmVyICR7UE59LWtkYyIKLVNZU1RFTURfU0VSVklDRV8ke1BOfS1hZG1pbi1zZXJ2ZXIgPSAia3JiNS1hZG1pbi1zZXJ2ZXIuc2VydmljZSIKLVNZU1RFTURfU0VSVklDRV8ke1BOfS1rZGMgPSAia3JiNS1rZGMuc2VydmljZSIKLQotcGtnX3Bvc3RpbnN0XyR7UE59LWtkYyAoKSB7Ci0gICAgaWYgWyAteiAiJEQiIF07IHRoZW4KLSAgICAgICAgaWYgY29tbWFuZCAtdiBzeXN0ZW1kLXRtcGZpbGVzID4vZGV2L251bGw7IHRoZW4KLSAgICAgICAgICAgIHN5c3RlbWQtdG1wZmlsZXMgLS1jcmVhdGUgJHtzeXNjb25mZGlyfS90bXBmaWxlcy5kL2tyYjUuY29uZgotICAgICAgICBlbGlmIFsgLWUgJHtzeXNjb25mZGlyfS9pbml0LmQvcG9wdWxhdGUtdm9sYXRpbGUuc2ggXTsgdGhlbgotICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9pbml0LmQvcG9wdWxhdGUtdm9sYXRpbGUuc2ggdXBkYXRlCi0gICAgICAgIGZpCi0gICAgZmkKLX0KLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNV8xLjE2LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2tyYjUva3JiNV8xLjE2LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5NTI0MGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkva3JiNS9rcmI1XzEuMTYuYmIKQEAgLTAsMCArMSwxODggQEAKK1NVTU1BUlkgPSAiQSBuZXR3b3JrIGF1dGhlbnRpY2F0aW9uIHByb3RvY29sIgorREVTQ1JJUFRJT04gPSAiS2VyYmVyb3MgaXMgYSBzeXN0ZW0gZm9yIGF1dGhlbnRpY2F0aW5nIHVzZXJzIGFuZCBzZXJ2aWNlcyBvbiBhIG5ldHdvcmsuIFwKKyBLZXJiZXJvcyBpcyBhIHRydXN0ZWQgdGhpcmQtcGFydHkgc2VydmljZS4gIFRoYXQgbWVhbnMgdGhhdCB0aGVyZSBpcyBhIFwKKyB0aGlyZCBwYXJ0eSAodGhlIEtlcmJlcm9zIHNlcnZlcikgdGhhdCBpcyB0cnVzdGVkIGJ5IGFsbCB0aGUgZW50aXRpZXMgb24gXAorIHRoZSBuZXR3b3JrICh1c2VycyBhbmQgc2VydmljZXMsIHVzdWFsbHkgY2FsbGVkICJwcmluY2lwYWxzIikuIFwKKyAuIFwKKyBUaGlzIGlzIHRoZSBNSVQgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIG9mIEtlcmJlcm9zIFY1LiBcCisgLiBcCisgVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBLZXJiZXJvcyBrZXkgc2VydmVyIChLREMpLiAgVGhlIEtEQyBtYW5hZ2VzIGFsbCBcCisgYXV0aGVudGljYXRpb24gY3JlZGVudGlhbHMgZm9yIGEgS2VyYmVyb3MgcmVhbG0sIGhvbGRzIHRoZSBtYXN0ZXIga2V5cyBcCisgZm9yIHRoZSByZWFsbSwgYW5kIHJlc3BvbmRzIHRvIGF1dGhlbnRpY2F0aW9uIHJlcXVlc3RzLiAgVGhpcyBwYWNrYWdlIFwKKyBzaG91bGQgYmUgaW5zdGFsbGVkIG9uIGJvdGggbWFzdGVyIGFuZCBzbGF2ZSBLRENzLiIKKworSE9NRVBBR0UgPSAiaHR0cDovL3dlYi5taXQuZWR1L0tlcmJlcm9zLyIKK1NFQ1RJT04gPSAiY29uc29sZS9uZXR3b3JrIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8ke1N9Ly4uL05PVElDRTttZDU9NTliOGRhNjUyZjA3MTg2YjQ0NzgyYTg0NTQ1NzRmMzAiCitERVBFTkRTID0gIm5jdXJzZXMgdXRpbC1saW51eCBlMmZzcHJvZ3MgZTJmc3Byb2dzLW5hdGl2ZSBvcGVuc3NsIgorCitpbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAgYmluY29uZmlnIHBlcmxuYXRpdmUgc3lzdGVtZCB1cGRhdGUtcmMuZAorCitTSFJUX1ZFUiA9ICIke0BvZS51dGlscy50cmltX3ZlcnNpb24oIiR7UFZ9IiwgMil9IgorU1JDX1VSSSA9ICJodHRwOi8vd2ViLm1pdC5lZHUva2VyYmVyb3MvZGlzdC8ke0JQTn0vJHtTSFJUX1ZFUn0vJHtCUH0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtYWNsb2NhbC1BZGQtcGFyYW1ldGVyLXRvLWRpc2FibGUta2V5dXRpbHMtZGV0ZWN0aW9uLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2RlYmlhbi1zdXBwcmVzcy11c3ItbGliLWluLWtyYjUtY29uZmlnLnBhdGNoO3N0cmlwbGV2ZWw9MiBcCisgICAgICAgICAgIGZpbGU6Ly9jcm9zc2NvbXBpbGVfbm0ucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vZXRjL2luaXQuZC9rcmI1LWtkYyBcCisgICAgICAgICAgIGZpbGU6Ly9ldGMvaW5pdC5kL2tyYjUtYWRtaW4tc2VydmVyIFwKKyAgICAgICAgICAgZmlsZTovL2V0Yy9kZWZhdWx0L2tyYjUta2RjIFwKKyAgICAgICAgICAgZmlsZTovL2V0Yy9kZWZhdWx0L2tyYjUtYWRtaW4tc2VydmVyIFwKKyAgICAgICAgICAgZmlsZTovL2tyYjUta2RjLnNlcnZpY2UgXAorICAgICAgICAgICBmaWxlOi8va3JiNS1hZG1pbi1zZXJ2ZXIuc2VydmljZSBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiMjNjNWU5ZjA3NjQyZGI0YTY3ZjdhNWI2MTY4YjEzMTkiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZmFlYjEyNWY4M2IwZmI0Y2RiMmY5OWYwODgxNDA2MzFiYjQ3ZDk3NTk4MmRlMDk1NmQxOGM4NTg0Mjk2OWUwOCIKKworQ1ZFX1BST0RVQ1QgPSAia2VyYmVyb3MiCisKK1MgPSAiJHtXT1JLRElSfS8ke0JQfS9zcmMiCisKK1BBQ0tBR0VDT05GSUcgPz89ICIiCitQQUNLQUdFQ09ORklHW2xpYmVkaXRdID0gIi0td2l0aC1saWJlZGl0LC0td2l0aG91dC1saWJlZGl0LGxpYmVkaXQiCitQQUNLQUdFQ09ORklHW29wZW5zc2xdID0gIi0td2l0aC1jcnlwdG8taW1wbD1vcGVuc3NsLCxvcGVuc3NsIgorUEFDS0FHRUNPTkZJR1trZXl1dGlsc10gPSAiLS1lbmFibGUta2V5dXRpbHMsLS1kaXNhYmxlLWtleXV0aWxzLGtleXV0aWxzIgorUEFDS0FHRUNPTkZJR1tsZGFwXSA9ICItLXdpdGgtbGRhcCwtLXdpdGhvdXQtbGRhcCxvcGVubGRhcCIKK1BBQ0tBR0VDT05GSUdbcmVhZGxpbmVdID0gIi0td2l0aC1yZWFkbGluZSwtLXdpdGhvdXQtcmVhZGxpbmUscmVhZGxpbmUiCisKK0VYVFJBX09FQ09ORiArPSAiIC0td2l0aG91dC10Y2wgLS13aXRoLXN5c3RlbS1ldCAtLWRpc2FibGUtcnBhdGgiCitDQUNIRURfQ09ORklHVVJFVkFSUyArPSAia3JiNV9jdl9hdHRyX2NvbnN0cnVjdG9yX2Rlc3RydWN0b3I9eWVzIGFjX2N2X2Z1bmNfcmVnY29tcD15ZXMgXAorICAgICAgICAgICAgICAgICAgYWNfY3ZfcHJpbnRmX3Bvc2l0aW9uYWw9eWVzIGFjX2N2X2ZpbGVfX2V0Y19lbnZpcm9ubWVudD15ZXMgXAorICAgICAgICAgICAgICAgICAgYWNfY3ZfZmlsZV9fZXRjX1RJTUVaT05FPW5vIgorCitDRkxBR1NfYXBwZW5kID0gIiAtZlBJQyAtRERFU1RSVUNUT1JfQVRUUl9XT1JLUz0xIC1JJHtTVEFHSU5HX0lOQ0RJUn0vZXQiCitDRkxBR1NfYXBwZW5kX3Jpc2N2NjQgPSAiIC1EX1JFRU5UUkFOVCAtcHRocmVhZCIKK0xERkxBR1NfYXBwZW5kID0gIiAtcHRocmVhZCIKKworZG9fY29uZmlndXJlKCkgeworICAgIGdudS1jb25maWdpemUgLS1mb3JjZQorICAgIGF1dG9yZWNvbmYKKyAgICBvZV9ydW5jb25mCit9CisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIHJtIC1yZiAke0R9LyR7bG9jYWxzdGF0ZWRpcn0vcnVuCisgICAgcm0gLWYgJHtEfSR7YmluZGlyfS9zY2xpZW50CisgICAgcm0gLWYgJHtEfSR7YmluZGlyfS9zaW1fY2xpZW50CisgICAgcm0gLWYgJHtEfSR7YmluZGlyfS91dWNsaWVudAorICAgIHJtIC1mICR7RH0ke3NiaW5kaXJ9L2tyYjUtc2VuZC1wcgorICAgIHJtIC1mICR7RH0ke3NiaW5kaXJ9L3NpbV9zZXJ2ZXIKKyAgICBybSAtZiAke0R9JHtzYmluZGlyfS9zc2VydmVyCisgICAgcm0gLWYgJHtEfSR7c2JpbmRpcn0vdXVzZXJ2ZXIKKworICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdmluaXQnLCAndHJ1ZScsICdmYWxzZScsIGQpfTsgdGhlbgorICAgICAgICBta2RpciAtcCAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kICR7RH0vJHtzeXNjb25mZGlyfS9kZWZhdWx0CisgICAgICAgIGluc3RhbGwgLW0gMDc1NSAke1dPUktESVJ9L2V0Yy9pbml0LmQvKiAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2V0Yy9kZWZhdWx0LyogJHtEfS8ke3N5c2NvbmZkaXJ9L2RlZmF1bHQKKworICAgICAgICBta2RpciAtcCAke0R9LyR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMKKyAgICAgICAgZWNobyAiZCByb290IHJvb3QgMDc1NSAke2xvY2Fsc3RhdGVkaXJ9L3J1bi9rcmI1a2RjIG5vbmUiIFwKKyAgICAgICAgICAgICAgPiAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcy84N19rcmI1CisKKyAgICAgICAgZWNobyAiUlVOX0tBRE1JTkQ9dHJ1ZSIgPj4gJHtEfS8ke3N5c2NvbmZkaXJ9L2RlZmF1bHQva3JiNS1hZG1pbi1zZXJ2ZXIKKyAgICBmaQorICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAorICAgICAgICBlY2hvICJkIC9ydW4va3JiNWtkYyAtIC0gLSAtIiBcCisgICAgICAgICAgICAgID4gJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC9rcmI1LmNvbmYKKworICAgICAgICBta2RpciAtcCAke0R9LyR7c3lzY29uZmRpcn0vZGVmYXVsdAorICAgICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9ldGMvZGVmYXVsdC8qICR7RH0vJHtzeXNjb25mZGlyfS9kZWZhdWx0CisKKyAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfQorICAgICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9rcmI1LWFkbWluLXNlcnZlci5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9CisgICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2tyYjUta2RjLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0KKyAgICBmaQorfQorCitQQUNLQUdFUyA9KyAiJHtQTn0tYWRtaW4tc2VydmVyIFwKKyAgICAgICAgICAgICAke1BOfS1nc3Mtc2FtcGxlcyBcCisgICAgICAgICAgICAgJHtQTn0tazV0bHMgXAorICAgICAgICAgICAgICR7UE59LWtkYyBcCisgICAgICAgICAgICAgJHtQTn0ta2RjLWxkYXAgXAorICAgICAgICAgICAgICR7UE59LWtwcm9wZCBcCisgICAgICAgICAgICAgJHtQTn0tb3RwIFwKKyAgICAgICAgICAgICAke1BOfS1wa2luaXQgXAorICAgICAgICAgICAgICR7UE59LXVzZXIgXAorICAgICAgICAgICAgIGxpYmdzc2FwaS1rcmI1IFwKKyAgICAgICAgICAgICBsaWJnc3NycGMgXAorICAgICAgICAgICAgIGxpYms1Y3J5cHRvIFwKKyAgICAgICAgICAgICBsaWJrYWRtNWNsbnQtbWl0IFwKKyAgICAgICAgICAgICBsaWJrYWRtNXNydi1taXQgXAorICAgICAgICAgICAgIGxpYmtkYjUgXAorICAgICAgICAgICAgIGxpYmtyYWQgXAorICAgICAgICAgICAgIGxpYmtyYjUgXAorICAgICAgICAgICAgIGxpYmtyYjVzdXBwb3J0IFwKKyAgICAgICAgICAgICBsaWJ2ZXJ0byIKKworRklMRVNfJHtQTn0gPSAiJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy9wcmVhdXRoL3Rlc3Quc28iCitGSUxFU18ke1BOfS1kb2MgKz0gIiR7ZGF0YWRpcn0vZXhhbXBsZXMiCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9rcmI1L3BsdWdpbnMvKi8uZGVidWciCisKK0ZJTEVTXyR7UE59LWFkbWluLXNlcnZlciA9ICIke3NiaW5kaXJ9L2thZG1pbi5sb2NhbCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtzYmluZGlyfS9rYWRtaW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3NiaW5kaXJ9L2twcm9wIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2RlZmF1bHQva3JiNS1hZG1pbi1zZXJ2ZXIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vaW5pdC5kL2tyYjUtYWRtaW4tc2VydmVyIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L2tyYjUtYWRtaW4tc2VydmVyLnNlcnZpY2UiCisKK0ZJTEVTXyR7UE59LWdzcy1zYW1wbGVzID0gIiR7YmluZGlyfS9nc3MtY2xpZW50IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICR7c2JpbmRpcn0vZ3NzLXNlcnZlciIKKworRklMRVNfJHtQTn0tazV0bHMgPSAiJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy90bHMvazV0bHMuc28iCisKK0ZJTEVTXyR7UE59LWtkYyA9ICIke2xpYmRpcn0va3JiNS9wbHVnaW5zL2tkYi9kYjIuc28gXAorICAgICAgICAgICAgICAgICAgICR7bG9jYWxzdGF0ZWRpcn0va3JiNWtkYyBcCisgICAgICAgICAgICAgICAgICAgJHtzYmluZGlyfS9rZGI1X3V0aWwgXAorICAgICAgICAgICAgICAgICAgICR7c2JpbmRpcn0va3Byb3Bsb2cgXAorICAgICAgICAgICAgICAgICAgICR7c2JpbmRpcn0va3JiNWtkYyBcCisgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9kZWZhdWx0L2tyYjUta2RjIFwKKyAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2RlZmF1bHQvdm9sYXRpbGVzLzg3X2tyYjUgXAorICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vaW5pdC5kL2tyYjUta2RjIFwKKyAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQva3JiNS5jb25mIFwKKyAgICAgICAgICAgICAgICAgICAke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L2tyYjUta2RjLnNlcnZpY2UiCisKK0ZJTEVTXyR7UE59LWtkYy1sZGFwID0gIiR7bGliZGlyfS9rcmI1L2xpYmtkYl9sZGFwJHtTT0xJQlN9IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9rcmI1L3BsdWdpbnMva2RiL2tsZGFwLnNvIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICR7c2JpbmRpcn0va2RiNV9sZGFwX3V0aWwiCisKK0ZJTEVTXyR7UE59LWtwcm9wZCA9ICIke3NiaW5kaXJ9L2twcm9wZCIKK0ZJTEVTXyR7UE59LW90cCA9ICIke2xpYmRpcn0va3JiNS9wbHVnaW5zL3ByZWF1dGgvb3RwLnNvIgorRklMRVNfJHtQTn0tcGtpbml0ID0gIiR7bGliZGlyfS9rcmI1L3BsdWdpbnMvcHJlYXV0aC9wa2luaXQuc28iCitGSUxFU18ke1BOfS11c2VyID0gIiR7YmluZGlyfS9rKiIKKworRklMRVNfbGliZ3NzYXBpLWtyYjUgPSAiJHtsaWJkaXJ9L2xpYmdzc2FwaV9rcmI1JHtTT0xJQlN9IgorRklMRVNfbGliZ3NzcnBjID0gIiR7bGliZGlyfS9saWJnc3NycGMke1NPTElCU30iCitGSUxFU19saWJrNWNyeXB0byA9ICIke2xpYmRpcn0vbGliazVjcnlwdG8ke1NPTElCU30iCitGSUxFU19saWJrYWRtNWNsbnQtbWl0ID0gIiR7bGliZGlyfS9saWJrYWRtNWNsbnRfbWl0JHtTT0xJQlN9IgorRklMRVNfbGlia2FkbTVzcnYtbWl0ID0gIiR7bGliZGlyfS9saWJrYWRtNXNydl9taXQke1NPTElCU30iCitGSUxFU19saWJrZGI1ID0gIiR7bGliZGlyfS9saWJrZGI1JHtTT0xJQlN9IgorRklMRVNfbGlia3JhZCA9ICIke2xpYmRpcn0vbGlia3JhZCR7U09MSUJTfSIKK0ZJTEVTX2xpYmtyYjUgPSAiJHtsaWJkaXJ9L2xpYmtyYjUke1NPTElCU30gXAorICAgICAgICAgICAgICAgICAke2xpYmRpcn0va3JiNS9wbHVnaW5zL2F1dGhkYXRhIFwKKyAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2tyYjUvcGx1Z2lucy9saWJrcmI1IgorRklMRVNfbGlia3JiNXN1cHBvcnQgPSAiJHtsaWJkaXJ9L2xpYmtyYjVzdXBwb3J0JHtTT0xJQlN9IgorRklMRVNfbGlidmVydG8gPSAiJHtsaWJkaXJ9L2xpYnZlcnRvJHtTT0xJQlN9IgorCitSREVQRU5EU18ke1BOfS1rYWRtaW4tc2VydmVyID0gIiR7UE59LWtkYyIKK1JERVBFTkRTXyR7UE59LWtwcm9wZCA9ICIke1BOfS1rZGMiCisKK0lOSVRTQ1JJUFRfUEFDS0FHRVMgPSAiJHtQTn0tYWRtaW4tc2VydmVyICR7UE59LWtkYyIKK0lOSVRTQ1JJUFRfTkFNRV8ke1BOfS1hZG1pbi1zZXJ2ZXIgPSAia3JiNS1hZG1pbi1zZXJ2ZXIiCitJTklUU0NSSVBUX05BTUVfJHtQTn0ta2RjID0gImtyYjUta2RjIgorCitTWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59LWFkbWluLXNlcnZlciAke1BOfS1rZGMiCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0tYWRtaW4tc2VydmVyID0gImtyYjUtYWRtaW4tc2VydmVyLnNlcnZpY2UiCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0ta2RjID0gImtyYjUta2RjLnNlcnZpY2UiCisKK3BrZ19wb3N0aW5zdF8ke1BOfS1rZGMgKCkgeworICAgIGlmIFsgLXogIiREIiBdOyB0aGVuCisgICAgICAgIGlmIGNvbW1hbmQgLXYgc3lzdGVtZC10bXBmaWxlcyA+L2Rldi9udWxsOyB0aGVuCisgICAgICAgICAgICBzeXN0ZW1kLXRtcGZpbGVzIC0tY3JlYXRlICR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC9rcmI1LmNvbmYKKyAgICAgICAgZWxpZiBbIC1lICR7c3lzY29uZmRpcn0vaW5pdC5kL3BvcHVsYXRlLXZvbGF0aWxlLnNoIF07IHRoZW4KKyAgICAgICAgICAgICR7c3lzY29uZmRpcn0vaW5pdC5kL3BvcHVsYXRlLXZvbGF0aWxlLnNoIHVwZGF0ZQorICAgICAgICBmaQorICAgIGZpCit9CisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJxbWkvbGlicW1pLzAwMDEtRGV0ZWN0LWNsYW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2xpYnFtaS9saWJxbWkvMDAwMS1EZXRlY3QtY2xhbmcucGF0Y2gKaW5kZXggNDA0N2ZmYi4uN2EzNDI5YiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2xpYnFtaS9saWJxbWkvMDAwMS1EZXRlY3QtY2xhbmcucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2xpYnFtaS9saWJxbWkvMDAwMS1EZXRlY3QtY2xhbmcucGF0Y2gKQEAgLTEyLDYgKzEyLDcgQEAKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZworCiAtLS0KICBtNC9jb21waWxlci13YXJuaW5ncy5tNCB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiAgMSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCkBAIC01Myw3ICs1NCw3IEBACiAgCQkgICAgICAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV3N0cmljdC1wcm90b3R5cGVzIFwKIEBAIC0xNywyMiArMzcsMjMgQEAgaWYgdGVzdCAiJEdDQyIgPSAieWVzIiAtYSAiJHNldF9tb3JlX3dhcm5pbmdzIiAhPSAibm8iOyB0aGVuCiAgCQkgICAgICAtV21pc3NpbmctaW5jbHVkZS1kaXJzIC1XYWdncmVnYXRlLXJldHVybiBcCi0gCQkgICAgICAtV2Zvcm1hdC1zZWN1cml0eTsgZG8KKyAJCSAgICAgIC1XZm9ybWF0LXNlY3VyaXR5IC1XdHlwZS1saW1pdHM7IGRvCiAgCQlTQVZFX0NGTEFHUz0iJENGTEFHUyIKIC0JCUNGTEFHUz0iJENGTEFHUyAkb3B0aW9uIgogKwkJQ0ZMQUdTPSIkQ0ZMQUdTICRvcHRpb24gJFdFUlJPUiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJxbWkvbGlicW1pXzEuMTYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJxbWkvbGlicW1pXzEuMTYuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODBjMjZjMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlicW1pL2xpYnFtaV8xLjE2LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1TVU1NQVJZID0gImxpYnFtaSBpcyBhIGxpYnJhcnkgZm9yIHRhbGtpbmcgdG8gV1dBTiBkZXZpY2VzIGJ5IFFNSSBwcm90b2NvbCIKLURFU0NSSVBUSU9OID0gImxpYnFtaSBpcyBhIGdsaWItYmFzZWQgbGlicmFyeSBmb3IgdGFsa2luZyB0byBXV0FOIG1vZGVtcyBhbmQgZGV2aWNlcyB3aGljaCBzcGVhayB0aGUgUXVhbGNvbW0gTVNNIEludGVyZmFjZSAoUU1JKSBwcm90b2NvbCIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3dpa2kvU29mdHdhcmUvbGlicW1pIgotTElDRU5TRSA9ICJHUEx2MiAmIExHUEx2Mi4xIgotTElDX0ZJTEVTX0NIS1NVTSA9ICIgXAotICAgIGZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyBcCi0gICAgZmlsZTovL0NPUFlJTkcuTElCO21kNT00ZmJkNjUzODBjZGQyNTU5NTEwNzkwMDhiMzY0NTE2YyBcCi0iCi0KLURFUEVORFMgPSAiZ2xpYi0yLjAgbGliZ3VkZXYgbGlibWJpbSBnbGliLTIuMC1uYXRpdmUiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBiYXNoLWNvbXBsZXRpb24KLQotU1JDX1VSSSA9ICJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZy9zb2Z0d2FyZS8ke0JQTn0vJHtCUE59LSR7UFZ9LnRhci54eiBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLURldGVjdC1jbGFuZy5wYXRjaCBcCi0gICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICI0OTcwYzExMGYxNjBiMzM2MzdhMzUxNTAwNGM2MzdiMiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI3YWI2YmI0N2ZkMjNiZjRkM2ZhMTc0MjRlNDBlYTU1NTJkMDhiMTllNWVlNGYxMjVmMjFmMzE2YzgwODZiYTJhIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2xpYnFtaS9saWJxbWlfMS4yMC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2xpYnFtaS9saWJxbWlfMS4yMC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzMDFjYmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlicW1pL2xpYnFtaV8xLjIwLjAuYmIKQEAgLTAsMCArMSwxOCBAQAorU1VNTUFSWSA9ICJsaWJxbWkgaXMgYSBsaWJyYXJ5IGZvciB0YWxraW5nIHRvIFdXQU4gZGV2aWNlcyBieSBRTUkgcHJvdG9jb2wiCitERVNDUklQVElPTiA9ICJsaWJxbWkgaXMgYSBnbGliLWJhc2VkIGxpYnJhcnkgZm9yIHRhbGtpbmcgdG8gV1dBTiBtb2RlbXMgYW5kIGRldmljZXMgd2hpY2ggc3BlYWsgdGhlIFF1YWxjb21tIE1TTSBJbnRlcmZhY2UgKFFNSSkgcHJvdG9jb2wiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZy93aWtpL1NvZnR3YXJlL2xpYnFtaSIKK0xJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIuMSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiIFwKKyAgICBmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMgXAorICAgIGZpbGU6Ly9DT1BZSU5HLkxJQjttZDU9NGZiZDY1MzgwY2RkMjU1OTUxMDc5MDA4YjM2NDUxNmMgXAorIgorCitERVBFTkRTID0gImdsaWItMi4wIGxpYmd1ZGV2IGxpYm1iaW0gZ2xpYi0yLjAtbmF0aXZlIgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgYmFzaC1jb21wbGV0aW9uCisKK1NSQ19VUkkgPSAiaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvc29mdHdhcmUvJHtCUE59LyR7QlBOfS0ke1BWfS50YXIueHogXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1EZXRlY3QtY2xhbmcucGF0Y2ggXAorICAgICAgICAgICAiCitTUkNfVVJJW21kNXN1bV0gPSAiNzk3ZTM2NTUyMWRmNzZiNzdiMDY3ZTYzMTc2MThiNDEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjE0MjhjZDM3NDljNTYyNDY1NjUxMjNmNzA3ZmVlNTEyMzg2NTFhMjJjNjBiZGM4NWViY2U5NzM4ODYyNmViNCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJ1di9saWJ1dl8xLjExLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlidXYvbGlidXZfMS4xMS4wLmJiCmluZGV4IDBhNTg0NmIuLmNhNDY4NWEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJ1di9saWJ1dl8xLjExLjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2xpYnV2L2xpYnV2XzEuMTEuMC5iYgpAQCAtNCwxMCArNCwxMCBAQAogTElDRU5TRSA9ICJNSVQiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1iYjVlYTBkNjUxZjRjMzUxOTMyNzE3MTkwNjA0NTc3NSIKIAotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vbGlidXYvJHtCUE59L2FyY2hpdmUvdiR7UFZ9LnRhci5nejtkb3dubG9hZGZpbGVuYW1lPSR7QlB9LnRhci5neiIKLQotU1JDX1VSSVttZDVzdW1dID0gIjE1NTUwYTlmNWY0NWY3ZjMyYWUyZDliYjBhMjFhMmE3IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjZlYzdlZWM2ZWNjMjRiMWE4ZmZlZGViZWRiMmZlOTMxM2ZmZmI1NDEwZGU4OWFhZjc4NGRkMDEwODA0MTFjN2EiCitTID0gIiR7V09SS0RJUn0vZ2l0IgorU1JDUkVWID0gIjc0NTJlZjRlMDZhNGY5OWVlMjZiNjk0YzY1NDc2NDAxNTM0ZjI3MjUiCitCUkFOQ0ggPSAidjEueCIKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9saWJ1di9saWJ1di5naXQ7cHJvdG9jb2w9aHR0cHM7YnJhbmNoPSR7QlJBTkNIfTsiCiAKIGluaGVyaXQgYXV0b3Rvb2xzCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJ3ZWJzb2NrZXRzL2xpYndlYnNvY2tldHNfMi4xLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbGlid2Vic29ja2V0cy9saWJ3ZWJzb2NrZXRzXzIuMS4wLmJiCmluZGV4IDkzNTQ3OTkuLjEwMGYzYTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9saWJ3ZWJzb2NrZXRzL2xpYndlYnNvY2tldHNfMi4xLjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L2xpYndlYnNvY2tldHMvbGlid2Vic29ja2V0c18yLjEuMC5iYgpAQCAtNSwxMCArNSw5IEBACiAKIERFUEVORFMgPSAiemxpYiIKIAotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vd2FybWNhdC9saWJ3ZWJzb2NrZXRzL2FyY2hpdmUvdiR7UFZ9LnRhci5neiIKLQotU1JDX1VSSVttZDVzdW1dID0gIjRkZjNiZTU3ZGVlNDNhZWViZDU0YTNlZDU2NTY4ZjUwIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImJjYzk2YWFhNjA5ZGFhZTRkM2Y3YWIxZWU0ODAxMjY3MDllZjRmNmE4YmY5Yzg1ZGU0MGFhZTQ4ZTM4Y2NlNjYiCitTID0gIiR7V09SS0RJUn0vZ2l0IgorU1JDUkVWID0gIjczNTU3NTA5YmQxNWY5NWExYWQwODFhNmY0ZmFiNDhmZjc3NDMyMTUiCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vd2FybWNhdC9saWJ3ZWJzb2NrZXRzLmdpdDtwcm90b2NvbD1odHRwczsiCiAKIGluaGVyaXQgY21ha2UgcGtnY29uZmlnCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9tb3NxdWl0dG8vZmlsZXMvMDAwMS1jb25maWcubWstYWxsb3ctcHJlZml4LW1hbmRpci1sb2NhbGVkaXItZnJvbS1lbnZpcm9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L21vc3F1aXR0by9maWxlcy8wMDAxLWNvbmZpZy5tay1hbGxvdy1wcmVmaXgtbWFuZGlyLWxvY2FsZWRpci1mcm9tLWVudmlyb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVhYTI3NwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9tb3NxdWl0dG8vZmlsZXMvMDAwMS1jb25maWcubWstYWxsb3ctcHJlZml4LW1hbmRpci1sb2NhbGVkaXItZnJvbS1lbnZpcm9uLnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAKK0Zyb20gMGJlMzgzMDEyNDlkNzk3ZWMxZjU5MDcxY2M4NjhjZWRhNmQ0NzIwYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyPUMzPUE5PTIwRHJhc3ppaz89IDxhbmRyZS5kcmFzemlrQGpjaS5jb20+CitEYXRlOiBUdWUsIDEyIEFwciAyMDE2IDEyOjUwOjMyICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMS8yXSBjb25maWcubWs6IGFsbG93IHByZWZpeCAvIG1hbmRpciAvIGxvY2FsZWRpciBmcm9tCisgZW52aXJvbm1lbnQKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworV2Ugd2FudCB0byBjb250cm9sIHRoZW0gdXNpbmcgT0UgZW52aXJvbm1lbnQgdmFyaWFibGVzLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkLXNwZWNpZmljXQorU2lnbmVkLW9mZi1ieTogQW5kcsOpIERyYXN6aWsgPGFuZHJlLmRyYXN6aWtAamNpLmNvbT4KKy0tLQorIGNvbmZpZy5tayB8IDYgKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZy5tayBiL2NvbmZpZy5taworaW5kZXggNzFmMTdlNS4uODFkOTcwMiAxMDA2NDQKKy0tLSBhL2NvbmZpZy5taworKysrIGIvY29uZmlnLm1rCitAQCAtMjQ5LDcgKzI0OSw3IEBAIGlmZXEgKCQoV0lUSF9ET0NTKSx5ZXMpCisgZW5kaWYKKyAKKyBJTlNUQUxMPz1pbnN0YWxsCistcHJlZml4PS91c3IvbG9jYWwKKy1tYW5kaXI9JHtwcmVmaXh9L3NoYXJlL21hbgorLWxvY2FsZWRpcj0ke3ByZWZpeH0vc2hhcmUvbG9jYWxlCisrcHJlZml4Pz0vdXNyL2xvY2FsCisrbWFuZGlyPz0ke3ByZWZpeH0vc2hhcmUvbWFuCisrbG9jYWxlZGlyPz0ke3ByZWZpeH0vc2hhcmUvbG9jYWxlCisgU1RSSVA/PXN0cmlwCistLSAKKzIuMTUuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbW9zcXVpdHRvL2ZpbGVzLzAwMDItdXRoYXNoLXJlbW92ZS1pbi10cmVlLXZlcnNpb24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbW9zcXVpdHRvL2ZpbGVzLzAwMDItdXRoYXNoLXJlbW92ZS1pbi10cmVlLXZlcnNpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzg5ZGZlNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9tb3NxdWl0dG8vZmlsZXMvMDAwMi11dGhhc2gtcmVtb3ZlLWluLXRyZWUtdmVyc2lvbi5wYXRjaApAQCAtMCwwICsxLDk3NSBAQAorRnJvbSBkOWFlZWY4ZDk1YTMyNTk0MmNjOTJmNGQ3MjQxNTc3MWQ3NWQ5MDRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHI9QzM9QTk9MjBEcmFzemlrPz0gPGFuZHJlLmRyYXN6aWtAamNpLmNvbT4KK0RhdGU6IFR1ZSwgMTIgQXByIDIwMTYgMTM6MDU6MTAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzJdIHV0aGFzaDogcmVtb3ZlIGluLXRyZWUgdmVyc2lvbgorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitXZSBkb24ndCBuZWVkIGl0IGFzIHdlIHdhbnQgdG8gdXNlIHRoZSB2ZXJzaW9uIHByb3ZpZGVkIGJ5CittZXRhLW9lIGluc3RlYWQuCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQtc3BlY2lmaWNdCitTaWduZWQtb2ZmLWJ5OiBBbmRyw6kgRHJhc3ppayA8YW5kcmUuZHJhc3ppa0BqY2kuY29tPgorLS0tCisgc3JjL3V0aGFzaC5oIHwgOTQ4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDk0OCBkZWxldGlvbnMoLSkKKyBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3V0aGFzaC5oCisKK2RpZmYgLS1naXQgYS9zcmMvdXRoYXNoLmggYi9zcmMvdXRoYXNoLmgKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggOTE1YTgyNS4uMDAwMDAwMAorLS0tIGEvc3JjL3V0aGFzaC5oCisrKysgL2Rldi9udWxsCitAQCAtMSw5NDggKzAsMCBAQAorLS8qCistQ29weXJpZ2h0IChjKSAyMDAzLTIwMTMsIFRyb3kgRC4gSGFuc29uICAgICBodHRwOi8vdHJveWRoYW5zb24uZ2l0aHViLmNvbS91dGhhc2gvCistQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy0KKy1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKy0KKy0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLSAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy0KKy1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUworLUlTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRAorLVRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQQorLVBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUgorLU9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorLUVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKy1QUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy1QUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GCistTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKy1ORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKy1TT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKy0qLworLQorLSNpZm5kZWYgVVRIQVNIX0gKKy0jZGVmaW5lIFVUSEFTSF9IIAorLQorLSNpbmNsdWRlIDxzdHJpbmcuaD4gICAvKiBtZW1jbXAsc3RybGVuICovCistI2luY2x1ZGUgPHN0ZGRlZi5oPiAgIC8qIHB0cmRpZmZfdCAqLworLSNpbmNsdWRlIDxzdGRsaWIuaD4gICAvKiBleGl0KCkgKi8KKy0KKy0vKiBUaGVzZSBtYWNyb3MgdXNlIGRlY2x0eXBlIG9yIHRoZSBlYXJsaWVyIF9fdHlwZW9mIEdOVSBleHRlbnNpb24uCistICAgQXMgZGVjbHR5cGUgaXMgb25seSBhdmFpbGFibGUgaW4gbmV3ZXIgY29tcGlsZXJzIChWUzIwMTAgb3IgZ2NjIDQuMysKKy0gICB3aGVuIGNvbXBpbGluZyBjKysgc291cmNlKSB0aGlzIGNvZGUgdXNlcyB3aGF0ZXZlciBtZXRob2QgaXMgbmVlZGVkCistICAgb3IsIGZvciBWUzIwMDggd2hlcmUgbmVpdGhlciBpcyBhdmFpbGFibGUsIHVzZXMgY2FzdGluZyB3b3JrYXJvdW5kcy4gKi8KKy0jaWZkZWYgX01TQ19WRVIgICAgICAgICAvKiBNUyBjb21waWxlciAqLworLSNpZiBfTVNDX1ZFUiA+PSAxNjAwICYmIGRlZmluZWQoX19jcGx1c3BsdXMpICAvKiBWUzIwMTAgb3IgbmV3ZXIgaW4gQysrIG1vZGUgKi8KKy0jZGVmaW5lIERFQ0xUWVBFKHgpIChkZWNsdHlwZSh4KSkKKy0jZWxzZSAgICAgICAgICAgICAgICAgICAvKiBWUzIwMDggb3Igb2xkZXIgKG9yIFZTMjAxMCBpbiBDIG1vZGUpICovCistI2RlZmluZSBOT19ERUNMVFlQRQorLSNkZWZpbmUgREVDTFRZUEUoeCkKKy0jZW5kaWYKKy0jZWxzZSAgICAgICAgICAgICAgICAgICAvKiBHTlUsIFN1biBhbmQgb3RoZXIgY29tcGlsZXJzICovCistI2RlZmluZSBERUNMVFlQRSh4KSAoX190eXBlb2YoeCkpCistI2VuZGlmCistCistI2lmZGVmIE5PX0RFQ0xUWVBFCistI2RlZmluZSBERUNMVFlQRV9BU1NJR04oZHN0LHNyYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGNoYXIgKipfZGFfZHN0ID0gKGNoYXIqKikoJihkc3QpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAqX2RhX2RzdCA9IChjaGFyKikoc3JjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUoMCkKKy0jZWxzZSAKKy0jZGVmaW5lIERFQ0xUWVBFX0FTU0lHTihkc3Qsc3JjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgKGRzdCkgPSBERUNMVFlQRShkc3QpKHNyYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlKDApCistI2VuZGlmCistCistLyogYSBudW1iZXIgb2YgdGhlIGhhc2ggZnVuY3Rpb24gdXNlIHVpbnQzMl90IHdoaWNoIGlzbid0IGRlZmluZWQgb24gd2luMzIgKi8KKy0jaWZkZWYgX01TQ19WRVIKKy10eXBlZGVmIHVuc2lnbmVkIGludCB1aW50MzJfdDsKKy10eXBlZGVmIHVuc2lnbmVkIGNoYXIgdWludDhfdDsKKy0jZWxzZQorLSNpbmNsdWRlIDxpbnR0eXBlcy5oPiAgIC8qIHVpbnQzMl90ICovCistI2VuZGlmCistCistI2RlZmluZSBVVEhBU0hfVkVSU0lPTiAxLjkuOAorLQorLSNpZm5kZWYgdXRoYXNoX2ZhdGFsCistI2RlZmluZSB1dGhhc2hfZmF0YWwobXNnKSBleGl0KC0xKSAgICAgICAgLyogZmF0YWwgZXJyb3IgKG91dCBvZiBtZW1vcnksZXRjKSAqLworLSNlbmRpZgorLSNpZm5kZWYgdXRoYXNoX21hbGxvYworLSNkZWZpbmUgdXRoYXNoX21hbGxvYyhzeikgbWFsbG9jKHN6KSAgICAgIC8qIG1hbGxvYyBmY24gICAgICAgICAgICAgICAgICAgICAgKi8KKy0jZW5kaWYKKy0jaWZuZGVmIHV0aGFzaF9mcmVlCistI2RlZmluZSB1dGhhc2hfZnJlZShwdHIsc3opIGZyZWUocHRyKSAgICAgLyogZnJlZSBmY24gICAgICAgICAgICAgICAgICAgICAgICAqLworLSNlbmRpZgorLQorLSNpZm5kZWYgdXRoYXNoX25vZXhwYW5kX2Z5aQorLSNkZWZpbmUgdXRoYXNoX25vZXhwYW5kX2Z5aSh0YmwpICAgICAgICAgIC8qIGNhbiBiZSBkZWZpbmVkIHRvIGxvZyBub2V4cGFuZCAgKi8KKy0jZW5kaWYKKy0jaWZuZGVmIHV0aGFzaF9leHBhbmRfZnlpCistI2RlZmluZSB1dGhhc2hfZXhwYW5kX2Z5aSh0YmwpICAgICAgICAgICAgLyogY2FuIGJlIGRlZmluZWQgdG8gbG9nIGV4cGFuZHMgICAqLworLSNlbmRpZgorLQorLS8qIGluaXRpYWwgbnVtYmVyIG9mIGJ1Y2tldHMgKi8KKy0jZGVmaW5lIEhBU0hfSU5JVElBTF9OVU1fQlVDS0VUUyAzMiAgICAgIC8qIGluaXRpYWwgbnVtYmVyIG9mIGJ1Y2tldHMgICAgICAgICovCistI2RlZmluZSBIQVNIX0lOSVRJQUxfTlVNX0JVQ0tFVFNfTE9HMiA1ICAvKiBsZzIgb2YgaW5pdGlhbCBudW1iZXIgb2YgYnVja2V0cyAqLworLSNkZWZpbmUgSEFTSF9CS1RfQ0FQQUNJVFlfVEhSRVNIIDEwICAgICAgLyogZXhwYW5kIHdoZW4gYnVja2V0IGNvdW50IHJlYWNoZXMgKi8KKy0KKy0vKiBjYWxjdWxhdGUgdGhlIGVsZW1lbnQgd2hvc2UgaGFzaCBoYW5kbGUgYWRkcmVzcyBpcyBoaGUgKi8KKy0jZGVmaW5lIEVMTVRfRlJPTV9ISCh0YmwsaGhwKSAoKHZvaWQqKSgoKGNoYXIqKShoaHApKSAtICgodGJsKS0+aGhvKSkpCistCistI2RlZmluZSBIQVNIX0ZJTkQoaGgsaGVhZCxrZXlwdHIsa2V5bGVuLG91dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHVuc2lnbmVkIF9oZl9ia3QsX2hmX2hhc2h2OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBvdXQ9TlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgaWYgKGhlYWQpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgIEhBU0hfRkNOKGtleXB0cixrZXlsZW4sIChoZWFkKS0+aGgudGJsLT5udW1fYnVja2V0cywgX2hmX2hhc2h2LCBfaGZfYmt0KTsgICBcCistICAgICBpZiAoSEFTSF9CTE9PTV9URVNUKChoZWFkKS0+aGgudGJsLCBfaGZfaGFzaHYpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICBIQVNIX0ZJTkRfSU5fQktUKChoZWFkKS0+aGgudGJsLCBoaCwgKGhlYWQpLT5oaC50YmwtPmJ1Y2tldHNbIF9oZl9ia3QgXSwgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICBrZXlwdHIsa2V5bGVuLG91dCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlICgwKQorLQorLSNpZmRlZiBIQVNIX0JMT09NCistI2RlZmluZSBIQVNIX0JMT09NX0JJVExFTiAoMVVMTCA8PCBIQVNIX0JMT09NKQorLSNkZWZpbmUgSEFTSF9CTE9PTV9CWVRFTEVOIChIQVNIX0JMT09NX0JJVExFTi84KSArICgoSEFTSF9CTE9PTV9CSVRMRU4lOCkgPyAxOjApCistI2RlZmluZSBIQVNIX0JMT09NX01BS0UodGJsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICh0YmwpLT5ibG9vbV9uYml0cyA9IEhBU0hfQkxPT007ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAodGJsKS0+Ymxvb21fYnYgPSAodWludDhfdCopdXRoYXNoX21hbGxvYyhIQVNIX0JMT09NX0JZVEVMRU4pOyAgICAgICAgICAgICAgICAgXAorLSAgaWYgKCEoKHRibCktPmJsb29tX2J2KSkgIHsgdXRoYXNoX2ZhdGFsKCAib3V0IG9mIG1lbW9yeSIpOyB9ICAgICAgICAgICAgICAgICAgIFwKKy0gIG1lbXNldCgodGJsKS0+Ymxvb21fYnYsIDAsIEhBU0hfQkxPT01fQllURUxFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAodGJsKS0+Ymxvb21fc2lnID0gSEFTSF9CTE9PTV9TSUdOQVRVUkU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUgKDApIAorLQorLSNkZWZpbmUgSEFTSF9CTE9PTV9GUkVFKHRibCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB1dGhhc2hfZnJlZSgodGJsKS0+Ymxvb21fYnYsIEhBU0hfQkxPT01fQllURUxFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUgKDApIAorLQorLSNkZWZpbmUgSEFTSF9CTE9PTV9CSVRTRVQoYnYsaWR4KSAoYnZbKGlkeCkvOF0gfD0gKDFVIDw8ICgoaWR4KSU4KSkpCistI2RlZmluZSBIQVNIX0JMT09NX0JJVFRFU1QoYnYsaWR4KSAoYnZbKGlkeCkvOF0gJiAoMVUgPDwgKChpZHgpJTgpKSkKKy0KKy0jZGVmaW5lIEhBU0hfQkxPT01fQUREKHRibCxoYXNodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBIQVNIX0JMT09NX0JJVFNFVCgodGJsKS0+Ymxvb21fYnYsIChoYXNodiAmICh1aW50MzJfdCkoKDFVTEwgPDwgKHRibCktPmJsb29tX25iaXRzKSAtIDEpKSkKKy0KKy0jZGVmaW5lIEhBU0hfQkxPT01fVEVTVCh0YmwsaGFzaHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBIQVNIX0JMT09NX0JJVFRFU1QoKHRibCktPmJsb29tX2J2LCAoaGFzaHYgJiAodWludDMyX3QpKCgxVUxMIDw8ICh0YmwpLT5ibG9vbV9uYml0cykgLSAxKSkpCistCistI2Vsc2UKKy0jZGVmaW5lIEhBU0hfQkxPT01fTUFLRSh0YmwpIAorLSNkZWZpbmUgSEFTSF9CTE9PTV9GUkVFKHRibCkgCistI2RlZmluZSBIQVNIX0JMT09NX0FERCh0YmwsaGFzaHYpIAorLSNkZWZpbmUgSEFTSF9CTE9PTV9URVNUKHRibCxoYXNodikgKDEpCistI2RlZmluZSBIQVNIX0JMT09NX0JZVEVMRU4gMAorLSNlbmRpZgorLQorLSNkZWZpbmUgSEFTSF9NQUtFX1RBQkxFKGhoLGhlYWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAoaGVhZCktPmhoLnRibCA9IChVVF9oYXNoX3RhYmxlKil1dGhhc2hfbWFsbG9jKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgIHNpemVvZihVVF9oYXNoX3RhYmxlKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGlmICghKChoZWFkKS0+aGgudGJsKSkgIHsgdXRoYXNoX2ZhdGFsKCAib3V0IG9mIG1lbW9yeSIpOyB9ICAgICAgICAgICAgICAgICAgICBcCistICBtZW1zZXQoKGhlYWQpLT5oaC50YmwsIDAsIHNpemVvZihVVF9oYXNoX3RhYmxlKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgKGhlYWQpLT5oaC50YmwtPnRhaWwgPSAmKChoZWFkKS0+aGgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIChoZWFkKS0+aGgudGJsLT5udW1fYnVja2V0cyA9IEhBU0hfSU5JVElBTF9OVU1fQlVDS0VUUzsgICAgICAgICAgICAgICAgICAgICAgICBcCistICAoaGVhZCktPmhoLnRibC0+bG9nMl9udW1fYnVja2V0cyA9IEhBU0hfSU5JVElBTF9OVU1fQlVDS0VUU19MT0cyOyAgICAgICAgICAgICAgXAorLSAgKGhlYWQpLT5oaC50YmwtPmhobyA9IChjaGFyKikoJihoZWFkKS0+aGgpIC0gKGNoYXIqKShoZWFkKTsgICAgICAgICAgICAgICAgICAgIFwKKy0gIChoZWFkKS0+aGgudGJsLT5idWNrZXRzID0gKFVUX2hhc2hfYnVja2V0Kil1dGhhc2hfbWFsbG9jKCAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgIEhBU0hfSU5JVElBTF9OVU1fQlVDS0VUUypzaXplb2Yoc3RydWN0IFVUX2hhc2hfYnVja2V0KSk7ICAgICAgICAgICAgICAgXAorLSAgaWYgKCEgKGhlYWQpLT5oaC50YmwtPmJ1Y2tldHMpIHsgdXRoYXNoX2ZhdGFsKCAib3V0IG9mIG1lbW9yeSIpOyB9ICAgICAgICAgICAgIFwKKy0gIG1lbXNldCgoaGVhZCktPmhoLnRibC0+YnVja2V0cywgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgIEhBU0hfSU5JVElBTF9OVU1fQlVDS0VUUypzaXplb2Yoc3RydWN0IFVUX2hhc2hfYnVja2V0KSk7ICAgICAgICAgICAgICAgXAorLSAgSEFTSF9CTE9PTV9NQUtFKChoZWFkKS0+aGgudGJsKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIChoZWFkKS0+aGgudGJsLT5zaWduYXR1cmUgPSBIQVNIX1NJR05BVFVSRTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSgwKQorLQorLSNkZWZpbmUgSEFTSF9BREQoaGgsaGVhZCxmaWVsZG5hbWUsa2V5bGVuX2luLGFkZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIEhBU0hfQUREX0tFWVBUUihoaCxoZWFkLCYoKGFkZCktPmZpZWxkbmFtZSksa2V5bGVuX2luLGFkZCkKKy0KKy0jZGVmaW5lIEhBU0hfUkVQTEFDRShoaCxoZWFkLGZpZWxkbmFtZSxrZXlsZW5faW4sYWRkLHJlcGxhY2VkKSAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgcmVwbGFjZWQ9TlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIEhBU0hfRklORChoaCxoZWFkLCYoKGFkZCktPmZpZWxkbmFtZSksa2V5bGVuX2luLHJlcGxhY2VkKTsgICAgICAgICAgICAgICAgICAgICBcCistICBpZiAocmVwbGFjZWQhPU5VTEwpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgSEFTSF9ERUxFVEUoaGgsaGVhZCxyZXBsYWNlZCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBIQVNIX0FERChoaCxoZWFkLGZpZWxkbmFtZSxrZXlsZW5faW4sYWRkKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUoMCkKKy0gCistI2RlZmluZSBIQVNIX0FERF9LRVlQVFIoaGgsaGVhZCxrZXlwdHIsa2V5bGVuX2luLGFkZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gdW5zaWduZWQgX2hhX2JrdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIChhZGQpLT5oaC5uZXh0ID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAoYWRkKS0+aGgua2V5ID0gKGNoYXIqKWtleXB0cjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gKGFkZCktPmhoLmtleWxlbiA9ICh1bnNpZ25lZClrZXlsZW5faW47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSBpZiAoIShoZWFkKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaGVhZCA9IChhZGQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIChoZWFkKS0+aGgucHJldiA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBIQVNIX01BS0VfVEFCTEUoaGgsaGVhZCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIChoZWFkKS0+aGgudGJsLT50YWlsLT5uZXh0ID0gKGFkZCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAoYWRkKS0+aGgucHJldiA9IEVMTVRfRlJPTV9ISCgoaGVhZCktPmhoLnRibCwgKGhlYWQpLT5oaC50YmwtPnRhaWwpOyAgICAgICAgIFwKKy0gICAgKGhlYWQpLT5oaC50YmwtPnRhaWwgPSAmKChhZGQpLT5oaCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAoaGVhZCktPmhoLnRibC0+bnVtX2l0ZW1zKys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gKGFkZCktPmhoLnRibCA9IChoZWFkKS0+aGgudGJsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIEhBU0hfRkNOKGtleXB0cixrZXlsZW5faW4sIChoZWFkKS0+aGgudGJsLT5udW1fYnVja2V0cywgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgIChhZGQpLT5oaC5oYXNodiwgX2hhX2JrdCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gSEFTSF9BRERfVE9fQktUKChoZWFkKS0+aGgudGJsLT5idWNrZXRzW19oYV9ia3RdLCYoYWRkKS0+aGgpOyAgICAgICAgICAgICAgICAgICBcCistIEhBU0hfQkxPT01fQUREKChoZWFkKS0+aGgudGJsLChhZGQpLT5oaC5oYXNodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSBIQVNIX0VNSVRfS0VZKGhoLGhlYWQsa2V5cHRyLGtleWxlbl9pbik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gSEFTSF9GU0NLKGhoLGhlYWQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSgwKQorLQorLSNkZWZpbmUgSEFTSF9UT19CS1QoIGhhc2h2LCBudW1fYmt0cywgYmt0ICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBia3QgPSAoKGhhc2h2KSAmICgobnVtX2JrdHMpIC0gMSkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUoMCkKKy0KKy0vKiBkZWxldGUgImRlbHB0ciIgZnJvbSB0aGUgaGFzaCB0YWJsZS4KKy0gKiAidGhlIHVzdWFsIiBwYXRjaC11cCBwcm9jZXNzIGZvciB0aGUgYXBwLW9yZGVyIGRvdWJseS1saW5rZWQtbGlzdC4KKy0gKiBUaGUgdXNlIG9mIF9oZF9oaF9kZWwgYmVsb3cgZGVzZXJ2ZXMgc3BlY2lhbCBleHBsYW5hdGlvbi4KKy0gKiBUaGVzZSB1c2VkIHRvIGJlIGV4cHJlc3NlZCB1c2luZyAoZGVscHRyKSBidXQgdGhhdCBsZWQgdG8gYSBidWcKKy0gKiBpZiBzb21lb25lIHVzZWQgdGhlIHNhbWUgc3ltYm9sIGZvciB0aGUgaGVhZCBhbmQgZGVsZXRlZSwgbGlrZQorLSAqICBIQVNIX0RFTEVURShoaCx1c2Vycyx1c2Vycyk7CistICogV2Ugd2FudCB0aGF0IHRvIHdvcmssIGJ1dCBieSBjaGFuZ2luZyB0aGUgaGVhZCAodXNlcnMpIGJlbG93CistICogd2Ugd2VyZSBmb3JmZWl0aW5nIG91ciBhYmlsaXR5IHRvIGZ1cnRoZXIgcmVmZXIgdG8gdGhlIGRlbGV0ZWUgKHVzZXJzKQorLSAqIGluIHRoZSBwYXRjaC11cCBwcm9jZXNzLiBTb2x1dGlvbjogdXNlIHNjcmF0Y2ggc3BhY2UgdG8KKy0gKiBjb3B5IHRoZSBkZWxldGVlIHBvaW50ZXIsIHRoZW4gdGhlIGxhdHRlciByZWZlcmVuY2VzIGFyZSB2aWEgdGhhdAorLSAqIHNjcmF0Y2ggcG9pbnRlciByYXRoZXIgdGhhbiB0aHJvdWdoIHRoZSByZXBvaW50ZWQgKHVzZXJzKSBzeW1ib2wuCistICovCistI2RlZmluZSBIQVNIX0RFTEVURShoaCxoZWFkLGRlbHB0cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgdW5zaWduZWQgX2hkX2JrdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIHN0cnVjdCBVVF9oYXNoX2hhbmRsZSAqX2hkX2hoX2RlbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBpZiAoICgoZGVscHRyKS0+aGgucHJldiA9PSBOVUxMKSAmJiAoKGRlbHB0ciktPmhoLm5leHQgPT0gTlVMTCkgKSAgeyAgICAgICAgIFwKKy0gICAgICAgIHV0aGFzaF9mcmVlKChoZWFkKS0+aGgudGJsLT5idWNrZXRzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAoaGVhZCktPmhoLnRibC0+bnVtX2J1Y2tldHMqc2l6ZW9mKHN0cnVjdCBVVF9oYXNoX2J1Y2tldCkgKTsgXAorLSAgICAgICAgSEFTSF9CTE9PTV9GUkVFKChoZWFkKS0+aGgudGJsKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIHV0aGFzaF9mcmVlKChoZWFkKS0+aGgudGJsLCBzaXplb2YoVVRfaGFzaF90YWJsZSkpOyAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBoZWFkID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIF9oZF9oaF9kZWwgPSAmKChkZWxwdHIpLT5oaCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBpZiAoKGRlbHB0cikgPT0gRUxNVF9GUk9NX0hIKChoZWFkKS0+aGgudGJsLChoZWFkKS0+aGgudGJsLT50YWlsKSkgeyAgICAgXAorLSAgICAgICAgICAgIChoZWFkKS0+aGgudGJsLT50YWlsID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgKFVUX2hhc2hfaGFuZGxlKikoKHB0cmRpZmZfdCkoKGRlbHB0ciktPmhoLnByZXYpICsgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgIChoZWFkKS0+aGgudGJsLT5oaG8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIGlmICgoZGVscHRyKS0+aGgucHJldikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgKChVVF9oYXNoX2hhbmRsZSopKChwdHJkaWZmX3QpKChkZWxwdHIpLT5oaC5wcmV2KSArICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgKGhlYWQpLT5oaC50YmwtPmhobykpLT5uZXh0ID0gKGRlbHB0ciktPmhoLm5leHQ7ICAgICAgICAgICAgIFwKKy0gICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgREVDTFRZUEVfQVNTSUdOKGhlYWQsKGRlbHB0ciktPmhoLm5leHQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIGlmIChfaGRfaGhfZGVsLT5uZXh0KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgKChVVF9oYXNoX2hhbmRsZSopKChwdHJkaWZmX3QpX2hkX2hoX2RlbC0+bmV4dCArICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgKGhlYWQpLT5oaC50YmwtPmhobykpLT5wcmV2ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgIF9oZF9oaF9kZWwtPnByZXY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgSEFTSF9UT19CS1QoIF9oZF9oaF9kZWwtPmhhc2h2LCAoaGVhZCktPmhoLnRibC0+bnVtX2J1Y2tldHMsIF9oZF9ia3QpOyAgIFwKKy0gICAgICAgIEhBU0hfREVMX0lOX0JLVChoaCwoaGVhZCktPmhoLnRibC0+YnVja2V0c1tfaGRfYmt0XSwgX2hkX2hoX2RlbCk7ICAgICAgICBcCistICAgICAgICAoaGVhZCktPmhoLnRibC0+bnVtX2l0ZW1zLS07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgSEFTSF9GU0NLKGhoLGhlYWQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSAoMCkKKy0KKy0KKy0vKiBjb252ZW5pZW5jZSBmb3JtcyBvZiBIQVNIX0ZJTkQvSEFTSF9BREQvSEFTSF9ERUwgKi8KKy0jZGVmaW5lIEhBU0hfRklORF9TVFIoaGVhZCxmaW5kc3RyLG91dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIEhBU0hfRklORChoaCxoZWFkLGZpbmRzdHIsc3RybGVuKGZpbmRzdHIpLG91dCkKKy0jZGVmaW5lIEhBU0hfQUREX1NUUihoZWFkLHN0cmZpZWxkLGFkZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIEhBU0hfQUREKGhoLGhlYWQsc3RyZmllbGQsc3RybGVuKGFkZC0+c3RyZmllbGQpLGFkZCkKKy0jZGVmaW5lIEhBU0hfUkVQTEFDRV9TVFIoaGVhZCxzdHJmaWVsZCxhZGQscmVwbGFjZWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBIQVNIX1JFUExBQ0UoaGgsaGVhZCxzdHJmaWVsZCxzdHJsZW4oYWRkLT5zdHJmaWVsZCksYWRkLHJlcGxhY2VkKQorLSNkZWZpbmUgSEFTSF9GSU5EX0lOVChoZWFkLGZpbmRpbnQsb3V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgSEFTSF9GSU5EKGhoLGhlYWQsZmluZGludCxzaXplb2YoaW50KSxvdXQpCistI2RlZmluZSBIQVNIX0FERF9JTlQoaGVhZCxpbnRmaWVsZCxhZGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBIQVNIX0FERChoaCxoZWFkLGludGZpZWxkLHNpemVvZihpbnQpLGFkZCkKKy0jZGVmaW5lIEhBU0hfUkVQTEFDRV9JTlQoaGVhZCxpbnRmaWVsZCxhZGQscmVwbGFjZWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIEhBU0hfUkVQTEFDRShoaCxoZWFkLGludGZpZWxkLHNpemVvZihpbnQpLGFkZCxyZXBsYWNlZCkKKy0jZGVmaW5lIEhBU0hfRklORF9QVFIoaGVhZCxmaW5kcHRyLG91dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIEhBU0hfRklORChoaCxoZWFkLGZpbmRwdHIsc2l6ZW9mKHZvaWQgKiksb3V0KQorLSNkZWZpbmUgSEFTSF9BRERfUFRSKGhlYWQscHRyZmllbGQsYWRkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgSEFTSF9BREQoaGgsaGVhZCxwdHJmaWVsZCxzaXplb2Yodm9pZCAqKSxhZGQpCistI2RlZmluZSBIQVNIX1JFUExBQ0VfUFRSKGhlYWQscHRyZmllbGQsYWRkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBIQVNIX1JFUExBQ0UoaGgsaGVhZCxwdHJmaWVsZCxzaXplb2Yodm9pZCAqKSxhZGQscmVwbGFjZWQpCistI2RlZmluZSBIQVNIX0RFTChoZWFkLGRlbHB0cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBIQVNIX0RFTEVURShoaCxoZWFkLGRlbHB0cikKKy0KKy0vKiBIQVNIX0ZTQ0sgY2hlY2tzIGhhc2ggaW50ZWdyaXR5IG9uIGV2ZXJ5IGFkZC9kZWxldGUgd2hlbiBIQVNIX0RFQlVHIGlzIGRlZmluZWQuCistICogVGhpcyBpcyBmb3IgdXRoYXNoIGRldmVsb3BlciBvbmx5OyBpdCBjb21waWxlcyBhd2F5IGlmIEhBU0hfREVCVUcgaXNuJ3QgZGVmaW5lZC4KKy0gKi8KKy0jaWZkZWYgSEFTSF9ERUJVRworLSNkZWZpbmUgSEFTSF9PT1BTKC4uLikgZG8geyBmcHJpbnRmKHN0ZGVycixfX1ZBX0FSR1NfXyk7IGV4aXQoLTEpOyB9IHdoaWxlICgwKQorLSNkZWZpbmUgSEFTSF9GU0NLKGhoLGhlYWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIHVuc2lnbmVkIF9ia3RfaTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB1bnNpZ25lZCBfY291bnQsIF9ia3RfY291bnQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgY2hhciAqX3ByZXY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIHN0cnVjdCBVVF9oYXNoX2hhbmRsZSAqX3RoaDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBpZiAoaGVhZCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIF9jb3VudCA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBmb3IoIF9ia3RfaSA9IDA7IF9ia3RfaSA8IChoZWFkKS0+aGgudGJsLT5udW1fYnVja2V0czsgX2JrdF9pKyspIHsgICAgICAgXAorLSAgICAgICAgICAgIF9ia3RfY291bnQgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBfdGhoID0gKGhlYWQpLT5oaC50YmwtPmJ1Y2tldHNbX2JrdF9pXS5oaF9oZWFkOyAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgX3ByZXYgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIHdoaWxlIChfdGhoKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICBpZiAoX3ByZXYgIT0gKGNoYXIqKShfdGhoLT5oaF9wcmV2KSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgIEhBU0hfT09QUygiaW52YWxpZCBoaF9wcmV2ICVwLCBhY3R1YWwgJXBcbiIsICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgX3RoaC0+aGhfcHJldiwgX3ByZXYgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgX2JrdF9jb3VudCsrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgIF9wcmV2ID0gKGNoYXIqKShfdGhoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICBfdGhoID0gX3RoaC0+aGhfbmV4dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIF9jb3VudCArPSBfYmt0X2NvdW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBpZiAoKGhlYWQpLT5oaC50YmwtPmJ1Y2tldHNbX2JrdF9pXS5jb3VudCAhPSAgX2JrdF9jb3VudCkgeyAgICAgICAgICBcCistICAgICAgICAgICAgICAgSEFTSF9PT1BTKCJpbnZhbGlkIGJ1Y2tldCBjb3VudCAlZCwgYWN0dWFsICVkXG4iLCAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAoaGVhZCktPmhoLnRibC0+YnVja2V0c1tfYmt0X2ldLmNvdW50LCBfYmt0X2NvdW50KTsgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgaWYgKF9jb3VudCAhPSAoaGVhZCktPmhoLnRibC0+bnVtX2l0ZW1zKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBIQVNIX09PUFMoImludmFsaWQgaGggaXRlbSBjb3VudCAlZCwgYWN0dWFsICVkXG4iLCAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgIChoZWFkKS0+aGgudGJsLT5udW1faXRlbXMsIF9jb3VudCApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIC8qIHRyYXZlcnNlIGhoIGluIGFwcCBvcmRlcjsgY2hlY2sgbmV4dC9wcmV2IGludGVncml0eSwgY291bnQgKi8gICAgICAgICBcCistICAgICAgICBfY291bnQgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgX3ByZXYgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIF90aGggPSAgJihoZWFkKS0+aGg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICB3aGlsZSAoX3RoaCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgX2NvdW50Kys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgIGlmIChfcHJldiAhPShjaGFyKikoX3RoaC0+cHJldikpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICBIQVNIX09PUFMoImludmFsaWQgcHJldiAlcCwgYWN0dWFsICVwXG4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgX3RoaC0+cHJldiwgX3ByZXYgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICBfcHJldiA9IChjaGFyKilFTE1UX0ZST01fSEgoKGhlYWQpLT5oaC50YmwsIF90aGgpOyAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgX3RoaCA9ICggX3RoaC0+bmV4dCA/ICAoVVRfaGFzaF9oYW5kbGUqKSgoY2hhciopKF90aGgtPm5leHQpICsgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhlYWQpLT5oaC50YmwtPmhobykgOiBOVUxMICk7ICAgICAgICAgICAgICAgICBcCistICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgaWYgKF9jb3VudCAhPSAoaGVhZCktPmhoLnRibC0+bnVtX2l0ZW1zKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBIQVNIX09PUFMoImludmFsaWQgYXBwIGl0ZW0gY291bnQgJWQsIGFjdHVhbCAlZFxuIiwgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgIChoZWFkKS0+aGgudGJsLT5udW1faXRlbXMsIF9jb3VudCApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSAoMCkKKy0jZWxzZQorLSNkZWZpbmUgSEFTSF9GU0NLKGhoLGhlYWQpIAorLSNlbmRpZgorLQorLS8qIFdoZW4gY29tcGlsZWQgd2l0aCAtREhBU0hfRU1JVF9LRVlTLCBsZW5ndGgtcHJlZml4ZWQga2V5cyBhcmUgZW1pdHRlZCB0byAKKy0gKiB0aGUgZGVzY3JpcHRvciB0byB3aGljaCB0aGlzIG1hY3JvIGlzIGRlZmluZWQgZm9yIHR1bmluZyB0aGUgaGFzaCBmdW5jdGlvbi4KKy0gKiBUaGUgYXBwIGNhbiAjaW5jbHVkZSA8dW5pc3RkLmg+IHRvIGdldCB0aGUgcHJvdG90eXBlIGZvciB3cml0ZSgyKS4gKi8KKy0jaWZkZWYgSEFTSF9FTUlUX0tFWVMKKy0jZGVmaW5lIEhBU0hfRU1JVF9LRVkoaGgsaGVhZCxrZXlwdHIsZmllbGRsZW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB1bnNpZ25lZCBfa2xlbiA9IGZpZWxkbGVuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgd3JpdGUoSEFTSF9FTUlUX0tFWVMsICZfa2xlbiwgc2l6ZW9mKF9rbGVuKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIHdyaXRlKEhBU0hfRU1JVF9LRVlTLCBrZXlwdHIsIGZpZWxkbGVuKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUgKDApCistI2Vsc2UgCistI2RlZmluZSBIQVNIX0VNSVRfS0VZKGhoLGhlYWQsa2V5cHRyLGZpZWxkbGVuKSAgICAgICAgICAgICAgICAgICAgCistI2VuZGlmCistCistLyogZGVmYXVsdCB0byBKZW5raW4ncyBoYXNoIHVubGVzcyBvdmVycmlkZGVuIGUuZy4gREhBU0hfRlVOQ1RJT049SEFTSF9TQVggKi8KKy0jaWZkZWYgSEFTSF9GVU5DVElPTiAKKy0jZGVmaW5lIEhBU0hfRkNOIEhBU0hfRlVOQ1RJT04KKy0jZWxzZQorLSNkZWZpbmUgSEFTSF9GQ04gSEFTSF9KRU4KKy0jZW5kaWYKKy0KKy0vKiBUaGUgQmVybnN0ZWluIGhhc2ggZnVuY3Rpb24sIHVzZWQgaW4gUGVybCBwcmlvciB0byB2NS42ICovCistI2RlZmluZSBIQVNIX0JFUihrZXksa2V5bGVuLG51bV9ia3RzLGhhc2h2LGJrdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHVuc2lnbmVkIF9oYl9rZXlsZW49a2V5bGVuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBjaGFyICpfaGJfa2V5PShjaGFyKikoa2V5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgKGhhc2h2KSA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHdoaWxlIChfaGJfa2V5bGVuLS0pICB7IChoYXNodikgPSAoKGhhc2h2KSAqIDMzKSArICpfaGJfa2V5Kys7IH0gICAgICAgICAgICAgICBcCistICBia3QgPSAoaGFzaHYpICYgKG51bV9ia3RzLTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUgKDApCistCistCistLyogU0FYL0ZOVi9PQVQvSkVOIGhhc2ggZnVuY3Rpb25zIGFyZSBtYWNybyB2YXJpYW50cyBvZiB0aG9zZSBsaXN0ZWQgYXQgCistICogaHR0cDovL2V0ZXJuYWxseWNvbmZ1enpsZWQuY29tL3R1dHMvYWxnb3JpdGhtcy9qc3dfdHV0X2hhc2hpbmcuYXNweCAqLworLSNkZWZpbmUgSEFTSF9TQVgoa2V5LGtleWxlbixudW1fYmt0cyxoYXNodixia3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB1bnNpZ25lZCBfc3hfaTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgY2hhciAqX2hzX2tleT0oY2hhciopKGtleSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGhhc2h2ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBmb3IoX3N4X2k9MDsgX3N4X2kgPCBrZXlsZW47IF9zeF9pKyspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgIGhhc2h2IF49IChoYXNodiA8PCA1KSArIChoYXNodiA+PiAyKSArIF9oc19rZXlbX3N4X2ldOyAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGJrdCA9IGhhc2h2ICYgKG51bV9ia3RzLTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSAoMCkKKy0KKy0jZGVmaW5lIEhBU0hfRk5WKGtleSxrZXlsZW4sbnVtX2JrdHMsaGFzaHYsYmt0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgdW5zaWduZWQgX2ZuX2k7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGNoYXIgKl9oZl9rZXk9KGNoYXIqKShrZXkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBoYXNodiA9IDIxNjYxMzYyNjFVTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgZm9yKF9mbl9pPTA7IF9mbl9pIDwga2V5bGVuOyBfZm5faSsrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICBoYXNodiA9IChoYXNodiAqIDE2Nzc3NjE5KSBeIF9oZl9rZXlbX2ZuX2ldOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBia3QgPSBoYXNodiAmIChudW1fYmt0cy0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUoMCkgCistIAorLSNkZWZpbmUgSEFTSF9PQVQoa2V5LGtleWxlbixudW1fYmt0cyxoYXNodixia3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB1bnNpZ25lZCBfaG9faTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgY2hhciAqX2hvX2tleT0oY2hhciopKGtleSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGhhc2h2ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBmb3IoX2hvX2k9MDsgX2hvX2kgPCBrZXlsZW47IF9ob19pKyspIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgIGhhc2h2ICs9IF9ob19rZXlbX2hvX2ldOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICBoYXNodiArPSAoaGFzaHYgPDwgMTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgaGFzaHYgXj0gKGhhc2h2ID4+IDYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGhhc2h2ICs9IChoYXNodiA8PCAzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBoYXNodiBePSAoaGFzaHYgPj4gMTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgaGFzaHYgKz0gKGhhc2h2IDw8IDE1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGJrdCA9IGhhc2h2ICYgKG51bV9ia3RzLTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSgwKQorLQorLSNkZWZpbmUgSEFTSF9KRU5fTUlYKGEsYixjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBhIC09IGI7IGEgLT0gYzsgYSBePSAoIGMgPj4gMTMgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgYiAtPSBjOyBiIC09IGE7IGIgXj0gKCBhIDw8IDggKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGMgLT0gYTsgYyAtPSBiOyBjIF49ICggYiA+PiAxMyApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBhIC09IGI7IGEgLT0gYzsgYSBePSAoIGMgPj4gMTIgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgYiAtPSBjOyBiIC09IGE7IGIgXj0gKCBhIDw8IDE2ICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGMgLT0gYTsgYyAtPSBiOyBjIF49ICggYiA+PiA1ICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBhIC09IGI7IGEgLT0gYzsgYSBePSAoIGMgPj4gMyApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgYiAtPSBjOyBiIC09IGE7IGIgXj0gKCBhIDw8IDEwICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGMgLT0gYTsgYyAtPSBiOyBjIF49ICggYiA+PiAxNSApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSAoMCkKKy0KKy0jZGVmaW5lIEhBU0hfSkVOKGtleSxrZXlsZW4sbnVtX2JrdHMsaGFzaHYsYmt0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgdW5zaWduZWQgX2hqX2ksX2hqX2osX2hqX2s7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHVuc2lnbmVkIGNoYXIgKl9oal9rZXk9KHVuc2lnbmVkIGNoYXIqKShrZXkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBoYXNodiA9IDB4ZmVlZGJlZWY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgX2hqX2kgPSBfaGpfaiA9IDB4OWUzNzc5Yjk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIF9oal9rID0gKHVuc2lnbmVkKWtleWxlbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB3aGlsZSAoX2hqX2sgPj0gMTIpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBfaGpfaSArPSAgICAoX2hqX2tleVswXSArICggKHVuc2lnbmVkKV9oal9rZXlbMV0gPDwgOCApICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICsgKCAodW5zaWduZWQpX2hqX2tleVsyXSA8PCAxNiApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICArICggKHVuc2lnbmVkKV9oal9rZXlbM10gPDwgMjQgKSApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBfaGpfaiArPSAgICAoX2hqX2tleVs0XSArICggKHVuc2lnbmVkKV9oal9rZXlbNV0gPDwgOCApICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICsgKCAodW5zaWduZWQpX2hqX2tleVs2XSA8PCAxNiApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICArICggKHVuc2lnbmVkKV9oal9rZXlbN10gPDwgMjQgKSApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBoYXNodiArPSAoX2hqX2tleVs4XSArICggKHVuc2lnbmVkKV9oal9rZXlbOV0gPDwgOCApICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICsgKCAodW5zaWduZWQpX2hqX2tleVsxMF0gPDwgMTYgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICArICggKHVuc2lnbmVkKV9oal9rZXlbMTFdIDw8IDI0ICkgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgIEhBU0hfSkVOX01JWChfaGpfaSwgX2hqX2osIGhhc2h2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgX2hqX2tleSArPSAxMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgIF9oal9rIC09IDEyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgaGFzaHYgKz0ga2V5bGVuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHN3aXRjaCAoIF9oal9rICkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICBjYXNlIDExOiBoYXNodiArPSAoICh1bnNpZ25lZClfaGpfa2V5WzEwXSA8PCAyNCApOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgY2FzZSAxMDogaGFzaHYgKz0gKCAodW5zaWduZWQpX2hqX2tleVs5XSA8PCAxNiApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgIGNhc2UgOTogIGhhc2h2ICs9ICggKHVuc2lnbmVkKV9oal9rZXlbOF0gPDwgOCApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICBjYXNlIDg6ICBfaGpfaiArPSAoICh1bnNpZ25lZClfaGpfa2V5WzddIDw8IDI0ICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgY2FzZSA3OiAgX2hqX2ogKz0gKCAodW5zaWduZWQpX2hqX2tleVs2XSA8PCAxNiApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgIGNhc2UgNjogIF9oal9qICs9ICggKHVuc2lnbmVkKV9oal9rZXlbNV0gPDwgOCApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICBjYXNlIDU6ICBfaGpfaiArPSBfaGpfa2V5WzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgY2FzZSA0OiAgX2hqX2kgKz0gKCAodW5zaWduZWQpX2hqX2tleVszXSA8PCAyNCApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgIGNhc2UgMzogIF9oal9pICs9ICggKHVuc2lnbmVkKV9oal9rZXlbMl0gPDwgMTYgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICBjYXNlIDI6ICBfaGpfaSArPSAoICh1bnNpZ25lZClfaGpfa2V5WzFdIDw8IDggKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgY2FzZSAxOiAgX2hqX2kgKz0gX2hqX2tleVswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBIQVNIX0pFTl9NSVgoX2hqX2ksIF9oal9qLCBoYXNodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgYmt0ID0gaGFzaHYgJiAobnVtX2JrdHMtMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlKDApCistCistLyogVGhlIFBhdWwgSHNpZWggaGFzaCBmdW5jdGlvbiAqLworLSN1bmRlZiBnZXQxNmJpdHMKKy0jaWYgKGRlZmluZWQoX19HTlVDX18pICYmIGRlZmluZWQoX19pMzg2X18pKSB8fCBkZWZpbmVkKF9fV0FUQ09NQ19fKSAgICAgICAgICAgICBcCistICB8fCBkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkIChfX0JPUkxBTkRDX18pIHx8IGRlZmluZWQgKF9fVFVSQk9DX18pCistI2RlZmluZSBnZXQxNmJpdHMoZCkgKCooKGNvbnN0IHVpbnQxNl90ICopIChkKSkpCistI2VuZGlmCistCistI2lmICFkZWZpbmVkIChnZXQxNmJpdHMpCistI2RlZmluZSBnZXQxNmJpdHMoZCkgKCgoKHVpbnQzMl90KSgoKGNvbnN0IHVpbnQ4X3QgKikoZCkpWzFdKSkgPDwgOCkgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgKyh1aW50MzJfdCkoKChjb25zdCB1aW50OF90ICopKGQpKVswXSkgKQorLSNlbmRpZgorLSNkZWZpbmUgSEFTSF9TRkgoa2V5LGtleWxlbixudW1fYmt0cyxoYXNodixia3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB1bnNpZ25lZCBjaGFyICpfc2ZoX2tleT0odW5zaWduZWQgY2hhciopKGtleSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgdWludDMyX3QgX3NmaF90bXAsIF9zZmhfbGVuID0ga2V5bGVuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBpbnQgX3NmaF9yZW0gPSBfc2ZoX2xlbiAmIDM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgX3NmaF9sZW4gPj49IDI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGhhc2h2ID0gMHhjYWZlYmFiZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgLyogTWFpbiBsb29wICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGZvciAoO19zZmhfbGVuID4gMDsgX3NmaF9sZW4tLSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGhhc2h2ICAgICs9IGdldDE2Yml0cyAoX3NmaF9rZXkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBfc2ZoX3RtcCAgICAgICA9ICh1aW50MzJfdCkoZ2V0MTZiaXRzIChfc2ZoX2tleSsyKSkgPDwgMTEgIF4gaGFzaHY7ICAgICAgICAgIFwKKy0gICAgaGFzaHYgICAgID0gKGhhc2h2IDw8IDE2KSBeIF9zZmhfdG1wOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIF9zZmhfa2V5ICs9IDIqc2l6ZW9mICh1aW50MTZfdCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBoYXNodiAgICArPSBoYXNodiA+PiAxMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgLyogSGFuZGxlIGVuZCBjYXNlcyAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHN3aXRjaCAoX3NmaF9yZW0pIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGNhc2UgMzogaGFzaHYgKz0gZ2V0MTZiaXRzIChfc2ZoX2tleSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIGhhc2h2IF49IGhhc2h2IDw8IDE2OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBoYXNodiBePSAodWludDMyX3QpKF9zZmhfa2V5W3NpemVvZiAodWludDE2X3QpXSA8PCAxOCk7ICAgICAgICAgICAgICBcCistICAgICAgICAgICAgaGFzaHYgKz0gaGFzaHYgPj4gMTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgY2FzZSAyOiBoYXNodiArPSBnZXQxNmJpdHMgKF9zZmhfa2V5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgaGFzaHYgXj0gaGFzaHYgPDwgMTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIGhhc2h2ICs9IGhhc2h2ID4+IDE3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGNhc2UgMTogaGFzaHYgKz0gKl9zZmhfa2V5OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIGhhc2h2IF49IGhhc2h2IDw8IDEwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBoYXNodiArPSBoYXNodiA+PiAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgLyogRm9yY2UgImF2YWxhbmNoaW5nIiBvZiBmaW5hbCAxMjcgYml0cyAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGhhc2h2IF49IGhhc2h2IDw8IDM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBoYXNodiArPSBoYXNodiA+PiA1OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaGFzaHYgXj0gaGFzaHYgPDwgNDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGhhc2h2ICs9IGhhc2h2ID4+IDE3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBoYXNodiBePSBoYXNodiA8PCAyNTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaGFzaHYgKz0gaGFzaHYgPj4gNjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGJrdCA9IGhhc2h2ICYgKG51bV9ia3RzLTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUoMCkgCistCistI2lmZGVmIEhBU0hfVVNJTkdfTk9fU1RSSUNUX0FMSUFTSU5HCistLyogVGhlIE11cm11ckhhc2ggZXhwbG9pdHMgc29tZSBDUFUncyAoeDg2LHg4Nl82NCkgdG9sZXJhbmNlIGZvciB1bmFsaWduZWQgcmVhZHMuCistICogRm9yIG90aGVyIHR5cGVzIG9mIENQVSdzIChlLmcuIFNwYXJjKSBhbiB1bmFsaWduZWQgcmVhZCBjYXVzZXMgYSBidXMgZXJyb3IuCistICogTXVybXVySGFzaCB1c2VzIHRoZSBmYXN0ZXIgYXBwcm9hY2ggb25seSBvbiBDUFUncyB3aGVyZSB3ZSBrbm93IGl0J3Mgc2FmZS4gCistICoKKy0gKiBOb3RlIHRoZSBwcmVwcm9jZXNzb3IgYnVpbHQtaW4gZGVmaW5lcyBjYW4gYmUgZW1pdHRlZCB1c2luZzoKKy0gKgorLSAqICAgZ2NjIC1tNjQgLWRNIC1FIC0gPCAvZGV2L251bGwgICAgICAgICAgICAgICAgICAob24gZ2NjKQorLSAqICAgY2MgLSMjIGEuYyAod2hlcmUgYS5jIGlzIGEgc2ltcGxlIHRlc3QgZmlsZSkgICAoU3VuIFN0dWRpbykKKy0gKi8KKy0jaWYgKGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgIHx8IGRlZmluZWQoX01fSVg4NikpCistI2RlZmluZSBNVVJfR0VUQkxPQ0socCxpKSBwW2ldCistI2Vsc2UgLyogbm9uIGludGVsICovCistI2RlZmluZSBNVVJfUExVUzBfQUxJR05FRChwKSAoKCh1bnNpZ25lZCBsb25nKXAgJiAweDMpID09IDApCistI2RlZmluZSBNVVJfUExVUzFfQUxJR05FRChwKSAoKCh1bnNpZ25lZCBsb25nKXAgJiAweDMpID09IDEpCistI2RlZmluZSBNVVJfUExVUzJfQUxJR05FRChwKSAoKCh1bnNpZ25lZCBsb25nKXAgJiAweDMpID09IDIpCistI2RlZmluZSBNVVJfUExVUzNfQUxJR05FRChwKSAoKCh1bnNpZ25lZCBsb25nKXAgJiAweDMpID09IDMpCistI2RlZmluZSBXUChwKSAoKHVpbnQzMl90KikoKHVuc2lnbmVkIGxvbmcpKHApICYgfjNVTCkpCistI2lmIChkZWZpbmVkKF9fQklHX0VORElBTl9fKSB8fCBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKSkKKy0jZGVmaW5lIE1VUl9USFJFRV9PTkUocCkgKCgoKCpXUChwKSkmMHgwMGZmZmZmZikgPDwgOCkgfCAoKCgqKFdQKHApKzEpKSYweGZmMDAwMDAwKSA+PiAyNCkpCistI2RlZmluZSBNVVJfVFdPX1RXTyhwKSAgICgoKCgqV1AocCkpJjB4MDAwMGZmZmYpIDw8MTYpIHwgKCgoKihXUChwKSsxKSkmMHhmZmZmMDAwMCkgPj4gMTYpKQorLSNkZWZpbmUgTVVSX09ORV9USFJFRShwKSAoKCgoKldQKHApKSYweDAwMDAwMGZmKSA8PDI0KSB8ICgoKCooV1AocCkrMSkpJjB4ZmZmZmZmMDApID4+ICA4KSkKKy0jZWxzZSAvKiBhc3N1bWUgbGl0dGxlIGVuZGlhbiBub24taW50ZWwgKi8KKy0jZGVmaW5lIE1VUl9USFJFRV9PTkUocCkgKCgoKCpXUChwKSkmMHhmZmZmZmYwMCkgPj4gOCkgfCAoKCgqKFdQKHApKzEpKSYweDAwMDAwMGZmKSA8PCAyNCkpCistI2RlZmluZSBNVVJfVFdPX1RXTyhwKSAgICgoKCgqV1AocCkpJjB4ZmZmZjAwMDApID4+MTYpIHwgKCgoKihXUChwKSsxKSkmMHgwMDAwZmZmZikgPDwgMTYpKQorLSNkZWZpbmUgTVVSX09ORV9USFJFRShwKSAoKCgoKldQKHApKSYweGZmMDAwMDAwKSA+PjI0KSB8ICgoKCooV1AocCkrMSkpJjB4MDBmZmZmZmYpIDw8ICA4KSkKKy0jZW5kaWYKKy0jZGVmaW5lIE1VUl9HRVRCTE9DSyhwLGkpIChNVVJfUExVUzBfQUxJR05FRChwKSA/ICgocClbaV0pIDogICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKE1VUl9QTFVTMV9BTElHTkVEKHApID8gTVVSX1RIUkVFX09ORShwKSA6IFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChNVVJfUExVUzJfQUxJR05FRChwKSA/IE1VUl9UV09fVFdPKHApIDogIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVVJfT05FX1RIUkVFKHApKSkpCistI2VuZGlmCistI2RlZmluZSBNVVJfUk9UTDMyKHgscikgKCgoeCkgPDwgKHIpKSB8ICgoeCkgPj4gKDMyIC0gKHIpKSkpCistI2RlZmluZSBNVVJfRk1JWChfaCkgXAorLWRvIHsgICAgICAgICAgICAgICAgIFwKKy0gIF9oIF49IF9oID4+IDE2OyAgICBcCistICBfaCAqPSAweDg1ZWJjYTZiOyAgXAorLSAgX2ggXj0gX2ggPj4gMTM7ICAgIFwKKy0gIF9oICo9IDB4YzJiMmFlMzVsOyBcCistICBfaCBePSBfaCA+PiAxNjsgICAgXAorLX0gd2hpbGUoMCkKKy0KKy0jZGVmaW5lIEhBU0hfTVVSKGtleSxrZXlsZW4sbnVtX2JrdHMsaGFzaHYsYmt0KSAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGNvbnN0IHVpbnQ4X3QgKl9tdXJfZGF0YSA9IChjb25zdCB1aW50OF90Kikoa2V5KTsgICAgICAgICAgICAgICAgICAgIFwKKy0gIGNvbnN0IGludCBfbXVyX25ibG9ja3MgPSAoa2V5bGVuKSAvIDQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHVpbnQzMl90IF9tdXJfaDEgPSAweGY4OEQ1MzUzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHVpbnQzMl90IF9tdXJfYzEgPSAweGNjOWUyZDUxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHVpbnQzMl90IF9tdXJfYzIgPSAweDFiODczNTkzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHVpbnQzMl90IF9tdXJfazEgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGNvbnN0IHVpbnQ4X3QgKl9tdXJfdGFpbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGNvbnN0IHVpbnQzMl90ICpfbXVyX2Jsb2NrcyA9IChjb25zdCB1aW50MzJfdCopKF9tdXJfZGF0YStfbXVyX25ibG9ja3MqNCk7IFwKKy0gIGludCBfbXVyX2k7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGZvcihfbXVyX2kgPSAtX211cl9uYmxvY2tzOyBfbXVyX2k7IF9tdXJfaSsrKSB7ICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX211cl9rMSA9IE1VUl9HRVRCTE9DSyhfbXVyX2Jsb2NrcyxfbXVyX2kpOyAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX211cl9rMSAqPSBfbXVyX2MxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX211cl9rMSA9IE1VUl9ST1RMMzIoX211cl9rMSwxNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX211cl9rMSAqPSBfbXVyX2MyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX211cl9oMSBePSBfbXVyX2sxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX211cl9oMSA9IE1VUl9ST1RMMzIoX211cl9oMSwxMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX211cl9oMSA9IF9tdXJfaDEqNSsweGU2NTQ2YjY0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIF9tdXJfdGFpbCA9IChjb25zdCB1aW50OF90KikoX211cl9kYXRhICsgX211cl9uYmxvY2tzKjQpOyAgICAgICAgICAgIFwKKy0gIF9tdXJfazE9MDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHN3aXRjaCgoa2V5bGVuKSAmIDMpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgY2FzZSAzOiBfbXVyX2sxIF49IF9tdXJfdGFpbFsyXSA8PCAxNjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgY2FzZSAyOiBfbXVyX2sxIF49IF9tdXJfdGFpbFsxXSA8PCA4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgY2FzZSAxOiBfbXVyX2sxIF49IF9tdXJfdGFpbFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX211cl9rMSAqPSBfbXVyX2MxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX211cl9rMSA9IE1VUl9ST1RMMzIoX211cl9rMSwxNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX211cl9rMSAqPSBfbXVyX2MyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX211cl9oMSBePSBfbXVyX2sxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIF9tdXJfaDEgXj0gKGtleWxlbik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIE1VUl9GTUlYKF9tdXJfaDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGhhc2h2ID0gX211cl9oMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIGJrdCA9IGhhc2h2ICYgKG51bV9ia3RzLTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlKDApCistI2VuZGlmICAvKiBIQVNIX1VTSU5HX05PX1NUUklDVF9BTElBU0lORyAqLworLQorLS8qIGtleSBjb21wYXJpc29uIGZ1bmN0aW9uOyByZXR1cm4gMCBpZiBrZXlzIGVxdWFsICovCistI2RlZmluZSBIQVNIX0tFWUNNUChhLGIsbGVuKSBtZW1jbXAoYSxiLGxlbikgCistCistLyogaXRlcmF0ZSBvdmVyIGl0ZW1zIGluIGEga25vd24gYnVja2V0IHRvIGZpbmQgZGVzaXJlZCBpdGVtICovCistI2RlZmluZSBIQVNIX0ZJTkRfSU5fQktUKHRibCxoaCxoZWFkLGtleXB0cixrZXlsZW5faW4sb3V0KSAgICAgICAgICAgICAgICAgICAgICAgXAorLWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gaWYgKGhlYWQuaGhfaGVhZCkgREVDTFRZUEVfQVNTSUdOKG91dCxFTE1UX0ZST01fSEgodGJsLGhlYWQuaGhfaGVhZCkpOyAgICAgICAgICBcCistIGVsc2Ugb3V0PU5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSB3aGlsZSAob3V0KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaWYgKChvdXQpLT5oaC5rZXlsZW4gPT0ga2V5bGVuX2luKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIGlmICgoSEFTSF9LRVlDTVAoKG91dCktPmhoLmtleSxrZXlwdHIsa2V5bGVuX2luKSkgPT0gMCkgYnJlYWs7ICAgICAgICAgICAgIFwKKy0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGlmICgob3V0KS0+aGguaGhfbmV4dCkgREVDTFRZUEVfQVNTSUdOKG91dCxFTE1UX0ZST01fSEgodGJsLChvdXQpLT5oaC5oaF9uZXh0KSk7IFwKKy0gICAgZWxzZSBvdXQgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUoMCkKKy0KKy0vKiBhZGQgYW4gaXRlbSB0byBhIGJ1Y2tldCAgKi8KKy0jZGVmaW5lIEhBU0hfQUREX1RPX0JLVChoZWFkLGFkZGhoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSBoZWFkLmNvdW50Kys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gKGFkZGhoKS0+aGhfbmV4dCA9IGhlYWQuaGhfaGVhZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIChhZGRoaCktPmhoX3ByZXYgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSBpZiAoaGVhZC5oaF9oZWFkKSB7IChoZWFkKS5oaF9oZWFkLT5oaF9wcmV2ID0gKGFkZGhoKTsgfSAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gKGhlYWQpLmhoX2hlYWQ9YWRkaGg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIGlmIChoZWFkLmNvdW50ID49ICgoaGVhZC5leHBhbmRfbXVsdCsxKSAqIEhBU0hfQktUX0NBUEFDSVRZX1RIUkVTSCkgICAgICAgICAgICAgXAorLSAgICAgJiYgKGFkZGhoKS0+dGJsLT5ub2V4cGFuZCAhPSAxKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgSEFTSF9FWFBBTkRfQlVDS0VUUygoYWRkaGgpLT50YmwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUoMCkKKy0KKy0vKiByZW1vdmUgYW4gaXRlbSBmcm9tIGEgZ2l2ZW4gYnVja2V0ICovCistI2RlZmluZSBIQVNIX0RFTF9JTl9CS1QoaGgsaGVhZCxoaF9kZWwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAoaGVhZCkuY291bnQtLTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaWYgKChoZWFkKS5oaF9oZWFkID09IGhoX2RlbCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgKGhlYWQpLmhoX2hlYWQgPSBoaF9kZWwtPmhoX25leHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaWYgKGhoX2RlbC0+aGhfcHJldikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBoaF9kZWwtPmhoX3ByZXYtPmhoX25leHQgPSBoaF9kZWwtPmhoX25leHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgaWYgKGhoX2RlbC0+aGhfbmV4dCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBoaF9kZWwtPmhoX25leHQtPmhoX3ByZXYgPSBoaF9kZWwtPmhoX3ByZXY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLQorLS8qIEJ1Y2tldCBleHBhbnNpb24gaGFzIHRoZSBlZmZlY3Qgb2YgZG91YmxpbmcgdGhlIG51bWJlciBvZiBidWNrZXRzCistICogYW5kIHJlZGlzdHJpYnV0aW5nIHRoZSBpdGVtcyBpbnRvIHRoZSBuZXcgYnVja2V0cy4gSWRlYWxseSB0aGUKKy0gKiBpdGVtcyB3aWxsIGRpc3RyaWJ1dGUgbW9yZSBvciBsZXNzIGV2ZW5seSBpbnRvIHRoZSBuZXcgYnVja2V0cworLSAqICh0aGUgZXh0ZW50IHRvIHdoaWNoIHRoaXMgaXMgdHJ1ZSBpcyBhIG1lYXN1cmUgb2YgdGhlIHF1YWxpdHkgb2YKKy0gKiB0aGUgaGFzaCBmdW5jdGlvbiBhcyBpdCBhcHBsaWVzIHRvIHRoZSBrZXkgZG9tYWluKS4gCistICogCistICogV2l0aCB0aGUgaXRlbXMgZGlzdHJpYnV0ZWQgaW50byBtb3JlIGJ1Y2tldHMsIHRoZSBjaGFpbiBsZW5ndGgKKy0gKiAoaXRlbSBjb3VudCkgaW4gZWFjaCBidWNrZXQgaXMgcmVkdWNlZC4gVGh1cyBieSBleHBhbmRpbmcgYnVja2V0cworLSAqIHRoZSBoYXNoIGtlZXBzIGEgYm91bmQgb24gdGhlIGNoYWluIGxlbmd0aC4gVGhpcyBib3VuZGVkIGNoYWluIAorLSAqIGxlbmd0aCBpcyB0aGUgZXNzZW5jZSBvZiBob3cgYSBoYXNoIHByb3ZpZGVzIGNvbnN0YW50IHRpbWUgbG9va3VwLgorLSAqIAorLSAqIFRoZSBjYWxjdWxhdGlvbiBvZiB0YmwtPmlkZWFsX2NoYWluX21heGxlbiBiZWxvdyBkZXNlcnZlcyBzb21lCistICogZXhwbGFuYXRpb24uIEZpcnN0LCBrZWVwIGluIG1pbmQgdGhhdCB3ZSdyZSBjYWxjdWxhdGluZyB0aGUgaWRlYWwKKy0gKiBtYXhpbXVtIGNoYWluIGxlbmd0aCBiYXNlZCBvbiB0aGUgKm5ldyogKGRvdWJsZWQpIGJ1Y2tldCBjb3VudC4KKy0gKiBJbiBmcmFjdGlvbnMgdGhpcyBpcyBqdXN0IG4vYiAobj1udW1iZXIgb2YgaXRlbXMsYj1uZXcgbnVtIGJ1Y2tldHMpLgorLSAqIFNpbmNlIHRoZSBpZGVhbCBjaGFpbiBsZW5ndGggaXMgYW4gaW50ZWdlciwgd2Ugd2FudCB0byBjYWxjdWxhdGUgCistICogY2VpbChuL2IpLiBXZSBkb24ndCBkZXBlbmQgb24gZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyBpbiB0aGlzCistICogaGFzaCwgc28gdG8gY2FsY3VsYXRlIGNlaWwobi9iKSB3aXRoIGludGVnZXJzIHdlIGNvdWxkIHdyaXRlCistICogCistICogICAgICBjZWlsKG4vYikgPSAobi9iKSArICgobiViKT8xOjApCistICogCistICogYW5kIGluIGZhY3QgYSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoaXMgaGFzaCBkaWQganVzdCB0aGF0LgorLSAqIEJ1dCBub3cgd2UgaGF2ZSBpbXByb3ZlZCB0aGluZ3MgYSBiaXQgYnkgcmVjb2duaXppbmcgdGhhdCBiIGlzCistICogYWx3YXlzIGEgcG93ZXIgb2YgdHdvLiBXZSBrZWVwIGl0cyBiYXNlIDIgbG9nIGhhbmR5IChjYWxsIGl0IGxiKSwKKy0gKiBzbyBub3cgd2UgY2FuIHdyaXRlIHRoaXMgd2l0aCBhIGJpdCBzaGlmdCBhbmQgbG9naWNhbCBBTkQ6CistICogCistICogICAgICBjZWlsKG4vYikgPSAobj4+bGIpICsgKCAobiAmIChiLTEpKSA/IDE6MCkKKy0gKiAKKy0gKi8KKy0jZGVmaW5lIEhBU0hfRVhQQU5EX0JVQ0tFVFModGJsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB1bnNpZ25lZCBfaGVfYmt0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgdW5zaWduZWQgX2hlX2JrdF9pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIHN0cnVjdCBVVF9oYXNoX2hhbmRsZSAqX2hlX3RoaCwgKl9oZV9oaF9ueHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBVVF9oYXNoX2J1Y2tldCAqX2hlX25ld19idWNrZXRzLCAqX2hlX25ld2JrdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgX2hlX25ld19idWNrZXRzID0gKFVUX2hhc2hfYnVja2V0Kil1dGhhc2hfbWFsbG9jKCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgIDIgKiB0YmwtPm51bV9idWNrZXRzICogc2l6ZW9mKHN0cnVjdCBVVF9oYXNoX2J1Y2tldCkpOyAgICAgICAgICAgICAgXAorLSAgICBpZiAoIV9oZV9uZXdfYnVja2V0cykgeyB1dGhhc2hfZmF0YWwoICJvdXQgb2YgbWVtb3J5Iik7IH0gICAgICAgICAgICAgICAgICAgIFwKKy0gICAgbWVtc2V0KF9oZV9uZXdfYnVja2V0cywgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgMiAqIHRibC0+bnVtX2J1Y2tldHMgKiBzaXplb2Yoc3RydWN0IFVUX2hhc2hfYnVja2V0KSk7ICAgICAgICAgICAgICAgXAorLSAgICB0YmwtPmlkZWFsX2NoYWluX21heGxlbiA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgKHRibC0+bnVtX2l0ZW1zID4+ICh0YmwtPmxvZzJfbnVtX2J1Y2tldHMrMSkpICsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICgodGJsLT5udW1faXRlbXMgJiAoKHRibC0+bnVtX2J1Y2tldHMqMiktMSkpID8gMSA6IDApOyAgICAgICAgICAgICAgICAgICAgXAorLSAgICB0YmwtPm5vbmlkZWFsX2l0ZW1zID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgZm9yKF9oZV9ia3RfaSA9IDA7IF9oZV9ia3RfaSA8IHRibC0+bnVtX2J1Y2tldHM7IF9oZV9ia3RfaSsrKSAgICAgICAgICAgICAgICBcCistICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgX2hlX3RoaCA9IHRibC0+YnVja2V0c1sgX2hlX2JrdF9pIF0uaGhfaGVhZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIHdoaWxlIChfaGVfdGhoKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICBfaGVfaGhfbnh0ID0gX2hlX3RoaC0+aGhfbmV4dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgSEFTSF9UT19CS1QoIF9oZV90aGgtPmhhc2h2LCB0YmwtPm51bV9idWNrZXRzKjIsIF9oZV9ia3QpOyAgICAgICAgICAgIFwKKy0gICAgICAgICAgIF9oZV9uZXdia3QgPSAmKF9oZV9uZXdfYnVja2V0c1sgX2hlX2JrdCBdKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICBpZiAoKysoX2hlX25ld2JrdC0+Y291bnQpID4gdGJsLT5pZGVhbF9jaGFpbl9tYXhsZW4pIHsgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICB0YmwtPm5vbmlkZWFsX2l0ZW1zKys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgX2hlX25ld2JrdC0+ZXhwYW5kX211bHQgPSBfaGVfbmV3Ymt0LT5jb3VudCAvICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRibC0+aWRlYWxfY2hhaW5fbWF4bGVuOyAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgIF9oZV90aGgtPmhoX3ByZXYgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICBfaGVfdGhoLT5oaF9uZXh0ID0gX2hlX25ld2JrdC0+aGhfaGVhZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgaWYgKF9oZV9uZXdia3QtPmhoX2hlYWQpIF9oZV9uZXdia3QtPmhoX2hlYWQtPmhoX3ByZXYgPSAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgX2hlX3RoaDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICBfaGVfbmV3Ymt0LT5oaF9oZWFkID0gX2hlX3RoaDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgX2hlX3RoaCA9IF9oZV9oaF9ueHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB1dGhhc2hfZnJlZSggdGJsLT5idWNrZXRzLCB0YmwtPm51bV9idWNrZXRzKnNpemVvZihzdHJ1Y3QgVVRfaGFzaF9idWNrZXQpICk7IFwKKy0gICAgdGJsLT5udW1fYnVja2V0cyAqPSAyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIHRibC0+bG9nMl9udW1fYnVja2V0cysrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB0YmwtPmJ1Y2tldHMgPSBfaGVfbmV3X2J1Y2tldHM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgdGJsLT5pbmVmZl9leHBhbmRzID0gKHRibC0+bm9uaWRlYWxfaXRlbXMgPiAodGJsLT5udW1faXRlbXMgPj4gMSkpID8gICAgICAgICBcCistICAgICAgICAodGJsLT5pbmVmZl9leHBhbmRzKzEpIDogMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBpZiAodGJsLT5pbmVmZl9leHBhbmRzID4gMSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgIHRibC0+bm9leHBhbmQ9MTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICB1dGhhc2hfbm9leHBhbmRfZnlpKHRibCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgdXRoYXNoX2V4cGFuZF9meWkodGJsKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistfSB3aGlsZSgwKQorLQorLQorLS8qIFRoaXMgaXMgYW4gYWRhcHRhdGlvbiBvZiBTaW1vbiBUYXRoYW0ncyBPKG4gbG9nKG4pKSBtZXJnZXNvcnQgKi8KKy0vKiBOb3RlIHRoYXQgSEFTSF9TT1JUIGFzc3VtZXMgdGhlIGhhc2ggaGFuZGxlIG5hbWUgdG8gYmUgaGguIAorLSAqIEhBU0hfU1JUIHdhcyBhZGRlZCB0byBhbGxvdyB0aGUgaGFzaCBoYW5kbGUgbmFtZSB0byBiZSBwYXNzZWQgaW4uICovCistI2RlZmluZSBIQVNIX1NPUlQoaGVhZCxjbXBmY24pIEhBU0hfU1JUKGhoLGhlYWQsY21wZmNuKQorLSNkZWZpbmUgSEFTSF9TUlQoaGgsaGVhZCxjbXBmY24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB1bnNpZ25lZCBfaHNfaTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgdW5zaWduZWQgX2hzX2xvb3BpbmcsX2hzX25tZXJnZXMsX2hzX2luc2l6ZSxfaHNfcHNpemUsX2hzX3FzaXplOyAgICAgICAgICAgICAgIFwKKy0gIHN0cnVjdCBVVF9oYXNoX2hhbmRsZSAqX2hzX3AsICpfaHNfcSwgKl9oc19lLCAqX2hzX2xpc3QsICpfaHNfdGFpbDsgICAgICAgICAgICBcCistICBpZiAoaGVhZCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgIF9oc19pbnNpemUgPSAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICBfaHNfbG9vcGluZyA9IDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgX2hzX2xpc3QgPSAmKChoZWFkKS0+aGgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgIHdoaWxlIChfaHNfbG9vcGluZykgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgX2hzX3AgPSBfaHNfbGlzdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgIF9oc19saXN0ID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICBfaHNfdGFpbCA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgX2hzX25tZXJnZXMgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgIHdoaWxlIChfaHNfcCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgX2hzX25tZXJnZXMrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgIF9oc19xID0gX2hzX3A7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICBfaHNfcHNpemUgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgZm9yICggX2hzX2kgPSAwOyBfaHNfaSAgPCBfaHNfaW5zaXplOyBfaHNfaSsrICkgeyAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICBfaHNfcHNpemUrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgX2hzX3EgPSAoVVRfaGFzaF9oYW5kbGUqKSgoX2hzX3EtPm5leHQpID8gICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2lkKikoKGNoYXIqKShfaHNfcS0+bmV4dCkgKyAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIChoZWFkKS0+aGgudGJsLT5oaG8pKSA6IE5VTEwpOyAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgaWYgKCEgKF9oc19xKSApIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgIF9oc19xc2l6ZSA9IF9oc19pbnNpemU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICB3aGlsZSAoKF9oc19wc2l6ZSA+IDApIHx8ICgoX2hzX3FzaXplID4gMCkgJiYgX2hzX3EgKSkgeyAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgIGlmIChfaHNfcHNpemUgPT0gMCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgX2hzX2UgPSBfaHNfcTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgIF9oc19xID0gKFVUX2hhc2hfaGFuZGxlKikoKF9oc19xLT5uZXh0KSA/ICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgodm9pZCopKChjaGFyKikoX2hzX3EtPm5leHQpICsgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGVhZCktPmhoLnRibC0+aGhvKSkgOiBOVUxMKTsgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgIF9oc19xc2l6ZS0tOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIChfaHNfcXNpemUgPT0gMCkgfHwgIShfaHNfcSkgKSB7ICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgX2hzX2UgPSBfaHNfcDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgIGlmIChfaHNfcCl7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgIF9oc19wID0gKFVUX2hhc2hfaGFuZGxlKikoKF9oc19wLT5uZXh0KSA/ICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgodm9pZCopKChjaGFyKikoX2hzX3AtPm5leHQpICsgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGVhZCktPmhoLnRibC0+aGhvKSkgOiBOVUxMKTsgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgX2hzX3BzaXplLS07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICBjbXBmY24oREVDTFRZUEUoaGVhZCkoRUxNVF9GUk9NX0hIKChoZWFkKS0+aGgudGJsLF9oc19wKSksIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFQ0xUWVBFKGhlYWQpKEVMTVRfRlJPTV9ISCgoaGVhZCktPmhoLnRibCxfaHNfcSkpKSBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDw9IDApIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICBfaHNfZSA9IF9oc19wOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgaWYgKF9oc19wKXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgX2hzX3AgPSAoVVRfaGFzaF9oYW5kbGUqKSgoX2hzX3AtPm5leHQpID8gICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvaWQqKSgoY2hhciopKF9oc19wLT5uZXh0KSArICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhlYWQpLT5oaC50YmwtPmhobykpIDogTlVMTCk7ICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICBfaHNfcHNpemUtLTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgIF9oc19lID0gX2hzX3E7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICBfaHNfcSA9IChVVF9oYXNoX2hhbmRsZSopKChfaHNfcS0+bmV4dCkgPyAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvaWQqKSgoY2hhciopKF9oc19xLT5uZXh0KSArICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhlYWQpLT5oaC50YmwtPmhobykpIDogTlVMTCk7ICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICBfaHNfcXNpemUtLTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgaWYgKCBfaHNfdGFpbCApIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICBfaHNfdGFpbC0+bmV4dCA9ICgoX2hzX2UpID8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRUxNVF9GUk9NX0hIKChoZWFkKS0+aGgudGJsLF9oc19lKSA6IE5VTEwpOyAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAgICBfaHNfbGlzdCA9IF9oc19lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgaWYgKF9oc19lKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgIF9oc19lLT5wcmV2ID0gKChfaHNfdGFpbCkgPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICAgICBFTE1UX0ZST01fSEgoKGhlYWQpLT5oaC50YmwsX2hzX3RhaWwpIDogTlVMTCk7ICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgIF9oc190YWlsID0gX2hzX2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICBfaHNfcCA9IF9oc19xOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgaWYgKF9oc190YWlsKXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgX2hzX3RhaWwtPm5leHQgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgaWYgKCBfaHNfbm1lcmdlcyA8PSAxICkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICBfaHNfbG9vcGluZz0wOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgKGhlYWQpLT5oaC50YmwtPnRhaWwgPSBfaHNfdGFpbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgIERFQ0xUWVBFX0FTU0lHTihoZWFkLEVMTVRfRlJPTV9ISCgoaGVhZCktPmhoLnRibCwgX2hzX2xpc3QpKTsgICAgICBcCistICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICBfaHNfaW5zaXplICo9IDI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgSEFTSF9GU0NLKGhoLGhlYWQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlICgwKQorLQorLS8qIFRoaXMgZnVuY3Rpb24gc2VsZWN0cyBpdGVtcyBmcm9tIG9uZSBoYXNoIGludG8gYW5vdGhlciBoYXNoLiAKKy0gKiBUaGUgZW5kIHJlc3VsdCBpcyB0aGF0IHRoZSBzZWxlY3RlZCBpdGVtcyBoYXZlIGR1YWwgcHJlc2VuY2UgCistICogaW4gYm90aCBoYXNoZXMuIFRoZXJlIGlzIG5vIGNvcHkgb2YgdGhlIGl0ZW1zIG1hZGU7IHJhdGhlciAKKy0gKiB0aGV5IGFyZSBhZGRlZCBpbnRvIHRoZSBuZXcgaGFzaCB0aHJvdWdoIGEgc2Vjb25kYXJ5IGhhc2ggCistICogaGFzaCBoYW5kbGUgdGhhdCBtdXN0IGJlIHByZXNlbnQgaW4gdGhlIHN0cnVjdHVyZS4gKi8KKy0jZGVmaW5lIEhBU0hfU0VMRUNUKGhoX2RzdCwgZHN0LCBoaF9zcmMsIHNyYywgY29uZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgdW5zaWduZWQgX3NyY19ia3QsIF9kc3RfYmt0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gIHZvaWQgKl9sYXN0X2VsdD1OVUxMLCAqX2VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBVVF9oYXNoX2hhbmRsZSAqX3NyY19oaCwgKl9kc3RfaGgsICpfbGFzdF9lbHRfaGg9TlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgcHRyZGlmZl90IF9kc3RfaGhvID0gKChjaGFyKikoJihkc3QpLT5oaF9kc3QpIC0gKGNoYXIqKShkc3QpKTsgICAgICAgICAgICAgICAgIFwKKy0gIGlmIChzcmMpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGZvcihfc3JjX2JrdD0wOyBfc3JjX2JrdCA8IChzcmMpLT5oaF9zcmMudGJsLT5udW1fYnVja2V0czsgX3NyY19ia3QrKykgeyAgICAgXAorLSAgICAgIGZvcihfc3JjX2hoID0gKHNyYyktPmhoX3NyYy50YmwtPmJ1Y2tldHNbX3NyY19ia3RdLmhoX2hlYWQ7ICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgX3NyY19oaDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgIF9zcmNfaGggPSBfc3JjX2hoLT5oaF9uZXh0KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICBfZWx0ID0gRUxNVF9GUk9NX0hIKChzcmMpLT5oaF9zcmMudGJsLCBfc3JjX2hoKTsgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgaWYgKGNvbmQoX2VsdCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgX2RzdF9oaCA9IChVVF9oYXNoX2hhbmRsZSopKCgoY2hhciopX2VsdCkgKyBfZHN0X2hobyk7ICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIF9kc3RfaGgtPmtleSA9IF9zcmNfaGgtPmtleTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBfZHN0X2hoLT5rZXlsZW4gPSBfc3JjX2hoLT5rZXlsZW47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgX2RzdF9oaC0+aGFzaHYgPSBfc3JjX2hoLT5oYXNodjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIF9kc3RfaGgtPnByZXYgPSBfbGFzdF9lbHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBfZHN0X2hoLT5uZXh0ID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgaWYgKF9sYXN0X2VsdF9oaCkgeyBfbGFzdF9lbHRfaGgtPm5leHQgPSBfZWx0OyB9ICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIGlmICghZHN0KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgIERFQ0xUWVBFX0FTU0lHTihkc3QsX2VsdCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgICBIQVNIX01BS0VfVEFCTEUoaGhfZHN0LGRzdCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgIF9kc3RfaGgtPnRibCA9IChkc3QpLT5oaF9kc3QudGJsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIEhBU0hfVE9fQktUKF9kc3RfaGgtPmhhc2h2LCBfZHN0X2hoLT50YmwtPm51bV9idWNrZXRzLCBfZHN0X2JrdCk7ICAgIFwKKy0gICAgICAgICAgICBIQVNIX0FERF9UT19CS1QoX2RzdF9oaC0+dGJsLT5idWNrZXRzW19kc3RfYmt0XSxfZHN0X2hoKTsgICAgICAgICAgICBcCistICAgICAgICAgICAgKGRzdCktPmhoX2RzdC50YmwtPm51bV9pdGVtcysrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgIF9sYXN0X2VsdCA9IF9lbHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICBfbGFzdF9lbHRfaGggPSBfZHN0X2hoOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgSEFTSF9GU0NLKGhoX2RzdCxkc3QpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy19IHdoaWxlICgwKQorLQorLSNkZWZpbmUgSEFTSF9DTEVBUihoaCxoZWFkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICBpZiAoaGVhZCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB1dGhhc2hfZnJlZSgoaGVhZCktPmhoLnRibC0+YnVja2V0cywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgKGhlYWQpLT5oaC50YmwtPm51bV9idWNrZXRzKnNpemVvZihzdHJ1Y3QgVVRfaGFzaF9idWNrZXQpKTsgICAgICBcCistICAgIEhBU0hfQkxPT01fRlJFRSgoaGVhZCktPmhoLnRibCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICB1dGhhc2hfZnJlZSgoaGVhZCktPmhoLnRibCwgc2l6ZW9mKFVUX2hhc2hfdGFibGUpKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgKGhlYWQpPU5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLX0gd2hpbGUoMCkKKy0KKy0jZGVmaW5lIEhBU0hfT1ZFUkhFQUQoaGgsaGVhZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistIChzaXplX3QpKCgoKGhlYWQpLT5oaC50YmwtPm51bV9pdGVtcyAgICogc2l6ZW9mKFVUX2hhc2hfaGFuZGxlKSkgICArICAgICAgICAgICAgXAorLSAgICAgICAgICAgKChoZWFkKS0+aGgudGJsLT5udW1fYnVja2V0cyAqIHNpemVvZihVVF9oYXNoX2J1Y2tldCkpICAgKyAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAoc2l6ZW9mKFVUX2hhc2hfdGFibGUpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgICAgICAgICAgICBcCistICAgICAgICAgICAgKEhBU0hfQkxPT01fQllURUxFTikpKQorLQorLSNpZmRlZiBOT19ERUNMVFlQRQorLSNkZWZpbmUgSEFTSF9JVEVSKGhoLGhlYWQsZWwsdG1wKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy1mb3IoKGVsKT0oaGVhZCksICgqKGNoYXIqKikoJih0bXApKSk9KGNoYXIqKSgoaGVhZCk/KGhlYWQpLT5oaC5uZXh0Ok5VTEwpOyAgICAgICBcCistICBlbDsgKGVsKT0odG1wKSwoKihjaGFyKiopKCYodG1wKSkpPShjaGFyKikoKHRtcCk/KHRtcCktPmhoLm5leHQ6TlVMTCkpIAorLSNlbHNlCistI2RlZmluZSBIQVNIX0lURVIoaGgsaGVhZCxlbCx0bXApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLWZvcigoZWwpPShoZWFkKSwodG1wKT1ERUNMVFlQRShlbCkoKGhlYWQpPyhoZWFkKS0+aGgubmV4dDpOVUxMKTsgICAgICAgICAgICAgICAgIFwKKy0gIGVsOyAoZWwpPSh0bXApLCh0bXApPURFQ0xUWVBFKGVsKSgodG1wKT8odG1wKS0+aGgubmV4dDpOVUxMKSkKKy0jZW5kaWYKKy0KKy0vKiBvYnRhaW4gYSBjb3VudCBvZiBpdGVtcyBpbiB0aGUgaGFzaCAqLworLSNkZWZpbmUgSEFTSF9DT1VOVChoZWFkKSBIQVNIX0NOVChoaCxoZWFkKSAKKy0jZGVmaW5lIEhBU0hfQ05UKGhoLGhlYWQpICgoaGVhZCk/KChoZWFkKS0+aGgudGJsLT5udW1faXRlbXMpOjApCistCistdHlwZWRlZiBzdHJ1Y3QgVVRfaGFzaF9idWNrZXQgeworLSAgIHN0cnVjdCBVVF9oYXNoX2hhbmRsZSAqaGhfaGVhZDsKKy0gICB1bnNpZ25lZCBjb3VudDsKKy0KKy0gICAvKiBleHBhbmRfbXVsdCBpcyBub3JtYWxseSBzZXQgdG8gMC4gSW4gdGhpcyBzaXR1YXRpb24sIHRoZSBtYXggY2hhaW4gbGVuZ3RoCistICAgICogdGhyZXNob2xkIGlzIGVuZm9yY2VkIGF0IGl0cyBkZWZhdWx0IHZhbHVlLCBIQVNIX0JLVF9DQVBBQ0lUWV9USFJFU0guIChJZgorLSAgICAqIHRoZSBidWNrZXQncyBjaGFpbiBleGNlZWRzIHRoaXMgbGVuZ3RoLCBidWNrZXQgZXhwYW5zaW9uIGlzIHRyaWdnZXJlZCkuIAorLSAgICAqIEhvd2V2ZXIsIHNldHRpbmcgZXhwYW5kX211bHQgdG8gYSBub24temVybyB2YWx1ZSBkZWxheXMgYnVja2V0IGV4cGFuc2lvbgorLSAgICAqICh0aGF0IHdvdWxkIGJlIHRyaWdnZXJlZCBieSBhZGRpdGlvbnMgdG8gdGhpcyBwYXJ0aWN1bGFyIGJ1Y2tldCkKKy0gICAgKiB1bnRpbCBpdHMgY2hhaW4gbGVuZ3RoIHJlYWNoZXMgYSAqbXVsdGlwbGUqIG9mIEhBU0hfQktUX0NBUEFDSVRZX1RIUkVTSC4KKy0gICAgKiAoVGhlIG11bHRpcGxpZXIgaXMgc2ltcGx5IGV4cGFuZF9tdWx0KzEpLiBUaGUgd2hvbGUgaWRlYSBvZiB0aGlzCistICAgICogbXVsdGlwbGllciBpcyB0byByZWR1Y2UgYnVja2V0IGV4cGFuc2lvbnMsIHNpbmNlIHRoZXkgYXJlIGV4cGVuc2l2ZSwgaW4KKy0gICAgKiBzaXR1YXRpb25zIHdoZXJlIHdlIGtub3cgdGhhdCBhIHBhcnRpY3VsYXIgYnVja2V0IHRlbmRzIHRvIGJlIG92ZXJ1c2VkLgorLSAgICAqIEl0IGlzIGJldHRlciB0byBsZXQgaXRzIGNoYWluIGxlbmd0aCBncm93IHRvIGEgbG9uZ2VyIHlldC1zdGlsbC1ib3VuZGVkCistICAgICogdmFsdWUsIHRoYW4gdG8gZG8gYW4gTyhuKSBidWNrZXQgZXhwYW5zaW9uIHRvbyBvZnRlbi4gCistICAgICovCistICAgdW5zaWduZWQgZXhwYW5kX211bHQ7CistCistfSBVVF9oYXNoX2J1Y2tldDsKKy0KKy0vKiByYW5kb20gc2lnbmF0dXJlIHVzZWQgb25seSB0byBmaW5kIGhhc2ggdGFibGVzIGluIGV4dGVybmFsIGFuYWx5c2lzICovCistI2RlZmluZSBIQVNIX1NJR05BVFVSRSAweGEwMTExZmUxCistI2RlZmluZSBIQVNIX0JMT09NX1NJR05BVFVSRSAweGIxMjIyMGYyCistCistdHlwZWRlZiBzdHJ1Y3QgVVRfaGFzaF90YWJsZSB7CistICAgVVRfaGFzaF9idWNrZXQgKmJ1Y2tldHM7CistICAgdW5zaWduZWQgbnVtX2J1Y2tldHMsIGxvZzJfbnVtX2J1Y2tldHM7CistICAgdW5zaWduZWQgbnVtX2l0ZW1zOworLSAgIHN0cnVjdCBVVF9oYXNoX2hhbmRsZSAqdGFpbDsgLyogdGFpbCBoaCBpbiBhcHAgb3JkZXIsIGZvciBmYXN0IGFwcGVuZCAgICAqLworLSAgIHB0cmRpZmZfdCBoaG87IC8qIGhhc2ggaGFuZGxlIG9mZnNldCAoYnl0ZSBwb3Mgb2YgaGFzaCBoYW5kbGUgaW4gZWxlbWVudCAqLworLQorLSAgIC8qIGluIGFuIGlkZWFsIHNpdHVhdGlvbiAoYWxsIGJ1Y2tldHMgdXNlZCBlcXVhbGx5KSwgbm8gYnVja2V0IHdvdWxkIGhhdmUKKy0gICAgKiBtb3JlIHRoYW4gY2VpbCgjaXRlbXMvI2J1Y2tldHMpIGl0ZW1zLiB0aGF0J3MgdGhlIGlkZWFsIGNoYWluIGxlbmd0aC4gKi8KKy0gICB1bnNpZ25lZCBpZGVhbF9jaGFpbl9tYXhsZW47CistCistICAgLyogbm9uaWRlYWxfaXRlbXMgaXMgdGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgaGFzaCB3aG9zZSBjaGFpbiBwb3NpdGlvbgorLSAgICAqIGV4Y2VlZHMgdGhlIGlkZWFsIGNoYWluIG1heGxlbi4gdGhlc2UgaXRlbXMgcGF5IHRoZSBwZW5hbHR5IGZvciBhbiB1bmV2ZW4KKy0gICAgKiBoYXNoIGRpc3RyaWJ1dGlvbjsgcmVhY2hpbmcgdGhlbSBpbiBhIGNoYWluIHRyYXZlcnNhbCB0YWtlcyA+aWRlYWwgc3RlcHMgKi8KKy0gICB1bnNpZ25lZCBub25pZGVhbF9pdGVtczsKKy0KKy0gICAvKiBpbmVmZmVjdGl2ZSBleHBhbmRzIG9jY3VyIHdoZW4gYSBidWNrZXQgZG91Ymxpbmcgd2FzIHBlcmZvcm1lZCwgYnV0IAorLSAgICAqIGFmdGVyd2FyZCwgbW9yZSB0aGFuIGhhbGYgdGhlIGl0ZW1zIGluIHRoZSBoYXNoIGhhZCBub25pZGVhbCBjaGFpbgorLSAgICAqIHBvc2l0aW9ucy4gSWYgdGhpcyBoYXBwZW5zIG9uIHR3byBjb25zZWN1dGl2ZSBleHBhbnNpb25zIHdlIGluaGliaXQgYW55CistICAgICogZnVydGhlciBleHBhbnNpb24sIGFzIGl0J3Mgbm90IGhlbHBpbmc7IHRoaXMgaGFwcGVucyB3aGVuIHRoZSBoYXNoCistICAgICogZnVuY3Rpb24gaXNuJ3QgYSBnb29kIGZpdCBmb3IgdGhlIGtleSBkb21haW4uIFdoZW4gZXhwYW5zaW9uIGlzIGluaGliaXRlZAorLSAgICAqIHRoZSBoYXNoIHdpbGwgc3RpbGwgd29yaywgYWxiZWl0IG5vIGxvbmdlciBpbiBjb25zdGFudCB0aW1lLiAqLworLSAgIHVuc2lnbmVkIGluZWZmX2V4cGFuZHMsIG5vZXhwYW5kOworLQorLSAgIHVpbnQzMl90IHNpZ25hdHVyZTsgLyogdXNlZCBvbmx5IHRvIGZpbmQgaGFzaCB0YWJsZXMgaW4gZXh0ZXJuYWwgYW5hbHlzaXMgKi8KKy0jaWZkZWYgSEFTSF9CTE9PTQorLSAgIHVpbnQzMl90IGJsb29tX3NpZzsgLyogdXNlZCBvbmx5IHRvIHRlc3QgYmxvb20gZXhpc3RzIGluIGV4dGVybmFsIGFuYWx5c2lzICovCistICAgdWludDhfdCAqYmxvb21fYnY7CistICAgY2hhciBibG9vbV9uYml0czsKKy0jZW5kaWYKKy0KKy19IFVUX2hhc2hfdGFibGU7CistCistdHlwZWRlZiBzdHJ1Y3QgVVRfaGFzaF9oYW5kbGUgeworLSAgIHN0cnVjdCBVVF9oYXNoX3RhYmxlICp0Ymw7CistICAgdm9pZCAqcHJldjsgICAgICAgICAgICAgICAgICAgICAgIC8qIHByZXYgZWxlbWVudCBpbiBhcHAgb3JkZXIgICAgICAqLworLSAgIHZvaWQgKm5leHQ7ICAgICAgICAgICAgICAgICAgICAgICAvKiBuZXh0IGVsZW1lbnQgaW4gYXBwIG9yZGVyICAgICAgKi8KKy0gICBzdHJ1Y3QgVVRfaGFzaF9oYW5kbGUgKmhoX3ByZXY7ICAgLyogcHJldmlvdXMgaGggaW4gYnVja2V0IG9yZGVyICAgICovCistICAgc3RydWN0IFVUX2hhc2hfaGFuZGxlICpoaF9uZXh0OyAgIC8qIG5leHQgaGggaW4gYnVja2V0IG9yZGVyICAgICAgICAqLworLSAgIHZvaWQgKmtleTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBwdHIgdG8gZW5jbG9zaW5nIHN0cnVjdCdzIGtleSAgKi8KKy0gICB1bnNpZ25lZCBrZXlsZW47ICAgICAgICAgICAgICAgICAgLyogZW5jbG9zaW5nIHN0cnVjdCdzIGtleSBsZW4gICAgICovCistICAgdW5zaWduZWQgaGFzaHY7ICAgICAgICAgICAgICAgICAgIC8qIHJlc3VsdCBvZiBoYXNoLWZjbihrZXkpICAgICAgICAqLworLX0gVVRfaGFzaF9oYW5kbGU7CistCistI2VuZGlmIC8qIFVUSEFTSF9IICovCistLSAKKzIuMTUuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbW9zcXVpdHRvL2ZpbGVzL2J1aWxkLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L21vc3F1aXR0by9maWxlcy9idWlsZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQwOTEyYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbW9zcXVpdHRvL2ZpbGVzL2J1aWxkLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotRnJvbSBlYmQ3YzhlNTQ4ZTliOGUwOTZlZTRjMzkwMTczZGI5YTcwMWYyNjA0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQnJ1bm8gQm90dGF6emluaSA8YnJ1bm8uYm90dGF6emluaUBpbnRlbC5jb20+Ci1EYXRlOiBXZWQsIDIzIE1hciAyMDE2IDExOjE4OjI2IC0wMzAwCi1TdWJqZWN0OiBbUEFUQ0hdIGJ1aWxkCi0KLURpc2FibGUgc3RyaXBwaW5nIGFuZCBhbGxvdyBlYXNpbHkgb3ZlcnJpZGluZyBwcmVmaXgKLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEJydW5vIEJvdHRhenppbmkgPGJydW5vLmJvdHRhenppbmlAaW50ZWwuY29tPgotLS0tCi0gY2xpZW50L01ha2VmaWxlICB8IDQgKystLQotIGNvbmZpZy5tayAgICAgICAgfCAyICstCi0gbGliL01ha2VmaWxlICAgICB8IDIgKy0KLSBsaWIvY3BwL01ha2VmaWxlIHwgMiArLQotIHNyYy9NYWtlZmlsZSAgICAgfCA0ICsrLS0KLSA1IGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NsaWVudC9NYWtlZmlsZSBiL2NsaWVudC9NYWtlZmlsZQotaW5kZXggYmQ2NTM1NS4uNGU1YTY0MCAxMDA2NDQKLS0tLSBhL2NsaWVudC9NYWtlZmlsZQotKysrIGIvY2xpZW50L01ha2VmaWxlCi1AQCAtMjQsOCArMjQsOCBAQCBjbGllbnRfc2hhcmVkLm8gOiBjbGllbnRfc2hhcmVkLmMgY2xpZW50Ci0gCi0gaW5zdGFsbCA6IGFsbAotIAkkKElOU1RBTEwpIC1kICR7REVTVERJUn0kKHByZWZpeCkvYmluCi0tCSQoSU5TVEFMTCkgLXMgLS1zdHJpcC1wcm9ncmFtPSR7Q1JPU1NfQ09NUElMRX0ke1NUUklQfSBtb3NxdWl0dG9fcHViICR7REVTVERJUn0ke3ByZWZpeH0vYmluL21vc3F1aXR0b19wdWIKLS0JJChJTlNUQUxMKSAtcyAtLXN0cmlwLXByb2dyYW09JHtDUk9TU19DT01QSUxFfSR7U1RSSVB9IG1vc3F1aXR0b19zdWIgJHtERVNURElSfSR7cHJlZml4fS9iaW4vbW9zcXVpdHRvX3N1YgotKwkkKElOU1RBTEwpIG1vc3F1aXR0b19wdWIgJHtERVNURElSfSR7cHJlZml4fS9iaW4vbW9zcXVpdHRvX3B1YgotKwkkKElOU1RBTEwpIG1vc3F1aXR0b19zdWIgJHtERVNURElSfSR7cHJlZml4fS9iaW4vbW9zcXVpdHRvX3N1YgotIAotIHVuaW5zdGFsbCA6Ci0gCS1ybSAtZiAke0RFU1RESVJ9JHtwcmVmaXh9L2Jpbi9tb3NxdWl0dG9fcHViCi1kaWZmIC0tZ2l0IGEvY29uZmlnLm1rIGIvY29uZmlnLm1rCi1pbmRleCBjMGYxNzVmLi4zNDI3YjgzIDEwMDY0NAotLS0tIGEvY29uZmlnLm1rCi0rKysgYi9jb25maWcubWsKLUBAIC0yNDEsNyArMjQxLDcgQEAgaWZlcSAoJChXSVRIX0RPQ1MpLHllcykKLSBlbmRpZgotIAotIElOU1RBTEw/PWluc3RhbGwKLS1wcmVmaXg9L3Vzci9sb2NhbAotK3ByZWZpeD89L3VzcgotIG1hbmRpcj0ke3ByZWZpeH0vc2hhcmUvbWFuCi0gbG9jYWxlZGlyPSR7cHJlZml4fS9zaGFyZS9sb2NhbGUKLSBTVFJJUD89c3RyaXAKLWRpZmYgLS1naXQgYS9saWIvTWFrZWZpbGUgYi9saWIvTWFrZWZpbGUKLWluZGV4IDgyNWZjZWEuLjliN2MwNWMgMTAwNjQ0Ci0tLS0gYS9saWIvTWFrZWZpbGUKLSsrKyBiL2xpYi9NYWtlZmlsZQotQEAgLTI1LDcgKzI1LDcgQEAgYWxsIDogbGlibW9zcXVpdHRvLnNvLiR7U09WRVJTSU9OfSBsaWJtbwotIAotIGluc3RhbGwgOiBhbGwKLSAJJChJTlNUQUxMKSAtZCAke0RFU1RESVJ9JChwcmVmaXgpL2xpYiR7TElCX1NVRkZJWH0vCi0tCSQoSU5TVEFMTCkgLXMgLS1zdHJpcC1wcm9ncmFtPSR7Q1JPU1NfQ09NUElMRX0ke1NUUklQfSBsaWJtb3NxdWl0dG8uc28uJHtTT1ZFUlNJT059ICR7REVTVERJUn0ke3ByZWZpeH0vbGliJHtMSUJfU1VGRklYfS9saWJtb3NxdWl0dG8uc28uJHtTT1ZFUlNJT059Ci0rCSQoSU5TVEFMTCkgbGlibW9zcXVpdHRvLnNvLiR7U09WRVJTSU9OfSAke0RFU1RESVJ9JHtwcmVmaXh9L2xpYiR7TElCX1NVRkZJWH0vbGlibW9zcXVpdHRvLnNvLiR7U09WRVJTSU9OfQotIAlsbiAtc2YgbGlibW9zcXVpdHRvLnNvLiR7U09WRVJTSU9OfSAke0RFU1RESVJ9JHtwcmVmaXh9L2xpYiR7TElCX1NVRkZJWH0vbGlibW9zcXVpdHRvLnNvCi0gCSQoSU5TVEFMTCkgLWQgJHtERVNURElSfSR7cHJlZml4fS9pbmNsdWRlLwotIAkkKElOU1RBTEwpIG1vc3F1aXR0by5oICR7REVTVERJUn0ke3ByZWZpeH0vaW5jbHVkZS9tb3NxdWl0dG8uaAotZGlmZiAtLWdpdCBhL2xpYi9jcHAvTWFrZWZpbGUgYi9saWIvY3BwL01ha2VmaWxlCi1pbmRleCA4YjYyN2QzLi5jZGIyOTIzIDEwMDY0NAotLS0tIGEvbGliL2NwcC9NYWtlZmlsZQotKysrIGIvbGliL2NwcC9NYWtlZmlsZQotQEAgLTEwLDcgKzEwLDcgQEAgYWxsIDogbGlibW9zcXVpdHRvcHAuc28uJHtTT1ZFUlNJT059Ci0gCi0gaW5zdGFsbCA6IGFsbAotIAkkKElOU1RBTEwpIC1kICR7REVTVERJUn0kKHByZWZpeCkvbGliJHtMSUJfU1VGRklYfS8KLS0JJChJTlNUQUxMKSAtcyAtLXN0cmlwLXByb2dyYW09JHtDUk9TU19DT01QSUxFfSR7U1RSSVB9IGxpYm1vc3F1aXR0b3BwLnNvLiR7U09WRVJTSU9OfSAke0RFU1RESVJ9JHtwcmVmaXh9L2xpYiR7TElCX1NVRkZJWH0vbGlibW9zcXVpdHRvcHAuc28uJHtTT1ZFUlNJT059Ci0rCSQoSU5TVEFMTCkgbGlibW9zcXVpdHRvcHAuc28uJHtTT1ZFUlNJT059ICR7REVTVERJUn0ke3ByZWZpeH0vbGliJHtMSUJfU1VGRklYfS9saWJtb3NxdWl0dG9wcC5zby4ke1NPVkVSU0lPTn0KLSAJbG4gLXNmIGxpYm1vc3F1aXR0b3BwLnNvLiR7U09WRVJTSU9OfSAke0RFU1RESVJ9JHtwcmVmaXh9L2xpYiR7TElCX1NVRkZJWH0vbGlibW9zcXVpdHRvcHAuc28KLSAJJChJTlNUQUxMKSAtZCAke0RFU1RESVJ9JHtwcmVmaXh9L2luY2x1ZGUvCi0gCSQoSU5TVEFMTCkgbW9zcXVpdHRvcHAuaCAke0RFU1RESVJ9JHtwcmVmaXh9L2luY2x1ZGUvbW9zcXVpdHRvcHAuaAotZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZSBiL3NyYy9NYWtlZmlsZQotaW5kZXggMmNmYjdkNC4uOWE5NzY0NCAxMDA2NDQKLS0tLSBhL3NyYy9NYWtlZmlsZQotKysrIGIvc3JjL01ha2VmaWxlCi1AQCAtMTAzLDEyICsxMDMsMTIgQEAgbW9zcXVpdHRvX3Bhc3N3ZC5vIDogbW9zcXVpdHRvX3Bhc3N3ZC5jCi0gCi0gaW5zdGFsbCA6IGFsbAotIAkkKElOU1RBTEwpIC1kICR7REVTVERJUn0kKHByZWZpeCkvc2JpbgotLQkkKElOU1RBTEwpIC1zIC0tc3RyaXAtcHJvZ3JhbT0ke0NST1NTX0NPTVBJTEV9JHtTVFJJUH0gbW9zcXVpdHRvICR7REVTVERJUn0ke3ByZWZpeH0vc2Jpbi9tb3NxdWl0dG8KLSsJJChJTlNUQUxMKSBtb3NxdWl0dG8gJHtERVNURElSfSR7cHJlZml4fS9zYmluL21vc3F1aXR0bwotCSQoSU5TVEFMTCkgLWQgJHtERVNURElSfSQocHJlZml4KS9pbmNsdWRlCi0gCSQoSU5TVEFMTCkgbW9zcXVpdHRvX3BsdWdpbi5oICR7REVTVERJUn0ke3ByZWZpeH0vaW5jbHVkZS9tb3NxdWl0dG9fcGx1Z2luLmgKLSBpZmVxICgkKFdJVEhfVExTKSx5ZXMpCi0JJChJTlNUQUxMKSAtZCAke0RFU1RESVJ9JChwcmVmaXgpL2JpbgotLQkkKElOU1RBTEwpIC1zIC0tc3RyaXAtcHJvZ3JhbT0ke0NST1NTX0NPTVBJTEV9JHtTVFJJUH0gbW9zcXVpdHRvX3Bhc3N3ZCAke0RFU1RESVJ9JHtwcmVmaXh9L2Jpbi9tb3NxdWl0dG9fcGFzc3dkCi0rCSQoSU5TVEFMTCkgbW9zcXVpdHRvX3Bhc3N3ZCAke0RFU1RESVJ9JHtwcmVmaXh9L2Jpbi9tb3NxdWl0dG9fcGFzc3dkCi0gZW5kaWYKLSAKLSB1bmluc3RhbGwgOgotLS0gCi0yLjcuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbW9zcXVpdHRvL21vc3F1aXR0b18xLjQuMTQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvbW9zcXVpdHRvL21vc3F1aXR0b18xLjQuMTQuYmIKaW5kZXggNzU1NDI0OC4uMTNjZTM4MSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L21vc3F1aXR0by9tb3NxdWl0dG9fMS40LjE0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9tb3NxdWl0dG8vbW9zcXVpdHRvXzEuNC4xNC5iYgpAQCAtOCw5ICs4LDExIEBACiAgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9lcGwtdjEwO21kNT04ZDM4M2MzNzllOTFkMjBiYTE4YTUyYzNlN2QzYTk3OSBcCiAgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9ub3RpY2UuaHRtbDttZDU9YTAwZDZmOWFiNTQyYmU3YmFiYzJkOGI4MGQ1ZDJhNGMgXAogIgorREVQRU5EUyA9ICJ1dGhhc2giCiAKIFNSQ19VUkkgPSAiaHR0cDovL21vc3F1aXR0by5vcmcvZmlsZXMvc291cmNlL21vc3F1aXR0by0ke1BWfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vYnVpbGQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1jb25maWcubWstYWxsb3ctcHJlZml4LW1hbmRpci1sb2NhbGVkaXItZnJvbS1lbnZpcm9uLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDItdXRoYXNoLXJlbW92ZS1pbi10cmVlLXZlcnNpb24ucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vbW9zcXVpdHRvLnNlcnZpY2UgXAogICAgICAgICAgICBmaWxlOi8vbW9zcXVpdHRvLmluaXQgXAogIgpAQCAtMjYsNiArMjgsNyBAQAogUEFDS0FHRUNPTkZJR1tzc2xdID0gIiwsb3BlbnNzbCIKIFBBQ0tBR0VDT05GSUdbdXVpZF0gPSAiLCx1dGlsLWxpbnV4IgogRVhUUkFfT0VNQUtFID0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ2Rucy1zcnYnLCAnV0lUSF9TUlY9eWVzJywgJ1dJVEhfU1JWPW5vJywgZCl9IFwKKyAgICAgICAgICAgICAgICBTVFJJUD0vYmluL3RydWUgXAogICAgICAgICAgICAgICAgIFdJVEhfRE9DUz1ubyBcCiAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnc3NsJywgJ1dJVEhfVExTPXllcyBXSVRIX1RMU19QU0s9eWVzJywgJ1dJVEhfVExTPW5vIFdJVEhfVExTX1BTSz1ubycsIGQpfSBcCiAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAndXVpZCcsICdXSVRIX1VVSUQ9eWVzJywgJ1dJVEhfVVVJRD1ubycsIGQpfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9vYmV4L29iZXgtZGF0YS1zZXJ2ZXJfMC40LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleC9vYmV4LWRhdGEtc2VydmVyXzAuNC42LmJiCmluZGV4IGUxMGI4OWMuLjcxNWIwMjMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9vYmV4L29iZXgtZGF0YS1zZXJ2ZXJfMC40LjYuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L29iZXgvb2JleC1kYXRhLXNlcnZlcl8wLjQuNi5iYgpAQCAtMTEsNiArMTEsOCBAQAogU1JDX1VSSVttZDVzdW1dID0gIjk2MWNhNWRiNmZlOWM5NzAyNGUxMzNjYzYyMDNjYzRkIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImIzOTk0NjVkZGJkNmQwMjE3YWJlZGQ5NDExZDlkNzRhODIwZWZmYTBhNmExNDJhZGM0NDgyNjhkMzkyMDA5NGYiCiAKLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scy1icm9rZW5zZXAgcGtnY29uZmlnCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIEZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2RidXMtMS8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleC9vcGVub2JleF8xLjcuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9vYmV4L29wZW5vYmV4XzEuNy4yLmJiCmluZGV4IDJkYjQ4ZjMuLjFiNTY2ODUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9vYmV4L29wZW5vYmV4XzEuNy4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9vYmV4L29wZW5vYmV4XzEuNy4yLmJiCkBAIC0yNSw2ICsyNSw4IEBACiAKICMtLWVuYWJsZS1hcHBzIC0tZW5hYmxlLXN5c2xvZwogCitBU05FRURFRCA9ICIiCisKIGRvX2luc3RhbGxfYXBwZW5kICgpIHsKICAgICBybWRpciAke0R9JHtiaW5kaXJ9CiB9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvb2JleGZ0cC9vYmV4ZnRwXzAuMjQuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9vYmV4ZnRwL29iZXhmdHBfMC4yNC4yLmJiCmluZGV4IDQ4OTg2MWMuLmI0YTkxNGQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9vYmV4ZnRwL29iZXhmdHBfMC4yNC4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9vYmV4ZnRwL29iZXhmdHBfMC4yNC4yLmJiCkBAIC0xNiw2ICsxNiw4IEBACiAKIGluaGVyaXQgY21ha2UgcGtnY29uZmlnCiAKK09FQ01BS0VfR0VORVJBVE9SID0gIlVuaXggTWFrZWZpbGVzIgorCiBQQUNLQUdFQ09ORklHID89ICIiCiAjIGZ1c2Ugc3VwcG9ydCB3aWxsIG5lZWQgbWV0YS1maWxlc3lzdGVtcyBsYXllcgogUEFDS0FHRUNPTkZJR1tmdXNlXSA9ICItREVOQUJMRV9GVVNFPU9OLC1ERU5BQkxFX0ZVU0U9T0ZGLGZ1c2UiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvc21zdG9vbHMzL3Ntc3Rvb2xzMy9maXgtbWFrZWZpbGUtb3ZlcnJpZGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvc21zdG9vbHMzL3Ntc3Rvb2xzMy9maXgtbWFrZWZpbGUtb3ZlcnJpZGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwYTFkMzMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczMvZml4LW1ha2VmaWxlLW92ZXJyaWRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbZGViaWFuXQotCi0tLS0gYS9zcmMvTWFrZWZpbGUKLSsrKyBiL3NyYy9NYWtlZmlsZQotQEAgLTM3LDE2ICszNywxNSBAQAotICMgVXNlIHRoZSBmb2xsb3dpbmcgb25seSBvbiBHTlUvTGludXggYW5kIG9ubHkgaWYgeW91IG5lZWQgcHMgbGlzdGluZyBsaWtlICJzbXNkOiBNQUlOUFJPQ0VTUyIgYW5kICJzbXNkOiBHU00xIgotICMgQ0ZMQUdTICs9IC1EIFVTRV9MSU5VWF9QU19UUklDSwotIAotLWFsbDogc21zZCAKLS0KLS1zbXNkOiBzbXNkLmMgZXh0cmFzLm8gbG9ja2luZy5vIGNmZ2ZpbGUubyBsb2dnaW5nLm8gYWxhcm0ubyBzbXNkX2NmZy5vIGNoYXJzZXQubyBzdGF0cy5vIGJsYWNrbGlzdC5vIHdoaXRlbGlzdC5vIG1vZGVtaW5pdC5vIHBkdS5vCi0tCi0gaWZuZXEgKCwkKGZpbmRzdHJpbmcgU09MQVJJUywkKENGTEFHUykpKQotIGlmZXEgKCwkKGZpbmRzdHJpbmcgRElTQUJMRV9JTkVUX1NPQ0tFVCwkKENGTEFHUykpKQotIG92ZXJyaWRlIExGTEFHUyArPSAtbHNvY2tldCAtbG5zbAotIGVuZGlmCi0gZW5kaWYKLSAKLSthbGw6IHNtc2QgCi0rCi0rc21zZDogc21zZC5jIGV4dHJhcy5vIGxvY2tpbmcubyBjZmdmaWxlLm8gbG9nZ2luZy5vIGFsYXJtLm8gc21zZF9jZmcubyBjaGFyc2V0Lm8gc3RhdHMubyBibGFja2xpc3QubyB3aGl0ZWxpc3QubyBtb2RlbWluaXQubyBwZHUubwotIGlmbmVxICgsJChmaW5kc3RyaW5nIE5PU1RBVFMsJChDRkxBR1MpKSkKLSAJJChDQykgJChDRkxBR1MpIC1vICRAICReICQoTEZMQUdTKQotIGVsc2UgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvc21zdG9vbHMzL3Ntc3Rvb2xzMy9zY3JpcHRzX25vX2Jhc2gucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvc21zdG9vbHMzL3Ntc3Rvb2xzMy9zY3JpcHRzX25vX2Jhc2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDliNGQxZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbXN0b29sczMvc21zdG9vbHMzL3NjcmlwdHNfbm9fYmFzaC5wYXRjaApAQCAtMCwwICsxLDUxIEBACitGcm9tIDg1NjAyYzNlNTMxZDM5ZTg5ZGM4Y2VlMGM0YTU5MmY4NTAwNmEwNjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBCaWxsIFJhbmRsZSA8YmlsbC5yYW5kbGVAZ21haWwuY29tPgorRGF0ZTogU3VuLCAzMSBEZWMgMjAxNyAwOTowODoyMyAtMDgwMAorCistLS0KKyBzY3JpcHRzL3NlbmRzbXMgICAgIHwgMiArLQorIHNjcmlwdHMvc21zMmh0bWwgICAgfCAyICstCisgc2NyaXB0cy9zbXMydW5pY29kZSB8IDIgKy0KKyBzY3JpcHRzL3VuaWNvZGUyc21zIHwgMiArLQorIDQgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc2NyaXB0cy9zZW5kc21zIGIvc2NyaXB0cy9zZW5kc21zCitpbmRleCA1MTIwMjZkLi5iYjU2ODU2IDEwMDc1NQorLS0tIGEvc2NyaXB0cy9zZW5kc21zCisrKysgYi9zY3JpcHRzL3NlbmRzbXMKK0BAIC0xLDQgKzEsNCBAQAorLSMhL2Jpbi9iYXNoCisrIyEvYmluL3NoCisgIyBUaGlzIHNjcmlwdCBzZW5kIGEgdGV4dCBzbXMgYXQgdGhlIGNvbW1hbmQgbGluZSBieSBjcmVhdGluZworICMgYSBzbXMgZmlsZSBpbiB0aGUgb3V0Z29pbmcgcXVldWUuCisgCitkaWZmIC0tZ2l0IGEvc2NyaXB0cy9zbXMyaHRtbCBiL3NjcmlwdHMvc21zMmh0bWwKK2luZGV4IGZmMjUzZTMuLjk0NjE4NWUgMTAwNzU1CistLS0gYS9zY3JpcHRzL3NtczJodG1sCisrKysgYi9zY3JpcHRzL3NtczJodG1sCitAQCAtMSw0ICsxLDQgQEAKKy0jIS9iaW4vYmFzaAorKyMhL2Jpbi9zaAorIAorICMgVGhpcyBzY3JpcHQgY29udmVydHMgYSByZWNlaXZlZCBzbXMgZmlsZSBpbnRvIGEgaHRtbCBmaWxlLiAKKyAKK2RpZmYgLS1naXQgYS9zY3JpcHRzL3NtczJ1bmljb2RlIGIvc2NyaXB0cy9zbXMydW5pY29kZQoraW5kZXggNDZlMjc1Ni4uMjgyNmRjMSAxMDA3NTUKKy0tLSBhL3NjcmlwdHMvc21zMnVuaWNvZGUKKysrKyBiL3NjcmlwdHMvc21zMnVuaWNvZGUKK0BAIC0xLDQgKzEsNCBAQAorLSMhL2Jpbi9iYXNoCisrIyEvYmluL3NoCisgCisgIyBUaGlzIHNjcmlwdCBjb252ZXJ0cyBhIHJlY2VpdmVkIHNtcyBmaWxlIGludG8gYSBwdXJlIHVuaWNvZGUgdGV4dCBmaWxlLgorIAorZGlmZiAtLWdpdCBhL3NjcmlwdHMvdW5pY29kZTJzbXMgYi9zY3JpcHRzL3VuaWNvZGUyc21zCitpbmRleCAyYWU4NmRjLi4zZmNjZjBkIDEwMDc1NQorLS0tIGEvc2NyaXB0cy91bmljb2RlMnNtcworKysrIGIvc2NyaXB0cy91bmljb2RlMnNtcworQEAgLTEsNCArMSw0IEBACistIyEvYmluL2Jhc2gKKysjIS9iaW4vc2gKKyAKKyAjIFRoaXMgc2NyaXB0IGNvbnZlcnRzIGEgcHVyZSB1bmljb2RlIHRleHQgZmlsZSBpbnRvIGFuIHNtcyBmaWxlIGZvciBzZW5kaW5nLgorIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczMvc21zX2JpbnBhdGgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvc21zdG9vbHMzL3Ntc3Rvb2xzMy9zbXNfYmlucGF0aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWQ3OWQzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczMvc21zX2JpbnBhdGgucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorRnJvbSA5YTRhODcyZGNhNzhjYTljYjZiZGMyMjhiZTYxZjVhNGMyZDY4YjFmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2FpIFVscmljaCA8a2FpdUBnbXguZGU+CitEYXRlOiBXZWQsIDE4IE1hciAyMDE1IDExOjIwOjUzICswMTAwCisKKy0tLQorIHNjcmlwdHMvc21zMyB8IDQgKystLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zY3JpcHRzL3NtczMgYi9zY3JpcHRzL3NtczMKK2luZGV4IDZiOTkwYmYuLjA5YzA2M2IgMTAwNzU1CistLS0gYS9zY3JpcHRzL3NtczMKKysrKyBiL3NjcmlwdHMvc21zMworQEAgLTI0LDkgKzI0LDkgQEAgSU5GT0ZJTEU9Ii92YXIvcnVuL3Ntc2Qud29ya2luZyIKKyAjIExvZ2ZpbGUgY2FuIGFsc28gYmUgZGVmaW5lZCBpbiBoZXJlOgorIExPR0ZJTEU9Ii92YXIvbG9nL3Ntc2QubG9nIgorIAorLURBRU1PTj0vdXNyL2xvY2FsL2Jpbi9zbXNkCisrREFFTU9OPS91c3IvYmluL3Ntc2QKKyAjIEEgcHJvZ3JhbSB3aGljaCB0dXJucyBwb3dlciBvZmYgZm9yIGNvdXBsZSBvZiBzZWNvbmRzOgorLVJFU0VUTU9ERU1TPS91c3IvbG9jYWwvYmluL3Ntc2RfcmVzZXRtb2RlbXMKKytSRVNFVE1PREVNUz0vdXNyL2Jpbi9zbXNkX3Jlc2V0bW9kZW1zCisgTkFNRT1zbXNkCisgUFNPUFQ9Ii1lIgorIEVDSE89ZWNobwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczMvc21zX2JpbnBhdGhfYW5kX3Bzb3BzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczMvc21zX2JpbnBhdGhfYW5kX3Bzb3BzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZmNhYTA5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbXN0b29sczMvc21zdG9vbHMzL3Ntc19iaW5wYXRoX2FuZF9wc29wcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLUluZGV4OiBzbXN0b29sczMvc2NyaXB0cy9zbXMzCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gc21zdG9vbHMzLm9yaWcvc2NyaXB0cy9zbXMzCTIwMTAtMDUtMDQgMTE6MjE6NDQuMDAwMDAwMDAwICswMjAwCi0rKysgc21zdG9vbHMzL3NjcmlwdHMvc21zMwkyMDE1LTAyLTIyIDIwOjA1OjUxLjYxNTA3NDQ2OSArMDEwMAotQEAgLTI0LDExICsyNCwxMSBAQAotICMgTG9nZmlsZSBjYW4gYWxzbyBiZSBkZWZpbmVkIGluIGhlcmU6Ci0gTE9HRklMRT0iL3Zhci9sb2cvc21zZC5sb2ciCi0gCi0tREFFTU9OPS91c3IvbG9jYWwvYmluL3Ntc2QKLStEQUVNT049L3Vzci9iaW4vc21zZAotICMgQSBwcm9ncmFtIHdoaWNoIHR1cm5zIHBvd2VyIG9mZiBmb3IgY291cGxlIG9mIHNlY29uZHM6Ci0tUkVTRVRNT0RFTVM9L3Vzci9sb2NhbC9iaW4vc21zZF9yZXNldG1vZGVtcwotK1JFU0VUTU9ERU1TPS91c3IvYmluL3Ntc2RfcmVzZXRtb2RlbXMKLSBOQU1FPXNtc2QKLS1QU09QVD0iLWUiCi0rUFNPUFQ9IiIKLSBFQ0hPPWVjaG8KLSBjYXNlIGB1bmFtZWAgaW4KLSAgICpCU0R8RGFyd2luKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczNfMy4xLjE1LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3Ntc3Rvb2xzMy9zbXN0b29sczNfMy4xLjE1LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTBhMTNjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbXN0b29sczMvc21zdG9vbHMzXzMuMS4xNS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLVNVTU1BUlkgPSAiU01TIEdhdGV3YXkgc29mdHdhcmUiCi1ERVNDUklQVElPTiA9ICJUaGUgU01TIFNlcnZlciBUb29scyAzIGlzIGEgU01TIEdhdGV3YXkgc29mdHdhcmUgd2hpY2ggY2FuIHNlbmQgYW5kIHJlY2VpdmUgc2hvcnQgbWVzc2FnZXMgdGhyb3VnaCBHU00gbW9kZW1zIGFuZCBtb2JpbGUgcGhvbmVzLiIKLVNFQ1RJT04gPSAiY29uc29sZS9uZXR3b3JrIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTRkMjFlZmExYmIyYTE4NjM2MGRkZTQwMzVmODYwNjgyIgotSE9NRVBBR0UgPSAiaHR0cDovL3Ntc3Rvb2xzMy5rZWtla2FzdmkuY29tIgotCi1TUkNfVVJJID0gImh0dHA6Ly9zbXN0b29sczMua2VrZWthc3ZpLmNvbS9wYWNrYWdlcy8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vc21zX2JpbnBhdGhfYW5kX3Bzb3BzLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2ZpeC1tYWtlZmlsZS1vdmVycmlkZS5wYXRjaCIKLQotU1JDX1VSSVttZDVzdW1dID0gIjAyNDFlZjYwZTY0NmZhYzFhMDYyNTRhODQ4ZTYxZWQ3IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImVkMDBmZmFlYWEzMTJhNWI0Zjk2OWY0ZTk3YTY0NjAzYTg2NmJiZTE2ZTM5M2VhMDJmNWJmMDUyMzQ4MTRkNTkiCi0KLQotUyA9ICIke1dPUktESVJ9LyR7QlBOfSIKLQotRVhUUkFfT0VNQUtFICs9ICJMRkxBR1M9JyR7TERGTEFHU30nIgotCi1SREVQRU5EU18ke1BOfSA9ICJiYXNoIgotSU5JVFNDUklQVF9OQU1FID0gInNtczMiCi1JTklUU0NSSVBUX1BBUkFNUyA9ICJkZWZhdWx0cyIKLQotaW5oZXJpdCB1cGRhdGUtcmMuZAotCi1kb19pbnN0YWxsICgpIHsKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7YmluZGlyfQotICAgIGluc3RhbGwgLW0gNzU1ICR7U30vc3JjL3Ntc2QgIiR7RH0ke2JpbmRpcn0vc21zZCIKLQotICAgIGluc3RhbGwgLW0gNzU1ICR7U30vc2NyaXB0cy9zZW5kc21zICIke0R9JHtiaW5kaXJ9L3NlbmRzbXMiCi0gICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9zY3JpcHRzL3NtczJodG1sICIke0R9JHtiaW5kaXJ9L3NtczJodG1sIgotICAgIGluc3RhbGwgLW0gNzU1ICR7U30vc2NyaXB0cy9zbXMydW5pY29kZSAiJHtEfSR7YmluZGlyfS9zbXMydW5pY29kZSIKLSAgICBpbnN0YWxsIC1tIDc1NSAke1N9L3NjcmlwdHMvdW5pY29kZTJzbXMgIiR7RH0ke2JpbmRpcn0vdW5pY29kZTJzbXMiCi0KLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9Ci0gICAgaW5zdGFsbCAtbSA2NDQgJHtTfS9leGFtcGxlcy9zbXNkLmNvbmYuZWFzeSAiJHtEfSR7c3lzY29uZmRpcn0vc21zZC5jb25mIgotCi0gICAgaW5zdGFsbCAtZCAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wiCi0gICAgaW5zdGFsbCAtZCAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wvc21zIgotICAgIGluc3RhbGwgLWQgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3Nwb29sL3Ntcy9pbmNvbWluZyIKLSAgICBpbnN0YWxsIC1kICIke0R9JHtsb2NhbHN0YXRlZGlyfS9zcG9vbC9zbXMvb3V0Z29pbmciCi0gICAgaW5zdGFsbCAtZCAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wvc21zL2NoZWNrZWQiCi0KLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZAotICAgIGluc3RhbGwgLW0gNzU1ICR7U30vc2NyaXB0cy9zbXMzICIke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvJHtJTklUU0NSSVBUX05BTUV9IgotCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvc21zdG9vbHMzL3Ntc3Rvb2xzM18zLjEuMjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvc21zdG9vbHMzL3Ntc3Rvb2xzM18zLjEuMjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU2NDEzYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS9zbXN0b29sczMvc21zdG9vbHMzXzMuMS4yMS5iYgpAQCAtMCwwICsxLDQ3IEBACitTVU1NQVJZID0gIlNNUyBHYXRld2F5IHNvZnR3YXJlIgorREVTQ1JJUFRJT04gPSAiVGhlIFNNUyBTZXJ2ZXIgVG9vbHMgMyBpcyBhIFNNUyBHYXRld2F5IHNvZnR3YXJlIHdoaWNoIGNhbiBzZW5kIGFuZCByZWNlaXZlIHNob3J0IG1lc3NhZ2VzIHRocm91Z2ggR1NNIG1vZGVtcyBhbmQgbW9iaWxlIHBob25lcy4iCitTRUNUSU9OID0gImNvbnNvbGUvbmV0d29yayIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT00ZDIxZWZhMWJiMmExODYzNjBkZGU0MDM1Zjg2MDY4MiIKK0hPTUVQQUdFID0gImh0dHA6Ly9zbXN0b29sczMua2VrZWthc3ZpLmNvbSIKKworU1JDX1VSSSA9ICJodHRwOi8vc21zdG9vbHMzLmtla2VrYXN2aS5jb20vcGFja2FnZXMvJHtCUH0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL3Ntc19iaW5wYXRoLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3NjcmlwdHNfbm9fYmFzaC5wYXRjaCIKKworU1JDX1VSSVttZDVzdW1dID0gIjZhOWYwMzhmYjM4YTQ5Y2MzYTRmOGYxNGE4OGZiOGFmIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImEyNmJhNGMwMmIxNmY2Y2YxMzE3N2JmZmNhNmM5MjMwZGM1ZmVmYWViYThlMzAzMGNkNGU0OTA1ZjZhOTIwODQiCisKKworUyA9ICIke1dPUktESVJ9LyR7QlBOfSIKKworRVhUUkFfT0VNQUtFICs9ICJMRkxBR1M9JyR7TERGTEFHU30nIgorCitJTklUU0NSSVBUX05BTUUgPSAic21zMyIKK0lOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIgorCitpbmhlcml0IHVwZGF0ZS1yYy5kCisKK2RvX2luc3RhbGwgKCkgeworCisgICAgaW5zdGFsbCAtZCAke0R9JHtiaW5kaXJ9CisgICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9zcmMvc21zZCAiJHtEfSR7YmluZGlyfS9zbXNkIgorCisgICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9zY3JpcHRzL3NlbmRzbXMgIiR7RH0ke2JpbmRpcn0vc2VuZHNtcyIKKyAgICBpbnN0YWxsIC1tIDc1NSAke1N9L3NjcmlwdHMvc21zMmh0bWwgIiR7RH0ke2JpbmRpcn0vc21zMmh0bWwiCisgICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9zY3JpcHRzL3NtczJ1bmljb2RlICIke0R9JHtiaW5kaXJ9L3NtczJ1bmljb2RlIgorICAgIGluc3RhbGwgLW0gNzU1ICR7U30vc2NyaXB0cy91bmljb2RlMnNtcyAiJHtEfSR7YmluZGlyfS91bmljb2RlMnNtcyIKKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0KKyAgICBpbnN0YWxsIC1tIDY0NCAke1N9L2V4YW1wbGVzL3Ntc2QuY29uZi5lYXN5ICIke0R9JHtzeXNjb25mZGlyfS9zbXNkLmNvbmYiCisKKyAgICBpbnN0YWxsIC1kICIke0R9JHtsb2NhbHN0YXRlZGlyfS9zcG9vbCIKKyAgICBpbnN0YWxsIC1kICIke0R9JHtsb2NhbHN0YXRlZGlyfS9zcG9vbC9zbXMiCisgICAgaW5zdGFsbCAtZCAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0vc3Bvb2wvc21zL2luY29taW5nIgorICAgIGluc3RhbGwgLWQgIiR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3Nwb29sL3Ntcy9vdXRnb2luZyIKKyAgICBpbnN0YWxsIC1kICIke0R9JHtsb2NhbHN0YXRlZGlyfS9zcG9vbC9zbXMvY2hlY2tlZCIKKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9zY3JpcHRzL3NtczMgIiR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC8ke0lOSVRTQ1JJUFRfTkFNRX0iCisKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS91bWlwL2ZpbGVzLzAwMDEtcmVwbGFjZS1TSUdDTEQtd2l0aC1TSUdDSExELWFuZC1pbmNsdWRlLXN5cy10eXBlcy5oLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3VtaXAvZmlsZXMvMDAwMS1yZXBsYWNlLVNJR0NMRC13aXRoLVNJR0NITEQtYW5kLWluY2x1ZGUtc3lzLXR5cGVzLmgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE5MjA1NgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS91bWlwL2ZpbGVzLzAwMDEtcmVwbGFjZS1TSUdDTEQtd2l0aC1TSUdDSExELWFuZC1pbmNsdWRlLXN5cy10eXBlcy5oLnBhdGNoCkBAIC0wLDAgKzEsNDkgQEAKK0Zyb20gZjU2Nzc0MGNmNjQ5NzhhYzlkYjAxNGM3ODZiNmQwMjY3YjI0NGYzMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBTdW4sIDQgTWFyIDIwMTggMjI6MzA6MzAgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSCAxLzJdIHJlcGxhY2UgU0lHQ0xEIHdpdGggU0lHQ0hMRCBhbmQgaW5jbHVkZSBzeXMvdHlwZXMuaAorCitGaXhlcworbWFpbi5jOjEyOToxMDogZXJyb3I6ICdTSUdDTEQnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKTsgZGlkIHlvdSBtZWFuICdTSUdDSExEJz8KKyAgIHNpZ25hbChTSUdDTEQsIHNpZ19jaGlsZCk7CisgICAgICAgICAgXn5+fn5+CisgICAgICAgICAgU0lHQ0hMRAorCittYWluLmM6MTI1OjI6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICd1bWFzaycgWy1XaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCisgIHVtYXNrKDApOworICBefn5+fgorCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworIHNyYy9tYWluLmMgfCA1ICsrKy0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9tYWluLmMgYi9zcmMvbWFpbi5jCitpbmRleCAzY2Y0MDcyLi5jZDM0MTk2IDEwMDY0NAorLS0tIGEvc3JjL21haW4uYworKysrIGIvc3JjL21haW4uYworQEAgLTMxLDYgKzMxLDcgQEAKKyAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisgI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisgI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAjaW5jbHVkZSA8cHRocmVhZC5oPgorICNpbmNsdWRlIDxmY250bC5oPgorICNpbmNsdWRlIDx1bmlzdGQuaD4KK0BAIC0xMjYsOSArMTI3LDkgQEAgc3RhdGljIHZvaWQgZGFlbW9uX3N0YXJ0KGludCBpZ25zaWdjbGQpCisgCisgCWlmIChpZ25zaWdjbGQpIHsKKyAjaWZkZWYgU0lHVFNUUAorLQkJc2lnbmFsKFNJR0NMRCwgc2lnX2NoaWxkKTsKKysJCXNpZ25hbChTSUdDSExELCBzaWdfY2hpbGQpOworICNlbHNlCistCQlzaWduYWwoU0lHQ0xELCBTSUdfSUdOKTsKKysJCXNpZ25hbChTSUdDSExELCBTSUdfSUdOKTsKKyAjZW5kaWYKKyAJfQorIH0KKy0tIAorMi4xNi4yCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS91bWlwL2ZpbGVzLzAwMDItcmVwbGFjZS1QVEhSRUFEX01VVEVYX0ZBU1RfTlAtd2l0aC1QVEhSRUFEX01VVEVYX05PUi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS91bWlwL2ZpbGVzLzAwMDItcmVwbGFjZS1QVEhSRUFEX01VVEVYX0ZBU1RfTlAtd2l0aC1QVEhSRUFEX01VVEVYX05PUi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGQxMmRhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3VtaXAvZmlsZXMvMDAwMi1yZXBsYWNlLVBUSFJFQURfTVVURVhfRkFTVF9OUC13aXRoLVBUSFJFQURfTVVURVhfTk9SLnBhdGNoCkBAIC0wLDAgKzEsMTQzIEBACitGcm9tIDE5YjZjZjgwOTllMTk3NGI1ZmMzOTA4NmZjNTQxMDNiMGNiYzI2NTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogU3VuLCA0IE1hciAyMDE4IDIzOjAxOjI1IC0wODAwCitTdWJqZWN0OiBbUEFUQ0ggMi8yXSByZXBsYWNlIFBUSFJFQURfTVVURVhfRkFTVF9OUCB3aXRoIFBUSFJFQURfTVVURVhfTk9STUFMCisKK1BUSFJFQURfTVVURVhfRkFTVF9OUCBpcyBub3QgYXZhaWxhYmxlIG9uIG5vbi1wb3NpeCBzeXN0ZW1zCitlLmcuIG11c2wKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKKyBzcmMvaGEuYyAgICAgICAgfCAyICstCisgc3JjL2ljbXA2LmMgICAgIHwgMiArLQorIHNyYy9taC5jICAgICAgICB8IDIgKy0KKyBzcmMvbW4uYyAgICAgICAgfCAyICstCisgc3JjL21vdmVtZW50LmMgIHwgMiArLQorIHNyYy9tcGRpc2NfaGEuYyB8IDIgKy0KKyBzcmMvbXBkaXNjX21uLmMgfCAyICstCisgc3JjL3RxdWV1ZS5jICAgIHwgMiArLQorIHNyYy90dW5uZWxjdGwuYyB8IDIgKy0KKyA5IGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9oYS5jIGIvc3JjL2hhLmMKK2luZGV4IGZiZGNmZjAuLmIyZjgxMWUgMTAwNjQ0CistLS0gYS9zcmMvaGEuYworKysrIGIvc3JjL2hhLmMKK0BAIC0xMjQ2LDcgKzEyNDYsNyBAQCBpbnQgaGFfaW5pdCh2b2lkKQorIHsKKyAJcHRocmVhZF9tdXRleGF0dHJfdCBtYXR0cnM7CisgCXB0aHJlYWRfbXV0ZXhhdHRyX2luaXQoJm1hdHRycyk7CistCXB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUoJm1hdHRycywgUFRIUkVBRF9NVVRFWF9GQVNUX05QKTsKKysJcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSgmbWF0dHJzLCBQVEhSRUFEX01VVEVYX05PUk1BTCk7CisgCWlmIChwdGhyZWFkX211dGV4X2luaXQoJmJ1X3dvcmtlcl9tdXRleCwgJm1hdHRycykgfHwKKyAJICAgIHB0aHJlYWRfY29uZF9pbml0KCZjb25kLCBOVUxMKSkKKyAJCXJldHVybiAtMTsKK2RpZmYgLS1naXQgYS9zcmMvaWNtcDYuYyBiL3NyYy9pY21wNi5jCitpbmRleCAzNjk1MTM1Li42NDYwNjM0IDEwMDY0NAorLS0tIGEvc3JjL2ljbXA2LmMKKysrKyBiL3NyYy9pY21wNi5jCitAQCAtMjQzLDcgKzI0Myw3IEBAIGludCBpY21wNl9pbml0KHZvaWQpCisgCQlyZXR1cm4gLTE7CisgCS8qIGNyZWF0ZSBJQ01QIGxpc3RlbmVyIHRocmVhZCAqLworIAlwdGhyZWFkX211dGV4YXR0cl9pbml0KCZtYXR0cnMpOworLQlwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZtYXR0cnMsIFBUSFJFQURfTVVURVhfRkFTVF9OUCk7CisrCXB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUoJm1hdHRycywgUFRIUkVBRF9NVVRFWF9OT1JNQUwpOworIAlpZiAocHRocmVhZF9tdXRleF9pbml0KCZpY21wNl9zb2NrLnNlbmRfbXV0ZXgsICZtYXR0cnMpIHx8CisgCSAgICBwdGhyZWFkX3J3bG9ja19pbml0KCZoYW5kbGVyX2xvY2ssIE5VTEwpIHx8CisgCSAgICBwdGhyZWFkX2NyZWF0ZSgmaWNtcDZfbGlzdGVuZXIsIE5VTEwsIGljbXA2X2xpc3RlbiwgTlVMTCkpCitkaWZmIC0tZ2l0IGEvc3JjL21oLmMgYi9zcmMvbWguYworaW5kZXggNjBlMzQ1ZS4uNzkyOGY0YyAxMDA2NDQKKy0tLSBhL3NyYy9taC5jCisrKysgYi9zcmMvbWguYworQEAgLTIwNCw3ICsyMDQsNyBAQCBpbnQgbWhfaW5pdCh2b2lkKQorIAkJcmV0dXJuIC0xOworIAorIAlwdGhyZWFkX211dGV4YXR0cl9pbml0KCZtYXR0cnMpOworLQlwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZtYXR0cnMsIFBUSFJFQURfTVVURVhfRkFTVF9OUCk7CisrCXB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUoJm1hdHRycywgUFRIUkVBRF9NVVRFWF9OT1JNQUwpOworIAlpZiAocHRocmVhZF9tdXRleF9pbml0KCZtaF9zb2NrLnNlbmRfbXV0ZXgsICZtYXR0cnMpIHx8CisgCSAgICBwdGhyZWFkX3J3bG9ja19pbml0KCZoYW5kbGVyX2xvY2ssIE5VTEwpIHx8CisgCSAgICBwdGhyZWFkX2NyZWF0ZSgmbWhfbGlzdGVuZXIsIE5VTEwsIG1oX2xpc3RlbiwgTlVMTCkpCitkaWZmIC0tZ2l0IGEvc3JjL21uLmMgYi9zcmMvbW4uYworaW5kZXggMDkyY2ZjYi4uOGY3ZjQ0OCAxMDA2NDQKKy0tLSBhL3NyYy9tbi5jCisrKysgYi9zcmMvbW4uYworQEAgLTE0NzgsNyArMTQ3OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaG9tZV9hZGRyX2luZm8gKmhhaV9jb3B5KHN0cnVjdCBob21lX2FkZHJfaW5mbyAqY29uZl9oYWkpCisgCWlmIChoYWkgIT0gTlVMTCkgeworIAkJcHRocmVhZF9tdXRleGF0dHJfdCBtYXR0cnM7CisgCQlwdGhyZWFkX211dGV4YXR0cl9pbml0KCZtYXR0cnMpOworLQkJcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSgmbWF0dHJzLCBQVEhSRUFEX01VVEVYX0ZBU1RfTlApOworKwkJcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSgmbWF0dHJzLCBQVEhSRUFEX01VVEVYX05PUk1BTCk7CisgCisgCQltZW1jcHkoaGFpLCBjb25mX2hhaSwgc2l6ZW9mKHN0cnVjdCBob21lX2FkZHJfaW5mbykpOworIAorZGlmZiAtLWdpdCBhL3NyYy9tb3ZlbWVudC5jIGIvc3JjL21vdmVtZW50LmMKK2luZGV4IGQ5ODU5MzcuLjY0MDA0NDggMTAwNjQ0CistLS0gYS9zcmMvbW92ZW1lbnQuYworKysrIGIvc3JjL21vdmVtZW50LmMKK0BAIC0yMDEzLDcgKzIwMTMsNyBAQCBpbnQgbWRfaW5pdCh2b2lkKQorIAlpbnQgdmFsOworIAorIAlwdGhyZWFkX211dGV4YXR0cl9pbml0KCZtYXR0cnMpOworLQlwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZtYXR0cnMsIFBUSFJFQURfTVVURVhfRkFTVF9OUCk7CisrCXB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUoJm1hdHRycywgUFRIUkVBRF9NVVRFWF9OT1JNQUwpOworIAlpZiAocHRocmVhZF9tdXRleF9pbml0KCZpZmFjZV9sb2NrLCAmbWF0dHJzKSkKKyAJCXJldHVybiAtMTsKKyAKK2RpZmYgLS1naXQgYS9zcmMvbXBkaXNjX2hhLmMgYi9zcmMvbXBkaXNjX2hhLmMKK2luZGV4IDQwYmEwNWYuLmZkN2E5MGQgMTAwNjQ0CistLS0gYS9zcmMvbXBkaXNjX2hhLmMKKysrKyBiL3NyYy9tcGRpc2NfaGEuYworQEAgLTU1OSw3ICs1NTksNyBAQCBpbnQgbXBkX2hhX2luaXQodm9pZCkKKyB7CisgCXB0aHJlYWRfbXV0ZXhhdHRyX3QgbWF0dHJzOworIAlwdGhyZWFkX211dGV4YXR0cl9pbml0KCZtYXR0cnMpOworLQlwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZtYXR0cnMsIFBUSFJFQURfTVVURVhfRkFTVF9OUCk7CisrCXB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUoJm1hdHRycywgUFRIUkVBRF9NVVRFWF9OT1JNQUwpOworIAlpZiAocHRocmVhZF9tdXRleF9pbml0KCZtcGFfbG9jaywgJm1hdHRycykgfHwKKyAJICAgIHB0aHJlYWRfcndsb2NrX2luaXQoJnByZWZpeF9sb2NrLCBOVUxMKSB8fAorIAkgICAgaGFzaF9pbml0KCZtcGFfaGFzaCwgRE9VQkxFX0FERFIsIE1QQV9CVUNLRVRTKSA8IDApCitkaWZmIC0tZ2l0IGEvc3JjL21wZGlzY19tbi5jIGIvc3JjL21wZGlzY19tbi5jCitpbmRleCA0ODczYmQ2Li5hZGEwMmJkIDEwMDY0NAorLS0tIGEvc3JjL21wZGlzY19tbi5jCisrKysgYi9zcmMvbXBkaXNjX21uLmMKK0BAIC0yNjcsNyArMjY3LDcgQEAgaW50IG1wZF9tbl9pbml0KHZvaWQpCisgeworIAlwdGhyZWFkX211dGV4YXR0cl90IG1hdHRyczsKKyAJcHRocmVhZF9tdXRleGF0dHJfaW5pdCgmbWF0dHJzKTsKKy0JcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSgmbWF0dHJzLCBQVEhSRUFEX01VVEVYX0ZBU1RfTlApOworKwlwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZtYXR0cnMsIFBUSFJFQURfTVVURVhfTk9STUFMKTsKKyAJaWYgKHB0aHJlYWRfbXV0ZXhfaW5pdCgmbXBzX2xvY2ssICZtYXR0cnMpKQorIAkJcmV0dXJuIC0xOworIAlpZiAoaGFzaF9pbml0KCZtcHNfaGFzaCwgRE9VQkxFX0FERFIsIE1QU19CVUNLRVRTKSA8IDApCitkaWZmIC0tZ2l0IGEvc3JjL3RxdWV1ZS5jIGIvc3JjL3RxdWV1ZS5jCitpbmRleCAyZjdhYTBiLi45YzE4NWI4IDEwMDY0NAorLS0tIGEvc3JjL3RxdWV1ZS5jCisrKysgYi9zcmMvdHF1ZXVlLmMKK0BAIC02NSw3ICs2NSw3IEBAIGludCB0YXNrcXVldWVfaW5pdCh2b2lkKQorIHsKKyAJcHRocmVhZF9tdXRleGF0dHJfdCBtYXR0cnM7CisgCXB0aHJlYWRfbXV0ZXhhdHRyX2luaXQoJm1hdHRycyk7CistCXB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUoJm1hdHRycywgUFRIUkVBRF9NVVRFWF9GQVNUX05QKTsKKysJcHRocmVhZF9tdXRleGF0dHJfc2V0dHlwZSgmbWF0dHJzLCBQVEhSRUFEX01VVEVYX05PUk1BTCk7CisgCWlmIChwdGhyZWFkX211dGV4X2luaXQoJm11dGV4LCAmbWF0dHJzKSB8fAorIAkgICAgcHRocmVhZF9jb25kX2luaXQoJmNvbmQsIE5VTEwpIHx8CisgCSAgICBwdGhyZWFkX2NyZWF0ZSgmdHFfcnVubmVyLCBOVUxMLCBydW5uZXIsIE5VTEwpKQorZGlmZiAtLWdpdCBhL3NyYy90dW5uZWxjdGwuYyBiL3NyYy90dW5uZWxjdGwuYworaW5kZXggMjNmYzIwYi4uODEzYjhlYyAxMDA2NDQKKy0tLSBhL3NyYy90dW5uZWxjdGwuYworKysrIGIvc3JjL3R1bm5lbGN0bC5jCitAQCAtNDMzLDcgKzQzMyw3IEBAIGludCB0dW5uZWxjdGxfaW5pdCh2b2lkKQorIAkJcmV0dXJuIC0xOworIAorIAlwdGhyZWFkX211dGV4YXR0cl9pbml0KCZtYXR0cnMpOworLQlwdGhyZWFkX211dGV4YXR0cl9zZXR0eXBlKCZtYXR0cnMsIFBUSFJFQURfTVVURVhfRkFTVF9OUCk7CisrCXB0aHJlYWRfbXV0ZXhhdHRyX3NldHR5cGUoJm1hdHRycywgUFRIUkVBRF9NVVRFWF9OT1JNQUwpOworIAlpZiAocHRocmVhZF9tdXRleF9pbml0KCZ0bmxfbG9jaywgJm1hdHRycykpCisgCQlyZXR1cm4gLTE7CisgCistLSAKKzIuMTYuMgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvdW1pcC91bWlwXzEuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS91bWlwL3VtaXBfMS4wLmJiCmluZGV4IDIxMjllMzcuLjBjMTIwYmYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS91bWlwL3VtaXBfMS4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS91bWlwL3VtaXBfMS4wLmJiCkBAIC0xNCw2ICsxNCw4IEBACiAgICAgICAgICAgIGZpbGU6Ly9taXA2ZCBcCiAgICAgICAgICAgIGZpbGU6Ly9taXA2ZC5zZXJ2aWNlIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtQWRkLWZvcm1hdC1zdHJpbmctdG8tZnByaW50Zi1jYWxsLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtcmVwbGFjZS1TSUdDTEQtd2l0aC1TSUdDSExELWFuZC1pbmNsdWRlLXN5cy10eXBlcy5oLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDItcmVwbGFjZS1QVEhSRUFEX01VVEVYX0ZBU1RfTlAtd2l0aC1QVEhSRUFEX01VVEVYX05PUi5wYXRjaCBcCiAgICAgICAgICAgICIKIFNSQ1JFViA9ICI3ZDY3MjA5Y2QxYmJhMmRkMGUxODNhMGZhMDdlZWVmMDc5NjRkZDE0IgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvemVyb21xL2NwcHptcV9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb25uZWN0aXZpdHkvemVyb21xL2NwcHptcV9naXQuYmIKaW5kZXggYTY0NzQ1Yy4uNDkyMGJjZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3plcm9tcS9jcHB6bXFfZ2l0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS96ZXJvbXEvY3Bwem1xX2dpdC5iYgpAQCAtNCw4ICs0LDggQEAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWRiMTc0ZWFmN2I1NWEzNGE3Yzg5NTUxMTk3ZjY2ZTk0IgogREVQRU5EUyA9ICJ6ZXJvbXEiCiAKLVNSQ1JFViA9ICI2OGE3YjA5Y2ZjZTAxYzRjMjc5ZmJhMmNmOTE2ODZmY2ZjNTY2ODQ4IgotUFYgPSAiNC4xLjUrZ2l0JHtTUkNQVn0iCitTUkNSRVYgPSAiNmFhM2FiNjg2ZTkxNmNiMGU2MmRmN2ZhN2QxMmUwYjEzYWU5ZmFlNiIKK1BWID0gIjQuMi4zK2dpdCR7U1JDUFZ9IgogCiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vemVyb21xL2NwcHptcS5naXQiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS96ZXJvbXEvemVyb21xXzQuMS42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3plcm9tcS96ZXJvbXFfNC4xLjYuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxMjZmMzIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3plcm9tcS96ZXJvbXFfNC4xLjYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1ERVNDUklQVElPTiA9ICJaZXJvTVEgbG9va3MgbGlrZSBhbiBlbWJlZGRhYmxlIG5ldHdvcmtpbmcgbGlicmFyeSBidXQgYWN0cyBsaWtlIGEgY29uY3VycmVuY3kgZnJhbWV3b3JrIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy56ZXJvbXEub3JnIgotTElDRU5TRSA9ICJMR1BMdjMrIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORy5MRVNTRVI7bWQ1PWQ1MzExNDk1ZDk1MjA2MmUwZTRmYmJhMzljYmYzZGUxIgotCi1QQUNLQUdFQ09ORklHID8/PSAibGlic29kaXVtIgotUEFDS0FHRUNPTkZJR1tsaWJzb2RpdW1dID0gIi0td2l0aC1saWJzb2RpdW0sIC0td2l0aG91dC1saWJzb2RpdW0sIGxpYnNvZGl1bSIKLQotU1JDX1VSSSA9ICJodHRwOi8vZ2l0aHViLmNvbS96ZXJvbXEvemVyb21xNC0xL3JlbGVhc2VzL2Rvd25sb2FkL3Yke1BWfS96ZXJvbXEtJHtQVn0udGFyLmd6IFwKLSAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKLSIKLVNSQ19VUklbbWQ1c3VtXSA9ICJjODlkYjRkYmMwYjkwYzM0YzlmNDk4M2NiZmY2ZDMyMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIwMmViZjYwYTQzMDExZTc3MDc5OTMzNjM2NWJjYmNlMmViODU1NjllOWI1ZjUyYWEwZDhjYzA0NjcyNDM4YTBhIgotCi1TID0gIiR7V09SS0RJUn0vemVyb21xLSR7UFZ9IgotCi0jVW5jb21tZW50IHRvIGNob29zZSBwb2xsaW5nIHN5c3RlbSBtYW51YWxseS4gdmFsaWQgdmFsdWVzIGFyZSBrcXVldWUsIGVwb2xsLCBkZXZwb2xsLCBwb2xsIG9yIHNlbGVjdAotI0VYVFJBX09FQ09ORiArPSAiLS13aXRoLXBvbGxlcj1rcXVldWUiCi0jQ0ZMQUdTX2FwcGVuZCA9ICIgLU8wIgotI0NYWEZMQUdTX2FwcGVuZCA9ICIgLU8wIgotCi1pbmhlcml0IGF1dG90b29scyBwdGVzdCBwa2djb25maWcKLQotZG9fY29tcGlsZV9wdGVzdCAoKSB7Ci0gICAgZWNobyAnYnVpbGR0ZXN0LVRFU1RTOiAkKGNoZWNrX1BST0dSQU1TKScgPj4gJHtCfS9NYWtlZmlsZQotICAgIG9lX3J1bm1ha2UgYnVpbGR0ZXN0LVRFU1RTCi19Ci0KLWRvX2luc3RhbGxfcHRlc3QgKCkgewotICAgIGluc3RhbGwgLWQgJHtEfSR7UFRFU1RfUEFUSH0vdGVzdHMKLSAgICBpbnN0YWxsIC1tIDA3NTUgJHtCfS8ubGlicy90ZXN0XyogJHtEfSR7UFRFU1RfUEFUSH0vdGVzdHMKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS96ZXJvbXEvemVyb21xXzQuMi41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29ubmVjdGl2aXR5L3plcm9tcS96ZXJvbXFfNC4yLjUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU2MzQ4YgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvbm5lY3Rpdml0eS96ZXJvbXEvemVyb21xXzQuMi41LmJiCkBAIC0wLDAgKzEsMzIgQEAKK0RFU0NSSVBUSU9OID0gIlplcm9NUSBsb29rcyBsaWtlIGFuIGVtYmVkZGFibGUgbmV0d29ya2luZyBsaWJyYXJ5IGJ1dCBhY3RzIGxpa2UgYSBjb25jdXJyZW5jeSBmcmFtZXdvcmsiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3Lnplcm9tcS5vcmciCitMSUNFTlNFID0gIkxHUEx2MysiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HLkxFU1NFUjttZDU9ZDUzMTE0OTVkOTUyMDYyZTBlNGZiYmEzOWNiZjNkZTEiCisKK1BBQ0tBR0VDT05GSUcgPz89ICJsaWJzb2RpdW0iCitQQUNLQUdFQ09ORklHW2xpYnNvZGl1bV0gPSAiLS13aXRoLWxpYnNvZGl1bSwgLS13aXRob3V0LWxpYnNvZGl1bSwgbGlic29kaXVtIgorCitTUkNfVVJJID0gImh0dHA6Ly9naXRodWIuY29tL3plcm9tcS9saWJ6bXEvcmVsZWFzZXMvZG93bmxvYWQvdiR7UFZ9L3plcm9tcS0ke1BWfS50YXIuZ3ogXAorICAgIGZpbGU6Ly9ydW4tcHRlc3QgXAorIgorU1JDX1VSSVttZDVzdW1dID0gImExYzk1YjM0Mzg0MjU3ZTk4Njg0MmY0ZDAwNjk1N2I4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImNjOTA5MGJhMzU3MTNkNTliYjJmN2Q3OTY1Zjg3NzAzNmM0OWM1NTU4ZWEwYzI5MGIwZGNjNmYyYTE3ZTQ4OWYiCisKK1MgPSAiJHtXT1JLRElSfS96ZXJvbXEtJHtQVn0iCisKKyNVbmNvbW1lbnQgdG8gY2hvb3NlIHBvbGxpbmcgc3lzdGVtIG1hbnVhbGx5LiB2YWxpZCB2YWx1ZXMgYXJlIGtxdWV1ZSwgZXBvbGwsIGRldnBvbGwsIHBvbGwgb3Igc2VsZWN0CisjRVhUUkFfT0VDT05GICs9ICItLXdpdGgtcG9sbGVyPWtxdWV1ZSIKKyNDRkxBR1NfYXBwZW5kID0gIiAtTzAiCisjQ1hYRkxBR1NfYXBwZW5kID0gIiAtTzAiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHB0ZXN0IHBrZ2NvbmZpZworCitkb19jb21waWxlX3B0ZXN0ICgpIHsKKyAgICBlY2hvICdidWlsZHRlc3QtVEVTVFM6ICQoY2hlY2tfUFJPR1JBTVMpJyA+PiAke0J9L01ha2VmaWxlCisgICAgb2VfcnVubWFrZSBidWlsZHRlc3QtVEVTVFMKK30KKworZG9faW5zdGFsbF9wdGVzdCAoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9JHtQVEVTVF9QQVRIfS90ZXN0cworICAgIGluc3RhbGwgLW0gMDc1NSAke0J9L3Rlc3RzLy5saWJzL3Rlc3RfKiAke0R9JHtQVEVTVF9QQVRIfS90ZXN0cworfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9kYnVzL2RidXMtYnJva2VyLzAwMDEtQ29tbWVudC1yc3QybWFuLXJlbGF0ZWQtc3R1ZmYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvZGJ1cy1icm9rZXIvMDAwMS1Db21tZW50LXJzdDJtYW4tcmVsYXRlZC1zdHVmZi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTBjNDllCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9kYnVzL2RidXMtYnJva2VyLzAwMDEtQ29tbWVudC1yc3QybWFuLXJlbGF0ZWQtc3R1ZmYucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAorRnJvbSBhOTJmZDdkYTNhMjYyZTIxYzA5NzBhMzkwOGViMGI0NTAyODE5YTAxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWWFuZyBMeXUgPHlhbmdsQGF4aXMuY29tPgorRGF0ZTogRnJpLCAyMyBGZWIgMjAxOCAxNjozMTo0OSArMDEwMAorU3ViamVjdDogW1BBVENIXSBDb21tZW50IHJzdDJtYW4gcmVsYXRlZCBzdHVmZgorCistLS0KKyBtZXNvbi5idWlsZCB8IDQgKystLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCitpbmRleCA1NmQzOGU0Li4zYzNiMTA5IDEwMDY0NAorLS0tIGEvbWVzb24uYnVpbGQKKysrKyBiL21lc29uLmJ1aWxkCitAQCAtMTUsNyArMTUsNyBAQCBhZGRfcHJvamVjdF9hcmd1bWVudHMoJy1EQklORElSPSInICsgam9pbl9wYXRocyhnZXRfb3B0aW9uKCdwcmVmaXgnKSwgZ2V0X29wdGlvbgorIGNjID0gbWVzb24uZ2V0X2NvbXBpbGVyKCdjJykKKyBjb25mID0gY29uZmlndXJhdGlvbl9kYXRhKCkKKyBtb2RfcGtnY29uZmlnID0gaW1wb3J0KCdwa2djb25maWcnKQorLXByb2dfcnN0Mm1hbiA9IGZpbmRfcHJvZ3JhbSgncnN0Mm1hbicsICdyc3QybWFuLnB5JykKKysjcHJvZ19yc3QybWFuID0gZmluZF9wcm9ncmFtKCdyc3QybWFuJywgJ3JzdDJtYW4ucHknKQorIAorIHN1Yl9jZHZhciA9IHN1YnByb2plY3QoJ2MtZHZhcicsIHZlcnNpb246ICc+PTEnKQorIHN1Yl9jbGlzdCA9IHN1YnByb2plY3QoJ2MtbGlzdCcsIHZlcnNpb246ICc+PTMnKQorQEAgLTU2LDcgKzU2LDcgQEAgZW5kaWYKKyAKKyBjb25mLnNldCgnYmluZGlyJywgam9pbl9wYXRocyhnZXRfb3B0aW9uKCdwcmVmaXgnKSwgZ2V0X29wdGlvbignYmluZGlyJykpKQorIAorLXN1YmRpcignZG9jcycpCisrI3N1YmRpcignZG9jcycpCisgc3ViZGlyKCdzcmMnKQorIAorIGlmIHVzZV9sYXVuY2hlcgorLS0gCisyLjEuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvZGJ1cy1icm9rZXIvMDAwMi1Db3JyZWN0LWluY2x1ZGluZy1kaXJlY3RvcnktZm9yLWNvbmYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvZGJ1cy1icm9rZXIvMDAwMi1Db3JyZWN0LWluY2x1ZGluZy1kaXJlY3RvcnktZm9yLWNvbmYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkwOWRlYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZGJ1cy9kYnVzLWJyb2tlci8wMDAyLUNvcnJlY3QtaW5jbHVkaW5nLWRpcmVjdG9yeS1mb3ItY29uZi5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIDRiNzlmNjAzYjk0ODcwOTkwNmMxMDg3OTYwODdkZTdiNTY0M2Y2MWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBZYW5nIEx5dSA8eWFuZ2xAYXhpcy5jb20+CitEYXRlOiBNb24sIDI2IEZlYiAyMDE4IDEyOjQ4OjM0ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIENvcnJlY3QgaW5jbHVkaW5nIGRpcmVjdG9yeSBmb3IgY29uZgorCistLS0KKyBzcmMvbGF1bmNoL2NvbmZpZy5jIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2xhdW5jaC9jb25maWcuYyBiL3NyYy9sYXVuY2gvY29uZmlnLmMKK2luZGV4IDZhNjg2OTkuLjU3OTQ3MWIgMTAwNjQ0CistLS0gYS9zcmMvbGF1bmNoL2NvbmZpZy5jCisrKysgYi9zcmMvbGF1bmNoL2NvbmZpZy5jCitAQCAtMTAyMiw3ICsxMDIyLDcgQEAgc3RhdGljIHZvaWQgY29uZmlnX3BhcnNlcl9lbmRfZm4odm9pZCAqdXNlcmRhdGEsIGNvbnN0IFhNTF9DaGFyICpuYW1lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmN1cnJlbnQtPmluY2x1ZGUuc2VsaW51eF9yb290X3JlbGF0aXZlID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVzX3NlbGludXhfcG9saWN5X3Jvb3QoKSA6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5maWxlLT5wYXRoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5jdXJyZW50LT5jZGF0YSk7CisgICAgICAgICAgICAgICAgIGlmIChyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmVycm9yID0gZXJyb3JfdHJhY2Uocik7CistLSAKKzIuMS40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZGJ1cy9kYnVzLWJyb2tlcl9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvZGJ1cy1icm9rZXJfZ2l0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2MmJjY2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvZGJ1cy1icm9rZXJfZ2l0LmJiCkBAIC0wLDAgKzEsMzIgQEAKK1NVTU1BUlkgPSAiZGJ1cyBicm9rZXIiCitERVNDUklQVElPTiA9ICJEcm9wLWluIHJlcGxhY2VtZW50IGZvciBkYnVzLWRhZW1vbi4iCisKK1NFQ1RJT04gPSAiYmFzZSIKKworTElDRU5TRSA9ICJBcGFjaGUtMi4wIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9N2I0ODZjMjMzOGQyMjVhMTQwNWQ5NzllZDJjMTVjZTgiCisKK0RFUEVORFMgPSAiZGJ1cyBnbGliLTIuMCBleHBhdCIKKworUFYgPSAiOStnaXQke1NSQ1BWfSIKK1NSQ1JFViA9ICJjY2QwNmIyODQ4OTIxODJhZjU2OWU2OTA0NjI2MjMzMTE1MGUzNTM2IgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vYnVzMS9kYnVzLWJyb2tlcjtwcm90b2NvbD1naXQiCitTUkNfVVJJICs9ICJmaWxlOi8vMDAwMS1Db21tZW50LXJzdDJtYW4tcmVsYXRlZC1zdHVmZi5wYXRjaCIKK1NSQ19VUkkgKz0gImZpbGU6Ly8wMDAyLUNvcnJlY3QtaW5jbHVkaW5nLWRpcmVjdG9yeS1mb3ItY29uZi5wYXRjaCIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBtZXNvbiBwa2djb25maWcgc3lzdGVtZCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gInN5c3RlbWQiCisKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICIke0JQTn0uc2VydmljZSIKKworRklMRVNfJHtQTn0gKz0gIiR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0iCitGSUxFU18ke1BOfSArPSAiJHtzeXN0ZW1kX3VzZXJfdW5pdGRpcn0iCisKK1JERVBFTkRTXyR7UE59ID0gImRidXMiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvbGliZGJ1cy1jKystMC45LjAvMDAwNC11c2UtUE9TSVgtcG9sbC5oLWluc3RlYWQtb2Ytc3lzLXBvbGwuaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZGJ1cy9saWJkYnVzLWMrKy0wLjkuMC8wMDA0LXVzZS1QT1NJWC1wb2xsLmgtaW5zdGVhZC1vZi1zeXMtcG9sbC5oLnBhdGNoCmluZGV4IDBjMmM0ODcuLmIxMDhhNGMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZGJ1cy9saWJkYnVzLWMrKy0wLjkuMC8wMDA0LXVzZS1QT1NJWC1wb2xsLmgtaW5zdGVhZC1vZi1zeXMtcG9sbC5oLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZGJ1cy9saWJkYnVzLWMrKy0wLjkuMC8wMDA0LXVzZS1QT1NJWC1wb2xsLmgtaW5zdGVhZC1vZi1zeXMtcG9sbC5oLnBhdGNoCkBAIC0zMywxMCArMzMsMTAgQEAKICBzcmMvcGlwZS5jcHAgICAgICAgICAgICAgICAgICB8IDIgKy0KICAzIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL3NyYy9ldmVudGxvb3AtaW50ZWdyYXRpb24uY3BwIGIvc3JjL2V2ZW50bG9vcC1pbnRlZ3JhdGlvbi5jcHAKLWluZGV4IDU3NzY5NzEuLjI3MWI1MDMgMTAwNjQ0Ci0tLS0gYS9zcmMvZXZlbnRsb29wLWludGVncmF0aW9uLmNwcAotKysrIGIvc3JjL2V2ZW50bG9vcC1pbnRlZ3JhdGlvbi5jcHAKK0luZGV4OiBsaWJkYnVzLWMrKy0wLjkuMC9zcmMvZXZlbnRsb29wLWludGVncmF0aW9uLmNwcAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGxpYmRidXMtYysrLTAuOS4wLm9yaWcvc3JjL2V2ZW50bG9vcC1pbnRlZ3JhdGlvbi5jcHAKKysrKyBsaWJkYnVzLWMrKy0wLjkuMC9zcmMvZXZlbnRsb29wLWludGVncmF0aW9uLmNwcAogQEAgLTM2LDcgKzM2LDcgQEAKICAvKiBTVEQgKi8KICAjaW5jbHVkZSA8c3RyaW5nLmg+CkBAIC00NCwxMiArNDQsMTIgQEAKIC0jaW5jbHVkZSA8c3lzL3BvbGwuaD4KICsjaW5jbHVkZSA8cG9sbC5oPgogICNpbmNsdWRlIDxmY250bC5oPgotICNpbmNsdWRlIDx1bmlzdGQuaD4KICAKLWRpZmYgLS1naXQgYS9zcmMvZXZlbnRsb29wLmNwcCBiL3NyYy9ldmVudGxvb3AuY3BwCi1pbmRleCBmNjIyODEyLi43NzkwZTFlIDEwMDY0NAotLS0tIGEvc3JjL2V2ZW50bG9vcC5jcHAKLSsrKyBiL3NyYy9ldmVudGxvb3AuY3BwCisgdXNpbmcgbmFtZXNwYWNlIERCdXM7CitJbmRleDogbGliZGJ1cy1jKystMC45LjAvc3JjL2V2ZW50bG9vcC5jcHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBsaWJkYnVzLWMrKy0wLjkuMC5vcmlnL3NyYy9ldmVudGxvb3AuY3BwCisrKysgbGliZGJ1cy1jKystMC45LjAvc3JjL2V2ZW50bG9vcC5jcHAKIEBAIC0yOCw3ICsyOCw3IEBACiAgI2luY2x1ZGUgPGRidXMtYysrL2V2ZW50bG9vcC5oPgogICNpbmNsdWRlIDxkYnVzLWMrKy9kZWJ1Zy5oPgpAQCAtNTksMTAgKzU5LDEwIEBACiAgI2luY2x1ZGUgPHN5cy90aW1lLmg+CiAgCiAgI2luY2x1ZGUgPGRidXMvZGJ1cy5oPgotZGlmZiAtLWdpdCBhL3NyYy9waXBlLmNwcCBiL3NyYy9waXBlLmNwcAotaW5kZXggMDEyMTFiMy4uNDVjMmJhNiAxMDA2NDQKLS0tLSBhL3NyYy9waXBlLmNwcAotKysrIGIvc3JjL3BpcGUuY3BwCitJbmRleDogbGliZGJ1cy1jKystMC45LjAvc3JjL3BpcGUuY3BwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbGliZGJ1cy1jKystMC45LjAub3JpZy9zcmMvcGlwZS5jcHAKKysrKyBsaWJkYnVzLWMrKy0wLjkuMC9zcmMvcGlwZS5jcHAKIEBAIC0zMiw3ICszMiw3IEBACiAgCiAgLyogU1REICovCkBAIC03Miw2ICs3MiwzIEBACiAgI2luY2x1ZGUgPGZjbnRsLmg+CiAgI2luY2x1ZGUgPGVycm5vLmg+CiAgI2luY2x1ZGUgPGNhc3NlcnQ+Ci0tLSAKLTIuMTAuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2RidXMvbGliZGJ1cy1jKystMC45LjAvZml4LW1pc3NpbmctdW5pc3RkLmgtaW5jbHVkZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZGJ1cy9saWJkYnVzLWMrKy0wLjkuMC9maXgtbWlzc2luZy11bmlzdGQuaC1pbmNsdWRlLnBhdGNoCmluZGV4IDkwM2E3MjAuLmJmNjg3MGUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZGJ1cy9saWJkYnVzLWMrKy0wLjkuMC9maXgtbWlzc2luZy11bmlzdGQuaC1pbmNsdWRlLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZGJ1cy9saWJkYnVzLWMrKy0wLjkuMC9maXgtbWlzc2luZy11bmlzdGQuaC1pbmNsdWRlLnBhdGNoCkBAIC0yNCwxNyArMjQsMTUgQEAKICBpbmNsdWRlL2RidXMtYysrL2V2ZW50bG9vcC1pbnRlZ3JhdGlvbi5oIHwgICAgMSArCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCiAKLWRpZmYgLS1naXQgYS9pbmNsdWRlL2RidXMtYysrL2V2ZW50bG9vcC1pbnRlZ3JhdGlvbi5oIGIvaW5jbHVkZS9kYnVzLWMrKy9ldmVudGxvb3AtaW50ZWdyYXRpb24uaAotaW5kZXggNTEwODM0MC4uMWI1NmFiNSAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvZGJ1cy1jKysvZXZlbnRsb29wLWludGVncmF0aW9uLmgKLSsrKyBiL2luY2x1ZGUvZGJ1cy1jKysvZXZlbnRsb29wLWludGVncmF0aW9uLmgKLUBAIC0yNyw2ICsyNyw3IEBACitJbmRleDogbGliZGJ1cy1jKystMC45LjAvaW5jbHVkZS9kYnVzLWMrKy9ldmVudGxvb3AtaW50ZWdyYXRpb24uaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGxpYmRidXMtYysrLTAuOS4wLm9yaWcvaW5jbHVkZS9kYnVzLWMrKy9ldmVudGxvb3AtaW50ZWdyYXRpb24uaAorKysrIGxpYmRidXMtYysrLTAuOS4wL2luY2x1ZGUvZGJ1cy1jKysvZXZlbnRsb29wLWludGVncmF0aW9uLmgKK0BAIC0yNiw2ICsyNiw3IEBACisgI2RlZmluZSBfX0RCVVNYWF9FVkVOVExPT1BfSU5URUdSQVRJT05fSAogIAotICNpbmNsdWRlIDxjc3RyaW5nPgogICNpbmNsdWRlIDxlcnJuby5oPgogKyNpbmNsdWRlIDx1bmlzdGQuaD4KICAjaW5jbHVkZSAiYXBpLmgiCiAgI2luY2x1ZGUgImRpc3BhdGNoZXIuaCIKICAjaW5jbHVkZSAidXRpbC5oIgotLS0gCi0xLjcuOS43CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2VsbC9lbGwvMDAwMS1lbGwtZml4LWJ1aWxkLXdpdGgtbXVzbC1saWJjLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9lbGwvZWxsLzAwMDEtZWxsLWZpeC1idWlsZC13aXRoLW11c2wtbGliYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTcyYTkzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9lbGwvZWxsLzAwMDEtZWxsLWZpeC1idWlsZC13aXRoLW11c2wtbGliYy5wYXRjaApAQCAtMCwwICsxLDM5IEBACitGcm9tIDRmOGM2ODc1N2IwNWQxMjM5MmNkMWE4YWVkMTc0Y2I4ZTU2ZjgwZTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiAiTWF4aW4gQi4gSm9obiIgPG1heGluLmpvaG5AaW50ZWwuY29tPgorRGF0ZTogVGh1LCA1IEFwciAyMDE4IDE3OjE5OjQ0ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIGVsbDogZml4IGJ1aWxkIHdpdGggbXVzbCBsaWJjCisKK211c2wgbGliYyBkb2Vzbid0IGltcGxlbWVudCBURU1QX0ZBSUxVUkVfUkVUUlkuIFVzZSB0aGUKK1RFTVBfRkFJTFVSRV9SRVRSWSBmcm9tIGdsaWJjIHRvIGZpeCBidWlsZC4KKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9lbGwvMjAxOC1BcHJpbC8wMDEyMDkuaHRtbF0KKworU2lnbmVkLW9mZi1ieTogTWF4aW4gQi4gSm9obiA8bWF4aW4uam9obkBpbnRlbC5jb20+CistLS0KKyBlbGwvZGJ1cy5oIHwgMTAgKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9lbGwvZGJ1cy5oIGIvZWxsL2RidXMuaAoraW5kZXggYTdjMDhkMi4uM2ZmNWUwZiAxMDA2NDQKKy0tLSBhL2VsbC9kYnVzLmgKKysrKyBiL2VsbC9kYnVzLmgKK0BAIC0yOCw2ICsyOCwxNiBAQAorICNpbmNsdWRlIDxzdGRkZWYuaD4KKyAjaW5jbHVkZSA8c3RkYXJnLmg+CisgCisrLyogdGFrZW4gZnJvbSBnbGliYyB1bmlzdGQuaCBmb3IgbXVzbCBzdXBwb3J0ICovCisrI2lmbmRlZiBURU1QX0ZBSUxVUkVfUkVUUlkKKysjZGVmaW5lIFRFTVBfRkFJTFVSRV9SRVRSWShleHByZXNzaW9uKSAgICAgICAgICAgICBcCisrICAoX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAoeyBsb25nIGludCBfX3Jlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgZG8gX19yZXN1bHQgPSAobG9uZyBpbnQpIChleHByZXNzaW9uKTsgICAgICBcCisrICAgICAgIHdoaWxlIChfX3Jlc3VsdCA9PSAtMUwgJiYgZXJybm8gPT0gRUlOVFIpOyAgXAorKyAgICAgICBfX3Jlc3VsdDsgfSkpCisrI2VuZGlmCisrCisgI2lmZGVmIF9fY3BsdXNwbHVzCisgZXh0ZXJuICJDIiB7CisgI2VuZGlmCistLSAKKzIuNC4wCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZWxsL2VsbF8wLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2VsbC9lbGxfMC40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1MjRiZDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2VsbC9lbGxfMC40LmJiCkBAIC0wLDAgKzEsMTkgQEAKK1NVTU1BUlkgID0gIkVtYmVkZGVkIExpbnV4IExpYnJhcnkiCitERVNDUklQVElPTiA9ICJFTEwgaXMgYSBEQlVTIGxpYnJhcnkgd2hpY2ggcHJvdmlkZXMgREJVUyBiaW5kaW5ncy4iCitMSUNFTlNFICA9ICJMR1BMdjIuMSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWZiNTA0YjY3YzUwMzMxZmM3ODczNGZlZDkwZmIwZTA5IgorU0VDVElPTiA9ICJsaWJzIgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICJiNGFlYTA2ZmFiYjJhZjFhZjAxZjg2MWY4ZjM5NGM3NTk1MGI2ZDQ3IgorU1JDX1VSSSA9ICJnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpYnMvZWxsL2VsbC5naXQgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1lbGwtZml4LWJ1aWxkLXdpdGgtbXVzbC1saWJjLnBhdGNoIFwKKyAgICAgICAgICAiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKKyAgICBta2RpciAke1N9L2J1aWxkLWF1eAorfQorCitERVBFTkRTID0gImRidXMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2VsbC9lbGxfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9lbGwvZWxsX2dpdC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTBkZjZlMS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2VsbC9lbGxfZ2l0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotU1VNTUFSWSAgPSAiRW1iZWRkZWQgTGludXggTGlicmFyeSIKLURFU0NSSVBUSU9OID0gIkVMTCBpcyBhIERCVVMgbGlicmFyeSB3aGljaCBwcm92aWRlcyBEQlVTIGJpbmRpbmdzLiIKLUxJQ0VOU0UgID0gIkxHUEx2Mi4xIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZmI1MDRiNjdjNTAzMzFmYzc4NzM0ZmVkOTBmYjBlMDkiCi1TRUNUSU9OID0gImxpYnMiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotU1JDUkVWID0gIjdiN2MxNWMyZTVjYWZmODhmYzQ1ZTdhOGI4NzRhNDcxOTZhMGVkZGQiCi1TUkNfVVJJID0gImdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGlicy9lbGwvZWxsLmdpdCIKLQotZG9fY29uZmlndXJlX3ByZXBlbmQgKCkgewotICAgIG1rZGlyICR7U30vYnVpbGQtYXV4Ci19Ci0KLURFUEVORFMgPSAiZGJ1cyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZ2xpYi0yLjAvZ2xpYm1tLzAwMDEtR2xpYi1UaHJlYWRzLVByaXZhdGUtRml4LWdvYmoucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2dsaWItMi4wL2dsaWJtbS8wMDAxLUdsaWItVGhyZWFkcy1Qcml2YXRlLUZpeC1nb2JqLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4OTkwMjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2dsaWItMi4wL2dsaWJtbS8wMDAxLUdsaWItVGhyZWFkcy1Qcml2YXRlLUZpeC1nb2JqLnBhdGNoCkBAIC0wLDAgKzEsNDAgQEAKK0Zyb20gODM4ZmU4NGMyZGRjYzlhZjUxYzM0Zjc1MWRlZmJmM2RkMGJhOGEwNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtqZWxsIEFobHN0ZWR0IDxramVsbGFobHN0ZWR0QGdtYWlsLmNvbT4KK0RhdGU6IFdlZCwgMjAgRGVjIDIwMTcgMjA6MDA6MzIgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gR2xpYjo6VGhyZWFkczo6UHJpdmF0ZTogRml4IGdvYmooKQorCitCdWcgNzkxNzExCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CistLS0KK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgW2h0dHBzOi8vZ2l0aHViLmNvbS9HTk9NRS9nbGlibW0vY29tbWl0LzM3ZDU3YWU5NTcyYjdkNzRhYTM4NWEzMDMxM2VjZWFlN2YyZDNmY2VdCisgZ2xpYi9nbGlibW0vdGhyZWFkcy5oIHwgMiArLQorIGdsaWIvc3JjL3RocmVhZHMuaGcgICB8IDIgKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dsaWIvZ2xpYm1tL3RocmVhZHMuaCBiL2dsaWIvZ2xpYm1tL3RocmVhZHMuaAoraW5kZXggZjdlMmI4MmEuLjJjMGNiZThjIDEwMDY0NAorLS0tIGEvZ2xpYi9nbGlibW0vdGhyZWFkcy5oCisrKysgYi9nbGliL2dsaWJtbS90aHJlYWRzLmgKK0BAIC02NTcsNyArNjU3LDcgQEAgcHVibGljOgorICAgICovCisgICBpbmxpbmUgdm9pZCByZXBsYWNlKFQqIGRhdGEpOworIAorLSAgR1ByaXZhdGUqIGdvYmooKSB7IHJldHVybiBnb2JqZWN0XzsgfQorKyAgR1ByaXZhdGUqIGdvYmooKSB7IHJldHVybiAmZ29iamVjdF87IH0KKyAKKyBwcml2YXRlOgorICAgR1ByaXZhdGUgZ29iamVjdF87CitkaWZmIC0tZ2l0IGEvZ2xpYi9zcmMvdGhyZWFkcy5oZyBiL2dsaWIvc3JjL3RocmVhZHMuaGcKK2luZGV4IDg2ZDdhMTdiLi5jODJhNjEzMCAxMDA2NDQKKy0tLSBhL2dsaWIvc3JjL3RocmVhZHMuaGcKKysrKyBiL2dsaWIvc3JjL3RocmVhZHMuaGcKK0BAIC02MjgsNyArNjI4LDcgQEAgcHVibGljOgorICAgICovCisgICBpbmxpbmUgdm9pZCByZXBsYWNlKFQqIGRhdGEpOworIAorLSAgR1ByaXZhdGUqIGdvYmooKSB7IHJldHVybiBnb2JqZWN0XzsgfQorKyAgR1ByaXZhdGUqIGdvYmooKSB7IHJldHVybiAmZ29iamVjdF87IH0KKyAKKyBwcml2YXRlOgorICAgR1ByaXZhdGUgZ29iamVjdF87CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2dsaWItMi4wL2dsaWJtbS9yZW1vdmUtZXhhbXBsZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL2dsaWItMi4wL2dsaWJtbS9yZW1vdmUtZXhhbXBsZXMucGF0Y2gKaW5kZXggYTU5NDRjMi4uZDMyZmU3OCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9nbGliLTIuMC9nbGlibW0vcmVtb3ZlLWV4YW1wbGVzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZ2xpYi0yLjAvZ2xpYm1tL3JlbW92ZS1leGFtcGxlcy5wYXRjaApAQCAtMSw3ICsxLDE2IEBACi1JbmRleDogZ2xpYm1tLTIuMjIuMS9NYWtlZmlsZS5hbQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdsaWJtbS0yLjIyLjEub3JpZy9NYWtlZmlsZS5hbQotKysrIGdsaWJtbS0yLjIyLjEvTWFrZWZpbGUuYW0KK0Zyb20gZjQ4YTY5ZmQxMWIyZWRhNmM0M2ZmMDQ2YzIwMmNiYzRkY2Q0ZTkyZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtvZW4gS29vaSA8a29lbkBkb21pbmlvbi50aHJ1aGVyZS5uZXQ+CitEYXRlOiBUdWUsIDEyIEp1bCAyMDExIDExOjQ2OjM3ICswMjAwCisKKy0tLQorIE1ha2VmaWxlLmFtICB8IDcgKy0tLS0tLQorIGNvbmZpZ3VyZS5hYyB8IDEgLQorIDIgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCitpbmRleCBhMGRmOGFmLi5jM2Q1ZTA2IDEwMDY0NAorLS0tIGEvTWFrZWZpbGUuYW0KKysrKyBiL01ha2VmaWxlLmFtCiBAQCAtMjMsMTIgKzIzLDcgQEAgc3JjX3N1YmRpcnMgPSBnbGliL3NyYyBnaW8vc3JjCiAgZWxzZQogIHNyY19zdWJkaXJzID0KQEAgLTE2LDE1ICsyNSwxNSBAQAogIAogIGdsaWJtbV9pbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS8kKEdMSUJNTV9NT0RVTEVfTkFNRSkKICBnbGlibW1faW5jbHVkZV9IRUFERVJTID0gZ2xpYi9nbGlibW0uaAotSW5kZXg6IGdsaWJtbS0yLjIyLjEvY29uZmlndXJlLmFjCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2xpYm1tLTIuMjIuMS5vcmlnL2NvbmZpZ3VyZS5hYwotKysrIGdsaWJtbS0yLjIyLjEvY29uZmlndXJlLmFjCi1AQCAtMTM2LDcgKzEzNiw2IEBAIEFDX0NPTkZJR19GSUxFUyhbTWFrZWZpbGUKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IGMyMGU3NzguLjc0MjAzYmUgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTE2Niw3ICsxNjYsNiBAQCBBQ19DT05GSUdfRklMRVMoW01ha2VmaWxlCiAgICAgICAgICAgICAgICAgICBnaW8vc3JjL01ha2VmaWxlCiAgICAgICAgICAgICAgICAgICBnaW8vZ2lvbW0vTWFrZWZpbGUKICAgICAgICAgICAgICAgICAgIHRlc3RzL01ha2VmaWxlCiAtICAgICAgICAgICAgICAgICBleGFtcGxlcy9NYWtlZmlsZQogICAgICAgICAgICAgICAgICAgZG9jcy9NYWtlZmlsZQogICAgICAgICAgICAgICAgICAgZG9jcy9yZWZlcmVuY2UvRG94eWZpbGUKLSAgICAgICAgICAgICAgICAgIE1TVkNfTmV0MjAwNS9nbGlibW0vZ2xpYm1tLnJjCisgICAgICAgICAgICAgICAgICBNU1ZDX05ldDIwMTMvZ2xpYm1tL2dsaWJtbS5yYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9nbGliLTIuMC9nbGlibW1fMi41MC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9nbGliLTIuMC9nbGlibW1fMi41MC4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5Y2M1NThmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZ2xpYi0yLjAvZ2xpYm1tXzIuNTAuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLVNVTU1BUlkgPSAiQysrIGJpbmRpbmdzIGZvciB0aGUgZ2xpYiBsaWJyYXJ5IgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5ndGttbS5vcmcvIgotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJMR1BMdjIuMSAmIEdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDgwNDVmM2I4ZjkyOWMxY2IyOWExZTNmZDczN2I0OTkgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy50b29sczttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCi0KLURFUEVORFMgPSAibW0tY29tbW9uIGdsaWItMi4wIGxpYnNpZ2MrKy0yLjAgZ2xpYi0yLjAtbmF0aXZlIgotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCi0KLVNIUlRfVkVSID0gIiR7QGQuZ2V0VmFyKCdQVicpLnNwbGl0KCcuJylbMF19LiR7QGQuZ2V0VmFyKCdQVicpLnNwbGl0KCcuJylbMV19IgotCi1TUkNfVVJJID0gIiBcCi0gICAgZnRwOi8vZnRwLmdub21lLm9yZy9wdWIvR05PTUUvc291cmNlcy9nbGlibW0vJHtTSFJUX1ZFUn0vZ2xpYm1tLSR7UFZ9LnRhci54eiBcCi0gICAgZmlsZTovL3JlbW92ZS1leGFtcGxlcy5wYXRjaCBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiYTViOTE1ZGM0MmZjNjI5ODNmYTc4Y2E4NDg2ZjQzOTEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMWZkODUwNTFkYTljYjQwMmNjODM0OGNlYzcyZGZlNGQ3OWY5MzQ1ZGY0YTFkYmY2ODcwM2E0ZGVkNDU4NDZhNCIKLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtkYXRhZGlyfS9nbGlibW0tMi40Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtkYXRhZGlyfS9hY2xvY2FsCi0KLSAgICBpbnN0YWxsIC1tIDA2NDQgZ2xpYi9nbGlibW1jb25maWcuaCAke0R9JHtkYXRhZGlyfS9nbGlibW0tMi40LwotICAgIGluc3RhbGwgLW0gMDY0NCBzY3JpcHRzL2dsaWJtbV9jaGVja19wZXJsLm00ICR7RH0ke2RhdGFkaXJ9L2FjbG9jYWwvIHx8IHRydWUKLQotICAgIGZvciBpIGluIGdlbmVyYXRlX3dyYXBfaW5pdC5wbCBnbW1wcm9jOyBkbwotICAgICAgICBzZWQgLWkgLWUgJzFzLC4qLCMhJHtiaW5kaXJ9L2VudiBwZXJsLCcgJHtEfSR7bGliZGlyfS9nbGlibW0tMi40L3Byb2MvJGkKLSAgICBkb25lCi19Ci0KLUZJTEVTXyR7UE59ID0gIiR7bGliZGlyfS9saWIqLnNvLioiCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7ZGF0YWRpcn0vZ2xpYm1tLSogJHtsaWJkaXJ9L2dsaWJtbS0yLjQvaW5jbHVkZS8gJHtsaWJkaXJ9L2dsaWJtbS0yLjQvcHJvYy8gJHtsaWJkaXJ9L2dpb21tLTIuNC9pbmNsdWRlLyIKLQotUkRFUEVORFNfJHtQTn0tZGV2ID0gInBlcmwiCi1TRUNVUklUWV9DRkxBR1MgPSAiJHtTRUNVUklUWV9OT19QSUVfQ0ZMQUdTfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZ2xpYi0yLjAvZ2xpYm1tXzIuNTQuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvZ2xpYi0yLjAvZ2xpYm1tXzIuNTQuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzA2NDMyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9nbGliLTIuMC9nbGlibW1fMi41NC4xLmJiCkBAIC0wLDAgKzEsMzcgQEAKK1NVTU1BUlkgPSAiQysrIGJpbmRpbmdzIGZvciB0aGUgZ2xpYiBsaWJyYXJ5IgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5ndGttbS5vcmcvIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJMR1BMdjIuMSAmIEdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NDJkZmZmZWJjNTZmZWM3NTI3YWFjNTNiN2E4OWQxZDggXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy50b29sczttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCisKK0RFUEVORFMgPSAibW0tY29tbW9uIGdsaWItMi4wIGxpYnNpZ2MrKy0yLjAgZ2xpYi0yLjAtbmF0aXZlIgoraW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCisKK1NIUlRfVkVSID0gIiR7QGQuZ2V0VmFyKCdQVicpLnNwbGl0KCcuJylbMF19LiR7QGQuZ2V0VmFyKCdQVicpLnNwbGl0KCcuJylbMV19IgorCitTUkNfVVJJID0gIiBcCisgICAgZnRwOi8vZnRwLmdub21lLm9yZy9wdWIvR05PTUUvc291cmNlcy9nbGlibW0vJHtTSFJUX1ZFUn0vZ2xpYm1tLSR7UFZ9LnRhci54eiBcCisgICAgZmlsZTovL3JlbW92ZS1leGFtcGxlcy5wYXRjaCBcCisgICAgZmlsZTovLzAwMDEtR2xpYi1UaHJlYWRzLVByaXZhdGUtRml4LWdvYmoucGF0Y2ggXAorIgorU1JDX1VSSVttZDVzdW1dID0gImRlZTVlYmUzMDlmNTk3NmMzZGFjZmNmNWM0M2EwNjJiIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjdjYzI4YzczMmIwNGQ3MGVkMzRmMGM5MjM1NDMxMjkwODNjZmI5MDU4MGVhNGEyYjRiZTViMzg4MDJiZjZhNGEiCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vZ2xpYm1tLTIuNAorICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vYWNsb2NhbAorCisgICAgaW5zdGFsbCAtbSAwNjQ0IGdsaWIvZ2xpYm1tY29uZmlnLmggJHtEfSR7ZGF0YWRpcn0vZ2xpYm1tLTIuNC8KKyAgICBpbnN0YWxsIC1tIDA2NDQgc2NyaXB0cy9nbGlibW1fY2hlY2tfcGVybC5tNCAke0R9JHtkYXRhZGlyfS9hY2xvY2FsLyB8fCB0cnVlCisKKyAgICBmb3IgaSBpbiBnZW5lcmF0ZV93cmFwX2luaXQucGwgZ21tcHJvYzsgZG8KKyAgICAgICAgc2VkIC1pIC1lICcxcywuKiwjISR7YmluZGlyfS9lbnYgcGVybCwnICR7RH0ke2xpYmRpcn0vZ2xpYm1tLTIuNC9wcm9jLyRpCisgICAgZG9uZQorfQorCitGSUxFU18ke1BOfSA9ICIke2xpYmRpcn0vbGliKi5zby4qIgorRklMRVNfJHtQTn0tZGV2ICs9ICIke2RhdGFkaXJ9L2dsaWJtbS0qICR7bGliZGlyfS9nbGlibW0tMi40L2luY2x1ZGUvICR7bGliZGlyfS9nbGlibW0tMi40L3Byb2MvICR7bGliZGlyfS9naW9tbS0yLjQvaW5jbHVkZS8iCisKK1JERVBFTkRTXyR7UE59LWRldiA9ICJwZXJsIgorU0VDVVJJVFlfQ0ZMQUdTID0gIiR7U0VDVVJJVFlfTk9fUElFX0NGTEFHU30iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL21tLWNvbW1vbi9tbS1jb21tb25fMC45LjEwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9tbS1jb21tb24vbW0tY29tbW9uXzAuOS4xMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODk5ZWI4YS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL21tLWNvbW1vbi9tbS1jb21tb25fMC45LjEwLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotaW5oZXJpdCBnbm9tZWJhc2UKLQotR05PTUVfQ09NUFJFU1NfVFlQRT0ieHoiCi0KLVNSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gIjQ5ZGM0N2FmOGM4OWNlNWIzYzc2ODMwNmI5YTBmOTIyIgotU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiMTZjMGUyYmMxOTZiNjdmYmMxNDVlZGFlY2I1ZGJlNTgxODM4NjUwNGZlNTcwM2RlMjcwMDJkNzcxNDBmYTIxNyIKLQotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9tbS1jb21tb24vbW0tY29tbW9uXzAuOS4xMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvbW0tY29tbW9uL21tLWNvbW1vbl8wLjkuMTEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkxY2FhNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvbW0tY29tbW9uL21tLWNvbW1vbl8wLjkuMTEuYmIKQEAgLTAsMCArMSw5IEBACitpbmhlcml0IGdub21lYmFzZQorCitTUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJkNmYyYTQzNTg5NDgwZDIzMTU2NzJkYTBiNTgzOWI1NiIKK1NSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gIjIwZDFlNzQ2NmNhNGM4M2M5MmUyOWY5ZThkZmNjOGU1NzIxZmRmMTMzN2Y1MzE1N2JlZDk3YmUzYjczYjMyYTgiCisKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL3BseW1vdXRoL2ZpbGVzLzAwMDEtTWFrZS1mdWxsLXBhdGgtdG8tc3lzdGVtZC10dHktYXNrLXBhc3N3b3JkLWFnZW50LWNvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvcGx5bW91dGgvZmlsZXMvMDAwMS1NYWtlLWZ1bGwtcGF0aC10by1zeXN0ZW1kLXR0eS1hc2stcGFzc3dvcmQtYWdlbnQtY29uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhODZjNzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL3BseW1vdXRoL2ZpbGVzLzAwMDEtTWFrZS1mdWxsLXBhdGgtdG8tc3lzdGVtZC10dHktYXNrLXBhc3N3b3JkLWFnZW50LWNvbi5wYXRjaApAQCAtMCwwICsxLDM0IEBACitGcm9tIDc0NmM2OTBmNTdiNTJlNmZlMjFjYzJhMTFiNWJiNzFkMjVhZjMxMjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogV2VkLCAxMyBEZWMgMjAxNyAxNjoxNTo1NyArMDEwMAorU3ViamVjdDogW1BBVENIXSBNYWtlIGZ1bGwgcGF0aCB0byBzeXN0ZW1kLXR0eS1hc2stcGFzc3dvcmQtYWdlbnQgY29uZmlndXJhYmxlCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CistLS0KKyBjb25maWd1cmUuYWMgfCA1ICsrKystCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCBhYWQ2NzNlLi42YjM3MTc5IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC00OCw3ICs0OCwxMCBAQCBQTFlNT1VUSF9MSUJTPSItbG0gLWxydCAtbGRsIgorIEFDX1NVQlNUKFBMWU1PVVRIX0NGTEFHUykKKyBBQ19TVUJTVChQTFlNT1VUSF9MSUJTKQorIAorLUFDX1BBVEhfUFJPRyhbU1lTVEVNRF9BU0tfUEFTU1dPUkRfQUdFTlRdLCBbc3lzdGVtZC10dHktYXNrLXBhc3N3b3JkLWFnZW50XSkKKytBQ19BUkdfV0lUSChzeXN0ZW1kLXR0eS1hc2stcGFzc3dvcmQtYWdlbnQsIEFTX0hFTFBfU1RSSU5HKFstLXdpdGgtc3lzdGVtZC10dHktYXNrLXBhc3N3b3JkLWFnZW50XSxbcGF0aCBvZiBzeXN0ZW1kLXR0eS1hc2stcGFzc3dvcmQtYWdlbnRdKSxTWVNURU1EX0FTS19QQVNTV09SRF9BR0VOVD0ke3dpdGh2YWx9LFNZU1RFTURfQVNLX1BBU1NXT1JEX0FHRU5UPS9iaW4vc3lzdGVtZC10dHktYXNrLXBhc3N3b3JkLWFnZW50KQorK0FDX1NVQlNUKFNZU1RFTURfQVNLX1BBU1NXT1JEX0FHRU5UKQorKworKyMgY2hlY2tlZDogVURFVkFETSBpcyBub3QgdXNlZAorIEFDX1BBVEhfUFJPRyhbVURFVkFETV0sIFt1ZGV2YWRtXSkKKyAKKyBBQ19BUkdfRU5BQkxFKHBhbmdvLCBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtcGFuZ29dLFtlbmFibGUgYnVpbGRpbmcgd2l0aCBwYW5nbywgZGlzYWJsZWQgdGhlcmUgaXMgbm8gZW5jcnlwdGlvbiBwcm9tcHRzXSksZW5hYmxlX3BhbmdvPSRlbmFibGV2YWwsZW5hYmxlX3BhbmdvPXllcykKKy0tIAorMi45LjUKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9wbHltb3V0aC9wbHltb3V0aF8wLjkuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvcGx5bW91dGgvcGx5bW91dGhfMC45LjIuYmIKaW5kZXggNjE2M2NmZi4uN2U4ZDZlMyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS9wbHltb3V0aC9wbHltb3V0aF8wLjkuMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL3BseW1vdXRoL3BseW1vdXRoXzAuOS4yLmJiCkBAIC0xNiwxMyArMTYsMTYgQEAKIFBST1ZJREVTID0gInZpcnR1YWwvcHNwbGFzaCIKIFJQUk9WSURFU18ke1BOfSA9ICJ2aXJ0dWFsLXBzcGxhc2ggdmlydHVhbC1wc3BsYXNoLXN1cHBvcnQiCiAKLVNSQ19VUkkgPSAiaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvc29mdHdhcmUvcGx5bW91dGgvcmVsZWFzZXMvJHtCUE59LSR7UFZ9LnRhci5iejIiCitTUkNfVVJJID0gIiBcCisgICAgaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvc29mdHdhcmUvcGx5bW91dGgvcmVsZWFzZXMvJHtCUE59LSR7UFZ9LnRhci5iejIgXAorICAgIGZpbGU6Ly8wMDAxLU1ha2UtZnVsbC1wYXRoLXRvLXN5c3RlbWQtdHR5LWFzay1wYXNzd29yZC1hZ2VudC1jb24ucGF0Y2ggXAorIgogU1JDX1VSSVttZDVzdW1dID0gImZmNDIwOTk0ZGViN2VhMjAzZGY2NzhkZjkyZTdhYjdkIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjJmMGNlODIwNDJjZjljN2VhZGQyNTE3YTFmNzRjOGE4NWZhODY5OTc4MWQ5ZjI5NGEwNmVhZGUyOWZiZWQ1N2YiCiAKIEVYVFJBX09FQ09ORiArPSAiIC0tZW5hYmxlLXNoYXJlZCAtLWRpc2FibGUtc3RhdGljIC0tZGlzYWJsZS1ndGsgLS1kaXNhYmxlLWRvY3VtZW50YXRpb24gXAogICAgIC0td2l0aC1sb2dvPSR7TE9HT30gXAotICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICctLWVuYWJsZS1zeXN0ZW1kLWludGVncmF0aW9uIC0td2l0aC1zeXN0ZW0tcm9vdC1pbnN0YWxsJywgJycsIGQpfSBcCisgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJy0tZW5hYmxlLXN5c3RlbWQtaW50ZWdyYXRpb24gLS13aXRoLXN5c3RlbS1yb290LWluc3RhbGwgLS13aXRoLXN5c3RlbWQtdHR5LWFzay1wYXNzd29yZC1hZ2VudD0ke2Jhc2VfYmluZGlyfS9zeXN0ZW1kLXR0eS1hc2stcGFzc3dvcmQtYWdlbnQnLCAnJywgZCl9IFwKICIKIAogUEFDS0FHRUNPTkZJRyA/Pz0gInBhbmdvIGluaXRyZCIKQEAgLTMxLDcgKzM0LDcgQEAKIAogUEFDS0FHRUNPTkZJR1tkcm1dID0gIi0tZW5hYmxlLWRybSwtLWRpc2FibGUtZHJtLGxpYmRybSIKIFBBQ0tBR0VDT05GSUdbcGFuZ29dID0gIi0tZW5hYmxlLXBhbmdvLC0tZGlzYWJsZS1wYW5nbyxwYW5nbyIKLVBBQ0tBR0VDT05GSUdbZ3RrXSA9ICItLWVuYWJsZS1ndGssLS1kaXNhYmxlLWd0ayxndGsrIgorUEFDS0FHRUNPTkZJR1tndGtdID0gIi0tZW5hYmxlLWd0aywtLWRpc2FibGUtZ3RrLGd0ayszIgogUEFDS0FHRUNPTkZJR1tpbml0cmRdID0gIiwsLCIKIAogTE9HTyA/Pz0gIiR7ZGF0YWRpcn0vcGx5bW91dGgvYml6Y29tLnBuZyIKQEAgLTM5LDkgKzQyLDYgQEAKIGluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBzeXN0ZW1kCiAKIGRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICBpbnN0YWxsIC1tIDY0NCAke0J9L3N5c3RlbWQtdW5pdHMvKi5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgaW5zdGFsbCAtbSA2NDQgJHtCfS9zeXN0ZW1kLXVuaXRzL3N5c3RlbWQtYXNrLXBhc3N3b3JkLXBseW1vdXRoLnBhdGggJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KICAgICAjIFJlbW92ZSAvdmFyL3J1biBmcm9tIHBhY2thZ2UgYXMgcGx5bW91dGggd2lsbCBwb3B1bGF0ZSBpdCBvbiBzdGFydHVwCiAgICAgcm0gLWZyICIke0R9JHtsb2NhbHN0YXRlZGlyfS9ydW4iCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvdG95Ym94L3RveWJveF8wLjcuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNvcmUvdG95Ym94L3RveWJveF8wLjcuNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDdjMjg1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS90b3lib3gvdG95Ym94XzAuNy41LmJiCkBAIC0wLDAgKzEsNzEgQEAKK1NVTU1BUlkgPSAiVG95Ym94IGNvbWJpbmVzIGNvbW1vbiB1dGlsaXRpZXMgdG9nZXRoZXIgaW50byBhIHNpbmdsZSBleGVjdXRhYmxlLiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cubGFuZGxleS5uZXQvdG95Ym94LyIKK0RFUEVORFMgPSAiYXR0ciIKKworTElDRU5TRSA9ICJCU0QtMC1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1mMGI4YjNkZDY0MzFiY2FhMjQ1ZGEwYTA4YmQwZDUxMSIKKworU1JDX1VSSSA9ICJodHRwOi8vd3d3LmxhbmRsZXkubmV0L3RveWJveC9kb3dubG9hZHMvJHtCUE59LSR7UFZ9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJhOGJiNTAyYTFiZTk0MWYwNmRkMjY0NGZmZjI1ZjU0NyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzYWRhNDUwYWMxZWFiMWRmYzM1MmZlZTkxNWVhNjEyOWI5YTQzNDljMTg4NWYxMzk0YjYxYmQyZDg5YTQ2YzA0IgorCitTRUNUSU9OID0gImJhc2UiCisKK1RPWUJPWF9CSU4gPSAiZ2VuZXJhdGVkL3Vuc3RyaXBwZWQvdG95Ym94IgorCitFWFRSQV9PRU1BS0UgPSAnSE9TVENDPSIke0JVSUxEX0NDfSIgQ1BVUz0ke0BvZS51dGlscy5jcHVfY291bnQoKX0nCisKK2RvX2NvbmZpZ3VyZSgpIHsKKyAgICBvZV9ydW5tYWtlIGRlZmNvbmZpZworCisgICAgIyBEaXNhYmxlIGtpbGxhbGw1IGFzIGl0IGlzbid0IG1hbmFnZWQgYnkgdXBkYXRlLWFsdGVybmF0aXZlcworICAgIHNlZCAtZSAncy9DT05GSUdfS0lMTEFMTDU9eS8jIENPTkZJR19LSUxMQUxMNSBpcyBub3Qgc2V0LycgLWkgLmNvbmZpZworCisgICAgIyBEaXNhYmxlIHN3YXBvbiBhcyBpdCBkb2Vzbid0IGhhbmRsZSB0aGUgJy1hJyBhcmd1bWVudCB1c2VkIGR1cmluZyBib290CisgICAgc2VkIC1lICdzL0NPTkZJR19TV0FQT049eS8jIENPTkZJR19TV0FQT04gaXMgbm90IHNldC8nIC1pIC5jb25maWcKK30KKworZG9fY29tcGlsZSgpIHsKKyAgICBvZV9ydW5tYWtlICR7VE9ZQk9YX0JJTn0KKworICAgICMgQ3JlYXRlIGEgbGlzdCBvZiBsaW5rcyBuZWVkZWQKKyAgICAke0JVSUxEX0NDfSAtSSAuIHNjcmlwdHMvaW5zdGFsbC5jIC1vIGdlbmVyYXRlZC9pbnN0bGlzdAorICAgIC4vZ2VuZXJhdGVkL2luc3RsaXN0IGxvbmcgfCBzZWQgLWUgJ3MjXiMvIycgPiB0b3lib3gubGlua3MKK30KKworZG9faW5zdGFsbCgpIHsKKyAgICAjIEluc3RhbGwgbWFudWFsbHkgaW5zdGVhZCBvZiB1c2luZyAnbWFrZSBpbnN0YWxsJworICAgIGluc3RhbGwgLWQgJHtEfSR7YmFzZV9iaW5kaXJ9CisgICAgaWYgZ3JlcCAtcSAiQ09ORklHX1RPWUJPWF9TVUlEPXkiICR7Qn0vLmNvbmZpZzsgdGhlbgorICAgICAgICBpbnN0YWxsIC1tIDQ3NTUgJHtCfS8ke1RPWUJPWF9CSU59ICR7RH0ke2Jhc2VfYmluZGlyfS90b3lib3gKKyAgICBlbHNlCisgICAgICAgIGluc3RhbGwgLW0gMDc1NSAke0J9LyR7VE9ZQk9YX0JJTn0gJHtEfSR7YmFzZV9iaW5kaXJ9L3RveWJveAorICAgIGZpCisKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9CisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7Qn0vdG95Ym94LmxpbmtzICR7RH0ke3N5c2NvbmZkaXJ9Cit9CisKK2luaGVyaXQgdXBkYXRlLWFsdGVybmF0aXZlcworCisjIElmIHlvdSd2ZSBjaG9zZW4gdG8gaW5zdGFsbCB0b3lib3ggeW91IHByb2JhYmx5IHdhbnQgaXQgdG8gdGFrZSBwcmVjZWRlbmNlCisjIG92ZXIgYnVzeWJveCB3aGVyZSBwb3NzaWJsZSBidXQgbm90IG92ZXIgb3RoZXIgcGFja2FnZXMKK0FMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjYwIgorCitweXRob24gZG9fcGFja2FnZV9wcmVwZW5kICgpIHsKKyAgICAjIFJlYWQgbGlua3MgZnJvbSAvZXRjL3RveWJveC5saW5rcyBhbmQgY3JlYXRlIGFwcHJvcHJpYXRlCisgICAgIyB1cGRhdGUtYWx0ZXJuYXRpdmVzIHZhcmlhYmxlcworCisgICAgZHZhciA9IGQuZ2V0VmFyKCdEJykKKyAgICBwbiA9IGQuZ2V0VmFyKCdQTicpCisgICAgdGFyZ2V0ID0gIi9iaW4vdG95Ym94IgorCisgICAgZiA9IG9wZW4oJyVzL2V0Yy90b3lib3gubGlua3MnICUgKGR2YXIpLCAncicpCisgICAgZm9yIGFsdF9saW5rX25hbWUgaW4gZjoKKyAgICAgICAgYWx0X2xpbmtfbmFtZSA9IGFsdF9saW5rX25hbWUuc3RyaXAoKQorICAgICAgICBhbHRfbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoYWx0X2xpbmtfbmFtZSkKKyAgICAgICAgZC5hcHBlbmRWYXIoJ0FMVEVSTkFUSVZFXyVzJyAlIChwbiksICcgJyArIGFsdF9uYW1lKQorICAgICAgICBkLnNldFZhckZsYWcoJ0FMVEVSTkFUSVZFX0xJTktfTkFNRScsIGFsdF9uYW1lLCBhbHRfbGlua19uYW1lKQorICAgICAgICBkLnNldFZhckZsYWcoJ0FMVEVSTkFUSVZFX1RBUkdFVCcsIGFsdF9uYW1lLCB0YXJnZXQpCisgICAgZi5jbG9zZSgpCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL3RveWJveC90b3lib3hfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY29yZS90b3lib3gvdG95Ym94X2dpdC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhmOTcxNS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jb3JlL3RveWJveC90b3lib3hfZ2l0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotU1VNTUFSWSA9ICJUb3lib3ggY29tYmluZXMgY29tbW9uIHV0aWxpdGllcyB0b2dldGhlciBpbnRvIGEgc2luZ2xlIGV4ZWN1dGFibGUuIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5sYW5kbGV5Lm5ldC90b3lib3gvIgotREVQRU5EUyA9ICJhdHRyIgotCi1MSUNFTlNFID0gIkJTRC0wLUNsYXVzZSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWYwYjhiM2RkNjQzMWJjYWEyNDVkYTBhMDhiZDBkNTExIgotCi1QViA9ICIwLjcuNCtnaXQke1NSQ1BWfSIKLQotU1JDUkVWID0gIjc4Mjg5MjAzMDMxYWZjMjM1ODUwMzVjMzYyYmVlYzEwZGI1NDk1OGQiCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbGFuZGxleS90b3lib3g7cHJvdG9jb2w9aHR0cHMgXAotIgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1TRUNUSU9OID0gImJhc2UiCi0KLVRPWUJPWF9CSU4gPSAiZ2VuZXJhdGVkL3Vuc3RyaXBwZWQvdG95Ym94IgotCi1FWFRSQV9PRU1BS0UgPSAnSE9TVENDPSIke0JVSUxEX0NDfSIgQ1BVUz0ke0BvZS51dGlscy5jcHVfY291bnQoKX0nCi0KLWRvX2NvbmZpZ3VyZSgpIHsKLSAgICBvZV9ydW5tYWtlIGRlZmNvbmZpZwotCi0gICAgIyBEaXNhYmxlIGtpbGxhbGw1IGFzIGl0IGlzbid0IG1hbmFnZWQgYnkgdXBkYXRlLWFsdGVybmF0aXZlcwotICAgIHNlZCAtZSAncy9DT05GSUdfS0lMTEFMTDU9eS8jIENPTkZJR19LSUxMQUxMNSBpcyBub3Qgc2V0LycgLWkgLmNvbmZpZwotCi0gICAgIyBEaXNhYmxlIHN3YXBvbiBhcyBpdCBkb2Vzbid0IGhhbmRsZSB0aGUgJy1hJyBhcmd1bWVudCB1c2VkIGR1cmluZyBib290Ci0gICAgc2VkIC1lICdzL0NPTkZJR19TV0FQT049eS8jIENPTkZJR19TV0FQT04gaXMgbm90IHNldC8nIC1pIC5jb25maWcKLX0KLQotZG9fY29tcGlsZSgpIHsKLSAgICBvZV9ydW5tYWtlICR7VE9ZQk9YX0JJTn0KLQotICAgICMgQ3JlYXRlIGEgbGlzdCBvZiBsaW5rcyBuZWVkZWQKLSAgICAke0JVSUxEX0NDfSAtSSAuIHNjcmlwdHMvaW5zdGFsbC5jIC1vIGdlbmVyYXRlZC9pbnN0bGlzdAotICAgIC4vZ2VuZXJhdGVkL2luc3RsaXN0IGxvbmcgfCBzZWQgLWUgJ3MjXiMvIycgPiB0b3lib3gubGlua3MKLX0KLQotZG9faW5zdGFsbCgpIHsKLSAgICAjIEluc3RhbGwgbWFudWFsbHkgaW5zdGVhZCBvZiB1c2luZyAnbWFrZSBpbnN0YWxsJwotICAgIGluc3RhbGwgLWQgJHtEfSR7YmFzZV9iaW5kaXJ9Ci0gICAgaWYgZ3JlcCAtcSAiQ09ORklHX1RPWUJPWF9TVUlEPXkiICR7Qn0vLmNvbmZpZzsgdGhlbgotICAgICAgICBpbnN0YWxsIC1tIDQ3NTUgJHtCfS8ke1RPWUJPWF9CSU59ICR7RH0ke2Jhc2VfYmluZGlyfS90b3lib3gKLSAgICBlbHNlCi0gICAgICAgIGluc3RhbGwgLW0gMDc1NSAke0J9LyR7VE9ZQk9YX0JJTn0gJHtEfSR7YmFzZV9iaW5kaXJ9L3RveWJveAotICAgIGZpCi0KLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9Ci0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7Qn0vdG95Ym94LmxpbmtzICR7RH0ke3N5c2NvbmZkaXJ9Ci19Ci0KLWluaGVyaXQgdXBkYXRlLWFsdGVybmF0aXZlcwotCi0jIElmIHlvdSd2ZSBjaG9zZW4gdG8gaW5zdGFsbCB0b3lib3ggeW91IHByb2JhYmx5IHdhbnQgaXQgdG8gdGFrZSBwcmVjZWRlbmNlCi0jIG92ZXIgYnVzeWJveCB3aGVyZSBwb3NzaWJsZSBidXQgbm90IG92ZXIgb3RoZXIgcGFja2FnZXMKLUFMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjYwIgotCi1weXRob24gZG9fcGFja2FnZV9wcmVwZW5kICgpIHsKLSAgICAjIFJlYWQgbGlua3MgZnJvbSAvZXRjL3RveWJveC5saW5rcyBhbmQgY3JlYXRlIGFwcHJvcHJpYXRlCi0gICAgIyB1cGRhdGUtYWx0ZXJuYXRpdmVzIHZhcmlhYmxlcwotCi0gICAgZHZhciA9IGQuZ2V0VmFyKCdEJykKLSAgICBwbiA9IGQuZ2V0VmFyKCdQTicpCi0gICAgdGFyZ2V0ID0gIi9iaW4vdG95Ym94IgotCi0gICAgZiA9IG9wZW4oJyVzL2V0Yy90b3lib3gubGlua3MnICUgKGR2YXIpLCAncicpCi0gICAgZm9yIGFsdF9saW5rX25hbWUgaW4gZjoKLSAgICAgICAgYWx0X2xpbmtfbmFtZSA9IGFsdF9saW5rX25hbWUuc3RyaXAoKQotICAgICAgICBhbHRfbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoYWx0X2xpbmtfbmFtZSkKLSAgICAgICAgZC5hcHBlbmRWYXIoJ0FMVEVSTkFUSVZFXyVzJyAlIChwbiksICcgJyArIGFsdF9uYW1lKQotICAgICAgICBkLnNldFZhckZsYWcoJ0FMVEVSTkFUSVZFX0xJTktfTkFNRScsIGFsdF9uYW1lLCBhbHRfbGlua19uYW1lKQotICAgICAgICBkLnNldFZhckZsYWcoJ0FMVEVSTkFUSVZFX1RBUkdFVCcsIGFsdF9uYW1lLCB0YXJnZXQpCi0gICAgZi5jbG9zZSgpCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2NyeXB0c2V0dXAvY3J5cHRzZXR1cF8xLjcuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNyeXB0by9jcnlwdHNldHVwL2NyeXB0c2V0dXBfMS43LjQuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY3J5cHRzZXR1cC9jcnlwdHNldHVwXzEuNy40LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jcnlwdG8vY3J5cHRzZXR1cC9jcnlwdHNldHVwXzEuNy40LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jcnlwdG8vZW5naW5lLXBrY3MxMS9lbmdpbmUtcGtjczExXzAuMi4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY3J5cHRvL2VuZ2luZS1wa2NzMTEvZW5naW5lLXBrY3MxMV8wLjIuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzc5ZjM1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY3J5cHRvL2VuZ2luZS1wa2NzMTEvZW5naW5lLXBrY3MxMV8wLjIuMi5iYgpAQCAtMCwwICsxLDMxIEBACitTVU1NQVJZID0gIkEgUEtDUyIKK0RFU0NSSVBUSU9OID0gIlwKK0VuZ2luZV9wa2NzMTEgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgYW4gZW5naW5lIGZvciBPcGVuU1NMLiBJdCBjYW4gYmUgXAorbG9hZGVkIHVzaW5nIGNvZGUsIGNvbmZpZyBmaWxlIG9yIGNvbW1hbmQgbGluZSBhbmQgd2lsbCBwYXNzIGFueSBmdW5jdGlvbiBcCitjYWxsIGJ5IG9wZW5zc2wgdG8gYSBQS0NTIGNhcmRzIGFuZCBzb2Z0d2FyZSBmb3IgdXNpbmcgc21hcnQgY2FyZHMgaW4gUEtDUyIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuU0MvZW5naW5lX3BrY3MxMSIKK1NFQ1RJT04gPSAiRGV2ZWxvcG1lbnQvTGlicmFyaWVzIgorTElDRU5TRSA9ICJMR1BMdjIuMSsiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9zcmMvZW5naW5lX3BrY3MxMS5oO2JlZ2lubGluZT0xO2VuZGxpbmU9MjY7bWQ1PTk3M2ExOWY4YTYxMDVkZTA0N2YyYWRmYmJmYzA0YzMzIgorREVQRU5EUyA9ICJvcGVuc3NsIGxpYnAxMSIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL09wZW5TQy9lbmdpbmVfcGtjczExLmdpdCIKK1NSQ1JFViA9ICIxMzJmY2YyYzhiMzE5ZjlmNGIyZWJkYzhkY2I1NGZmNDk2ZGMwNTE5IgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworRVhUUkFfT0VDT05GID0gIlwKKyAgICAtLWRpc2FibGUtc3RhdGljIFwKKyAgICAtLWxpYmRpciAke2xpYmRpcn0vZW5naW5lcyBcCisiCisKK2RvX2luc3RhbGxfYXBwZW5kICgpIHsKKyAgICBybSAtZiAke0R9JHtsaWJkaXJ9L2VuZ2luZXMvbGlicGtjczExLmxhCit9CisKK0ZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vZW5naW5lcy9saWJwa2NzMTEke1NPTElCU0RFVn0iCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9lbmdpbmVzLy5kZWJ1Zy8iCisKK1JERVBFTkRTXyR7UE59ICs9ICJvcGVuc3NsIGxpYnAxMSBvcGVuc2MiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYm1jcnlwdC9saWJtY3J5cHRfMi41LjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jcnlwdG8vbGlibWNyeXB0L2xpYm1jcnlwdF8yLjUuOC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJtY3J5cHQvbGlibWNyeXB0XzIuNS44LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jcnlwdG8vbGlibWNyeXB0L2xpYm1jcnlwdF8yLjUuOC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJzb2RpdW0vbGlic29kaXVtXzEuMC4xMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWNyeXB0by9saWJzb2RpdW0vbGlic29kaXVtXzEuMC4xMS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJzb2RpdW0vbGlic29kaXVtXzEuMC4xMS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY3J5cHRvL2xpYnNvZGl1bS9saWJzb2RpdW1fMS4wLjExLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BrY3MxMS1oZWxwZXIvcGtjczExLWhlbHBlcl8xLjExLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtY3J5cHRvL3BrY3MxMS1oZWxwZXIvcGtjczExLWhlbHBlcl8xLjExLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BrY3MxMS1oZWxwZXIvcGtjczExLWhlbHBlcl8xLjExLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1jcnlwdG8vcGtjczExLWhlbHBlci9wa2NzMTEtaGVscGVyXzEuMTEuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xldmVsZGIvbGV2ZWxkYi8wMDAxLU1ha2VmaWxlLUZpeC1wYXJhbGxlbC1idWlsZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9sZXZlbGRiL2xldmVsZGIvMDAwMS1NYWtlZmlsZS1GaXgtcGFyYWxsZWwtYnVpbGQucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xldmVsZGIvbGV2ZWxkYi8wMDAxLU1ha2VmaWxlLUZpeC1wYXJhbGxlbC1idWlsZC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL2xldmVsZGIvbGV2ZWxkYi8wMDAxLU1ha2VmaWxlLUZpeC1wYXJhbGxlbC1idWlsZC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGV2ZWxkYi9sZXZlbGRiLzAwMDEtYnVpbGRfZGV0ZWN0X3BsYXRmb3JtLUNoZWNrLWZvci1fX1NTRTRfMl9fLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL2xldmVsZGIvbGV2ZWxkYi8wMDAxLWJ1aWxkX2RldGVjdF9wbGF0Zm9ybS1DaGVjay1mb3ItX19TU0U0XzJfXy5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGV2ZWxkYi9sZXZlbGRiLzAwMDEtYnVpbGRfZGV0ZWN0X3BsYXRmb3JtLUNoZWNrLWZvci1fX1NTRTRfMl9fLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbGV2ZWxkYi9sZXZlbGRiLzAwMDEtYnVpbGRfZGV0ZWN0X3BsYXRmb3JtLUNoZWNrLWZvci1fX1NTRTRfMl9fLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9sZXZlbGRiL2xldmVsZGIvMDAwMi1tYWtlZmlsZS1idWlsZC1TSEFSRURfTUVNRU5WTElCLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL2xldmVsZGIvbGV2ZWxkYi8wMDAyLW1ha2VmaWxlLWJ1aWxkLVNIQVJFRF9NRU1FTlZMSUIucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xldmVsZGIvbGV2ZWxkYi8wMDAyLW1ha2VmaWxlLWJ1aWxkLVNIQVJFRF9NRU1FTlZMSUIucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9sZXZlbGRiL2xldmVsZGIvMDAwMi1tYWtlZmlsZS1idWlsZC1TSEFSRURfTUVNRU5WTElCLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9sZXZlbGRiL2xldmVsZGJfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL2xldmVsZGIvbGV2ZWxkYl9naXQuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xldmVsZGIvbGV2ZWxkYl9naXQuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9sZXZlbGRiL2xldmVsZGJfZ2l0LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmRiaS9saWJkYmkuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL2xpYmRiaS9saWJkYmkuaW5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmRiaS9saWJkYmkuaW5jCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbGliZGJpL2xpYmRiaS5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZGJpL2xpYmRiaV8wLjkuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9saWJkYmkvbGliZGJpXzAuOS4wLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmRiaS9saWJkYmlfMC45LjAuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9saWJkYmkvbGliZGJpXzAuOS4wLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAxLUludGVsUkRGUE1hdGhMaWIyMFUxLUNoZWNrLWZvci1fX0RFRklORURfd2NoYXJfdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGIvMDAwMS1JbnRlbFJERlBNYXRoTGliMjBVMS1DaGVjay1mb3ItX19ERUZJTkVEX3djaGFyX3QucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiLzAwMDEtSW50ZWxSREZQTWF0aExpYjIwVTEtQ2hlY2stZm9yLV9fREVGSU5FRF93Y2hhcl90LnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDEtSW50ZWxSREZQTWF0aExpYjIwVTEtQ2hlY2stZm9yLV9fREVGSU5FRF93Y2hhcl90LnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDEtVGVsbC1zY29ucy10by11c2UtYnVpbGQtc2V0dGluZ3MtZnJvbS1lbnZpcm9ubWVudC12YS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGIvMDAwMS1UZWxsLXNjb25zLXRvLXVzZS1idWlsZC1zZXR0aW5ncy1mcm9tLWVudmlyb25tZW50LXZhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMDFlOTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDEtVGVsbC1zY29ucy10by11c2UtYnVpbGQtc2V0dGluZ3MtZnJvbS1lbnZpcm9ubWVudC12YS5wYXRjaApAQCAtMCwwICsxLDY0IEBACitGcm9tIDUzMzY4ZDNmNGFkYzA5ZGQ4NDIzNGE5YWYzMTc3MWJjZDhjYTI3NTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTdmVuIEViZW5mZWxkIDxzdmVuLmViZW5mZWxkQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMTUgSmFuIDIwMTYgMjI6NDE6MjggKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVGVsbCBzY29ucyB0byB1c2UgYnVpbGQgc2V0dGluZ3MgZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKKworU2lnbmVkLW9mZi1ieTogU3ZlbiBFYmVuZmVsZCA8c3Zlbi5lYmVuZmVsZEBnbWFpbC5jb20+CistLS0KKyBTQ29uc3RydWN0ICAgICAgICAgICAgICAgIHwgOCArKysrKystLQorIHNyYy9tb25nby91dGlsL1NDb25zY3JpcHQgfCAyICsrCisgMiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK0luZGV4OiBnaXQvU0NvbnN0cnVjdAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdpdC5vcmlnL1NDb25zdHJ1Y3QKKysrKyBnaXQvU0NvbnN0cnVjdAorQEAgLTU0OCw2ICs1NDgsNyBAQCBkZWYgdmFyaWFibGVfYXJjaF9jb252ZXJ0ZXIodmFsKToKKyAgICAgICAgICdhbWQ2NCc6ICAneDg2XzY0JywKKyAgICAgICAgICdlbXQ2NCc6ICAgJ3g4Nl82NCcsCisgICAgICAgICAneDg2JzogICAgJ2kzODYnLAorKyAgICAgICAgJ2FhcmNoNjQnOiAnYXJtNjQnLAorICAgICB9CisgICAgIHZhbCA9IHZhbC5sb3dlcigpCisgCitAQCAtNjI3LDcgKzYyOCw4IEBAIGVudl92YXJzLkFkZCgKKyApCisgCisgZW52X3ZhcnMuQWRkKCdDQycsCistICAgIGhlbHA9J1NlbGVjdCB0aGUgQyBjb21waWxlciB0byB1c2UnKQorKyAgICBoZWxwPSdTZWxlY3QgdGhlIEMgY29tcGlsZXIgdG8gdXNlJywKKysgICAgZGVmYXVsdD1vcy5nZXRlbnYoJ0NDJykpCisgCisgZW52X3ZhcnMuQWRkKCdDQ0ZMQUdTJywKKyAgICAgaGVscD0nU2V0cyBmbGFncyBmb3IgdGhlIEMgYW5kIEMrKyBjb21waWxlcicsCitAQCAtNjQ3LDcgKzY0OSw4IEBAIGVudl92YXJzLkFkZCgnQ1BQUEFUSCcsCisgICAgIGNvbnZlcnRlcj12YXJpYWJsZV9zaGxleF9jb252ZXJ0ZXIpCisgCisgZW52X3ZhcnMuQWRkKCdDWFgnLAorLSAgICBoZWxwPSdTZWxlY3QgdGhlIEMrKyBjb21waWxlciB0byB1c2UnKQorKyAgICBoZWxwPSdTZWxlY3QgdGhlIEMrKyBjb21waWxlciB0byB1c2UnLAorKyAgICBkZWZhdWx0PW9zLmdldGVudignQ1hYJykpCisgCisgZW52X3ZhcnMuQWRkKCdDWFhGTEFHUycsCisgICAgIGhlbHA9J1NldHMgZmxhZ3MgZm9yIHRoZSBDKysgY29tcGlsZXInLAorQEAgLTg5NSw2ICs4OTgsNyBAQCBlbnZEaWN0ID0gZGljdChCVUlMRF9ST09UPWJ1aWxkRGlyLAorICAgICAgICAgICAgICAgICkKKyAKKyBlbnYgPSBFbnZpcm9ubWVudCh2YXJpYWJsZXM9ZW52X3ZhcnMsICoqZW52RGljdCkKKytlbnYuUHJlcGVuZEVOVlBhdGgoJ1BBVEgnLCBvcy5nZXRlbnYoJ1BBVEgnKSkKKyBkZWwgZW52RGljdAorIAorIGVudi5BZGRNZXRob2QoZW52X29zX2lzX3dyYXBwZXIsICdUYXJnZXRPU0lzJykKK0luZGV4OiBnaXQvc3JjL21vbmdvL3V0aWwvU0NvbnNjcmlwdAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdpdC5vcmlnL3NyYy9tb25nby91dGlsL1NDb25zY3JpcHQKKysrKyBnaXQvc3JjL21vbmdvL3V0aWwvU0NvbnNjcmlwdAorQEAgLTI3NCw2ICsyNzQsOCBAQCBpZiBlbnZbJ01PTkdPX0FMTE9DQVRPUiddID09ICd0Y21hbGxvYyc6CisgICAgICAgICAgICAgICAgICdNT05HT19IQVZFX0dQRVJGVE9PTFNfU0laRV9DTEFTU19TVEFUUycKKyAgICAgICAgICAgICBdCisgICAgICAgICApCisrICAgIGlmIG5vdCB1c2Vfc3lzdGVtX3ZlcnNpb25fb2ZfbGlicmFyeSgndmFsZ3JpbmQnKToKKysgICAgICAgIHRjbXNwRW52LkluamVjdFRoaXJkUGFydHlJbmNsdWRlUGF0aHMoJ3ZhbGdyaW5kJykKKyAKKyAgICAgaWYgbm90IHVzZV9zeXN0ZW1fdmVyc2lvbl9vZl9saWJyYXJ5KCd2YWxncmluZCcpOgorICAgICAgICAgIyBJbmNsdWRlIHZhbGdyaW5kIHNpbmNlIHRjbWFsbG9jIGRpc2FibGVzIGl0c2VsZiB3aGlsZSBydW5uaW5nIHVuZGVyIHZhbGdyaW5kCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAxLVVzZS1fX0dMSUJDX18tdG8tY29udHJvbC11c2Utb2YtZ251X2dldF9saWJjX3ZlcnNpb24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDEtVXNlLV9fR0xJQkNfXy10by1jb250cm9sLXVzZS1vZi1nbnVfZ2V0X2xpYmNfdmVyc2lvbi5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMS1Vc2UtX19HTElCQ19fLXRvLWNvbnRyb2wtdXNlLW9mLWdudV9nZXRfbGliY192ZXJzaW9uLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDEtVXNlLV9fR0xJQkNfXy10by1jb250cm9sLXVzZS1vZi1nbnVfZ2V0X2xpYmNfdmVyc2lvbi5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAxLVVzZS1sb25nLWxvbmctaW5zdGVhZC1vZi1pbnQ2NF90LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAxLVVzZS1sb25nLWxvbmctaW5zdGVhZC1vZi1pbnQ2NF90LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4OWIzMDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDEtVXNlLWxvbmctbG9uZy1pbnN0ZWFkLW9mLWludDY0X3QucGF0Y2gKQEAgLTAsMCArMSw2NCBAQAorRnJvbSBhNDk1MTQ4OWQ2NDljMmI2MDljYmI4MGY2Y2ZiNDlmZGNhZDhiZDQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IFNhdCwgMiBTZXAgMjAxNyAxMDowMzozNyAtMDcwMAorU3ViamVjdDogW1BBVENIXSBVc2UgbG9uZyBsb25nIGluc3RlYWQgb2YgaW50NjRfdAorCitGaXhlcworZXJyb3I6IGNhbGwgdG8gbWVtYmVyIGZ1bmN0aW9uICdhcHBlbmROdW1iZXInIGlzIGFtYmlndW91cworc2luY2UgdGhpcyBmdW5jdGlvbiBleHBlY3RzIGxvbmcgbG9uZyBhcyBwYXJhbWV0ZXIgYW5kIG5vdCBpbnQ2NF90CisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CistLS0KK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworIHNyYy9tb25nby91dGlsL3Byb2NwYXJzZXIuY3BwIHwgMTAgKysrKystLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisKK0luZGV4OiBnaXQvc3JjL21vbmdvL3V0aWwvcHJvY3BhcnNlci5jcHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnaXQub3JpZy9zcmMvbW9uZ28vdXRpbC9wcm9jcGFyc2VyLmNwcAorKysrIGdpdC9zcmMvbW9uZ28vdXRpbC9wcm9jcGFyc2VyLmNwcAorQEAgLTI2MCw3ICsyNjAsNyBAQCBTdGF0dXMgcGFyc2VQcm9jU3RhdChjb25zdCBzdGQ6OnZlY3RvcjxTCisgCisgICAgICAgICAgICAgICAgICAgICBTdHJpbmdEYXRhIHN0cmluZ1ZhbHVlKCgqcGFydEl0KS5iZWdpbigpLCAoKnBhcnRJdCkuZW5kKCkgLSAoKnBhcnRJdCkuYmVnaW4oKSk7CisgCistICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCB2YWx1ZTsKKysgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyAgdmFsdWU7CisgCisgICAgICAgICAgICAgICAgICAgICBpZiAoIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJpbmdWYWx1ZSwgJnZhbHVlKS5pc09LKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IDA7CitAQCAtMjcyLDcgKzI3Miw3IEBAIFN0YXR1cyBwYXJzZVByb2NTdGF0KGNvbnN0IHN0ZDo6dmVjdG9yPFMKKyAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICBTdHJpbmdEYXRhIHN0cmluZ1ZhbHVlKCgqcGFydEl0KS5iZWdpbigpLCAoKnBhcnRJdCkuZW5kKCkgLSAoKnBhcnRJdCkuYmVnaW4oKSk7CisgCistICAgICAgICAgICAgICAgIHVpbnQ2NF90IHZhbHVlOworKyAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWU7CisgCisgICAgICAgICAgICAgICAgIGlmICghcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZ1ZhbHVlLCAmdmFsdWUpLmlzT0soKSkgeworICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOworQEAgLTM2NSw3ICszNjUsNyBAQCBTdGF0dXMgcGFyc2VQcm9jTWVtSW5mbyhjb25zdCBzdGQ6OnZlY3RvCisgCisgICAgICAgICAgICAgU3RyaW5nRGF0YSBzdHJpbmdWYWx1ZSgoKnBhcnRJdCkuYmVnaW4oKSwgKCpwYXJ0SXQpLmVuZCgpKTsKKyAKKy0gICAgICAgICAgICB1aW50NjRfdCB2YWx1ZTsKKysgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWU7CisgCisgICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5nVmFsdWUsICZ2YWx1ZSkuaXNPSygpKSB7CisgICAgICAgICAgICAgICAgIHZhbHVlID0gMDsKK0BAIC00MjYsNyArNDI2LDcgQEAgU3RhdHVzIHBhcnNlUHJvY0Rpc2tTdGF0cyhjb25zdCBzdGQ6OnZlYworICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nRGF0YSBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQlNPTk9iakJ1aWxkZXIqIGJ1aWxkZXIpIHsKKyAgICAgYm9vbCBmb3VuZEtleXMgPSBmYWxzZTsKKy0gICAgc3RkOjp2ZWN0b3I8dWludDY0X3Q+IHN0YXRzOworKyAgICBzdGQ6OnZlY3Rvcjxsb25nIGxvbmc+IHN0YXRzOworICAgICBzdGF0cy5yZXNlcnZlKGtEaXNrRmllbGRDb3VudCk7CisgCisgICAgIHVzaW5nIHN0cmluZ19zcGxpdF9pdGVyYXRvciA9IGJvb3N0OjpzcGxpdF9pdGVyYXRvcjxTdHJpbmdEYXRhOjpjb25zdF9pdGVyYXRvcj47CitAQCAtNTAxLDcgKzUwMSw3IEBAIFN0YXR1cyBwYXJzZVByb2NEaXNrU3RhdHMoY29uc3Qgc3RkOjp2ZWMKKyAKKyAgICAgICAgICAgICAgICAgU3RyaW5nRGF0YSBzdHJpbmdWYWx1ZSgoKnBhcnRJdCkuYmVnaW4oKSwgKCpwYXJ0SXQpLmVuZCgpKTsKKyAKKy0gICAgICAgICAgICAgICAgdWludDY0X3QgdmFsdWU7CisrICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZTsKKyAKKyAgICAgICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5nVmFsdWUsICZ2YWx1ZSkuaXNPSygpKSB7CisgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IDA7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAxLVVzZS1zdHJlcnJvcl9yLW9ubHktb24tZ2xpYmMtc3lzdGVtcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGIvMDAwMS1Vc2Utc3RyZXJyb3Jfci1vbmx5LW9uLWdsaWJjLXN5c3RlbXMucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiLzAwMDEtVXNlLXN0cmVycm9yX3Itb25seS1vbi1nbGliYy1zeXN0ZW1zLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDEtVXNlLXN0cmVycm9yX3Itb25seS1vbi1nbGliYy1zeXN0ZW1zLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAyLUFkZC1hLWRlZmluaXRpb24tZm9yLXRoZS1tYWNyby1fX0VMRl9OQVRJVkVfQ0xBU1MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDItQWRkLWEtZGVmaW5pdGlvbi1mb3ItdGhlLW1hY3JvLV9fRUxGX05BVElWRV9DTEFTUy5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMi1BZGQtYS1kZWZpbml0aW9uLWZvci10aGUtbWFjcm8tX19FTEZfTkFUSVZFX0NMQVNTLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDItQWRkLWEtZGVmaW5pdGlvbi1mb3ItdGhlLW1hY3JvLV9fRUxGX05BVElWRV9DTEFTUy5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAyLWRfc3RhdGUuY3BwLUFkZC1taXNzaW5nLWRlcGVuZGVubmN5LW9uLWxvY2FsX3NoYXJkaW4ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDItZF9zdGF0ZS5jcHAtQWRkLW1pc3NpbmctZGVwZW5kZW5uY3ktb24tbG9jYWxfc2hhcmRpbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzQ4OGFkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi8wMDAyLWRfc3RhdGUuY3BwLUFkZC1taXNzaW5nLWRlcGVuZGVubmN5LW9uLWxvY2FsX3NoYXJkaW4ucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJvbSA1NzU5ODc4ZTVkMjc4ZjExYTEwNjNlOGZjY2QxZTZiN2I1NGNhYWRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IFdlZCwgMiBBdWcgMjAxNyAxNjoyNTozNyAtMDcwMAorU3ViamVjdDogW1BBVENIIDIvMl0gZF9zdGF0ZS5jcHA6IEFkZCBtaXNzaW5nIGRlcGVuZGVubmN5IG9uCisgbG9jYWxfc2hhcmRpbmdfaW5mbworCitGaXhlcworfCBzcmMvbW9uZ28vcy9kX3N0YXRlLmNwcDo4MTogZXJyb3I6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gJ21vbmdvOjplbmFibGVMb2NhbFNoYXJkaW5nSW5mbyhtb25nbzo6U2VydmljZUNvbnRleHQqLCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKG1vbmdvOjpPcGVyYXRpb25Db250ZXh0Kiwgc3RkOjpfX2N4eDExOjpiYXNpY19zdHJpbmc8Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiwgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCYpPiknCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CistLS0KKyBzcmMvbW9uZ28vcy9TQ29uc2NyaXB0IHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKK0luZGV4OiBnaXQvc3JjL21vbmdvL3MvU0NvbnNjcmlwdAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdpdC5vcmlnL3NyYy9tb25nby9zL1NDb25zY3JpcHQKKysrKyBnaXQvc3JjL21vbmdvL3MvU0NvbnNjcmlwdAorQEAgLTMxNyw1ICszMTcsNiBAQCBlbnYuTGlicmFyeSgKKyAgICAgICAgICIkQlVJTERfRElSL21vbmdvL2RiL3Mvc2hhcmRpbmciLAorICAgICAgICAgIiRCVUlMRF9ESVIvbW9uZ28vZXhlY3V0b3IvbmV0d29ya19pbnRlcmZhY2VfZmFjdG9yeSIsCisgICAgICAgICAiJEJVSUxEX0RJUi9tb25nby9zL2NsaWVudC9zaGFyZF9sb2NhbCIsCisrICAgICAgICAiJEJVSUxEX0RJUi9tb25nby9zL2xvY2FsX3NoYXJkaW5nX2luZm8iLAorICAgICBdLAorICkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiLzAwMDMtQ29uZGl0aW9uYWxpemUtZ2xpYmMtc3BlY2lmaWMtc3RyZXJyb3Jfci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGIvMDAwMy1Db25kaXRpb25hbGl6ZS1nbGliYy1zcGVjaWZpYy1zdHJlcnJvcl9yLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAzLUNvbmRpdGlvbmFsaXplLWdsaWJjLXNwZWNpZmljLXN0cmVycm9yX3IucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGIvMDAwMy1Db25kaXRpb25hbGl6ZS1nbGliYy1zcGVjaWZpYy1zdHJlcnJvcl9yLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDA0LXdpcmVkdGlnZXItRGlzYWJsZS1zdHJ0b3VxLW9uLW11c2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDQtd2lyZWR0aWdlci1EaXNhYmxlLXN0cnRvdXEtb24tbXVzbC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwNC13aXJlZHRpZ2VyLURpc2FibGUtc3RydG91cS1vbi1tdXNsLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiLzAwMDQtd2lyZWR0aWdlci1EaXNhYmxlLXN0cnRvdXEtb24tbXVzbC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvYXJtNjQtc3VwcG9ydC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGIvYXJtNjQtc3VwcG9ydC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvYXJtNjQtc3VwcG9ydC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi9hcm02NC1zdXBwb3J0LnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi9kaXNhYmxlLWh3LWNyYzMyLW9uLWFybTY0LXMzOTB4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYi9kaXNhYmxlLWh3LWNyYzMyLW9uLWFybTY0LXMzOTB4LnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi9kaXNhYmxlLWh3LWNyYzMyLW9uLWFybTY0LXMzOTB4LnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbW9uZ29kYi9tb25nb2RiL2Rpc2FibGUtaHctY3JjMzItb24tYXJtNjQtczM5MHgucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGJfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL21vbmdvZGIvbW9uZ29kYl9naXQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIzZmYzYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9tb25nb2RiL21vbmdvZGJfZ2l0LmJiCkBAIC0wLDAgKzEsNzYgQEAKK1NVTU1BUlkgPSAibW9uZ29kYiIKK0xJQ0VOU0UgPSAiQUdQTC0zLjAgJiBBcGFjaGUtMi4wICYgWmxpYiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0dOVS1BR1BMLTMuMC50eHQ7bWQ1PTczZjFlYjIwNTE3YzU1YmY5NDkzYjdkZDZlNDgwNzg4IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0FQQUNIRS0yLjAudHh0O21kNT0zYjgzZWY5NjM4N2YxNDY1NWZjODU0ZGRjM2M2YmQ1NyIKKworREVQRU5EUyA9ICJvcGVuc3NsIGxpYnBjcmUgbGlicGNhcCB6bGliIHB5dGhvbiBib29zdCIKKworaW5oZXJpdCBzY29ucyBkb3MydW5peCBzaXRlaW5mbworCitQViA9ICIzLjQuMTMrZ2l0JHtTUkNQVn0iCitTUkNSRVYgPSAiZmJkZWYyY2NjNTNlMGZjYzlhZmI1NzAwNjM2MzNkOTkyYjJhYWU0MiIKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9tb25nb2RiL21vbmdvLmdpdDticmFuY2g9djMuNCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLVRlbGwtc2NvbnMtdG8tdXNlLWJ1aWxkLXNldHRpbmdzLWZyb20tZW52aXJvbm1lbnQtdmEucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMi1kX3N0YXRlLmNwcC1BZGQtbWlzc2luZy1kZXBlbmRlbm5jeS1vbi1sb2NhbF9zaGFyZGluLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtVXNlLWxvbmctbG9uZy1pbnN0ZWFkLW9mLWludDY0X3QucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1Vc2UtX19HTElCQ19fLXRvLWNvbnRyb2wtdXNlLW9mLWdudV9nZXRfbGliY192ZXJzaW9uLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtVXNlLXN0cmVycm9yX3Itb25seS1vbi1nbGliYy1zeXN0ZW1zLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDItQWRkLWEtZGVmaW5pdGlvbi1mb3ItdGhlLW1hY3JvLV9fRUxGX05BVElWRV9DTEFTUy5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAzLUNvbmRpdGlvbmFsaXplLWdsaWJjLXNwZWNpZmljLXN0cmVycm9yX3IucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vYXJtNjQtc3VwcG9ydC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLUludGVsUkRGUE1hdGhMaWIyMFUxLUNoZWNrLWZvci1fX0RFRklORURfd2NoYXJfdC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9kaXNhYmxlLWh3LWNyYzMyLW9uLWFybTY0LXMzOTB4LnBhdGNoIFwKKyAgICAgICAgICAgIgorU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0iXAorICAgICAgICAgICBmaWxlOi8vMDAwNC13aXJlZHRpZ2VyLURpc2FibGUtc3RydG91cS1vbi1tdXNsLnBhdGNoIFwKKyAgICAgICAgICAgIgorUyA9ICIke1dPUktESVJ9L2dpdCIKKworIyBXaXJlZHRpZ2VyIHN1cHBvcnRzIG9ubHkgNjQtYml0IHBsYXRmb3JtcworUEFDS0FHRUNPTkZJR194ODYtNjQgPz89ICJ0Y21hbGxvYyB3aXJlZHRpZ2VyIgorUEFDS0FHRUNPTkZJR19hYXJjaDY0ID8/PSAidGNtYWxsb2Mgd2lyZWR0aWdlciIKK1BBQ0tBR0VDT05GSUcgPz89ICJ0Y21hbGxvYyIKKyMgZ3BlcmZ0b29scyBjb21waWxhdGlvbiBmYWlscyBmb3IgYXJtIGJlbG93IHY3IGJlY2F1c2Ugb2YgbWlzc2luZyBzdXBwb3J0IG9mCisjIGRtYiBvcGVyYXRpb24uIFNvIHdlIHVzZSBzeXN0ZW0tYWxsb2NhdG9yIGluc3RlYWQgb2YgdGNtYWxsb2MKK1BBQ0tBR0VDT05GSUdfcmVtb3ZlX2FybXY2ID0gInRjbWFsbG9jIgorUEFDS0FHRUNPTkZJR19yZW1vdmVfbGliYy1tdXNsID0gInRjbWFsbG9jIgorCisjc3RkOjpjdXJyZW50X2V4Y2VwdGlvbiBpcyB1bmRlZmluZWQgZm9yIGFybSA8IHY2CitDT01QQVRJQkxFX01BQ0hJTkVfYXJtdjQgPSAiKCEuKmFybXY0KS4qIgorQ09NUEFUSUJMRV9NQUNISU5FX2FybXY1ID0gIighLiphcm12NSkuKiIKK0NPTVBBVElCTEVfTUFDSElORV9hcm12N2EgPSAiKCEuKmFybXY3YSkuKiIKK0NPTVBBVElCTEVfTUFDSElORV9hcm12N3ZlID0gIighLiphcm12N3ZlKS4qIgorQ09NUEFUSUJMRV9NQUNISU5FX21pcHM2NCA9ICIoIS4qbWlwczY0KS4qIgorQ09NUEFUSUJMRV9NQUNISU5FX3Bvd2VycGMgPSAiKCEuKnBwYykuKiIKKworUEFDS0FHRUNPTkZJR1t0Y21hbGxvY10gPSAiLS11c2Utc3lzdGVtLXRjbWFsbG9jLC0tYWxsb2NhdG9yPXN5c3RlbSxncGVyZnRvb2xzLCIKK1BBQ0tBR0VDT05GSUdbd2lyZWR0aWdlcl0gPSAiLS13aXJlZHRpZ2VyPW9uLC0td2lyZWR0aWdlcj1vZmYsLCIKKworRVhUUkFfT0VTQ09OUyA9ICItLXByZWZpeD0ke0R9JHtwcmVmaXh9IFwKKyAgICAgICAgICAgICAgICAgTElCUEFUSD0ke1NUQUdJTkdfTElCRElSfSBcCisgICAgICAgICAgICAgICAgIExJTktGTEFHUz0nJHtMREZMQUdTfScgXAorICAgICAgICAgICAgICAgICBDWFhGTEFHUz0nJHtDWFhGTEFHU30nIFwKKyAgICAgICAgICAgICAgICAgVEFSR0VUX0FSQ0g9JHtUQVJHRVRfQVJDSH0gXAorICAgICAgICAgICAgICAgICAtLXNzbCBcCisgICAgICAgICAgICAgICAgIC0tZGlzYWJsZS13YXJuaW5ncy1hcy1lcnJvcnMgXAorICAgICAgICAgICAgICAgICAtLXVzZS1zeXN0ZW0tcGNyZSBcCisgICAgICAgICAgICAgICAgIC0tdXNlLXN5c3RlbS16bGliIFwKKyAgICAgICAgICAgICAgICAgLS1qcy1lbmdpbmU9bm9uZSBcCisgICAgICAgICAgICAgICAgIC0tbm9zdHJpcCBcCisgICAgICAgICAgICAgICAgIC0tZW5kaWFuPSR7QG9lLnV0aWxzLmNvbmRpdGlvbmFsKCdTSVRFSU5GT19FTkRJQU5ORVNTJywgJ2xlJywgJ2xpdHRsZScsICdiaWcnLCBkKX0gXAorICAgICAgICAgICAgICAgICAke1BBQ0tBR0VDT05GSUdfQ09ORkFSR1N9IFwKKyAgICAgICAgICAgICAgICAgbW9uZ29kIG1vbmdvcyIKKworZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7CisgICAgICAgICMgdGVzdHMgdXNlIGhleCBmbG9hdHMsIG5vdCBzdXBwb3J0ZWQgaW4gcGxhaW4gQysrCisgICAgICAgIHNlZCAtZSAnc3wtc3RkPWMrKzExfC1zdGQ9Z251KysxMXxnJyAtaSAke1N9L1NDb25zdHJ1Y3QKK30KK3Njb25zX2RvX2NvbXBpbGUoKSB7CisgICAgICAgICR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9zY29ucyAke1BBUkFMTEVMX01BS0V9ICR7RVhUUkFfT0VTQ09OU30gfHwgXAorICAgICAgICBkaWUgInNjb25zIGJ1aWxkIGV4ZWN1dGlvbiBmYWlsZWQuIgorfQorCitzY29uc19kb19pbnN0YWxsKCkgeworICAgICAgICAke1NUQUdJTkdfQklORElSX05BVElWRX0vc2NvbnMgaW5zdGFsbCAke0VYVFJBX09FU0NPTlN9fHwgXAorICAgICAgICBkaWUgInNjb25zIGluc3RhbGwgZXhlY3V0aW9uIGZhaWxlZC4iCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGItbmF0aXZlXzUuNS41Ny5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiLW5hdGl2ZV81LjUuNTkuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi1uYXRpdmVfNS41LjU3LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi1uYXRpdmVfNS41LjU5LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTllNzA1MAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiLmluYwpAQCAtMCwwICsxLDI5NyBAQAorU1VNTUFSWSA9ICJBIHJvYnVzdCwgc2NhbGFibGUsIGFuZCByZWxpYWJsZSBTUUwgc2VydmVyIgorSE9NRVBBR0UgPSAiaHR0cDovL21hcmlhZGIub3JnIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIgorCitTUkNfVVJJID0gImh0dHBzOi8vZG93bmxvYWRzLm1hcmlhZGIub3JnL2YvJHtCUH0vc291cmNlLyR7QlB9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9maXgtY21ha2UtbW9kdWxlLXBhdGgucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vcmVtb3ZlLWJhZC1wYXRoLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2ZpeC1teXNxbGNsaWVudC1yLXZlcnNpb24ucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vbXkuY25mIFwKKyAgICAgICAgICAgZmlsZTovL215c3FsZC5zZXJ2aWNlIFwKKyAgICAgICAgICAgZmlsZTovL2luc3RhbGxfZGIuc2VydmljZSBcCisgICAgICAgICAgIGZpbGU6Ly9pbnN0YWxsX2RiIFwKKyAgICAgICAgICAgZmlsZTovL215c3FsLXN5c3RlbWQtc3RhcnQgXAorICAgICAgICAgICBmaWxlOi8vY29uZmlndXJlLmNtYWtlLWZpeC12YWxncmluZC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9maXgtYS1idWlsZGluZy1mYWlsdXJlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2NoYW5nZS1jYy10by1jYy12ZXJzaW9uLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtZGlzYWJsZS11Y29udGV4dC1vbi1tdXNsLnBhdGNoIFwKKyAgICAgICAgICAiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIzY2VjNGFmYzA2YjQ2ODY4N2VmNTc2YzkwMTQ4ZDEwZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjMzI2OWNlMjBiNDViMTc3MjM5ZmQxZTNkNmQ5NDI4YTk0MTMxNzExZjEyNzU4ZWJmNWY2NTIyMjI3OGJiMTEwIgorCitTID0gIiR7V09SS0RJUn0vbWFyaWFkYi0ke1BWfSIKKworQklOQ09ORklHX0dMT0IgPSAibXlzcWxfY29uZmlnIgorCitpbmhlcml0IGNtYWtlIGdldHRleHQgYmluY29uZmlnIHVwZGF0ZS1yYy5kIHVzZXJhZGQgc3lzdGVtZAorCitJTklUU0NSSVBUX1BBQ0tBR0VTID0gIiR7UE59LXNlcnZlciAke1BOfS1zZXR1cGRiIgorSU5JVFNDUklQVF9OQU1FXyR7UE59LXNlcnZlciA9ICJteXNxbGQiCitJTklUU0NSSVBUX1BBUkFNU18ke1BOfS1zZXJ2ZXIgPz0gInN0YXJ0IDQ1IDUgLiBzdG9wIDQ1IDAgNiAxIC4iCisKK1VTRVJBRERfUEFDS0FHRVMgPSAiJHtQTn0tc2VydmVyIgorVVNFUkFERF9QQVJBTV8ke1BOfS1zZXJ2ZXIgPSAiLS1zeXN0ZW0gLS1ob21lLWRpciAvdmFyL215c3FsIC1nIG15c3FsIC0tc2hlbGwgL2Jpbi9mYWxzZSBteXNxbCIKK0dST1VQQUREX1BBUkFNXyR7UE59LXNlcnZlciA9ICItLXN5c3RlbSBteXNxbCIKKworSU5JVFNDUklQVF9OQU1FXyR7UE59LXNldHVwZGIgPSAiaW5zdGFsbF9kYiIKK0lOSVRTQ1JJUFRfUEFSQU1TXyR7UE59LXNldHVwZGIgPz0gImRlZmF1bHRzIDQ0IDQ0IgorCitTWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59LXNlcnZlciAke1BOfS1zZXR1cGRiIgorU1lTVEVNRF9TRVJWSUNFXyR7UE59LXNlcnZlciA9ICJteXNxbGQuc2VydmljZSIKK1NZU1RFTURfQVVUT19FTkFCTEVfJHtQTn0tc2VydmVyID89ICJkaXNhYmxlIgorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0tc2V0dXBkYiA9ICJpbnN0YWxsX2RiLnNlcnZpY2UiCitTWVNURU1EX0FVVE9fRU5BQkxFXyR7UE59LXNldHVwZGIgPz0gImVuYWJsZSIKK0FMTE9XX0VNUFRZXyR7UE59LXNldHVwZGIgPz0gIjEiCitGSUxFU18ke1BOfS1zZXR1cGRiID0gIiR7c3lzY29uZmRpcn0vaW5pdC5kL2luc3RhbGxfZGIiCisKK0VYVFJBX09FTUFLRSA9ICInR0VOX0xFWF9IQVNIPSR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9nZW5fbGV4X2hhc2gnIgorCitQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgZCl9IHNldHVwZGIiCitQQUNLQUdFQ09ORklHX2NsYXNzLW5hdGl2ZSA9ICIiCitQQUNLQUdFQ09ORklHW3BhbV0gPSAiLC1EV0lUSE9VVF9BVVRIX1BBTT1UUlVFLGxpYnBhbSIKK1BBQ0tBR0VDT05GSUdbdmFsZ3JpbmRdID0gIi1EV0lUSF9WQUxHUklORD1UUlVFLC1EV0lUSF9WQUxHUklORD1GQUxTRSx2YWxncmluZCIKK1BBQ0tBR0VDT05GSUdbbGliZWRpdF0gPSAiLURMSUJFRElUX0lOVEVSRkFDRT1UUlVFLC1ETElCRURJVF9JTlRFUkZBQ0U9RkFMU0UsbGliZWRpdCIKK1BBQ0tBR0VDT05GSUdba3JiNV0gPSAiLCAsa3JiNSIKK1BBQ0tBR0VDT05GSUdbc2V0dXBkYl0gPSAiLCAsLCR7UE59LXNldHVwZGIiCisKKyMgTWFyaWFEQiBkb2Vzbid0IGxpbmsgcHJvcGVybHkgd2l0aCBnb2xkCisjIGh0dHBzOi8vbWFyaWFkYi5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9NREVWLTU5ODIKK1RBUkdFVF9DRkxBR1MgKz0gIi1mdXNlLWxkPWJmZCIKKworQlVJTERfQ0ZMQUdTICs9ICItZnVzZS1sZD1iZmQiCitCVUlMRF9DWFhGTEFHUyArPSAiLWZ1c2UtbGQ9YmZkIgorCitFWFRSQV9PRUNNQUtFID0gIi1EV0lUSF9FTUJFRERFRF9TRVJWRVI9T04gXAorICAgICAgICAgICAgICAgICAtRFdJVEhfSkVNQUxMT0M9bm8gXAorICAgICAgICAgICAgICAgICAtRFdJVEhPVVRfVE9LVURCPVRSVUUgXAorICAgICAgICAgICAgICAgICAtRENNQUtFX0RJU0FCTEVfRklORF9QQUNLQUdFX0Jvb3N0PVRSVUUgXAorICAgICAgICAgICAgICAgICAtREdST0ZGPUZBTFNFIFwKKyAgICAgICAgICAgICAgICAgLUROUk9GRj1GQUxTRSBcCisgICAgICAgICAgICAgICAgIC1ERU5BQkxFX0RUUkFDRT1GQUxTRSBcCisgICAgICAgICAgICAgICAgIC1EV0lUSF9QSUM9T04gXAorICAgICAgICAgICAgICAgICAtRElOU1RBTExfTEFZT1VUPVJQTSBcCisgICAgICAgICAgICAgICAgIC1ESU5TVEFMTF9ET0NESVI6UEFUSD0ke2RhdGFkaXJ9L2RvYy8ke0JQTn0gXAorICAgICAgICAgICAgICAgICAtRElOU1RBTExfTElCRElSOlBBVEg9JHtiYXNlbGlifSBcCisgICAgICAgICAgICAgICAgIC1ESU5TVEFMTF9QTFVHSU5ESVI6UEFUSD0ke2Jhc2VsaWJ9L3BsdWdpbiBcCisgICAgICAgICAgICAgICAgIC1ESU5TVEFMTF9TWVNDT05GRElSOlBBVEg9JHtzeXNjb25mZGlyfSBcCisgICAgICAgICAgICAgICAgIC1ETVlTUUxfREFUQURJUjpQQVRIPS92YXIvbXlzcWwgXAorICAgICAgICAgICAgICAgICAtRENBVF9FWEVDVVRBQkxFPWB3aGljaCBjYXRgIFwKKyAgICAgICAgICAgICAgICAgLURDTUFLRV9BUjpGSUxFUEFUSD0ke0FSfSIKKworIyBXaXRoIE5pbmphIGl0IGZhaWxzIHdpdGg6CisjIG1ha2U6ICoqKiBObyBydWxlIHRvIG1ha2UgdGFyZ2V0IGBpbnN0YWxsJy4gIFN0b3AuCitPRUNNQUtFX0dFTkVSQVRPUiA9ICJVbml4IE1ha2VmaWxlcyIKKworQVJNX0lOU1RSVUNUSU9OX1NFVF9hcm12NCA9ICJhcm0iCitBUk1fSU5TVFJVQ1RJT05fU0VUX2FybXY1ID0gImFybSIKKworZG9fY29uZmlndXJlX2FwcGVuZCgpIHsKKyAgICAjIGhhbmRsZSBkaXN0cm9zIHdpdGggZGlmZmVyZW50IHZhbHVlcyBvZiAke2xpYmV4ZWNkaXJ9CisgICAgbGliZXhlY2RpcjI9YGVjaG8gJHtsaWJleGVjZGlyfSB8IHNlZCAtZSAncysvdXNyLysrZydgCisgICAgc2VkIC1pIC1lICJzOi9saWJleGVjOi8kbGliZXhlY2RpcjI6ZyIgJHtTfS9zY3JpcHRzL215c3FsX2luc3RhbGxfZGIuc2gKKyAgICBzZWQgLWkgLWUgInM6bXlzcWxkIGxpYmV4ZWM6bXlzcWxkICRsaWJleGVjZGlyMjpnIiAke1N9L3NjcmlwdHMvbXlzcWxfaW5zdGFsbF9kYi5zaAorICAgIHNlZCAtaSAtZSAiczovbGliZXhlYzovJGxpYmV4ZWNkaXIyOmciICR7U30vc2NyaXB0cy9teXNxbGRfc2FmZS5zaAorfQorCitkb19nZW5lcmF0ZV90b29sY2hhaW5fZmlsZV9hcHBlbmRfY2xhc3MtbmF0aXZlICgpIHsKKyAgICAjIElmIHRoZXNlIGFyZSBzZXQgY21ha2Ugd2lsbCBhc3N1bWUgd2UncmUgY3Jvc3MtY29tcGlsaW5nLCB3aGljaCB3aWxsCisgICAgIyByZXN1bHQgaW4gY2VydGFpbiB0aGluZ3Mgd2Ugd2FudCBiZWluZyBkaXNhYmxlZAorICAgIHNlZCAtaSAiL3NldCggQ01BS0VfU1lTVEVNX05BTUUvZCIgJHtXT1JLRElSfS90b29sY2hhaW4uY21ha2UKKyAgICBzZWQgLWkgIi9zZXQoIENNQUtFX1NZU1RFTV9QUk9DRVNTT1IvZCIgJHtXT1JLRElSfS90b29sY2hhaW4uY21ha2UKK30KKworZG9fY29tcGlsZV9wcmVwZW5kX2NsYXNzLXRhcmdldCAoKSB7CisgICAgIyBUaGVzZSBuZWVkIHRvIGJlIGluLXRyZWUgb3IgbWFrZSB3aWxsIHRoaW5rIHRoZXkgbmVlZCB0byBiZSBidWlsdCwKKyAgICAjIGFuZCBzaW5jZSB3ZSdyZSBjcm9zcy1jb21waWxpbmcgdGhhdCBpcyBkaXNhYmxlZAorICAgIGNwICR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9jb21wX2VyciAke1N9L2V4dHJhCisgICAgY3AgJHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9L2NvbXBfc3FsICR7U30vc2NyaXB0cworCisgICAgaWYgWyAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAna3JiNScsICd5ZXMnLCAnbm8nLCBkKX0iID0gIm5vIiBdOyB0aGVuCisgICAgICAgIGlmICEgWyAtZSAke0J9L2luY2x1ZGUvb3BlbnNzbC9rc3NsLmggXSA7IHRoZW4KKyAgICAgICAgICAgIG1rZGlyIC1wICR7Qn0vaW5jbHVkZS9vcGVuc3NsCisgICAgICAgICAgICBlY2hvICIjaWZuZGVmIEtTU0xfSCIgPiR7Qn0vaW5jbHVkZS9vcGVuc3NsL2tzc2wuaAorICAgICAgICAgICAgZWNobyAiI2RlZmluZSBLU1NMX0giID4+JHtCfS9pbmNsdWRlL29wZW5zc2wva3NzbC5oCisgICAgICAgICAgICBlY2hvICIjaW5jbHVkZSA8b3BlbnNzbC9vcGVuc3NsY29uZi5oPiI+PiR7Qn0vaW5jbHVkZS9vcGVuc3NsL2tzc2wuaAorICAgICAgICAgICAgZWNobyAiI2VuZGlmIiA+PiR7Qn0vaW5jbHVkZS9vcGVuc3NsL2tzc2wuaAorICAgICAgICBmaQorICAgIGZpCit9CisKK1NZU1JPT1RfUFJFUFJPQ0VTU19GVU5DUyArPSAibWFyaWFkYl9zeXNyb290X3ByZXByb2Nlc3MiCisKKyMgV2UgbmVlZCB0byBhcHBlbmQgdGhpcyBzbyBpdCBydW5zICphZnRlciogYmluY29uZmlnJ3MgcHJlcHJvY2VzcyBmdW5jdGlvbgorIworIyBXZSByZWFsbHkgZG9uJ3QgY2FyZSBleGFjdGx5IHdoYXQgdGhlIGRpcmVjdG9yaWVzIHdlcmUgc2V0IHRvIG9yaWdpbmFsbHkuCisjIHBsdWdpbmRpciBpcyBub3QgZml4ZWQsIGJ1dCB3ZSBkb24ndCBjcmVhdGUgYW55IHBsdWdpbnMuCisjCittYXJpYWRiX3N5c3Jvb3RfcHJlcHJvY2VzcyAoKSB7CisgICAgc2VkIC1pIC1lcyxecGtnaW5jbHVkZWRpcj0uKixwa2dpbmNsdWRlZGlyPVwnJHtTVEFHSU5HX0lOQ0RJUn0vbXlzcWxcJywgJHtTWVNST09UX0RFU1RESVJ9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS9teXNxbF9jb25maWcKKyAgICBzZWQgLWkgLWVzLF5wa2dsaWJkaXI9LioscGtnbGliZGlyPVwnJHtTVEFHSU5HX0xJQkRJUn1cJywgJHtTWVNST09UX0RFU1RESVJ9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS9teXNxbF9jb25maWcKK30KKworZG9faW5zdGFsbCgpIHsKKyAgICBvZV9ydW5tYWtlICdERVNURElSPSR7RH0nIGluc3RhbGwKKworICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZAorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L215LmNuZiAke0R9LyR7c3lzY29uZmRpcn0vCisgICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vaW5zdGFsbF9kYiAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kLworICAgIG12ICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQvbXlzcWwgJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZC9teXNxbGQKKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9teXNxbGQuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2luc3RhbGxfZGIuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIHNlZCAtaSAtZSAncyxAQklORElSQCwke2JpbmRpcn0sZycgLWUgJ3MsQFBSRUZJWEAsJHtwcmVmaXh9LGcnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL215c3FsZC5zZXJ2aWNlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9pbnN0YWxsX2RiLnNlcnZpY2UKKworICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAorICAgICAgICBlY2hvICJmIC92YXIvbG9nL215c3FsZC5lcnIgMDY0MCBteXNxbCBteXNxbCAtIiBcCisgICAgICAgICAgICA+ICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvOTktbXlzcWxkLmNvbmYKKyAgICBmaQorICAgIGluc3RhbGwgLWQgJHtEfSR7YmluZGlyfQorICAgIGluc3RhbGwgLW0gNzU1ICR7V09SS0RJUn0vbXlzcWwtc3lzdGVtZC1zdGFydCAke0R9JHtiaW5kaXJ9CisgICAgaW5zdGFsbCAtZCAke0R9JHtkYXRhZGlyfS9kb2MvJHtQTn0KKyAgICBpZiBbIC1mICR7RH0ke2RhdGFkaXJ9L2RvYy9SRUFETUUgXTsgdGhlbgorICAgICAgICBtdiAke0R9JHtkYXRhZGlyfS9kb2MvUkVBRE1FICR7RH0ke2RhdGFkaXJ9L2RvYy8ke1BOfS8KKyAgICBmaQorfQorCitQQUNLQUdFUyA9ICIke1BOfS1kYmcgJHtQTn0gXAorICAgIGxpYm15c3FsY2xpZW50LXIgbGlibXlzcWxjbGllbnQtci1kZXYgbGlibXlzcWxjbGllbnQtci1zdGF0aWNkZXYgbGlibXlzcWxjbGllbnQtci1kYmcgXAorICAgIGxpYm15c3FsY2xpZW50IGxpYm15c3FsY2xpZW50LWRldiBsaWJteXNxbGNsaWVudC1zdGF0aWNkZXYgbGlibXlzcWxjbGllbnQtZGJnIFwKKyAgICBsaWJteXNxbGQgbGlibXlzcWxkLWRldiAke1BOfS1jbGllbnQgJHtQTn0tc2VydmVyICR7UE59LXNldHVwZGIgJHtQTn0tbGVmdG92ZXJzIgorQ09ORkZJTEVTXyR7UE59LXNlcnZlciArPSAiJHtzeXNjb25mZGlyfS9teS5jbmYgJHtzeXNjb25mZGlyfS9teS5jbmYuZC9zZXJ2ZXIuY25mIgorQ09ORkZJTEVTXyR7UE59LWNsaWVudCArPSAiJHtzeXNjb25mZGlyfS9teS5jbmYuZC9teXNxbC1jbGllbnRzLmNuZiIKK0NPTkZGSUxFU19saWJteXNxbGNsaWVudCArPSAiJHtzeXNjb25mZGlyfS9teS5jbmYuZC9jbGllbnQuY25mIgorCitGSUxFU18ke1BOfSA9ICIgIgorUkRFUEVORFNfJHtQTn0gPSAiJHtQTn0tY2xpZW50ICR7UE59LXNlcnZlciIKK0FMTE9XX0VNUFRZXyR7UE59ID0gIjEiCisKK1JERVBFTkRTXyR7UE59LWNsaWVudCA9ICJwZXJsIHBlcmwtbW9kdWxlLWdldG9wdC1sb25nIHBlcmwtbW9kdWxlLWZpbGUtdGVtcCBcCisgICAgcGVybC1tb2R1bGUtZmNudGwgcGVybC1tb2R1bGUtc3lzLWhvc3RuYW1lIHBlcmwtbW9kdWxlLWlwYy1vcGVuMyBcCisgICAgcGVybC1tb2R1bGUtZXhwb3J0ZXIiCitSREVQRU5EU18ke1BOfS1zZXJ2ZXIgPSAicGVybCBwZXJsLW1vZHVsZS1nZXRvcHQtbG9uZyBwZXJsLW1vZHVsZS1kYXRhLWR1bXBlciBcCisgICAgcGVybC1tb2R1bGUtZmlsZS1iYXNlbmFtZSBwZXJsLW1vZHVsZS1maWxlLXBhdGggcGVybC1tb2R1bGUtc3lzLWhvc3RuYW1lIFwKKyAgICBwZXJsLW1vZHVsZS1maWxlLWNvcHkgcGVybC1tb2R1bGUtZmlsZS10ZW1wIHBlcmwtbW9kdWxlLXBvc2l4IFwKKyAgICAke1BOfS1jbGllbnQgbGliZGJpLXBlcmwgbGliZGJkLW15c3FsLXBlcmwiCitSREVQRU5EU18ke1BOfS1sZWZ0b3ZlcnMgPSAicGVybCBwZXJsLW1vZHVsZS1jd2QgcGVybC1tb2R1bGUtYmVuY2htYXJrIHBlcmwtbW9kdWxlLWdldG9wdC1sb25nIFwKKyAgICBwZXJsLW1vZHVsZS1wb3NpeCBwZXJsLW1vZHVsZS1kYXRhLWR1bXBlciBwZXJsLW1vZHVsZS1zaWd0cmFwIHBlcmwtbW9kdWxlLXRocmVhZHMgXAorICAgIHBlcmwtbW9kdWxlLXRocmVhZHMtc2hhcmVkIHBlcmwtbW9kdWxlLWlvLXNvY2tldCBwZXJsLW1vZHVsZS1zeXMtaG9zdG5hbWUgcGVybC1tb2R1bGUtZmlsZS1jb3B5IFwKKyAgICBwZXJsLW1vZHVsZS1maWxlLXNwZWMgcGVybC1tb2R1bGUtZmlsZS1maW5kIHBlcmwtbW9kdWxlLWZpbGUtYmFzZW5hbWUgcGVybC1tb2R1bGUtZmlsZS1wYXRoIFwKKyAgICBwZXJsLW1vZHVsZS1jb25zdGFudCBwZXJsLW1vZHVsZS1saWIgcGVybC1tb2R1bGUtZmlsZS10ZW1wIHBlcmwtbW9kdWxlLWZpbGUtc3BlYy1mdW5jdGlvbnMgXAorICAgIHBlcmwtbW9kdWxlLWlvLXNvY2tldC1pbmV0IHBlcmwtbW9kdWxlLWlvLXNlbGVjdCIKK1JERVBFTkRTXyR7UE59LXNldHVwZGIgPSAiY29yZXV0aWxzIgorCisjIEFsbG93IG9sZCBjb2RlIHRvIGxpbmsgdG8gdGhlIGJhY2t3YXJkIGNvbXBhdGlibGUgbGlicmFyeQorUkRFUEVORFNfbGlibXlzcWxjbGllbnQtZGV2ID0gImxpYm15c3FsY2xpZW50LXItZGV2IgorCitGSUxFU19saWJteXNxbGNsaWVudCA9ICJcCisgICAgJHtsaWJkaXJ9L2xpYm15c3FsY2xpZW50LnNvLiogXAorICAgICR7c3lzY29uZmRpcn0vbXkuY25mLmQvY2xpZW50LmNuZiIKK0ZJTEVTX2xpYm15c3FsY2xpZW50LWRldiA9ICIgXAorICAgICR7aW5jbHVkZWRpcn0vbXlzcWwvIFwKKyAgICAke2xpYmRpcn0vbGlibXlzcWxjbGllbnQuc28gXAorICAgICR7c3lzY29uZmRpcn0vYWNsb2NhbCBcCisgICAgJHtiaW5kaXJ9L215c3FsX2NvbmZpZyIKK0ZJTEVTX2xpYm15c3FsY2xpZW50LXN0YXRpY2RldiA9ICJcCisgICAgJHtsaWJkaXJ9LyouYSIKK0ZJTEVTX2xpYm15c3FsY2xpZW50LWRiZyA9ICIke2xpYmRpcn0vcGx1Z2luLy5kZWJ1Zy8gXAorICAgICR7ZGF0YWRpcn0vbXlzcWwtdGVzdC9saWIvTXkvU2FmZVByb2Nlc3MvLmRlYnVnL215X3NhZmVfcHJvY2VzcyIKKworIyBBdm9pZCB3YXJuaW5ncyBhYm91dCBoYV94dHJhZGIuc28uMC4wLjAgYW5kIGhhX2lubm9kYl9wbHVnaW4uc28uMC4wLjAKKyMgd2hpY2ggYXJlIGludGVudGlvbmFsbHkgbm9uLVBJQyBvbiAzMi1iaXQgeDg2IChzZWUgZS5nLgorIyBzdG9yYWdlL3h0cmFkYi9wbHVnLmluIGluIHRoZSBzb3VyY2UpCitJTlNBTkVfU0tJUF9saWJteXNxbGNsaWVudF9hcHBlbmRfeDg2ID0gIiB0ZXh0cmVsIgorCitGSUxFU19saWJteXNxbGNsaWVudC1yID0gIiR7bGliZGlyfS9saWJteXNxbGNsaWVudF9yLnNvLioiCitGSUxFU19saWJteXNxbGNsaWVudC1yLWRldiA9ICJcCisgICAgJHtsaWJkaXJ9L2xpYm15c3FsY2xpZW50X3Iuc28iCitGSUxFU19saWJteXNxbGNsaWVudC1yLXN0YXRpY2RldiA9ICIke2xpYmRpcn0vbGlibXlzcWxjbGllbnRfci5hIgorRklMRVNfbGlibXlzcWxjbGllbnQtci1kYmcgPSAiJHtsaWJkaXJ9L3BsdWdpbi8uZGVidWdsaWJteXNxbGNsaWVudF9yLnNvLioiCisKK0ZJTEVTX2xpYm15c3FsZCA9ICJcCisgICAgJHtsaWJkaXJ9L2xpYm15c3FsZC5zby4qIgorRklMRVNfbGlibXlzcWxkLWRldiA9ICJcCisgICAgJHtsaWJkaXJ9L2xpYm15c3FsZC5zbyIKKworRklMRVNfJHtQTn0tY2xpZW50ID0gIlwKKyAgICAke2JpbmRpcn0vbXlpc2FtX2Z0ZHVtcCBcCisgICAgJHtiaW5kaXJ9L215c3FsIFwKKyAgICAke2JpbmRpcn0vbXlzcWxfY2xpZW50X3Rlc3QgXAorICAgICR7YmluZGlyfS9teXNxbF9jbGllbnRfdGVzdF9lbWJlZGRlZCBcCisgICAgJHtiaW5kaXJ9L215c3FsX2ZpbmRfcm93cyBcCisgICAgJHtiaW5kaXJ9L215c3FsX2ZpeF9leHRlbnNpb25zIFwKKyAgICAke2JpbmRpcn0vbXlzcWxfd2FpdHBpZCBcCisgICAgJHtiaW5kaXJ9L215c3FsYWNjZXNzIFwKKyAgICAke2JpbmRpcn0vbXlzcWxhZG1pbiBcCisgICAgJHtiaW5kaXJ9L215c3FsYnVnIFwKKyAgICAke2JpbmRpcn0vbXlzcWxjaGVjayBcCisgICAgJHtiaW5kaXJ9L215c3FsZHVtcCBcCisgICAgJHtiaW5kaXJ9L215c3FsZHVtcHNsb3cgXAorICAgICR7YmluZGlyfS9teXNxbGltcG9ydCBcCisgICAgJHtiaW5kaXJ9L215c3Fsc2hvdyBcCisgICAgJHtiaW5kaXJ9L215c3Fsc2xhcCBcCisgICAgJHtiaW5kaXJ9L215c3FsdGVzdF9lbWJlZGRlZCBcCisgICAgJHtsaWJleGVjZGlyfS9teXNxbG1hbmFnZXIgXAorICAgICR7c3lzY29uZmRpcn0vbXkuY25mLmQvbXlzcWwtY2xpZW50cy5jbmYiCisKK0ZJTEVTXyR7UE59LXNlcnZlciA9ICJcCisgICAgJHtiaW5kaXJ9L2NvbXBfZXJyIFwKKyAgICAke2JpbmRpcn0vaXNhbWNoayBcCisgICAgJHtiaW5kaXJ9L2lzYW1sb2cgXAorICAgICR7YmluZGlyfS9tc3FsMm15c3FsIFwKKyAgICAke2JpbmRpcn0vbXlfcHJpbnRfZGVmYXVsdHMgXAorICAgICR7YmluZGlyfS9teWlzYW1jaGsgXAorICAgICR7YmluZGlyfS9teWlzYW1sb2cgXAorICAgICR7YmluZGlyfS9teWlzYW1wYWNrIFwKKyAgICAke2JpbmRpcn0vbXlzcWxfY29udmVydF90YWJsZV9mb3JtYXQgXAorICAgICR7YmluZGlyfS9teXNxbF9maXhfcHJpdmlsZWdlX3RhYmxlcyBcCisgICAgJHtiaW5kaXJ9L215c3FsX2luc3RhbGxfZGIgXAorICAgICR7YmluZGlyfS9teXNxbF9zZWN1cmVfaW5zdGFsbGF0aW9uIFwKKyAgICAke2JpbmRpcn0vbXlzcWxfc2V0cGVybWlzc2lvbiBcCisgICAgJHtiaW5kaXJ9L215c3FsLXN5c3RlbWQtc3RhcnQgXAorICAgICR7YmluZGlyfS9teXNxbF90emluZm9fdG9fc3FsIFwKKyAgICAke2JpbmRpcn0vbXlzcWxfdXBncmFkZSBcCisgICAgJHtiaW5kaXJ9L215c3FsX3BsdWdpbiBcCisgICAgJHtiaW5kaXJ9L215c3FsX3phcCBcCisgICAgJHtiaW5kaXJ9L215c3FsYmlubG9nIFwKKyAgICAke2JpbmRpcn0vbXlzcWxkX211bHRpIFwKKyAgICAke2JpbmRpcn0vbXlzcWxkX3NhZmUgXAorICAgICR7YmluZGlyfS9teXNxbGRfc2FmZV9oZWxwZXIgXAorICAgICR7YmluZGlyfS9teXNxbGhvdGNvcHkgXAorICAgICR7YmluZGlyfS9teXNxbHRlc3QgXAorICAgICR7YmluZGlyfS9uZGJfZGVsZXRlX2FsbCBcCisgICAgJHtiaW5kaXJ9L25kYl9kZXNjIFwKKyAgICAke2JpbmRpcn0vbmRiX2Ryb3BfaW5kZXggXAorICAgICR7YmluZGlyfS9uZGJfZHJvcF90YWJsZSBcCisgICAgJHtiaW5kaXJ9L25kYl9tZ20gXAorICAgICR7YmluZGlyfS9uZGJfcmVzdG9yZSBcCisgICAgJHtiaW5kaXJ9L25kYl9zZWxlY3RfYWxsIFwKKyAgICAke2JpbmRpcn0vbmRiX3NlbGVjdF9jb3VudCBcCisgICAgJHtiaW5kaXJ9L25kYl9zaG93X3RhYmxlcyBcCisgICAgJHtiaW5kaXJ9L25kYl93YWl0ZXIgXAorICAgICR7YmluZGlyfS9wYWNrX2lzYW0gXAorICAgICR7YmluZGlyfS9wZXJyb3IgXAorICAgICR7YmluZGlyfS9yZXBsYWNlIFwKKyAgICAke2JpbmRpcn0vcmVzb2x2ZV9zdGFja19kdW1wIFwKKyAgICAke2JpbmRpcn0vcmVzb2x2ZWlwIFwKKyAgICAke2xpYmV4ZWNkaXJ9L215c3FsZCBcCisgICAgJHtzYmluZGlyfS9teXNxbGQgXAorICAgICR7c2JpbmRpcn0vbmRiX2NwY2QgXAorICAgICR7c2JpbmRpcn0vbmRiZCBcCisgICAgJHtzYmluZGlyfS9uZGJfbWdtZCBcCisgICAgJHtsaWJkaXJ9L3BsdWdpbi8qLnNvIFwKKyAgICAke2RhdGFkaXJ9L215c3FsLyBcCisgICAgJHtsb2NhbHN0YXRlZGlyfS9teXNxbC8gXAorICAgICR7c3lzY29uZmRpcn0vaW5pdC5kL215c3FsZCBcCisgICAgJHtzeXNjb25mZGlyfS9teS5jbmYgXAorICAgICR7c3lzY29uZmRpcn0vbXkuY25mLmQvc2VydmVyLmNuZiBcCisgICAgJHtzeXNjb25mZGlyfS90bXBmaWxlcy5kIgorCitERVNDUklQVElPTl8ke1BOfS1sZWZ0b3ZlcnMgPSAidW5wYWNrYWdlZCBhbmQgcHJvYmFibHkgdW5uZWVkZWQgZmlsZXMgZm9yICR7UE59IgorRklMRVNfJHtQTn0tbGVmdG92ZXJzID0gIi8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIvMDAwMS1kaXNhYmxlLXVjb250ZXh0LW9uLW11c2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi8wMDAxLWRpc2FibGUtdWNvbnRleHQtb24tbXVzbC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiLzAwMDEtZGlzYWJsZS11Y29udGV4dC1vbi1tdXNsLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi8wMDAxLWRpc2FibGUtdWNvbnRleHQtb24tbXVzbC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiL2NoYW5nZS1jYy10by1jYy12ZXJzaW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvY2hhbmdlLWNjLXRvLWNjLXZlcnNpb24ucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9jaGFuZ2UtY2MtdG8tY2MtdmVyc2lvbi5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvY2hhbmdlLWNjLXRvLWNjLXZlcnNpb24ucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9jb25maWd1cmUuY21ha2UtZml4LXZhbGdyaW5kLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvY29uZmlndXJlLmNtYWtlLWZpeC12YWxncmluZC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiL2NvbmZpZ3VyZS5jbWFrZS1maXgtdmFsZ3JpbmQucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL2NvbmZpZ3VyZS5jbWFrZS1maXgtdmFsZ3JpbmQucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9maXgtYS1idWlsZGluZy1mYWlsdXJlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvZml4LWEtYnVpbGRpbmctZmFpbHVyZS5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiL2ZpeC1hLWJ1aWxkaW5nLWZhaWx1cmUucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL2ZpeC1hLWJ1aWxkaW5nLWZhaWx1cmUucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9maXgtY21ha2UtbW9kdWxlLXBhdGgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9maXgtY21ha2UtbW9kdWxlLXBhdGgucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9maXgtY21ha2UtbW9kdWxlLXBhdGgucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL2ZpeC1jbWFrZS1tb2R1bGUtcGF0aC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvZml4LW15c3FsY2xpZW50LXItdmVyc2lvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL2ZpeC1teXNxbGNsaWVudC1yLXZlcnNpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUxOWU0MgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL2ZpeC1teXNxbGNsaWVudC1yLXZlcnNpb24ucGF0Y2gKQEAgLTAsMCArMSwxNjAgQEAKK0Zyb20gNmRiMmE2MDYxOTZmYjM4YTZkMTA2ZGM0MDllZWUxY2I5YTQwYTQ0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRvciBEaWRyaWtzZW4gPHRvci5kaWRyaWtzZW5Ab3JhY2xlLmNvbT4KK0RhdGU6IE1vbiwgMjQgSnVuIDIwMTMgMTc6MTU6MzUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gQnVnIzE2ODA5MDU1IE1ZU1FMIDUuNiBBTkQgNS43IFNUSUxMIFVTRSBMSUJNWVNRTENMSUVOVC5TTy4xOAorCitXaXRoIHRoaXMgcGF0Y2gsIHRoZSBsaWJteXNxbC8gZGlyZWN0b3J5IGNvbnRhaW5zOgorbGlibXlzcWxjbGllbnQuYQorbGlibXlzcWxjbGllbnRfci5hIC0+IGxpYm15c3FsY2xpZW50LmEKK2xpYm15c3FsY2xpZW50X3Iuc28gLT4gbGlibXlzcWxjbGllbnQuc28qCitsaWJteXNxbGNsaWVudF9yLnNvLjE4IC0+IGxpYm15c3FsY2xpZW50LnNvLjE4KgorbGlibXlzcWxjbGllbnRfci5zby4xOC4xLjAgLT4gbGlibXlzcWxjbGllbnQuc28uMTguMS4wKgorbGlibXlzcWxjbGllbnQuc28gLT4gbGlibXlzcWxjbGllbnQuc28uMTgqCitsaWJteXNxbGNsaWVudC5zby4xOCAtPiBsaWJteXNxbGNsaWVudC5zby4xOC4xLjAqCitsaWJteXNxbGNsaWVudC5zby4xOC4xLjAqCisKK1RoaXMgZml4ZXMgbGlibXlzcWxjbGllbnRfciBzeW1saW5rcyBwb2ludGluZyB0byB0aGUgdW52ZXJzaW9uZWQKK2xpYm15c3FsY2xpZW50LnNvIHN5bWxpbmsgKGxlYWRpbmcgdG8gcGFja2FnZSBRQSBlcnJvcnMgc2luY2UgdGhlCitsaWJteXNxbGNsaWVudC1yIHBhY2thZ2UgZW5kcyB1cCBkZXBlbmRpbmcgb24gbGlibXlzcWxjbGllbnQtZGV2KS4KKworQm9ycm93ZWQgZnJvbSBNeVNRTCA1LjYgdHJlZSBhdCBodHRwczovL2dpdGh1Yi5jb20vcGVyY29uYS9teXNxbC8KKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IFBhdWwgRWdnbGV0b24gPHBhdWwuZWdnbGV0b25AbGludXguaW50ZWwuY29tPgorCistLS0KKyBjbWFrZS9pbnN0YWxsX21hY3Jvcy5jbWFrZSB8IDI1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0KKyBsaWJteXNxbC9DTWFrZUxpc3RzLnR4dCAgICB8IDM0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY21ha2UvaW5zdGFsbF9tYWNyb3MuY21ha2UgYi9jbWFrZS9pbnN0YWxsX21hY3Jvcy5jbWFrZQoraW5kZXggYjhlZmRmOC4uYTBkMGU2OCAxMDA2NDQKKy0tLSBhL2NtYWtlL2luc3RhbGxfbWFjcm9zLmNtYWtlCisrKysgYi9jbWFrZS9pbnN0YWxsX21hY3Jvcy5jbWFrZQorQEAgLTEsNCArMSw0IEBACistIyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTEsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrIyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTMsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgIyAKKyAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorQEAgLTE2NywyOCArMTY3LDMzIEBAIEVOREZVTkNUSU9OKCkKKyAKKyAKKyAjIEluc3RhbGwgc3ltYm9saWMgbGluayB0byBDTWFrZSB0YXJnZXQuIAorLSMgdGhlIGxpbmsgaXMgY3JlYXRlZCBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGFyZ2V0CistIyBhbmQgZXh0ZW5zaW9uIHdpbGwgYmUgdGhlIHNhbWUgYXMgZm9yIHRhcmdldCBmaWxlLgorLU1BQ1JPKElOU1RBTExfU1lNTElOSyBsaW5rbmFtZSB0YXJnZXQgZGVzdGluYXRpb24gY29tcG9uZW50KQorKyMgV2UgZG8gJ2NkIHBhdGg7IGxuIC1zIHRhcmdldF9uYW1lIGxpbmtfbmFtZScKKysjIFdlIGFsc28gYWRkIGFuIElOU1RBTEwgdGFyZ2V0IGZvciAiJHtwYXRofS8ke2xpbmtfbmFtZX0iCisrTUFDUk8oSU5TVEFMTF9TWU1MSU5LIHRhcmdldCB0YXJnZXRfbmFtZSBsaW5rX25hbWUgZGVzdGluYXRpb24gY29tcG9uZW50KQorIElGKFVOSVgpCisgICBHRVRfVEFSR0VUX1BST1BFUlRZKGxvY2F0aW9uICR7dGFyZ2V0fSBMT0NBVElPTikKKyAgIEdFVF9GSUxFTkFNRV9DT01QT05FTlQocGF0aCAke2xvY2F0aW9ufSBQQVRIKQorLSAgR0VUX0ZJTEVOQU1FX0NPTVBPTkVOVChuYW1lICR7bG9jYXRpb259IE5BTUUpCistICBTRVQob3V0cHV0ICR7cGF0aH0vJHtsaW5rbmFtZX0pCisrICBNRVNTQUdFKFNUQVRVUyAidGFyZ2V0ICR7dGFyZ2V0fSIpCisrICBNRVNTQUdFKFNUQVRVUyAibGlua19uYW1lICR7bGlua19uYW1lfSIpCisrICBNRVNTQUdFKFNUQVRVUyAidGFyZ2V0X25hbWUgJHt0YXJnZXRfbmFtZX0iKQorKyAgTUVTU0FHRShTVEFUVVMgInBhdGggJHtwYXRofSIpCisrICBNRVNTQUdFKFNUQVRVUyAiIikKKysKKysgIFNFVChvdXRwdXQgJHtwYXRofS8ke2xpbmtfbmFtZX0pCisgICBBRERfQ1VTVE9NX0NPTU1BTkQoCisgICAgIE9VVFBVVCAke291dHB1dH0KKyAgICAgQ09NTUFORCAke0NNQUtFX0NPTU1BTkR9IEFSR1MgLUUgcmVtb3ZlIC1mICR7b3V0cHV0fQorICAgICBDT01NQU5EICR7Q01BS0VfQ09NTUFORH0gQVJHUyAtRSBjcmVhdGVfc3ltbGluayAKKy0gICAgICAke25hbWV9IAorLSAgICAgICR7bGlua25hbWV9CisrICAgICAgJHt0YXJnZXRfbmFtZX0gCisrICAgICAgJHtsaW5rX25hbWV9CisgICAgIFdPUktJTkdfRElSRUNUT1JZICR7cGF0aH0KKyAgICAgREVQRU5EUyAke3RhcmdldH0KKyAgICAgKQorICAgCistICBBRERfQ1VTVE9NX1RBUkdFVChzeW1saW5rXyR7bGlua25hbWV9CisrICBBRERfQ1VTVE9NX1RBUkdFVChzeW1saW5rXyR7bGlua19uYW1lfQorICAgICBBTEwKKyAgICAgREVQRU5EUyAke291dHB1dH0pCistICBTRVRfVEFSR0VUX1BST1BFUlRJRVMoc3ltbGlua18ke2xpbmtuYW1lfSBQUk9QRVJUSUVTIENMRUFOX0RJUkVDVF9PVVRQVVQgMSkKKysgIFNFVF9UQVJHRVRfUFJPUEVSVElFUyhzeW1saW5rXyR7bGlua19uYW1lfSBQUk9QRVJUSUVTIENMRUFOX0RJUkVDVF9PVVRQVVQgMSkKKyAgIElGKENNQUtFX0dFTkVSQVRPUiBNQVRDSEVTICJYY29kZSIpCisgICAgICMgRm9yIFhjb2RlLCByZXBsYWNlIHByb2plY3QgY29uZmlnIHdpdGggaW5zdGFsbCBjb25maWcKKyAgICAgU1RSSU5HKFJFUExBQ0UgIiR7Q01BS0VfQ0ZHX0lOVERJUn0iIAorZGlmZiAtLWdpdCBhL2xpYm15c3FsL0NNYWtlTGlzdHMudHh0IGIvbGlibXlzcWwvQ01ha2VMaXN0cy50eHQKK2luZGV4IGJlNTc2MGYuLjk2Mjg2ZmYgMTAwNjQ0CistLS0gYS9saWJteXNxbC9DTWFrZUxpc3RzLnR4dAorKysrIGIvbGlibXlzcWwvQ01ha2VMaXN0cy50eHQKK0BAIC00MzMsNiArNDMzLDEyIEBAIElGKE1TVkMpCisgIElOU1RBTExfREVCVUdfVEFSR0VUKGNsaWVudGxpYiBERVNUSU5BVElPTiAke0lOU1RBTExfTElCRElSfS9kZWJ1ZykKKyBFTkRJRigpCisgCisrTUFDUk8oR0VUX1RBUkdFVF9OQU1FIHRhcmdldCBvdXRfbmFtZSkKKysgIEdFVF9UQVJHRVRfUFJPUEVSVFkobG9jYXRpb24gJHt0YXJnZXR9IExPQ0FUSU9OKQorKyAgR0VUX0ZJTEVOQU1FX0NPTVBPTkVOVChuYW1lICR7bG9jYXRpb259IE5BTUUpCisrICBTRVQoJHtvdXRfbmFtZX0gJHtuYW1lfSkKKytFTkRNQUNSTygpCisrCisgSUYoVU5JWCkKKyAgIE1BQ1JPKEdFVF9WRVJTSU9ORURfTElCTkFNRSBMSUJOQU1FIEVYVEVOU0lPTiBWRVJTSU9OIE9VVE5BTUUpCisgICAgIFNFVChET1RfVkVSU0lPTiAiLiR7VkVSU0lPTn0iKQorQEAgLTQ0NSw3ICs0NTEsMTMgQEAgSUYoVU5JWCkKKyAgICAgICBTRVQoJHtPVVROQU1FfSAke0xJQk5BTUV9JHtFWFRFTlNJT059JHtET1RfVkVSU0lPTn0pCisgICAgIEVORElGKCkgCisgICBFTkRNQUNSTygpCistICBJTlNUQUxMX1NZTUxJTksoJHtDTUFLRV9TVEFUSUNfTElCUkFSWV9QUkVGSVh9bXlzcWxjbGllbnRfci5hIG15c3FsY2xpZW50ICR7SU5TVEFMTF9MSUJESVJ9IERldmVsb3BtZW50KQorK0VORElGKCkKKysKKytJRihVTklYKQorKyAgR0VUX1RBUkdFVF9OQU1FKG15c3FsY2xpZW50IGxpYl9uYW1lKQorKyAgSU5TVEFMTF9TWU1MSU5LKG15c3FsY2xpZW50CisrICAgICR7bGliX25hbWV9ICR7Q01BS0VfU1RBVElDX0xJQlJBUllfUFJFRklYfW15c3FsY2xpZW50X3IuYQorKyAgICAke0lOU1RBTExfTElCRElSfSBEZXZlbG9wbWVudCkKKyBFTkRJRigpCisgCisgSUYoTk9UIERJU0FCTEVfU0hBUkVEKQorQEAgLTQ1NiwxMCArNDY4LDkgQEAgSUYoTk9UIERJU0FCTEVfU0hBUkVEKQorICAgICAjIGxpYnRvb2wgY29tcGF0YWJpbGl0eQorICAgICBJRihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICJGcmVlQlNEIiBPUiBBUFBMRSkKKyAgICAgICBTRVQoT1NfU0hBUkVEX0xJQl9WRVJTSU9OICIke1NIQVJFRF9MSUJfTUFKT1JfVkVSU0lPTn0iKQorLSAgICBFTFNFSUYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiSFAtVVgiKQorLSAgICAgIFNFVChPU19TSEFSRURfTElCX1ZFUlNJT04gIiR7U0hBUkVEX0xJQl9NQUpPUl9WRVJTSU9OfS4wIikKKyAgICAgRUxTRSgpCistICAgICAgU0VUKE9TX1NIQVJFRF9MSUJfVkVSU0lPTiAiJHtTSEFSRURfTElCX01BSk9SX1ZFUlNJT059LjAuMCIpCisrICAgICAgU0VUKE9TX1NIQVJFRF9MSUJfVkVSU0lPTgorKyAgICAgICAgIiR7U0hBUkVEX0xJQl9NQUpPUl9WRVJTSU9OfS4ke1NIQVJFRF9MSUJfTUlOT1JfVkVSU0lPTn0uMCIpCisgICAgIEVORElGKCkKKyAgICAgIyBOYW1lIG9mIHNoYXJlZCBsaWJyYXJ5IGlzIG15c3FsY2xpZW50IG9uIFVuaXgKKyAgICAgU0VUX1RBUkdFVF9QUk9QRVJUSUVTKGxpYm15c3FsIFBST1BFUlRJRVMgCitAQCAtNDgyLDggKzQ5MywxMyBAQCBJRihOT1QgRElTQUJMRV9TSEFSRUQpCisgICAgICAgIiR7Q01BS0VfU0hBUkVEX0xJQlJBUllfU1VGRklYfSIKKyAgICAgICAiIgorICAgICAgIGxpbmtuYW1lKQorLSAgICBJTlNUQUxMX1NZTUxJTksoJHtsaW5rbmFtZX0gbGlibXlzcWwgJHtJTlNUQUxMX0xJQkRJUn0gU2hhcmVkTGlicmFyaWVzKQorLSAgICBTRVQoT1NfU0hBUkVEX0xJQl9TWU1MSU5LUyAiJHtTSEFSRURfTElCX01BSk9SX1ZFUlNJT059IiAiJHtPU19TSEFSRURfTElCX1ZFUlNJT059IikKKysgICAgR0VUX1RBUkdFVF9OQU1FKGxpYm15c3FsIGxpYl9uYW1lKQorKyAgICBHRVRfRklMRU5BTUVfQ09NUE9ORU5UKGxpYl9uYW1lX3dlICR7bGliX25hbWV9IE5BTUVfV0UpCisrICAgIElOU1RBTExfU1lNTElOSyhsaWJteXNxbAorKyAgICAgICR7bGliX25hbWV9ICR7bGlua25hbWV9CisrICAgICAgJHtJTlNUQUxMX0xJQkRJUn0gU2hhcmVkTGlicmFyaWVzKQorKyAgICBTRVQoT1NfU0hBUkVEX0xJQl9TWU1MSU5LUworKyAgICAgICIke1NIQVJFRF9MSUJfTUFKT1JfVkVSU0lPTn0iICIke09TX1NIQVJFRF9MSUJfVkVSU0lPTn0iKQorICAgICBMSVNUKFJFTU9WRV9EVVBMSUNBVEVTIE9TX1NIQVJFRF9MSUJfU1lNTElOS1MpCisgICAgIEZPUkVBQ0godmVyICR7T1NfU0hBUkVEX0xJQl9TWU1MSU5LU30pCisgICAgICAgR0VUX1ZFUlNJT05FRF9MSUJOQU1FKAorQEAgLTQ5MSw3ICs1MDcsMTEgQEAgSUYoTk9UIERJU0FCTEVfU0hBUkVEKQorICAgICAgICAgIiR7Q01BS0VfU0hBUkVEX0xJQlJBUllfU1VGRklYfSIKKyAgICAgICAgICIke3Zlcn0iCisgICAgICAgICBsaW5rbmFtZSkKKy0gICAgICBJTlNUQUxMX1NZTUxJTksoJHtsaW5rbmFtZX0gbGlibXlzcWwgJHtJTlNUQUxMX0xJQkRJUn0gU2hhcmVkTGlicmFyaWVzKQorKyAgICAgIEdFVF9WRVJTSU9ORURfTElCTkFNRSgKKysgICAgICAgICR7bGliX25hbWVfd2V9ICIke0NNQUtFX1NIQVJFRF9MSUJSQVJZX1NVRkZJWH0iICIke3Zlcn0iIGxpYl9uYW1lX3ZlcikKKysgICAgICBJTlNUQUxMX1NZTUxJTksobGlibXlzcWwKKysgICAgICAgICR7bGliX25hbWVfdmVyfSAke2xpbmtuYW1lfQorKyAgICAgICAgJHtJTlNUQUxMX0xJQkRJUn0gU2hhcmVkTGlicmFyaWVzKQorICAgICBFTkRGT1JFQUNIKCkKKyAgIEVORElGKCkKKyBFTkRJRigpCistLSAKKzIuMC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9pbnN0YWxsX2RiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvaW5zdGFsbF9kYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiL2luc3RhbGxfZGIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL2luc3RhbGxfZGIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9pbnN0YWxsX2RiLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9pbnN0YWxsX2RiLnNlcnZpY2UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9pbnN0YWxsX2RiLnNlcnZpY2UKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL2luc3RhbGxfZGIuc2VydmljZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiL215LmNuZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL215LmNuZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiL215LmNuZgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvbXkuY25mCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIvbXlzcWwtc3lzdGVtZC1zdGFydCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL215c3FsLXN5c3RlbWQtc3RhcnQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9teXNxbC1zeXN0ZW1kLXN0YXJ0CnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9teXNxbC1zeXN0ZW1kLXN0YXJ0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIvbXlzcWxkLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9teXNxbGQuc2VydmljZQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiL215c3FsZC5zZXJ2aWNlCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYi9teXNxbGQuc2VydmljZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiL3JlbW92ZS1iYWQtcGF0aC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9tYXJpYWRiL3JlbW92ZS1iYWQtcGF0aC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9tYXJpYWRiL3JlbW92ZS1iYWQtcGF0aC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGIvcmVtb3ZlLWJhZC1wYXRoLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGJfNS41LjU3LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL21hcmlhZGJfNS41LjU5LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGJfNS41LjU3LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvbXlzcWwvbWFyaWFkYl81LjUuNTkuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbXlzcWwtcHl0aG9uXzEuMi41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL215c3FsL215c3FsLXB5dGhvbl8xLjIuNS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9teXNxbC9teXNxbC1weXRob25fMS4yLjUuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9teXNxbC9teXNxbC1weXRob25fMS4yLjUuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL2ZpbGVzLzAwMDEtVXNlLXBrZy1jb25maWctZm9yLWxpYnhtbDItZGV0ZWN0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvZmlsZXMvMDAwMS1Vc2UtcGtnLWNvbmZpZy1mb3ItbGlieG1sMi1kZXRlY3Rpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UyYTYwYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL2ZpbGVzLzAwMDEtVXNlLXBrZy1jb25maWctZm9yLWxpYnhtbDItZGV0ZWN0aW9uLnBhdGNoCkBAIC0wLDAgKzEsNDAgQEAKK0Zyb20gZDUyZTMzMGJlODk1YmI4YzVmMGZiM2UyODg0NzY2YWNiZDk0MmE4NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBoaWxpcCBCYWxpc3RlciA8cGhpbGlwQGJhbGlzdGVyLm9yZz4KK0RhdGU6IFR1ZSwgMSBKdWwgMjAxNCAwOTo0MDo0NCAtMDQwMAorU3ViamVjdDogW1BBVENIXSBVc2UgcGtnLWNvbmZpZyBmb3IgbGlieG1sMiBkZXRlY3Rpb24uCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KKworeG1sMi1jb25maWcgZG9lcyBub3Qgd29yay4gVXNlIHBrZ2NvbmZpZyB0byBzZXQgQ1BQRkxBR1MgYW5kIExJQlMuCisKK1NpZ25lZC1vZmYtYnk6IFBoaWxpcCBCYWxpc3RlciA8cGhpbGlwQGJhbGlzdGVyLm9yZz4KKy0tLQorIGNvbmZpZ3VyZS5pbiB8IDE1ICsrLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQorCitJbmRleDogcG9zdGdyZXNxbC05LjQuMTUvY29uZmlndXJlLmluCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gcG9zdGdyZXNxbC05LjQuMTUub3JpZy9jb25maWd1cmUuaW4KKysrKyBwb3N0Z3Jlc3FsLTkuNC4xNS9jb25maWd1cmUuaW4KK0BAIC03NTksMTkgKzc1OSw4IEBAIFBHQUNfQVJHX0JPT0wod2l0aCwgbGlieG1sLCBubywgW2J1aWxkIHcKKyAgICAgICAgICAgICAgIFtBQ19ERUZJTkUoW1VTRV9MSUJYTUxdLCAxLCBbRGVmaW5lIHRvIDEgdG8gYnVpbGQgd2l0aCBYTUwgc3VwcG9ydC4gKC0td2l0aC1saWJ4bWwpXSldKQorIAorIGlmIHRlc3QgIiR3aXRoX2xpYnhtbCIgPSB5ZXMgOyB0aGVuCistICBBQ19DSEVDS19QUk9HUyhYTUwyX0NPTkZJRywgeG1sMi1jb25maWcpCistICBpZiB0ZXN0IC1uICIkWE1MMl9DT05GSUciOyB0aGVuCistICAgIGZvciBwZ2FjX29wdGlvbiBpbiBgJFhNTDJfQ09ORklHIC0tY2ZsYWdzYDsgZG8KKy0gICAgICBjYXNlICRwZ2FjX29wdGlvbiBpbgorLSAgICAgICAgLUkqfC1EKikgQ1BQRkxBR1M9IiRDUFBGTEFHUyAkcGdhY19vcHRpb24iOzsKKy0gICAgICBlc2FjCistICAgIGRvbmUKKy0gICAgZm9yIHBnYWNfb3B0aW9uIGluIGAkWE1MMl9DT05GSUcgLS1saWJzYDsgZG8KKy0gICAgICBjYXNlICRwZ2FjX29wdGlvbiBpbgorLSAgICAgICAgLUwqKSBMREZMQUdTPSIkTERGTEFHUyAkcGdhY19vcHRpb24iOzsKKy0gICAgICBlc2FjCistICAgIGRvbmUKKy0gIGZpCisrICBDUFBGTEFHUz0iJENQUEZMQUdTIGBwa2ctY29uZmlnIC0tc2hvcnQtZXJyb3JzIC0tcHJpbnQtZXJyb3JzIC0tY2ZsYWdzICJsaWJ4bWwtMi4wIiAyPiYxYCIKKysgIExJQlM9ImBwa2ctY29uZmlnIC0tc2hvcnQtZXJyb3JzIC0tcHJpbnQtZXJyb3JzIC0tbGlicyAibGlieG1sLTIuMCIgMj4mMWAgJExJQlMiCisgZmkKKyAKKyBBQ19TVUJTVCh3aXRoX2xpYnhtbCkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL2ZpbGVzL25vdC1jaGVjay1saWJwZXJsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvZmlsZXMvbm90LWNoZWNrLWxpYnBlcmwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTcxNTEwOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL2ZpbGVzL25vdC1jaGVjay1saWJwZXJsLnBhdGNoCkBAIC0wLDAgKzEsMjggQEAKK1tQQVRDSF0gbm90IGNoZWNrIGxpYnBlcmwgdW5kZXIgY3Jvc3MgY29tcGlsaW5nCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KKworbGlicGVybCBsZGZsYWdzIHJldHVybmVkIGJ5IFBHQUNfQ0hFQ0tfUEVSTF9FTUJFRF9MREZMQUdTIGFyZSBuYXRpdmUsCitjYW4gbm90IGJlIHVzZWQgdG8gY2hlY2sgdGFyZ2V0IGxpYnJhcnkuCisKK3Bvc3RwcmVzcWwgaGFzIHRoZSBkZXBlbmRlbmN5IG9uIHBlcmwsIHNvIG5vdCBuZWVkIHRvIGNoZWNrIGxpYnBlcmwKK2FnYWluLCBsaWtlIGluIHBvc3RncmVzcWwtOS4yLjQgCisKK1NpZ25lZC1vZmYtYnk6IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KKy0tLQorIGNvbmZpZ3VyZS5pbiB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworSW5kZXg6IHBvc3RncmVzcWwtOS40LjE1L2NvbmZpZ3VyZS5pbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHBvc3RncmVzcWwtOS40LjE1Lm9yaWcvY29uZmlndXJlLmluCisrKysgcG9zdGdyZXNxbC05LjQuMTUvY29uZmlndXJlLmluCitAQCAtMTg3OSw3ICsxODc5LDcgQEAgaWYgdGVzdCAiJHdpdGhfdGNsIiA9IHllczsgdGhlbgorIGZpCisgCisgIyBjaGVjayBmb3IgPHBlcmwuaD4KKy1pZiB0ZXN0ICIkd2l0aF9wZXJsIiA9IHllczsgdGhlbgorK2lmIHRlc3QgIiR3aXRoX3BlcmwiID0geWVzICYmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0gbm87IHRoZW4KKyAgIGFjX3NhdmVfQ1BQRkxBR1M9JENQUEZMQUdTCisgICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJHBlcmxfYXJjaGxpYmV4cC9DT1JFIgorICAgQUNfQ0hFQ0tfSEVBREVSKHBlcmwuaCwgW10sIFtBQ19NU0dfRVJST1IoW2hlYWRlciBmaWxlIDxwZXJsLmg+IGlzIHJlcXVpcmVkIGZvciBQZXJsXSldLApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwtYmFzaHByb2ZpbGUgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcG9zdGdyZXNxbC9maWxlcy9wb3N0Z3Jlc3FsLWJhc2hwcm9maWxlCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bvc3RncmVzcWwvZmlsZXMvcG9zdGdyZXNxbC1iYXNocHJvZmlsZQpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvZmlsZXMvcG9zdGdyZXNxbC1iYXNocHJvZmlsZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwtc2V0dXAgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcG9zdGdyZXNxbC9maWxlcy9wb3N0Z3Jlc3FsLXNldHVwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bvc3RncmVzcWwvZmlsZXMvcG9zdGdyZXNxbC1zZXR1cApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvZmlsZXMvcG9zdGdyZXNxbC1zZXR1cApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwuaW5pdCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwuaW5pdApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwuaW5pdApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvZmlsZXMvcG9zdGdyZXNxbC5pbml0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bvc3RncmVzcWwvZmlsZXMvcG9zdGdyZXNxbC5wYW0gYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcG9zdGdyZXNxbC9maWxlcy9wb3N0Z3Jlc3FsLnBhbQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwucGFtCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcG9zdGdyZXNxbC9maWxlcy9wb3N0Z3Jlc3FsLnBhbQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwuc2VydmljZSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwuc2VydmljZQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL3Bvc3RncmVzcWwuc2VydmljZQpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvZmlsZXMvcG9zdGdyZXNxbC5zZXJ2aWNlCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bvc3RncmVzcWwvcG9zdGdyZXNxbC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcG9zdGdyZXNxbC9wb3N0Z3Jlc3FsLmluYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL3Bvc3RncmVzcWwuaW5jCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcG9zdGdyZXNxbC9wb3N0Z3Jlc3FsLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvcG9zdGdyZXNxbF85LjQuMTcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcG9zdGdyZXNxbC9wb3N0Z3Jlc3FsXzkuNC4xNy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjExODRhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3Bvc3RncmVzcWwvcG9zdGdyZXNxbF85LjQuMTcuYmIKQEAgLTAsMCArMSwxNCBAQAorcmVxdWlyZSBwb3N0Z3Jlc3FsLmluYworCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZUklHSFQ7bWQ1PTZkYzk1ZTYzYWE0ZDcyNTAyZmY4MTkzZGZlMmRkZDM4IgorCitTUkNfVVJJICs9ICJcCisgICAgZmlsZTovL25vdC1jaGVjay1saWJwZXJsLnBhdGNoIFwKKyIKKworZG9fY29tcGlsZV9wcmVwZW5kX2xpYmMtbXVzbCgpIHsKKyAgICBzZWQgLWkgLWUgJ3MvXC1sbnNsLy9nJyAke0J9L3NyYy9NYWtlZmlsZS5nbG9iYWwKK30KKworU1JDX1VSSVttZDVzdW1dID0gIjBhMDhmNDA3OGY1ZTRhNTRlNzY0ZjYzYWQzOGE2ZGUzIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjdhMzIwY2QzMzUwNTJiODQwZDIwOWRjOTY4OGYwOTk2NTc2MzM1MWM1OTBlM2NjN2JmNTc3NTkxMTc5ZmQ3YzYiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BzcWxvZGJjL2ZpbGVzL3BzcWxvZGJjLWRvbm90LXVzZS10aGUtaGFyZGNvZGUtbGliZGlyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3BzcWxvZGJjL2ZpbGVzL3BzcWxvZGJjLWRvbm90LXVzZS10aGUtaGFyZGNvZGUtbGliZGlyLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BzcWxvZGJjL2ZpbGVzL3BzcWxvZGJjLWRvbm90LXVzZS10aGUtaGFyZGNvZGUtbGliZGlyLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcHNxbG9kYmMvZmlsZXMvcHNxbG9kYmMtZG9ub3QtdXNlLXRoZS1oYXJkY29kZS1saWJkaXIucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcHNxbG9kYmMvZmlsZXMvcHNxbG9kYmMtZml4LWZvci1wdGVzdC1zdXBwb3J0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3BzcWxvZGJjL2ZpbGVzL3BzcWxvZGJjLWZpeC1mb3ItcHRlc3Qtc3VwcG9ydC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wc3Fsb2RiYy9maWxlcy9wc3Fsb2RiYy1maXgtZm9yLXB0ZXN0LXN1cHBvcnQucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wc3Fsb2RiYy9maWxlcy9wc3Fsb2RiYy1maXgtZm9yLXB0ZXN0LXN1cHBvcnQucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcHNxbG9kYmMvZmlsZXMvcHNxbG9kYmMtcmVtb3ZlLXNvbWUtY2hlY2tzLWZvci1jcm9zcy1jb21waWxpbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcHNxbG9kYmMvZmlsZXMvcHNxbG9kYmMtcmVtb3ZlLXNvbWUtY2hlY2tzLWZvci1jcm9zcy1jb21waWxpbmcucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcHNxbG9kYmMvZmlsZXMvcHNxbG9kYmMtcmVtb3ZlLXNvbWUtY2hlY2tzLWZvci1jcm9zcy1jb21waWxpbmcucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9wc3Fsb2RiYy9maWxlcy9wc3Fsb2RiYy1yZW1vdmUtc29tZS1jaGVja3MtZm9yLWNyb3NzLWNvbXBpbGluZy5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wc3Fsb2RiYy9maWxlcy9ydW4tcHRlc3QgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcHNxbG9kYmMvZmlsZXMvcnVuLXB0ZXN0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BzcWxvZGJjL2ZpbGVzL3J1bi1wdGVzdApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3BzcWxvZGJjL2ZpbGVzL3J1bi1wdGVzdApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wc3Fsb2RiYy9wc3Fsb2RiYy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvcHNxbG9kYmMvcHNxbG9kYmMuaW5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BzcWxvZGJjL3BzcWxvZGJjLmluYwpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3BzcWxvZGJjL3BzcWxvZGJjLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wc3Fsb2RiYy9wc3Fsb2RiY18wOS4wNS4wMzAwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3BzcWxvZGJjL3BzcWxvZGJjXzA5LjA1LjAzMDAuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcHNxbG9kYmMvcHNxbG9kYmNfMDkuMDUuMDMwMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3BzcWxvZGJjL3BzcWxvZGJjXzA5LjA1LjAzMDAuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9yb2Nrc2RiL3JvY2tzZGJfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3JvY2tzZGIvcm9ja3NkYl9naXQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU2Y2JhZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9yb2Nrc2RiL3JvY2tzZGJfZ2l0LmJiCkBAIC0wLDAgKzEsMzIgQEAKK1NVTU1BUlkgPSAiUm9ja3NEQiBhbiBlbWJlZGRhYmxlLCBwZXJzaXN0ZW50IGtleS12YWx1ZSBzdG9yZSIKK0RFU0NSSVBUSU9OID0gIlJvY2tzREIgaXMgbGlicmFyeSB0aGF0IHByb3ZpZGVzIGFuIGVtYmVkZGFibGUsIHBlcnNpc3RlbnQga2V5LXZhbHVlIHN0b3JlIGZvciBmYXN0IHN0b3JhZ2UuIgorSE9NRVBBR0UgPSAiaHR0cDovL3JvY2tzZGIub3JnLyIKK0xJQ0VOU0UgPSAiKEFwYWNoZS0yLjAgfCBHUEwtMi4wKSAmIEJTRC0zLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UuQXBhY2hlO21kNT0zYjgzZWY5NjM4N2YxNDY1NWZjODU0ZGRjM2M2YmQ1NyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9MSUNFTlNFLmxldmVsZGI7bWQ1PWZiMDRmZjU3YTE0ZjMwOGYyZWVkNGE5Yjg3ZDQ1ODM3IgorCitTUkNSRVYgPSAiODk2OTQ0NTY0MjAzOTU2NjIxNGQ2NTBjYzY2MTQ4NDllN2RkNWUxNyIKK1NSQ0JSQU5DSCA9ICI1LjEyLmZiIgorUFYgPSAiNS4xMi4yIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vZmFjZWJvb2svJHtCUE59LmdpdDticmFuY2g9JHtTUkNCUkFOQ0h9IgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitpbmhlcml0IGNtYWtlCisKK1BBQ0tBR0VDT05GSUcgPz89ICJiemlwMiB6bGliIGx6NCIKK1BBQ0tBR0VDT05GSUdbYnppcDJdID0gIi1EV0lUSF9CWjI9T04sLURXSVRIX0JaMj1PRkYsYnppcDIiCitQQUNLQUdFQ09ORklHW2x6NF0gPSAiLURXSVRIX0xaND1PTiwtRFdJVEhfTFo0PU9GRixsejQiCitQQUNLQUdFQ09ORklHW3psaWJdID0gIi1EV0lUSF9aTElCPU9OLC1EV0lUSF9aTElCPU9GRix6bGliIgorUEFDS0FHRUNPTkZJR1tsaXRlXSA9ICItRFJPQ0tTREJfTElURT1PTiwtRFJPQ0tTREJfTElURT1PRkYiCisKKyMgVG9vbHMgYW5kIHRlc3RzIGN1cnJlbnRseSBkb24ndCBjb21waWxlIG9uIGFybXY1IHNvIHdlIGRpc2FibGUgdGhlbQorRVhUUkFfT0VDTUFLRSA9ICJcCisgICAgLURQT1JUQUJMRT1PTiBcCisgICAgLURXSVRIX1RFU1RTPU9GRiBcCisgICAgLURXSVRIX1RPT0xTPU9GRiBcCisiCisKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2NtYWtlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zb2NpL3NvY2kvc29jaV9saWJkaXIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvc29jaS9zb2NpL3NvY2lfbGliZGlyLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3NvY2kvc29jaS9zb2NpX2xpYmRpci5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3NvY2kvc29jaS9zb2NpX2xpYmRpci5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3NvY2kvc29jaV8zLjIuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9zb2NpL3NvY2lfMy4yLjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YyMmQzOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9zb2NpL3NvY2lfMy4yLjMuYmIKQEAgLTAsMCArMSw0OSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTUgS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKyMgUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIChzZWUgQ09QWUlORy5NSVQgZm9yIHRoZSB0ZXJtcykKKworREVTQ1JJUFRJT04gPSAiVGhlIEMrKyBEYXRhYmFzZSBBY2Nlc3MgTGlicmFyeSIKK0hPTUVQQUdFID0gImh0dHA6Ly9zb2NpLnNvdXJjZWZvcmdlLm5ldCIKK0xJQ0VOU0UgPSAiQlNMLTEuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0VfMV8wLnR4dDttZDU9ZTQyMjRjY2FlY2IxNGQ5NDJjNzFkMzFiZWYyMGQ3OGMiCitTRUNUSU9OID0gImxpYnMiCitERVBFTkRTID0gImJvb3N0IgorCisKK1NSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3Byb2plY3QvJHtCUE59LyR7QlBOfS8ke0JQfS8ke0JQfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vc29jaV9saWJkaXIucGF0Y2ggXAorICAgICAgICAgICIKK1NSQ19VUklbbWQ1c3VtXSA9ICJhY2ZiY2NmMTc2Y2QyMGUwNjgzM2E4MDM3YTJkMzY5OSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIyYzY1OWRiMGY0ZjdiNDI0YmJjZmZlMTk1YzAzYzI5M2ExZGJmNjc2MTg5YTI3YjA3N2ZiMmFhYjRkNTNhNjEwIgorCitURVNUQ09ORklHID0gJy1EU09DSV9URVNUX0VNUFRZX0NPTk5TVFI9ImR1bW15IiAtRFNPQ0lfVEVTVF9TUUxJVEUzX0NPTk5TVFI9InRlc3QuZGIiIFwKKyAgICAgICAgICAgICAgLURTT0NJX1RFU1RfUE9TVEdSRVNRTF9DT05OU1RSOlNUUklORz0iZGJuYW1lPXNvY2lfdGVzdCIgXAorICAgICAgICAgICAgICAtRFNPQ0lfVEVTVF9NWVNRTF9DT05OU1RSOlNUUklORz0iZGI9c29jaV90ZXN0IHVzZXI9b2UgcGFzc3dvcmQ9b2UiJworCitPQkFTRURJUiA/PSAiL29wdC9vcmFjbGUiCitPSU5DRElSID0gInJkYm1zL3B1YmxpYyIKK09MSUJESVIgPSAibGliIgorCitQQUNLQUdFQ09ORklHW3NxbGl0ZTNdID0gIi1EU09DSV9TUUxJVEUzPU9OLC1EU09DSV9TUUxJVEUzPU9GRixzcWxpdGUzLCIKK1BBQ0tBR0VDT05GSUdbbXlzcWxdID0gIi1EU09DSV9NWVNRTD1PTiwtRFNPQ0lfTVlTUUw9T0ZGLG1hcmlhZGIsIgorUEFDS0FHRUNPTkZJR1twb3N0Z3Jlc3FsXSA9ICItRFNPQ0lfUE9TVEdSRVNRTD1PTiwtRFNPQ0lfUE9TVEdSRVNRTD1PRkYscG9zdGdyZXNxbCwiCitQQUNLQUdFQ09ORklHW29kYmNdID0gIi1EU09DSV9PREJDPU9OLC1EU09DSV9PREJDPU9GRiwsIgorUEFDS0FHRUNPTkZJR1tlbXB0eV0gPSAiLURTT0NJX0VNUFRZPU9OLC1EU09DSV9FTVBUWT1PRkYsLCIKK1BBQ0tBR0VDT05GSUdbb3JhY2xlXSA9ICItRFdJVEhfT1JBQ0xFPU9OIC0td2l0aC1vcmFjbGUtaW5jbHVkZT0ke09JTkNESVJ9IC0td2l0aC1vcmFjbGUtbGliPSR7T0xJQkRJUn0sLURXSVRIX09SQUNMRT1PRkYsLCIKK1BBQ0tBR0VDT05GSUdbcHRlc3RdID0gIiR7VEVTVENPTkZJR30sLCwiCisKKyMgZW5hYmxlIHlvdXIgYmFja2VuZCBieSBkZWZhdWx0IHdlIGVuYWJsZSAnZW1wdHknCitQQUNLQUdFQ09ORklHID8/PSAiZW1wdHkiCisKKyMgVGFrZSB0aGUgZmxhZ3MgYWRkZWQgYnkgUEFDS0FHRUNPTkZJRyBhbmQgcGFzcyB0aGVtIHRvIGNtYWtlLgorRVhUUkFfT0VDTUFLRSA9ICIke0VYVFJBX09FQ09ORn0gLURTT0NJX0xJQkRJUj0ke2xpYmRpcn0iCitESVNBQkxFX1NUQVRJQyA9ICIiCisKK2luaGVyaXQgZG9zMnVuaXggY21ha2UKKworUEFDS0FHRVMgKz0gIiR7UE59LXNxbGl0ZTMgJHtQTn0tbXlzcWwgJHtQTn0tcG9zdGdyZXNxbCAke1BOfS1vZGJjICR7UE59LW9yYWNsZSIKKworRklMRVNfJHtQTn0tc3FsaXRlMyA9ICIke2xpYmRpcn0vbGliJHtCUE59X3NxbGl0ZTMuc28uKiIKK0ZJTEVTXyR7UE59LW15c3FsID0gIiR7bGliZGlyfS9saWIke0JQTn1fbXlzcWwuc28uKiIKK0ZJTEVTXyR7UE59LXBvc3RncmVzcWwgPSAiJHtsaWJkaXJ9L2xpYiR7QlBOfV9wb3N0Z3Jlc3FsLnNvLioiCitGSUxFU18ke1BOfS1vZGJjID0gIiR7bGliZGlyfS9saWIke0JQTn1fb2RiYy5zby4qIgorRklMRVNfJHtQTn0tb3JhY2xlID0gIiR7bGliZGlyfS9saWIke0JQTn1fb3JhY2xlLnNvLioiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3NxbGl0ZS9zcWxpdGUtMi44LjE3LzAwMDEtc2hlbGwuYy1GaXgtZm9ybWF0LW5vdC1hLXN0cmluZy1saXRlcmFsLXdhcm5pbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvc3FsaXRlL3NxbGl0ZS0yLjguMTcvMDAwMS1zaGVsbC5jLUZpeC1mb3JtYXQtbm90LWEtc3RyaW5nLWxpdGVyYWwtd2FybmluZy5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zcWxpdGUvc3FsaXRlLTIuOC4xNy8wMDAxLXNoZWxsLmMtRml4LWZvcm1hdC1ub3QtYS1zdHJpbmctbGl0ZXJhbC13YXJuaW5nLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvc3FsaXRlL3NxbGl0ZS0yLjguMTcvMDAwMS1zaGVsbC5jLUZpeC1mb3JtYXQtbm90LWEtc3RyaW5nLWxpdGVyYWwtd2FybmluZy5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zcWxpdGUvc3FsaXRlLTIuOC4xNy9tYWlubWtfYnVpbGRfZHluYW1pYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9zcWxpdGUvc3FsaXRlLTIuOC4xNy9tYWlubWtfYnVpbGRfZHluYW1pYy5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zcWxpdGUvc3FsaXRlLTIuOC4xNy9tYWlubWtfYnVpbGRfZHluYW1pYy5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3NxbGl0ZS9zcWxpdGUtMi44LjE3L21haW5ta19idWlsZF9keW5hbWljLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3NxbGl0ZS9zcWxpdGUtMi44LjE3L21haW5ta19ub190Y2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvc3FsaXRlL3NxbGl0ZS0yLjguMTcvbWFpbm1rX25vX3RjbC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zcWxpdGUvc3FsaXRlLTIuOC4xNy9tYWlubWtfbm9fdGNsLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvc3FsaXRlL3NxbGl0ZS0yLjguMTcvbWFpbm1rX25vX3RjbC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zcWxpdGUvc3FsaXRlLTIuOC4xNy9zcWxpdGUucGMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kYnMvc3FsaXRlL3NxbGl0ZS0yLjguMTcvc3FsaXRlLnBjCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3NxbGl0ZS9zcWxpdGUtMi44LjE3L3NxbGl0ZS5wYwpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3NxbGl0ZS9zcWxpdGUtMi44LjE3L3NxbGl0ZS5wYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zcWxpdGUvc3FsaXRlXzIuOC4xNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRicy9zcWxpdGUvc3FsaXRlXzIuOC4xNy5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zcWxpdGUvc3FsaXRlXzIuOC4xNy5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGJzL3NxbGl0ZS9zcWxpdGVfMi44LjE3LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9hbmRyb2lkLXRvb2xzL2FuZHJvaWQtdG9vbHMvcHJlc2VydmUtb3duZXJzaGlwLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvYW5kcm9pZC10b29scy9hbmRyb2lkLXRvb2xzL3ByZXNlcnZlLW93bmVyc2hpcC5wYXRjaAppbmRleCA4NWFmODFmLi41YzkwMzk3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9hbmRyb2lkLXRvb2xzL2FuZHJvaWQtdG9vbHMvcHJlc2VydmUtb3duZXJzaGlwLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2FuZHJvaWQtdG9vbHMvYW5kcm9pZC10b29scy9wcmVzZXJ2ZS1vd25lcnNoaXAucGF0Y2gKQEAgLTEsMTkgKzEsNTAgQEAKK0Zyb20gYWE2NjkzMTJhMzgwNjExZDI4MGQxMjZjYjUwOWZhMjgyMDgwNzA3ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hcmt1cyBNYXllciA8bW1heWVyQG1tYXllci5uZXQ+CitEYXRlOiBXZWQsIDcgU2VwIDIwMTYgMTI6NTg6NDcgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSF0gYW5kcm9pZC10b29sczogYWRkIHJlY2lwZSBmcm9tIEFPU1AgdGFnIGFuZHJvaWQtNS4xLjFfcjM3CisKIERlc2NyaXB0aW9uOiBhZGQgLW8gYXJndW1lbnQgdG8gcHJlc2VydmUgb3duZXJzaGlwCi1BdXRob3I6IE1hcmt1cyBNYXllciA8bW1heWVyQG1tYXllci5uZXQ+CiAKIFNlZSBhbHNvIGh0dHBzOi8vYW5kcm9pZC1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS8jL2MvMTAwMzEyLwogCiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUKKwogLS0tCi0gc3lzdGVtL2V4dHJhcy9leHQ0X3V0aWxzL21ha2VfZXh0NGZzLmMgICAgICB8ICAgIDYgKysrKysrCi0gc3lzdGVtL2V4dHJhcy9leHQ0X3V0aWxzL21ha2VfZXh0NGZzX21haW4uYyB8ICAgMTAgKysrKysrKystLQorIGV4dDRfdXRpbHMvbWFrZV9leHQ0ZnMuYyAgICAgIHwgIDYgKysrKysrCisgZXh0NF91dGlscy9tYWtlX2V4dDRmc19tYWluLmMgfCAxMCArKysrKysrKy0tCiAgMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCi0tLS0gYS9zeXN0ZW0vZXh0cmFzL2V4dDRfdXRpbHMvbWFrZV9leHQ0ZnNfbWFpbi5jCi0rKysgYi9zeXN0ZW0vZXh0cmFzL2V4dDRfdXRpbHMvbWFrZV9leHQ0ZnNfbWFpbi5jCi1AQCAtNDksMTMgKzQ5LDE1IEBAIGV4dGVybiBzdHJ1Y3QgZnNfaW5mbyBpbmZvOworZGlmZiAtLWdpdCBhL2V4dDRfdXRpbHMvbWFrZV9leHQ0ZnMuYyBiL2V4dDRfdXRpbHMvbWFrZV9leHQ0ZnMuYworaW5kZXggMmY4OWFlOGEuLmNjNDFkNjIzIDEwMDY0NAorLS0tIGEvZXh0NF91dGlscy9tYWtlX2V4dDRmcy5jCisrKysgYi9leHQ0X3V0aWxzL21ha2VfZXh0NGZzLmMKK0BAIC02OCw2ICs2OCw4IEBACiAgCi0gZXh0ZXJuIHN0cnVjdCBzZWxhYmVsX2hhbmRsZSogc2VsaW51eF9hbmRyb2lkX2ZpbGVfY29udGV4dF9oYW5kbGUodm9pZCk7CisgI2VuZGlmCisgCisraW50IHByZXNlcnZlX293bmVyID0gMDsKKysKKyAvKiBUT0RPOiBOb3QgaW1wbGVtZW50ZWQ6CisgICAgQWxsb2NhdGluZyBibG9ja3MgaW4gdGhlIHNhbWUgYmxvY2sgZ3JvdXAgYXMgdGhlIGZpbGUgaW5vZGUKKyAgICBIYXNoIG9yIGJpbmFyeSB0cmVlIGRpcmVjdG9yaWVzCitAQCAtMTg2LDYgKzE4OCwxMCBAQCBzdGF0aWMgdTMyIGJ1aWxkX2RpcmVjdG9yeV9zdHJ1Y3R1cmUoY29uc3QgY2hhciAqZnVsbF9wYXRoLCBjb25zdCBjaGFyICpkaXJfcGF0aAorIAkJfSBlbHNlIHsKKyAJCQlkZW50cmllc1tpXS5tdGltZSA9IGZpeGVkX3RpbWU7CisgCQl9CisrCQlpZiAocHJlc2VydmVfb3duZXIpIHsKKysJCQlkZW50cmllc1tpXS51aWQgPSBzdGF0LnN0X3VpZDsKKysJCQlkZW50cmllc1tpXS5naWQgPSBzdGF0LnN0X2dpZDsKKysJCX0KKyAJCXVpbnQ2NF90IGNhcGFiaWxpdGllczsKKyAJCWlmIChmc19jb25maWdfZnVuYyAhPSBOVUxMKSB7CisgI2lmZGVmIEFORFJPSUQKK2RpZmYgLS1naXQgYS9leHQ0X3V0aWxzL21ha2VfZXh0NGZzX21haW4uYyBiL2V4dDRfdXRpbHMvbWFrZV9leHQ0ZnNfbWFpbi5jCitpbmRleCBhNmM1ZjYxNi4uN2FmMGRkZGYgMTAwNjQ0CistLS0gYS9leHQ0X3V0aWxzL21ha2VfZXh0NGZzX21haW4uYworKysrIGIvZXh0NF91dGlscy9tYWtlX2V4dDRmc19tYWluLmMKK0BAIC00OCwxMyArNDgsMTUgQEAgc3RydWN0IHNlbGFiZWxfaGFuZGxlOworIGV4dGVybiBzdHJ1Y3QgZnNfaW5mbyBpbmZvOworIAogIAogK2V4dGVybiBpbnQgcHJlc2VydmVfb3duZXI7CiArCkBAIC0yOCw3ICs1OSw3IEBACiAgCWZwcmludGYoc3RkZXJyLCAiICAgIDxmaWxlbmFtZT4gWzxkaXJlY3Rvcnk+XVxuIik7CiAgfQogIAotQEAgLTgxLDcgKzgzLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorQEAgLTgwLDcgKzgyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogIAlzdHJ1Y3Qgc2VsaW51eF9vcHQgc2VvcHRzW10gPSB7IHsgU0VMQUJFTF9PUFRfUEFUSCwgIiIgfSB9OwogICNlbmRpZgogIApAQCAtMzcsNyArNjgsNyBAQAogIAkJc3dpdGNoIChvcHQpIHsKICAJCWNhc2UgJ2wnOgogIAkJCWluZm8ubGVuID0gcGFyc2VfbnVtKG9wdGFyZyk7Ci1AQCAtMTQ0LDYgKzE0NiwxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCitAQCAtMTQzLDYgKzE0NSwxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgCQkJfQogICNlbmRpZgogIAkJCWJyZWFrOwpAQCAtNDgsMjUgKzc5LDMgQEAKICAJCWNhc2UgJ3YnOgogIAkJCXZlcmJvc2UgPSAxOwogIAkJCWJyZWFrOwotLS0tIGEvc3lzdGVtL2V4dHJhcy9leHQ0X3V0aWxzL21ha2VfZXh0NGZzLmMKLSsrKyBiL3N5c3RlbS9leHRyYXMvZXh0NF91dGlscy9tYWtlX2V4dDRmcy5jCi1AQCAtNjcsNiArNjcsOCBAQAotIAotICNlbmRpZgotIAotK2ludCBwcmVzZXJ2ZV9vd25lciA9IDA7Ci0rCi0gLyogVE9ETzogTm90IGltcGxlbWVudGVkOgotICAgIEFsbG9jYXRpbmcgYmxvY2tzIGluIHRoZSBzYW1lIGJsb2NrIGdyb3VwIGFzIHRoZSBmaWxlIGlub2RlCi0gICAgSGFzaCBvciBiaW5hcnkgdHJlZSBkaXJlY3RvcmllcwotQEAgLTE4NSw2ICsxODcsMTAgQEAgc3RhdGljIHUzMiBidWlsZF9kaXJlY3Rvcnlfc3RydWN0dXJlKGNvbgotIAkJfSBlbHNlIHsKLSAJCQlkZW50cmllc1tpXS5tdGltZSA9IGZpeGVkX3RpbWU7Ci0gCQl9Ci0rCQlpZiAocHJlc2VydmVfb3duZXIpIHsKLSsJCQlkZW50cmllc1tpXS51aWQgPSBzdGF0LnN0X3VpZDsKLSsJCQlkZW50cmllc1tpXS5naWQgPSBzdGF0LnN0X2dpZDsKLSsJCX0KLSAJCXVpbnQ2NF90IGNhcGFiaWxpdGllczsKLSAJCWlmIChmc19jb25maWdfZnVuYyAhPSBOVUxMKSB7Ci0gI2lmZGVmIEFORFJPSUQKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2FuZHJvaWQtdG9vbHMvYW5kcm9pZC10b29sc181LjEuMS5yMzcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9hbmRyb2lkLXRvb2xzL2FuZHJvaWQtdG9vbHNfNS4xLjEucjM3LmJiCmluZGV4IGQzY2NkMWQuLjc4MGVjYWEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2FuZHJvaWQtdG9vbHMvYW5kcm9pZC10b29sc181LjEuMS5yMzcuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvYW5kcm9pZC10b29scy9hbmRyb2lkLXRvb2xzXzUuMS4xLnIzNy5iYgpAQCAtOSw3ICs5LDYgQEAKICIKIERFUEVORFMgPSAibGliYnNkIGxpYnBjcmUgb3BlbnNzbCB6bGliIGxpYmNhcCIKIAotQU5EUk9JRF9UQUcgPSAiYW5kcm9pZC01LjEuMV9yMzciCiBBTkRST0lEX01JUlJPUiA9ICJhbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20iCiBDT1JFX1JFUE8gPSAiJHtBTkRST0lEX01JUlJPUn0vcGxhdGZvcm0vc3lzdGVtL2NvcmUiCiBFWFRSQVNfUkVQTyA9ICIke0FORFJPSURfTUlSUk9SfS9wbGF0Zm9ybS9zeXN0ZW0vZXh0cmFzIgpAQCAtMTcsMTYgKzE2LDIzIEBACiBMSUJTRUxJTlVYX1JFUE8gPSAiJHtBTkRST0lEX01JUlJPUn0vcGxhdGZvcm0vZXh0ZXJuYWwvbGlic2VsaW51eCIKIEJVSUxEX1JFUE8gPSAiJHtBTkRST0lEX01JUlJPUn0vcGxhdGZvcm0vYnVpbGQiCiAKKyMgbWF0Y2hlcyB3aXRoIGFuZHJvaWQtNS4xLjFfcjM3CitTUkNSRVZfY29yZSA9ICIyMzE0YjExMGJkZWJkYmZkMmQ5NGM1MDIyODJmOWU1N2M4NDk4OTdlIgorU1JDUkVWX2V4dHJhcyA9ICIzZWNiZThkODQxZGY5NjEyN2Q3ODU1NjYxMjkzZTVhYjZiYTZjMjA1IgorU1JDUkVWX2xpYmhhcmR3YXJlID0gImJlNTVlYjFmNGQ4NDBjODJmZmFmN2M0NzQ2MGRmMTdmZjViYzRkOWIiCitTUkNSRVZfbGlic2VsaW51eCA9ICIwN2U5ZTEzMzlhZDFiYTYwOGFjZmJhOWRjZTJkMGY0NzRiMjUyZmViIgorU1JDUkVWX2J1aWxkID0gIjE2ZTk4N2RlZjNkN2Q4ZjdkMzA4MDVlYjk1Y2VmNjllNTJhODdkYmMiCisKIFNSQ19VUkkgPSAiIFwKLSAgICBnaXQ6Ly8ke0NPUkVfUkVQT307bmFtZT1jb3JlO3Byb3RvY29sPWh0dHBzO25vYnJhbmNoPTE7ZGVzdHN1ZmZpeD1naXQvc3lzdGVtL2NvcmU7dGFnPSR7QU5EUk9JRF9UQUd9IFwKLSAgICBnaXQ6Ly8ke0VYVFJBU19SRVBPfTtuYW1lPWV4dHJhcztwcm90b2NvbD1odHRwcztub2JyYW5jaD0xO2Rlc3RzdWZmaXg9Z2l0L3N5c3RlbS9leHRyYXM7dGFnPSR7QU5EUk9JRF9UQUd9IFwKLSAgICBnaXQ6Ly8ke0xJQkhBUkRXQVJFX1JFUE99O25hbWU9bGliaGFyZHdhcmU7cHJvdG9jb2w9aHR0cHM7bm9icmFuY2g9MTtkZXN0c3VmZml4PWdpdC9oYXJkd2FyZS9saWJoYXJkd2FyZTt0YWc9JHtBTkRST0lEX1RBR30gXAotICAgIGdpdDovLyR7TElCU0VMSU5VWF9SRVBPfTtuYW1lPWxpYnNlbGludXg7cHJvdG9jb2w9aHR0cHM7bm9icmFuY2g9MTtkZXN0c3VmZml4PWdpdC9leHRlcm5hbC9saWJzZWxpbnV4O3RhZz0ke0FORFJPSURfVEFHfSBcCi0gICAgZ2l0Oi8vJHtCVUlMRF9SRVBPfTtuYW1lPWJ1aWxkO3Byb3RvY29sPWh0dHBzO25vYnJhbmNoPTE7ZGVzdHN1ZmZpeD1naXQvYnVpbGQ7dGFnPSR7QU5EUk9JRF9UQUd9IFwKKyAgICBnaXQ6Ly8ke0NPUkVfUkVQT307bmFtZT1jb3JlO3Byb3RvY29sPWh0dHBzO25vYnJhbmNoPTE7ZGVzdHN1ZmZpeD1naXQvc3lzdGVtL2NvcmUgXAorICAgIGdpdDovLyR7RVhUUkFTX1JFUE99O25hbWU9ZXh0cmFzO3Byb3RvY29sPWh0dHBzO25vYnJhbmNoPTE7ZGVzdHN1ZmZpeD1naXQvc3lzdGVtL2V4dHJhcyBcCisgICAgZ2l0Oi8vJHtMSUJIQVJEV0FSRV9SRVBPfTtuYW1lPWxpYmhhcmR3YXJlO3Byb3RvY29sPWh0dHBzO25vYnJhbmNoPTE7ZGVzdHN1ZmZpeD1naXQvaGFyZHdhcmUvbGliaGFyZHdhcmUgXAorICAgIGdpdDovLyR7TElCU0VMSU5VWF9SRVBPfTtuYW1lPWxpYnNlbGludXg7cHJvdG9jb2w9aHR0cHM7bm9icmFuY2g9MTtkZXN0c3VmZml4PWdpdC9leHRlcm5hbC9saWJzZWxpbnV4IFwKKyAgICBnaXQ6Ly8ke0JVSUxEX1JFUE99O25hbWU9YnVpbGQ7cHJvdG9jb2w9aHR0cHM7bm9icmFuY2g9MTtkZXN0c3VmZml4PWdpdC9idWlsZCBcCiAgICAgZmlsZTovL3JlbW92ZS1zZWxpbnV4LWFuZHJvaWQucGF0Y2ggXAogICAgIGZpbGU6Ly91c2UtY2FwYWJpbGl0eS5wYXRjaCBcCiAgICAgZmlsZTovL3VzZS1sb2NhbC1zb2NrZXQucGF0Y2ggXAotICAgIGZpbGU6Ly9wcmVzZXJ2ZS1vd25lcnNoaXAucGF0Y2ggXAorICAgIGZpbGU6Ly9wcmVzZXJ2ZS1vd25lcnNoaXAucGF0Y2g7cGF0Y2hkaXI9c3lzdGVtL2V4dHJhcyBcCiAgICAgZmlsZTovL21rYm9vdGltZy1BZGQtZHQtcGFyYW1ldGVyLXRvLXNwZWNpZnktRFQtaW1hZ2UucGF0Y2ggXAogICAgIGZpbGU6Ly9yZW1vdmUtYmlvbmljLWFuZHJvaWQucGF0Y2ggXAogICAgIGZpbGU6Ly9kZWZpbmUtc2hlbGwtY29tbWFuZC5wYXRjaCBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9icmVha3BhZC9icmVha3BhZC8wMDAxLWRpc2FibGUtY2FsbHMtdG8tZ2V0Y29udGV4dC13aXRoLW11c2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9icmVha3BhZC9icmVha3BhZC8wMDAxLWRpc2FibGUtY2FsbHMtdG8tZ2V0Y29udGV4dC13aXRoLW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc2Mjc1NAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2JyZWFrcGFkL2JyZWFrcGFkLzAwMDEtZGlzYWJsZS1jYWxscy10by1nZXRjb250ZXh0LXdpdGgtbXVzbC5wYXRjaApAQCAtMCwwICsxLDUyIEBACitGcm9tIDU3ZWNmNzIwNWZlZWRkMjNmOTAxZTFiYjlkMTkzNzg3ZTU1OWU0MzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZSBNY0N1cmR5IDxhcm1jY3VyZHlAZ21haWwuY29tPgorRGF0ZTogVHVlLCAyMyBKYW4gMjAxOCAxNToxMzoyNiAtMDgwMAorU3ViamVjdDogW1BBVENIXSBkaXNhYmxlIGNhbGxzIHRvIGdldGNvbnRleHQoKSB3aXRoIG11c2wKKworU2lnbmVkLW9mZi1ieTogQW5kcmUgTWNDdXJkeSA8YXJtY2N1cmR5QGdtYWlsLmNvbT4KKy0tLQorIHNyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYyB8IDE3ICsrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYyBiL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworaW5kZXggY2NhMDIzZi4uZjNlNDYwYyAxMDA2NDQKKy0tLSBhL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworKysrIGIvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCitAQCAtNDk1LDcgKzQ5NSwxOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OlNpbXVsYXRlU2lnbmFsRGVsaXZlcnkoaW50IHNpZykgeworICAgc2lnaW5mby5zaV9jb2RlID0gU0lfVVNFUjsKKyAgIHNpZ2luZm8uc2lfcGlkID0gZ2V0cGlkKCk7CisgICB1Y29udGV4dF90IGNvbnRleHQ7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgZ2V0Y29udGV4dCgmY29udGV4dCk7CisrI2Vsc2UKKysgIC8vIEV4dHJlbWUgaGFjazogQWxsb3cgbXVzbCBidWlsZHMgdG8gY29tcGlsZSAtIGJ1dCBkb24ndCBleHBlY3QgdGhlbSB0byB3b3JrLgorKyAgLy8gQWx0aG91Z2ggbXVzbCBwcm92aWRlcyBhIGRlZmluaXRpb24gZm9yIGdldGNvbnRleHQoKSBpbiB1Y29udGV4dC5oICh3aGljaAorKyAgLy8gZW5vdWdoIHRvIGJ1aWxkIGxpYmJyZWFrcGFkX2NsaWVudCkgbXVzbCBkb2VzIG5vdCBwcm92aWRlIGEgY29ycmVzcG9uZGluZworKyAgLy8gZ2V0Y29udGV4dCgpIGZ1bmN0aW9uLCBzbyBidWlsZHMgd2lsbCBmYWlsIHdoZW4gYXR0ZW1wdGluZyB0byBsaW5rIGFueXRoaW5nCisrICAvLyB3aXRoIGxpYmJyZWFrcGFkX2NsaWVudC4gRGlzYWJsaW5nIGNhbGxzIHRvIGdldGNvbnRleHQoKSBpcyBhIHRlbXBvcmFyeQorKyAgLy8gaGFjay4gVGhlIHJlYWwgZml4IGlzIHByb2JhYmx5IHRvIGVuYWJsZSBCcmVha3BhZCdzIG93biBpbXBsZW1lbnRhdGlvbiBvZgorKyAgLy8gZ2V0Y29udGV4dCgpIHdoZW4gYnVpbGRpbmcgZm9yIG11c2wgKGl0J3MgY3VycmVudGx5IG9ubHkgZW5hYmxlZCB3aGVuCisrICAvLyBidWlsZGluZyBmb3IgQW5kcm9pZCkuCisrICBtZW1zZXQgKCZjb250ZXh0LCAwLCBzaXplb2YoY29udGV4dCkpOworKyNlbmRpZgorICAgcmV0dXJuIEhhbmRsZVNpZ25hbChzaWcsICZzaWdpbmZvLCAmY29udGV4dCk7CisgfQorIAorQEAgLTY4MCw5ICs2OTIsMTQgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpXcml0ZU1pbmlkdW1wKCkgeworICAgc3lzX3ByY3RsKFBSX1NFVF9EVU1QQUJMRSwgMSwgMCwgMCwgMCk7CisgCisgICBDcmFzaENvbnRleHQgY29udGV4dDsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBpbnQgZ2V0Y29udGV4dF9yZXN1bHQgPSBnZXRjb250ZXh0KCZjb250ZXh0LmNvbnRleHQpOworICAgaWYgKGdldGNvbnRleHRfcmVzdWx0KQorICAgICByZXR1cm4gZmFsc2U7CisrI2Vsc2UKKysgIC8vIEV4dHJlbWUgaGFjayAtIHNlZSBjb21tZW50cyBhYm92ZS4KKysgIG1lbXNldCAoJmNvbnRleHQuY29udGV4dCwgMCwgc2l6ZW9mKCZjb250ZXh0LmNvbnRleHQpKTsKKysjZW5kaWYKKyAKKyAjaWYgZGVmaW5lZChfX2kzODZfXykKKyAgIC8vIEluIENQVUZpbGxGcm9tVUNvbnRleHQgaW4gbWluaWR1bXB3cml0ZXIuY2MgdGhlIHN0YWNrIHBvaW50ZXIgaXMgcmV0cmlldmVkCistLSAKKzEuOS4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2JyZWFrcGFkL2JyZWFrcGFkLzAwMDUtSW1wb3J0LW5lY2Vzc2FyeS1kZWZpbml0aW9ucy1mcm9tLXN0YWIuaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2JyZWFrcGFkL2JyZWFrcGFkLzAwMDUtSW1wb3J0LW5lY2Vzc2FyeS1kZWZpbml0aW9ucy1mcm9tLXN0YWIuaC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODBkZThjNi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9icmVha3BhZC9icmVha3BhZC8wMDA1LUltcG9ydC1uZWNlc3NhcnktZGVmaW5pdGlvbnMtZnJvbS1zdGFiLmgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOTkgKzAsMCBAQAotRnJvbSBmYTdhM2I3MzEyMzA3YWNhZDAwNDU1NDlkNWYzMDZlN2ZkMTE3ODA0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRmVsaXggSmFuZGEgPGZlbGl4LmphbmRhQHBvc3Rlby5kZT4KLURhdGU6IFN1biwgMSBGZWIgMjAxNSAxNDozNDo0NCArMDEwMAotU3ViamVjdDogW1BBVENIIDUvNl0gSW1wb3J0IG5lY2Vzc2FyeSBkZWZpbml0aW9ucyBmcm9tIHN0YWIuaAotCi0tLS0KLSBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCi0gc3JjL2NvbW1vbi9hbmRyb2lkL2luY2x1ZGUvc3RhYi5oICAgfCAxMDAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gc3JjL2NvbW1vbi9jb21tb24uZ3lwICAgICAgICAgICAgICAgfCAgIDEgLQotIHNyYy9jb21tb24vc3RhYnNfcmVhZGVyLmNjICAgICAgICAgIHwgICAxIC0KLSBzcmMvY29tbW9uL3N0YWJzX3JlYWRlci5oICAgICAgICAgICB8ICAxMyArKystLQotIHNyYy9jb21tb24vc3RhYnNfcmVhZGVyX3VuaXR0ZXN0LmNjIHwgICAxIC0KLSA2IGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEwNyBkZWxldGlvbnMoLSkKLSBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2NvbW1vbi9hbmRyb2lkL2luY2x1ZGUvc3RhYi5oCi0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDIyMjM5MjAuLjBlNTVjZDkgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTczLDcgKzczLDYgQEAgQUNfSEVBREVSX1NUREMKLSBBQ19TWVNfTEFSR0VGSUxFCi0gbTRfaW5jbHVkZShtNC9heF9wdGhyZWFkLm00KQotIEFYX1BUSFJFQUQKLS1BQ19DSEVDS19IRUFERVJTKFthLm91dC5oXSkKLSAKLSAjIE9ubHkgYnVpbGQgTGludXggY2xpZW50IGxpYnMgd2hlbiBjb21waWxpbmcgZm9yIExpbnV4Ci0gY2FzZSAkaG9zdCBpbgotZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vYW5kcm9pZC9pbmNsdWRlL3N0YWIuaCBiL3NyYy9jb21tb24vYW5kcm9pZC9pbmNsdWRlL3N0YWIuaAotZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCBjZDkyOTAyLi4wMDAwMDAwCi0tLS0gYS9zcmMvY29tbW9uL2FuZHJvaWQvaW5jbHVkZS9zdGFiLmgKLSsrKyAvZGV2L251bGwKLUBAIC0xLDEwMCArMCwwIEBACi0tLy8gQ29weXJpZ2h0IChjKSAyMDEyLCBHb29nbGUgSW5jLgotLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0tLy8KLS0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0tLy8gbWV0OgotLS8vCi0tLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0tLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0tLy8gZGlzdHJpYnV0aW9uLgotLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0tLy8KLS0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0tLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0tLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0tLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0KLS0jaWZuZGVmIEdPT0dMRV9CUkVBS1BBRF9DT01NT05fQU5EUk9JRF9JTkNMVURFX1NUQUJfSAotLSNkZWZpbmUgR09PR0xFX0JSRUFLUEFEX0NPTU1PTl9BTkRST0lEX0lOQ0xVREVfU1RBQl9ICi0tCi0tI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotLQotLSNpZmRlZiBfX0JJT05JQ19IQVZFX1NUQUJfSAotLSNpbmNsdWRlIDxzdGFiLmg+Ci0tI2Vsc2UKLS0KLS0jaWZkZWYgX19jcGx1c3BsdXMKLS1leHRlcm4gIkMiIHsKLS0jZW5kaWYgIC8vIF9fY3BsdXNwbHVzCi0tCi0tI2RlZmluZSBfU1RBQl9DT0RFX0xJU1QgICAgICAgXAotLSAgX1NUQUJfQ09ERV9ERUYoVU5ERiwweDAwKSAgIFwKLS0gIF9TVEFCX0NPREVfREVGKEdTWU0sMHgyMCkgICBcCi0tICBfU1RBQl9DT0RFX0RFRihGTkFNRSwweDIyKSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoRlVOLDB4MjQpICAgIFwKLS0gIF9TVEFCX0NPREVfREVGKFNUU1lNLDB4MjYpICBcCi0tICBfU1RBQl9DT0RFX0RFRihMQ1NZTSwweDI4KSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoTUFJTiwweDJhKSAgIFwKLS0gIF9TVEFCX0NPREVfREVGKFBDLDB4MzApICAgICBcCi0tICBfU1RBQl9DT0RFX0RFRihOU1lNUywweDMyKSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoTk9NQVAsMHgzNCkgIFwKLS0gIF9TVEFCX0NPREVfREVGKE9CSiwweDM4KSAgICBcCi0tICBfU1RBQl9DT0RFX0RFRihPUFQsMHgzYykgICAgXAotLSAgX1NUQUJfQ09ERV9ERUYoUlNZTSwweDQwKSAgIFwKLS0gIF9TVEFCX0NPREVfREVGKE0yQywweDQyKSAgICBcCi0tICBfU1RBQl9DT0RFX0RFRihTTElORSwweDQ0KSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoRFNMSU5FLDB4NDYpIFwKLS0gIF9TVEFCX0NPREVfREVGKEJTTElORSwweDQ4KSBcCi0tICBfU1RBQl9DT0RFX0RFRihCUk9XUywweDQ4KSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoREVGRCwweDRhKSAgIFwKLS0gIF9TVEFCX0NPREVfREVGKEVIREVDTCwweDUwKSBcCi0tICBfU1RBQl9DT0RFX0RFRihNT0QyLDB4NTApICAgXAotLSAgX1NUQUJfQ09ERV9ERUYoQ0FUQ0gsMHg1NCkgIFwKLS0gIF9TVEFCX0NPREVfREVGKFNTWU0sMHg2MCkgICBcCi0tICBfU1RBQl9DT0RFX0RFRihTTywweDY0KSAgICAgXAotLSAgX1NUQUJfQ09ERV9ERUYoTFNZTSwweDgwKSAgIFwKLS0gIF9TVEFCX0NPREVfREVGKEJJTkNMLDB4ODIpICBcCi0tICBfU1RBQl9DT0RFX0RFRihTT0wsMHg4NCkgICAgXAotLSAgX1NUQUJfQ09ERV9ERUYoUFNZTSwweGEwKSAgIFwKLS0gIF9TVEFCX0NPREVfREVGKEVJTkNMLDB4YTIpICBcCi0tICBfU1RBQl9DT0RFX0RFRihFTlRSWSwweGE0KSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoTEJSQUMsMHhjMCkgIFwKLS0gIF9TVEFCX0NPREVfREVGKEVYQ0wsMHhjMikgICBcCi0tICBfU1RBQl9DT0RFX0RFRihTQ09QRSwweGM0KSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoUkJSQUMsMHhlMCkgIFwKLS0gIF9TVEFCX0NPREVfREVGKEJDT01NLDB4ZTIpICBcCi0tICBfU1RBQl9DT0RFX0RFRihFQ09NTSwweGU0KSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoRUNPTUwsMHhlOCkgIFwKLS0gIF9TVEFCX0NPREVfREVGKE5CVEVYVCwweGYwKSBcCi0tICBfU1RBQl9DT0RFX0RFRihOQkRBVEEsMHhmMikgXAotLSAgX1NUQUJfQ09ERV9ERUYoTkJCU1MsMHhmNCkgIFwKLS0gIF9TVEFCX0NPREVfREVGKE5CU1RTLDB4ZjYpICBcCi0tICBfU1RBQl9DT0RFX0RFRihOQkxDUywweGY4KSAgXAotLSAgX1NUQUJfQ09ERV9ERUYoTEVORywweGZlKQotLQotLWVudW0gX19zdGFiX2RlYnVnX2NvZGUgewotLSNkZWZpbmUgX1NUQUJfQ09ERV9ERUYoeCx5KSAgTl8jI3ggPSB5LAotLV9TVEFCX0NPREVfTElTVAotLSN1bmRlZiBfU1RBQl9DT0RFX0RFRgotLX07Ci0tCi0tI2lmZGVmIF9fY3BsdXNwbHVzCi0tfSAgLy8gZXh0ZXJuICJDIgotLSNlbmRpZiAgLy8gX19jcGx1c3BsdXMKLS0KLS0jZW5kaWYgIC8vIF9fQklPTklDX0hBVkVfU1RBQl9ICi0tCi0tI2VuZGlmICAvLyBHT09HTEVfQlJFQUtQQURfQ09NTU9OX0FORFJPSURfSU5DTFVERV9TVEFCX0gKLWRpZmYgLS1naXQgYS9zcmMvY29tbW9uL2NvbW1vbi5neXAgYi9zcmMvY29tbW9uL2NvbW1vbi5neXAKLWluZGV4IGYwMWVkZTUuLmM0OWZmODUgMTAwNjQ0Ci0tLS0gYS9zcmMvY29tbW9uL2NvbW1vbi5neXAKLSsrKyBiL3NyYy9jb21tb24vY29tbW9uLmd5cAotQEAgLTQ2LDcgKzQ2LDYgQEAKLSAgICAgICAgICdhbmRyb2lkL2luY2x1ZGUvZWxmLmgnLAotICAgICAgICAgJ2FuZHJvaWQvaW5jbHVkZS9saW5rLmgnLAotICAgICAgICAgJ2FuZHJvaWQvaW5jbHVkZS9zZ2lkZWZzLmgnLAotLSAgICAgICAgJ2FuZHJvaWQvaW5jbHVkZS9zdGFiLmgnLAotICAgICAgICAgJ2FuZHJvaWQvaW5jbHVkZS9zeXMvcHJvY2ZzLmgnLAotICAgICAgICAgJ2FuZHJvaWQvaW5jbHVkZS9zeXMvc2lnbmFsLmgnLAotICAgICAgICAgJ2FuZHJvaWQvaW5jbHVkZS9zeXMvdXNlci5oJywKLWRpZmYgLS1naXQgYS9zcmMvY29tbW9uL3N0YWJzX3JlYWRlci5jYyBiL3NyYy9jb21tb24vc3RhYnNfcmVhZGVyLmNjCi1pbmRleCA2MDE5ZmM3Li45NTYyY2FhIDEwMDY0NAotLS0tIGEvc3JjL2NvbW1vbi9zdGFic19yZWFkZXIuY2MKLSsrKyBiL3NyYy9jb21tb24vc3RhYnNfcmVhZGVyLmNjCi1AQCAtMzQsNyArMzQsNiBAQAotICNpbmNsdWRlICJjb21tb24vc3RhYnNfcmVhZGVyLmgiCi0gCi0gI2luY2x1ZGUgPGFzc2VydC5oPgotLSNpbmNsdWRlIDxzdGFiLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotIAotICNpbmNsdWRlIDxzdHJpbmc+Ci1kaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9zdGFic19yZWFkZXIuaCBiL3NyYy9jb21tb24vc3RhYnNfcmVhZGVyLmgKLWluZGV4IGQ4OWFmYzAuLjU5MWYwMDcgMTAwNjQ0Ci0tLS0gYS9zcmMvY29tbW9uL3N0YWJzX3JlYWRlci5oCi0rKysgYi9zcmMvY29tbW9uL3N0YWJzX3JlYWRlci5oCi1AQCAtNTMsMTIgKzUzLDE5IEBACi0gI2luY2x1ZGUgPGNvbmZpZy5oPgotICNlbmRpZgotIAotLSNpZmRlZiBIQVZFX0FfT1VUX0gKLS0jaW5jbHVkZSA8YS5vdXQuaD4KLS0jZW5kaWYKLSAjaWZkZWYgSEFWRV9NQUNIX09fTkxJU1RfSAotICNpbmNsdWRlIDxtYWNoLW8vbmxpc3QuaD4KLSAjZW5kaWYKLSsvLyBEZWZpbml0aW9ucyBmcm9tIDxzdGFiLmg+IGFuZCA8YS5vdXQuaD4gZm9yIHN5c3RlbXMgd2hpY2gKLSsvLyBkbyBub3QgaGF2ZSB0aGVtCi0rI3VuZGVmIE5fVU5ERgotKyNkZWZpbmUgTl9VTkRGIDB4MAotKyNkZWZpbmUgTl9GVU4gMHgyNAotKyNkZWZpbmUgTl9TTElORSAweDQ0Ci0rI2RlZmluZSBOX1NPIDB4NjQKLSsjZGVmaW5lIE5fTFNZTSAweDgwCi0rI2RlZmluZSBOX0JJTkNMIDB4ODIKLSsjZGVmaW5lIE5fU09MIDB4ODQKLSAKLSAjaW5jbHVkZSA8c3RyaW5nPgotICNpbmNsdWRlIDx2ZWN0b3I+Ci1kaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9zdGFic19yZWFkZXJfdW5pdHRlc3QuY2MgYi9zcmMvY29tbW9uL3N0YWJzX3JlYWRlcl91bml0dGVzdC5jYwotaW5kZXggYTg0ZGExYy4uODU0YWM0MiAxMDA2NDQKLS0tLSBhL3NyYy9jb21tb24vc3RhYnNfcmVhZGVyX3VuaXR0ZXN0LmNjCi0rKysgYi9zcmMvY29tbW9uL3N0YWJzX3JlYWRlcl91bml0dGVzdC5jYwotQEAgLTMzLDcgKzMzLDYgQEAKLSAKLSAjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0gI2luY2x1ZGUgPGVycm5vLmg+Ci0tI2luY2x1ZGUgPHN0YWIuaD4KLSAjaW5jbHVkZSA8c3RkYXJnLmg+Ci0gI2luY2x1ZGUgPHN0ZGxpYi5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLS0tIAotMi4wLjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvYnJlYWtwYWQvYnJlYWtwYWRfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvYnJlYWtwYWQvYnJlYWtwYWRfZ2l0LmJiCmluZGV4IDVmNmQ4MmMuLmQ5NzczYzkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2JyZWFrcGFkL2JyZWFrcGFkX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9icmVha3BhZC9icmVha3BhZF9naXQuYmIKQEAgLTQxLDYgKzQxLDcgQEAKICAgICAgICAgICAgZmlsZTovLzAwMDUtbWQyY29yZS1SZXBsYWNlLWJhc2VuYW1lLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDItVXNlLV9mcHN0YXRlLWluc3RlYWQtb2YtX2xpYmNfZnBzdGF0ZS1vbi1saW51eC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly9tY29udGV4dC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLWRpc2FibGUtY2FsbHMtdG8tZ2V0Y29udGV4dC13aXRoLW11c2wucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1sc3MtTWF0Y2gtc3lzY2FsbHMtdG8tbWF0Y2gtbXVzbC5wYXRjaDtwYXRjaGRpcj1zcmMvdGhpcmRfcGFydHkvbHNzIFwKICAgICAgICAgICAgZmlsZTovL21pcHNfYXNtX3NnaWRlZnMucGF0Y2g7cGF0Y2hkaXI9c3JjL3RoaXJkX3BhcnR5L2xzcyBcCiAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jb25jdXJyZW5jeWtpdC9jb25jdXJyZW5jeWtpdC9jcm9zcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2NvbmN1cnJlbmN5a2l0L2NvbmN1cnJlbmN5a2l0L2Nyb3NzLnBhdGNoCmluZGV4IGQzYmZhYjcuLjllNTA1OGYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2NvbmN1cnJlbmN5a2l0L2NvbmN1cnJlbmN5a2l0L2Nyb3NzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2NvbmN1cnJlbmN5a2l0L2NvbmN1cnJlbmN5a2l0L2Nyb3NzLnBhdGNoCkBAIC0xLDggKzEsMTYgQEAKLUluZGV4OiBnaXQvY29uZmlndXJlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2l0Lm9yaWcvY29uZmlndXJlCTIwMTItMTEtMTkgMjE6MDc6NTEuOTE3NDI5NDY1IC0wODAwCi0rKysgZ2l0L2NvbmZpZ3VyZQkyMDEyLTExLTE5IDIxOjEzOjE5LjMzNzQzNzI3OCAtMDgwMAotQEAgLTQzOSwxNCArNDQyLDE4IEBACitGcm9tIGFiMGVlYzc4MzgyYmQwMGNlNTMzYWVjMmM4NGZkNTBjMTczMzAzM2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogU2F0LCA1IEphbiAyMDEzIDE5OjQyOjUxIC0wODAwCisKKy0tLQorIGNvbmZpZ3VyZSB8IDMyICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCitpbmRleCA3NmMyODEyLi43OGNlMmZmIDEwMDc1NQorLS0tIGEvY29uZmlndXJlCisrKysgYi9jb25maWd1cmUKK0BAIC01MzUsMTQgKzUzNSwxOCBAQCBlbHNlCiAgCUdaSVBfU1VGRklYPSIuZ3oiCiAgZmkKICAKQEAgLTI1LDEyICszMywxNiBAQAogKwljYXQgPDwgRU9GID4gLjEuYwogICNpbmNsdWRlIDxzdGRpby5oPgogIGludCBtYWluKHZvaWQpIHsKLSAjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fID49IDQpCi1AQCAtNTY5LDE2ICs1NzYsMTYgQEAKKyAjaWYgZGVmaW5lZChfV0lOMzIpCitAQCAtNTY5LDE2ICs1NzMsMTYgQEAgaW50IG1haW4odm9pZCkgewogICNlbmRpZgogIH0KICBFT0YKLS0KKysJJENDIC1vIC4xIC4xLmMKKysJQ09NUElMRVI9YC4vLjFgCisrCXI9JD8KKysJcm0gLWYgLjEuYyAuMQorIAogLSRDQyAtbyAuMSAuMS5jCiAtQ09NUElMRVI9YC4vLjFgCiAtcj0kPwpAQCAtNDAsMTEgKzUyLDYgQEAKIC0JYXNzZXJ0ICIiICJ1cGRhdGUgY29tcGlsZXIiCiAtZWxzZQogLQllY2hvICJzdWNjZXNzIFskQ0NdIgotKwkkQ0MgLW8gLjEgLjEuYwotKwlDT01QSUxFUj1gLi8uMWAKLSsJcj0kPwotKwlybSAtZiAuMS5jIC4xCi0rCiArCWlmIHRlc3QgIiRyIiAtbmUgMDsgdGhlbgogKwkJYXNzZXJ0ICIiICJ1cGRhdGUgY29tcGlsZXIiCiArCWVsc2UKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2NwdWlkL2NwdWlkXzIwMTcwMTIyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvY3B1aWQvY3B1aWRfMjAxNzAxMjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2E3MGY3NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2NwdWlkL2NwdWlkXzIwMTcwMTIyLmJiCkBAIC0wLDAgKzEsMjIgQEAKK1NVTU1BUlkgPSAiTGludXggdG9vbCB0byBkdW1wIHg4NiBDUFVJRCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgQ1BVKHMpIgorREVTQ1JJUFRJT04gPSAiY3B1aWQgZHVtcHMgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIENQVShzKSBnYXRoZXJlZCBcCitmcm9tIHRoZSBDUFVJRCBpbnN0cnVjdGlvbiwgYW5kIGFsc28gZGV0ZXJtaW5lcyB0aGUgZXhhY3QgbW9kZWwgb2YgQ1BVKHMpLiBcCitJdCBzdXBwb3J0cyBJbnRlbCwgQU1ELCBhbmQgVklBIENQVXMsIGFzIHdlbGwgYXMgb2xkZXIgVHJhbnNtZXRhLCBDeXJpeCwgXAorVU1DLCBOZXhHZW4sIFJpc2UsIGFuZCBTaVMgQ1BVcyIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKKworU1JDX1VSSSA9ICJodHRwOi8vd3d3LmV0YWxsZW4uY29tLyR7QlBOfS8ke0JQfS5zcmMudGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gIjFjNDZhNjY2MjYyNmM1YTZlYWNhNjI2ZjIzYTVhN2Q3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjY2NzYxMmFhZTY3MDQzNDFkZDEwODQ0ZTk3Yzg0YzVjNWM4NzAwODE3YTU5MzdhM2MyOTNiNTUwMTNiYzQ4NjUiCisKK0NPTVBBVElCTEVfSE9TVCA9ICIoaS44Nnx4ODZfNjQpLiotbGludXgiCisKKyMgVGhlIGluc3RhbGwgcnVsZSBmcm9tIHRoZSBNYWtlZmlsZSBoYXMgaGFyZGNvZGVkIHBhdGhzLCBzbyB3ZSBkdXBsaWNhdGUKKyMgdGhlIGFjdGlvbnMgdG8gYWNjb21tb2RhdGUgZGlmZmVyZW50IHBhdGhzLgorZG9faW5zdGFsbCAoKSB7CisgICAgaW5zdGFsbCAtZCAtbTc1NSAke0R9LyR7YmluZGlyfQorICAgIGluc3RhbGwgLW03NTUgJHtCfS9jcHVpZCAke0R9LyR7YmluZGlyfS9jcHVpZAorICAgIGluc3RhbGwgLWQgLW03NTUgJHtEfS8ke21hbmRpcn0KKyAgICBpbnN0YWxsIC1tNDQ0ICR7Qn0vY3B1aWQubWFuLmd6ICR7RH0vJHttYW5kaXJ9Cit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9mbGF0YnVmZmVycy9mbGF0YnVmZmVyc18xLjcuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2ZsYXRidWZmZXJzL2ZsYXRidWZmZXJzXzEuOS4wLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9mbGF0YnVmZmVycy9mbGF0YnVmZmVyc18xLjcuMS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZmxhdGJ1ZmZlcnMvZmxhdGJ1ZmZlcnNfMS45LjAuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dlYW55L2dlYW55LXBsdWdpbnNfMS4zMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dlYW55L2dlYW55LXBsdWdpbnNfMS4zMS5iYgppbmRleCAyN2ZlODYwLi5kOGYyZjg5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nZWFueS9nZWFueS1wbHVnaW5zXzEuMzEuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ2VhbnkvZ2VhbnktcGx1Z2luc18xLjMxLmJiCkBAIC0xMSw2ICsxMSw3IEBACiB9CiAKIERFUEVORFMgPSAiIFwKKyAgICBmcmliaWRpIFwKICAgICBnZWFueSBcCiAgICAgbGlieG1sMiBcCiAgICAgbGlic291cC0yLjQgXApAQCAtMjIsNyArMjMsOSBAQAogICAgIGxpYmdpdDIgXAogIgogCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ3RrLWljb24tY2FjaGUKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcgZ3RrLWljb24tY2FjaGUKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogU1JDX1VSSSA9ICJodHRwOi8vcGx1Z2lucy5nZWFueS5vcmcvJHtQTn0vJHtQTn0tJHtQVn0udGFyLmJ6MiIKIFNSQ19VUklbbWQ1c3VtXSA9ICI4MDhmOTA0OGI3N2ZkOTcwNDU2OWVkMmJhMTJhNTZlOSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dlYW55L2dlYW55XzEuMzEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nZWFueS9nZWFueV8xLjMxLmJiCmluZGV4IGNlMzZlMWUuLmJiOWQ4YmMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dlYW55L2dlYW55XzEuMzEuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ2VhbnkvZ2VhbnlfMS4zMS5iYgpAQCAtNSw3ICs1LDkgQEAKIAogREVQRU5EUyA9ICJndGsrIGxpYnhtbC1wYXJzZXItcGVybC1uYXRpdmUgcHl0aG9uMy1kb2N1dGlscy1uYXRpdmUgaW50bHRvb2wtbmF0aXZlIgogCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgcGVybG5hdGl2ZSBweXRob25uYXRpdmUgZ2V0dGV4dAoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBwZXJsbmF0aXZlIHB5dGhvbm5hdGl2ZSBnZXR0ZXh0CisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIFNSQ19VUkkgPSAiaHR0cDovL2Rvd25sb2FkLmdlYW55Lm9yZy8ke0JQfS50YXIuYnoyIgogU1JDX1VSSVttZDVzdW1dID0gIjM4NjAwMGJlNmIyNjk3MmM2YTY5OTkzOWMzN2NkYTM0IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzXzMuOC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGUzXzMuOC41LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNGY2MDAwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlM18zLjguNS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLVNVTU1BUlkgPSAiR2xhZGUgLSBBIFVzZXIgSW50ZXJmYWNlIERlc2lnbmVyIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2duYXNoIgotTElDRU5TRSA9ICJHUEx2MiAmIExHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWFhYmU4NzU5MWNiOGFlMGYzYzY4YmU2OTc3YmI1NTIyIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuR1BMO21kNT05YWMyZTdjZmYxZGRhZjQ4YjZlYWI2MDI4ZjIzZWY4OCBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkxHUEw7bWQ1PTI1Mjg5MGQ5ZWVlMjZhYWI3YjQzMmU4YjhhNjE2NDc1IgotREVQRU5EUyA9ICJndGsrIGdub21lLWRvYy11dGlscyBnbm9tZS1jb21tb24gbGlieG1sMiBpbnRsdG9vbC1uYXRpdmUiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBweXRob25uYXRpdmUgZ3RrLWljb24tY2FjaGUKLQotU1JDX1VSSSA9ICJodHRwOi8vZnRwLmdub21lLm9yZy9wdWIvR05PTUUvc291cmNlcy9nbGFkZTMvMy44L2dsYWRlMy0ke1BWfS50YXIueHogXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1nbm9tZS1kb2MtdXRpbHMubWFrZS1zeXNyb290ZWQtcGtnLWNvbmZpZy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAyLWZpeC1nY2MtNi1idWlsZC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLUFkZC1HX0dOVUNfUFJJTlRGLW9uLWZ1bmN0aW9ucy13aXRoLWZvcm1hdC1zdHJpbmdzLnBhdGNoIFwKLSAgICAgICAgICAgIgotU1JDX1VSSVttZDVzdW1dID0gIjRlNGI0ZjVlZTM0YTAzZTAxN2U0Y2VmOTdkNzk2YzFmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU4YTVmNmU0ZGY0MDI4MjMwZGRlY2M3NGM1NjQ4MDhiN2VjNDQ3MWIxOTI1MDU4ZTI5MzA0Zjc3OGI2YjI3MzUiCi0KLUVYVFJBX09FQ09ORiArPSAiLS1kaXNhYmxlLXNjcm9sbGtlZXBlciIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiIKLVBBQ0tBR0VDT05GSUdbZ25vbWVdID0gIi0tZW5hYmxlLWdub21lLC0tZGlzYWJsZS1nbm9tZSxsaWJib25vYm91aSBsaWJnbm9tZXVpIgotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9pY29ucyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlXzMuMjAuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlXzMuMjAuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjMzYjZlMy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9nbGFkZS9nbGFkZV8zLjIwLjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1TVU1NQVJZID0gIkdsYWRlIC0gQSBVc2VyIEludGVyZmFjZSBEZXNpZ25lciIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9nbmFzaCIKLUxJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1hYWJlODc1OTFjYjhhZTBmM2M2OGJlNjk3N2JiNTUyMiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkdQTDttZDU9OWFjMmU3Y2ZmMWRkYWY0OGI2ZWFiNjAyOGYyM2VmODggXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy5MR1BMO21kNT0yNTI4OTBkOWVlZTI2YWFiN2I0MzJlOGI4YTYxNjQ3NSIKLURFUEVORFMgPSAiZ3RrKyBndGsrMyBnbGliLTIuMCBsaWJ4bWwyIGludGx0b29sLW5hdGl2ZSBcCi0gICAgICAgICAgIGdub21lLWNvbW1vbi1uYXRpdmUgXAotIgotCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnbm9tZWJhc2UgZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0KLVNSQ19VUkkgPSAiaHR0cDovL2Z0cC5nbm9tZS5vcmcvcHViL0dOT01FL3NvdXJjZXMvZ2xhZGUvMy4yMC9nbGFkZS0ke1BWfS50YXIueHogXAotICAgICAgICAgICBmaWxlOi8vcmVtb3ZlLXllbHAtaGVscC1ydWxlcy12YXIucGF0Y2ggXAotICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICI5OTY0YTJkYTE0YzVmODQ1ZWFlMzYzODg5NTg2Y2E0MyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4MmQ5NmRjYTVkZWM0MGVlMzRlMmY0MWQ0OWMxM2I0ZWE1MGRhOGYzMmEzYTQ5Y2EyZGE4MDJmZjE0ZGMxOGZlIgotCi1FWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1tYW4tcGFnZXMiCi0KLUZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9LyogJHtsaWJkaXJ9L2dsYWRlL21vZHVsZXMvbGliZ2xhZGVndGsuc28iCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9nbGFkZS9tb2R1bGVzL2xpYmdsYWRlZ3RrLmxhIgotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vZ2xhZGUvbW9kdWxlcy8uZGVidWcvbGliZ2xhZGVndGsuc28iCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlXzMuMjAuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dsYWRlL2dsYWRlXzMuMjAuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWUxNzM3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ2xhZGUvZ2xhZGVfMy4yMC4yLmJiCkBAIC0wLDAgKzEsMjcgQEAKK1NVTU1BUlkgPSAiR2xhZGUgLSBBIFVzZXIgSW50ZXJmYWNlIERlc2lnbmVyIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2duYXNoIgorTElDRU5TRSA9ICJHUEx2MiAmIExHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWFhYmU4NzU5MWNiOGFlMGYzYzY4YmU2OTc3YmI1NTIyIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuR1BMO21kNT05YWMyZTdjZmYxZGRhZjQ4YjZlYWI2MDI4ZjIzZWY4OCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkxHUEw7bWQ1PTI1Mjg5MGQ5ZWVlMjZhYWI3YjQzMmU4YjhhNjE2NDc1IgorREVQRU5EUyA9ICJndGsrIGd0ayszIGdsaWItMi4wIGxpYnhtbDIgaW50bHRvb2wtbmF0aXZlIFwKKyAgICAgICAgICAgZ25vbWUtY29tbW9uLW5hdGl2ZSBcCisiCisKKworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnbm9tZWJhc2UgZ29iamVjdC1pbnRyb3NwZWN0aW9uCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK1NSQ19VUkkgPSAiaHR0cDovL2Z0cC5nbm9tZS5vcmcvcHViL0dOT01FL3NvdXJjZXMvZ2xhZGUvMy4yMC9nbGFkZS0ke1BWfS50YXIueHogXAorICAgICAgICAgICBmaWxlOi8vcmVtb3ZlLXllbHAtaGVscC1ydWxlcy12YXIucGF0Y2ggXAorICAgICAgICAgICIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkM2RkOWJhMzNjN2Q3Yzg1NGFiMjA3ZTFiYTg0NGRkYSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwN2QxNTQ1NTcwOTUxYWVkZWQyMGU5ZmRjNmQzZDhhNTZhZWVmZTI1Mzg3MzQ1NjhjNTMzNWJlMzM2YzZhYmVkIgorCitFWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1tYW4tcGFnZXMiCisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9LyogJHtsaWJkaXJ9L2dsYWRlL21vZHVsZXMvbGliZ2xhZGVndGsuc28iCitGSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9nbGFkZS9tb2R1bGVzL2xpYmdsYWRlZ3RrLmxhIgorRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vZ2xhZGUvbW9kdWxlcy8uZGVidWcvbGliZ2xhZGVndGsuc28iCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dycGMvZ3JwYy8wMDAxLUNNYWtlTGlzdHMudHh0LUZpeC1ncnBjX2NwcF9wbHVnaW4tcGF0aC1kdXJpbmctY3Jvc3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ncnBjL2dycGMvMDAwMS1DTWFrZUxpc3RzLnR4dC1GaXgtZ3JwY19jcHBfcGx1Z2luLXBhdGgtZHVyaW5nLWNyb3NzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3NzRlNjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ncnBjL2dycGMvMDAwMS1DTWFrZUxpc3RzLnR4dC1GaXgtZ3JwY19jcHBfcGx1Z2luLXBhdGgtZHVyaW5nLWNyb3NzLnBhdGNoCkBAIC0wLDAgKzEsNjggQEAKK0Zyb20gY2M2ZGJhYmVhMGU0NTJlYmM5MzY4MmRmODYwYTc5ZWQ5YTQ1NzIyZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFsZXhleSBGaXJhZ28gPGFsZXhleV9maXJhZ29AbWVudG9yLmNvbT4KK0RhdGU6IEZyaSwgMjAgT2N0IDIwMTcgMDA6MDQ6MTkgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSF0gQ01ha2VMaXN0cy50eHQ6IEZpeCBncnBjX2NwcF9wbHVnaW4gcGF0aCBkdXJpbmcKKyBjcm9zcy1jb21waWxhdGlvbgorCitTaWduZWQtb2ZmLWJ5OiBBbGV4ZXkgRmlyYWdvIDxhbGV4ZXlfZmlyYWdvQG1lbnRvci5jb20+CistLS0KKyBDTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgfCA5ICsrKysrKysrLQorIHRlbXBsYXRlcy9DTWFrZUxpc3RzLnR4dC50ZW1wbGF0ZSB8IDkgKysrKysrKystCisgMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggZjljZDYzMC4uOTY2MzkzNCAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTMyOCw2ICszMjgsMTMgQEAgZnVuY3Rpb24ocHJvdG9idWZfZ2VuZXJhdGVfZ3JwY19jcHApCisgICAgIHJldHVybigpCisgICBlbmRpZigpCisKKysgICNpZiBjcm9zcy1jb21waWxpbmcsIGZpbmQgaG9zdCBwbHVnaW4KKysgIGlmKENNQUtFX0NST1NTQ09NUElMSU5HKQorKyAgICAgIGZpbmRfcHJvZ3JhbShnUlBDX0NQUF9QTFVHSU4gZ3JwY19jcHBfcGx1Z2luKQorKyAgZWxzZSgpCisrICAgICAgc2V0KGdSUENfQ1BQX1BMVUdJTiAkPFRBUkdFVF9GSUxFOmdycGNfY3BwX3BsdWdpbj4pCisrICBlbmRpZigpCisrCisgICBzZXQoX3Byb3RvYnVmX2luY2x1ZGVfcGF0aCAtSSAuIC1JICR7UFJPVE9CVUZfV0VMTEtOT1dOX0lNUE9SVF9ESVJ9KQorICAgZm9yZWFjaChGSUwgJHtBUkdOfSkKKyAgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChBQlNfRklMICR7RklMfSBBQlNPTFVURSkKK0BAIC0zNDUsNyArMzUyLDcgQEAgZnVuY3Rpb24ocHJvdG9idWZfZ2VuZXJhdGVfZ3JwY19jcHApCisgICAgICAgQ09NTUFORCAke19nUlBDX1BST1RPQlVGX1BST1RPQ19FWEVDVVRBQkxFfQorICAgICAgIEFSR1MgLS1ncnBjX291dD1nZW5lcmF0ZV9tb2NrX2NvZGU9dHJ1ZToke19nUlBDX1BST1RPX0dFTlNfRElSfQorICAgICAgICAgICAgLS1jcHBfb3V0PSR7X2dSUENfUFJPVE9fR0VOU19ESVJ9CistICAgICAgICAgICAtLXBsdWdpbj1wcm90b2MtZ2VuLWdycGM9JDxUQVJHRVRfRklMRTpncnBjX2NwcF9wbHVnaW4+CisrICAgICAgICAgICAtLXBsdWdpbj1wcm90b2MtZ2VuLWdycGM9JHtnUlBDX0NQUF9QTFVHSU59CisgICAgICAgICAgICAke19wcm90b2J1Zl9pbmNsdWRlX3BhdGh9CisgICAgICAgICAgICAke1JFTF9GSUx9CisgICAgICAgREVQRU5EUyAke0FCU19GSUx9ICR7X2dSUENfUFJPVE9CVUZfUFJPVE9DfSBncnBjX2NwcF9wbHVnaW4KK2RpZmYgLS1naXQgYS90ZW1wbGF0ZXMvQ01ha2VMaXN0cy50eHQudGVtcGxhdGUgYi90ZW1wbGF0ZXMvQ01ha2VMaXN0cy50eHQudGVtcGxhdGUKK2luZGV4IDY0ZGFmMDQuLmE3ZTg2MjkgMTAwNjQ0CistLS0gYS90ZW1wbGF0ZXMvQ01ha2VMaXN0cy50eHQudGVtcGxhdGUKKysrKyBiL3RlbXBsYXRlcy9DTWFrZUxpc3RzLnR4dC50ZW1wbGF0ZQorQEAgLTM3Myw2ICszNzMsMTMgQEAKKyAgICAgICByZXR1cm4oKQorICAgICBlbmRpZigpCisKKysgICAgI2lmIGNyb3NzLWNvbXBpbGluZywgZmluZCBob3N0IHBsdWdpbgorKyAgICBpZihDTUFLRV9DUk9TU0NPTVBJTElORykKKysgICAgICAgIGZpbmRfcHJvZ3JhbShnUlBDX0NQUF9QTFVHSU4gZ3JwY19jcHBfcGx1Z2luKQorKyAgICBlbHNlKCkKKysgICAgICAgIHNldChnUlBDX0NQUF9QTFVHSU4gJDxUQVJHRVRfRklMRTpncnBjX2NwcF9wbHVnaW4+KQorKyAgICBlbmRpZigpCisrCisgICAgIHNldChfcHJvdG9idWZfaW5jbHVkZV9wYXRoIC1JIC4gLUkgPCV0ZXh0PiR7UFJPVE9CVUZfV0VMTEtOT1dOX0lNUE9SVF9ESVJ9PC8ldGV4dD4pCisgICAgIGZvcmVhY2goRklMIDwldGV4dD4ke0FSR059PC8ldGV4dD4pCisgICAgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChBQlNfRklMIDwldGV4dD4ke0ZJTH08LyV0ZXh0PiBBQlNPTFVURSkKK0BAIC0zOTAsNyArMzk3LDcgQEAKKyAgICAgICAgIENPTU1BTkQgPCV0ZXh0PiR7X2dSUENfUFJPVE9CVUZfUFJPVE9DX0VYRUNVVEFCTEV9PC8ldGV4dD4KKyAgICAgICAgIEFSR1MgLS1ncnBjX291dD08JXRleHQ+Z2VuZXJhdGVfbW9ja19jb2RlPXRydWU6JHtfZ1JQQ19QUk9UT19HRU5TX0RJUn08LyV0ZXh0PgorICAgICAgICAgICAgICAtLWNwcF9vdXQ9PCV0ZXh0PiR7X2dSUENfUFJPVE9fR0VOU19ESVJ9PC8ldGV4dD4KKy0gICAgICAgICAgICAgLS1wbHVnaW49cHJvdG9jLWdlbi1ncnBjPSQ8VEFSR0VUX0ZJTEU6Z3JwY19jcHBfcGx1Z2luPgorKyAgICAgICAgICAgICAtLXBsdWdpbj1wcm90b2MtZ2VuLWdycGM9JHtnUlBDX0NQUF9QTFVHSU59CisgICAgICAgICAgICAgIDwldGV4dD4ke19wcm90b2J1Zl9pbmNsdWRlX3BhdGh9PC8ldGV4dD4KKyAgICAgICAgICAgICAgPCV0ZXh0PiR7UkVMX0ZJTH08LyV0ZXh0PgorICAgICAgICAgREVQRU5EUyA8JXRleHQ+JHtBQlNfRklMfTwvJXRleHQ+IDwldGV4dD4ke19nUlBDX1BST1RPQlVGX1BST1RPQ308LyV0ZXh0PiBncnBjX2NwcF9wbHVnaW4KKy0tCisyLjcuNApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ3JwYy9ncnBjLzAwMDEtQ01ha2VMaXN0cy50eHQtRml4LWxpYnJhcmllcy1pbnN0YWxsYXRpb24tZm9yLUxpbnV4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ3JwYy9ncnBjLzAwMDEtQ01ha2VMaXN0cy50eHQtRml4LWxpYnJhcmllcy1pbnN0YWxsYXRpb24tZm9yLUxpbnV4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4ZDk2NTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ncnBjL2dycGMvMDAwMS1DTWFrZUxpc3RzLnR4dC1GaXgtbGlicmFyaWVzLWluc3RhbGxhdGlvbi1mb3ItTGludXgucGF0Y2gKQEAgLTAsMCArMSwxNjYgQEAKK0Zyb20gOGU5YmY5NjJhNDVhODJmMWMyZWI1ODU4ZTI5ZmE4OWEzYTYwYjU2NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFsZXhleSBGaXJhZ28gPGFsZXhleV9maXJhZ29AbWVudG9yLmNvbT4KK0RhdGU6IE1vbiwgMzAgT2N0IDIwMTcgMjM6MjQ6NDkgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzRdIENNYWtlTGlzdHMudHh0OiBGaXggbGlicmFyaWVzIGluc3RhbGxhdGlvbiBmb3IgTGludXgKKworKiBTZXQgbGlicyB2ZXJzaW9ucyBhcyBpbiBNYWtlZmlsZQorCitTaWduZWQtb2ZmLWJ5OiBBbGV4ZXkgRmlyYWdvIDxhbGV4ZXlfZmlyYWdvQG1lbnRvci5jb20+CisKKyUlIG9yaWdpbmFsIHBhdGNoOiAwMDAxLUNNYWtlTGlzdHMudHh0LUZpeC1saWJyYXJpZXMtaW5zdGFsbGF0aW9uLWZvci1MaW51eC5wYXRjaAorLS0tCisgQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgICB8IDU1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgQ01ha2VMaXN0cy50eHQgPT4gQ01ha2VMaXN0cy50eHQub3JpZyB8ICAwCisgMiBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspCisgY29weSBDTWFrZUxpc3RzLnR4dCA9PiBDTWFrZUxpc3RzLnR4dC5vcmlnICgxMDAlKQorCitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggYjFhNDlkZi4uMTNlNjRhYyAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTMwLDYgKzMwLDE1IEBAIHNldChQQUNLQUdFX1RBUk5BTUUgICAiJHtQQUNLQUdFX05BTUV9LSR7UEFDS0FHRV9WRVJTSU9OfSIpCisgc2V0KFBBQ0tBR0VfQlVHUkVQT1JUICJodHRwczovL2dpdGh1Yi5jb20vZ3JwYy9ncnBjL2lzc3Vlcy8iKQorIHByb2plY3QoJHtQQUNLQUdFX05BTUV9IEMgQ1hYKQorIAorK3NldCAoQ09SRV9WRVJTSU9OX01BSk9SICI0IikKKytzZXQgKENPUkVfVkVSU0lPTiAiNC4wLjAiKQorKworK3NldCAoQ1BQX1ZFUlNJT05fTUFKT1IgIjEiKQorK3NldCAoQ1BQX1ZFUlNJT04gIiR7UEFDS0FHRV9WRVJTSU9OfSIpCisrCisrc2V0IChDU0hBUlBfVkVSU0lPTl9NQUpPUiAiMSIpCisrc2V0IChDU0hBUlBfVkVSU0lPTiAiJHtQQUNLQUdFX1ZFUlNJT059IikKKysKKyBzZXQoZ1JQQ19JTlNUQUxMX0JJTkRJUiAiJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vYmluIiBDQUNIRSBQQVRIICJJbnN0YWxsYXRpb24gZGlyZWN0b3J5IGZvciBleGVjdXRhYmxlcyIpCisgc2V0KGdSUENfSU5TVEFMTF9MSUJESVIgIiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9L2xpYiIgQ0FDSEUgUEFUSCAiSW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBmb3IgbGlicmFyaWVzIikKKyBzZXQoZ1JQQ19JTlNUQUxMX0lOQ0xVREVESVIgIiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9L2luY2x1ZGUiIENBQ0hFIFBBVEggIkluc3RhbGxhdGlvbiBkaXJlY3RvcnkgZm9yIGhlYWRlcnMiKQorQEAgLTg0MSw2ICs4NTAsMTAgQEAgaWYoV0lOMzIgQU5EIE1TVkMpCisgICBlbmRpZigpCisgZW5kaWYoKQorIAorK2lmKF9nUlBDX1BMQVRGT1JNX0xJTlVYKQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncHIgUFJPUEVSVFkgVkVSU0lPTiAke0NPUkVfVkVSU0lPTn0pCisrICBzZXRfcHJvcGVydHkoVEFSR0VUIGdwciBQUk9QRVJUWSBTT1ZFUlNJT04gJHtDT1JFX1ZFUlNJT05fTUFKT1J9KQorK2VuZGlmKCkKKyAKKyB0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhncHIKKyAgIFBVQkxJQyAkPElOU1RBTExfSU5URVJGQUNFOiR7Z1JQQ19JTlNUQUxMX0lOQ0xVREVESVJ9PiAkPEJVSUxEX0lOVEVSRkFDRToke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vaW5jbHVkZT4KK0BAIC0xMjIxLDYgKzEyMzQsMTAgQEAgaWYoV0lOMzIgQU5EIE1TVkMpCisgICBlbmRpZigpCisgZW5kaWYoKQorIAorK2lmKF9nUlBDX1BMQVRGT1JNX0xJTlVYKQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjIFBST1BFUlRZIFZFUlNJT04gJHtDT1JFX1ZFUlNJT059KQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjIFBST1BFUlRZIFNPVkVSU0lPTiAke0NPUkVfVkVSU0lPTl9NQUpPUn0pCisrZW5kaWYoKQorIAorIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGdycGMKKyAgIFBVQkxJQyAkPElOU1RBTExfSU5URVJGQUNFOiR7Z1JQQ19JTlNUQUxMX0lOQ0xVREVESVJ9PiAkPEJVSUxEX0lOVEVSRkFDRToke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vaW5jbHVkZT4KK0BAIC0xNTM1LDYgKzE1NTIsMTAgQEAgaWYoV0lOMzIgQU5EIE1TVkMpCisgICBlbmRpZigpCisgZW5kaWYoKQorIAorK2lmKF9nUlBDX1BMQVRGT1JNX0xJTlVYKQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjX2Nyb25ldCBQUk9QRVJUWSBWRVJTSU9OICR7Q09SRV9WRVJTSU9OfSkKKysgIHNldF9wcm9wZXJ0eShUQVJHRVQgZ3JwY19jcm9uZXQgUFJPUEVSVFkgU09WRVJTSU9OICR7Q09SRV9WRVJTSU9OX01BSk9SfSkKKytlbmRpZigpCisgCisgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoZ3JwY19jcm9uZXQKKyAgIFBVQkxJQyAkPElOU1RBTExfSU5URVJGQUNFOiR7Z1JQQ19JTlNUQUxMX0lOQ0xVREVESVJ9PiAkPEJVSUxEX0lOVEVSRkFDRToke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vaW5jbHVkZT4KK0BAIC0yMzc3LDYgKzIzOTgsMTAgQEAgaWYoV0lOMzIgQU5EIE1TVkMpCisgICBlbmRpZigpCisgZW5kaWYoKQorIAorK2lmKF9nUlBDX1BMQVRGT1JNX0xJTlVYKQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjX3Vuc2VjdXJlIFBST1BFUlRZIFZFUlNJT04gJHtDT1JFX1ZFUlNJT059KQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjX3Vuc2VjdXJlIFBST1BFUlRZIFNPVkVSU0lPTiAke0NPUkVfVkVSU0lPTl9NQUpPUn0pCisrZW5kaWYoKQorIAorIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGdycGNfdW5zZWN1cmUKKyAgIFBVQkxJQyAkPElOU1RBTExfSU5URVJGQUNFOiR7Z1JQQ19JTlNUQUxMX0lOQ0xVREVESVJ9PiAkPEJVSUxEX0lOVEVSRkFDRToke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vaW5jbHVkZT4KK0BAIC0yNTkyLDYgKzI2MTcsMTAgQEAgaWYoV0lOMzIgQU5EIE1TVkMpCisgICBlbmRpZigpCisgZW5kaWYoKQorIAorK2lmKF9nUlBDX1BMQVRGT1JNX0xJTlVYKQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjKysgUFJPUEVSVFkgVkVSU0lPTiAke0NQUF9WRVJTSU9OfSkKKysgIHNldF9wcm9wZXJ0eShUQVJHRVQgZ3JwYysrIFBST1BFUlRZIFNPVkVSU0lPTiAke0NQUF9WRVJTSU9OX01BSk9SfSkKKytlbmRpZigpCisgCisgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoZ3JwYysrCisgICBQVUJMSUMgJDxJTlNUQUxMX0lOVEVSRkFDRToke2dSUENfSU5TVEFMTF9JTkNMVURFRElSfT4gJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1ZGU+CitAQCAtMzA3OCw2ICszMTA3LDEwIEBAIGlmKFdJTjMyIEFORCBNU1ZDKQorICAgZW5kaWYoKQorIGVuZGlmKCkKKyAKKytpZihfZ1JQQ19QTEFURk9STV9MSU5VWCkKKysgIHNldF9wcm9wZXJ0eShUQVJHRVQgZ3JwYysrX2Nyb25ldCBQUk9QRVJUWSBWRVJTSU9OICR7Q1BQX1ZFUlNJT059KQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjKytfY3JvbmV0IFBST1BFUlRZIFNPVkVSU0lPTiAke0NQUF9WRVJTSU9OX01BSk9SfSkKKytlbmRpZigpCisgCisgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoZ3JwYysrX2Nyb25ldAorICAgUFVCTElDICQ8SU5TVEFMTF9JTlRFUkZBQ0U6JHtnUlBDX0lOU1RBTExfSU5DTFVERURJUn0+ICQ8QlVJTERfSU5URVJGQUNFOiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9pbmNsdWRlPgorQEAgLTMyODIsNiArMzMxNSwxMSBAQCBwcm90b2J1Zl9nZW5lcmF0ZV9ncnBjX2NwcCgKKyAgIHNyYy9wcm90by9ncnBjL3N0YXR1cy9zdGF0dXMucHJvdG8KKyApCisgCisraWYoX2dSUENfUExBVEZPUk1fTElOVVgpCisrICBzZXRfcHJvcGVydHkoVEFSR0VUIGdycGMrK19lcnJvcl9kZXRhaWxzIFBST1BFUlRZIFZFUlNJT04gJHtDUFBfVkVSU0lPTn0pCisrICBzZXRfcHJvcGVydHkoVEFSR0VUIGdycGMrK19lcnJvcl9kZXRhaWxzIFBST1BFUlRZIFNPVkVSU0lPTiAke0NQUF9WRVJTSU9OX01BSk9SfSkKKytlbmRpZigpCisrCisgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoZ3JwYysrX2Vycm9yX2RldGFpbHMKKyAgIFBVQkxJQyAkPElOU1RBTExfSU5URVJGQUNFOiR7Z1JQQ19JTlNUQUxMX0lOQ0xVREVESVJ9PiAkPEJVSUxEX0lOVEVSRkFDRToke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vaW5jbHVkZT4KKyAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9CitAQCAtMzQwOCw2ICszNDQ2LDExIEBAIHByb3RvYnVmX2dlbmVyYXRlX2dycGNfY3BwKAorICAgc3JjL3Byb3RvL2dycGMvcmVmbGVjdGlvbi92MWFscGhhL3JlZmxlY3Rpb24ucHJvdG8KKyApCisgCisraWYoX2dSUENfUExBVEZPUk1fTElOVVgpCisrICBzZXRfcHJvcGVydHkoVEFSR0VUIGdycGMrK19yZWZsZWN0aW9uIFBST1BFUlRZIFZFUlNJT04gJHtDUFBfVkVSU0lPTn0pCisrICBzZXRfcHJvcGVydHkoVEFSR0VUIGdycGMrK19yZWZsZWN0aW9uIFBST1BFUlRZIFNPVkVSU0lPTiAke0NQUF9WRVJTSU9OX01BSk9SfSkKKytlbmRpZigpCisrCisgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoZ3JwYysrX3JlZmxlY3Rpb24KKyAgIFBVQkxJQyAkPElOU1RBTExfSU5URVJGQUNFOiR7Z1JQQ19JTlNUQUxMX0lOQ0xVREVESVJ9PiAkPEJVSUxEX0lOVEVSRkFDRToke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vaW5jbHVkZT4KKyAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9CitAQCAtMzgyNyw2ICszODcwLDEwIEBAIGlmKFdJTjMyIEFORCBNU1ZDKQorICAgZW5kaWYoKQorIGVuZGlmKCkKKyAKKytpZihfZ1JQQ19QTEFURk9STV9MSU5VWCkKKysgIHNldF9wcm9wZXJ0eShUQVJHRVQgZ3JwYysrX3Vuc2VjdXJlIFBST1BFUlRZIFZFUlNJT04gJHtDUFBfVkVSU0lPTn0pCisrICBzZXRfcHJvcGVydHkoVEFSR0VUIGdycGMrK191bnNlY3VyZSBQUk9QRVJUWSBTT1ZFUlNJT04gJHtDUFBfVkVSU0lPTl9NQUpPUn0pCisrZW5kaWYoKQorIAorIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGdycGMrK191bnNlY3VyZQorICAgUFVCTElDICQ8SU5TVEFMTF9JTlRFUkZBQ0U6JHtnUlBDX0lOU1RBTExfSU5DTFVERURJUn0+ICQ8QlVJTERfSU5URVJGQUNFOiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9pbmNsdWRlPgorQEAgLTQxNDAsNiArNDE4NywxMCBAQCBpZihXSU4zMiBBTkQgTVNWQykKKyAgIGVuZGlmKCkKKyBlbmRpZigpCisgCisraWYoX2dSUENfUExBVEZPUk1fTElOVVgpCisrICBzZXRfcHJvcGVydHkoVEFSR0VUIGdycGNfcGx1Z2luX3N1cHBvcnQgUFJPUEVSVFkgVkVSU0lPTiAke0NPUkVfVkVSU0lPTn0pCisrICBzZXRfcHJvcGVydHkoVEFSR0VUIGdycGNfcGx1Z2luX3N1cHBvcnQgUFJPUEVSVFkgU09WRVJTSU9OICR7Q09SRV9WRVJTSU9OX01BSk9SfSkKKytlbmRpZigpCisgCisgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoZ3JwY19wbHVnaW5fc3VwcG9ydAorICAgUFVCTElDICQ8SU5TVEFMTF9JTlRFUkZBQ0U6JHtnUlBDX0lOU1RBTExfSU5DTFVERURJUn0+ICQ8QlVJTERfSU5URVJGQUNFOiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9pbmNsdWRlPgorQEAgLTQ2NDksNiArNDcwMCwxMCBAQCBpZihXSU4zMiBBTkQgTVNWQykKKyAgIGVuZGlmKCkKKyBlbmRpZigpCisgCisraWYoX2dSUENfUExBVEZPUk1fTElOVVgpCisrICBzZXRfcHJvcGVydHkoVEFSR0VUIGdycGNfY3NoYXJwX2V4dCBQUk9QRVJUWSBWRVJTSU9OICR7Q1NIQVJQX1ZFUlNJT059KQorKyAgc2V0X3Byb3BlcnR5KFRBUkdFVCBncnBjX2NzaGFycF9leHQgUFJPUEVSVFkgU09WRVJTSU9OICR7Q1NIQVJQX1ZFUlNJT05fTUFKT1J9KQorK2VuZGlmKCkKKyAKKyB0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhncnBjX2NzaGFycF9leHQKKyAgIFBVQkxJQyAkPElOU1RBTExfSU5URVJGQUNFOiR7Z1JQQ19JTlNUQUxMX0lOQ0xVREVESVJ9PiAkPEJVSUxEX0lOVEVSRkFDRToke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vaW5jbHVkZT4KK2RpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0Lm9yaWcKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorY29weSBmcm9tIENNYWtlTGlzdHMudHh0Citjb3B5IHRvIENNYWtlTGlzdHMudHh0Lm9yaWcKKy0tIAorMi4xNi4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dycGMvZ3JwYy8wMDA0LUNNYWtlTGlzdHMudHh0LUZpbmQtYy1hcmVzLWluLXRhcmdldC1zeXNyb290LWFsb25lLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvZ3JwYy9ncnBjLzAwMDQtQ01ha2VMaXN0cy50eHQtRmluZC1jLWFyZXMtaW4tdGFyZ2V0LXN5c3Jvb3QtYWxvbmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk4NTAyMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dycGMvZ3JwYy8wMDA0LUNNYWtlTGlzdHMudHh0LUZpbmQtYy1hcmVzLWluLXRhcmdldC1zeXNyb290LWFsb25lLnBhdGNoCkBAIC0wLDAgKzEsNDIgQEAKK0Zyb20gYTQ5OGI1NmJhOTY5NDgwMTVmMGYyNzg0YjJhYjgyOTY5NDY3MTZlZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBUaHUsIDEgRmViIDIwMTggMjM6Mjg6MTcgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSCA0LzRdIENNYWtlTGlzdHMudHh0OiBGaW5kIGMtYXJlcyBpbiB0YXJnZXQgc3lzcm9vdCBhbG9uZQorCitDdXJyZW50IGNvZGUgbGV0cyBpdCBsb29rIGludG8gbmF0aXZlIHN5c3Jvb3QgYXMgd2VsbAord2hpY2ggaXMgdGhlbiBwcmVmZXJyZWQgZHVyaW5nIGNyb3NzIGNvbXBpbGUgYW5kIGl0IGFkZHMKK2Fic29sdXRlIHBhdGggdG8gbGliY2FyZXMgaW50byBsaW5rZXIgZmxhZ3MKK29uIGhldGVyb2dlbm91cyBhcmNoaXRlY3R1cmVzIGxpbmtlciBjb21wbGFpbnMgYW5kIGJ1aWxkCitmYWlscworCit8IC9tbnQvYS9vZS9idWlsZC90bXAvd29yay9jb3J0ZXhhN3QyaGYtbmVvbi12ZnB2NC1iZWMtbGludXgtZ251ZWFiaS9ncnBjLzEuOC41LXIwL3JlY2lwZS1zeXNyb290LW5hdGl2ZS91c3IvbGliL2xpYgorY2FyZXMuc28uMi4yLjA6IGZpbGUgbm90IHJlY29nbml6ZWQ6IEZpbGUgZm9ybWF0IG5vdCByZWNvZ25pemVkCit8IGNvbGxlY3QyOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cworCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorIENNYWtlTGlzdHMudHh0IHwgNiArKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggMWQ3ZWVmMS4uMDU4NDIzZCAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTE1MywxMCArMTUzLDggQEAgaWYoIiR7Z1JQQ19DQVJFU19QUk9WSURFUn0iIFNUUkVRVUFMICJtb2R1bGUiKQorICAgICBzZXQoZ1JQQ19JTlNUQUxMIEZBTFNFKQorICAgZW5kaWYoKQorIGVsc2VpZigiJHtnUlBDX0NBUkVTX1BST1ZJREVSfSIgU1RSRVFVQUwgInBhY2thZ2UiKQorLSAgZmluZF9wYWNrYWdlKGMtYXJlcyBSRVFVSVJFRCBDT05GSUcpCistICBpZihUQVJHRVQgYy1hcmVzOjpjYXJlcykKKy0gICAgc2V0KF9nUlBDX0NBUkVTX0xJQlJBUklFUyBjLWFyZXM6OmNhcmVzKQorLSAgZW5kaWYoKQorKyAgZmluZF9wYWNrYWdlKGMtYXJlcyBSRVFVSVJFRCkKKysgIHNldChfZ1JQQ19DQVJFU19MSUJSQVJJRVMgY2FyZXMpCisgICBzZXQoX2dSUENfRklORF9DQVJFUyAiaWYoTk9UIGMtYXJlc19GT1VORClcbiAgZmluZF9wYWNrYWdlKGMtYXJlcyBDT05GSUcpXG5lbmRpZigpIikKKyBlbmRpZigpCisgCistLSAKKzIuMTYuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ncnBjL2dycGNfMS44LjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ncnBjL2dycGNfMS44LjUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDg4M2VjMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2dycGMvZ3JwY18xLjguNS5iYgpAQCAtMCwwICsxLDM2IEBACitERVNDUklQVElPTiA9ICJBIGhpZ2ggcGVyZm9ybWFuY2UsIG9wZW4gc291cmNlLCBnZW5lcmFsLXB1cnBvc2UgUlBDIGZyYW1ld29yay4gXAorUHJvdmlkZXMgZ1JQQyBsaWJyYXJpZXMgZm9yIG11bHRpcGxlIGxhbmd1YWdlcyB3cml0dGVuIG9uIHRvcCBvZiBzaGFyZWQgQyBjb3JlIGxpYnJhcnkgXAorKEMrKywgTm9kZS5qcywgUHl0aG9uLCBSdWJ5LCBPYmplY3RpdmUtQywgUEhQLCBDIykiCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vZ3JwYy9ncnBjIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJBcGFjaGUtMiIKKworREVQRU5EUyA9ICJnZmxhZ3MgYy1hcmVzIHByb3RvYnVmIHByb3RvYnVmLW5hdGl2ZSBwcm90b2J1Zi1jIHByb3RvYnVmLWMtbmF0aXZlIG9wZW5zc2wiCitERVBFTkRTX2FwcGVuZF9jbGFzcy10YXJnZXQgPSAiIGd0ZXN0IGdycGMtbmF0aXZlICIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9M2I4M2VmOTYzODdmMTQ2NTVmYzg1NGRkYzNjNmJkNTciCisKK1NSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2dycGMvZ3JwYy9hcmNoaXZlL3Yke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1DTWFrZUxpc3RzLnR4dC1GaXgtbGlicmFyaWVzLWluc3RhbGxhdGlvbi1mb3ItTGludXgucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwNC1DTWFrZUxpc3RzLnR4dC1GaW5kLWMtYXJlcy1pbi10YXJnZXQtc3lzcm9vdC1hbG9uZS5wYXRjaCBcCisgICAgICAgICAgICIKK1NSQ19VUklbbWQ1c3VtXSA9ICJiNTY1ZmE2Nzg3ZTQyZjQ5NjkzOTU4NzBjMmFkNDM2ZSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkZjkxNjhkYTc2MGZkMmVlOTcwYzc0YzlkMWI2MzM3N2UwMDI0YmUyNDhkZWFhODQ0ZTc4NGQwZGY0NzU5OWRlIgorCitTUkNfVVJJX2FwcGVuZF9jbGFzcy10YXJnZXQgPSAiIGZpbGU6Ly8wMDAxLUNNYWtlTGlzdHMudHh0LUZpeC1ncnBjX2NwcF9wbHVnaW4tcGF0aC1kdXJpbmctY3Jvc3MucGF0Y2giCisKK2luaGVyaXQgY21ha2UKKworRVhUUkFfT0VDTUFLRSA9ICIgXAorICAgIC1EZ1JQQ19DQVJFU19QUk9WSURFUj1wYWNrYWdlIFwKKyAgICAtRGdSUENfWkxJQl9QUk9WSURFUj1wYWNrYWdlIFwKKyAgICAtRGdSUENfU1NMX1BST1ZJREVSPXBhY2thZ2UgXAorICAgIC1EZ1JQQ19QUk9UT0JVRl9QUk9WSURFUj1wYWNrYWdlIFwKKyAgICAtRGdSUENfR0ZMQUdTX1BST1ZJREVSPXBhY2thZ2UgXAorICAgIC1EZ1JQQ19JTlNUQUxMPTEgXAorICAgIC1EQlVJTERfU0hBUkVEX0xJQlM9T04gXAorICAgICIKKworRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vY21ha2UiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvanNvbmNwcC9qc29uY3BwXzEuOC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvanNvbmNwcC9qc29uY3BwXzEuOC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiN2EwMmVmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2pzb25jcHAvanNvbmNwcF8xLjguMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVNVTU1BUlkgPSAiSlNPTiBDKysgbGliIHVzZWQgdG8gcmVhZCBhbmQgd3JpdGUganNvbiBmaWxlLiIKLURFU0NSSVBUSU9OID0gIkpzb25jcHAgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgYSBKU09OIChodHRwOi8vanNvbi5vcmcpIHJlYWRlciBcCi0gICAgICAgICAgICAgICBhbmQgd3JpdGVyIGluIEMrKy4gSlNPTiAoSmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24pIGlzIGEgXAotICAgICAgICAgICAgICAgbGlnaHR3ZWlnaHQgZGF0YS1pbnRlcmNoYW5nZSBmb3JtYXQuIEl0IGlzIGVhc3kgZm9yIGh1bWFucyB0byBcCi0gICAgICAgICAgICAgICByZWFkIGFuZCB3cml0ZS4gSXQgaXMgZWFzeSBmb3IgbWFjaGluZXMgdG8gcGFyc2UgYW5kIGdlbmVyYXRlLiIKLQotSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL29wZW4tc291cmNlLXBhcnNlcnMvanNvbmNwcCIKLQotU0VDVElPTiA9ICJsaWJzIgotCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWZhMmEyM2RkMWRjNmMxMzlmMzUxMDUzNzlkNzZkZjJiIgotCi1TUkNSRVYgPSAiMmRlMTgwMjFmY2IxMTM3MGU5YjVhMWZiZTdkY2ZkNjczNTMzYTEzNCIKLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuLXNvdXJjZS1wYXJzZXJzL2pzb25jcHAiCi0KLVMgPSAiJHtXT1JLRElSfS9naXQiCi0KLWluaGVyaXQgY21ha2UKLQotRVhUUkFfT0VDTUFLRSArPSAiLURCVUlMRF9TSEFSRURfTElCUz1PTiAtREpTT05DUFBfV0lUSF9URVNUUz1PRkYiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9qc29uY3BwL2pzb25jcHBfMS44LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9qc29uY3BwL2pzb25jcHBfMS44LjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhlMzMyMAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2pzb25jcHAvanNvbmNwcF8xLjguNC5iYgpAQCAtMCwwICsxLDIxIEBACitTVU1NQVJZID0gIkpTT04gQysrIGxpYiB1c2VkIHRvIHJlYWQgYW5kIHdyaXRlIGpzb24gZmlsZS4iCitERVNDUklQVElPTiA9ICJKc29uY3BwIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIGEgSlNPTiAoaHR0cDovL2pzb24ub3JnKSByZWFkZXIgXAorICAgICAgICAgICAgICAgYW5kIHdyaXRlciBpbiBDKysuIEpTT04gKEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uKSBpcyBhIFwKKyAgICAgICAgICAgICAgIGxpZ2h0d2VpZ2h0IGRhdGEtaW50ZXJjaGFuZ2UgZm9ybWF0LiBJdCBpcyBlYXN5IGZvciBodW1hbnMgdG8gXAorICAgICAgICAgICAgICAgcmVhZCBhbmQgd3JpdGUuIEl0IGlzIGVhc3kgZm9yIG1hY2hpbmVzIHRvIHBhcnNlIGFuZCBnZW5lcmF0ZS4iCisKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXNvdXJjZS1wYXJzZXJzL2pzb25jcHAiCisKK1NFQ1RJT04gPSAibGlicyIKKworTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1mYTJhMjNkZDFkYzZjMTM5ZjM1MTA1Mzc5ZDc2ZGYyYiIKKworU1JDUkVWID0gImRkYWJmNTBmNzJjZjM2OWJmNjUyYTk1YzRkOWZlMzFhMTg2NWE3ODEiCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vb3Blbi1zb3VyY2UtcGFyc2Vycy9qc29uY3BwIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitpbmhlcml0IGNtYWtlCisKK0VYVFJBX09FQ01BS0UgKz0gIi1EQlVJTERfU0hBUkVEX0xJQlM9T04gLURKU09OQ1BQX1dJVEhfVEVTVFM9T0ZGIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbGlicmNmL2xpYnJjZl8yLjIuMC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbGlicmNmL2xpYnJjZl8yLjIuMC4wLmJiCmluZGV4IDQzZWZmNzIuLjI2N2MwZTcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2xpYnJjZi9saWJyY2ZfMi4yLjAuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9saWJyY2YvbGlicmNmXzIuMi4wLjAuYmIKQEAgLTUwLDMgKzUwLDUgQEAKIEZJTEVTXyR7UE59LWRldiArPSAiJHtkYXRhZGlyfS9jbWFrZS9Nb2R1bGVzL0ZpbmRMaWJSY2YuY21ha2UiCiAKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlc2RrIgorCitQTkJMQUNLTElTVFtsaWJyY2ZdID0gIiBlcnJvcjogaW52YWxpZCB1c2Ugb2YgaW5jb21wbGV0ZSB0eXBlICdSQ0Y6OkFzaW9Jb1NlcnZpY2Uge2FrYSBjbGFzcyBib29zdDo6YXNpbzo6aW9fc2VydmljZX07IGFtb25nIG90aGVycz8iIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbHVhaml0L2x1YWppdF8yLjAuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2x1YWppdC9sdWFqaXRfMi4wLjUuYmIKaW5kZXggNzNjMzgxMS4uMWQ2OWIzYyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbHVhaml0L2x1YWppdF8yLjAuNS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9sdWFqaXQvbHVhaml0XzIuMC41LmJiCkBAIC01Myw2ICs1Myw3IEBACiAgICAgXAogICAgICdQUkVGSVg9JHtwcmVmaXh9JyBcCiAgICAgJ01VTFRJTElCPSR7YmFzZWxpYn0nIFwKKyAgICAnTERDT05GSUc9OicgXAogIgogCiBkb19jb21waWxlICgpIHsKQEAgLTkwLDMgKzkxLDUgQEAKICIKIEZJTEVTX2x1YWppdC1jb21tb24gPSAiJHtkYXRhZGlyfS8ke0JQTn0tJHtQVn0iCiAKKyMgQWFyY2g2NCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgcmVsZWFzZSAKK0NPTVBBVElCTEVfSE9TVCA9ICJeKD8hYWFyY2g2NCkuKiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21lcmN1cmlhbC9maWxlcy9tZXJjdXJpYWwtQ1ZFLTIwMTctOTQ2Mi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21lcmN1cmlhbC9maWxlcy9tZXJjdXJpYWwtQ1ZFLTIwMTctOTQ2Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU2NDY2MS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tZXJjdXJpYWwvZmlsZXMvbWVyY3VyaWFsLUNWRS0yMDE3LTk0NjIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBAQAotIyBIRyBjaGFuZ2VzZXQgcGF0Y2gKLSMgVXNlciBBdWdpZSBGYWNrbGVyIDxhdWdpZUBnb29nbGUuY29tPgotIyBEYXRlIDE0OTIwMjE0MzUgMjUyMDAKLSMgICAgICBXZWQgQXByIDEyIDExOjIzOjU1IDIwMTcgLTA3MDAKLSMgQnJhbmNoIHN0YWJsZQotIyBOb2RlIElEIDc3ZWFmOTUzOTQ5OWExYjhiZTI1OWZmZTdhZGE3ODdkMDc4NTdmODAKLSMgUGFyZW50ICA2OGYyNjNmNTJkMmUzZTI3OThiNGYxZTU1Y2I2NjVjNmIwNDNmOTNiCi1kaXNwYXRjaDogcHJvdGVjdCBhZ2FpbnN0IG1hbGljaW91cyAnaGcgc2VydmUgLS1zdGRpbycgaW52b2NhdGlvbnMgKHNlYykKLQotU29tZSBzaGFyZWQtc3NoIGluc3RhbGxhdGlvbnMgYXNzdW1lIHRoYXQgJ2hnIHNlcnZlIC0tc3RkaW8nIGlzIGEgc2FmZQotY29tbWFuZCB0byBydW4gZm9yIG1pbmltYWxseSB0cnVzdGVkIHVzZXJzLiBVbmZvcnR1bmF0ZWx5LCB0aGUgbWVzc3kKLWltcGxlbWVudGF0aW9uIG9mIGFyZ3VtZW50IHBhcnNpbmcgaGVyZSBtZWFudCB0aGF0IHRyeWluZyB0byBhY2Nlc3MgYQotcmVwbyBuYW1lZCAnLS1kZWJ1Z2dlcicgd291bGQgZ2l2ZSB0aGUgdXNlciBhIHBkYiBwcm9tcHQsIHRoZXJlYnkKLXNpZGVzdGVwcGluZyBhbnkgaG9wZWQtZm9yIHNhbmRib3hpbmcuIFNlcnZpbmcgcmVwb3NpdG9yaWVzIG92ZXIgSFRUUChTKQotaXMgdW5hZmZlY3RlZC4KLQotV2UncmUgbm90IGN1cnJlbnRseSBoYXJkZW5pbmcgYW55IHN1YmNvbW1hbmRzIG90aGVyIHRoYW4gJ3NlcnZlJy4gSWYKLXlvdXIgc2VydmljZSBleHBvc2VzIG90aGVyIGNvbW1hbmRzIHRvIHVzZXJzIHdpdGggYXJiaXRyYXJ5IHJlcG9zaXRvcnkKLW5hbWVzLCBpdCBpcyBpbXBlcmF0aXZlIHRoYXQgeW91IGRlZmVuZCBhZ2FpbnN0IHJlcG9zaXRvcnkgbmFtZXMgb2YKLSctLWRlYnVnZ2VyJyBhbmQgYW55dGhpbmcgc3RhcnRpbmcgd2l0aCAnLS1jb25maWcnLgotCi1UaGUgcmVhZC1vbmx5IG1vZGUgb2YgaGctc3NoIHN0b3BwZWQgd29ya2luZyBiZWNhdXNlIGl0IHByb3ZpZGVkIGl0cyBob29rCi1jb25maWd1cmF0aW9uIHRvICJoZyBzZXJ2ZSAtLXN0ZGlvIiB2aWEgLS1jb25maWcgcGFyYW1ldGVyLiBUaGlzIGlzIGJhbm5lZCBmb3IKLXNlY3VyaXR5IHJlYXNvbnMgbm93LiBUaGlzIHBhdGNoIHN3aXRjaGVzIGl0IHRvIGRpcmVjdGx5IGNhbGwgdWkuc2V0Y29uZmlnKCkuCi1JZiB5b3VyIGN1c3RvbSBob3N0aW5nIGluZnJhc3RydWN0dXJlIHJlbGllcyBvbiBwYXNzaW5nIC0tY29uZmlnIHRvCi0iaGcgc2VydmUgLS1zdGRpbyIsIHlvdSdsbCBuZWVkIHRvIGZpbmQgYSBkaWZmZXJlbnQgd2F5IHRvIGdldCB0aGF0IGNvbmZpZ3VyYXRpb24KLWludG8gTWVyY3VyaWFsLCBlaXRoZXIgYnkgdXNpbmcgdWkuc2V0Y29uZmlnKCkgYXMgaGctc3NoIGRvZXMgaW4gdGhpcyBwYXRjaCwKLW9yIGJ5IHBsYWNpbmcgYW4gaGdyYyBmaWxlIHNvbWVwbGFjZSB3aGVyZSBNZXJjdXJpYWwgd2lsbCByZWFkIGl0LgotCi1taXRyYW5kaXJAZmIuY29tIHByb3ZpZGVkIHNvbWUgZXh0cmEgZml4ZXMgZm9yIHRoZSBkaXNwYXRjaCBjb2RlIGFuZAotZm9yIGhnLXNzaCBpbiBwbGFjZXMgdGhhdCBJIG92ZXJsb29rZWQuCi0KLUNWRTogQ1ZFLTIwMTctOTQ2MgotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci0KLWRpZmYgLS1naXQgYS9jb250cmliL2hnLXNzaCBiL2NvbnRyaWIvaGctc3NoCi0tLS0gYS9jb250cmliL2hnLXNzaAotKysrIGIvY29udHJpYi9oZy1zc2gKLUBAIC0zMiw3ICszMiw3IEBACi0gIyBlbmFibGUgaW1wb3J0aW5nIG9uIGRlbWFuZCB0byByZWR1Y2Ugc3RhcnR1cCB0aW1lCi0gZnJvbSBtZXJjdXJpYWwgaW1wb3J0IGRlbWFuZGltcG9ydDsgZGVtYW5kaW1wb3J0LmVuYWJsZSgpCi0gCi0tZnJvbSBtZXJjdXJpYWwgaW1wb3J0IGRpc3BhdGNoCi0rZnJvbSBtZXJjdXJpYWwgaW1wb3J0IGRpc3BhdGNoLCB1aSBhcyB1aW1vZAotIAotIGltcG9ydCBzeXMsIG9zLCBzaGxleAotIAotQEAgLTYxLDE0ICs2MSwxNSBAQAotICAgICAgICAgcmVwbyA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5qb2luKGN3ZCwgb3MucGF0aC5leHBhbmR1c2VyKHBhdGgpKSkKLSAgICAgICAgIGlmIHJlcG8gaW4gYWxsb3dlZF9wYXRoczoKLSAgICAgICAgICAgICBjbWQgPSBbJy1SJywgcmVwbywgJ3NlcnZlJywgJy0tc3RkaW8nXQotKyAgICAgICAgICAgIHJlcSA9IGRpc3BhdGNoLnJlcXVlc3QoY21kKQotICAgICAgICAgICAgIGlmIHJlYWRvbmx5OgotLSAgICAgICAgICAgICAgICBjbWQgKz0gWwotLSAgICAgICAgICAgICAgICAgICAgJy0tY29uZmlnJywKLS0gICAgICAgICAgICAgICAgICAgICdob29rcy5wcmV0eG5vcGVuLmhnLXNzaD1weXRob246X19tYWluX18ucmVqZWN0cHVzaCcsCi0tICAgICAgICAgICAgICAgICAgICAnLS1jb25maWcnLAotLSAgICAgICAgICAgICAgICAgICAgJ2hvb2tzLnByZXB1c2hrZXkuaGctc3NoPXB5dGhvbjpfX21haW5fXy5yZWplY3RwdXNoJwotLSAgICAgICAgICAgICAgICAgICAgXQotLSAgICAgICAgICAgIGRpc3BhdGNoLmRpc3BhdGNoKGRpc3BhdGNoLnJlcXVlc3QoY21kKSkKLSsgICAgICAgICAgICAgICAgaWYgbm90IHJlcS51aToKLSsgICAgICAgICAgICAgICAgICAgIHJlcS51aSA9IHVpbW9kLnVpLmxvYWQoKQotKyAgICAgICAgICAgICAgICByZXEudWkuc2V0Y29uZmlnKCdob29rcycsICdwcmV0eG5vcGVuLmhnLXNzaCcsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B5dGhvbjpfX21haW5fXy5yZWplY3RwdXNoJywgJ2hnLXNzaCcpCi0rICAgICAgICAgICAgICAgIHJlcS51aS5zZXRjb25maWcoJ2hvb2tzJywgJ3ByZXB1c2hrZXkuaGctc3NoJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHl0aG9uOl9fbWFpbl9fLnJlamVjdHB1c2gnLCAnaGctc3NoJykKLSsgICAgICAgICAgICBkaXNwYXRjaC5kaXNwYXRjaChyZXEpCi0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ0lsbGVnYWwgcmVwb3NpdG9yeSAiJXMiXG4nICUgcmVwbykKLSAgICAgICAgICAgICBzeXMuZXhpdCgyNTUpCi1kaWZmIC0tZ2l0IGEvbWVyY3VyaWFsL2Rpc3BhdGNoLnB5IGIvbWVyY3VyaWFsL2Rpc3BhdGNoLnB5Ci0tLS0gYS9tZXJjdXJpYWwvZGlzcGF0Y2gucHkKLSsrKyBiL21lcmN1cmlhbC9kaXNwYXRjaC5weQotQEAgLTE1NSw2ICsxNTUsMzcgQEAKLSAgICAgICAgIHBhc3MgIyBoYXBwZW5zIGlmIGNhbGxlZCBpbiBhIHRocmVhZAotIAotICAgICBkZWYgX3J1bmNhdGNoZnVuYygpOgotKyAgICAgICAgcmVhbGNtZCA9IE5vbmUKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICBjbWRhcmdzID0gZmFuY3lvcHRzLmZhbmN5b3B0cyhyZXEuYXJnc1s6XSwgY29tbWFuZHMuZ2xvYmFsb3B0cywge30pCi0rICAgICAgICAgICAgY21kID0gY21kYXJnc1swXQotKyAgICAgICAgICAgIGFsaWFzZXMsIGVudHJ5ID0gY21kdXRpbC5maW5kY21kKGNtZCwgY29tbWFuZHMudGFibGUsIEZhbHNlKQotKyAgICAgICAgICAgIHJlYWxjbWQgPSBhbGlhc2VzWzBdCi0rICAgICAgICBleGNlcHQgKGVycm9yLlVua25vd25Db21tYW5kLCBlcnJvci5BbWJpZ3VvdXNDb21tYW5kLAotKyAgICAgICAgICAgICAgICBJbmRleEVycm9yLCBnZXRvcHQuR2V0b3B0RXJyb3IpOgotKyAgICAgICAgICAgICMgRG9uJ3QgaGFuZGxlIHRoaXMgaGVyZS4gV2Uga25vdyB0aGUgY29tbWFuZCBpcwotKyAgICAgICAgICAgICMgaW52YWxpZCwgYnV0IGFsbCB3ZSdyZSB3b3JyaWVkIGFib3V0IGZvciBub3cgaXMgdGhhdAotKyAgICAgICAgICAgICMgaXQncyBub3QgYSBjb21tYW5kIHRoYXQgc2VydmVyIG9wZXJhdG9ycyBleHBlY3QgdG8KLSsgICAgICAgICAgICAjIGJlIHNhZmUgdG8gb2ZmZXIgdG8gdXNlcnMgaW4gYSBzYW5kYm94LgotKyAgICAgICAgICAgIHBhc3MKLSsgICAgICAgIGlmIHJlYWxjbWQgPT0gJ3NlcnZlJyBhbmQgJy0tc3RkaW8nIGluIGNtZGFyZ3M6Ci0rICAgICAgICAgICAgIyBXZSB3YW50IHRvIGNvbnN0cmFpbiAnaGcgc2VydmUgLS1zdGRpbycgaW5zdGFuY2VzIHByZXR0eQotKyAgICAgICAgICAgICMgY2xvc2VseSwgYXMgbWFueSBzaGFyZWQtc3NoIGFjY2VzcyB0b29scyB3YW50IHRvIGdyYW50Ci0rICAgICAgICAgICAgIyBhY2Nlc3MgdG8gcnVuICpvbmx5KiAnaGcgLVIgJHJlcG8gc2VydmUgLS1zdGRpbycuIFdlCi0rICAgICAgICAgICAgIyByZXN0cmljdCB0byBleGFjdGx5IHRoYXQgc2V0IG9mIGFyZ3VtZW50cywgYW5kIHByb2hpYml0Ci0rICAgICAgICAgICAgIyBhbnkgcmVwbyBuYW1lIHRoYXQgc3RhcnRzIHdpdGggJy0tJyB0byBwcmV2ZW50Ci0rICAgICAgICAgICAgIyBzaGVuYW5pZ2FucyB3aGVyZWluIGEgdXNlciBkb2VzIHNvbWV0aGluZyBsaWtlIHBhc3MKLSsgICAgICAgICAgICAjIC0tZGVidWdnZXIgb3IgLS1jb25maWc9dWkuZGVidWdnZXI9MSBhcyBhIHJlcG8KLSsgICAgICAgICAgICAjIG5hbWUuIFRoaXMgdXNlZCB0byBhY3R1YWxseSBydW4gdGhlIGRlYnVnZ2VyLgotKyAgICAgICAgICAgIGlmIChsZW4ocmVxLmFyZ3MpICE9IDQgb3IKLSsgICAgICAgICAgICAgICAgcmVxLmFyZ3NbMF0gIT0gJy1SJyBvcgotKyAgICAgICAgICAgICAgICByZXEuYXJnc1sxXS5zdGFydHN3aXRoKCctLScpIG9yCi0rICAgICAgICAgICAgICAgIHJlcS5hcmdzWzJdICE9ICdzZXJ2ZScgb3IKLSsgICAgICAgICAgICAgICAgcmVxLmFyZ3NbM10gIT0gJy0tc3RkaW8nKToKLSsgICAgICAgICAgICAgICAgcmFpc2UgZXJyb3IuQWJvcnQoCi0rICAgICAgICAgICAgICAgICAgICBfKCdwb3RlbnRpYWxseSB1bnNhZmUgc2VydmUgLS1zdGRpbyBpbnZvY2F0aW9uOiAlcicpICUKLSsgICAgICAgICAgICAgICAgICAgIChyZXEuYXJncywpKQotKwotICAgICAgICAgdHJ5OgotICAgICAgICAgICAgIGRlYnVnZ2VyID0gJ3BkYicKLSAgICAgICAgICAgICBkZWJ1Z3RyYWNlID0gewotZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3Qtc3NoLnQgYi90ZXN0cy90ZXN0LXNzaC50Ci0tLS0gYS90ZXN0cy90ZXN0LXNzaC50Ci0rKysgYi90ZXN0cy90ZXN0LXNzaC50Ci1AQCAtMzU3LDYgKzM1NywxOSBAQAotICAgYWJvcnQ6IGRlc3RpbmF0aW9uICdhIHJlcG8nIGlzIG5vdCBlbXB0eQotICAgWzI1NV0KLSAKLStNYWtlIHN1cmUgaGcgaXMgcmVhbGx5IHBhcmFub2lkIGluIHNlcnZlIC0tc3RkaW8gbW9kZS4gSXQgdXNlZCB0byBiZQotK3Bvc3NpYmxlIHRvIGdldCBhIGRlYnVnZ2VyIFJFUEwgYnkgc3BlY2lmeWluZyBhIHJlcG8gbmFtZWQgLS1kZWJ1Z2dlci4KLSsgICQgaGcgLVIgLS1kZWJ1Z2dlciBzZXJ2ZSAtLXN0ZGlvCi0rICBhYm9ydDogcG90ZW50aWFsbHkgdW5zYWZlIHNlcnZlIC0tc3RkaW8gaW52b2NhdGlvbjogWyctUicsICctLWRlYnVnZ2VyJywgJ3NlcnZlJywgJy0tc3RkaW8nXQotKyAgWzI1NV0KLSsgICQgaGcgLVIgLS1jb25maWc9dWkuZGVidWdnZXI9eWVzIHNlcnZlIC0tc3RkaW8KLSsgIGFib3J0OiBwb3RlbnRpYWxseSB1bnNhZmUgc2VydmUgLS1zdGRpbyBpbnZvY2F0aW9uOiBbJy1SJywgJy0tY29uZmlnPXVpLmRlYnVnZ2VyPXllcycsICdzZXJ2ZScsICctLXN0ZGlvJ10KLSsgIFsyNTVdCi0rQWJicmV2aWF0aW9ucyBvZiAnc2VydmUnIGFsc28gZG9uJ3Qgd29yaywgdG8gYXZvaWQgc2hlbmFuaWdhbnMuCi0rICAkIGhnIC1SIG5hcmYgc2VydiAtLXN0ZGlvCi0rICBhYm9ydDogcG90ZW50aWFsbHkgdW5zYWZlIHNlcnZlIC0tc3RkaW8gaW52b2NhdGlvbjogWyctUicsICduYXJmJywgJ3NlcnYnLCAnLS1zdGRpbyddCi0rICBbMjU1XQotKwotIFRlc3QgaGctc3NoIHVzaW5nIGEgaGVscGVyIHNjcmlwdCB0aGF0IHdpbGwgcmVzdG9yZSBQWVRIT05QQVRIICh3aGljaCBtaWdodAotIGhhdmUgYmVlbiBjbGVhcmVkIGJ5IGEgaGcuZXhlIHdyYXBwZXIpIGFuZCBpbnZva2UgaGctc3NoIHdpdGggdGhlIHJpZ2h0Ci0gcGFyYW1ldGVyczoKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21lcmN1cmlhbC9tZXJjdXJpYWwtbmF0aXZlXzQuMC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbWVyY3VyaWFsL21lcmN1cmlhbC1uYXRpdmVfNC4wLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwOGFjZDkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbWVyY3VyaWFsL21lcmN1cmlhbC1uYXRpdmVfNC4wLjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1TVU1NQVJZID0gIlRoZSBNZXJjdXJpYWwgZGlzdHJpYnV0ZWQgU0NNIgotSE9NRVBBR0UgPSAiaHR0cDovL21lcmN1cmlhbC5zZWxlbmljLmNvbS8iCi1TRUNUSU9OID0gImNvbnNvbGUvdXRpbHMiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMiCi1ERVBFTkRTID0gInB5dGhvbi1uYXRpdmUiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly93d3cubWVyY3VyaWFsLXNjbS5vcmcvcmVsZWFzZS8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vbWVyY3VyaWFsLUNWRS0yMDE3LTk0NjIucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gIjIyYTliMWQ3YzBjMDZhNTNmMGFlNWIzODZkNTM2ZDA4IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjZhYTRhZGU5M2MxYjVlMTE5Mzc4MjA4ODBhNDY2ZWJmMWM4MjQwODZkNDQzY2Q3OTlmYzQ2ZTI2MTcyNTBkNDAiCi0KLVMgPSAiJHtXT1JLRElSfS9tZXJjdXJpYWwtJHtQVn0iCi0KLWluaGVyaXQgbmF0aXZlCi0KLUVYVFJBX09FTUFLRSA9ICJTVEFHSU5HX0xJQkRJUj0ke1NUQUdJTkdfTElCRElSfSBTVEFHSU5HX0lOQ0RJUj0ke1NUQUdJTkdfSU5DRElSfSBcCi0gICAgUFJFRklYPSR7cHJlZml4fSIKLQotZG9fY29uZmlndXJlX2FwcGVuZCAoKSB7Ci0gICAgc2VkIC1pIC1lICdzOlBZVEhPTj1weXRob246UFlUSE9OPSR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9weXRob24tbmF0aXZlL3B5dGhvbjpnJyAke1N9L01ha2VmaWxlCi19Ci0KLWRvX2luc3RhbGwgKCkgewotICAgIG9lX3J1bm1ha2UgLWUgaW5zdGFsbC1iaW4gREVTVERJUj0ke0R9IFBSRUZJWD0ke3ByZWZpeH0KLX0KLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbWVyY3VyaWFsL21lcmN1cmlhbF80LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tZXJjdXJpYWwvbWVyY3VyaWFsXzQuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDUyNDk3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbWVyY3VyaWFsL21lcmN1cmlhbF80LjQuYmIKQEAgLTAsMCArMSwzMSBAQAorU1VNTUFSWSA9ICJUaGUgTWVyY3VyaWFsIGRpc3RyaWJ1dGVkIFNDTSIKK0hPTUVQQUdFID0gImh0dHA6Ly9tZXJjdXJpYWwuc2VsZW5pYy5jb20vIgorU0VDVElPTiA9ICJjb25zb2xlL3V0aWxzIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgorREVQRU5EUyA9ICJweXRob24gcHl0aG9uLW5hdGl2ZSIKK0RFUEVORFNfY2xhc3MtbmF0aXZlID0gInB5dGhvbi1uYXRpdmUiCitSREVQRU5EU18ke1BOfSA9ICJweXRob24gcHl0aG9uLW1vZHVsZXMiCisKK2luaGVyaXQgcHl0aG9uLWRpcgorCitTUkNfVVJJID0gImh0dHBzOi8vd3d3Lm1lcmN1cmlhbC1zY20ub3JnL3JlbGVhc2UvJHtCUH0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gImMxZDlmYWQxYjdlZDcwNzdiMGQ0YWU4MmU3MTE1NGRiIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjIzNGFmNGE2NzU2NWM4NTkyM2IwYTE5MTBjNzA0YWI0NGJjZjEyZjY5Yjg1NTMyNjg3MjA4Nzc2NTYzZDg3ZGUiCisKK1MgPSAiJHtXT1JLRElSfS9tZXJjdXJpYWwtJHtQVn0iCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgorCitFWFRSQV9PRU1BS0UgPSAiU1RBR0lOR19MSUJESVI9JHtTVEFHSU5HX0xJQkRJUn0gU1RBR0lOR19JTkNESVI9JHtTVEFHSU5HX0lOQ0RJUn0gXAorICAgIFBSRUZJWD0ke3ByZWZpeH0iCisKK2RvX2NvbmZpZ3VyZV9hcHBlbmQgKCkgeworICAgIHNlZCAtaSAtZSAnczpQWVRIT049cHl0aG9uOlBZVEhPTj0ke1NUQUdJTkdfQklORElSX05BVElWRX0vcHl0aG9uLW5hdGl2ZS9weXRob246ZycgJHtTfS9NYWtlZmlsZQorfQorCitkb19pbnN0YWxsICgpIHsKKyAgICBvZV9ydW5tYWtlIC1lIGluc3RhbGwtYmluIERFU1RESVI9JHtEfSBQUkVGSVg9JHtwcmVmaXh9Cit9CisKK0ZJTEVTXyR7UE59ICs9ICIke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21lc29uL21lc29uL25hdGl2ZV9iaW5kaXIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tZXNvbi9tZXNvbi9uYXRpdmVfYmluZGlyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTNlOTc1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21lc29uL21lc29uL25hdGl2ZV9iaW5kaXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi1UaGVyZSBhcmUgc29tZSBkaXNjdXNzaW9ucyB1cHN0cmVhbSB0byBtZXJnZSB0aGlzIHBhdGNoLCBidXQgSSBwcmVzb25hbHkgYmVsaWV2ZQotdGhhdCBpcyBpcyBPRSBvbmx5LiBodHRwczovL2dpdGh1Yi5jb20vbWVzb25idWlsZC9tZXNvbi9pc3N1ZXMvMTg0OSNpc3N1ZWNvbW1lbnQtMzAzNzMwMzIzCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbT0Ugc3BlY2lmaWNdCi1TaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQGdtYWlsLmNvbT4KLWRpZmYgLS1naXQgYS9tZXNvbmJ1aWxkL2RlcGVuZGVuY2llcy5weSBiL21lc29uYnVpbGQvZGVwZW5kZW5jaWVzLnB5Ci1pbmRleCAwNGEyMmY5ODU5NDEuLjNlMzNiYzRhNzllNyAxMDA2NDQKLS0tLSBhL21lc29uYnVpbGQvZGVwZW5kZW5jaWVzLnB5Ci0rKysgYi9tZXNvbmJ1aWxkL2RlcGVuZGVuY2llcy5weQotQEAgLTk1LDcgKzk1LDcgQEAgY2xhc3MgRGVwZW5kZW5jeToKLSAgICAgZGVmIG5lZWRfdGhyZWFkcyhzZWxmKToKLSAgICAgICAgIHJldHVybiBGYWxzZQotIAotLSAgICBkZWYgZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZShzZWxmLCB2YXJpYWJsZV9uYW1lKToKLSsgICAgZGVmIGdldF9wa2djb25maWdfdmFyaWFibGUoc2VsZiwgdmFyaWFibGVfbmFtZSwgdXNlX25hdGl2ZT1GYWxzZSk6Ci0gICAgICAgICByYWlzZSBNZXNvbkV4Y2VwdGlvbignVHJpZWQgdG8gZ2V0IGEgcGtnLWNvbmZpZyB2YXJpYWJsZSBmcm9tIGEgbm9uLXBrZ2NvbmZpZyBkZXBlbmRlbmN5LicpCi0gCi0gY2xhc3MgSW50ZXJuYWxEZXBlbmRlbmN5KERlcGVuZGVuY3kpOgotQEAgLTIyNCw4ICsyMjQsMTIgQEAgY2xhc3MgUGtnQ29uZmlnRGVwZW5kZW5jeShEZXBlbmRlbmN5KToKLSAgICAgICAgIHJldHVybiBzLmZvcm1hdChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgc2VsZi5uYW1lLCBzZWxmLmlzX2ZvdW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmVyc2lvbl9yZXFzKQotIAotLSAgICBkZWYgX2NhbGxfcGtnYmluKHNlbGYsIGFyZ3MpOgotLSAgICAgICAgcCwgb3V0ID0gUG9wZW5fc2FmZShbc2VsZi5wa2diaW5dICsgYXJncywgZW52PW9zLmVudmlyb24pWzA6Ml0KLSsgICAgZGVmIF9jYWxsX3BrZ2JpbihzZWxmLCBhcmdzLCB1c2VfbmF0aXZlPUZhbHNlKToKLSsgICAgICAgIGlmIHVzZV9uYXRpdmU6Ci0rICAgICAgICAgICAgcGtnYmluID0gW3NlbGYucGtnYmluICsgIi1uYXRpdmUiXQotKyAgICAgICAgZWxzZToKLSsgICAgICAgICAgICBwa2diaW4gPSBbc2VsZi5wa2diaW5dCi0rICAgICAgICBwLCBvdXQgPSBQb3Blbl9zYWZlKHBrZ2JpbiArIGFyZ3MsIGVudj1vcy5lbnZpcm9uKVswOjJdCi0gICAgICAgICByZXR1cm4gcC5yZXR1cm5jb2RlLCBvdXQuc3RyaXAoKQotIAotICAgICBkZWYgX3NldF9jYXJncyhzZWxmKToKLUBAIC0yNTksOCArMjYzLDggQEAgY2xhc3MgUGtnQ29uZmlnRGVwZW5kZW5jeShEZXBlbmRlbmN5KToKLSAgICAgICAgICAgICAgICAgc2VsZi5pc19saWJ0b29sID0gVHJ1ZQotICAgICAgICAgICAgIHNlbGYubGlicy5hcHBlbmQobGliKQotIAotLSAgICBkZWYgZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZShzZWxmLCB2YXJpYWJsZV9uYW1lKToKLS0gICAgICAgIHJldCwgb3V0ID0gc2VsZi5fY2FsbF9wa2diaW4oWyctLXZhcmlhYmxlPScgKyB2YXJpYWJsZV9uYW1lLCBzZWxmLm5hbWVdKQotKyAgICBkZWYgZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZShzZWxmLCB2YXJpYWJsZV9uYW1lLCB1c2VfbmF0aXZlPUZhbHNlKToKLSsgICAgICAgIHJldCwgb3V0ID0gc2VsZi5fY2FsbF9wa2diaW4oWyctLXZhcmlhYmxlPScgKyB2YXJpYWJsZV9uYW1lLCBzZWxmLm5hbWVdLCB1c2VfbmF0aXZlPXVzZV9uYXRpdmUpCi0gICAgICAgICB2YXJpYWJsZSA9ICcnCi0gICAgICAgICBpZiByZXQgIT0gMDoKLSAgICAgICAgICAgICBpZiBzZWxmLnJlcXVpcmVkOgotQEAgLTEwOTEsNyArMTA5NSw3IEBAIGNsYXNzIFF0QmFzZURlcGVuZGVuY3koRGVwZW5kZW5jeSk6Ci0gICAgICAgICBzZWxmLmJpbmRpciA9IHNlbGYuZ2V0X3BrZ2NvbmZpZ19ob3N0X2JpbnMoY29yZSkKLSAgICAgICAgIGlmIG5vdCBzZWxmLmJpbmRpcjoKLSAgICAgICAgICAgICAjIElmIGV4ZWNfcHJlZml4IGlzIG5vdCBkZWZpbmVkLCB0aGUgcGtnLWNvbmZpZyBmaWxlIGlzIGJyb2tlbgotLSAgICAgICAgICAgIHByZWZpeCA9IGNvcmUuZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZSgnZXhlY19wcmVmaXgnKQotKyAgICAgICAgICAgIHByZWZpeCA9IGNvcmUuZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZSgnZXhlY19wcmVmaXgnLCB1c2VfbmF0aXZlPVRydWUpCi0gICAgICAgICAgICAgaWYgcHJlZml4OgotICAgICAgICAgICAgICAgICBzZWxmLmJpbmRpciA9IG9zLnBhdGguam9pbihwcmVmaXgsICdiaW4nKQotIAotQEAgLTEyMDIsNyArMTIwNiw3IEBAIGNsYXNzIFF0NURlcGVuZGVuY3koUXRCYXNlRGVwZW5kZW5jeSk6Ci0gICAgICAgICBRdEJhc2VEZXBlbmRlbmN5Ll9faW5pdF9fKHNlbGYsICdxdDUnLCBlbnYsIGt3YXJncykKLSAKLSAgICAgZGVmIGdldF9wa2djb25maWdfaG9zdF9iaW5zKHNlbGYsIGNvcmUpOgotLSAgICAgICAgcmV0dXJuIGNvcmUuZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZSgnaG9zdF9iaW5zJykKLSsgICAgICAgIHJldHVybiBjb3JlLmdldF9wa2djb25maWdfdmFyaWFibGUoJ2hvc3RfYmlucycsIHVzZV9uYXRpdmU9VHJ1ZSkKLSAKLSBjbGFzcyBRdDREZXBlbmRlbmN5KFF0QmFzZURlcGVuZGVuY3kpOgotICAgICBkZWYgX19pbml0X18oc2VsZiwgZW52LCBrd2FyZ3MpOgotQEAgLTEyMTYsNyArMTIyMCw3IEBAIGNsYXNzIFF0NERlcGVuZGVuY3koUXRCYXNlRGVwZW5kZW5jeSk6Ci0gICAgICAgICBhcHBsaWNhdGlvbnMgPSBbJ21vYycsICd1aWMnLCAncmNjJywgJ2x1cGRhdGUnLCAnbHJlbGVhc2UnXQotICAgICAgICAgZm9yIGFwcGxpY2F0aW9uIGluIGFwcGxpY2F0aW9uczoKLSAgICAgICAgICAgICB0cnk6Ci0tICAgICAgICAgICAgICAgIHJldHVybiBvcy5wYXRoLmRpcm5hbWUoY29yZS5nZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCclc19sb2NhdGlvbicgJSBhcHBsaWNhdGlvbikpCi0rICAgICAgICAgICAgICAgIHJldHVybiBvcy5wYXRoLmRpcm5hbWUoY29yZS5nZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCclc19sb2NhdGlvbicgJSBhcHBsaWNhdGlvbiwgdXNlX25hdGl2ZT1UcnVlKSkKLSAgICAgICAgICAgICBleGNlcHQgTWVzb25FeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgIHBhc3MKLSAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21lc29uL21lc29uXzAuNDAuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21lc29uL21lc29uXzAuNDAuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTQ2NDRiYS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tZXNvbi9tZXNvbl8wLjQwLjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1IT01FUEFHRSA9ICJodHRwOi8vbWVzb25idWlsZC5jb20iCi1TVU1NQVJZID0gIkEgaGlnaCBwZXJmb3JtYW5jZSBidWlsZCBzeXN0ZW0iCi0KLUxJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTNiODNlZjk2Mzg3ZjE0NjU1ZmM4NTRkZGMzYzZiZDU3IgotCi1TUkNfVVJJID0gIiBcCi0gICAgZ2l0Oi8vZ2l0aHViLmNvbS9tZXNvbmJ1aWxkL21lc29uLmdpdCBcCi0gICAgZmlsZTovL25hdGl2ZV9iaW5kaXIucGF0Y2ggXAotIgotCi1TUkNSRVYgPSAiYjI1ZDNlNGQzZjJiNGQzNzAyOWE1MDdjYzA4OWJkZGU2NDNjNjI0MCIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLQotaW5oZXJpdCBzZXR1cHRvb2xzMwotCi1SREVQRU5EU18ke1BOfSA9ICJuaW5qYSBweXRob24zLWNvcmUgcHl0aG9uMy1tb2R1bGVzIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21waWNoL21waWNoXzMuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21waWNoL21waWNoXzMuMi5iYgppbmRleCA0YTJjMzc3Li41MWIzMTNjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tcGljaC9tcGljaF8zLjIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbXBpY2gvbXBpY2hfMy4yLmJiCkBAIC0zMSw2ICszMSwxMSBAQAogaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIGdldHRleHQKIAogZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7CisgICAgZm9yIGQgaW4gY29uZmRiIHRlc3QvbXBpL2NvbmZkYiBzcmMvb3BlbnBhL2NvbmZkYiBzcmMvcG0vaHlkcmEvY29uZmRiIHNyYy9wbS9oeWRyYS90b29scy90b3BvL2h3bG9jL2h3bG9jL2NvbmZpZyBzcmMvcG0vaHlkcmEvbXBsL2NvbmZkYiBzcmMvbXBsL2NvbmZkYiBzcmMvbXBpL3JvbWlvL2NvbmZkYjsgIGRvCisgICAgICAgIGluc3RhbGwgLW0gMDc1NSAke1NUQUdJTkdfREFUQURJUl9OQVRJVkV9L2dudS1jb25maWcvY29uZmlnLmd1ZXNzICR7U30vJGQKKyAgICAgICAgaW5zdGFsbCAtbSAwNzU1ICR7U1RBR0lOR19EQVRBRElSX05BVElWRX0vZ251LWNvbmZpZy9jb25maWcuc3ViICR7U30vJGQKKyAgICBkb25lCisKICAgICBhdXRvcmVjb25mIC0tdmVyYm9zZSAtLWluc3RhbGwgLS1mb3JjZSAtSSAuIC1JIGNvbmZkYi8gLUkgbWFpbnQvCiAgICAgb2VfcnVuY29uZgogICAgIGV4aXQKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21zZ3BhY2svbXNncGFjay1jLzAwMDEtRml4LVdlcnJvci1jbGFzcy1tZW1hY2Nlc3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tc2dwYWNrL21zZ3BhY2stYy8wMDAxLUZpeC1XZXJyb3ItY2xhc3MtbWVtYWNjZXNzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwZDc3MmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9tc2dwYWNrL21zZ3BhY2stYy8wMDAxLUZpeC1XZXJyb3ItY2xhc3MtbWVtYWNjZXNzLnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAKK0Zyb20gYTA1ZDkyYWU4NTAyNGQwNjQ4ZjY5Zjk1MzA3YTFkM2U4ZTUxMTA5YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBTdW4sIDEgQXByIDIwMTggMTk6NTU6MzggLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IC1XZXJyb3I9Y2xhc3MtbWVtYWNjZXNzCisKK0Nhc3RpbmcgdG8gdm9pZCogbWFrZSBnY2MgaGFwcHkgc2luY2UgaXRzIHVwc2V0IGFib3V0CitvYmplY3QgdHlwZXMgYW5kIHJpZ2h0bHkgc28KKworRml4ZXMKKworJ3ZvaWQqIG1lbWNweSh2b2lkKiwgY29uc3Qgdm9pZCosIHNpemVfdCknIGNvcHlpbmcgYW4gb2JqZWN0IG9mIG5vbi10cml2aWFsIHR5cGUgJ3N0cnVjdCBtc2dwYWNrOjp2Mjo6b2JqZWN0JyBmcm9tIGFuIGFycmF5IG9mICdjb25zdCBtc2dwYWNrX29iamVjdCcge2FrYSAnY29uc3Qgc3RydWN0IG1zZ3BhY2tfb2JqZWN0J30gWy1XZXJyb3I9Y2xhc3MtbWVtYWNjZXNzXQorCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly9naXRodWIuY29tL21zZ3BhY2svbXNncGFjay1jL3B1bGwvNjU5XQorCisgaW5jbHVkZS9tc2dwYWNrL3YxL29iamVjdC5ocHAgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9pbmNsdWRlL21zZ3BhY2svdjEvb2JqZWN0LmhwcCBiL2luY2x1ZGUvbXNncGFjay92MS9vYmplY3QuaHBwCitpbmRleCA2NGRhOGM1My4uOTcyMWY3MDUgMTAwNjQ0CistLS0gYS9pbmNsdWRlL21zZ3BhY2svdjEvb2JqZWN0LmhwcAorKysrIGIvaW5jbHVkZS9tc2dwYWNrL3YxL29iamVjdC5ocHAKK0BAIC02NjEsNyArNjYxLDcgQEAgaW5saW5lIG9iamVjdDo6b2JqZWN0KGNvbnN0IG1zZ3BhY2tfb2JqZWN0JiBvKQorIGlubGluZSB2b2lkIG9wZXJhdG9yPDwgKG1zZ3BhY2s6Om9iamVjdCYgbywgY29uc3QgbXNncGFja19vYmplY3QmIHYpCisgeworICAgICAvLyBGSVhNRSBiZXRlciB3YXk/CistICAgIHN0ZDo6bWVtY3B5KCZvLCAmdiwgc2l6ZW9mKHYpKTsKKysgICAgc3RkOjptZW1jcHkoc3RhdGljX2Nhc3Q8dm9pZCo+KCZvKSwgJnYsIHNpemVvZih2KSk7CisgfQorIAorIGlubGluZSBvYmplY3Q6Om9wZXJhdG9yIG1zZ3BhY2tfb2JqZWN0KCkgY29uc3QKKy0tIAorMi4xNi4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL21zZ3BhY2svbXNncGFjay1jXzIuMS41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbXNncGFjay9tc2dwYWNrLWNfMi4xLjUuYmIKaW5kZXggZDlmNjk1Ni4uMDJjMGNkMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbXNncGFjay9tc2dwYWNrLWNfMi4xLjUuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbXNncGFjay9tc2dwYWNrLWNfMi4xLjUuYmIKQEAgLTksOSArOSwxMCBAQAogCiBQViAuPSAiK2dpdCR7U1JDUFZ9IgogCi1TUkNSRVYgPSAiN2E5ODEzOGYyN2YyNzI5MGU2ODBiZjhmYmYxZjhkMWIwODliZjEzOCIKK1NSQ1JFViA9ICIyMDg1OTViMjYyMGNmNjI2MGNlM2Q2ZDRjZjg1NDNmMTNiMjA2NDQ5IgogCiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbXNncGFjay9tc2dwYWNrLWMgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1GaXgtV2Vycm9yLWNsYXNzLW1lbWFjY2Vzcy5wYXRjaCBcCiAgICAgICAgICAgICIKIAogaW5oZXJpdCBjbWFrZSBwa2djb25maWcKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL25vZGVqcy8wMDAxLURpc2FibGUtcnVubmluZy1neXAtZmlsZXMtZm9yLWJ1bmRsZWQtZGVwcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL25vZGVqcy8wMDAxLURpc2FibGUtcnVubmluZy1neXAtZmlsZXMtZm9yLWJ1bmRsZWQtZGVwcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzI0YTQ2OC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ub2RlanMvMDAwMS1EaXNhYmxlLXJ1bm5pbmctZ3lwLWZpbGVzLWZvci1idW5kbGVkLWRlcHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1Gcm9tIGMyYWZmMTZjYzE5NmE2MWY0YWIxY2RhZTRhOTFjNzkyNjEyM2MyMzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBadXphbmEgU3ZldGxpa292YSA8enN2ZXRsaWtAcmVkaGF0LmNvbT4KLURhdGU6IFRodSwgMjcgQXByIDIwMTcgMTQ6MjU6NDIgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gRGlzYWJsZSBydW5uaW5nIGd5cCBvbiBzaGFyZWQgZGVwcwotCi0tLS0KLSBNYWtlZmlsZSB8IDcgKysrLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCi1pbmRleCAwYTIxN2JkODkzLi5lMTIyOWFkMDdmIDEwMDY0NAotLS0tIGEvTWFrZWZpbGUKLSsrKyBiL01ha2VmaWxlCi1AQCAtNzksMTAgKzc5LDkgQEAgJChOT0RFX0dfRVhFKTogY29uZmlnLmd5cGkgb3V0L01ha2VmaWxlCi0gCSQoTUFLRSkgLUMgb3V0IEJVSUxEVFlQRT1EZWJ1ZyBWPSQoVikKLSAJaWYgWyAhIC1yICRAIC1vICEgLUwgJEAgXTsgdGhlbiBsbiAtZnMgb3V0L0RlYnVnLyQoTk9ERV9FWEUpICRAOyBmaQotIAotLW91dC9NYWtlZmlsZTogY29tbW9uLmd5cGkgZGVwcy91di91di5neXAgZGVwcy9odHRwX3BhcnNlci9odHRwX3BhcnNlci5neXAgXAotLSAgICAgICAgICAgICAgZGVwcy96bGliL3psaWIuZ3lwIGRlcHMvdjgvZ3lwZmlsZXMvdG9vbGNoYWluLmd5cGkgXAotLSAgICAgICAgICAgICAgZGVwcy92OC9neXBmaWxlcy9mZWF0dXJlcy5neXBpIGRlcHMvdjgvc3JjL3Y4Lmd5cCBub2RlLmd5cCBcCi0tICAgICAgICAgICAgICBjb25maWcuZ3lwaQotK291dC9NYWtlZmlsZTogY29tbW9uLmd5cGkgZGVwcy9odHRwX3BhcnNlci9odHRwX3BhcnNlci5neXAgXAotKyAgICAgICAgICAgICAgZGVwcy92OC9neXBmaWxlcy90b29sY2hhaW4uZ3lwaSBkZXBzL3Y4L2d5cGZpbGVzL2ZlYXR1cmVzLmd5cGkgXAotKwkJCSAgZGVwcy92OC9zcmMvdjguZ3lwIG5vZGUuZ3lwIGNvbmZpZy5neXBpCi0gCSQoUFlUSE9OKSB0b29scy9neXBfbm9kZS5weSAtZiBtYWtlCi0gCi0gY29uZmlnLmd5cGk6IGNvbmZpZ3VyZQotLS0gCi0yLjEyLjIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL25vZGVqcy9ub2RlanMvbm8tcmVnaXN0cnkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ub2RlanMvbm9kZWpzL25vLXJlZ2lzdHJ5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZDI0NzM4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL25vZGVqcy9ub2RlanMvbm8tcmVnaXN0cnkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi1CdWdmaXggZm9yIC0tbm8tcmVnaXN0cnkgaW4gbm9kZWpzLXYwLjEyLjIKLQotZGlmZiAtdSAtciBub2RlLXYwLjEyLjJfZGVmL2RlcHMvbnBtL2xpYi9jYWNoZS9jYWNoaW5nLWNsaWVudC5qcyBub2RlLXYwLjEyLjIvZGVwcy9ucG0vbGliL2NhY2hlL2NhY2hpbmctY2xpZW50LmpzCi0tLS0gbm9kZS12MC4xMi4yX2RlZi9kZXBzL25wbS9saWIvY2FjaGUvY2FjaGluZy1jbGllbnQuanMJMjAxNS0wNC0wMSAwMToxMzowMS4wMDAwMDAwMDAgKzAzMDAKLSsrKyBub2RlLXYwLjEyLjIvZGVwcy9ucG0vbGliL2NhY2hlL2NhY2hpbmctY2xpZW50LmpzCTIwMTUtMDUtMTggMDA6NDc6MTAuNzM4NTk5Njg2ICswMzAwCi1AQCAtNjcsNiArNjcsMjIgQEAKLSAgIHZhciBjYWNoZUJhc2UgPSBjYWNoZUZpbGUobnBtLmNvbmZpZy5nZXQoImNhY2hlIikpKHVyaSkKLSAgIHZhciBjYWNoZVBhdGggPSBwYXRoLmpvaW4oY2FjaGVCYXNlLCAiLmNhY2hlLmpzb24iKQotIAotKyAgaWYgKHBhcnNlZC5ob3N0ID09PSAibm9yZWdpc3RyeSIpIChmdW5jdGlvbigpIHsKLSsgICAgdmFyIHN0YXQgPSBudWxsCi0rICAgIHZhciBmaWxlID0gbnBtLmNvbmZpZy5nZXQoImNhY2hlIikgKyBwYXJzZWQucGF0aG5hbWUgKyAiLy5jYWNoZS5qc29uIgotKyAgICB0cnkgewotKyAgICAgIHN0YXQgPSBmcy5zdGF0U3luYyhjYWNoZVBhdGgpCi0rICAgIH0gY2F0Y2ggKGV4KSB7fQotKyAgICBpZiAoIXN0YXQpIHRyeSB7Ci0rICAgICAgc3RhdCA9IGZzLnN0YXRTeW5jKGZpbGUpIAotKyAgICAgIGNhY2hlUGF0aCA9IGZpbGUKLSsgICAgfSBjYXRjaCAoZXgpIHsKLSsgICAgICBzdGF0ID0gIlJlZ2lzdHJ5IG5vdCBkZWZpbmVkIGFuZCByZWdpc3RyeSBmaWxlcyBub3QgZm91bmQ6IFwiIiArCi0rICAgICAgICAgICAgIGNhY2hlUGF0aCArICJcIiwgXCIiICsgZmlsZSArICJcIi4iCi0rICAgICAgdGhyb3cgbmV3IEVycm9yKHN0YXQpCi0rICAgIH0KLSsgIH0pKCkKLSsKLSAgIC8vIElmIHRoZSBHRVQgaXMgcGFydCBvZiBhIHdyaXRlIG9wZXJhdGlvbiAoUFVUIG9yIERFTEVURSksIHRoZW4KLSAgIC8vIHNraXAgcGFzdCB0aGUgY2FjaGUgZW50aXJlbHksIGJ1dCBzdGlsbCBzYXZlIHRoZSByZXN1bHRzLgotICAgaWYgKHVyaS5tYXRjaCgvXD93cml0ZT10cnVlJC8pKSB7Ci1AQCAtODMsMTIgKzk5LDE3IEBACi0gICAgICAgICB9Ci0gICAgICAgICBjYXRjaCAoZXgpIHsKLSAgICAgICAgICAgZGF0YSA9IG51bGwKLSsgICAgICAgICAgaWYgKHBhcnNlZC5ob3N0ID09PSAibm9yZWdpc3RyeSIpCi0rICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGaWxlIFwiIiArIGNhY2hlUGF0aCsiXCIiICsgIiBjb3JydXB0ZWQuIikKLSAgICAgICAgIH0KLSAKLSAgICAgICAgIHBhcmFtcy5zdGF0ID0gc3RhdAotICAgICAgICAgcGFyYW1zLmRhdGEgPSBkYXRhCi0gCi0tICAgICAgICBnZXRfLmNhbGwoY2xpZW50LCB1cmksIGNhY2hlUGF0aCwgcGFyYW1zLCBjYikKLSsgICAgICAgIGlmIChwYXJzZWQuaG9zdCA9PT0gIm5vcmVnaXN0cnkiKQotKyAgICAgICAgICBjYihudWxsLCBkYXRhLCBKU09OLnN0cmluZ2lmeShkYXRhKSwgeyBzdGF0dXNDb2RlIDogMzA0IH0pCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIGdldF8uY2FsbChjbGllbnQsIHVyaSwgY2FjaGVQYXRoLCBwYXJhbXMsIGNiKQotICAgICAgIH0pCi0gICAgIH0KLSAgICAgZWxzZSB7Ci1kaWZmIC11IC1yIG5vZGUtdjAuMTIuMl9kZWYvZGVwcy9ucG0vbGliL3V0aWxzL21hcC10by1yZWdpc3RyeS5qcyBub2RlLXYwLjEyLjIvZGVwcy9ucG0vbGliL3V0aWxzL21hcC10by1yZWdpc3RyeS5qcwotLS0tIG5vZGUtdjAuMTIuMl9kZWYvZGVwcy9ucG0vbGliL3V0aWxzL21hcC10by1yZWdpc3RyeS5qcwkyMDE1LTA0LTAxIDAxOjEzOjAxLjAwMDAwMDAwMCArMDMwMAotKysrIG5vZGUtdjAuMTIuMi9kZXBzL25wbS9saWIvdXRpbHMvbWFwLXRvLXJlZ2lzdHJ5LmpzCTIwMTUtMDUtMTggMDE6MTU6MTAuMDMwNTY5NjEzICswMzAwCi1AQCAtNDUsNiArNDUsOCBAQAotIAotICAgbG9nLnNpbGx5KCJtYXBUb1JlZ2lzdHJ5IiwgInJlZ2lzdHJ5IiwgcmVnaXN0cnkpCi0gCi0rICBpZiAoIXJlZ2lzdHJ5KSByZXR1cm4gY2IobnVsbCwgImh0dHA6Ly9ub3JlZ2lzdHJ5LyIgKyBuYW1lLCB7fSkKLSsKLSAgIHZhciBhdXRoID0gY29uZmlnLmdldENyZWRlbnRpYWxzQnlVUkkocmVnaXN0cnkpCi0gCi0gICAvLyBub3JtYWxpemUgcmVnaXN0cnkgVVJMIHNvIHJlc29sdXRpb24gZG9lc24ndCBkcm9wIGEgcGllY2Ugb2YgcmVnaXN0cnkgVVJMCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ub2RlanMvbm9kZWpzXzguNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbm9kZWpzL25vZGVqc184LjQuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWJjYmMwMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9ub2RlanMvbm9kZWpzXzguNC4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAibm9kZUpTIEV2ZW50ZWQgSS9PIGZvciBWOCBKYXZhU2NyaXB0IgotSE9NRVBBR0UgPSAiaHR0cDovL25vZGVqcy5vcmciCi1MSUNFTlNFID0gIk1JVCAmIEJTRCAmIEFydGlzdGljLTIuMCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWU0ZDM1YzYxMjBmMTc1ZTFmYmU1ZmY5MDhiMWNmMmQ2IgotCi1ERVBFTkRTID0gIm9wZW5zc2wxMCB6bGliIgotCi1DT01QQVRJQkxFX01BQ0hJTkVfYXJtdjQgPSAiKCEuKmFybXY0KS4qIgotQ09NUEFUSUJMRV9NQUNISU5FX2FybXY1ID0gIighLiphcm12NSkuKiIKLUNPTVBBVElCTEVfTUFDSElORV9taXBzNjQgPSAiKCEuKm1pcHM2NCkuKiIKLQotU1JDX1VSSSA9ICJodHRwOi8vbm9kZWpzLm9yZy9kaXN0L3Yke1BWfS9ub2RlLXYke1BWfS50YXIueHogXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1EaXNhYmxlLXJ1bm5pbmctZ3lwLWZpbGVzLWZvci1idW5kbGVkLWRlcHMucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gImU2Yzg1YzgzMDAxMzQwYjMwNjcxZTk0MzJlMWJkMzM3IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVkNWFhMmExMDFkY2M2MTcyMzFhNDc1ODEyZWI4ZWQ4N2NhYzIxNDkxZjFkY2M3OTk3YjlkZDQ2MzU2M2YzNjEiCi0KLVMgPSAiJHtXT1JLRElSfS9ub2RlLXYke1BWfSIKLQotIyB2OCBlcnJvcnMgb3V0IGlmIHlvdSBoYXZlIHNldCBDQ0FDSEUKLUNDQUNIRSA9ICIiCi0KLWRlZiBtYXBfbm9kZWpzX2FyY2goYSwgZCk6Ci0gICAgaW1wb3J0IHJlCi0KLSAgICBpZiAgIHJlLm1hdGNoKCdpLjg2JCcsIGEpOiByZXR1cm4gJ2lhMzInCi0gICAgZWxpZiByZS5tYXRjaCgneDg2XzY0JCcsIGEpOiByZXR1cm4gJ3g2NCcKLSAgICBlbGlmIHJlLm1hdGNoKCdhYXJjaDY0JCcsIGEpOiByZXR1cm4gJ2FybTY0JwotICAgIGVsaWYgcmUubWF0Y2goJ3Bvd2VycGM2NCQnLCBhKTogcmV0dXJuICdwcGM2NCcKLSAgICBlbGlmIHJlLm1hdGNoKCdwb3dlcnBjJCcsIGEpOiByZXR1cm4gJ3BwYycKLSAgICByZXR1cm4gYQotCi1BUkNIRkxBR1NfYXJtID0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ2NhbGxjb252ZW50aW9uLWhhcmQnLCAnLS13aXRoLWFybS1mbG9hdC1hYmk9aGFyZCcsICctLXdpdGgtYXJtLWZsb2F0LWFiaT1zb2Z0ZnAnLCBkKX0gXAotICAgICAgICAgICAgICAgICAke0BiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICduZW9uJywgJy0td2l0aC1hcm0tZnB1PW5lb24nLCBcCi0gICAgICAgICAgICAgICAgICAgIGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ3ZmcHYzZDE2JywgJy0td2l0aC1hcm0tZnB1PXZmcHYzLWQxNicsIFwKLSAgICAgICAgICAgICAgICAgICAgYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAndmZwdjMnLCAnLS13aXRoLWFybS1mcHU9dmZwdjMnLCBcCi0gICAgICAgICAgICAgICAgICAgICctLXdpdGgtYXJtLWZwdT12ZnAnLCBkKSwgZCksIGQpfSIKLUdZUF9ERUZJTkVTX2FwcGVuZF9taXBzZWwgPSAiIG1pcHNfYXJjaF92YXJpYW50PSdyMScgIgotQVJDSEZMQUdTID89ICIiCi0KLSMgTm9kZSBpcyB3YXkgdG9vIGNvb2wgdG8gdXNlIHByb3BlciBhdXRvdG9vbHMsIHNvIHdlIGluc3RhbGwgdHdvIHdyYXBwZXJzIHRvIGZvcmNlZnVsbHkgaW5qZWN0IHByb3BlciBhcmNoIGNmbGFncyB0byB3b3JrYXJvdW5kIGd5cGkKLWRvX2NvbmZpZ3VyZSAoKSB7Ci0gICAgcm0gLXJmICR7U30vZGVwcy9vcGVuc3NsCi0gICAgZXhwb3J0IExEPSIke0NYWH0iCi0gICAgR1lQX0RFRklORVM9IiR7R1lQX0RFRklORVN9IiBleHBvcnQgR1lQX0RFRklORVMKLSAgICAjICRUQVJHRVRfQVJDSCBzZXR0aW5ncyBkb24ndCBtYXRjaCAtLWRlc3QtY3B1IHNldHRpbmdzCi0gICAuL2NvbmZpZ3VyZSAtLXByZWZpeD0ke3ByZWZpeH0gLS13aXRob3V0LWludGwgLS13aXRob3V0LXNuYXBzaG90IC0tc2hhcmVkLW9wZW5zc2wgLS1zaGFyZWQtemxpYiBcCi0gICAgICAgICAgICAgICAtLWRlc3QtY3B1PSIke0BtYXBfbm9kZWpzX2FyY2goZC5nZXRWYXIoJ1RBUkdFVF9BUkNIJyksIGQpfSIgXAotICAgICAgICAgICAgICAgLS1kZXN0LW9zPWxpbnV4IFwKLSAgICAgICAgICAgICAgICR7QVJDSEZMQUdTfQotfQotCi1kb19jb21waWxlICgpIHsKLSAgICBleHBvcnQgTEQ9IiR7Q1hYfSIKLSAgICBvZV9ydW5tYWtlIEJVSUxEVFlQRT1SZWxlYXNlCi19Ci0KLWRvX2luc3RhbGwgKCkgewotICAgIG9lX3J1bm1ha2UgaW5zdGFsbCBERVNURElSPSR7RH0KLX0KLQotZG9faW5zdGFsbF9hcHBlbmRfY2xhc3MtbmF0aXZlKCkgewotICAgICMgdXNlIG5vZGUgZnJvbSBQQVRIIGluc3RlYWQgb2YgYWJzb2x1dGUgcGF0aCB0byBzeXNyb290Ci0gICAgIyBub2RlLXYwLjEwLjI1L3Rvb2xzL2luc3RhbGwucHkgaXMgdXNpbmc6Ci0gICAgIyBzaGViYW5nID0gb3MucGF0aC5qb2luKG5vZGVfcHJlZml4LCAnYmluL25vZGUnKQotICAgICMgdXBkYXRlX3NoZWJhbmcobGlua19wYXRoLCBzaGViYW5nKQotICAgICMgYW5kIG5vZGVfcHJlZml4IGNhbiBiZSB2ZXJ5IGxvbmcgcGF0aCB0byBiaW5kaXIgaW4gbmF0aXZlIHN5c3Jvb3QgYW5kCi0gICAgIyB3aGVuIGl0IGV4Y2VlZHMgMTI4IGNoYXJhY3RlciBzaGViYW5nIGxpbWl0IGl0J3Mgc3RyaXBwZWQgdG8gaW5jb3JyZWN0IHBhdGgKLSAgICAjIGFuZCBucG0gZmFpbHMgdG8gZXhlY3V0ZSBsaWtlIGluIHRoaXMgY2FzZSB3aXRoIDEzMyBjaGFyYWN0ZXJzIHNob3cgaW4gbG9nLmRvX2luc3RhbGw6Ci0gICAgIyB1cGRhdGluZyBzaGViYW5nIG9mIC9ob21lL2plbmtpbnMvd29ya3NwYWNlL2J1aWxkLXdlYm9zLW5pZ2h0bHkvZGV2aWNlL3FlbXV4ODYvbGFiZWwvb3Blbi13ZWJvcy1idWlsZGVyL0JVSUxELXFlbXV4ODYvd29yay94ODZfNjQtbGludXgvbm9kZWpzLW5hdGl2ZS8wLjEwLjE1LXIwL2ltYWdlL2hvbWUvamVua2lucy93b3Jrc3BhY2UvYnVpbGQtd2Vib3MtbmlnaHRseS9kZXZpY2UvcWVtdXg4Ni9sYWJlbC9vcGVuLXdlYm9zLWJ1aWxkZXIvQlVJTEQtcWVtdXg4Ni9zeXNyb290cy94ODZfNjQtbGludXgvdXNyL2Jpbi9ucG0gdG8gL2hvbWUvamVua2lucy93b3Jrc3BhY2UvYnVpbGQtd2Vib3MtbmlnaHRseS9kZXZpY2UvcWVtdXg4Ni9sYWJlbC9vcGVuLXdlYm9zLWJ1aWxkZXIvQlVJTEQtcWVtdXg4Ni9zeXNyb290cy94ODZfNjQtbGludXgvdXNyL2Jpbi9ub2RlCi0gICAgIyAvdXNyL2Jpbi9ucG0gaXMgc3ltbGluayB0byAvdXNyL2xpYi9ub2RlX21vZHVsZXMvbnBtL2Jpbi9ucG0tY2xpLmpzCi0gICAgIyB1c2Ugc2VkIG9uIG5wbS1jbGkuanMgYmVjYXVzZSBvdGhlcndpc2Ugc3ltbGluayBpcyByZXBsYWNlZCB3aXRoIG5vcm1hbCBmaWxlIGFuZAotICAgICMgbnBtLWNsaS5qcyBjb250aW51ZXMgdG8gdXNlIG9sZCBzaGViYW5nCi0gICAgc2VkICIxc14uKl4jXCEvdXNyL2Jpbi9lbnYgbm9kZV5nIiAtaSAke0R9JHtleGVjX3ByZWZpeH0vbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMKLX0KLQotZG9faW5zdGFsbF9hcHBlbmRfY2xhc3MtdGFyZ2V0KCkgewotICAgIHNlZCAiMXNeLipeI1whJHtiaW5kaXJ9L2VudiBub2RlXmciIC1pICR7RH0ke2V4ZWNfcHJlZml4fS9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcwotfQotCi1QQUNLQUdFUyA9KyAiJHtQTn0tbnBtIgotRklMRVNfJHtQTn0tbnBtID0gIiR7ZXhlY19wcmVmaXh9L2xpYi9ub2RlX21vZHVsZXMgJHtiaW5kaXJ9L25wbSAke2JpbmRpcn0vbnB4IgotUkRFUEVORFNfJHtQTn0tbnBtID0gImJhc2ggcHl0aG9uLXNoZWxsIHB5dGhvbi1kYXRldGltZSBweXRob24tc3VicHJvY2VzcyBweXRob24tdGV4dHV0aWxzIgotCi1QQUNLQUdFUyA9KyAiJHtQTn0tc3lzdGVtdGFwIgotRklMRVNfJHtQTn0tc3lzdGVtdGFwID0gIiR7ZGF0YWRpcn0vc3lzdGVtdGFwIgotCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvbm9kZWpzL25vZGVqc184LjkuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL25vZGVqcy9ub2RlanNfOC45LjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODkzMGNkOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL25vZGVqcy9ub2RlanNfOC45LjQuYmIKQEAgLTAsMCArMSw5MCBAQAorREVTQ1JJUFRJT04gPSAibm9kZUpTIEV2ZW50ZWQgSS9PIGZvciBWOCBKYXZhU2NyaXB0IgorSE9NRVBBR0UgPSAiaHR0cDovL25vZGVqcy5vcmciCitMSUNFTlNFID0gIk1JVCAmIEJTRCAmIEFydGlzdGljLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTI3MGY3NDc3YTE3MDVmN2NkM2UyOWQzZDQ1MTI5MTVkIgorCitERVBFTkRTID0gIm9wZW5zc2wxMCB6bGliIgorCitDT01QQVRJQkxFX01BQ0hJTkVfYXJtdjQgPSAiKCEuKmFybXY0KS4qIgorQ09NUEFUSUJMRV9NQUNISU5FX2FybXY1ID0gIighLiphcm12NSkuKiIKK0NPTVBBVElCTEVfTUFDSElORV9taXBzNjQgPSAiKCEuKm1pcHM2NCkuKiIKKworU1JDX1VSSSA9ICJodHRwOi8vbm9kZWpzLm9yZy9kaXN0L3Yke1BWfS9ub2RlLXYke1BWfS50YXIueHogXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1EaXNhYmxlLXJ1bm5pbmctZ3lwLWZpbGVzLWZvci1idW5kbGVkLWRlcHMucGF0Y2ggXAorIgorU1JDX1VSSVttZDVzdW1dID0gIjYzMWVkMTAyZmU1OGMxM2NmNjNiYzkyYTY4Y2Y0NzU5IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjZjZGNkZTljOWMxY2E5ZjQ1MGEwYjI0ZWFmYTIyOWNhNzU5ZTU3NmRhYTBmYWU4OTJjZTc0ZDU0MWVjZGM4NmYiCisKK1MgPSAiJHtXT1JLRElSfS9ub2RlLXYke1BWfSIKKworIyB2OCBlcnJvcnMgb3V0IGlmIHlvdSBoYXZlIHNldCBDQ0FDSEUKK0NDQUNIRSA9ICIiCisKK2RlZiBtYXBfbm9kZWpzX2FyY2goYSwgZCk6CisgICAgaW1wb3J0IHJlCisKKyAgICBpZiAgIHJlLm1hdGNoKCdpLjg2JCcsIGEpOiByZXR1cm4gJ2lhMzInCisgICAgZWxpZiByZS5tYXRjaCgneDg2XzY0JCcsIGEpOiByZXR1cm4gJ3g2NCcKKyAgICBlbGlmIHJlLm1hdGNoKCdhYXJjaDY0JCcsIGEpOiByZXR1cm4gJ2FybTY0JworICAgIGVsaWYgcmUubWF0Y2goJyhwb3dlcnBjNjR8cHBjNjRsZSkkJywgYSk6IHJldHVybiAncHBjNjQnCisgICAgZWxpZiByZS5tYXRjaCgncG93ZXJwYyQnLCBhKTogcmV0dXJuICdwcGMnCisgICAgcmV0dXJuIGEKKworQVJDSEZMQUdTX2FybSA9ICIke0BiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICdjYWxsY29udmVudGlvbi1oYXJkJywgJy0td2l0aC1hcm0tZmxvYXQtYWJpPWhhcmQnLCAnLS13aXRoLWFybS1mbG9hdC1hYmk9c29mdGZwJywgZCl9IFwKKyAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1RVTkVfRkVBVFVSRVMnLCAnbmVvbicsICctLXdpdGgtYXJtLWZwdT1uZW9uJywgXAorICAgICAgICAgICAgICAgICAgICBiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICd2ZnB2M2QxNicsICctLXdpdGgtYXJtLWZwdT12ZnB2My1kMTYnLCBcCisgICAgICAgICAgICAgICAgICAgIGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ3ZmcHYzJywgJy0td2l0aC1hcm0tZnB1PXZmcHYzJywgXAorICAgICAgICAgICAgICAgICAgICAnLS13aXRoLWFybS1mcHU9dmZwJywgZCksIGQpLCBkKX0iCitHWVBfREVGSU5FU19hcHBlbmRfbWlwc2VsID0gIiBtaXBzX2FyY2hfdmFyaWFudD0ncjEnICIKK0FSQ0hGTEFHUyA/PSAiIgorCisjIE5vZGUgaXMgd2F5IHRvbyBjb29sIHRvIHVzZSBwcm9wZXIgYXV0b3Rvb2xzLCBzbyB3ZSBpbnN0YWxsIHR3byB3cmFwcGVycyB0byBmb3JjZWZ1bGx5IGluamVjdCBwcm9wZXIgYXJjaCBjZmxhZ3MgdG8gd29ya2Fyb3VuZCBneXBpCitkb19jb25maWd1cmUgKCkgeworICAgIHJtIC1yZiAke1N9L2RlcHMvb3BlbnNzbAorICAgIGV4cG9ydCBMRD0iJHtDWFh9IgorICAgIEdZUF9ERUZJTkVTPSIke0dZUF9ERUZJTkVTfSIgZXhwb3J0IEdZUF9ERUZJTkVTCisgICAgIyAkVEFSR0VUX0FSQ0ggc2V0dGluZ3MgZG9uJ3QgbWF0Y2ggLS1kZXN0LWNwdSBzZXR0aW5ncworICAgLi9jb25maWd1cmUgLS1wcmVmaXg9JHtwcmVmaXh9IC0td2l0aG91dC1pbnRsIC0td2l0aG91dC1zbmFwc2hvdCAtLXNoYXJlZC1vcGVuc3NsIC0tc2hhcmVkLXpsaWIgXAorICAgICAgICAgICAgICAgLS1kZXN0LWNwdT0iJHtAbWFwX25vZGVqc19hcmNoKGQuZ2V0VmFyKCdUQVJHRVRfQVJDSCcpLCBkKX0iIFwKKyAgICAgICAgICAgICAgIC0tZGVzdC1vcz1saW51eCBcCisgICAgICAgICAgICAgICAke0FSQ0hGTEFHU30KK30KKworZG9fY29tcGlsZSAoKSB7CisgICAgZXhwb3J0IExEPSIke0NYWH0iCisgICAgb2VfcnVubWFrZSBCVUlMRFRZUEU9UmVsZWFzZQorfQorCitkb19pbnN0YWxsICgpIHsKKyAgICBvZV9ydW5tYWtlIGluc3RhbGwgREVTVERJUj0ke0R9Cit9CisKK2RvX2luc3RhbGxfYXBwZW5kX2NsYXNzLW5hdGl2ZSgpIHsKKyAgICAjIHVzZSBub2RlIGZyb20gUEFUSCBpbnN0ZWFkIG9mIGFic29sdXRlIHBhdGggdG8gc3lzcm9vdAorICAgICMgbm9kZS12MC4xMC4yNS90b29scy9pbnN0YWxsLnB5IGlzIHVzaW5nOgorICAgICMgc2hlYmFuZyA9IG9zLnBhdGguam9pbihub2RlX3ByZWZpeCwgJ2Jpbi9ub2RlJykKKyAgICAjIHVwZGF0ZV9zaGViYW5nKGxpbmtfcGF0aCwgc2hlYmFuZykKKyAgICAjIGFuZCBub2RlX3ByZWZpeCBjYW4gYmUgdmVyeSBsb25nIHBhdGggdG8gYmluZGlyIGluIG5hdGl2ZSBzeXNyb290IGFuZAorICAgICMgd2hlbiBpdCBleGNlZWRzIDEyOCBjaGFyYWN0ZXIgc2hlYmFuZyBsaW1pdCBpdCdzIHN0cmlwcGVkIHRvIGluY29ycmVjdCBwYXRoCisgICAgIyBhbmQgbnBtIGZhaWxzIHRvIGV4ZWN1dGUgbGlrZSBpbiB0aGlzIGNhc2Ugd2l0aCAxMzMgY2hhcmFjdGVycyBzaG93IGluIGxvZy5kb19pbnN0YWxsOgorICAgICMgdXBkYXRpbmcgc2hlYmFuZyBvZiAvaG9tZS9qZW5raW5zL3dvcmtzcGFjZS9idWlsZC13ZWJvcy1uaWdodGx5L2RldmljZS9xZW11eDg2L2xhYmVsL29wZW4td2Vib3MtYnVpbGRlci9CVUlMRC1xZW11eDg2L3dvcmsveDg2XzY0LWxpbnV4L25vZGVqcy1uYXRpdmUvMC4xMC4xNS1yMC9pbWFnZS9ob21lL2plbmtpbnMvd29ya3NwYWNlL2J1aWxkLXdlYm9zLW5pZ2h0bHkvZGV2aWNlL3FlbXV4ODYvbGFiZWwvb3Blbi13ZWJvcy1idWlsZGVyL0JVSUxELXFlbXV4ODYvc3lzcm9vdHMveDg2XzY0LWxpbnV4L3Vzci9iaW4vbnBtIHRvIC9ob21lL2plbmtpbnMvd29ya3NwYWNlL2J1aWxkLXdlYm9zLW5pZ2h0bHkvZGV2aWNlL3FlbXV4ODYvbGFiZWwvb3Blbi13ZWJvcy1idWlsZGVyL0JVSUxELXFlbXV4ODYvc3lzcm9vdHMveDg2XzY0LWxpbnV4L3Vzci9iaW4vbm9kZQorICAgICMgL3Vzci9iaW4vbnBtIGlzIHN5bWxpbmsgdG8gL3Vzci9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcworICAgICMgdXNlIHNlZCBvbiBucG0tY2xpLmpzIGJlY2F1c2Ugb3RoZXJ3aXNlIHN5bWxpbmsgaXMgcmVwbGFjZWQgd2l0aCBub3JtYWwgZmlsZSBhbmQKKyAgICAjIG5wbS1jbGkuanMgY29udGludWVzIHRvIHVzZSBvbGQgc2hlYmFuZworICAgIHNlZCAiMXNeLipeI1whL3Vzci9iaW4vZW52IG5vZGVeZyIgLWkgJHtEfSR7ZXhlY19wcmVmaXh9L2xpYi9ub2RlX21vZHVsZXMvbnBtL2Jpbi9ucG0tY2xpLmpzCit9CisKK2RvX2luc3RhbGxfYXBwZW5kX2NsYXNzLXRhcmdldCgpIHsKKyAgICBzZWQgIjFzXi4qXiNcISR7YmluZGlyfS9lbnYgbm9kZV5nIiAtaSAke0R9JHtleGVjX3ByZWZpeH0vbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMKK30KKworUEFDS0FHRVMgPSsgIiR7UE59LW5wbSIKK0ZJTEVTXyR7UE59LW5wbSA9ICIke2V4ZWNfcHJlZml4fS9saWIvbm9kZV9tb2R1bGVzICR7YmluZGlyfS9ucG0gJHtiaW5kaXJ9L25weCIKK1JERVBFTkRTXyR7UE59LW5wbSA9ICJiYXNoIHB5dGhvbi1zaGVsbCBweXRob24tZGF0ZXRpbWUgcHl0aG9uLXN1YnByb2Nlc3MgcHl0aG9uLXRleHR1dGlscyBcCisgICAgcHl0aG9uLWNvbXBpbGVyIHB5dGhvbi1taXNjIHB5dGhvbi1tdWx0aXByb2Nlc3NpbmciCisKK1BBQ0tBR0VTID0rICIke1BOfS1zeXN0ZW10YXAiCitGSUxFU18ke1BOfS1zeXN0ZW10YXAgPSAiJHtkYXRhZGlyfS9zeXN0ZW10YXAiCisKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1zZGstdGFyZ2V0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAtc2RrLXRhcmdldC5iYgppbmRleCAxYmU3ZjZhLi41M2ZjMTU5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1zZGstdGFyZ2V0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BhY2thZ2Vncm91cHMvcGFja2FnZWdyb3VwLXNkay10YXJnZXQuYmIKQEAgLTQsNyArNCw3IEBACiAKIFBSID0gInIxIgogCi1pbmhlcml0IHBhY2thZ2Vncm91cCBhbGxhcmNoCitpbmhlcml0IHBhY2thZ2Vncm91cAogCiBSUFJPVklERVNfJHtQTn0gKz0gInBhY2thZ2Vncm91cC1uYXRpdmUtc2RrIgogUlJFUExBQ0VTXyR7UE59ICs9ICJwYWNrYWdlZ3JvdXAtbmF0aXZlLXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BlcmwvaXBjLXJ1bl8wLjk0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9pcGMtcnVuXzAuOTQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiNTg5MzkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9pcGMtcnVuXzAuOTQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1ERVNDUklQVElPTiA9ICJcCi1JUEM6OlJ1biBhbGxvd3MgeW91IHJ1biBhbmQgaW50ZXJhY3Qgd2l0aCBjaGlsZCBwcm9jZXNzZXMgXAotdXNpbmcgZmlsZXMsIHBpcGVzLCBhbmQgcHNldWRvLXR0eXMuIEJvdGggc3lzdGVtKCktc3R5bGUgYW5kIHNjcmlwdGVkIFwKLXVzYWdlcyBhcmUgc3VwcG9ydGVkIGFuZCBtYXkgYmUgbWl4ZWQuIExpa2V3aXNlLCBmdW5jdGlvbmFsIGFuZCBPTyBBUEkgXAotc3R5bGVzIGFyZSBib3RoIHN1cHBvcnRlZCBhbmQgbWF5IGJlIG1peGVkLiIKLUhPTUVQQUdFID0gImh0dHBzOi8vbWV0YWNwYW4ub3JnL3JlbGVhc2UvSVBDLVJ1biIKLVNFQ1RJT04gPSAibGlicyIKLUxJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wIHwgR1BMLTEuMCsiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0wZWJkMzdjYWY1Mzc4MWU4YjcyMjNlNmI5OWI2M2Y0ZSIKLURFUEVORFMgPSAicGVybCIKLQotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3RvZGRyL0lQQy1SdW4uZ2l0IgotU1JDUkVWID0gIjZiZGY0MWUyNzZlMDZkMjNlMTQwNzgzYjEzYTZlYWVmNDc0NWMyMTYiCi0KLVMgPSAiJHtXT1JLRElSfS9naXQiCi0KLWluaGVyaXQgY3BhbgotCi1FWFRSQV9DUEFORkxBR1MgPSAiRVhQQVRMSUJQQVRIPSR7U1RBR0lOR19MSUJESVJ9IEVYUEFUSU5DUEFUSD0ke1NUQUdJTkdfSU5DRElSfSIKLQotZG9fY29tcGlsZSgpIHsKLSAgICBleHBvcnQgTElCQz0iJChmaW5kICR7U1RBR0lOR19ESVJfVEFSR0VUfS8ke2Jhc2VfbGliZGlyfS8gLW5hbWUgJ2xpYmMtKi5zbycpIgotICAgIGNwYW5fZG9fY29tcGlsZQotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9pcGMtcnVuXzAuOTYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wZXJsL2lwYy1ydW5fMC45Ni5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGM5NjZkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9pcGMtcnVuXzAuOTYuYmIKQEAgLTAsMCArMSwyNCBAQAorREVTQ1JJUFRJT04gPSAiXAorSVBDOjpSdW4gYWxsb3dzIHlvdSBydW4gYW5kIGludGVyYWN0IHdpdGggY2hpbGQgcHJvY2Vzc2VzIFwKK3VzaW5nIGZpbGVzLCBwaXBlcywgYW5kIHBzZXVkby10dHlzLiBCb3RoIHN5c3RlbSgpLXN0eWxlIGFuZCBzY3JpcHRlZCBcCit1c2FnZXMgYXJlIHN1cHBvcnRlZCBhbmQgbWF5IGJlIG1peGVkLiBMaWtld2lzZSwgZnVuY3Rpb25hbCBhbmQgT08gQVBJIFwKK3N0eWxlcyBhcmUgYm90aCBzdXBwb3J0ZWQgYW5kIG1heSBiZSBtaXhlZC4iCitIT01FUEFHRSA9ICJodHRwczovL21ldGFjcGFuLm9yZy9yZWxlYXNlL0lQQy1SdW4iCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MGViZDM3Y2FmNTM3ODFlOGI3MjIzZTZiOTliNjNmNGUiCitERVBFTkRTID0gInBlcmwiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS90b2Rkci9JUEMtUnVuLmdpdCIKK1NSQ1JFViA9ICI5NjA2NjM2NmFjOGM0MDFkZmY5Yzk3OWQwNGYyNWRjODIxOWZmY2MxIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitpbmhlcml0IGNwYW4KKworRVhUUkFfQ1BBTkZMQUdTID0gIkVYUEFUTElCUEFUSD0ke1NUQUdJTkdfTElCRElSfSBFWFBBVElOQ1BBVEg9JHtTVEFHSU5HX0lOQ0RJUn0iCisKK2RvX2NvbXBpbGUoKSB7CisgICAgZXhwb3J0IExJQkM9IiQoZmluZCAke1NUQUdJTkdfRElSX1RBUkdFVH0vJHtiYXNlX2xpYmRpcn0vIC1uYW1lICdsaWJjLSouc28nKSIKKyAgICBjcGFuX2RvX2NvbXBpbGUKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BlcmwvbGliZGJkLW15c3FsLXBlcmxfNC4wMzYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wZXJsL2xpYmRiZC1teXNxbC1wZXJsXzQuMDM2LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNWRiZWYyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BlcmwvbGliZGJkLW15c3FsLXBlcmxfNC4wMzYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1TVU1NQVJZID0gIkEgUGVybCBEQkkgZHJpdmVyIGZvciBNeVNRTCIKLURFU0NSSVBUSU9OID0gIkRCRDo6bXlzcWwgaXMgdGhlIFBlcmw1IERhdGFiYXNlIEludGVyZmFjZSBkcml2ZXIgZm9yIFwKLXRoZSBNeVNRTCBkYXRhYmFzZS4gSW4gb3RoZXIgd29yZHM6IERCRDo6bXlzcWwgaXMgYW4gaW50ZXJmYWNlIGJldHdlZW4gXAotdGhlIFBlcmwgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIHRoZSBNeVNRTCBwcm9ncmFtbWluZyBBUEkgdGhhdCBjb21lcyBcCi13aXRoIHRoZSBNeVNRTCByZWxhdGlvbmFsIGRhdGFiYXNlIG1hbmFnZW1lbnQgc3lzdGVtLiBNb3N0IGZ1bmN0aW9ucyBcCi1wcm92aWRlZCBieSB0aGlzIHByb2dyYW1taW5nIEFQSSBhcmUgc3VwcG9ydGVkLiBTb21lIHJhcmVseSB1c2VkIFwKLWZ1bmN0aW9ucyBhcmUgbWlzc2luZywgbWFpbmx5IGJlY2F1c2Ugbm8tb25lIGV2ZXIgcmVxdWVzdGVkIHRoZW0uIFwKLSIKLUhPTUVQQUdFID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvfm1pY2hpZWxiL0RCRC1teXNxbC00LjAzNi9saWIvREJEL215c3FsLnBtIgotCi1TRUNUSU9OID0gImxpYnMiCi1MSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgotREVQRU5EUyArPSAibGliZGJpLXBlcmwtbmF0aXZlIGxpYm15c3FsY2xpZW50IgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1kMGEwNjk2NDM0MGU1YzBjZGU4OGI3YWY2MTFmNzU1YyIKLQotU1JDX1VSSSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL0NQQU4vYXV0aG9ycy9pZC9NL01JL01JQ0hJRUxCL0RCRC1teXNxbC0ke1BWfS50YXIuZ3ogXAotIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZmRlZTFkOGRjNGFlNTRiYzZjYjdjZDVhM2YzZDMzNDIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWM0OGE4MjNmODZiODExMGNjYjY1MDRjNjE3NmNhMjQ4YjUyZjU2ODI5ZGQ0NTQ4YmMzOWMzNTA5ZjQxNTRjZiIKLQotUyA9ICIke1dPUktESVJ9L0RCRC1teXNxbC0ke1BWfSIKLQotaW5oZXJpdCBjcGFuCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wZXJsL2xpYmRiZC1teXNxbC1wZXJsXzQuMDQzLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9saWJkYmQtbXlzcWwtcGVybF80LjA0My5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDhiYTc4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9saWJkYmQtbXlzcWwtcGVybF80LjA0My5iYgpAQCAtMCwwICsxLDI1IEBACitTVU1NQVJZID0gIkEgUGVybCBEQkkgZHJpdmVyIGZvciBNeVNRTCIKK0RFU0NSSVBUSU9OID0gIkRCRDo6bXlzcWwgaXMgdGhlIFBlcmw1IERhdGFiYXNlIEludGVyZmFjZSBkcml2ZXIgZm9yIFwKK3RoZSBNeVNRTCBkYXRhYmFzZS4gSW4gb3RoZXIgd29yZHM6IERCRDo6bXlzcWwgaXMgYW4gaW50ZXJmYWNlIGJldHdlZW4gXAordGhlIFBlcmwgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIHRoZSBNeVNRTCBwcm9ncmFtbWluZyBBUEkgdGhhdCBjb21lcyBcCit3aXRoIHRoZSBNeVNRTCByZWxhdGlvbmFsIGRhdGFiYXNlIG1hbmFnZW1lbnQgc3lzdGVtLiBNb3N0IGZ1bmN0aW9ucyBcCitwcm92aWRlZCBieSB0aGlzIHByb2dyYW1taW5nIEFQSSBhcmUgc3VwcG9ydGVkLiBTb21lIHJhcmVseSB1c2VkIFwKK2Z1bmN0aW9ucyBhcmUgbWlzc2luZywgbWFpbmx5IGJlY2F1c2Ugbm8tb25lIGV2ZXIgcmVxdWVzdGVkIHRoZW0uIFwKKyIKK0hPTUVQQUdFID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvfm1pY2hpZWxiL0RCRC1teXNxbC00LjAzNi9saWIvREJEL215c3FsLnBtIgorCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgorREVQRU5EUyArPSAibGliZGJpLXBlcmwtbmF0aXZlIGxpYm15c3FsY2xpZW50IgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1kMGEwNjk2NDM0MGU1YzBjZGU4OGI3YWY2MTFmNzU1YyIKKworU1JDX1VSSSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL0NQQU4vYXV0aG9ycy9pZC9NL01JL01JQ0hJRUxCL0RCRC1teXNxbC0ke1BWfS50YXIuZ3ogXAorIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNGEwMGRkN2YxYzA1NzkzMTE0N2M2NWRmYzQ5MDFjMzYiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjI5Zjg2NWU4MzE3ZjUyNjAyYjJmMmVmZDJiNjg4MDAyOTAzZDJlNGJiY2JhNTQyN2NiNjE4OGIwNDNkNmY5OSIKKworUyA9ICIke1dPUktESVJ9L0RCRC1teXNxbC0ke1BWfSIKKworaW5oZXJpdCBjcGFuCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wZXJsL2xpYmRiaS1wZXJsXzEuNjM2LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9saWJkYmktcGVybF8xLjYzNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDg1YjkwNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wZXJsL2xpYmRiaS1wZXJsXzEuNjM2LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotU1VNTUFSWSA9ICJUaGUgUGVybCBEYXRhYmFzZSBJbnRlcmZhY2UiCi1ERVNDUklQVElPTiA9ICJEQkkgaXMgYSBkYXRhYmFzZSBhY2Nlc3MgQXBwbGljYXRpb24gUHJvZ3JhbW1pbmcgSW50ZXJmYWNlIFwKLShBUEkpIGZvciB0aGUgUGVybCBMYW5ndWFnZS4gVGhlIERCSSBBUEkgU3BlY2lmaWNhdGlvbiBkZWZpbmVzIGEgc2V0IFwKLW9mIGZ1bmN0aW9ucywgdmFyaWFibGVzIGFuZCBjb252ZW50aW9ucyB0aGF0IHByb3ZpZGUgYSBjb25zaXN0ZW50IFwKLWRhdGFiYXNlIGludGVyZmFjZSBpbmRlcGVuZGVudCBvZiB0aGUgYWN0dWFsIGRhdGFiYXNlIGJlaW5nIHVzZWQuIFwKLSIKLUhPTUVQQUdFID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvZGlzdC9EQkkvIgotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKLVJERVBFTkRTXyR7UE59ID0gIiBwZXJsLW1vZHVsZS1jYXJwIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1leHBvcnRlciBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtZXhwb3J0ZXItaGVhdnkgXAotICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWR5bmFsb2FkZXIgXAotIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9EQkkucG07YmVnaW5saW5lPTgxNDc7ZW5kbGluZT04MTUxO21kNT0yZTVmNmNmNDdlNWFkN2I3N2RjYjYxNzJlZGMyOTI5MiIKLQotU1JDX1VSSSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL0NQQU4vYXV0aG9ycy9pZC9UL1RJL1RJTUIvREJJLSR7UFZ9LnRhci5neiIKLVNSQ19VUklbbWQ1c3VtXSA9ICI2MGYyOTFlNWYwMTU1NTBkZGU3MWQxODU4ZGZlOTNiYSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4ZjdkZGNlOTdjMDRiNGI3YTAwMGU2NWU1ZDA1ZjY3OWM5NjRkNjJjOGIwMmM5NGMxYTdkODE1YmIyZGQ2NzZjIgotCi1TID0gIiR7V09SS0RJUn0vREJJLSR7UFZ9IgotCi1pbmhlcml0IGNwYW4KLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wZXJsL2xpYmRiaS1wZXJsXzEuNjQxLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9saWJkYmktcGVybF8xLjY0MS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGExMjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGVybC9saWJkYmktcGVybF8xLjY0MS5iYgpAQCAtMCwwICsxLDM2IEBACitTVU1NQVJZID0gIlRoZSBQZXJsIERhdGFiYXNlIEludGVyZmFjZSIKK0RFU0NSSVBUSU9OID0gIkRCSSBpcyBhIGRhdGFiYXNlIGFjY2VzcyBBcHBsaWNhdGlvbiBQcm9ncmFtbWluZyBJbnRlcmZhY2UgXAorKEFQSSkgZm9yIHRoZSBQZXJsIExhbmd1YWdlLiBUaGUgREJJIEFQSSBTcGVjaWZpY2F0aW9uIGRlZmluZXMgYSBzZXQgXAorb2YgZnVuY3Rpb25zLCB2YXJpYWJsZXMgYW5kIGNvbnZlbnRpb25zIHRoYXQgcHJvdmlkZSBhIGNvbnNpc3RlbnQgXAorZGF0YWJhc2UgaW50ZXJmYWNlIGluZGVwZW5kZW50IG9mIHRoZSBhY3R1YWwgZGF0YWJhc2UgYmVpbmcgdXNlZC4gXAorIgorSE9NRVBBR0UgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9kaXN0L0RCSS8iCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgorUkRFUEVORFNfJHtQTn0gPSAiIHBlcmwtbW9kdWxlLWNhcnAgXAorICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWV4cG9ydGVyIFwKKyAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1leHBvcnRlci1oZWF2eSBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtZHluYWxvYWRlciBcCisiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTEwOTgyYzcxNDhlMGEwMTJjMGZkODA1MzQ1MjJmNWM1IgorCitTUkNfVVJJID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvQ1BBTi9hdXRob3JzL2lkL1QvVEkvVElNQi9EQkktJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gImU3N2ZkMzdmY2Y3N2ZjODhmZGUwMjljMWI3NWRlZDU0IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU1MDllNTMyY2RkMGUzZDkxZWRhNTUwNTc4ZGVhYWMyOWUyZjAwOGExMmI2NDU3NmU4YzI2MWJiOTJlOGMyYzEiCisKK1MgPSAiJHtXT1JLRElSfS9EQkktJHtQVn0iCisKK2luaGVyaXQgY3BhbiBwdGVzdC1wZXJsCisKK2RvX2luc3RhbGxfcHJlcGVuZCgpIHsKKwkjIHRlc3QgcmVxdWlyZXMgIi1UIiAodGFpbnQpIGNvbW1hbmQgbGluZSBvcHRpb24KKwlybSAtcmYgJHtCfS90L3BvZC1jb3ZlcmFnZS50CisJcm0gLXJmICR7Qn0vdC8xM3RhaW50LnQKKwkjIHNvdXJjZSBvZiB0ZXN0IGZhaWx1cmUgbm90IG9idmlvdXMKKwlybSAtcmYgJHtCfS90Lzg1Z29mZXIudAorCSMgdW5jbGVhciB3aHkgdGhlcmUgYXJlIHNldmVyYWwgZHVwbGljYXRlcyBvZiB0ZXN0cyBpbiB0YXJiYWxsCisJcm0gLXJmICR7Qn0vdC96Ki50Cit9CisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC01LjYuMzEvY2hhbmdlLUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTksucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLTUuNi4zMS9jaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzljMzM0Zi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLTUuNi4zMS9jaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLVtQQVRDSF0gY29uZmlnLm00OiBjaGFuZ2UgQUNfVFJZX1JVTiB0byBBQ19UUllfTElOSwotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotQUNfVFJZX1JVTiBpcyBub3Qgc3VpdGFibGUgZm9yIGNyb3NzLWNvbXBpbGUKLQotU2lnbmVkLW9mZi1ieTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgotLS0tCi0gZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNCB8IDMxICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2V4dC9maWxlaW5mby9jb25maWcubTQgYi9leHQvZmlsZWluZm8vY29uZmlnLm00Ci1pbmRleCA3ZTk4ZDYyLi44YThlYTBlIDEwMDY0NAotLS0tIGEvZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNAotKysrIGIvZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNAotQEAgLTE0LDMxICsxNCwxMiBAQCBpZiB0ZXN0ICIkUEhQX0ZJTEVJTkZPIiAhPSAibm8iOyB0aGVuCi0gICAgIGxpYm1hZ2ljL3JlYWRjZGYuYyBsaWJtYWdpYy9zb2Z0bWFnaWMuYyIKLSAKLSAgIEFDX01TR19DSEVDS0lORyhbZm9yIHN0cmNhc2VzdHJdKQotLSAgQUNfVFJZX1JVTihbCi0tI2luY2x1ZGUgPHN0cmluZy5oPgotLSNpbmNsdWRlIDxzdHJpbmdzLmg+Ci0tI2luY2x1ZGUgPHN0ZGxpYi5oPgotLQotLWludCBtYWluKHZvaWQpCi0tewotLSAgICAgICAgY2hhciAqczAsICpzMSwgKnJldDsKLS0KLS0gICAgICAgIHMwID0gKGNoYXIgKikgbWFsbG9jKDQyKTsKLS0gICAgICAgIHMxID0gKGNoYXIgKikgbWFsbG9jKDgpOwotLQotLSAgICAgICAgbWVtc2V0KHMwLCAnWCcsIDQyKTsKLS0gICAgICAgIHMwWzI0XSA9ICdZJzsKLS0gICAgICAgIHMwWzI2XSA9ICdaJzsKLS0gICAgICAgIHMwWzQxXSA9ICdcMCc7Ci0tICAgICAgICBtZW1zZXQoczEsICd4JywgOCk7Ci0tICAgICAgICBzMVswXSA9ICd5JzsKLS0gICAgICAgIHMxWzJdID0gJ1onOwotLSAgICAgICAgczFbN10gPSAnXDAnOwotLQotLSAgICAgICAgcmV0ID0gc3RyY2FzZXN0cihzMCwgczEpOwotLQotLSAgICAgICAgcmV0dXJuICEoTlVMTCAhPSByZXQpOwotLX0KLSsgIEFDX1RSWV9DT01QSUxFKFsKLSsgICAgICNpbmNsdWRlIDxzdHJpbmcuaD4KLSsgICAgICNpbmNsdWRlIDxzdHJpbmdzLmg+Ci0rICAgICAjaW5jbHVkZSA8c3RkbGliLmg+Ci0rICBdLFsKLSsgICAgIHN0cmNhc2VzdHIoTlVMTCwgTlVMTCk7Ci0gICBdLFsKLSAgICAgZG5sIHVzaW5nIHRoZSBwbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbgotICAgICBBQ19NU0dfUkVTVUxUKHllcykKLS0tIAotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC03LjEuOS8wMDAxLVNwZWNpZnktdGFnLXdpdGgtbGlidG9vbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAtNy4xLjkvMDAwMS1TcGVjaWZ5LXRhZy13aXRoLWxpYnRvb2wucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4YjQ5MzcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC03LjEuOS8wMDAxLVNwZWNpZnktdGFnLXdpdGgtbGlidG9vbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLUZyb20gNWM4NGIwMzllOTdhYmQ4OGY2YTE4ZGEwZTZkMjczODNjMDBmZWE5MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDI2IEp1bCAyMDE3IDIzOjA2OjU2IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIFNwZWNpZnkgLS10YWcgd2l0aCBsaWJ0b29sCi0KLVRoaXMgaGVscHMgaW4gY29tcGlsaW5nIHdpdGggZXh0ZXJuYWwgdG9vbGNoYWlucwotd2l0aCAtZlBJRSBhcHBlbmRlZCB0byBDQyBlLmcuIHZpYSBoYXJkZW5pbmcgZmxhZ3MKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIGFjaW5jbHVkZS5tNCB8IDggKysrKy0tLS0KLSBjb25maWd1cmUuaW4gfCA0ICsrLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2FjaW5jbHVkZS5tNCBiL2FjaW5jbHVkZS5tNAotaW5kZXggYTExNGE5OC4uMWNjN2EyNiAxMDA2NDQKLS0tLSBhL2FjaW5jbHVkZS5tNAotKysrIGIvYWNpbmNsdWRlLm00Ci1AQCAtODA2LDEwICs4MDYsMTAgQEAgZG5sCi0gZG5sIFBIUF9CVUlMRF9QUk9HUkFNCi0gZG5sCi0gQUNfREVGVU4oW1BIUF9CVUlMRF9QUk9HUkFNXSxbCi0tICBwaHBfY19wcmU9JyQoTElCVE9PTCkgLS1tb2RlPWNvbXBpbGUgJChDQyknCi0rICBwaHBfY19wcmU9JyQoTElCVE9PTCkgLS10YWc9Q0MgLS1tb2RlPWNvbXBpbGUgJChDQyknCi0gICBwaHBfY19tZXRhPSckKENPTU1PTl9GTEFHUykgJChDRkxBR1NfQ0xFQU4pICQoRVhUUkFfQ0ZMQUdTKScKLSAgIHBocF9jX3Bvc3Q9Ci0tICBwaHBfY3h4X3ByZT0nJChMSUJUT09MKSAtLW1vZGU9Y29tcGlsZSAkKENYWCknCi0rICBwaHBfY3h4X3ByZT0nJChMSUJUT09MKSAtLXRhZz1DWFggLS1tb2RlPWNvbXBpbGUgJChDWFgpJwotICAgcGhwX2N4eF9tZXRhPSckKENPTU1PTl9GTEFHUykgJChDWFhGTEFHU19DTEVBTikgJChFWFRSQV9DWFhGTEFHUyknCi0gICBwaHBfY3h4X3Bvc3Q9Ci0gICBwaHBfbG89bG8KLUBAIC04MTksMTAgKzgxOSwxMCBAQCBBQ19ERUZVTihbUEhQX0JVSUxEX1BST0dSQU1dLFsKLSAgICAgbm8pICBwaWNfc2V0dGluZz0nLXByZWZlci1ub24tcGljJzs7Ci0gICBlc2FjCi0gCi0tICBzaGFyZWRfY19wcmU9JyQoTElCVE9PTCkgLS1tb2RlPWNvbXBpbGUgJChDQyknCi0rICBzaGFyZWRfY19wcmU9JyQoTElCVE9PTCkgLS10YWc9Q0MgLS1tb2RlPWNvbXBpbGUgJChDQyknCi0gICBzaGFyZWRfY19tZXRhPSckKENPTU1PTl9GTEFHUykgJChDRkxBR1NfQ0xFQU4pICQoRVhUUkFfQ0ZMQUdTKSAnJHBpY19zZXR0aW5nCi0gICBzaGFyZWRfY19wb3N0PQotLSAgc2hhcmVkX2N4eF9wcmU9JyQoTElCVE9PTCkgLS1tb2RlPWNvbXBpbGUgJChDWFgpJwotKyAgc2hhcmVkX2N4eF9wcmU9JyQoTElCVE9PTCkgLS10YWc9Q1hYIC0tbW9kZT1jb21waWxlICQoQ1hYKScKLSAgIHNoYXJlZF9jeHhfbWV0YT0nJChDT01NT05fRkxBR1MpICQoQ1hYRkxBR1NfQ0xFQU4pICQoRVhUUkFfQ1hYRkxBR1MpICckcGljX3NldHRpbmcKLSAgIHNoYXJlZF9jeHhfcG9zdD0KLSAgIHNoYXJlZF9sbz1sbwotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgotaW5kZXggN2Q2NWI2My4uNzIyMWFmOSAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5pbgotKysrIGIvY29uZmlndXJlLmluCi1AQCAtMTQzMSw4ICsxNDMxLDggQEAgUEhQX1NFVF9MSUJUT09MX1ZBUklBQkxFKFstLXNpbGVudF0pCi0gZG5sIGxpYnRvb2wgMS40LjMgbmVlZHMgdGhpcy4KLSBQSFBfU0VUX0xJQlRPT0xfVkFSSUFCTEUoWy0tcHJlc2VydmUtZHVwLWRlcHNdKQotIAotLXRlc3QgLXogIiRQSFBfQ09NUElMRSIgJiYgUEhQX0NPTVBJTEU9JyQoTElCVE9PTCkgLS1tb2RlPWNvbXBpbGUgJChDT01QSUxFKSAtYyAkPCcKLS10ZXN0IC16ICIkQ1hYX1BIUF9DT01QSUxFIiAmJiBDWFhfUEhQX0NPTVBJTEU9JyQoTElCVE9PTCkgLS1tb2RlPWNvbXBpbGUgJChDWFhfQ09NUElMRSkgLWMgJDwnCi0rdGVzdCAteiAiJFBIUF9DT01QSUxFIiAmJiBQSFBfQ09NUElMRT0nJChMSUJUT09MKSAtLXRhZz1DQyAtLW1vZGU9Y29tcGlsZSAkKENPTVBJTEUpIC1jICQ8JwotK3Rlc3QgLXogIiRDWFhfUEhQX0NPTVBJTEUiICYmIENYWF9QSFBfQ09NUElMRT0nJChMSUJUT09MKSAtLXRhZz1DWFggLS1tb2RlPWNvbXBpbGUgJChDWFhfQ09NUElMRSkgLWMgJDwnCi0gU0hBUkVEX0xJQlRPT0w9JyQoTElCVE9PTCknCi0gCi0gQ0M9JG9sZF9DQwotLS0gCi0yLjEzLjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC03LjEuOS9DVkUtMjAxNy0xNjY0Mi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAtNy4xLjkvQ1ZFLTIwMTctMTY2NDIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxZDJhMGYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC03LjEuOS9DVkUtMjAxNy0xNjY0Mi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUyNDEgKzAsMCBAQAotRnJvbSBmMmY5MDc2NzMxMTM1NWNhZmFiZmY2MDRhN2E4NTdjYTYwZWUzZjAxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTGkgWmhvdSA8bGkuemhvdUB3aW5kcml2ZXIuY29tPgotRGF0ZTogV2VkLCAyMiBOb3YgMjAxNyAyMToxNDo1OSAtMDgwMAotU3ViamVjdDogW1BBVENIXSBGaXhlZCBidWcgIzc1MDU1IE91dC1PZi1Cb3VuZHMgUmVhZCBpbiB0aW1lbGliX21lcmlkaWFuKCkKLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAotQ1ZFOiBDVkUtMjAxNy0xNjY0MgotU2lnbmVkLW9mZi1ieTogTGkgWmhvdSA8bGkuemhvdUB3aW5kcml2ZXIuY29tPgotLS0tCi0gZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyAgICAgICAgIHwgMTU0NCArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCi0gZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUgICAgICAgIHwgICAgNCArLQotIGV4dC9kYXRlL3Rlc3RzL2J1ZzUzNDM3X3ZhcjMucGhwdCB8ICAgIDIgKy0KLSBleHQvd2RkeC90ZXN0cy9idWc3NTA1NS5waHB0ICAgICAgfCAgIDIwICsKLSBleHQvd2RkeC90ZXN0cy9idWc3NTA1NS53ZGR4ICAgICAgfCAgIDEzICsKLSA1IGZpbGVzIGNoYW5nZWQsIDkxMSBpbnNlcnRpb25zKCspLCA2NzIgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGV4dC93ZGR4L3Rlc3RzL2J1Zzc1MDU1LnBocHQKLSBjcmVhdGUgbW9kZSAxMDA2NDQgZXh0L3dkZHgvdGVzdHMvYnVnNzUwNTUud2RkeAotCi1kaWZmIC0tZ2l0IGEvZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyBiL2V4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMKLWluZGV4IGY5Mjk2MTkuLjZiMTE0MTggMTAwNjQ0Ci0tLS0gYS9leHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jCi0rKysgYi9leHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jCi1AQCAtMSw0ICsxLDUgQEAKLS0vKiBHZW5lcmF0ZWQgYnkgcmUyYyAwLjE1LjMgb24gVHVlIEp1bCAgNCAyMToxNToxNyAyMDE3ICovCi0rLyogR2VuZXJhdGVkIGJ5IHJlMmMgMC4xNS4zIG9uIFdlZCBOb3YgMjIgMjE6MTQ6NDcgMjAxNyAqLwotKyNsaW5lIDEgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIC8qCi0gICogVGhlIE1JVCBMaWNlbnNlIChNSVQpCi0gICoKLUBAIC04MzcsOSArODM4LDExIEBAIHN0YXRpYyBpbnQgc2NhbihTY2FubmVyICpzLCB0aW1lbGliX3R6X2dldF93cmFwcGVyIHR6X2dldF93cmFwcGVyKQotIHN0ZDoKLSAJcy0+dG9rID0gY3Vyc29yOwotIAlzLT5sZW4gPSAwOwotKyNsaW5lIDk2NSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCi0gCi0gCi0rI2xpbmUgODQ2ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHsKLSAJWVlDVFlQRSB5eWNoOwotIAl1bnNpZ25lZCBpbnQgeXlhY2NlcHQgPSAwOwotQEAgLTk2MiwxOCArOTY1LDE5IEBAIHl5MjoKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLSAJCQlpZiAoeXljaCA8PSAnRCcpIGdvdG8geXkxNjU7Ci0tCQkJZ290byB5eTE1MjE7Ci0rCQkJZ290byB5eTE1MjM7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnZCcpIHsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjU7Ci0gCQkJaWYgKHl5Y2ggPj0gJ2EnKSBnb3RvIHl5MTcwOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNTMwOwotKwkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE1MzI7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcwOwotIAkJfQotIAl9Ci0geXkzOgotKyNsaW5lIDE2NzMgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlpbnQgdHpfbm90X2ZvdW5kOwotIAkJREVCVUdfT1VUUFVUKCJ0emNvcnJlY3Rpb24gfCB0eiIpOwotQEAgLTk4Niw2ICs5OTAsNyBAQCB5eTM6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1RJTUVaT05FOwotIAl9Ci0rI2xpbmUgOTk0ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnRScpIHsKLUBAIC05OTUsNyArMTAwMCw3IEBAIHl5NDoKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLSAJCQlpZiAoeXljaCA8PSAnRCcpIGdvdG8geXkxNjU7Ci0tCQkJZ290byB5eTE1MjE7Ci0rCQkJZ290byB5eTE1MjM7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnZCcpIHsKLUBAIC0xMDAzLDcgKzEwMDgsNyBAQCB5eTQ6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY1OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNTIxOwotKwkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE1MjM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY1OwotIAkJCWdvdG8geXkzOwotIAkJfQotQEAgLTEwMTcsMTIgKzEwMjIsMTIgQEAgeXk1OgotIAkJCWdvdG8geXkxNjU7Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdIJykgewotLQkJCQlpZiAoeXljaCA8PSAnRScpIGdvdG8geXkxNDkyOwotKwkJCQlpZiAoeXljaCA8PSAnRScpIGdvdG8geXkxNDk0OwotIAkJCQlnb3RvIHl5MTY1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdJJykgZ290byB5eTE0OTM7Ci0rCQkJCWlmICh5eWNoIDw9ICdJJykgZ290byB5eTE0OTU7Ci0gCQkJCWlmICh5eWNoIDw9ICdOJykgZ290byB5eTE2NTsKLS0JCQkJZ290byB5eTE0OTE7Ci0rCQkJCWdvdG8geXkxNDkzOwotIAkJCX0KLSAJCX0KLSAJfSBlbHNlIHsKLUBAIC0xMDMxLDE1ICsxMDM2LDE1IEBAIHl5NToKLSAJCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA9PSAnZScpIGdvdG8geXkxNTA4OwotKwkJCQlpZiAoeXljaCA9PSAnZScpIGdvdG8geXkxNTEwOwotIAkJCQlnb3RvIHl5MTcwOwotIAkJCX0KLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ24nKSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdpJykgZ290byB5eTE1MDk7Ci0rCQkJCWlmICh5eWNoIDw9ICdpJykgZ290byB5eTE1MTE7Ci0gCQkJCWdvdG8geXkxNzA7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ28nKSBnb3RvIHl5MTUwNzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ28nKSBnb3RvIHl5MTUwOTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcwOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci1AQCAtMTA1NCwxMiArMTA1OSwxMiBAQCB5eTY6Ci0gCQkJZ290byB5eTE2NTsKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0gnKSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdFJykgZ290byB5eTE0OTI7Ci0rCQkJCWlmICh5eWNoIDw9ICdFJykgZ290byB5eTE0OTQ7Ci0gCQkJCWdvdG8geXkxNjU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ0knKSBnb3RvIHl5MTQ5MzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ0knKSBnb3RvIHl5MTQ5NTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ04nKSBnb3RvIHl5MTY1OwotLQkJCQlnb3RvIHl5MTQ5MTsKLSsJCQkJZ290byB5eTE0OTM7Ci0gCQkJfQotIAkJfQotIAl9IGVsc2UgewotQEAgLTEwNjgsMTUgKzEwNzMsMTUgQEAgeXk2OgotIAkJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjU7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoID09ICdlJykgZ290byB5eTE0OTI7Ci0rCQkJCWlmICh5eWNoID09ICdlJykgZ290byB5eTE0OTQ7Ci0gCQkJCWdvdG8geXkxNjU7Ci0gCQkJfQotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnbicpIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2knKSBnb3RvIHl5MTQ5MzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2knKSBnb3RvIHl5MTQ5NTsKLSAJCQkJZ290byB5eTE2NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnbycpIGdvdG8geXkxNDkxOwotKwkJCQlpZiAoeXljaCA8PSAnbycpIGdvdG8geXkxNDkzOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjU7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLUBAIC0xMDg4LDI0ICsxMDkzLDI0IEBAIHl5NzoKLSAJCWlmICh5eWNoIDw9ICdBJykgewotIAkJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLSAJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotLQkJCWdvdG8geXkxNDYxOwotKwkJCWdvdG8geXkxNDYzOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA9PSAnSScpIGdvdG8geXkxNDYyOwotKwkJCWlmICh5eWNoID09ICdJJykgZ290byB5eTE0NjQ7Ci0gCQkJaWYgKHl5Y2ggPD0gJ04nKSBnb3RvIHl5MTY1OwotLQkJCWdvdG8geXkxNDYzOwotKwkJCWdvdG8geXkxNDY1OwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2gnKSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY1OwotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTQ3NjsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxNDc4OwotIAkJCWdvdG8geXkxNzA7Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICduJykgewotLQkJCQlpZiAoeXljaCA8PSAnaScpIGdvdG8geXkxNDc3OwotKwkJCQlpZiAoeXljaCA8PSAnaScpIGdvdG8geXkxNDc5OwotIAkJCQlnb3RvIHl5MTcwOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdvJykgZ290byB5eTE0Nzg7Ci0rCQkJCWlmICh5eWNoIDw9ICdvJykgZ290byB5eTE0ODA7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MDsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotQEAgLTExMTcsMjQgKzExMjIsMjQgQEAgeXk4OgotIAkJaWYgKHl5Y2ggPD0gJ0EnKSB7Ci0gCQkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0tCQkJZ290byB5eTE0NjE7Ci0rCQkJZ290byB5eTE0NjM7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoID09ICdJJykgZ290byB5eTE0NjI7Ci0rCQkJaWYgKHl5Y2ggPT0gJ0knKSBnb3RvIHl5MTQ2NDsKLSAJCQlpZiAoeXljaCA8PSAnTicpIGdvdG8geXkxNjU7Ci0tCQkJZ290byB5eTE0NjM7Ci0rCQkJZ290byB5eTE0NjU7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnaCcpIHsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjU7Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLS0JCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxNDYxOwotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTE0NjM7Ci0gCQkJZ290byB5eTE2NTsKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ24nKSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdpJykgZ290byB5eTE0NjI7Ci0rCQkJCWlmICh5eWNoIDw9ICdpJykgZ290byB5eTE0NjQ7Ci0gCQkJCWdvdG8geXkxNjU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ28nKSBnb3RvIHl5MTQ2MzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ28nKSBnb3RvIHl5MTQ2NTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci1AQCAtMTE0NiwxNSArMTE1MSwxNSBAQCB5eTk6Ci0gCXN3aXRjaCAoeXljaCkgewotIAljYXNlICcpJzoJZ290byB5eTE2NDsKLSAJY2FzZSAnMCc6Ci0tCWNhc2UgJzEnOglnb3RvIHl5MTM5MTsKLS0JY2FzZSAnMic6CWdvdG8geXkxMzkyOwotKwljYXNlICcxJzoJZ290byB5eTEzOTM7Ci0rCWNhc2UgJzInOglnb3RvIHl5MTM5NDsKLSAJY2FzZSAnMyc6Ci0gCWNhc2UgJzQnOgotIAljYXNlICc1JzoKLSAJY2FzZSAnNic6Ci0gCWNhc2UgJzcnOgotIAljYXNlICc4JzoKLS0JY2FzZSAnOSc6CWdvdG8geXkxMzkzOwotKwljYXNlICc5JzoJZ290byB5eTEzOTU7Ci0gCWNhc2UgJ0EnOgotIAljYXNlICdCJzoKLSAJY2FzZSAnQyc6Ci1AQCAtMTE3NiwxMSArMTE4MSwxMSBAQCB5eTk6Ci0gCWNhc2UgJ1gnOgotIAljYXNlICdZJzoKLSAJY2FzZSAnWic6CWdvdG8geXkxNjU7Ci0tCWNhc2UgJ0UnOglnb3RvIHl5MTM4NjsKLS0JY2FzZSAnSCc6CWdvdG8geXkxMzg3OwotLQljYXNlICdPJzoJZ290byB5eTEzODg7Ci0tCWNhc2UgJ1UnOglnb3RvIHl5MTM4OTsKLS0JY2FzZSAnVyc6CWdvdG8geXkxMzkwOwotKwljYXNlICdFJzoJZ290byB5eTEzODg7Ci0rCWNhc2UgJ0gnOglnb3RvIHl5MTM4OTsKLSsJY2FzZSAnTyc6CWdvdG8geXkxMzkwOwotKwljYXNlICdVJzoJZ290byB5eTEzOTE7Ci0rCWNhc2UgJ1cnOglnb3RvIHl5MTM5MjsKLSAJY2FzZSAnYSc6Ci0gCWNhc2UgJ2InOgotIAljYXNlICdjJzoKLUBAIC0xMjAyLDExICsxMjA3LDExIEBAIHl5OToKLSAJY2FzZSAneCc6Ci0gCWNhc2UgJ3knOgotIAljYXNlICd6JzoJZ290byB5eTE3MDsKLS0JY2FzZSAnZSc6CWdvdG8geXkxNDI5OwotLQljYXNlICdoJzoJZ290byB5eTE0MzA7Ci0tCWNhc2UgJ28nOglnb3RvIHl5MTQzMTsKLS0JY2FzZSAndSc6CWdvdG8geXkxNDMyOwotLQljYXNlICd3JzoJZ290byB5eTE0MzM7Ci0rCWNhc2UgJ2UnOglnb3RvIHl5MTQzMTsKLSsJY2FzZSAnaCc6CWdvdG8geXkxNDMyOwotKwljYXNlICdvJzoJZ290byB5eTE0MzM7Ci0rCWNhc2UgJ3UnOglnb3RvIHl5MTQzNDsKLSsJY2FzZSAndyc6CWdvdG8geXkxNDM1OwotIAlkZWZhdWx0Oglnb3RvIHl5MzsKLSAJfQotIHl5MTA6Ci1AQCAtMTIxNSwxNSArMTIyMCwxNSBAQCB5eTEwOgotIAlzd2l0Y2ggKHl5Y2gpIHsKLSAJY2FzZSAnKSc6CWdvdG8geXkxNjQ7Ci0gCWNhc2UgJzAnOgotLQljYXNlICcxJzoJZ290byB5eTEzOTE7Ci0tCWNhc2UgJzInOglnb3RvIHl5MTM5MjsKLSsJY2FzZSAnMSc6CWdvdG8geXkxMzkzOwotKwljYXNlICcyJzoJZ290byB5eTEzOTQ7Ci0gCWNhc2UgJzMnOgotIAljYXNlICc0JzoKLSAJY2FzZSAnNSc6Ci0gCWNhc2UgJzYnOgotIAljYXNlICc3JzoKLSAJY2FzZSAnOCc6Ci0tCWNhc2UgJzknOglnb3RvIHl5MTM5MzsKLSsJY2FzZSAnOSc6CWdvdG8geXkxMzk1OwotIAljYXNlICdBJzoKLSAJY2FzZSAnQic6Ci0gCWNhc2UgJ0MnOgotQEAgLTEyNjcsMjggKzEyNzIsMzAgQEAgeXkxMDoKLSAJY2FzZSAneSc6Ci0gCWNhc2UgJ3onOglnb3RvIHl5MTY1OwotIAljYXNlICdFJzoKLS0JY2FzZSAnZSc6CWdvdG8geXkxMzg2OwotKwljYXNlICdlJzoJZ290byB5eTEzODg7Ci0gCWNhc2UgJ0gnOgotLQljYXNlICdoJzoJZ290byB5eTEzODc7Ci0rCWNhc2UgJ2gnOglnb3RvIHl5MTM4OTsKLSAJY2FzZSAnTyc6Ci0tCWNhc2UgJ28nOglnb3RvIHl5MTM4ODsKLSsJY2FzZSAnbyc6CWdvdG8geXkxMzkwOwotIAljYXNlICdVJzoKLS0JY2FzZSAndSc6CWdvdG8geXkxMzg5OwotKwljYXNlICd1JzoJZ290byB5eTEzOTE7Ci0gCWNhc2UgJ1cnOgotLQljYXNlICd3JzoJZ290byB5eTEzOTA7Ci0rCWNhc2UgJ3cnOglnb3RvIHl5MTM5MjsKLSAJZGVmYXVsdDoJZ290byB5eTM7Ci0gCX0KLSB5eTExOgotIAl5eWFjY2VwdCA9IDE7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0tCWlmICh5eWNoID09ICctJykgZ290byB5eTEzNzQ7Ci0rCWlmICh5eWNoID09ICctJykgZ290byB5eTEzNzY7Ci0gCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTEyOwotLQlpZiAoeXljaCA8PSAnOScpIGdvdG8geXkxMzc1OwotKwlpZiAoeXljaCA8PSAnOScpIGdvdG8geXkxMzc3OwotIHl5MTI6Ci0rI2xpbmUgMTc2OCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCWFkZF9lcnJvcihzLCAiVW5leHBlY3RlZCBjaGFyYWN0ZXIiKTsKLSAJCWdvdG8gc3RkOwotIAl9Ci0rI2xpbmUgMTI5OSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTEzOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdSJykgewotQEAgLTEyOTksMTYgKzEzMDYsMTYgQEAgeXkxMzoKLSAJCQl9IGVsc2UgewotIAkJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotIAkJCQlpZiAoeXljaCA8PSAnRCcpIGdvdG8geXkxNjU7Ci0tCQkJCWdvdG8geXkxMzEwOwotKwkJCQlnb3RvIHl5MTMxMTsKLSAJCQl9Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdOJykgewotLQkJCQlpZiAoeXljaCA9PSAnSScpIGdvdG8geXkxMzExOwotKwkJCQlpZiAoeXljaCA9PSAnSScpIGdvdG8geXkxMzEyOwotIAkJCQlnb3RvIHl5MTY1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdPJykgZ290byB5eTEzMTI7Ci0rCQkJCWlmICh5eWNoIDw9ICdPJykgZ290byB5eTEzMTM7Ci0gCQkJCWlmICh5eWNoIDw9ICdRJykgZ290byB5eTE2NTsKLS0JCQkJZ290byB5eTEzMTM7Ci0rCQkJCWdvdG8geXkxMzE0OwotIAkJCX0KLSAJCX0KLSAJfSBlbHNlIHsKLUBAIC0xMzE4LDE2ICsxMzI1LDE2IEBAIHl5MTM6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzA7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2UnKSBnb3RvIHl5MTM1MTsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2UnKSBnb3RvIHl5MTM1MzsKLSAJCQkJaWYgKHl5Y2ggPD0gJ2gnKSBnb3RvIHl5MTcwOwotLQkJCQlnb3RvIHl5MTM1MjsKLSsJCQkJZ290byB5eTEzNTQ7Ci0gCQkJfQotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAncScpIHsKLS0JCQkJaWYgKHl5Y2ggPT0gJ28nKSBnb3RvIHl5MTM1MzsKLSsJCQkJaWYgKHl5Y2ggPT0gJ28nKSBnb3RvIHl5MTM1NTsKLSAJCQkJZ290byB5eTE3MDsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxMzU0OwotKwkJCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxMzU2OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzA7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLUBAIC0xMzQzLDE2ICsxMzUwLDE2IEBAIHl5MTQ6Ci0gCQkJfSBlbHNlIHsKLSAJCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLSAJCQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTY1OwotLQkJCQlnb3RvIHl5MTMxMDsKLSsJCQkJZ290byB5eTEzMTE7Ci0gCQkJfQotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnTicpIHsKLS0JCQkJaWYgKHl5Y2ggPT0gJ0knKSBnb3RvIHl5MTMxMTsKLSsJCQkJaWYgKHl5Y2ggPT0gJ0knKSBnb3RvIHl5MTMxMjsKLSAJCQkJZ290byB5eTE2NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxMzEyOwotKwkJCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxMzEzOwotIAkJCQlpZiAoeXljaCA8PSAnUScpIGdvdG8geXkxNjU7Ci0tCQkJCWdvdG8geXkxMzEzOwotKwkJCQlnb3RvIHl5MTMxNDsKLSAJCQl9Ci0gCQl9Ci0gCX0gZWxzZSB7Ci1AQCAtMTM2MiwxNiArMTM2OSwxNiBAQCB5eTE0OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTY1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTEzMTA7Ci0rCQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTEzMTE7Ci0gCQkJCWlmICh5eWNoIDw9ICdoJykgZ290byB5eTE2NTsKLS0JCQkJZ290byB5eTEzMTE7Ci0rCQkJCWdvdG8geXkxMzEyOwotIAkJCX0KLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3EnKSB7Ci0tCQkJCWlmICh5eWNoID09ICdvJykgZ290byB5eTEzMTI7Ci0rCQkJCWlmICh5eWNoID09ICdvJykgZ290byB5eTEzMTM7Ci0gCQkJCWdvdG8geXkxNjU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTMxMzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTMxNDsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci1AQCAtMTM4MiwxMyArMTM4OSwxMyBAQCB5eTE1OgotIAlpZiAoeXljaCA8PSAnQScpIHsKLSAJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLSAJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0tCQlnb3RvIHl5MTI5NjsKLSsJCWdvdG8geXkxMjk3OwotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY1OwotIAkJCWdvdG8geXkzOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMzA3OwotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEzMDg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcwOwotIAkJCWdvdG8geXkzOwotIAkJfQotQEAgLTEzOTgsMTMgKzE0MDUsMTMgQEAgeXkxNjoKLSAJaWYgKHl5Y2ggPD0gJ0EnKSB7Ci0gCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotLQkJZ290byB5eTEyOTY7Ci0rCQlnb3RvIHl5MTI5NzsKLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdgJykgewotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NTsKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTI5NjsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMjk3OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NTsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLUBAIC0xNDIwLDcgKzE0MjcsNyBAQCB5eTE3OgotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NTsKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTI5MzsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMjk0OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MDsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLUBAIC0yNDk1LDE4ICsyNTAyLDIyIEBAIHl5NDg6Ci0gCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTQ5OwotIAlpZiAoeXljaCA8PSAnOScpIGdvdG8geXk1NDsKLSB5eTQ5OgotKyNsaW5lIDE3NTcgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlnb3RvIHN0ZDsKLSAJfQotKyNsaW5lIDI1MTAgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk1MDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlnb3RvIHl5NDk7Ci0geXk1MToKLSAJKytZWUNVUlNPUjsKLSsjbGluZSAxNzYyICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJcy0+cG9zID0gY3Vyc29yOyBzLT5saW5lKys7Ci0gCQlnb3RvIHN0ZDsKLSAJfQotKyNsaW5lIDI1MjEgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk1MzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlnb3RvIHl5MTI7Ci1AQCAtMjY5MywyMyArMjcwNCwyMyBAQCB5eTU2OgotIAkJCQkJfQotIAkJCQl9IGVsc2UgewotIAkJCQkJaWYgKHl5YWNjZXB0ID09IDI4KSB7Ci0tCQkJCQkJZ290byB5eTEzNzc7Ci0rCQkJCQkJZ290byB5eTEzNzk7Ci0gCQkJCQl9IGVsc2UgewotLQkJCQkJCWdvdG8geXkxNDE1OwotKwkJCQkJCWdvdG8geXkxNDE3OwotIAkJCQkJfQotIAkJCQl9Ci0gCQkJfSBlbHNlIHsKLSAJCQkJaWYgKHl5YWNjZXB0IDw9IDMxKSB7Ci0gCQkJCQlpZiAoeXlhY2NlcHQgPT0gMzApIHsKLS0JCQkJCQlnb3RvIHl5MTQxODsKLSsJCQkJCQlnb3RvIHl5MTQyMDsKLSAJCQkJCX0gZWxzZSB7Ci0tCQkJCQkJZ290byB5eTE0OTg7Ci0rCQkJCQkJZ290byB5eTE1MDA7Ci0gCQkJCQl9Ci0gCQkJCX0gZWxzZSB7Ci0gCQkJCQlpZiAoeXlhY2NlcHQgPT0gMzIpIHsKLS0JCQkJCQlnb3RvIHl5MTUwNjsKLSsJCQkJCQlnb3RvIHl5MTUwODsKLSAJCQkJCX0gZWxzZSB7Ci0tCQkJCQkJZ290byB5eTE1Mjk7Ci0rCQkJCQkJZ290byB5eTE1MzE7Ci0gCQkJCQl9Ci0gCQkJCX0KLSAJCQl9Ci1AQCAtMjkyMCw2ICsyOTMxLDcgQEAgeXk3MzoKLSAJaWYgKHl5Y2ggPT0gJ1MnKSBnb3RvIHl5NzU7Ci0gCWlmICh5eWNoID09ICdzJykgZ290byB5eTc1OwotIHl5NzQ6Ci0rI2xpbmUgMTc0MSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCXRpbWVsaWJfdWxsIGk7Ci0gCQlERUJVR19PVVRQVVQoInJlbGF0aXZlIik7Ci1AQCAtMjkzNCw2ICsyOTQ2LDcgQEAgeXk3NDoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfUkVMQVRJVkU7Ci0gCX0KLSsjbGluZSAyOTUwICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NzU6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPT0gJ0QnKSBnb3RvIHl5NzY7Ci1AQCAtMzcxOSw2ICszNzMyLDcgQEAgeXkxOTA6Ci0gCQl9Ci0gCX0KLSB5eTE5MToKLSsjbGluZSAxNjA0ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJY29uc3QgdGltZWxpYl9yZWx1bml0KiByZWx1bml0OwotIAkJREVCVUdfT1VUUFVUKCJkYXl0ZXh0Iik7Ci1AQCAtMzczNSw2ICszNzQ5LDcgQEAgeXkxOTE6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1dFRUtEQVk7Ci0gCX0KLSsjbGluZSAzNzUzICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5MTkyOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdLJykgewotQEAgLTQyMjcsNiArNDI0Miw3IEBAIHl5MjE3OgotIAkJfQotIAl9Ci0geXkyMTg6Ci0rI2xpbmUgMTY2MyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgibW9udGh0ZXh0Iik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtNDIzNSw2ICs0MjUxLDcgQEAgeXkyMTg6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0RBVEVfVEVYVDsKLSAJfQotKyNsaW5lIDQyNTUgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXkyMTk6Ci0gCSsrWVlDVVJTT1I7Ci0gCWlmICgoWVlMSU1JVCAtIFlZQ1VSU09SKSA8IDIzKSBZWUZJTEwoMjMpOwotQEAgLTQ0NjksNiArNDQ4Niw3IEBAIHl5MjMxOgotIAlpZiAoeXljaCA9PSAndCcpIGdvdG8geXkzMTk7Ci0gCWdvdG8geXkyMzc7Ci0geXkyMzI6Ci0rI2xpbmUgMTQwOSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCWludCBsZW5ndGggPSAwOwotIAkJREVCVUdfT1VUUFVUKCJkYXRldGV4dHVhbCB8IGRhdGVub3llYXIiKTsKLUBAIC00NDgxLDYgKzQ0OTksNyBAQCB5eTIzMjoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfREFURV9URVhUOwotIAl9Ci0rI2xpbmUgNDUwMyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTIzMzoKLSAJeXlhY2NlcHQgPSA2OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotQEAgLTQ1OTMsNiArNDYxMiw3IEBAIHl5MjQ1OgotIAkJaWYgKHl5Y2ggPD0gJzonKSBnb3RvIHl5MjQ4OwotIAl9Ci0geXkyNDY6Ci0rI2xpbmUgMTcxMSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCWludCB0el9ub3RfZm91bmQ7Ci0gCQlERUJVR19PVVRQVVQoImRhdGVzaG9ydHdpdGh0aW1lc2hvcnQgfCBkYXRlc2hvcnR3aXRodGltZWxvbmcgfCBkYXRlc2hvcnR3aXRodGltZWxvbmd0eiIpOwotQEAgLTQ2MjEsNiArNDY0MSw3IEBAIHl5MjQ2OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9TSE9SVERBVEVfV0lUSF9USU1FOwotIAl9Ci0rI2xpbmUgNDY0NSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTI0NzoKLSAJeXlhY2NlcHQgPSA3OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotQEAgLTQ4OTMsNiArNDkxNCw3IEBAIHl5MjY5OgotIAl9Ci0geXkyNzA6Ci0gCSsrWVlDVVJTT1I7Ci0rI2xpbmUgMTY4NyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgiZGF0ZXNob3J0d2l0aHRpbWVzaG9ydDEyIHwgZGF0ZXNob3J0d2l0aHRpbWVsb25nMTIiKTsKLSAJCVRJTUVMSUJfSU5JVDsKLUBAIC00OTE1LDYgKzQ5MzcsNyBAQCB5eTI3MDoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfU0hPUlREQVRFX1dJVEhfVElNRTsKLSAJfQotKyNsaW5lIDQ5NDEgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXkyNzI6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gMHgxRikgewotQEAgLTU0NzAsNiArNTQ5Myw3IEBAIHl5MzIwOgotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk1NjsKLSAJaWYgKHl5Y2ggPj0gJzonKSBnb3RvIHl5NTY7Ci0gCSsrWVlDVVJTT1I7Ci0rI2xpbmUgMTM4MSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCWludCBsZW5ndGggPSAwOwotIAkJREVCVUdfT1VUUFVUKCJkYXRlbm9kYXkiKTsKLUBAIC01NDgyLDYgKzU1MDYsNyBAQCB5eTMyMDoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfREFURV9OT19EQVk7Ci0gCX0KLSsjbGluZSA1NTEwICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5MzIzOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICc5JykgewotQEAgLTU3MDQsNiArNTcyOSw3IEBAIHl5MzI3OgotIAlpZiAoKHl5Y2ggPSAqWVlDVVJTT1IpIDw9ICcvJykgZ290byB5eTMzMDsKLSAJaWYgKHl5Y2ggPD0gJzknKSBnb3RvIHl5MzMxOwotIHl5MzMwOgotKyNsaW5lIDE1MjUgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlpbnQgbGVuZ3RoID0gMDsKLSAJCURFQlVHX09VVFBVVCgicGd0ZXh0c2hvcnQiKTsKLUBAIC01NzE2LDYgKzU3NDIsNyBAQCB5eTMzMDoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfUEdfVEVYVDsKLSAJfQotKyNsaW5lIDU3NDYgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXkzMzE6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MzMwOwotQEAgLTYyNzAsNiArNjI5Nyw3IEBAIHl5MzU2OgotIAkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAl9Ci0geXkzNTc6Ci0rI2xpbmUgMTU4MyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgiYWdvIik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtNjI4OSw2ICs2MzE3LDcgQEAgeXkzNTc6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0FHTzsKLSAJfQotKyNsaW5lIDYzMjEgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXkzNTg6Ci0gCXl5YWNjZXB0ID0gNTsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLUBAIC04MDA5LDYgKzgwMzgsNyBAQCB5eTQxNzoKLSB5eTQxODoKLSAJKytZWUNVUlNPUjsKLSB5eTQxOToKLSsjbGluZSAxMjg2ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJREVCVUdfT1VUUFVUKCJpc284NjAxZGF0ZTQgfCBpc284NjAxZGF0ZTIgfCBpc284NjAxZGF0ZXNsYXNoIHwgZGF0ZXNsYXNoIik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtODAxOSw2ICs4MDQ5LDcgQEAgeXk0MTk6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0lTT19EQVRFOwotIAl9Ci0rI2xpbmUgODA1MyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTQyMDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotQEAgLTg2NDEsNiArODY3Miw3IEBAIHl5NDM5OgotIAkJfQotIAl9Ci0geXk0NDA6Ci0rI2xpbmUgMTQyMyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgiZGF0ZW5veWVhcnJldiIpOwotIAkJVElNRUxJQl9JTklUOwotQEAgLTg2NTEsNiArODY4Myw3IEBAIHl5NDQwOgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9EQVRFX1RFWFQ7Ci0gCX0KLSsjbGluZSA4Njg3ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NDQxOgotIAl5eWFjY2VwdCA9IDk7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci1AQCAtODc3OCw2ICs4ODExLDcgQEAgeXk0NTA6Ci0gCX0KLSB5eTQ1MjoKLSAJKytZWUNVUlNPUjsKLSsjbGluZSAxMTQxICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJREVCVUdfT1VUUFVUKCJ0aW1ldGlueTEyIHwgdGltZXNob3J0MTIgfCB0aW1lbG9uZzEyIik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtODc5Myw2ICs4ODI3LDcgQEAgeXk0NTI6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1RJTUUxMjsKLSAJfQotKyNsaW5lIDg4MzEgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk0NTQ6Ci0gCXl5YWNjZXB0ID0gMTA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci1AQCAtODgwMyw2ICs4ODM4LDcgQEAgeXk0NTQ6Ci0gCQlpZiAoeXljaCA8PSAnOicpIGdvdG8geXk0NTc7Ci0gCX0KLSB5eTQ1NToKLSsjbGluZSAxMTc4ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJaW50IHR6X25vdF9mb3VuZDsKLSAJCURFQlVHX09VVFBVVCgidGltZXNob3J0MjQgfCB0aW1lbG9uZzI0IHwgaXNvODYwMWxvbmciKTsKLUBAIC04ODI3LDYgKzg4NjMsNyBAQCB5eTQ1NToKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfVElNRTI0X1dJVEhfWk9ORTsKLSAJfQotKyNsaW5lIDg4NjcgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk0NTY6Ci0gCXl5YWNjZXB0ID0gMTA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci1AQCAtOTEwMyw2ICs5MTQwLDcgQEAgeXk0ODU6Ci0gCX0KLSB5eTQ4NzoKLSAJKytZWUNVUlNPUjsKLSsjbGluZSAxMTU4ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJREVCVUdfT1VUUFVUKCJtc3NxbHRpbWUiKTsKLSAJCVRJTUVMSUJfSU5JVDsKLUBAIC05MTIxLDYgKzkxNTksNyBAQCB5eTQ4NzoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfVElNRTI0X1dJVEhfWk9ORTsKLSAJfQotKyNsaW5lIDkxNjMgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk0ODk6Ci0gCXl5YWNjZXB0ID0gMTA7Ci0gCVlZTUFSS0VSID0gKytZWUNVUlNPUjsKLUBAIC05MjE1LDYgKzkyNTQsNyBAQCB5eTQ5ODoKLSAJaWYgKCh5eWNoID0gKllZQ1VSU09SKSA8PSAnLycpIGdvdG8geXk0OTk7Ci0gCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTUwNTsKLSB5eTQ5OToKLSsjbGluZSAxMzQwICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJaW50IGxlbmd0aCA9IDA7Ci0gCQlERUJVR19PVVRQVVQoImRhdGVmdWxsIik7Ci1AQCAtOTIyOCw2ICs5MjY4LDcgQEAgeXk0OTk6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0RBVEVfRlVMTDsKLSAJfQotKyNsaW5lIDkyNzIgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk1MDA6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPT0gJ00nKSBnb3RvIHl5NTAxOwotQEAgLTk4OTEsNiArOTkzMiw3IEBAIHl5NTY5OgotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk1NjsKLSAJaWYgKHl5Y2ggPj0gJzonKSBnb3RvIHl5NTY7Ci0gCSsrWVlDVVJTT1I7Ci0rI2xpbmUgMTM1NSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgicG9pbnRlZCBkYXRlIFlZWVkiKTsKLSAJCVRJTUVMSUJfSU5JVDsKLUBAIC05OTAxLDYgKzk5NDMsNyBAQCB5eTU2OToKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfREFURV9GVUxMX1BPSU5URUQ7Ci0gCX0KLSsjbGluZSA5OTQ3ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NTcyOgotIAl5eWFjY2VwdCA9IDEwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotQEAgLTk5MzEsNiArOTk3NCw3IEBAIHl5NTc1OgotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk1NzY7Ci0gCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTU2OTsKLSB5eTU3NjoKLSsjbGluZSAxMzY3ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJaW50IGxlbmd0aCA9IDA7Ci0gCQlERUJVR19PVVRQVVQoInBvaW50ZWQgZGF0ZSBZWSIpOwotQEAgLTk5NDMsNiArOTk4Nyw3IEBAIHl5NTc2OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9EQVRFX0ZVTExfUE9JTlRFRDsKLSAJfQotKyNsaW5lIDk5OTEgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk1Nzc6Ci0gCXl5YWNjZXB0ID0gMTA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci1AQCAtMTA1MzgsNiArMTA1ODMsNyBAQCB5eTYyMDoKLSAJCX0KLSAJfQotIHl5NjIxOgotKyNsaW5lIDEzMjYgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlpbnQgbGVuZ3RoID0gMDsKLSAJCURFQlVHX09VVFBVVCgiZ251ZGF0ZXNob3J0Iik7Ci1AQCAtMTA1NTAsNiArMTA1OTYsNyBAQCB5eTYyMToKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfSVNPX0RBVEU7Ci0gCX0KLSsjbGluZSAxMDYwMCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTYyMjoKLSAJeXlhY2NlcHQgPSAxMjsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLUBAIC0xMDY0NSw2ICsxMDY5Miw3IEBAIHl5NjMwOgotIAkJfQotIAl9Ci0geXk2MzE6Ci0rI2xpbmUgMTI3MCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCWludCBsZW5ndGggPSAwOwotIAkJREVCVUdfT1VUUFVUKCJhbWVyaWNhbnNob3J0IHwgYW1lcmljYW4iKTsKLUBAIC0xMDY1OSw2ICsxMDcwNyw3IEBAIHl5NjMxOgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9BTUVSSUNBTjsKLSAJfQotKyNsaW5lIDEwNzExICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NjMyOgotIAl5eWFjY2VwdCA9IDEzOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotQEAgLTEwODU3LDYgKzEwOTA2LDcgQEAgeXk2NjQ6Ci0gCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTY2NzsKLSAJaWYgKHl5Y2ggPD0gJzonKSBnb3RvIHl5NjY4OwotIHl5NjY1OgotKyNsaW5lIDE1NTMgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlpbnQgdHpfbm90X2ZvdW5kOwotIAkJREVCVUdfT1VUUFVUKCJjbGYiKTsKLUBAIC0xMDg3Niw2ICsxMDkyNiw3IEBAIHl5NjY1OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9DTEY7Ci0gCX0KLSsjbGluZSAxMDkzMCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTY2NjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnNScpIHsKLUBAIC0xMTM2Miw2ICsxMTQxMyw3IEBAIHl5NzI3OgotIAkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5NjI3OwotIAl9Ci0geXk3Mjg6Ci0rI2xpbmUgMTI5OCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCWludCBsZW5ndGggPSAwOwotIAkJREVCVUdfT1VUUFVUKCJpc284NjAxZGF0ZTIiKTsKLUBAIC0xMTM3NCw2ICsxMTQyNiw3IEBAIHl5NzI4OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9JU09fREFURTsKLSAJfQotKyNsaW5lIDExNDMwICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NzI5OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoID09ICdDJykgZ290byB5eTczMDsKLUBAIC0xMTQwNCw2ICsxMTQ1Nyw3IEBAIHl5NzM0OgotIAlpZiAoeXljaCA+PSAnMicpIGdvdG8geXk1NjsKLSB5eTczNToKLSAJKytZWUNVUlNPUjsKLSsjbGluZSAxNTM5ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJaW50IGxlbmd0aCA9IDA7Ci0gCQlERUJVR19PVVRQVVQoInBndGV4dHJldmVyc2UiKTsKLUBAIC0xMTQxNiw2ICsxMTQ3MCw3IEBAIHl5NzM1OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9QR19URVhUOwotIAl9Ci0rI2xpbmUgMTE0NzQgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk3Mzc6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPT0gJ1YnKSBnb3RvIHl5NzMwOwotQEAgLTExNTY4LDYgKzExNjIzLDcgQEAgeXk3NDc6Ci0gCQl9Ci0gCX0KLSB5eTc0ODoKLSsjbGluZSAxNTc0ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJREVCVUdfT1VUUFVUKCJ5ZWFyNCIpOwotIAkJVElNRUxJQl9JTklUOwotQEAgLTExNTc1LDYgKzExNjMxLDcgQEAgeXk3NDg6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0NMRjsKLSAJfQotKyNsaW5lIDExNjM1ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NzQ5OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCXN3aXRjaCAoeXljaCkgewotQEAgLTExNzY5LDYgKzExODI2LDcgQEAgeXk3NTc6Ci0gCQlpZiAoeXljaCA8PSAnWCcpIGdvdG8geXk4NDg7Ci0gCX0KLSB5eTc1ODoKLSsjbGluZSAxMzk1ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJaW50IGxlbmd0aCA9IDA7Ci0gCQlERUJVR19PVVRQVVQoImRhdGVub2RheXJldiIpOwotQEAgLTExNzgxLDYgKzExODM5LDcgQEAgeXk3NTg6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0RBVEVfTk9fREFZOwotIAl9Ci0rI2xpbmUgMTE4NDMgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk3NTk6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPT0gJ0knKSBnb3RvIHl5ODkyOwotQEAgLTExOTgwLDYgKzEyMDM5LDcgQEAgeXk3Nzg6Ci0gCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTc3OTsKLSAJaWYgKHl5Y2ggPD0gJzcnKSBnb3RvIHl5NzgxOwotIHl5Nzc5OgotKyNsaW5lIDE1MDYgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQl0aW1lbGliX3NsbCB3LCBkOwotIAkJREVCVUdfT1VUUFVUKCJpc293ZWVrIik7Ci1AQCAtMTE5OTcsMTIgKzEyMDU3LDE0IEBAIHl5Nzc5OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9JU09fV0VFSzsKLSAJfQotKyNsaW5lIDEyMDYxICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5NzgwOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTU2OwotIAlpZiAoeXljaCA+PSAnOCcpIGdvdG8geXk1NjsKLSB5eTc4MToKLSAJKytZWUNVUlNPUjsKLSsjbGluZSAxNDg3ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJdGltZWxpYl9zbGwgdywgZDsKLSAJCURFQlVHX09VVFBVVCgiaXNvd2Vla2RheSIpOwotQEAgLTEyMDIwLDYgKzEyMDgyLDcgQEAgeXk3ODE6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0lTT19XRUVLOwotIAl9Ci0rI2xpbmUgMTIwODYgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXk3ODM6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5NjA7Ci1AQCAtMTIwODUsNiArMTIxNDgsNyBAQCB5eTc4NToKLSAJCX0KLSAJfQotIHl5Nzg2OgotKyNsaW5lIDE0NzMgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlpbnQgbGVuZ3RoID0gMDsKLSAJCURFQlVHX09VVFBVVCgicGd5ZG90ZCIpOwotQEAgLTEyMDk3LDYgKzEyMTYxLDcgQEAgeXk3ODY6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1BHX1lFQVJEQVk7Ci0gCX0KLSsjbGluZSAxMjE2NSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTc4NzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk2MDsKLUBAIC0xMjE3OCw2ICsxMjI0Myw3IEBAIHl5ODA1OgotIHl5ODA2OgotIAkrK1lZQ1VSU09SOwotIHl5ODA3OgotKyNsaW5lIDE0NDcgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlpbnQgdHpfbm90X2ZvdW5kOwotIAkJREVCVUdfT1VUUFVUKCJ4bWxycGMgfCB4bWxycGNub2NvbG9uIHwgc29hcCB8IHdkZHggfCBleGlmIik7Ci1AQCAtMTIyMDIsNiArMTIyNjgsNyBAQCB5eTgwNzoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfWE1MUlBDX1NPQVA7Ci0gCX0KLSsjbGluZSAxMjI3MiAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTgwODoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnMicpIHsKLUBAIC0xMjQ5MCw2ICsxMjU1Nyw3IEBAIHl5ODEyOgotIAkJfQotIAl9Ci0geXk4MTM6Ci0rI2xpbmUgMTQzNSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgiZGF0ZW5vY29sb24iKTsKLSAJCVRJTUVMSUJfSU5JVDsKLUBAIC0xMjUwMCw2ICsxMjU2OCw3IEBAIHl5ODEzOgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9EQVRFX05PQ09MT047Ci0gCX0KLSsjbGluZSAxMjU3MiAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTgxNDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnSCcpIHsKLUBAIC0xMzI5Myw2ICsxMzM2Miw3IEBAIHl5OTM3OgotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk5Mzg7Ci0gCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTk2MDsKLSB5eTkzODoKLSsjbGluZSAxMzEyICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJaW50IGxlbmd0aCA9IDA7Ci0gCQlERUJVR19PVVRQVVQoImdudWRhdGVzaG9ydGVyIik7Ci1AQCAtMTMzMDUsNiArMTMzNzUsNyBAQCB5eTkzODoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfSVNPX0RBVEU7Ci0gCX0KLSsjbGluZSAxMzM3OSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTkzOToKLSAJeXlhY2NlcHQgPSAyMTsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLUBAIC0xNDMwMyw2ICsxNDM3NCw3IEBAIHl5MTAzMDoKLSAJCX0KLSAJfQotIHl5MTAzMjoKLSsjbGluZSAxMjA0ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJREVCVUdfT1VUUFVUKCJnbnVub2NvbG9uIik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtMTQzMjQsNiArMTQzOTYsNyBAQCB5eTEwMzI6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0dOVV9OT0NPTE9OOwotIAl9Ci0rI2xpbmUgMTQ0MDAgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0geXkxMDMzOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTYwOwotQEAgLTE0NDEzLDYgKzE0NDg2LDcgQEAgeXkxMDM5OgotIAkJfQotIAl9Ci0geXkxMDQwOgotKyNsaW5lIDEyNTAgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlpbnQgdHpfbm90X2ZvdW5kOwotIAkJREVCVUdfT1VUUFVUKCJpc284NjAxbm9jb2xvbiIpOwotQEAgLTE0NDMxLDYgKzE0NTA1LDcgQEAgeXkxMDQwOgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9JU09fTk9DT0xPTjsKLSAJfQotKyNsaW5lIDE0NTA5ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5MTA0MToKLSAJeXlhY2NlcHQgPSAyNDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLUBAIC0xNTM2Miw2ICsxNTQzNyw3IEBAIHl5MTA4MzoKLSAJCX0KLSAJfQotIHl5MTA4NDoKLSsjbGluZSAxNjQ2ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJdGltZWxpYl9zbGwgaTsKLSAJCWludCAgICAgICAgIGJlaGF2aW9yID0gMDsKLUBAIC0xNTM3Nyw2ICsxNTQ1Myw3IEBAIHl5MTA4NDoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfUkVMQVRJVkU7Ci0gCX0KLSsjbGluZSAxNTQ1NyAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTEwODU6Ci0gCSsrWVlDVVJTT1I7Ci0gCWlmICgoWVlMSU1JVCAtIFlZQ1VSU09SKSA8IDIpIFlZRklMTCgyKTsKLUBAIC0xNTQxOCw2ICsxNTQ5NSw3IEBAIHl5MTA5MToKLSAJaWYgKHl5Y2ggIT0gJ2YnKSBnb3RvIHl5NTY7Ci0geXkxMDkyOgotIAkrK1lZQ1VSU09SOwotKyNsaW5lIDExMTkgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQl0aW1lbGliX3NsbCBpOwotIAkJaW50ICAgICAgICAgYmVoYXZpb3IgPSAwOwotQEAgLTE1NDM4LDYgKzE1NTE2LDcgQEAgeXkxMDkyOgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9XRUVLX0RBWV9PRl9NT05USDsKLSAJfQotKyNsaW5lIDE1NTIwICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5MTA5NDoKLSAJeXlhY2NlcHQgPSAyNTsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLUBAIC0xNTUzMCw2ICsxNTYwOSw3IEBAIHl5MTEwNzoKLSAJCX0KLSAJfQotIHl5MTEwODoKLSsjbGluZSAxNjIyICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJdGltZWxpYl9zbGwgaTsKLSAJCWludCAgICAgICAgIGJlaGF2aW9yID0gMDsKLUBAIC0xNTU1Miw2ICsxNTYzMiw3IEBAIHl5MTEwODoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfUkVMQVRJVkU7Ci0gCX0KLSsjbGluZSAxNTYzNiAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUuYyIKLSB5eTExMDk6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJZ290byB5eTEwODQ7Ci1AQCAtMTgyMDYsMTAgKzE4Mjg3LDI1IEBAIHl5MTI4MToKLSB5eTEyODM6Ci0gCXl5YWNjZXB0ID0gMjc7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0tCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTEyODc7Ci0tCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTEyODY7Ci0tCWdvdG8geXkxMjg3OwotKwlpZiAoeXljaCA8PSAnQCcpIHsKLSsJCWlmICh5eWNoIDw9IDB4MUYpIHsKLSsJCQlpZiAoeXljaCA9PSAnXHQnKSBnb3RvIHl5MTI4NzsKLSsJCX0gZWxzZSB7Ci0rCQkJaWYgKHl5Y2ggPD0gJyAnKSBnb3RvIHl5MTI4NzsKLSsJCQlpZiAoeXljaCA8PSAnLycpIGdvdG8geXkxMjg0OwotKwkJCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTEyODY7Ci0rCQl9Ci0rCX0gZWxzZSB7Ci0rCQlpZiAoeXljaCA8PSAnYCcpIHsKLSsJCQlpZiAoeXljaCA8PSAnQScpIGdvdG8geXkxMjg5OwotKwkJCWlmICh5eWNoID09ICdQJykgZ290byB5eTEyODk7Ci0rCQl9IGVsc2UgewotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEyODk7Ci0rCQkJaWYgKHl5Y2ggPT0gJ3AnKSBnb3RvIHl5MTI4OTsKLSsJCX0KLSsJfQotIHl5MTI4NDoKLSsjbGluZSAxMDk2ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJREVCVUdfT1VUUFVUKCJiYWNrb2YgfCBmcm9udG9mIik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtMTgyMzEsNjYgKzE4MzI3LDEwNCBAQCB5eTEyODQ6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX0xGX0RBWV9PRl9NT05USDsKLSAJfQotKyNsaW5lIDE4MzMxICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotIHl5MTI4NToKLSAJeXlhY2NlcHQgPSAyNzsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLS0JaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTI4NzsKLS0JaWYgKHl5Y2ggPj0gJzUnKSBnb3RvIHl5MTI4NzsKLSsJaWYgKHl5Y2ggPD0gJ0AnKSB7Ci0rCQlpZiAoeXljaCA8PSAweDFGKSB7Ci0rCQkJaWYgKHl5Y2ggPT0gJ1x0JykgZ290byB5eTEyODc7Ci0rCQkJZ290byB5eTEyODQ7Ci0rCQl9IGVsc2UgewotKwkJCWlmICh5eWNoIDw9ICcgJykgZ290byB5eTEyODc7Ci0rCQkJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTI4NDsKLSsJCQlpZiAoeXljaCA+PSAnNScpIGdvdG8geXkxMjg0OwotKwkJfQotKwl9IGVsc2UgewotKwkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTI4OTsKLSsJCQlpZiAoeXljaCA9PSAnUCcpIGdvdG8geXkxMjg5OwotKwkJCWdvdG8geXkxMjg0OwotKwkJfSBlbHNlIHsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMjg5OwotKwkJCWlmICh5eWNoID09ICdwJykgZ290byB5eTEyODk7Ci0rCQkJZ290byB5eTEyODQ7Ci0rCQl9Ci0rCX0KLSB5eTEyODY6Ci0gCXl5YWNjZXB0ID0gMjc7Ci0tCVlZTUFSS0VSID0gKytZWUNVUlNPUjsKLSsJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSsJaWYgKHl5Y2ggPD0gJ0EnKSB7Ci0rCQlpZiAoeXljaCA8PSAweDFGKSB7Ci0rCQkJaWYgKHl5Y2ggIT0gJ1x0JykgZ290byB5eTEyODQ7Ci0rCQl9IGVsc2UgewotKwkJCWlmICh5eWNoIDw9ICcgJykgZ290byB5eTEyODc7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MTI4NDsKLSsJCQlnb3RvIHl5MTI4OTsKLSsJCX0KLSsJfSBlbHNlIHsKLSsJCWlmICh5eWNoIDw9ICdgJykgewotKwkJCWlmICh5eWNoID09ICdQJykgZ290byB5eTEyODk7Ci0rCQkJZ290byB5eTEyODQ7Ci0rCQl9IGVsc2UgewotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEyODk7Ci0rCQkJaWYgKHl5Y2ggPT0gJ3AnKSBnb3RvIHl5MTI4OTsKLSsJCQlnb3RvIHl5MTI4NDsKLSsJCX0KLSsJfQotK3l5MTI4NzoKLSsJKytZWUNVUlNPUjsKLSAJaWYgKChZWUxJTUlUIC0gWVlDVVJTT1IpIDwgNSkgWVlGSUxMKDUpOwotIAl5eWNoID0gKllZQ1VSU09SOwotLXl5MTI4NzoKLSAJaWYgKHl5Y2ggPD0gJ0EnKSB7Ci0gCQlpZiAoeXljaCA8PSAweDFGKSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ1x0JykgZ290byB5eTEyODY7Ci0tCQkJZ290byB5eTEyODQ7Ci0rCQkJaWYgKHl5Y2ggPT0gJ1x0JykgZ290byB5eTEyODc7Ci0rCQkJZ290byB5eTU2OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnICcpIGdvdG8geXkxMjg2OwotLQkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTEyODQ7Ci0rCQkJaWYgKHl5Y2ggPD0gJyAnKSBnb3RvIHl5MTI4NzsKLSsJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXk1NjsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdgJykgewotLQkJCWlmICh5eWNoICE9ICdQJykgZ290byB5eTEyODQ7Ci0rCQkJaWYgKHl5Y2ggIT0gJ1AnKSBnb3RvIHl5NTY7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEyODg7Ci0tCQkJaWYgKHl5Y2ggIT0gJ3AnKSBnb3RvIHl5MTI4NDsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMjg5OwotKwkJCWlmICh5eWNoICE9ICdwJykgZ290byB5eTU2OwotIAkJfQotIAl9Ci0teXkxMjg4OgotK3l5MTI4OToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnTCcpIHsKLSAJCWlmICh5eWNoICE9ICcuJykgZ290byB5eTU2OwotIAl9IGVsc2UgewotLQkJaWYgKHl5Y2ggPD0gJ00nKSBnb3RvIHl5MTI5MDsKLS0JCWlmICh5eWNoID09ICdtJykgZ290byB5eTEyOTA7Ci0rCQlpZiAoeXljaCA8PSAnTScpIGdvdG8geXkxMjkxOwotKwkJaWYgKHl5Y2ggPT0gJ20nKSBnb3RvIHl5MTI5MTsKLSAJCWdvdG8geXk1NjsKLSAJfQotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdNJykgZ290byB5eTEyOTA7Ci0rCWlmICh5eWNoID09ICdNJykgZ290byB5eTEyOTE7Ci0gCWlmICh5eWNoICE9ICdtJykgZ290byB5eTU2OwotLXl5MTI5MDoKLSt5eTEyOTE6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gMHgxRikgewotLQkJaWYgKHl5Y2ggPD0gMHgwMCkgZ290byB5eTEyOTI7Ci0tCQlpZiAoeXljaCA9PSAnXHQnKSBnb3RvIHl5MTI5MjsKLSsJCWlmICh5eWNoIDw9IDB4MDApIGdvdG8geXkxMjkzOwotKwkJaWYgKHl5Y2ggPT0gJ1x0JykgZ290byB5eTEyOTM7Ci0gCQlnb3RvIHl5NTY7Ci0gCX0gZWxzZSB7Ci0tCQlpZiAoeXljaCA8PSAnICcpIGdvdG8geXkxMjkyOwotKwkJaWYgKHl5Y2ggPD0gJyAnKSBnb3RvIHl5MTI5MzsKLSAJCWlmICh5eWNoICE9ICcuJykgZ290byB5eTU2OwotIAl9Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1x0JykgewotLQkJaWYgKHl5Y2ggPD0gMHgwMCkgZ290byB5eTEyOTI7Ci0rCQlpZiAoeXljaCA8PSAweDAwKSBnb3RvIHl5MTI5MzsKLSAJCWlmICh5eWNoIDw9IDB4MDgpIGdvdG8geXk1NjsKLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoICE9ICcgJykgZ290byB5eTU2OwotIAl9Ci0teXkxMjkyOgotK3l5MTI5MzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlnb3RvIHl5MTI4NDsKLS15eTEyOTM6Ci0reXkxMjk0OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdCJykgewotQEAgLTE4MzE0LDEzICsxODQ0OCwxMyBAQCB5eTEyOTM6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzE7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2MnKSBnb3RvIHl5MTI5NDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2MnKSBnb3RvIHl5MTI5NTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcxOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEyOTQ6Ci0reXkxMjk1OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdKJykgewotQEAgLTE4MzQ0LDEzICsxODQ3OCwxMyBAQCB5eTEyOTQ6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2snKSBnb3RvIHl5MTI5NTsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2snKSBnb3RvIHl5MTI5NjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEyOTU6Ci0reXkxMjk2OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICcuJykgewotQEAgLTE4Mzc1LDcgKzE4NTA5LDcgQEAgeXkxMjk1OgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMjk2OgotK3l5MTI5NzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnUycpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE4MzkxLDEyICsxODUyNSwxMiBAQCB5eTEyOTY6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY2OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxMjk3OwotKwkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTEyOTg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY2OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMjk3OgotK3l5MTI5ODoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnVCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE4NDEyLDEyICsxODU0NiwxMiBAQCB5eTEyOTc6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxMjk4OwotKwkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEyOTk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMjk4OgotK3l5MTI5OToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnKCcpIHsKLUBAIC0xODQzOCwxOSArMTg1NzIsMTkgQEAgeXkxMjk4OgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMjk5OgotK3l5MTMwMDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnRCcpIGdvdG8geXkxMzAwOwotKwlpZiAoeXljaCA9PSAnRCcpIGdvdG8geXkxMzAxOwotIAlpZiAoeXljaCAhPSAnZCcpIGdvdG8geXkxMDcwOwotLXl5MTMwMDoKLSt5eTEzMDE6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJ0EnKSBnb3RvIHl5MTMwMTsKLSsJaWYgKHl5Y2ggPT0gJ0EnKSBnb3RvIHl5MTMwMjsKLSAJaWYgKHl5Y2ggIT0gJ2EnKSBnb3RvIHl5NTY7Ci0teXkxMzAxOgotK3l5MTMwMjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnWScpIGdvdG8geXkxMzAyOwotKwlpZiAoeXljaCA9PSAnWScpIGdvdG8geXkxMzAzOwotIAlpZiAoeXljaCAhPSAneScpIGdvdG8geXk1NjsKLS15eTEzMDI6Ci0reXkxMzAzOgotIAl5eWFjY2VwdCA9IDI1OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUicpIHsKLUBAIC0xODQ2MSwxNCArMTg1OTUsMTUgQEAgeXkxMzAyOgotIAkJZ290byB5eTEwODQ7Ci0gCX0KLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnTycpIGdvdG8geXkxMzA0OwotKwlpZiAoeXljaCA9PSAnTycpIGdvdG8geXkxMzA1OwotIAlpZiAoeXljaCAhPSAnbycpIGdvdG8geXk1NjsKLS15eTEzMDQ6Ci0reXkxMzA1OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdGJykgZ290byB5eTEzMDU7Ci0rCWlmICh5eWNoID09ICdGJykgZ290byB5eTEzMDY7Ci0gCWlmICh5eWNoICE9ICdmJykgZ290byB5eTU2OwotLXl5MTMwNToKLSt5eTEzMDY6Ci0gCSsrWVlDVVJTT1I7Ci0rI2xpbmUgMTA3OSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgiZmlyc3RkYXlvZiB8IGxhc3RkYXlvZiIpOwotIAkJVElNRUxJQl9JTklUOwotQEAgLTE4NDg0LDcgKzE4NjE5LDggQEAgeXkxMzA1OgotIAkJVElNRUxJQl9ERUlOSVQ7Ci0gCQlyZXR1cm4gVElNRUxJQl9MRl9EQVlfT0ZfTU9OVEg7Ci0gCX0KLS15eTEzMDc6Ci0rI2xpbmUgMTg2MjMgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0reXkxMzA4OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdSJykgewotQEAgLTE4NDk5LDcgKzE4NjM1LDcgQEAgeXkxMzA3OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1MnKSBnb3RvIHl5MTI5NzsKLSsJCQlpZiAoeXljaCA8PSAnUycpIGdvdG8geXkxMjk4OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NjsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMTg1MDgsMTMgKzE4NjQ0LDEzIEBAIHl5MTMwNzoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3MTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxMzA4OwotKwkJCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxMzA5OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzE7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTMwODoKLSt5eTEzMDk6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1MnKSB7Ci1AQCAtMTg1MjksNyArMTg2NjUsNyBAQCB5eTEzMDg6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxMjk4OwotKwkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTEyOTk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0xODUzOCwyMCArMTg2NzQsMjAgQEAgeXkxMzA4OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzMDk7Ci0rCQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzMTA7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzA5OgotK3l5MTMxMDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnLScpIHsKLSAJCWlmICh5eWNoIDw9ICcgJykgewotIAkJCWlmICh5eWNoID09ICdcdCcpIGdvdG8geXkxMDY5OwotIAkJCWlmICh5eWNoIDw9IDB4MUYpIGdvdG8geXkzOwotLQkJCWdvdG8geXkxMjk5OwotKwkJCWdvdG8geXkxMzAwOwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCQkJaWYgKHl5Y2ggPD0gJywnKSBnb3RvIHl5MzsKLUBAIC0xODU3Myw3ICsxODcwOSw3IEBAIHl5MTMwOToKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzMTA6Ci0reXkxMzExOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdCJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMTg1ODIsNyArMTg3MTgsNyBAQCB5eTEzMTA6Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTY2OwotLQkJCWdvdG8geXkxMzQ2OwotKwkJCWdvdG8geXkxMzQ4OwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2EnKSB7Ci1AQCAtMTg1OTAsMzUgKzE4NzI2LDM1IEBAIHl5MTMxMDoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjY7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdiJykgZ290byB5eTEzNDY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2InKSBnb3RvIHl5MTM0ODsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjY7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzMTE6Ci0reXkxMzEyOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdSJykgewotIAkJaWYgKHl5Y2ggPD0gJ0AnKSB7Ci0gCQkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAkJCWdvdG8geXkzOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA9PSAnRicpIGdvdG8geXkxMzM2OwotKwkJCWlmICh5eWNoID09ICdGJykgZ290byB5eTEzMzg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1EnKSBnb3RvIHl5MTY2OwotLQkJCWdvdG8geXkxMzM1OwotKwkJCWdvdG8geXkxMzM3OwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2YnKSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ2UnKSBnb3RvIHl5MTY2OwotLQkJCWdvdG8geXkxMzM2OwotKwkJCWdvdG8geXkxMzM4OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA9PSAncicpIGdvdG8geXkxMzM1OwotKwkJCWlmICh5eWNoID09ICdyJykgZ290byB5eTEzMzc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY2OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzEyOgotK3l5MTMxMzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnVScpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE4NjI3LDcgKzE4NzYzLDcgQEAgeXkxMzEyOgotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotIAkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTE2NjsKLS0JCQlnb3RvIHl5MTMzMjsKLSsJCQlnb3RvIHl5MTMzNDsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICd0JykgewotQEAgLTE4NjM1LDE5ICsxODc3MSwxOSBAQCB5eTEzMTI6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY2OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAndScpIGdvdG8geXkxMzMyOwotKwkJCWlmICh5eWNoIDw9ICd1JykgZ290byB5eTEzMzQ7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY2OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzEzOgotK3l5MTMxNDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnTycpIHsKLSAJCWlmICh5eWNoIDw9ICdAJykgewotIAkJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ0knKSBnb3RvIHl5MTMxNTsKLSsJCQlpZiAoeXljaCA9PSAnSScpIGdvdG8geXkxMzE2OwotIAkJCWlmICh5eWNoIDw9ICdOJykgZ290byB5eTE2NjsKLSAJCX0KLSAJfSBlbHNlIHsKLUBAIC0xODY1NSwxNCArMTg3OTEsMTQgQEAgeXkxMzEzOgotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NjsKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWlmICh5eWNoIDw9ICdoJykgZ290byB5eTE2NjsKLS0JCQlnb3RvIHl5MTMxNTsKLSsJCQlnb3RvIHl5MTMxNjsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ28nKSBnb3RvIHl5MTMxNDsKLSsJCQlpZiAoeXljaCA9PSAnbycpIGdvdG8geXkxMzE1OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTMxNDoKLSt5eTEzMTU6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ04nKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0xODY3MSw3ICsxODgwNyw3IEBAIHl5MTMxNDoKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLSAJCQlpZiAoeXljaCA8PSAnTScpIGdvdG8geXkxNjc7Ci0tCQkJZ290byB5eTEzMTg7Ci0rCQkJZ290byB5eTEzMTk7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnbScpIHsKLUBAIC0xODY3OSwxMiArMTg4MTUsMTIgQEAgeXkxMzE0OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTMxODsKLSsJCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxMzE5OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NzsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTMxNToKLSt5eTEzMTY6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0QnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0xODcwMCwxMiArMTg4MzYsMTIgQEAgeXkxMzE1OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE5MTsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnZCcpIGdvdG8geXkxMzE2OwotKwkJCWlmICh5eWNoIDw9ICdkJykgZ290byB5eTEzMTc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkxOTE7Ci0gCQl9Ci0gCX0KLS15eTEzMTY6Ci0reXkxMzE3OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdBJykgewotIAkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotQEAgLTE4NzE1LDEyICsxODg1MSwxMiBAQCB5eTEzMTY6Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY4OwotIAkJCWdvdG8geXkzOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMzE3OwotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEzMTg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzE3OgotK3l5MTMxODoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnWScpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE4NzQyLDcgKzE4ODc4LDcgQEAgeXkxMzE3OgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzE4OgotK3l5MTMxOToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnVCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE4NzU4LDE2ICsxODg5NCwxNiBAQCB5eTEzMTg6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY4OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxMzE5OwotKwkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzMjA7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzE5OgotK3l5MTMyMDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnKScpIHsKLS0JCWlmICh5eWNoID09ICcgJykgZ290byB5eTEzMjA7Ci0rCQlpZiAoeXljaCA9PSAnICcpIGdvdG8geXkxMzIxOwotIAkJaWYgKHl5Y2ggPD0gJygnKSBnb3RvIHl5MzsKLSAJCWdvdG8geXkxNjQ7Ci0gCX0gZWxzZSB7Ci1AQCAtMTg3ODAsODggKzE4OTE2LDE0MyBAQCB5eTEzMTk6Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzMjA6Ci0reXkxMzIxOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdPJykgZ290byB5eTEzMjE7Ci0rCWlmICh5eWNoID09ICdPJykgZ290byB5eTEzMjI7Ci0gCWlmICh5eWNoICE9ICdvJykgZ290byB5eTU2OwotLXl5MTMyMToKLSt5eTEzMjI6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJ0YnKSBnb3RvIHl5MTMyMjsKLSsJaWYgKHl5Y2ggPT0gJ0YnKSBnb3RvIHl5MTMyMzsKLSAJaWYgKHl5Y2ggIT0gJ2YnKSBnb3RvIHl5NTY7Ci0teXkxMzIyOgotK3l5MTMyMzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCAhPSAnICcpIGdvdG8geXk1NjsKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk1NjsKLS0JaWYgKHl5Y2ggPD0gJzEnKSBnb3RvIHl5MTMyNDsKLS0JaWYgKHl5Y2ggPD0gJzInKSBnb3RvIHl5MTMyNTsKLS0JaWYgKHl5Y2ggPD0gJzknKSBnb3RvIHl5MTMyNjsKLSsJaWYgKHl5Y2ggPD0gJzEnKSBnb3RvIHl5MTMyNTsKLSsJaWYgKHl5Y2ggPD0gJzInKSBnb3RvIHl5MTMyNjsKLSsJaWYgKHl5Y2ggPD0gJzknKSBnb3RvIHl5MTMyNzsKLSAJZ290byB5eTU2OwotLXl5MTMyNDoKLS0JeXlhY2NlcHQgPSAyNzsKLS0JeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLS0JaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTMyNzsKLS0JaWYgKHl5Y2ggPD0gJzknKSBnb3RvIHl5MTMyNjsKLS0JZ290byB5eTEzMjc7Ci0geXkxMzI1OgotIAl5eWFjY2VwdCA9IDI3OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotLQlpZiAoeXljaCA8PSAnLycpIGdvdG8geXkxMzI3OwotLQlpZiAoeXljaCA+PSAnNScpIGdvdG8geXkxMzI3OwotKwlpZiAoeXljaCA8PSAnQCcpIHsKLSsJCWlmICh5eWNoIDw9IDB4MUYpIHsKLSsJCQlpZiAoeXljaCA9PSAnXHQnKSBnb3RvIHl5MTMyODsKLSsJCQlnb3RvIHl5MTI4NDsKLSsJCX0gZWxzZSB7Ci0rCQkJaWYgKHl5Y2ggPD0gJyAnKSBnb3RvIHl5MTMyODsKLSsJCQlpZiAoeXljaCA8PSAnLycpIGdvdG8geXkxMjg0OwotKwkJCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTEzMjc7Ci0rCQkJZ290byB5eTEyODQ7Ci0rCQl9Ci0rCX0gZWxzZSB7Ci0rCQlpZiAoeXljaCA8PSAnYCcpIHsKLSsJCQlpZiAoeXljaCA8PSAnQScpIGdvdG8geXkxMzMwOwotKwkJCWlmICh5eWNoID09ICdQJykgZ290byB5eTEzMzA7Ci0rCQkJZ290byB5eTEyODQ7Ci0rCQl9IGVsc2UgewotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEzMzA7Ci0rCQkJaWYgKHl5Y2ggPT0gJ3AnKSBnb3RvIHl5MTMzMDsKLSsJCQlnb3RvIHl5MTI4NDsKLSsJCX0KLSsJfQotIHl5MTMyNjoKLSAJeXlhY2NlcHQgPSAyNzsKLS0JWVlNQVJLRVIgPSArK1lZQ1VSU09SOwotLQlpZiAoKFlZTElNSVQgLSBZWUNVUlNPUikgPCA1KSBZWUZJTEwoNSk7Ci0tCXl5Y2ggPSAqWVlDVVJTT1I7Ci0rCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0rCWlmICh5eWNoIDw9ICdAJykgewotKwkJaWYgKHl5Y2ggPD0gMHgxRikgewotKwkJCWlmICh5eWNoID09ICdcdCcpIGdvdG8geXkxMzI4OwotKwkJCWdvdG8geXkxMjg0OwotKwkJfSBlbHNlIHsKLSsJCQlpZiAoeXljaCA8PSAnICcpIGdvdG8geXkxMzI4OwotKwkJCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTEyODQ7Ci0rCQkJaWYgKHl5Y2ggPj0gJzUnKSBnb3RvIHl5MTI4NDsKLSsJCX0KLSsJfSBlbHNlIHsKLSsJCWlmICh5eWNoIDw9ICdgJykgewotKwkJCWlmICh5eWNoIDw9ICdBJykgZ290byB5eTEzMzA7Ci0rCQkJaWYgKHl5Y2ggPT0gJ1AnKSBnb3RvIHl5MTMzMDsKLSsJCQlnb3RvIHl5MTI4NDsKLSsJCX0gZWxzZSB7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTMzMDsKLSsJCQlpZiAoeXljaCA9PSAncCcpIGdvdG8geXkxMzMwOwotKwkJCWdvdG8geXkxMjg0OwotKwkJfQotKwl9Ci0geXkxMzI3OgotKwl5eWFjY2VwdCA9IDI3OwotKwl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnQScpIHsKLSAJCWlmICh5eWNoIDw9IDB4MUYpIHsKLS0JCQlpZiAoeXljaCA9PSAnXHQnKSBnb3RvIHl5MTMyNjsKLS0JCQlnb3RvIHl5MTI4NDsKLSsJCQlpZiAoeXljaCAhPSAnXHQnKSBnb3RvIHl5MTI4NDsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJyAnKSBnb3RvIHl5MTMyNjsKLSsJCQlpZiAoeXljaCA8PSAnICcpIGdvdG8geXkxMzI4OwotIAkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTEyODQ7Ci0rCQkJZ290byB5eTEzMzA7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnYCcpIHsKLS0JCQlpZiAoeXljaCAhPSAnUCcpIGdvdG8geXkxMjg0OwotKwkJCWlmICh5eWNoID09ICdQJykgZ290byB5eTEzMzA7Ci0rCQkJZ290byB5eTEyODQ7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEzMjg7Ci0tCQkJaWYgKHl5Y2ggIT0gJ3AnKSBnb3RvIHl5MTI4NDsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMzMwOwotKwkJCWlmICh5eWNoID09ICdwJykgZ290byB5eTEzMzA7Ci0rCQkJZ290byB5eTEyODQ7Ci0gCQl9Ci0gCX0KLSB5eTEzMjg6Ci0rCSsrWVlDVVJTT1I7Ci0rCWlmICgoWVlMSU1JVCAtIFlZQ1VSU09SKSA8IDUpIFlZRklMTCg1KTsKLSsJeXljaCA9ICpZWUNVUlNPUjsKLSsJaWYgKHl5Y2ggPD0gJ0EnKSB7Ci0rCQlpZiAoeXljaCA8PSAweDFGKSB7Ci0rCQkJaWYgKHl5Y2ggPT0gJ1x0JykgZ290byB5eTEzMjg7Ci0rCQkJZ290byB5eTU2OwotKwkJfSBlbHNlIHsKLSsJCQlpZiAoeXljaCA8PSAnICcpIGdvdG8geXkxMzI4OwotKwkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTU2OwotKwkJfQotKwl9IGVsc2UgewotKwkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0rCQkJaWYgKHl5Y2ggIT0gJ1AnKSBnb3RvIHl5NTY7Ci0rCQl9IGVsc2UgewotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEzMzA7Ci0rCQkJaWYgKHl5Y2ggIT0gJ3AnKSBnb3RvIHl5NTY7Ci0rCQl9Ci0rCX0KLSt5eTEzMzA6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0wnKSB7Ci0gCQlpZiAoeXljaCAhPSAnLicpIGdvdG8geXk1NjsKLSAJfSBlbHNlIHsKLS0JCWlmICh5eWNoIDw9ICdNJykgZ290byB5eTEzMzA7Ci0tCQlpZiAoeXljaCA9PSAnbScpIGdvdG8geXkxMzMwOwotKwkJaWYgKHl5Y2ggPD0gJ00nKSBnb3RvIHl5MTMzMjsKLSsJCWlmICh5eWNoID09ICdtJykgZ290byB5eTEzMzI7Ci0gCQlnb3RvIHl5NTY7Ci0gCX0KLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnTScpIGdvdG8geXkxMzMwOwotKwlpZiAoeXljaCA9PSAnTScpIGdvdG8geXkxMzMyOwotIAlpZiAoeXljaCAhPSAnbScpIGdvdG8geXk1NjsKLS15eTEzMzA6Ci0reXkxMzMyOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9IDB4MUYpIHsKLS0JCWlmICh5eWNoIDw9IDB4MDApIGdvdG8geXkxMjkyOwotLQkJaWYgKHl5Y2ggPT0gJ1x0JykgZ290byB5eTEyOTI7Ci0rCQlpZiAoeXljaCA8PSAweDAwKSBnb3RvIHl5MTI5MzsKLSsJCWlmICh5eWNoID09ICdcdCcpIGdvdG8geXkxMjkzOwotIAkJZ290byB5eTU2OwotIAl9IGVsc2UgewotLQkJaWYgKHl5Y2ggPD0gJyAnKSBnb3RvIHl5MTI5MjsKLSsJCWlmICh5eWNoIDw9ICcgJykgZ290byB5eTEyOTM7Ci0gCQlpZiAoeXljaCAhPSAnLicpIGdvdG8geXk1NjsKLSAJfQotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdcdCcpIHsKLS0JCWlmICh5eWNoIDw9IDB4MDApIGdvdG8geXkxMjkyOwotKwkJaWYgKHl5Y2ggPD0gMHgwMCkgZ290byB5eTEyOTM7Ci0gCQlpZiAoeXljaCA8PSAweDA4KSBnb3RvIHl5NTY7Ci0tCQlnb3RvIHl5MTI5MjsKLSsJCWdvdG8geXkxMjkzOwotIAl9IGVsc2UgewotLQkJaWYgKHl5Y2ggPT0gJyAnKSBnb3RvIHl5MTI5MjsKLSsJCWlmICh5eWNoID09ICcgJykgZ290byB5eTEyOTM7Ci0gCQlnb3RvIHl5NTY7Ci0gCX0KLS15eTEzMzI6Ci0reXkxMzM0OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdSJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMTg4NzcsMTIgKzE5MDY4LDEyIEBAIHl5MTMzMjoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTEzMzM7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTMzNTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzMzM6Ci0reXkxMzM1OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdUJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMTg4OTgsMTIgKzE5MDg5LDEyIEBAIHl5MTMzMzoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjg7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzMzQ7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTMzNjsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzMzQ6Ci0reXkxMzM2OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdIJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMTg5MjUsNyArMTkxMTYsNyBAQCB5eTEzMzQ6Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzMzU6Ci0reXkxMzM3OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdTJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMTg5MzQsNyArMTkxMjUsNyBAQCB5eTEzMzU6Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTY3OwotLQkJCWdvdG8geXkxMzM4OwotKwkJCWdvdG8geXkxMzQwOwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ3InKSB7Ci1AQCAtMTg5NDIsMTIgKzE5MTMzLDEyIEBAIHl5MTMzNToKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTEzMzg7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3MnKSBnb3RvIHl5MTM0MDsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzMzY6Ci0reXkxMzM4OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdUJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMTg5NjMsMTIgKzE5MTU0LDEyIEBAIHl5MTMzNjoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzMzc7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTMzOTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzMzc6Ci0reXkxMzM5OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdIJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMTg5OTAsNyArMTkxODEsNyBAQCB5eTEzMzc6Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzMzg6Ci0reXkxMzQwOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdUJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMTkwMDYsMTIgKzE5MTk3LDEyIEBAIHl5MTMzODoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjg7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzMzk7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTM0MTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzMzk6Ci0reXkxMzQxOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICcoJykgewotQEAgLTE5MDMyLDE5ICsxOTIyMywxOSBAQCB5eTEzMzk6Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzNDA6Ci0reXkxMzQyOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdEJykgZ290byB5eTEzNDE7Ci0rCWlmICh5eWNoID09ICdEJykgZ290byB5eTEzNDM7Ci0gCWlmICh5eWNoICE9ICdkJykgZ290byB5eTExOTc7Ci0teXkxMzQxOgotK3l5MTM0MzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnQScpIGdvdG8geXkxMzQyOwotKwlpZiAoeXljaCA9PSAnQScpIGdvdG8geXkxMzQ0OwotIAlpZiAoeXljaCAhPSAnYScpIGdvdG8geXk1NjsKLS15eTEzNDI6Ci0reXkxMzQ0OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdZJykgZ290byB5eTEzNDM7Ci0rCWlmICh5eWNoID09ICdZJykgZ290byB5eTEzNDU7Ci0gCWlmICh5eWNoICE9ICd5JykgZ290byB5eTU2OwotLXl5MTM0MzoKLSt5eTEzNDU6Ci0gCXl5YWNjZXB0ID0gMjU7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdSJykgewotQEAgLTE5MDU1LDE0ICsxOTI0NiwxNCBAQCB5eTEzNDM6Ci0gCQlnb3RvIHl5MTA4NDsKLSAJfQotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdPJykgZ290byB5eTEzNDU7Ci0rCWlmICh5eWNoID09ICdPJykgZ290byB5eTEzNDc7Ci0gCWlmICh5eWNoICE9ICdvJykgZ290byB5eTU2OwotLXl5MTM0NToKLSt5eTEzNDc6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJ0YnKSBnb3RvIHl5MTMwNTsKLS0JaWYgKHl5Y2ggPT0gJ2YnKSBnb3RvIHl5MTMwNTsKLSsJaWYgKHl5Y2ggPT0gJ0YnKSBnb3RvIHl5MTMwNjsKLSsJaWYgKHl5Y2ggPT0gJ2YnKSBnb3RvIHl5MTMwNjsKLSAJZ290byB5eTU2OwotLXl5MTM0NjoKLSt5eTEzNDg6Ci0gCXl5YWNjZXB0ID0gNTsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJy8nKSB7Ci1AQCAtMTkwOTcsMTMgKzE5Mjg4LDEzIEBAIHl5MTM0NjoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MjE4OwotIAkJCQlnb3RvIHl5MTY3OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTEzNDc7Ci0rCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTEzNDk7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NzsKLSAJCQkJZ290byB5eTIxODsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzNDc6Ci0reXkxMzQ5OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdVJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMTkxMTksMTIgKzE5MzEwLDEyIEBAIHl5MTM0NzoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjg7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICd1JykgZ290byB5eTEzNDg7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3UnKSBnb3RvIHl5MTM1MDsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzNDg6Ci0reXkxMzUwOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdBJykgewotIAkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotQEAgLTE5MTM0LDI3ICsxOTMyNSwyNyBAQCB5eTEzNDg6Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY5OwotIAkJCWdvdG8geXkzOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMzQ5OwotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEzNTE7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY5OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzQ5OgotK3l5MTM1MToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUScpIHsKLSAJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLSAJCWdvdG8geXkzOwotIAl9IGVsc2UgewotLQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTM1MDsKLSsJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTEzNTI7Ci0gCQlpZiAoeXljaCAhPSAncicpIGdvdG8geXkzOwotIAl9Ci0teXkxMzUwOgotK3l5MTM1MjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA9PSAnWScpIGdvdG8geXkyMjk7Ci0gCWlmICh5eWNoID09ICd5JykgZ290byB5eTIyOTsKLSAJZ290byB5eTU2OwotLXl5MTM1MToKLSt5eTEzNTM6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0EnKSB7Ci1AQCAtMTkxNjksNyArMTkzNjAsNyBAQCB5eTEzNTE6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnQicpIGdvdG8geXkxMzQ2OwotKwkJCWlmICh5eWNoIDw9ICdCJykgZ290byB5eTEzNDg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0xOTE3OCwxMyArMTkzNjksMTMgQEAgeXkxMzUxOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTcxOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdiJykgZ290byB5eTEzNjk7Ci0rCQkJCWlmICh5eWNoIDw9ICdiJykgZ290byB5eTEzNzE7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzUyOgotK3l5MTM1NDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUScpIHsKLUBAIC0xOTIwMSwxNCArMTkzOTIsMTQgQEAgeXkxMzUyOgotIAkJCQlpZiAoeXljaCA8PSAnLycpIGdvdG8geXkxNzI7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoID09ICdGJykgZ290byB5eTEzMzY7Ci0rCQkJCWlmICh5eWNoID09ICdGJykgZ290byB5eTEzMzg7Ci0gCQkJCWdvdG8geXkxNjY7Ci0gCQkJfQotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTEzMzU7Ci0rCQkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTEzMzc7Ci0gCQkJCWdvdG8geXkxNjY7Ci0gCQkJfSBlbHNlIHsKLSAJCQkJaWYgKHl5Y2ggPT0gJ18nKSBnb3RvIHl5MTcyOwotQEAgLTE5MjE2LDE2ICsxOTQwNywxNiBAQCB5eTEzNTI6Ci0gCQkJfQotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAncScpIHsKLS0JCQkJaWYgKHl5Y2ggPT0gJ2YnKSBnb3RvIHl5MTM2NTsKLSsJCQkJaWYgKHl5Y2ggPT0gJ2YnKSBnb3RvIHl5MTM2NzsKLSAJCQkJZ290byB5eTE3MTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxMzY0OwotKwkJCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxMzY2OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzE7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTM1MzoKLSt5eTEzNTU6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1QnKSB7Ci1AQCAtMTkyNDAsNyArMTk0MzEsNyBAQCB5eTEzNTM6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnVScpIGdvdG8geXkxMzMyOwotKwkJCWlmICh5eWNoIDw9ICdVJykgZ290byB5eTEzMzQ7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0xOTI0OSwxMyArMTk0NDAsMTMgQEAgeXkxMzUzOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTcxOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICd1JykgZ290byB5eTEzNjE7Ci0rCQkJCWlmICh5eWNoIDw9ICd1JykgZ290byB5eTEzNjM7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzU0OgotK3l5MTM1NjoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnTicpIHsKLUBAIC0xOTI3MiwxNCArMTk0NjMsMTQgQEAgeXkxMzU0OgotIAkJCQlpZiAoeXljaCA8PSAnLycpIGdvdG8geXkxNzI7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoID09ICdJJykgZ290byB5eTEzMTU7Ci0rCQkJCWlmICh5eWNoID09ICdJJykgZ290byB5eTEzMTY7Ci0gCQkJCWdvdG8geXkxNjY7Ci0gCQkJfQotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdPJykgZ290byB5eTEzMTQ7Ci0rCQkJCWlmICh5eWNoIDw9ICdPJykgZ290byB5eTEzMTU7Ci0gCQkJCWdvdG8geXkxNjY7Ci0gCQkJfSBlbHNlIHsKLSAJCQkJaWYgKHl5Y2ggPT0gJ18nKSBnb3RvIHl5MTcyOwotQEAgLTE5Mjg3LDE2ICsxOTQ3OCwxNiBAQCB5eTEzNTQ6Ci0gCQkJfQotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnbicpIHsKLS0JCQkJaWYgKHl5Y2ggPT0gJ2knKSBnb3RvIHl5MTM1NjsKLSsJCQkJaWYgKHl5Y2ggPT0gJ2knKSBnb3RvIHl5MTM1ODsKLSAJCQkJZ290byB5eTE3MTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnbycpIGdvdG8geXkxMzU1OwotKwkJCQlpZiAoeXljaCA8PSAnbycpIGdvdG8geXkxMzU3OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzE7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTM1NToKLSt5eTEzNTc6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ00nKSB7Ci1AQCAtMTkzMTEsNyArMTk1MDIsNyBAQCB5eTEzNTU6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnTicpIGdvdG8geXkxMzE4OwotKwkJCWlmICh5eWNoIDw9ICdOJykgZ290byB5eTEzMTk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0xOTMyMCwxMyArMTk1MTEsMTMgQEAgeXkxMzU1OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTEzNTk7Ci0rCQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTEzNjE7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzU2OgotK3l5MTM1ODoKLSAJeXlhY2NlcHQgPSA0OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnQycpIHsKLUBAIC0xOTM0MSw3ICsxOTUzMiw3IEBAIHl5MTM1NjoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdEJykgZ290byB5eTEzMTY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTMxNzsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MTkxOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMTkzNTAsMTMgKzE5NTQxLDEzIEBAIHl5MTM1NjoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTkxOwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdkJykgZ290byB5eTEzNTc7Ci0rCQkJCWlmICh5eWNoIDw9ICdkJykgZ290byB5eTEzNTk7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTE5MTsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzNTc6Ci0reXkxMzU5OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdAJykgewotQEAgLTE5MzcwLDE4ICsxOTU2MSwxOCBAQCB5eTEzNTc6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnQScpIGdvdG8geXkxMzE3OwotKwkJCWlmICh5eWNoIDw9ICdBJykgZ290byB5eTEzMTg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY4OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLS0JCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMzU4OwotKwkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTEzNjA7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc2OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzU4OgotK3l5MTM2MDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnWCcpIHsKLUBAIC0xOTQxMSw3ICsxOTYwMiw3IEBAIHl5MTM1ODoKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzNTk6Ci0reXkxMzYxOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdTJykgewotQEAgLTE5NDI2LDcgKzE5NjE3LDcgQEAgeXkxMzU5OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTMxOTsKLSsJCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxMzIwOwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMTk0MzUsMTggKzE5NjI2LDE4IEBAIHl5MTM1OToKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NjsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxMzYwOwotKwkJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxMzYyOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzY7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTM2MDoKLSt5eTEzNjI6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJy4nKSB7Ci0gCQlpZiAoeXljaCA8PSAnKCcpIHsKLS0JCQlpZiAoeXljaCA9PSAnICcpIGdvdG8geXkxMzIwOwotKwkJCWlmICh5eWNoID09ICcgJykgZ290byB5eTEzMjE7Ci0gCQkJZ290byB5eTM7Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICcpJykgZ290byB5eTE2NDsKLUBAIC0xOTQ2Niw3ICsxOTY1Nyw3IEBAIHl5MTM2MDoKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTM2MToKLSt5eTEzNjM6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1EnKSB7Ci1AQCAtMTk0ODEsNyArMTk2NzIsNyBAQCB5eTEzNjE6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnUicpIGdvdG8geXkxMzMzOwotKwkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTEzMzU7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0xOTQ5MCwxMyArMTk2ODEsMTMgQEAgeXkxMzYxOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTEzNjI7Ci0rCQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTEzNjQ7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzYyOgotK3l5MTM2NDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUycpIHsKLUBAIC0xOTUxMSw3ICsxOTcwMiw3IEBAIHl5MTM2MjoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTEzMzQ7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTMzNjsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTE5NTIwLDEzICsxOTcxMSwxMyBAQCB5eTEzNjI6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzY7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTM2MzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTM2NTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc2OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzNjM6Ci0reXkxMzY1OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdHJykgewotQEAgLTE5NTU2LDcgKzE5NzQ3LDcgQEAgeXkxMzYzOgotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTM2NDoKLSt5eTEzNjY6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1InKSB7Ci1AQCAtMTk1NzEsNyArMTk3NjIsNyBAQCB5eTEzNjQ6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnUycpIGdvdG8geXkxMzM4OwotKwkJCWlmICh5eWNoIDw9ICdTJykgZ290byB5eTEzNDA7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0xOTU4MCwxMyArMTk3NzEsMTMgQEAgeXkxMzY0OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTEzNjc7Ci0rCQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTEzNjk7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzY1OgotK3l5MTM2NzoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUycpIHsKLUBAIC0xOTYwMSw3ICsxOTc5Miw3IEBAIHl5MTM2NToKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTEzMzc7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTMzOTsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTE5NjEwLDEzICsxOTgwMSwxMyBAQCB5eTEzNjU6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTM2NjsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTM2ODsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzNjY6Ci0reXkxMzY4OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdHJykgewotQEAgLTE5NjQ2LDcgKzE5ODM3LDcgQEAgeXkxMzY2OgotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTM2NzoKLSt5eTEzNjk6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1MnKSB7Ci1AQCAtMTk2NjEsNyArMTk4NTIsNyBAQCB5eTEzNjc6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxMzM5OwotKwkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTEzNDE7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY4OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0xOTY3MCwyMCArMTk4NjEsMjAgQEAgeXkxMzY3OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc2OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzNjg7Ci0rCQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTEzNzA7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NjsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzY4OgotK3l5MTM3MDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnLScpIHsKLSAJCWlmICh5eWNoIDw9ICcgJykgewotIAkJCWlmICh5eWNoID09ICdcdCcpIGdvdG8geXkxMTk2OwotIAkJCWlmICh5eWNoIDw9IDB4MUYpIGdvdG8geXkzOwotLQkJCWdvdG8geXkxMzQwOwotKwkJCWdvdG8geXkxMzQyOwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCQkJaWYgKHl5Y2ggPD0gJywnKSBnb3RvIHl5MzsKLUBAIC0xOTcwNSw3ICsxOTg5Niw3IEBAIHl5MTM2ODoKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTEzNjk6Ci0reXkxMzcxOgotIAl5eWFjY2VwdCA9IDU7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICc5JykgewotQEAgLTE5NzMzLDcgKzE5OTI0LDcgQEAgeXkxMzY5OgotIAkJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkyMTg7Ci0gCQkJCWdvdG8geXkxNjc7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTM0NzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTM0OTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCQlnb3RvIHl5MjE4OwotIAkJCX0KLUBAIC0xOTc0MywxMyArMTk5MzQsMTMgQEAgeXkxMzY5OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkyMTg7Ci0gCQkJCWdvdG8geXkxNzU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTM3MDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTM3MjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc1OwotIAkJCQlnb3RvIHl5MjE4OwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTM3MDoKLSt5eTEzNzI6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1QnKSB7Ci1AQCAtMTk3NjQsNyArMTk5NTUsNyBAQCB5eTEzNzA6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnVScpIGdvdG8geXkxMzQ4OwotKwkJCWlmICh5eWNoIDw9ICdVJykgZ290byB5eTEzNTA7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY4OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0xOTc3MywxMyArMTk5NjQsMTMgQEAgeXkxMzcwOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc2OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICd1JykgZ290byB5eTEzNzE7Ci0rCQkJCWlmICh5eWNoIDw9ICd1JykgZ290byB5eTEzNzM7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NjsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxMzcxOgotK3l5MTM3MzoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnQCcpIHsKLUBAIC0xOTc5MywxOCArMTk5ODQsMTggQEAgeXkxMzcxOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTM0OTsKLSsJCQlpZiAoeXljaCA8PSAnQScpIGdvdG8geXkxMzUxOwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2OTsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTM3MjsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxMzc0OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NzsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTM3MjoKLSt5eTEzNzQ6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1EnKSB7Ci1AQCAtMTk4MTgsMzMgKzIwMDA5LDM0IEBAIHl5MTM3MjoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdgJykgewotLQkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTEzNTA7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTM1MjsKLSAJCQlpZiAoeXljaCA9PSAnXycpIGdvdG8geXkxNzI7Ci0gCQkJZ290byB5eTM7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoID09ICdyJykgZ290byB5eTEzNzM7Ci0rCQkJaWYgKHl5Y2ggPT0gJ3InKSBnb3RvIHl5MTM3NTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzNzM6Ci0reXkxMzc1OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoID09ICdZJykgZ290byB5eTIyOTsKLSAJaWYgKHl5Y2ggPT0gJ3knKSBnb3RvIHl5MzQxOwotIAlnb3RvIHl5MTc5OwotLXl5MTM3NDoKLSt5eTEzNzY6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5NTY7Ci0gCWlmICh5eWNoID49ICc6JykgZ290byB5eTU2OwotLXl5MTM3NToKLSt5eTEzNzc6Ci0gCXl5YWNjZXB0ID0gMjg7Ci0gCVlZTUFSS0VSID0gKytZWUNVUlNPUjsKLSAJaWYgKChZWUxJTUlUIC0gWVlDVVJTT1IpIDwgNykgWVlGSUxMKDcpOwotIAl5eWNoID0gKllZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnLicpIGdvdG8geXkxMzc4OwotLQlpZiAoeXljaCA8PSAnLycpIGdvdG8geXkxMzc3OwotLQlpZiAoeXljaCA8PSAnOScpIGdvdG8geXkxMzc1OwotLXl5MTM3NzoKLSsJaWYgKHl5Y2ggPT0gJy4nKSBnb3RvIHl5MTM4MDsKLSsJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTM3OTsKLSsJaWYgKHl5Y2ggPD0gJzknKSBnb3RvIHl5MTM3NzsKLSt5eTEzNzk6Ci0rI2xpbmUgMTAyNSAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCXRpbWVsaWJfdWxsIGk7Ci0gCi1AQCAtMTk4NjksNyArMjAwNjEsOCBAQCB5eTEzNzc6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1JFTEFUSVZFOwotIAl9Ci0teXkxMzc4OgotKyNsaW5lIDIwMDY1ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotK3l5MTM4MDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk1NjsKLSAJaWYgKHl5Y2ggPj0gJzonKSBnb3RvIHl5NTY7Ci1AQCAtMTk4ODksNiArMjAwODIsNyBAQCB5eTEzNzg6Ci0gCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTU2OwotIAlpZiAoeXljaCA+PSAnOicpIGdvdG8geXk1NjsKLSAJKytZWUNVUlNPUjsKLSsjbGluZSAxMDUxICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJdGltZWxpYl91bGwgaSwgbXM7Ci0gCi1AQCAtMTk5MTUsNyArMjAxMDksOCBAQCB5eTEzNzg6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1JFTEFUSVZFOwotIAl9Ci0teXkxMzg2OgotKyNsaW5lIDIwMTEzICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotK3l5MTM4ODoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnTicpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTE5OTI0LDcgKzIwMTE5LDcgQEAgeXkxMzg2OgotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotIAkJCWlmICh5eWNoIDw9ICdNJykgZ290byB5eTE2NjsKLS0JCQlnb3RvIHl5MTQyNzsKLSsJCQlnb3RvIHl5MTQyOTsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdtJykgewotQEAgLTE5OTMyLDU4ICsyMDEyNyw1OCBAQCB5eTEzODY6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY2OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxNDI3OwotKwkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE0Mjk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY2OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxMzg3OgotK3l5MTM4OToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnVScpIHsKLSAJCWlmICh5eWNoIDw9ICdAJykgewotIAkJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ0knKSBnb3RvIHl5MTQxOTsKLSsJCQlpZiAoeXljaCA9PSAnSScpIGdvdG8geXkxNDIxOwotIAkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTE2NjsKLS0JCQlnb3RvIHl5MTQyMDsKLSsJCQlnb3RvIHl5MTQyMjsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdpJykgewotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NjsKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWlmICh5eWNoIDw9ICdoJykgZ290byB5eTE2NjsKLS0JCQlnb3RvIHl5MTQxOTsKLSsJCQlnb3RvIHl5MTQyMTsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ3UnKSBnb3RvIHl5MTQyMDsKLSsJCQlpZiAoeXljaCA9PSAndScpIGdvdG8geXkxNDIyOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTM4ODoKLSt5eTEzOTA6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ00nKSB7Ci0gCQlpZiAoeXljaCA8PSAnQCcpIHsKLSAJCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCQkJZ290byB5eTM7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoID09ICdEJykgZ290byB5eTE0MDg7Ci0rCQkJaWYgKHl5Y2ggPT0gJ0QnKSBnb3RvIHl5MTQxMDsKLSAJCQlpZiAoeXljaCA8PSAnTCcpIGdvdG8geXkxNjY7Ci0tCQkJZ290byB5eTE0MDk7Ci0rCQkJZ290byB5eTE0MTE7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnZCcpIHsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlpZiAoeXljaCA8PSAnYycpIGdvdG8geXkxNjY7Ci0tCQkJZ290byB5eTE0MDg7Ci0rCQkJZ290byB5eTE0MTA7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoID09ICdtJykgZ290byB5eTE0MDk7Ci0rCQkJaWYgKHl5Y2ggPT0gJ20nKSBnb3RvIHl5MTQxMTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjY7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzODk6Ci0reXkxMzkxOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdFJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMTk5OTIsNyArMjAxODcsNyBAQCB5eTEzODk6Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTY2OwotLQkJCWdvdG8geXkxNDA0OwotKwkJCWdvdG8geXkxNDA2OwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2QnKSB7Ci1AQCAtMjAwMDAsMTIgKzIwMTk1LDEyIEBAIHl5MTM4OToKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjY7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE0MDQ7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2UnKSBnb3RvIHl5MTQwNjsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjY7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzOTA6Ci0reXkxMzkyOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdFJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjAwMTQsNyArMjAyMDksNyBAQCB5eTEzOTA6Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTY2OwotLQkJCWdvdG8geXkxNDAwOwotKwkJCWdvdG8geXkxNDAyOwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2QnKSB7Ci1AQCAtMjAwMjIsNjggKzIwMjE3LDY4IEBAIHl5MTM5MDoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjY7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE0MDA7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2UnKSBnb3RvIHl5MTQwMjsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjY7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTEzOTE6Ci0reXkxMzkzOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICcvJykgewotIAkJaWYgKHl5Y2ggPT0gJy4nKSBnb3RvIHl5MTAyOTsKLSAJCWdvdG8geXk1NjsKLSAJfSBlbHNlIHsKLS0JCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTEzOTQ7Ci0rCQlpZiAoeXljaCA8PSAnOScpIGdvdG8geXkxMzk2OwotIAkJaWYgKHl5Y2ggPD0gJzonKSBnb3RvIHl5MTAyOTsKLSAJCWdvdG8geXk1NjsKLSAJfQotLXl5MTM5MjoKLSt5eTEzOTQ6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJy8nKSB7Ci0gCQlpZiAoeXljaCA9PSAnLicpIGdvdG8geXkxMDI5OwotIAkJZ290byB5eTU2OwotIAl9IGVsc2UgewotLQkJaWYgKHl5Y2ggPD0gJzQnKSBnb3RvIHl5MTM5NDsKLSsJCWlmICh5eWNoIDw9ICc0JykgZ290byB5eTEzOTY7Ci0gCQlpZiAoeXljaCA9PSAnOicpIGdvdG8geXkxMDI5OwotIAkJZ290byB5eTU2OwotIAl9Ci0teXkxMzkzOgotK3l5MTM5NToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA9PSAnLicpIGdvdG8geXkxMDI5OwotIAlpZiAoeXljaCA9PSAnOicpIGdvdG8geXkxMDI5OwotIAlnb3RvIHl5NTY7Ci0teXkxMzk0OgotK3l5MTM5NjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnLycpIHsKLSAJCWlmICh5eWNoID09ICcuJykgZ290byB5eTEwMjk7Ci0gCQlnb3RvIHl5NTY7Ci0gCX0gZWxzZSB7Ci0tCQlpZiAoeXljaCA8PSAnNScpIGdvdG8geXkxMzk1OwotKwkJaWYgKHl5Y2ggPD0gJzUnKSBnb3RvIHl5MTM5NzsKLSAJCWlmICh5eWNoID09ICc6JykgZ290byB5eTEwMjk7Ci0gCQlnb3RvIHl5NTY7Ci0gCX0KLS15eTEzOTU6Ci0reXkxMzk3OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTU2OwotIAlpZiAoeXljaCA+PSAnOicpIGdvdG8geXk1NjsKLSAJeXlhY2NlcHQgPSAyMzsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTAzMjsKLS0JaWYgKHl5Y2ggPD0gJzUnKSBnb3RvIHl5MTM5NzsKLS0JaWYgKHl5Y2ggPD0gJzYnKSBnb3RvIHl5MTM5ODsKLSsJaWYgKHl5Y2ggPD0gJzUnKSBnb3RvIHl5MTM5OTsKLSsJaWYgKHl5Y2ggPD0gJzYnKSBnb3RvIHl5MTQwMDsKLSAJZ290byB5eTEwMzI7Ci0teXkxMzk3OgotK3l5MTM5OToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnLycpIGdvdG8geXk1NjsKLS0JaWYgKHl5Y2ggPD0gJzknKSBnb3RvIHl5MTM5OTsKLSsJaWYgKHl5Y2ggPD0gJzknKSBnb3RvIHl5MTQwMTsKLSAJZ290byB5eTU2OwotLXl5MTM5ODoKLSt5eTE0MDA6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggIT0gJzAnKSBnb3RvIHl5NTY7Ci0teXkxMzk5OgotK3l5MTQwMToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlnb3RvIHl5MTA0MDsKLS15eTE0MDA6Ci0reXkxNDAyOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdMJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjAwOTksMTIgKzIwMjk0LDEyIEBAIHl5MTQwMDoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdsJykgZ290byB5eTE0MDE7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2wnKSBnb3RvIHl5MTQwMzsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0MDE6Ci0reXkxNDAzOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdGJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjAxMjAsMTIgKzIwMzE1LDEyIEBAIHl5MTQwMToKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjg7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdmJykgZ290byB5eTE0MDI7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2YnKSBnb3RvIHl5MTQwNDsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0MDI6Ci0reXkxNDA0OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdUJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjAxNDEsMTIgKzIwMzM2LDEyIEBAIHl5MTQwMjoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjk7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTE0MDM7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTQwNTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjk7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0MDM6Ci0reXkxNDA1OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdHJykgewotQEAgLTIwMTU3LDcgKzIwMzUyLDcgQEAgeXkxNDAzOgotIAkJaWYgKHl5Y2ggPT0gJ2gnKSBnb3RvIHl5MTE5NTsKLSAJCWdvdG8geXkzOwotIAl9Ci0teXkxNDA0OgotK3l5MTQwNjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnUycpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIwMTczLDEyICsyMDM2OCwxMiBAQCB5eTE0MDQ6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTkxOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE0MDU7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3MnKSBnb3RvIHl5MTQwNzsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTE5MTsKLSAJCX0KLSAJfQotLXl5MTQwNToKLSt5eTE0MDc6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0QnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMDE5NCwxMiArMjAzODksMTIgQEAgeXkxNDA1OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2ODsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQwNjsKLSsJCQlpZiAoeXljaCA8PSAnZCcpIGdvdG8geXkxNDA4OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2ODsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQwNjoKLSt5eTE0MDg6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0EnKSB7Ci0gCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci1AQCAtMjAyMDksMTIgKzIwNDA0LDEyIEBAIHl5MTQwNjoKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjk7Ci0gCQkJZ290byB5eTM7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTE0MDc7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTQwOTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjk7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0MDc6Ci0reXkxNDA5OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdYJykgewotIAkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotQEAgLTIwMjI0LDIzICsyMDQxOSwyMyBAQCB5eTE0MDc6Ci0gCQlpZiAoeXljaCA9PSAneScpIGdvdG8geXkxOTc7Ci0gCQlnb3RvIHl5MzsKLSAJfQotLXl5MTQwODoKLSt5eTE0MTA6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0EnKSB7Ci0gCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotLQkJZ290byB5eTE0MTY7Ci0rCQlnb3RvIHl5MTQxODsKLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdgJykgewotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTQxNjsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxNDE4OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NzsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQwOToKLSt5eTE0MTE6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ08nKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMDI1NiwxMiArMjA0NTEsMTIgQEAgeXkxNDA5OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ28nKSBnb3RvIHl5MTQxMDsKLSsJCQlpZiAoeXljaCA8PSAnbycpIGdvdG8geXkxNDEyOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NzsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQxMDoKLSt5eTE0MTI6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1InKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMDI3NywxMiArMjA0NzIsMTIgQEAgeXkxNDEwOgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2ODsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTQxMTsKLSsJCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxNDEzOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2ODsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQxMToKLSt5eTE0MTM6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1InKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMDI5OCwyOCArMjA0OTMsMjkgQEAgeXkxNDExOgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2OTsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTQxMjsKLSsJCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxNDE0OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2OTsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQxMjoKLSt5eTE0MTQ6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ04nKSB7Ci0gCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCQlnb3RvIHl5MzsKLSAJfSBlbHNlIHsKLS0JCWlmICh5eWNoIDw9ICdPJykgZ290byB5eTE0MTM7Ci0rCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxNDE1OwotIAkJaWYgKHl5Y2ggIT0gJ28nKSBnb3RvIHl5MzsKLSAJfQotLXl5MTQxMzoKLSt5eTE0MTU6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJ1cnKSBnb3RvIHl5MTQxNDsKLSsJaWYgKHl5Y2ggPT0gJ1cnKSBnb3RvIHl5MTQxNjsKLSAJaWYgKHl5Y2ggIT0gJ3cnKSBnb3RvIHl5NTY7Ci0teXkxNDE0OgotK3l5MTQxNjoKLSAJKytZWUNVUlNPUjsKLS15eTE0MTU6Ci0reXkxNDE3OgotKyNsaW5lIDEwMTMgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlIgotIAl7Ci0gCQlERUJVR19PVVRQVVQoInRvbW9ycm93Iik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtMjAzMzAsNyArMjA1MjYsOCBAQCB5eTE0MTU6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1JFTEFUSVZFOwotIAl9Ci0teXkxNDE2OgotKyNsaW5lIDIwNTMwICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotK3l5MTQxODoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnWScpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIwMzQ2LDIxICsyMDU0MywyMiBAQCB5eTE0MTY6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY4OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAneScpIGdvdG8geXkxNDE3OwotKwkJCWlmICh5eWNoIDw9ICd5JykgZ290byB5eTE0MTk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDE3OgotK3l5MTQxOToKLSAJKytZWUNVUlNPUjsKLSAJaWYgKCh5eWNoID0gKllZQ1VSU09SKSA8PSAnQCcpIHsKLSAJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2OTsKLS0JCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE0MTg7Ci0rCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkxNDIwOwotIAkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY5OwotIAl9Ci0teXkxNDE4OgotK3l5MTQyMDoKLSsjbGluZSAxMDAzICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJREVCVUdfT1VUUFVUKCJtaWRuaWdodCB8IHRvZGF5Iik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtMjAzNjksNyArMjA1NjcsOCBAQCB5eTE0MTg6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1JFTEFUSVZFOwotIAl9Ci0teXkxNDE5OgotKyNsaW5lIDIwNTcxICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotK3l5MTQyMToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnUycpIHsKLSAJCWlmICh5eWNoIDw9ICdAJykgewotQEAgLTIwMzc3LDggKzIwNTc2LDggQEAgeXkxNDE5OgotIAkJCWdvdG8geXkzOwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnUScpIGdvdG8geXkxNjc7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTQyNTsKLS0JCQlnb3RvIHl5MTQyNjsKLSsJCQlpZiAoeXljaCA8PSAnUicpIGdvdG8geXkxNDI3OwotKwkJCWdvdG8geXkxNDI4OwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ3EnKSB7Ci1AQCAtMjAzODYsMTMgKzIwNTg1LDEzIEBAIHl5MTQxOToKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTE0MjU7Ci0tCQkJaWYgKHl5Y2ggPD0gJ3MnKSBnb3RvIHl5MTQyNjsKLSsJCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxNDI3OwotKwkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE0Mjg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDIwOgotK3l5MTQyMjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnUicpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIwNDA4LDEyICsyMDYwNywxMiBAQCB5eTE0MjA6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTkxOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTE0MjE7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTQyMzsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTE5MTsKLSAJCX0KLSAJfQotLXl5MTQyMToKLSt5eTE0MjM6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1MnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMDQyOSwxMiArMjA2MjgsMTIgQEAgeXkxNDIxOgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2ODsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ3MnKSBnb3RvIHl5MTQyMjsKLSsJCQlpZiAoeXljaCA8PSAncycpIGdvdG8geXkxNDI0OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2ODsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQyMjoKLSt5eTE0MjQ6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0QnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMDQ1MCwyNyArMjA2NDksMjcgQEAgeXkxNDIyOgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2OTsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQyMzsKLSsJCQlpZiAoeXljaCA8PSAnZCcpIGdvdG8geXkxNDI1OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2OTsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQyMzoKLSt5eTE0MjU6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0AnKSB7Ci0gCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCQlnb3RvIHl5MzsKLSAJfSBlbHNlIHsKLS0JCWlmICh5eWNoIDw9ICdBJykgZ290byB5eTE0MjQ7Ci0rCQlpZiAoeXljaCA8PSAnQScpIGdvdG8geXkxNDI2OwotIAkJaWYgKHl5Y2ggIT0gJ2EnKSBnb3RvIHl5MzsKLSAJfQotLXl5MTQyNDoKLSt5eTE0MjY6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPT0gJ1knKSBnb3RvIHl5MTk3OwotIAlpZiAoeXljaCA9PSAneScpIGdvdG8geXkxOTc7Ci0gCWdvdG8geXk1NjsKLS15eTE0MjU6Ci0reXkxNDI3OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdEJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjA0OTIsNyArMjA2OTEsNyBAQCB5eTE0MjU6Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0MjY6Ci0reXkxNDI4OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICcoJykgewotQEAgLTIwNTE0LDcgKzIwNzEzLDcgQEAgeXkxNDI2OgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDI3OgotK3l5MTQyOToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnVCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIwNTMwLDEyICsyMDcyOSwxMiBAQCB5eTE0Mjc6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY3OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxNDI4OwotKwkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTE0MzA7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY3OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDI4OgotK3l5MTQzMDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnSCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIwNTU3LDcgKzIwNzU2LDcgQEAgeXkxNDI4OgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDI5OgotK3l5MTQzMToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnTScpIHsKLUBAIC0yMDU3Miw3ICsyMDc3MSw3IEBAIHl5MTQyOToKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdOJykgZ290byB5eTE0Mjc7Ci0rCQkJaWYgKHl5Y2ggPD0gJ04nKSBnb3RvIHl5MTQyOTsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIwNTgxLDEzICsyMDc4MCwxMyBAQCB5eTE0Mjk6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzE7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTQ1OTsKLSsJCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTQ2MTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcxOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0MzA6Ci0reXkxNDMyOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdUJykgewotQEAgLTIwNjA0LDE0ICsyMDgwMywxNCBAQCB5eTE0MzA6Ci0gCQkJCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTE3MjsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPT0gJ0knKSBnb3RvIHl5MTQxOTsKLSsJCQkJaWYgKHl5Y2ggPT0gJ0knKSBnb3RvIHl5MTQyMTsKLSAJCQkJZ290byB5eTE2NjsKLSAJCQl9Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnYCcpIHsKLSAJCQlpZiAoeXljaCA8PSAnWicpIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ1UnKSBnb3RvIHl5MTQyMDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ1UnKSBnb3RvIHl5MTQyMjsKLSAJCQkJZ290byB5eTE2NjsKLSAJCQl9IGVsc2UgewotIAkJCQlpZiAoeXljaCA9PSAnXycpIGdvdG8geXkxNzI7Ci1AQCAtMjA2MTksMTYgKzIwODE4LDE2IEBAIHl5MTQzMDoKLSAJCQl9Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICd0JykgewotLQkJCQlpZiAoeXljaCA9PSAnaScpIGdvdG8geXkxNDUxOwotKwkJCQlpZiAoeXljaCA9PSAnaScpIGdvdG8geXkxNDUzOwotIAkJCQlnb3RvIHl5MTcxOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICd1JykgZ290byB5eTE0NTI7Ci0rCQkJCWlmICh5eWNoIDw9ICd1JykgZ290byB5eTE0NTQ7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDMxOgotK3l5MTQzMzoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnTCcpIHsKLUBAIC0yMDY0NSwxNCArMjA4NDQsMTQgQEAgeXkxNDMxOgotIAkJCQlpZiAoeXljaCA8PSAnLycpIGdvdG8geXkxNzI7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoID09ICdEJykgZ290byB5eTE0MDg7Ci0rCQkJCWlmICh5eWNoID09ICdEJykgZ290byB5eTE0MTA7Ci0gCQkJCWdvdG8geXkxNjY7Ci0gCQkJfQotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdNJykgZ290byB5eTE0MDk7Ci0rCQkJCWlmICh5eWNoIDw9ICdNJykgZ290byB5eTE0MTE7Ci0gCQkJCWdvdG8geXkxNjY7Ci0gCQkJfSBlbHNlIHsKLSAJCQkJaWYgKHl5Y2ggPT0gJ18nKSBnb3RvIHl5MTcyOwotQEAgLTIwNjYwLDE2ICsyMDg1OSwxNiBAQCB5eTE0MzE6Ci0gCQkJfQotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnbCcpIHsKLS0JCQkJaWYgKHl5Y2ggPT0gJ2QnKSBnb3RvIHl5MTQ0MjsKLSsJCQkJaWYgKHl5Y2ggPT0gJ2QnKSBnb3RvIHl5MTQ0NDsKLSAJCQkJZ290byB5eTE3MTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnbScpIGdvdG8geXkxNDQzOwotKwkJCQlpZiAoeXljaCA8PSAnbScpIGdvdG8geXkxNDQ1OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzE7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQzMjoKLSt5eTE0MzQ6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0QnKSB7Ci1AQCAtMjA2ODQsNyArMjA4ODMsNyBAQCB5eTE0MzI6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnRScpIGdvdG8geXkxNDA0OwotKwkJCWlmICh5eWNoIDw9ICdFJykgZ290byB5eTE0MDY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMDY5MywxMyArMjA4OTIsMTMgQEAgeXkxNDMyOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTcxOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE0Mzg7Ci0rCQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE0NDA7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDMzOgotK3l5MTQzNToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnRCcpIHsKLUBAIC0yMDcxNCw3ICsyMDkxMyw3IEBAIHl5MTQzMzoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdFJykgZ290byB5eTE0MDA7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0UnKSBnb3RvIHl5MTQwMjsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIwNzIzLDEzICsyMDkyMiwxMyBAQCB5eTE0MzM6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzE7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2UnKSBnb3RvIHl5MTQzNDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2UnKSBnb3RvIHl5MTQzNjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcxOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0MzQ6Ci0reXkxNDM2OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdLJykgewotQEAgLTIwNzQ0LDcgKzIwOTQzLDcgQEAgeXkxNDM0OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0wnKSBnb3RvIHl5MTQwMTsKLSsJCQlpZiAoeXljaCA8PSAnTCcpIGdvdG8geXkxNDAzOwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjA3NTMsMTMgKzIwOTUyLDEzIEBAIHl5MTQzNDoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnbCcpIGdvdG8geXkxNDM1OwotKwkJCQlpZiAoeXljaCA8PSAnbCcpIGdvdG8geXkxNDM3OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQzNToKLSt5eTE0Mzc6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0UnKSB7Ci1AQCAtMjA3NzQsNyArMjA5NzMsNyBAQCB5eTE0MzU6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnRicpIGdvdG8geXkxNDAyOwotKwkJCWlmICh5eWNoIDw9ICdGJykgZ290byB5eTE0MDQ7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY4OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMDc4MywxMyArMjA5ODIsMTMgQEAgeXkxNDM1OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc2OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdmJykgZ290byB5eTE0MzY7Ci0rCQkJCWlmICh5eWNoIDw9ICdmJykgZ290byB5eTE0Mzg7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NjsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDM2OgotK3l5MTQzODoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUycpIHsKLUBAIC0yMDgwNCw3ICsyMTAwMyw3IEBAIHl5MTQzNjoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTE0MDM7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTQwNTsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIwODEzLDEzICsyMTAxMiwxMyBAQCB5eTE0MzY6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzc7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTQzNzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTQzOTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc3OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0Mzc6Ci0reXkxNDM5OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdHJykgewotQEAgLTIwODQyLDcgKzIxMDQxLDcgQEAgeXkxNDM3OgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDM4OgotK3l5MTQ0MDoKLSAJeXlhY2NlcHQgPSA0OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUicpIHsKLUBAIC0yMDg1Nyw3ICsyMTA1Niw3IEBAIHl5MTQzODoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdTJykgZ290byB5eTE0MDU7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1MnKSBnb3RvIHl5MTQwNzsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MTkxOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjA4NjYsMTMgKzIxMDY1LDEzIEBAIHl5MTQzODoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTkxOwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE0Mzk7Ci0rCQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE0NDE7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTE5MTsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0Mzk6Ci0reXkxNDQxOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdDJykgewotQEAgLTIwODg3LDcgKzIxMDg2LDcgQEAgeXkxNDM5OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTQwNjsKLSsJCQlpZiAoeXljaCA8PSAnRCcpIGdvdG8geXkxNDA4OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjA4OTYsMTMgKzIxMDk1LDEzIEBAIHl5MTQzOToKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NjsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnZCcpIGdvdG8geXkxNDQwOwotKwkJCQlpZiAoeXljaCA8PSAnZCcpIGdvdG8geXkxNDQyOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzY7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ0MDoKLSt5eTE0NDI6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0AnKSB7Ci1AQCAtMjA5MTYsMTggKzIxMTE1LDE4IEBAIHl5MTQ0MDoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdBJykgZ290byB5eTE0MDc7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTQwOTsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotLQkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTE0NDE7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTQ0MzsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0NDE6Ci0reXkxNDQzOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdYJykgewotQEAgLTIwOTUwLDcgKzIxMTQ5LDcgQEAgeXkxNDQxOgotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDQyOgotK3l5MTQ0NDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnQCcpIHsKLUBAIC0yMDk2NCwxOCArMjExNjMsMTggQEAgeXkxNDQyOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTQxNjsKLSsJCQlpZiAoeXljaCA8PSAnQScpIGdvdG8geXkxNDE4OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTQ0OTsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxNDUxOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQ0MzoKLSt5eTE0NDU6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ04nKSB7Ci1AQCAtMjA5OTAsNyArMjExODksNyBAQCB5eTE0NDM6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxNDEwOwotKwkJCWlmICh5eWNoIDw9ICdPJykgZ290byB5eTE0MTI7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMDk5OSwxMyArMjExOTgsMTMgQEAgeXkxNDQzOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdvJykgZ290byB5eTE0NDQ7Ci0rCQkJCWlmICh5eWNoIDw9ICdvJykgZ290byB5eTE0NDY7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDQ0OgotK3l5MTQ0NjoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUScpIHsKLUBAIC0yMTAyMCw3ICsyMTIxOSw3IEBAIHl5MTQ0NDoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTE0MTE7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTQxMzsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIxMDI5LDEzICsyMTIyOCwxMyBAQCB5eTE0NDQ6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzY7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTQ0NTsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTQ0NzsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc2OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0NDU6Ci0reXkxNDQ3OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdRJykgewotQEAgLTIxMDUwLDcgKzIxMjQ5LDcgQEAgeXkxNDQ1OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTQxMjsKLSsJCQlpZiAoeXljaCA8PSAnUicpIGdvdG8geXkxNDE0OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2OTsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjEwNTksMTMgKzIxMjU4LDEzIEBAIHl5MTQ0NToKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxNDQ2OwotKwkJCQlpZiAoeXljaCA8PSAncicpIGdvdG8geXkxNDQ4OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzc7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ0NjoKLSt5eTE0NDg6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ04nKSB7Ci1AQCAtMjEwNzksMTggKzIxMjc4LDE4IEBAIHl5MTQ0NjoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdgJykgewotLQkJCWlmICh5eWNoIDw9ICdPJykgZ290byB5eTE0MTM7Ci0rCQkJaWYgKHl5Y2ggPD0gJ08nKSBnb3RvIHl5MTQxNTsKLSAJCQlpZiAoeXljaCA9PSAnXycpIGdvdG8geXkxNzI7Ci0gCQkJZ290byB5eTM7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoID09ICdvJykgZ290byB5eTE0NDc7Ci0rCQkJaWYgKHl5Y2ggPT0gJ28nKSBnb3RvIHl5MTQ0OTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0NDc6Ci0reXkxNDQ5OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdXJykgZ290byB5eTE0MTQ7Ci0rCWlmICh5eWNoID09ICdXJykgZ290byB5eTE0MTY7Ci0gCWlmICh5eWNoICE9ICd3JykgZ290byB5eTE3OTsKLSAJeXlhY2NlcHQgPSAyOTsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLUBAIC0yMTA5OSwxMyArMjEyOTgsMTMgQEAgeXkxNDQ3OgotIAl9Ci0gCWlmICh5eWNoIDw9ICcuJykgewotIAkJaWYgKHl5Y2ggPT0gJy0nKSBnb3RvIHl5MTcyOwotLQkJZ290byB5eTE0MTU7Ci0rCQlnb3RvIHl5MTQxNzsKLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTE3MjsKLSAJCWlmICh5eWNoID09ICdfJykgZ290byB5eTE3MjsKLS0JCWdvdG8geXkxNDE1OwotKwkJZ290byB5eTE0MTc7Ci0gCX0KLS15eTE0NDk6Ci0reXkxNDUxOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdYJykgewotQEAgLTIxMTIwLDcgKzIxMzE5LDcgQEAgeXkxNDQ5OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1knKSBnb3RvIHl5MTQxNzsKLSsJCQlpZiAoeXljaCA8PSAnWScpIGdvdG8geXkxNDE5OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjExMjksMzYgKzIxMzI4LDM2IEBAIHl5MTQ0OToKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NjsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAneScpIGdvdG8geXkxNDUwOwotKwkJCQlpZiAoeXljaCA8PSAneScpIGdvdG8geXkxNDUyOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzY7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ1MDoKLSt5eTE0NTI6Ci0gCXl5YWNjZXB0ID0gMzA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICcvJykgewotIAkJaWYgKHl5Y2ggPD0gJywnKSB7Ci0gCQkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotLQkJCWdvdG8geXkxNDE4OwotKwkJCWdvdG8geXkxNDIwOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA9PSAnLicpIGdvdG8geXkxNDE4OwotKwkJCWlmICh5eWNoID09ICcuJykgZ290byB5eTE0MjA7Ci0gCQkJZ290byB5eTE3MjsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdeJykgewotLQkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTE0MTg7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MTQyMDsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjk7Ci0tCQkJZ290byB5eTE0MTg7Ci0rCQkJZ290byB5eTE0MjA7Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdfJykgZ290byB5eTE3MjsKLS0JCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkxNDE4OwotKwkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE0MjA7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc3OwotLQkJCWdvdG8geXkxNDE4OwotKwkJCWdvdG8geXkxNDIwOwotIAkJfQotIAl9Ci0teXkxNDUxOgotK3l5MTQ1MzoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUicpIHsKLUBAIC0yMTE3MywxMyArMjEzNzIsMTMgQEAgeXkxNDUxOgotIAkJCX0gZWxzZSB7Ci0gCQkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0gCQkJCWlmICh5eWNoIDw9ICdRJykgZ290byB5eTE2NzsKLS0JCQkJZ290byB5eTE0MjU7Ci0rCQkJCWdvdG8geXkxNDI3OwotIAkJCX0KLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdgJykgewotIAkJCWlmICh5eWNoIDw9ICdaJykgewotLQkJCQlpZiAoeXljaCA8PSAnUycpIGdvdG8geXkxNDI2OwotKwkJCQlpZiAoeXljaCA8PSAnUycpIGdvdG8geXkxNDI4OwotIAkJCQlnb3RvIHl5MTY3OwotIAkJCX0gZWxzZSB7Ci0gCQkJCWlmICh5eWNoID09ICdfJykgZ290byB5eTE3MjsKLUBAIC0yMTE4OCwxNSArMjEzODcsMTUgQEAgeXkxNDUxOgotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAncicpIHsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3EnKSBnb3RvIHl5MTc1OwotLQkJCQlnb3RvIHl5MTQ1NzsKLSsJCQkJZ290byB5eTE0NTk7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3MnKSBnb3RvIHl5MTQ1ODsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3MnKSBnb3RvIHl5MTQ2MDsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0NTI6Ci0reXkxNDU0OgotIAl5eWFjY2VwdCA9IDQ7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdRJykgewotQEAgLTIxMjExLDcgKzIxNDEwLDcgQEAgeXkxNDUyOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTQyMTsKLSsJCQlpZiAoeXljaCA8PSAnUicpIGdvdG8geXkxNDIzOwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkxOTE7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMTIyMCwxMyArMjE0MTksMTMgQEAgeXkxNDUyOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkxOTE7Ci0gCQkJCWdvdG8geXkxNzU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTQ1MzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTQ1NTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc1OwotIAkJCQlnb3RvIHl5MTkxOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ1MzoKLSt5eTE0NTU6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1InKSB7Ci1AQCAtMjEyNDEsNyArMjE0NDAsNyBAQCB5eTE0NTM6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnUycpIGdvdG8geXkxNDIyOwotKwkJCWlmICh5eWNoIDw9ICdTJykgZ290byB5eTE0MjQ7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY4OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMTI1MCwxMyArMjE0NDksMTMgQEAgeXkxNDUzOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc2OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE0NTQ7Ci0rCQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE0NTY7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NjsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDU0OgotK3l5MTQ1NjoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnQycpIHsKLUBAIC0yMTI3MSw3ICsyMTQ3MCw3IEBAIHl5MTQ1NDoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdEJykgZ290byB5eTE0MjM7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTQyNTsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIxMjgwLDEzICsyMTQ3OSwxMyBAQCB5eTE0NTQ6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzc7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQ1NTsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQ1NzsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc3OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0NTU6Ci0reXkxNDU3OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdAJykgewotQEAgLTIxMzAwLDIyICsyMTQ5OSwyMiBAQCB5eTE0NTU6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnQScpIGdvdG8geXkxNDI0OwotKwkJCWlmICh5eWNoIDw9ICdBJykgZ290byB5eTE0MjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotLQkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTE0NTY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTQ1ODsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0NTY6Ci0reXkxNDU4OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoID09ICdZJykgZ290byB5eTE5NzsKLSAJaWYgKHl5Y2ggPT0gJ3knKSBnb3RvIHl5MjEwOwotIAlnb3RvIHl5MTc5OwotLXl5MTQ1NzoKLSt5eTE0NTk6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0MnKSB7Ci1AQCAtMjEzNDUsNyArMjE1NDQsNyBAQCB5eTE0NTc6Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDU4OgotK3l5MTQ2MDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnLScpIHsKLUBAIC0yMTM3NCw3ICsyMTU3Myw3IEBAIHl5MTQ1ODoKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0NTk6Ci0reXkxNDYxOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdTJykgewotQEAgLTIxMzg5LDcgKzIxNTg4LDcgQEAgeXkxNDU5OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTQyODsKLSsJCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxNDMwOwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjEzOTgsMTMgKzIxNTk3LDEzIEBAIHl5MTQ1OToKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxNDYwOwotKwkJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxNDYyOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ2MDoKLSt5eTE0NjI6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0cnKSB7Ci1AQCAtMjE0MzQsMzAgKzIxNjMzLDMwIEBAIHl5MTQ2MDoKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0NjE6Ci0reXkxNDYzOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdZJykgewotIAkJaWYgKHl5Y2ggPD0gJ0AnKSB7Ci0gCQkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAkJCWdvdG8geXkzOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA9PSAnUicpIGdvdG8geXkxNDczOwotKwkJCWlmICh5eWNoID09ICdSJykgZ290byB5eTE0NzU7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1gnKSBnb3RvIHl5MTY2OwotLQkJCWdvdG8geXkxNDc0OwotKwkJCWdvdG8geXkxNDc2OwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ3InKSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3EnKSBnb3RvIHl5MTY2OwotLQkJCWdvdG8geXkxNDczOwotKwkJCWdvdG8geXkxNDc1OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA9PSAneScpIGdvdG8geXkxNDc0OwotKwkJCWlmICh5eWNoID09ICd5JykgZ290byB5eTE0NzY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY2OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDYyOgotK3l5MTQ2NDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnRCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIxNDY2LDcgKzIxNjY1LDcgQEAgeXkxNDYyOgotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotIAkJCWlmICh5eWNoIDw9ICdDJykgZ290byB5eTE2NjsKLS0JCQlnb3RvIHl5MTQ2NzsKLSsJCQlnb3RvIHl5MTQ2OTsKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdjJykgewotQEAgLTIxNDc0LDEyICsyMTY3MywxMiBAQCB5eTE0NjI6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY2OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnZCcpIGdvdG8geXkxNDY3OwotKwkJCWlmICh5eWNoIDw9ICdkJykgZ290byB5eTE0Njk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY2OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDYzOgotK3l5MTQ2NToKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnTicpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIxNDk1LDEyICsyMTY5NCwxMiBAQCB5eTE0NjM6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY2OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxNDY0OwotKwkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE0NjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY2OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNDY0OgotK3l5MTQ2NjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnRCcpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIxNTE2LDEyICsyMTcxNSwxMiBAQCB5eTE0NjQ6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTkxOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdkJykgZ290byB5eTE0NjU7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQ2NzsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTE5MTsKLSAJCX0KLSAJfQotLXl5MTQ2NToKLSt5eTE0Njc6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0EnKSB7Ci0gCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci1AQCAtMjE1MzEsMTIgKzIxNzMwLDEyIEBAIHl5MTQ2NToKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdhJykgZ290byB5eTE0NjY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTQ2ODsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0NjY6Ci0reXkxNDY4OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdZJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjE1NTgsNyArMjE3NTcsNyBAQCB5eTE0NjY6Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0Njc6Ci0reXkxNDY5OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdOJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjE1NzQsMTIgKzIxNzczLDEyIEBAIHl5MTQ2NzoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE0Njg7Ci0rCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTQ3MDsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0Njg6Ci0reXkxNDcwOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdJJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjE1OTUsMTIgKzIxNzk0LDEyIEBAIHl5MTQ2ODoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjg7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdpJykgZ290byB5eTE0Njk7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2knKSBnb3RvIHl5MTQ3MTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0Njk6Ci0reXkxNDcxOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdHJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjE2MTYsMjkgKzIxODE1LDI5IEBAIHl5MTQ2OToKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjk7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdnJykgZ290byB5eTE0NzA7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2cnKSBnb3RvIHl5MTQ3MjsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjk7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0NzA6Ci0reXkxNDcyOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdHJykgewotIAkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAkJZ290byB5eTM7Ci0gCX0gZWxzZSB7Ci0tCQlpZiAoeXljaCA8PSAnSCcpIGdvdG8geXkxNDcxOwotKwkJaWYgKHl5Y2ggPD0gJ0gnKSBnb3RvIHl5MTQ3MzsKLSAJCWlmICh5eWNoICE9ICdoJykgZ290byB5eTM7Ci0gCX0KLS15eTE0NzE6Ci0reXkxNDczOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdUJykgZ290byB5eTE0NzI7Ci0rCWlmICh5eWNoID09ICdUJykgZ290byB5eTE0NzQ7Ci0gCWlmICh5eWNoICE9ICd0JykgZ290byB5eTU2OwotLXl5MTQ3MjoKLSt5eTE0NzQ6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JZ290byB5eTE0MTg7Ci0teXkxNDczOgotKwlnb3RvIHl5MTQyMDsKLSt5eTE0NzU6Ci0gCXl5YWNjZXB0ID0gNTsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJy8nKSB7Ci1AQCAtMjE2NjYsNyArMjE4NjUsNyBAQCB5eTE0NzM6Ci0gCQkJCWlmICh5eWNoIDw9ICc5JykgZ290byB5eTIyMDsKLSAJCQkJZ290byB5eTIxODsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA9PSAnQycpIGdvdG8geXkxNDc1OwotKwkJCQlpZiAoeXljaCA9PSAnQycpIGdvdG8geXkxNDc3OwotIAkJCQlnb3RvIHl5MTY3OwotIAkJCX0KLSAJCX0gZWxzZSB7Ci1AQCAtMjE2NzQsMTMgKzIxODczLDEzIEBAIHl5MTQ3MzoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MjE4OwotIAkJCQlnb3RvIHl5MTY3OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdjJykgZ290byB5eTE0NzU7Ci0rCQkJCWlmICh5eWNoIDw9ICdjJykgZ290byB5eTE0Nzc7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NzsKLSAJCQkJZ290byB5eTIxODsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0NzQ6Ci0reXkxNDc2OgotIAl5eWFjY2VwdCA9IDU7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICctJykgewotQEAgLTIxNzA1LDcgKzIxOTA0LDcgQEAgeXkxNDc0OgotIAkJCWdvdG8geXkyMTg7Ci0gCQl9Ci0gCX0KLS15eTE0NzU6Ci0reXkxNDc3OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdIJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjE3MjcsNyArMjE5MjYsNyBAQCB5eTE0NzU6Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE0NzY6Ci0reXkxNDc4OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdYJykgewotQEAgLTIxNzQ0LDE0ICsyMTk0MywxNCBAQCB5eTE0NzY6Ci0gCQkJCWlmICh5eWNoIDw9ICcvJykgZ290byB5eTE3MjsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPT0gJ1InKSBnb3RvIHl5MTQ3MzsKLSsJCQkJaWYgKHl5Y2ggPT0gJ1InKSBnb3RvIHl5MTQ3NTsKLSAJCQkJZ290byB5eTE2NjsKLSAJCQl9Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnYCcpIHsKLSAJCQlpZiAoeXljaCA8PSAnWicpIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ1knKSBnb3RvIHl5MTQ3NDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ1knKSBnb3RvIHl5MTQ3NjsKLSAJCQkJZ290byB5eTE2NjsKLSAJCQl9IGVsc2UgewotIAkJCQlpZiAoeXljaCA9PSAnXycpIGdvdG8geXkxNzI7Ci1AQCAtMjE3NTksMTYgKzIxOTU4LDE2IEBAIHl5MTQ3NjoKLSAJCQl9Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICd4JykgewotLQkJCQlpZiAoeXljaCA9PSAncicpIGdvdG8geXkxNDg4OwotKwkJCQlpZiAoeXljaCA9PSAncicpIGdvdG8geXkxNDkwOwotIAkJCQlnb3RvIHl5MTcxOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICd5JykgZ290byB5eTE0ODk7Ci0rCQkJCWlmICh5eWNoIDw9ICd5JykgZ290byB5eTE0OTE7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDc3OgotK3l5MTQ3OToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnQycpIHsKLUBAIC0yMTc4Myw3ICsyMTk4Miw3IEBAIHl5MTQ3NzoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdEJykgZ290byB5eTE0Njc7Ci0rCQkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTQ2OTsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIxNzkyLDEzICsyMTk5MSwxMyBAQCB5eTE0Nzc6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzE7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQ4MjsKLSsJCQkJaWYgKHl5Y2ggPD0gJ2QnKSBnb3RvIHl5MTQ4NDsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcxOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0Nzg6Ci0reXkxNDgwOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdNJykgewotQEAgLTIxODEzLDcgKzIyMDEyLDcgQEAgeXkxNDc4OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ04nKSBnb3RvIHl5MTQ2NDsKLSsJCQlpZiAoeXljaCA8PSAnTicpIGdvdG8geXkxNDY2OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NjsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjE4MjIsMTMgKzIyMDIxLDEzIEBAIHl5MTQ3ODoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3MTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxNDc5OwotKwkJCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxNDgxOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzE7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ3OToKLSt5eTE0ODE6Ci0gCXl5YWNjZXB0ID0gNDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0MnKSB7Ci1AQCAtMjE4NDMsNyArMjIwNDIsNyBAQCB5eTE0Nzk6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnRCcpIGdvdG8geXkxNDY1OwotKwkJCWlmICh5eWNoIDw9ICdEJykgZ290byB5eTE0Njc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTE5MTsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIxODUyLDEzICsyMjA1MSwxMyBAQCB5eTE0Nzk6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE5MTsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnZCcpIGdvdG8geXkxNDgwOwotKwkJCQlpZiAoeXljaCA8PSAnZCcpIGdvdG8geXkxNDgyOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkxOTE7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDgwOgotK3l5MTQ4MjoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnQCcpIHsKLUBAIC0yMTg3MiwxOCArMjIwNzEsMTggQEAgeXkxNDgwOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0EnKSBnb3RvIHl5MTQ2NjsKLSsJCQlpZiAoeXljaCA8PSAnQScpIGdvdG8geXkxNDY4OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2EnKSBnb3RvIHl5MTQ4MTsKLSsJCQlpZiAoeXljaCA8PSAnYScpIGdvdG8geXkxNDgzOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQ4MToKLSt5eTE0ODM6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1gnKSB7Ci1AQCAtMjE5MTMsNyArMjIxMTIsNyBAQCB5eTE0ODE6Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDgyOgotK3l5MTQ4NDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnTScpIHsKLUBAIC0yMTkyOCw3ICsyMjEyNyw3IEBAIHl5MTQ4MjoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdOJykgZ290byB5eTE0Njg7Ci0rCQkJaWYgKHl5Y2ggPD0gJ04nKSBnb3RvIHl5MTQ3MDsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIxOTM3LDEzICsyMjEzNiwxMyBAQCB5eTE0ODI6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTQ4MzsKLSsJCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTQ4NTsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0ODM6Ci0reXkxNDg1OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdIJykgewotQEAgLTIxOTU4LDcgKzIyMTU3LDcgQEAgeXkxNDgzOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0knKSBnb3RvIHl5MTQ2OTsKLSsJCQlpZiAoeXljaCA8PSAnSScpIGdvdG8geXkxNDcxOwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjE5NjcsMTMgKzIyMTY2LDEzIEBAIHl5MTQ4MzoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NjsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnaScpIGdvdG8geXkxNDg0OwotKwkJCQlpZiAoeXljaCA8PSAnaScpIGdvdG8geXkxNDg2OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzY7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ4NDoKLSt5eTE0ODY6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0YnKSB7Ci1AQCAtMjE5ODgsNyArMjIxODcsNyBAQCB5eTE0ODQ6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnRycpIGdvdG8geXkxNDcwOwotKwkJCWlmICh5eWNoIDw9ICdHJykgZ290byB5eTE0NzI7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY5OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMTk5NywxMyArMjIxOTYsMTMgQEAgeXkxNDg0OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc3OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdnJykgZ290byB5eTE0ODU7Ci0rCQkJCWlmICh5eWNoIDw9ICdnJykgZ290byB5eTE0ODc7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NzsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDg1OgotK3l5MTQ4NzoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnRycpIHsKLUBAIC0yMjAxNywxOCArMjIyMTYsMTggQEAgeXkxNDg1OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0gnKSBnb3RvIHl5MTQ3MTsKLSsJCQlpZiAoeXljaCA8PSAnSCcpIGdvdG8geXkxNDczOwotIAkJCWlmICh5eWNoID09ICdfJykgZ290byB5eTE3MjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ2gnKSBnb3RvIHl5MTQ4NjsKLSsJCQlpZiAoeXljaCA9PSAnaCcpIGdvdG8geXkxNDg4OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3ODsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQ4NjoKLSt5eTE0ODg6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJ1QnKSBnb3RvIHl5MTQ3MjsKLSsJaWYgKHl5Y2ggPT0gJ1QnKSBnb3RvIHl5MTQ3NDsKLSAJaWYgKHl5Y2ggIT0gJ3QnKSBnb3RvIHl5MTc5OwotIAl5eWFjY2VwdCA9IDMwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotQEAgLTIyMDM3LDEzICsyMjIzNiwxMyBAQCB5eTE0ODY6Ci0gCX0KLSAJaWYgKHl5Y2ggPD0gJy4nKSB7Ci0gCQlpZiAoeXljaCA9PSAnLScpIGdvdG8geXkxNzI7Ci0tCQlnb3RvIHl5MTQxODsKLSsJCWdvdG8geXkxNDIwOwotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTcyOwotIAkJaWYgKHl5Y2ggPT0gJ18nKSBnb3RvIHl5MTcyOwotLQkJZ290byB5eTE0MTg7Ci0rCQlnb3RvIHl5MTQyMDsKLSAJfQotLXl5MTQ4ODoKLSt5eTE0OTA6Ci0gCXl5YWNjZXB0ID0gNTsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJzknKSB7Ci1AQCAtMjIwNzEsNyArMjIyNzAsNyBAQCB5eTE0ODg6Ci0gCQkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTIxODsKLSAJCQkJZ290byB5eTE2NzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnQycpIGdvdG8geXkxNDc1OwotKwkJCQlpZiAoeXljaCA8PSAnQycpIGdvdG8geXkxNDc3OwotIAkJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJCWdvdG8geXkyMTg7Ci0gCQkJfQotQEAgLTIyMDgxLDEzICsyMjI4MCwxMyBAQCB5eTE0ODg6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTIxODsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnYycpIGdvdG8geXkxNDkwOwotKwkJCQlpZiAoeXljaCA8PSAnYycpIGdvdG8geXkxNDkyOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkyMTg7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNDg5OgotK3l5MTQ5MToKLSAJeXlhY2NlcHQgPSA1OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnLicpIHsKLUBAIC0yMjEyMiw3ICsyMjMyMSw3IEBAIHl5MTQ4OToKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE0OTA6Ci0reXkxNDkyOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdHJykgewotQEAgLTIyMTUyLDcgKzIyMzUxLDcgQEAgeXkxNDkwOgotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ5MToKLSt5eTE0OTM6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1cnKSB7Ci0gCQlpZiAoeXljaCA8PSAnTicpIHsKLUBAIC0yMjE2MCwyOSArMjIzNTksMjkgQEAgeXkxNDkxOgotIAkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NjsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ08nKSBnb3RvIHl5MTQ5OTsKLSsJCQlpZiAoeXljaCA8PSAnTycpIGdvdG8geXkxNTAxOwotIAkJCWlmICh5eWNoIDw9ICdVJykgZ290byB5eTE2NjsKLS0JCQlpZiAoeXljaCA8PSAnVicpIGdvdG8geXkxNTAwOwotLQkJCWdvdG8geXkxNDk3OwotKwkJCWlmICh5eWNoIDw9ICdWJykgZ290byB5eTE1MDI7Ci0rCQkJZ290byB5eTE0OTk7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnbycpIHsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxNjY7Ci0tCQkJZ290byB5eTE0OTk7Ci0rCQkJZ290byB5eTE1MDE7Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICd2JykgewotIAkJCQlpZiAoeXljaCA8PSAndScpIGdvdG8geXkxNjY7Ci0tCQkJCWdvdG8geXkxNTAwOwotKwkJCQlnb3RvIHl5MTUwMjsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAndycpIGdvdG8geXkxNDk3OwotKwkJCQlpZiAoeXljaCA8PSAndycpIGdvdG8geXkxNDk5OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjY7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTQ5MjoKLSt5eTE0OTQ6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1gnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMjE5MSw3ICsyMjM5MCw3IEBAIHl5MTQ5MjoKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLSAJCQlpZiAoeXljaCA8PSAnVycpIGdvdG8geXkxNjY7Ci0tCQkJZ290byB5eTE0OTY7Ci0rCQkJZ290byB5eTE0OTg7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAndycpIHsKLUBAIC0yMjE5OSwxMiArMjIzOTgsMTIgQEAgeXkxNDkyOgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NjsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ3gnKSBnb3RvIHl5MTQ5NjsKLSsJCQlpZiAoeXljaCA8PSAneCcpIGdvdG8geXkxNDk4OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQ5MzoKLSt5eTE0OTU6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ04nKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMjIyMCwxMiArMjI0MTksMTIgQEAgeXkxNDkzOgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NjsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTQ5NDsKLSsJCQlpZiAoeXljaCA8PSAnbicpIGdvdG8geXkxNDk2OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQ5NDoKLSt5eTE0OTY6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1QnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMjI0MSwxMiArMjI0NDAsMTIgQEAgeXkxNDk0OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTQ5NTsKLSsJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxNDk3OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NzsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQ5NToKLSt5eTE0OTc6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ0gnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMjI2OCw3ICsyMjQ2Nyw3IEBAIHl5MTQ5NToKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQ5NjoKLSt5eTE0OTg6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPD0gJ1QnKSB7Ci0gCQlpZiAoeXljaCA8PSAnKScpIHsKLUBAIC0yMjI3Nyw3ICsyMjQ3Niw3IEBAIHl5MTQ5NjoKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MzsKLSAJCQlpZiAoeXljaCA8PSAnUycpIGdvdG8geXkxNjc7Ci0tCQkJZ290byB5eTE0MjY7Ci0rCQkJZ290byB5eTE0Mjg7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAncycpIHsKLUBAIC0yMjI4NSwyMSArMjI0ODQsMjIgQEAgeXkxNDk2OgotIAkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE2NzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTQyNjsKLSsJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxNDI4OwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NzsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTQ5NzoKLSt5eTE0OTk6Ci0gCSsrWVlDVVJTT1I7Ci0gCWlmICgoeXljaCA9ICpZWUNVUlNPUikgPD0gJ0AnKSB7Ci0gCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0tCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkxNDk4OwotKwkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTUwMDsKLSAJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2NzsKLSAJfQotLXl5MTQ5ODoKLSt5eTE1MDA6Ci0rI2xpbmUgOTgyICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJREVCVUdfT1VUUFVUKCJub3ciKTsKLSAJCVRJTUVMSUJfSU5JVDsKLUBAIC0yMjMwNyw3ICsyMjUwNyw4IEBAIHl5MTQ5ODoKLSAJCVRJTUVMSUJfREVJTklUOwotIAkJcmV0dXJuIFRJTUVMSUJfUkVMQVRJVkU7Ci0gCX0KLS15eTE0OTk6Ci0rI2xpbmUgMjI1MTEgImV4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLmMiCi0reXkxNTAxOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdOJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjIzMTYsNyArMjI1MTcsNyBAQCB5eTE0OTk6Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTM7Ci0gCQkJaWYgKHl5Y2ggPD0gJ00nKSBnb3RvIHl5MTY3OwotLQkJCWdvdG8geXkxNTA1OwotKwkJCWdvdG8geXkxNTA3OwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ20nKSB7Ci1AQCAtMjIzMjQsMTIgKzIyNTI1LDEyIEBAIHl5MTQ5OToKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE1MDU7Ci0rCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTUwNzsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE1MDA6Ci0reXkxNTAyOgotIAl5eWFjY2VwdCA9IDU7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICcvJykgewotQEAgLTIyMzY0LDEzICsyMjU2NSwxMyBAQCB5eTE1MDA6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTIxODsKLSAJCQkJZ290byB5eTE2NzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNTAxOwotKwkJCQlpZiAoeXljaCA8PSAnZScpIGdvdG8geXkxNTAzOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJCWdvdG8geXkyMTg7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNTAxOgotK3l5MTUwMzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnTScpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIyMzg2LDEyICsyMjU4NywxMiBAQCB5eTE1MDE6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY4OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnbScpIGdvdG8geXkxNTAyOwotKwkJCWlmICh5eWNoIDw9ICdtJykgZ290byB5eTE1MDQ7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNTAyOgotK3l5MTUwNDoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA8PSAnQicpIHsKLSAJCWlmICh5eWNoIDw9ICcpJykgewotQEAgLTIyNDA3LDM2ICsyMjYwOCwzNyBAQCB5eTE1MDI6Ci0gCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTY5OwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA8PSAnYicpIGdvdG8geXkxNTAzOwotKwkJCWlmICh5eWNoIDw9ICdiJykgZ290byB5eTE1MDU7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTY5OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNTAzOgotK3l5MTUwNToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnRCcpIHsKLSAJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLSAJCWdvdG8geXkzOwotIAl9IGVsc2UgewotLQkJaWYgKHl5Y2ggPD0gJ0UnKSBnb3RvIHl5MTUwNDsKLSsJCWlmICh5eWNoIDw9ICdFJykgZ290byB5eTE1MDY7Ci0gCQlpZiAoeXljaCAhPSAnZScpIGdvdG8geXkzOwotIAl9Ci0teXkxNTA0OgotK3l5MTUwNjoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotIAlpZiAoeXljaCA9PSAnUicpIGdvdG8geXkyMjk7Ci0gCWlmICh5eWNoID09ICdyJykgZ290byB5eTIyOTsKLSAJZ290byB5eTU2OwotLXl5MTUwNToKLSt5eTE1MDc6Ci0gCSsrWVlDVVJTT1I7Ci0gCWlmICgoeXljaCA9ICpZWUNVUlNPUikgPD0gJ0AnKSB7Ci0gCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjg7Ci0tCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkxNTA2OwotKwkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTUwODsKLSAJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE2ODsKLSAJfQotLXl5MTUwNjoKLSt5eTE1MDg6Ci0rI2xpbmUgOTkxICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAJewotIAkJREVCVUdfT1VUUFVUKCJub29uIik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtMjI0NDcsNyArMjI2NDksOCBAQCB5eTE1MDY6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1JFTEFUSVZFOwotIAl9Ci0teXkxNTA3OgotKyNsaW5lIDIyNjUzICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotK3l5MTUwOToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnVicpIHsKLUBAIC0yMjQ2NSwxNSArMjI2NjgsMTUgQEAgeXkxNTA3OgotIAkJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTY2OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdPJykgZ290byB5eTE0OTk7Ci0rCQkJCWlmICh5eWNoIDw9ICdPJykgZ290byB5eTE1MDE7Ci0gCQkJCWlmICh5eWNoIDw9ICdVJykgZ290byB5eTE2NjsKLS0JCQkJZ290byB5eTE1MDA7Ci0rCQkJCWdvdG8geXkxNTAyOwotIAkJCX0KLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICduJykgewotIAkJCWlmICh5eWNoIDw9ICdeJykgewotLQkJCQlpZiAoeXljaCA8PSAnVycpIGdvdG8geXkxNDk3OwotKwkJCQlpZiAoeXljaCA8PSAnVycpIGdvdG8geXkxNDk5OwotIAkJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjY7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0gZWxzZSB7Ci1AQCAtMjI0ODMsMTcgKzIyNjg2LDE3IEBAIHl5MTUwNzoKLSAJCQl9Ci0gCQl9IGVsc2UgewotIAkJCWlmICh5eWNoIDw9ICd2JykgewotLQkJCQlpZiAoeXljaCA8PSAnbycpIGdvdG8geXkxNTE0OwotKwkJCQlpZiAoeXljaCA8PSAnbycpIGdvdG8geXkxNTE2OwotIAkJCQlpZiAoeXljaCA8PSAndScpIGdvdG8geXkxNzE7Ci0tCQkJCWdvdG8geXkxNTE1OwotKwkJCQlnb3RvIHl5MTUxNzsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAndycpIGdvdG8geXkxNTEzOwotKwkJCQlpZiAoeXljaCA8PSAndycpIGdvdG8geXkxNTE1OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzE7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTUwODoKLSt5eTE1MTA6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ1cnKSB7Ci1AQCAtMjI1MDgsNyArMjI3MTEsNyBAQCB5eTE1MDg6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnWCcpIGdvdG8geXkxNDk2OwotKwkJCWlmICh5eWNoIDw9ICdYJykgZ290byB5eTE0OTg7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY2OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMjUxNywxMyArMjI3MjAsMTMgQEAgeXkxNTA4OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTcxOwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICd4JykgZ290byB5eTE1MTI7Ci0rCQkJCWlmICh5eWNoIDw9ICd4JykgZ290byB5eTE1MTQ7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3MTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNTA5OgotK3l5MTUxMToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnTScpIHsKLUBAIC0yMjUzOCw3ICsyMjc0MSw3IEBAIHl5MTUwOToKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdOJykgZ290byB5eTE0OTQ7Ci0rCQkJaWYgKHl5Y2ggPD0gJ04nKSBnb3RvIHl5MTQ5NjsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIyNTQ3LDEzICsyMjc1MCwxMyBAQCB5eTE1MDk6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzE7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTUxMDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ24nKSBnb3RvIHl5MTUxMjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcxOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE1MTA6Ci0reXkxNTEyOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdTJykgewotQEAgLTIyNTY4LDcgKzIyNzcxLDcgQEAgeXkxNTEwOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTQ5NTsKLSsJCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxNDk3OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjI1NzcsMTMgKzIyNzgwLDEzIEBAIHl5MTUxMDoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxNTExOwotKwkJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxNTEzOwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTUxMToKLSt5eTE1MTM6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0cnKSB7Ci1AQCAtMjI2MTMsNyArMjI4MTYsNyBAQCB5eTE1MTE6Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNTEyOgotK3l5MTUxNDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUycpIHsKLUBAIC0yMjYyOCw3ICsyMjgzMSw3IEBAIHl5MTUxMjoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdUJykgZ290byB5eTE0MjY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTQyODsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIyNjM3LDM2ICsyMjg0MCwzNiBAQCB5eTE1MTI6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzU7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTQ1ODsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTQ2MDsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc1OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE1MTM6Ci0reXkxNTE1OgotIAl5eWFjY2VwdCA9IDMxOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnLycpIHsKLSAJCWlmICh5eWNoIDw9ICcsJykgewotIAkJCWlmICh5eWNoID09ICcpJykgZ290byB5eTE2NDsKLS0JCQlnb3RvIHl5MTQ5ODsKLSsJCQlnb3RvIHl5MTUwMDsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJy4nKSBnb3RvIHl5MTQ5ODsKLSsJCQlpZiAoeXljaCA9PSAnLicpIGdvdG8geXkxNTAwOwotIAkJCWdvdG8geXkxNzI7Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXicpIHsKLS0JCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkxNDk4OwotKwkJCWlmICh5eWNoIDw9ICdAJykgZ290byB5eTE1MDA7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotLQkJCWdvdG8geXkxNDk4OwotKwkJCWdvdG8geXkxNTAwOwotIAkJfSBlbHNlIHsKLSAJCQlpZiAoeXljaCA8PSAnXycpIGdvdG8geXkxNzI7Ci0tCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTQ5ODsKLSsJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkxNTAwOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLS0JCQlnb3RvIHl5MTQ5ODsKLSsJCQlnb3RvIHl5MTUwMDsKLSAJCX0KLSAJfQotLXl5MTUxNDoKLSt5eTE1MTY6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ00nKSB7Ci1AQCAtMjI2ODEsNyArMjI4ODQsNyBAQCB5eTE1MTQ6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnTicpIGdvdG8geXkxNTA1OwotKwkJCWlmICh5eWNoIDw9ICdOJykgZ290byB5eTE1MDc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY3OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMjY5MCwxMyArMjI4OTMsMTMgQEAgeXkxNTE0OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE1MjA7Ci0rCQkJCWlmICh5eWNoIDw9ICduJykgZ290byB5eTE1MjI7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNTE1OgotK3l5MTUxNzoKLSAJeXlhY2NlcHQgPSA1OwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnOScpIHsKLUBAIC0yMjcyNCw3ICsyMjkyNyw3IEBAIHl5MTUxNToKLSAJCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MjE4OwotIAkJCQlnb3RvIHl5MTY3OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdFJykgZ290byB5eTE1MDE7Ci0rCQkJCWlmICh5eWNoIDw9ICdFJykgZ290byB5eTE1MDM7Ci0gCQkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQkJZ290byB5eTIxODsKLSAJCQl9Ci1AQCAtMjI3MzQsMTMgKzIyOTM3LDEzIEBAIHl5MTUxNToKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MjE4OwotIAkJCQlnb3RvIHl5MTc1OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE1MTY7Ci0rCQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE1MTg7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NTsKLSAJCQkJZ290byB5eTIxODsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE1MTY6Ci0reXkxNTE4OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdMJykgewotQEAgLTIyNzU1LDcgKzIyOTU4LDcgQEAgeXkxNTE2OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ00nKSBnb3RvIHl5MTUwMjsKLSsJCQlpZiAoeXljaCA8PSAnTScpIGdvdG8geXkxNTA0OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjI3NjQsMTMgKzIyOTY3LDEzIEBAIHl5MTUxNjoKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NjsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAnbScpIGdvdG8geXkxNTE3OwotKwkJCQlpZiAoeXljaCA8PSAnbScpIGdvdG8geXkxNTE5OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzY7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTUxNzoKLSt5eTE1MTk6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0EnKSB7Ci1AQCAtMjI3ODUsNyArMjI5ODgsNyBAQCB5eTE1MTc6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnQicpIGdvdG8geXkxNTAzOwotKwkJCWlmICh5eWNoIDw9ICdCJykgZ290byB5eTE1MDU7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY5OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMjc5NCwxMyArMjI5OTcsMTMgQEAgeXkxNTE3OgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc3OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdiJykgZ290byB5eTE1MTg7Ci0rCQkJCWlmICh5eWNoIDw9ICdiJykgZ290byB5eTE1MjA7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NzsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNTE4OgotK3l5MTUyMDoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnRCcpIHsKLUBAIC0yMjgxNCw0NCArMjMwMTcsNDQgQEAgeXkxNTE4OgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ2AnKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0UnKSBnb3RvIHl5MTUwNDsKLSsJCQlpZiAoeXljaCA8PSAnRScpIGdvdG8geXkxNTA2OwotIAkJCWlmICh5eWNoID09ICdfJykgZ290byB5eTE3MjsKLSAJCQlnb3RvIHl5MzsKLSAJCX0gZWxzZSB7Ci0tCQkJaWYgKHl5Y2ggPT0gJ2UnKSBnb3RvIHl5MTUxOTsKLSsJCQlpZiAoeXljaCA9PSAnZScpIGdvdG8geXkxNTIxOwotIAkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3ODsKLSAJCQlnb3RvIHl5MzsKLSAJCX0KLSAJfQotLXl5MTUxOToKLSt5eTE1MjE6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLSAJaWYgKHl5Y2ggPT0gJ1InKSBnb3RvIHl5MjI5OwotIAlpZiAoeXljaCA9PSAncicpIGdvdG8geXkzNDE7Ci0gCWdvdG8geXkxNzk7Ci0teXkxNTIwOgotK3l5MTUyMjoKLSAJeXlhY2NlcHQgPSAzMjsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJy8nKSB7Ci0gCQlpZiAoeXljaCA8PSAnLCcpIHsKLSAJCQlpZiAoeXljaCA9PSAnKScpIGdvdG8geXkxNjQ7Ci0tCQkJZ290byB5eTE1MDY7Ci0rCQkJZ290byB5eTE1MDg7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoID09ICcuJykgZ290byB5eTE1MDY7Ci0rCQkJaWYgKHl5Y2ggPT0gJy4nKSBnb3RvIHl5MTUwODsKLSAJCQlnb3RvIHl5MTcyOwotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ14nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ0AnKSBnb3RvIHl5MTUwNjsKLSsJCQlpZiAoeXljaCA8PSAnQCcpIGdvdG8geXkxNTA4OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2ODsKLS0JCQlnb3RvIHl5MTUwNjsKLSsJCQlnb3RvIHl5MTUwODsKLSAJCX0gZWxzZSB7Ci0gCQkJaWYgKHl5Y2ggPD0gJ18nKSBnb3RvIHl5MTcyOwotLQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTE1MDY7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MTUwODsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzY7Ci0tCQkJZ290byB5eTE1MDY7Ci0rCQkJZ290byB5eTE1MDg7Ci0gCQl9Ci0gCX0KLS15eTE1MjE6Ci0reXkxNTIzOgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdTJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjI4NjcsMTIgKzIzMDcwLDEyIEBAIHl5MTUyMToKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjY7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdzJykgZ290byB5eTE1MjI7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3MnKSBnb3RvIHl5MTUyNDsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjY7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE1MjI6Ci0reXkxNTI0OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdUJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjI4ODgsMTIgKzIzMDkxLDEyIEBAIHl5MTUyMjoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjc7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICd0JykgZ290byB5eTE1MjM7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3QnKSBnb3RvIHl5MTUyNTsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjc7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE1MjM6Ci0reXkxNTI1OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdFJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjI5MDksMTIgKzIzMTEyLDEyIEBAIHl5MTUyMzoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjg7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE1MjQ7Ci0rCQkJaWYgKHl5Y2ggPD0gJ2UnKSBnb3RvIHl5MTUyNjsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjg7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE1MjQ6Ci0reXkxNTI2OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0gCWlmICh5eWNoIDw9ICdSJykgewotIAkJaWYgKHl5Y2ggPD0gJyknKSB7Ci1AQCAtMjI5MzAsMzIgKzIzMTMzLDMzIEBAIHl5MTUyNDoKLSAJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNjk7Ci0gCQl9IGVsc2UgewotLQkJCWlmICh5eWNoIDw9ICdyJykgZ290byB5eTE1MjU7Ci0rCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTUyNzsKLSAJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNjk7Ci0gCQkJZ290byB5eTM7Ci0gCQl9Ci0gCX0KLS15eTE1MjU6Ci0reXkxNTI3OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdDJykgewotIAkJaWYgKHl5Y2ggPT0gJyknKSBnb3RvIHl5MTY0OwotIAkJZ290byB5eTM7Ci0gCX0gZWxzZSB7Ci0tCQlpZiAoeXljaCA8PSAnRCcpIGdvdG8geXkxNTI2OwotKwkJaWYgKHl5Y2ggPD0gJ0QnKSBnb3RvIHl5MTUyODsKLSAJCWlmICh5eWNoICE9ICdkJykgZ290byB5eTM7Ci0gCX0KLS15eTE1MjY6Ci0reXkxNTI4OgotIAl5eWNoID0gKisrWVlDVVJTT1I7Ci0tCWlmICh5eWNoID09ICdBJykgZ290byB5eTE1Mjc7Ci0rCWlmICh5eWNoID09ICdBJykgZ290byB5eTE1Mjk7Ci0gCWlmICh5eWNoICE9ICdhJykgZ290byB5eTU2OwotLXl5MTUyNzoKLSt5eTE1Mjk6Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJ1knKSBnb3RvIHl5MTUyODsKLSsJaWYgKHl5Y2ggPT0gJ1knKSBnb3RvIHl5MTUzMDsKLSAJaWYgKHl5Y2ggIT0gJ3knKSBnb3RvIHl5NTY7Ci0teXkxNTI4OgotK3l5MTUzMDoKLSAJKytZWUNVUlNPUjsKLS15eTE1Mjk6Ci0reXkxNTMxOgotKyNsaW5lIDk3MCAiZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUiCi0gCXsKLSAJCURFQlVHX09VVFBVVCgieWVzdGVyZGF5Iik7Ci0gCQlUSU1FTElCX0lOSVQ7Ci1AQCAtMjI5NjYsNyArMjMxNzAsOCBAQCB5eTE1Mjk6Ci0gCQlUSU1FTElCX0RFSU5JVDsKLSAJCXJldHVybiBUSU1FTElCX1JFTEFUSVZFOwotIAl9Ci0teXkxNTMwOgotKyNsaW5lIDIzMTc0ICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5jIgotK3l5MTUzMjoKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUicpIHsKLUBAIC0yMjk4MSw3ICsyMzE4Niw3IEBAIHl5MTUzMDoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdTJykgZ290byB5eTE1MjI7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1MnKSBnb3RvIHl5MTUyNDsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIyOTkwLDEzICsyMzE5NSwxMyBAQCB5eTE1MzA6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzE7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3MnKSBnb3RvIHl5MTUzMTsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3MnKSBnb3RvIHl5MTUzMzsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTcxOwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE1MzE6Ci0reXkxNTMzOgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdTJykgewotQEAgLTIzMDExLDcgKzIzMjE2LDcgQEAgeXkxNTMxOgotIAkJfQotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJ18nKSB7Ci0tCQkJaWYgKHl5Y2ggPD0gJ1QnKSBnb3RvIHl5MTUyMzsKLSsJCQlpZiAoeXljaCA8PSAnVCcpIGdvdG8geXkxNTI1OwotIAkJCWlmICh5eWNoIDw9ICdaJykgZ290byB5eTE2NzsKLSAJCQlpZiAoeXljaCA8PSAnXicpIGdvdG8geXkzOwotIAkJCWdvdG8geXkxNzI7Ci1AQCAtMjMwMjAsMTMgKzIzMjI1LDEzIEBAIHl5MTUzMToKLSAJCQkJaWYgKHl5Y2ggPD0gJ2AnKSBnb3RvIHl5MzsKLSAJCQkJZ290byB5eTE3NTsKLSAJCQl9IGVsc2UgewotLQkJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxNTMyOwotKwkJCQlpZiAoeXljaCA8PSAndCcpIGdvdG8geXkxNTM0OwotIAkJCQlpZiAoeXljaCA8PSAneicpIGdvdG8geXkxNzU7Ci0gCQkJCWdvdG8geXkzOwotIAkJCX0KLSAJCX0KLSAJfQotLXl5MTUzMjoKLSt5eTE1MzQ6Ci0gCXl5YWNjZXB0ID0gMDsKLSAJeXljaCA9ICooWVlNQVJLRVIgPSArK1lZQ1VSU09SKTsKLSAJaWYgKHl5Y2ggPD0gJ0QnKSB7Ci1AQCAtMjMwNDEsNyArMjMyNDYsNyBAQCB5eTE1MzI6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnXycpIHsKLS0JCQlpZiAoeXljaCA8PSAnRScpIGdvdG8geXkxNTI0OwotKwkJCWlmICh5eWNoIDw9ICdFJykgZ290byB5eTE1MjY7Ci0gCQkJaWYgKHl5Y2ggPD0gJ1onKSBnb3RvIHl5MTY4OwotIAkJCWlmICh5eWNoIDw9ICdeJykgZ290byB5eTM7Ci0gCQkJZ290byB5eTE3MjsKLUBAIC0yMzA1MCwxMyArMjMyNTUsMTMgQEAgeXkxNTMyOgotIAkJCQlpZiAoeXljaCA8PSAnYCcpIGdvdG8geXkzOwotIAkJCQlnb3RvIHl5MTc2OwotIAkJCX0gZWxzZSB7Ci0tCQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE1MzM7Ci0rCQkJCWlmICh5eWNoIDw9ICdlJykgZ290byB5eTE1MzU7Ci0gCQkJCWlmICh5eWNoIDw9ICd6JykgZ290byB5eTE3NjsKLSAJCQkJZ290byB5eTM7Ci0gCQkJfQotIAkJfQotIAl9Ci0teXkxNTMzOgotK3l5MTUzNToKLSAJeXlhY2NlcHQgPSAwOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotIAlpZiAoeXljaCA8PSAnUScpIHsKLUBAIC0yMzA3MSw3ICsyMzI3Niw3IEBAIHl5MTUzMzoKLSAJCX0KLSAJfSBlbHNlIHsKLSAJCWlmICh5eWNoIDw9ICdfJykgewotLQkJCWlmICh5eWNoIDw9ICdSJykgZ290byB5eTE1MjU7Ci0rCQkJaWYgKHl5Y2ggPD0gJ1InKSBnb3RvIHl5MTUyNzsKLSAJCQlpZiAoeXljaCA8PSAnWicpIGdvdG8geXkxNjk7Ci0gCQkJaWYgKHl5Y2ggPD0gJ14nKSBnb3RvIHl5MzsKLSAJCQlnb3RvIHl5MTcyOwotQEAgLTIzMDgwLDEzICsyMzI4NSwxMyBAQCB5eTE1MzM6Ci0gCQkJCWlmICh5eWNoIDw9ICdgJykgZ290byB5eTM7Ci0gCQkJCWdvdG8geXkxNzc7Ci0gCQkJfSBlbHNlIHsKLS0JCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTUzNDsKLSsJCQkJaWYgKHl5Y2ggPD0gJ3InKSBnb3RvIHl5MTUzNjsKLSAJCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc3OwotIAkJCQlnb3RvIHl5MzsKLSAJCQl9Ci0gCQl9Ci0gCX0KLS15eTE1MzQ6Ci0reXkxNTM2OgotIAl5eWFjY2VwdCA9IDA7Ci0gCXl5Y2ggPSAqKFlZTUFSS0VSID0gKytZWUNVUlNPUik7Ci0gCWlmICh5eWNoIDw9ICdDJykgewotQEAgLTIzMTAwLDIxICsyMzMwNSwyMSBAQCB5eTE1MzQ6Ci0gCQl9Ci0gCX0gZWxzZSB7Ci0gCQlpZiAoeXljaCA8PSAnYCcpIHsKLS0JCQlpZiAoeXljaCA8PSAnRCcpIGdvdG8geXkxNTI2OwotKwkJCWlmICh5eWNoIDw9ICdEJykgZ290byB5eTE1Mjg7Ci0gCQkJaWYgKHl5Y2ggPT0gJ18nKSBnb3RvIHl5MTcyOwotIAkJCWdvdG8geXkzOwotIAkJfSBlbHNlIHsKLS0JCQlpZiAoeXljaCA9PSAnZCcpIGdvdG8geXkxNTM1OwotKwkJCWlmICh5eWNoID09ICdkJykgZ290byB5eTE1Mzc7Ci0gCQkJaWYgKHl5Y2ggPD0gJ3onKSBnb3RvIHl5MTc4OwotIAkJCWdvdG8geXkzOwotIAkJfQotIAl9Ci0teXkxNTM1OgotK3l5MTUzNzoKLSAJeXljaCA9ICorK1lZQ1VSU09SOwotLQlpZiAoeXljaCA9PSAnQScpIGdvdG8geXkxNTI3OwotKwlpZiAoeXljaCA9PSAnQScpIGdvdG8geXkxNTI5OwotIAlpZiAoeXljaCAhPSAnYScpIGdvdG8geXkxNzk7Ci0gCXl5Y2ggPSAqKytZWUNVUlNPUjsKLS0JaWYgKHl5Y2ggPT0gJ1knKSBnb3RvIHl5MTUyODsKLSsJaWYgKHl5Y2ggPT0gJ1knKSBnb3RvIHl5MTUzMDsKLSAJaWYgKHl5Y2ggIT0gJ3knKSBnb3RvIHl5MTc5OwotIAl5eWFjY2VwdCA9IDMzOwotIAl5eWNoID0gKihZWU1BUktFUiA9ICsrWVlDVVJTT1IpOwotQEAgLTIzMTIzLDEzICsyMzMyOCwxNCBAQCB5eTE1MzU6Ci0gCX0KLSAJaWYgKHl5Y2ggPD0gJy4nKSB7Ci0gCQlpZiAoeXljaCA9PSAnLScpIGdvdG8geXkxNzI7Ci0tCQlnb3RvIHl5MTUyOTsKLSsJCWdvdG8geXkxNTMxOwotIAl9IGVsc2UgewotIAkJaWYgKHl5Y2ggPD0gJy8nKSBnb3RvIHl5MTcyOwotIAkJaWYgKHl5Y2ggPT0gJ18nKSBnb3RvIHl5MTcyOwotLQkJZ290byB5eTE1Mjk7Ci0rCQlnb3RvIHl5MTUzMTsKLSAJfQotIH0KLSsjbGluZSAxNzcyICJleHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZSIKLSAKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEvZXh0L2RhdGUvbGliL3BhcnNlX2RhdGUucmUgYi9leHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZQotaW5kZXggNzRkOWVhMy4uZjI2ZTI3NiAxMDA2NDQKLS0tLSBhL2V4dC9kYXRlL2xpYi9wYXJzZV9kYXRlLnJlCi0rKysgYi9leHQvZGF0ZS9saWIvcGFyc2VfZGF0ZS5yZQotQEAgLTkzMSw4ICs5MzEsOCBAQCBpc293ZWVrICAgICAgICAgID0geWVhcjQgIi0iPyAiVyIgd2Vla29meWVhcjsKLSBleGlmICAgICAgICAgICAgID0geWVhcjQgIjoiIG1vbnRobHogIjoiIGRheWx6ICIgIiBob3VyMjRseiAiOiIgbWludXRlbHogIjoiIHNlY29uZGx6OwotIGZpcnN0ZGF5b2YgICAgICAgPSAnZmlyc3QgZGF5IG9mJzsKLSBsYXN0ZGF5b2YgICAgICAgID0gJ2xhc3QgZGF5IG9mJzsKLS1iYWNrb2YgICAgICAgICAgID0gJ2JhY2sgb2YgJyBob3VyMjQgc3BhY2U/IG1lcmlkaWFuPzsKLS1mcm9udG9mICAgICAgICAgID0gJ2Zyb250IG9mICcgaG91cjI0IHNwYWNlPyBtZXJpZGlhbj87Ci0rYmFja29mICAgICAgICAgICA9ICdiYWNrIG9mICcgaG91cjI0IChzcGFjZT8gbWVyaWRpYW4pPzsKLStmcm9udG9mICAgICAgICAgID0gJ2Zyb250IG9mICcgaG91cjI0IChzcGFjZT8gbWVyaWRpYW4pPzsKLSAKLSAvKiBDb21tb24gTG9nIEZvcm1hdDogMTAvT2N0LzIwMDA6MTM6NTU6MzYgLTA3MDAgKi8KLSBjbGYgICAgICAgICAgICAgID0gZGF5ICIvIiBtb250aGFiYnIgIi8iIHllYXI0ICI6IiBob3VyMjRseiAiOiIgbWludXRlbHogIjoiIHNlY29uZGx6IHNwYWNlIHR6Y29ycmVjdGlvbjsKLWRpZmYgLS1naXQgYS9leHQvZGF0ZS90ZXN0cy9idWc1MzQzN192YXIzLnBocHQgYi9leHQvZGF0ZS90ZXN0cy9idWc1MzQzN192YXIzLnBocHQKLWluZGV4IDhmNDhiMWIuLjhkY2Q0YzggMTAwNjQ0Ci0tLS0gYS9leHQvZGF0ZS90ZXN0cy9idWc1MzQzN192YXIzLnBocHQKLSsrKyBiL2V4dC9kYXRlL3Rlc3RzL2J1ZzUzNDM3X3ZhcjMucGhwdAotQEAgLTQwLDcgKzQwLDcgQEAgb2JqZWN0KERhdGVJbnRlcnZhbCkjJWQgKDE2KSB7Ci0gICBbInNwZWNpYWxfYW1vdW50Il09PgotICAgaW50KC0xKQotICAgWyJoYXZlX3dlZWtkYXlfcmVsYXRpdmUiXT0+Ci0tICBpbnQoOSkKLSsgIGludCgwKQotICAgWyJoYXZlX3NwZWNpYWxfcmVsYXRpdmUiXT0+Ci0gICBpbnQoMCkKLSAgIFsiZiJdPT4KLWRpZmYgLS1naXQgYS9leHQvd2RkeC90ZXN0cy9idWc3NTA1NS5waHB0IGIvZXh0L3dkZHgvdGVzdHMvYnVnNzUwNTUucGhwdAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjI5NTYyODQKLS0tLSAvZGV2L251bGwKLSsrKyBiL2V4dC93ZGR4L3Rlc3RzL2J1Zzc1MDU1LnBocHQKLUBAIC0wLDAgKzEsMjAgQEAKLSstLVRFU1QtLQotK0J1ZyAjNzUwNTUgT3V0LU9mLUJvdW5kcyBSZWFkIGluIHRpbWVsaWJfbWVyaWRpYW4oKQotKy0tU0tJUElGLS0KLSs8P3BocCBpZiAoIWV4dGVuc2lvbl9sb2FkZWQoIndkZHgiKSkgcHJpbnQgInNraXAiOyA/PgotKy0tRklMRS0tCi0rPD9waHAKLSsKLSskZmlsZV9zdHIgPSBkaXJuYW1lKF9fRklMRV9fKSAuICIvYnVnNzUwNTUud2RkeCI7Ci0rCi0rJHdkZHhfc3RyID0gZmlsZV9nZXRfY29udGVudHMoJGZpbGVfc3RyKTsKLStwcmludCBzdHJsZW4oJHdkZHhfc3RyKSAuICIgYnl0ZXMgcmVhZC5cbiI7Ci0rCi0rdmFyX2R1bXAod2RkeF9kZXNlcmlhbGl6ZSgkd2RkeF9zdHIpKTsKLSs/PgotKy0tRVhQRUNULS0KLSszMjMgYnl0ZXMgcmVhZC4KLSthcnJheSgxKSB7Ci0rICBbImFEYXRlVGltZSJdPT4KLSsgIHN0cmluZygxMikgImZyT050IG9mIDAgMCIKLSt9Ci1kaWZmIC0tZ2l0IGEvZXh0L3dkZHgvdGVzdHMvYnVnNzUwNTUud2RkeCBiL2V4dC93ZGR4L3Rlc3RzL2J1Zzc1MDU1LndkZHgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi42NDkzMzUyCi0tLS0gL2Rldi9udWxsCi0rKysgYi9leHQvd2RkeC90ZXN0cy9idWc3NTA1NS53ZGR4Ci1AQCAtMCwwICsxLDEzIEBACi0rPD94bWwgdmVyc2lvbj0nMS4wJz8+Ci0rPCFET0NUWVBFIHdkZHhQYWNrZXQgU1lTVEVNICd3ZGR4XzAxMDAuZHRkJz4KLSs8d2RkeFBhY2tldCB2ZXJzaW9uPScxLjAnPgotKzxoZWFkZXIvPgotKwk8ZGF0YT4KLSsgICAgICAgIAk8c3RydWN0PgotKyAgICAgICAgICAgICAgICAgICAgPHZhciBuYW1lPSdhRGF0ZVRpbWUnPgotKyAgICAgICAgICAgICAgICAgICAgICAgICA8ZGF0ZVRpbWU+ZnJPTnQgb2YgMCAwPC9kYXRlVGltZT4KLSsgICAgICAgICAgICAgICAgICAgICA8L3Zhcj4KLSsgICAgICAgICAgICAgICAgPC9zdHJ1Y3Q+Ci0rCTwvZGF0YT4KLSs8L3dkZHhQYWNrZXQ+Ci0rCi0tLSAKLTIuMTEuMAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLTcuMS45L2NoYW5nZS1BQ19UUllfUlVOLXRvLUFDX1RSWV9MSU5LLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC03LjEuOS9jaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzljMzM0Zi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLTcuMS45L2NoYW5nZS1BQ19UUllfUlVOLXRvLUFDX1RSWV9MSU5LLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotW1BBVENIXSBjb25maWcubTQ6IGNoYW5nZSBBQ19UUllfUlVOIHRvIEFDX1RSWV9MSU5LCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1BQ19UUllfUlVOIGlzIG5vdCBzdWl0YWJsZSBmb3IgY3Jvc3MtY29tcGlsZQotCi1TaWduZWQtb2ZmLWJ5OiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBleHQvZmlsZWluZm8vY29uZmlnLm00IHwgMzEgKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNCBiL2V4dC9maWxlaW5mby9jb25maWcubTQKLWluZGV4IDdlOThkNjIuLjhhOGVhMGUgMTAwNjQ0Ci0tLS0gYS9leHQvZmlsZWluZm8vY29uZmlnLm00Ci0rKysgYi9leHQvZmlsZWluZm8vY29uZmlnLm00Ci1AQCAtMTQsMzEgKzE0LDEyIEBAIGlmIHRlc3QgIiRQSFBfRklMRUlORk8iICE9ICJubyI7IHRoZW4KLSAgICAgbGlibWFnaWMvcmVhZGNkZi5jIGxpYm1hZ2ljL3NvZnRtYWdpYy5jIgotIAotICAgQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3RyY2FzZXN0cl0pCi0tICBBQ19UUllfUlVOKFsKLS0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0tI2luY2x1ZGUgPHN0cmluZ3MuaD4KLS0jaW5jbHVkZSA8c3RkbGliLmg+Ci0tCi0taW50IG1haW4odm9pZCkKLS17Ci0tICAgICAgICBjaGFyICpzMCwgKnMxLCAqcmV0OwotLQotLSAgICAgICAgczAgPSAoY2hhciAqKSBtYWxsb2MoNDIpOwotLSAgICAgICAgczEgPSAoY2hhciAqKSBtYWxsb2MoOCk7Ci0tCi0tICAgICAgICBtZW1zZXQoczAsICdYJywgNDIpOwotLSAgICAgICAgczBbMjRdID0gJ1knOwotLSAgICAgICAgczBbMjZdID0gJ1onOwotLSAgICAgICAgczBbNDFdID0gJ1wwJzsKLS0gICAgICAgIG1lbXNldChzMSwgJ3gnLCA4KTsKLS0gICAgICAgIHMxWzBdID0gJ3knOwotLSAgICAgICAgczFbMl0gPSAnWic7Ci0tICAgICAgICBzMVs3XSA9ICdcMCc7Ci0tCi0tICAgICAgICByZXQgPSBzdHJjYXNlc3RyKHMwLCBzMSk7Ci0tCi0tICAgICAgICByZXR1cm4gIShOVUxMICE9IHJldCk7Ci0tfQotKyAgQUNfVFJZX0NPTVBJTEUoWwotKyAgICAgI2luY2x1ZGUgPHN0cmluZy5oPgotKyAgICAgI2luY2x1ZGUgPHN0cmluZ3MuaD4KLSsgICAgICNpbmNsdWRlIDxzdGRsaWIuaD4KLSsgIF0sWwotKyAgICAgc3RyY2FzZXN0cihOVUxMLCBOVUxMKTsKLSAgIF0sWwotICAgICBkbmwgdXNpbmcgdGhlIHBsYXRmb3JtIGltcGxlbWVudGF0aW9uCi0gICAgIEFDX01TR19SRVNVTFQoeWVzKQotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAuaW5jCmluZGV4IDI4M2Q2MzAuLjA2NmI5N2MgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAuaW5jCkBAIC02LDI2ICs2LDIyIEBACiAKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgogREVQRU5EUyA9ICJ6bGliIGJ6aXAyIGxpYnhtbDIgdmlydHVhbC9saWJpY29udiBwaHAtbmF0aXZlIGxlbW9uLW5hdGl2ZSBcCi0gICAgICAgICAgIG9wZW5zc2wgbGlibWNyeXB0IgorICAgICAgICAgICBvcGVuc3NsIgogREVQRU5EU19jbGFzcy1uYXRpdmUgPSAiemxpYi1uYXRpdmUgbGlieG1sMi1uYXRpdmUiCiAKIFBIUF9NQUpPUl9WRVJTSU9OID0gIiR7QGQuZ2V0VmFyKCdQVicsIFRydWUpLnNwbGl0KCcuJylbMF19IgogCiBTUkNfVVJJID0gImh0dHA6Ly9waHAubmV0L2Rpc3RyaWJ1dGlvbnMvcGhwLSR7UFZ9LnRhci5iejIgXAotICAgICAgICAgICBmaWxlOi8vYWNpbmNsdWRlLXhtbDItY29uZmlnLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtcGhwLWRvbi10LXVzZS1icm9rZW4td3JhcHBlci1mb3ItbWtkaXIucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1hY2luY2x1ZGUtdXNlLXBrZ2NvbmZpZy1mb3ItbGlieG1sMi1jb25maWcucGF0Y2ggXAogICAgICAgICAgICIKIAogU1JDX1VSSV9hcHBlbmRfY2xhc3MtdGFyZ2V0ID0gIiBcCiAgICAgICAgICAgICBmaWxlOi8vaWNvbnYucGF0Y2ggXAogICAgICAgICAgICAgZmlsZTovL2ltYXAtZml4LWF1dG9mb28ucGF0Y2ggXAotICAgICAgICAgICAgZmlsZTovL3BlYXItbWFrZWZpbGUucGF0Y2ggXAotICAgICAgICAgICAgZmlsZTovL3BoYXItbWFrZWZpbGUucGF0Y2ggXAogICAgICAgICAgICAgZmlsZTovL3BocF9leGVjX25hdGl2ZS5wYXRjaCBcCiAgICAgICAgICAgICBmaWxlOi8vcGhwLWZwbS5jb25mIFwKICAgICAgICAgICAgIGZpbGU6Ly9waHAtZnBtLWFwYWNoZS5jb25mIFwKLSAgICAgICAgICAgIGZpbGU6Ly9jb25maWd1cmUucGF0Y2ggXAorICAgICAgICAgICAgZmlsZTovLzAwMDEtYWNpbmNsdWRlLm00LWRvbi10LXVuc2V0LWNhY2hlLXZhcmlhYmxlcy5wYXRjaCBcCiAgICAgICAgICAgICBmaWxlOi8vNzBfbW9kX3BocCR7UEhQX01BSk9SX1ZFUlNJT059LmNvbmYgXAogICAgICAgICAgICAgZmlsZTovL3BocC1mcG0uc2VydmljZSBcCiAgICAgICAgICAgIgpAQCAtNDQsNyArNDAsNiBAQAogQ09NTU9OX0VYVFJBX09FQ09ORiA9ICItLWVuYWJsZS1zb2NrZXRzIFwKICAgICAgICAgICAgICAgICAgICAgICAgLS1lbmFibGUtcGNudGwgXAogICAgICAgICAgICAgICAgICAgICAgICAtLWVuYWJsZS1zaGFyZWQgXAotICAgICAgICAgICAgICAgICAgICAgICAtLWRpc2FibGUtb3BjYWNoZSBcCiAgICAgICAgICAgICAgICAgICAgICAgIC0tZGlzYWJsZS1ycGF0aCBcCiAgICAgICAgICAgICAgICAgICAgICAgIC0td2l0aC1waWMgXAogICAgICAgICAgICAgICAgICAgICAgICAtLWxpYmRpcj0ke1BIUF9MSUJESVJ9IFwKQEAgLTU3LDIwICs1MiwyMiBAQAogICAgICAgICAgICAgICAgIC0td2l0aC1nZXR0ZXh0PSR7U1RBR0lOR19MSUJESVJ9Ly4uIFwKICAgICAgICAgICAgICAgICAtLXdpdGgtemxpYj0ke1NUQUdJTkdfTElCRElSfS8uLiBcCiAgICAgICAgICAgICAgICAgLS13aXRoLWljb252PSR7U1RBR0lOR19MSUJESVJ9Ly4uIFwKLSAgICAgICAgICAgICAgICAtLXdpdGgtbWNyeXB0PSR7U1RBR0lOR19ESVJfVEFSR0VUfSR7ZXhlY19wcmVmaXh9IFwKICAgICAgICAgICAgICAgICAtLXdpdGgtYnoyPSR7U1RBR0lOR19ESVJfVEFSR0VUfSR7ZXhlY19wcmVmaXh9IFwKICAgICAgICAgICAgICAgICAtLXdpdGgtY29uZmlnLWZpbGUtcGF0aD0ke3N5c2NvbmZkaXJ9L3BocC9hcGFjaGUyLXBocCR7UEhQX01BSk9SX1ZFUlNJT059IFwKLSAgICAgICAgICAgICAgICAke0BiYXNlX2NvbmRpdGlvbmFsKCdTSVRFSU5GT19FTkRJQU5ORVNTJywgJ2xlJywgJ2FjX2N2X2NfYmlnZW5kaWFuX3BocD1ubycsICdhY19jdl9jX2JpZ2VuZGlhbl9waHA9eWVzJywgZCl9IFwKKyAgICAgICAgICAgICAgICAke0BvZS51dGlscy5jb25kaXRpb25hbCgnU0lURUlORk9fRU5ESUFOTkVTUycsICdsZScsICdhY19jdl9jX2JpZ2VuZGlhbl9waHA9bm8nLCAnYWNfY3ZfY19iaWdlbmRpYW5fcGhwPXllcycsIGQpfSBcCiAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAncGFtJywgJycsICdhY19jdl9saWJfcGFtX3BhbV9zdGFydD1ubycsIGQpfSBcCiAgICAgICAgICAgICAgICAgJHtDT01NT05fRVhUUkFfT0VDT05GfSBcCiAiCisKK0NBQ0hFRF9DT05GSUdVUkVWQVJTICs9ICJhY19jdl9mdW5jX2Rsb3Blbj15ZXMgYWNfY3ZfbGliX2RsX2Rsb3Blbj15ZXMiCisKIEVYVFJBX09FQ09ORl9jbGFzcy1uYXRpdmUgPSAiIFwKICAgICAgICAgICAgICAgICAtLXdpdGgtemxpYj0ke1NUQUdJTkdfTElCRElSX05BVElWRX0vLi4gXAogICAgICAgICAgICAgICAgIC0td2l0aG91dC1pY29udiBcCiAgICAgICAgICAgICAgICAgJHtDT01NT05fRVhUUkFfT0VDT05GfSBcCiAiCiAKLVBBQ0tBR0VDT05GSUcgPz89ICJteXNxbCBzcWxpdGUzIGltYXAgXAorUEFDS0FHRUNPTkZJRyA/Pz0gIm15c3FsIHNxbGl0ZTMgaW1hcCBvcGNhY2hlIFwKICAgICAgICAgICAgICAgICAgICAke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdpcHY2IHBhbScsIGQpfSBcCiAiCiBQQUNLQUdFQ09ORklHX2NsYXNzLW5hdGl2ZSA9ICIiCkBAIC05NCw3ICs5MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICwtLXdpdGhvdXQtaW1hcCAtLXdpdGhvdXQtaW1hcC1zc2wgXAogICAgICAgICAgICAgICAgICAgICAgICAsdXctaW1hcCIKIFBBQ0tBR0VDT05GSUdbaXB2Nl0gPSAiLS1lbmFibGUtaXB2NiwtLWRpc2FibGUtaXB2NiwiCi0KK1BBQ0tBR0VDT05GSUdbb3BjYWNoZV0gPSAiLC0tZGlzYWJsZS1vcGNhY2hlIgogCiBleHBvcnQgUEhQX05BVElWRV9ESVIgPSAiJHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9IgogZXhwb3J0IFBIUF9QRUFSX1BIUF9CSU4gPSAiJHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9L3BocCIKQEAgLTIwMSwxNCArMTk4LDE0IEBACiAKIE1PRFBIUF9QQUNLQUdFID0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ2FwYWNoZTInLCAnJHtQTn0tbW9kcGhwJywgJycsIGQpfSIKIAotUEFDS0FHRVMgPSAiJHtQTn0tZGJnICR7UE59LWNsaSAke1BOfS1jZ2kgJHtQTn0tZnBtICR7UE59LWZwbS1hcGFjaGUyICR7UE59LXBlYXIgJHtQTn0tcGhhciAke01PRFBIUF9QQUNLQUdFfSAke1BOfS1kZXYgJHtQTn0tc3RhdGljZGV2ICR7UE59LWRvYyAke1BOfSIKK1BBQ0tBR0VTID0gIiR7UE59LWRiZyAke1BOfS1jbGkgJHtQTn0tY2dpICR7UE59LWZwbSAke1BOfS1mcG0tYXBhY2hlMiAke1BOfS1wZWFyICR7UE59LXBoYXIgJHtNT0RQSFBfUEFDS0FHRX0gJHtQTn0tZGV2ICR7UE59LXN0YXRpY2RldiAke1BOfS1kb2MgJHtQTn0tb3BjYWNoZSAke1BOfSIKIAogUkRFUEVORFNfJHtQTn0gKz0gImxpYmdjYyIKIFJERVBFTkRTXyR7UE59LXBlYXIgPSAiJHtQTn0iCiBSREVQRU5EU18ke1BOfS1waGFyID0gIiR7UE59LWNsaSIKIFJERVBFTkRTXyR7UE59LWNsaSA9ICIke1BOfSIKIFJERVBFTkRTXyR7UE59LW1vZHBocCA9ICIke1BOfSBhcGFjaGUyIgotUkRFUEVORFNfJHtQTn0tZGV2ID0gIiR7UE59IgorUkRFUEVORFNfJHtQTn0tb3BjYWNoZSA9ICIke1BOfSIKIAogSU5JVFNDUklQVF9QQUNLQUdFUyA9ICIke1BOfS1mcG0iCiBpbmhlcml0IHVwZGF0ZS1yYy5kCkBAIC0yMzcsNiArMjM0LDggQEAKICAgICAgICAgICAgICAgICAke2JpbmRpcn0vcGhwLWNvbmZpZyAke1BIUF9MSUJESVJ9L3BocC8uZGVwZGIgXAogICAgICAgICAgICAgICAgICR7UEhQX0xJQkRJUn0vcGhwLy5kZXBkYmxvY2sgJHtQSFBfTElCRElSfS9waHAvLmZpbGVtYXAgXAogICAgICAgICAgICAgICAgICR7UEhQX0xJQkRJUn0vcGhwLy5sb2NrICR7UEhQX0xJQkRJUn0vcGhwL3Rlc3QiCitGSUxFU18ke1BOfS1zdGF0aWNkZXYgKz0gIiR7UEhQX0xJQkRJUn0vZXh0ZW5zaW9ucy8qLyouYSIKK0ZJTEVTXyR7UE59LW9wY2FjaGUgPSAiJHtQSFBfTElCRElSfS9leHRlbnNpb25zLyovb3BjYWNoZSR7U09MSUJTREVWfSIKIEZJTEVTXyR7UE59ID0gIiR7UEhQX0xJQkRJUn0vcGhwIgogRklMRVNfJHtQTn0gKz0gIiR7YmluZGlyfSIKIApAQCAtMjUzLDE4ICsyNTIsNiBAQAogICAgICAgICBQSFBfUEVBUl9TWVNDT05GX0RJUj0ke3N5c2NvbmZkaXJ9LwogfQogCi1TU1RBVEVQT1NUSU5TVEZVTkNTX2FwcGVuZF9jbGFzcy1uYXRpdmUgPSAiIHBocF9zc3RhdGVfcG9zdGluc3QgIgotCi1waHBfc3N0YXRlX3Bvc3RpbnN0KCkgewotICAgIGlmIFsgIiR7QkJfQ1VSUkVOVFRBU0t9IiA9ICJwb3B1bGF0ZV9zeXNyb290X3NldHNjZW5lIiBdCi0gICAgdGhlbgotICAgICAgICBoZWFkIC1uMSAke3N5c2NvbmZkaXJ9L3BlYXIuY29uZiA+ICR7c3lzY29uZmRpcn0vcGVhci50bXAuY29uZgotICAgICAgICBmb3IgcCBpbiBgdGFpbCAtbjEgICR7c3lzY29uZmRpcn0vcGVhci5jb25mIHwgc2VkIC1zICdzLzsvIC9nJ2A7IGRvCi0gICAgICAgICAgICBlY2hvICRwIHwgYXdrIC1GOiAnQkVHSU4ge09GUyA9ICI6IjsgT1JTID0gIjsifXtpZihORj09Myl7cHJpbnQgJDEsIGxlbmd0aCgkMyktMiptYXRjaCgkMywgL14iLyksICQzfSBlbHNlIHtwcmludCAkMH19JzsKLSAgICAgICAgZG9uZSA+PiAke3N5c2NvbmZkaXJ9L3BlYXIudG1wLmNvbmYKLSAgICAgICAgbXYgLWYgJHtzeXNjb25mZGlyfS9wZWFyLnRtcC5jb25mICR7c3lzY29uZmRpcn0vcGVhci5jb25mCi0gICAgZmkKLX0KIAogIyBGYWlscyB0byBidWlsZCB3aXRoIHRodW1iLTEgKHFlbXVhcm0pCiAjIHwge3N0YW5kYXJkIGlucHV0fTogQXNzZW1ibGVyIG1lc3NhZ2VzOgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC01LjYuMzEvMDAwMS1BZGQtbHB0aHJlYWQtdG8tbGluay5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvMDAwMS1BZGQtbHB0aHJlYWQtdG8tbGluay5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC01LjYuMzEvMDAwMS1BZGQtbHB0aHJlYWQtdG8tbGluay5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC8wMDAxLUFkZC1scHRocmVhZC10by1saW5rLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtYWNpbmNsdWRlLm00LWRvbi10LXVuc2V0LWNhY2hlLXZhcmlhYmxlcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvMDAwMS1hY2luY2x1ZGUubTQtZG9uLXQtdW5zZXQtY2FjaGUtdmFyaWFibGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyNTBjYWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtYWNpbmNsdWRlLm00LWRvbi10LXVuc2V0LWNhY2hlLXZhcmlhYmxlcy5wYXRjaApAQCAtMCwwICsxLDM5IEBACitGcm9tIGRmZWJlODFmOTQ2YTgzZmUyNDk5ZmM4NGQ0ZjNkYmRjNTYxMjI3NmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbnVqIE1pdHRhbCA8YW51ai5taXR0YWxAaW50ZWwuY29tPgorRGF0ZTogVHVlLCAzIEFwciAyMDE4IDExOjM1OjAzICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIGFjaW5jbHVkZS5tNDogZG9uJ3QgdW5zZXQgY2FjaGUgdmFyaWFibGVzCisKK1Vuc2V0dGluZyBwcmV2ZW50cyBjYWNoZSB2YXJpYWJsZSBmcm9tIGJlaW5nIHBhc3NlZCB0byBjb25maWd1cmUuCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbT0Utc3BlY2lmaWNdCisKK1NpZ25lZC1vZmYtYnk6IEFudWogTWl0dGFsIDxhbnVqLm1pdHRhbEBpbnRlbC5jb20+CistLS0KKyBhY2luY2x1ZGUubTQgfCA0IC0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2FjaW5jbHVkZS5tNCBiL2FjaW5jbHVkZS5tNAoraW5kZXggZjZhNTVlYy4uZDMzNDZkZiAxMDA2NDQKKy0tLSBhL2FjaW5jbHVkZS5tNAorKysrIGIvYWNpbmNsdWRlLm00CitAQCAtMTg5MCw4ICsxODkwLDYgQEAgZGVmaW5lKFtwaHBzaGlmdF0sW2lmZWxzZShpbmRleChbJEBdLFssXSksLTEsLFtzdWJzdHIoWyRAXSxpbmNyKGluZGV4KFskQF0sWyxdKSkKKyBkbmwKKyBBQ19ERUZVTihbUEhQX0NIRUNLX0ZVTkNfTElCXSxbCisgICBpZmVsc2UoJDIsLDosWworLSAgdW5zZXQgYWNfY3ZfbGliXyQyW11fJDEKKy0gIHVuc2V0IGFjX2N2X2xpYl8kMltdX19fJDEKKyAgIHVuc2V0IGZvdW5kCisgICBBQ19DSEVDS19MSUIoJDIsICQxLCBbZm91bmQ9eWVzXSwgWworICAgICBBQ19DSEVDS19MSUIoJDIsIF9fJDEsIFtmb3VuZD15ZXNdLCBbZm91bmQ9bm9dKQorQEAgLTE5MjMsOCArMTkyMSw2IEBAIGRubCBpbiB0aGUgZGVmYXVsdCBsaWJyYXJpZXMgYW5kIGFzIGEgZmFsbCBiYWNrIGluIHRoZSBzcGVjaWZpZWQgbGlicmFyeS4KKyBkbmwgRGVmaW5lcyBIQVZFX2Z1bmMgYW5kIEhBVkVfbGlicmFyeSBpZiBmb3VuZCBhbmQgYWRkcyB0aGUgbGlicmFyeSB0byBMSUJTLgorIGRubAorIEFDX0RFRlVOKFtQSFBfQ0hFQ0tfRlVOQ10sWworLSAgdW5zZXQgYWNfY3ZfZnVuY18kMQorLSAgdW5zZXQgYWNfY3ZfZnVuY19fXyQxCisgICB1bnNldCBmb3VuZAorICAgCisgICBBQ19DSEVDS19GVU5DKCQxLCBbZm91bmQ9eWVzXSxbIEFDX0NIRUNLX0ZVTkMoX18kMSxbZm91bmQ9eWVzXSxbZm91bmQ9bm9dKSBdKQorLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtYWNpbmNsdWRlLm00LXNraXAtYmluY29uZmlnLWNoZWNrLWZvci1saWJ4bWwucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtYWNpbmNsdWRlLm00LXNraXAtYmluY29uZmlnLWNoZWNrLWZvci1saWJ4bWwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUzMjkyNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvMDAwMS1hY2luY2x1ZGUubTQtc2tpcC1iaW5jb25maWctY2hlY2stZm9yLWxpYnhtbC5wYXRjaApAQCAtMCwwICsxLDU2IEBACitGcm9tIGEyZDE0NmI4ZGQ5ZDAyZjUyM2QxZTIwNWQ3OTc5MjYyNmE3MWRlYzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbnVqIE1pdHRhbCA8YW51ai5taXR0YWxAaW50ZWwuY29tPgorRGF0ZTogTW9uLCAyIEFwciAyMDE4IDE1OjI3OjA5ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIGFjaW5jbHVkZS5tNDogc2tpcCBiaW5jb25maWcgY2hlY2sgZm9yIGxpYnhtbAorCitXZSB3YW50IGxpYnhtbCBmbGFncyB0byBiZSBwaWNrZWQgdXAgdXNpbmcgcGtnLWNvbmZpZyBpbnN0ZWFkIG9mIHRoZQoreG1sMi1jb25maWcgZmlsZS4KKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtPRS1zcGVjaWZpY10KKworU2lnbmVkLW9mZi1ieTogQW51aiBNaXR0YWwgPGFudWoubWl0dGFsQGludGVsLmNvbT4KKworLS0tCisgYWNpbmNsdWRlLm00IHwgMjkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMjkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9hY2luY2x1ZGUubTQgYi9hY2luY2x1ZGUubTQKK2luZGV4IGQ0MmQ3MDguLmQzMjc2NmEgMTAwNjQ0CistLS0gYS9hY2luY2x1ZGUubTQKKysrKyBiL2FjaW5jbHVkZS5tNAorQEAgLTI1MjUsMzUgKzI1MjUsNiBAQCBkbmwKKyBBQ19ERUZVTihbUEhQX1NFVFVQX0xJQlhNTF0sIFsKKyAgIGZvdW5kX2xpYnhtbD1ubworIAorLSAgZG5sIEZpcnN0IHRyeSB0byBmaW5kIHhtbDItY29uZmlnCistICBBQ19DQUNIRV9DSEVDSyhbZm9yIHhtbDItY29uZmlnIHBhdGhdLCBhY19jdl9waHBfeG1sMl9jb25maWdfcGF0aCwKKy0gIFsKKy0gICAgZm9yIGkgaW4gJFBIUF9MSUJYTUxfRElSIC91c3IvbG9jYWwgL3VzcjsgZG8KKy0gICAgICBpZiB0ZXN0IC14ICIkaS9iaW4veG1sMi1jb25maWciOyB0aGVuCistICAgICAgICBhY19jdl9waHBfeG1sMl9jb25maWdfcGF0aD0iJGkvYmluL3htbDItY29uZmlnIgorLSAgICAgICAgYnJlYWsKKy0gICAgICBmaQorLSAgICBkb25lCistICBdKQorLQorLSAgaWYgdGVzdCAteCAiJGFjX2N2X3BocF94bWwyX2NvbmZpZ19wYXRoIjsgdGhlbgorLSAgICBYTUwyX0NPTkZJRz0iJGFjX2N2X3BocF94bWwyX2NvbmZpZ19wYXRoIgorLSAgICBsaWJ4bWxfZnVsbF92ZXJzaW9uPWAkWE1MMl9DT05GSUcgLS12ZXJzaW9uYAorLSAgICBhY19JRlM9JElGUworLSAgICBJRlM9Ii4iCistICAgIHNldCAkbGlieG1sX2Z1bGxfdmVyc2lvbgorLSAgICBJRlM9JGFjX0lGUworLSAgICBMSUJYTUxfVkVSU0lPTj1gZXhwciBbJF0xIFwqIDEwMDAwMDAgKyBbJF0yIFwqIDEwMDAgKyBbJF0zYAorLSAgICBpZiB0ZXN0ICIkTElCWE1MX1ZFUlNJT04iIC1nZSAiMjAwNjAxMSI7IHRoZW4KKy0gICAgICBmb3VuZF9saWJ4bWw9eWVzCistICAgICAgTElCWE1MX0xJQlM9YCRYTUwyX0NPTkZJRyAtLWxpYnNgCistICAgICAgTElCWE1MX0lOQ1M9YCRYTUwyX0NPTkZJRyAtLWNmbGFnc2AKKy0gICAgZWxzZQorLSAgICAgIEFDX01TR19FUlJPUihbbGlieG1sMiB2ZXJzaW9uIDIuNi4xMSBvciBncmVhdGVyIHJlcXVpcmVkLl0pCistICAgIGZpCistICBmaQorLQorLSAgZG5sIElmIHhtbDItY29uZmlnIGZhaWxzLCB0cnkgcGtnLWNvbmZpZworICAgaWYgdGVzdCAiJGZvdW5kX2xpYnhtbCIgPSAibm8iOyB0aGVuCisgICAgIGlmIHRlc3QgLXogIiRQS0dfQ09ORklHIjsgdGhlbgorICAgICAgIEFDX1BBVEhfUFJPRyhQS0dfQ09ORklHLCBwa2ctY29uZmlnLCBubykKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvMDAwMS1maXgtZXJyb3ItY2F1c2VkLWJ5LWEtbmV3LXZhcmlhYmxlLWlzLWRlY2xhcmVkLWFmdGVyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC8wMDAxLWZpeC1lcnJvci1jYXVzZWQtYnktYS1uZXctdmFyaWFibGUtaXMtZGVjbGFyZWQtYWZ0ZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmFiMTAxYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvMDAwMS1maXgtZXJyb3ItY2F1c2VkLWJ5LWEtbmV3LXZhcmlhYmxlLWlzLWRlY2xhcmVkLWFmdGVyLnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK0Zyb20gMGQ4OGQ3MzU4ODdjNmYyZmEwMGE3NDNjMjcxMjRjN2E1MjAwNmE0MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFN1biwgMTUgQXByIDIwMTggMTk6MTc6MjcgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4IGVycm9yIGNhdXNlZCBieSBhIG5ldyB2YXJpYWJsZSBpcyBkZWNsYXJlZCBhZnRlciB0aGUKKyBsYWJlbAorCitUaGVyZSBpcyBhIGJ1aWxkIGZhaWx1cmUgb24gbWlwczoKKy4uLgorfHNsaml0TmF0aXZlTUlQU19jb21tb24uYzogSW4gZnVuY3Rpb24gJ3Nsaml0X2hhc19jcHVfZmVhdHVyZSc6Cit8c2xqaXROYXRpdmVNSVBTX2NvbW1vbi5jOjUwNjozOiBlcnJvcjogYSBsYWJlbCBjYW4gb25seSBiZSBwYXJ0CitvZiBhIHN0YXRlbWVudCBhbmQgYSBkZWNsYXJhdGlvbiBpcyBub3QgYSBzdGF0ZW1lbnQKK3wgICBzbGppdF9zdyBmaXI7Cit8ICAgXn5+fn5+fn4KKy4uLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPgorLS0tCisgZXh0L3BjcmUvcGNyZWxpYi9zbGppdC9zbGppdE5hdGl2ZU1JUFNfY29tbW9uLmMgfCA0ICsrKy0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9leHQvcGNyZS9wY3JlbGliL3Nsaml0L3Nsaml0TmF0aXZlTUlQU19jb21tb24uYyBiL2V4dC9wY3JlL3BjcmVsaWIvc2xqaXQvc2xqaXROYXRpdmVNSVBTX2NvbW1vbi5jCitpbmRleCBlZTIwN2ZlLi5hZGZkMzQyIDEwMDY0NAorLS0tIGEvZXh0L3BjcmUvcGNyZWxpYi9zbGppdC9zbGppdE5hdGl2ZU1JUFNfY29tbW9uLmMKKysrKyBiL2V4dC9wY3JlL3BjcmVsaWIvc2xqaXQvc2xqaXROYXRpdmVNSVBTX2NvbW1vbi5jCitAQCAtNDk4LDEyICs0OTgsMTQgQEAgU0xKSVRfQVBJX0ZVTkNfQVRUUklCVVRFIHZvaWQqIHNsaml0X2dlbmVyYXRlX2NvZGUoc3RydWN0IHNsaml0X2NvbXBpbGVyICpjb21waWwKKyAKKyBTTEpJVF9BUElfRlVOQ19BVFRSSUJVVEUgc2xqaXRfczMyIHNsaml0X2hhc19jcHVfZmVhdHVyZShzbGppdF9zMzIgZmVhdHVyZV90eXBlKQorIHsKKysjaWYgZGVmaW5lZChfX0dOVUNfXykKKysJc2xqaXRfc3cgZmlyOworKyNlbmRpZgorIAlzd2l0Y2ggKGZlYXR1cmVfdHlwZSkgeworIAljYXNlIFNMSklUX0hBU19GUFU6CisgI2lmZGVmIFNMSklUX0lTX0ZQVV9BVkFJTEFCTEUKKyAJCXJldHVybiBTTEpJVF9JU19GUFVfQVZBSUxBQkxFOworICNlbGlmIGRlZmluZWQoX19HTlVDX18pCistCQlzbGppdF9zdyBmaXI7CisgCQlhc20gKCJjZmMxICUwLCAkMCIgOiAiPXIiKGZpcikpOworIAkJcmV0dXJuIChmaXIgPj4gMjIpICYgMHgxOworICNlbHNlCistLSAKKzIuMTAuMgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtbWFpbi1waHBfaW5pLmMtYnVpbGQtZW1wdHktcGhwX2xvYWRfemVuZF9leHRlbnNpb25fYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvMDAwMS1tYWluLXBocF9pbmkuYy1idWlsZC1lbXB0eS1waHBfbG9hZF96ZW5kX2V4dGVuc2lvbl9jLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjZTk3MzgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtbWFpbi1waHBfaW5pLmMtYnVpbGQtZW1wdHktcGhwX2xvYWRfemVuZF9leHRlbnNpb25fYy5wYXRjaApAQCAtMCwwICsxLDYzIEBACitGcm9tIDI4NDJhYTJhMDc4ZWIxY2FkNTU1NDBiNjFlN2VkZjExMTM5NTE1MGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBUaG9tYXMgUGV0YXp6b25pIDx0aG9tYXMucGV0YXp6b25pQGJvb3RsaW4uY29tPgorRGF0ZTogTW9uLCAyNiBGZWIgMjAxOCAxOTozMDo1NSArMDEwMAorU3ViamVjdDogW1BBVENIXSBtYWluL3BocF9pbmkuYzogYnVpbGQgZW1wdHkgcGhwX2xvYWRfemVuZF9leHRlbnNpb25fY2IoKSB3aGVuCisgIUhBVkVfTElCREwKKworQ29tbWl0IDA3ODJhN2ZjNjMxNGM4YmQzY2JmZDU3ZjEyZDA0NzliZjljYzhkYzcgKCJGaXhlZCBidWcgIzc0ODY2CitleHRlbnNpb25fZGlyID0gIi4vZXh0IiBub3cgdXNlIGN1cnJlbnQgZGlyZWN0b3J5IGZvciBiYXNlIikgbW9kaWZpZWQKK3RoZSBwaHBfbG9hZF96ZW5kX2V4dGVuc2lvbl9jYigpIGZ1bmN0aW9uIHRvIHVzZSBwaHBfbG9hZF9zaGxpYigpLCBhbmQKK3Bhc3MgYSBoYW5kbGUgdG8gdGhlIG5ld2x5IGludHJvZHVjZWQgemVuZF9sb2FkX2V4dGVuc2lvbl9oYW5kbGUoKQorZnVuY3Rpb24gaW5zdGVhZCBvZiBwYXNzaW5nIHRoZSBleHRlbnNpb24gcGF0aCB0bworemVuZF9sb2FkX2V4dGVuc2lvbigpLgorCitXaGlsZSBkb2luZyBzbywgaXQgaW50cm9kdWNlZCBhIGNhbGwgdG8gcGhwX2xvYWRfc2hsaWIoKSBmcm9tIGNvZGUKK3RoYXQgaXMgYnVpbHQgZXZlbiB3aGVuIEhBVkVfTElCREwgaXMgbm90IGRlZmluZWQuIEhvd2V2ZXIsCitwaHBfbG9hZF9zaGxpYigpIGlzIG5vdCBpbXBsZW1lbnRlZCB3aGVuIEhBVkVfTElCREwgaXMgbm90IGRlZmluZWQsCitmb3Igb2J2aW91cyByZWFzb25zLgorCitJdCB0dXJucyBvdXQgdGhhdCB6ZW5kX2xvYWRfZXh0ZW5zaW9uX2hhbmRsZSgpIGFueXdheSBkb2Vzbid0IGRvCithbnl0aGluZyB3aGVuIFpFTkRfRVhURU5TSU9OU19TVVBQT1JUIGlzIGRlZmluZWQgdG8gMCwgYW5kCitaRU5EX0VYVEVOU0lPTlNfU1VQUE9SVCBpcyBub3QgZGVmaW5lZCB3aGVuIEhBVkVfTElCREwgaXMgbm90IGRlZmluZWQKKyhaZW5kL3plbmRfcG9ydGFiaWxpdHkuaCkuCisKK0ZpeGVzIHRoZSBmb2xsb3dpbmcgYnVpbGQgZmFpbHVyZSB3aGVuIGJ1aWxkaW5nIG9uIGEgc3lzdGVtIHRoYXQKK2RvZXNuJ3QgaGF2ZSBsaWJkbDoKKworbWFpbi9waHBfaW5pLm86IEluIGZ1bmN0aW9uIGBwaHBfbG9hZF96ZW5kX2V4dGVuc2lvbl9jYic6CitwaHBfaW5pLmM6KC50ZXh0KzB4NDc4KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgcGhwX2xvYWRfc2hsaWInCitwaHBfaW5pLmM6KC50ZXh0KzB4NGIwKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgcGhwX2xvYWRfc2hsaWInCitjb2xsZWN0MjogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbaHR0cDovL2dpdC5waHAubmV0Lz9wPXBocC1zcmMuZ2l0O2E9Y29tbWl0O2g9Mjg0MmFhMmEwNzhlYjFjYWQ1NTU0MGI2MWU3ZWRmMTExMzk1MTUwZF0KK1NpZ25lZC1vZmYtYnk6IFRob21hcyBQZXRhenpvbmkgPHRob21hcy5wZXRhenpvbmlAYm9vdGxpbi5jb20+CitTaWduZWQtb2ZmLWJ5OiBBbnVqIE1pdHRhbCA8YW51ai5taXR0YWxAaW50ZWwuY29tPgorLS0tCisgbWFpbi9waHBfaW5pLmMgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9tYWluL3BocF9pbmkuYyBiL21haW4vcGhwX2luaS5jCitpbmRleCBiYTU4ZWIxLi5mY2EyNjNlIDEwMDY0NAorLS0tIGEvbWFpbi9waHBfaW5pLmMKKysrKyBiL21haW4vcGhwX2luaS5jCitAQCAtMzUwLDYgKzM1MCw3IEBAIHN0YXRpYyB2b2lkIHBocF9sb2FkX3BocF9leHRlbnNpb25fY2Iodm9pZCAqYXJnKQorIAorIC8qIHt7eyBwaHBfbG9hZF96ZW5kX2V4dGVuc2lvbl9jYgorICAqLworKyNpZmRlZiBIQVZFX0xJQkRMCisgc3RhdGljIHZvaWQgcGhwX2xvYWRfemVuZF9leHRlbnNpb25fY2Iodm9pZCAqYXJnKQorIHsKKyAJY2hhciAqZmlsZW5hbWUgPSAqKChjaGFyICoqKSBhcmcpOworQEAgLTQwOSw2ICs0MTAsOSBAQCBzdGF0aWMgdm9pZCBwaHBfbG9hZF96ZW5kX2V4dGVuc2lvbl9jYih2b2lkICphcmcpCisgCQllZnJlZShsaWJwYXRoKTsKKyAJfQorIH0KKysjZWxzZQorK3N0YXRpYyB2b2lkIHBocF9sb2FkX3plbmRfZXh0ZW5zaW9uX2NiKHZvaWQgKmFyZykgeyB9CisrI2VuZGlmCisgLyogfX19ICovCisgCisgLyoge3t7IHBocF9pbml0X2NvbmZpZworLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtb3BjYWNoZS1jb25maWcubTQtZW5hYmxlLW9wY2FjaGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwLzAwMDEtb3BjYWNoZS1jb25maWcubTQtZW5hYmxlLW9wY2FjaGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQyNGQzNAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvMDAwMS1vcGNhY2hlLWNvbmZpZy5tNC1lbmFibGUtb3BjYWNoZS5wYXRjaApAQCAtMCwwICsxLDM4NSBAQAorRnJvbSBiMmZiNzI1ZGM0MDRkNDcxMzcxNzMxYjY2MzIzNGU4N2NiMGZjYTg0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW51aiBNaXR0YWwgPGFudWoubWl0dGFsQGludGVsLmNvbT4KK0RhdGU6IE1vbiwgMiBBcHIgMjAxOCAxNzo1NDo1MiArMDgwMAorU3ViamVjdDogW1BBVENIXSBvcGNhY2hlL2NvbmZpZy5tNDogZW5hYmxlIG9wY2FjaGUKKworV2UgY2FuJ3QgdXNlIEFDX1RSWV9SVU4gdG8gcnVuIHByb2dyYW1zIGluIGEgY3Jvc3MgY29tcGlsZSBlbnZpcm9ubWVudC4gU2V0Cit0aGUgdmFyaWFibGVzIGRpcmVjdGx5IGluc3RlYWQgc2luY2Ugd2Uga25vdyB0aGF0IHdlJ2QgYmUgcnVubmluZyBvbiBsYXRlc3QKK2Vub3VnaCBsaW51eCBrZXJuZWwuCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbQ29uZmlndXJhdGlvbl0KKworU2lnbmVkLW9mZi1ieTogQW51aiBNaXR0YWwgPGFudWoubWl0dGFsQGludGVsLmNvbT4KKy0tLQorIGV4dC9vcGNhY2hlL2NvbmZpZy5tNCB8IDM0OSArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDM0MSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2V4dC9vcGNhY2hlL2NvbmZpZy5tNCBiL2V4dC9vcGNhY2hlL2NvbmZpZy5tNAoraW5kZXggN2I1MDBmMC4uMTBiYjk5YSAxMDA2NDQKKy0tLSBhL2V4dC9vcGNhY2hlL2NvbmZpZy5tNAorKysrIGIvZXh0L29wY2FjaGUvY29uZmlnLm00CitAQCAtMjgsMzUzICsyOCwyMCBAQCBpZiB0ZXN0ICIkUEhQX09QQ0FDSEUiICE9ICJubyI7IHRoZW4KKyAKKyAgIEFDX0NIRUNLX0hFQURFUlMoW3VuaXN0ZC5oIHN5cy91aW8uaF0pCisgCistICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIHN5c3ZpcGMgc2hhcmVkIG1lbW9yeSBzdXBwb3J0KQorLSAgQUNfVFJZX1JVTihbCistI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgorLSNpbmNsdWRlIDxzeXMvaXBjLmg+CistI2luY2x1ZGUgPHN5cy9zaG0uaD4KKy0jaW5jbHVkZSA8dW5pc3RkLmg+CistI2luY2x1ZGUgPHN0cmluZy5oPgorKyAgQUNfREVGSU5FKEhBVkVfU0hNX0lQQywgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBTeXNWIElQQyBTSE0gc3VwcG9ydF0pCisgCistaW50IG1haW4oKSB7CistICBwaWRfdCBwaWQ7CistICBpbnQgc3RhdHVzOworLSAgaW50IGlwY19pZDsKKy0gIGNoYXIgKnNobTsKKy0gIHN0cnVjdCBzaG1pZF9kcyBzaG1idWY7CisrICBBQ19ERUZJTkUoSEFWRV9TSE1fTU1BUF9BTk9OLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIG1tYXAoTUFQX0FOT04pIFNITSBzdXBwb3J0XSkKKyAKKy0gIGlwY19pZCA9IHNobWdldChJUENfUFJJVkFURSwgNDA5NiwgKElQQ19DUkVBVCB8IFNITV9SIHwgU0hNX1cpKTsKKy0gIGlmIChpcGNfaWQgPT0gLTEpIHsKKy0gICAgcmV0dXJuIDE7CistICB9CisrICBBQ19ERUZJTkUoSEFWRV9TSE1fTU1BUF9aRVJPLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIG1tYXAoIi9kZXYvemVybyIpIFNITSBzdXBwb3J0XSkKKyAKKy0gIHNobSA9IHNobWF0KGlwY19pZCwgTlVMTCwgMCk7CistICBpZiAoc2htID09ICh2b2lkICopLTEpIHsKKy0gICAgc2htY3RsKGlwY19pZCwgSVBDX1JNSUQsIE5VTEwpOworLSAgICByZXR1cm4gMjsKKy0gIH0KKy0KKy0gIGlmIChzaG1jdGwoaXBjX2lkLCBJUENfU1RBVCwgJnNobWJ1ZikgIT0gMCkgeworLSAgICBzaG1kdChzaG0pOworLSAgICBzaG1jdGwoaXBjX2lkLCBJUENfUk1JRCwgTlVMTCk7CistICAgIHJldHVybiAzOworLSAgfQorLQorLSAgc2htYnVmLnNobV9wZXJtLnVpZCA9IGdldHVpZCgpOworLSAgc2htYnVmLnNobV9wZXJtLmdpZCA9IGdldGdpZCgpOworLSAgc2htYnVmLnNobV9wZXJtLm1vZGUgPSAwNjAwOworLQorLSAgaWYgKHNobWN0bChpcGNfaWQsIElQQ19TRVQsICZzaG1idWYpICE9IDApIHsKKy0gICAgc2htZHQoc2htKTsKKy0gICAgc2htY3RsKGlwY19pZCwgSVBDX1JNSUQsIE5VTEwpOworLSAgICByZXR1cm4gNDsKKy0gIH0KKy0KKy0gIHNobWN0bChpcGNfaWQsIElQQ19STUlELCBOVUxMKTsKKy0KKy0gIHN0cmNweShzaG0sICJoZWxsbyIpOworLQorLSAgcGlkID0gZm9yaygpOworLSAgaWYgKHBpZCA8IDApIHsKKy0gICAgcmV0dXJuIDU7CistICB9IGVsc2UgaWYgKHBpZCA9PSAwKSB7CistICAgIHN0cmNweShzaG0sICJieWUiKTsKKy0gICAgcmV0dXJuIDY7CistICB9CistICBpZiAod2FpdCgmc3RhdHVzKSAhPSBwaWQpIHsKKy0gICAgcmV0dXJuIDc7CistICB9CistICBpZiAoIVdJRkVYSVRFRChzdGF0dXMpIHx8IFdFWElUU1RBVFVTKHN0YXR1cykgIT0gNikgeworLSAgICByZXR1cm4gODsKKy0gIH0KKy0gIGlmIChzdHJjbXAoc2htLCAiYnllIikgIT0gMCkgeworLSAgICByZXR1cm4gOTsKKy0gIH0KKy0gIHJldHVybiAwOworLX0KKy1dLGRubAorLSAgICBBQ19ERUZJTkUoSEFWRV9TSE1fSVBDLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIFN5c1YgSVBDIFNITSBzdXBwb3J0XSkKKy0gICAgbXNnPXllcyxtc2c9bm8sbXNnPW5vKQorLSAgQUNfTVNHX1JFU1VMVChbJG1zZ10pCistCistICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIG1tYXAoKSB1c2luZyBNQVBfQU5PTiBzaGFyZWQgbWVtb3J5IHN1cHBvcnQpCistICBBQ19UUllfUlVOKFsKKy0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+CistI2luY2x1ZGUgPHN5cy93YWl0Lmg+CistI2luY2x1ZGUgPHN5cy9tbWFuLmg+CistI2luY2x1ZGUgPHVuaXN0ZC5oPgorLSNpbmNsdWRlIDxzdHJpbmcuaD4KKy0KKy0jaWZuZGVmIE1BUF9BTk9OCistIyBpZmRlZiBNQVBfQU5PTllNT1VTCistIyAgZGVmaW5lIE1BUF9BTk9OIE1BUF9BTk9OWU1PVVMKKy0jIGVuZGlmCistI2VuZGlmCistI2lmbmRlZiBNQVBfRkFJTEVECistIyBkZWZpbmUgTUFQX0ZBSUxFRCAoKHZvaWQqKS0xKQorLSNlbmRpZgorLQorLWludCBtYWluKCkgeworLSAgcGlkX3QgcGlkOworLSAgaW50IHN0YXR1czsKKy0gIGNoYXIgKnNobTsKKy0KKy0gIHNobSA9IG1tYXAoTlVMTCwgNDA5NiwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCB8IE1BUF9BTk9OLCAtMSwgMCk7CistICBpZiAoc2htID09IE1BUF9GQUlMRUQpIHsKKy0gICAgcmV0dXJuIDE7CistICB9CistCistICBzdHJjcHkoc2htLCAiaGVsbG8iKTsKKy0KKy0gIHBpZCA9IGZvcmsoKTsKKy0gIGlmIChwaWQgPCAwKSB7CistICAgIHJldHVybiA1OworLSAgfSBlbHNlIGlmIChwaWQgPT0gMCkgeworLSAgICBzdHJjcHkoc2htLCAiYnllIik7CistICAgIHJldHVybiA2OworLSAgfQorLSAgaWYgKHdhaXQoJnN0YXR1cykgIT0gcGlkKSB7CistICAgIHJldHVybiA3OworLSAgfQorLSAgaWYgKCFXSUZFWElURUQoc3RhdHVzKSB8fCBXRVhJVFNUQVRVUyhzdGF0dXMpICE9IDYpIHsKKy0gICAgcmV0dXJuIDg7CistICB9CistICBpZiAoc3RyY21wKHNobSwgImJ5ZSIpICE9IDApIHsKKy0gICAgcmV0dXJuIDk7CistICB9CistICByZXR1cm4gMDsKKy19CistXSxkbmwKKy0gICAgQUNfREVGSU5FKEhBVkVfU0hNX01NQVBfQU5PTiwgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBtbWFwKE1BUF9BTk9OKSBTSE0gc3VwcG9ydF0pCistICAgIG1zZz15ZXMsbXNnPW5vLG1zZz1ubykKKy0gIEFDX01TR19SRVNVTFQoWyRtc2ddKQorLQorLSAgQUNfTVNHX0NIRUNLSU5HKGZvciBtbWFwKCkgdXNpbmcgL2Rldi96ZXJvIHNoYXJlZCBtZW1vcnkgc3VwcG9ydCkKKy0gIEFDX1RSWV9SVU4oWworLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKy0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KKy0jaW5jbHVkZSA8c3lzL21tYW4uaD4KKy0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KKy0jaW5jbHVkZSA8ZmNudGwuaD4KKy0jaW5jbHVkZSA8dW5pc3RkLmg+CistI2luY2x1ZGUgPHN0cmluZy5oPgorLQorLSNpZm5kZWYgTUFQX0ZBSUxFRAorLSMgZGVmaW5lIE1BUF9GQUlMRUQgKCh2b2lkKiktMSkKKy0jZW5kaWYKKy0KKy1pbnQgbWFpbigpIHsKKy0gIHBpZF90IHBpZDsKKy0gIGludCBzdGF0dXM7CistICBpbnQgZmQ7CistICBjaGFyICpzaG07CistCistICBmZCA9IG9wZW4oIi9kZXYvemVybyIsIE9fUkRXUiwgU19JUlVTUiB8IFNfSVdVU1IpOworLSAgaWYgKGZkID09IC0xKSB7CistICAgIHJldHVybiAxOworLSAgfQorLQorLSAgc2htID0gbW1hcChOVUxMLCA0MDk2LCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELCBmZCwgMCk7CistICBpZiAoc2htID09IE1BUF9GQUlMRUQpIHsKKy0gICAgcmV0dXJuIDI7CistICB9CistCistICBzdHJjcHkoc2htLCAiaGVsbG8iKTsKKy0KKy0gIHBpZCA9IGZvcmsoKTsKKy0gIGlmIChwaWQgPCAwKSB7CistICAgIHJldHVybiA1OworLSAgfSBlbHNlIGlmIChwaWQgPT0gMCkgeworLSAgICBzdHJjcHkoc2htLCAiYnllIik7CistICAgIHJldHVybiA2OworLSAgfQorLSAgaWYgKHdhaXQoJnN0YXR1cykgIT0gcGlkKSB7CistICAgIHJldHVybiA3OworLSAgfQorLSAgaWYgKCFXSUZFWElURUQoc3RhdHVzKSB8fCBXRVhJVFNUQVRVUyhzdGF0dXMpICE9IDYpIHsKKy0gICAgcmV0dXJuIDg7CistICB9CistICBpZiAoc3RyY21wKHNobSwgImJ5ZSIpICE9IDApIHsKKy0gICAgcmV0dXJuIDk7CistICB9CistICByZXR1cm4gMDsKKy19CistXSxkbmwKKy0gICAgQUNfREVGSU5FKEhBVkVfU0hNX01NQVBfWkVSTywgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBtbWFwKCIvZGV2L3plcm8iKSBTSE0gc3VwcG9ydF0pCistICAgIG1zZz15ZXMsbXNnPW5vLG1zZz1ubykKKy0gIEFDX01TR19SRVNVTFQoWyRtc2ddKQorLQorLSAgQUNfTVNHX0NIRUNLSU5HKGZvciBtbWFwKCkgdXNpbmcgc2htX29wZW4oKSBzaGFyZWQgbWVtb3J5IHN1cHBvcnQpCistICBBQ19UUllfUlVOKFsKKy0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+CistI2luY2x1ZGUgPHN5cy93YWl0Lmg+CistI2luY2x1ZGUgPHN5cy9tbWFuLmg+CistI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CistI2luY2x1ZGUgPGZjbnRsLmg+CistI2luY2x1ZGUgPHVuaXN0ZC5oPgorLSNpbmNsdWRlIDxzdHJpbmcuaD4KKy0jaW5jbHVkZSA8c3RkbGliLmg+CistI2luY2x1ZGUgPHN0ZGlvLmg+CistCistI2lmbmRlZiBNQVBfRkFJTEVECistIyBkZWZpbmUgTUFQX0ZBSUxFRCAoKHZvaWQqKS0xKQorLSNlbmRpZgorLQorLWludCBtYWluKCkgeworLSAgcGlkX3QgcGlkOworLSAgaW50IHN0YXR1czsKKy0gIGludCBmZDsKKy0gIGNoYXIgKnNobTsKKy0gIGNoYXIgdG1wbmFtZVs0MDk2XTsKKy0KKy0gIHNwcmludGYodG1wbmFtZSwidGVzdC5zaG0uJWRYWFhYWFgiLCBnZXRwaWQoKSk7CistICBpZiAobWt0ZW1wKHRtcG5hbWUpID09IE5VTEwpIHsKKy0gICAgcmV0dXJuIDE7CistICB9CistICBmZCA9IHNobV9vcGVuKHRtcG5hbWUsIE9fUkRXUiB8IE9fQ1JFQVQsIFNfSVJVU1IgfCBTX0lXVVNSKTsKKy0gIGlmIChmZCA9PSAtMSkgeworLSAgICByZXR1cm4gMjsKKy0gIH0KKy0gIGlmIChmdHJ1bmNhdGUoZmQsIDQwOTYpIDwgMCkgeworLSAgICBjbG9zZShmZCk7CistICAgIHNobV91bmxpbmsodG1wbmFtZSk7CistICAgIHJldHVybiAzOworLSAgfQorLQorLSAgc2htID0gbW1hcChOVUxMLCA0MDk2LCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELCBmZCwgMCk7CistICBpZiAoc2htID09IE1BUF9GQUlMRUQpIHsKKy0gICAgcmV0dXJuIDQ7CistICB9CistICBzaG1fdW5saW5rKHRtcG5hbWUpOworLSAgY2xvc2UoZmQpOworLQorLSAgc3RyY3B5KHNobSwgImhlbGxvIik7CistCistICBwaWQgPSBmb3JrKCk7CistICBpZiAocGlkIDwgMCkgeworLSAgICByZXR1cm4gNTsKKy0gIH0gZWxzZSBpZiAocGlkID09IDApIHsKKy0gICAgc3RyY3B5KHNobSwgImJ5ZSIpOworLSAgICByZXR1cm4gNjsKKy0gIH0KKy0gIGlmICh3YWl0KCZzdGF0dXMpICE9IHBpZCkgeworLSAgICByZXR1cm4gNzsKKy0gIH0KKy0gIGlmICghV0lGRVhJVEVEKHN0YXR1cykgfHwgV0VYSVRTVEFUVVMoc3RhdHVzKSAhPSA2KSB7CistICAgIHJldHVybiA4OworLSAgfQorLSAgaWYgKHN0cmNtcChzaG0sICJieWUiKSAhPSAwKSB7CistICAgIHJldHVybiA5OworLSAgfQorLSAgcmV0dXJuIDA7CistfQorLV0sZG5sCistICAgIEFDX0RFRklORShIQVZFX1NITV9NTUFQX1BPU0lYLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIFBPU0lYIG1tYXAoKSBTSE0gc3VwcG9ydF0pCistICAgIG1zZz15ZXMsbXNnPW5vLG1zZz1ubykKKy0gIEFDX01TR19SRVNVTFQoWyRtc2ddKQorKyAgQUNfREVGSU5FKEhBVkVfU0hNX01NQVBfUE9TSVgsIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgUE9TSVggbW1hcCgpIFNITSBzdXBwb3J0XSkKKyAKKyAgIEFDX01TR19DSEVDS0lORyhmb3IgbW1hcCgpIHVzaW5nIHJlZ3VsYXIgZmlsZSBzaGFyZWQgbWVtb3J5IHN1cHBvcnQpCistICBBQ19UUllfUlVOKFsKKy0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+CistI2luY2x1ZGUgPHN5cy93YWl0Lmg+CistI2luY2x1ZGUgPHN5cy9tbWFuLmg+CistI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CistI2luY2x1ZGUgPGZjbnRsLmg+CistI2luY2x1ZGUgPHVuaXN0ZC5oPgorLSNpbmNsdWRlIDxzdHJpbmcuaD4KKy0jaW5jbHVkZSA8c3RkbGliLmg+CistI2luY2x1ZGUgPHN0ZGlvLmg+CistCistI2lmbmRlZiBNQVBfRkFJTEVECistIyBkZWZpbmUgTUFQX0ZBSUxFRCAoKHZvaWQqKS0xKQorLSNlbmRpZgorLQorLWludCBtYWluKCkgeworLSAgcGlkX3QgcGlkOworLSAgaW50IHN0YXR1czsKKy0gIGludCBmZDsKKy0gIGNoYXIgKnNobTsKKy0gIGNoYXIgdG1wbmFtZVs0MDk2XTsKKy0KKy0gIHNwcmludGYodG1wbmFtZSwidGVzdC5zaG0uJWRYWFhYWFgiLCBnZXRwaWQoKSk7CistICBpZiAobWt0ZW1wKHRtcG5hbWUpID09IE5VTEwpIHsKKy0gICAgcmV0dXJuIDE7CistICB9CistICBmZCA9IG9wZW4odG1wbmFtZSwgT19SRFdSIHwgT19DUkVBVCwgU19JUlVTUiB8IFNfSVdVU1IpOworLSAgaWYgKGZkID09IC0xKSB7CistICAgIHJldHVybiAyOworLSAgfQorLSAgaWYgKGZ0cnVuY2F0ZShmZCwgNDA5NikgPCAwKSB7CistICAgIGNsb3NlKGZkKTsKKy0gICAgdW5saW5rKHRtcG5hbWUpOworLSAgICByZXR1cm4gMzsKKy0gIH0KKy0KKy0gIHNobSA9IG1tYXAoTlVMTCwgNDA5NiwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwgZmQsIDApOworLSAgaWYgKHNobSA9PSBNQVBfRkFJTEVEKSB7CistICAgIHJldHVybiA0OworLSAgfQorLSAgdW5saW5rKHRtcG5hbWUpOworLSAgY2xvc2UoZmQpOworLQorLSAgc3RyY3B5KHNobSwgImhlbGxvIik7CistCistICBwaWQgPSBmb3JrKCk7CistICBpZiAocGlkIDwgMCkgeworLSAgICByZXR1cm4gNTsKKy0gIH0gZWxzZSBpZiAocGlkID09IDApIHsKKy0gICAgc3RyY3B5KHNobSwgImJ5ZSIpOworLSAgICByZXR1cm4gNjsKKy0gIH0KKy0gIGlmICh3YWl0KCZzdGF0dXMpICE9IHBpZCkgeworLSAgICByZXR1cm4gNzsKKy0gIH0KKy0gIGlmICghV0lGRVhJVEVEKHN0YXR1cykgfHwgV0VYSVRTVEFUVVMoc3RhdHVzKSAhPSA2KSB7CistICAgIHJldHVybiA4OworLSAgfQorLSAgaWYgKHN0cmNtcChzaG0sICJieWUiKSAhPSAwKSB7CistICAgIHJldHVybiA5OworLSAgfQorLSAgcmV0dXJuIDA7CistfQorLV0sZG5sCistICAgIEFDX0RFRklORShIQVZFX1NITV9NTUFQX0ZJTEUsIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgbW1hcCgpIFNITSBzdXBwb3J0XSkKKy0gICAgbXNnPXllcyxtc2c9bm8sbXNnPW5vKQorLSAgQUNfTVNHX1JFU1VMVChbJG1zZ10pCistCistZmxvY2tfdHlwZT11bmtub3duCistQUNfTVNHX0NIRUNLSU5HKCJ3aGV0aGVyIGZsb2NrIHN0cnVjdCBpcyBsaW51eCBvcmRlcmVkIikKKy1BQ19UUllfUlVOKFsKKy0gICNpbmNsdWRlIDxmY250bC5oPgorLSAgc3RydWN0IGZsb2NrIGxvY2sgPSB7IDEsIDIsIDMsIDQsIDUgfTsKKy0gIGludCBtYWluKCkgeyAKKy0gICAgaWYobG9jay5sX3R5cGUgPT0gMSAmJiBsb2NrLmxfd2hlbmNlID09IDIgJiYgbG9jay5sX3N0YXJ0ID09IDMgJiYgbG9jay5sX2xlbiA9PSA0KSB7CistCQlyZXR1cm4gMDsKKy0gICAgfQorLSAgICByZXR1cm4gMTsKKy0gIH0gCistXSwgWworLQlmbG9ja190eXBlPWxpbnV4CistICAgIEFDX0RFRklORShbSEFWRV9GTE9DS19MSU5VWF0sIFtdLCBbU3RydWN0IGZsb2NrIGlzIExpbnV4LXR5cGVdKQorLSAgICBBQ19NU0dfUkVTVUxUKCJ5ZXMiKQorLV0sIEFDX01TR19SRVNVTFQoIm5vIikgKQorKyAgCisrICBBQ19ERUZJTkUoSEFWRV9TSE1fTU1BUF9GSUxFLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIG1tYXAoKSBTSE0gc3VwcG9ydF0pCisgCistQUNfTVNHX0NIRUNLSU5HKCJ3aGV0aGVyIGZsb2NrIHN0cnVjdCBpcyBCU0Qgb3JkZXJlZCIpCistQUNfVFJZX1JVTihbCistICAjaW5jbHVkZSA8ZmNudGwuaD4KKy0gIHN0cnVjdCBmbG9jayBsb2NrID0geyAxLCAyLCAzLCA0LCA1IH07CistICBpbnQgbWFpbigpIHsgCistICAgIGlmKGxvY2subF9zdGFydCA9PSAxICYmIGxvY2subF9sZW4gPT0gMiAmJiBsb2NrLmxfdHlwZSA9PSA0ICYmIGxvY2subF93aGVuY2UgPT0gNSkgeworLQkJcmV0dXJuIDA7CistICAgIH0KKy0gICAgcmV0dXJuIDE7CistICB9IAorLV0sIFsKKy0JZmxvY2tfdHlwZT1ic2QKKy0gICAgQUNfREVGSU5FKFtIQVZFX0ZMT0NLX0JTRF0sIFtdLCBbU3RydWN0IGZsb2NrIGlzIEJTRC10eXBlXSkgCistICAgIEFDX01TR19SRVNVTFQoInllcyIpCistXSwgQUNfTVNHX1JFU1VMVCgibm8iKSApCisrICBmbG9ja190eXBlPWxpbnV4CisrICBBQ19ERUZJTkUoW0hBVkVfRkxPQ0tfTElOVVhdLCBbXSwgW1N0cnVjdCBmbG9jayBpcyBMaW51eC10eXBlXSkKKyAKKyBpZiB0ZXN0ICIkZmxvY2tfdHlwZSIgPSAidW5rbm93biI7IHRoZW4KKyAJQUNfTVNHX0VSUk9SKFtEb24ndCBrbm93IGhvdyB0byBkZWZpbmUgc3RydWN0IGZsb2NrIG9uIHRoaXMgc3lzdGVtWyxdIHNldCAtLWVuYWJsZS1vcGNhY2hlPW5vXSkKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9jaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvY2hhbmdlLUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTksucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U5MDE4NAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvY2hhbmdlLUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTksucGF0Y2gKQEAgLTAsMCArMSw2MSBAQAorRnJvbSAzYmZjYzdmZGQyMjI2MWVhZWQxMDk0OTcxNGRlMGE5MGQzMWUxMGFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVGh1LCAyMCBBdWcgMjAxNSAxNjoyOTozNSArMDgwMAorU3ViamVjdDogW1BBVENIXSBbUEFUQ0hdIGNvbmZpZy5tNDogY2hhbmdlIEFDX1RSWV9SVU4gdG8gQUNfVFJZX0xJTksKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK0FDX1RSWV9SVU4gaXMgbm90IHN1aXRhYmxlIGZvciBjcm9zcy1jb21waWxlCisKK1NpZ25lZC1vZmYtYnk6IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KKworJSUgb3JpZ2luYWwgcGF0Y2g6IGNoYW5nZS1BQ19UUllfUlVOLXRvLUFDX1RSWV9MSU5LLnBhdGNoCistLS0KKyBleHQvZmlsZWluZm8vY29uZmlnLm00IHwgMzEgKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNCBiL2V4dC9maWxlaW5mby9jb25maWcubTQKK2luZGV4IDUyM2I0ZmQuLjBhYWE0YzggMTAwNjQ0CistLS0gYS9leHQvZmlsZWluZm8vY29uZmlnLm00CisrKysgYi9leHQvZmlsZWluZm8vY29uZmlnLm00CitAQCAtMTQsMzEgKzE0LDEyIEBAIGlmIHRlc3QgIiRQSFBfRklMRUlORk8iICE9ICJubyI7IHRoZW4KKyAgICAgbGlibWFnaWMvcmVhZGNkZi5jIGxpYm1hZ2ljL3NvZnRtYWdpYy5jIGxpYm1hZ2ljL2Rlci5jIgorIAorICAgQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3RyY2FzZXN0cl0pCistICBBQ19UUllfUlVOKFsKKy0jaW5jbHVkZSA8c3RyaW5nLmg+CistI2luY2x1ZGUgPHN0cmluZ3MuaD4KKy0jaW5jbHVkZSA8c3RkbGliLmg+CistCistaW50IG1haW4odm9pZCkKKy17CistICAgICAgICBjaGFyICpzMCwgKnMxLCAqcmV0OworLQorLSAgICAgICAgczAgPSAoY2hhciAqKSBtYWxsb2MoNDIpOworLSAgICAgICAgczEgPSAoY2hhciAqKSBtYWxsb2MoOCk7CistCistICAgICAgICBtZW1zZXQoczAsICdYJywgNDIpOworLSAgICAgICAgczBbMjRdID0gJ1knOworLSAgICAgICAgczBbMjZdID0gJ1onOworLSAgICAgICAgczBbNDFdID0gJ1wwJzsKKy0gICAgICAgIG1lbXNldChzMSwgJ3gnLCA4KTsKKy0gICAgICAgIHMxWzBdID0gJ3knOworLSAgICAgICAgczFbMl0gPSAnWic7CistICAgICAgICBzMVs3XSA9ICdcMCc7CistCistICAgICAgICByZXQgPSBzdHJjYXNlc3RyKHMwLCBzMSk7CistCistICAgICAgICByZXR1cm4gIShOVUxMICE9IHJldCk7CistfQorKyAgQUNfVFJZX0NPTVBJTEUoWworKyAgICAgI2luY2x1ZGUgPHN0cmluZy5oPgorKyAgICAgI2luY2x1ZGUgPHN0cmluZ3MuaD4KKysgICAgICNpbmNsdWRlIDxzdGRsaWIuaD4KKysgIF0sWworKyAgICAgc3RyY2FzZXN0cihOVUxMLCBOVUxMKTsKKyAgIF0sWworICAgICBkbmwgdXNpbmcgdGhlIHBsYXRmb3JtIGltcGxlbWVudGF0aW9uCisgICAgIEFDX01TR19SRVNVTFQoeWVzKQorLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL2NvbmZpZ3VyZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvY29uZmlndXJlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNTMzNGM3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvY29uZmlndXJlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIHBocC01LjEuNi9jb25maWd1cmUub2xkCTIwMDYtMDktMTIgMDc6NTQ6MTQuMDAwMDAwMDAwIC0wNzAwCi0rKysgcGhwLTUuMS42L2NvbmZpZ3VyZQkyMDA2LTA5LTEyIDA3OjU0OjM3LjAwMDAwMDAwMCAtMDcwMAotQEAgLTE0NzE1LDggKzE0NzE1LDYgQEAKLSAKLSAKLSAKLS0gIHVuc2V0IGFjX2N2X2Z1bmNfZGxvcGVuCi0tICB1bnNldCBhY19jdl9mdW5jX19fZGxvcGVuCi0gICB1bnNldCBmb3VuZAotICAgCi0gICBlY2hvICRhY19uICJjaGVja2luZyBmb3IgZGxvcGVuIiIuLi4gJGFjX2MiIDE+JjYKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvaWNvbnYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL2ljb252LnBhdGNoCmluZGV4IDI1NWZiYjAuLmI2ZTNjZWIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvaWNvbnYucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9pY29udi5wYXRjaApAQCAtMSwxMCArMSwxOCBAQAotVXBzdHJlYW0tc3RhdHVzOiBVbmtub3duCitGcm9tIDE3Y2M1NjQ1ZjNhY2Y5NDNhNWEwNjQ2NWQwOWQwZWJjZmVhOTg3YmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgorRGF0ZTogV2VkLCAyIE5vdiAyMDExIDE2OjU0OjU3ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFVwc3RyZWFtLXN0YXR1czogVW5rbm93bgorCistLS0KKyBhY2luY2x1ZGUubTQgICAgICAgIHwgMyArKy0KKyBleHQvaWNvbnYvY29uZmlnLm00IHwgMiArLQorIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvYWNpbmNsdWRlLm00IGIvYWNpbmNsdWRlLm00Ci1pbmRleCBhNmMwZDg0Li5kZjExYWJkIDEwMDY0NAoraW5kZXggZDMyNzY2YS4uYWQ1MTY2ZSAxMDA2NDQKIC0tLSBhL2FjaW5jbHVkZS5tNAogKysrIGIvYWNpbmNsdWRlLm00Ci1AQCAtMjQ1Miw3ICsyNDUyLDggQEAgQUNfREVGVU4oW1BIUF9TRVRVUF9JQ09OVl0sIFsKK0BAIC0yNDQ1LDcgKzI0NDUsOCBAQCBBQ19ERUZVTihbUEhQX1NFVFVQX0lDT05WXSwgWwogICAgZG5sIENoZWNrIGxpYmMgZmlyc3QgaWYgbm8gcGF0aCBpcyBwcm92aWRlZCBpbiAtLXdpdGgtaWNvbnYKICAgIGRubAogIApAQCAtMTUsNyArMjMsNyBAQAogICAgICBkbmwgLWxpY29udiBpbi4KICAgICAgTElCU19zYXZlPSIkTElCUyIKIGRpZmYgLS1naXQgYS9leHQvaWNvbnYvY29uZmlnLm00IGIvZXh0L2ljb252L2NvbmZpZy5tNAotaW5kZXggZDY3M2IwYS4uMWZiZWYxMyAxMDA2NDQKK2luZGV4IDZhMDU2OTcuLjk3M2U3NTAgMTAwNjQ0CiAtLS0gYS9leHQvaWNvbnYvY29uZmlnLm00CiArKysgYi9leHQvaWNvbnYvY29uZmlnLm00CiBAQCAtMTUsNyArMTUsNyBAQCBpZiB0ZXN0ICIkUEhQX0lDT05WIiAhPSAibm8iOyB0aGVuCkBAIC0yNyw2ICszNSwzIEBACiAgICAgICAgICBpZiB0ZXN0IC1mICIkaS9pbmNsdWRlL2ljb252LmgiIHx8IHRlc3QgLWYgIiRpL2luY2x1ZGUvZ2ljb252LmgiOyB0aGVuCiAgICAgICAgICAgIFBIUF9JQ09OVl9QUkVGSVg9IiRpIgogICAgICAgICAgICBicmVhawotLS0gCi0xLjkuMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL2ltYXAtZml4LWF1dG9mb28ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL2ltYXAtZml4LWF1dG9mb28ucGF0Y2gKaW5kZXggZGEwNGMyZC4uYjVmYjdkNCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9pbWFwLWZpeC1hdXRvZm9vLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvaW1hcC1maXgtYXV0b2Zvby5wYXRjaApAQCAtMSwxMCArMSwxOCBAQAotVXBzdHJlYW0tc3RhdHVzOiBVbmtub3duCitGcm9tIGMwODRjODM0OWQxNzgwOTgwZTIzMmNiMjhiNjBhMTA5ZTNkODk0MzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgorRGF0ZTogV2VkLCAyIE5vdiAyMDExIDE2OjU0OjU3ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFVwc3RyZWFtLXN0YXR1czogVW5rbm93bgorCistLS0KKyBhY2luY2x1ZGUubTQgICAgICAgfCAgMiArLQorIGV4dC9pbWFwL2NvbmZpZy5tNCB8IDEwICsrLS0tLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2FjaW5jbHVkZS5tNCBiL2FjaW5jbHVkZS5tNAotaW5kZXggZGYxMWFiZC4uMDZlNzIzNiAxMDA2NDQKK2luZGV4IGFkNTE2NmUuLmY2YTU1ZWMgMTAwNjQ0CiAtLS0gYS9hY2luY2x1ZGUubTQKICsrKyBiL2FjaW5jbHVkZS5tNAotQEAgLTIzNTcsNyArMjM1Nyw3IEBAIEFDX0RFRlVOKFtQSFBfU0VUVVBfT1BFTlNTTF0sWworQEAgLTIzNTAsNyArMjM1MCw3IEBAIEFDX0RFRlVOKFtQSFBfU0VUVVBfT1BFTlNTTF0sWwogICAgICAgIFBIUF9PUEVOU1NMX0RJUj0iL3Vzci9sb2NhbC9zc2wgL3Vzci9sb2NhbCAvdXNyIC91c3IvbG9jYWwvb3BlbnNzbCIKICAgICAgZmkKICAKQEAgLTE0LDcgKzIyLDcgQEAKICAgICAgICAgIE9QRU5TU0xfSU5DRElSPSRpL2luY2x1ZGUKICAgICAgICBmaQogZGlmZiAtLWdpdCBhL2V4dC9pbWFwL2NvbmZpZy5tNCBiL2V4dC9pbWFwL2NvbmZpZy5tNAotaW5kZXggM2ZjZjY3NC4uZjA4Y2FmNyAxMDA2NDQKK2luZGV4IGJhZGI2ZTIuLjhmZjgwM2MgMTAwNjQ0CiAtLS0gYS9leHQvaW1hcC9jb25maWcubTQKICsrKyBiL2V4dC9pbWFwL2NvbmZpZy5tNAogQEAgLTEwOSw3ICsxMDksNyBAQCBpZiB0ZXN0ICIkUEhQX0lNQVAiICE9ICJubyI7IHRoZW4KQEAgLTQxLDYgKzQ5LDMgQEAKICAgICAgICBJTUFQX0xJQj0kbGliCiAgICAgICAgSU1BUF9MSUJfQ0hLKCRQSFBfTElCRElSKQogICAgICAgIElNQVBfTElCX0NISyhjLWNsaWVudCkKLS0tIAotMS45LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9wZWFyLW1ha2VmaWxlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9wZWFyLW1ha2VmaWxlLnBhdGNoCmluZGV4IDk5MjdkMmQuLjRiYzEwMjUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGVhci1tYWtlZmlsZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL3BlYXItbWFrZWZpbGUucGF0Y2gKQEAgLTEsMTEgKzEsMTggQEAKLVVwc3RyZWFtLXN0YXR1czogVW5rbm93bgorRnJvbSBlZGQ1NzVhNTQ2ZDU2YmI1NjgzYWZmMTk3ODJiMTY5NjNkNjFmZDBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KK0RhdGU6IFdlZCwgMiBOb3YgMjAxMSAxNjo1NDo1NyArMDEwMAorU3ViamVjdDogW1BBVENIXSBVcHN0cmVhbS1zdGF0dXM6IFVua25vd24KKworLS0tCisgcGVhci9NYWtlZmlsZS5mcmFnIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQogCiBkaWZmIC0tZ2l0IGEvcGVhci9NYWtlZmlsZS5mcmFnIGIvcGVhci9NYWtlZmlsZS5mcmFnCi1pbmRleCAwMGJhY2FlLi43MzllZWNhIDEwMDY0NAoraW5kZXggYmJlOGVjMy4uMTZmNDNlMiAxMDA2NDQKIC0tLSBhL3BlYXIvTWFrZWZpbGUuZnJhZwogKysrIGIvcGVhci9NYWtlZmlsZS5mcmFnCi1AQCAtMTEsNyArMTEsNyBAQCBQRUFSX1BSRUZJWCA9IC1kcCBhJHtwcm9ncmFtX3ByZWZpeH0KLSBQRUFSX1NVRkZJWCA9IC1kcyBhJChwcm9ncmFtX3N1ZmZpeCkKK0BAIC0xMiw3ICsxMiw3IEBAIFBFQVJfU1VGRklYID0gLWRzIGEkKHByb2dyYW1fc3VmZml4KQorIFBFQVJfSU5TVEFMTEVSX1VSTCA9IGh0dHBzOi8vcGVhci5waHAubmV0L2luc3RhbGwtcGVhci1ub3psaWIucGhhcgogIAogIGluc3RhbGwtcGVhci1pbnN0YWxsZXI6ICQoU0FQSV9DTElfUEFUSCkKIC0JQCQodG9wX2J1aWxkZGlyKS9zYXBpL2NsaS9waHAgJChQRUFSX0lOU1RBTExfRkxBR1MpIHBlYXIvaW5zdGFsbC1wZWFyLW5vemxpYi5waGFyIC1kICIkKHBlYXJkaXIpIiAtYiAiJChiaW5kaXIpIiAke1BFQVJfUFJFRklYfSAke1BFQVJfU1VGRklYfQpAQCAtMTMsNiArMjAsMyBAQAogIAogIGluc3RhbGwtcGVhcjoKICAJQGVjaG8gIkluc3RhbGxpbmcgUEVBUiBlbnZpcm9ubWVudDogICAgICAkKElOU1RBTExfUk9PVCkkKHBlYXJkaXIpLyIKLS0tIAotMS45LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waGFyLW1ha2VmaWxlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waGFyLW1ha2VmaWxlLnBhdGNoCmluZGV4IDJmN2ZlMzQuLjMzNmNmMGQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGhhci1tYWtlZmlsZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL3BoYXItbWFrZWZpbGUucGF0Y2gKQEAgLTEsMTcgKzEsMjQgQEAKLUZpeCBwaGFyIHBhY2thZ2luZworRnJvbSAwODk2MmE1NmY2OTk2M2UwMTg5MmQ5OGNhNWI3NWRlODM1NGJkM2Y1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KK0RhdGU6IFdlZCwgMiBOb3YgMjAxMSAxNjo1NDo1NyArMDEwMAorU3ViamVjdDogW1BBVENIXSBGaXggcGhhciBwYWNrYWdpbmcKIAogSW5oZXJpdGVkIGZyb20gT0UtQ2xhc3NpYywgd2l0aCBzb21lIGFkZGl0aW9ucyB0byBmaXggaG9zdCBwYXRocyBsZWFraW5nCiBpbnRvIHRoZSB0YXJnZXQgcGFja2FnZS4KIAogVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWddCiAKKy0tLQorIGV4dC9waGFyL01ha2VmaWxlLmZyYWcgfCAxNyArKystLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQorCiBkaWZmIC0tZ2l0IGEvZXh0L3BoYXIvTWFrZWZpbGUuZnJhZyBiL2V4dC9waGFyL01ha2VmaWxlLmZyYWcKLWluZGV4IDY1MTZkZGYuLjM2ZTZjZjQgMTAwNjQ0CitpbmRleCAwZTM3MTNmLi4yMmY3ODk4IDEwMDY0NAogLS0tIGEvZXh0L3BoYXIvTWFrZWZpbGUuZnJhZwogKysrIGIvZXh0L3BoYXIvTWFrZWZpbGUuZnJhZwotQEAgLTUsMjAgKzUsOSBAQCBwaGFyY21kOiAkKGJ1aWxkZGlyKS9waGFyLnBocCAkKGJ1aWxkZGlyKS9waGFyLnBoYXIKK0BAIC0xMCwyMCArMTAsOSBAQCBwaGFyY21kOiAkKGJ1aWxkZGlyKS9waGFyLnBocCAkKGJ1aWxkZGlyKS9waGFyLnBoYXIKICAKLSBQSFBfUEhBUkNNRF9TRVRUSU5HUyA9IC1kICdvcGVuX2Jhc2VkaXI9JyAtZCAnb3V0cHV0X2J1ZmZlcmluZz0wJyAtZCAnbWVtb3J5X2xpbWl0PS0xJyAtZCBwaGFyLnJlYWRvbmx5PTAgLWQgJ3NhZmVfbW9kZT0wJworIFBIUF9QSEFSQ01EX1NFVFRJTkdTID0gLW4gLWQgJ29wZW5fYmFzZWRpcj0nIC1kICdvdXRwdXRfYnVmZmVyaW5nPTAnIC1kICdtZW1vcnlfbGltaXQ9LTEnIC1kIHBoYXIucmVhZG9ubHk9MCAtZCAnc2FmZV9tb2RlPTAnCiAgUEhQX1BIQVJDTURfRVhFQ1VUQUJMRSA9IGAgXAogLQlpZiB0ZXN0IC14ICIkKHRvcF9idWlsZGRpcikvJChTQVBJX0NMSV9QQVRIKSI7IHRoZW4gXAogLQkJJCh0b3Bfc3JjZGlyKS9idWlsZC9zaHRvb2wgZWNobyAtbiAtLSAiJCh0b3BfYnVpbGRkaXIpLyQoU0FQSV9DTElfUEFUSCkgLW4iOyBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL3BocDUtMDAwMS1vcGNhY2hlLWNvbmZpZy5tNC1lbmFibGUtb3BjYWNoZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGhwNS0wMDAxLW9wY2FjaGUtY29uZmlnLm00LWVuYWJsZS1vcGNhY2hlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiZTY3ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL3BocDUtMDAwMS1vcGNhY2hlLWNvbmZpZy5tNC1lbmFibGUtb3BjYWNoZS5wYXRjaApAQCAtMCwwICsxLDM4NyBAQAorRnJvbSBmYWZjZmFjMDkzM2MxN2UxYmY1NTE2MDAwODBlYjA1NDExODZjYWY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW51aiBNaXR0YWwgPGFudWoubWl0dGFsQGludGVsLmNvbT4KK0RhdGU6IE1vbiwgMiBBcHIgMjAxOCAxNzo1NDo1MiArMDgwMAorU3ViamVjdDogW1BBVENIXSBvcGNhY2hlL2NvbmZpZy5tNDogZW5hYmxlIG9wY2FjaGUKKworV2UgY2FuJ3QgdXNlIEFDX1RSWV9SVU4gdG8gcnVuIHByb2dyYW1zIGluIGEgY3Jvc3MgY29tcGlsZSBlbnZpcm9ubWVudC4gU2V0Cit0aGUgdmFyaWFibGVzIGRpcmVjdGx5IGluc3RlYWQgc2luY2Ugd2Uga25vdyB0aGF0IHdlJ2QgYmUgcnVubmluZyBvbiBsYXRlc3QKK2Vub3VnaCBsaW51eCBrZXJuZWwuCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbQ29uZmlndXJhdGlvbl0KKworU2lnbmVkLW9mZi1ieTogQW51aiBNaXR0YWwgPGFudWoubWl0dGFsQGludGVsLmNvbT4KKworJSUgb3JpZ2luYWwgcGF0Y2g6IHBocDUtMDAwMS1vcGNhY2hlLWNvbmZpZy5tNC1lbmFibGUtb3BjYWNoZS5wYXRjaAorLS0tCisgZXh0L29wY2FjaGUvY29uZmlnLm00IHwgMzQ5ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMzQxIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZXh0L29wY2FjaGUvY29uZmlnLm00IGIvZXh0L29wY2FjaGUvY29uZmlnLm00CitpbmRleCA1YThiODZjLi42ZTg3ZmE1IDEwMDY0NAorLS0tIGEvZXh0L29wY2FjaGUvY29uZmlnLm00CisrKysgYi9leHQvb3BjYWNoZS9jb25maWcubTQKK0BAIC0xMSwzNTMgKzExLDIwIEBAIGlmIHRlc3QgIiRQSFBfT1BDQUNIRSIgIT0gIm5vIjsgdGhlbgorICAgICBBQ19ERUZJTkUoSEFWRV9NUFJPVEVDVCwgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBtcHJvdGVjdCgpIGZ1bmN0aW9uXSkKKyAgIF0pCisgCistICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIHN5c3ZpcGMgc2hhcmVkIG1lbW9yeSBzdXBwb3J0KQorLSAgQUNfVFJZX1JVTihbCistI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgorLSNpbmNsdWRlIDxzeXMvaXBjLmg+CistI2luY2x1ZGUgPHN5cy9zaG0uaD4KKy0jaW5jbHVkZSA8dW5pc3RkLmg+CistI2luY2x1ZGUgPHN0cmluZy5oPgorKyAgQUNfREVGSU5FKEhBVkVfU0hNX0lQQywgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBTeXNWIElQQyBTSE0gc3VwcG9ydF0pCisgCistaW50IG1haW4oKSB7CistICBwaWRfdCBwaWQ7CistICBpbnQgc3RhdHVzOworLSAgaW50IGlwY19pZDsKKy0gIGNoYXIgKnNobTsKKy0gIHN0cnVjdCBzaG1pZF9kcyBzaG1idWY7CisrICBBQ19ERUZJTkUoSEFWRV9TSE1fTU1BUF9BTk9OLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIG1tYXAoTUFQX0FOT04pIFNITSBzdXBwb3J0XSkKKyAKKy0gIGlwY19pZCA9IHNobWdldChJUENfUFJJVkFURSwgNDA5NiwgKElQQ19DUkVBVCB8IFNITV9SIHwgU0hNX1cpKTsKKy0gIGlmIChpcGNfaWQgPT0gLTEpIHsKKy0gICAgcmV0dXJuIDE7CistICB9CisrICBBQ19ERUZJTkUoSEFWRV9TSE1fTU1BUF9aRVJPLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIG1tYXAoIi9kZXYvemVybyIpIFNITSBzdXBwb3J0XSkKKyAKKy0gIHNobSA9IHNobWF0KGlwY19pZCwgTlVMTCwgMCk7CistICBpZiAoc2htID09ICh2b2lkICopLTEpIHsKKy0gICAgc2htY3RsKGlwY19pZCwgSVBDX1JNSUQsIE5VTEwpOworLSAgICByZXR1cm4gMjsKKy0gIH0KKy0KKy0gIGlmIChzaG1jdGwoaXBjX2lkLCBJUENfU1RBVCwgJnNobWJ1ZikgIT0gMCkgeworLSAgICBzaG1kdChzaG0pOworLSAgICBzaG1jdGwoaXBjX2lkLCBJUENfUk1JRCwgTlVMTCk7CistICAgIHJldHVybiAzOworLSAgfQorLQorLSAgc2htYnVmLnNobV9wZXJtLnVpZCA9IGdldHVpZCgpOworLSAgc2htYnVmLnNobV9wZXJtLmdpZCA9IGdldGdpZCgpOworLSAgc2htYnVmLnNobV9wZXJtLm1vZGUgPSAwNjAwOworLQorLSAgaWYgKHNobWN0bChpcGNfaWQsIElQQ19TRVQsICZzaG1idWYpICE9IDApIHsKKy0gICAgc2htZHQoc2htKTsKKy0gICAgc2htY3RsKGlwY19pZCwgSVBDX1JNSUQsIE5VTEwpOworLSAgICByZXR1cm4gNDsKKy0gIH0KKy0KKy0gIHNobWN0bChpcGNfaWQsIElQQ19STUlELCBOVUxMKTsKKy0KKy0gIHN0cmNweShzaG0sICJoZWxsbyIpOworLQorLSAgcGlkID0gZm9yaygpOworLSAgaWYgKHBpZCA8IDApIHsKKy0gICAgcmV0dXJuIDU7CistICB9IGVsc2UgaWYgKHBpZCA9PSAwKSB7CistICAgIHN0cmNweShzaG0sICJieWUiKTsKKy0gICAgcmV0dXJuIDY7CistICB9CistICBpZiAod2FpdCgmc3RhdHVzKSAhPSBwaWQpIHsKKy0gICAgcmV0dXJuIDc7CistICB9CistICBpZiAoIVdJRkVYSVRFRChzdGF0dXMpIHx8IFdFWElUU1RBVFVTKHN0YXR1cykgIT0gNikgeworLSAgICByZXR1cm4gODsKKy0gIH0KKy0gIGlmIChzdHJjbXAoc2htLCAiYnllIikgIT0gMCkgeworLSAgICByZXR1cm4gOTsKKy0gIH0KKy0gIHJldHVybiAwOworLX0KKy1dLGRubAorLSAgICBBQ19ERUZJTkUoSEFWRV9TSE1fSVBDLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIFN5c1YgSVBDIFNITSBzdXBwb3J0XSkKKy0gICAgbXNnPXllcyxtc2c9bm8sbXNnPW5vKQorLSAgQUNfTVNHX1JFU1VMVChbJG1zZ10pCistCistICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIG1tYXAoKSB1c2luZyBNQVBfQU5PTiBzaGFyZWQgbWVtb3J5IHN1cHBvcnQpCistICBBQ19UUllfUlVOKFsKKy0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+CistI2luY2x1ZGUgPHN5cy93YWl0Lmg+CistI2luY2x1ZGUgPHN5cy9tbWFuLmg+CistI2luY2x1ZGUgPHVuaXN0ZC5oPgorLSNpbmNsdWRlIDxzdHJpbmcuaD4KKy0KKy0jaWZuZGVmIE1BUF9BTk9OCistIyBpZmRlZiBNQVBfQU5PTllNT1VTCistIyAgZGVmaW5lIE1BUF9BTk9OIE1BUF9BTk9OWU1PVVMKKy0jIGVuZGlmCistI2VuZGlmCistI2lmbmRlZiBNQVBfRkFJTEVECistIyBkZWZpbmUgTUFQX0ZBSUxFRCAoKHZvaWQqKS0xKQorLSNlbmRpZgorLQorLWludCBtYWluKCkgeworLSAgcGlkX3QgcGlkOworLSAgaW50IHN0YXR1czsKKy0gIGNoYXIgKnNobTsKKy0KKy0gIHNobSA9IG1tYXAoTlVMTCwgNDA5NiwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCB8IE1BUF9BTk9OLCAtMSwgMCk7CistICBpZiAoc2htID09IE1BUF9GQUlMRUQpIHsKKy0gICAgcmV0dXJuIDE7CistICB9CistCistICBzdHJjcHkoc2htLCAiaGVsbG8iKTsKKy0KKy0gIHBpZCA9IGZvcmsoKTsKKy0gIGlmIChwaWQgPCAwKSB7CistICAgIHJldHVybiA1OworLSAgfSBlbHNlIGlmIChwaWQgPT0gMCkgeworLSAgICBzdHJjcHkoc2htLCAiYnllIik7CistICAgIHJldHVybiA2OworLSAgfQorLSAgaWYgKHdhaXQoJnN0YXR1cykgIT0gcGlkKSB7CistICAgIHJldHVybiA3OworLSAgfQorLSAgaWYgKCFXSUZFWElURUQoc3RhdHVzKSB8fCBXRVhJVFNUQVRVUyhzdGF0dXMpICE9IDYpIHsKKy0gICAgcmV0dXJuIDg7CistICB9CistICBpZiAoc3RyY21wKHNobSwgImJ5ZSIpICE9IDApIHsKKy0gICAgcmV0dXJuIDk7CistICB9CistICByZXR1cm4gMDsKKy19CistXSxkbmwKKy0gICAgQUNfREVGSU5FKEhBVkVfU0hNX01NQVBfQU5PTiwgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBtbWFwKE1BUF9BTk9OKSBTSE0gc3VwcG9ydF0pCistICAgIG1zZz15ZXMsbXNnPW5vLG1zZz1ubykKKy0gIEFDX01TR19SRVNVTFQoWyRtc2ddKQorLQorLSAgQUNfTVNHX0NIRUNLSU5HKGZvciBtbWFwKCkgdXNpbmcgL2Rldi96ZXJvIHNoYXJlZCBtZW1vcnkgc3VwcG9ydCkKKy0gIEFDX1RSWV9SVU4oWworLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKy0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KKy0jaW5jbHVkZSA8c3lzL21tYW4uaD4KKy0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KKy0jaW5jbHVkZSA8ZmNudGwuaD4KKy0jaW5jbHVkZSA8dW5pc3RkLmg+CistI2luY2x1ZGUgPHN0cmluZy5oPgorLQorLSNpZm5kZWYgTUFQX0ZBSUxFRAorLSMgZGVmaW5lIE1BUF9GQUlMRUQgKCh2b2lkKiktMSkKKy0jZW5kaWYKKy0KKy1pbnQgbWFpbigpIHsKKy0gIHBpZF90IHBpZDsKKy0gIGludCBzdGF0dXM7CistICBpbnQgZmQ7CistICBjaGFyICpzaG07CistCistICBmZCA9IG9wZW4oIi9kZXYvemVybyIsIE9fUkRXUiwgU19JUlVTUiB8IFNfSVdVU1IpOworLSAgaWYgKGZkID09IC0xKSB7CistICAgIHJldHVybiAxOworLSAgfQorLQorLSAgc2htID0gbW1hcChOVUxMLCA0MDk2LCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELCBmZCwgMCk7CistICBpZiAoc2htID09IE1BUF9GQUlMRUQpIHsKKy0gICAgcmV0dXJuIDI7CistICB9CistCistICBzdHJjcHkoc2htLCAiaGVsbG8iKTsKKy0KKy0gIHBpZCA9IGZvcmsoKTsKKy0gIGlmIChwaWQgPCAwKSB7CistICAgIHJldHVybiA1OworLSAgfSBlbHNlIGlmIChwaWQgPT0gMCkgeworLSAgICBzdHJjcHkoc2htLCAiYnllIik7CistICAgIHJldHVybiA2OworLSAgfQorLSAgaWYgKHdhaXQoJnN0YXR1cykgIT0gcGlkKSB7CistICAgIHJldHVybiA3OworLSAgfQorLSAgaWYgKCFXSUZFWElURUQoc3RhdHVzKSB8fCBXRVhJVFNUQVRVUyhzdGF0dXMpICE9IDYpIHsKKy0gICAgcmV0dXJuIDg7CistICB9CistICBpZiAoc3RyY21wKHNobSwgImJ5ZSIpICE9IDApIHsKKy0gICAgcmV0dXJuIDk7CistICB9CistICByZXR1cm4gMDsKKy19CistXSxkbmwKKy0gICAgQUNfREVGSU5FKEhBVkVfU0hNX01NQVBfWkVSTywgMSwgW0RlZmluZSBpZiB5b3UgaGF2ZSBtbWFwKCIvZGV2L3plcm8iKSBTSE0gc3VwcG9ydF0pCistICAgIG1zZz15ZXMsbXNnPW5vLG1zZz1ubykKKy0gIEFDX01TR19SRVNVTFQoWyRtc2ddKQorLQorLSAgQUNfTVNHX0NIRUNLSU5HKGZvciBtbWFwKCkgdXNpbmcgc2htX29wZW4oKSBzaGFyZWQgbWVtb3J5IHN1cHBvcnQpCistICBBQ19UUllfUlVOKFsKKy0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+CistI2luY2x1ZGUgPHN5cy93YWl0Lmg+CistI2luY2x1ZGUgPHN5cy9tbWFuLmg+CistI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CistI2luY2x1ZGUgPGZjbnRsLmg+CistI2luY2x1ZGUgPHVuaXN0ZC5oPgorLSNpbmNsdWRlIDxzdHJpbmcuaD4KKy0jaW5jbHVkZSA8c3RkbGliLmg+CistI2luY2x1ZGUgPHN0ZGlvLmg+CistCistI2lmbmRlZiBNQVBfRkFJTEVECistIyBkZWZpbmUgTUFQX0ZBSUxFRCAoKHZvaWQqKS0xKQorLSNlbmRpZgorLQorLWludCBtYWluKCkgeworLSAgcGlkX3QgcGlkOworLSAgaW50IHN0YXR1czsKKy0gIGludCBmZDsKKy0gIGNoYXIgKnNobTsKKy0gIGNoYXIgdG1wbmFtZVs0MDk2XTsKKy0KKy0gIHNwcmludGYodG1wbmFtZSwidGVzdC5zaG0uJWRYWFhYWFgiLCBnZXRwaWQoKSk7CistICBpZiAobWt0ZW1wKHRtcG5hbWUpID09IE5VTEwpIHsKKy0gICAgcmV0dXJuIDE7CistICB9CistICBmZCA9IHNobV9vcGVuKHRtcG5hbWUsIE9fUkRXUiB8IE9fQ1JFQVQsIFNfSVJVU1IgfCBTX0lXVVNSKTsKKy0gIGlmIChmZCA9PSAtMSkgeworLSAgICByZXR1cm4gMjsKKy0gIH0KKy0gIGlmIChmdHJ1bmNhdGUoZmQsIDQwOTYpIDwgMCkgeworLSAgICBjbG9zZShmZCk7CistICAgIHNobV91bmxpbmsodG1wbmFtZSk7CistICAgIHJldHVybiAzOworLSAgfQorLQorLSAgc2htID0gbW1hcChOVUxMLCA0MDk2LCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELCBmZCwgMCk7CistICBpZiAoc2htID09IE1BUF9GQUlMRUQpIHsKKy0gICAgcmV0dXJuIDQ7CistICB9CistICBzaG1fdW5saW5rKHRtcG5hbWUpOworLSAgY2xvc2UoZmQpOworLQorLSAgc3RyY3B5KHNobSwgImhlbGxvIik7CistCistICBwaWQgPSBmb3JrKCk7CistICBpZiAocGlkIDwgMCkgeworLSAgICByZXR1cm4gNTsKKy0gIH0gZWxzZSBpZiAocGlkID09IDApIHsKKy0gICAgc3RyY3B5KHNobSwgImJ5ZSIpOworLSAgICByZXR1cm4gNjsKKy0gIH0KKy0gIGlmICh3YWl0KCZzdGF0dXMpICE9IHBpZCkgeworLSAgICByZXR1cm4gNzsKKy0gIH0KKy0gIGlmICghV0lGRVhJVEVEKHN0YXR1cykgfHwgV0VYSVRTVEFUVVMoc3RhdHVzKSAhPSA2KSB7CistICAgIHJldHVybiA4OworLSAgfQorLSAgaWYgKHN0cmNtcChzaG0sICJieWUiKSAhPSAwKSB7CistICAgIHJldHVybiA5OworLSAgfQorLSAgcmV0dXJuIDA7CistfQorLV0sZG5sCistICAgIEFDX0RFRklORShIQVZFX1NITV9NTUFQX1BPU0lYLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIFBPU0lYIG1tYXAoKSBTSE0gc3VwcG9ydF0pCistICAgIG1zZz15ZXMsbXNnPW5vLG1zZz1ubykKKy0gIEFDX01TR19SRVNVTFQoWyRtc2ddKQorKyAgQUNfREVGSU5FKEhBVkVfU0hNX01NQVBfUE9TSVgsIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgUE9TSVggbW1hcCgpIFNITSBzdXBwb3J0XSkKKyAKKyAgIEFDX01TR19DSEVDS0lORyhmb3IgbW1hcCgpIHVzaW5nIHJlZ3VsYXIgZmlsZSBzaGFyZWQgbWVtb3J5IHN1cHBvcnQpCistICBBQ19UUllfUlVOKFsKKy0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+CistI2luY2x1ZGUgPHN5cy93YWl0Lmg+CistI2luY2x1ZGUgPHN5cy9tbWFuLmg+CistI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CistI2luY2x1ZGUgPGZjbnRsLmg+CistI2luY2x1ZGUgPHVuaXN0ZC5oPgorLSNpbmNsdWRlIDxzdHJpbmcuaD4KKy0jaW5jbHVkZSA8c3RkbGliLmg+CistI2luY2x1ZGUgPHN0ZGlvLmg+CistCistI2lmbmRlZiBNQVBfRkFJTEVECistIyBkZWZpbmUgTUFQX0ZBSUxFRCAoKHZvaWQqKS0xKQorLSNlbmRpZgorLQorLWludCBtYWluKCkgeworLSAgcGlkX3QgcGlkOworLSAgaW50IHN0YXR1czsKKy0gIGludCBmZDsKKy0gIGNoYXIgKnNobTsKKy0gIGNoYXIgdG1wbmFtZVs0MDk2XTsKKy0KKy0gIHNwcmludGYodG1wbmFtZSwidGVzdC5zaG0uJWRYWFhYWFgiLCBnZXRwaWQoKSk7CistICBpZiAobWt0ZW1wKHRtcG5hbWUpID09IE5VTEwpIHsKKy0gICAgcmV0dXJuIDE7CistICB9CistICBmZCA9IG9wZW4odG1wbmFtZSwgT19SRFdSIHwgT19DUkVBVCwgU19JUlVTUiB8IFNfSVdVU1IpOworLSAgaWYgKGZkID09IC0xKSB7CistICAgIHJldHVybiAyOworLSAgfQorLSAgaWYgKGZ0cnVuY2F0ZShmZCwgNDA5NikgPCAwKSB7CistICAgIGNsb3NlKGZkKTsKKy0gICAgdW5saW5rKHRtcG5hbWUpOworLSAgICByZXR1cm4gMzsKKy0gIH0KKy0KKy0gIHNobSA9IG1tYXAoTlVMTCwgNDA5NiwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwgZmQsIDApOworLSAgaWYgKHNobSA9PSBNQVBfRkFJTEVEKSB7CistICAgIHJldHVybiA0OworLSAgfQorLSAgdW5saW5rKHRtcG5hbWUpOworLSAgY2xvc2UoZmQpOworLQorLSAgc3RyY3B5KHNobSwgImhlbGxvIik7CistCistICBwaWQgPSBmb3JrKCk7CistICBpZiAocGlkIDwgMCkgeworLSAgICByZXR1cm4gNTsKKy0gIH0gZWxzZSBpZiAocGlkID09IDApIHsKKy0gICAgc3RyY3B5KHNobSwgImJ5ZSIpOworLSAgICByZXR1cm4gNjsKKy0gIH0KKy0gIGlmICh3YWl0KCZzdGF0dXMpICE9IHBpZCkgeworLSAgICByZXR1cm4gNzsKKy0gIH0KKy0gIGlmICghV0lGRVhJVEVEKHN0YXR1cykgfHwgV0VYSVRTVEFUVVMoc3RhdHVzKSAhPSA2KSB7CistICAgIHJldHVybiA4OworLSAgfQorLSAgaWYgKHN0cmNtcChzaG0sICJieWUiKSAhPSAwKSB7CistICAgIHJldHVybiA5OworLSAgfQorLSAgcmV0dXJuIDA7CistfQorLV0sZG5sCistICAgIEFDX0RFRklORShIQVZFX1NITV9NTUFQX0ZJTEUsIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgbW1hcCgpIFNITSBzdXBwb3J0XSkKKy0gICAgbXNnPXllcyxtc2c9bm8sbXNnPW5vKQorLSAgQUNfTVNHX1JFU1VMVChbJG1zZ10pCistCistZmxvY2tfdHlwZT11bmtub3duCistQUNfTVNHX0NIRUNLSU5HKCJ3aGV0aGVyIGZsb2NrIHN0cnVjdCBpcyBsaW51eCBvcmRlcmVkIikKKy1BQ19UUllfUlVOKFsKKy0gICNpbmNsdWRlIDxmY250bC5oPgorLSAgc3RydWN0IGZsb2NrIGxvY2sgPSB7IDEsIDIsIDMsIDQsIDUgfTsKKy0gIGludCBtYWluKCkgeyAKKy0gICAgaWYobG9jay5sX3R5cGUgPT0gMSAmJiBsb2NrLmxfd2hlbmNlID09IDIgJiYgbG9jay5sX3N0YXJ0ID09IDMgJiYgbG9jay5sX2xlbiA9PSA0KSB7CistCQlyZXR1cm4gMDsKKy0gICAgfQorLSAgICByZXR1cm4gMTsKKy0gIH0gCistXSwgWworLQlmbG9ja190eXBlPWxpbnV4CistICAgIEFDX0RFRklORShbSEFWRV9GTE9DS19MSU5VWF0sIFtdLCBbU3RydWN0IGZsb2NrIGlzIExpbnV4LXR5cGVdKQorLSAgICBBQ19NU0dfUkVTVUxUKCJ5ZXMiKQorLV0sIEFDX01TR19SRVNVTFQoIm5vIikgKQorKyAgCisrICBBQ19ERUZJTkUoSEFWRV9TSE1fTU1BUF9GSUxFLCAxLCBbRGVmaW5lIGlmIHlvdSBoYXZlIG1tYXAoKSBTSE0gc3VwcG9ydF0pCisgCistQUNfTVNHX0NIRUNLSU5HKCJ3aGV0aGVyIGZsb2NrIHN0cnVjdCBpcyBCU0Qgb3JkZXJlZCIpCistQUNfVFJZX1JVTihbCistICAjaW5jbHVkZSA8ZmNudGwuaD4KKy0gIHN0cnVjdCBmbG9jayBsb2NrID0geyAxLCAyLCAzLCA0LCA1IH07CistICBpbnQgbWFpbigpIHsgCistICAgIGlmKGxvY2subF9zdGFydCA9PSAxICYmIGxvY2subF9sZW4gPT0gMiAmJiBsb2NrLmxfdHlwZSA9PSA0ICYmIGxvY2subF93aGVuY2UgPT0gNSkgeworLQkJcmV0dXJuIDA7CistICAgIH0KKy0gICAgcmV0dXJuIDE7CistICB9IAorLV0sIFsKKy0JZmxvY2tfdHlwZT1ic2QKKy0gICAgQUNfREVGSU5FKFtIQVZFX0ZMT0NLX0JTRF0sIFtdLCBbU3RydWN0IGZsb2NrIGlzIEJTRC10eXBlXSkgCistICAgIEFDX01TR19SRVNVTFQoInllcyIpCistXSwgQUNfTVNHX1JFU1VMVCgibm8iKSApCisrICBmbG9ja190eXBlPWxpbnV4CisrICBBQ19ERUZJTkUoW0hBVkVfRkxPQ0tfTElOVVhdLCBbXSwgW1N0cnVjdCBmbG9jayBpcyBMaW51eC10eXBlXSkKKyAKKyBpZiB0ZXN0ICIkZmxvY2tfdHlwZSIgPSAidW5rbm93biI7IHRoZW4KKyAJQUNfTVNHX0VSUk9SKFtEb24ndCBrbm93IGhvdyB0byBkZWZpbmUgc3RydWN0IGZsb2NrIG9uIHRoaXMgc3lzdGVtWyxdIHNldCAtLWVuYWJsZS1vcGNhY2hlPW5vXSkKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waHA1LWNoYW5nZS1BQ19UUllfUlVOLXRvLUFDX1RSWV9MSU5LLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waHA1LWNoYW5nZS1BQ19UUllfUlVOLXRvLUFDX1RSWV9MSU5LLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMjFmOGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL3BocDUtY2hhbmdlLUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTksucGF0Y2gKQEAgLTAsMCArMSw2MyBAQAorRnJvbSA1ZjQ5OTg3ZTg4ZGZjYmRiODRiZTZlMGM5MDI1NDMyZmJkOTk4NzA5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVGh1LCAyMCBBdWcgMjAxNSAxNjoyOTozNSArMDgwMAorU3ViamVjdDogW1BBVENIXSBjb25maWcubTQ6IGNoYW5nZSBBQ19UUllfUlVOIHRvIEFDX1RSWV9MSU5LCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitBQ19UUllfUlVOIGlzIG5vdCBzdWl0YWJsZSBmb3IgY3Jvc3MtY29tcGlsZQorCitTaWduZWQtb2ZmLWJ5OiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CisKKyUlIG9yaWdpbmFsIHBhdGNoOiBjaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaAorCislJSBvcmlnaW5hbCBwYXRjaDogcGhwNS1jaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaAorLS0tCisgZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNCB8IDMxICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2V4dC9maWxlaW5mby9jb25maWcubTQgYi9leHQvZmlsZWluZm8vY29uZmlnLm00CitpbmRleCA3ZTk4ZDYyLi44YThlYTBlIDEwMDY0NAorLS0tIGEvZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNAorKysrIGIvZXh0L2ZpbGVpbmZvL2NvbmZpZy5tNAorQEAgLTE0LDMxICsxNCwxMiBAQCBpZiB0ZXN0ICIkUEhQX0ZJTEVJTkZPIiAhPSAibm8iOyB0aGVuCisgICAgIGxpYm1hZ2ljL3JlYWRjZGYuYyBsaWJtYWdpYy9zb2Z0bWFnaWMuYyIKKyAKKyAgIEFDX01TR19DSEVDS0lORyhbZm9yIHN0cmNhc2VzdHJdKQorLSAgQUNfVFJZX1JVTihbCistI2luY2x1ZGUgPHN0cmluZy5oPgorLSNpbmNsdWRlIDxzdHJpbmdzLmg+CistI2luY2x1ZGUgPHN0ZGxpYi5oPgorLQorLWludCBtYWluKHZvaWQpCisteworLSAgICAgICAgY2hhciAqczAsICpzMSwgKnJldDsKKy0KKy0gICAgICAgIHMwID0gKGNoYXIgKikgbWFsbG9jKDQyKTsKKy0gICAgICAgIHMxID0gKGNoYXIgKikgbWFsbG9jKDgpOworLQorLSAgICAgICAgbWVtc2V0KHMwLCAnWCcsIDQyKTsKKy0gICAgICAgIHMwWzI0XSA9ICdZJzsKKy0gICAgICAgIHMwWzI2XSA9ICdaJzsKKy0gICAgICAgIHMwWzQxXSA9ICdcMCc7CistICAgICAgICBtZW1zZXQoczEsICd4JywgOCk7CistICAgICAgICBzMVswXSA9ICd5JzsKKy0gICAgICAgIHMxWzJdID0gJ1onOworLSAgICAgICAgczFbN10gPSAnXDAnOworLQorLSAgICAgICAgcmV0ID0gc3RyY2FzZXN0cihzMCwgczEpOworLQorLSAgICAgICAgcmV0dXJuICEoTlVMTCAhPSByZXQpOworLX0KKysgIEFDX1RSWV9DT01QSUxFKFsKKysgICAgICNpbmNsdWRlIDxzdHJpbmcuaD4KKysgICAgICNpbmNsdWRlIDxzdHJpbmdzLmg+CisrICAgICAjaW5jbHVkZSA8c3RkbGliLmg+CisrICBdLFsKKysgICAgIHN0cmNhc2VzdHIoTlVMTCwgTlVMTCk7CisgICBdLFsKKyAgICAgZG5sIHVzaW5nIHRoZSBwbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbgorICAgICBBQ19NU0dfUkVTVUxUKHllcykKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waHA1LXBlYXItbWFrZWZpbGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL3BocDUtcGVhci1tYWtlZmlsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmY2NDI2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waHA1LXBlYXItbWFrZWZpbGUucGF0Y2gKQEAgLTAsMCArMSwyNiBAQAorRnJvbSA3OTcyNWU4MmQ1OTgxZmM5NGViNjU3ZjBmNDZhNDk5ZGJmYzFjYzQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KK0RhdGU6IFdlZCwgMiBOb3YgMjAxMSAxNjo1NDo1NyArMDEwMAorU3ViamVjdDogW1BBVENIXSBVcHN0cmVhbS1zdGF0dXM6IFVua25vd24KKworJSUgb3JpZ2luYWwgcGF0Y2g6IHBocDUtcGVhci1tYWtlZmlsZS5wYXRjaAorLS0tCisgcGVhci9NYWtlZmlsZS5mcmFnIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvcGVhci9NYWtlZmlsZS5mcmFnIGIvcGVhci9NYWtlZmlsZS5mcmFnCitpbmRleCAwMGJhY2FlLi43MzllZWNhIDEwMDY0NAorLS0tIGEvcGVhci9NYWtlZmlsZS5mcmFnCisrKysgYi9wZWFyL01ha2VmaWxlLmZyYWcKK0BAIC0xMSw3ICsxMSw3IEBAIFBFQVJfUFJFRklYID0gLWRwIGEke3Byb2dyYW1fcHJlZml4fQorIFBFQVJfU1VGRklYID0gLWRzIGEkKHByb2dyYW1fc3VmZml4KQorIAorIGluc3RhbGwtcGVhci1pbnN0YWxsZXI6ICQoU0FQSV9DTElfUEFUSCkKKy0JQCQodG9wX2J1aWxkZGlyKS9zYXBpL2NsaS9waHAgJChQRUFSX0lOU1RBTExfRkxBR1MpIHBlYXIvaW5zdGFsbC1wZWFyLW5vemxpYi5waGFyIC1kICIkKHBlYXJkaXIpIiAtYiAiJChiaW5kaXIpIiAke1BFQVJfUFJFRklYfSAke1BFQVJfU1VGRklYfQorKwlAJChQSFBfTkFUSVZFX0RJUikvcGhwICQoUEVBUl9JTlNUQUxMX0ZMQUdTKSAkKGJ1aWxkZGlyKS9pbnN0YWxsLXBlYXItbm96bGliLnBoYXIgLWQgIiQocGVhcmRpcikiIC1iICIkKGJpbmRpcikiICR7UEVBUl9QUkVGSVh9ICR7UEVBUl9TVUZGSVh9CisgCisgaW5zdGFsbC1wZWFyOgorIAlAZWNobyAiSW5zdGFsbGluZyBQRUFSIGVudmlyb25tZW50OiAgICAgICQoSU5TVEFMTF9ST09UKSQocGVhcmRpcikvIgorLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL3BocDUtcGhhci1tYWtlZmlsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGhwNS1waGFyLW1ha2VmaWxlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlMWVmZDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwL3BocDUtcGhhci1tYWtlZmlsZS5wYXRjaApAQCAtMCwwICsxLDQ2IEBACitGcm9tIDNlYTYyNmE4ZDA4MWY1NmIwMTAwNGI3OTkyNTM0ZDRlNmI4MWE5Y2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgorRGF0ZTogV2VkLCAyIE5vdiAyMDExIDE2OjU0OjU3ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBwaGFyIHBhY2thZ2luZworCitJbmhlcml0ZWQgZnJvbSBPRS1DbGFzc2ljLCB3aXRoIHNvbWUgYWRkaXRpb25zIHRvIGZpeCBob3N0IHBhdGhzIGxlYWtpbmcKK2ludG8gdGhlIHRhcmdldCBwYWNrYWdlLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ10KKworJSUgb3JpZ2luYWwgcGF0Y2g6IHBocDUtcGhhci1tYWtlZmlsZS5wYXRjaAorLS0tCisgZXh0L3BoYXIvTWFrZWZpbGUuZnJhZyB8IDE3ICsrKy0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvcGhhci9NYWtlZmlsZS5mcmFnIGIvZXh0L3BoYXIvTWFrZWZpbGUuZnJhZworaW5kZXggYjhiMWI0Mi4uMTAwNWIyZCAxMDA2NDQKKy0tLSBhL2V4dC9waGFyL01ha2VmaWxlLmZyYWcKKysrKyBiL2V4dC9waGFyL01ha2VmaWxlLmZyYWcKK0BAIC01LDIwICs1LDkgQEAgcGhhcmNtZDogJChidWlsZGRpcikvcGhhci5waHAgJChidWlsZGRpcikvcGhhci5waGFyCisgCisgUEhQX1BIQVJDTURfU0VUVElOR1MgPSAtZCAnb3Blbl9iYXNlZGlyPScgLWQgJ291dHB1dF9idWZmZXJpbmc9MCcgLWQgJ21lbW9yeV9saW1pdD0tMScgLWQgcGhhci5yZWFkb25seT0wIC1kICdzYWZlX21vZGU9MCcKKyBQSFBfUEhBUkNNRF9FWEVDVVRBQkxFID0gYCBcCistCWlmIHRlc3QgLXggIiQodG9wX2J1aWxkZGlyKS8kKFNBUElfQ0xJX1BBVEgpIjsgdGhlbiBcCistCQkkKHRvcF9zcmNkaXIpL2J1aWxkL3NodG9vbCBlY2hvIC1uIC0tICIkKHRvcF9idWlsZGRpcikvJChTQVBJX0NMSV9QQVRIKSAtbiI7IFwKKy0JCWlmIHRlc3QgIngkKFBIUF9NT0RVTEVTKSIgIT0gIngiOyB0aGVuIFwKKy0JCSQodG9wX3NyY2RpcikvYnVpbGQvc2h0b29sIGVjaG8gLW4gLS0gIiAtZCBleHRlbnNpb25fZGlyPSQodG9wX2J1aWxkZGlyKS9tb2R1bGVzIjsgXAorLQkJZm9yIGkgaW4gYnoyIHpsaWIgcGhhcjsgZG8gXAorLQkJCWlmIHRlc3QgLWYgIiQodG9wX2J1aWxkZGlyKS9tb2R1bGVzLyQkaS5sYSI7IHRoZW4gXAorLQkJCQkuICQodG9wX2J1aWxkZGlyKS9tb2R1bGVzLyQkaS5sYTsgJCh0b3Bfc3JjZGlyKS9idWlsZC9zaHRvb2wgZWNobyAtbiAtLSAiIC1kIGV4dGVuc2lvbj0kJGRsbmFtZSI7IFwKKy0JCQlmaTsgXAorLQkJZG9uZTsgXAorLQkJZmk7IFwKKy0JZWxzZSBcCistCQkkKHRvcF9zcmNkaXIpL2J1aWxkL3NodG9vbCBlY2hvIC1uIC0tICIkKFBIUF9FWEVDVVRBQkxFKSI7IFwKKy0JZmk7YAorLVBIUF9QSEFSQ01EX0JBTkcgPSBgJCh0b3Bfc3JjZGlyKS9idWlsZC9zaHRvb2wgZWNobyAtbiAtLSAiJChJTlNUQUxMX1JPT1QpJChiaW5kaXIpLyQocHJvZ3JhbV9wcmVmaXgpcGhwJChwcm9ncmFtX3N1ZmZpeCkkKEVYRUVYVCkiO2AKKysJCSQodG9wX3NyY2RpcikvYnVpbGQvc2h0b29sIGVjaG8gLW4gLS0gIiQoUEhQX0VYRUNVVEFCTEUpIjsgYAorKworK1BIUF9QSEFSQ01EX0JBTkcgPSBgJCh0b3Bfc3JjZGlyKS9idWlsZC9zaHRvb2wgZWNobyAtbiAtLSAiJChiaW5kaXIpLyQocHJvZ3JhbV9wcmVmaXgpcGhwJChwcm9ncmFtX3N1ZmZpeCkkKEVYRUVYVCkiO2AKKyAKKyAkKGJ1aWxkZGlyKS9waGFyL3BoYXIuaW5jOiAkKHNyY2RpcikvcGhhci9waGFyLmluYworIAktQHRlc3QgLWQgJChidWlsZGRpcikvcGhhciB8fCBta2RpciAkKGJ1aWxkZGlyKS9waGFyCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHAvcGhwX2V4ZWNfbmF0aXZlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waHBfZXhlY19uYXRpdmUucGF0Y2gKaW5kZXggMDUwNmJkZC4uNmFmMGRjOCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waHBfZXhlY19uYXRpdmUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocC9waHBfZXhlY19uYXRpdmUucGF0Y2gKQEAgLTEsMTAgKzEsMTcgQEAKLVVwc3RyZWFtLXN0YXR1czogSW5hcHByaWF0ZQorRnJvbSBkMjUxYjVhYTNkMjM4MDNkMDE2Y2ExNjgxOGUyZTFkMmYyYjcwYTAyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KK0RhdGU6IFdlZCwgMiBOb3YgMjAxMSAxNjo1NDo1NyArMDEwMAorU3ViamVjdDogW1BBVENIXSBVcHN0cmVhbS1zdGF0dXM6IEluYXBwcmlhdGUKKworLS0tCisgc2FwaS9jbGkvY29uZmlnLm00IHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQogCiBkaWZmIC0tZ2l0IGEvc2FwaS9jbGkvY29uZmlnLm00IGIvc2FwaS9jbGkvY29uZmlnLm00Ci1pbmRleCBjZGZhMWY3Li4wZmUxMWUzIDEwMDY0NAoraW5kZXggMjE2ODE1MS4uMjBhODFkYiAxMDA2NDQKIC0tLSBhL3NhcGkvY2xpL2NvbmZpZy5tNAogKysrIGIvc2FwaS9jbGkvY29uZmlnLm00Ci1AQCAtMzYsNyArMzYsNyBAQCBpZiB0ZXN0ICIkUEhQX0NMSSIgIT0gIm5vIjsgdGhlbgorQEAgLTUwLDcgKzUwLDcgQEAgaWYgdGVzdCAiJFBIUF9DTEkiICE9ICJubyI7IHRoZW4KICAgIGVzYWMKICAKICAgIGRubCBTZXQgZXhlY3V0YWJsZSBmb3IgdGVzdHMKQEAgLTEzLDYgKzIwLDMgQEAKICAgIFBIUF9TVUJTVChQSFBfRVhFQ1VUQUJMRSkKICAKICAgIGRubCBFeHBvc2UgdG8gTWFrZWZpbGUKLS0tIAotMS45LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocF81LjYuMzEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwXzUuNi4zMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGQ4MDQ3Yi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwXzUuNi4zMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLXJlcXVpcmUgcGhwLmluYwotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1iNjAyNjM2ZDQ2YTYxYzBhYzA0MzJiYmY1YzA3OGZlNCIKLQotU1JDX1VSSSArPSAiZmlsZTovL2NoYW5nZS1BQ19UUllfUlVOLXRvLUFDX1RSWV9MSU5LLnBhdGNoIFwKLSAgICAgICAgICAgIGZpbGU6Ly9wdGhyZWFkLWNoZWNrLXRocmVhZHMtbTQucGF0Y2ggXAotICAgICAgICAgICAgZmlsZTovLzAwMDEtQWRkLWxwdGhyZWFkLXRvLWxpbmsucGF0Y2ggXAotICAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiNjIwYWJlMjVlMGQ2Y2Q1ZjA0MWEzNjBhMzBjZTU3ODMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOGYzOTcxNjljYjY1ZjA1MzlmM2JjYjA0MDYwZjk3NzcwZDczZTE5MDc0YTM3YmQyYzU4Yjk4ZWJmNmVjYjEwZiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHBfNS42LjM1LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocF81LjYuMzUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE3YzBkNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHBfNS42LjM1LmJiCkBAIC0wLDAgKzEsMjMgQEAKK3JlcXVpcmUgcGhwLmluYworCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1iNjAyNjM2ZDQ2YTYxYzBhYzA0MzJiYmY1YzA3OGZlNCIKKworU1JDX1VSSSArPSAiZmlsZTovL3BocDUtY2hhbmdlLUFDX1RSWV9SVU4tdG8tQUNfVFJZX0xJTksucGF0Y2ggXAorICAgICAgICAgICAgZmlsZTovL3B0aHJlYWQtY2hlY2stdGhyZWFkcy1tNC5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vMDAwMS1BZGQtbHB0aHJlYWQtdG8tbGluay5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vYWNpbmNsdWRlLXhtbDItY29uZmlnLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly8wMDAxLWFjaW5jbHVkZS11c2UtcGtnY29uZmlnLWZvci1saWJ4bWwyLWNvbmZpZy5wYXRjaCBcCisgICAgICAgICAgICAiCisKK1NSQ19VUklfYXBwZW5kX2NsYXNzLXRhcmdldCA9ICIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlOi8vcGhwNS1wZWFyLW1ha2VmaWxlLnBhdGNoIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTovL3BocDUtcGhhci1tYWtlZmlsZS5wYXRjaCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9waHA1LTAwMDEtb3BjYWNoZS1jb25maWcubTQtZW5hYmxlLW9wY2FjaGUucGF0Y2ggXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI5MDVhZTVmNTg2MzUxZjNjYTI5ZDA0NGM5NDg0ZDQ3NSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlZTc4YTdlOWNhMjFkOGVhMzk0ZDAzN2M1NWVmZmZmNDc3YTQ5ZGJhZTMxYzc3NTNjNTQ3MDM2ZjViZDczYjkyIgorCitERVBFTkRTICs9ICJsaWJtY3J5cHQiCitFWFRSQV9PRUNPTkYgKz0gIi0td2l0aC1tY3J5cHQ9JHtTVEFHSU5HX0RJUl9UQVJHRVR9JHtleGVjX3ByZWZpeH0gXAorICAgICAgICAgICAgICAgICAiIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocF83LjEuOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3BocC9waHBfNy4xLjkuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjZjY4YTAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocF83LjEuOS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLXJlcXVpcmUgcGhwLmluYwotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1jMGFmNTk5ZjY2ZDA0NjFjNTgzN2M2OTVmY2JjNWMxZSIKLQotU1JDX1VSSSArPSAiZmlsZTovL2NoYW5nZS1BQ19UUllfUlVOLXRvLUFDX1RSWV9MSU5LLnBhdGNoIFwKLSAgICAgICAgICAgIGZpbGU6Ly8wMDAxLVNwZWNpZnktdGFnLXdpdGgtbGlidG9vbC5wYXRjaCBcCi0gICAgICAgICAgICBmaWxlOi8vQ1ZFLTIwMTctMTY2NDIucGF0Y2ggXAotICAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiMjM5N2JlNTRmMzI4MWNkZjMwYzdlZjA3NmIyOGY3ZDAiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzE0ZGNjMTBkZmRkN2M0NDQzZWRiNGZlMWUxMzNhNDRmMmIyYTgzNTFiZThjOWViNmFiOTIyMmQ0NWZkOWJhZSIKLQotUEFDS0FHRUNPTkZJR1tteXNxbF0gPSAiLS13aXRoLW15c3FsaT0ke1NUQUdJTkdfQklORElSX0NST1NTfS9teXNxbF9jb25maWcgXAotICAgICAgICAgICAgICAgICAgICAgICAgLS13aXRoLXBkby1teXNxbD0ke1NUQUdJTkdfQklORElSX0NST1NTfS9teXNxbF9jb25maWcgXAotICAgICAgICAgICAgICAgICAgICAgICAgLC0td2l0aG91dC1teXNxbGkgLS13aXRob3V0LXBkby1teXNxbCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAsbXlzcWw1IgotCi1GSUxFU18ke1BOfS1mcG0gKz0gIiR7c3lzY29uZmRpcn0vcGhwLWZwbS5kL3d3dy5jb25mLmRlZmF1bHQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9waHAvcGhwXzcuMi40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocF83LjIuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmQxZTY2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcGhwL3BocF83LjIuNC5iYgpAQCAtMCwwICsxLDI0IEBACityZXF1aXJlIHBocC5pbmMKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NjdlMzY5YmM4ZDFmMmU2NDEyMzZiODAwMjAzOWE2YTIiCisKK1NSQ19VUkkgKz0gImZpbGU6Ly9jaGFuZ2UtQUNfVFJZX1JVTi10by1BQ19UUllfTElOSy5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vMDAwMS1hY2luY2x1ZGUubTQtc2tpcC1iaW5jb25maWctY2hlY2stZm9yLWxpYnhtbC5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vMDAwMS1tYWluLXBocF9pbmkuYy1idWlsZC1lbXB0eS1waHBfbG9hZF96ZW5kX2V4dGVuc2lvbl9jLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly8wMDAxLWZpeC1lcnJvci1jYXVzZWQtYnktYS1uZXctdmFyaWFibGUtaXMtZGVjbGFyZWQtYWZ0ZXIucGF0Y2ggXAorICAgICAgICAgICAiCitTUkNfVVJJX2FwcGVuZF9jbGFzcy10YXJnZXQgPSAiIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTovL3BlYXItbWFrZWZpbGUucGF0Y2ggXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlOi8vcGhhci1tYWtlZmlsZS5wYXRjaCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly8wMDAxLW9wY2FjaGUtY29uZmlnLm00LWVuYWJsZS1vcGNhY2hlLnBhdGNoIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIgorCitTUkNfVVJJW21kNXN1bV0gPSAiODY0YzY0ZmZkMmYxNjg2YjAzNWVmOGNlNmE2ZDg0NzgiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTE2NThhMGQ3NjRkYzk0MDIzYjlmYjYwZDRiNWViNzVkNDM4YWQxNzk4MWVmZTcwYWJiMGQwZDA5YTQ0N2VmMyIKKworUEFDS0FHRUNPTkZJR1tteXNxbF0gPSAiLS13aXRoLW15c3FsaT0ke1NUQUdJTkdfQklORElSX0NST1NTfS9teXNxbF9jb25maWcgXAorICAgICAgICAgICAgICAgICAgICAgICAgLS13aXRoLXBkby1teXNxbD0ke1NUQUdJTkdfQklORElSX0NST1NTfS9teXNxbF9jb25maWcgXAorICAgICAgICAgICAgICAgICAgICAgICAgLC0td2l0aG91dC1teXNxbGkgLS13aXRob3V0LXBkby1teXNxbCBcCisgICAgICAgICAgICAgICAgICAgICAgICAsbXlzcWw1IgorCitGSUxFU18ke1BOfS1mcG0gKz0gIiR7c3lzY29uZmRpcn0vcGhwLWZwbS5kL3d3dy5jb25mLmRlZmF1bHQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wcm90b2J1Zi9wcm90b2J1Zi9ydW4tcHRlc3QgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wcm90b2J1Zi9wcm90b2J1Zi9ydW4tcHRlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MzYThkMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3Byb3RvYnVmL3Byb3RvYnVmL3J1bi1wdGVzdApAQCAtMCwwICsxLDM4IEBACisjIS9iaW4vYmFzaAorRElSPSIkKCBjZCAiJCggZGlybmFtZSAiJHtCQVNIX1NPVVJDRVswXX0iICkiICYmIHB3ZCApIgorVEVTVF9GSUxFPSIvdG1wL3Rlc3QuZGF0YSIKKworUkVUVkFMPTAKKyMgVGVzdCBldmVyeSB3cml0aW5nIHRlc3QgYXBwbGljYXRpb24KK2ZvciB3cml0ZV9leGVfZnVsbF9wYXRoIGluICR7RElSfS9hZGRfcGVyc29uXyo7IGRvCisJaWYgWyAteCAiJHt3cml0ZV9leGVfZnVsbF9wYXRofSIgXTsgdGhlbgorCQl3cml0ZV9leGU9YGJhc2VuYW1lICR7d3JpdGVfZXhlX2Z1bGxfcGF0aH1gCisJCWVjaG8gIkdlbmVyYXRpbmcgbmV3IHRlc3QgZmlsZSB1c2luZyAke3dyaXRlX2V4ZX0uLi4iCisJCSR7d3JpdGVfZXhlX2Z1bGxfcGF0aH0gIiR7VEVTVF9GSUxFfSIKKwkJUkVUVkFMPSQ/CisJCVsgJFJFVFZBTCAtZXEgMCBdIHx8IGV4aXQgJFJFVFZBTAorCisJCSMgVGVzdCBldmVyeSByZWFkaW5nIHRlc3QgYXBwbGljYXRpb24KKwkJZm9yIHJlYWRfZXhlX2Z1bGxfcGF0aCBpbiAke0RJUn0vbGlzdF9wZW9wbGVfKjsgZG8KKwkJCXJlYWRfZXhlPWBiYXNlbmFtZSAke3JlYWRfZXhlX2Z1bGxfcGF0aH1gCisJCQllY2hvICJUZXN0OiBXcml0ZSB3aXRoICR7d3JpdGVfZXhlfTsgUmVhZCB3aXRoICR7cmVhZF9leGV9Li4uIgorCQkJaWYgWyAteCAiJHtyZWFkX2V4ZV9mdWxsX3BhdGh9IiBdOyB0aGVuCisJCQkJJHtyZWFkX2V4ZV9mdWxsX3BhdGh9ICIke1RFU1RfRklMRX0iCisJCQkJUkVUVkFMPSQ/CisJCQkJWyAkUkVUVkFMIC1lcSAwIF0gfHwgZXhpdCAkUkVUVkFMCisJCQlmaQorCQlkb25lCisKKwkJIyBDbGVhbnVwLi4uCisJCWlmIFsgLWUgIiR7VEVTVF9GSUxFfSIgXTsgdGhlbgorCQkJcm0gIiR7VEVTVF9GSUxFfSIKKwkJZmkKKwlmaQorZG9uZQorCitpZiBbICRSRVRWQUwgLWVxIDAgXSA7IHRoZW4KKyAgICBlY2hvICJQQVNTOiBwcm90b2J1ZiIKK2Vsc2UKKyAgICBlY2hvICJGQUlMOiBwcm90b2J1ZiIKK2ZpCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3Byb3RvYnVmL3Byb3RvYnVmXzMuNC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHJvdG9idWYvcHJvdG9idWZfMy40LjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhZTdjMTguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHJvdG9idWYvcHJvdG9idWZfMy40LjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi1TVU1NQVJZID0gIlByb3RvY29sIEJ1ZmZlcnMgLSBzdHJ1Y3R1cmVkIGRhdGEgc2VyaWFsaXNhdGlvbiBtZWNoYW5pc20iCi1ERVNDUklQVElPTiA9ICJQcm90b2NvbCBCdWZmZXJzIGFyZSBhIHdheSBvZiBlbmNvZGluZyBzdHJ1Y3R1cmVkIGRhdGEgaW4gYW4gXAotZWZmaWNpZW50IHlldCBleHRlbnNpYmxlIGZvcm1hdC4gR29vZ2xlIHVzZXMgUHJvdG9jb2wgQnVmZmVycyBmb3IgYWxtb3N0IFwKLWFsbCBvZiBpdHMgaW50ZXJuYWwgUlBDIHByb3RvY29scyBhbmQgZmlsZSBmb3JtYXRzLiIKLUhPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvcHJvdG9idWYiCi1TRUNUSU9OID0gImNvbnNvbGUvdG9vbHMiCi1MSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKLQotUEFDS0FHRV9CRUZPUkVfUE4gPSAiJHtQTn0tY29tcGlsZXIgJHtQTn0tbGl0ZSIKLQotREVQRU5EUyA9ICJ6bGliIgotUkRFUEVORFNfJHtQTn0tY29tcGlsZXIgPSAiJHtQTn0iCi1SREVQRU5EU18ke1BOfS1kZXYgKz0gIiR7UE59LWNvbXBpbGVyIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zNTk1M2M3NTJlZmM5Mjk5YjE4NGY5MWJlZjU0MDA5NSIKLQotU1JDUkVWID0gImIwNGU1Y2JhMzU2MjEyZTRlOGM2NmM2MWJiZTBjM2EyMDUzN2M1YjkiCi0KLVBWID0gIjMuNC4xK2dpdCR7U1JDUFZ9IgotCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vZ29vZ2xlL3Byb3RvYnVmLmdpdDticmFuY2g9My40LngiCi0KLUVYVFJBX09FQ09ORiArPSAiIC0td2l0aC1wcm90b2M9ZWNobyIKLQotaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwCi0KLVMgPSAiJHtXT1JLRElSfS9naXQiCi0KLUZJTEVTXyR7UE59LWNvbXBpbGVyID0gIiR7YmluZGlyfSAke2xpYmRpcn0vbGlicHJvdG9jJHtTT0xJQlN9IgotRklMRVNfJHtQTn0tbGl0ZSA9ICIke2JpbmRpcn0gJHtsaWJkaXJ9L2xpYnByb3RvYnVmLWxpdGUke1NPTElCU30iCi0KLU1JUFNfSU5TVFJVQ1RJT05fU0VUID0gIm1pcHMiCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3Byb3RvYnVmL3Byb3RvYnVmXzMuNS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHJvdG9idWYvcHJvdG9idWZfMy41LjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZmYjc5ZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3Byb3RvYnVmL3Byb3RvYnVmXzMuNS4xLmJiCkBAIC0wLDAgKzEsODQgQEAKK1NVTU1BUlkgPSAiUHJvdG9jb2wgQnVmZmVycyAtIHN0cnVjdHVyZWQgZGF0YSBzZXJpYWxpc2F0aW9uIG1lY2hhbmlzbSIKK0RFU0NSSVBUSU9OID0gIlByb3RvY29sIEJ1ZmZlcnMgYXJlIGEgd2F5IG9mIGVuY29kaW5nIHN0cnVjdHVyZWQgZGF0YSBpbiBhbiBcCitlZmZpY2llbnQgeWV0IGV4dGVuc2libGUgZm9ybWF0LiBHb29nbGUgdXNlcyBQcm90b2NvbCBCdWZmZXJzIGZvciBhbG1vc3QgXAorYWxsIG9mIGl0cyBpbnRlcm5hbCBSUEMgcHJvdG9jb2xzIGFuZCBmaWxlIGZvcm1hdHMuIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9wcm90b2J1ZiIKK1NFQ1RJT04gPSAiY29uc29sZS90b29scyIKK0xJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgorCitQQUNLQUdFX0JFRk9SRV9QTiA9ICIke1BOfS1jb21waWxlciAke1BOfS1saXRlIgorCitERVBFTkRTID0gInpsaWIiCitERVBFTkRTX2FwcGVuZF9jbGFzcy10YXJnZXQgID0gIiBwcm90b2J1Zi1uYXRpdmUiCitSREVQRU5EU18ke1BOfS1jb21waWxlciA9ICIke1BOfSIKK1JERVBFTkRTXyR7UE59LWRldiArPSAiJHtQTn0tY29tcGlsZXIiCitSREVQRU5EU18ke1BOfS1wdGVzdCA9ICJiYXNoIHB5dGhvbi1wcm90b2J1ZiIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MzU5NTNjNzUyZWZjOTI5OWIxODRmOTFiZWY1NDAwOTUiCisKK1NSQ1JFViA9ICIxMDZmZmMwNGJlMWFiZjNmZjMzOTlmNTRjY2YxNDk4MTViMjg3ZGQ5IgorCitQViA9ICIzLjUuMStnaXQke1NSQ1BWfSIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2dvb2dsZS9wcm90b2J1Zi5naXQ7YnJhbmNoPTMuNS54IFwKKwkgICBmaWxlOi8vcnVuLXB0ZXN0IFwKKyAgICAgICAgICAiCisKK0VYVFJBX09FQ09ORiArPSAiIC0td2l0aC1wcm90b2M9ZWNobyIKKworaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwIHBrZ2NvbmZpZyBwdGVzdAorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorVEVTVF9TUkNfRElSPSJleGFtcGxlcyIKK0xBTkdfU1VQUE9SVD0iY3BwIHB5dGhvbiIKKworZG9fY29tcGlsZV9wdGVzdCgpIHsKKwkjIE1vZGlmeSBtYWtlZmlsZSB0byB1c2UgdGhlIGNyb3NzLWNvbXBpbGVyCisJc2VkIC1lICJzfGMrK3wke0NYWH0gXCQoTERGTEFHUyl8ZyIgLWkgIiR7U30vJHtURVNUX1NSQ19ESVJ9L01ha2VmaWxlIgorCisJbWtkaXIgLXAgIiR7Qn0vJHtURVNUX1NSQ19ESVJ9IgorCisJIyBBZGQgdGhlIGxvY2F0aW9uIG9mIHRoZSBjcm9zcy1jb21waWxlZCBoZWFkZXIgYW5kIGxpYnJhcnkgZmlsZXMKKwkjIHdoaWNoIGhhdmVuJ3QgYmVlbiBpbnN0YWxsZWQgeWV0LgorCWNwICIke0J9L3Byb3RvYnVmLnBjIiAiJHtCfS8ke1RFU1RfU1JDX0RJUn0vcHJvdG9idWYucGMiCisJc2VkIC1lICdzfGxpYmRpcj18bGliZGlyPSR7UEtHX0NPTkZJR19TWVNST09UX0RJUn18JyAtaSAiJHtCfS8ke1RFU1RfU1JDX0RJUn0vcHJvdG9idWYucGMiCisJc2VkIC1lICdzfENmbGFnczp8Q2ZsYWdzOiAtSSR7U30vc3JjfCcgLWkgIiR7Qn0vJHtURVNUX1NSQ19ESVJ9L3Byb3RvYnVmLnBjIgorCXNlZCAtZSAnc3xMaWJzOnxMaWJzOiAtTCR7Qn0vc3JjLy5saWJzfCcgLWkgIiR7Qn0vJHtURVNUX1NSQ19ESVJ9L3Byb3RvYnVmLnBjIgorCWV4cG9ydCBQS0dfQ09ORklHX1BBVEg9IiR7Qn0vJHtURVNUX1NSQ19ESVJ9IgorCisJIyBTYXZlIHRoZSBwa2djZmcgc3lzcm9vdCB2YXJpYWJsZSwgYW5kIHVwZGF0ZSBpdCB0byBub3RoaW5nIHNvCisJIyB0aGF0IGl0IGRvZXNuJ3QgYXBwZW5kIHRoZSBzeXNyb290IHRvIHRoZSBiZWdpbm5pbmcgb2YgcGF0aHMuCisJIyBUaGUgaGVhZGVyIGFuZCBsaWJyYXJ5IGZpbGVzIGFyZW4ndCBpbnN0YWxsZWQgdG8gdGhlIHRhcmdldAorCSMgc3lzdGVtIHlldC4gIFNvIHRoZSBhYnNvbHV0ZSBwYXRocyB3ZXJlIHNwZWNpZmllZCBhYm92ZS4KKwlzYXZlX3BrZ19jb25maWdfc3lzcm9vdF9kaXI9JFBLR19DT05GSUdfU1lTUk9PVF9ESVIKKwlleHBvcnQgUEtHX0NPTkZJR19TWVNST09UX0RJUj0KKworCSMgQ29tcGlsZSB0aGUgdGVzdHMKKwlmb3IgbGFuZyBpbiAke0xBTkdfU1VQUE9SVH07IGRvCisJCW9lX3J1bm1ha2UgLUMgIiR7U30vJHtURVNUX1NSQ19ESVJ9IiAke2xhbmd9CisJZG9uZQorCisJIyBSZXN0b3JlIHRoZSBwa2djb25maWcgc3lzcm9vdCB2YXJpYWJsZQorCWV4cG9ydCBQS0dfQ09ORklHX1NZU1JPT1RfRElSPSRzYXZlX3BrZ19jb25maWdfc3lzcm9vdF9kaXIKK30KKworZG9faW5zdGFsbF9wdGVzdCgpIHsKKwlsb2NhbCBvbGRkaXI9YHB3ZGAKKworCWNkICIke1N9LyR7VEVTVF9TUkNfRElSfSIKKwlpbnN0YWxsIC1kICIke0R9LyR7UFRFU1RfUEFUSH0iCisJZm9yIGkgaW4gYWRkX3BlcnNvbiogbGlzdF9wZW9wbGUqOyBkbworCQlpZiBbIC14ICIkaSIgXTsgdGhlbgorCQkJaW5zdGFsbCAiJGkiICIke0R9LyR7UFRFU1RfUEFUSH0iCisJCWZpCisJZG9uZQorCWNwICIke1N9LyR7VEVTVF9TUkNfRElSfS9hZGRyZXNzYm9va19wYjIucHkiICIke0R9LyR7UFRFU1RfUEFUSH0iCisJY2QgIiRvbGRkaXIiCit9CisKK0ZJTEVTXyR7UE59LWNvbXBpbGVyID0gIiR7YmluZGlyfSAke2xpYmRpcn0vbGlicHJvdG9jJHtTT0xJQlN9IgorRklMRVNfJHtQTn0tbGl0ZSA9ICIke2JpbmRpcn0gJHtsaWJkaXJ9L2xpYnByb3RvYnVmLWxpdGUke1NPTElCU30iCisKK01JUFNfSU5TVFJVQ1RJT05fU0VUID0gIm1pcHMiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3B1c2V0XzEuNS43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jcHVzZXRfMS41LjcuYmIKaW5kZXggOGY2NTMyYy4uMTU2ZTUyYSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jcHVzZXRfMS41LjcuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jcHVzZXRfMS41LjcuYmIKQEAgLTMsMTQgKzMsOSBAQAogTElDRU5TRSA9ICJHUEx2MiIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIgogCi1TUkNOQU1FID0gImNwdXNldCIKLQotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vbHBlY2hhY2VrLyR7U1JDTkFNRX0vYXJjaGl2ZS92JHtQVn0udGFyLmd6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNmFkNzliMjZiYTAzZjU1OTYwNGQ3NDUxM2NjMzQzOTIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzIzMzRlMTY0NDE1ZWQ1YWVjODNjNWZmYzNkYzAxYzQxODQwNmViMDJkOTZkODgxZmRmZDQ5NTU4N2ZmMGMwMSIKLQotUyA9ICIke1dPUktESVJ9LyR7U1JDTkFNRX0tJHtQVn0iCitTID0gIiR7V09SS0RJUn0vZ2l0IgorU1JDUkVWID0gImFlNjI5YWExZGM5NTkzNDI3NDVhZDk3NDA2YWRkZGY2M2JiNmRiZGQiCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbHBlY2hhY2VrL2NwdXNldC5naXQ7cHJvdG9jb2w9aHR0cHM7IgogCiBpbmhlcml0IGRpc3R1dGlscwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZ1dHVyZXNfMy4wLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZ1dHVyZXNfMy4wLjUuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4NWZjNTYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mdXR1cmVzXzMuMC41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiVGhlIGNvbmN1cnJlbnQuZnV0dXJlcyBtb2R1bGUgcHJvdmlkZXMgYSBoaWdoLWxldmVsIGludGVyZmFjZSBmb3IgYXN5bmNocm9ub3VzbHkgZXhlY3V0aW5nIGNhbGxhYmxlcy4iCi1TRUNUSU9OID0gImRldmVsL3B5dGhvbiIKLUxJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87bWQ1PTNkNzhjNWJiMTVhYzY0MWQzNGYyZGRjM2JkN2Y1MWZhIgotSE9NRVBBR0UgPSAiaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3B5dGhvbmZ1dHVyZXMiCi1ERVBFTkRTID0gInB5dGhvbiIKLQotU1JDX1VSSSA9ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2UvZi9mdXR1cmVzL2Z1dHVyZXMtJHtQVn0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gImNlZDJjMzY1ZTUxODI0MjUxMmQ3YTM5OGI1MTVmZjk1IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjA1NDI1MjUxNDVkNWFmYzk4NGM4OGY5MTRhMGM4NWM3NzUyN2Y2NTk0NjYxN2VkYjUyNzRmNzI0MDZmOTgxZGYiCi0KLVMgPSAiJHtXT1JLRElSfS9mdXR1cmVzLSR7UFZ9IgotCi1pbmhlcml0IHNldHVwdG9vbHMKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZ1dHVyZXNfMy4yLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZ1dHVyZXNfMy4yLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VlOTQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZnV0dXJlc18zLjIuMC5iYgpAQCAtMCwwICsxLDEzIEBACitERVNDUklQVElPTiA9ICJUaGUgY29uY3VycmVudC5mdXR1cmVzIG1vZHVsZSBwcm92aWRlcyBhIGhpZ2gtbGV2ZWwgaW50ZXJmYWNlIGZvciBhc3luY2hyb25vdXNseSBleGVjdXRpbmcgY2FsbGFibGVzLiIKK1NFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgorTElDRU5TRSA9ICJQU0YiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT04MzRkOTgyZjk3M2M0OGI2ZDY2MmI1OTQ0YzVhYjU2NyIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9hZ3JvbmhvbG0vcHl0aG9uZnV0dXJlcyIKK0RFUEVORFMgPSAicHl0aG9uIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZDFiMjk5YTA2Yjk2Y2NiNTlmNzAzMjQ3MTZkYzAwMTYiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOWVjMDJhYTdkNjc0YWNiODYxOGFmYjEyN2UyN2ZkZTdmYzY4OTk0YzA0MzdhZDc1OWZhMDk0YTU3NGFkYjI2NSIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWdvYmplY3QvMDAwMS1jb25maWd1cmUuYWMtYWRkLXN5c3Jvb3QtcGF0aC10by1HSV9EQVRBRElSLWRvbi10LXNlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWdvYmplY3QvMDAwMS1jb25maWd1cmUuYWMtYWRkLXN5c3Jvb3QtcGF0aC10by1HSV9EQVRBRElSLWRvbi10LXNlLnBhdGNoCmluZGV4IGEzOTFmN2UuLjlhMTE0NDIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlnb2JqZWN0LzAwMDEtY29uZmlndXJlLmFjLWFkZC1zeXNyb290LXBhdGgtdG8tR0lfREFUQURJUi1kb24tdC1zZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z29iamVjdC8wMDAxLWNvbmZpZ3VyZS5hYy1hZGQtc3lzcm9vdC1wYXRoLXRvLUdJX0RBVEFESVItZG9uLXQtc2UucGF0Y2gKQEAgLTE0LDI4ICsxNCwxNSBAQAogaW5kZXggMmMwY2ZiZC4uY2ZjYjNiZiAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMTk0LDcgKzE5NCw3IEBAIFBLR19DSEVDS19NT0RVTEVTKEdJLAotICAgICBnb2JqZWN0LWludHJvc3BlY3Rpb24tMS4wID49IGludHJvc3BlY3Rpb25fcmVxdWlyZWRfdmVyc2lvbgotICkKK0BAIC0xNTUsNyArMTU1LDcgQEAgUEtHX0NIRUNLX01PRFVMRVMoR0ksCisgCisgR09CSkVDVF9JTlRST1NQRUNUSU9OX0NIRUNLKGludHJvc3BlY3Rpb25fcmVxdWlyZWRfdmVyc2lvbikKICAKIC1HSV9EQVRBRElSPSQoJFBLR19DT05GSUcgLS12YXJpYWJsZT1naWRhdGFkaXIgZ29iamVjdC1pbnRyb3NwZWN0aW9uLTEuMCkKICtHSV9EQVRBRElSPSRQS0dfQ09ORklHX1NZU1JPT1RfRElSJCgkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPWdpZGF0YWRpciBnb2JqZWN0LWludHJvc3BlY3Rpb24tMS4wKQogIEFDX1NVQlNUKEdJX0RBVEFESVIpCiAgCiAgaWYgdGVzdCAiJGVuYWJsZV9jYWlybyIgIT0gbm87IHRoZW4KLUBAIC0yMTksMTIgKzIxOSw2IEBAIEFDX0FSR19XSVRIKGNvbW1vbiwKLSAgICAgd2l0aF9jb21tb249eWVzKQotIEFNX0NPTkRJVElPTkFMKFdJVEhfQ09NTU9OLCB0ZXN0ICIkd2l0aF9jb21tb24iID0gInllcyIpCi0gCi0tSU5UUk9TUEVDVElPTl9TQ0FOTkVSPWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPWdfaXJfc2Nhbm5lciBnb2JqZWN0LWludHJvc3BlY3Rpb24tMS4wYAotLUlOVFJPU1BFQ1RJT05fQ09NUElMRVI9YCRQS0dfQ09ORklHIC0tdmFyaWFibGU9Z19pcl9jb21waWxlciBnb2JqZWN0LWludHJvc3BlY3Rpb24tMS4wYAotLQotLUFDX1NVQlNUKElOVFJPU1BFQ1RJT05fU0NBTk5FUikKLS1BQ19TVUJTVChJTlRST1NQRUNUSU9OX0NPTVBJTEVSKQotLQotICMgY29tcGlsZXIgd2FybmluZ3MsIGVycm9ycywgcmVxdWlyZWQgY2ZsYWdzLCBhbmQgY29kZSBjb3ZlcmFnZSBzdXBwb3J0Ci0gR05PTUVfQ09NUElMRV9XQVJOSU5HUyhbbWF4aW11bV0pCi0gQUNfTVNHX0NIRUNLSU5HKGZvciBHbm9tZSBjb2RlIGNvdmVyYWdlIHN1cHBvcnQpCiAtLSAKIDIuMS40CiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlnb2JqZWN0XzMuMjIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlnb2JqZWN0XzMuMjIuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWQyZTE2NS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z29iamVjdF8zLjIyLjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi1TVU1NQVJZID0gIlB5dGhvbiBHT2JqZWN0IGJpbmRpbmdzIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5weWd0ay5vcmcvIgotU0VDVElPTiA9ICJkZXZlbC9weXRob24iCi1MSUNFTlNFID0gIkxHUEx2Mi4xIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YTkxNjQ2N2I5MTA3NmU2MzFkZDhlZGI3NDI0NzY5YzciCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnbm9tZWJhc2UgZGlzdHV0aWxzLWJhc2UgZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0KLVBZVEhPTl9CQVNFVkVSU0lPTiA9ICIyLjciCi1QWVRIT05fUE4gPSAicHl0aG9uIgotCi1ERVBFTkRTICs9ICJnbm9tZS1jb21tb24tbmF0aXZlIHB5dGhvbiBnbGliLTIuMCIKLQotU1JDTkFNRT0icHlnb2JqZWN0IgotU1JDX1VSSSA9ICIgXAotICAgIGh0dHA6Ly9mdHAuZ25vbWUub3JnL3B1Yi9HTk9NRS9zb3VyY2VzLyR7U1JDTkFNRX0vJHtAZ25vbWVfdmVyZGlyKCIke1BWfSIpfS8ke1NSQ05BTUV9LSR7UFZ9LnRhci54eiBcCi0gICAgZmlsZTovLzAwMDEtY29uZmlndXJlLmFjLWFkZC1zeXNyb290LXBhdGgtdG8tR0lfREFUQURJUi1kb24tdC1zZS5wYXRjaCBcCi0iCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJlZDQxMTdlZDVkNTU0ZDI1ZmQ3NzE4ODA3ZmJmODE5ZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIwOGIyOWNmYjA4ZWZjODBmN2E4NjMwYTI3MzRkZWM2NWE5OWMxYjU5ZjFlNTc3MWM2NzFkMmU0ZWQ4YTVjYmU3IgotCi1TID0gIiR7V09SS0RJUn0vJHtTUkNOQU1FfS0ke1BWfSIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCi0KLUVYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtY2Fpcm8gLS13aXRoLXB5dGhvbj0ke1BZVEhPTn0iCi0KLVJERVBFTkRTXyR7UE59ICs9ICJweXRob24tc2V0dXB0b29scyBweXRob24taW1wb3J0bGliIgotUkRFUEVORFNfJHtQTn1fY2xhc3MtbmF0aXZlID0gIiIKLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgIyBSZW1vdmUgZmlsZXMgdGhhdCBjbGFzaCB3aXRoIHB5dGhvbjMtcHlnb2JqZWN0OyB0aGVpciBjb250ZW50IGlzIHNhbWUKLSAgICBybSAtcmYgJHtEfSR7aW5jbHVkZWRpcn0vcHlnb2JqZWN0LTMuMC8vcHlnb2JqZWN0LmggJHtEfSR7bGliZGlyfS9wa2djb25maWcKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlnb2JqZWN0XzMuMjguMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlnb2JqZWN0XzMuMjguMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjY1YmExCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWdvYmplY3RfMy4yOC4wLmJiCkBAIC0wLDAgKzEsMzUgQEAKK1NVTU1BUlkgPSAiUHl0aG9uIEdPYmplY3QgYmluZGluZ3MiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LnB5Z3RrLm9yZy8iCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKK0xJQ0VOU0UgPSAiTEdQTHYyLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1hOTE2NDY3YjkxMDc2ZTYzMWRkOGVkYjc0MjQ3NjljNyIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdub21lYmFzZSBkaXN0dXRpbHMtYmFzZSBnb2JqZWN0LWludHJvc3BlY3Rpb24KKworUFlUSE9OX0JBU0VWRVJTSU9OID0gIjIuNyIKK1BZVEhPTl9QTiA9ICJweXRob24iCisKK0RFUEVORFMgKz0gImdub21lLWNvbW1vbi1uYXRpdmUgcHl0aG9uIGdsaWItMi4wIgorCitTUkNOQU1FPSJweWdvYmplY3QiCitTUkNfVVJJID0gIiBcCisgICAgaHR0cDovL2Z0cC5nbm9tZS5vcmcvcHViL0dOT01FL3NvdXJjZXMvJHtTUkNOQU1FfS8ke0Bnbm9tZV92ZXJkaXIoIiR7UFZ9Iil9LyR7U1JDTkFNRX0tJHtQVn0udGFyLnh6IFwKKyAgICBmaWxlOi8vMDAwMS1jb25maWd1cmUuYWMtYWRkLXN5c3Jvb3QtcGF0aC10by1HSV9EQVRBRElSLWRvbi10LXNlLnBhdGNoIFwKKyIKKworU1JDX1VSSVttZDVzdW1dID0gImIyOWQ2OWVkYjYzYWUxZjU1NWFmZWIxOWY5MGI5OTk2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQyYjQ3YjI2MWI0NWFlZGZjNzdlMDJlM2M5MGEwMWNkNzRkNmY4NmMzMjczYzE4NjBhMDU0ZDUzMWQ2MDZlNWEiCisKK1MgPSAiJHtXT1JLRElSfS8ke1NSQ05BTUV9LSR7UFZ9IgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKKworRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1jYWlybyAtLXdpdGgtcHl0aG9uPSR7UFlUSE9OfSIKKworUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbi1zZXR1cHRvb2xzIgorUkRFUEVORFNfJHtQTn1fY2xhc3MtbmF0aXZlID0gIiIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgIyBSZW1vdmUgZmlsZXMgdGhhdCBjbGFzaCB3aXRoIHB5dGhvbjMtcHlnb2JqZWN0OyB0aGVpciBjb250ZW50IGlzIHNhbWUKKyAgICBybSAtcmYgJHtEfSR7aW5jbHVkZWRpcn0vcHlnb2JqZWN0LTMuMC8vcHlnb2JqZWN0LmggJHtEfSR7bGliZGlyfS9wa2djb25maWcKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3NpcC9zaXBfNC4xOS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvc2lwL3NpcF80LjE5LjIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkODM3YzUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvc2lwL3NpcF80LjE5LjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi1TVU1NQVJZID0gIlNJUCBpcyBhIEMrKy9QeXRob24gV3JhcHBlciBHZW5lcmF0b3IiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LnJpdmVyYmFua2NvbXB1dGluZy5jby51ay9zaXAiCi1TRUNUSU9OID0gImRldmVsIgotTElDRU5TRSA9ICJHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLUdQTDI7bWQ1PWU5MTM1NWQ4YTZmOGJkOGY3YzY5OWQ2Mjg2M2M3MzAzIgotCi1pbmhlcml0IHB5dGhvbi1kaXIKLQotREVQRU5EUyA9ICJweXRob24iCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3Byb2plY3QvcHlxdC9zaXAvc2lwLSR7UFZ9L3NpcC0ke1BWfS50YXIuZ3oiCi1TUkNfVVJJW21kNXN1bV0gPSAiNGY0OGUyMTI4OTBlYmU1ODRlOGQ4MDRjZmJjZmM2MWUiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDMyYjRhYWQyNTI1NGU2OTk3OTEzZTMzYjFjYTNjZjVmZDIxZDU3MjlhNTBhM2NlMmVkY2NiZWE4MmM4MDUzMyIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCi0KLVBBQ0tBR0VTICs9ICJweXRob24tc2lwIgotCi1kb19jb25maWd1cmVfcHJlcGVuZF9jbGFzcy10YXJnZXQoKSB7Ci0gICAgZWNobyAicHlfcGxhdGZvcm0gPSBsaW51eCIgPiBzaXAuY2ZnCi0gICAgZWNobyAicHlfaW5jX2RpciA9ICUoc3lzcm9vdCkvJHtpbmNsdWRlZGlyfS9weXRob24lKHB5X21ham9yKS4lKHB5X21pbm9yKSIgPj4gc2lwLmNmZwotICAgIGVjaG8gInNpcF9iaW5fZGlyID0gJHtEfS8ke2JpbmRpcn0iID4+IHNpcC5jZmcKLSAgICBlY2hvICJzaXBfaW5jX2RpciA9ICR7RH0vJHtpbmNsdWRlZGlyfSIgPj4gc2lwLmNmZwotICAgIGVjaG8gInNpcF9tb2R1bGVfZGlyID0gJHtEfS8ke2xpYmRpcn0vcHl0aG9uJShweV9tYWpvcikuJShweV9taW5vcikvc2l0ZS1wYWNrYWdlcyIgPj4gc2lwLmNmZwotICAgIGVjaG8gInNpcF9zaXBfZGlyID0gJHtEfS8ke2RhdGFkaXJ9L3NpcCIgPj4gc2lwLmNmZwotICAgIHB5dGhvbiBjb25maWd1cmUucHkgLS1jb25maWd1cmF0aW9uIHNpcC5jZmcgLS1zeXNyb290ICR7U1RBR0lOR19ESVJfSE9TVH0gQ0M9IiR7Q0N9IiBDWFg9IiR7Q1hYfSIgTElOSz0iJHtDWFh9IiBTVFJJUD0iIiBMSU5LX1NITElCPSIke0NYWH0iIENGTEFHUz0iJHtDRkxBR1N9IiBDWFhGTEFHUz0iJHtDWFhGTEFHU30iIExGTEFHUz0iJHtMREZMQUdTfSIKLX0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kX2NsYXNzLW5hdGl2ZSgpIHsKLSAgICBlY2hvICJweV9wbGF0Zm9ybSA9IGxpbnV4IiA+IHNpcC5jZmcKLSAgICBlY2hvICJweV9pbmNfZGlyID0gJHtpbmNsdWRlZGlyfS9weXRob24lKHB5X21ham9yKS4lKHB5X21pbm9yKSIgPj4gc2lwLmNmZwotICAgIGVjaG8gInNpcF9iaW5fZGlyID0gJHtEfS8ke2JpbmRpcn0iID4+IHNpcC5jZmcKLSAgICBlY2hvICJzaXBfaW5jX2RpciA9ICR7RH0vJHtpbmNsdWRlZGlyfSIgPj4gc2lwLmNmZwotICAgIGVjaG8gInNpcF9tb2R1bGVfZGlyID0gJHtEfS8ke2xpYmRpcn0vcHl0aG9uJShweV9tYWpvcikuJShweV9taW5vcikvc2l0ZS1wYWNrYWdlcyIgPj4gc2lwLmNmZwotICAgIGVjaG8gInNpcF9zaXBfZGlyID0gJHtEfS8ke2RhdGFkaXJ9L3NpcCIgPj4gc2lwLmNmZwotICAgIHB5dGhvbiBjb25maWd1cmUucHkgLS1jb25maWd1cmF0aW9uIHNpcC5jZmcgLS1zeXNyb290ICR7U1RBR0lOR19ESVJfTkFUSVZFfQotfQotZG9faW5zdGFsbCgpIHsKLSAgICBvZV9ydW5tYWtlIGluc3RhbGwKLX0KLQotRklMRVNfcHl0aG9uLXNpcCA9ICIke2xpYmRpcn0vJHtQWVRIT05fRElSfS9zaXRlLXBhY2thZ2VzLyIKLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9LyR7UFlUSE9OX0RJUn0vc2l0ZS1wYWNrYWdlcy8uZGVidWciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9zaXAvc2lwXzQuMTkuOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3NpcC9zaXBfNC4xOS44LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhOTQ0YjMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9zaXAvc2lwXzQuMTkuOC5iYgpAQCAtMCwwICsxLDQyIEBACitTVU1NQVJZID0gIlNJUCBpcyBhIEMrKy9QeXRob24gV3JhcHBlciBHZW5lcmF0b3IiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LnJpdmVyYmFua2NvbXB1dGluZy5jby51ay9zaXAiCitTRUNUSU9OID0gImRldmVsIgorTElDRU5TRSA9ICJHUEx2MisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLUdQTDI7bWQ1PWU5MTM1NWQ4YTZmOGJkOGY3YzY5OWQ2Mjg2M2M3MzAzIgorCitpbmhlcml0IHB5dGhvbi1kaXIKKworREVQRU5EUyA9ICJweXRob24iCisKK1NSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3Byb2plY3QvcHlxdC9zaXAvc2lwLSR7UFZ9L3NpcC0ke1BWfS50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiMDYyNWZiMjAzNDdkNGZmMWI1ZGE1NTE1MzliZTA3MjciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiN2VhZjdhMmVhN2Q0ZDM4YTU2ZGQ2ZDI1MDY1NzQ0NjRiZGRmN2NmMjg0Yzk2MDgwMTY3OTk0MjM3N2MyOTdiYyIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCisKK1BBQ0tBR0VTICs9ICJweXRob24tc2lwIgorCitkb19jb25maWd1cmVfcHJlcGVuZF9jbGFzcy10YXJnZXQoKSB7CisgICAgZWNobyAicHlfcGxhdGZvcm0gPSBsaW51eCIgPiBzaXAuY2ZnCisgICAgZWNobyAicHlfaW5jX2RpciA9ICUoc3lzcm9vdCkvJHtpbmNsdWRlZGlyfS9weXRob24lKHB5X21ham9yKS4lKHB5X21pbm9yKSIgPj4gc2lwLmNmZworICAgIGVjaG8gInNpcF9iaW5fZGlyID0gJHtEfS8ke2JpbmRpcn0iID4+IHNpcC5jZmcKKyAgICBlY2hvICJzaXBfaW5jX2RpciA9ICR7RH0vJHtpbmNsdWRlZGlyfSIgPj4gc2lwLmNmZworICAgIGVjaG8gInNpcF9tb2R1bGVfZGlyID0gJHtEfS8ke2xpYmRpcn0vcHl0aG9uJShweV9tYWpvcikuJShweV9taW5vcikvc2l0ZS1wYWNrYWdlcyIgPj4gc2lwLmNmZworICAgIGVjaG8gInNpcF9zaXBfZGlyID0gJHtEfS8ke2RhdGFkaXJ9L3NpcCIgPj4gc2lwLmNmZworICAgIHB5dGhvbiBjb25maWd1cmUucHkgLS1jb25maWd1cmF0aW9uIHNpcC5jZmcgLS1zeXNyb290ICR7U1RBR0lOR19ESVJfSE9TVH0gQ0M9IiR7Q0N9IiBDWFg9IiR7Q1hYfSIgTElOSz0iJHtDWFh9IiBTVFJJUD0iIiBMSU5LX1NITElCPSIke0NYWH0iIENGTEFHUz0iJHtDRkxBR1N9IiBDWFhGTEFHUz0iJHtDWFhGTEFHU30iIExGTEFHUz0iJHtMREZMQUdTfSIKK30KK2RvX2NvbmZpZ3VyZV9wcmVwZW5kX2NsYXNzLW5hdGl2ZSgpIHsKKyAgICBlY2hvICJweV9wbGF0Zm9ybSA9IGxpbnV4IiA+IHNpcC5jZmcKKyAgICBlY2hvICJweV9pbmNfZGlyID0gJHtpbmNsdWRlZGlyfS9weXRob24lKHB5X21ham9yKS4lKHB5X21pbm9yKSIgPj4gc2lwLmNmZworICAgIGVjaG8gInNpcF9iaW5fZGlyID0gJHtEfS8ke2JpbmRpcn0iID4+IHNpcC5jZmcKKyAgICBlY2hvICJzaXBfaW5jX2RpciA9ICR7RH0vJHtpbmNsdWRlZGlyfSIgPj4gc2lwLmNmZworICAgIGVjaG8gInNpcF9tb2R1bGVfZGlyID0gJHtEfS8ke2xpYmRpcn0vcHl0aG9uJShweV9tYWpvcikuJShweV9taW5vcikvc2l0ZS1wYWNrYWdlcyIgPj4gc2lwLmNmZworICAgIGVjaG8gInNpcF9zaXBfZGlyID0gJHtEfS8ke2RhdGFkaXJ9L3NpcCIgPj4gc2lwLmNmZworICAgIHB5dGhvbiBjb25maWd1cmUucHkgLS1jb25maWd1cmF0aW9uIHNpcC5jZmcgLS1zeXNyb290ICR7U1RBR0lOR19ESVJfTkFUSVZFfQorfQorZG9faW5zdGFsbCgpIHsKKyAgICBvZV9ydW5tYWtlIGluc3RhbGwKK30KKworRklMRVNfcHl0aG9uLXNpcCA9ICIke2xpYmRpcn0vJHtQWVRIT05fRElSfS9zaXRlLXBhY2thZ2VzLyIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9LyR7UFlUSE9OX0RJUn0vc2l0ZS1wYWNrYWdlcy8uZGVidWciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy90Y2x0ay90ay9jb25mc2VhcmNoLmRpZmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy90Y2x0ay90ay9jb25mc2VhcmNoLmRpZmYKaW5kZXggYzUxZTQ3NS4uNGRiZDlhNCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvdGNsdGsvdGsvY29uZnNlYXJjaC5kaWZmCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3RjbHRrL3RrL2NvbmZzZWFyY2guZGlmZgpAQCAtNCwyOSArNCwzMiBAQAogCiAtLS0gdGs4LjUtOC41Ljgub3JpZy91bml4L2NvbmZpZ3VyZQogKysrIHRrOC41LTguNS44L3VuaXgvY29uZmlndXJlCi1AQCAtMTQzMSw2ICsxNDMxLDcgQEAKLSAJCQlgbHMgLWQgJHtwcmVmaXh9L2xpYiAyPi9kZXYvbnVsbGAgXAotIAkJCWBscyAtZCAvdXNyL2xvY2FsL2xpYiAyPi9kZXYvbnVsbGAgXAorQEAgLTE0MzEsNyArMTQzMSw4IEBACiAgCQkJYGxzIC1kIC91c3IvY29udHJpYi9saWIgMj4vZGV2L251bGxgIFwKKyAJCQlgbHMgLWQgL3Vzci9sb2NhbC9saWIgMj4vZGV2L251bGxgIFwKKyAJCQlgbHMgLWQgL3Vzci9wa2cvbGliIDI+L2Rldi9udWxsYCBcCiArCQkJYGxzIC1kIC91c3Ivc2hhcmUvdGNsdGsvdGNsOC41IDI+L2Rldi9udWxsYCBcCiAgCQkJYGxzIC1kIC91c3IvbGliIDI+L2Rldi9udWxsYCBcCisgCQkJYGxzIC1kIC91c3IvbGliNjQgMj4vZGV2L251bGxgIFwKICAJCQk7IGRvCiAgCQkgICAgaWYgdGVzdCAtZiAiJGkvdGNsQ29uZmlnLnNoIiA7IHRoZW4KIC0tLSB0azguNS04LjUuOC5vcmlnL3VuaXgvdGNsLm00CiArKysgdGs4LjUtOC41LjgvdW5peC90Y2wubTQKLUBAIC05Myw2ICs5Myw3IEBACi0gCQkJYGxzIC1kICR7cHJlZml4fS9saWIgMj4vZGV2L251bGxgIFwKLSAJCQlgbHMgLWQgL3Vzci9sb2NhbC9saWIgMj4vZGV2L251bGxgIFwKK0BAIC05Myw3ICs5Myw4IEBACiAgCQkJYGxzIC1kIC91c3IvY29udHJpYi9saWIgMj4vZGV2L251bGxgIFwKKyAJCQlgbHMgLWQgL3Vzci9sb2NhbC9saWIgMj4vZGV2L251bGxgIFwKKyAJCQlgbHMgLWQgL3Vzci9wa2cvbGliIDI+L2Rldi9udWxsYCBcCiArCQkJYGxzIC1kIC91c3Ivc2hhcmUvdGNsdGsvdGNsOC41IDI+L2Rldi9udWxsYCBcCiAgCQkJYGxzIC1kIC91c3IvbGliIDI+L2Rldi9udWxsYCBcCisgCQkJYGxzIC1kIC91c3IvbGliNjQgMj4vZGV2L251bGxgIFwKICAJCQk7IGRvCiAgCQkgICAgaWYgdGVzdCAtZiAiJGkvdGNsQ29uZmlnLnNoIiA7IHRoZW4KLUBAIC0yMjMsNiArMjI0LDcgQEAKK0BAIC0yMjMsNyArMjI0LDggQEAKICAJCQlgbHMgLWQgJHtwcmVmaXh9L2xpYiAyPi9kZXYvbnVsbGAgXAogIAkJCWBscyAtZCAvdXNyL2xvY2FsL2xpYiAyPi9kZXYvbnVsbGAgXAogIAkJCWBscyAtZCAvdXNyL2NvbnRyaWIvbGliIDI+L2Rldi9udWxsYCBcCiArCQkJYGxzIC1kIC91c3Ivc2hhcmUvdGNsdGsvdGs4LjUgMj4vZGV2L251bGxgIFwKICAJCQlgbHMgLWQgL3Vzci9saWIgMj4vZGV2L251bGxgIFwKKyAJCQlgbHMgLWQgL3Vzci9saWI2NCAyPi9kZXYvbnVsbGAgXAogIAkJCTsgZG8KICAJCSAgICBpZiB0ZXN0IC1mICIkaS90a0NvbmZpZy5zaCIgOyB0aGVuCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy90Y2x0ay90a184LjYuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3RjbHRrL3RrXzguNi42LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2JmMzk3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL3RjbHRrL3RrXzguNi42LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotU1VNTUFSWSA9ICJUb29sIENvbW1hbmQgTGFuZ3VhZ2UgVG9vbEtpdCBFeHRlbnNpb24iCi1IT01FUEFHRSA9ICJodHRwOi8vdGNsLnNvdXJjZWZvcmdlLm5ldCIKLVNFQ1RJT04gPSAiZGV2ZWwvdGNsdGsiCi0KLSMgaHR0cDovL3d3dy50Y2wudGsvc29mdHdhcmUvdGNsdGsvbGljZW5zZS5odG1sCi1MSUNFTlNFID0gInRjbCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLy4uL2xpY2Vuc2UudGVybXM7bWQ1PWM4OGY5OWRlY2VjMTFhZmE5NjdhZDMzZDMxNGY4N2ZlIFwKLSAgICBmaWxlOi8vLi4vY29tcGF0L2xpY2Vuc2UudGVybXM7bWQ1PWM4OGY5OWRlY2VjMTFhZmE5NjdhZDMzZDMxNGY4N2ZlIFwKLSAgICBmaWxlOi8vLi4vZG9jL2xpY2Vuc2UudGVybXM7bWQ1PWM4OGY5OWRlY2VjMTFhZmE5NjdhZDMzZDMxNGY4N2ZlIFwKLSAgICBmaWxlOi8vLi4vbGlicmFyeS9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCi0gICAgZmlsZTovLy4uL21hY29zeC9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCi0gICAgZmlsZTovLy4uL3Rlc3RzL2xpY2Vuc2UudGVybXM7bWQ1PWM4OGY5OWRlY2VjMTFhZmE5NjdhZDMzZDMxNGY4N2ZlIFwKLSAgICBmaWxlOi8vLi4vdW5peC9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCi0gICAgZmlsZTovLy4uL3dpbi9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCi0gICAgZmlsZTovLy4uL3hsaWIvbGljZW5zZS50ZXJtczttZDU9Yzg4Zjk5ZGVjZWMxMWFmYTk2N2FkMzNkMzE0Zjg3ZmUgXAotIgotCi1ERVBFTkRTID0gInRjbCB2aXJ0dWFsL2xpYngxMSBsaWJ4dCIKLQotU1JDX1VSSSA9ICJcCi0gICAgJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3RjbC8ke0JQTn0ke1BWfS1zcmMudGFyLmd6IFwKLSAgICBmaWxlOi8vY29uZnNlYXJjaC5kaWZmO3N0cmlwbGV2ZWw9MiBcCi0gICAgZmlsZTovL25vbi1saW51eC5kaWZmO3N0cmlwbGV2ZWw9MiBcCi0gICAgZmlsZTovL3RrbGlicmFyeS5kaWZmO3N0cmlwbGV2ZWw9MiBcCi0gICAgZmlsZTovL3RrcHJpdmF0ZS5kaWZmO3N0cmlwbGV2ZWw9MiBcCi0gICAgZmlsZTovL2ZpeC14ZnQuZGlmZiBcCi0gICAgZmlsZTovL2NvbmZpZ3VyZS51c2UuZm9udGNvbmZpZy53aXRoLnhmdC5wYXRjaCBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiZGQ3ZGJiM2E2NTIzYzQyZDA1ZjZhYjZlODYwOTZlOTkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZDYyYzM3MWE3MWI0NzQ0ZWQ4MzBlM2MyMWQyNzk2OGMzMWRiYTc0ZGQyYzQ1ZjM2YjliMDcxZTZkODhlYjE5ZCIKLQotUyA9ICIke1dPUktESVJ9LyR7QlBOfSR7UFZ9L3VuaXgiCi0KLSMgU2hvcnQgdmVyc2lvbiBmb3JtYXQ6ICI4LjYiCi1WRVIgPSAiJHtAb3MucGF0aC5zcGxpdGV4dChkLmdldFZhcignUFYnKSlbMF19IgotCi1MREZMQUdTICs9ICItV2wsLXJwYXRoLCR7bGliZGlyfS90Y2x0ay8ke1BWfS9saWIiCi1pbmhlcml0IGF1dG90b29scyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKLSMgZGVwZW5kcyBvbiB2aXJ0dWFsL2xpYngxMQotUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKLQotRVhUUkFfT0VDT05GID0gIlwKLSAgICAtLWVuYWJsZS10aHJlYWRzIFwKLSAgICAtLXdpdGgteCBcCi0gICAgLS13aXRoLXRjbD0ke1NUQUdJTkdfQklORElSX0NST1NTfSBcCi0gICAgLS1saWJkaXI9JHtsaWJkaXJ9IFwKLSIKLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgbG4gLXNmIGxpYnRrJHtWRVJ9LnNvICR7RH0ke2xpYmRpcn0vbGlidGske1ZFUn0uc28uMAotICAgIG9lX2xpYmluc3RhbGwgLXNvIGxpYnRrJHtWRVJ9ICR7RH0ke2xpYmRpcn0KLSAgICBsbiAtc2Ygd2lzaCR7VkVSfSAke0R9JHtiaW5kaXJ9L3dpc2gKLQotICAgICMgRXZlbiBhZnRlciBwYXNzaW5nIGxpYmRpcj0ke2xpYmRpcn0gYXQgY29uZmlnLCBzb21lIGluY29ycmVjdCBkaXJzIGFyZSBzdGlsbCBnZW5lcmF0ZWQgZm9yIHRoZSBtdWx0aWxpYiBidWlsZAotICAgIGlmIFsgIiRsaWJkaXIiICE9ICIvdXNyL2xpYiIgXTsgdGhlbgotICAgICAgICAjIE1vdmUgZmlsZXMgdG8gY29ycmVjdCBsaWJyYXJ5IGRpcmVjdG9yeQotICAgICAgICBtdiAke0R9L3Vzci9saWIvdGske1ZFUn0vKiAke0R9LyR7bGliZGlyfS90ayR7VkVSfS8KLSAgICAgICAgIyBSZW1vdmUgdW5uZWVkZWQvaW5jb3JyZWN0IGRpciAoJ3Vzci9saWIvJykKLSAgICAgICAgcm0gLXJmICR7RH0vdXNyL2xpYgotICAgIGZpCi19Ci0KLVBBQ0tBR0VDT05GSUcgPz89ICJ4ZnQiCi1QQUNLQUdFQ09ORklHW3hmdF0gPSAiLS1lbmFibGUteGZ0LC0tZGlzYWJsZS14ZnQseGZ0IgotUEFDS0FHRUNPTkZJR1t4c3NdID0gIi0tZW5hYmxlLXhzcywtLWRpc2FibGUteHNzLGxpYnhzY3Juc2F2ZXIgbGlieGV4dCIKLQotUEFDS0FHRVMgPSsgIiR7UE59LWxpYiIKLQotRklMRVNfJHtQTn0tbGliID0gIiR7bGliZGlyfS9saWJ0ayR7VkVSfS5zbyoiCi1GSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L3RrKiIKLQotIyBpc24ndCBnZXR0aW5nIHBpY2tlZCB1cCBieSBzaGxpYnMgY29kZQotUkRFUEVORFNfJHtQTn0gKz0gInRrLWxpYiIKLVJERVBFTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgotCi0jIEZpeCB0aGUgcGF0aCBpbiBzc3RhdGUKLVNTVEFURV9TQ0FOX0ZJTEVTICs9ICIqQ29uZmlnLnNoIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvdGNsdGsvdGtfOC42LjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy90Y2x0ay90a184LjYuOC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2RjNGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvdGNsdGsvdGtfOC42LjguYmIKQEAgLTAsMCArMSw3OSBAQAorU1VNTUFSWSA9ICJUb29sIENvbW1hbmQgTGFuZ3VhZ2UgVG9vbEtpdCBFeHRlbnNpb24iCitIT01FUEFHRSA9ICJodHRwOi8vdGNsLnNvdXJjZWZvcmdlLm5ldCIKK1NFQ1RJT04gPSAiZGV2ZWwvdGNsdGsiCisKKyMgaHR0cDovL3d3dy50Y2wudGsvc29mdHdhcmUvdGNsdGsvbGljZW5zZS5odG1sCitMSUNFTlNFID0gInRjbCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLy4uL2xpY2Vuc2UudGVybXM7bWQ1PWM4OGY5OWRlY2VjMTFhZmE5NjdhZDMzZDMxNGY4N2ZlIFwKKyAgICBmaWxlOi8vLi4vY29tcGF0L2xpY2Vuc2UudGVybXM7bWQ1PWM4OGY5OWRlY2VjMTFhZmE5NjdhZDMzZDMxNGY4N2ZlIFwKKyAgICBmaWxlOi8vLi4vZG9jL2xpY2Vuc2UudGVybXM7bWQ1PWM4OGY5OWRlY2VjMTFhZmE5NjdhZDMzZDMxNGY4N2ZlIFwKKyAgICBmaWxlOi8vLi4vbGlicmFyeS9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCisgICAgZmlsZTovLy4uL21hY29zeC9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCisgICAgZmlsZTovLy4uL3Rlc3RzL2xpY2Vuc2UudGVybXM7bWQ1PWM4OGY5OWRlY2VjMTFhZmE5NjdhZDMzZDMxNGY4N2ZlIFwKKyAgICBmaWxlOi8vLi4vdW5peC9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCisgICAgZmlsZTovLy4uL3dpbi9saWNlbnNlLnRlcm1zO21kNT1jODhmOTlkZWNlYzExYWZhOTY3YWQzM2QzMTRmODdmZSBcCisgICAgZmlsZTovLy4uL3hsaWIvbGljZW5zZS50ZXJtczttZDU9Yzg4Zjk5ZGVjZWMxMWFmYTk2N2FkMzNkMzE0Zjg3ZmUgXAorIgorCitERVBFTkRTID0gInRjbCB2aXJ0dWFsL2xpYngxMSBsaWJ4dCIKKworU1JDX1VSSSA9ICJcCisgICAgJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3RjbC8ke0JQTn0ke1BWfS1zcmMudGFyLmd6IFwKKyAgICBmaWxlOi8vY29uZnNlYXJjaC5kaWZmO3N0cmlwbGV2ZWw9MiBcCisgICAgZmlsZTovL25vbi1saW51eC5kaWZmO3N0cmlwbGV2ZWw9MiBcCisgICAgZmlsZTovL3RrbGlicmFyeS5kaWZmO3N0cmlwbGV2ZWw9MiBcCisgICAgZmlsZTovL3RrcHJpdmF0ZS5kaWZmO3N0cmlwbGV2ZWw9MiBcCisgICAgZmlsZTovL2ZpeC14ZnQuZGlmZiBcCisgICAgZmlsZTovL2NvbmZpZ3VyZS51c2UuZm9udGNvbmZpZy53aXRoLnhmdC5wYXRjaCBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiNWUwZmFlY2JhNDU4ZWUxMzg2MDc4ZmIyMjhkMDA4YmEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDllN2JjYTA4ZGRlOTUxOTVhMjdmNTk0ZjdjODUwYjA4OGJlMzU3YTdjNzA5NmU0NGUxMTU4YzdhNWZkN2IzMyIKKworUyA9ICIke1dPUktESVJ9LyR7QlBOfSR7UFZ9L3VuaXgiCisKKyMgU2hvcnQgdmVyc2lvbiBmb3JtYXQ6ICI4LjYiCitWRVIgPSAiJHtAb3MucGF0aC5zcGxpdGV4dChkLmdldFZhcignUFYnKSlbMF19IgorCitMREZMQUdTICs9ICItV2wsLXJwYXRoLCR7bGliZGlyfS90Y2x0ay8ke1BWfS9saWIiCitpbmhlcml0IGF1dG90b29scyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKyMgZGVwZW5kcyBvbiB2aXJ0dWFsL2xpYngxMQorUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworRVhUUkFfT0VDT05GID0gIlwKKyAgICAtLWVuYWJsZS10aHJlYWRzIFwKKyAgICAtLXdpdGgteCBcCisgICAgLS13aXRoLXRjbD0ke1NUQUdJTkdfQklORElSX0NST1NTfSBcCisgICAgLS1saWJkaXI9JHtsaWJkaXJ9IFwKKyIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgbG4gLXNmIGxpYnRrJHtWRVJ9LnNvICR7RH0ke2xpYmRpcn0vbGlidGske1ZFUn0uc28uMAorICAgIG9lX2xpYmluc3RhbGwgLXNvIGxpYnRrJHtWRVJ9ICR7RH0ke2xpYmRpcn0KKyAgICBsbiAtc2Ygd2lzaCR7VkVSfSAke0R9JHtiaW5kaXJ9L3dpc2gKKworICAgICMgRXZlbiBhZnRlciBwYXNzaW5nIGxpYmRpcj0ke2xpYmRpcn0gYXQgY29uZmlnLCBzb21lIGluY29ycmVjdCBkaXJzIGFyZSBzdGlsbCBnZW5lcmF0ZWQgZm9yIHRoZSBtdWx0aWxpYiBidWlsZAorICAgIGlmIFsgIiRsaWJkaXIiICE9ICIvdXNyL2xpYiIgXTsgdGhlbgorICAgICAgICAjIE1vdmUgZmlsZXMgdG8gY29ycmVjdCBsaWJyYXJ5IGRpcmVjdG9yeQorICAgICAgICBtdiAke0R9L3Vzci9saWIvdGske1ZFUn0vKiAke0R9LyR7bGliZGlyfS90ayR7VkVSfS8KKyAgICAgICAgIyBSZW1vdmUgdW5uZWVkZWQvaW5jb3JyZWN0IGRpciAoJ3Vzci9saWIvJykKKyAgICAgICAgcm0gLXJmICR7RH0vdXNyL2xpYgorICAgIGZpCit9CisKK1BBQ0tBR0VDT05GSUcgPz89ICJ4ZnQiCitQQUNLQUdFQ09ORklHW3hmdF0gPSAiLS1lbmFibGUteGZ0LC0tZGlzYWJsZS14ZnQseGZ0IgorUEFDS0FHRUNPTkZJR1t4c3NdID0gIi0tZW5hYmxlLXhzcywtLWRpc2FibGUteHNzLGxpYnhzY3Juc2F2ZXIgbGlieGV4dCIKKworUEFDS0FHRVMgPSsgIiR7UE59LWxpYiIKKworRklMRVNfJHtQTn0tbGliID0gIiR7bGliZGlyfS9saWJ0ayR7VkVSfS5zbyoiCitGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L3RrKiIKKworIyBpc24ndCBnZXR0aW5nIHBpY2tlZCB1cCBieSBzaGxpYnMgY29kZQorUkRFUEVORFNfJHtQTn0gKz0gInRrLWxpYiIKK1JERVBFTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgorCisjIEZpeCB0aGUgcGF0aCBpbiBzc3RhdGUKK1NTVEFURV9TQ0FOX0ZJTEVTICs9ICIqQ29uZmlnLnNoIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvY2ZlbmdpbmUvY2ZlbmdpbmUtbWFzdGVyZmlsZXMvcmVtb3ZlLXBvbGljeS1vZi11c3ItbG9jYWwtc2Jpbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NmZW5naW5lL2NmZW5naW5lLW1hc3RlcmZpbGVzL3JlbW92ZS1wb2xpY3ktb2YtdXNyLWxvY2FsLXNiaW4ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmOGRlYmMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvY2ZlbmdpbmUvY2ZlbmdpbmUtbWFzdGVyZmlsZXMvcmVtb3ZlLXBvbGljeS1vZi11c3ItbG9jYWwtc2Jpbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLQotRGlyZWN0b3J5IC91c3IvbG9jYWwgaXMgbm90IHVzZWQgZm9yIHVzLiBSZW1vdmUgdGhlIHBvbGljeSB0aGF0IG5vdCB0byBpbnN0YWxsCi1iaW5hcmllcyB0byAvdXNyL2xvY2FsL3NiaW4uCi0KLVNpZ25lZC1vZmYtYnk6IEthaSBLYW5nIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi1kaWZmIC0tZ2l0IGEvY2ZlX2ludGVybmFsL3VwZGF0ZS91cGRhdGVfYmlucy5jZiBiL2NmZV9pbnRlcm5hbC91cGRhdGUvdXBkYXRlX2JpbnMuY2YKLWluZGV4IDE3OTZjYWEuLjY5N2FmMGQgMTAwNjQ0Ci0tLS0gYS9jZmVfaW50ZXJuYWwvdXBkYXRlL3VwZGF0ZV9iaW5zLmNmCi0rKysgYi9jZmVfaW50ZXJuYWwvdXBkYXRlL3VwZGF0ZV9iaW5zLmNmCi1AQCAtNTUsMTYgKzU1LDYgQEAgYnVuZGxlIGFnZW50IGNmZV9pbnRlcm5hbF9iaW5zCi0gICAgICAgZGVwdGhfc2VhcmNoID0+IHVfcmVjdXJzZV9iYXNlZGlyKCJpbmYiKSwKLSAgICAgICBhY3Rpb24gPT4gdV9pbW1lZGlhdGU7Ci0gCi0tICAgICAgIi91c3IvbG9jYWwvc2Jpbi8kKGFnZW50cykiCi0tICAgICAgY29tbWVudCA9PiAiQ3JlYXRlIHN5bWxpbmtzIG9mIENGRSBiaW5hcmllcyBpbiAvdXNyL2xvY2FsL3NiaW4iLAotLSAgICAgIGhhbmRsZSA9PiBjYW5vbmlmeSgiY2ZlX2ludGVybmFsX2JpbnNfZmlsZXNfc2Jpbl8kKGFnZW50cykiKSwKLS0gICAgICBtb3ZlX29ic3RydWN0aW9ucyA9PiAidHJ1ZSIsCi0tICAgICAgbGlua19mcm9tID0+IHVfbG5fcygiJChzeXMud29ya2RpcikvYmluLyQoYWdlbnRzKSIpOwotLQotLSAgICAgICIvdXNyL2xvY2FsL3NiaW4vJChhZ2VudHMpLmNmc2F2ZWQiCi0tICAgICAgY29tbWVudCA9PiAiUmVtb3ZlIGFsbCAuY2ZzYXZlZCBmaWxlIGV4dGVuc2lvbiIsCi0tICAgICAgaGFuZGxlID0+IGNhbm9uaWZ5KCJjZmVfaW50ZXJuYWxfYmluc19maWxlc19yZW1vdmVfJChhZ2VudClfY2ZzYXZlZCIpLAotLSAgICAgIGRlbGV0ZSA9PiB1X3RpZHk7Ci0gfQotIAotIGJ1bmRsZSBhZ2VudCBjZmVfaW50ZXJuYWxfdXBkYXRlX2JpbnMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NmZW5naW5lL2NmZW5naW5lLW1hc3RlcmZpbGVzXzMuMTAuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NmZW5naW5lL2NmZW5naW5lLW1hc3RlcmZpbGVzXzMuMTAuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTJlN2NjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvY2ZlbmdpbmUvY2ZlbmdpbmUtbWFzdGVyZmlsZXNfMy4xMC4yLmJiCkBAIC0wLDAgKzEsMzYgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE0IC0gMjAxNyBXaW5kIFJpdmVyIFN5c3RlbXMsIEluYy4KKyMKK1NVTU1BUlkgPSAiQmFzZSBwb2xpY3kgZm9yIENGRW5naW5lIgorCitERVNDUklQVElPTiA9ICJDRkVuZ2luZSBpcyBhbiBJVCBpbmZyYXN0cnVjdHVyZSBhdXRvbWF0aW9uIGZyYW1ld29yayBcCit0aGF0IGhlbHBzIGVuZ2luZWVycywgc3lzdGVtIGFkbWluaXN0cmF0b3JzIGFuZCBvdGhlciBzdGFrZWhvbGRlcnMgXAoraW4gYW4gSVQgc3lzdGVtIHRvIG1hbmFnZSBhbmQgdW5kZXJzdGFuZCBJVCBpbmZyYXN0cnVjdHVyZSB0aHJvdWdob3V0IFwKK2l0cyBsaWZlY3ljbGUuIENGRW5naW5lIHRha2VzIHN5c3RlbXMgZnJvbSBCdWlsZCB0byBEZXBsb3ksIE1hbmFnZSBhbmQgQXVkaXQuIFwKKyBcCitUaGlzIHBhY2thZ2UgaXMgaW50ZW5kZWQgdG8gcHJvdmlkZSBhIHN0YWJsZSBiYXNlIHBvbGljeSBmb3IgXAoraW5zdGFsbGF0aW9ucyBhbmQgdXBncmFkZXMsIGFuZCBpcyB1c2VkIGJ5IENGRW5naW5lIDMuNiBhbmQgbmV3ZXIuIFwKKyBcCitUaGUgY29udGVudHMgb2YgdGhpcyBwYWNrZ2UgYXJlIGludGVuZGVkIHRvIGxpdmUgaW4gYC92YXIvY2ZlbmdpbmUvbWFzdGVyZmlsZXNgIFwKK29yIHdoZXJldmVyIGAkKHN5cy5tYXN0ZXJkaXIpYCBwb2ludHMuIFwKKyIKKworSE9NRVBBR0UgPSAiaHR0cDovL2NmZW5naW5lLmNvbSIKKworTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT05Zjc2NDI2ZjllZjhjNmY2NzM5ZmFkZDIxZDgxN2E0ZiIKKworU1JDX1VSSSA9ICJodHRwczovL2NmZW5naW5lLXBhY2thZ2UtcmVwb3MuczMuYW1hem9uYXdzLmNvbS90YXJiYWxscy8ke0JQfS50YXIuZ3oiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIxMjQ3ZWY0ZThmM2NlZTVlZmE5OGRhNTBjMzI2ZTVhNCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1ZDE4YThkNzFmNDUxZDBiNWRkMWY1ZTU3OTQ1MmIyOWI5OWI2NjRmMmJiMDgyN2RiYmE5YTYxNWYyNzY0ZGY2IgorCitpbmhlcml0IGF1dG90b29scworCitleHBvcnQgRVhQTElDSVRfVkVSU0lPTj0iJHtQVn0iCisKK0VYVFJBX09FQ09ORiA9ICItLXByZWZpeD0ke2RhdGFkaXJ9L2NmZW5naW5lIgorCitGSUxFU18ke1BOfSA9ICIke2RhdGFkaXJ9L2NmZW5naW5lIgorCitSREVQRU5EU18ke1BOfSArPSAicHl0aG9uLWNvcmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9jZmVuZ2luZS9jZmVuZ2luZS1tYXN0ZXJmaWxlc18zLjkuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NmZW5naW5lL2NmZW5naW5lLW1hc3RlcmZpbGVzXzMuOS4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZDAxYzUxLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NmZW5naW5lL2NmZW5naW5lLW1hc3RlcmZpbGVzXzMuOS4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTQgLSAyMDE2IFdpbmQgUml2ZXIgU3lzdGVtcywgSW5jLgotIwotU1VNTUFSWSA9ICJCYXNlIHBvbGljeSBmb3IgQ0ZFbmdpbmUiCi0KLURFU0NSSVBUSU9OID0gIkNGRW5naW5lIGlzIGFuIElUIGluZnJhc3RydWN0dXJlIGF1dG9tYXRpb24gZnJhbWV3b3JrIFwKLXRoYXQgaGVscHMgZW5naW5lZXJzLCBzeXN0ZW0gYWRtaW5pc3RyYXRvcnMgYW5kIG90aGVyIHN0YWtlaG9sZGVycyBcCi1pbiBhbiBJVCBzeXN0ZW0gdG8gbWFuYWdlIGFuZCB1bmRlcnN0YW5kIElUIGluZnJhc3RydWN0dXJlIHRocm91Z2hvdXQgXAotaXRzIGxpZmVjeWNsZS4gQ0ZFbmdpbmUgdGFrZXMgc3lzdGVtcyBmcm9tIEJ1aWxkIHRvIERlcGxveSwgTWFuYWdlIGFuZCBBdWRpdC4gXAotIFwKLVRoaXMgcGFja2FnZSBpcyBpbnRlbmRlZCB0byBwcm92aWRlIGEgc3RhYmxlIGJhc2UgcG9saWN5IGZvciBcCi1pbnN0YWxsYXRpb25zIGFuZCB1cGdyYWRlcywgYW5kIGlzIHVzZWQgYnkgQ0ZFbmdpbmUgMy42IGFuZCBuZXdlci4gXAotIFwKLVRoZSBjb250ZW50cyBvZiB0aGlzIHBhY2tnZSBhcmUgaW50ZW5kZWQgdG8gbGl2ZSBpbiBgL3Zhci9jZmVuZ2luZS9tYXN0ZXJmaWxlc2AgXAotb3Igd2hlcmV2ZXIgYCQoc3lzLm1hc3RlcmRpcilgIHBvaW50cy4gXAotIgotCi1IT01FUEFHRSA9ICJodHRwOi8vY2ZlbmdpbmUuY29tIgotCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTUyY2QzZDEzYWY5MzE4MDgyMjg4OGFiMDA4OGU5MzI4IgotCi1TUkNfVVJJID0gImh0dHBzOi8vY2ZlbmdpbmUtcGFja2FnZS1yZXBvcy5zMy5hbWF6b25hd3MuY29tL3RhcmJhbGxzLyR7QlB9LnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly9yZW1vdmUtcG9saWN5LW9mLXVzci1sb2NhbC1zYmluLnBhdGNoIFwKLSIKLVNSQ19VUklbbWQ1c3VtXSA9ICJiMTAxZGRjZDU0NjczOGFmNmVjOTFiZTVjMjk3Y2IyNCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI2M2RlYzJmODY0OWY1ZjI3ODhjZDQ2M2RjY2Y0N2Y4ZGJlOTQxNTIyYWNmY2YzMDkzNTE3Zjk4M2JiZmEwNjA2IgotCi1pbmhlcml0IGF1dG90b29scwotCi1leHBvcnQgRVhQTElDSVRfVkVSU0lPTj0iJHtQVn0iCi0KLUVYVFJBX09FQ09ORiA9ICItLXByZWZpeD0ke2xvY2Fsc3RhdGVkaXJ9L2NmZW5naW5lIgotCi1GSUxFU18ke1BOfSArPSAiJHtsb2NhbHN0YXRlZGlyfS9jZmVuZ2luZSIKLQotUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbi1jb3JlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvY2ZlbmdpbmUvY2ZlbmdpbmVfMy4xMC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvY2ZlbmdpbmUvY2ZlbmdpbmVfMy4xMC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4NmIwYTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9jZmVuZ2luZS9jZmVuZ2luZV8zLjEwLjIuYmIKQEAgLTAsMCArMSw3MyBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTQgLSAyMDE3IFdpbmQgUml2ZXIgU3lzdGVtcywgSW5jLgorIworU1VNTUFSWSA9ICJDRkVuZ2luZSBpcyBhbiBJVCBpbmZyYXN0cnVjdHVyZSBhdXRvbWF0aW9uIGZyYW1ld29yayIKKworREVTQ1JJUFRJT04gPSAiQ0ZFbmdpbmUgaXMgYW4gSVQgaW5mcmFzdHJ1Y3R1cmUgYXV0b21hdGlvbiBmcmFtZXdvcmsgXAordGhhdCBoZWxwcyBlbmdpbmVlcnMsIHN5c3RlbSBhZG1pbmlzdHJhdG9ycyBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIFwKK2luIGFuIElUIHN5c3RlbSB0byBtYW5hZ2UgYW5kIHVuZGVyc3RhbmQgSVQgaW5mcmFzdHJ1Y3R1cmUgdGhyb3VnaG91dCBcCitpdHMgbGlmZWN5Y2xlLiBDRkVuZ2luZSB0YWtlcyBzeXN0ZW1zIGZyb20gQnVpbGQgdG8gRGVwbG95LCBNYW5hZ2UgYW5kIEF1ZGl0LiIKKworSE9NRVBBR0UgPSAiaHR0cDovL2NmZW5naW5lLmNvbSIKKworTElDRU5TRSA9ICJHUEx2MyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWY4YjM0ODI4YWIzNzNkNmIxYmI0YjBmYzYwYTc4NDk0IgorCitERVBFTkRTID0gImF0dHIgdG9reW9jYWJpbmV0IgorCitTUkNfVVJJID0gImh0dHBzOi8vY2ZlbmdpbmUtcGFja2FnZS1yZXBvcy5zMy5hbWF6b25hd3MuY29tL3RhcmJhbGxzLyR7QlB9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9jaGFuZ2UtaGFyZC1jb2RlZC1saWItcGF0aC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9zZXQtcGF0aC1vZi1kZWZhdWx0LWNvbmZpZy1maWxlLnBhdGNoIFwKKyIKKworU1JDX1VSSVttZDVzdW1dID0gImMxNmJhZjA4MTg5YTFhZjZmY2YyZTJmZjYxMTAyOTkyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImQ0ZmE5YWM3Mjc2ZGJhN2I4NWQ2NzU3YWFiMmYwOTI5YWI4ZDNiMTE1Y2IwZTdiMGNmOTg0NzYwMzQ3NDI5ZDciCisKK2luaGVyaXQgYXV0b3Rvb2xzIHN5c3RlbWQKKworZXhwb3J0IEVYUExJQ0lUX1ZFUlNJT049IiR7UFZ9IgorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiY2ZlbmdpbmUzLnNlcnZpY2UgY2YtYXBhY2hlLnNlcnZpY2UgY2YtaHViLnNlcnZpY2UgY2YtcG9zdGdyZXMuc2VydmljZSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgY2YtcnVuYWxlcnRzLnNlcnZpY2UgY2YtY29uc3VtZXIuc2VydmljZSBjZi1leGVjZC5zZXJ2aWNlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjZi1tb25pdG9yZC5zZXJ2aWNlICBjZi1yZWRpcy1zZXJ2ZXIuc2VydmljZSAgY2Ytc2VydmVyZC5zZXJ2aWNlIFwKKyIKK1NZU1RFTURfQVVUT19FTkFCTEVfJHtQTn0gPSAiZGlzYWJsZSIKKworUEFDS0FHRUNPTkZJRyA/Pz0gImxpYnBjcmUgb3BlbnNzbCBcCisgICAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtIHN5c3RlbWQnLCBkKX0gXAorIgorUEFDS0FHRUNPTkZJR1tsaWJ4bWwyXSA9ICItLXdpdGgtbGlieG1sMj15ZXMsLS13aXRoLWxpYnhtbDI9bm8sbGlieG1sMiwiCitQQUNLQUdFQ09ORklHW215c3FsXSA9ICItLXdpdGgtbXlzcWw9eWVzLC0td2l0aC1teXNxbD1ubyxteXNxbCwiCitQQUNLQUdFQ09ORklHW3Bvc3RncmVzcWxdID0gIi0td2l0aC1wb3N0Z3Jlc3FsPXllcywtLXdpdGgtcG9zdGdyZXNxbD1ubyxwb3N0Z3Jlc3FsLCIKK1BBQ0tBR0VDT05GSUdbYWNsXSA9ICItLXdpdGgtbGliYWNsPXllcywtLXdpdGgtbGliYWNsPW5vLGFjbCwiCitQQUNLQUdFQ09ORklHW2xpYnZpcnRdID0gIi0td2l0aC1saWJ2aXJ0PXllcywtLXdpdGgtbGlidmlydD1ubyxsaWJ2aXJ0LCIKK1BBQ0tBR0VDT05GSUdbbGlicGNyZV0gPSAiLS13aXRoLXBjcmU9eWVzLC0td2l0aC1wY3JlPW5vLGxpYnBjcmUsIgorUEFDS0FHRUNPTkZJR1tvcGVuc3NsXSA9ICItLXdpdGgtb3BlbnNzbD15ZXMsLS13aXRoLW9wZW5zc2w9bm8sb3BlbnNzbCwiCitQQUNLQUdFQ09ORklHW3BhbV0gPSAiLS13aXRoLXBhbT15ZXMsLS13aXRoLXBhbT1ubyxsaWJwYW0sIgorUEFDS0FHRUNPTkZJR1tsaWJ5YW1sXSA9ICItLXdpdGgtbGlieWFtbCwtLXdpdGhvdXQtbGlieWFtbCxsaWJ5YW1sLCIKK1BBQ0tBR0VDT05GSUdbc3lzdGVtZF0gPSAiLS13aXRoLXN5c3RlbWQtc2VydmljZT0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9LC0td2l0aG91dC1zeXN0ZW1kLXNlcnZpY2UiCitQQUNLQUdFQ09ORklHW2xpYmN1cmxdID0gIi0td2l0aC1saWJjdXJsLC0td2l0aG91dC1saWJjdXJsLGN1cmwsIgorCitFWFRSQV9PRUNPTkYgPSAiaHdfY3ZfZnVuY192YV9jb3B5PXllcyAtLXdpdGgtaW5pdC1zY3JpcHQ9JHtzeXNjb25mZGlyfS9pbml0LmQgLS13aXRoLXRva3lvY2FiaW5ldCIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9JHtsb2NhbHN0YXRlZGlyfS8ke0JQTn0vYmluCisgICAgZm9yIGYgaW4gYGxzICR7RH0ke2JpbmRpcn1gOyBkbworICAgICAgICBsbiAtcyAke2JpbmRpcn0vYGJhc2VuYW1lICRmYCAke0R9JHtsb2NhbHN0YXRlZGlyfS8ke0JQTn0vYmluLworICAgIGRvbmUKKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdAorICAgIGNhdCA8PCBFT0YgPiAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L2NmZW5naW5lMworUlVOX0NGX1NFUlZFUkQ9MQorUlVOX0NGX0VYRUNEPTEKK1JVTl9DRl9NT05JVE9SRD0xCitSVU5fQ0ZfSFVCPTAKK0VPRgorCisgICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJ3RydWUnLCAnZmFsc2UnLCBkKX07IHRoZW4KKyAgICAgICAgaW5zdGFsbCAtbSAwNzU1IC1EICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9jZmVuZ2luZTMgJHtEfSR7ZGF0YWRpcn0vJHtCUE59L2NmZW5naW5lMworICAgICAgICBzZWQgLWkgLWUgJ3MjL2V0Yy9pbml0LmQjJHtkYXRhZGlyfS8ke0JQTn0jJyAke0R9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS8qLnNlcnZpY2UKKyAgICBmaQorfQorCitSREVQRU5EU18ke1BOfSArPSAiJHtCUE59LW1hc3RlcmZpbGVzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvY2ZlbmdpbmUvY2ZlbmdpbmVfMy45LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9jZmVuZ2luZS9jZmVuZ2luZV8zLjkuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFhOGRlZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9jZmVuZ2luZS9jZmVuZ2luZV8zLjkuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDE0IC0gMjAxNiBXaW5kIFJpdmVyIFN5c3RlbXMsIEluYy4KLSMKLVNVTU1BUlkgPSAiQ0ZFbmdpbmUgaXMgYW4gSVQgaW5mcmFzdHJ1Y3R1cmUgYXV0b21hdGlvbiBmcmFtZXdvcmsiCi0KLURFU0NSSVBUSU9OID0gIkNGRW5naW5lIGlzIGFuIElUIGluZnJhc3RydWN0dXJlIGF1dG9tYXRpb24gZnJhbWV3b3JrIFwKLXRoYXQgaGVscHMgZW5naW5lZXJzLCBzeXN0ZW0gYWRtaW5pc3RyYXRvcnMgYW5kIG90aGVyIHN0YWtlaG9sZGVycyBcCi1pbiBhbiBJVCBzeXN0ZW0gdG8gbWFuYWdlIGFuZCB1bmRlcnN0YW5kIElUIGluZnJhc3RydWN0dXJlIHRocm91Z2hvdXQgXAotaXRzIGxpZmVjeWNsZS4gQ0ZFbmdpbmUgdGFrZXMgc3lzdGVtcyBmcm9tIEJ1aWxkIHRvIERlcGxveSwgTWFuYWdlIGFuZCBBdWRpdC4iCi0KLUhPTUVQQUdFID0gImh0dHA6Ly9jZmVuZ2luZS5jb20iCi0KLUxJQ0VOU0UgPSAiR1BMdjMiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1jZDU5YzM2NTBjOGI3ZmYzNmJhYjFjYzY1ODdiMDk3YSIKLQotREVQRU5EUyA9ICJhdHRyIHRva3lvY2FiaW5ldCIKLQotU1JDX1VSSSA9ICJodHRwczovL2NmZW5naW5lLXBhY2thZ2UtcmVwb3MuczMuYW1hem9uYXdzLmNvbS90YXJiYWxscy8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vY2hhbmdlLWhhcmQtY29kZWQtbGliLXBhdGgucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vc2V0LXBhdGgtb2YtZGVmYXVsdC1jb25maWctZmlsZS5wYXRjaCBcCi0iCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI2M2RhMzk2NTVjZmNhMzBjYTg4NWZjYzRhMWJmOGFhNCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIzMmEzOGFlZGYxMTk5YzIzNjFlMTMzNWUwZDRhMWQ5OGY5ZWZhN2NkNTkxYmNiNjQ3ZjM1YzczOTViYjY2ZjJkIgotCi1pbmhlcml0IGF1dG90b29scyBzeXN0ZW1kCi0KLWV4cG9ydCBFWFBMSUNJVF9WRVJTSU9OPSIke1BWfSIKLQotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImNmZW5naW5lMy5zZXJ2aWNlIGNmZW5naW5lMy13ZWIuc2VydmljZSIKLVNZU1RFTURfQVVUT19FTkFCTEVfJHtQTn0gPSAiZGlzYWJsZSIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gImxpYnBjcmUgb3BlbnNzbCBcCi0gICAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtIHN5c3RlbWQnLCBkKX0gXAotIgotUEFDS0FHRUNPTkZJR1tsaWJ4bWwyXSA9ICItLXdpdGgtbGlieG1sMj15ZXMsLS13aXRoLWxpYnhtbDI9bm8sbGlieG1sMiwiCi1QQUNLQUdFQ09ORklHW215c3FsXSA9ICItLXdpdGgtbXlzcWw9eWVzLC0td2l0aC1teXNxbD1ubyxteXNxbCwiCi1QQUNLQUdFQ09ORklHW3Bvc3RncmVzcWxdID0gIi0td2l0aC1wb3N0Z3Jlc3FsPXllcywtLXdpdGgtcG9zdGdyZXNxbD1ubyxwb3N0Z3Jlc3FsLCIKLVBBQ0tBR0VDT05GSUdbYWNsXSA9ICItLXdpdGgtbGliYWNsPXllcywtLXdpdGgtbGliYWNsPW5vLGFjbCwiCi1QQUNLQUdFQ09ORklHW2xpYnZpcnRdID0gIi0td2l0aC1saWJ2aXJ0PXllcywtLXdpdGgtbGlidmlydD1ubyxsaWJ2aXJ0LCIKLVBBQ0tBR0VDT05GSUdbbGlicGNyZV0gPSAiLS13aXRoLXBjcmU9eWVzLC0td2l0aC1wY3JlPW5vLGxpYnBjcmUsIgotUEFDS0FHRUNPTkZJR1tvcGVuc3NsXSA9ICItLXdpdGgtb3BlbnNzbD15ZXMsLS13aXRoLW9wZW5zc2w9bm8sb3BlbnNzbCwiCi1QQUNLQUdFQ09ORklHW3BhbV0gPSAiLS13aXRoLXBhbT15ZXMsLS13aXRoLXBhbT1ubyxsaWJwYW0sIgotUEFDS0FHRUNPTkZJR1tsaWJ5YW1sXSA9ICItLXdpdGgtbGlieWFtbCwtLXdpdGhvdXQtbGlieWFtbCxsaWJ5YW1sLCIKLVBBQ0tBR0VDT05GSUdbc3lzdGVtZF0gPSAiLS13aXRoLXN5c3RlbWQtc2VydmljZT0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9LC0td2l0aG91dC1zeXN0ZW1kLXNlcnZpY2UiCi1QQUNLQUdFQ09ORklHW2xpYmN1cmxdID0gIi0td2l0aC1saWJjdXJsLC0td2l0aG91dC1saWJjdXJsLGN1cmwsIgotCi1FWFRSQV9PRUNPTkYgPSAiaHdfY3ZfZnVuY192YV9jb3B5PXllcyAtLXdpdGgtaW5pdC1zY3JpcHQ9JHtzeXNjb25mZGlyfS9pbml0LmQgLS13aXRoLXRva3lvY2FiaW5ldCIKLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtsb2NhbHN0YXRlZGlyfS8ke0JQTn0vYmluCi0gICAgZm9yIGYgaW4gYGxzICR7RH0ke2JpbmRpcn1gOyBkbwotICAgICAgICBsbiAtcyAke2JpbmRpcn0vYGJhc2VuYW1lICRmYCAke0R9JHtsb2NhbHN0YXRlZGlyfS8ke0JQTn0vYmluLwotICAgIGRvbmUKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdAotICAgIGNhdCA8PCBFT0YgPiAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L2NmZW5naW5lMwotUlVOX0NGX1NFUlZFUkQ9MQotUlVOX0NGX0VYRUNEPTEKLVJVTl9DRl9NT05JVE9SRD0xCi1SVU5fQ0ZfSFVCPTAKLUVPRgotCi0gICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJ3RydWUnLCAnZmFsc2UnLCBkKX07IHRoZW4KLSAgICAgICAgaW5zdGFsbCAtbSAwNzU1IC1EICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9jZmVuZ2luZTMgJHtEfSR7ZGF0YWRpcn0vJHtCUE59L2NmZW5naW5lMwotICAgICAgICBzZWQgLWkgLWUgJ3MjL2V0Yy9pbml0LmQjJHtkYXRhZGlyfS8ke0JQTn0jJyAke0R9JHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS8qLnNlcnZpY2UKLSAgICBmaQotfQotCi1SREVQRU5EU18ke1BOfSArPSAiJHtCUE59LW1hc3RlcmZpbGVzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvY21waS1iaW5kaW5ncy9jbXBpLWJpbmRpbmdzX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2NtcGktYmluZGluZ3MvY21waS1iaW5kaW5nc19naXQuYmIKaW5kZXggMjUxNjZhYi4uOTg3YzA5ZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvY21waS1iaW5kaW5ncy9jbXBpLWJpbmRpbmdzX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9jbXBpLWJpbmRpbmdzL2NtcGktYmluZGluZ3NfZ2l0LmJiCkBAIC0yNCw2ICsyNCwxMCBAQAogRVhUUkFfT0VDTUFLRSA9ICItRExJQj0nJHtiYXNlbGlifScgXAogICAgICAgICAgICAgICAgICAtRFBZVEhPTl9JTkNMVURFX1BBVEg9JHtTVEFHSU5HX0lOQ0RJUn0vcHl0aG9uJHtQWVRIT05fQkFTRVZFUlNJT059IgogCisjIFdpdGggTmluamEgaXQgZmFpbHMgd2l0aDoKKyMgbmluamE6IGVycm9yOiBidWlsZC5uaW5qYToyODI6IGJhZCAkLWVzY2FwZSAobGl0ZXJhbCAkIG11c3QgYmUgd3JpdHRlbiBhcyAkJCkKK09FQ01BS0VfR0VORVJBVE9SID0gIlVuaXggTWFrZWZpbGVzIgorCiBkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKICAgICBleHBvcnQgU1RBR0lOR19MSUJESVI9JHtTVEFHSU5HX0xJQkRJUn0KICAgICBleHBvcnQgU1RBR0lOR19JTkNESVI9JHtTVEFHSU5HX0lOQ0RJUn0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2Rhc2gvZGFzaF8wLjUuOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2Rhc2gvZGFzaF8wLjUuOC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzhjYTYwZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kYXNoL2Rhc2hfMC41LjguYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1TVU1NQVJZID0gIlNtYWxsIGFuZCBmYXN0IFBPU0lYLWNvbXBsaWFudCBzaGVsbCIKLUhPTUVQQUdFID0gImh0dHA6Ly9nb25kb3IuYXBhbmEub3JnLmF1L35oZXJiZXJ0L2Rhc2gvIgotU0VDVElPTiA9ICJTeXN0ZW0gRW52aXJvbm1lbnQvU2hlbGxzIgotCi1MSUNFTlNFID0gIkJTRCAmIEdQTHYyKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWI1MjYyYjRhMWExYmZmNzJiNDhlOTM1NTMxOTc2ZDJlIgotCi1pbmhlcml0IGF1dG90b29scyB1cGRhdGUtYWx0ZXJuYXRpdmVzCi0KLVNSQ19VUkkgPSAiaHR0cDovL2dvbmRvci5hcGFuYS5vcmcuYXUvfmhlcmJlcnQvJHtCUE59L2ZpbGVzLyR7QlB9LnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLUZpeC1wcmludGYtZm9ybWF0LWVycm9ycy13aXRoLWNsYW5nLnBhdGNoIFwKLSAgICAgICAgICAgIgotU1JDX1VSSVttZDVzdW1dID0gIjVjMTUyMjA5NjgwZGFiM2MzMTllODkyM2Y2YzUxMzc4IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImM2ZGIzYTIzNzc0N2IwMmQyMDM4MmE3NjEzOTc1NjNkODEzYjMwNmMwMjBhZTI4Y2UyNWExYzM5MTVmYWM2MGYiCi0KLUVYVFJBX09FQ09ORiArPSAiLS1iaW5kaXI9JHtiYXNlX2JpbmRpcn0iCi0KLUFMVEVSTkFUSVZFXyR7UE59ID0gInNoIgotQUxURVJOQVRJVkVfTElOS19OQU1FW3NoXSA9ICIke2Jhc2VfYmluZGlyfS9zaCIKLUFMVEVSTkFUSVZFX1RBUkdFVFtzaF0gPSAiJHtiYXNlX2JpbmRpcn0vZGFzaCIKLUFMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjEwIgotCi1wa2dfcG9zdGluc3RfJHtQTn0gKCkgewotICAgIGdyZXAgLXEgIl4ke2Jhc2VfYmluZGlyfS9kYXNoJCIgJEQke3N5c2NvbmZkaXJ9L3NoZWxscyB8fCBlY2hvICR7YmFzZV9iaW5kaXJ9L2Rhc2ggPj4gJEQke3N5c2NvbmZkaXJ9L3NoZWxscwotfQotCi1wa2dfcG9zdHJtXyR7UE59ICgpIHsKLSAgICBwcmludGYgIiQoZ3JlcCAtdiAiXiR7YmFzZV9iaW5kaXJ9L2Rhc2gkIiAkRCR7c3lzY29uZmRpcn0vc2hlbGxzKVxuIiA+ICREJHtzeXNjb25mZGlyfS9zaGVsbHMKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2RkcmVzY3VlL2RkcmVzY3VlXzEuMTkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kZHJlc2N1ZS9kZHJlc2N1ZV8xLjE5LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyN2UwMGE1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2RkcmVzY3VlL2RkcmVzY3VlXzEuMTkuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi1TVU1NQVJZID0gIkRhdGEgcmVjb3ZlcnkgdG9vbCIKLURFU0NSSVBUSU9OID0gIkdOVSBkZHJlc2N1ZSBpcyBhIGRhdGEgcmVjb3ZlcnkgdG9vbC4gSXQgY29waWVzIGRhdGEgXAotICAgIGZyb20gb25lIGZpbGUgb3IgYmxvY2sgZGV2aWNlIChoYXJkIGRpc2MsIGNkcm9tLCBldGMpIHRvIGFub3RoZXIsIFwKLSAgICB0cnlpbmcgaGFyZCB0byByZXNjdWUgZGF0YSBpbiBjYXNlIG9mIHJlYWQgZXJyb3JzLiIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9kZHJlc2N1ZS9kZHJlc2N1ZS5odG1sIgotU0VDVElPTiA9ICJjb25zb2xlIgotTElDRU5TRSA9ICJHUEx2MisiCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTc2ZDZlMzAwZmZkOGZiOWQxOGJkOWIxMzZhOWJiYTEzIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL21haW5fY29tbW9uLmNjO2JlZ2lubGluZT01O2VuZGxpbmU9MTY7bWQ1PTNlYzI4OGIyNjc2NTI4Y2QyYjA2OTM2NGUzMTMwMTZmIgotCi1TUkNfVVJJID0gIiR7R05VX01JUlJPUn0vJHtCUE59LyR7QlB9LnRhci5seiIKLVNSQ19VUklbbWQ1c3VtXSA9ICJlZDZiNWI4MmQ3NGNiZDkyNWRiMmI4MjkzNTBlNzRiMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJlZDhkMGM5ZDlhYWM4MGE5MTEwZTljYjBkMGE5MWE3MzkwZDNiZjlmODE2YjY3YTYyY2E0ZWIxNDBmNDc0N2I4IgotCi0jIFRoaXMgaXNuJ3QgYWxyZWFkeSBhZGRlZCBieSBiYXNlLmJiY2xhc3MKLWRvX3VucGFja1tkZXBlbmRzXSArPSAibHppcC1uYXRpdmU6ZG9fcG9wdWxhdGVfc3lzcm9vdCIKLQotQ09ORklHVVJFT1BUUyA9ICJcCi0gICAgJy0tc3JjZGlyPSR7U30nIFwKLSAgICAnLS1wcmVmaXg9JHtwcmVmaXh9JyBcCi0gICAgJy0tZXhlYy1wcmVmaXg9JHtleGVjX3ByZWZpeH0nIFwKLSAgICAnLS1iaW5kaXI9JHtiaW5kaXJ9JyBcCi0gICAgJy0tZGF0YWRpcj0ke2RhdGFkaXJ9JyBcCi0gICAgJy0taW5mb2Rpcj0ke2luZm9kaXJ9JyBcCi0gICAgJy0tc3lzY29uZmRpcj0ke3N5c2NvbmZkaXJ9JyBcCi0gICAgJ0NYWD0ke0NYWH0nIFwKLSAgICAnQ1BQRkxBR1M9JHtDUFBGTEFHU30nIFwKLSAgICAnQ1hYRkxBR1M9JHtDWFhGTEFHU30nIFwKLSAgICAnTERGTEFHUz0ke0xERkxBR1N9JyBcCi0iCi1FWFRSQV9PRU1BS0UgPSAiIgotCi1kb19jb25maWd1cmUgKCkgewotICAgICR7U30vY29uZmlndXJlICR7Q09ORklHVVJFT1BUU30KLX0KLQotZG9faW5zdGFsbCAoKSB7Ci0gICAgb2VfcnVubWFrZSAnREVTVERJUj0ke0R9JyBpbnN0YWxsCi0gICAgIyBJbmZvIGRpciBsaXN0aW5nIGlzbid0IGludGVyZXN0aW5nIGF0IHRoaXMgcG9pbnQgc28gcmVtb3ZlIGl0IGlmIGl0IGV4aXN0cy4KLSAgICBpZiBbIC1lICIke0R9JHtpbmZvZGlyfS9kaXIiIF07IHRoZW4KLSAgICAgICAgcm0gLWYgJHtEfSR7aW5mb2Rpcn0vZGlyCi0gICAgZmkKLX0KLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZGRyZXNjdWUvZGRyZXNjdWVfMS4yMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2RkcmVzY3VlL2RkcmVzY3VlXzEuMjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRmN2RiOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2RkcmVzY3VlL2RkcmVzY3VlXzEuMjIuYmIKQEAgLTAsMCArMSw0NSBAQAorU1VNTUFSWSA9ICJEYXRhIHJlY292ZXJ5IHRvb2wiCitERVNDUklQVElPTiA9ICJHTlUgZGRyZXNjdWUgaXMgYSBkYXRhIHJlY292ZXJ5IHRvb2wuIEl0IGNvcGllcyBkYXRhIFwKKyAgICBmcm9tIG9uZSBmaWxlIG9yIGJsb2NrIGRldmljZSAoaGFyZCBkaXNjLCBjZHJvbSwgZXRjKSB0byBhbm90aGVyLCBcCisgICAgdHJ5aW5nIGhhcmQgdG8gcmVzY3VlIGRhdGEgaW4gY2FzZSBvZiByZWFkIGVycm9ycy4iCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZGRyZXNjdWUvZGRyZXNjdWUuaHRtbCIKK1NFQ1RJT04gPSAiY29uc29sZSIKK0xJQ0VOU0UgPSAiR1BMdjIrIgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NmQ2ZTMwMGZmZDhmYjlkMThiZDliMTM2YTliYmExMyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9tYWluX2NvbW1vbi5jYztiZWdpbmxpbmU9NTtlbmRsaW5lPTE2O21kNT0zZWMyODhiMjY3NjUyOGNkMmIwNjkzNjRlMzEzMDE2ZiIKKworU1JDX1VSSSA9ICIke0dOVV9NSVJST1J9LyR7QlBOfS8ke0JQfS50YXIubHoiCitTUkNfVVJJW21kNXN1bV0gPSAiNDljODQ1ZWQ4OWQyNWI1MzQ4NDJlNDAzNjYxNTRjYjQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDk4NTdiMmU4MDc0ODEzYWMxOWRhNWQyNjI4OTBmNzIyZTVmNzkwMGU1MjFhNGM2MDM1NGNlZjk1ZWVhMTBhNyIKKworIyBUaGlzIGlzbid0IGFscmVhZHkgYWRkZWQgYnkgYmFzZS5iYmNsYXNzCitkb191bnBhY2tbZGVwZW5kc10gKz0gImx6aXAtbmF0aXZlOmRvX3BvcHVsYXRlX3N5c3Jvb3QiCisKK0NPTkZJR1VSRU9QVFMgPSAiXAorICAgICctLXNyY2Rpcj0ke1N9JyBcCisgICAgJy0tcHJlZml4PSR7cHJlZml4fScgXAorICAgICctLWV4ZWMtcHJlZml4PSR7ZXhlY19wcmVmaXh9JyBcCisgICAgJy0tYmluZGlyPSR7YmluZGlyfScgXAorICAgICctLWRhdGFkaXI9JHtkYXRhZGlyfScgXAorICAgICctLWluZm9kaXI9JHtpbmZvZGlyfScgXAorICAgICctLXN5c2NvbmZkaXI9JHtzeXNjb25mZGlyfScgXAorICAgICdDWFg9JHtDWFh9JyBcCisgICAgJ0NQUEZMQUdTPSR7Q1BQRkxBR1N9JyBcCisgICAgJ0NYWEZMQUdTPSR7Q1hYRkxBR1N9JyBcCisgICAgJ0xERkxBR1M9JHtMREZMQUdTfScgXAorIgorRVhUUkFfT0VNQUtFID0gIiIKKworZG9fY29uZmlndXJlICgpIHsKKyAgICAke1N9L2NvbmZpZ3VyZSAke0NPTkZJR1VSRU9QVFN9Cit9CisKK2RvX2luc3RhbGwgKCkgeworICAgIG9lX3J1bm1ha2UgJ0RFU1RESVI9JHtEfScgaW5zdGFsbAorICAgICMgSW5mbyBkaXIgbGlzdGluZyBpc24ndCBpbnRlcmVzdGluZyBhdCB0aGlzIHBvaW50IHNvIHJlbW92ZSBpdCBpZiBpdCBleGlzdHMuCisgICAgaWYgWyAtZSAiJHtEfSR7aW5mb2Rpcn0vZGlyIiBdOyB0aGVuCisgICAgICAgIHJtIC1mICR7RH0ke2luZm9kaXJ9L2RpcgorICAgIGZpCit9CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2RpYWxvZy9kaWFsb2dfMS4zLTIwMTYwODI4LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZGlhbG9nL2RpYWxvZ18xLjMtMjAxNjA4MjguYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg1ZGVkZTEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZGlhbG9nL2RpYWxvZ18xLjMtMjAxNjA4MjguYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1TVU1NQVJZID0gImRpc3BsYXkgZGlhbG9nIGJveGVzIGZyb20gc2hlbGwgc2NyaXB0cyIKLURFU0NSSVBUSU9OID0gIkRpYWxvZyBsZXRzIHlvdSB0byBwcmVzZW50IGEgdmFyaWV0eSBvZiBxdWVzdGlvbnMgXAotb3IgZGlzcGxheSBtZXNzYWdlcyB1c2luZyBkaWFsb2cgYm94ZXMgZnJvbSBhIHNoZWxsIFwKLXNjcmlwdCAob3IgYW55IHNjcmlwdGluZyBsYW5ndWFnZSkuIgotSE9NRVBBR0UgPSAiaHR0cDovL2ludmlzaWJsZS1pc2xhbmQubmV0L2RpYWxvZy8iCi1TRUNUSU9OID0gImNvbnNvbGUvdXRpbHMiCi1ERVBFTkRTID0gIm5jdXJzZXMiCi1MSUNFTlNFID0gIkxHUEwtMi4xIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YTZmODllMjEwMGQ5YjZjZGZmY2VhNGYzOThlMzczNDMiCi0KLVNSQ19VUkkgPSAiZnRwOi8vZnRwLmludmlzaWJsZS1pc2xhbmQubmV0LyR7QlBOfS8ke0JQfS50Z3ogXAotICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICJhMzllYzE4MzUxN2JjMWZlYWZmMDE3ZDA2NzMwMGI4YyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI0NTMwOTVhYmFlYzI4OGJmYmMxY2E5ZmFjZWQ5MTdlMTc3NDJjZmYxZWE0NWVjNDYyMTAwNzFhYzE1MzU2MmY5IgotCi0jIGhhcmRjb2RlZCBoZXJlIGZvciB1c2UgaW4gZGlhbG9nLXN0YXRpYyByZWNpcGUKLVMgPSAiJHtXT1JLRElSfS9kaWFsb2ctJHtQVn0iCi0KLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcKLQotRVhUUkFfT0VDT05GID0gIi0td2l0aC1uY3Vyc2VzIFwKLSAgICAgICAgICAgICAgICAtLWRpc2FibGUtcnBhdGgtaGFjayIKLQotZG9fY29uZmlndXJlKCkgewotICAgIGdudS1jb25maWdpemUgLS1mb3JjZQotICAgIHNlZCAtaSAncywke2NmX25jdWNvbmZpZ19yb290fTYtY29uZmlnLCR7Y2ZfbmN1Y29uZmlnX3Jvb3R9LWNvbmZpZyxnJyAtaSBjb25maWd1cmUKLSAgICBzZWQgLWkgJ3MsY2ZfaGF2ZV9uY3Vjb25maWc9dW5rbm93bixjZl9oYXZlX25jdWNvbmZpZz15ZXMsZycgLWkgY29uZmlndXJlCi0gICAgb2VfcnVuY29uZgotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZGlhbG9nL2RpYWxvZ18xLjMtMjAxNzEyMDkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kaWFsb2cvZGlhbG9nXzEuMy0yMDE3MTIwOS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2M2NWM0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZGlhbG9nL2RpYWxvZ18xLjMtMjAxNzEyMDkuYmIKQEAgLTAsMCArMSwyOSBAQAorU1VNTUFSWSA9ICJkaXNwbGF5IGRpYWxvZyBib3hlcyBmcm9tIHNoZWxsIHNjcmlwdHMiCitERVNDUklQVElPTiA9ICJEaWFsb2cgbGV0cyB5b3UgdG8gcHJlc2VudCBhIHZhcmlldHkgb2YgcXVlc3Rpb25zIFwKK29yIGRpc3BsYXkgbWVzc2FnZXMgdXNpbmcgZGlhbG9nIGJveGVzIGZyb20gYSBzaGVsbCBcCitzY3JpcHQgKG9yIGFueSBzY3JpcHRpbmcgbGFuZ3VhZ2UpLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9pbnZpc2libGUtaXNsYW5kLm5ldC9kaWFsb2cvIgorU0VDVElPTiA9ICJjb25zb2xlL3V0aWxzIgorREVQRU5EUyA9ICJuY3Vyc2VzIgorTElDRU5TRSA9ICJMR1BMLTIuMSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWE2Zjg5ZTIxMDBkOWI2Y2RmZmNlYTRmMzk4ZTM3MzQzIgorCitTUkNfVVJJID0gImZ0cDovL2Z0cC5pbnZpc2libGUtaXNsYW5kLm5ldC8ke0JQTn0vJHtCUH0udGd6IFwKKyAgICAgICAgICAiCitTUkNfVVJJW21kNXN1bV0gPSAiZjY2ZjI4YmVjYTkwMGI1NGY1ZmM5MGZkY2NlOTM1MDgiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjAxMzk0NDIxMTllMmVmZjVjMzUyMzZlOGU1ZTMxM2M5MDE1MzkwMDhkOWNjY2Y4YzhhYjM4NTFiNDEyNjdlNiIKKworIyBoYXJkY29kZWQgaGVyZSBmb3IgdXNlIGluIGRpYWxvZy1zdGF0aWMgcmVjaXBlCitTID0gIiR7V09SS0RJUn0vZGlhbG9nLSR7UFZ9IgorCitpbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAgcGtnY29uZmlnCisKK0VYVFJBX09FQ09ORiA9ICItLXdpdGgtbmN1cnNlcyBcCisgICAgICAgICAgICAgICAgLS1kaXNhYmxlLXJwYXRoLWhhY2siCisKK2RvX2NvbmZpZ3VyZSgpIHsKKyAgICBnbnUtY29uZmlnaXplIC0tZm9yY2UKKyAgICBzZWQgLWkgJ3MsJHtjZl9uY3Vjb25maWdfcm9vdH02LWNvbmZpZywke2NmX25jdWNvbmZpZ19yb290fS1jb25maWcsZycgLWkgY29uZmlndXJlCisgICAgc2VkIC1pICdzLGNmX2hhdmVfbmN1Y29uZmlnPXVua25vd24sY2ZfaGF2ZV9uY3Vjb25maWc9eWVzLGcnIC1pIGNvbmZpZ3VyZQorICAgIG9lX3J1bmNvbmYKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2R1bWItaW5pdC9kdW1iLWluaXRfMS4yLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kdW1iLWluaXQvZHVtYi1pbml0XzEuMi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxYTZkOTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kdW1iLWluaXQvZHVtYi1pbml0XzEuMi4wLmJiCkBAIC0wLDAgKzEsMTUgQEAKK1NVTU1BUlkgPSAiU2ltcGxlIHdyYXBwZXIgc2NyaXB0IHdoaWNoIHByb3hpZXMgc2lnbmFscyB0byBhIGNoaWxkIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL1llbHAvZHVtYi1pbml0LyIKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NTk0MGQzOTk5NWVhNjg1N2QwMWI4MjI3MTA5YzJlOWMiCisKK1NSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL1llbHAvZHVtYi1pbml0L2FyY2hpdmUvdiR7UFZ9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICI0ZWI3ZjQzZDc4MjM2ODY3MjNmZjdhYzFiYWQwOTdjYiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3NDQ4Njk5NzMyMWJkOTM5Y2FkMmVlNmFmMDMwZjQ4MWQzOTc1MWJjOWFhMGVjZTg0ZWQ1NWY4NjRlMzA5YTNmIgorCitFWFRSQV9PRU1BS0UgPSAiQ0M9JyR7Q0N9JyBDRkxBR1M9JyR7Q0ZMQUdTfSAke0xERkxBR1N9JyIKKworZG9faW5zdGFsbCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0ke2Jhc2Vfc2JpbmRpcn0KKyAgICBpbnN0YWxsICR7U30vZHVtYi1pbml0ICR7RH0ke2Jhc2Vfc2JpbmRpcn0vCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyLzAwMDEtZWZpdmFyLWRwLmgtQWRkLVd1bmtub3duLWF0dHJpYnV0ZXMtd2hlbi11c2luZy1jbGFuZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvMDAwMS1lZml2YXItZHAuaC1BZGQtV3Vua25vd24tYXR0cmlidXRlcy13aGVuLXVzaW5nLWNsYW5nLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjg4MTVlLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvMDAwMS1lZml2YXItZHAuaC1BZGQtV3Vua25vd24tYXR0cmlidXRlcy13aGVuLXVzaW5nLWNsYW5nLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotRnJvbSAzZDQzYzVlZmRiNjMyZGE1ZDczODdkY2FkY2U0ZTg3YjgzOTI5YzY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFRodSwgMjQgQXVnIDIwMTcgMTU6NTQ6NDcgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gZWZpdmFyLWRwLmg6IEFkZCAtV3Vua25vd24tYXR0cmlidXRlcyB3aGVuIHVzaW5nIGNsYW5nCi0KLWNoYW5nZSAhZHAgY2hlY2sgdG8gYSBjb21wYXJpc2lvbiBhZ2FpbnN0IE5VTEwgdG8gc2lsZW50IGNsYW5nIHdhcm5pbmcKLW5vbm51bGwgcGFyYW1ldGVyICdkcCcgd2lsbCBldmFsdWF0ZSB0byAndHJ1ZScgb24gZmlyc3QgZW5jb3VudGVyCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvaW5jbHVkZS9lZml2YXIvZWZpdmFyLWRwLmggfCAxMiArKysrKysrLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotCi1JbmRleDogZ2l0L3NyYy9pbmNsdWRlL2VmaXZhci9lZml2YXItZHAuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdpdC5vcmlnL3NyYy9pbmNsdWRlL2VmaXZhci9lZml2YXItZHAuaAotKysrIGdpdC9zcmMvaW5jbHVkZS9lZml2YXIvZWZpdmFyLWRwLmgKLUBAIC03ODMsOSArNzgzLDE0IEBAIGV4dGVybiBpbnQgZWZpZHBfYXBwZW5kX2luc3RhbmNlKGNvbnN0X2UKLSAgKiB0aG91Z2ggb2xkZXIgb3Igb3RoZXIgY29tcGlsZXJzIG1pZ2h0IGp1c3QgaWdub3JlIHRoYXQgYXR0cmlidXRlIGlmIHRoZXkKLSAgKiBkb24ndCBzdXBwb3J0IGl0LiAgVWdoLgotICAqLwotKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotICNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBfX0dOVUNfXyA+PSA2Ci0gI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbm51bGwtY29tcGFyZSIKLSAjZW5kaWYKLSsjaWYgZGVmaW5lZChfX2NsYW5nX18pCi0rI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vua25vd24tYXR0cmlidXRlcyIKLSsjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XcG9pbnRlci1ib29sLWNvbnZlcnNpb24iCi0rI2VuZGlmCi0gCi0gc3RhdGljIGlubGluZSBpbnQxNl90Ci0gX19hdHRyaWJ1dGVfXygoX19hcnRpZmljaWFsX18pKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci8wMDAxLWVmaXZhci1maXgtZm9yLWNyb3NzLWNvbXBpbGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyLzAwMDEtZWZpdmFyLWZpeC1mb3ItY3Jvc3MtY29tcGlsZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY2Y2E2NC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyLzAwMDEtZWZpdmFyLWZpeC1mb3ItY3Jvc3MtY29tcGlsZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLUZyb20gOWEzYzQ4MGFmNjUzYjM3ZTYyZDFiZTA0ZDQ5ZmU3YTYwYTgwMTY4ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEthaSBLYW5nIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgotRGF0ZTogRnJpLCAyNSBTZXAgMjAxNSAxODoxNDozMSArMDgwMAotU3ViamVjdDogW1BBVENIIDEvMl0gZWZpdmFyOiBmaXggZm9yIGNyb3NzIGNvbXBpbGUKLQotSXQgYnVpbGRzIGFuZCBjYWxscyBlbGYgZmlsZSBtYWtlZ3VpZHMgdG8gZ2VuZXJhdGUgYSBoZWFkZXIgZmlsZSB3aGljaAotZG9lc24ndCB3b3JrIGZvciBjcm9zcyBjb21waWxlLiBGaXggaXQuCi0KLVNpZ25lZC1vZmYtYnk6IEthaSBLYW5nIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLVNpZ25lZC1vZmYtYnk6IEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KLQotLS0tCi0gc3JjL01ha2VmaWxlIHwgNCArKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZSBiL3NyYy9NYWtlZmlsZQotaW5kZXggNWZjNzg4Ny4uMTgyOWQyMiAxMDA2NDQKLS0tLSBhL3NyYy9NYWtlZmlsZQotKysrIGIvc3JjL01ha2VmaWxlCi1AQCAtMjksOCArMjksOCBAQCBhbGwgOiBkZXBzICQoVEFSR0VUUykKLSAuL2d1aWQtc3ltYm9scy5jIDogaW5jbHVkZS9lZml2YXIvZWZpdmFyLWd1aWRzLmgKLSAuL2d1aWRzLmJpbiA6IGluY2x1ZGUvZWZpdmFyL2VmaXZhci1ndWlkcy5oCi0gLi9uYW1lcy5iaW4gOiBpbmNsdWRlL2VmaXZhci9lZml2YXItZ3VpZHMuaAotLWluY2x1ZGUvZWZpdmFyL2VmaXZhci1ndWlkcy5oIDogbWFrZWd1aWRzIGd1aWRzLnR4dAotLQkuL21ha2VndWlkcyBndWlkcy50eHQgZ3VpZHMuYmluIG5hbWVzLmJpbiBcCi0raW5jbHVkZS9lZml2YXIvZWZpdmFyLWd1aWRzLmggOiBndWlkcy50eHQKLSsJbWFrZWd1aWRzIGd1aWRzLnR4dCBndWlkcy5iaW4gbmFtZXMuYmluIFwKLSAJCWd1aWQtc3ltYm9scy5jIGluY2x1ZGUvZWZpdmFyL2VmaXZhci1ndWlkcy5oCi0gCi0gbWFrZWd1aWRzIDogQ1BQRkxBR1MrPS1ERUZJVkFSX0JVSUxEX0VOVklST05NRU5UCi0tLSAKLTIuNC4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvMDAwMS1tYWtlZ3VpZHMtRG8tbm90LXVzZS1fX2Jzd2FwX2NvbnN0YW50Xy0xNi0zMi1tYWNyb3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyLzAwMDEtbWFrZWd1aWRzLURvLW5vdC11c2UtX19ic3dhcF9jb25zdGFudF8tMTYtMzItbWFjcm9zLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3M2E3NzIxLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvMDAwMS1tYWtlZ3VpZHMtRG8tbm90LXVzZS1fX2Jzd2FwX2NvbnN0YW50Xy0xNi0zMi1tYWNyb3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1Gcm9tIDk4YjMzZDQxOTM5OTg2ODdhYTNhNzhjMDk3ZjdiZDRjMzkzZTBjODUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogU2F0LCAxNSBKdWwgMjAxNyAwMDoyOTo0MiAtMDcwMAotU3ViamVjdDogW1BBVENIXSBtYWtlZ3VpZHM6IERvIG5vdCB1c2UgX19ic3dhcF9jb25zdGFudF97MTZ8MzJ9IG1hY3JvcwotCi1ub3QgYXZhaWxhYmxlIG9uIG11c2wKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIHNyYy9tYWtlZ3VpZHMuYyB8IDggKysrKy0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL21ha2VndWlkcy5jIGIvc3JjL21ha2VndWlkcy5jCi1pbmRleCBkYTJmNWY3Li5kYWY4MjFhIDEwMDY0NAotLS0tIGEvc3JjL21ha2VndWlkcy5jCi0rKysgYi9zcmMvbWFrZWd1aWRzLmMKLUBAIC0xNTUsMTMgKzE1NSwxMyBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gI2lmIEJZVEVfT1JERVIgPT0gQklHX0VORElBTlxuXAotICNkZWZpbmUgY3B1X3RvX2JlMzIobikgKG4pXG5cCi0gI2RlZmluZSBjcHVfdG9fYmUxNihuKSAobilcblwKLS0jZGVmaW5lIGNwdV90b19sZTMyKG4pIChfX2Jzd2FwX2NvbnN0YW50XzMyKG4pKVxuXAotLSNkZWZpbmUgY3B1X3RvX2xlMTYobikgKF9fYnN3YXBfY29uc3RhbnRfMTYobikpXG5cCi0rI2RlZmluZSBjcHVfdG9fbGUzMihuKSAoKHVpbnQzMl90KSAoKG4pPj4yNCB8IChuKT4+OCYweGZmMDAgfCAobik8PDgmMHhmZjAwMDAgfCAobik8PDI0KSlcblwKLSsjZGVmaW5lIGNwdV90b19sZTE2KG4pICgodWludDE2X3QpICgobik8PDggfCAobik+PjgpKVxuXAotICNlbHNlXG5cCi0gI2RlZmluZSBjcHVfdG9fbGUzMihuKSAobilcblwKLSAjZGVmaW5lIGNwdV90b19sZTE2KG4pIChuKVxuXAotLSNkZWZpbmUgY3B1X3RvX2JlMzIobikgKF9fYnN3YXBfY29uc3RhbnRfMzIobikpXG5cCi0tI2RlZmluZSBjcHVfdG9fYmUxNihuKSAoX19ic3dhcF9jb25zdGFudF8xNihuKSlcblwKLSsjZGVmaW5lIGNwdV90b19iZTMyKG4pICgodWludDMyX3QpICgobik+PjI0IHwgKG4pPj44JjB4ZmYwMCB8IChuKTw8OCYweGZmMDAwMCB8IChuKTw8MjQpKVxuXAotKyNkZWZpbmUgY3B1X3RvX2JlMTYobikgKCh1aW50MTZfdCkgKChuKTw8OCB8IChuKT4+OCkpXG5cCi0gI2VuZGlmXG5cCi0gIiIiKTsKLSAKLS0tIAotMi4xMy4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvMDAwMy1lZml2YXItZml4LWZvci1jcm9zcy1jb21waWxlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci8wMDAzLWVmaXZhci1maXgtZm9yLWNyb3NzLWNvbXBpbGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmNDNmMmEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci8wMDAzLWVmaXZhci1maXgtZm9yLWNyb3NzLWNvbXBpbGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi1Gcm9tIDdlYWQyOWNhNmJiNWUyODBhZTA3NTUxY2MzNTIxMjgxZWNmNzM2ODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+Ci1EYXRlOiBTYXQsIDcgTWF5IDIwMTYgMDI6MDY6NDcgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSF0gTWFrZWZpbGU6IGZpeCBlZml2YXIucGMgbm90IGZvdW5kCi0KLUl0IGZpeGVzIGVmaXZhci5wYyBub3QgZm91bmQ6Ci0uLi4KLXwgaW5zdGFsbCAtZCAtbSA3NTUgZWZpdmFyLzAuMjMtcjAvaW1hZ2UvdXNyL2xpYi9wa2djb25maWcvCi18IGluc3RhbGwgLW0gNjQ0IGVmaXZhci5wYyBlZml2YXIvMC4yMy1yMC9pbWFnZS91c3IvbGliL3BrZ2NvbmZpZy8KLTsgIGluc3RhbGwgLW0gNjQ0IGVmaWJvb3QucGMgZWZpdmFyLzAuMjMtcjAvaW1hZ2UvdXNyL2xpYi9wa2djb25maWcvCi07Ci18IGluc3RhbGw6IGNhbm5vdCBzdGF0ICdlZml2YXIucGMnOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci18IGluc3RhbGw6IGNhbm5vdCBzdGF0ICdlZmlib290LnBjJzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotfCBtYWtlWzFdOiAqKiogW2luc3RhbGxdIEVycm9yIDEKLXwgbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgYGVmaXZhci8wLjIzLXIwL2dpdC9zcmMnCi18IG1ha2U6ICoqKiBbaW5zdGFsbF0gRXJyb3IgMgotfCBFUlJPUjogb2VfcnVubWFrZSBmYWlsZWQKLS4uLgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPgotLS0tCi0gc3JjL01ha2VmaWxlIHwgNCArKystCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlIGIvc3JjL01ha2VmaWxlCi1pbmRleCBjN2EwY2EzLi5hZDljNDI3IDEwMDY0NAotLS0tIGEvc3JjL01ha2VmaWxlCi0rKysgYi9zcmMvTWFrZWZpbGUKLUBAIC03OCw3ICs3OCw5IEBAIGluc3RhbGwgOiBhbGwKLSAJCWxuIC1mcyAkKHgpLiQoVkVSU0lPTikgJChERVNURElSKSQobGliZGlyKS8kKHgpLiQoTUFKT1JfVkVSU0lPTik7XAotIAkJbG4gLWZzICQoeCkuJChWRVJTSU9OKSAkKERFU1RESVIpJChsaWJkaXIpLyQoeCk7ICkKLSAJJChJTlNUQUxMKSAtZCAtbSA3NTUgJChERVNURElSKSQoUENESVIpCi0tCSQoZm9yZWFjaCB4LCAkKFBDVEFSR0VUUyksICQoSU5TVEFMTCkgLW0gNjQ0ICQoeCkgJChERVNURElSKSQoUENESVIpIDspCi0rCSQoZm9yZWFjaCB4LCAkKFBDVEFSR0VUUyksICQoSU5TVEFMTCkgLW0gNjQ0ICQoVE9QRElSKS9zcmMvJCh4KS5pbiAkKERFU1RESVIpJChQQ0RJUikvJCh4KSA7XAotKwkJc2VkIC1pIC1lICJzOkBATElCRElSQEA6JChsaWJkaXIpOmciIC1lICJzOkBAVkVSU0lPTkBAOiQoVkVSU0lPTik6ZyIgXAotKwkJCSQoREVTVERJUikkKFBDRElSKS8kKHgpOyApCi0gCSQoSU5TVEFMTCkgLWQgLW0gNzU1ICQoREVTVERJUikkKGluY2x1ZGVkaXIpL2VmaXZhcgotIAkkKGZvcmVhY2ggeCwgJCh3aWxkY2FyZCAkKFRPUERJUikvc3JjL2luY2x1ZGUvZWZpdmFyLyouaCksICQoSU5TVEFMTCkgLW0gNjQ0ICQoeCkgJChERVNURElSKSQoaW5jbHVkZWRpcikvZWZpdmFyLyQobm90ZGlyICQoeCkpOykKLSAJJChJTlNUQUxMKSAtZCAtbSA3NTUgJChERVNURElSKSQoYmluZGlyKQotLS0gCi0yLjguMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyL2FsbG93LW11bHRpLWRlZmluaXRpb25zLWZvci1uYXRpdmUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9lZml2YXIvZWZpdmFyL2FsbG93LW11bHRpLWRlZmluaXRpb25zLWZvci1uYXRpdmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZjU1NTUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci9hbGxvdy1tdWx0aS1kZWZpbml0aW9ucy1mb3ItbmF0aXZlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLUl0IGZhaWxzIHRvIGNyZWF0ZSAuc28gZmlsZSB3aGVuIGJ1aWxkIGVmaXZhci1uYXRpdmU6Ci0KLXwgbGliLm86KCpJTkQqKzB4MCk6IG11bHRpcGxlIGRlZmluaXRpb24gb2YgYGVmaV9zZXRfdmFyaWFibGUnCi18IGxpYi5vOmxpYi5jOigudGV4dCsweGEwKTogZmlyc3QgZGVmaW5lZCBoZXJlCi0KLUFkZCBsaW5rIG9wdGlvbiAnLXogbXVsZGVmcycgdG8gZml4IGl0LgotCi1TaWduZWQtb2ZmLWJ5OiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KLS0tLQotZGlmZiAtLWdpdCBhL01ha2UucnVsZXMgYi9NYWtlLnJ1bGVzCi1pbmRleCBkOWMwNjA5Li44NzRiY2UwIDEwMDY0NAotLS0tIGEvTWFrZS5ydWxlcwotKysrIGIvTWFrZS5ydWxlcwotQEAgLTIwLDYgKzIwLDcgQEAgaW5jbHVkZSAkKFRPUERJUikvTWFrZS52ZXJzaW9uCi0gCSQoQ0NMRCkgJChjY2xkZmxhZ3MpICQoQ1BQRkxBR1MpICQoU09GTEFHUykgXAotIAkgIC1XbCwtc29uYW1lLCRALiQoTUFKT1JfVkVSU0lPTikgXAotIAkgIC1XbCwtLXZlcnNpb24tc2NyaXB0PSQoTUFQKSBcCi0rCSAgLVdsLC16LG11bGRlZnMgXAotIAkgIC1vICRAICReICQoTERMSUJTKQotIAotICUubyA6ICUuYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci9maXgtY29tcGlsZS1mYWlsdXJlLXdpdGgtaG9zdC1nY2MtNC42LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci9maXgtY29tcGlsZS1mYWlsdXJlLXdpdGgtaG9zdC1nY2MtNC42LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2ZhMmUxLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvZml4LWNvbXBpbGUtZmFpbHVyZS13aXRoLWhvc3QtZ2NjLTQuNi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLUZyb20gMTM2MTIyNWFiYmFiYTg3ODk2MGY5NzBkZjM5YTQ1NzBiYmMzOTU1MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KLURhdGU6IFRodSwgMjYgTWF5IDIwMTYgMjE6NTA6MDEgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSF0gZml4IGNvbXBpbGUgZmFpbHVyZSB3aXRoIG9sZGVyIGhvc3QgZ2NjICg8PTQuNikKLQotV2hpbGUgaG9zdCBnY2MgdmVyc2lvbiBpcyA0LjYuMyBpbiB1YnVudHUgMTIwNCwgaXQKLWRpZCBub3QgcmVjb2duaXplIC1zdGQ9Z251MTEgYW5kIC1XbWF5YmUtdW5pbml0aWFsaXplZC4KLQotV2hpbGUgaG9zdCBnY2MgdmVyc2lvbiBpcyA0LjQuNyBpbiBjZW50b3M2LCBpdAotZGlkIG5vdCByZWNvZ25pemUgLXN0ZD1nbnUxMSwgLVdtYXliZS11bmluaXRpYWxpemVkLAotYW5kIC1mbHRvLgotCi1Gb3IgbmF0aXZlIGJ1aWxkLCB1c2UgLXN0ZD1nbnU5OSB0byByZXBsYWNlIC1zdGQ9Z251MTEsCi1hbmQgZGlyZWN0bHkgcmVtb3ZlIC1XbWF5YmUtdW5pbml0aWFsaXplZCBhbmQgLWZsdG8uCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBnY2Muc3BlY3MgfCA0ICsrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1JbmRleDogZ2l0L2djYy5zcGVjcwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdpdC5vcmlnL2djYy5zcGVjcwotKysrIGdpdC9nY2Muc3BlY3MKLUBAIC0yLDEzICsyLDEzIEBACi0gKyAtRF9HTlVfU09VUkNFCi0gCi0gKmVmaXZhcl9jcHBfb3B0aW9uczoKLS0gLVdlcnJvciAtV2FsbCAtc3RkPWdudTExIC1XZXh0cmEKLSsgLVdlcnJvciAtV2FsbCAtc3RkPWdudTk5IC1XZXh0cmEKLSAKLSAqY3BwX29wdGlvbnM6Ci0gKyAlKGVmaXZhcl9jcHBfb3B0aW9ucykKLSAKLSAqY2MxX29wdGlvbnM6Ci0tKyAlKGVmaXZhcl9jcHBfb3B0aW9ucykgLVdtYXliZS11bmluaXRpYWxpemVkIC1mbm8tbWVyZ2UtY29uc3RhbnRzIC1mdmlzaWJpbGl0eT1oaWRkZW4gJXshcjoleyFmcGllOiV7IWZQSUU6JXshZnBpYzoleyFmUElDOiV7IWZuby1waWM6LWZQSUV9fX19fX0KLSsrICUoZWZpdmFyX2NwcF9vcHRpb25zKSAtZm5vLW1lcmdlLWNvbnN0YW50cyAtZnZpc2liaWxpdHk9aGlkZGVuICV7IXI6JXshZnBpZToleyFmUElFOiV7IWZwaWM6JXshZlBJQzoleyFmbm8tcGljOi1mUElFfX19fX19Ci0gCi0gKnNlbGZfc3BlYzoKLSArICV7IXNoYXJlZDoleyFzdGF0aWM6JXshcjotcGllfX19ICV7c3RhdGljOi1XbCwtbm8tZmF0YWwtd2FybmluZ3MgLVdsLC1zdGF0aWMgLXN0YXRpYyAtV2wsLXoscmVscm8sLXosbm93fQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci9tdXNsLXN0cm5kdXBhLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZWZpdmFyL2VmaXZhci9tdXNsLXN0cm5kdXBhLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzhmOGM4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2VmaXZhci9lZml2YXIvbXVzbC1zdHJuZHVwYS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRha2VuIGZyb20gdm9pZCBsaW51eAotCi1JbmRleDogZ2l0L3NyYy9saW51eC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2l0Lm9yaWcvc3JjL2xpbnV4LmMKLSsrKyBnaXQvc3JjL2xpbnV4LmMKLUBAIC00MCw2ICs0MCwxMCBAQAotICNpbmNsdWRlIDxlZml2YXIuaD4KLSAjaW5jbHVkZSA8ZWZpYm9vdC5oPgotIAotKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCi0rI2RlZmluZSBzdHJuZHVwYSh4LHMpIHN0cm5jcHkoYWxsb2NhKHN0cmxlbih4KSsxKSx4LHMpCi0rI2VuZGlmCi0rCi0gI2luY2x1ZGUgImRwLmgiCi0gI2luY2x1ZGUgImxpbnV4LmgiCi0gI2luY2x1ZGUgInV0aWwuaCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2ZsYXNocm9tL2ZsYXNocm9tLzAwMDEtUmVtb3ZlLXVuZGVmaW5lZC1iZWhhdmlvci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2ZsYXNocm9tL2ZsYXNocm9tLzAwMDEtUmVtb3ZlLXVuZGVmaW5lZC1iZWhhdmlvci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTEzOTdkYy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9mbGFzaHJvbS9mbGFzaHJvbS8wMDAxLVJlbW92ZS11bmRlZmluZWQtYmVoYXZpb3IucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi1Gcm9tIGQyYTAzYjNlNDMwNDNiNTk2YTc5ODAzYmNiOTNmNzBlNTEzYmJiNTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQYXRyaWNrIEdlb3JnaSA8cGdlb3JnaUBnb29nbGUuY29tPgotRGF0ZTogTW9uLCAxMyBNYXIgMjAxNyAxMzo0ODowMyArMDEwMAotU3ViamVjdDogW1BBVENIXSBSZW1vdmUgdW5kZWZpbmVkIGJlaGF2aW9yCi0KLVBlciBjbGFuZy0zLjksIHRoZSBjb21waWxlciBmYWlscyBvbiAjZGVmaW5lIC4uLmRlZmluZWQoLi4uKSBzdGF0ZW1lbnRzCi1hcyB0aGV5J3JlIHVuZGVmaW5lZCBiZWhhdmlvciAoYXBwYXJlbnRseSB3aXRoIGRpZmZlcmVudCBiZWhhdmlvcgotYmV0d2VlbiBnY2MvY2xhbmcgYW5kIG1zdmMsIHRvbykuCi0KLVNlZSBjbGFuZydzIGNmZSByZXBvIGNvbW1pdCByMjU4MTI4IGZvciBkZXRhaWxzLgotCi1DaGFuZ2UtSWQ6IEk4MmI2MjM1ZTExYjQyNWZhZTQ1ZWViYmUwNmIwOGY4MWM1YmRiYjk4Ci1TaWduZWQtb2ZmLWJ5OiBQYXRyaWNrIEdlb3JnaSA8cGdlb3JnaUBnb29nbGUuY29tPgotUmV2aWV3ZWQtb246IGh0dHBzOi8vcmV2aWV3LmNvcmVib290Lm9yZy8xODc5MgotUmV2aWV3ZWQtYnk6IFN0ZWZhbiBSZWluYXVlciA8c3RlZmFuLnJlaW5hdWVyQGNvcmVib290Lm9yZz4KLVRlc3RlZC1ieTogYnVpbGQgYm90IChKZW5raW5zKSA8bm8tcmVwbHlAY29yZWJvb3Qub3JnPgotLS0tCi0gaHdhY2Nlc3MuYyB8IDE4ICsrKysrKysrKysrKysrKy0tLQotIHBsYXRmb3JtLmggfCAxOCArKysrKysrKysrKysrKystLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9od2FjY2Vzcy5jIGIvaHdhY2Nlc3MuYwotaW5kZXggYWVkZTdlMy4uMmJmNmY0MiAxMDA2NDQKLS0tLSBhL2h3YWNjZXNzLmMKLSsrKyBiL2h3YWNjZXNzLmMKLUBAIC0zNyw5ICszNywyMSBAQAotICNlcnJvciAiVW5rbm93biBvcGVyYXRpbmcgc3lzdGVtIgotICNlbmRpZgotIAotLSNkZWZpbmUgVVNFX0lPUEwJKElTX0xJTlVYIHx8IElTX01BQ09TWCB8fCBkZWZpbmVkKF9fTmV0QlNEX18pIHx8IGRlZmluZWQoX19PcGVuQlNEX18pKQotLSNkZWZpbmUgVVNFX0RFVl9JTwkoZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykpCi0tI2RlZmluZSBVU0VfSU9QRVJNCShkZWZpbmVkKF9fZ251X2h1cmRfXykpCi0rI2lmIElTX0xJTlVYIHx8IElTX01BQ09TWCB8fCBkZWZpbmVkKF9fTmV0QlNEX18pIHx8IGRlZmluZWQoX19PcGVuQlNEX18pCi0rI2RlZmluZSBVU0VfSU9QTCAxCi0rI2Vsc2UKLSsjZGVmaW5lIFVTRV9JT1BMIDAKLSsjZW5kaWYKLSsjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykKLSsjZGVmaW5lIFVTRV9ERVZfSU8gMQotKyNlbHNlCi0rI2RlZmluZSBVU0VfREVWX0lPIDAKLSsjZW5kaWYKLSsjaWYgZGVmaW5lZChfX2dudV9odXJkX18pCi0rI2RlZmluZSBVU0VfSU9QRVJNIDEKLSsjZWxzZQotKyNkZWZpbmUgVVNFX0lPUEVSTSAwCi0rI2VuZGlmCi0gCi0gI2lmIFVTRV9JT1BFUk0KLSAjaW5jbHVkZSA8c3lzL2lvLmg+Ci1kaWZmIC0tZ2l0IGEvcGxhdGZvcm0uaCBiL3BsYXRmb3JtLmgKLWluZGV4IGM1YTUyZWYuLmIyZmRjZDAgMTAwNjQ0Ci0tLS0gYS9wbGF0Zm9ybS5oCi0rKysgYi9wbGF0Zm9ybS5oCi1AQCAtMjUsOSArMjUsMjEgQEAKLSAjZGVmaW5lIF9fUExBVEZPUk1fSF9fIDEKLSAKLSAvLyBIZWxwZXIgZGVmaW5lcyBmb3Igb3BlcmF0aW5nIHN5c3RlbXMKLS0jZGVmaW5lIElTX0xJTlVYCShkZWZpbmVkKF9fZ251X2xpbnV4X18pIHx8IGRlZmluZWQoX19saW51eF9fKSkKLS0jZGVmaW5lIElTX01BQ09TWAkoZGVmaW5lZChfX0FQUExFX18pICYmIGRlZmluZWQoX19NQUNIX18pKSAvKiB5ZXMsIGJvdGguICovCi0tI2RlZmluZSBJU19XSU5ET1dTCShkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfV0lONjQpIHx8IGRlZmluZWQoX19XSU4zMl9fKSB8fCBkZWZpbmVkKF9fV0lORE9XU19fKSkKLSsjaWYgZGVmaW5lZChfX2dudV9saW51eF9fKSB8fCBkZWZpbmVkKF9fbGludXhfXykKLSsjZGVmaW5lIElTX0xJTlVYIDEKLSsjZWxzZQotKyNkZWZpbmUgSVNfTElOVVggMAotKyNlbmRpZgotKyNpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgZGVmaW5lZChfX01BQ0hfXykgLyogeWVzLCBib3RoLiAqLwotKyNkZWZpbmUgSVNfTUFDT1NYIDEKLSsjZWxzZQotKyNkZWZpbmUgSVNfTUFDT1NYIDAKLSsjZW5kaWYKLSsjaWYgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX1dJTjY0KSB8fCBkZWZpbmVkKF9fV0lOMzJfXykgfHwgZGVmaW5lZChfX1dJTkRPV1NfXykKLSsjZGVmaW5lIElTX1dJTkRPV1MgMQotKyNlbHNlCi0rI2RlZmluZSBJU19XSU5ET1dTIDAKLSsjZW5kaWYKLSAKLSAvLyBMaWtld2lzZSBmb3IgdGFyZ2V0IGFyY2hpdGVjdHVyZXMKLSAjaWYgZGVmaW5lZCAoX19pMzg2X18pIHx8IGRlZmluZWQgKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hbWQ2NF9fKQotLS0gCi0yLjEzLjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZmxhc2hyb20vZmxhc2hyb20vMDAwMS1zcGktRGVmaW5lLV9YT1BFTl9TT1VSQ0UtdG8tZW5hYmxlLWZmcy1saWJjLUFQSS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2ZsYXNocm9tL2ZsYXNocm9tLzAwMDEtc3BpLURlZmluZS1fWE9QRU5fU09VUkNFLXRvLWVuYWJsZS1mZnMtbGliYy1BUEkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxNzBmZWYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZmxhc2hyb20vZmxhc2hyb20vMDAwMS1zcGktRGVmaW5lLV9YT1BFTl9TT1VSQ0UtdG8tZW5hYmxlLWZmcy1saWJjLUFQSS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLUZyb20gN2M2NWE0NjVhM2RkZWI3YWZiOWE3YzQ5ZDAxMGFlN2U1ZDViMWFkMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDE4IEp1bCAyMDE3IDIwOjI1OjQ5IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNwaTogRGVmaW5lIF9YT1BFTl9TT1VSQ0UgdG8gZW5hYmxlIGZmcygpIGxpYmMgQVBJCi0KLW11c2wgZXhwb3NlcyB0aGlzIGlzc3VlCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcGkuYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3NwaS5jIGIvc3BpLmMKLWluZGV4IDg5NGY3M2YuLmFlYjY1MTggMTAwNjQ0Ci0tLS0gYS9zcGkuYwotKysrIGIvc3BpLmMKLUBAIC0yMSw3ICsyMSw3IEBACi0gLyoKLSAgKiBDb250YWlucyB0aGUgZ2VuZXJpYyBTUEkgZnJhbWV3b3JrCi0gICovCi0tCi0rI2RlZmluZSBfWE9QRU5fU09VUkNFCi0gI2luY2x1ZGUgPHN0cmluZ3MuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0gI2luY2x1ZGUgImZsYXNoLmgiCi0tLSAKLTIuMTMuMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9mbGFzaHJvbS9mbGFzaHJvbV8wLjkuOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2ZsYXNocm9tL2ZsYXNocm9tXzAuOS45LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Y2RkOGFkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2ZsYXNocm9tL2ZsYXNocm9tXzAuOS45LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiZmxhc2hyb20gaXMgYSB1dGlsaXR5IGZvciBpZGVudGlmeWluZywgcmVhZGluZywgd3JpdGluZywgdmVyaWZ5aW5nIGFuZCBlcmFzaW5nIGZsYXNoIGNoaXBzIgotTElDRU5TRSA9ICJHUEx2MiIKLUhPTUVQQUdFID0gImh0dHA6Ly9mbGFzaHJvbS5vcmciCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIgotREVQRU5EUyA9ICJwY2l1dGlscyBsaWJ1c2IgbGlidXNiLWNvbXBhdCIKLQotU1JDX1VSSSA9ICJodHRwOi8vZG93bmxvYWQuZmxhc2hyb20ub3JnL3JlbGVhc2VzL2ZsYXNocm9tLSR7UFZ9LnRhci5iejIgXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1zcGktRGVmaW5lLV9YT1BFTl9TT1VSQ0UtdG8tZW5hYmxlLWZmcy1saWJjLUFQSS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9zc3QyNi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLVJlbW92ZS11bmRlZmluZWQtYmVoYXZpb3IucGF0Y2ggXAotICAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiYWFiOWM5ODkyNWQ5Y2ZiNWZmYjI4YjY3YTYxMTI1MzAiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiY2IzMTU2YjBmNjNlYjE5MjAyNGI3NmMwODE0MTM1OTMwMjk3YWFjNDFmODA3NjFhNWQyOTNkZTc2OTc4M2M0NSIKLQotaW5oZXJpdCBwa2djb25maWcKLQotZG9faW5zdGFsbCgpIHsKLSAgICBvZV9ydW5tYWtlIFBSRUZJWD0ke3ByZWZpeH0gREVTVERJUj0ke0R9IGluc3RhbGwKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2ZsdWVudGJpdC9mbHVlbnRiaXRfMC4xMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZmx1ZW50Yml0L2ZsdWVudGJpdF8wLjEyLjEuYmIKaW5kZXggZTJlZGQwOS4uOTlmNjgwZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZmx1ZW50Yml0L2ZsdWVudGJpdF8wLjEyLjEuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZmx1ZW50Yml0L2ZsdWVudGJpdF8wLjEyLjEuYmIKQEAgLTIxLDYgKzIxLDEwIEBACiAKIEVYVFJBX09FQ01BS0UgPSAiLURHTlVfSE9TVD0ke0hPU1RfU1lTfSAtREZMQl9BTEw9T04gLURGTEJfVEQ9MSIKIAorIyBXaXRoIE5pbmphIGl0IGZhaWxzIHdpdGg6CisjIG5pbmphOiBlcnJvcjogYnVpbGQubmluamE6MTM0OiBiYWQgJC1lc2NhcGUgKGxpdGVyYWwgJCBtdXN0IGJlIHdyaXR0ZW4gYXMgJCQpCitPRUNNQUtFX0dFTkVSQVRPUiA9ICJVbml4IE1ha2VmaWxlcyIKKwogU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gInRkLWFnZW50LWJpdC5zZXJ2aWNlIgogCiBUQVJHRVRfQ0NfQVJDSF9hcHBlbmQgPSAiICR7U0VMRUNURURfT1BUSU1JWkFUSU9OfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QuaW5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWVlODc0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC5pbmMKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi1ERVNDUklQVElPTiA9ICJHbnVwbG90IGlzIGEgcG9ydGFibGUgY29tbWFuZC1saW5lIGRyaXZlbiBpbnRlcmFjdGl2ZSBkYXRhZmlsZSBcCi0odGV4dCBvciBiaW5hcnkpIGFuZCBmdW5jdGlvbiBwbG90dGluZyB1dGlsaXR5LiIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ251cGxvdC5pbmZvLyIKLVNFQ1RJT04gPSAiY29uc29sZS9zY2llbnRpZmljIgotTElDRU5TRSA9ICJnbnVwbG90IgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ29weXJpZ2h0O21kNT0yNDNhMTg2ZmMyZmQzYjk5MjEyNWQ2MGQ1YjFiYWI4ZiIKLURFUEVORFMgPSAidmlydHVhbC9saWJ4MTEgZ2QgcmVhZGxpbmUiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIGRpc3Ryb19mZWF0dXJlc19jaGVjawotIyBkZXBlbmRzIG9uIHZpcnR1YWwvbGlieDExCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgotCi1hY3BhdGhzID0gIiIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gImNhaXJvIgotUEFDS0FHRUNPTkZJR1tjYWlyb10gPSAiLS13aXRoLWNhaXJvLC0td2l0aG91dC1jYWlybyxjYWlybyBwYW5nbyIKLVBBQ0tBR0VDT05GSUdbbHVhXSA9ICItLXdpdGgtbHVhLC0td2l0aG91dC1sdWEsbHVhIgotIyB0aGVyZSdzIGNvbXBpbGF0aW9uIGZhaWx1cmUgaWYgcXQ0IGlzIGVuYWJsZWQKLVBBQ0tBR0VDT05GSUdbcXQ0XSA9ICItLXdpdGgtcXQsLS13aXRob3V0LXF0LHF0NC14MTEtZnJlZSIKLQotRVhUUkFfT0VDT05GID0gIi0td2l0aC1yZWFkbGluZT0ke1NUQUdJTkdfTElCRElSfS8uLiBcCi0gICAgICAgICAgICAgICAgLS13aXRob3V0LXR1dG9yaWFsIFwKLSAgICAgICAgICAgICAgICAtLWRpc2FibGUtd3h3aWRnZXRzIgotCi1kb19jb21waWxlX3ByZXBlbmQoKSB7Ci0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vcXRwbG90LTAuMi9xdG9waWEudHJtICR7U30vdGVybS8KLX0KLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtkYXRhZGlyfS9hcHBsaWNhdGlvbnMvCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vZ251cGxvdC5kZXNrdG9wICR7RH0ke2RhdGFkaXJ9L2FwcGxpY2F0aW9ucy8KLSAgICBpbnN0YWxsIC1kICR7RH0ke2RhdGFkaXJ9L3BpeG1hcHMvCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vZ251cGxvdC5wbmcgJHtEfSR7ZGF0YWRpcn0vcGl4bWFwcy8KLX0KLQotUEFDS0FHRVMgPSsgIiR7UE59LXgxMS1kYmcgJHtQTn0teDExIgotREVTQ1JJUFRJT05fJHtQTn0teDExID0gIlgxMSBkaXNwbGF5IHRlcm1pbmFsIGZvciBHbnVwbG90LiIKLVNFQ1RJT05fJHtQTn0teDExID0gIngxMS9zY2llbnRpZmljIgotRklMRVNfJHtQTn0teDExID0gIiR7bGliZXhlY2Rpcn0gJHtkYXRhZGlyfS9hcHBsaWNhdGlvbnMgJHtkYXRhZGlyfS9waXhtYXBzICR7bGliZGlyfS9YMTEgIgotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS90ZXhtZiIKLUZJTEVTXyR7UE59LXgxMS1kYmcgKz0gIiR7bGliZXhlY2Rpcn0vZ251cGxvdC8qLy5kZWJ1ZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC8wMDAxLXJlZHVjZS1idWlsZC10by1jb252ZXJzaW9uLXRvb2xzLWZvci1uYXRpdmUtYnVpbGQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvMDAwMS1yZWR1Y2UtYnVpbGQtdG8tY29udmVyc2lvbi10b29scy1mb3ItbmF0aXZlLWJ1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4ZjFmZDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvMDAwMS1yZWR1Y2UtYnVpbGQtdG8tY29udmVyc2lvbi10b29scy1mb3ItbmF0aXZlLWJ1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK0Zyb20gYTJhYzk2NjgxM2ZkYzA0Yjc4OGJlOWM4NDc0YTRjNWUzNmMxMDlhMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDYgTWFyIDIwMTggMjE6NTM6MjYgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gcmVkdWNlIGJ1aWxkIHRvIGNvbnZlcnNpb24gdG9vbHMgZm9yIG5hdGl2ZSBidWlsZAorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgTWFrZWZpbGUuYW0gfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCitpbmRleCA5MjQxY2U1Li5iMjRlMjkxIDEwMDY0NAorLS0tIGEvTWFrZWZpbGUuYW0KKysrKyBiL01ha2VmaWxlLmFtCitAQCAtMSw3ICsxLDcgQEAKKyAjIyBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9tYWtlIHRvIHByb2R1Y2UgTWFrZWZpbGUuaW4gLSotTWFrZWZpbGUtKi0KKyBBVVRPTUFLRV9PUFRJT05TID0gZm9yZWlnbgorIAorLVNVQkRJUlMgPSBjb25maWcgbTQgdGVybSBzcmMgZG9jcyBtYW4gZGVtbyB0dXRvcmlhbCBzaGFyZQorK1NVQkRJUlMgPSBkb2NzCisgCisgRVhUUkFfRElTVCA9IEJVR1MgQ29weXJpZ2h0IEZBUS5wZGYgR05VbWFrZWZpbGUgSU5TVEFMTCBJTlNUQUxMLmdudSBcCisgTWFrZWZpbGUubWFpbnQgUEFUQ0hMRVZFTCBQR1BLRVlTIFJFQURNRSBSRUxFQVNFX05PVEVTIFwKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC8wMDAyLWRvLW5vdC1idWlsZC1kZW1vcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC8wMDAyLWRvLW5vdC1idWlsZC1kZW1vcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTBiNGEyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90LzAwMDItZG8tbm90LWJ1aWxkLWRlbW9zLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK0Zyb20gYTJhYzk2NjgxM2ZkYzA0Yjc4OGJlOWM4NDc0YTRjNWUzNmMxMDlhMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDYgTWFyIDIwMTggMjE6NTM6MjYgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gRG8gbm90IGJ1aWxkIGRlbW9zCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CistLS0KKyBNYWtlZmlsZS5hbSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KK2luZGV4IDkyNDFjZTUuLmIyNGUyOTEgMTAwNjQ0CistLS0gYS9NYWtlZmlsZS5hbQorKysrIGIvTWFrZWZpbGUuYW0KK0BAIC0xLDcgKzEsNyBAQAorICMjIFByb2Nlc3MgdGhpcyBmaWxlIHdpdGggYXV0b21ha2UgdG8gcHJvZHVjZSBNYWtlZmlsZS5pbiAtKi1NYWtlZmlsZS0qLQorIEFVVE9NQUtFX09QVElPTlMgPSBmb3JlaWduCisgCistU1VCRElSUyA9IGNvbmZpZyBtNCB0ZXJtIHNyYyBkb2NzIG1hbiBkZW1vIHR1dG9yaWFsIHNoYXJlCisrU1VCRElSUyA9IGNvbmZpZyBtNCB0ZXJtIHNyYyBkb2NzIG1hbiB0dXRvcmlhbCBzaGFyZQorIAorIEVYVFJBX0RJU1QgPSBCVUdTIENvcHlyaWdodCBGQVEucGRmIEdOVW1ha2VmaWxlIElOU1RBTEwgSU5TVEFMTC5nbnUgXAorIE1ha2VmaWxlLm1haW50IFBBVENITEVWRUwgUEdQS0VZUyBSRUFETUUgUkVMRUFTRV9OT1RFUyBcCistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvMDAwMy1Vc2UtbmF0aXZlLXRvb2xzLXRvLWJ1aWxkLWRvY3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvMDAwMy1Vc2UtbmF0aXZlLXRvb2xzLXRvLWJ1aWxkLWRvY3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQwMzljMwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC8wMDAzLVVzZS1uYXRpdmUtdG9vbHMtdG8tYnVpbGQtZG9jcy5wYXRjaApAQCAtMCwwICsxLDExMSBAQAorRnJvbSAxMTI4YTk4ZmQxNjc2OTgxZTUzNmQ4NzczZjM2M2NiODMyY2ZhNmJiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgNiBNYXIgMjAxOCAyMjoyODo1NiArMDEwMAorU3ViamVjdDogW1BBVENIXSBVc2UgbmF0aXZlIHRvb2xzIHRvIGJ1aWxkIGRvY3MKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KKy0tLQorIGRvY3MvTWFrZWZpbGUuYW0gfCAyMiArKysrKysrKysrKy0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZG9jcy9NYWtlZmlsZS5hbSBiL2RvY3MvTWFrZWZpbGUuYW0KK2luZGV4IDNiYWYwYzQuLmU4MmY4N2QgMTAwNjQ0CistLS0gYS9kb2NzL01ha2VmaWxlLmFtCisrKysgYi9kb2NzL01ha2VmaWxlLmFtCitAQCAtMTUyLDcgKzE1Miw3IEBAIGdudXBsb3QtZ3JvZmYucHM6IGdudXBsb3QubXMgJChzcmNkaXIpL3RpdGxlcGFnLm1zCisgCisgIyMjIGRvYzJ4eHggZGVwZW5kZW5jaWVzCisgZ251cGxvdC5tczogZG9jMm1zJChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYworLQkkKEFNX1ZfR0VOKSAuL2RvYzJtcyQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5tcyAiJChzcmNkaXIpL3RpdGxlcGFnLm1zIgorKwkkKEFNX1ZfR0VOKSBkb2MybXMkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jIGdudXBsb3QubXMgIiQoc3JjZGlyKS90aXRsZXBhZy5tcyIKKyAKKyBkb2MybXNfU09VUkNFUyA9IGRvYzJtcy5jIHRlcm1kb2MuYworIGRvYzJtc19DUFBGTEFHUyA9IC1EQUxMX1RFUk1fRE9DICQoQU1fQ1BQRkxBR1MpCitAQCAtMTczLDEwICsxNzMsMTAgQEAgcGRmX2ZpZ3VyZXM6ICQoR05VUExPVF9FWEUpICQoc3JjZGlyKS9wbG90c3R5bGVzLmdudQorIAkkKEFNX1ZfR0VOKXRvdWNoICRACisgCisgZmlndXJlcy50ZXg6IGFsbHRlcm0uaCBkb2MydGV4JChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYworLQkkKEFNX1ZfR0VOKS4vZG9jMnRleCQoRVhFRVhUKSAtZmlndXJlcyAkKHNyY2RpcikvZ251cGxvdC5kb2MgJEAKKysJJChBTV9WX0dFTikgZG9jMnRleCQoRVhFRVhUKSAtZmlndXJlcyAkKHNyY2RpcikvZ251cGxvdC5kb2MgJEAKKyAKKyBub2ZpZ3VyZXMudGV4OiBhbGx0ZXJtLmggZG9jMnRleCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MKKy0JJChBTV9WX0dFTikuL2RvYzJ0ZXgkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jICRACisrCSQoQU1fVl9HRU4pIGRvYzJ0ZXgkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jICRACisgCisgcGRmOiBnbnVwbG90LnBkZgorIHBkZl9ub2ZpZzogbm9maWd1cmVzLnBkZgorQEAgLTI1Niw3ICsyNTYsNyBAQCBnbnVwbG90LnBzOiBnbnVwbG90LmR2aQorIGhscDogZ251cGxvdC5obHAKKyAKKyBnbnVwbG90LmhscDogZG9jMmhscCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MKKy0JJChBTV9WX0dFTikuL2RvYzJobHAkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jIGdudXBsb3QuaGxwCisrCSQoQU1fVl9HRU4pZG9jMmhscCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5obHAKKyAKKyBkb2MyaGxwX1NPVVJDRVMgPSBkb2MyaGxwLmMgdGVybWRvYy5jCisgCitAQCAtMjY0LDE0ICsyNjQsMTQgQEAgZG9jMmhscF9TT1VSQ0VTID0gZG9jMmhscC5jIHRlcm1kb2MuYworIGdpaDogZ251cGxvdC5naWgKKyAKKyBnbnVwbG90LmdpaDogZG9jMmdpaCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MKKy0JJChBTV9WX0dFTikuL2RvYzJnaWgkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jIGdudXBsb3QuZ2loCisrCSQoQU1fVl9HRU4pZG9jMmdpaCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5naWgKKyAKKyBkb2MyZ2loX1NPVVJDRVMgPSBkb2MyZ2loLmMgdGVybWRvYy5jCisgCisgIyBUbyBpbmNsdWRlIGFsbCB0ZXJtaW5hbHMgaW4gdGhlIC5naWggZmlsZQorIGFsbGdpaDogYWxsZG9jMmdpaCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MKKyAJQGVjaG8gImdlbmVyYXRlIGdudXBsb3QuZ2loIHdpdGggYWxsIHRlcm1pbmFscyIKKy0JJChBTV9WX2F0KS4vYWxsZG9jMmdpaCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5naWgKKysJJChBTV9WX2F0KWFsbGRvYzJnaWgkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jIGdudXBsb3QuZ2loCisgCisgYWxsZG9jMmdpaF9TT1VSQ0VTID0gZG9jMmdpaC5jIHRlcm1kb2MuYworIGFsbGRvYzJnaWhfQ1BQRkxBR1MgPSAtREFMTF9URVJNX0RPQyAkKEFNX0NQUEZMQUdTKQorQEAgLTI4Niw3ICsyODYsNyBAQCAkKHNyY2Rpcikvd2luZG93cy93Z251cGxvdC5oaGsKKyB3eGhlbHAvd2dudXBsb3QuaGhjIHd4aGVscC93Z251cGxvdC5oaGsgd3hoZWxwLyouaHRtbCB3aW5kb3dzLyoucG5nCisgCisgd3hoZWxwL3dnbnVwbG90Lmh0bWw6IGRvYzJ3eGh0bWwkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jIAorLQkkKEFNX1ZfR0VOKSAuL2RvYzJ3eGh0bWwkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jIHd4aGVscC8KKysJJChBTV9WX0dFTikgZG9jMnd4aHRtbCQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2Mgd3hoZWxwLworIAorICNkb2Myd3hodG1sX1NPVVJDRVMgPSB3aW5kb3dzL2RvYzJodG1sLmMgdGVybWRvYy5jIHhyZWYuYyBhbGx0ZXJtLmgKKyAjZG9jMnd4aHRtbF9DUFBGTEFHUyA9IC1EQUxMX1RFUk1fRE9DIC1EV1hIRUxQIC1JLi4vc3JjICQoQU1fQ1BQRkxBR1MpCitAQCAtMzM2LDcgKzMzNiw3IEBAIGluc3RhbGwtaW5mbzogZ251cGxvdC5pbmZvCisgaXBmOiBnbnVwbG90LmlwZgorIAorIGdudXBsb3QuaXBmOiBkb2MyaXBmJChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYworLQkkKEFNX1ZfR0VOKSAuL2RvYzJpcGYkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jIGdudXBsb3QuaXBmCisrCSQoQU1fVl9HRU4pIGRvYzJpcGYkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jIGdudXBsb3QuaXBmCisgCisgZG9jMmlwZl9TT1VSQ0VTID0gZG9jMmlwZi5jIHRlcm1kb2MuYyB4cmVmLmMKKyAKK0BAIC0zNDQsNyArMzQ0LDcgQEAgZG9jMmlwZl9TT1VSQ0VTID0gZG9jMmlwZi5jIHRlcm1kb2MuYyB4cmVmLmMKKyBydGY6IGdudXBsb3QucnRmCisgCisgZ251cGxvdC5ydGY6IGRvYzJydGYkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jCistCSQoQU1fVl9HRU4pIC4vZG9jMnJ0ZiQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5ydGYKKysJJChBTV9WX0dFTikgZG9jMnJ0ZiQoRVhFRVhUKSAkKHNyY2RpcikvZ251cGxvdC5kb2MgZ251cGxvdC5ydGYKKyAKKyBkb2MycnRmX1NPVVJDRVMgPSBkb2MycnRmLmMgdGVybWRvYy5jIHhyZWYuYworIAorQEAgLTM1MiwxMyArMzUyLDEzIEBAIGRvYzJydGZfU09VUkNFUyA9IGRvYzJydGYuYyB0ZXJtZG9jLmMgeHJlZi5jCisgcm5oOiBnbnVwbG90LnJuaAorIAorIGdudXBsb3Qucm5oOiBkb2Mycm5oJChFWEVFWFQpICQoc3JjZGlyKS9nbnVwbG90LmRvYworLQkkKEFNX1ZfR0VOKSAuL2RvYzJybmgkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jIGdudXBsb3Qucm5oCisrCSQoQU1fVl9HRU4pIGRvYzJybmgkKEVYRUVYVCkgJChzcmNkaXIpL2dudXBsb3QuZG9jIGdudXBsb3Qucm5oCisgCisgZG9jMnJuaF9TT1VSQ0VTID0gZG9jMnJuaC5jIHRlcm1kb2MuYworIAorICMgdGhpcyBpcyBob3cgdG8gY2hlY2sgdGhlIGdudXBsb3QuZG9jIGZpbGUKKyBjaGVjay1sb2NhbDogY2hlY2tkb2MkKEVYRUVYVCkKKy0JJChBTV9WX2F0KS4vY2hlY2tkb2MkKEVYRUVYVCkgPCAkKHNyY2RpcikvZ251cGxvdC5kb2M7IFwKKysJJChBTV9WX2F0KWNoZWNrZG9jJChFWEVFWFQpIDwgJChzcmNkaXIpL2dudXBsb3QuZG9jOyBcCisgCWlmIHRlc3QgJCQ/IC1lcSAwOyB0aGVuIFwKKyAJICBlY2hvICJQQVNTOiBnbnVwbG90LmRvYyI7IFwKKyAJZWxzZSBcCistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvMDAwNC1BZGQtY29uZmlndXJlLW9wdGlvbi10by1maW5kLXF0NS1uYXRpdmUtdG9vbHMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvMDAwNC1BZGQtY29uZmlndXJlLW9wdGlvbi10by1maW5kLXF0NS1uYXRpdmUtdG9vbHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VkOWU3NgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC8wMDA0LUFkZC1jb25maWd1cmUtb3B0aW9uLXRvLWZpbmQtcXQ1LW5hdGl2ZS10b29scy5wYXRjaApAQCAtMCwwICsxLDQyIEBACitGcm9tIDU3N2UyMTYyMjQ3NWZhMjlmZDQ3MTE0OWNmMjM4MGM1M2ZkYmZjYmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogVHVlLCA2IE1hciAyMDE4IDIyOjI2OjQ4ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBjb25maWd1cmUgb3B0aW9uIHRvIGZpbmQgcXQ1IG5hdGl2ZSB0b29scworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitQa2ctY29uZmlnIGNoZWNrcyBmb3IgdGFyZ2V0IGxvY2F0aW9ucy4gV2l0aCB0aGVzZSBxdDUgdG9vbHMgYXMgdWljL21vYy4uCitjYW5ub3QgYmUgdXNlZC4KKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KKworU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KKy0tLQorIGNvbmZpZ3VyZS5hYyB8IDYgKysrKystCisgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCBjZGQ4MzFhLi5mZGQxOTJiIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0xMTMzLDExICsxMTMzLDE1IEBAIGlmIHRlc3QgIiR7ZW5hYmxlX3F0fSIgPSB5ZXMgOyB0aGVuCisgICBlbHNlCisgICAgIHRyeV9xdDQ9eWVzCisgICBmaQorKyAgQUNfQVJHX1dJVEgocXQ1bmF0aXZlc3lzcm9vdCwKKysgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1xdDVuYXRpdmVzeXNyb290PVBBVEhdLCBbcHJlcGVuZCBwYXRoIC0gZm9yIG5hdGl2ZSBxdDUgdG9vbHNdKSwKKysgICAgW1FUNU5BVElWRVNZU1JPT1Q9IiR3aXRodmFsIl0sIFtRVDVOQVRJVkVTWVNST09UPSIiXSkKKysKKyAgIGlmIHRlc3QgIngke3dpdGhfcXR9IiAhPSAieHF0NCI7IHRoZW4KKyAgICAgUEtHX0NIRUNLX01PRFVMRVNfTk9GQUlMKFFULCBbUXQ1Q29yZSBRdDVHdWkgUXQ1TmV0d29yayBRdDVTdmcgUXQ1UHJpbnRTdXBwb3J0XSkKKyAgICAgaWYgdGVzdCAkcGtnX2ZhaWxlZCA9IG5vOyB0aGVuCisgICAgICAgdHJ5X3F0ND1ubworLSAgICAgIFFUNUxPQz1gJFBLR19DT05GSUcgLS12YXJpYWJsZT1ob3N0X2JpbnMgUXQ1Q29yZWAKKysgICAgICBRVDVMT0M9JHtRVDVOQVRJVkVTWVNST09UfWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPWhvc3RfYmlucyBRdDVDb3JlYAorICAgICAgIGlmIHRlc3QgIngke1FUNUxPQ30iICE9ICJ4IjsgdGhlbgorICAgICAgICAgVUlDPSR7UVQ1TE9DfS91aWMKKyAgICAgICAgIE1PQz0ke1FUNUxPQ30vbW9jCistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvZ251cGxvdC5kZXNrdG9wIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90L2dudXBsb3QuZGVza3RvcAppbmRleCBmNjdkZjllLi4xMDEyZTQ3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvZ251cGxvdC5kZXNrdG9wCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC9nbnVwbG90LmRlc2t0b3AKQEAgLTEsOCArMSw4IEBACiBbRGVza3RvcCBFbnRyeV0KIE5hbWU9R251cGxvdAogQ29tbWVudD1QbG90IGRhdGEgYW5kIGZ1bmN0aW9uIGdyYXBocwotRXhlYz14LXRlcm1pbmFsLWVtdWxhdG9yIC1lIGdudXBsb3QKLVRlcm1pbmFsPWZhbHNlCitFeGVjPWdudXBsb3QKK1Rlcm1pbmFsPXRydWUKIFR5cGU9QXBwbGljYXRpb24KIEljb249Z251cGxvdAogQ2F0ZWdvcmllcz1TY2llbmNlOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90L2x1YS1sb2FkbGlicy1jb25maWd1cmUtaW4tZml4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90L2x1YS1sb2FkbGlicy1jb25maWd1cmUtaW4tZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyM2YyY2QyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC9sdWEtbG9hZGxpYnMtY29uZmlndXJlLWluLWZpeC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLUluZGV4OiBnbnVwbG90LTQuNi41L2NvbmZpZ3VyZS5pbgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdudXBsb3QtNC42LjUub3JpZy9jb25maWd1cmUuaW4KLSsrKyBnbnVwbG90LTQuNi41L2NvbmZpZ3VyZS5pbgotQEAgLTY5MCw2ICs2OTAsMTEgQEAgaWYgdGVzdCAiJHt3aXRoX2x1YX0iID0geWVzIDsgdGhlbgotICAgZmkKLSAKLSAgIGlmIHRlc3QgIiR3aXRoX2x1YSIgIT0gbm87IHRoZW4KLSsgICAgZG5sIGNoZWNrIGZvciBkbG9wZW4vZGwgdG8gZml4IGxvYWRsaWJzIGxpbmsgZmFpbHVyZQotKyAgICBBQ19DSEVDS19GVU5DKFtkbG9wZW5dLCBbXSwKLSsgICAgICBBQ19DSEVDS19MSUIoW2RsXSwgW2Rsb3Blbl0sIERMT1BFTl9MSUJTPSItbGRsIikpCi0rICAgIEFDX1NVQlNUKERMT1BFTl9MSUJTKQotKyAgICBMVUFfTElCUz0iJExVQV9MSUJTICRETE9QRU5fTElCUyIKLSAgICAgVEVSTUxJQlM9IiRURVJNTElCUyAkTFVBX0xJQlMiCi0gICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgJExVQV9DRkxBR1MiCi0gICBlbHNlCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3QvcXRvcGlhLnRybSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC9xdG9waWEudHJtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNTJmOWJiLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC9xdG9waWEudHJtCisrKyAvZGV2L251bGwKQEAgLTEsNDgzICswLDAgQEAKLS8qCi0gKiAkSWQ6IGR1bWIudHJtLHYgMS4xNiAyMDA0LzA0LzEzIDE3OjI0OjE2IGJyb2VrZXIgRXhwICQKLSAqCi0gKi8KLQotLyogR05VUExPVCAtIHF0b3BpYS50cm0gKi8KLQotLypbCi0gKiBDb3B5cmlnaHQgMTk5MSAtIDE5OTMsIDE5OTgsIDIwMDQgICBUaG9tYXMgV2lsbGlhbXMsIENvbGluIEtlbGxleQotICoKLSAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKLSAqIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsCi0gKiBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzIGFuZAotICogdGhhdCBib3RoIHRoYXQgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIKLSAqIGluIHN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbi4KLSAqCi0gKiBQZXJtaXNzaW9uIHRvIG1vZGlmeSB0aGUgc29mdHdhcmUgaXMgZ3JhbnRlZCwgYnV0IG5vdCB0aGUgcmlnaHQgdG8KLSAqIGRpc3RyaWJ1dGUgdGhlIGNvbXBsZXRlIG1vZGlmaWVkIHNvdXJjZSBjb2RlLiAgTW9kaWZpY2F0aW9ucyBhcmUgdG8KLSAqIGJlIGRpc3RyaWJ1dGVkIGFzIHBhdGNoZXMgdG8gdGhlIHJlbGVhc2VkIHZlcnNpb24uICBQZXJtaXNzaW9uIHRvCi0gKiBkaXN0cmlidXRlIGJpbmFyaWVzIHByb2R1Y2VkIGJ5IGNvbXBpbGluZyBtb2RpZmllZCBzb3VyY2VzIGlzIGdyYW50ZWQsCi0gKiBwcm92aWRlZCB5b3UKLSAqICAgMS4gZGlzdHJpYnV0ZSB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgbW9kaWZpY2F0aW9ucyBmcm9tIHRoZQotICogICAgcmVsZWFzZWQgdmVyc2lvbiBpbiB0aGUgZm9ybSBvZiBhIHBhdGNoIGZpbGUgYWxvbmcgd2l0aCB0aGUgYmluYXJpZXMsCi0gKiAgIDIuIGFkZCBzcGVjaWFsIHZlcnNpb24gaWRlbnRpZmljYXRpb24gdG8gZGlzdGluZ3Vpc2ggeW91ciB2ZXJzaW9uCi0gKiAgICBpbiBhZGRpdGlvbiB0byB0aGUgYmFzZSByZWxlYXNlIHZlcnNpb24gbnVtYmVyLAotICogICAzLiBwcm92aWRlIHlvdXIgbmFtZSBhbmQgYWRkcmVzcyBhcyB0aGUgcHJpbWFyeSBjb250YWN0IGZvciB0aGUKLSAqICAgIHN1cHBvcnQgb2YgeW91ciBtb2RpZmllZCB2ZXJzaW9uLCBhbmQKLSAqICAgNC4gcmV0YWluIG91ciBjb250YWN0IGluZm9ybWF0aW9uIGluIHJlZ2FyZCB0byB1c2Ugb2YgdGhlIGJhc2UKLSAqICAgIHNvZnR3YXJlLgotICogUGVybWlzc2lvbiB0byBkaXN0cmlidXRlIHRoZSByZWxlYXNlZCB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UgY29kZSBhbG9uZwotICogd2l0aCBjb3JyZXNwb25kaW5nIHNvdXJjZSBtb2RpZmljYXRpb25zIGluIHRoZSBmb3JtIG9mIGEgcGF0Y2ggZmlsZSBpcwotICogZ3JhbnRlZCB3aXRoIHNhbWUgcHJvdmlzaW9ucyAyIHRocm91Z2ggNCBmb3IgYmluYXJ5IGRpc3RyaWJ1dGlvbnMuCi0gKgotICogVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgZXhwcmVzcyBvciBpbXBsaWVkIHdhcnJhbnR5Ci0gKiB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBhcHBsaWNhYmxlIGxhdy4KLV0qLwotCi0vKgotICogVGhpcyBmaWxlIGlzIGluY2x1ZGVkIGJ5IC4uL3Rlcm0uYy4KLSAqCi0gKiBUaGlzIHRlcm1pbmFsIGRyaXZlciBzdXBwb3J0czoKLSAqICAgcXRvcGlhIHRlcm1pbmFscwotICoKLSAqIEFVVEhPUlMKLSAqICAgTWljaGFlbCBOZXVyb3RoLCAyMDA0LTA1LTE2Ci0gKiAgICAgICAgICAgSU5URVJORVQ6IG1pY2hhZWwubmV1cm90aEBmcmVlbmV0LmRlCi0gKgotICogc2VuZCB5b3VyIGNvbW1lbnRzIG9yIHN1Z2dlc3Rpb25zIHRvIChnbnVwbG90LWluZm9AbGlzdHMuc291cmNlZm9yZ2UubmV0KS4KLSAqCi0gKi8KLSNpbmNsdWRlICJkcml2ZXIuaCIKLQotI2RlZmluZSBOT19RVE9QSUFfRU5IQU5DRURfU1VQUE9SVAotCi0jaWZkZWYgVEVSTV9SRUdJU1RFUgotcmVnaXN0ZXJfdGVybShxdG9waWFfZHJpdmVyKQotI2VuZGlmCi0KLSNpZmRlZiBURVJNX1BST1RPCi1URVJNX1BVQkxJQyB2b2lkIFFUT1BJQV9vcHRpb25zIF9fUFJPVE8oKHZvaWQpKTsKLVRFUk1fUFVCTElDIHZvaWQgUVRPUElBX2luaXQgX19QUk9UTygodm9pZCkpOwotVEVSTV9QVUJMSUMgdm9pZCBRVE9QSUFfZ3JhcGhpY3MgX19QUk9UTygodm9pZCkpOwotVEVSTV9QVUJMSUMgdm9pZCBRVE9QSUFfdGV4dCBfX1BST1RPKCh2b2lkKSk7Ci1URVJNX1BVQkxJQyB2b2lkIFFUT1BJQV9yZXNldCBfX1BST1RPKCh2b2lkKSk7Ci1URVJNX1BVQkxJQyB2b2lkIFFUT1BJQV9saW5ldHlwZSBfX1BST1RPKChpbnQgbGluZXR5cGUpKTsKLVRFUk1fUFVCTElDIHZvaWQgUVRPUElBX21vdmUgX19QUk9UTygodW5zaWduZWQgaW50IHgsIHVuc2lnbmVkIGludCB5KSk7Ci1URVJNX1BVQkxJQyB2b2lkIFFUT1BJQV9wb2ludCBfX1BST1RPKCh1bnNpZ25lZCBpbnQgeCwgdW5zaWduZWQgaW50IHksCi0JCQkJICAgICBpbnQgcG9pbnQpKTsKLVRFUk1fUFVCTElDIHZvaWQgUVRPUElBX3ZlY3RvciBfX1BST1RPKCh1bnNpZ25lZCBpbnQgeCwgdW5zaWduZWQgaW50IHkpKTsKLVRFUk1fUFVCTElDIHZvaWQgUVRPUElBX3B1dF90ZXh0IF9fUFJPVE8oKHVuc2lnbmVkIGludCB4LCB1bnNpZ25lZCBpbnQgeSwKLQkJCQkJY29uc3QgY2hhciAqc3RyKSk7Ci1URVJNX1BVQkxJQyB2b2lkIFFUT1BJQV9hcnJvdyBfX1BST1RPKCh1bnNpZ25lZCBpbnQgc3gsIHVuc2lnbmVkIGludCBzeSwKLQkJCQkgICAgIHVuc2lnbmVkIGludCBleCwgdW5zaWduZWQgaW50IGV5LAotCQkJCSAgICAgaW50IGhlYWQpKTsKLQotI2RlZmluZSBFTkhxdG9waWFfcHV0X3RleHQgTlVMTAotCi0KLSNkZWZpbmUgUVRPUElBX1hNQVggNDA5NgotI2RlZmluZSBRVE9QSUFfWU1BWCA0MDk2Ci0KLSNpZmRlZiBaQVVSVVMKLSNkZWZpbmUgUVRPUElBX1ZDSEFSIChRVE9QSUFfWU1BWC8yNSkKLSNkZWZpbmUgUVRPUElBX0hDSEFSIChRVE9QSUFfWE1BWC80MCkKLSNkZWZpbmUgUVRPUElBX1ZUSUMgKFFUT1BJQV9ZTUFYLzUwKQotI2RlZmluZSBRVE9QSUFfSFRJQyAoUVRPUElBX1hNQVgvNDApCi0jZWxzZQotI2RlZmluZSBRVE9QSUFfVkNIQVIgKFFUT1BJQV9ZTUFYLzI1KQotI2RlZmluZSBRVE9QSUFfSENIQVIgKFFUT1BJQV9YTUFYLzUwKQotI2RlZmluZSBRVE9QSUFfVlRJQyAoUVRPUElBX1lNQVgvMTAwKQotI2RlZmluZSBRVE9QSUFfSFRJQyAoUVRPUElBX1hNQVgvMTUwKQotI2VuZGlmCi0KLSNlbmRpZiAvKiBURVJNX1BST1RPICovCi0KLSNpZmRlZiBURVJNX0JPRFkKLQotLyojaW5jbHVkZSA8d2luc29jazIuaD4qLwotLyogbmVlZHM6IHdzMl8zMi5saWIgKi8KLSNpZm5kZWYgX01TQ19WRVIKLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotI2luY2x1ZGUgPGFycGEvaW5ldC5oPgotI2VuZGlmCi0KLSNkZWZpbmUgUVRPUElBX01BWF9CVUZGRVIJCTUxMgotI2RlZmluZSBRVE9QSUFfTUFYX0RFTEFZX0NPVU5UCTIwCS8qICogMTAwIG1zID0gMiBzICovCi0KLSNpZmRlZiBfTVNDX1ZFUgotI2RlZmluZSBRVE9QSUFfQkFEX1NPQ0tFVAkJSU5WQUxJRF9TT0NLRVQJCS8qIC0xICovCi0jZGVmaW5lIFFUT1BJQV9CQURfQ09OTkVDVAkJU09DS0VUX0VSUk9SCi0jZWxzZQotI2RlZmluZSBRVE9QSUFfQkFEX1NPQ0tFVAkJLTEKLSNkZWZpbmUgUVRPUElBX0JBRF9DT05ORUNUCQktMQotI2VuZGlmCi0jZGVmaW5lIFFUT1BJQV9QT1JUX05PCQkJNTA1MAotCi1zdGF0aWMgaW50IHF0b3BpYV9jbGllbnRfc29ja2V0ID0gUVRPUElBX0JBRF9TT0NLRVQ7Ci1zdGF0aWMgdW5zaWduZWQgc2hvcnQgcXRvcGlhX3BvcnRfbm8gPSBRVE9QSUFfUE9SVF9OTzsKLXN0YXRpYyBjaGFyIHF0b3BpYV9ob3N0X25hbWVbUVRPUElBX01BWF9CVUZGRVIrMV0gPSB7ICJsb2NhbGhvc3QiIH07Ci0KLXN0YXRpYyBpbnQgT3BlbkNsaWVudCBfX1BST1RPKCggaW50IHRlc3QpKTsKLXN0YXRpYyB2b2lkIENsb3NlQ2xpZW50KCk7Ci0KLXN0YXRpYyB2b2lkIE15U2xlZXAoIGRlbGF5ICkKLWludCBkZWxheTsKLXsKLSNpZmRlZiBfTVNDX1ZFUgotCVNsZWVwKCBkZWxheSApOwotI2Vsc2UKLQl1c2xlZXAoIGRlbGF5ICk7Ci0jZW5kaWYKLX0KLQotc3RhdGljIHZvaWQgSW5pdFNvY2tldHMoKQotewotI2lmZGVmIF9NU0NfVkVSCi0JV09SRCB3VmVyc2lvblJlcXVlc3RlZDsKLQlXU0FEQVRBIHdzYURhdGE7Ci0JaW50IGVycjsKLQotCXdWZXJzaW9uUmVxdWVzdGVkID0gTUFLRVdPUkQoIDIsIDIgKTsKLQotCWVyciA9IFdTQVN0YXJ0dXAoIHdWZXJzaW9uUmVxdWVzdGVkLCAmd3NhRGF0YSApOwotI2VuZGlmCi19Ci0KLXN0YXRpYyB2b2lkIEV4aXRTb2NrZXRzKCkKLXsKLSNpZmRlZiBfTVNDX1ZFUgotCVdTQUNsZWFudXAoKTsKLSNlbmRpZgotfQotCi1zdGF0aWMgaW50IENoZWNrRm9yUXRwbG90KCBjb3VudCApCi1pbnQgY291bnQ7Ci17Ci0JLyogdGVzdCAodmlhIHNvY2tldHMpIGlmIHF0cGxvdCBpcyBhbGxyZWFkeSBydW5uaW5nICovCi0JaWYoICFPcGVuQ2xpZW50KCAxICkgKQotCXsKLQkJLyogZ2l2ZSBxdHBsb3QgYSBsaXRsZSBiaXQgdGltZSB0byBzdGFydC4uLiAqLwotCQlpZiggY291bnQgPCBRVE9QSUFfTUFYX0RFTEFZX0NPVU5UICkKLQkJewotCQkJaWYoIGNvdW50ID09IDAgKQotCQkJewotI2lmZGVmIF9NU0NfVkVSCi0JCQkJc3lzdGVtKCAic3RhcnQgcXRwbG90IiApOwotI2Vsc2UKLQkJCQlzeXN0ZW0oICJxdHBsb3QmIiApOwotI2VuZGlmCi0JCQl9Ci0JCQotCQkJTXlTbGVlcCgxMDApOwotCi0JCQlyZXR1cm4gQ2hlY2tGb3JRdHBsb3QoIGNvdW50KzEgKTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCXJldHVybiAwOwotCQl9Ci0JfQotCWVsc2UKLQl7Ci0JCUNsb3NlQ2xpZW50KCk7Ci0KLQkJcmV0dXJuIDE7Ci0JfQotfQotCi1zdGF0aWMgaW50IE9wZW5DbGllbnQoIHRlc3QgKQotaW50IHRlc3Q7Ci17Ci0gICAgaW50IGxlbjsKLSAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcmVzczsKLSAgICBpbnQgcmVzdWx0OwotCi0JLyogIENyZWF0ZSBhIHNvY2tldCBmb3IgdGhlIGNsaWVudC4gICovCi0KLSAgICBxdG9waWFfY2xpZW50X3NvY2tldCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgMCk7Ci0KLQlpZiggcXRvcGlhX2NsaWVudF9zb2NrZXQgIT0gUVRPUElBX0JBRF9TT0NLRVQgKQotCXsKLQkJLyogIE5hbWUgdGhlIHNvY2tldCwgYXMgYWdyZWVkIHdpdGggdGhlIHNlcnZlci4gICovCi0KLQkJYWRkcmVzcy5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKLQkJYWRkcmVzcy5zaW5fYWRkci5zX2FkZHIgPSBpbmV0X2FkZHIoLypxdG9waWFfaG9zdF9uYW1lKi8iMTI3LjAuMC4xIik7CS8qIGxvY2FsaG9zdCAqLwotCQlhZGRyZXNzLnNpbl9wb3J0ID0gaHRvbnMocXRvcGlhX3BvcnRfbm8pOwotCQlsZW4gPSBzaXplb2YoYWRkcmVzcyk7Ci0KLQkJLyogIE5vdyBjb25uZWN0IG91ciBzb2NrZXQgdG8gdGhlIHNlcnZlcidzIHNvY2tldC4gICovCi0KLQkJcmVzdWx0ID0gY29ubmVjdChxdG9waWFfY2xpZW50X3NvY2tldCwgKHN0cnVjdCBzb2NrYWRkciAqKSZhZGRyZXNzLCBsZW4pOwotCQkKLQkJaWYoIHJlc3VsdCA9PSBRVE9QSUFfQkFEX1NPQ0tFVCApCi0JCXsKLQkJCS8qIG1hcmsgdGhpcyBzb2NrZXQgYXMgYmFkICovCi0KLQkJCWNsb3NlKCBxdG9waWFfY2xpZW50X3NvY2tldCApOwotCi0JCQlxdG9waWFfY2xpZW50X3NvY2tldCA9IFFUT1BJQV9CQURfU09DS0VUOwotCi0JCQlpZiggIXRlc3QgKQotCQkJewotCQkJCWZwcmludGYoIGdwb3V0ZmlsZSwgImVycm9yIGNvbm5lY3RpbmcgdG8gc2VydmVyICFcbiIgKTsKLQkJCX0KLQkJCXJldHVybiAwOwkvKiBzb21ldGhpbmcgd2VudCB3cm9uZyAqLwotCQl9Ci0JfQotCWVsc2UKLQl7Ci0JCWlmKCAhdGVzdCApCi0JCXsKLQkJCWZwcmludGYoIGdwb3V0ZmlsZSwgImVycm9yIGNyZWF0aW5nIHNvY2tldCAhXG4iICk7Ci0JCX0KLQkJcmV0dXJuIDA7CS8qIHNvbWV0aGluZyB3ZW50IHdyb25nICovCi0JfQotCi0JcmV0dXJuIDE7CS8qIGV2ZXJ5dGhpbmcgaXN0IG9rICEgKi8KLX0KLQotc3RhdGljIHZvaWQgQ2xvc2VDbGllbnQoKQotewotICAgIGNsb3NlKCBxdG9waWFfY2xpZW50X3NvY2tldCApOwotfQotCi1zdGF0aWMgaW50IElzQ2xpZW50T2soKQotewotCXJldHVybiBxdG9waWFfY2xpZW50X3NvY2tldCAhPSBRVE9QSUFfQkFEX1NPQ0tFVDsKLX0KLQotc3RhdGljIHZvaWQgU2VuZERhdGFUb1NvY2tldCggc0xpbmUgKQotY29uc3QgY2hhciAqIHNMaW5lOwotewotCWlmKCBJc0NsaWVudE9rKCkgKQotCXsKLQkJaW50IHNlbmRfY291bnQ7Ci0KLQkJc2VuZF9jb3VudCA9IHNlbmQoIHF0b3BpYV9jbGllbnRfc29ja2V0LCBzTGluZSwgc3RybGVuKCBzTGluZSApLCAwICk7Ci0KLQkJaWYoIHNlbmRfY291bnQgPD0gMCApCi0JCXsKLQkJCWZwcmludGYoIGdwb3V0ZmlsZSwgImVycm9yIHdyaXRpbmcgdG8gc29ja2V0IHN0cj0lcyFcbiIsIHNMaW5lICk7Ci0JCX0KLQkJLyoKLQkJZWxzZQotCQl7Ci0JCQlmcHJpbnRmKCBncG91dGZpbGUsICJ3cm90ZSAlZCBieXRlc1xuIiwgc2VuZF9jb3VudCApOwotCQl9Ci0JCSovCi0JfQotCWVsc2UKLQl7Ci0JCS8qIGZvciB0ZXN0aW5nLi4uICovCi0JCS8qZnByaW50ZiggZ3BvdXRmaWxlLCBzTGluZSApOyovCi0JfQotfQotCi0vKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwotCi1lbnVtIFFUT1BJQV9pZCB7IFFUT1BJQV9QT1JULCBRVE9QSUFfSE9TVCwgUVRPUElBX09USEVSIH07Ci0KLXN0YXRpYyBzdHJ1Y3QgZ2VuX3RhYmxlIFFUT1BJQV9vcHRzW10gPQotewotICAgIHsgInBvJHJ0IiwgUVRPUElBX1BPUlQgfSwKLSAgICB7ICJobyRzdCIsIFFUT1BJQV9IT1NUIH0sCi0gICAgeyBOVUxMLCBRVE9QSUFfT1RIRVIgfQotfTsKLQotVEVSTV9QVUJMSUMgdm9pZAotUVRPUElBX29wdGlvbnMoKQotewotICAgIC8qIHRoaXMgaXMgbm90IGZvciB0aGUgcXRvcGlhIHRlcm1pbmFsICEgKi8KLQkvKlNlbmREYXRhVG9Tb2NrZXQoICJxdGQgb3B0aW9uc1xuIiApOyovCi0KLSAgICBpbnQgeCwgeTsKLSAgICBzdHJ1Y3QgdmFsdWUgYTsKLQotICAgIHdoaWxlICghRU5EX09GX0NPTU1BTkQpIAotCXsKLQkJc3dpdGNoKGxvb2t1cF90YWJsZSgmUVRPUElBX29wdHNbMF0sY190b2tlbikpIAotCQl7Ci0JCQljYXNlIFFUT1BJQV9QT1JUOgotCQkJCWNfdG9rZW4rKzsKLQkJCQlpZiAoRU5EX09GX0NPTU1BTkQpCi0JCQkJCWludF9lcnJvcihjX3Rva2VuLCAiZXhwZWN0aW5nIHBvcnQgbnVtYmVyIik7Ci0JCQkJcXRvcGlhX3BvcnRfbm8gPSAoaW50KSByZWFsKGNvbnN0X2V4cHJlc3MoJmEpKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgUVRPUElBX0hPU1Q6Ci0JCQkJY190b2tlbisrOwotCQkJCWlmIChFTkRfT0ZfQ09NTUFORCkKLQkJCQkJaW50X2Vycm9yKGNfdG9rZW4sICJleHBlY3RpbmcgaG9zdCBuYW1lIik7Ci0JCQkJaWYgKGlzc3RyaW5nKGNfdG9rZW4pKQotCQkJCQlxdW90ZV9zdHIoIHF0b3BpYV9ob3N0X25hbWUsIGNfdG9rZW4sIHNpemVvZihxdG9waWFfaG9zdF9uYW1lKSApOwotCQkJCWVsc2UKLSAJCQkJCWNvcHlfc3RyKCBxdG9waWFfaG9zdF9uYW1lLCBjX3Rva2VuLCBzaXplb2YocXRvcGlhX2hvc3RfbmFtZSkgKTsKLQkJCQljX3Rva2VuKys7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFFUT1BJQV9PVEhFUjoKLQkJCWRlZmF1bHQ6Ci0JCQkJYnJlYWs7Ci0JCX0KLSAgICB9Ci0KLSAgICBzcHJpbnRmKHRlcm1fb3B0aW9ucywgImhvc3Q9JXMgcG9ydD0lZCIscXRvcGlhX2hvc3RfbmFtZSxxdG9waWFfcG9ydF9ubyk7Ci19Ci0KLQotVEVSTV9QVUJMSUMgdm9pZAotUVRPUElBX2luaXQoKQotewotCS8qIGluaXRpYWxpemUgbGliIChpZiBuZWNhc3NhcnkpICovCi0JSW5pdFNvY2tldHMoKTsKLQlDaGVja0ZvclF0cGxvdCggMCApOwotCU9wZW5DbGllbnQoIDAgKTsgCi0KLQlTZW5kRGF0YVRvU29ja2V0KCAicXRkIGluaXRcbiIgKTsKLX0KLQotCi1URVJNX1BVQkxJQyB2b2lkCi1RVE9QSUFfZ3JhcGhpY3MoKQotewotCVNlbmREYXRhVG9Tb2NrZXQoICJxdGQgZ3JhcGhpY3NcbiIgKTsKLX0KLQotVEVSTV9QVUJMSUMgdm9pZAotUVRPUElBX3RleHQoKQotewotCVNlbmREYXRhVG9Tb2NrZXQoICJxdGQgdGV4dFxuIiApOwotfQotCi0KLVRFUk1fUFVCTElDIHZvaWQKLVFUT1BJQV9yZXNldCgpCi17Ci0JU2VuZERhdGFUb1NvY2tldCggInF0ZCByZXNldFxuIiApOwotCi0JLyogZ2l2ZSB0aGUgcXRwbG90IGEgbGl0bGUgYml0IHRpbWUgdG8gc2h1dGRvd24gKi8KLQlNeVNsZWVwKDEwMCk7Ci0KLQlDbG9zZUNsaWVudCgpOwotCUV4aXRTb2NrZXRzKCk7Ci19Ci0KLQotVEVSTV9QVUJMSUMgdm9pZAotUVRPUElBX2xpbmV0eXBlKGxpbmV0eXBlKQotaW50IGxpbmV0eXBlOwotewotCWNoYXIgc0J1ZmZlcltRVE9QSUFfTUFYX0JVRkZFUl07Ci0KLQlzcHJpbnRmKCBzQnVmZmVyLCAicXRkIGxpbmV0eXBlIHR5cGU9JWRcbiIsbGluZXR5cGUgKTsKLQotCVNlbmREYXRhVG9Tb2NrZXQoIHNCdWZmZXIgKTsKLX0KLQotCi1URVJNX1BVQkxJQyB2b2lkCi1RVE9QSUFfbW92ZSh4LCB5KQotdW5zaWduZWQgaW50IHgsIHk7Ci17Ci0JY2hhciBzQnVmZmVyW1FUT1BJQV9NQVhfQlVGRkVSXTsKLQotCXNwcmludGYoIHNCdWZmZXIsICJxdGQgbW92ZSB4PSVkIHk9JWRcbiIseCx5ICk7Ci0KLQlTZW5kRGF0YVRvU29ja2V0KCBzQnVmZmVyICk7Ci19Ci0KLQotVEVSTV9QVUJMSUMgdm9pZAotUVRPUElBX3BvaW50KHgsIHksIHBvaW50KQotdW5zaWduZWQgaW50IHgsIHk7Ci1pbnQgcG9pbnQ7Ci17Ci0JY2hhciBzQnVmZmVyW1FUT1BJQV9NQVhfQlVGRkVSXTsKLQotCXNwcmludGYoIHNCdWZmZXIsICJxdGQgcG9pbnQgeD0lZCB5PSVkIHBvaW50PSVkXG4iLHgseSxwb2ludCApOwotCi0JU2VuZERhdGFUb1NvY2tldCggc0J1ZmZlciApOwotfQotCi0KLVRFUk1fUFVCTElDIHZvaWQKLVFUT1BJQV92ZWN0b3IoX3gsIF95KQotdW5zaWduZWQgaW50IF94LCBfeTsKLXsKLQljaGFyIHNCdWZmZXJbUVRPUElBX01BWF9CVUZGRVJdOwotCi0Jc3ByaW50Ziggc0J1ZmZlciwgInF0ZCB2ZWN0b3IgeD0lZCB5PSVkXG4iLF94LF95ICk7Ci0KLQlTZW5kRGF0YVRvU29ja2V0KCBzQnVmZmVyICk7Ci19Ci0KLQotVEVSTV9QVUJMSUMgdm9pZAotUVRPUElBX3B1dF90ZXh0KHgsIHksIHN0cikKLXVuc2lnbmVkIGludCB4LCB5OwotY29uc3QgY2hhciAqc3RyOwotewotCWNoYXIgc0J1ZmZlcltRVE9QSUFfTUFYX0JVRkZFUl07Ci0KLQlzcHJpbnRmKCBzQnVmZmVyLCAicXRkIHB1dF90ZXh0IHg9JWQgeT0lZCBzdHI9JXNcbiIseCx5LHN0ciApOwotCi0JU2VuZERhdGFUb1NvY2tldCggc0J1ZmZlciApOwotfQotCi0vKiBub3Qgc3Vwb3J0ZWQgeWV0ICEgKi8KLVRFUk1fUFVCTElDIHZvaWQKLVFUT1BJQV9hcnJvdyhzeCwgc3ksIGV4LCBleSwgaGVhZCkKLSAgICB1bnNpZ25lZCBpbnQgc3gsIHN5LCBleCwgZXk7Ci0gICAgaW50IGhlYWQ7CQkvKiBpZ25vcmVkICovCi17Ci0JY2hhciBzQnVmZmVyW1FUT1BJQV9NQVhfQlVGRkVSXTsKLQotCXNwcmludGYoIHNCdWZmZXIsICJxdGQgYXJyb3cgc3g9JWQgc3k9JWQgZXg9JWQgZXk9JWQgaGVhZD0lZFxuIixzeCxzeSxleCxleSxoZWFkICk7Ci0KLQlTZW5kRGF0YVRvU29ja2V0KCBzQnVmZmVyICk7Ci19Ci0KLQotI2VuZGlmIC8qIFRFUk1fQk9EWSAqLwotCi0jaWZkZWYgVEVSTV9UQUJMRQotVEVSTV9UQUJMRV9TVEFSVChxdG9waWFfZHJpdmVyKQotICAgICJxdG9waWEiLCAicXRvcGlhIG9yIFF0IiwKLSAgICBRVE9QSUFfWE1BWCwgUVRPUElBX1lNQVgsIFFUT1BJQV9WQ0hBUiwgUVRPUElBX0hDSEFSLAotICAgIFFUT1BJQV9WVElDLCBRVE9QSUFfSFRJQywgUVRPUElBX29wdGlvbnMsIFFUT1BJQV9pbml0LCBRVE9QSUFfcmVzZXQsCi0gICAgUVRPUElBX3RleHQsIG51bGxfc2NhbGUsIFFUT1BJQV9ncmFwaGljcywgUVRPUElBX21vdmUsIFFUT1BJQV92ZWN0b3IsCi0gICAgUVRPUElBX2xpbmV0eXBlLCBRVE9QSUFfcHV0X3RleHQsIG51bGxfdGV4dF9hbmdsZSwKLSAgICBudWxsX2p1c3RpZnlfdGV4dCwgUVRPUElBX3BvaW50LCAvKlFUT1BJQV9hcnJvdyovMCwgc2V0X2ZvbnRfbnVsbCwKLSAgICAwLAkJCQkvKiBwb2ludHNpemUgKi8KLSAgICBURVJNX0NBTl9NVUxUSVBMT1QsCi0gICAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTAotI2lmZGVmIFVTRV9NT1VTRQotICAgICwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTAotI2VuZGlmCi0jaWZkZWYgUE0zRAotICAgICwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTAotI2VuZGlmCi1URVJNX1RBQkxFX0VORChxdG9waWFfZHJpdmVyKQotCi0jdW5kZWYgTEFTVF9URVJNCi0jZGVmaW5lIExBU1RfVEVSTSBxdG9waWFfZHJpdmVyCi0KLSNlbmRpZiAvKiBURVJNX1RBQkxFICovCi0KLSNpZmRlZiBURVJNX0hFTFAKLVNUQVJUX0hFTFAocXRvcGlhKQotIjEgcXRvcGlhIiwKLSI/Y29tbWFuZHMgc2V0IHRlcm1pbmFsIHF0b3BpYSIsCi0iP3NldCB0ZXJtaW5hbCBxdG9waWEiLAotIj9zZXQgdGVybSBxdG9waWEiLAotIj90ZXJtaW5hbCBxdG9waWEiLAotIj90ZXJtIHF0b3BpYSIsCi0iP3F0b3BpYSIsCi0iIFRoZSBgcXRvcGlhYCB0ZXJtaW5hbCBkcml2ZXIgaGFzIG5vIGFkZGl0aW9uYWwgb3B0aW9ucy4iLAotIiIsCi0iIFN5bnRheDoiLAotIiAgICAgICBzZXQgdGVybWluYWwgcXRvcGlhIiwKLSIiCi1FTkRfSEVMUChxdG9waWEpCi0jZW5kaWYgLyogVEVSTV9IRUxQICovCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3Qvc3ViZGlycy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC9zdWJkaXJzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YzdkMWYwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdC9zdWJkaXJzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIC90bXAvTWFrZWZpbGUuYW0JMjAwNy0wOC0yMyAxMzoxMDoxNS41NjA2NTkwMjMgKzAyMDAKLSsrKyBnbnVwbG90LTQuMi4wL01ha2VmaWxlLmFtCTIwMDctMDgtMjMgMTM6MTA6MzQuOTYxNzY0NjI5ICswMjAwCi1AQCAtMSw3ICsxLDcgQEAKLSAjIyBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9tYWtlIHRvIHByb2R1Y2UgTWFrZWZpbGUuaW4gLSotTWFrZWZpbGUtKi0KLSBBVVRPTUFLRV9PUFRJT05TID0gZm9yZWlnbiAxLjJoCi0gCi0tU1VCRElSUyA9IGNvbmZpZyBtNCB0ZXJtIHNyYyBkb2NzICQoTElTUERJUikgbWFuIGRlbW8gdHV0b3JpYWwgc2hhcmUKLStTVUJESVJTID0gY29uZmlnIG00IHRlcm0gc3JjICAkKExJU1BESVIpIG1hbiBzaGFyZQotIAotIEVYVFJBX0RJU1QgPSBCVUdTIENvZGVTdHlsZSBDb3B5cmlnaHQgRkFRIEdOVW1ha2VmaWxlIElOU1RBTEwgSU5TVEFMTC5nbnUgXAotIE1ha2VmaWxlLm1haW50IFBBVENITEVWRUwgUEdQS0VZUyBQT1JUSU5HIFJFQURNRSBSRUFETUUuMVNUIFJFQURNRS5leHAgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90XzUuMC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvZ251cGxvdC9nbnVwbG90XzUuMC41LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjMwOGJhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdF81LjAuNS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLXJlcXVpcmUgZ251cGxvdC5pbmMKLQotU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vZ251cGxvdC8ke0JQfS50YXIuZ3o7bmFtZT1hcmNoaXZlIFwKLSAgICBodHRwOi8vd3d3Lm1uZXVyb3RoLmRlL3ByaXZhdC96YXVydXMvcXRwbG90LTAuMi50YXIuZ3o7bmFtZT1xdHBsb3QgXAotICAgIGZpbGU6Ly9zdWJkaXJzLnBhdGNoIFwKLSAgICBmaWxlOi8vbHVhLWxvYWRsaWJzLWNvbmZpZ3VyZS1pbi1maXgucGF0Y2ggXAotICAgIGZpbGU6Ly9nbnVwbG90LmRlc2t0b3AgXAotICAgIGZpbGU6Ly9nbnVwbG90LnBuZyBcCi0iCi0KLVNSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gImM1ZTk2ZmNhNzNhZmJlZTRmNTdjYmMxYmZjZTZiM2I4IgotU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiMjVmM2UwYmYxOTJlMDExMTVjNTgwZjI3OGMzNzI1ZDdhNTY5ZWI4NDg3ODZlMTJiNDU1YTNmZGE3MDMxMjA1MyIKLVNSQ19VUklbcXRwbG90Lm1kNXN1bV0gPSAiMGE0ODE4ODVhNDk2MDkyYzc3ZWI0MDE3NTQwYjVjZjYiCi1TUkNfVVJJW3F0cGxvdC5zaGEyNTZzdW1dID0gIjZkZjMxNzE4M2ZmNjJjYzgyZjNkY2Y4ODIwN2EyNjdjZDY0NzhjYjUxNDdmNTVkNzUzMGM5NGYxYWQ1ZjQxMzIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3RfNS4yLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9nbnVwbG90L2dudXBsb3RfNS4yLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNjMjg5ZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2dudXBsb3QvZ251cGxvdF81LjIuMi5iYgpAQCAtMCwwICsxLDY5IEBACitTVU1NQVJZID0gIkdudXBsb3QgaXMgYSBwb3J0YWJsZSBjb21tYW5kLWxpbmUgZHJpdmVuIGdyYXBoaW5nIHV0aWxpdHkiCitERVNDUklQVElPTiA9ICJHbnVwbG90IGlzIGEgcG9ydGFibGUgY29tbWFuZC1saW5lIGRyaXZlbiBpbnRlcmFjdGl2ZSBkYXRhZmlsZSBcCisodGV4dCBvciBiaW5hcnkpIGFuZCBmdW5jdGlvbiBwbG90dGluZyB1dGlsaXR5LiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuZ251cGxvdC5pbmZvLyIKK1NFQ1RJT04gPSAiY29uc29sZS9zY2llbnRpZmljIgorTElDRU5TRSA9ICJnbnVwbG90IgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ29weXJpZ2h0O21kNT0yNDNhMTg2ZmMyZmQzYjk5MjEyNWQ2MGQ1YjFiYWI4ZiIKK0RFUEVORFMgPSAiJHtCUE59LW5hdGl2ZSB2aXJ0dWFsL2xpYngxMSBnZCByZWFkbGluZSIKKworaW5oZXJpdCBhdXRvdG9vbHMgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisjIGRlcGVuZHMgb24gdmlydHVhbC9saWJ4MTEKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK1NSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L2dudXBsb3QvJHtCUH0udGFyLmd6O25hbWU9YXJjaGl2ZSBcCisgICAgaHR0cDovL3d3dy5tbmV1cm90aC5kZS9wcml2YXQvemF1cnVzL3F0cGxvdC0wLjIudGFyLmd6O25hbWU9cXRwbG90IFwKKyAgICBmaWxlOi8vZ251cGxvdC5kZXNrdG9wIFwKKyAgICBmaWxlOi8vZ251cGxvdC5wbmcgXAorIgorU1JDX1VSSV9hcHBlbmRfY2xhc3MtdGFyZ2V0ID0gIiBcCisgICAgZmlsZTovLzAwMDItZG8tbm90LWJ1aWxkLWRlbW9zLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMy1Vc2UtbmF0aXZlLXRvb2xzLXRvLWJ1aWxkLWRvY3MucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDA0LUFkZC1jb25maWd1cmUtb3B0aW9uLXRvLWZpbmQtcXQ1LW5hdGl2ZS10b29scy5wYXRjaCBcCisiCisKK1NSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gIjYwYWVkZDA4OTk4MTYwNTkzMTk5NDU5ZGVhODQ2N2ZlIgorU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiYTQxNmQyMmYwMmJkZjM4NzNlZjgyYzVlYjdmOGU5NDE0Njc5NTgxMWVmODA4ZTEyYjAzNWFkYTg4ZWY3YjFhMSIKK1NSQ19VUklbcXRwbG90Lm1kNXN1bV0gPSAiMGE0ODE4ODVhNDk2MDkyYzc3ZWI0MDE3NTQwYjVjZjYiCitTUkNfVVJJW3F0cGxvdC5zaGEyNTZzdW1dID0gIjZkZjMxNzE4M2ZmNjJjYzgyZjNkY2Y4ODIwN2EyNjdjZDY0NzhjYjUxNDdmNTVkNzUzMGM5NGYxYWQ1ZjQxMzIiCisKKyMgZm9yIGJ1aWxkaW5nIGRvY3MgKHRoZXkgZGVzZXJ2ZSBpdCkgd2UgbmVlZCAqZG9jMiogdG9vbHMgbmF0aXZlCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKK0RFUEVORFNfY2xhc3MtbmF0aXZlID0gInJlYWRsaW5lLW5hdGl2ZSIKK1BBQ0tBR0VDT05GSUdfY2xhc3MtbmF0aXZlID0gIiIKKworU1JDX1VSSV9hcHBlbmRfY2xhc3MtbmF0aXZlID0gImZpbGU6Ly8wMDAxLXJlZHVjZS1idWlsZC10by1jb252ZXJzaW9uLXRvb2xzLWZvci1uYXRpdmUtYnVpbGQucGF0Y2giCisKK2RvX2luc3RhbGxfY2xhc3MtbmF0aXZlKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7YmluZGlyfQorCWluc3RhbGwgJHtCfS9kb2NzLypkb2MqICR7RH0ke2JpbmRpcn0KKyAgICBybSAke0R9JHtiaW5kaXJ9LyoubworfQorCitQQUNLQUdFQ09ORklHID8/PSAiY2Fpcm8iCitQQUNLQUdFQ09ORklHW2NhaXJvXSA9ICItLXdpdGgtY2Fpcm8sLS13aXRob3V0LWNhaXJvLGNhaXJvIHBhbmdvIgorUEFDS0FHRUNPTkZJR1tsdWFdID0gIi0td2l0aC1sdWEsLS13aXRob3V0LWx1YSxsdWEiCitQQUNLQUdFQ09ORklHW3F0NV0gPSAiLS13aXRoLXF0IC0td2l0aC1xdDVuYXRpdmVzeXNyb290PSR7U1RBR0lOR19ESVJfTkFUSVZFfSwtLXdpdGhvdXQtcXQscXRiYXNlLW5hdGl2ZSBxdGJhc2UgcXRzdmcgcXR0b29scy1uYXRpdmUiCisKK0VYVFJBX09FQ09ORiA9ICItLXdpdGgtcmVhZGxpbmU9JHtTVEFHSU5HX0xJQkRJUn0vLi4gXAorICAgICAgICAgICAgICAgIC0td2l0aG91dC10dXRvcmlhbCBcCisgICAgICAgICAgICAgICAgLS1kaXNhYmxlLXd4d2lkZ2V0cyIKKworZG9fY29tcGlsZV9wcmVwZW5kKCkgeworICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3F0cGxvdC0wLjIvcXRvcGlhLnRybSAke1N9L3Rlcm0vCit9CisKK2RvX2luc3RhbGxfYXBwZW5kX2NsYXNzLXRhcmdldCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0ke2RhdGFkaXJ9L2FwcGxpY2F0aW9ucy8KKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9nbnVwbG90LmRlc2t0b3AgJHtEfSR7ZGF0YWRpcn0vYXBwbGljYXRpb25zLworICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vcGl4bWFwcy8KKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9nbnVwbG90LnBuZyAke0R9JHtkYXRhZGlyfS9waXhtYXBzLworfQorCitQQUNLQUdFUyA9KyAiJHtQTn0teDExLWRiZyAke1BOfS14MTEiCitERVNDUklQVElPTl8ke1BOfS14MTEgPSAiWDExIGRpc3BsYXkgdGVybWluYWwgZm9yIEdudXBsb3QuIgorU0VDVElPTl8ke1BOfS14MTEgPSAieDExL3NjaWVudGlmaWMiCitGSUxFU18ke1BOfS14MTEgPSAiJHtsaWJleGVjZGlyfSAke2RhdGFkaXJ9L2FwcGxpY2F0aW9ucyAke2RhdGFkaXJ9L3BpeG1hcHMgJHtsaWJkaXJ9L1gxMSAiCisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L3RleG1mIgorRklMRVNfJHtQTn0teDExLWRiZyArPSAiJHtsaWJleGVjZGlyfS9nbnVwbG90LyovLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvaGF2ZWdlZC9oYXZlZ2VkL2hhdmVnZWQtaW5pdC5kLU1ha2VmaWxlLmFtLWFkZC1taXNzaW5nLWRlcGVuZGVuY3kucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oYXZlZ2VkL2hhdmVnZWQvaGF2ZWdlZC1pbml0LmQtTWFrZWZpbGUuYW0tYWRkLW1pc3NpbmctZGVwZW5kZW5jeS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmZkNTdjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvaGF2ZWdlZC9oYXZlZ2VkL2hhdmVnZWQtaW5pdC5kLU1ha2VmaWxlLmFtLWFkZC1taXNzaW5nLWRlcGVuZGVuY3kucGF0Y2gKQEAgLTAsMCArMSwzMiBAQAorRnJvbSBiMDRlZWVhNzc3ZGYzMjM2NGRmNzRiZDYzZmM1YjdmYjA1ZDIxYzhkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFR1ZSwgMjcgTWFyIDIwMTggMTA6MjE6MDkgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gaW5pdC5kL01ha2VmaWxlLmFtOiBhZGQgbWlzc2luZyBkZXBlbmRlbmN5CisKK2luc3RhbGwtZGF0YS1ob29rIHNob3VsZCBlcGVuZCBvbiBpbnN0YWxsLWV4ZWMtaG9vaywgb3IgdGhlCitoYXZlZ2VkLnNlcnZpY2UgbWlnaHQgYmUgaW5zdGFsbGVkIGluY29ycmVjdGx5IHdoZW4gYnVpbGQKK3dpdGggLWogb3B0aW9uLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW25vIHVwc3RyZWFtIG1haWxpbmcgbGlzdF0KKworU2lnbmVkLW9mZi1ieTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KKy0tLQorIGluaXQuZC9NYWtlZmlsZS5hbSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2luaXQuZC9NYWtlZmlsZS5hbSBiL2luaXQuZC9NYWtlZmlsZS5hbQoraW5kZXggNTk0MGY3OC4uMDdiY2RmNyAxMDA2NDQKKy0tLSBhL2luaXQuZC9NYWtlZmlsZS5hbQorKysrIGIvaW5pdC5kL01ha2VmaWxlLmFtCitAQCAtMzMsNyArMzMsNyBAQCBpZiBFTkFCTEVfU1lTVEVNRAorIGluc3RhbGwtZXhlYy1ob29rOgorIAkkKGRvX3N1YnN0KSA8ICQoc3JjZGlyKS8kKHNyY190bXBsKSA+IGhhdmVnZWQuc2VydmljZTsKKyAKKy1pbnN0YWxsLWRhdGEtaG9vazoKKytpbnN0YWxsLWRhdGEtaG9vazogaW5zdGFsbC1leGVjLWhvb2sKKyBpZiBFTkFCTEVfU1lTVEVNRF9MT09LVVAKKyAJaW5zdGFsbCAtcCAtRCAtbTY0NCBoYXZlZ2VkLnNlcnZpY2UgJChERVNURElSKWBwa2ctY29uZmlnIC0tdmFyaWFibGU9c3lzdGVtZHN5c3RlbXVuaXRkaXIgc3lzdGVtZGAvaGF2ZWdlZC5zZXJ2aWNlOworIGVsc2UKKy0tIAorMi4xMS4wCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hhdmVnZWQvaGF2ZWdlZC9yZW1vdmUtc3lzdGVtZC11bml0LTUwMy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hhdmVnZWQvaGF2ZWdlZC9yZW1vdmUtc3lzdGVtZC11bml0LTUwMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGYyN2JjYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oYXZlZ2VkL2hhdmVnZWQvcmVtb3ZlLXN5c3RlbWQtdW5pdC01MDMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0gYS9pbml0LmQvTWFrZWZpbGUuYW0JMjAxNC0wMS0wMiAxODo1NTo1My4wMDAwMDAwMDAgKzAxMDAKLSsrKyBiL2luaXQuZC9NYWtlZmlsZS5hbQkyMDE0LTA4LTExIDEwOjU5OjQwLjAwMDAwMDAwMCArMDIwMAotQEAgLTM0LDExICszNCwxMSBAQAotIAkkKGRvX3N1YnN0KSA8ICQoc3JjZGlyKS8kKHNyY190bXBsKSA+IGhhdmVnZWQuc2VydmljZTsKLSAKLSBpbnN0YWxsLWRhdGEtaG9vazoKLS1pZiBFTkFCTEVfU1lTVEVNRF9MT09LVVAKLS0JaW5zdGFsbCAtcCAtbTY0NCBoYXZlZ2VkLnNlcnZpY2UgYHBrZy1jb25maWcgLS12YXJpYWJsZT1zeXN0ZW1kc3lzdGVtdW5pdGRpciBzeXN0ZW1kYC9oYXZlZ2VkLnNlcnZpY2U7Ci0tZWxzZQotLQlpbnN0YWxsIC1wIC1tNjQ0IGhhdmVnZWQuc2VydmljZSAoJHVuaXRfZGlyKS9oYXZlZ2VkLnNlcnZpY2U7Ci0tZW5kaWYKLS0Jc3lzdGVtY3RsIGVuYWJsZSBoYXZlZ2VkLnNlcnZpY2U7Ci0rI2lmIEVOQUJMRV9TWVNURU1EX0xPT0tVUAotKyMJaW5zdGFsbCAtcCAtbTY0NCBoYXZlZ2VkLnNlcnZpY2UgYHBrZy1jb25maWcgLS12YXJpYWJsZT1zeXN0ZW1kc3lzdGVtdW5pdGRpciBzeXN0ZW1kYC9oYXZlZ2VkLnNlcnZpY2U7Ci0rI2Vsc2UKLSsjCWluc3RhbGwgLXAgLW02NDQgaGF2ZWdlZC5zZXJ2aWNlICgkdW5pdF9kaXIpL2hhdmVnZWQuc2VydmljZTsKLSsjZW5kaWYKLSsjCXN5c3RlbWN0bCBlbmFibGUgaGF2ZWdlZC5zZXJ2aWNlOwotIAotIGVuZGlmCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oYXZlZ2VkL2hhdmVnZWRfMS45LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oYXZlZ2VkL2hhdmVnZWRfMS45LjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiNDRjNDEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvaGF2ZWdlZC9oYXZlZ2VkXzEuOS4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotU1VNTUFSWSA9ICJoYXZlZ2VkIC0gQSBzaW1wbGUgZW50cm9weSBkYWVtb24iCi1ERVNDUklQVElPTiA9ICJUaGUgaGF2ZWdlZCBwcm9qZWN0IGlzIGFuIGF0dGVtcHQgdG8gcHJvdmlkZSBhbiBlYXN5LXRvLXVzZSwgdW5wcmVkaWN0YWJsZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvciBiYXNlZCB1cG9uIGFuIGFkYXB0YXRpb24gb2YgdGhlIEhBVkVHRSBhbGdvcml0aG0uIEhhdmVnZWQgd2FzIGNyZWF0ZWQgdG8gcmVtZWR5IGxvdy1lbnRyb3B5IGNvbmRpdGlvbnMgaW4gdGhlIExpbnV4IHJhbmRvbSBkZXZpY2UgdGhhdCBjYW4gb2NjdXIgdW5kZXIgc29tZSB3b3JrbG9hZHMsIGVzcGVjaWFsbHkgb24gaGVhZGxlc3Mgc2VydmVycy4iCi1BVVRIT1IgPSAiR2FyeSBXdWVydHoiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3Lmlzc2lob3N0cy5jb20vaGF2ZWdlZC9pbmRleC5odG1sIgotTElDRU5TRSA9ICJHUEx2MyIKLUxJQ19GSUxFU19DSEtTVU09ImZpbGU6Ly9DT1BZSU5HO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKLQotU1JDX1VSSSA9ICJodHRwOi8vd3d3Lmlzc2lob3N0cy5jb20vaGF2ZWdlZC9oYXZlZ2VkLSR7UFZ9LnRhci5neiBcCi0gICAgZmlsZTovL3JlbW92ZS1zeXN0ZW1kLXVuaXQtNTAzLnBhdGNoIFwKLSIKLQotU1JDX1VSSVttZDVzdW1dID0gIjAxNWZmNThjZDEwNjA3ZGIwZTBkZTYwYWVjYTJmNWY4IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjljMjM2M2VkOTU0MmE2Nzg0ZmYwOGUyNDcxODIxMzdlNzFmMmRkYjc5ZThlNmMxYWM0YWQ1MGQyMWNlZDM3MTUiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHN5c3RlbWQKLQotRVhUUkFfT0VDT05GID0gIlwKLSAgICAtLWVuYWJsZS1pbml0PXNlcnZpY2UucmVkaGF0IFwKLSAgICAtLWVuYWJsZS1uaXN0ZXN0PXllcyBcCi0gICAgLS1lbmFibGUtb2x0PXllcyBcCi0gICAgLS1lbmFibGUtdGhyZWFkcz1ubyBcCi0iCi0KLVNZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0iCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiaGF2ZWdlZC5zZXJ2aWNlIgotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBta2RpciAtcCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQotICAgIGluc3RhbGwgLXAgLW02NDQgJHtCfS9pbml0LmQvaGF2ZWdlZC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi19Ci0KLU1JUFNfSU5TVFJVQ1RJT05fU0VUID0gIm1pcHMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oYXZlZ2VkL2hhdmVnZWRfMS45LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oYXZlZ2VkL2hhdmVnZWRfMS45LjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVlZTg0MgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hhdmVnZWQvaGF2ZWdlZF8xLjkuMi5iYgpAQCAtMCwwICsxLDQwIEBACitTVU1NQVJZID0gImhhdmVnZWQgLSBBIHNpbXBsZSBlbnRyb3B5IGRhZW1vbiIKK0RFU0NSSVBUSU9OID0gIlRoZSBoYXZlZ2VkIHByb2plY3QgaXMgYW4gYXR0ZW1wdCB0byBwcm92aWRlIGFuIGVhc3ktdG8tdXNlLCB1bnByZWRpY3RhYmxlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIGJhc2VkIHVwb24gYW4gYWRhcHRhdGlvbiBvZiB0aGUgSEFWRUdFIGFsZ29yaXRobS4gSGF2ZWdlZCB3YXMgY3JlYXRlZCB0byByZW1lZHkgbG93LWVudHJvcHkgY29uZGl0aW9ucyBpbiB0aGUgTGludXggcmFuZG9tIGRldmljZSB0aGF0IGNhbiBvY2N1ciB1bmRlciBzb21lIHdvcmtsb2FkcywgZXNwZWNpYWxseSBvbiBoZWFkbGVzcyBzZXJ2ZXJzLiIKK0FVVEhPUiA9ICJHYXJ5IFd1ZXJ0eiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuaXNzaWhvc3RzLmNvbS9oYXZlZ2VkL2luZGV4Lmh0bWwiCitMSUNFTlNFID0gIkdQTHYzIgorTElDX0ZJTEVTX0NIS1NVTT0iZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgorCitTUkNfVVJJID0gImh0dHA6Ly93d3cuaXNzaWhvc3RzLmNvbS9oYXZlZ2VkL2hhdmVnZWQtJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL2hhdmVnZWQtaW5pdC5kLU1ha2VmaWxlLmFtLWFkZC1taXNzaW5nLWRlcGVuZGVuY3kucGF0Y2ggXAorIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZmIxZDhiM2RjYmI5ZDA2YjMwZWNjZDhhYTUwMGZkMzEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjc3ZDlhZGJkZjQyMWI2MTYwMWZhMjlmYWE5Y2UzYjQ3OWQ5MTBmNzNjNjZiOWUzNjRiYTg2NDJjY2JmYmU3MCIKKworaW5oZXJpdCBhdXRvdG9vbHMgdXBkYXRlLXJjLmQgc3lzdGVtZAorCitFWFRSQV9PRUNPTkYgPSAiXAorICAgIC0tZW5hYmxlLW5pc3Rlc3Q9eWVzIFwKKyAgICAtLWVuYWJsZS1vbHQ9eWVzIFwKKyAgICAtLWVuYWJsZS10aHJlYWRzPW5vIFwKKyIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCBkKX0iCitQQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIi0tZW5hYmxlLWluaXQ9c2VydmljZS5yZWRoYXQgLS1lbmFibGUtaW5pdGRpcj0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9LCAtLWVuYWJsZS1pbml0PXN5c3YucmVkaGF0LCBzeXN0ZW1kIgorCitJTklUU0NSSVBUX1BBQ0tBR0VTID0gIiR7UE59IgorSU5JVFNDUklQVF9OQU1FID0gImhhdmVnZWQiCitJTklUU0NSSVBUX1BBUkFNU18ke1BOfSA9ICJkZWZhdWx0cyA5IgorCitTWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59IgorU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImhhdmVnZWQuc2VydmljZSIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgIyBUaGUgZXhpdCBzdGF0dXMgaXMgMTQzIHdoZW4gdGhlIHNlcnZpY2UgaXMgc3RvcHBlZAorICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCisgICAgICAgIHNlZCAtaSAnL0V4ZWNTdGFydC9hIFN1Y2Nlc3NFeGl0U3RhdHVzPTE0MycgJHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0vaGF2ZWdlZC5zZXJ2aWNlCisgICAgZmkKK30KKworTUlQU19JTlNUUlVDVElPTl9TRVQgPSAibWlwcyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hleGVkaXQvaGV4ZWRpdC8wMDAxLWRvbi10LXN0cmlwLXdoZW4taW5zdGFsbGluZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hleGVkaXQvaGV4ZWRpdC8wMDAxLWRvbi10LXN0cmlwLXdoZW4taW5zdGFsbGluZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTM4NGIwNS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oZXhlZGl0L2hleGVkaXQvMDAwMS1kb24tdC1zdHJpcC13aGVuLWluc3RhbGxpbmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1Gcm9tIGNjNjcyNDZjYTY4MzllNWIzZjZhMjg2ZjEwZWQyNGMyMjViNzdhNWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/RXJpYz0yMEI9QzM9QTluYXJkPz0gPGVyaWNAZXVrcmVhLmNvbT4KLURhdGU6IFRodSwgNCBKdWwgMjAxMyAxMjozNDozMiArMDIwMAotU3ViamVjdDogW1BBVENIXSBkb24ndCBzdHJpcCB3aGVuIGluc3RhbGxpbmcKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotU2lnbmVkLW9mZi1ieTogRXJpYyBCw6luYXJkIDxlcmljQGV1a3JlYS5jb20+Ci0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLS0tLQotIE1ha2VmaWxlLmluIHwgICAgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUuaW4gYi9NYWtlZmlsZS5pbgotaW5kZXggMTU5NDYzZS4uNzM1Y2M3MiAxMDA2NDQKLS0tLSBhL01ha2VmaWxlLmluCi0rKysgYi9NYWtlZmlsZS5pbgotQEAgLTQyLDYgKzQyLDYgQEAgZGlzdGNsZWFuOiBjbGVhbgotIAotIGluc3RhbGw6ICQoUFJPRFVDVCkKLSAJJChJTlNUQUxMKSAtZCAtbSA3NTUgJChERVNURElSKSQoYmluZGlyKQotLQkkKElOU1RBTEwpIC1zIC1tIDc1NSAkKFBST0RVQ1QpICQoREVTVERJUikkKGJpbmRpcikKLSsJJChJTlNUQUxMKSAtbSA3NTUgJChQUk9EVUNUKSAkKERFU1RESVIpJChiaW5kaXIpCi0gCSQoSU5TVEFMTCkgLWQgLW0gNzU1ICQoREVTVERJUikkKG1hbmRpcikvbWFuMQotIAkkKElOU1RBTEwpIC1tIDY0NCAkKFBST0RVQ1QpLjEgJChERVNURElSKSQobWFuZGlyKS9tYW4xCi0tLSAKLTEuNy4xMC40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hleGVkaXQvaGV4ZWRpdF8xLjIuMTMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oZXhlZGl0L2hleGVkaXRfMS4yLjEzLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOWRmNWIyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2hleGVkaXQvaGV4ZWRpdF8xLjIuMTMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1TVU1NQVJZID0gInZpZXcgYW5kIGVkaXQgZmlsZXMgaW4gaGV4YWRlY2ltYWwgb3IgaW4gQVNDSUkiCi1IT01FUEFHRSA9ICJodHRwOi8vcmlnYXV4Lm9yZy9oZXhlZGl0Lmh0bWwiCi1TRUNUSU9OID0gImNvbnNvbGUvdXRpbHMiCi1MSUNFTlNFID0gIkdQTHYyKyIKLURFUEVORFMgPSAibmN1cnNlcyIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MDYzNmU3M2ZmMDIxNWU4ZDY3MmRjNGMzMmMzMTdiYjMiCi0KLVNSQ19VUkkgPSAiaHR0cDovL3JpZ2F1eC5vcmcvJHtCUH0uc3JjLnRneiBcCi0gICAgZmlsZTovLzAwMDEtZG9uLXQtc3RyaXAtd2hlbi1pbnN0YWxsaW5nLnBhdGNoICIKLQotU1JDX1VSSVttZDVzdW1dID0gImE1YWYxMzc4ZDAyODUxMmE5Y2FkMjdhNWJhM2UxNWY5IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjZhMTI2ZGEzMGE3N2Y1YzBiMDgwMzhhYTdhODgxZDkxMGUzYjY1ZDEzNzY3ZmI1NGM1OGM5ODM5NjNiODhkZDciCi0KLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcAotCi1TID0gIiR7V09SS0RJUn0vJHtCUE59IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvaGV4ZWRpdC9oZXhlZGl0XzEuNC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvaGV4ZWRpdC9oZXhlZGl0XzEuNC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1MGI3ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9oZXhlZGl0L2hleGVkaXRfMS40LjIuYmIKQEAgLTAsMCArMSwxNiBAQAorU1VNTUFSWSA9ICJ2aWV3IGFuZCBlZGl0IGZpbGVzIGluIGhleGFkZWNpbWFsIG9yIGluIEFTQ0lJIgorSE9NRVBBR0UgPSAiaHR0cDovL3JpZ2F1eC5vcmcvaGV4ZWRpdC5odG1sIgorU0VDVElPTiA9ICJjb25zb2xlL3V0aWxzIgorTElDRU5TRSA9ICJHUEx2MisiCitERVBFTkRTID0gIm5jdXJzZXMiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTA2MzZlNzNmZjAyMTVlOGQ2NzJkYzRjMzJjMzE3YmIzIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vcGl4ZWwvaGV4ZWRpdC5naXQgXAorICAgICIKKworU1JDUkVWID0gIjgwMGU0YjJlNjI4MDUzMWE4NGZkMjNlZTBiNDhlMTZiYWViOTA4NzgiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK2luaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQva29ua3JldGNtcGkva29ua3JldGNtcGlfMC45LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9rb25rcmV0Y21waS9rb25rcmV0Y21waV8wLjkuMi5iYgppbmRleCBjYmYwNDczLi4wZjc5OGQyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9rb25rcmV0Y21waS9rb25rcmV0Y21waV8wLjkuMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9rb25rcmV0Y21waS9rb25rcmV0Y21waV8wLjkuMi5iYgpAQCAtMjAsOCArMjAsOCBAQAogaW5oZXJpdCBjbWFrZQogCiBFWFRSQV9PRUNNQUtFID0gIi1EV0lUSF9QWVRIT049T04gXAotICAgICAgICAgICAgICAgICAke0BiYXNlX2NvbmRpdGlvbmFsKCJsaWJkaXIiLCAiL3Vzci9saWI2NCIsICItRExJQl9TVUZGSVg9NjQiLCAiIiwgZCl9IFwKLSAgICAgICAgICAgICAgICAgJHtAYmFzZV9jb25kaXRpb25hbCgibGliZGlyIiwgIi91c3IvbGliMzIiLCAiLURMSUJfU1VGRklYPTMyIiwgIiIsIGQpfSBcCisgICAgICAgICAgICAgICAgICR7QG9lLnV0aWxzLmNvbmRpdGlvbmFsKCJsaWJkaXIiLCAiL3Vzci9saWI2NCIsICItRExJQl9TVUZGSVg9NjQiLCAiIiwgZCl9IFwKKyAgICAgICAgICAgICAgICAgJHtAb2UudXRpbHMuY29uZGl0aW9uYWwoImxpYmRpciIsICIvdXNyL2xpYjMyIiwgIi1ETElCX1NVRkZJWD0zMiIsICIiLCBkKX0gXAogICAgICAgICAgICAgICAgICIKIAogTERGTEFHU19hcHBlbmQgPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdsZC1pcy1nb2xkJywgJyAtZnVzZS1sZD1iZmQgJywgJycsIGQpfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2ZpbGVzLzAwMDEtZml4LWNvbmZpZ3VyZS1hbmQtY29tcGlsZS1mYWlsdXJlcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2ZpbGVzLzAwMDEtZml4LWNvbmZpZ3VyZS1hbmQtY29tcGlsZS1mYWlsdXJlcy5wYXRjaAppbmRleCA5MTRlZTk5Li43NDU4ODNlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9maWxlcy8wMDAxLWZpeC1jb25maWd1cmUtYW5kLWNvbXBpbGUtZmFpbHVyZXMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvZmlsZXMvMDAwMS1maXgtY29uZmlndXJlLWFuZC1jb21waWxlLWZhaWx1cmVzLnBhdGNoCkBAIC0zMyw3ICszMyw3IEBACiAgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggMDI3MGM5OS4uYjdjNzM2OCAxMDA2NDQKK2luZGV4IGQ0MWEzMDcuLmIwMzZlMDQgMTAwNjQ0CiAtLS0gYS9jb25maWd1cmUuYWMKICsrKyBiL2NvbmZpZ3VyZS5hYwogQEAgLTksNiArOSw4IEBAIEFDX0RJU0FCTEVfU1RBVElDCkBAIC00NSw3ICs0NSw3IEBACiAgQU1fUEFUSF9QWVRIT04KICAKICBBTV9QUk9HX0FSCi1AQCAtMTI5LDcgKzEzMSw2IEBAIExJQkJMT0NLREVWX1BLR19DSEVDS19NT0RVTEVTKFtVREVWXSwgW2xpYnVkZXYgPj0gMjE2XSkKK0BAIC0xNTQsNyArMTU2LDYgQEAgTElCQkxPQ0tERVZfUEtHX0NIRUNLX01PRFVMRVMoW0tNT0RdLCBbbGlia21vZCA+PSAxOV0pCiAgQVNfSUYoW3Rlc3QgIngkd2l0aF9jcnlwdG8iICE9ICJ4bm8iXSwKICAgICAgICBbTElCQkxPQ0tERVZfUEtHX0NIRUNLX01PRFVMRVMoW0NSWVBUU0VUVVBdLCBbbGliY3J5cHRzZXR1cCA+PSAxLjYuN10pCiAgICAgICAgIExJQkJMT0NLREVWX1BLR19DSEVDS19NT0RVTEVTKFtOU1NdLCBbbnNzID49IDMuMTguMF0pCkBAIC01Myw3ICs1Myw3IEBACiAgICAgICAgXSwKICAgICAgICBbXSkKICAKLUBAIC0xMzcsMTAgKzEzOCw2IEBAIEFTX0lGKFt0ZXN0ICJ4JHdpdGhfZG0iICE9ICJ4bm8iIC1vICJ4JHdpdGhfbHZtIiAhPSAieG5vIiAtbyAieCR3aXRoX2x2bV9kYnVzIiAhCitAQCAtMTYyLDEwICsxNjMsNiBAQCBBU19JRihbdGVzdCAieCR3aXRoX2RtIiAhPSAieG5vIiAtbyAieCR3aXRoX2x2bSIgIT0gInhubyIgLW8gIngkd2l0aF9sdm1fZGJ1cyIgIQogICAgICAgIFtMSUJCTE9DS0RFVl9QS0dfQ0hFQ0tfTU9EVUxFUyhbREVWTUFQUEVSXSwgW2Rldm1hcHBlciA+PSAxLjAyLjkzXSldLAogICAgICAgIFtdKQogIApAQCAtNjEsMTAgKzYxLDEwIEBACiAtICAgICAgW0xJQkJMT0NLREVWX0NIRUNLX0hFQURFUihbZG1yYWlkL2RtcmFpZC5oXSwgW10sIFtkbXJhaWQuaCBub3QgYXZhaWxhYmxlXSldLAogLSAgICAgIFtdKQogLQotIEFTX0lGKFt0ZXN0ICJ4JHdpdGhfa2JkIiAhPSAieG5vIl0sCi0gICAgICAgW0xJQkJMT0NLREVWX1BLR19DSEVDS19NT0RVTEVTKFtLTU9EXSwgW2xpYmttb2QgPj0gMTldKV0sCisgQVNfSUYoW3Rlc3QgIngkd2l0aF9wYXJ0IiAhPSAieG5vIiAtbyAieCR3aXRoX2ZzIiAhPSAieG5vIl0sCisgICAgICAgW0xJQkJMT0NLREVWX1BLR19DSEVDS19NT0RVTEVTKFtQQVJURURdLCBbbGlicGFydGVkID49IDMuMV0pXQogICAgICAgIFtdKQotQEAgLTE1NCw3ICsxNTEsOCBAQCBBU19JRihbdGVzdCAieCR3aXRoX2ZzIiAhPSAieG5vIl0sCitAQCAtMTc0LDcgKzE3MSw4IEBAIEFTX0lGKFt0ZXN0ICJ4JHdpdGhfZnMiICE9ICJ4bm8iXSwKICAgICAgICBbTElCQkxPQ0tERVZfUEtHX0NIRUNLX01PRFVMRVMoW01PVU5UXSwgW21vdW50ID49IDIuMjMuMF0pCiAgICAgICAgICMgbmV3IHZlcnNpb25zIG9mIGxpYm1vdW50IGhhcyBzb21lIG5ldyBmdW5jdGlvbnMgd2UgY2FuIHVzZQogICAgICAgICBBU19JRihbJFBLR19DT05GSUcgLS1hdGxlYXN0LXZlcnNpb249Mi4zMC4wIG1vdW50XSwKQEAgLTc1LDUgKzc1LDUgQEAKICAgICAgICAgTElCQkxPQ0tERVZfUEtHX0NIRUNLX01PRFVMRVMoW0JMS0lEXSwgW2Jsa2lkID49IDIuMjMuMF0pCiAgICAgICAgICMgb2xkZXIgdmVyc2lvbnMgb2YgbGliYmxraWQgZG9uJ3Qgc3VwcG9ydCBCTEtJRF9TVUJMS1NfQkFEQ1NVTSBzbyBsZXQncyBqdXN0CiAtLSAKLTEuOC4zLjEKKzIuMTQuMwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9maWxlcy8wMDAzLXJlbW92ZS1kbXJhaWQtd2hpbGUtY29tcGlsaW5nLXdpdGgtd2l0aC1kbS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2ZpbGVzLzAwMDMtcmVtb3ZlLWRtcmFpZC13aGlsZS1jb21waWxpbmctd2l0aC13aXRoLWRtLnBhdGNoCmluZGV4IDNkOWNiNmQuLmFjNWI1ZTIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2ZpbGVzLzAwMDMtcmVtb3ZlLWRtcmFpZC13aGlsZS1jb21waWxpbmctd2l0aC13aXRoLWRtLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2ZpbGVzLzAwMDMtcmVtb3ZlLWRtcmFpZC13aGlsZS1jb21waWxpbmctd2l0aC13aXRoLWRtLnBhdGNoCkBAIC0yMiwyMSArMjIsMjIgQEAKIAogU2lnbmVkLW9mZi1ieTogSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPgogLS0tCi0gc3JjL2xpYi9wbHVnaW5fYXBpcy9kbS5hcGkgICAgICAgICAgfCAgNDEgLS0tLS0KKyBzcmMvbGliL3BsdWdpbl9hcGlzL2RtLmFwaSAgICAgICAgICB8ICA1MCAtLS0tLS0KICBzcmMvcGx1Z2lucy9NYWtlZmlsZS5hbSAgICAgICAgICAgICB8ICAgMiArLQotIHNyYy9wbHVnaW5zL2RtLmMgICAgICAgICAgICAgICAgICAgIHwgMzE4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHNyYy9wbHVnaW5zL2RtLmMgICAgICAgICAgICAgICAgICAgIHwgMzMwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIHNyYy9wbHVnaW5zL2RtLmggICAgICAgICAgICAgICAgICAgIHwgICA1IC0KICBzcmMvcHl0aG9uL2dpL292ZXJyaWRlcy9CbG9ja0Rldi5weSB8ICAgNiAtCi0gNSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMzcxIGRlbGV0aW9ucygtKQorIDUgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDM5MiBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL3NyYy9saWIvcGx1Z2luX2FwaXMvZG0uYXBpIGIvc3JjL2xpYi9wbHVnaW5fYXBpcy9kbS5hcGkKLWluZGV4IGE4ODViYmEuLmVjODZiODAgMTAwNjQ0CitpbmRleCAwNGZkOGQ4Li41ZDMwYjZhIDEwMDY0NAogLS0tIGEvc3JjL2xpYi9wbHVnaW5fYXBpcy9kbS5hcGkKICsrKyBiL3NyYy9saWIvcGx1Z2luX2FwaXMvZG0uYXBpCi1AQCAtNjgsNDQgKzY4LDMgQEAgZ2NoYXIqIGJkX2RtX25vZGVfZnJvbV9uYW1lIChjb25zdCBnY2hhciAqbWFwX25hbWUsIEdFcnJvciAqKmVycm9yKTsKK0BAIC0xMTEsNTMgKzExMSwzIEBAIGdjaGFyKiBiZF9kbV9nZXRfc3Vic3lzdGVtX2Zyb21fbmFtZSAoY29uc3QgZ2NoYXIgKmRldmljZV9uYW1lLCBHRXJyb3IgKiplcnJvcik7CisgICogVGVjaCBjYXRlZ29yeTogJUJEX0RNX1RFQ0hfTUFQLSVCRF9ETV9URUNIX01PREVfUVVFUlkKICAgKi8KICBnYm9vbGVhbiBiZF9kbV9tYXBfZXhpc3RzIChjb25zdCBnY2hhciAqbWFwX25hbWUsIGdib29sZWFuIGxpdmVfb25seSwgZ2Jvb2xlYW4gYWN0aXZlX29ubHksIEdFcnJvciAqKmVycm9yKTsKLSAKKy0KIC0vKioKIC0gKiBiZF9kbV9nZXRfbWVtYmVyX3JhaWRfc2V0czoKIC0gKiBAbmFtZTogKGFsbG93LW5vbmUpOiBuYW1lIG9mIHRoZSBtZW1iZXIKQEAgLTQ5LDYgKzUwLDggQEAKIC0gKiB0aGUgbWVtYmVyIG9yICVOVUxMIGluIGNhc2Ugb2YgZXJyb3IKIC0gKgogLSAqIE9uZSBvZiBAbmFtZSwgQHV1aWQgb3IgQG1ham9yOkBtaW5vciBoYXMgdG8gYmUgZ2l2ZW4uCistICoKKy0gKiBUZWNoIGNhdGVnb3J5OiAlQkRfRE1fVEVDSF9SQUlELSVCRF9ETV9URUNIX01PREVfUVVFUlkKIC0gKi8KIC1nY2hhcioqIGJkX2RtX2dldF9tZW1iZXJfcmFpZF9zZXRzIChjb25zdCBnY2hhciAqbmFtZSwgY29uc3QgZ2NoYXIgKnV1aWQsIGdpbnQgbWFqb3IsIGdpbnQgbWlub3IsIEdFcnJvciAqKmVycm9yKTsKIC0KQEAgLTU4LDYgKzYxLDggQEAKIC0gKiBAZXJyb3I6IChvdXQpOiB2YXJpYWJsZSB0byBzdG9yZSBlcnJvciAoaWYgYW55KQogLSAqCiAtICogUmV0dXJuczogd2hldGhlciB0aGUgUkFJRCBzZXQgQG5hbWUgd2FzIHN1Y2Nlc3NmdWxseSBhY3RpdmF0ZSBvciBub3QKKy0gKgorLSAqIFRlY2ggY2F0ZWdvcnk6ICVCRF9ETV9URUNIX1JBSUQtJUJEX0RNX1RFQ0hfQ1JFQVRFX0FDVElWQVRFCiAtICovCiAtZ2Jvb2xlYW4gYmRfZG1fYWN0aXZhdGVfcmFpZF9zZXQgKGNvbnN0IGdjaGFyICpuYW1lLCBHRXJyb3IgKiplcnJvcik7CiAtCkBAIC02Nyw2ICs3Miw4IEBACiAtICogQGVycm9yOiAob3V0KTogdmFyaWFibGUgdG8gc3RvcmUgZXJyb3IgKGlmIGFueSkKIC0gKgogLSAqIFJldHVybnM6IHdoZXRoZXIgdGhlIFJBSUQgc2V0IEBuYW1lIHdhcyBzdWNjZXNzZnVsbHkgZGVhY3RpdmF0ZSBvciBub3QKKy0gKgorLSAqIFRlY2ggY2F0ZWdvcnk6ICVCRF9ETV9URUNIX1JBSUQtJUJEX0RNX1RFQ0hfUkVNT1ZFX0RFQUNUSVZBVEUKIC0gKi8KIC1nYm9vbGVhbiBiZF9kbV9kZWFjdGl2YXRlX3JhaWRfc2V0IChjb25zdCBnY2hhciAqbmFtZSwgR0Vycm9yICoqZXJyb3IpOwogLQpAQCAtNzYsMTMgKzgzLDE1IEBACiAtICogQGVycm9yOiAob3V0KTogdmFyaWFibGUgdG8gc3RvcmUgZXJyb3IgKGlmIGFueSkKIC0gKgogLSAqIFJldHVybnM6IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgQG5hbWUgUkFJRCBzZXQncyB0eXBlCistICoKKy0gKiBUZWNoIGNhdGVnb3J5OiAlQkRfRE1fVEVDSF9SQUlELSVCRF9ETV9URUNIX1FVRVJZCiAtICovCiAtZ2NoYXIqIGJkX2RtX2dldF9yYWlkX3NldF90eXBlIChjb25zdCBnY2hhciAqbmFtZSwgR0Vycm9yICoqZXJyb3IpOwogZGlmZiAtLWdpdCBhL3NyYy9wbHVnaW5zL01ha2VmaWxlLmFtIGIvc3JjL3BsdWdpbnMvTWFrZWZpbGUuYW0KLWluZGV4IDZjNDAzOGYuLjU5ZGM1ZTMgMTAwNjQ0CitpbmRleCBiNjljOGY3Li43NTc1ZjRhIDEwMDY0NAogLS0tIGEvc3JjL3BsdWdpbnMvTWFrZWZpbGUuYW0KICsrKyBiL3NyYy9wbHVnaW5zL01ha2VmaWxlLmFtCi1AQCAtNzYsNyArNzYsNyBAQCBlbmRpZgorQEAgLTc1LDcgKzc1LDcgQEAgZW5kaWYKICAKICBpZiBXSVRIX0RNCiAgbGliYmRfZG1fbGFfQ0ZMQUdTID0gJChHTElCX0NGTEFHUykgJChERVZNQVBQRVJfQ0ZMQUdTKSAkKFVERVZfQ0ZMQUdTKSAtV2FsbCAtV2V4dHJhIC1XZXJyb3IKQEAgLTkyLDEwICsxMDEsMTAgQEAKICAjIERlYXIgYXV0aG9yIG9mIGxpYmRtZHJhaWQsIFZFUlNJT04gcmVhbGx5IGlzIG5vdCBhIGdvb2QgbmFtZSBmb3IgYW4gZW51bSBtZW1iZXIhCiAgbGliYmRfZG1fbGFfQ1BQRkxBR1MgPSAtSSR7YnVpbGRkaXJ9Ly4uLy4uL2luY2x1ZGUvIC1VVkVSU0lPTgogZGlmZiAtLWdpdCBhL3NyYy9wbHVnaW5zL2RtLmMgYi9zcmMvcGx1Z2lucy9kbS5jCi1pbmRleCA5Y2VlNzQyLi5mZDdjN2JhIDEwMDY0NAoraW5kZXggMGU1NDY2Yy4uMzFlYmU5NiAxMDA2NDQKIC0tLSBhL3NyYy9wbHVnaW5zL2RtLmMKICsrKyBiL3NyYy9wbHVnaW5zL2RtLmMKLUBAIC0yMSwxNiArMjEsMTAgQEAKK0BAIC0yMSwxNyArMjEsMTEgQEAKICAjaW5jbHVkZSA8dW5pc3RkLmg+CiAgI2luY2x1ZGUgPGJsb2NrZGV2L3V0aWxzLmg+CiAgI2luY2x1ZGUgPGxpYmRldm1hcHBlci5oPgpAQCAtMTAzLDYgKzExMiw3IEBACiAgI2luY2x1ZGUgPGxpYnVkZXYuaD4KICAKICAjaW5jbHVkZSAiZG0uaCIKKyAjaW5jbHVkZSAiY2hlY2tfZGVwcy5oIgogIAogLS8qIG1hY3JvcyB0YWtlbiBmcm9tIHRoZSBweWJsb2NrL2RtcmFpZC5oIGZpbGUgcGx1cyBvbmUgbW9yZSovCiAtI2RlZmluZSBmb3JfZWFjaF9yYWlkc2V0KF9jLCBfbikgbGlzdF9mb3JfZWFjaF9lbnRyeShfbiwgTENfUlMoX2MpLCBsaXN0KQpAQCAtMTEyLDEwICsxMjIsMTEgQEAKICAvKioKICAgKiBTRUNUSU9OOiBkbQogICAqIEBzaG9ydF9kZXNjcmlwdGlvbjogcGx1Z2luIGZvciBiYXNpYyBvcGVyYXRpb25zIHdpdGggZGV2aWNlIG1hcHBlcgotQEAgLTI4NiwzMTUgKzI4MCwzIEBAIGdib29sZWFuIGJkX2RtX21hcF9leGlzdHMgKGNvbnN0IGdjaGFyICptYXBfbmFtZSwgZ2Jvb2xlYW4gbGl2ZV9vbmx5LCBnYm9vbGVhbiBhCitAQCAtMzgwLDMyNyArMzc0LDMgQEAgZ2Jvb2xlYW4gYmRfZG1fbWFwX2V4aXN0cyAoY29uc3QgZ2NoYXIgKm1hcF9uYW1lLCBnYm9vbGVhbiBsaXZlX29ubHksIGdib29sZWFuIGEKKyAKICAgICAgcmV0dXJuIHJldDsKICB9Ci0gCistCiAtLyoqCiAtICogaW5pdF9kbXJhaWRfc3RhY2s6IChza2lwKQogLSAqCkBAIC0xOTEsNiArMjAyLDkgQEAKIC0gICAgLyogaWYgd2UgZG9uJ3QgaGF2ZSB0aGUgbmFtZSwgd2UgY2Fubm90IGNoZWNrIGFueSBtYXRjaCAqLwogLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoZGV2X25hbWUsIEZBTFNFKTsKIC0KKy0gICAgLyogZ19yZXR1cm5fdmFsX2lmX2ZhaWwgYWJvdmUgY2hlY2tzIHZhbHVlIG9mIGRldl9uYW1lIGFuZCByZXR1cm5zIEZBTFNFIGlmCistICAgICAqIGl0IGlzIE5VTEwgc28gd2UgZG9uJ3QgbmVlZCB0byBjaGVjayBpdCBoZXJlICovCistICAgIC8qIGNvdmVyaXR5W3Zhcl9kZXJlZl9tb2RlbF0gKi8KIC0gICAgaWYgKG5hbWUgJiYgc3RyY21wIChkZXZfbmFtZSwgbmFtZSkgIT0gMCkgewogLSAgICAgICAgcmV0dXJuIEZBTFNFOwogLSAgICB9CkBAIC0yMjAsOCArMjM0LDggQEAKIC0gKiBmaW5kX3JhaWRfc2V0c19mb3JfZGV2OiAoc2tpcCkKIC0gKi8KIC1zdGF0aWMgdm9pZCBmaW5kX3JhaWRfc2V0c19mb3JfZGV2IChjb25zdCBnY2hhciAqbmFtZSwgY29uc3QgZ2NoYXIgKnV1aWQsIGdpbnQgbWFqb3IsIGdpbnQgbWlub3IsIHN0cnVjdCBsaWJfY29udGV4dCAqbGMsIHN0cnVjdCByYWlkX3NldCAqcnMsIEdQdHJBcnJheSAqcmV0X3NldHMpIHsKLS0gICAgc3RydWN0IHJhaWRfc2V0ICpzdWJzZXQ7Ci0tICAgIHN0cnVjdCByYWlkX2RldiAqZGV2OworLSAgICBzdHJ1Y3QgcmFpZF9zZXQgKnN1YnNldCA9IE5VTEw7CistICAgIHN0cnVjdCByYWlkX2RldiAqZGV2ID0gTlVMTDsKIC0KIC0gICAgaWYgKFRfR1JPVVAocnMpIHx8ICFsaXN0X2VtcHR5KCYocnMtPnNldHMpKSkgewogLSAgICAgICAgZm9yX2VhY2hfc3Vic2V0IChycywgc3Vic2V0KQpAQCAtMjQ2LDYgKzI2MCw4IEBACiAtICogdGhlIG1lbWJlciBvciAlTlVMTCBpbiBjYXNlIG9mIGVycm9yCiAtICoKIC0gKiBPbmUgb2YgQG5hbWUsIEB1dWlkIG9yIEBtYWpvcjpAbWlub3IgaGFzIHRvIGJlIGdpdmVuLgorLSAqCistICogVGVjaCBjYXRlZ29yeTogJUJEX0RNX1RFQ0hfUkFJRC0lQkRfRE1fVEVDSF9NT0RFX1FVRVJZCiAtICovCiAtZ2NoYXIqKiBiZF9kbV9nZXRfbWVtYmVyX3JhaWRfc2V0cyAoY29uc3QgZ2NoYXIgKm5hbWUsIGNvbnN0IGdjaGFyICp1dWlkLCBnaW50IG1ham9yLCBnaW50IG1pbm9yLCBHRXJyb3IgKiplcnJvcikgewogLSAgICBndWludDY0IGkgPSAwOwpAQCAtMzEyLDggKzMyOCw4IEBACiAtCiAtc3RhdGljIGdib29sZWFuIGNoYW5nZV9zZXRfYnlfbmFtZSAoY29uc3QgZ2NoYXIgKm5hbWUsIGVudW0gYWN0aXZhdGVfdHlwZSBhY3Rpb24sIEdFcnJvciAqKmVycm9yKSB7CiAtICAgIGdpbnQgcmMgPSAwOwotLSAgICBzdHJ1Y3QgbGliX2NvbnRleHQgKmxjOwotLSAgICBzdHJ1Y3QgcmFpZF9zZXQgKml0ZXJfcnM7CistICAgIHN0cnVjdCBsaWJfY29udGV4dCAqbGMgPSBOVUxMOworLSAgICBzdHJ1Y3QgcmFpZF9zZXQgKml0ZXJfcnMgPSBOVUxMOwogLSAgICBzdHJ1Y3QgcmFpZF9zZXQgKm1hdGNoX3JzID0gTlVMTDsKIC0KIC0gICAgbGMgPSBpbml0X2RtcmFpZF9zdGFjayAoZXJyb3IpOwpAQCAtMzUyLDYgKzM2OCw4IEBACiAtICogQGVycm9yOiAob3V0KTogdmFyaWFibGUgdG8gc3RvcmUgZXJyb3IgKGlmIGFueSkKIC0gKgogLSAqIFJldHVybnM6IHdoZXRoZXIgdGhlIFJBSUQgc2V0IEBuYW1lIHdhcyBzdWNjZXNzZnVsbHkgYWN0aXZhdGUgb3Igbm90CistICoKKy0gKiBUZWNoIGNhdGVnb3J5OiAlQkRfRE1fVEVDSF9SQUlELSVCRF9ETV9URUNIX0NSRUFURV9BQ1RJVkFURQogLSAqLwogLWdib29sZWFuIGJkX2RtX2FjdGl2YXRlX3JhaWRfc2V0IChjb25zdCBnY2hhciAqbmFtZSwgR0Vycm9yICoqZXJyb3IpIHsKIC0gICAgZ3VpbnQ2NCBwcm9ncmVzc19pZCA9IDA7CkBAIC0zNzIsNiArMzkwLDggQEAKIC0gKiBAZXJyb3I6IChvdXQpOiB2YXJpYWJsZSB0byBzdG9yZSBlcnJvciAoaWYgYW55KQogLSAqCiAtICogUmV0dXJuczogd2hldGhlciB0aGUgUkFJRCBzZXQgQG5hbWUgd2FzIHN1Y2Nlc3NmdWxseSBkZWFjdGl2YXRlIG9yIG5vdAorLSAqCistICogVGVjaCBjYXRlZ29yeTogJUJEX0RNX1RFQ0hfUkFJRC0lQkRfRE1fVEVDSF9SRU1PVkVfREVBQ1RJVkFURQogLSAqLwogLWdib29sZWFuIGJkX2RtX2RlYWN0aXZhdGVfcmFpZF9zZXQgKGNvbnN0IGdjaGFyICpuYW1lLCBHRXJyb3IgKiplcnJvcikgewogLSAgICBndWludDY0IHByb2dyZXNzX2lkID0gMDsKQEAgLTM5MiwxMCArNDEyLDEyIEBACiAtICogQGVycm9yOiAob3V0KTogdmFyaWFibGUgdG8gc3RvcmUgZXJyb3IgKGlmIGFueSkKIC0gKgogLSAqIFJldHVybnM6IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgQG5hbWUgUkFJRCBzZXQncyB0eXBlCistICoKKy0gKiBUZWNoIGNhdGVnb3J5OiAlQkRfRE1fVEVDSF9SQUlELSVCRF9ETV9URUNIX1FVRVJZCiAtICovCiAtZ2NoYXIqIGJkX2RtX2dldF9yYWlkX3NldF90eXBlIChjb25zdCBnY2hhciAqbmFtZSwgR0Vycm9yICoqZXJyb3IpIHsKLS0gICAgc3RydWN0IGxpYl9jb250ZXh0ICpsYzsKLS0gICAgc3RydWN0IHJhaWRfc2V0ICppdGVyX3JzOworLSAgICBzdHJ1Y3QgbGliX2NvbnRleHQgKmxjID0gTlVMTDsKKy0gICAgc3RydWN0IHJhaWRfc2V0ICppdGVyX3JzID0gTlVMTDsKIC0gICAgc3RydWN0IHJhaWRfc2V0ICptYXRjaF9ycyA9IE5VTEw7CiAtICAgIGNvbnN0IGdjaGFyICp0eXBlID0gTlVMTDsKIC0KQEAgLTQyOSw3ICs0NTEsNyBAQAogLSAgICByZXR1cm4gZ19zdHJkdXAgKHR5cGUpOwogLX0KIGRpZmYgLS1naXQgYS9zcmMvcGx1Z2lucy9kbS5oIGIvc3JjL3BsdWdpbnMvZG0uaAotaW5kZXggODU5ZmI4MC4uODBhY2Q0OSAxMDA2NDQKK2luZGV4IDBkY2U2YWMuLjFlZTM3ODggMTAwNjQ0CiAtLS0gYS9zcmMvcGx1Z2lucy9kbS5oCiArKysgYi9zcmMvcGx1Z2lucy9kbS5oCiBAQCAtMSw1ICsxLDQgQEAKQEAgLTQzOCwxMCArNDYwLDEwIEBACiAgCiAgI2lmbmRlZiBCRF9ETQogICNkZWZpbmUgQkRfRE0KLUBAIC0zNSw5ICszNCw1IEBAIGdib29sZWFuIGJkX2RtX3JlbW92ZSAoY29uc3QgZ2NoYXIgKm1hcF9uYW1lLCBHRXJyb3IgKiplcnJvcik7CitAQCAtNDgsOSArNDcsNSBAQCBnYm9vbGVhbiBiZF9kbV9tYXBfZXhpc3RzIChjb25zdCBnY2hhciAqbWFwX25hbWUsIGdib29sZWFuIGxpdmVfb25seSwgZ2Jvb2xlYW4gYQogIGdjaGFyKiBiZF9kbV9uYW1lX2Zyb21fbm9kZSAoY29uc3QgZ2NoYXIgKmRtX25vZGUsIEdFcnJvciAqKmVycm9yKTsKICBnY2hhciogYmRfZG1fbm9kZV9mcm9tX25hbWUgKGNvbnN0IGdjaGFyICptYXBfbmFtZSwgR0Vycm9yICoqZXJyb3IpOwotIGdib29sZWFuIGJkX2RtX21hcF9leGlzdHMgKGNvbnN0IGdjaGFyICptYXBfbmFtZSwgZ2Jvb2xlYW4gbGl2ZV9vbmx5LCBnYm9vbGVhbiBhY3RpdmVfb25seSwgR0Vycm9yICoqZXJyb3IpOworIGdjaGFyKiBiZF9kbV9nZXRfc3Vic3lzdGVtX2Zyb21fbmFtZSAoY29uc3QgZ2NoYXIgKmRldmljZV9uYW1lLCBHRXJyb3IgKiplcnJvcik7CiAtZ2NoYXIqKiBiZF9kbV9nZXRfbWVtYmVyX3JhaWRfc2V0cyAoY29uc3QgZ2NoYXIgKm5hbWUsIGNvbnN0IGdjaGFyICp1dWlkLCBnaW50IG1ham9yLCBnaW50IG1pbm9yLCBHRXJyb3IgKiplcnJvcik7CiAtZ2Jvb2xlYW4gYmRfZG1fYWN0aXZhdGVfcmFpZF9zZXQgKGNvbnN0IGdjaGFyICpuYW1lLCBHRXJyb3IgKiplcnJvcik7CiAtZ2Jvb2xlYW4gYmRfZG1fZGVhY3RpdmF0ZV9yYWlkX3NldCAoY29uc3QgZ2NoYXIgKm5hbWUsIEdFcnJvciAqKmVycm9yKTsKQEAgLTQ2Niw1ICs0ODgsNSBAQAogIF9sb29wX3NldHVwID0gQmxvY2tEZXYubG9vcF9zZXR1cAogIEBvdmVycmlkZShCbG9ja0Rldi5sb29wX3NldHVwKQogLS0gCi0xLjguMy4xCisyLjE0LjMKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvZmlsZXMvMDAwNC1maXgtY29tcGlsZS1mYWlsdXJlLWFnYWluc3QtbXVzbC1DLWxpYnJhcnkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9maWxlcy8wMDA0LWZpeC1jb21waWxlLWZhaWx1cmUtYWdhaW5zdC1tdXNsLUMtbGlicmFyeS5wYXRjaAppbmRleCBmMThiNTY5Li4wYjViODA5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9maWxlcy8wMDA0LWZpeC1jb21waWxlLWZhaWx1cmUtYWdhaW5zdC1tdXNsLUMtbGlicmFyeS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9maWxlcy8wMDA0LWZpeC1jb21waWxlLWZhaWx1cmUtYWdhaW5zdC1tdXNsLUMtbGlicmFyeS5wYXRjaApAQCAtMTIsNyArMTIsNyBAQAogIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvc3JjL3BsdWdpbnMvY3J5cHRvLmMgYi9zcmMvcGx1Z2lucy9jcnlwdG8uYwotaW5kZXggOGZiY2U0Zi4uNjZlMTFlNSAxMDA2NDQKK2luZGV4IGI5NjE0NzEuLjJkM2QyNTEgMTAwNjQ0CiAtLS0gYS9zcmMvcGx1Z2lucy9jcnlwdG8uYwogKysrIGIvc3JjL3BsdWdpbnMvY3J5cHRvLmMKIEBAIC0yMiw3ICsyMiw3IEBACkBAIC0yNSw3ICsyNSw3IEBACiAgI2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgogICNpbmNsdWRlIDxsb2NhbGUuaD4KIGRpZmYgLS1naXQgYS9zcmMvcGx1Z2lucy9wYXJ0LmMgYi9zcmMvcGx1Z2lucy9wYXJ0LmMKLWluZGV4IDEyZDJlZjcuLjNhZmUyOTcgMTAwNjQ0CitpbmRleCA2YjJhNjkwLi5hYjQ5MGQ5IDEwMDY0NAogLS0tIGEvc3JjL3BsdWdpbnMvcGFydC5jCiArKysgYi9zcmMvcGx1Z2lucy9wYXJ0LmMKIEBAIC0yNSw2ICsyNSw3IEBACkBAIC0zMywxMCArMzMsMTAgQEAKICAjaW5jbHVkZSA8dW5pc3RkLmg+CiAgI2luY2x1ZGUgPHN5cy9maWxlLmg+CiArI2luY2x1ZGUgPGZjbnRsLmg+CisgI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorICNpbmNsdWRlIDxsaW51eC9mcy5oPgogICNpbmNsdWRlIDxibG9ja2Rldi91dGlscy5oPgotICNpbmNsdWRlIDxwYXJ0X2Vyci5oPgotIAotQEAgLTEyMjQsNyArMTIyNSw3IEBAIHN0YXRpYyBnYm9vbGVhbiBzZXRfZ3B0X2ZsYWdzIChjb25zdCBnY2hhciAqZGV2aWNlLCBpbnQgcGFydF9udW0sIGd1aW50NjQgZmxhZ3MsCitAQCAtMTM1NCw3ICsxMzU1LDcgQEAgc3RhdGljIGdib29sZWFuIHNldF9ncHRfZmxhZ3MgKGNvbnN0IGdjaGFyICpkZXZpY2UsIGludCBwYXJ0X251bSwgZ3VpbnQ2NCBmbGFncywKICAgICAgICAgIHJlYWxfZmxhZ3MgfD0gMHg0MDAwMDAwMDAwMDAwMDAwOyAvKiAxIDw8IDYyICovCiAgICAgIGlmIChmbGFncyAmIEJEX1BBUlRfRkxBR19HUFRfTk9fQVVUT01PVU5UKQogICAgICAgICAgcmVhbF9mbGFncyB8PSAweDgwMDAwMDAwMDAwMDAwMDA7IC8qIDEgPDwgNjMgKi8KQEAgLTQ2LDUgKzQ2LDUgQEAKICAgICAgYXJnc1syXSA9IGdfc3RyZHVwX3ByaW50ZiAoIiVkOj06JXMiLCBwYXJ0X251bSwgbWFza19zdHIpOwogICAgICBnX2ZyZWUgKG1hc2tfc3RyKTsKIC0tIAotMS44LjMuMQorMi4xNC4zCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2ZpbGVzLzAwMDUtZml4LWEtY2xhbmctY29tcGlsaW5nLWlzc3VlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvZmlsZXMvMDAwNS1maXgtYS1jbGFuZy1jb21waWxpbmctaXNzdWUucGF0Y2gKaW5kZXggMzgxODkzNi4uYjIxNGYwYiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvZmlsZXMvMDAwNS1maXgtYS1jbGFuZy1jb21waWxpbmctaXNzdWUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvZmlsZXMvMDAwNS1maXgtYS1jbGFuZy1jb21waWxpbmctaXNzdWUucGF0Y2gKQEAgLTE5LDE3ICsxOSwxNyBAQAogCiBTaWduZWQtb2ZmLWJ5OiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+CiAtLS0KLSBzcmMvcGx1Z2lucy9jcnlwdG8uYyB8IDYgKysrLS0tCi0gc3JjL3BsdWdpbnMvZnMuYyAgICAgfCA0ICsrLS0KLSBzcmMvcGx1Z2lucy9wYXJ0LmMgICB8IDQgKystLQotIHNyYy91dGlscy9leGVjLmMgICAgIHwgMiArLQorIHNyYy9wbHVnaW5zL2NyeXB0by5jICB8IDYgKysrLS0tCisgc3JjL3BsdWdpbnMvZnMvdmZhdC5jIHwgNCArKy0tCisgc3JjL3BsdWdpbnMvcGFydC5jICAgIHwgNCArKy0tCisgc3JjL3V0aWxzL2V4ZWMuYyAgICAgIHwgMiArLQogIDQgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvc3JjL3BsdWdpbnMvY3J5cHRvLmMgYi9zcmMvcGx1Z2lucy9jcnlwdG8uYwotaW5kZXggOGZiY2U0Zi4uN2VlN2NkYyAxMDA2NDQKK2luZGV4IDU2MzA5M2UuLmI5NjE0NzEgMTAwNjQ0CiAtLS0gYS9zcmMvcGx1Z2lucy9jcnlwdG8uYwogKysrIGIvc3JjL3BsdWdpbnMvY3J5cHRvLmMKLUBAIC04ODEsNyArODgxLDcgQEAgZ2Jvb2xlYW4gYmRfY3J5cHRvX3RjX29wZW4gKGNvbnN0IGdjaGFyICpkZXZpY2UsIGNvbnN0IGdjaGFyICpuYW1lLCBjb25zdCBndWludDgKK0BAIC05NzAsNyArOTcwLDcgQEAgZ2Jvb2xlYW4gYmRfY3J5cHRvX3RjX29wZW4gKGNvbnN0IGdjaGFyICpkZXZpY2UsIGNvbnN0IGdjaGFyICpuYW1lLCBjb25zdCBndWludDgKICAgICAgZ2ludCByZXQgPSAwOwogICAgICBndWludDY0IHByb2dyZXNzX2lkID0gMDsKICAgICAgZ2NoYXIgKm1zZyA9IE5VTEw7CkBAIC0zOCw3ICszOCw3IEBACiAgCiAgICAgIG1zZyA9IGdfc3RyZHVwX3ByaW50ZiAoIlN0YXJ0ZWQgb3BlbmluZyAnJXMnIFRydWVDcnlwdC9WZXJhQ3J5cHQgZGV2aWNlIiwgZGV2aWNlKTsKICAgICAgcHJvZ3Jlc3NfaWQgPSBiZF91dGlsc19yZXBvcnRfc3RhcnRlZCAobXNnKTsKLUBAIC05OTksNyArOTk5LDcgQEAgc3RhdGljIGdjaGFyICpyZXBsYWNlX2NoYXIgKGdjaGFyICpzdHIsIGdjaGFyIG9yaWcsIGdjaGFyIG5ldykgeworQEAgLTEwOTAsNyArMTA5MCw3IEBAIHN0YXRpYyBnY2hhciAqcmVwbGFjZV9jaGFyIChnY2hhciAqc3RyLCBnY2hhciBvcmlnLCBnY2hhciBuZXcpIHsKICAgICAgcmV0dXJuIHN0cjsKICB9CiAgCkBAIC00Nyw3ICs0Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENFUlRDZXJ0aWZpY2F0ZSAqY2VydCwgR0Vycm9yICoqZXJyb3IpIHsKICAgICAgZ3BvaW50ZXIgcGFja2V0X2RhdGEgPSBOVUxMOwogICAgICBnc2l6ZSBwYWNrZXRfZGF0YV9zaXplID0gMDsKLUBAIC0xMDA4LDcgKzEwMDgsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd3JpdGVfZXNjcm93X2RhdGFfZmlsZSAoc3RydWN0IGxpYnZrX3ZvbHVtZSAqdm9sdW1lLCBzdHJ1Y3QgbGlidgorQEAgLTEwOTksNyArMTA5OSw3IEBAIHN0YXRpYyBnYm9vbGVhbiB3cml0ZV9lc2Nyb3dfZGF0YV9maWxlIChzdHJ1Y3QgbGlidmtfdm9sdW1lICp2b2x1bWUsIHN0cnVjdCBsaWJ2CiAgICAgIGdzaXplIGJ5dGVzX3dyaXR0ZW4gPSAwOwogICAgICBHRXJyb3IgKnRtcF9lcnJvciA9IE5VTEw7CiAgCkBAIC01NiwxMSArNTYsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aSwgTElCVktfUEFDS0VUX0ZPUk1BVF9BU1lNTUVUUklDX1dSQVBfU0VDUkVUX09OTFksIGVycm9yKTsKICAKICAgICAgaWYgKCFwYWNrZXRfZGF0YSkgewotZGlmZiAtLWdpdCBhL3NyYy9wbHVnaW5zL2ZzLmMgYi9zcmMvcGx1Z2lucy9mcy5jCi1pbmRleCBjNGI2YWM4Li42NDcwOTZkIDEwMDY0NAotLS0tIGEvc3JjL3BsdWdpbnMvZnMuYwotKysrIGIvc3JjL3BsdWdpbnMvZnMuYwotQEAgLTI2MTQsOCArMjYxNCw4IEBAIEJERlNWZmF0SW5mbyogYmRfZnNfdmZhdF9nZXRfaW5mbyAoY29uc3QgZ2NoYXIgKmRldmljZSwgR0Vycm9yICoqZXJyb3IpIHsKK2RpZmYgLS1naXQgYS9zcmMvcGx1Z2lucy9mcy92ZmF0LmMgYi9zcmMvcGx1Z2lucy9mcy92ZmF0LmMKK2luZGV4IDNlZDdkNGEuLjVmZjc3OTUgMTAwNjQ0CistLS0gYS9zcmMvcGx1Z2lucy9mcy92ZmF0LmMKKysrKyBiL3NyYy9wbHVnaW5zL2ZzL3ZmYXQuYworQEAgLTM3Niw4ICszNzYsOCBAQCBCREZTVmZhdEluZm8qIGJkX2ZzX3ZmYXRfZ2V0X2luZm8gKGNvbnN0IGdjaGFyICpkZXZpY2UsIEdFcnJvciAqKmVycm9yKSB7CiAgICovCiAgZ2Jvb2xlYW4gYmRfZnNfdmZhdF9yZXNpemUgKGNvbnN0IGdjaGFyICpkZXZpY2UsIGd1aW50NjQgbmV3X3NpemUsIEdFcnJvciAqKmVycm9yKSB7CiAgICAgIFBlZERldmljZSAqcGVkX2RldiA9IE5VTEw7CkBAIC03MiwxMCArNzIsMTAgQEAKICAgICAgUGVkU2VjdG9yIHN0YXJ0ID0gMDsKICAgICAgUGVkU2VjdG9yIGxlbmd0aCA9IDA7CiBkaWZmIC0tZ2l0IGEvc3JjL3BsdWdpbnMvcGFydC5jIGIvc3JjL3BsdWdpbnMvcGFydC5jCi1pbmRleCAxMmQyZWY3Li5kMjc3Njg4IDEwMDY0NAoraW5kZXggZmVkODMwMC4uNmIyYTY5MCAxMDA2NDQKIC0tLSBhL3NyYy9wbHVnaW5zL3BhcnQuYwogKysrIGIvc3JjL3BsdWdpbnMvcGFydC5jCi1AQCAtODQ5LDcgKzg0OSw3IEBAIHN0YXRpYyBQZWRQYXJ0aXRpb24qIGFkZF9wYXJ0X3RvX2Rpc2sgKFBlZERldmljZSAqZGV2LCBQZWREaXNrICpkaXNrLCBCRFBhcnRUeXBlCitAQCAtOTI2LDcgKzkyNiw3IEBAIHN0YXRpYyBQZWRQYXJ0aXRpb24qIGFkZF9wYXJ0X3RvX2Rpc2sgKFBlZERldmljZSAqZGV2LCBQZWREaXNrICpkaXNrLCBCRFBhcnRUeXBlCiAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgfQogIApAQCAtODQsNyArODQsNyBAQAogICAgICBpZiAoIXBhcnQpIHsKICAgICAgICAgIHNldF9wYXJ0ZWRfZXJyb3IgKGVycm9yLCBCRF9QQVJUX0VSUk9SX0ZBSUwpOwogICAgICAgICAgZ19wcmVmaXhfZXJyb3IgKGVycm9yLCAiRmFpbGVkIHRvIGNyZWF0ZSBuZXcgcGFydGl0aW9uIG9uIGRldmljZSAnJXMnIiwgZGV2LT5wYXRoKTsKLUBAIC0xNDI3LDcgKzE0MjcsNyBAQCBnYm9vbGVhbiBiZF9wYXJ0X3NldF9wYXJ0X2ZsYWdzIChjb25zdCBnY2hhciAqZGlzaywgY29uc3QgZ2NoYXIgKnBhcnQsIGd1aW50NjQgZgorQEAgLTE1NjQsNyArMTU2NCw3IEBAIGdib29sZWFuIGJkX3BhcnRfc2V0X3BhcnRfZmxhZ3MgKGNvbnN0IGdjaGFyICpkaXNrLCBjb25zdCBnY2hhciAqcGFydCwgZ3VpbnQ2NCBmCiAgICAgIFBlZFBhcnRpdGlvbiAqcGVkX3BhcnQgPSBOVUxMOwogICAgICBjb25zdCBnY2hhciAqcGFydF9udW1fc3RyID0gTlVMTDsKICAgICAgZ2ludCBwYXJ0X251bSA9IDA7CkBAIC05NCw3ICs5NCw3IEBACiAgICAgIGdib29sZWFuIHJldCA9IEZBTFNFOwogICAgICBndWludDY0IHByb2dyZXNzX2lkID0gMDsKIGRpZmYgLS1naXQgYS9zcmMvdXRpbHMvZXhlYy5jIGIvc3JjL3V0aWxzL2V4ZWMuYwotaW5kZXggN2FjNDRmZC4uMGEzMDk0YyAxMDA2NDQKK2luZGV4IDExYzE0ODkuLmRjZjg3ZTUgMTAwNjQ0CiAtLS0gYS9zcmMvdXRpbHMvZXhlYy5jCiArKysgYi9zcmMvdXRpbHMvZXhlYy5jCiBAQCAtMzU0LDcgKzM1NCw3IEBAIGdib29sZWFuIGJkX3V0aWxzX2V4ZWNfYW5kX3JlcG9ydF9wcm9ncmVzcyAoY29uc3QgZ2NoYXIgKiphcmd2LCBjb25zdCBCREV4dHJhQXJnCkBAIC0xMDcsNSArMTA3LDUgQEAKICAgICAgZ2Jvb2xlYW4gZXJyX2RvbmUgPSBGQUxTRTsKICAgICAgR1N0cmluZyAqc3Rkb3V0X2RhdGEgPSBnX3N0cmluZ19uZXcgKE5VTEwpOwogLS0gCi0xLjguMy4xCisyLjE0LjMKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvbGliYmxvY2tkZXZfMi4xMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2xpYmJsb2NrZGV2XzIuMTAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhOTIzNTQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliYmxvY2tkZXYvbGliYmxvY2tkZXZfMi4xMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLURFU0NSSVBUSU9OID0gImxpYmJsb2NrZGV2IGlzIGEgQyBsaWJyYXJ5IHN1cHBvcnRpbmcgR09iamVjdCBpbnRyb3NwZWN0aW9uIGZvciBtYW5pcHVsYXRpb24gb2YgXAotYmxvY2sgZGV2aWNlcy4gSXQgaGFzIGEgcGx1Z2luLWJhc2VkIGFyY2hpdGVjdHVyZSB3aGVyZSBlYWNoIHRlY2hub2xvZ3kgKGxpa2UgXAotTFZNLCBCdHJmcywgTUQgUkFJRCwgU3dhcCwuLi4pIGlzIGltcGxlbWVudGVkIGluIGEgc2VwYXJhdGUgcGx1Z2luLCBwb3NzaWJseSBcCi13aXRoIG11bHRpcGxlIGltcGxlbWVudGF0aW9ucyAoZS5nLiB1c2luZyBMVk0gQ0xJIG9yIHRoZSBuZXcgTFZNIERCdXMgQVBJKS4iCi1IT01FUEFHRSA9ICJodHRwOi8vcmhpbnN0YWxsZXIuZ2l0aHViLmlvL2xpYmJsb2NrZGV2LyIKLUxJQ0VOU0UgPSAiTEdQTHYyKyIKLVNFQ1RJT04gPSAiZGV2ZWwvbGliIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1jMDdjYjQ5OWQyNTk0NTJmMzI0YmI5MGMzMDY3ZDg1YyIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLUIgPSAiJHtTfSIKLQotU1JDUkVWID0gImMxZGRhNDUwMDE1NDJlZGQ3ZDdmMWZmYzY0NTFjNWE3NDYyM2Y4MDUiCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vcmhpbnN0YWxsZXIvbGliYmxvY2tkZXY7YnJhbmNoPW1hc3RlciBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLWZpeC1jb25maWd1cmUtYW5kLWNvbXBpbGUtZmFpbHVyZXMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi1yZW1vdmUtcHl0aG9uMi1zdXBwb3J0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDMtcmVtb3ZlLWRtcmFpZC13aGlsZS1jb21waWxpbmctd2l0aC13aXRoLWRtLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDUtZml4LWEtY2xhbmctY29tcGlsaW5nLWlzc3VlLnBhdGNoIFwKLSIKLVNSQ19VUklfYXBwZW5kX2xpYmMtbXVzbCA9ICIgXAotICAgICAgICAgICBmaWxlOi8vMDAwNC1maXgtY29tcGlsZS1mYWlsdXJlLWFnYWluc3QtbXVzbC1DLWxpYnJhcnkucGF0Y2ggXAotIgotCi1pbmhlcml0IGF1dG90b29scyBweXRob24zbmF0aXZlIGdvYmplY3QtaW50cm9zcGVjdGlvbgotCi1ERVBFTkRTICs9ICIgXAotICAgIGNyeXB0c2V0dXAgXAotICAgIG5zcyBcCi0gICAgdm9sdW1lLWtleSBcCi0gICAgbGliYnl0ZXNpemUgXAotICAgIGJ0cmZzLXRvb2xzIFwKLSIKLVJERVBFTkRTXyR7UE59ICs9ICIgXAotICAgIGx2bTIgXAotIgotCi1GSUxFU18ke1BOfSArPSAiJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0iCi0KLVBBQ0tBR0VDT05GSUcgPz89ICJweXRob24zIGx2bSBkbSBrbW9kIHBhcnRlZCBmcyIKLVBBQ0tBR0VDT05GSUdbcHl0aG9uM10gPSAiLS13aXRoLXB5dGhvbjMsIC0td2l0aG91dC1weXRob24zLCxweXRob24zIgotUEFDS0FHRUNPTkZJR1tsdm1dID0gIi0td2l0aC1sdm0sIC0td2l0aG91dC1sdm0sIG11bHRpcGF0aC10b29scyIKLVBBQ0tBR0VDT05GSUdbZG1dID0gIi0td2l0aC1kbSwgLS13aXRob3V0LWRtIgotUEFDS0FHRUNPTkZJR1trbW9kXSA9ICItLXdpdGgta2JkLCAtLXdpdGhvdXQta2JkLCBrbW9kIgotUEFDS0FHRUNPTkZJR1twYXJ0ZWRdID0gIi0td2l0aC1wYXJ0LCAtLXdpdGhvdXQtcGFydCwgcGFydGVkIgotUEFDS0FHRUNPTkZJR1tmc10gPSAiLS13aXRoLWZzLCAtLXdpdGhvdXQtZnMsIHV0aWwtbGludXgiCi1QQUNLQUdFQ09ORklHW2RvY10gPSAiLS13aXRoLWd0ay1kb2MsIC0td2l0aG91dC1ndGstZG9jLCBndGstZG9jLW5hdGl2ZSIKLQotZXhwb3J0IFNUQUdJTkdfSU5DRElSCi1leHBvcnQgR0lSX0VYVFJBX0xJQlNfUEFUSD0iJHtCfS9zcmMvdXRpbHMvLmxpYnMiCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmJsb2NrZGV2L2xpYmJsb2NrZGV2XzIuMTYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9saWJibG9ja2Rldl8yLjE2LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjOTU0YWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJibG9ja2Rldi9saWJibG9ja2Rldl8yLjE2LmJiCkBAIC0wLDAgKzEsNTEgQEAKK0RFU0NSSVBUSU9OID0gImxpYmJsb2NrZGV2IGlzIGEgQyBsaWJyYXJ5IHN1cHBvcnRpbmcgR09iamVjdCBpbnRyb3NwZWN0aW9uIGZvciBtYW5pcHVsYXRpb24gb2YgXAorYmxvY2sgZGV2aWNlcy4gSXQgaGFzIGEgcGx1Z2luLWJhc2VkIGFyY2hpdGVjdHVyZSB3aGVyZSBlYWNoIHRlY2hub2xvZ3kgKGxpa2UgXAorTFZNLCBCdHJmcywgTUQgUkFJRCwgU3dhcCwuLi4pIGlzIGltcGxlbWVudGVkIGluIGEgc2VwYXJhdGUgcGx1Z2luLCBwb3NzaWJseSBcCit3aXRoIG11bHRpcGxlIGltcGxlbWVudGF0aW9ucyAoZS5nLiB1c2luZyBMVk0gQ0xJIG9yIHRoZSBuZXcgTFZNIERCdXMgQVBJKS4iCitIT01FUEFHRSA9ICJodHRwOi8vcmhpbnN0YWxsZXIuZ2l0aHViLmlvL2xpYmJsb2NrZGV2LyIKK0xJQ0VOU0UgPSAiTEdQTHYyKyIKK1NFQ1RJT04gPSAiZGV2ZWwvbGliIgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1jMDdjYjQ5OWQyNTk0NTJmMzI0YmI5MGMzMDY3ZDg1YyIKKworaW5oZXJpdCBhdXRvdG9vbHMgcHl0aG9uM25hdGl2ZSBnb2JqZWN0LWludHJvc3BlY3Rpb24KKworREVQRU5EUyArPSAiIFwKKyAgICBjcnlwdHNldHVwIFwKKyAgICBuc3MgXAorICAgIHZvbHVtZS1rZXkgXAorICAgIGxpYmJ5dGVzaXplIFwKKyAgICBidHJmcy10b29scyBcCisiCisKK1NSQ1JFViA9ICJlMmUwODk5ZWZlOGRkM2YxMTFmZjk1NWZiNmMxZGMxMGIwYmQyMDc1IgorU1JDX1VSSSA9ICIgXAorICAgIGdpdDovL2dpdGh1Yi5jb20vcmhpbnN0YWxsZXIvbGliYmxvY2tkZXY7YnJhbmNoPW1hc3RlciBcCisgICAgZmlsZTovLzAwMDEtZml4LWNvbmZpZ3VyZS1hbmQtY29tcGlsZS1mYWlsdXJlcy5wYXRjaCBcCisgICAgZmlsZTovLzAwMDItcmVtb3ZlLXB5dGhvbjItc3VwcG9ydC5wYXRjaCBcCisgICAgZmlsZTovLzAwMDMtcmVtb3ZlLWRtcmFpZC13aGlsZS1jb21waWxpbmctd2l0aC13aXRoLWRtLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwNS1maXgtYS1jbGFuZy1jb21waWxpbmctaXNzdWUucGF0Y2ggXAorIgorU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0gIiBcCisgICAgZmlsZTovLzAwMDQtZml4LWNvbXBpbGUtZmFpbHVyZS1hZ2FpbnN0LW11c2wtQy1saWJyYXJ5LnBhdGNoIFwKKyIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgbHZtMiBcCisiCisKK0ZJTEVTXyR7UE59ICs9ICIke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfSIKKworUEFDS0FHRUNPTkZJRyA/Pz0gInB5dGhvbjMgbHZtIGRtIGttb2QgcGFydGVkIGZzIgorUEFDS0FHRUNPTkZJR1tweXRob24zXSA9ICItLXdpdGgtcHl0aG9uMywgLS13aXRob3V0LXB5dGhvbjMsLHB5dGhvbjMiCitQQUNLQUdFQ09ORklHW2x2bV0gPSAiLS13aXRoLWx2bSwgLS13aXRob3V0LWx2bSwgbXVsdGlwYXRoLXRvb2xzIgorUEFDS0FHRUNPTkZJR1tkbV0gPSAiLS13aXRoLWRtLCAtLXdpdGhvdXQtZG0iCitQQUNLQUdFQ09ORklHW2ttb2RdID0gIi0td2l0aC1rYmQsIC0td2l0aG91dC1rYmQsIGttb2QiCitQQUNLQUdFQ09ORklHW3BhcnRlZF0gPSAiLS13aXRoLXBhcnQsIC0td2l0aG91dC1wYXJ0LCBwYXJ0ZWQiCitQQUNLQUdFQ09ORklHW2ZzXSA9ICItLXdpdGgtZnMsIC0td2l0aG91dC1mcywgdXRpbC1saW51eCIKK1BBQ0tBR0VDT05GSUdbZG9jXSA9ICItLXdpdGgtZ3RrLWRvYywgLS13aXRob3V0LWd0ay1kb2MsIGd0ay1kb2MtbmF0aXZlIgorCitleHBvcnQgR0lSX0VYVFJBX0xJQlNfUEFUSD0iJHtCfS9zcmMvdXRpbHMvLmxpYnMiCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmRpdmVjb21wdXRlci9maWxlcy9maXgtYXIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJkaXZlY29tcHV0ZXIvZmlsZXMvZml4LWFyLnBhdGNoCmluZGV4IGNjM2Y1ZDQuLmY2NWQyNmEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmRpdmVjb21wdXRlci9maWxlcy9maXgtYXIucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliZGl2ZWNvbXB1dGVyL2ZpbGVzL2ZpeC1hci5wYXRjaApAQCAtMiwxMSArMiwxMSBAQAogIGNvbmZpZ3VyZS5hYyB8ICAgIDEgKwogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQogCitJbmRleDogZ2l0L2NvbmZpZ3VyZS5hYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGdpdC5vcmlnL2NvbmZpZ3VyZS5hYwogKysrIGdpdC9jb25maWd1cmUuYWMKLUBAIC0yNCwxMCArMjQsMTEgQEAgTFRfSU5JVChbd2luMzItZGxsXSkKLSBMVF9QUk9HX1JDCi0gCitAQCAtNTYsNiArNTYsNyBAQCBBTV9DT05ESVRJT05BTChbRU5BQkxFX0VYQU1QTEVTXSwgW3Rlc3QKICAjIENoZWNrcyBmb3IgcHJvZ3JhbXMuCiAgQUNfUFJPR19DQwogIEFDX1BST0dfQ0NfQzk5CkBAIC0xNCw1ICsxNCwzIEBACiAgCiAgIyBFbmFibGUgYXV0b21ha2Ugc2lsZW50IGJ1aWxkIHJ1bGVzLgogIG00X2lmZGVmKFtBTV9TSUxFTlRfUlVMRVNdLFtBTV9TSUxFTlRfUlVMRVMoW3llc10pXSkKLSAKLSAjIENoZWNrcyBmb3IgbmF0aXZlIFdpbmRvd3MuCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJneGltL2xpYmd4aW1fMC41LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJneGltL2xpYmd4aW1fMC41LjAuYmIKaW5kZXggNWJmN2M2ZS4uN2U0YzMzMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGliZ3hpbS9saWJneGltXzAuNS4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYmd4aW0vbGliZ3hpbV8wLjUuMC5iYgpAQCAtMjYsNCArMjYsNiBAQAogRVhUUkFfT0VDT05GID0gIiAtLWRpc2FibGUtc3RhdGljIC0tZGlzYWJsZS1yZWJ1aWxkcyAtLWVuYWJsZS1jb21waWxlLXdhcm5pbmdzPW1pbmltdW0iCiBERVBFTkRTICs9ICJndGsrIGdsaWItMi4wIGdsaWItMi4wLW5hdGl2ZSBydWJ5LW5hdGl2ZSBpbnRsdG9vbC1uYXRpdmUgZ25vbWUtY29tbW9uLW5hdGl2ZSIKIAotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdldHRleHQKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcgZ2V0dGV4dAorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlicWIvbGlicWIvMDAwMS1SZW1vdmUtcnVudGltZS1jaGVjay1mb3ItQ0xPQ0tfTU9OT1RPTklDLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlicWIvbGlicWIvMDAwMS1SZW1vdmUtcnVudGltZS1jaGVjay1mb3ItQ0xPQ0tfTU9OT1RPTklDLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOGJjNWMwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnFiL2xpYnFiLzAwMDEtUmVtb3ZlLXJ1bnRpbWUtY2hlY2stZm9yLUNMT0NLX01PTk9UT05JQy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLUZyb20gZTZmYmFkMGMxMjJiYThlODdiNjdhOWUyNDQ3NTA1YWRjYWFmZTIwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDI5IE1hciAyMDE3IDE2OjMxOjM4IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIFJlbW92ZSBydW50aW1lIGNoZWNrIGZvciBDTE9DS19NT05PVE9OSUMKLQotRG9lcyBub3Qgd29yayBkdXJpbmcgY3Jvc3MgY29tcGlsZQotCi11c2UgYSBjb21waWxlLXRpbWUgY2hlY2sgdG8gZGV0ZWN0IHdoZXRoZXIgdGhlCi1tb25vdG9uaWMgY2xvY2sgaXMgYXZhaWxhYmxlLiBUaGlzIGNoZWNrIGNhbiBydW4ganVzdCBmaW5lIHdoZW4gd2UgYXJlCi1jcm9zcy1jb21waWxpbmcuCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBjb25maWd1cmUuYWMgfCAxMiArKysrKysrKysrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggZmExM2FlNi4uZjRmMGY0NiAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMTc1LDkgKzE3NSwxNyBAQCBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKAotICAgICAgICAgICAgICAgICAgKQotIAotIEFDX01TR19DSEVDS0lORyhmb3IgYSB3b3JraW5nIGNsb2NrX2dldHJlcyhDTE9DS19NT05PVE9OSUMsICZ0cykpCi0tQUNfUlVOX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKAotK0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oCi0gW1sjaW5jbHVkZSA8dGltZS5oPl1dLAotLVtbc3RydWN0IHRpbWVzcGVjIHRzOyBpZihjbG9ja19nZXRyZXMoQ0xPQ0tfTU9OT1RPTklDLCAmdHMpKSByZXR1cm4gLTE7XV0pXSwKLStbWwotKyNpbmNsdWRlIDx1bmlzdGQuaD4KLStpbnQgbWFpbigpIHsKLSsjaWYgIShkZWZpbmVkKF9QT1NJWF9NT05PVE9OSUNfQ0xPQ0spICYmIF9QT1NJWF9NT05PVE9OSUNfQ0xPQ0sgPj0gMCAmJiBkZWZpbmVkKENMT0NLX01PTk9UT05JQykpCi0rICAgICAgICAjZXJyb3IgTm8gbW9ub3RvbmljIGNsb2NrCi0rI2VuZGlmCi0rICAgIHJldHVybiAwOwotKwotK11dKV0sCi0gICAgICAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCi0gICAgICAgICAgICAgICAgICAgICAgIEFDX0RFRklORV9VTlFVT1RFRChbSEFWRV9DTE9DS19HRVRSRVNfTU9OT1RPTklDXSwgMSwgW0RlZmluZSB0byAxIGlmIGNsb2NrX2dldHJlcyhDTE9DS19NT05PVE9OSUMsICZ0cykgd29ya3NdKQotLS0gCi0yLjEyLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlicWIvbGlicWIvMDAwMS1idWlsZC1maXgtY29uZmlndXJlLXNjcmlwdC1uZWdsZWN0aW5nLXJlLWVuYWJsZS1vdXQtLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlicWIvbGlicWIvMDAwMS1idWlsZC1maXgtY29uZmlndXJlLXNjcmlwdC1uZWdsZWN0aW5nLXJlLWVuYWJsZS1vdXQtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4MmYzYmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJxYi9saWJxYi8wMDAxLWJ1aWxkLWZpeC1jb25maWd1cmUtc2NyaXB0LW5lZ2xlY3RpbmctcmUtZW5hYmxlLW91dC0ucGF0Y2gKQEAgLTAsMCArMSw1NiBAQAorRnJvbSA3M2QyYWVhMzNlMzIyNzJiYWM2OTM1NTBlOGEzYjBlM2FkODk3MDdmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0phbj0yMFBva29ybj1DMz1CRD89IDxqcG9rb3JueUByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAyNiBEZWMgMjAxNyAwMDowMjoyNiArMDEwMAorU3ViamVjdDogW1BBVENIXSBidWlsZDogZml4IGNvbmZpZ3VyZSBzY3JpcHQgbmVnbGVjdGluZywgcmUtZW5hYmxlIG91dC1vZi10cmVlCisgYnVpbGRzCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0ZvciB0aGUgZm9ybWVyLCBhIHByb3RvdHlwZSBhbmQgdGhlIGZpbmFsIGNvZGUgZ290IChobSwgbXlzdGVyaW91c2x5KQoraW50ZXJ0d2lzdGVkLiAgRm9yIHRoZSBsYXR0ZXIsIEkgYW0gY2xlYXJseSBndWlsdHkgb2YgKHJhcmUsIGFueXdheSkKK3Rlc3Rpbmcgb2YgdGhlIG91dC1vZi10cmVlIGJ1aWxkcyBvbmx5IHdpdGggbGlicWItYWxyZWFkeS1zeXN0ZW0td2lkZQorc2NlbmFyaW8sIHdoaWNoIGlzIHJhdGhlciBzaG9ydHNpZ2h0ZWQuCisKK1RoYW5rcyBGYWJpbyBhbmQgaGlzIGNpLmtyb25vc25ldC5vcmcgcHJvamVjdCBmb3Igc3BvdHRpbmcgdGhhdC4KKworWC1tYXMtcHJlc2VudC1mb3I6IEZhYmlvIE0uIERpIE5pdHRvIDxmZGluaXR0b0ByZWRoYXQuY29tPgorU2lnbmVkLW9mZi1ieTogSmFuIFBva29ybsO9IDxqcG9rb3JueUByZWRoYXQuY29tPgorLS0tCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CisKKyBjb25maWd1cmUuYWMgICAgfCAyICstCisgbGliL01ha2VmaWxlLmFtIHwgNCArKystCisgMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IDk5MDAzMTAuLmY5NzYxY2MgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTcxMCw3ICs3MTAsNyBAQCBpZiB0ZXN0ICJ4JHtHQ0N9IiA9IHh5ZXM7IHRoZW4KKyAJCQkgICAgICAgICAgICAgICAgICAgICAgfCBncmVwIF9fc3RvcF9fX3ZlcmJvc2UgfCBjdXQgLWQiICIgLWYgMykKKyAJCQkgdGVzdCAiJHt2ZXJib3NlX3N0YXJ0X2FkZHJ9IiA9ICIke3ZlcmJvc2Vfc3RvcF9hZGRyfSIgXAorIAkJCSAgICYmIGdjY19oYXNfYXR0cmlidXRlX3NlY3Rpb25fdmlzaWJsZT1ubyBcCistCQkJICAgfHwgeyB2ZXJib3NlX3N0YXJ0X3R5cGU9JCgke1JFQURFTEZ9IC1zIGJhY2t1cCBcCisrCQkJICAgfHwgeyB2ZXJib3NlX3N0YXJ0X3R5cGU9JCgke1JFQURFTEZ9IC1zICJjb25mdGVzdCR7c2hyZXh0X2NtZHN9IiBcCisgCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtbiAnL19fc3RhcnRfX192ZXJib3NlL3tzL15ccyovL3A7cX0nIFwKKyAJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHIgLXMgJyAnIFwKKyAJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY3V0IC1kIiAiIC1mNikKK2RpZmYgLS1naXQgYS9saWIvTWFrZWZpbGUuYW0gYi9saWIvTWFrZWZpbGUuYW0KK2luZGV4IDZjYTZiMTUuLmIwMzVmMGIgMTAwNjQ0CistLS0gYS9saWIvTWFrZWZpbGUuYW0KKysrKyBiL2xpYi9NYWtlZmlsZS5hbQorQEAgLTEwMSw3ICsxMDEsOSBAQCBlbmRpZgorIGVuZGlmCisgCisgcWJsb2dfc2NyaXB0LmxkOiAlLmxkOiAlLmxkLmluCistCSQoQU1fVl9HRU4pJChDUFApIC14YyAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSAtRF9HTlVfU09VUkNFIC1DIC1QICQ8IFwKKysJJChBTV9WX0dFTikkKENQUCkgLUMgLURfR05VX1NPVVJDRSAtUCBcCisrCSAgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgLUkkKHRvcF9idWlsZGRpcikvaW5jbHVkZSBcCisrCSAgLXhjICQ8IFwKKyAJICB8IHNlZCAtbiAiLyQkKHNlZCAtbiAnL15bXiNdL3tzL1sqXC9dL1xcJi9nO3A7cTt9JyAkPCkvLCQkIHAiIFwKKyAJICA+ICRACisgCistLSAKKzIuMTYuMgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJxYi9saWJxYl8xLjAuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnFiL2xpYnFiXzEuMC4yLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzRmNjYwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnFiL2xpYnFiXzEuMC4yLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotU1VNTUFSWSA9ICJBbiBJUEMgbGlicmFyeSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBzZXJ2ZXJzIgotREVTQ1JJUFRJT04gPSAibGlicWIgaXMgYSBsaWJyYXJ5IHdpdGggdGhlIHByaW1hcnkgcHVycG9zZSBvZiBwcm92aWRpbmcgaGlnaCBwZXJmb3JtYW5jZSBjbGllbnQgc2VydmVyIHJldXNhYmxlIGZlYXR1cmVzLiBcCi1JdCBwcm92aWRlcyBoaWdoIHBlcmZvcm1hbmNlIGxvZ2dpbmcsIHRyYWNpbmcsIGlwYywgYW5kIHBvbGwuIgotCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vY2x1c3RlcmxhYnMvbGlicWIvd2lraSIKLVNFQ1RJT04gPSAibGlicyIKLUxJQ0VOU0UgPSAiTEdQTC0yLjEiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0zMjFiZjQxZjI4MGNmODA1MDg2ZGQ1YTcyMGIzNzc4NSIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCi0KLVBWIC49ICIrZ2l0JHtTUkNQVn0iCi0KLVNSQ1JFViA9ICI2MDhkZTZkNTlhM2RlMGVlZjBmYmNiZDhmMjg0YWNiYzAxOGRhYTlhIgotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL0NsdXN0ZXJMYWJzLyR7QlBOfS5naXQgXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1SZW1vdmUtcnVudGltZS1jaGVjay1mb3ItQ0xPQ0tfTU9OT1RPTklDLnBhdGNoIFwKLSAgICAgICAgICAiCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1kb19jb25maWd1cmVfcHJlcGVuZCgpIHsKLSAgICAoIGNkICR7U30KLSAgICAke1N9L2F1dG9nZW4uc2ggKQotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlicWIvbGlicWJfMS4wLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJxYi9saWJxYl8xLjAuMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43M2NlYTVlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlicWIvbGlicWJfMS4wLjMuYmIKQEAgLTAsMCArMSwyNSBAQAorU1VNTUFSWSA9ICJBbiBJUEMgbGlicmFyeSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBzZXJ2ZXJzIgorREVTQ1JJUFRJT04gPSAibGlicWIgaXMgYSBsaWJyYXJ5IHdpdGggdGhlIHByaW1hcnkgcHVycG9zZSBvZiBwcm92aWRpbmcgaGlnaCBwZXJmb3JtYW5jZSBjbGllbnQgc2VydmVyIHJldXNhYmxlIGZlYXR1cmVzLiBcCitJdCBwcm92aWRlcyBoaWdoIHBlcmZvcm1hbmNlIGxvZ2dpbmcsIHRyYWNpbmcsIGlwYywgYW5kIHBvbGwuIgorCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vY2x1c3RlcmxhYnMvbGlicWIvd2lraSIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiTEdQTC0yLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0zMjFiZjQxZjI4MGNmODA1MDg2ZGQ1YTcyMGIzNzc4NSIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCisKK1BWIC49ICIrZ2l0JHtTUkNQVn0iCisKKyMgdjEuMC4zCitTUkNSRVYgPSAiMjhkZmYwOTBjNzRiNmJhODYwOWM0Nzk3Mjk0YTVhZmUzZmU3Mzk4NyIKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9DbHVzdGVyTGFicy8ke0JQTn0uZ2l0IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtYnVpbGQtZml4LWNvbmZpZ3VyZS1zY3JpcHQtbmVnbGVjdGluZy1yZS1lbmFibGUtb3V0LS5wYXRjaCBcCisgICAgICAgICAgIgorUyA9ICIke1dPUktESVJ9L2dpdCIKKworQ0ZMQUdTICs9ICItcHRocmVhZCAtRF9SRUVOVFJBTlQiCitkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKKyAgICAoIGNkICR7U30KKyAgICAke1N9L2F1dG9nZW4uc2ggKQorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlicmVwb3J0L2xpYnJlcG9ydF8yLjkuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnJlcG9ydC9saWJyZXBvcnRfMi45LjIuYmIKaW5kZXggNTI1NDM3Yi4uZjJjNjYxYyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlicmVwb3J0L2xpYnJlcG9ydF8yLjkuMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJyZXBvcnQvbGlicmVwb3J0XzIuOS4yLmJiCkBAIC01LDcgKzUsNyBAQAogTElDRU5TRSA9ICJHUEx2MisiCiBERVBFTkRTID0gInhtbHJwYy1jIHhtbHJwYy1jLW5hdGl2ZSBpbnRsdG9vbC1uYXRpdmUgXAogICAgICAgICBqc29uLWMgbGlidGFyIGxpYm5ld3QgbGlicHJveHkgcnBtIFwKLSAgICAgICAgYXVnZWFzIHNhdHlyIHN5c3RlbWQgZ3RrKzMgXAorICAgICAgICBhdWdlYXMgc2F0eXIgc3lzdGVtZCBcCiAiCiAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIgpAQCAtMjYsNiArMjYsOSBAQAogCiBpbmhlcml0IGdldHRleHQgYXV0b3Rvb2xzIHB5dGhvbjNuYXRpdmUgcGtnY29uZmlnCiAKK1BBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywneDExJywnZ3RrJywnJyxkKX0iCitQQUNLQUdFQ09ORklHW2d0a10gPSAiLS13aXRoLWd0aywgLS13aXRob3V0LWd0aywgZ3RrKzMsIgorCiBSREVQRU5EU19weXRob24zLWxpYnJlcG9ydCArPSAiJHtQTn0iCiAKIGRvX3BhdGNoW3ByZWZ1bmNzXSArPSAiZG9fZ2VuX3ZlcnNpb24iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJ3bWYvbGlid21mXzAuMi44LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9saWJ3bWYvbGlid21mXzAuMi44LjQuYmIKaW5kZXggOGFkNTQ1Ny4uMmMzMWEyMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbGlid21mL2xpYndtZl8wLjIuOC40LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2xpYndtZi9saWJ3bWZfMC4yLjguNC5iYgpAQCAtMTIsNyArMTIsOSBAQAogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKIAotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBhdXRvdG9vbHMgcGtnY29uZmlnCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIFNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3d2d2FyZS8ke0JQTn0vJHtQVn0vJHtCUE59LSR7UFZ9LnRhci5nejtuYW1lPXRhcmJhbGwgXAogICAgICAgICAgICBmaWxlOi8vbGlid21mLTAuMi44LjQtaW50b3ZlcmZsb3cucGF0Y2ggXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbW1sLXdpZGdldC9ndGttYXRodmlld18wLjguMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL21tbC13aWRnZXQvZ3RrbWF0aHZpZXdfMC44LjAuYmIKaW5kZXggMTU5MzVjOC4uZGY4MmJlZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbW1sLXdpZGdldC9ndGttYXRodmlld18wLjguMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9tbWwtd2lkZ2V0L2d0a21hdGh2aWV3XzAuOC4wLmJiCkBAIC0xNyw3ICsxNyw5IEBACiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBkb19jb25maWd1cmVfYXBwZW5kKCkgewogICAgICMgYXZvaWQgaG9zdCBwb2x1dGlvbiBpbmYgcGtnLWNvbmZpZyBmaWxlcwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbW96anMvbW96anMvTWFudWFsbHlfbW1hcF9oZWFwX21lbW9yeV9lc3IxNy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL21vempzL21vempzL01hbnVhbGx5X21tYXBfaGVhcF9tZW1vcnlfZXNyMTcucGF0Y2gKaW5kZXggMTVhZDAzZi4uODNmNDU0MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbW96anMvbW96anMvTWFudWFsbHlfbW1hcF9oZWFwX21lbW9yeV9lc3IxNy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9tb3pqcy9tb3pqcy9NYW51YWxseV9tbWFwX2hlYXBfbWVtb3J5X2VzcjE3LnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBhMGMwZjMyMjk5NDE5MzU5YjQ0YWMwZjg4MGMxZWE5MDczYWU1MWUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAxZDFmYTk1YzhmZjc2OTdlNDYzNDMzODVhNzlhOGY3ZTVjNTE0YTg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogWmhlbmcgWHUgPHpoZW5nLnh1QGxpbmFyby5vcmc+CiBEYXRlOiBGcmksIDIgU2VwIDIwMTYgMTc6NDA6MDUgKzA4MDAKIFN1YmplY3Q6IFtQQVRDSF0gQnVnIDExNDMwMjIgLSBNYW51YWxseSBtbWFwIG9uIGFybTY0IHRvIGVuc3VyZSBoaWdoIDE3IGJpdHMKQEAgLTE2LDExICsxNiwxMSBAQAogIDEgZmlsZSBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvanMvc3JjL2djL01lbW9yeS5jcHAgYi9qcy9zcmMvZ2MvTWVtb3J5LmNwcAotaW5kZXggNWIzODZhMi4uMzgxMDFjZiAxMDA2NDQKK2luZGV4IGU1YWQwMTguLjQxNDlhZGYgMTAwNjQ0CiAtLS0gYS9qcy9zcmMvZ2MvTWVtb3J5LmNwcAogKysrIGIvanMvc3JjL2djL01lbW9yeS5jcHAKLUBAIC0zMDYsNiArMzA2LDc1IEBAIEluaXRNZW1vcnlTdWJzeXN0ZW0oKQotICAgICAgICAgTU9aX0NSQVNIKCk7CitAQCAtMzA5LDYgKzMwOSw3NSBAQCBJbml0TWVtb3J5U3Vic3lzdGVtKCkKKyAjZW5kaWYKICB9CiAgCiArc3RhdGljIGlubGluZSB2b2lkICoKQEAgLTk1LDcgKzk1LDcgQEAKICB2b2lkICoKICBNYXBBbGlnbmVkUGFnZXMoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCiAgewotQEAgLTMxOSwxMiArMzg4LDEyIEBAIE1hcEFsaWduZWRQYWdlcyhzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkKK0BAIC0zMjIsMTIgKzM5MSwxMiBAQCBNYXBBbGlnbmVkUGFnZXMoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCiAgCiAgICAgIC8qIFNwZWNpYWwgY2FzZTogSWYgd2Ugd2FudCBwYWdlIGFsaWdubWVudCwgbm8gZnVydGhlciB3b3JrIGlzIG5lZWRlZC4gKi8KICAgICAgaWYgKGFsaWdubWVudCA9PSBQYWdlU2l6ZSkgewpAQCAtMTEwLDYgKzExMCwzIEBACiAgICAgIGlmIChyZWdpb24gPT0gTUFQX0ZBSUxFRCkKICAgICAgICAgIHJldHVybiBOVUxMOwogIAotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9tcmFhL21yYWFfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvbXJhYS9tcmFhX2dpdC5iYgppbmRleCA2MTYwNDhmLi45MzBjMDQxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9tcmFhL21yYWFfZ2l0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL21yYWEvbXJhYV9naXQuYmIKQEAgLTMsMTIgKzMsMTMgQEAKIFNFQ1RJT04gPSAibGlicyIKIAogTElDRU5TRSA9ICJNSVQiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT02NjQ5M2Q1NGU2NWJmYzEyYzc5ODNmZjJlODg0ZjM3ZiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTRiOTJhM2I0OTdkNzk0MzA0MmE2ZGI0MGMwODhjM2YyIgogCi1TUkNSRVYgPSAiOGRkYmNkZTg0ZTJkMTQ2YmMwZjllMzg1MDRkNmM4OWMxNDI5MTQ4MCIKLVBWID0gIjEuNy4wLWdpdCR7U1JDUFZ9IgorU1JDUkVWID0gImZiYjdkOTIzMjA2N2VhYzNmNDUwOGEzN2E4ZjdlYTBjNGZjZWJhY2IiCitQViA9ICIxLjkuMC1naXQke1NSQ1BWfSIKIAotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2ludGVsLWlvdC1kZXZraXQvJHtCUE59LmdpdDtwcm90b2NvbD1odHRwIgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2ludGVsLWlvdC1kZXZraXQvJHtCUE59LmdpdDtwcm90b2NvbD1odHRwIFwKKyAgICAgICAgICAgIgogCiBTID0gIiR7V09SS0RJUn0vZ2l0IgogCkBAIC0zMSw3ICszMiwxMyBAQAogIyBvdmVycmlkZSB0aGlzIGluIGxvY2FsLmNvbmYgdG8gZ2V0IG5lZWRlZCBiaW5kaW5ncy4KICMgQklORElOR1NfcG4tbXJhYT0icHl0aG9uIgogIyB3aWxsIHJlc3VsdCBpbiBvbmx5IHRoZSBweXRob24gYmluZGluZ3MgYmVpbmcgYnVpbHQvcGFja2FnZWQuCi1CSU5ESU5HUyA/Pz0gInB5dGhvbiAke0AgJ25vZGVqcycgaWYgb2UudHlwZXMuYm9vbGVhbihkLmdldFZhcignSEFWRV9OT0RFSlMnKSBvciAnMCcpIGVsc2UgJycgfSIKKyMgTm90ZTogJ25vZGVqcycgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBiZWNhdXNlIHRoZSBiaW5kaW5ncworIyBnZW5lcmF0aW9uIGN1cnJlbnRseSBmYWlscyB3aXRoIG5vZGVqcyAoPnY3LngpLgorQklORElOR1MgPz89ICJweXRob24iCisKKyMgbm9kZWpzIGlzbid0IGF2YWlsYWJsZSBmb3IgYXJtdjQvYXJtdjUgYXJjaGl0ZWN0dXJlcworQklORElOR1NfYXJtdjQgPz89ICJweXRob24iCitCSU5ESU5HU19hcm12NSA/Pz0gInB5dGhvbiIKIAogUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFUycsICdub2RlLSR7UE59JywgJ25vZGVqcycsICcnLCBkKX0gXAogICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFUycsICcke1BZVEhPTl9QTn0tJHtQTn0nLCAncHl0aG9uJywgJycsIGQpfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL29wZW53c21hbi9vcGVud3NtYW5fMi42LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9vcGVud3NtYW4vb3BlbndzbWFuXzIuNi4zLmJiCmluZGV4IGM0Nzc4Y2EuLmY2MThmMDIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL29wZW53c21hbi9vcGVud3NtYW5fMi42LjMuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvb3BlbndzbWFuL29wZW53c21hbl8yLjYuMy5iYgpAQCAtMTIsNiArMTIsOSBAQAogCiBERVBFTkRTID0gImN1cmwgbGlieG1sMiBvcGVuc3NsIGxpYnBhbSIKIAoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJwYW0iCisKIFNSQ1JFViA9ICJmZWI3ZWM5YjAwNGZjYWVhMGRiZTY1Y2U4YTFhNzljYzI5ZGQ5OTRjIgogUFYgPSAiMi42LjMiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3A3emlwL2ZpbGVzLzAwMDEtRml4LW5hcnJvd2luZy1lcnJvcnMtV2MtMTEtbmFycm93aW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcDd6aXAvZmlsZXMvMDAwMS1GaXgtbmFycm93aW5nLWVycm9ycy1XYy0xMS1uYXJyb3dpbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWUyNzUxNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3A3emlwL2ZpbGVzLzAwMDEtRml4LW5hcnJvd2luZy1lcnJvcnMtV2MtMTEtbmFycm93aW5nLnBhdGNoCkBAIC0wLDAgKzEsNDggQEAKK0Zyb20gYjZiMTc4MmFmNGFhN2Y5MDg0ZDMyZTQxNDQ3MzhkYzI1MzVjOGQ2ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBNb24sIDIzIEFwciAyMDE4IDIzOjA3OjIxIC0wNzAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBuYXJyb3dpbmcgZXJyb3JzIC1XYysrMTEtbmFycm93aW5nCisKK0NsYW5nIDYueCBmaW5kcyB0aGVzZSBlcnJvcnMKKworICAgIC4uLy4uLy4uLy4uL0NQUC9XaW5kb3dzL0Vycm9yTXNnLmNwcDoyNDoxMDogZXJyb3I6IGNhc2UgdmFsdWUgZXZhbHVhdGVzIHRvIC0yMTQ3MDI0ODA5LCB3aGljaCBjYW5ub3QgYmUgbmFycm93ZWQgdG8gdHlwZSAnRFdPUkQnIChha2EgJ3Vuc2lnbmVkIGludCcpIFstV2MrKzExLW5hcnJvd2luZ10KKyAgICAgICAgY2FzZSBFX0lOVkFMSURBUkcgICAgICAgICAgOiB0eHQgPSAiRV9JTlZBTElEQVJHIjsgYnJlYWsgOworICAgICAgICAgICAgIF4KKworSFJFU1VMVCBjYXVzZXMgdGhlIG1hY3JvIHRvIGJlIHBhcnNlZCBhcyBhIHNpZ25lZCBsb25nLCBzbyB3ZSBuZWVkIHRvIGZvcmNlIGl0Cit0byBiZSBjaGVja2VkIGFzIGFuIHVuc2lnbmVkIGxvbmcgaW5zdGVhZC4KKworYWxzbyByZXBvcnRlZCBoZXJlIGh0dHBzOi8vYnVncy5mcmVlYnNkLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjI0OTMwCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCisgQ1BQL1dpbmRvd3MvRXJyb3JNc2cuY3BwIHwgMTQgKysrKysrKy0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvQ1BQL1dpbmRvd3MvRXJyb3JNc2cuY3BwIGIvQ1BQL1dpbmRvd3MvRXJyb3JNc2cuY3BwCitpbmRleCA5OTY4NGFlLi43OGE2NGJhIDEwMDY0NAorLS0tIGEvQ1BQL1dpbmRvd3MvRXJyb3JNc2cuY3BwCisrKysgYi9DUFAvV2luZG93cy9FcnJvck1zZy5jcHAKK0BAIC0xNSwxMyArMTUsMTMgQEAgVVN0cmluZyBNeUZvcm1hdE1lc3NhZ2UoRFdPUkQgZXJyb3JDb2RlKQorIAorICAgc3dpdGNoKGVycm9yQ29kZSkgeworICAgICBjYXNlIEVSUk9SX05PX01PUkVfRklMRVMgICA6IHR4dCA9ICJObyBtb3JlIGZpbGVzIjsgYnJlYWsgOworLSAgICBjYXNlIEVfTk9USU1QTCAgICAgICAgICAgICA6IHR4dCA9ICJFX05PVElNUEwiOyBicmVhayA7CistICAgIGNhc2UgRV9OT0lOVEVSRkFDRSAgICAgICAgIDogdHh0ID0gIkVfTk9JTlRFUkZBQ0UiOyBicmVhayA7CistICAgIGNhc2UgRV9BQk9SVCAgICAgICAgICAgICAgIDogdHh0ID0gIkVfQUJPUlQiOyBicmVhayA7CistICAgIGNhc2UgRV9GQUlMICAgICAgICAgICAgICAgIDogdHh0ID0gIkVfRkFJTCI7IGJyZWFrIDsKKy0gICAgY2FzZSBTVEdfRV9JTlZBTElERlVOQ1RJT04gOiB0eHQgPSAiU1RHX0VfSU5WQUxJREZVTkNUSU9OIjsgYnJlYWsgOworLSAgICBjYXNlIEVfT1VUT0ZNRU1PUlkgICAgICAgICA6IHR4dCA9ICJFX09VVE9GTUVNT1JZIjsgYnJlYWsgOworLSAgICBjYXNlIEVfSU5WQUxJREFSRyAgICAgICAgICA6IHR4dCA9ICJFX0lOVkFMSURBUkciOyBicmVhayA7CisrICAgIGNhc2UgKERXT1JEKSBFX05PVElNUEwgICAgICAgICAgICAgOiB0eHQgPSAiRV9OT1RJTVBMIjsgYnJlYWsgOworKyAgICBjYXNlIChEV09SRCkgRV9OT0lOVEVSRkFDRSAgICAgICAgIDogdHh0ID0gIkVfTk9JTlRFUkZBQ0UiOyBicmVhayA7CisrICAgIGNhc2UgKERXT1JEKSBFX0FCT1JUICAgICAgICAgICAgICAgOiB0eHQgPSAiRV9BQk9SVCI7IGJyZWFrIDsKKysgICAgY2FzZSAoRFdPUkQpIEVfRkFJTCAgICAgICAgICAgICAgICA6IHR4dCA9ICJFX0ZBSUwiOyBicmVhayA7CisrICAgIGNhc2UgKERXT1JEKSBTVEdfRV9JTlZBTElERlVOQ1RJT04gOiB0eHQgPSAiU1RHX0VfSU5WQUxJREZVTkNUSU9OIjsgYnJlYWsgOworKyAgICBjYXNlIChEV09SRCkgRV9PVVRPRk1FTU9SWSAgICAgICAgIDogdHh0ID0gIkVfT1VUT0ZNRU1PUlkiOyBicmVhayA7CisrICAgIGNhc2UgKERXT1JEKSBFX0lOVkFMSURBUkcgICAgICAgICAgOiB0eHQgPSAiRV9JTlZBTElEQVJHIjsgYnJlYWsgOworICAgICBjYXNlIEVSUk9SX0RJUkVDVE9SWSAgICAgICAgICA6IHR4dCA9ICJFcnJvciBEaXJlY3RvcnkiOyBicmVhayA7CisgICAgIGRlZmF1bHQ6CisgICAgICAgdHh0ID0gc3RyZXJyb3IoZXJyb3JDb2RlKTsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3A3emlwL2ZpbGVzL0NWRS0yMDE3LTE3OTY5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcDd6aXAvZmlsZXMvQ1ZFLTIwMTctMTc5NjkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc3ZDE0NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3A3emlwL2ZpbGVzL0NWRS0yMDE3LTE3OTY5LnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK3A3emlwOiBGaXggQ1ZFLTIwMTctMTc5NjkKKworW05vIHVwc3RyZWFtIHRyYWNraW5nXSAtLSBodHRwczovL2J1Z3MuZGViaWFuLm9yZy9jZ2ktYmluL2J1Z3JlcG9ydC5jZ2k/YnVnPTg4ODI5NworCitIZWFwLWJhc2VkIGJ1ZmZlciBvdmVyZmxvdyBpbiA3emlwCisKK0NvbXByZXNzL1Nocmlua0RlY29kZXIuY3BwOiBIZWFwLWJhc2VkIGJ1ZmZlciBvdmVyZmxvdworaW4gdGhlIE5Db21wcmVzczo6TlNocmluazo6Q0RlY29kZXI6OkNvZGVSZWFsIG1ldGhvZAoraW4gNy1aaXAgYmVmb3JlIDE4LjAwIGFuZCBwN3ppcCBhbGxvd3MgcmVtb3RlIGF0dGFja2VycwordG8gY2F1c2UgYSBkZW5pYWwgb2Ygc2VydmljZSAob3V0LW9mLWJvdW5kcyB3cml0ZSkKK29yIHBvdGVudGlhbGx5IGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgdmlhIGEgY3JhZnRlZCBaSVAgYXJjaGl2ZS4gCisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgW2h0dHBzOi8vc291cmNlZm9yZ2UubmV0L3AvcDd6aXAvYnVncy9fZGlzY3Vzcy90aHJlYWQvMDkyMGYzNjkvODMxNi9hdHRhY2htZW50L0NWRS0yMDE3LTE3OTY5LnBhdGNoXQorQ1ZFOiBDVkUtMjAxNy0xNzk2OQorU2lnbmVkLW9mZi1ieTogUmFkb3ZhbiBTY2FzbnkgPHJhZG92YW4uc2Nhc255QHNpZW1lbnMuY29tPgorCistLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9TaHJpbmtEZWNvZGVyLmNwcAorKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvU2hyaW5rRGVjb2Rlci5jcHAKK0BAIC0xMjEsNyArMTIxLDEyIEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAqCisgICAgIHsKKyAgICAgICBfc3RhY2tbaSsrXSA9IF9zdWZmaXhlc1tjdXJdOworICAgICAgIGN1ciA9IF9wYXJlbnRzW2N1cl07CisrCSAgaWYgKGN1ciA+PSBrTnVtSXRlbXMgfHwgaSA+PSBrTnVtSXRlbXMpCisrCSAgCWJyZWFrOworICAgICB9CisrCQorKwlpZiAoY3VyID49IGtOdW1JdGVtcyB8fCBpID49IGtOdW1JdGVtcykKKysJCWJyZWFrOworICAgICAKKyAgICAgX3N0YWNrW2krK10gPSAoQnl0ZSljdXI7CisgICAgIGxhc3RDaGFyMiA9IChCeXRlKWN1cjsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3A3emlwL3A3emlwXzE2LjAyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcDd6aXAvcDd6aXBfMTYuMDIuYmIKaW5kZXggNjdmZmJjNi4uZDk4NmRhOSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcDd6aXAvcDd6aXBfMTYuMDIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcDd6aXAvcDd6aXBfMTYuMDIuYmIKQEAgLTYsNyArNiwxMCBAQAogICAgICAgICAgICAgICAgICAgICBmaWxlOi8vRE9DL0xpY2Vuc2UudHh0O21kNT04Nzk1OThlZGYxZjU0ZGRkYjY5MzBkNzU4MTM1N2Y4YiIKIAogU1JDX1VSSSA9ICJodHRwOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC9wN3ppcC9wN3ppcC8ke1BWfS9wN3ppcF8ke1BWfV9zcmNfYWxsLnRhci5iejIgXAotICAgICAgICAgIGZpbGU6Ly9kb19ub3Rfb3ZlcnJpZGVfY29tcGlsZXJfYW5kX2RvX25vdF9zdHJpcC5wYXRjaCIKKyAgICAgICAgICAgZmlsZTovL2RvX25vdF9vdmVycmlkZV9jb21waWxlcl9hbmRfZG9fbm90X3N0cmlwLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL0NWRS0yMDE3LTE3OTY5LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtRml4LW5hcnJvd2luZy1lcnJvcnMtV2MtMTEtbmFycm93aW5nLnBhdGNoIFwKKyAgICAgICAgICAgIgogCiBTUkNfVVJJW21kNXN1bV0gPSAiYTAxMjhkNjYxY2ZlN2NjOGMxMjFlNzM1MTljNTRmYmYiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWViMjBhYzBlMjk0NGY2Y2I5YzJkNTFkZDZjNDUxODk0MWMxODUzNDdkNDA4OWVhODkwODdmZmRkNmUyMzQxZiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3BhbS9wYW0tc3NoLWFnZW50LWF1dGhfMC4xMC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcGFtL3BhbS1zc2gtYWdlbnQtYXV0aF8wLjEwLjMuYmIKaW5kZXggZmY4ODUzMy4uMTYzOGM0MSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcGFtL3BhbS1zc2gtYWdlbnQtYXV0aF8wLjEwLjMuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcGFtL3BhbS1zc2gtYWdlbnQtYXV0aF8wLjEwLjMuYmIKQEAgLTEzLDYgKzEzLDkgQEAKIAogREVQRU5EUyArPSAibGlicGFtIG9wZW5zc2wiCiAKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAicGFtIgorCiAjIFRoaXMgZ2V0cyB1cyBzc2gtYWdlbnQsIHdoaWNoIHdlIGFyZSBhbG1vc3QgY2VydGFpbiB0byB3YW50LgogIwogUkRFUEVORFNfJHtQTn0gKz0gIm9wZW5zc2gtbWlzYyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3BvbGtpdC9maWxlcy9ndGstZG9jLWNoZWNrLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcG9sa2l0L2ZpbGVzL2d0ay1kb2MtY2hlY2sucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiNmFkNzUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcG9sa2l0L2ZpbGVzL2d0ay1kb2MtY2hlY2sucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0gcG9sa2l0LWdub21lLTAuMTA1L2NvbmZpZ3VyZS5hYy5vcmcJMjAxNS0wNS0wNCAyMjozMzowMy45MjU5Nzc5NTMgLTA3MDAKLSsrKyBwb2xraXQtZ25vbWUtMC4xMDUvY29uZmlndXJlLmFjCTIwMTUtMDUtMDQgMjI6MzM6MTYuODYyMjg4MDMwIC0wNzAwCi1AQCAtMTIwLDYgKzEyMCw5IEBACi0gIyBDaGVjayBmb3IgcmVxdWlyZWQgcGFja2FnZXMKLSAjICoqKioqKioqKioqKioqKioqKioqKioqKioqKgotIAotKyMgY2hlY2sgZm9yIGd0ay1kb2MKLStHVEtfRE9DX0NIRUNLKFsxLjE0XSxbLS1mbGF2b3VyIG5vLXRtcGxdKQotKwotIFBPTEtJVF9BR0VOVF9SRVFVSVJFRD0wLjk3Ci0gUE9MS0lUX0dPQkpFQ1RfUkVRVUlSRUQ9MC45NwotIEdUS19SRVFVSVJFRD0zLjAuMApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcG9sa2l0L3BvbGtpdC1nbm9tZV8wLjEwNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3BvbGtpdC9wb2xraXQtZ25vbWVfMC4xMDUuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlOTk3MzEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcG9sa2l0L3BvbGtpdC1nbm9tZV8wLjEwNS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVNVTU1BUlkgPSAiR05PTUUgQXV0aGVudGljYXRpb24gQWdlbnQgZm9yIFBvbGljeUtpdCIKLURFU0NSSVBUSU9OID0gIlBvbGljeUtpdC1nbm9tZSBwcm92aWRlcyBhbiBBdXRoZW50aWNhdGlvbiBBZ2VudCBmb3IgUG9saWN5S2l0IHRoYXQgaW50ZWdyYXRlcyB3ZWxsIHdpdGggdGhlIEdOT01FIGRlc2t0b3AgZW52aXJvbm1lbnQiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LnBhY2thZ2VraXQub3JnLyIKLUJVR1RSQUNLRVIgPSAiaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy8iCi1ERVBFTkRTID0gInBvbGtpdCBkYnVzLWdsaWIgZ2NvbmYgZ3RrKyBpbnRsdG9vbC1uYXRpdmUgZ25vbWUtY29tbW9uIgotTElDRU5TRSA9ICJMR1BMdjIrIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzQ1NzlmYWIxNzNlNGM1ZTEyYWFjMGNkODNlZTk4ZWMgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vc3JjL21haW4uYztiZWdpbmxpbmU9MTtlbmRsaW5lPTIwO21kNT1hYmExNDVkMTgwMmYyMzI5YmE1NjFlM2U0OGVjYjc5NSIKLQotU1JDX1VSSSA9ICJodHRwczovL2Rvd25sb2FkLmdub21lLm9yZy9zb3VyY2VzL3BvbGtpdC1nbm9tZS8ke1BWfS9wb2xraXQtZ25vbWUtJHtQVn0udGFyLnh6IFwKLSAgICAgICAgICAgZmlsZTovL2d0ay1kb2MtY2hlY2sucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gIjUwZWNhZDM3YzgzNDJmYjRhNTJmNTkwZGI3NTMwNjIxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjE3ODQ0OTQ5NjNiOGJmOWEwMGVlZGM2Y2QzYTI4NjhmYjEyM2I4YTVlNTE2ZTY2YzVlZGE0OGRmMTdhYjkzNjkiCi0KLUVYVFJBX09FQ09ORiA9ICJcCi0gICAgLS1kaXNhYmxlLXN0YXRpYyBcCi0iCi0KLURFUEVORFMgKz0gImd0ayszIgotCi1pbmhlcml0IGF1dG90b29scyBndGstZG9jIHBrZ2NvbmZpZwotCi1GSUxFU18ke1BOfSArPSAiICR7ZGF0YWRpcn0vZGJ1cy0xIFwKLSAgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS9Qb2xpY3lLaXQgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcmFycGQvcmFycGRfc3M5ODExMDcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yYXJwZC9yYXJwZF9zczk4MTEwNy5iYgppbmRleCA0MDI1YjgwLi43YzlmMmRmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yYXJwZC9yYXJwZF9zczk4MTEwNy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yYXJwZC9yYXJwZF9zczk4MTEwNy5iYgpAQCAtMzgsMTMgKzM4LDExIEBACiAgICAgaW5zdGFsbCAtbSA2NDQgcmFycGQuOCAke0R9JHttYW5kaXJ9L21hbjgvcmFycGQuOAogICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vZXRoZXJzLnNhbXBsZSAke0R9JHtzeXNjb25mZGlyfS9ldGhlcnMKIAotICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCdzeXN0ZW1kJywndHJ1ZScsJ2ZhbHNlJyxkKX07IHRoZW4KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQotICAgICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9yYXJwZC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLwotICAgIGZpCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3JhcnBkLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCiB9CiAKLWluaGVyaXQgJHtAYmIudXRpbHMuZmlsdGVyKCdWSVJUVUFMLVJVTlRJTUVfaW5pdF9tYW5hZ2VyJywgJ3N5c3RlbWQnLCBkKX0KK2luaGVyaXQgc3lzdGVtZAogCiBTWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59IgogU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gInJhcnBkLnNlcnZpY2UiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yb2Nrc2RiL3JvY2tzZGJfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcm9ja3NkYi9yb2Nrc2RiX2dpdC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWIxOWMxYS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yb2Nrc2RiL3JvY2tzZGJfZ2l0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotU1VNTUFSWSA9ICJSb2Nrc0RCIGFuIGVtYmVkZGFibGUsIHBlcnNpc3RlbnQga2V5LXZhbHVlIHN0b3JlIgotREVTQ1JJUFRJT04gPSAiUm9ja3NEQiBpcyBsaWJyYXJ5IHRoYXQgcHJvdmlkZXMgYW4gZW1iZWRkYWJsZSwgcGVyc2lzdGVudCBrZXktdmFsdWUgc3RvcmUgZm9yIGZhc3Qgc3RvcmFnZS4iCi1IT01FUEFHRSA9ICJodHRwOi8vcm9ja3NkYi5vcmcvIgotTElDRU5TRSA9ICIoQXBhY2hlLTIuMCB8IEdQTC0yLjApICYgQlNELTMtQ2xhdXNlIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS5BcGFjaGU7bWQ1PTNiODNlZjk2Mzg3ZjE0NjU1ZmM4NTRkZGMzYzZiZDU3IFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0xJQ0VOU0UubGV2ZWxkYjttZDU9ZmIwNGZmNTdhMTRmMzA4ZjJlZWQ0YTliODdkNDU4MzciCi0KLVNSQ1JFViA9ICIyNjZhYzI0NWFmZmQ2OTU1NTY0M2I3MzVkMTlkMzcxNWM0ZWZmOTFhIgotUFYgPSAiNS44K2dpdCR7U1JDUFZ9IgotCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vZmFjZWJvb2svJHtCUE59LmdpdCIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLQotaW5oZXJpdCBjbWFrZQotCi1QQUNLQUdFQ09ORklHID8/PSAiYnppcDIgemxpYiBsejQiCi1QQUNLQUdFQ09ORklHW2J6aXAyXSA9ICItRFdJVEhfQloyPU9OLC1EV0lUSF9CWjI9T0ZGLGJ6aXAyIgotUEFDS0FHRUNPTkZJR1tsejRdID0gIi1EV0lUSF9MWjQ9T04sLURXSVRIX0xaND1PRkYsbHo0IgotUEFDS0FHRUNPTkZJR1t6bGliXSA9ICItRFdJVEhfWkxJQj1PTiwtRFdJVEhfWkxJQj1PRkYsemxpYiIKLVBBQ0tBR0VDT05GSUdbbGl0ZV0gPSAiLURST0NLU0RCX0xJVEU9T04sLURST0NLU0RCX0xJVEU9T0ZGIgotCi0jIFRvb2xzIGFuZCB0ZXN0cyBjdXJyZW50bHkgZG9uJ3QgY29tcGlsZSBvbiBhcm12NSBzbyB3ZSBkaXNhYmxlIHRoZW0KLUVYVFJBX09FQ01BS0UgPSAiXAotICAgIC1EUE9SVEFCTEU9T04gXAotICAgIC1EV0lUSF9URVNUUz1PRkYgXAotICAgIC1EV0lUSF9UT09MUz1PRkYgXAotIgotCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9jbWFrZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JzeXNsb2cvcnN5c2xvZy8wMDAxLUluY2x1ZGUtc3lzLXRpbWUtaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JzeXNsb2cvcnN5c2xvZy8wMDAxLUluY2x1ZGUtc3lzLXRpbWUtaC5wYXRjaAppbmRleCAyM2MwZjI1Li5jYTg4ZGQzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2cvMDAwMS1JbmNsdWRlLXN5cy10aW1lLWgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcnN5c2xvZy9yc3lzbG9nLzAwMDEtSW5jbHVkZS1zeXMtdGltZS1oLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSAzYzNjMjFmNDczNWViMjE1MjA2MjczYmM3MTRjNTdjOTY5OTI2ZDNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA5NzM5MDk1ZGU2YWU1Zjg0NDM1NDc1NmFlOTY4ZjVmODg2NGViM2UzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTWluZyBMaXUgPHBldGVyLngubGl1QGV4dGVybmFsLmF0bGFzY29wY28uY29tPgogRGF0ZTogU3VuLCAyNiBGZWIgMjAxNyAxNDoxMDoyMSArMDEwMAogU3ViamVjdDogW1BBVENIXSBJbmNsdWRlIHN5cy90aW1lLmgKQEAgLTgsNiArOCw3IEBACiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW211c2wgbGliYyBzcGVjaWZpY10KIAogU2lnbmVkLW9mZi1ieTogTWluZyBMaXUgPHBldGVyLngubGl1QGV4dGVybmFsLmF0bGFzY29wY28uY29tPgorCiAtLS0KICB0ZXN0cy9tc2xlZXAuYyB8IDQgLS0tLQogIDEgZmlsZSBjaGFuZ2VkLCA0IGRlbGV0aW9ucygtKQpAQCAtMjgsNiArMjksMyBAQAogIAogIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgewotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2cvMDAwMS1VbmRlZmluZS1HTE9CX0JSQUNFLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcnN5c2xvZy9yc3lzbG9nLzAwMDEtVW5kZWZpbmUtR0xPQl9CUkFDRS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzkwM2JiMS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2cvMDAwMS1VbmRlZmluZS1HTE9CX0JSQUNFLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotRnJvbSA2NzQ2ZTNhOTYxNWQxNTY2YmYyMjhlOTAxMmQwODQxYjE1MTc4ODEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWluZyBMaXUgPGxpdS5taW5nNTBAZ21haWwuY29tPgotRGF0ZTogU3VuLCAyNiBGZWIgMjAxNyAxMzo1MDozMyArMDEwMAotU3ViamVjdDogW1BBVENIXSBVbmRlZmluZSBHTE9CX0JSQUNFCi0KLUdMT0JfQlJBQ0UgaXMgbm90IGRlZmluZWQgaW4gcG9zaXggYW5kIHRodXMgbm90IGltcGxlbWVudGVkIGluIG11c2wgbGliYy4KLQotRml4ZWQgYnkgZGVmaW5pbmcgaXQgdG8gMCBpZiBpdCBpcyB1bmRlZmluZWQuCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbbXVzbCBsaWJjIHNwZWNpZmljXQotCi1TaWduZWQtb2ZmLWJ5OiBNaW5nIExpdSA8cGV0ZXIueC5saXVAZXh0ZXJuYWwuYXRsYXNjb3Bjby5jb20+Ci0tLS0KLSBwbHVnaW5zL2ltZmlsZS9pbWZpbGUuYyB8IDUgKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9wbHVnaW5zL2ltZmlsZS9pbWZpbGUuYyBiL3BsdWdpbnMvaW1maWxlL2ltZmlsZS5jCi1pbmRleCBkMjA0NzFmLi5mOWFmZjgxIDEwMDY0NAotLS0tIGEvcGx1Z2lucy9pbWZpbGUvaW1maWxlLmMKLSsrKyBiL3BsdWdpbnMvaW1maWxlL2ltZmlsZS5jCi1AQCAtODUsNiArODUsMTEgQEAgc3RhdGljIGludCBiTGVnYWN5Q25mTW9kR2xvYmFsc1Blcm1pdHRlZDsvKiBhcmUgbGVnYWN5IG1vZHVsZS1nbG9iYWwgY29uZmlnIHBhcmEKLSAKLSAjZGVmaW5lIEFERF9NRVRBREFUQV9VTlNQRUNJRklFRCAtMQotIAotKy8qIGZpeGVzIGJ1aWxkIHdpdGggbXVzbCBsaWJjICovCi0rI2lmbmRlZiBHTE9CX0JSQUNFCi0rI2RlZmluZSBHTE9CX0JSQUNFIDAKLSsjZW5kaWYKLSsKLSAvKiB0aGlzIHN0cnVjdHVyZSBpcyB1c2VkIGluIHB1cmUgcG9sbGluZyBtb2RlIGFzIHdlbGwgb25lIG9mIHRoZSBzdXBwb3J0Ci0gICogc3RydWN0dXJlcyBmb3IgaW5vdGlmeS4KLSAgKi8KLS0tIAotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcnN5c2xvZy9yc3lzbG9nL3JzeXNsb2ctZml4LXB0ZXN0LW5vdC1maW5pc2gucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2cvcnN5c2xvZy1maXgtcHRlc3Qtbm90LWZpbmlzaC5wYXRjaAppbmRleCBiZGNiNmUyLi5hMjQ4Zjc1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2cvcnN5c2xvZy1maXgtcHRlc3Qtbm90LWZpbmlzaC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2cvcnN5c2xvZy1maXgtcHRlc3Qtbm90LWZpbmlzaC5wYXRjaApAQCAtMSwzICsxLDggQEAKK0Zyb20gMDdhZDJhMTkwNTA4OWI5MTI0NjIzMzI0YTk5NjllNDUyMjMxNzExMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CitEYXRlOiBGcmksIDEyIFNlcCAyMDE0IDAzOjQxOjExIC0wNDAwCitTdWJqZWN0OiBbUEFUQ0hdIHJzeXNsb2c6IHVwZGF0ZSBjb25maWd1cmUgdG8gZml4IHB0ZXN0CisKICRNYXhNZXNzYWdlU2l6ZSBkb2Vzbid0IHdvcmsgaWYgYmVmb3JlICRJbmNsdWRlQ29uZmlnIGRpYWctY29tbW9uLmNvbmYsIHRoZW4KIHRlc3QgY2FzZXMgZmFsbCBpbnRvIGluZmluaXRlIGxvb3Agd2l0aCBlcnJvciBtZXNzYWdlOgogCkBAIC02LDEzICsxMSwyNCBAQAogCiBVcGRhdGUgY29uZmlndXJlIHRvIGZpeCBpdC4KIAotVXBzdHJlYW0tU3RhdHVzOiBwZW5kaW5nCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAotS2FpIEthbmcgPGthaS5rYW5nQHdpbmRyaXZlci5jb20+CitTaWduZWQtb2ZmLWJ5OiBLYWkgS2FuZyA8a2FpLmthbmdAd2luZHJpdmVyLmNvbT4KKwogLS0tCi1kaWZmIC1OcnUgcnN5c2xvZy03LjQuNC90ZXN0cy90ZXN0c3VpdGVzL2NvbXBsZXgxLmNvbmYgcnN5c2xvZy03LjQuNC5uZXcvdGVzdHMvdGVzdHN1aXRlcy9jb21wbGV4MS5jb25mCi0tLS0gcnN5c2xvZy03LjQuNC90ZXN0cy90ZXN0c3VpdGVzL2NvbXBsZXgxLmNvbmYJMjAxMy0wOC0zMSAwMDozMDo0MS4wMDAwMDAwMDAgKzA4MDAKLSsrKyByc3lzbG9nLTcuNC40Lm5ldy90ZXN0cy90ZXN0c3VpdGVzL2NvbXBsZXgxLmNvbmYJMjAxMy0xMi0xOCAxNDoyODoxMC42NDQwMDQxODQgKzA4MDAKKyB0ZXN0cy90ZXN0c3VpdGVzL2NvbXBsZXgxLmNvbmYgICAgICAgICAgICAgfCAyICstCisgdGVzdHMvdGVzdHN1aXRlcy9nemlwd3JfbGFyZ2UuY29uZiAgICAgICAgIHwgMiArLQorIHRlc3RzL3Rlc3RzdWl0ZXMvZ3ppcHdyX2xhcmdlX2R5bmZpbGUuY29uZiB8IDIgKy0KKyB0ZXN0cy90ZXN0c3VpdGVzL2ltcHRjcF9jb25uZHJvcC5jb25mICAgICAgfCAyICstCisgdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfbGFyZ2UuY29uZiAgICAgICAgIHwgMiArLQorIHRlc3RzL3Rlc3RzdWl0ZXMvaW10Y3BfY29ubmRyb3AuY29uZiAgICAgICB8IDIgKy0KKyB0ZXN0cy90ZXN0c3VpdGVzL3dyX2xhcmdlLmNvbmYgICAgICAgICAgICAgfCAyICstCisgNyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS90ZXN0cy90ZXN0c3VpdGVzL2NvbXBsZXgxLmNvbmYgYi90ZXN0cy90ZXN0c3VpdGVzL2NvbXBsZXgxLmNvbmYKK2luZGV4IDliNmE5ZjMuLmUwMGNhYTQgMTAwNjQ0CistLS0gYS90ZXN0cy90ZXN0c3VpdGVzL2NvbXBsZXgxLmNvbmYKKysrKyBiL3Rlc3RzL3Rlc3RzdWl0ZXMvY29tcGxleDEuY29uZgogQEAgLTEsNyArMSw3IEBACiAgIyBjb21wbGV4IHRlc3QgY2FzZSB3aXRoIG11bHRpcGxlIGFjdGlvbnMgaW4gZ3ppcCBtb2RlCiAgIyByZ2VyaGFyZHMsIDIwMDktMDUtMjIKQEAgLTIyLDkgKzM4LDEwIEBACiAgCiAgJE1haW5Nc2dRdWV1ZVRpbWVvdXRFbnF1ZXVlIDUwMDAKICAKLWRpZmYgLU5ydSByc3lzbG9nLTcuNC40L3Rlc3RzL3Rlc3RzdWl0ZXMvZ3ppcHdyX2xhcmdlLmNvbmYgcnN5c2xvZy03LjQuNC5uZXcvdGVzdHMvdGVzdHN1aXRlcy9nemlwd3JfbGFyZ2UuY29uZgotLS0tIHJzeXNsb2ctNy40LjQvdGVzdHMvdGVzdHN1aXRlcy9nemlwd3JfbGFyZ2UuY29uZgkyMDEyLTA0LTA0IDE0OjI5OjU1LjAwMDAwMDAwMCArMDgwMAotKysrIHJzeXNsb2ctNy40LjQubmV3L3Rlc3RzL3Rlc3RzdWl0ZXMvZ3ppcHdyX2xhcmdlLmNvbmYJMjAxMy0xMi0xOCAxNDoyODoxMC42NDUwMDQxODYgKzA4MDAKK2RpZmYgLS1naXQgYS90ZXN0cy90ZXN0c3VpdGVzL2d6aXB3cl9sYXJnZS5jb25mIGIvdGVzdHMvdGVzdHN1aXRlcy9nemlwd3JfbGFyZ2UuY29uZgoraW5kZXggNTRhZDNiYi4uZTgyNDdhOSAxMDA2NDQKKy0tLSBhL3Rlc3RzL3Rlc3RzdWl0ZXMvZ3ppcHdyX2xhcmdlLmNvbmYKKysrKyBiL3Rlc3RzL3Rlc3RzdWl0ZXMvZ3ppcHdyX2xhcmdlLmNvbmYKIEBAIC0xLDcgKzEsNyBAQAogICMgc2ltcGxlIGFzeW5jIHdyaXRpbmcgdGVzdAogICMgcmdlcmhhcmRzLCAyMDEwLTAzLTA5CkBAIC0zNCw5ICs1MSwxMCBAQAogIAogICRNb2RMb2FkIC4uL3BsdWdpbnMvaW10Y3AvLmxpYnMvaW10Y3AKICAkTWFpbk1zZ1F1ZXVlVGltZW91dFNodXRkb3duIDEwMDAwCi1kaWZmIC1OcnUgcnN5c2xvZy03LjQuNC90ZXN0cy90ZXN0c3VpdGVzL2d6aXB3cl9sYXJnZV9keW5maWxlLmNvbmYgcnN5c2xvZy03LjQuNC5uZXcvdGVzdHMvdGVzdHN1aXRlcy9nemlwd3JfbGFyZ2VfZHluZmlsZS5jb25mCi0tLS0gcnN5c2xvZy03LjQuNC90ZXN0cy90ZXN0c3VpdGVzL2d6aXB3cl9sYXJnZV9keW5maWxlLmNvbmYJMjAxMi0wNC0wNCAxNDoyOTo1NS4wMDAwMDAwMDAgKzA4MDAKLSsrKyByc3lzbG9nLTcuNC40Lm5ldy90ZXN0cy90ZXN0c3VpdGVzL2d6aXB3cl9sYXJnZV9keW5maWxlLmNvbmYJMjAxMy0xMi0xOCAxNDoyODoxMC42NDUwMDQxODYgKzA4MDAKK2RpZmYgLS1naXQgYS90ZXN0cy90ZXN0c3VpdGVzL2d6aXB3cl9sYXJnZV9keW5maWxlLmNvbmYgYi90ZXN0cy90ZXN0c3VpdGVzL2d6aXB3cl9sYXJnZV9keW5maWxlLmNvbmYKK2luZGV4IDNhMWIyNTUuLjI5N2NiNzAgMTAwNjQ0CistLS0gYS90ZXN0cy90ZXN0c3VpdGVzL2d6aXB3cl9sYXJnZV9keW5maWxlLmNvbmYKKysrKyBiL3Rlc3RzL3Rlc3RzdWl0ZXMvZ3ppcHdyX2xhcmdlX2R5bmZpbGUuY29uZgogQEAgLTEsNyArMSw3IEBACiAgIyBzaW1wbGUgYXN5bmMgd3JpdGluZyB0ZXN0CiAgIyByZ2VyaGFyZHMsIDIwMTAtMDMtMDkKQEAgLTQ2LDkgKzY0LDEwIEBACiAgCiAgJE1vZExvYWQgLi4vcGx1Z2lucy9pbXRjcC8ubGlicy9pbXRjcAogICRNYWluTXNnUXVldWVUaW1lb3V0U2h1dGRvd24gMTAwMDAKLWRpZmYgLU5ydSByc3lzbG9nLTcuNC40L3Rlc3RzL3Rlc3RzdWl0ZXMvaW1wdGNwX2Nvbm5kcm9wLmNvbmYgcnN5c2xvZy03LjQuNC5uZXcvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfY29ubmRyb3AuY29uZgotLS0tIHJzeXNsb2ctNy40LjQvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfY29ubmRyb3AuY29uZgkyMDEzLTA4LTMxIDAwOjMwOjQxLjAwMDAwMDAwMCArMDgwMAotKysrIHJzeXNsb2ctNy40LjQubmV3L3Rlc3RzL3Rlc3RzdWl0ZXMvaW1wdGNwX2Nvbm5kcm9wLmNvbmYJMjAxMy0xMi0xOCAxNDoyODoxMC42NDYwMDQxODkgKzA4MDAKK2RpZmYgLS1naXQgYS90ZXN0cy90ZXN0c3VpdGVzL2ltcHRjcF9jb25uZHJvcC5jb25mIGIvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfY29ubmRyb3AuY29uZgoraW5kZXggNzdhNWQ3OS4uZDlhMTRhOCAxMDA2NDQKKy0tLSBhL3Rlc3RzL3Rlc3RzdWl0ZXMvaW1wdGNwX2Nvbm5kcm9wLmNvbmYKKysrKyBiL3Rlc3RzL3Rlc3RzdWl0ZXMvaW1wdGNwX2Nvbm5kcm9wLmNvbmYKIEBAIC0xLDcgKzEsNyBAQAogICMgc2ltcGxlIGFzeW5jIHdyaXRpbmcgdGVzdAogICMgcmdlcmhhcmRzLCAyMDEwLTAzLTA5CkBAIC01OCw5ICs3NywxMCBAQAogIAogICRNb2RMb2FkIC4uL3BsdWdpbnMvaW1wdGNwLy5saWJzL2ltcHRjcAogICRNYWluTXNnUXVldWVUaW1lb3V0U2h1dGRvd24gMTAwMDAKLWRpZmYgLU5ydSByc3lzbG9nLTcuNC40L3Rlc3RzL3Rlc3RzdWl0ZXMvaW1wdGNwX2xhcmdlLmNvbmYgcnN5c2xvZy03LjQuNC5uZXcvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfbGFyZ2UuY29uZgotLS0tIHJzeXNsb2ctNy40LjQvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfbGFyZ2UuY29uZgkyMDEzLTA4LTMxIDAwOjMwOjQxLjAwMDAwMDAwMCArMDgwMAotKysrIHJzeXNsb2ctNy40LjQubmV3L3Rlc3RzL3Rlc3RzdWl0ZXMvaW1wdGNwX2xhcmdlLmNvbmYJMjAxMy0xMi0xOCAxNDoyODoxMC42NDYwMDQxODkgKzA4MDAKK2RpZmYgLS1naXQgYS90ZXN0cy90ZXN0c3VpdGVzL2ltcHRjcF9sYXJnZS5jb25mIGIvdGVzdHMvdGVzdHN1aXRlcy9pbXB0Y3BfbGFyZ2UuY29uZgoraW5kZXggNzdhNWQ3OS4uZDlhMTRhOCAxMDA2NDQKKy0tLSBhL3Rlc3RzL3Rlc3RzdWl0ZXMvaW1wdGNwX2xhcmdlLmNvbmYKKysrKyBiL3Rlc3RzL3Rlc3RzdWl0ZXMvaW1wdGNwX2xhcmdlLmNvbmYKIEBAIC0xLDcgKzEsNyBAQAogICMgc2ltcGxlIGFzeW5jIHdyaXRpbmcgdGVzdAogICMgcmdlcmhhcmRzLCAyMDEwLTAzLTA5CkBAIC03MCw5ICs5MCwxMCBAQAogIAogICRNb2RMb2FkIC4uL3BsdWdpbnMvaW1wdGNwLy5saWJzL2ltcHRjcAogICRNYWluTXNnUXVldWVUaW1lb3V0U2h1dGRvd24gMTAwMDAKLWRpZmYgLU5ydSByc3lzbG9nLTcuNC40L3Rlc3RzL3Rlc3RzdWl0ZXMvaW10Y3BfY29ubmRyb3AuY29uZiByc3lzbG9nLTcuNC40Lm5ldy90ZXN0cy90ZXN0c3VpdGVzL2ltdGNwX2Nvbm5kcm9wLmNvbmYKLS0tLSByc3lzbG9nLTcuNC40L3Rlc3RzL3Rlc3RzdWl0ZXMvaW10Y3BfY29ubmRyb3AuY29uZgkyMDEzLTA3LTE5IDIwOjU5OjAzLjAwMDAwMDAwMCArMDgwMAotKysrIHJzeXNsb2ctNy40LjQubmV3L3Rlc3RzL3Rlc3RzdWl0ZXMvaW10Y3BfY29ubmRyb3AuY29uZgkyMDEzLTEyLTE4IDE0OjI4OjEwLjY0NjAwNDE4OSArMDgwMAorZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzdWl0ZXMvaW10Y3BfY29ubmRyb3AuY29uZiBiL3Rlc3RzL3Rlc3RzdWl0ZXMvaW10Y3BfY29ubmRyb3AuY29uZgoraW5kZXggZGU0MWJjNC4uNzg0NGRjNyAxMDA2NDQKKy0tLSBhL3Rlc3RzL3Rlc3RzdWl0ZXMvaW10Y3BfY29ubmRyb3AuY29uZgorKysrIGIvdGVzdHMvdGVzdHN1aXRlcy9pbXRjcF9jb25uZHJvcC5jb25mCiBAQCAtMSw3ICsxLDcgQEAKICAjIHNpbXBsZSBhc3luYyB3cml0aW5nIHRlc3QKICAjIHJnZXJoYXJkcywgMjAxMC0wMy0wOQpAQCAtODIsOSArMTAzLDEwIEBACiAgCiAgJE1vZExvYWQgLi4vcGx1Z2lucy9pbXRjcC8ubGlicy9pbXRjcAogICRNYWluTXNnUXVldWVUaW1lb3V0U2h1dGRvd24gMTAwMDAKLWRpZmYgLU5ydSByc3lzbG9nLTcuNC40L3Rlc3RzL3Rlc3RzdWl0ZXMvd3JfbGFyZ2UuY29uZiByc3lzbG9nLTcuNC40Lm5ldy90ZXN0cy90ZXN0c3VpdGVzL3dyX2xhcmdlLmNvbmYKLS0tLSByc3lzbG9nLTcuNC40L3Rlc3RzL3Rlc3RzdWl0ZXMvd3JfbGFyZ2UuY29uZgkyMDEyLTA0LTA0IDE0OjI5OjU1LjAwMDAwMDAwMCArMDgwMAotKysrIHJzeXNsb2ctNy40LjQubmV3L3Rlc3RzL3Rlc3RzdWl0ZXMvd3JfbGFyZ2UuY29uZgkyMDEzLTEyLTE4IDE0OjI4OjEwLjY0NzAwNDE5MCArMDgwMAorZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzdWl0ZXMvd3JfbGFyZ2UuY29uZiBiL3Rlc3RzL3Rlc3RzdWl0ZXMvd3JfbGFyZ2UuY29uZgoraW5kZXggYjY0ZjEzMi4uYjBhZTI2NCAxMDA2NDQKKy0tLSBhL3Rlc3RzL3Rlc3RzdWl0ZXMvd3JfbGFyZ2UuY29uZgorKysrIGIvdGVzdHMvdGVzdHN1aXRlcy93cl9sYXJnZS5jb25mCiBAQCAtMSw3ICsxLDcgQEAKICAjIHNpbXBsZSBhc3luYyB3cml0aW5nIHRlc3QKICAjIHJnZXJoYXJkcywgMjAxMC0wMy0wOQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcnN5c2xvZy9yc3lzbG9nL3VzZS1wa2djb25maWctdG8tY2hlY2stbGliZ2NyeXB0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcnN5c2xvZy9yc3lzbG9nL3VzZS1wa2djb25maWctdG8tY2hlY2stbGliZ2NyeXB0LnBhdGNoCmluZGV4IDQ2ZWRkZDYuLjE2MmQyMzkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JzeXNsb2cvcnN5c2xvZy91c2UtcGtnY29uZmlnLXRvLWNoZWNrLWxpYmdjcnlwdC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2cvdXNlLXBrZ2NvbmZpZy10by1jaGVjay1saWJnY3J5cHQucGF0Y2gKQEAgLTEsNSArMSw1IEBACi1Gcm9tIDVjM2JhNzkxNzdmN2QxNzYzZGIzM2M0MzU4YWYyYWY2MGZmMjE0YjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+IAorRnJvbSBkMDg1MjAwNmJmM2QzMDVlODk4NGI4NWI0MTk5N2Q0M2Q0NDc2OTM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgogRGF0ZTogV2VkLCAxOCBKdW4gMjAxNCAxMzo0Njo1MiArMDgwMAogU3ViamVjdDogW1BBVENIXSB1c2UgcGtnY29uZmlnIHRvIGNoZWNrIGxpYmdjcnlwdAogCkBAIC0xMCwxNSArMTAsMTYgQEAKIAogU2lnbmVkLW9mZi1ieTogUm95IExpIDxyb25ncWluZy5saUB3aW5kcml2ZXIuY29tPgogU2lnbmVkLW9mZi1ieTogV2Vuem9uZyBGYW4gPHdlbnpvbmcuZmFuQHdpbmRyaXZlci5jb20+CisKIC0tLQogIGNvbmZpZ3VyZS5hYyB8IDE1ICstLS0tLS0tLS0tLS0tLQogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMTQgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDBmMzE4NjkuLmQzNWRiNDIgMTAwNjQ0CitpbmRleCA2MjE3OGMzLi5iNTZjOWM3IDEwMDY0NAogLS0tIGEvY29uZmlndXJlLmFjCiArKysgYi9jb25maWd1cmUuYWMKLUBAIC03NzcsMjAgKzc3Nyw3IEBAIEFDX0FSR19FTkFCTEUobGliZ2NyeXB0LAorQEAgLTg4OSwyMCArODg5LDcgQEAgQUNfQVJHX0VOQUJMRShsaWJnY3J5cHQsCiAgICAgICAgICBbZW5hYmxlX2xpYmdjcnlwdD15ZXNdCiAgKQogIGlmIHRlc3QgIngkZW5hYmxlX2xpYmdjcnlwdCIgPSAieHllcyI7IHRoZW4KQEAgLTQwLDYgKzQxLDMgQEAKICBmaQogIEFNX0NPTkRJVElPTkFMKEVOQUJMRV9MSUJHQ1JZUFQsIHRlc3QgeCRlbmFibGVfbGliZ2NyeXB0ID0geHllcykKICBBQ19TVUJTVChMSUJHQ1JZUFRfQ0ZMQUdTKQotLS0gCi0yLjguMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2dfOC4yOS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvcnN5c2xvZy9yc3lzbG9nXzguMjkuMC5iYgppbmRleCA3MDU2ZTFjLi40NzY1NDBkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9yc3lzbG9nL3JzeXNsb2dfOC4yOS4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3JzeXNsb2cvcnN5c2xvZ184LjI5LjAuYmIKQEAgLTI3LDcgKzI3LDYgQEAKICIKIAogU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0gIiBcCi0gICAgZmlsZTovLzAwMDEtVW5kZWZpbmUtR0xPQl9CUkFDRS5wYXRjaCBcCiAgICAgZmlsZTovLzAwMDEtSW5jbHVkZS1zeXMtdGltZS1oLnBhdGNoIFwKICIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvc2JsaW0tc2ZjYi9zYmxpbS1zZmNiXzEuNC45LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvc2JsaW0tc2ZjYi9zYmxpbS1zZmNiXzEuNC45LmJiCmluZGV4IGM2YjlmMTAuLjEwZmZhYWEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3NibGltLXNmY2Ivc2JsaW0tc2ZjYl8xLjQuOS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9zYmxpbS1zZmNiL3NibGltLXNmY2JfMS40LjkuYmIKQEAgLTExLDYgKzExLDkgQEAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWYzMDBhZmQ1OTg1NDZhZGQwMzQzNjRjZDBhNTMzMjYxIgogREVQRU5EUyA9ICJjdXJsIGxpYnBhbSBvcGVuc3NsIHNibGltLXNmYy1jb21tb24gdW56aXAtbmF0aXZlIgogCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjaworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gInBhbSIKKwogU1JDX1VSSSA9ICJodHRwOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC9zYmxpbS8ke0JQfS50YXIuYnoyIFwKICAgICAgICAgICAgZmlsZTovL3NmY2Iuc2VydmljZSBcCiAgICAgICAgICAgIGZpbGU6Ly9zYmxpbS1zZmNiLTEuMy45LXNmY2JyZXBvcy1zY2hlbWEtbG9jYXRpb24ucGF0Y2ggXApAQCAtMjgsNyArMzEsNyBAQAogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjYzNGE2N2IyZjdhYzNiMzg2YTc5MTYwZWI0NDQxM2Q2MThlMzNlNGU3ZmM3NGFlNjhiMDI0MDQ4NGFmMTQ5ZGQiCiAKIGluaGVyaXQgYXV0b3Rvb2xzCi1pbmhlcml0ICR7QGJiLnV0aWxzLmZpbHRlcignVklSVFVBTC1SVU5USU1FX2luaXRfbWFuYWdlcicsICdzeXN0ZW1kJywgZCl9Citpbmhlcml0IHN5c3RlbWQKIAogU1lTVEVNRF9QQUNLQUdFUyA9ICIke1BOfSIKIFNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJzYmxpbS1zZmNiLnNlcnZpY2UiCkBAIC01MywxMCArNTYsOCBAQAogCiAgICAgb2VfcnVubWFrZSBERVNURElSPSR7RH0gaW5zdGFsbAogCi0gICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsJ3N5c3RlbWQnLCd0cnVlJywnZmFsc2UnLGQpfTsgdGhlbgotICAgICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3NmY2Iuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9zYmxpbS1zZmNiLnNlcnZpY2UKLSAgICBmaQorICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9zZmNiLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vc2JsaW0tc2ZjYi5zZXJ2aWNlCiAKICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZAogICAgIG12ICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9zZmNiICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9zYmxpbS1zZmNiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9zbWFydG1vbnRvb2xzL3NtYXJ0bW9udG9vbHNfNi41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvc21hcnRtb250b29scy9zbWFydG1vbnRvb2xzXzYuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDk3MGQyYS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9zbWFydG1vbnRvb2xzL3NtYXJ0bW9udG9vbHNfNi41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotU1VNTUFSWSA9ICJDb250cm9sIGFuZCBtb25pdG9yIHN0b3JhZ2Ugc3lzdGVtcyB1c2luZyBTLk0uQS5SLlQiCi1ERVNDUklQVElPTiA9IFwKLSJUaGUgc21hcnRtb250b29scyBwYWNrYWdlIGNvbnRhaW5zIHR3byB1dGlsaXR5IHByb2dyYW1zIChzbWFydGN0bCBcCi1hbmQgc21hcnRkKSB0byBjb250cm9sIGFuZCBtb25pdG9yIHN0b3JhZ2Ugc3lzdGVtcyB1c2luZyB0aGUgU2VsZi1cCi1Nb25pdG9yaW5nLCBBbmFseXNpcyBhbmQgUmVwb3J0aW5nIFRlY2hub2xvZ3kgU3lzdGVtIChTTUFSVCkgYnVpbHQgXAotaW50byBtb3N0IG1vZGVybiBBVEEgYW5kIFNDU0kgaGFyZCBkaXNrcy4gSW4gbWFueSBjYXNlcywgdGhlc2UgXAotdXRpbGl0aWVzIHdpbGwgcHJvdmlkZSBhZHZhbmNlZCB3YXJuaW5nIG9mIGRpc2sgZGVncmFkYXRpb24gYW5kIGZhaWx1cmUuIgotCi1IT01FUEFHRSA9ICJodHRwOi8vc21hcnRtb250b29scy5zb3VyY2Vmb3JnZS5uZXQvIgotU0VDVElPTiA9ICJjb25zb2xlL3V0aWxzIgotCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMiCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3NtYXJ0bW9udG9vbHMvc21hcnRtb250b29scy0ke1BWfS50YXIuZ3ogXAotICAgIGZpbGU6Ly9pbml0ZC5zbWFydGQgXAotICAgIGZpbGU6Ly9zbWFydG1vbnRvb2xzLmRlZmF1bHQgXAotICAgIGZpbGU6Ly9zbWFydGQuc2VydmljZSBcCi0iCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdsaWJjYXAtbmcgc2VsaW51eCcsIGQpfSIKLVBBQ0tBR0VDT05GSUdbbGliY2FwLW5nXSA9ICItLXdpdGgtbGliY2FwLW5nPXllcywtLXdpdGgtbGliY2FwLW5nPW5vLGxpYmNhcC1uZyIKLVBBQ0tBR0VDT05GSUdbc2VsaW51eF0gPSAiLS13aXRoLXNlbGludXg9eWVzLC0td2l0aC1zZWxpbnV4PW5vLGxpYnNlbGludXgiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIwOTNhZWVjM2Y4ZjM5ZmE5YTM3NTkzYzQwMTJkMzE1NiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4OWU4YmIwODAxMzBiYzZjZTE0ODU3M2JhNWJiOTFiZmUzMDIzNmI2NGIxYjViYmNhMjY1MTVkNGI1Yzk0NWJjIgotCi1pbmhlcml0IGF1dG90b29scyB1cGRhdGUtcmMuZCBzeXN0ZW1kCi0KLVNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJzbWFydGQuc2VydmljZSIKLVNZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKLQotZG9faW5zdGFsbF9hcHBlbmQgKCkgewotICAgICNpbnN0YWxsIHRoZSBpbml0LmQvc21hcnRkCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKLSAgICBpbnN0YWxsIC1wIC1tIDA3NTUgJHtXT1JLRElSfS9pbml0ZC5zbWFydGQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3NtYXJ0ZAotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdAotICAgIGluc3RhbGwgLXAgLW0gMDY0NCAke1dPUktESVJ9L3NtYXJ0bW9udG9vbHMuZGVmYXVsdCAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3NtYXJ0bW9udG9vbHMKLQotICAgICNpbnN0YWxsIHN5c3RlbWQgc2VydmljZSBmaWxlCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3NtYXJ0ZC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgc2VkIC1pIC1lICdzLEBCQVNFX0JJTkRJUkAsJHtiYXNlX2JpbmRpcn0sZycgXAotICAgICAgICAtZSAncyxAU1lTQ09ORkRJUkAsJHtzeXNjb25mZGlyfSxnJyBcCi0gICAgICAgIC1lICdzLEBTQklORElSQCwke3NiaW5kaXJ9LGcnIFwKLSAgICAgICAgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vc21hcnRkLnNlcnZpY2UKLX0KLQotSU5JVFNDUklQVF9OQU1FID0gInNtYXJ0ZCIKLUlOSVRTQ1JJUFRfUEFSQU1TID0gInN0YXJ0IDYwIDIgMyA0IDUgLiBzdG9wIDYwIDAgMSA2IC4iCi0KLVJERVBFTkRTXyR7UE59ICs9ICJtYWlseCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3NtYXJ0bW9udG9vbHMvc21hcnRtb250b29sc182LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9zbWFydG1vbnRvb2xzL3NtYXJ0bW9udG9vbHNfNi42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhMTc2N2UKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9zbWFydG1vbnRvb2xzL3NtYXJ0bW9udG9vbHNfNi42LmJiCkBAIC0wLDAgKzEsNTIgQEAKK1NVTU1BUlkgPSAiQ29udHJvbCBhbmQgbW9uaXRvciBzdG9yYWdlIHN5c3RlbXMgdXNpbmcgUy5NLkEuUi5UIgorREVTQ1JJUFRJT04gPSBcCisiVGhlIHNtYXJ0bW9udG9vbHMgcGFja2FnZSBjb250YWlucyB0d28gdXRpbGl0eSBwcm9ncmFtcyAoc21hcnRjdGwgXAorYW5kIHNtYXJ0ZCkgdG8gY29udHJvbCBhbmQgbW9uaXRvciBzdG9yYWdlIHN5c3RlbXMgdXNpbmcgdGhlIFNlbGYtXAorTW9uaXRvcmluZywgQW5hbHlzaXMgYW5kIFJlcG9ydGluZyBUZWNobm9sb2d5IFN5c3RlbSAoU01BUlQpIGJ1aWx0IFwKK2ludG8gbW9zdCBtb2Rlcm4gQVRBIGFuZCBTQ1NJIGhhcmQgZGlza3MuIEluIG1hbnkgY2FzZXMsIHRoZXNlIFwKK3V0aWxpdGllcyB3aWxsIHByb3ZpZGUgYWR2YW5jZWQgd2FybmluZyBvZiBkaXNrIGRlZ3JhZGF0aW9uIGFuZCBmYWlsdXJlLiIKKworSE9NRVBBR0UgPSAiaHR0cDovL3NtYXJ0bW9udG9vbHMuc291cmNlZm9yZ2UubmV0LyIKK1NFQ1RJT04gPSAiY29uc29sZS91dGlscyIKKworTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgorCitTUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9zbWFydG1vbnRvb2xzL3NtYXJ0bW9udG9vbHMtJHtQVn0udGFyLmd6IFwKKyAgICBmaWxlOi8vaW5pdGQuc21hcnRkIFwKKyAgICBmaWxlOi8vc21hcnRtb250b29scy5kZWZhdWx0IFwKKyAgICBmaWxlOi8vc21hcnRkLnNlcnZpY2UgXAorIgorCitQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnbGliY2FwLW5nIHNlbGludXgnLCBkKX0iCitQQUNLQUdFQ09ORklHW2xpYmNhcC1uZ10gPSAiLS13aXRoLWxpYmNhcC1uZz15ZXMsLS13aXRoLWxpYmNhcC1uZz1ubyxsaWJjYXAtbmciCitQQUNLQUdFQ09ORklHW3NlbGludXhdID0gIi0td2l0aC1zZWxpbnV4PXllcywtLXdpdGgtc2VsaW51eD1ubyxsaWJzZWxpbnV4IgorCitTUkNfVVJJW21kNXN1bV0gPSAiOWFlMmM2ZTcxMzFjZDI4MTNlZGNjNjVjYmU1ZjIyM2YiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTFmNDNkMGZiMDY0ZmNjYWY4MjNiYmU2OGNmMGQzMTdkMDg5NWZmODk1YWEzNTNiMzMzOWEzYjMxNmE1MzA1NCIKKworaW5oZXJpdCBhdXRvdG9vbHMgdXBkYXRlLXJjLmQgc3lzdGVtZAorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAic21hcnRkLnNlcnZpY2UiCitTWVNURU1EX0FVVE9fRU5BQkxFID0gImRpc2FibGUiCisKK2RvX2luc3RhbGxfYXBwZW5kICgpIHsKKyAgICAjaW5zdGFsbCB0aGUgaW5pdC5kL3NtYXJ0ZAorICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgaW5zdGFsbCAtcCAtbSAwNzU1ICR7V09SS0RJUn0vaW5pdGQuc21hcnRkICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9zbWFydGQKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQKKyAgICBpbnN0YWxsIC1wIC1tIDA2NDQgJHtXT1JLRElSfS9zbWFydG1vbnRvb2xzLmRlZmF1bHQgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC9zbWFydG1vbnRvb2xzCisKKyAgICAjaW5zdGFsbCBzeXN0ZW1kIHNlcnZpY2UgZmlsZQorICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9zbWFydGQuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIHNlZCAtaSAtZSAncyxAQkFTRV9CSU5ESVJALCR7YmFzZV9iaW5kaXJ9LGcnIFwKKyAgICAgICAgLWUgJ3MsQFNZU0NPTkZESVJALCR7c3lzY29uZmRpcn0sZycgXAorICAgICAgICAtZSAncyxAU0JJTkRJUkAsJHtzYmluZGlyfSxnJyBcCisgICAgICAgICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL3NtYXJ0ZC5zZXJ2aWNlCit9CisKK0lOSVRTQ1JJUFRfTkFNRSA9ICJzbWFydGQiCitJTklUU0NSSVBUX1BBUkFNUyA9ICJzdGFydCA2MCAyIDMgNCA1IC4gc3RvcCA2MCAwIDEgNiAuIgorCitSREVQRU5EU18ke1BOfSArPSAibWFpbHgiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9zb2NrZXRjYW4vY2FuLWlzb3RwX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3NvY2tldGNhbi9jYW4taXNvdHBfZ2l0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjMDE5ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9zb2NrZXRjYW4vY2FuLWlzb3RwX2dpdC5iYgpAQCAtMCwwICsxLDEyIEBACitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzJkOTc3ZDY5N2MzYzA1ODMwZmRmZjAwYTc0NDg5MzEiCitTUkNSRVYgPSAiZDEyNDhiMGYyMmVhOGRjM2I5ZDg0YTYxYmQzNWE4MzMwOWJkYjRiNCIKK1BWID0gIjEuMCtnaXQke1NSQ1BWfSIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2hhcnRrb3BwL2Nhbi1pc290cC5naXQ7cHJvdG9jb2w9aHR0cHMiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK2luaGVyaXQgbW9kdWxlCisKK0VYVFJBX09FTUFLRSArPSAiS0VSTkVMRElSPSR7U1RBR0lOR19LRVJORUxfRElSfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3N5c2RpZy9zeXNkaWdfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvc3lzZGlnL3N5c2RpZ19naXQuYmIKaW5kZXggYmM2ZmVjMC4uNGY1ODI4MSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvc3lzZGlnL3N5c2RpZ19naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvc3lzZGlnL3N5c2RpZ19naXQuYmIKQEAgLTgsNiArOCw4IEBACiAKIGluaGVyaXQgY21ha2UgcGtnY29uZmlnCiAKK09FQ01BS0VfR0VORVJBVE9SID0gIlVuaXggTWFrZWZpbGVzIgorCiBERVBFTkRTID0gImx1YWppdCB6bGliIG5jdXJzZXMiCiBSREVQRU5EU18ke1BOfSA9ICJiYXNoIgogCkBAIC0zMywzICszNSw3IEBACiAgICAgJHtkYXRhZGlyfS96c2gvKiBcCiAgICAgJHtwcmVmaXh9L3NyYy8qICBcCiAiCisKKyMgbHVhaml0IG5vdCBzdXBwb3J0ZWQgb24gQWFyY2g2NAorQ09NUEFUSUJMRV9IT1NUID0gIl4oPyFhYXJjaDY0KS4qIgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90MWxpYi90MWxpYi01LjEuMi9jb25maWd1cmUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90MWxpYi90MWxpYi01LjEuMi9jb25maWd1cmUucGF0Y2gKaW5kZXggOGI5ODcwNy4uOTc2ZTAzOCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdDFsaWIvdDFsaWItNS4xLjIvY29uZmlndXJlLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3QxbGliL3QxbGliLTUuMS4yL2NvbmZpZ3VyZS5wYXRjaApAQCAtMSwxMSArMSwyMSBAQAorRnJvbSA4MWMxYmE5NDA0MTU1OTU1ODRhODM3YWIxMDc4YzY0ODU1MDcyZjBjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KK0RhdGU6IE1vbiwgMjEgTm92IDIwMTEgMTI6MDA6NTQgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gdDFsaWI6IGFkZCA1LjEuMgogCiAjCiAjIFBhdGNoIG1hbmFnZWQgYnkgaHR0cDovL3d3dy5ob2xnZXJzY2h1cmlnLmRlL3BhdGNoZXIuaHRtbAogIwogCi0tLS0gdDFsaWItNS4wLjIvY29uZmlndXJlLmlufmNvbmZpZ3VyZS5wYXRjaAotKysrIHQxbGliLTUuMC4yL2NvbmZpZ3VyZS5pbgotQEAgLTc1LDkgKzc1LDkgQEAKKy0tLQorIGNvbmZpZ3VyZS5pbiB8IDk1ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCA1NyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgoraW5kZXggZWFkZTRjMC4uZTY0OWVhOSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5pbgorKysrIGIvY29uZmlndXJlLmluCitAQCAtNzQsOSArNzQsOSBAQCBUMUxJQl9QQVRDSExFVkVMPWJ1aWx0aW4oZXZhbCwgTUFDUk9fVDFMSUJfTFRfUkVWSVNJT04pCiAgVDFMSUJfVkVSU0lPTlNUUklORz1cIk1BQ1JPX1QxTElCX0lERU5USUZJRVJcIgogIAogIApAQCAtMTgsNyArMjgsNyBAQAogIAogIGRubCBXZSB3YW50IHRoZXNlIGJlZm9yZSB0aGUgY2hlY2tzLCBzbyB0aGUgY2hlY2tzIGNhbiBtb2RpZnkgdGhlaXIgdmFsdWVzLgogIHRlc3QgLXogIiRMRExJQlMiICYmIExETElCUz0tbG0gICBBQ19TVUJTVChMRExJQlMpCi1AQCAtMTYxLDYgKzE2MSw3IEBACitAQCAtMTYyLDYgKzE2Miw3IEBAIGZpCiAgCiAgZG5sICoqKiogQ2hlY2sgZm9yIHVuZGVyc2NvcmUgb24gZXh0ZXJuYWwgc3ltYm9scyAqKioqCiAgCkBAIC0yNiwyMSArMzYsMTIgQEAKICBBQ19DQUNIRV9DSEVDSygid2hldGhlciBleHRlcm5hbCBzeW1ib2xzIG5lZWQgYW4gdW5kZXJzY29yZSBwcmVmaXgiLAogICAgICAgICAgICAgICAgIGFjX2N2X2NfZXh0ZXJuX3ByZWZpeCwKICBbc2F2ZWRfbGlicz0kTElCUwotQEAgLTE3OCw2OCArMTc5LDQ4IEBACitAQCAtMTc5LDY4ICsxODAsNDggQEAgdGhlbgogICAgQUNfREVGSU5FKE5FRURfVU5ERVJTQ09SRV9QUkVGSVgpCiAgZmkKICAKIC1kbmwgKioqKiBDaGVjayB3aGljaCBBTlNJIGludGVnZXIgdHlwZSBpcyAxNiBiaXQgCi0rZG5sICoqKiogQ2hlY2sgd2hpY2ggQU5TSSBpbnRlZ2VyIHR5cGUgaXMgMTYgYml0Ci0rVDFfQUFfVFlQRTE2PSIiCi0rZm9yIHR5cGUgaW4gc2hvcnQgaW50OyBkbwotKwlpZiB0ZXN0IHgiYGV2YWwgZWNobyBcXCRhY19jdl9zaXplb2ZfJHR5cGVgIiA9ICJ4MiI7IHRoZW4KLSsJCVQxX0FBX1RZUEUxNj0iLURUMV9BQV9UWVBFMTY9JHR5cGUiCi0rCQlUMV9JTlQxNj0iJHR5cGUiCi0rCQlicmVhawotKwlmaQotK2RvbmUKLSAKKy0KIC1BQ19DQUNIRV9DSEVDSyggIndoaWNoIEFOU0kgaW50ZWdlciB0eXBlIGlzIDE2IGJpdCIsIGFjXzE2Yml0X3R5cGUsCiAtCQlBQ19UUllfUlVOKFsKIC1pbnQgbWFpbih2b2lkKSB7CkBAIC01OCwyMSArNTksMjMgQEAKIC1lbHNlCiAtICBUMV9BQV9UWVBFMTY9Ii1EVDFfQUFfVFlQRTE2PWludCIKIC0gIFQxX0lOVDE2PSJpbnQiCisrZG5sICoqKiogQ2hlY2sgd2hpY2ggQU5TSSBpbnRlZ2VyIHR5cGUgaXMgMTYgYml0CisrVDFfQUFfVFlQRTE2PSIiCisrZm9yIHR5cGUgaW4gc2hvcnQgaW50OyBkbworKwlpZiB0ZXN0IHgiYGV2YWwgZWNobyBcXCRhY19jdl9zaXplb2ZfJHR5cGVgIiA9ICJ4MiI7IHRoZW4KKysJCVQxX0FBX1RZUEUxNj0iLURUMV9BQV9UWVBFMTY9JHR5cGUiCisrCQlUMV9JTlQxNj0iJHR5cGUiCisrCQlicmVhaworKwlmaQorK2RvbmUKKysKICtpZiB0ZXN0IHgiJFQxX0FBX1RZUEUxNiIgPSAieCI7IHRoZW4KICsJQUNfTVNHX0VSUk9SKCJVbmFibGUgdG8gZGV0ZXJtaW5lIHdoaWNoIGludGVnZXIgdHlwZSBpcyAxNiBiaXQuIikKICBmaQogIAogLQogIGRubCAqKioqIENoZWNrIHdoaWNoIEFOU0kgaW50ZWdlciB0eXBlIGlzIDMyIGJpdCAKLStUMV9BQV9UWVBFMzI9IiIKLStmb3IgdHlwZSBpbiBpbnQgbG9uZzsgZG8KLSsJaWYgdGVzdCB4ImBldmFsIGVjaG8gXFwkYWNfY3Zfc2l6ZW9mXyR0eXBlYCIgPSAieDQiOyB0aGVuCi0rCQlUMV9BQV9UWVBFMzI9Ii1EVDFfQUFfVFlQRTMyPSR0eXBlIgotKwkJVDFfSU5UMzI9IiR0eXBlIgotKwkJYnJlYWsKLSsJZmkKLStkb25lCi0gCistCiAtQUNfQ0FDSEVfQ0hFQ0soICJ3aGljaCBBTlNJIGludGVnZXIgdHlwZSBpcyAzMiBiaXQiLCBhY18zMmJpdF90eXBlLAogLQkJQUNfVFJZX1JVTihbCiAtaW50IG1haW4odm9pZCkgewpAQCAtOTAsMjEgKzkzLDIyIEBACiAtZWxzZQogLSAgVDFfQUFfVFlQRTMyPSItRFQxX0FBX1RZUEUzMj1sb25nIgogLSAgVDFfSU5UMzI9ImxvbmciCisrVDFfQUFfVFlQRTMyPSIiCisrZm9yIHR5cGUgaW4gaW50IGxvbmc7IGRvCisrCWlmIHRlc3QgeCJgZXZhbCBlY2hvIFxcJGFjX2N2X3NpemVvZl8kdHlwZWAiID0gIng0IjsgdGhlbgorKwkJVDFfQUFfVFlQRTMyPSItRFQxX0FBX1RZUEUzMj0kdHlwZSIKKysJCVQxX0lOVDMyPSIkdHlwZSIKKysJCWJyZWFrCisrCWZpCisrZG9uZQorKwogK2lmIHRlc3QgeCIkVDFfQUFfVFlQRTMyIiA9ICJ4IjsgdGhlbgogKwlBQ19NU0dfRVJST1IoIlVuYWJsZSB0byBkZXRlcm1pbmUgd2hpY2ggaW50ZWdlciB0eXBlIGlzIDMyIGJpdC4iKQogIGZpCiAgCiAtCiAgZG5sICoqKiogQ2hlY2sgd2hpY2ggQU5TSSBpbnRlZ2VyIHR5cGUgaXMgNjQgYml0IAotK1QxX0FBX1RZUEU2ND0iIgotK2ZvciB0eXBlIGluIGxvbmcgbG9uZ19sb25nOyBkbwotKwlpZiB0ZXN0IHgiYGV2YWwgZWNobyBcXCRhY19jdl9zaXplb2ZfJHR5cGVgIiA9ICJ4OCI7IHRoZW4KLSsJCUFDX01TR19XQVJOKCIkdHlwZSBpcyA2NCBiaXQiKQotKwkJVDFfQUFfVFlQRTY0PSItRFQxX0FBX1RZUEU2ND1cImBlY2hvICR0eXBlfHRyICdfJyAnICdgXCIiCi0rCQlicmVhawotKwlmaQotK2RvbmUKLSAKKy0KIC1BQ19DQUNIRV9DSEVDSyggIndoaWNoIEFOU0kgaW50ZWdlciB0eXBlIGlzIDY0IGJpdCIsIGFjXzY0Yml0X3R5cGUsCiAtCQlBQ19UUllfUlVOKFsKIC1pbnQgbWFpbih2b2lkKSB7CkBAIC0xMTgsNiArMTIyLDE1IEBACiAtICBUMV9BQV9UWVBFNjQ9Ii1EVDFfQUFfVFlQRTY0PWxvbmciCiAtZWxzZQogLSAgVDFfQUFfVFlQRTY0PQorK1QxX0FBX1RZUEU2ND0iIgorK2ZvciB0eXBlIGluIGxvbmcgbG9uZ19sb25nOyBkbworKwlpZiB0ZXN0IHgiYGV2YWwgZWNobyBcXCRhY19jdl9zaXplb2ZfJHR5cGVgIiA9ICJ4OCI7IHRoZW4KKysJCUFDX01TR19XQVJOKCIkdHlwZSBpcyA2NCBiaXQiKQorKwkJVDFfQUFfVFlQRTY0PSItRFQxX0FBX1RZUEU2ND1cImBlY2hvICR0eXBlfHRyICdfJyAnICdgXCIiCisrCQlicmVhaworKwlmaQorK2RvbmUKKysKICtpZiB0ZXN0IHgiJFQxX0FBX1RZUEU2NCIgPSAieCI7IHRoZW4KICsJQUNfTVNHX0VSUk9SKCJVbmFibGUgdG8gZGV0ZXJtaW5lIHdoaWNoIGludGVnZXIgdHlwZSBpcyA2NCBiaXQuIikKICBmaQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdDFsaWIvdDFsaWItNS4xLjIvZm9ybWF0X3NlY3VyaXR5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdDFsaWIvdDFsaWItNS4xLjIvZm9ybWF0X3NlY3VyaXR5LnBhdGNoCmluZGV4IDhiNGNlNDAuLmJjMjQ3NmIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3QxbGliL3QxbGliLTUuMS4yL2Zvcm1hdF9zZWN1cml0eS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90MWxpYi90MWxpYi01LjEuMi9mb3JtYXRfc2VjdXJpdHkucGF0Y2gKQEAgLTEsMyArMSw4IEBACitGcm9tIGNlYTgzMDAzZGUzZmZlYmRlOTJiZWNkMWU1OTlmZTNiMjhmMGE3YzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogTW9uLCA2IE1hciAyMDE3IDIzOjEzOjM2IC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIHQxbGliOiBGaXggcHJpbnRmIGZvcm1hdCBzdHJpbmcgZXJyb3JzCisKIEZpeCBwcmludGYgZm9ybWF0cyB0byB1c2UgZm9ybWF0IHF1YWxpZmllcnMKIGZpeGVzCiAKQEAgLTYsMjAgKzExLDE3IEBACiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKLS0tLSBhL2xpYi90eXBlMS9vYmplY3RzLmMKLSsrKyBiL2xpYi90eXBlMS9vYmplY3RzLmMKLUBAIC05NTcsNyArOTU3LDcgQEAKLSAgCi0gICAgICAgIHNwcmludGYodHlwZW1zZywgIldyb25nIG9iamVjdCB0eXBlIGluICVzOyBleHBlY3RlZCAlcywgZm91bmQgJXMuXG4iLAotICAgICAgICAgICAgICAgICAgIG5hbWUsIFR5cGVGbXQoZXhwZWN0KSwgVHlwZUZtdChvYmotPnR5cGUpKTsKLS0gICAgICAgSWZUcmFjZTAoVFJVRSx0eXBlbXNnKTsKLSsgICAgICAgSWZUcmFjZTEoVFJVRSwgIiVzIiwgdHlwZW1zZyk7Ci0gIAotICAgICAgICBPYmplY3RQb3N0TW9ydGVtKG9iaik7Ci0gIAorLS0tCisgbGliL3QxbGliL3Qxc3Vic2V0LmMgfCAyICstCisgbGliL3R5cGUxL29iamVjdHMuYyAgfCAyICstCisgbGliL3R5cGUxL29iamVjdHMuaCAgfCAyICstCisgMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWIvdDFsaWIvdDFzdWJzZXQuYyBiL2xpYi90MWxpYi90MXN1YnNldC5jCitpbmRleCBkYTQyN2IyLi5lNzY5NzRmIDEwMDY0NAogLS0tIGEvbGliL3QxbGliL3Qxc3Vic2V0LmMKICsrKyBiL2xpYi90MWxpYi90MXN1YnNldC5jCi1AQCAtNzU5LDcgKzc1OSw3IEBACitAQCAtNzU5LDcgKzc1OSw3IEBAIGNoYXIgKlQxX1N1YnNldEZvbnQoIGludCBGb250SUQsCiAgCSAgICAgdHJfbGVuKTsKICAgICAgVDFfUHJpbnRMb2coICJUMV9TdWJzZXRGb250KCkiLCBlcnJfd2Fybl9tc2dfYnVmLAogIAkJIFQxTE9HX0RFQlVHKTsKQEAgLTI4LDkgKzMwLDI0IEBACiAgICB9CiAgICAKICAgIC8qIGNvbXB1dGUgc2l6ZSBvZiBvdXRwdXQgZmlsZSAqLworZGlmZiAtLWdpdCBhL2xpYi90eXBlMS9vYmplY3RzLmMgYi9saWIvdHlwZTEvb2JqZWN0cy5jCitpbmRleCBjNDEzYTBmLi5mODI4ZTZhIDEwMDY0NAorLS0tIGEvbGliL3R5cGUxL29iamVjdHMuYworKysrIGIvbGliL3R5cGUxL29iamVjdHMuYworQEAgLTk1Nyw3ICs5NTcsNyBAQCBzdHJ1Y3QgeG9iamVjdCAqVHlwZUVycihuYW1lLCBvYmosIGV4cGVjdCwgcmV0KSAvKiBub24tQU5TSSBhdm9pZHMgb3Zlcmx5IHN0cmljdAorICAKKyAgICAgICAgc3ByaW50Zih0eXBlbXNnLCAiV3Jvbmcgb2JqZWN0IHR5cGUgaW4gJXM7IGV4cGVjdGVkICVzLCBmb3VuZCAlcy5cbiIsCisgICAgICAgICAgICAgICAgICAgbmFtZSwgVHlwZUZtdChleHBlY3QpLCBUeXBlRm10KG9iai0+dHlwZSkpOworLSAgICAgICBJZlRyYWNlMChUUlVFLHR5cGVtc2cpOworKyAgICAgICBJZlRyYWNlMShUUlVFLCAiJXMiLCB0eXBlbXNnKTsKKyAgCisgICAgICAgIE9iamVjdFBvc3RNb3J0ZW0ob2JqKTsKKyAgCitkaWZmIC0tZ2l0IGEvbGliL3R5cGUxL29iamVjdHMuaCBiL2xpYi90eXBlMS9vYmplY3RzLmgKK2luZGV4IDEzY2JhZTcuLjNhMWQzMzcgMTAwNjQ0CiAtLS0gYS9saWIvdHlwZTEvb2JqZWN0cy5oCiArKysgYi9saWIvdHlwZTEvb2JqZWN0cy5oCi1AQCAtMjE0LDcgKzIxNCw3IEBACitAQCAtMjE0LDcgKzIxNCw3IEBAIHN0cnVjdCB4b2JqZWN0IHsKICAvKlNIQVJFRCovCiAgLyogTkRXOiBwZXJzb25hbGx5LCBJIHdhbnQgdG8gc2VlIHN0YXR1cyBhbmQgZXJyb3IgbWVzc2FnZXMhICovCiAgI2RlZmluZSBJZlRyYWNlMChjb25kaXRpb24sbW9kZWwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdDFsaWIvdDFsaWItNS4xLjIvbGlidG9vbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3QxbGliL3QxbGliLTUuMS4yL2xpYnRvb2wucGF0Y2gKaW5kZXggZTA1MDAyNS4uZGE1NGY4NyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdDFsaWIvdDFsaWItNS4xLjIvbGlidG9vbC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90MWxpYi90MWxpYi01LjEuMi9saWJ0b29sLnBhdGNoCkBAIC0xLDEyICsxLDI4IEBACitGcm9tIGJhYjQxZjVlMWZjMWZjODA5ZGExMzcxZTZhMDIyMmUwZWIyMWU1ZjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgorRGF0ZTogTW9uLCAyMSBOb3YgMjAxMSAxMjowMDo1NCArMDEwMAorU3ViamVjdDogW1BBVENIXSB0MWxpYjogYWRkIDUuMS4yCiAKICMKICMgUGF0Y2ggbWFuYWdlZCBieSBodHRwOi8vd3d3LmhvbGdlcnNjaHVyaWcuZGUvcGF0Y2hlci5odG1sCiAjCiAKLS0tLSB0MWxpYi01LjAuMi9NYWtlZmlsZS5pbn5saWJ0b29sCi0rKysgdDFsaWItNS4wLjIvTWFrZWZpbGUuaW4KKy0tLQorIE1ha2VmaWxlLmluICAgICAgICAgICB8IDUgKysrLS0KKyBleGFtcGxlcy9NYWtlZmlsZS5pbiAgfCA1ICsrKy0tCisgbGliL01ha2VmaWxlLmluICAgICAgIHwgNiArKysrLS0KKyBsaWIvdDFsaWIvTWFrZWZpbGUuaW4gfCA2ICsrKystLQorIGxpYi90eXBlMS9NYWtlZmlsZS5pbiB8IDYgKysrKy0tCisgdHlwZTFhZm0vTWFrZWZpbGUuaW4gIHwgNiArKysrLS0KKyB4Z2x5cGgvTWFrZWZpbGUuaW4gICAgfCA2ICsrKystLQorIDcgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZS5pbiBiL01ha2VmaWxlLmluCitpbmRleCAyOWMzNDY4Li4zOTZjMDIwIDEwMDY0NAorLS0tIGEvTWFrZWZpbGUuaW4KKysrKyBiL01ha2VmaWxlLmluCiBAQCAtMTgsNyArMTgsOCBAQAotICMgTGFzdCBtb2RpZmllZDogICAgICAgMjAwMS0wNC0wMQorICMgTGFzdCBtb2RpZmllZDogICAgICAgMjAwNS0wNS0wMQogICMKICAKIC1TSEVMTCAgICAgPSAvYmluL3NoCkBAIC0xNSw3ICszMSw3IEBACiAgQ0MgICAgICAgID0gQENDQAogIENQUCAgICAgICA9IEBDUFBACiAgQ0ZMQUdTICAgID0gQENGTEFHU0AKLUBAIC0xNTAsNyArMTUxLDcgQEAKK0BAIC0xNDksNyArMTUwLDcgQEAgZGlzdGNsZWFuOiBjbGVhbgogIAkkKFJNKSBleGFtcGxlcy9NYWtlZmlsZQogIAkkKFJNKSB4Z2x5cGgvTWFrZWZpbGUKICAJJChSTSkgZG9jL01ha2VmaWxlCkBAIC0yNCw4ICs0MCwxMCBAQAogIAogIAogICMgVGhlIGZvbGxvd2luZyB0d28gdGFyZ2V0cyBhcmUgZm9yIGJ1aWxkaW5nIGFuZCBjbGVhbmluZyB0aGUgcHl0aG9uLQotLS0tIHQxbGliLTUuMC4yL2V4YW1wbGVzL01ha2VmaWxlLmlufmxpYnRvb2wKLSsrKyB0MWxpYi01LjAuMi9leGFtcGxlcy9NYWtlZmlsZS5pbgorZGlmZiAtLWdpdCBhL2V4YW1wbGVzL01ha2VmaWxlLmluIGIvZXhhbXBsZXMvTWFrZWZpbGUuaW4KK2luZGV4IGIzMDFkYjUuLjdhNmE1MTQgMTAwNjQ0CistLS0gYS9leGFtcGxlcy9NYWtlZmlsZS5pbgorKysrIGIvZXhhbXBsZXMvTWFrZWZpbGUuaW4KIEBAIC0xNCw5ICsxNCwxMCBAQAogICMgTGFzdCBtb2RpZmllZDogICAgICAgMjAwMS0wNC0wMQogICMKQEAgLTM5LDggKzU3LDEwIEBACiAgQ0MgICAgICAgID0gQENDQAogIENQUCAgICAgICA9IEBDUFBACiAgQ0ZMQUdTICAgID0gQENGTEFHU0AKLS0tLSB0MWxpYi01LjAuMi9saWIvTWFrZWZpbGUuaW5+bGlidG9vbAotKysrIHQxbGliLTUuMC4yL2xpYi9NYWtlZmlsZS5pbgorZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZS5pbiBiL2xpYi9NYWtlZmlsZS5pbgoraW5kZXggODllNWU4Ni4uNmUwZjk2MCAxMDA2NDQKKy0tLSBhL2xpYi9NYWtlZmlsZS5pbgorKysrIGIvbGliL01ha2VmaWxlLmluCiBAQCAtMTUsOCArMTUsMTAgQEAKICAjCiAgIyBDb250cmlidXRpb25zIGJ5IEguS2FrdWdhd2EgdG8gdXNlIGxpYnRvb2whCkBAIC01NCw4ICs3NCwxMCBAQAogIENDICAgICAgICA9IEBDQ0AKICBDUFAgICAgICAgPSBAQ1BQQAogIENGTEFHUyAgICA9IEBDRkxBR1NACi0tLS0gdDFsaWItNS4wLjIvbGliL3QxbGliL01ha2VmaWxlLmlufmxpYnRvb2wKLSsrKyB0MWxpYi01LjAuMi9saWIvdDFsaWIvTWFrZWZpbGUuaW4KK2RpZmYgLS1naXQgYS9saWIvdDFsaWIvTWFrZWZpbGUuaW4gYi9saWIvdDFsaWIvTWFrZWZpbGUuaW4KK2luZGV4IGE2YzI0NzguLjMyNDM0YjMgMTAwNjQ0CistLS0gYS9saWIvdDFsaWIvTWFrZWZpbGUuaW4KKysrKyBiL2xpYi90MWxpYi9NYWtlZmlsZS5pbgogQEAgLTE0LDggKzE0LDEwIEBACiAgIwogICMgTW9kaWZpZWQgYnkgSC5LYWt1Z2F3YSB0byB1c2UgbGlidG9vbApAQCAtNjksOCArOTEsMTAgQEAKICBDQyAgICAgICAgPSBAQ0NACiAgQ1BQICAgICAgID0gQENQUEAKICBDRkxBR1MgICAgPSBAQ0ZMQUdTQAotLS0tIHQxbGliLTUuMC4yL2xpYi90eXBlMS9NYWtlZmlsZS5pbn5saWJ0b29sCi0rKysgdDFsaWItNS4wLjIvbGliL3R5cGUxL01ha2VmaWxlLmluCitkaWZmIC0tZ2l0IGEvbGliL3R5cGUxL01ha2VmaWxlLmluIGIvbGliL3R5cGUxL01ha2VmaWxlLmluCitpbmRleCAyNDFmMTI0Li40MmVmYTk0IDEwMDY0NAorLS0tIGEvbGliL3R5cGUxL01ha2VmaWxlLmluCisrKysgYi9saWIvdHlwZTEvTWFrZWZpbGUuaW4KIEBAIC0xNCw4ICsxNCwxMCBAQAogICMKICAjIE1vZGlmaWVkIGJ5IEguS2FrdWdhd2EgdG8gdXNlIGxpYnRvb2wKQEAgLTg0LDggKzEwOCwxMCBAQAogIENDICAgICAgICA9IEBDQ0AKICBDUFAgICAgICAgPSBAQ1BQQAogIENGTEFHUyAgICA9IEBDRkxBR1NACi0tLS0gdDFsaWItNS4wLjIvdHlwZTFhZm0vTWFrZWZpbGUuaW5+bGlidG9vbAotKysrIHQxbGliLTUuMC4yL3R5cGUxYWZtL01ha2VmaWxlLmluCitkaWZmIC0tZ2l0IGEvdHlwZTFhZm0vTWFrZWZpbGUuaW4gYi90eXBlMWFmbS9NYWtlZmlsZS5pbgoraW5kZXggNjE2MTFlMS4uOWI1MTQwNiAxMDA2NDQKKy0tLSBhL3R5cGUxYWZtL01ha2VmaWxlLmluCisrKysgYi90eXBlMWFmbS9NYWtlZmlsZS5pbgogQEAgLTE1LDggKzE1LDEwIEBACiAgIwogICMgTW9kaWZpZWQgYnkgSC5LYWt1Z2F3YSB0byB1c2UgbGlidG9vbApAQCAtOTksOCArMTI1LDEwIEBACiAgQ0MgICAgICAgID0gQENDQAogIENQUCAgICAgICA9IEBDUFBACiAgQ0ZMQUdTICAgID0gQENGTEFHU0AKLS0tLSB0MWxpYi01LjAuMi94Z2x5cGgvTWFrZWZpbGUuaW5+bGlidG9vbAotKysrIHQxbGliLTUuMC4yL3hnbHlwaC9NYWtlZmlsZS5pbgorZGlmZiAtLWdpdCBhL3hnbHlwaC9NYWtlZmlsZS5pbiBiL3hnbHlwaC9NYWtlZmlsZS5pbgoraW5kZXggOGRhOWI2My4uNzQxMzM0YyAxMDA2NDQKKy0tLSBhL3hnbHlwaC9NYWtlZmlsZS5pbgorKysrIGIveGdseXBoL01ha2VmaWxlLmluCiBAQCAtMTUsOCArMTUsMTAgQEAKICAjCiAgIyBNb2RpZmllZCBieSBILktha3VnYXdhIHRvIHVzZSBsaWJ0b29sCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90aXBjdXRpbHMvdGlwY3V0aWxzLzAwMDEtbXVsdGljYXN0X2JsYXN0LXRpcGNjLUZpeC1zdHJ1Y3QtdHlwZS1mb3ItVElQQ19HUk9VUC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3RpcGN1dGlscy90aXBjdXRpbHMvMDAwMS1tdWx0aWNhc3RfYmxhc3QtdGlwY2MtRml4LXN0cnVjdC10eXBlLWZvci1USVBDX0dST1VQLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0OTUyODUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90aXBjdXRpbHMvdGlwY3V0aWxzLzAwMDEtbXVsdGljYXN0X2JsYXN0LXRpcGNjLUZpeC1zdHJ1Y3QtdHlwZS1mb3ItVElQQ19HUk9VUC5wYXRjaApAQCAtMCwwICsxLDMzIEBACitGcm9tIDFjZTg5Mjc0OWU0ZjUzYmQwYWVhYTRjM2NlNDVmODAxNzg3OTk0MTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogU2F0LCAzIE1hciAyMDE4IDE3OjUyOjUxIC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIG11bHRpY2FzdF9ibGFzdC90aXBjYzogRml4IHN0cnVjdCB0eXBlIGZvciBUSVBDX0dST1VQX0pPSU4KKworS2VybmVsIGRlZmluZXMgaXQgYXMgdGlwY19ncm91cF9yZXEgYW5kIG5vdCB0aXBjX21yZXEKK3RoaXMgY29kZSB3YXMgbm90IGV4Y2VyY2lzZWQgd2l0aCBvbGRlciBrZXJuZWxzIHNvIHdlCituZXZlciByYW4gaW50byB0aGUgY29tcGlsZXIgZmFpbHVyZXMgc2luY2UgVElQQ19HUk9VUF9KT0lOCitpcyBvbmx5IGRlZmluZWQgaW4ga2VybmVsIHN0YXJ0aW5nIDQuMTUKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKKyBtdWx0aWNhc3RfYmxhc3QvdGlwY2MuYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL211bHRpY2FzdF9ibGFzdC90aXBjYy5jIGIvbXVsdGljYXN0X2JsYXN0L3RpcGNjLmMKK2luZGV4IDkwNjQ0ZDMuLjkxMWM3NTkgMTAwNzU1CistLS0gYS9tdWx0aWNhc3RfYmxhc3QvdGlwY2MuYworKysrIGIvbXVsdGljYXN0X2JsYXN0L3RpcGNjLmMKK0BAIC0yMTMsNyArMjEzLDcgQEAgaW50IHRpcGNfYWNjZXB0KGludCBzZCwgc3RydWN0IHRpcGNfYWRkciAqc3JjKQorIGludCB0aXBjX2pvaW4oaW50IHNkLCBzdHJ1Y3QgdGlwY19hZGRyICptZW1iZXIpCisgeworICNpZmRlZiBUSVBDX0dST1VQX0pPSU4KKy0Jc3RydWN0IHRpcGNfbXJlcSBtcmVxID0geworKwlzdHJ1Y3QgdGlwY19ncm91cF9yZXEgbXJlcSA9IHsKKyAJCS50eXBlID0gbWVtYmVyLT50eXBlLAorIAkJLmluc3RhbmNlID0gbWVtYmVyLT5pbnN0YW5jZSwKKyAJCS5zY29wZSA9IGRvbWFpbjJzY29wZShtZW1iZXItPmRvbWFpbikKKy0tIAorMi4xNi4yCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3RpcGN1dGlscy90aXBjdXRpbHNfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGlwY3V0aWxzL3RpcGN1dGlsc19naXQuYmIKaW5kZXggNzIwYWEzYy4uNTRlZDA0MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGlwY3V0aWxzL3RpcGN1dGlsc19naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGlwY3V0aWxzL3RpcGN1dGlsc19naXQuYmIKQEAgLTUsNiArNSw3IEBACiBTUkNfVVJJID0gImdpdDovL2dpdC5jb2RlLnNmLm5ldC9wL3RpcGMvdGlwY3V0aWxzIFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtaW5jbHVkZS1zeXMtc2VsZWN0LmgtZm9yLUZEXy1kZWZpbml0aW9ucy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAyLXJlcGxhY2Utbm9uLXN0YW5kYXJkLXVpbnQtd2l0aC11bnNpZ25lZC1pbnQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1tdWx0aWNhc3RfYmxhc3QtdGlwY2MtRml4LXN0cnVjdC10eXBlLWZvci1USVBDX0dST1VQLnBhdGNoIFwKICAgICAgICAgICAgIgogU1JDUkVWID0gIjdhYjIyMTFiODc0MTRiYTI0MGIwYjJlNGFmMjE5YzEwNTdjOWNmOWEiCiBQViA9ICIyLjIuMCtnaXQke1NSQ1BWfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3RpcHRvcC90aXB0b3BfMi4zLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90aXB0b3AvdGlwdG9wXzIuMy4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhMDBhMzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90aXB0b3AvdGlwdG9wXzIuMy4xLmJiCkBAIC0wLDAgKzEsMjYgQEAKK1NVTU1BUlkgPSAiSGFyZHdhcmUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyBjb3VudGVycyIKK0hPTUVQQUdFID0gImh0dHA6Ly90aXB0b3AuZ2ZvcmdlLmlucmlhLmZyLyIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKK0RFUEVORFMgPSAibmN1cnNlcyBsaWJ4bWwyIgorCitTUkNfVVJJID0gImh0dHA6Ly90aXB0b3AuZ2ZvcmdlLmlucmlhLmZyL3JlbGVhc2VzLyR7QlB9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICI0NmNhMGZkZjAyMzZmMDJkZDJiOTZkMzQ3NjI2ZDJhMiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1MWM0NDQ5Yzk1YmJhMzRmMTZiNDI5NzI5YzJmNTg0MzE0OTA2NjVkODA5M2VmYWE4NjQzYjJlMWQxMDg0MTgyIgorCitpbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAKK0VYVFJBX09FQ09ORiA9ICJDRkxBR1M9IiRDRkxBR1MgLUkke1NUQUdJTkdfSU5DRElSfS9saWJ4bWwyIiIKK0NPTVBBVElCTEVfSE9TVCA9ICIoaS44Nnx4ODZfNjR8YXJtfHBvd2VycGMpLiotbGludXgiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKKyAgICAjIFR3byBidWdzIGluIGNvbmZpZ3VyZS5hYyB3aGVuIGNyb3NzLWNvbXBpbGluZy4KKyAgICAjIDEuIFRoZSBwYXRoIG9mIGxpYnhtbDIuIFNwZWNpZnkgaXQgaW4gRVhUUkFfT0VDT05GLgorICAgICMgMi4gaHcncyB2YWx1ZSBvbiBvdGhlciBwbGF0Zm9ybXMuIFJlcGxhY2UgaXQgaWYgdGhlIHRhcmdldCBpcworICAgICMgICAgbm90IGkqODYveDg2XzY0LgorICAgIGlmICggZWNobyAiJHtUQVJHRVRfQVJDSH0iIHwgZ3JlcCAtcSAtZSAnaS44NicgLWUgJ3g4Nl82NCcgKTsgdGhlbgorICAgICAgICBzZWQgLWkgJ3M9IC1JL3Vzci9pbmNsdWRlL2xpYnhtbDI9PScgICAgJHtTfS9jb25maWd1cmUuYWMKKyAgICBlbHNlCisgICAgICAgIHNlZCAtaSAncy9odz1gdW5hbWUgLW1gL2h3PSJ1bmtub3duIi8nICAke1N9L2NvbmZpZ3VyZS5hYworICAgICAgICBzZWQgLWkgJ3M9IC1JL3Vzci9pbmNsdWRlL2xpYnhtbDI9PScgICAgJHtTfS9jb25maWd1cmUuYWMKKyAgICBmaQorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGlwdG9wL3RpcHRvcF8yLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90aXB0b3AvdGlwdG9wXzIuMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDcyOWRlOS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90aXB0b3AvdGlwdG9wXzIuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVNVTU1BUlkgPSAiSGFyZHdhcmUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyBjb3VudGVycyIKLUhPTUVQQUdFID0gImh0dHA6Ly90aXB0b3AuZ2ZvcmdlLmlucmlhLmZyLyIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKLURFUEVORFMgPSAibmN1cnNlcyBsaWJ4bWwyIgotCi1TUkNfVVJJID0gImh0dHA6Ly90aXB0b3AuZ2ZvcmdlLmlucmlhLmZyL3JlbGVhc2VzLyR7QlB9LnRhci5neiIKLVNSQ19VUklbbWQ1c3VtXSA9ICJmMWZiYTFlOTA0NjViMGU1YTM4NjViMTkxMzNmYTE5ZCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIzZjA3ZTk1OGI0MGFjYWVhYjk4ZTllYjEzMjZjOWY5MWIwYmUwYTc4MmMxY2MyYmQ3YTllMThkMzFmYWIxOGNhIgotCi1pbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAKLUVYVFJBX09FQ09ORiA9ICJDRkxBR1M9IiRDRkxBR1MgLUkke1NUQUdJTkdfSU5DRElSfS9saWJ4bWwyIiIKLUNPTVBBVElCTEVfSE9TVCA9ICIoaS44Nnx4ODZfNjR8YXJtfHBvd2VycGMpLiotbGludXgiCi0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKLSAgICAjIFR3byBidWdzIGluIGNvbmZpZ3VyZS5hYyB3aGVuIGNyb3NzLWNvbXBpbGluZy4KLSAgICAjIDEuIFRoZSBwYXRoIG9mIGxpYnhtbDIuIFNwZWNpZnkgaXQgaW4gRVhUUkFfT0VDT05GLgotICAgICMgMi4gaHcncyB2YWx1ZSBvbiBvdGhlciBwbGF0Zm9ybXMuIFJlcGxhY2UgaXQgaWYgdGhlIHRhcmdldCBpcwotICAgICMgICAgbm90IGkqODYveDg2XzY0LgotICAgIGlmICggZWNobyAiJHtUQVJHRVRfQVJDSH0iIHwgZ3JlcCAtcSAtZSAnaS44NicgLWUgJ3g4Nl82NCcgKTsgdGhlbgotICAgICAgICBzZWQgLWkgJ3M9IC1JL3Vzci9pbmNsdWRlL2xpYnhtbDI9PScgICAgJHtTfS9jb25maWd1cmUuYWMKLSAgICBlbHNlCi0gICAgICAgIHNlZCAtaSAncy9odz1gdW5hbWUgLW1gL2h3PSJ1bmtub3duIi8nICAke1N9L2NvbmZpZ3VyZS5hYwotICAgICAgICBzZWQgLWkgJ3M9IC1JL3Vzci9pbmNsdWRlL2xpYnhtbDI9PScgICAgJHtTfS9jb25maWd1cmUuYWMKLSAgICBmaQotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdG11eC90bXV4XzIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3RtdXgvdG11eF8yLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmMjFkZTUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdG11eC90bXV4XzIuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVNVTU1BUlkgPSAiVGVybWluYWwgbXVsdGlwbGV4ZXIiCi1IT01FUEFHRSA9ICJodHRwOi8vdG11eC5zb3VyY2Vmb3JnZS5uZXQiCi1TRUNUSU9OID0gImNvbnNvbGUvdXRpbHMiCi0KLUxJQ0VOU0UgPSAiSVNDIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vdG11eC5jO2JlZ2lubGluZT0zO2VuZGxpbmU9MTc7bWQ1PTg2ODViNDQ1NTMzMGE5NDBmYWIxZmY0NTFhYTk0MWEwIgotCi1ERVBFTkRTID0gIm5jdXJzZXMgbGliZXZlbnQiCi0KLQotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3RtdXgvdG11eC5naXQ7YnJhbmNoPW1hc3RlciIKLVNSQ1JFViA/PSAiMzEwZjBhOTYwY2E2NGZhMzgwOTU0NWJhZGM2MjljMGMxNjZjNmNkMiIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLUIgPSAiJHtXT1JLRElSfS9idWlsZCIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIiCi1QQUNLQUdFQ09ORklHW3V0ZW1wdGVyXSA9ICJhY19jdl9oZWFkZXJfdXRlbXB0ZXJfaD15ZXMsYWNfY3ZfaGVhZGVyX3V0ZW1wdGVyX2g9bm8sbGlidXRlbXB0ZXIsIgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90bXV4L3RtdXhfMi42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdG11eC90bXV4XzIuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmE1MTU2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdG11eC90bXV4XzIuNi5iYgpAQCAtMCwwICsxLDIzIEBACitTVU1NQVJZID0gIlRlcm1pbmFsIG11bHRpcGxleGVyIgorSE9NRVBBR0UgPSAiaHR0cDovL3RtdXguc291cmNlZm9yZ2UubmV0IgorU0VDVElPTiA9ICJjb25zb2xlL3V0aWxzIgorCitMSUNFTlNFID0gIklTQyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL3RtdXguYztiZWdpbmxpbmU9MztlbmRsaW5lPTE3O21kNT1mMjU2Yjc2ZDUyZTdiNGQwMmJmMTkxNDRiZGFjYTEwNyIKKworREVQRU5EUyA9ICJuY3Vyc2VzIGxpYmV2ZW50IgorCitTUkNfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS90bXV4L3RtdXgvcmVsZWFzZXMvZG93bmxvYWQvJHtQVn0vdG11eC0ke1BWfS50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiZDU0MWZmMzkyMjQ5Zjk0YzRmMzYzNTc5MzU1NmY4MjciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjE3Y2QxNzBhOTRkN2I1OGMwNjk4NzUyZTFmNGYyNjNhYjZkYzQ3NDI1MjMwZGY3ZTUzYTY0MzVjYzdjZDdlOCIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCisKK1BBQ0tBR0VDT05GSUcgPz89ICIiCitQQUNLQUdFQ09ORklHW3V0ZW1wdGVyXSA9ICJhY19jdl9oZWFkZXJfdXRlbXB0ZXJfaD15ZXMsYWNfY3ZfaGVhZGVyX3V0ZW1wdGVyX2g9bm8sbGlidXRlbXB0ZXIsIgorCitkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKKyAgICAjIFRoZSAnY29tcGF0JyBkaXJlY3RvcnkgaXMgbmVlZGVkIGZvciBvdXRwdXQgZHVyaW5nIHRoZSBidWlsZCBidXQgaXQncworICAgICMgbm90IGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB3aGVuIGJ1aWxkaW5nIG91dHNpZGUgdGhlIHNvdXJjZSBkaXJlY3RvcnkuCisgICAgbWtkaXIgJHtCfS9jb21wYXQKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3VwbS9maWxlcy9hZHMxeDE1LWZpeGVkLWNhc2UtbG9naWMtaW4tZ2V0VGhyZXNoLWZ1bmN0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdXBtL2ZpbGVzL2FkczF4MTUtZml4ZWQtY2FzZS1sb2dpYy1pbi1nZXRUaHJlc2gtZnVuY3Rpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2MTdkMTQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdXBtL2ZpbGVzL2FkczF4MTUtZml4ZWQtY2FzZS1sb2dpYy1pbi1nZXRUaHJlc2gtZnVuY3Rpb24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi1Gcm9tIGM2NGQwNGQwODRmNDdiNGNiM2UxY2RlZTZlOTYzNDhmY2M2YTc1NmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNaWhhaSBUdWRvciBQYW51IDxtaWhhaS50dWRvci5wYW51QGludGVsLmNvbT4KLURhdGU6IFR1ZSwgMzAgTWF5IDIwMTcgMTU6MTQ6MDkgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzFdIGFkczF4MTU6IGZpeGVkIGNhc2UgbG9naWMgaW4gZ2V0VGhyZXNoKCkgZnVuY3Rpb24KLQotU2lnbmVkLW9mZi1ieTogTWloYWkgVHVkb3IgUGFudSA8bWloYWkudHVkb3IucGFudUBpbnRlbC5jb20+Ci0KLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnRlZCBbYzY0ZDA0ZDA4NGY0N2I0Y2IzZTFjZGVlNmU5NjM0OGZjYzZhNzU2ZV0KLQotU2lnbmVkLW9mZi1ieTogUGF0cmljayBPaGx5IDxwYXRyaWNrLm9obHlAaW50ZWwuY29tPgotCi0tLS0KLSBzcmMvYWRzMXgxNS9hZHMxeDE1LmN4eCB8IDQgKystLQotIHNyYy9hZHMxeDE1L2FkczF4MTUuaHBwIHwgMiArLQotIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2FkczF4MTUvYWRzMXgxNS5jeHggYi9zcmMvYWRzMXgxNS9hZHMxeDE1LmN4eAotaW5kZXggMzU3ODI3MDkuLjQ3NzAxYjJhIDEwMDY0NAotLS0tIGEvc3JjL2FkczF4MTUvYWRzMXgxNS5jeHgKLSsrKyBiL3NyYy9hZHMxeDE1L2FkczF4MTUuY3h4Ci1AQCAtMTE2LDcgKzExNiw3IEBAIEFEUzFYMTU6OnNldENvbnRpbnVvdXMoYm9vbCBtb2RlKXsKLSAKLSBmbG9hdAotIEFEUzFYMTU6OmdldFRocmVzaChBRFNUSFJFU0ggcmVnKXsKLS0gICAgIGlmKCBUSFJFU0hfSElHSCAmJiBUSFJFU0hfTE9XKSByZXR1cm4gZ2V0TGFzdFNhbXBsZShyZWcpOwotKyAgICAgaWYocmVnID09IFRIUkVTSF9ISUdIIHx8IHJlZyA9PSBUSFJFU0hfTE9XKSByZXR1cm4gZ2V0TGFzdFNhbXBsZShyZWcpOwotICAgICAgZWxzZSByZXR1cm4gMC4wOwotIH0KLSAKLUBAIC0xMzcsNyArMTM3LDcgQEAgQURTMVgxNTo6c2V0VGhyZXNoKEFEU1RIUkVTSCByZWcsIGZsb2F0IHZhbHVlKXsKLSAgICAgIGNhc2UgMjoKLSAgICAgIGNhc2UgMzoKLSAgICAgICAgICAgc2V0X3ZhbHVlID0gdmFsdWUgLyBnZXRNdWx0aXBsaWVyKCk7Ci0tICAgICAgICAgc2V0X3ZhbHVlID0gc2V0X3ZhbHVlIDw8IG1fYml0U2hpZnQ7Ci0rICAgICAgICAgIHNldF92YWx1ZSA9IHNldF92YWx1ZSA8PCBtX2JpdFNoaWZ0OwotICAgICAgICAgICBpZihpMmMtPndyaXRlV29yZFJlZyhyZWcsIHN3YXBXb3JkKHNldF92YWx1ZSkpICE9IG1yYWE6OlNVQ0NFU1MpewotICAgICAgICAgICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvcihzdGQ6OnN0cmluZyhfX0ZVTkNUSU9OX18pICsgIjogSTJjLndyaXRlKCkgZmFpbGVkIik7Ci0gICAgICAgICAgICAgcmV0dXJuOwotZGlmZiAtLWdpdCBhL3NyYy9hZHMxeDE1L2FkczF4MTUuaHBwIGIvc3JjL2FkczF4MTUvYWRzMXgxNS5ocHAKLWluZGV4IDc1MjQ1NzJkLi5lZmQ4YzhlYyAxMDA2NDQKLS0tLSBhL3NyYy9hZHMxeDE1L2FkczF4MTUuaHBwCi0rKysgYi9zcmMvYWRzMXgxNS9hZHMxeDE1LmhwcAotQEAgLTM5MCw3ICszOTAsNyBAQCBuYW1lc3BhY2UgdXBtIHsKLSAgICAgICAgICAgICAgKiBAcGFyYW0gcmVnIEFEU1RIUkVTIGVudW0gdmFsdWUuCi0gICAgICAgICAgICAgICogUmV0dXJucyAwLjAgdW5sZXNzIFRIUkVTSF9ISUdIIG9yIFRIUkVTSF9MT1cgcmVxdWVzdGVkLgotICAgICAgICAgICAgICAqLwotLSAgICAgICAgICAgIGZsb2F0IGdldFRocmVzaChBRFNUSFJFU0ggcmVnID0gVEhSRVNIX0xPVyk7Ci0rICAgICAgICAgICAgZmxvYXQgZ2V0VGhyZXNoKEFEU1RIUkVTSCByZWcgPSBUSFJFU0hfREVGQVVMVCk7Ci0gCi0gICAgICAgICAgICAgLyoqCi0gICAgICAgICAgICAgICogU2V0cyB0aHJlc2hvbGQgbGV2ZWxzIG9yIGNvbmZpZ3VyZXMgZm9yIGNvbnZlcnNpb24gcmVhZHkKLS0tIAotMi4xMS4wCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3VwbS91cG1fZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdXBtL3VwbV9naXQuYmIKaW5kZXggMzgwNjVjZS4uZDc0MmE1ZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdXBtL3VwbV9naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdXBtL3VwbV9naXQuYmIKQEAgLTcsMTIgKzcsMTEgQEAKIAogREVQRU5EUyA9ICJsaWJqcGVnLXR1cmJvIG1yYWEiCiAKLVNSQ1JFViA9ICIxMDZiNmM3MDYyNjg1MjJhYjAxNjhhNGRkYjE5ZTg5Y2U4MzJlMDg0IgotUFYgPSAiMS4zLjAtZ2l0JHtTUkNQVn0iCitTUkNSRVYgPSAiY2M3ZmVjOWFlMDIyOGFkZDkwMTFiZjFjMmNkNWUwY2EyYmEwZDRmMCIKK1BWID0gIjEuNi4wLWdpdCR7U1JDUFZ9IgogCiBTUkNfVVJJID0gIiBcCiAgICAgZ2l0Oi8vZ2l0aHViLmNvbS9pbnRlbC1pb3QtZGV2a2l0LyR7QlBOfS5naXQ7cHJvdG9jb2w9aHR0cCBcCi0gICAgZmlsZTovL2FkczF4MTUtZml4ZWQtY2FzZS1sb2dpYy1pbi1nZXRUaHJlc2gtZnVuY3Rpb24ucGF0Y2ggXAogIgogCiBTID0gIiR7V09SS0RJUn0vZ2l0IgpAQCAtMjYsNyArMjUsMTMgQEAKICMgb3ZlcnJpZGUgdGhpcyBpbiBsb2NhbC5jb25mIHRvIGdldCBuZWVkZWQgYmluZGluZ3MuCiAjIEJJTkRJTkdTX3BuLXVwbT0icHl0aG9uIgogIyB3aWxsIHJlc3VsdCBpbiBvbmx5IHRoZSBweXRob24gYmluZGluZ3MgYmVpbmcgYnVpbHQvcGFja2FnZWQuCi1CSU5ESU5HUyA/Pz0gInB5dGhvbiAke0AgJ25vZGVqcycgaWYgb2UudHlwZXMuYm9vbGVhbihkLmdldFZhcignSEFWRV9OT0RFSlMnKSBvciAnMCcpIGVsc2UgJycgfSIKKyMgTm90ZTogJ25vZGVqcycgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBiZWNhdXNlIHRoZSBiaW5kaW5ncworIyBnZW5lcmF0aW9uIGN1cnJlbnRseSBmYWlscyB3aXRoIG5vZGVqcyAoPnY3LngpLgorQklORElOR1MgPz89ICJweXRob24iCisKKyMgbm9kZWpzIGlzbid0IGF2YWlsYWJsZSBmb3IgYXJtdjQvYXJtdjUgYXJjaGl0ZWN0dXJlcworQklORElOR1NfYXJtdjQgPz89ICJweXRob24iCitCSU5ESU5HU19hcm12NSA/Pz0gInB5dGhvbiIKIAogUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFUycsICdub2RlLSR7UE59JywgJ25vZGVqcycsICcnLCBkKX0gXAogICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFUycsICcke1BZVEhPTl9QTn0tJHtQTn0nLCAncHl0aG9uJywgJycsIGQpfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Zsb2NrL3Zsb2NrLTIuMi4zL2Rpc2FibGVfdmxvY2tyYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Zsb2NrL3Zsb2NrLTIuMi4zL2Rpc2FibGVfdmxvY2tyYy5wYXRjaAppbmRleCBlZTBkMDc0Li4yNDEyYmI4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC92bG9jay92bG9jay0yLjIuMy9kaXNhYmxlX3Zsb2NrcmMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdmxvY2svdmxvY2stMi4yLjMvZGlzYWJsZV92bG9ja3JjLnBhdGNoCkBAIC0xLDEzICsxLDIzIEBACitGcm9tIGY3MWNjOTIwNTI4YzM0OTZiMDExODk2NGViYmNmNTQ0MGNkYTRlZDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgorRGF0ZTogV2VkLCAxNiBBdWcgMjAxNyAxMzozNzo0MCArMDgwMAorU3ViamVjdDogW1BBVENIXSB2bG9jazogYWRkIG5ldyByZWNpcGUKKwogVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQogCiB3cml0dGVuIGJ5OiBKZWZmIFBvbGsgPGplZmYucG9sa0B3aW5kcml2ZXIuY29tPgogU2lnbmVkLW9mZi1ieTogSmFja2llIEh1YW5nIDxqYWNraWUuaHVhbmdAd2luZHJpdmVyLmNvbT4KIAotSW5kZXg6IHZsb2NrLTIuMi4yL21hbi92bG9jay4xCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gdmxvY2stMi4yLjIub3JpZy9tYW4vdmxvY2suMQkyMDEwLTA3LTI2IDE0OjEyOjQyLjAwMDAwMDAwMCAtMDQwMAotKysrIHZsb2NrLTIuMi4yL21hbi92bG9jay4xCTIwMTAtMDctMjYgMTQ6MTM6MDYuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMTExLDExICsxMTEsNiBAQAorLS0tCisgbWFuL3Zsb2NrLjEgIHwgNSAtLS0tLQorIHNyYy92bG9jay5zaCB8IDUgLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDEwIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbWFuL3Zsb2NrLjEgYi9tYW4vdmxvY2suMQoraW5kZXggMGQyOWI0OS4uMDFjYjk0NCAxMDA2NDQKKy0tLSBhL21hbi92bG9jay4xCisrKysgYi9tYW4vdmxvY2suMQorQEAgLTExMSwxMSArMTExLDYgQEAgZW50ZXIgeW91ciBwYXNzd29yZCBhdCB0aGUgcGFzc3dvcmQgcHJvbXB0LiAgSWYgdGhpcyB2YXJpYWJsZSBpcyB1bnNldCBvciBzZXQKICB0byBhbiBpbnZhbGlkIHZhbHVlIG9yIDAgbm8gdGltZW91dCBpcyB1c2VkLiAgXGZCV2FybmluZ1xmUjogSWYgdGhpcyB2YWx1ZSBpcwogIHRvbyBsb3csIHlvdSBtYXkgbm90IGJlIGFibGUgdG8gdW5sb2NrIHlvdXIgc2Vzc2lvbi4KICAuUFAKQEAgLTE5LDExICsyOSwxMSBAQAogIC5TSCBTRUNVUklUWQogIFNlZSB0aGUgU0VDVVJJVFkgZmlsZSBpbiB0aGUgXGZCdmxvY2tcZlIgZGlzdHJpYnV0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLgogIC5QUAotSW5kZXg6IHZsb2NrLTIuMi4yL3NyYy92bG9jay5zaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHZsb2NrLTIuMi4yLm9yaWcvc3JjL3Zsb2NrLnNoCTIwMTAtMDctMjYgMTQ6MTI6MzIuMDAwMDAwMDAwIC0wNDAwCi0rKysgdmxvY2stMi4yLjIvc3JjL3Zsb2NrLnNoCTIwMTAtMDctMjYgMTQ6MTM6MzMuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMzUsMTEgKzM1LDYgQEAKK2RpZmYgLS1naXQgYS9zcmMvdmxvY2suc2ggYi9zcmMvdmxvY2suc2gKK2luZGV4IDc1ZjEzNjkuLmY1NzI3NzYgMTAwNjQ0CistLS0gYS9zcmMvdmxvY2suc2gKKysrKyBiL3NyYy92bG9jay5zaAorQEAgLTM1LDExICszNSw2IEBAIFRoaXMgVFRZIGlzIG5vdyBsb2NrZWQuCiAgCiAgJHtWTE9DS19FTlRFUl9QUk9NUFR9IgogIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdmxvY2svdmxvY2stMi4yLjMvdmxvY2stbm9fdGFsbHkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC92bG9jay92bG9jay0yLjIuMy92bG9jay1ub190YWxseS5wYXRjaAppbmRleCA2ZThhNmE5Li4zYTM0NGIyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC92bG9jay92bG9jay0yLjIuMy92bG9jay1ub190YWxseS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC92bG9jay92bG9jay0yLjIuMy92bG9jay1ub190YWxseS5wYXRjaApAQCAtMSw4ICsxLDIxIEBACitGcm9tIDE3ZTVjOGQzMmFiYzIxNGFlYTQwOGYwODM3YmU0MWU4OGJjZTdlYjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgorRGF0ZTogV2VkLCAxNiBBdWcgMjAxNyAxMzozNzo0MCArMDgwMAorU3ViamVjdDogW1BBVENIXSB2bG9jazogYWRkIG5ldyByZWNpcGUKKwogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKIHdyaXR0ZW4gYnk6IEplZmYgUG9sayA8amVmZi5wb2xrQHdpbmRyaXZlci5jb20+CiBTaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgogCistLS0KKyBNYWtlZmlsZSAgICAgICAgIHwgNCArKysrCisgY29uZmlndXJlICAgICAgICB8IDkgKysrKysrKysrCisgc3JjL3Zsb2NrLW1haW4uYyB8IDggKysrKysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKK2luZGV4IDRlZWI0MmEuLjgzNGNkMmMgMTAwNjQ0CiAtLS0gYS9NYWtlZmlsZQogKysrIGIvTWFrZWZpbGUKIEBAIC0xMjYsNiArMTI2LDEwIEBAIGlmZXEgKCQoQVVUSF9NRVRIT0QpLHNoYWRvdykKQEAgLTE2LDYgKzI5LDggQEAKICBpZmVxICgkKEVOQUJMRV9QTFVHSU5TKSx5ZXMpCiAgdmxvY2stbWFpbjogcGx1Z2lucy5vIHBsdWdpbi5vIG1vZHVsZS5vIHByb2Nlc3MubyBzY3JpcHQubyB0c29ydC5vIGxpc3QubwogICMgLXJkeW5hbWljIGlzIG5lZWRlZCBzbyB0aGF0IHRoZSBhbGwgcGx1Z2luIGNhbiBhY2Nlc3MgdGhlIHN5bWJvbHMgZnJvbSBjb25zb2xlX3N3aXRjaC5vCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCitpbmRleCBkNWQ4NGQ2Li4xMzAzNTk4IDEwMDc1NQogLS0tIGEvY29uZmlndXJlCiArKysgYi9jb25maWd1cmUKIEBAIC00NCw2ICs0NCw3IEBAIE9wdGlvbmFsIEZlYXR1cmVzOgpAQCAtMzYsNyArNTEsNyBAQAogICAgICBwYW18c2hhZG93KQogICAgICAgIGlmIFsgIiQyIiA9ICJ5ZXMiIF0gOyB0aGVuCiAgICAgICAgICBpZiBbIC1uICIkYXV0aF9tZXRob2QiIF0gJiYgWyAiJGF1dGhfbWV0aG9kIiAhPSAiJDEiIF0gOyB0aGVuCi1AQCAtMjMyLDYgKzIzMiw3IEBAIHNldF9kZWZhdWx0cygpIHsKK0BAIC0yMjgsNiArMjMyLDcgQEAgc2V0X2RlZmF1bHRzKCkgewogICAgQVVUSF9NRVRIT0Q9InBhbSIKICAgIEVOQUJMRV9ST09UX1BBU1NXT1JEPSJ5ZXMiCiAgICBFTkFCTEVfUExVR0lOUz0ieWVzIgpAQCAtNDQsOSArNTksNyBAQAogICAgU0NSSVBUUz0iIgogIAogICAgVkxPQ0tfR1JPVVA9InZsb2NrIgotQEAgLTM1NiwxMCArMzU2LDE0IEBAIEVOQUJMRV9QTFVHSU5TID0gJHtFTkFCTEVfUExVR0lOU30KLSAjIHdoaWNoIHBsdWdpbnMgc2hvdWxkIGJlIGJ1aWxkCi0gTU9EVUxFUyA9ICR7TU9EVUxFU30KK0BAIC0zNTMsNiArMzU4LDEwIEBAIE1PRFVMRVMgPSAke01PRFVMRVN9CiAgIyB3aGljaCBzY3JpcHRzIHNob3VsZCBiZSBpbnN0YWxsZWQKICBTQ1JJUFRTID0gJHtTQ1JJUFRTfQogIApAQCAtNTcsMTIgKzcwLDEyIEBACiAgIyByb290J3MgZ3JvdXAKICBST09UX0dST1VQID0gJHtST09UX0dST1VQfQogIAotICMgZ3JvdXAgZm9yIHByaXZpbGVnZWQgcGx1Z2lucwotIFZMT0NLX0dST1VQID0gJHtWTE9DS19HUk9VUH0KK2RpZmYgLS1naXQgYS9zcmMvdmxvY2stbWFpbi5jIGIvc3JjL3Zsb2NrLW1haW4uYworaW5kZXggMDA4ZjZmMC4uMTA4Y2U4YiAxMDA2NDQKIC0tLSBhL3NyYy92bG9jay1tYWluLmMKICsrKyBiL3NyYy92bG9jay1tYWluLmMKLUBAIC0xMTEsNyArMTExLDkgQEAgc3RhdGljIHZvaWQgcmVzdG9yZV90ZXJtaW5hbCh2b2lkKQotICAgKHZvaWQpIHRjc2V0YXR0cihTVERJTl9GSUxFTk8sIFRDU0FOT1csICZ0ZXJtKTsKK0BAIC0xMTIsNyArMTEyLDkgQEAgc3RhdGljIHZvaWQgcmVzdG9yZV90ZXJtaW5hbCh2b2lkKQorICAgKHZvaWQpIHRjc2V0YXR0cihTVERJTl9GSUxFTk8sIFRDU0FOT1csICZvbGRfdGVybSk7CiAgfQogIAogKyNpZmRlZiBFTkFCTEVfRkFJTF9DT1VOVApAQCAtNzEsNyArODQsNyBAQAogIAogIHN0YXRpYyB2b2lkIGF1dGhfbG9vcChjb25zdCBjaGFyICp1c2VybmFtZSkKICB7Ci1AQCAtMTgxLDcgKzE4Myw5IEBAIHN0YXRpYyB2b2lkIGF1dGhfbG9vcChjb25zdCBjaGFyICp1c2VybmEKK0BAIC0xODIsNyArMTg0LDkgQEAgc3RhdGljIHZvaWQgYXV0aF9sb29wKGNvbnN0IGNoYXIgKnVzZXJuYW1lKQogICAgICB9CiAgI2VuZGlmCiAgCkBAIC04MSw3ICs5NCw3IEBACiAgICB9CiAgCiAgICAvKiBGcmVlIHRpbWVvdXRzIG1lbW9yeS4gKi8KLUBAIC0xODksMTEgKzE5MywxMyBAQCBzdGF0aWMgdm9pZCBhdXRoX2xvb3AoY29uc3QgY2hhciAqdXNlcm5hCitAQCAtMTkwLDExICsxOTQsMTMgQEAgc3RhdGljIHZvaWQgYXV0aF9sb29wKGNvbnN0IGNoYXIgKnVzZXJuYW1lKQogICAgZnJlZShwcm9tcHRfdGltZW91dCk7CiAgfQogIApAQCAtOTUsNyArMTA4LDcgQEAKICAKICAjaWZkZWYgVVNFX1BMVUdJTlMKICBzdGF0aWMgdm9pZCBjYWxsX2VuZF9ob29rKHZvaWQpCi1AQCAtMjE2LDcgKzIyMiw5IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICpjb25zdCBhcmd2W10pCitAQCAtMjE3LDcgKzIyMyw5IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICpjb25zdCBhcmd2W10pCiAgICBpZiAodXNlcm5hbWUgPT0gTlVMTCkKICAgICAgZmF0YWxfcGVycm9yKCJ2bG9jazogY291bGQgbm90IGdldCB1c2VybmFtZSIpOwogIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdmxvY2svdmxvY2stMi4yLjMvdmxvY2tfcGFtX3RhbGx5Ml9yZXNldC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Zsb2NrL3Zsb2NrLTIuMi4zL3Zsb2NrX3BhbV90YWxseTJfcmVzZXQucGF0Y2gKaW5kZXggNGNlMGFiYy4uNDYwYjI5MiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdmxvY2svdmxvY2stMi4yLjMvdmxvY2tfcGFtX3RhbGx5Ml9yZXNldC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC92bG9jay92bG9jay0yLjIuMy92bG9ja19wYW1fdGFsbHkyX3Jlc2V0LnBhdGNoCkBAIC0xLDEzICsxLDIyIEBACitGcm9tIGZjZWM0ZTdmZTg5OWY4YzAwNzdiMzAwNGVlY2NiNzI5MmE5NDVhNjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgorRGF0ZTogV2VkLCAxNiBBdWcgMjAxNyAxMzozNzo0MCArMDgwMAorU3ViamVjdDogW1BBVENIXSB2bG9jazogYWRkIG5ldyByZWNpcGUKKwogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKIHdyaXR0ZW4gYnk6IEplZmYgUG9sayA8amVmZi5wb2xrQHdpbmRyaXZlci5jb20+CiBTaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgogCi1JbmRleDogdmxvY2stMi4yLjIvc3JjL2F1dGgtcGFtLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSB2bG9jay0yLjIuMi5vcmlnL3NyYy9hdXRoLXBhbS5jCTIwMTAtMDYtMTQgMTQ6Mzg6NTEuMDAwMDAwMDAwIC0wNDAwCi0rKysgdmxvY2stMi4yLjIvc3JjL2F1dGgtcGFtLmMJMjAxMC0wNi0xNCAxNDozOToxMi4wMDAwMDAwMDAgLTA0MDAKLUBAIC0xNDgsNiArMTQ4LDkgQEAKKy0tLQorIHNyYy9hdXRoLXBhbS5jIHwgMyArKysKKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zcmMvYXV0aC1wYW0uYyBiL3NyYy9hdXRoLXBhbS5jCitpbmRleCA1Y2Y5M2Y2Li5jNWNjNjdhIDEwMDY0NAorLS0tIGEvc3JjL2F1dGgtcGFtLmMKKysrKyBiL3NyYy9hdXRoLXBhbS5jCitAQCAtMTQ4LDYgKzE0OCw5IEBAIGJvb2wgYXV0aChjb25zdCBjaGFyICp1c2VyLCBzdHJ1Y3QgdGltZXNwZWMgKnRpbWVvdXQpCiAgCiAgICBpZiAocGFtX3N0YXR1cyAhPSBQQU1fU1VDQ0VTUykgewogICAgICBmcHJpbnRmKHN0ZGVyciwgInZsb2NrOiAlc1xuIiwgcGFtX3N0cmVycm9yKHBhbWgsIHBhbV9zdGF0dXMpKTsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3pyYW0venJhbS9pbml0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvenJhbS96cmFtL2luaXQKaW5kZXggN2I2Y2JmNC4uYTJjOWMyMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvenJhbS96cmFtL2luaXQKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvenJhbS96cmFtL2luaXQKQEAgLTM0LDcgKzM0LDcgQEAKICAgICBtZW1fYnlfY3B1PSQoKCRtZW10b3RhbC8kbnVtX2NwdXMqJGZhY3Rvci8xMDAqMTAyNCkpCiAKICAgICAjIGxvYWQgZGVwZW5kZW5jeSBtb2R1bGVzCi0gICAgbW9kcHJvYmUgenJhbSB6cmFtX251bV9kZXZpY2VzPSRudW1fY3B1cworICAgIG1vZHByb2JlIHpyYW0gbnVtX2RldmljZXM9JG51bV9jcHVzCiAgICAgZWNobyAienJhbSBkZXZpY2VzIHByb2JlZCBzdWNjZXNzZnVsbHkiCiAKICAgICAjIGluaXRpYWxpemUgdGhlIGRldmljZXMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3pzaC96c2hfNS4zLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC96c2gvenNoXzUuMy4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZjVlMzkwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3pzaC96c2hfNS4zLjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi1TVU1NQVJZID0gIlVOSVggU2hlbGwgc2ltaWxhciB0byB0aGUgS29ybiBzaGVsbCIKLURFU0NSSVBUSU9OID0gIlpzaCBpcyBhIHNoZWxsIGRlc2lnbmVkIGZvciBpbnRlcmFjdGl2ZSB1c2UsIGFsdGhvdWdoIGl0IGlzIGFsc28gYSBcCi0gICAgICAgICAgICAgICBwb3dlcmZ1bCBzY3JpcHRpbmcgbGFuZ3VhZ2UuIE1hbnkgb2YgdGhlIHVzZWZ1bCBmZWF0dXJlcyBvZiBiYXNoLCBcCi0gICAgICAgICAgICAgICBrc2gsIGFuZCB0Y3NoIHdlcmUgaW5jb3Jwb3JhdGVkIGludG8genNoOyBtYW55IG9yaWdpbmFsIGZlYXR1cmVzIHdlcmUgYWRkZWQuIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy56c2gub3JnIgotU0VDVElPTiA9ICJiYXNlL3NoZWxsIgotCi1MSUNFTlNFID0gInpzaCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOQ0U7bWQ1PWI3YmM4NTM4OTQ2NjRiZTQ1NWE5MjJkYjk4MDUyODhlIgotCi1ERVBFTkRTID0gIm5jdXJzZXMgYmlzb24tbmF0aXZlIGxpYmNhcCBsaWJwY3JlIGdkYm0gZ3JvZmYtbmF0aXZlIgotCi1TUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS8ke0JQTn0vJHtCUH0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gImQ1ODNmYmNhMGMyNDEwYmY5NTQyY2U4YTY1MWMyNmNhIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjNkOTRhNTkwZmYzYzU2MmVjZjM4N2RhNzhhYzM1NmQ2YmVhNzliMDUwYTllZjgxZTNlY2I5ZjhlZTUxMzA0MGUiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIGdldHRleHQgdXBkYXRlLWFsdGVybmF0aXZlcwotCi1FWFRSQV9PRUNPTkYgPSAiIFwKLSAgICAtLWJpbmRpcj0ke2Jhc2VfYmluZGlyfSBcCi0gICAgLS1lbmFibGUtZXRjZGlyPSR7c3lzY29uZmRpcn0gXAotICAgIC0tZW5hYmxlLWZuZGlyPSR7ZGF0YWRpcn0vJHtQTn0vJHtQVn0vZnVuY3Rpb25zIFwKLSAgICAtLWVuYWJsZS1zaXRlLWZuZGlyPSR7ZGF0YWRpcn0vJHtQTn0vc2l0ZS1mdW5jdGlvbnMgXAotICAgIC0td2l0aC10ZXJtLWxpYj0nbmN1cnNlc3cgbmN1cnNlcycgXAotICAgIC0td2l0aC10Y3NldHBncnAgXAotICAgIC0tZW5hYmxlLWNhcCBcCi0gICAgLS1lbmFibGUtbXVsdGlieXRlIFwKLSAgICAtLWRpc2FibGUtZ2RibSBcCi0gICAgLS1kaXNhYmxlLWR5bmFtaWMgXAotICAgIHpzaF9jdl9zaGFyZWRfZW52aXJvbj15ZXMgXAotIgotCi1FWFRSQV9PRU1BS0UgPSAiLWUgTUFLRUZMQUdTPSIKLQotQUxURVJOQVRJVkVfJHtQTn0gPSAic2giCi1BTFRFUk5BVElWRV9MSU5LX05BTUVbc2hdID0gIiR7YmFzZV9iaW5kaXJ9L3NoIgotQUxURVJOQVRJVkVfVEFSR0VUW3NoXSA9ICIke2Jhc2VfYmluZGlyfS8ke0JQTn0iCi1BTFRFUk5BVElWRV9QUklPUklUWSA9ICIxMDAiCi0KLWV4cG9ydCBBVVRPSEVBREVSID0gInRydWUiCi0KLWRvX2NvbmZpZ3VyZSAoKSB7Ci0gICAgZ251LWNvbmZpZ2l6ZSAtLWZvcmNlICR7U30KLSAgICBvZV9ydW5jb25mCi19Ci0KLWRvX2luc3RhbGxfYXBwZW5kICgpIHsKLSAgICBybSAtZnIgJHtEfS91c3Ivc2hhcmUKLX0KLQotcGtnX3Bvc3RpbnN0XyR7UE59ICgpIHsKLSAgICB0b3VjaCAkRCR7c3lzY29uZmRpcn0vc2hlbGxzCi0gICAgZ3JlcCAtcSAiYmluL3pzaCIgJEQke3N5c2NvbmZkaXJ9L3NoZWxscyB8fCBlY2hvIC9iaW4venNoID4+ICREJHtzeXNjb25mZGlyfS9zaGVsbHMKLSAgICBncmVwIC1xICJiaW4vc2giICREJHtzeXNjb25mZGlyfS9zaGVsbHMgfHwgZWNobyAvYmluL3NoID4+ICREJHtzeXNjb25mZGlyfS9zaGVsbHMKLX0KLQotRklMRVNfJHtQTn0tZGJnICs9ICJcCi0gICAgJHtsaWJkaXJ9LyR7UE59LyR7UFZ9LyR7UE59Ly5kZWJ1Zy8qLnNvIFwKLSAgICAke2xpYmRpcn0vJHtQTn0vJHtQVn0vJHtQTn0vZGIvLmRlYnVnLyouc28gXAotICAgICR7bGliZGlyfS8ke1BOfS8ke1BWfS8ke1BOfS9uZXQvLmRlYnVnLyouc28gXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvYXRrL2F0a21tXzIuMjQuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2F0ay9hdGttbV8yLjI0LjIuYmIKaW5kZXggMzBhYzkwYS4uMzA3Nzc0YiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvYXRrL2F0a21tXzIuMjQuMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9hdGsvYXRrbW1fMi4yNC4yLmJiCkBAIC03LDcgKzcsOSBAQAogCiBERVBFTkRTID0gImF0ayBnbGlibW0iCiAKLWluaGVyaXQgZ25vbWUgYXV0b3Rvb2xzIHBrZ2NvbmZpZworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgZ25vbWUgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBTUkNfVVJJW2FyY2hpdmUubWQ1c3VtXSA9ICJkNTNiNjBiMGYxYmU1OTdlODYwNzA5NTRhNDljZjBjMyIKIFNSQ19VUklbYXJjaGl2ZS5zaGEyNTZzdW1dID0gImZmOTUzODU3NTllMmFmMjM4MjhkNDA1NjM1NmYyNTM3NmNmYWJjNDFlNjkwYWMxZGYwNTUzNzE1MzdlNDU4YmQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9nbm9tZS1jb21tb24vZ25vbWUtY29tbW9uXzMuMTguMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2dub21lLWNvbW1vbi9nbm9tZS1jb21tb25fMy4xOC4wLmJiCmluZGV4IDA2ZjNiYjMuLmQ4NzQxNjQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2dub21lLWNvbW1vbi9nbm9tZS1jb21tb25fMy4xOC4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2dub21lLWNvbW1vbi9nbm9tZS1jb21tb25fMy4xOC4wLmJiCkBAIC0xNCw2ICsxNCwxMCBAQAogRVhUUkFfQVVUT1JFQ09ORiA9ICIiCiBERVBFTkRTID0gIiIKIAorIyBEZWZhdWx0IHRvIGVuYWJsZSBhdXRvY29uZi1hcmNoaXZlIHRvIGF2b2lkIGNvbmZsaWN0cworUEFDS0FHRUNPTkZJRyA/Pz0gImF1dG9jb25mLWFyY2hpdmUiCitQQUNLQUdFQ09ORklHW2F1dG9jb25mLWFyY2hpdmVdID0gIi0td2l0aC1hdXRvY29uZi1hcmNoaXZlLCAtLXdpdGhvdXQtYXV0b2NvbmYtYXJjaGl2ZSwgYXV0b2NvbmYtYXJjaGl2ZSIKKwogRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vYWNsb2NhbCIKIEZJTEVTXyR7UE59LWRldiA9ICIiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2d0aysvZmlsZXMvMDAwMS1kby1ub3QtYnVpbGQtZGVtb3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9ndGsrL2ZpbGVzLzAwMDEtZG8tbm90LWJ1aWxkLWRlbW9zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NmU5NzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9ndGsrL2ZpbGVzLzAwMDEtZG8tbm90LWJ1aWxkLWRlbW9zLnBhdGNoCkBAIC0wLDAgKzEsNTEgQEAKK0Zyb20gNjkxNGVjY2VlMzQzNzZmOTA2N2IwZWU5ZjE3MDM5ZmUxODIxMjVlOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDMxIE1hciAyMDE4IDIyOjI5OjE2ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGRvIG5vdCBidWlsZCBkZW1vcworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitUaGV5IGFyZSBub3QgaW5zdGFsbGVkIGFueXdheSBhbmQgYWRkIGxpYmVwb3h5IGRlcGVuZGVuY3kKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CistLS0KKyBNYWtlZmlsZS5hbSAgfCAzICsrLQorIGNvbmZpZ3VyZS5hYyB8IDMgLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCitpbmRleCA5ODRiNmE3Li42Yzc1NGE2IDEwMDY0NAorLS0tIGEvTWFrZWZpbGUuYW0KKysrKyBiL01ha2VmaWxlLmFtCitAQCAtMjgsNyArMjgsOCBAQCBkb2Nfc3ViZGlycyA9IGRvY3MKKyBlbHNlCisgZG9jX3N1YmRpcnMgPQorIGVuZGlmCistU1VCRElSUyA9IHRvb2xzICQoc3JjX3N1YmRpcnMpIGdkay9nZGttbSBndGsvZ3RrbW0gdGVzdHMgZGVtb3MgJChkb2Nfc3ViZGlycykKKysKKytTVUJESVJTID0gdG9vbHMgJChzcmNfc3ViZGlycykgZ2RrL2dka21tIGd0ay9ndGttbSB0ZXN0cyAkKGRvY19zdWJkaXJzKQorIAorIGdka21tX2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpLyQoR0RLTU1fTU9EVUxFX05BTUUpCisgZ2RrbW1faW5jbHVkZV9IRUFERVJTID0gZ2RrL2dka21tLmgKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IGU1ZTgyZGMuLmMxYzc2NTggMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTEwOSwxMSArMTA5LDggQEAgQVNfSUYoW3Rlc3QgIngkZ3RrbW1fZW5hYmxlX2FwaV9hdGttbSIgIT0geG5vXSwKKyAgICAgICBbR1RLTU1fTU9EVUxFUz0iYXRrbW0tMS42ID49IDIuMjQuMiAkR1RLTU1fTU9EVUxFUyJdKQorIEFDX1NVQlNUKFtHVEtNTV9NT0RVTEVTXSkKKyAKKy1BQ19TVUJTVChbR1RLTU1fREVNT1NfRVhUUkFfTU9EVUxFU10sIFsnZXBveHkgPj0gMS4yJ10pCistCisgUEtHX0NIRUNLX01PRFVMRVMoW0dES01NXSwgWyRHREtNTV9NT0RVTEVTXSkKKyBQS0dfQ0hFQ0tfTU9EVUxFUyhbR1RLTU1dLCBbJEdUS01NX01PRFVMRVNdKQorLVBLR19DSEVDS19NT0RVTEVTKFtHVEtNTV9ERU1PU19FWFRSQV0sIFskR1RLTU1fREVNT1NfRVhUUkFfTU9EVUxFU10pCisgCisgTU1fUEtHX0NPTkZJR19TVUJTVChbR1RIUkVBRF9DRkxBR1NdLCBbLS1jZmxhZ3Mtb25seS1vdGhlciBndGhyZWFkLTIuMF0pCisgTU1fUEtHX0NPTkZJR19TVUJTVChbR1RIUkVBRF9MSUJTXSwgWy0tbGlicyBndGhyZWFkLTIuMF0pCistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9ndGsrL2d0a21tM18zLjIyLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9ndGsrL2d0a21tM18zLjIyLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZiNTRkZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2d0aysvZ3RrbW0zXzMuMjIuMi5iYgpAQCAtMCwwICsxLDIzIEBACitTVU1NQVJZID0gIkMrKyBiaW5kaW5ncyBmb3IgdGhlIEdUSysgdG9vbGtpdCBWMyIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuZ3RrbW0ub3JnLyIKK1NFQ1RJT04gPSAibGlicyIKKworTElDRU5TRSA9ICJMR1BMdjIuMSAmIEdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NGZiZDY1MzgwY2RkMjU1OTUxMDc5MDA4YjM2NDUxNmMgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy50b29sczttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCisKK0RFUEVORFMgPSAiYXRrbW0gcGFuZ29tbSBnbGlibW0gZ3RrKzMgY2Fpcm9tbSIKKworQlBOID0gImd0a21tIgorCitpbmhlcml0IGdub21lYmFzZSBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiODgzZTkwNDY3NjhiM2E1YWZjOGUzNjU5ODg4MjNlNzciCitTUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICI5MWFmZDk4YTMxNTE5NTM2ZjVmMzk3YzJkNzk2OTZlM2Q1MzE0M2I4MGI3NTc3ODUyMWNhN2I0OGNiMjgwMDkwIgorU1JDX1VSSSArPSAiZmlsZTovLzAwMDEtZG8tbm90LWJ1aWxkLWRlbW9zLnBhdGNoIgorCitFWFRSQV9PRUNPTkYgPSAiIC0tZGlzYWJsZS1kb2N1bWVudGF0aW9uICIKKworRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vKi9pbmNsdWRlICR7bGliZGlyfS8qL3Byb2MvbTQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9ndGsrL2d0a21tXzIuMjQuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2d0aysvZ3RrbW1fMi4yNC41LmJiCmluZGV4IDE5NWJiMjEuLmI3ODBkMDkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2d0aysvZ3RrbW1fMi4yNC41LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2d0aysvZ3RrbW1fMi4yNC41LmJiCkBAIC04LDEyICs4LDEwIEBACiAKIERFUEVORFMgPSAiYXRrbW0gcGFuZ29tbSBnbGlibW0gZ3RrKyBjYWlyb21tIgogCi1pbmhlcml0IGdub21lIGF1dG90b29scyBwa2djb25maWcgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCitpbmhlcml0IGdub21lYmFzZSBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKIAogUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAotR05PTUVfQ09NUFJFU1NfVFlQRSA9ICJ4eiIKLQogU1JDX1VSSVthcmNoaXZlLm1kNXN1bV0gPSAiNmM1OWFlOGJiZmY0OGZhZDkxMzJmMjNhZjM0N2FjZjEiCiBTUkNfVVJJW2FyY2hpdmUuc2hhMjU2c3VtXSA9ICIwNjgwYTUzYjdiZjkwYjRlNGJmNDQ0ZDFkODllNmRmNDFjNzc3ZTBiYWNjOTZlOWMwOWZjNGRkMmY1ZmU2YjcyIgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJnbGFkZS9saWJnbGFkZS0yLjYuNC8wMDAxLWNvbmZpZ3VyZS5pbi1yZW1vdmUtZGVwcmVjYXRlZC1HTk9NRV9DT01NT05fSU5JVC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYmdsYWRlL2xpYmdsYWRlLTIuNi40LzAwMDEtY29uZmlndXJlLmluLXJlbW92ZS1kZXByZWNhdGVkLUdOT01FX0NPTU1PTl9JTklULnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzM4Mjc0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYmdsYWRlL2xpYmdsYWRlLTIuNi40LzAwMDEtY29uZmlndXJlLmluLXJlbW92ZS1kZXByZWNhdGVkLUdOT01FX0NPTU1PTl9JTklULnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotRnJvbSBjZWVmY2IxOWNlYmY4YmMzZDQ1ZWU1MDJmOGVhYmQzYmM1YmQwYWFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotRGF0ZTogU2F0LCAxMSBGZWIgMjAxNyAxNjo0MjoxMiArMDEwMAotU3ViamVjdDogW1BBVENIXSBjb25maWd1cmUuaW46IHJlbW92ZSBkZXByZWNhdGVkIEdOT01FX0NPTU1PTl9JTklUCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci0tLS0KLSBjb25maWd1cmUuaW4gfCAxIC0KLSAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCi1pbmRleCA4OTA1ZjFjLi4zOTAxMzk4IDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmluCi0rKysgYi9jb25maWd1cmUuaW4KLUBAIC0xNSw3ICsxNSw2IEBAIEFDX0NPTkZJR19IRUFERVJTKFtjb25maWcuaF0pCi0gCi0gQU1fSU5JVF9BVVRPTUFLRShbMS45IG5vLWRpc3QtZ3ppcCBkaXN0LWJ6aXAyXSkKLSAKLS1HTk9NRV9DT01NT05fSU5JVAotIAotIGlmIHRlc3QgIiRlbmFibGVfZGVidWciICE9ICJubyI7IHRoZW4KLSAgIEFDX0RFRklORShbREVCVUddLFsxXSxbZW5hYmxlIHVzZSBvZiBMSUJHTEFERV9ERUJVRyBlbnZpcm9ubWVudCB2YXJpYWJsZV0pCi0tLSAKLTIuOS4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYmdsYWRlL2xpYmdsYWRlLTIuNi40L2dsYWRlLWNydWZ0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGliZ2xhZGUvbGliZ2xhZGUtMi42LjQvZ2xhZGUtY3J1ZnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1ZDU4NjQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGliZ2xhZGUvbGliZ2xhZGUtMi42LjQvZ2xhZGUtY3J1ZnQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLWRpZmYgLXVyIGxpYmdsYWRlLTIuNC4wfi9jb25maWd1cmUuaW4gbGliZ2xhZGUtMi40LjAvY29uZmlndXJlLmluCi0tLS0gbGliZ2xhZGUtMi40LjB+L2NvbmZpZ3VyZS5pbgkyMDA0LTA1LTE3IDEyOjM4OjMxLjAwMDAwMDAwMCArMDEwMAotKysrIGxpYmdsYWRlLTIuNC4wL2NvbmZpZ3VyZS5pbgkyMDA0LTA3LTI4IDE2OjUzOjA5LjAwMDAwMDAwMCArMDEwMAotQEAgLTE0Nyw2ICsxNDcsMTggQEAKLSBBTV9DT05ESVRJT05BTChIQVZFX1BZVEhPTiwgJGhhdmVfcHl0aG9uKQotIEFDX1NVQlNUKFBZVEhPTikKLSAKLStBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBjcnVmdCBpbiBsaWJndGtdKQotK0FDX1RSWV9MSU5LKFsKLSsjaW5jbHVkZSA8Z3RrL2d0ay5oPgotKyNpbmNsdWRlIDxzdGRpby5oPgotK10sICAgICAgWyBndGtfdHJlZV9nZXRfdHlwZSAoKTsgcmV0dXJuIDA7IF0sCi0rICAgICAgICBbIEFDX01TR19SRVNVTFQoeWVzKQotKyAgICAgICAgICBoYXZlX2NydWZ0PXllcyBdLAotKyAgICAgICAgWyBBQ19NU0dfUkVTVUxUKG5vKQotKwkgIEFDX0RFRklORShESVNBQkxFX0NSVUZULCxbbGVhdmUgb3V0IHN1cHBvcnQgZm9yIG9sZCwgYnJva2VuIHdpZGdldHNdKQotKyAgICAgICAgICBoYXZlX2NydWZ0PW5vIF0pCi0rQUNfU1VCU1QoRElTQUJMRV9DUlVGVCkKLSsKLSBkbmwgYWRkIGRlYnVnZ2luZyBvcHRpb25zIC4uLgotIGNoYW5nZXF1b3RlKCwpZG5sCi0gaWYgdGVzdCAieCRHQ0MiID0geHllczsgdGhlbgotT25seSBpbiBsaWJnbGFkZS0yLjQuMDogY29uZmlndXJlLmluLm9yaWcKLWRpZmYgLXVyIGxpYmdsYWRlLTIuNC4wfi9nbGFkZS9nbGFkZS1ndGsuYyBsaWJnbGFkZS0yLjQuMC9nbGFkZS9nbGFkZS1ndGsuYwotLS0tIGxpYmdsYWRlLTIuNC4wfi9nbGFkZS9nbGFkZS1ndGsuYwkyMDA0LTAzLTEzIDEzOjQ3OjM1LjAwMDAwMDAwMCArMDAwMAotKysrIGxpYmdsYWRlLTIuNC4wL2dsYWRlL2dsYWRlLWd0ay5jCTIwMDQtMDctMjggMTY6NTM6NTIuMDAwMDAwMDAwICswMTAwCi1AQCAtMjEzLDYgKzIxMyw4IEBACi0gCWd0a19jbGlzdF9jb2x1bW5fdGl0bGVzX2hpZGUgKEdUS19DTElTVCAodykpOwotIH0KLSAKLSsjaWZuZGVmIERJU0FCTEVfQ1JVRlQKLSsKLSBzdGF0aWMgdm9pZAotIHRyZWVfc2V0X3NlbGVjdGlvbl9tb2RlIChHbGFkZVhNTCAqeG1sLCBHdGtXaWRnZXQgKncsCi0gCQkJIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQotQEAgLTIzOCw2ICsyNDAsOCBAQAotICAgICBndGtfdHJlZV9zZXRfdmlld19saW5lcyAoR1RLX1RSRUUgKHcpLCBCT09MICh2YWx1ZSkpOwotIH0KLSAKLSsjZW5kaWYKLSsKLSBzdGF0aWMgdm9pZAotIGxpc3Rfc2V0X3NlbGVjdGlvbl9tb2RlIChHbGFkZVhNTCAqeG1sLCBHdGtXaWRnZXQgKncsCi0gCQkJIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQotQEAgLTI1NCw2ICsyNTgsNyBAQAotICAgICBndGtfY2hlY2tfbWVudV9pdGVtX3NldF9zaG93X3RvZ2dsZSAoR1RLX0NIRUNLX01FTlVfSVRFTSAodyksIEJPT0wgKHZhbHVlKSk7Ci0gfQotIAotKyNpZm5kZWYgRElTQUJMRV9DUlVGVAotIHN0YXRpYyB2b2lkCi0gdGV4dF9zZXRfdGV4dCAoR2xhZGVYTUwgKnhtbCwgR3RrV2lkZ2V0ICp3LAotIAkgICAgICAgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCi1AQCAtMjYyLDYgKzI2Nyw3IEBACi0gCi0gICAgIGd0a19lZGl0YWJsZV9pbnNlcnRfdGV4dCAoR1RLX0VESVRBQkxFICh3KSwgdmFsdWUsIC0xLCAmcG9zKTsKLSB9Ci0rI2VuZGlmCi0gCi0gc3RhdGljIHZvaWQKLSByYWRpb19tZW51X2l0ZW1fc2V0X2dyb3VwIChHbGFkZVhNTCAqeG1sLCBHdGtXaWRnZXQgKncsCi1AQCAtMTEyNSwxMyArMTEzMSwxNyBAQAotICAgICBnbGFkZV9yZWdpc3Rlcl9jdXN0b21fcHJvcCAoR1RLX1RZUEVfQ0xJU1QsICJzZWxlY3Rpb25fbW9kZSIsIGNsaXN0X3NldF9zZWxlY3Rpb25fbW9kZSk7Ci0gICAgIGdsYWRlX3JlZ2lzdGVyX2N1c3RvbV9wcm9wIChHVEtfVFlQRV9DTElTVCwgInNoYWRvd190eXBlIiwgY2xpc3Rfc2V0X3NoYWRvd190eXBlKTsKLSAgICAgZ2xhZGVfcmVnaXN0ZXJfY3VzdG9tX3Byb3AgKEdUS19UWVBFX0NMSVNULCAic2hvd190aXRsZXMiLCBjbGlzdF9zZXRfc2hvd190aXRsZXMpOwotKyNpZm5kZWYgRElTQUJMRV9DUlVGVAotICAgICBnbGFkZV9yZWdpc3Rlcl9jdXN0b21fcHJvcCAoR1RLX1RZUEVfVFJFRSwgInNlbGVjdGlvbl9tb2RlIiwgdHJlZV9zZXRfc2VsZWN0aW9uX21vZGUpOwotICAgICBnbGFkZV9yZWdpc3Rlcl9jdXN0b21fcHJvcCAoR1RLX1RZUEVfVFJFRSwgInZpZXdfbW9kZSIsIHRyZWVfc2V0X3ZpZXdfbW9kZSk7Ci0gICAgIGdsYWRlX3JlZ2lzdGVyX2N1c3RvbV9wcm9wIChHVEtfVFlQRV9UUkVFLCAidmlld19saW5lIiwgdHJlZV9zZXRfdmlld19saW5lKTsKLSsjZW5kaWYKLSAgICAgZ2xhZGVfcmVnaXN0ZXJfY3VzdG9tX3Byb3AgKEdUS19UWVBFX0xJU1QsICJzZWxlY3Rpb25fbW9kZSIsIGxpc3Rfc2V0X3NlbGVjdGlvbl9tb2RlKTsKLSAgICAgZ2xhZGVfcmVnaXN0ZXJfY3VzdG9tX3Byb3AgKEdUS19UWVBFX0NIRUNLX01FTlVfSVRFTSwgImFsd2F5c19zaG93X3RvZ2dsZSIsCi0gCQkJCWNoZWNrX21lbnVfaXRlbV9zZXRfYWx3YXlzX3Nob3dfdG9nZ2xlKTsKLSsjaWZuZGVmIERJU0FCTEVfQ1JVRlQKLSAgICAgZ2xhZGVfcmVnaXN0ZXJfY3VzdG9tX3Byb3AgKEdUS19UWVBFX1RFWFQsICJ0ZXh0IiwgdGV4dF9zZXRfdGV4dCk7Ci0rI2VuZGlmCi0gICAgIGdsYWRlX3JlZ2lzdGVyX2N1c3RvbV9wcm9wIChHVEtfVFlQRV9SQURJT19NRU5VX0lURU0sICJncm91cCIsCi0gCQkJCXJhZGlvX21lbnVfaXRlbV9zZXRfZ3JvdXApOwotICAgICBnbGFkZV9yZWdpc3Rlcl9jdXN0b21fcHJvcCAoR1RLX1RZUEVfVE9PTEJBUiwgInRvb2x0aXBzIiwgdG9vbGJhcl9zZXRfdG9vbHRpcHMpOwotQEAgLTEyODgsOCArMTI5OCwxMCBAQAotIAkJCSAgIGdsYWRlX3N0YW5kYXJkX2J1aWxkX2NoaWxkcmVuLCBOVUxMKTsKLSAgICAgZ2xhZGVfcmVnaXN0ZXJfd2lkZ2V0IChHVEtfVFlQRV9URUFST0ZGX01FTlVfSVRFTSwgZ2xhZGVfc3RhbmRhcmRfYnVpbGRfd2lkZ2V0LAotIAkJCSAgIE5VTEwsIE5VTEwpOwotKyNpZm5kZWYgRElTQUJMRV9DUlVGVAotICAgICBnbGFkZV9yZWdpc3Rlcl93aWRnZXQgKEdUS19UWVBFX1RFWFQsIGdsYWRlX3N0YW5kYXJkX2J1aWxkX3dpZGdldCwKLSAJCQkgICBOVUxMLCBOVUxMKTsKLSsjZW5kaWYKLSAgICAgZ2xhZGVfcmVnaXN0ZXJfd2lkZ2V0IChHVEtfVFlQRV9URVhUX1ZJRVcsIGdsYWRlX3N0YW5kYXJkX2J1aWxkX3dpZGdldCwKLSAJCQkgICBOVUxMLCBOVUxMKTsKLSAgICAgZ2xhZGVfcmVnaXN0ZXJfd2lkZ2V0IChHVEtfVFlQRV9USVBTX1FVRVJZLCBnbGFkZV9zdGFuZGFyZF9idWlsZF93aWRnZXQsCi1AQCAtMTMwNCw4ICsxMzE2LDEwIEBACi0gCQkJICAgZ2xhZGVfc3RhbmRhcmRfYnVpbGRfY2hpbGRyZW4sIE5VTEwpOwotICAgICBnbGFkZV9yZWdpc3Rlcl93aWRnZXQgKEdUS19UWVBFX1RPT0xfQlVUVE9OLCBnbGFkZV9zdGFuZGFyZF9idWlsZF93aWRnZXQsCi0gCQkJICAgTlVMTCwgTlVMTCk7Ci0rI2lmbmRlZiBESVNBQkxFX0NSVUZUCi0gICAgIGdsYWRlX3JlZ2lzdGVyX3dpZGdldCAoR1RLX1RZUEVfVFJFRSwgZ2xhZGVfc3RhbmRhcmRfYnVpbGRfd2lkZ2V0LAotIAkJCSAgIE5VTEwsIE5VTEwpOwotKyNlbmRpZgotICAgICBnbGFkZV9yZWdpc3Rlcl93aWRnZXQgKEdUS19UWVBFX1RSRUVfVklFVywgZ2xhZGVfc3RhbmRhcmRfYnVpbGRfd2lkZ2V0LAotIAkJCSAgIE5VTEwsIE5VTEwpOwotICAgICBnbGFkZV9yZWdpc3Rlcl93aWRnZXQgKEdUS19UWVBFX1ZCVVRUT05fQk9YLCBnbGFkZV9zdGFuZGFyZF9idWlsZF93aWRnZXQsCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJnbGFkZS9saWJnbGFkZS0yLjYuNC9uby14bWwyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGliZ2xhZGUvbGliZ2xhZGUtMi42LjQvbm8teG1sMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGM0YzA5Mi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJnbGFkZS9saWJnbGFkZS0yLjYuNC9uby14bWwyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTAxICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLQotZGlmZiAtdXJOIGxpYmdsYWRlLTIuNC4yLm9yaWcvY29uZmlndXJlLmluIGxpYmdsYWRlLTIuNC4yL2NvbmZpZ3VyZS5pbgotLS0tIGxpYmdsYWRlLTIuNC4yLm9yaWcvY29uZmlndXJlLmluCTIwMDUtMDItMTEgMTI6NDI6NTguMDAwMDAwMDAwICswMTAwCi0rKysgbGliZ2xhZGUtMi40LjIvY29uZmlndXJlLmluCTIwMDUtMDMtMjIgMDE6MjI6MDAuMDAwMDAwMDAwICswMTAwCi1AQCAtNTIsMTEgKzUyLDMzIEBACi0gQUNfUEFUSF9QUk9HKFBLR19DT05GSUcsIHBrZy1jb25maWcsIG5vKQotIAotIFBLR19DSEVDS19NT0RVTEVTKExJQkdMQURFLCBbZG5sCi0tICBsaWJ4bWwtMi4wID49IHJlcXVpcmVkX2xpYnhtbF92ZXJzaW9uIGRubAotICAgYXRrID49IHJlcXVpcmVkX2F0a192ZXJzaW9uIGRubAotICAgZ3RrKy0yLjAgPj0gcmVxdWlyZWRfZ3RrX3ZlcnNpb24gZG5sCi0gICBnbGliLTIuMCA+PSByZXF1aXJlZF9nbGliX3ZlcnNpb25dKQotIAotK2Rpc2FibGVfeG1sMj1ubwotK0FDX0FSR19XSVRIKFtsaWJ4bWwyXSwKLSsgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGhvdXQtbGlieG1sMl0sIFtEb24ndCB1c2UgbGlieG1sMiwgdXNlIEdsaWIncyBHTWFya3VwUGFyc2VyIGluc3RlYWRdKSwKLSsgIFtkaXNhYmxlX3htbDI9eWVzXSwKLSsgIFtkaXNhYmxlX3htbDI9bm9dKQotKwotK0FDX01TR19DSEVDS0lORyhbaWYgd2UgYXJlIHVzaW5nIGxpYnhtbDJdKQotK2lmIHRlc3QgIngkZGlzYWJsZV94bWwyIiA9PSAieG5vIjsgdGhlbgotKyAgQUNfTVNHX1JFU1VMVCh5ZXMpCi0rICBQS0dfQ0hFQ0tfTU9EVUxFUyhYTUwyLCBsaWJ4bWwtMi4wID49IDIuNC4xMCkKLSsgIFBLR0NGR19SRVFVSVJFX0xJQlhNTDI9ImxpYnhtbC0yLjAiCi0rICBMSUJHTEFERV9DRkxBR1M9IiRMSUJHTEFERV9DRkxBR1MgJFhNTDJfQ0ZMQUdTIgotKyAgTElCR0xBREVfTElCUz0iJExJQkdMQURFX0xJQlMgJFhNTDJfTElCUyIKLStlbHNlCi0rICBMSUJHTEFERV9DRkxBR1M9IiRMSUJHTEFERV9DRkxBR1MgLURVU0VfR01BUktVUF9QQVJTRVIiCi0rICBQS0dDRkdfUkVRVUlSRV9MSUJYTUwyPSIiCi0rICBBQ19NU0dfUkVTVUxUKG5vKQotK2ZpCi0rCi0rQUNfU1VCU1QoWE1MMl9MSUJTKQotK0FDX1NVQlNUKFhNTDJfQ0ZMQUdTKQotK0FDX1NVQlNUKFBLR0NGR19SRVFVSVJFX0xJQlhNTDIpCi0rCi0gQUNfTVNHX0NIRUNLSU5HKFtmb3IgbmF0aXZlIFdpbjMyXSkKLSBjYXNlICIkaG9zdCIgaW4KLSAgICotKi1taW5ndyopCi1AQCAtMTE2LDYgKzEzOCwyMSBAQAotICAgZmkKLSBmaQotIAotK2lmIHRlc3QgIngkZGlzYWJsZV94bWwyIiA9PSAieHllcyI7IHRoZW4KLSsgIGVjaG8gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIgotKyAgZWNobyAiICBZb3UgY2hvc2UgdG8gZGlzYWJsZSBsaWJ4bWwyIGFuZCB1c2UgR2xpYidzIgotKyAgZWNobyAiICBHTWFya3VwUGFyc2VyIGluc3RlYWQuIiAKLSsgIGVjaG8gIAotKyAgZWNobyAiICBQbGVhc2UgYmVhciBpbiBtaW5kIHRoYXQgdXNpbmcgbGliZ2xhZGUgd2l0aCIKLSsgIGVjaG8gIiAgR01hcmt1cFBhcnNlciBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZSBvbmx5LiIKLSsgIGVjaG8KLSsgIGVjaG8gIiAgUGxlYXNlIHBvc3QgcHJvYmxlbXMgb3Igc3VjY2VzcyBzdG9yaWVzIHRvIgotKyAgZWNobyAiICB0aGUgZ2xhZGUtZGV2ZWwgbWFpbGluZyBsaXN0LiBUaGFuayB5b3UuIgotKyAgZWNobyAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioiCi0rZmkKLSsKLSsKLSsKLSBHVEtfRE9DX0NIRUNLKDEuMCkKLSAKLSBkbmwgZ2V0dGV4dCBzdHVmZiAuLi4gdGhlcmUgaXMgbm8gbWVzc2FnZSBjYXRhbG9nIGZvciBsaWJnbGFkZSAtLSBsaWJnbGFkZQotZGlmZiAtdXJOIGxpYmdsYWRlLTIuNC4yLm9yaWcvZ2xhZGUvZ2xhZGUtcGFyc2VyLmMgbGliZ2xhZGUtMi40LjIvZ2xhZGUvZ2xhZGUtcGFyc2VyLmMKLS0tLSBsaWJnbGFkZS0yLjQuMi5vcmlnL2dsYWRlL2dsYWRlLXBhcnNlci5jCTIwMDQtMTEtMTEgMTE6NTY6MTMuMDAwMDAwMDAwICswMTAwCi0rKysgbGliZ2xhZGUtMi40LjIvZ2xhZGUvZ2xhZGUtcGFyc2VyLmMJMjAwNS0wMy0yMiAwMToyMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0zNCw3ICszNCwxNSBAQAotICMgIGRlZmluZSBkZ2V0dGV4dChEb21haW4sIFN0cmluZykgKFN0cmluZykKLSAjZW5kaWYKLSAKLS0jaW5jbHVkZSA8bGlieG1sL3BhcnNlci5oPgotKyNpZmRlZiBVU0VfR01BUktVUF9QQVJTRVIKLSsjICBpbmNsdWRlIDx6bGliLmg+Ci0rI2Vsc2UKLSsjICBpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+Ci0rI2VuZGlmCi0rCi0rI2lmZGVmIFVTRV9HTUFSS1VQX1BBUlNFUgotKyMgIGRlZmluZSB4bWxDaGFyIGdjaGFyCi0rI2VuZGlmCi0gCi0gI2luY2x1ZGUgImdsYWRlLXBhcnNlci5oIgotICNpbmNsdWRlICJnbGFkZS1wcml2YXRlLmgiCi1AQCAtNTA4LDcgKzUxNiw5IEBACi0gICAgIGNhc2UgUEFSU0VSX1NUQVJUOgotIAlpZiAoIXN0cmNtcChuYW1lLCAiZ2xhZGUtaW50ZXJmYWNlIikpIHsKLSAJICAgIHN0YXRlLT5zdGF0ZSA9IFBBUlNFUl9HTEFERV9JTlRFUkZBQ0U7Ci0tI2lmIDAKLSsKLSsjaWZuZGVmIFVTRV9HTUFSS1VQX1BBUlNFUgotKyAjaWYgMAotIAkgICAgLyogY2hlY2sgZm9yIGNvcnJlY3QgWE1MIG5hbWVzcGFjZSAqLwotIAkgICAgZm9yIChpID0gMDsgYXR0cnMgJiYgYXR0cnNbaV0gIT0gTlVMTDsgaSArPSAyKSB7Ci0gCQlpZiAoIXN0cmNtcChhdHRyc1tpXSwgInhtbG5zIikgJiYKLUBAIC01MTgsNyArNTI4LDkgQEAKLSAJCSAgICBnX3dhcm5pbmcoInVua25vd24gYXR0cmlidXRlIGAlcycgZm9yIDxnbGFkZS1pbnRlcmZhY2U+IiwKLSAJCQkgICAgICBhdHRyc1tpXSk7Ci0gCSAgICB9Ci0rICNlbmRpZgotICNlbmRpZgotKwotIAl9IGVsc2UgewotIAkgICAgZ193YXJuaW5nKCJFeHBlY3RlZCA8Z2xhZGUtaW50ZXJmYWNlPi4gIEdvdCA8JXM+LiIsIG5hbWUpOwotIAkgICAgc3RhdGUtPnByZXZfc3RhdGUgPSBzdGF0ZS0+c3RhdGU7Ci1AQCAtMTA2MywxMiArMTA3NSwxOCBAQAotICAgICB9Ci0gfQotIAotKyNpZm5kZWYgVVNFX0dNQVJLVVBfUEFSU0VSCi0rCi0gc3RhdGljIHhtbEVudGl0eVB0cgotIGdsYWRlX3BhcnNlcl9nZXRfZW50aXR5KEdsYWRlUGFyc2VTdGF0ZSAqc3RhdGUsIGNvbnN0IHhtbENoYXIgKm5hbWUpCi0gewotICAgICByZXR1cm4geG1sR2V0UHJlZGVmaW5lZEVudGl0eShuYW1lKTsKLSB9Ci0gCi0rI2VuZGlmIC8qICFkZWZpbmVkKFVTRV9HTUFSS1VQX1BBUlNFUikgKi8KLSsKLSsjaWZuZGVmIFVTRV9HTUFSS1VQX1BBUlNFUgotKwotIHN0YXRpYyB2b2lkCi0gZ2xhZGVfcGFyc2VyX3dhcm5pbmcoR2xhZGVQYXJzZVN0YXRlICpzdGF0ZSwgY29uc3QgY2hhciAqbXNnLCAuLi4pCi0gewotQEAgLTEwNzksNiArMTA5NywxMCBAQAotICAgICB2YV9lbmQoYXJncyk7Ci0gfQotIAotKyNlbmRpZiAvKiAhZGVmaW5lZChVU0VfR01BUktVUF9QQVJTRVIpICovCi0rCi0rI2lmbmRlZiBVU0VfR01BUktVUF9QQVJTRVIKLSsKLSBzdGF0aWMgdm9pZAotIGdsYWRlX3BhcnNlcl9lcnJvcihHbGFkZVBhcnNlU3RhdGUgKnN0YXRlLCBjb25zdCBjaGFyICptc2csIC4uLikKLSB7Ci1AQCAtMTA4OSw2ICsxMTExLDEwIEBACi0gICAgIHZhX2VuZChhcmdzKTsKLSB9Ci0gCi0rI2VuZGlmIC8qICFkZWZpbmVkKFVTRV9HTUFSS1VQX1BBUlNFUikgKi8KLSsKLSsjaWZuZGVmIFVTRV9HTUFSS1VQX1BBUlNFUgotKwotIHN0YXRpYyB2b2lkCi0gZ2xhZGVfcGFyc2VyX2ZhdGFsX2Vycm9yKEdsYWRlUGFyc2VTdGF0ZSAqc3RhdGUsIGNvbnN0IGNoYXIgKm1zZywgLi4uKQotIHsKLUBAIC0xMDk5LDYgKzExMjUsMTAgQEAKLSAgICAgdmFfZW5kKGFyZ3MpOwotIH0KLSAKLSsjZW5kaWYgLyogIWRlZmluZWQoVVNFX0dNQVJLVVBfUEFSU0VSKSAqLwotKwotKyNpZm5kZWYgVVNFX0dNQVJLVVBfUEFSU0VSCi0rCi0gc3RhdGljIHhtbFNBWEhhbmRsZXIgZ2xhZGVfcGFyc2VyID0gewotICAgICAoaW50ZXJuYWxTdWJzZXRTQVhGdW5jKU5VTEwsICAgICAgICAgICAgICAgICAgICAgICAvKiBpbnRlcm5hbFN1YnNldCAqLwotICAgICAoaXNTdGFuZGFsb25lU0FYRnVuYylOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpc1N0YW5kYWxvbmUgKi8KLUBAIC0xMTI2LDYgKzExNTYsODIgQEAKLSAgICAgKGZhdGFsRXJyb3JTQVhGdW5jKWdsYWRlX3BhcnNlcl9mYXRhbF9lcnJvciwgICAgICAgLyogZmF0YWxFcnJvciAqLwotIH07Ci0gCi0rI2Vsc2UgLyogVVNFX0dNQVJLVVBfUEFSU0VSICovCi0rCi0rc3RhdGljIHZvaWQKLStnbGFkZV9wYXJzZXJfc3RhcnRfZWxlbWVudF93cmFwcGVyKEdNYXJrdXBQYXJzZUNvbnRleHQgKmNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICpuYW1lLCAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAqKmF0dHJfbmFtZXMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgKiphdHRyX3ZhbHVlcywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAgICAgIHN0YXRlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICoqZXJyb3IpCi0rewotKyAgICBndWludCBpID0gMDsKLSsKLSsgICAgLyogUGFjayBhdHRyaWJ1dGUgbmFtZXMvdmFsdWVzIGZyb20gdHdvIHNlcGFyYXRlCi0rICAgICAqICBhcnJheXMgKEdNYXJrdXBQYXJzZXIgc3R5bGUpIGludG8gb25lIHNpbmdsZQotKyAgICAgKiAgYXJyYXkgKGxpYnhtbCBTQVhQYXJzZXIgc3R5bGUpLiBUaGlzIGlzIG5vdAotKyAgICAgKiAgdmVyeSBlZmZpY2llbnQsIGJ1dCB3ZSBkbyBpdCB0byBtYWtlIHRoZQotKyAgICAgKiAgR01hcmt1cFBhcnNlciBjb2RlIGFzIGxpdHRsZSBpbnZhc2l2ZSBhcwotKyAgICAgKiAgcG9zc2libGUuICovCi0rCi0rICAgIHdoaWxlIChhdHRyX25hbWVzW2ldICE9IE5VTEwpIHsKLSsgICAgICArK2k7Ci0rICAgIH0KLSsKLSsgICAgaWYgKDEpCi0rICAgIHsKLSsgICAgICAgIGNvbnN0IGdjaGFyICphdHRyWyhpKjIpKzFdOwotKyAgICAgICAgZ3VpbnQgaiwgazsKLSsgICAgICAgCi0rICAgICAgICBmb3IgKGo9MCwgaz0wOyAgayA8IGk7ICBqICs9IDIpCi0rICAgICAgICB7Ci0rICAgICAgICAgICAgYXR0cltqXSA9IGF0dHJfbmFtZXNba107Ci0rICAgICAgICAgICAgYXR0cltqKzFdID0gYXR0cl92YWx1ZXNba107Ci0rICAgICAgICAgICAgKytrOwotKyAgICAgICAgfQotKyAgICAgICAgYXR0cltpKjJdID0gTlVMTDsKLSsKLSsgICAgICAgIGdsYWRlX3BhcnNlcl9zdGFydF9lbGVtZW50KChHbGFkZVBhcnNlU3RhdGUqKXN0YXRlLCBuYW1lLCBhdHRyKTsKLSsgICAgfQotK30KLSsKLStzdGF0aWMgdm9pZAotK2dsYWRlX3BhcnNlcl9lbmRfZWxlbWVudF93cmFwcGVyKEdNYXJrdXBQYXJzZUNvbnRleHQgKmNvbnRleHQsIAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgKm5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAgICAgc3RhdGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICoqZXJyKQotK3sKLSsgICAgZ2xhZGVfcGFyc2VyX2VuZF9lbGVtZW50KChHbGFkZVBhcnNlU3RhdGUqKXN0YXRlLCBuYW1lKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStnbGFkZV9wYXJzZXJfY2hhcmFjdGVyc193cmFwcGVyKEdNYXJrdXBQYXJzZUNvbnRleHQgKmNvbnRleHQsIAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAqY2hhcnMsIAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgICAgICAgICAgICAgbGVuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAgICAgc3RhdGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgKiplcnIpCi0rewotKyAgICBnbGFkZV9wYXJzZXJfY2hhcmFjdGVycygoR2xhZGVQYXJzZVN0YXRlKilzdGF0ZSwgY2hhcnMsIChpbnQpIGxlbik7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZ2xhZGVfcGFyc2VyX2Vycm9yKEdNYXJrdXBQYXJzZUNvbnRleHQgKmNvbnRleHQsIEdFcnJvciAqZXJyLCBncG9pbnRlciBkYXRhKQotK3sKLSsgICAgZ19sb2coIkdsYWRlLVBhcnNlciIsIEdfTE9HX0xFVkVMX0NSSVRJQ0FMLCAiJXMiLCBlcnItPm1lc3NhZ2UpOwotK30KLSsKLStzdGF0aWMgY29uc3QgR01hcmt1cFBhcnNlciAgIGdsYWRlX3BhcnNlciA9IHsKLSsgICAgZ2xhZGVfcGFyc2VyX3N0YXJ0X2VsZW1lbnRfd3JhcHBlciwgIC8qIGVsZW1lbnQgb3BlbiAgICovCi0rICAgIGdsYWRlX3BhcnNlcl9lbmRfZWxlbWVudF93cmFwcGVyLCAgICAvKiBlbGVtZW50IGNsb3NlICAqLwotKyAgICBnbGFkZV9wYXJzZXJfY2hhcmFjdGVyc193cmFwcGVyLCAgICAgLyogdGV4dCBjb250ZW50ICAgKi8KLSsgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBhc3N0aHJvdWdoICAgICovCi0rICAgIGdsYWRlX3BhcnNlcl9lcnJvciwgICAgICAgICAgICAgICAgICAvKiBwYXJzZSBlcnJvciAgICAqLwotK307Ci0rCi0rI2VuZGlmIC8qIFVTRV9HTUFSS1VQX1BBUlNFUiAqLwotKwotKwotIHN0YXRpYyB2b2lkCi0gd2lkZ2V0X2luZm9fZnJlZShHbGFkZVdpZGdldEluZm8gKmluZm8pCi0gewotQEAgLTExOTEsNiArMTI5Nyw5IEBACi0gICoKLSAgKiBSZXR1cm5zOiB0aGUgR2xhZGVJbnRlcmZhY2Ugc3RydWN0dXJlIGZvciB0aGUgWE1MIGZpbGUuCi0gICovCi0rCi0rI2lmbmRlZiBVU0VfR01BUktVUF9QQVJTRVIKLSsKLSBHbGFkZUludGVyZmFjZSAqCi0gZ2xhZGVfcGFyc2VyX3BhcnNlX2ZpbGUoY29uc3QgZ2NoYXIgKmZpbGUsIGNvbnN0IGdjaGFyICpkb21haW4pCi0gewotQEAgLTEyMjIsNiArMTMzMSwzMSBAQAotICAgICByZXR1cm4gc3RhdGUuaW50ZXJmYWNlOwotIH0KLSAKLSsjZWxzZSAvKiBkZWZpbmVkKFVTRV9HTUFSS1VQX1BBUlNFUikgKi8KLSsKLStHbGFkZUludGVyZmFjZSAqCi0rZ2xhZGVfcGFyc2VyX3BhcnNlX2ZpbGUoY29uc3QgZ2NoYXIgKmZpbGUsIGNvbnN0IGdjaGFyICpkb21haW4pCi0rewotKyAgICBHbGFkZUludGVyZmFjZSAgKmludGVyZmFjZTsKLSsgICAgR0Vycm9yICAgICAgICAgICplcnIgICAgID0gTlVMTDsKLSsgICAgZ2NoYXIgICAgICAgICAgICpjb250ZW50ID0gTlVMTDsKLSsgICAgZ3NpemUgICAgICAgICAgICBjbGVuOwotKwotKyAgICBpZiAoIWdfZmlsZV9nZXRfY29udGVudHMoZmlsZSwgJmNvbnRlbnQsICZjbGVuLCAmZXJyKSkgewotKyAgICAgICAgZ193YXJuaW5nKCJjb3VsZCBub3QgbG9hZCBnbGFkZSBmaWxlOiAlcyIsIGVyci0+bWVzc2FnZSk7Ci0rICAgICAgICBnX2Vycm9yX2ZyZWUoZXJyKTsKLSsgICAgICAgIHJldHVybiBOVUxMOwotKyAgICB9Ci0rCi0rICAgIGludGVyZmFjZSA9IGdsYWRlX3BhcnNlcl9wYXJzZV9idWZmZXIoY29udGVudCwgKGdpbnQpIGNsZW4sIGRvbWFpbik7Ci0rCi0rICAgIGdfZnJlZShjb250ZW50KTsKLSsKLSsgICAgcmV0dXJuIGludGVyZmFjZTsKLSt9Ci0rCi0rI2VuZGlmIC8qIFVTRV9HTUFSS1VQX1BBUlNFUiAqLwotKwotIC8qKgotICAqIGdsYWRlX3BhcnNlcl9wYXJzZV9idWZmZXIKLSAgKiBAYnVmZmVyOiBhIGJ1ZmZlciBpbiBtZW1vcnkgY29udGFpbmluZyBYTUwgZGF0YS4KLUBAIC0xMjM3LDYgKzEzNzEsOSBAQAotICAqCi0gICogUmV0dXJuczogdGhlIEdsYWRlSW50ZXJmYWNlIHN0cnVjdHVyZSBmb3IgdGhlIFhNTCBidWZmZXIuCi0gICovCi0rCi0rI2lmbmRlZiBVU0VfR01BUktVUF9QQVJTRVIKLSsKLSBHbGFkZUludGVyZmFjZSAqCi0gZ2xhZGVfcGFyc2VyX3BhcnNlX2J1ZmZlcihjb25zdCBnY2hhciAqYnVmZmVyLCBnaW50IGxlbiwgY29uc3QgZ2NoYXIgKmRvbWFpbikKLSB7Ci1AQCAtMTI2Myw2ICsxNDAwLDE2MSBAQAotICAgICByZXR1cm4gc3RhdGUuaW50ZXJmYWNlOwotIH0KLSAKLSsjZWxzZSAvKiBkZWZpbmVkKFVTRV9HTUFSS1VQX1BBUlNFUikgKi8KLSsKLSsKLStzdGF0aWMgR2xhZGVJbnRlcmZhY2UgKgotK2dsYWRlX3BhcnNlcl9wYXJzZV9idWZmZXJfaW50ZXJuYWwoY29uc3QgZ2NoYXIgKmJ1ZmZlciwgZ2ludCBsZW4sIGNvbnN0IGdjaGFyICpkb21haW4pCi0rewotKwlHTWFya3VwUGFyc2VDb250ZXh0ICAqY29udGV4dDsKLSsJR2xhZGVQYXJzZVN0YXRlICAgICAgIHN0YXRlID0geyAwIH07Ci0rCUdFcnJvciAgICAgICAgICAgICAgICplcnIgICA9IE5VTEw7Ci0rCi0rCXN0YXRlLmludGVyZmFjZSA9IE5VTEw7Ci0rCWlmIChkb21haW4pCi0rCQlzdGF0ZS5kb21haW4gPSBkb21haW47Ci0rCWVsc2UKLSsJCXN0YXRlLmRvbWFpbiA9IHRleHRkb21haW4oTlVMTCk7Ci0rCi0rCS8qIEZJWE1FOiBUaGlzIHN0cnN0cigpIGlzIG5vdCBzYWZlLCBhcyBpdCBpZ25vcmVzIHRoZSBsZW4KLSsJICogICAgICAgIGFyZ3VtZW50IGFuZCBhc3N1bWVzIHRoZSBidWZmZXIgaXMgTlVMLXRlcm1pbmF0ZWQgKi8KLSsJaWYgKHN0cnN0cihidWZmZXIsICI8P3htbCIpID09IE5VTEwpIHsKLSsJCWdfd2FybmluZygiTm8gWE1MIGhlYWRlciBmb3VuZCBpbiBkb2N1bWVudCEiKTsKLSsJCXJldHVybiBOVUxMOwotKwl9Ci0rCi0rCWNvbnRleHQgPSBnX21hcmt1cF9wYXJzZV9jb250ZXh0X25ldygmZ2xhZGVfcGFyc2VyLCAoR01hcmt1cFBhcnNlRmxhZ3MpIDAsICZzdGF0ZSwgTlVMTCk7Ci0rCi0rCWdsYWRlX3BhcnNlcl9zdGFydF9kb2N1bWVudCgmc3RhdGUpOwotKwotKwlpZiAoIWdfbWFya3VwX3BhcnNlX2NvbnRleHRfcGFyc2UoY29udGV4dCwgYnVmZmVyLCAoZ3NzaXplKSBsZW4sICZlcnIpKSB7Ci0rCQlnX3dhcm5pbmcoImRvY3VtZW50IG5vdCB3ZWxsIGZvcm1lZDogJXMiLCBlcnItPm1lc3NhZ2UpOwotKwkJZ19lcnJvcl9mcmVlKGVycik7Ci0rCQlpZiAoc3RhdGUuaW50ZXJmYWNlKQotKwkJCWdsYWRlX2ludGVyZmFjZV9kZXN0cm95IChzdGF0ZS5pbnRlcmZhY2UpOwotKwkJcmV0dXJuIE5VTEw7Ci0rCX0KLSsKLSsJZ2xhZGVfcGFyc2VyX2VuZF9kb2N1bWVudCgmc3RhdGUpOwotKwotKwlpZiAoc3RhdGUuc3RhdGUgIT0gUEFSU0VSX0ZJTklTSCkgewotKwkJZ193YXJuaW5nKCJkaWQgbm90IGZpbmlzaCBpbiBQQVJTRVJfRklOSVNIIHN0YXRlISIpOwotKwotKwkJaWYgKHN0YXRlLmludGVyZmFjZSkKLSsJCQlnbGFkZV9pbnRlcmZhY2VfZGVzdHJveShzdGF0ZS5pbnRlcmZhY2UpOwotKwotKwkJcmV0dXJuIE5VTEw7Ci0rCX0KLSsKLSsJcmV0dXJuIHN0YXRlLmludGVyZmFjZTsKLSt9Ci0rCi0rc3RydWN0IF9nemlwX3JmYzE5NTJfaGRyCi0rewotKwlndWludDgJaWQxLCBpZDIsIGNtLCBmbGFnczsKLSsJZ3VpbnQzMiBtdGltZTsKLSsJZ3VpbnQ4ICB4ZmxhZ3M7Ci0rCWd1aW50OCAgb3M7Ci0rfTsKLSsKLStzdGF0aWMgR2xhZGVJbnRlcmZhY2UgKgotK2dsYWRlX3BhcnNlcl9wYXJzZV9nemlwcGVkX2J1ZmZlcihjb25zdCBnY2hhciAqYnVmZmVyLCBnaW50IGxlbiwgY29uc3QgZ2NoYXIgKmRvbWFpbikKLSt7Ci0rCXN0cnVjdCBfZ3ppcF9yZmMxOTUyX2hkciAqaGRyID0gKHN0cnVjdCBfZ3ppcF9yZmMxOTUyX2hkciopYnVmZmVyOwotKwlzdHJ1Y3Qgel9zdHJlYW1fcyAgICAgICAgIHpzdHJlYW07Ci0rCUdsYWRlSW50ZXJmYWNlICAgICAgICAgICAqaW50ZXJmYWNlOwotKwljb25zdCBndWludDggICAgICAgICAgICAgKmNidWY7ICAgICAgICAgICAgICAvKiBzdGFydCBvZiBjb21wcmVzc2VkIGRhdGEgKi8KLSsJZ3VpbnQ4ICAgICAgICAgICAgICAgICAgICpkZWNvbXByZXNzX2J1ZjsKLSsJZ3Vsb25nICAgICAgICAgICAgICAgICAgICBkZWNvbXByZXNzX2xlbiA9IDA7Ci0rCWdpbnQgICAgICAgICAgICAgICAgICAgICAgcmV0OwotKwotKwlnX2Fzc2VydChoZHIgIT0gTlVMTCAmJiBoZHItPmlkMSA9PSAweDFmICYmIGhkci0+aWQyID09IDB4OGIpOwotKwotKwlpZiAoaGRyLT5jbSAhPSBaX0RFRkxBVEVEKSB7Ci0rCQlnX3dhcm5pbmcoIlVua25vd24gZGVjb21wcmVzc2lvbiBtZXRob2QgJXUiLCAoZ3VpbnQpIGhkci0+Y20pOwotKwkJcmV0dXJuIE5VTEw7Ci0rCX0KLSsKLSsJLyogVW5jb21wcmVzc2VkIHNpemUgKG1vZHVsbyAyXjMyKSBpcyBsYXN0Ci0rCSAqICA0IGJ5dGVzIG9mIGd6aXBwZWQgZmlsZSwgYW5kIGxpdHRsZSBlbmRpYW4uCi0rCSAqICBTZWUgUkZDIDE5NTIgKi8KLSsJZGVjb21wcmVzc19sZW4gPSBHVUlOVDMyX0ZST01fTEUoKigoZ3VpbnQzMiopKCgoZ3VpbnQ4KilidWZmZXIpICsgbGVuIC0gNCkpKTsKLSsKLSsJLyogcGFyYW5vaWQgbW9kZTogZ2xhZGUgZmlsZXMgPiA1TUIgYXJlIHVubGlrZWx5ICovCi0rCWdfcmV0dXJuX3ZhbF9pZl9mYWlsKGRlY29tcHJlc3NfbGVuIDwgNSoxMDI0KjEwMjQsIE5VTEwpOwotKwotKwlkZWNvbXByZXNzX2J1ZiA9IGdfbWFsbG9jMChkZWNvbXByZXNzX2xlbiArIDEpOyAvKiArMSBmb3IgTlVMLXRlcm1pbmF0b3IgKi8KLSsKLSsJLyogZmluZCBzdGFydCBvZiBjb21wcmVzc2VkIGRhdGEsIHNraXBwaW5nIGhlYWRlciBzdHVmZiAqLwotKwljYnVmID0gKGd1aW50OCopYnVmZmVyICsgMTA7Ci0rCWlmIChoZHItPmZsYWdzICYgMHgwNCkgewotKwkJZ3VpbnQxNiB4bGVuID0gR1VJTlQxNl9GUk9NX0xFKCooKGd1aW50MTYqKWNidWYpKTsKLSsJCWNidWYgKz0geGxlbiArIDI7Ci0rCX0KLSsJaWYgKGhkci0+ZmxhZ3MgJiAweDA4KSB7Ci0rCQlndWludDE2IG9uYW1lbGVuID0gc3RybGVuKGNidWYpOwotKwkJY2J1ZiArPSBvbmFtZWxlbiArIDE7Ci0rCX0KLSsJaWYgKGhkci0+ZmxhZ3MgJiAweDEwKSB7Ci0rCQlndWludDE2IGNvbW1lbnRsZW4gPSBzdHJsZW4oY2J1Zik7Ci0rCQljYnVmICs9IGNvbW1lbnRsZW4gKyAxOwotKwl9Ci0rCWlmIChoZHItPmZsYWdzICYgMHgwMikKLSsJewotKwkJY2J1ZiArPSAyOyAvKiBza2lwIGhlYWRlciBDUkMxNiAqLwotKwl9Ci0rCi0rCXpzdHJlYW0ubmV4dF9pbiAgPSAodm9pZCopY2J1ZjsKLSsJenN0cmVhbS5hdmFpbF9pbiA9ICh1TG9uZ2YpIGxlbiAtICgodm9pZCopY2J1Zi0odm9pZCopYnVmZmVyKSAtIDQgLSA0ICsxOyAKLSsJenN0cmVhbS5uZXh0X291dCA9IGRlY29tcHJlc3NfYnVmOwotKwl6c3RyZWFtLmF2YWlsX291dD0gZGVjb21wcmVzc19sZW47Ci0rCXpzdHJlYW0uemFsbG9jICAgPSBaX05VTEw7Ci0rCXpzdHJlYW0uemZyZWUgICAgPSBaX05VTEw7Ci0rCXpzdHJlYW0ub3BhcXVlICAgPSBaX05VTEw7Ci0rCi0rCXJldCA9IGluZmxhdGVJbml0MigmenN0cmVhbSwgLU1BWF9XQklUUyk7Ci0rCi0rCWlmIChyZXQgIT0gWl9PSykgewotKwkJZ193YXJuaW5nKCJpbmZsYXRlSW5pdDIoKSBmYWlsZWQuIHpsaWIgZXJyb3IgY29kZTogJWQiLCByZXQpOwotKwkJZ19mcmVlKGRlY29tcHJlc3NfYnVmKTsKLSsJCXJldHVybiBOVUxMOwotKwl9Ci0rCi0rCXJldCA9IGluZmxhdGUoJnpzdHJlYW0sIFpfRklOSVNIKTsKLSsKLSsJaWYgKHJldCAhPSBaX1NUUkVBTV9FTkQpIHsKLSsJCWdfd2FybmluZygiemxpYiBkZWNvbXByZXNzaW9uIGZhaWxlZC4gemxpYiBlcnJvciBjb2RlOiAlZCIsIHJldCk7Ci0rCQlnX2ZyZWUoZGVjb21wcmVzc19idWYpOwotKwkJcmV0dXJuIE5VTEw7Ci0rCX0KLSsKLSsJaW50ZXJmYWNlID0gZ2xhZGVfcGFyc2VyX3BhcnNlX2J1ZmZlcl9pbnRlcm5hbChkZWNvbXByZXNzX2J1ZiwgZGVjb21wcmVzc19sZW4sIGRvbWFpbik7Ci0rCi0rCWdfZnJlZShkZWNvbXByZXNzX2J1Zik7Ci0rCi0rCXJldHVybiBpbnRlcmZhY2U7Ci0rfQotKwotK0dsYWRlSW50ZXJmYWNlICoKLStnbGFkZV9wYXJzZXJfcGFyc2VfYnVmZmVyKGNvbnN0IGdjaGFyICpidWZmZXIsIGdpbnQgbGVuLCBjb25zdCBnY2hhciAqZG9tYWluKQotK3sKLSsJZ19yZXR1cm5fdmFsX2lmX2ZhaWwoYnVmZmVyICE9IE5VTEwsIE5VTEwpOwotKwlnX3JldHVybl92YWxfaWZfZmFpbChsZW4gPiAwLCBOVUxMKTsKLSsKLSsJLyogQ2hlY2sgaWYgYnVmZmVyIGlzIGd6aXBwZWQgKi8KLSsJaWYgKGJ1ZmZlclswXSA9PSAweDFmICYmIGJ1ZmZlclsxXSA9PSAoZ2NoYXIpMHg4YikgewotKwkJcmV0dXJuIGdsYWRlX3BhcnNlcl9wYXJzZV9nemlwcGVkX2J1ZmZlcihidWZmZXIsIGxlbiwgZG9tYWluKTsKLSsJfQotKwotKwkvKiBCdWZmZXIgaXMgY2xlYXJ0ZXh0LiAqLwotKwlyZXR1cm4gZ2xhZGVfcGFyc2VyX3BhcnNlX2J1ZmZlcl9pbnRlcm5hbChidWZmZXIsIGxlbiwgZG9tYWluKTsKLSt9Ci0rCi0rI2VuZGlmIC8qIFVTRV9HTUFSS1VQX1BBUlNFUiAqLwotKwotKwotKyNpZm5kZWYgVVNFX0dNQVJLVVBfUEFSU0VSCi0rCi0gc3RhdGljIHZvaWQKLSBkdW1wX3dpZGdldCh4bWxOb2RlICpwYXJlbnQsIEdsYWRlV2lkZ2V0SW5mbyAqaW5mbywgZ2ludCBpbmRlbnQpCi0gewotQEAgLTEzODIsNiArMTY3NCw4IEBACi0gCXhtbE5vZGVBZGRDb250ZW50KHdpZGdldCwgIiAgIik7Ci0gfQotIAotKyNlbmRpZiAvKiAhZGVmaW5lZChVU0VfR01BUktVUF9QQVJTRVIpICovCi0rCi0gLyoqCi0gICogZ2xhZGVfaW50ZXJmYWNlX2R1bXAKLSAgKiBAaW50ZXJmYWNlOiB0aGUgR2xhZGVJbnRlcmZhY2UKLUBAIC0xMzkwLDYgKzE2ODQsOSBAQAotICAqIFRoaXMgZnVuY3Rpb24gZHVtcHMgdGhlIGNvbnRlbnRzIG9mIGEgR2xhZGVJbnRlcmZhY2UgaW50byBhIGZpbGUgYXMKLSAgKiBYTUwuICBJdCBpcyBpbnRlbmRlZCBtYWlubHkgYXMgYSBkZWJ1Z2dpbmcgdG9vbC4KLSAgKi8KLSsKLSsjaWZuZGVmIFVTRV9HTUFSS1VQX1BBUlNFUgotKwotIHZvaWQKLSBnbGFkZV9pbnRlcmZhY2VfZHVtcChHbGFkZUludGVyZmFjZSAqaW50ZXJmYWNlLCBjb25zdCBnY2hhciAqZmlsZW5hbWUpCi0gewotQEAgLTE0MjgsNiArMTcyNSwxNyBAQAotICAgICB4bWxGcmVlRG9jKGRvYyk7Ci0gfQotIAotKyNlbHNlIC8qIGRlZmluZWQoVVNFX0dNQVJLVVBfUEFSU0VSKSAqLwotKwotK3ZvaWQKLStnbGFkZV9pbnRlcmZhY2VfZHVtcChHbGFkZUludGVyZmFjZSAqaW50ZXJmYWNlLCBjb25zdCBnY2hhciAqZmlsZW5hbWUpCi0rewotKyAgICBnX3dhcm5pbmcoImdsYWRlX2ludGVyZmFjZV9kdW1wKCkgaXMgb25seSBhdmFpbGFibGUgd2l0aCBsaWJ4bWwyLiIpOwotK30KLSsKLSsjZW5kaWYgLyogVVNFX0dNQVJLVVBfUEFSU0VSICovCi0rCi0rCi0gI2lmIDAKLSBpbnQKLSBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotZGlmZiAtdXJOIGxpYmdsYWRlLTIuNC4yLm9yaWcvbGliZ2xhZGUtMi4wLnBjLmluIGxpYmdsYWRlLTIuNC4yL2xpYmdsYWRlLTIuMC5wYy5pbgotLS0tIGxpYmdsYWRlLTIuNC4yLm9yaWcvbGliZ2xhZGUtMi4wLnBjLmluCTIwMDEtMTItMTIgMTU6Mjg6MjMuMDAwMDAwMDAwICswMTAwCi0rKysgbGliZ2xhZGUtMi40LjIvbGliZ2xhZGUtMi4wLnBjLmluCTIwMDUtMDMtMjIgMDE6MjA6MDAuMDAwMDAwMDAwICswMTAwCi1AQCAtMTEsNyArMTEsNyBAQAotIE5hbWU6IExpYmdsYWRlCi0gRGVzY3JpcHRpb246IGEgbGlicmFyeSBmb3IgZHluYW1pY2FsbHkgbG9hZGluZyBHTEFERSBpbnRlcmZhY2UgZmlsZXMKLSBWZXJzaW9uOiBAVkVSU0lPTkAKLS1SZXF1aXJlczogZ3RrKy0yLjAgbGlieG1sLTIuMAotK1JlcXVpcmVzOiBndGsrLTIuMCBAUEtHQ0ZHX1JFUVVJUkVfTElCWE1MMkAKLSBMaWJzOiAtTCR7bGliZGlyfSAtbGdsYWRlLTIuMAotIENmbGFnczogLUkke2luY2x1ZGVkaXJ9L2xpYmdsYWRlLTIuMAotIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGliZ2xhZGUvbGliZ2xhZGUtMi42LjQvcHl0aG9uX2Vudmlyb25tZW50LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGliZ2xhZGUvbGliZ2xhZGUtMi42LjQvcHl0aG9uX2Vudmlyb25tZW50LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNWIyZWM0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYmdsYWRlL2xpYmdsYWRlLTIuNi40L3B5dGhvbl9lbnZpcm9ubWVudC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLVVzaW5nIEBQWVRIT05AIGZvciB0aGlzIHBhdGggd291bGQgcmVzdWx0IGluIHRoZSBidWlsZCBzeXN0ZW0gcHl0aG9uIGJlaW5nIAotcmVmZXJyZWQgdG8uIEluc3RlYWQgd2Ugd2FudCB0byBsb2NhdGUgcHl0aG9uIGZyb20gdGhlIGVudmlyb25tZW50LgotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCi0KLWRpZmYgLXJ1TiBsaWJnbGFkZS0yLjYuNC1vcmlnLy9saWJnbGFkZS1jb252ZXJ0LmluIGxpYmdsYWRlLTIuNi40L2xpYmdsYWRlLWNvbnZlcnQuaW4KLS0tLSBsaWJnbGFkZS0yLjYuNC1vcmlnLy9saWJnbGFkZS1jb252ZXJ0LmluCTIwMTEtMDktMjIgMTA6MTg6MjguOTkxMTY0MDAzICswODAwCi0rKysgbGliZ2xhZGUtMi42LjQvbGliZ2xhZGUtY29udmVydC5pbgkyMDExLTA5LTIyIDEwOjE4OjU1LjQzMTE2NDAwMyArMDgwMAotQEAgLTEsNCArMSw0IEBACi0tIyFAUFlUSE9OQAotKyMhL3Vzci9iaW4vZW52IHB5dGhvbgotICMgLSotIG1vZGU6IHB5dGhvbiAtKi0KLSAKLSAjIHllcywgdGhpcyByZXF1aXJlcyBweXRob24gMi54IGFuZCBhbiBYTUwgcGFyc2VyIG1vZHVsZSAoZWcuIFB5RXhwYXQpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJnbGFkZS9saWJnbGFkZV8yLjYuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYmdsYWRlL2xpYmdsYWRlXzIuNi40LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZGI5ZjhhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYmdsYWRlL2xpYmdsYWRlXzIuNi40LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotU1VNTUFSWSA9ICJSdW50aW1lIHN1cHBvcnQgZm9yIHRoZSBHVEsrIGludGVyZmFjZSBidWlsZGVyIgotSE9NRVBBR0UgPSAiaHR0cDovL2xpYnJhcnkuZ25vbWUub3JnL2RldmVsL2xpYmdsYWRlLyIKLUJVR1RSQUNLRVIgPSAiaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvIgotCi1MSUNFTlNFID0gIkxHUEx2MiAmIExHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT01NWNhODE3Y2NiN2Q1YjViNjYzNTU2OTBlOWFiYzYwNSBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9nbGFkZS9nbGFkZS5oO2VuZGxpbmU9MjI7bWQ1PWEwNGY0NjFjOTY0YmE0YjU3YTE3MmQxZmJjZDhmOGZjIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2dsYWRlL2dsYWRlLWd0ay5jO2VuZGxpbmU9MjI7bWQ1PTc2NmY5OTM0MzNlMjY0MmZlYzg3OTM2ZDMxOTk5MGZmIgotCi1TRUNUSU9OID0gImxpYnMiCi1QUiA9ICJyNSIKLURFUEVORFMgPSAiemxpYiBnZGstcGl4YnVmIGd0aysiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnbm9tZWJhc2UgZ3RrLWRvYyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKLUFOWV9PRl9ESVNUUk9fRkVBVFVSRVMgPSAiJHtHVEsyRElTVFJPRkVBVFVSRVN9IgotR05PTUVfQ09NUFJFU1NfVFlQRT0iYnoyIgotCi1TUkNfVVJJICs9ICIgXAotICAgIGZpbGU6Ly9nbGFkZS1jcnVmdC5wYXRjaCBcCi0gICAgZmlsZTovL25vLXhtbDIucGF0Y2ggXAotICAgIGZpbGU6Ly9weXRob25fZW52aXJvbm1lbnQucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS5pbi1yZW1vdmUtZGVwcmVjYXRlZC1HTk9NRV9DT01NT05fSU5JVC5wYXRjaCBcCi0iCi0KLVNSQ19VUklbYXJjaGl2ZS5tZDVzdW1dID0gImQxNzc2YjQwZjRlMTY2YjVlOWMxMDdmMWM4ZmU0MTM5IgotU1JDX1VSSVthcmNoaXZlLnNoYTI1NnN1bV0gPSAiNjQzNjFlNzY0NzgzOWQzNmVkODMzNmQ5OTJmZDIxMGQzZTgxMzk4ODIyNjliZWQ0N2RjNDY3NDk4MDE2NWRlYyIKLQotRVhUUkFfT0VDT05GICs9ICItLXdpdGhvdXQtbGlieG1sMiAtLWRpc2FibGUtZ3RrLWRvYyIKLQotQ0ZMQUdTICs9ICItbHogLWxnbW9kdWxlLTIuMCIKLQotUEFDS0FHRVMgKz0gIiAke1BOfS1kYXRhIgotRklMRVNfJHtQTn0gPSAiJHtsaWJkaXJ9L2xpYiouc28uKiIKLUZJTEVTXyR7UE59LWRhdGEgPSAiJHtkYXRhZGlyfS94bWwvbGliZ2xhZGUvZ2xhZGUtMi4wLmR0ZCIKLUZJTEVTXyR7UE59LWRldiArPSAiJHtiaW5kaXJ9L2xpYmdsYWRlLWNvbnZlcnQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJ1bmlxdWUvbGlidW5pcXVlXzEuMS42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGlidW5pcXVlL2xpYnVuaXF1ZV8xLjEuNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTEzM2NjYy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJ1bmlxdWUvbGlidW5pcXVlXzEuMS42LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotU1VNTUFSWSA9ICJMaWJyYXJ5IGZvciBzdXBwb3J0aW5nIHNpbmdsZSBpbnN0YW5jZSBHVEsrIGFwcGxpY2F0aW9ucyIKLURFU0NSSVBUSU9OID0gIlVuaXF1ZSBpcyBhIGxpYnJhcnkgZm9yIHdyaXRpbmcgc2luZ2xlIGluc3RhbmNlIEdUSysgYXBwbGljYXRpb25zLiBJZiB5b3UgbGF1bmNoIGEgc2luZ2xlIGluc3RhbmNlIGFwcGxpY2F0aW9uIHR3aWNlLCB0aGUgc2Vjb25kIGluc3RhbmNlIHdpbGwgZWl0aGVyIGp1c3QgcXVpdCBvciB3aWxsIHNlbmQgYSBtZXNzYWdlIHRvIHRoZSBydW5uaW5nIGluc3RhbmNlLiIKLUhPTUVQQUdFID0gImh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXR0aWMvTGliVW5pcXVlIgotQlVHVFJBQ0tFUiA9ICJodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9lbnRlcl9idWcuY2dpP3Byb2R1Y3Q9bGlidW5pcXVlIgotCi1TUkNfVVJJID0gIiR7R05PTUVfTUlSUk9SfS9saWJ1bmlxdWUvMS4xL2xpYnVuaXF1ZS0ke1BWfS50YXIuYnoyIFwKLSAgICAgICAgICAgZmlsZTovL2ZpeF9mb3JfY29tcGlsZV93aXRoX2djYy00LjYuMC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9ub2NvbnN0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2J1aWxkLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtTWFrZWZpbGUuYW0tdXNlLUxJQlRPT0wtaW5zdGVhZC1vZi1oYXJkY29kZWQtbGlidG9vbC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLXRlc3QtdW5pcXVlLUFkZC1mb3JtYXQtcXVhbGlmaWVyLXMtZm9yLXN0cmluZy5wYXRjaCBcCi0gICAgICAgICAgICIKLQotU1JDX1VSSVttZDVzdW1dID0gIjc5NTU3NjllZjMxZjFiYzRmODM0NDZkYmIzNjI1ZTZkIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImU1YzgwNDFjZWY4ZTMzYzU1NzMyZjA2YTI5MjM4MWNiMzQ1ZGI5NDZjZjc5MmE0YWUxOGFhNWM2NmNkZDRmYmIiCi0KLVBSID0gInI3IgotCi1ERVBFTkRTID0gImRidXMtZ2xpYi1uYXRpdmUgZ2xpYi0yLjAgZ3RrKyIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gImRidXMiCi1QQUNLQUdFQ09ORklHW2RidXNdID0gIi0tZW5hYmxlLWRidXMsLS1kaXNhYmxlLWRidXMsZGJ1cyBkYnVzLWdsaWIiCi0KLUxJQ0VOU0UgPSAiTEdQTHYyLjEiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0yZDUwMjVkNGFhMzQ5NWJlZmVmOGYxNzIwNmE1YjBhMSIKLQotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGRpc3Ryb19mZWF0dXJlc19jaGVjawotCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZGlyZWN0ZmIvZGlyZWN0ZmIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZGlyZWN0ZmIvZGlyZWN0ZmIuaW5jCmluZGV4IGJmYmQ5YzIuLmJkNjZhMjggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2RpcmVjdGZiL2RpcmVjdGZiLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9kaXJlY3RmYi9kaXJlY3RmYi5pbmMKQEAgLTQxLDE2ICs0MSwxNiBAQAogUEFDS0FHRUNPTkZJR1t0c2xpYl0gPSAiLS13aXRoLWlucHV0ZHJpdmVycz10c2xpYiwsdHNsaWIiCiBQQUNLQUdFQ09ORklHW2xpbnV4aW5wdXRdID0gIi0td2l0aC1pbnB1dGRyaXZlcnM9bGludXhpbnB1dCwsIgogUEFDS0FHRUNPTkZJR1tub2lucHV0XSA9ICItLXdpdGgtaW5wdXRkcml2ZXJzPW5vbmUsLCIKK1BBQ0tBR0VDT05GSUdbbWVzYV0gPSAiLS1lbmFibGUtbWVzYSwtLWRpc2FibGUtbWVzYSx2aXJ0dWFsL21lc2EsIgorUEFDS0FHRUNPTkZJR1t4MTFdID0gIi0tZW5hYmxlLXgxMSwtLWRpc2FibGUteDExLHhzZXJ2ZXIteG9yZywiCiAKIEVYVFJBX09FQ09ORiA9ICJcCiAgIC0td2l0aC1nZnhkcml2ZXJzPW5vbmUgXAogICAtLWVuYWJsZS1mcmVldHlwZT15ZXMgXAogICAtLWVuYWJsZS16bGliIFwKICAgLS1kaXNhYmxlLWltbGliMiBcCi0gIC0tZGlzYWJsZS1tZXNhIFwKICAgLS1kaXNhYmxlLXNkbCBcCiAgIC0tZGlzYWJsZS12bmMgXAotICAtLWRpc2FibGUteDExIFwKICAgLS1kaXNhYmxlLXgxMXZkcGF1IFwKICAgLS1kaXNhYmxlLXhpbmUtdmRwYXUgXAogIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZG5mZHJhZ29yYS9kbmZkcmFnb3JhLzAwMDEtRG8tbm90LXNldC1QWVRIT05fSU5TVEFMTF9ESVItYnktcnVubmluZy1weXRob24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9kbmZkcmFnb3JhL2RuZmRyYWdvcmEvMDAwMS1Eby1ub3Qtc2V0LVBZVEhPTl9JTlNUQUxMX0RJUi1ieS1ydW5uaW5nLXB5dGhvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NmQ0ZGJkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZG5mZHJhZ29yYS9kbmZkcmFnb3JhLzAwMDEtRG8tbm90LXNldC1QWVRIT05fSU5TVEFMTF9ESVItYnktcnVubmluZy1weXRob24ucGF0Y2gKQEAgLTAsMCArMSwyNiBAQAorRnJvbSA4MDE3OWMyOTdhYmI5ZGUyODI5YmQwMjM1NjI1NzI0MWRkNDE0ZDcwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTGVpIE1hb2h1aSA8bGVpbWFvaHVpQGNuLmZ1aml0c3UuY29tPgorRGF0ZTogTW9uLCAxOCBEZWMgMjAxNyAxNjoyNTo1NCArMDkwMAorU3ViamVjdDogW1BBVENIXSBEbyBub3Qgc2V0IFBZVEhPTl9JTlNUQUxMX0RJUiBieSBydW5uaW5nIHB5dGhvbi4KKworU2lnbmVkLW9mZi1ieTogTGVpIE1hb2h1aSA8bGVpbWFvaHVpQGNuLmZ1aml0c3UuY29tPgorLS0tCisgQ01ha2VMaXN0cy50eHQgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0CitpbmRleCA3YzY2YjM5Li4xNDg5ZWY2IDEwMDY0NAorLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrKyBiL0NNYWtlTGlzdHMudHh0CitAQCAtMTksNyArMTksNyBAQCBlbHNlKE5PVCBTUEhJTlhfRVhFQ1VUQUJMRS1OT1RGT1VORCkKKyAJbWVzc2FnZShTVEFUVVMgIkNvdWxkIE5PVCBmaW5kIHNwaGlueC1idWlsZC4iKQorIGVuZGlmKE5PVCBTUEhJTlhfRVhFQ1VUQUJMRS1OT1RGT1VORCkKKyAKKy1leGVjdXRlX3Byb2Nlc3MoQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAtYyAiZnJvbSBkaXN0dXRpbHMuc3lzY29uZmlnIGltcG9ydCBnZXRfcHl0aG9uX2xpYjsgcHJpbnQoZ2V0X3B5dGhvbl9saWIoKSwgZW5kPScnKSIgT1VUUFVUX1ZBUklBQkxFIFBZVEhPTl9JTlNUQUxMX0RJUikKKysjZXhlY3V0ZV9wcm9jZXNzKENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gLWMgImZyb20gZGlzdHV0aWxzLnN5c2NvbmZpZyBpbXBvcnQgZ2V0X3B5dGhvbl9saWI7IHByaW50KGdldF9weXRob25fbGliKCksIGVuZD0nJykiIE9VVFBVVF9WQVJJQUJMRSBQWVRIT05fSU5TVEFMTF9ESVIpCisgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIlxuJCIgIiIgJHtQWVRIT05fSU5TVEFMTF9ESVJ9ICIke1BZVEhPTl9JTlNUQUxMX0RJUn0iKQorIGV4ZWN1dGVfcHJvY2VzcyhDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9IC1jICJpbXBvcnQgc3lzOyBzeXMuc3Rkb3V0LndyaXRlKCclcy4lcycgJSAoc3lzLnZlcnNpb25faW5mby5tYWpvciwgc3lzLnZlcnNpb25faW5mby5taW5vcikpIiBPVVRQVVRfVkFSSUFCTEUgUFlUSE9OX01BSk9SX0RPVF9NSU5PUl9WRVJTSU9OKQorIG1lc3NhZ2UoU1RBVFVTICJQeXRob24gaW5zdGFsbCBkaXIgaXMgJHtQWVRIT05fSU5TVEFMTF9ESVJ9IikKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZG5mZHJhZ29yYS9kbmZkcmFnb3JhLzAwMDEtUnVuLXB5dGhvbi1zY3JpcHRzLXVzaW5nLWVudi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2RuZmRyYWdvcmEvZG5mZHJhZ29yYS8wMDAxLVJ1bi1weXRob24tc2NyaXB0cy11c2luZy1lbnYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzViNmI4ZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2RuZmRyYWdvcmEvZG5mZHJhZ29yYS8wMDAxLVJ1bi1weXRob24tc2NyaXB0cy11c2luZy1lbnYucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJvbSAxNWQwYWZjZmE0ODY4YjdiMDcyYjM0MzRiYWMwMDY0NjE3ZDYxZjk5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTGVpIE1hb2h1aSA8bGVpbWFvaHVpQGNuLmZ1aml0c3UuY29tPgorRGF0ZTogVHVlLCAxOSBEZWMgMjAxNyAxNDo1MzoxNCArMDkwMAorU3ViamVjdDogW1BBVENIXSBSdW4gcHl0aG9uIHNjcmlwdHMgdXNpbmcgZW52CisKK090aGVyd2lzZSB0aGUgYnVpbGQgdG9vbHMgaGFyZGNvZGUgdGhlIHB5dGhvbiBwYXRoIGludG8gdGhlbS4KKworU2lnbmVkLW9mZi1ieTogTGVpIE1hb2h1aSA8bGVpbWFvaHVpQGNuLmZ1aml0c3UuY29tPgorLS0tCisgYmluL2RuZmRyYWdvcmEgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9iaW4vZG5mZHJhZ29yYSBiL2Jpbi9kbmZkcmFnb3JhCitpbmRleCBiOGUwNTUwLi5jZDgwZjdmIDEwMDc1NQorLS0tIGEvYmluL2RuZmRyYWdvcmEKKysrKyBiL2Jpbi9kbmZkcmFnb3JhCitAQCAtMSw0ICsxLDQgQEAKKy0jIS91c3IvYmluL3B5dGhvbjMKKysjIS91c3IvYmluL2VudiBweXRob24zCisgIyB2aW06IHNldCBldCB0cz00IHN3PTQ6CisgIyAgICBDb3B5cmlnaHQgMjAxNi0yMDE3IEFuZ2VsbyBOYXNlbGxpIDxhbmFzZWxsaUBsaW51eC5pdD4KKyAjCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2RuZmRyYWdvcmEvZG5mZHJhZ29yYS8wMDAxLVRvLWZpeC1lcnJvci13aGVuLWRvX3BhY2thZ2UucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9kbmZkcmFnb3JhL2RuZmRyYWdvcmEvMDAwMS1Uby1maXgtZXJyb3Itd2hlbi1kb19wYWNrYWdlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwY2UxZDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9kbmZkcmFnb3JhL2RuZmRyYWdvcmEvMDAwMS1Uby1maXgtZXJyb3Itd2hlbi1kb19wYWNrYWdlLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK0Zyb20gNTZkOWI4MzhiMzQ3NTcyOWQ3ZWQ5YzZjMTU2ZDcyYzI4OTQzYzJiNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IExlaSBNYW9odWkgPGxlaW1hb2h1aUBjbi5mdWppdHN1LmNvbT4KK0RhdGU6IFR1ZSwgMTkgRGVjIDIwMTcgMTE6MTU6MjkgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSF0gVG8gZml4IGVycm9yIHdoZW4gZG9fcGFja2FnZQorCitRQSBJc3N1ZTogbmF0aXZlc2RrLWRuZmRyYWdvcmE6IEZpbGVzL2RpcmVjdG9yaWVzIHdlcmUgaW5zdGFsbGVkIGJ1dCBub3Qgc2hpcHBlZCBpbiBhbnkgcGFja2FnZToKKyAgL2V0YworICAvZXRjL2RuZmRyYWdvcmEKKyAgL2V0Yy9kbmZkcmFnb3JhL2RuZmRyYWdvcmEueWFtbAorCitTaWduZWQtb2ZmLWJ5OiBMZWkgTWFvaHVpIDxsZWltYW9odWlAY24uZnVqaXRzdS5jb20+CistLS0KKyBDTWFrZUxpc3RzLnR4dCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4IDdjNjZiMzkuLmE1NjU5ZjcgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC01Miw3ICs1Miw3IEBAIGVuZGlmKEVOQUJMRV9DT01QUykKKyBzZXQoQ01BS0VfSU5TVEFMTF9CSU5ESVIgIiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9L2JpbiIpCisgc2V0KENNQUtFX0lOU1RBTExfREFUQVJPT1RESVIgIiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9L3NoYXJlIikKKyBzZXQoQ01BS0VfSU5TVEFMTF9MT0NBTEVESVIgIiR7Q01BS0VfSU5TVEFMTF9EQVRBUk9PVERJUn0vbG9jYWxlIikKKy1zZXQoQ01BS0VfSU5TVEFMTF9GVUxMX1NZU0NPTkZESVIgIi9ldGMiKQorK3NldChDTUFLRV9JTlNUQUxMX0ZVTExfU1lTQ09ORkRJUiAiJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vLi4vZXRjIikKKyAKKyAjIENvbmZpZ3VyZSBmaWxlcworIGNvbmZpZ3VyZV9maWxlKCR7Q01BS0VfU09VUkNFX0RJUn0vZXRjL2RuZmRyYWdvcmEueWFtbC5pbiAke0NNQUtFX0JJTkFSWV9ESVJ9L2V0Yy9kbmZkcmFnb3JhLnlhbWwgQE9OTFkpCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2RuZmRyYWdvcmEvZG5mZHJhZ29yYS8wMDAxLWRpc2FibGUtYnVpbGQtbWFucGFnZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9kbmZkcmFnb3JhL2RuZmRyYWdvcmEvMDAwMS1kaXNhYmxlLWJ1aWxkLW1hbnBhZ2VzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4YmI2MzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9kbmZkcmFnb3JhL2RuZmRyYWdvcmEvMDAwMS1kaXNhYmxlLWJ1aWxkLW1hbnBhZ2VzLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK0Zyb20gMmU2YTBkYjI0YmUzNzNhNWI3NzQxZGM1YTBkMzIyYTI4Mzg5ZmJmMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFpoZW5nIFJ1b3FpbiA8emhlbmdycS5mbnN0QGNuLmZ1aml0c3UuY29tPgorRGF0ZTogVGh1LCAyMyBOb3YgMjAxNyAxNjozNTo0NCArMDkwMAorU3ViamVjdDogW1BBVENIXSBkaXNhYmxlIGJ1aWxkIG1hbnBhZ2VzLgorCitTaWduZWQtb2ZmLWJ5OiBaaGVuZyBSdW9xaW4gPHpoZW5ncnEuZm5zdEBjbi5mdWppdHN1LmNvbT4KKy0tLQorIENNYWtlTGlzdHMudHh0IHwgMSAtCisgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4IDdjNjZiMzkuLmZjMzI3NTAgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC02NSw3ICs2NSw2IEBAIGVuZGlmKEdFVFRFWFRfRk9VTkQpCisgCisgIyBCdWlsZCBhbmQgaW5zdGFsbCB0aGUgbWFuLXBhZ2VzCisgaWYoTk9UIFNQSElOWF9FWEVDVVRBQkxFLU5PVEZPVU5EKQorLQlhZGRfc3ViZGlyZWN0b3J5KG1hbikKKyBlbmRpZihOT1QgU1BISU5YX0VYRUNVVEFCTEUtTk9URk9VTkQpCisgCisgIyBJbnN0YWxsaW5nIGFwcGxpY2F0aW9uIGNvZGUKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZG5mZHJhZ29yYS9kbmZkcmFnb3JhX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2RuZmRyYWdvcmEvZG5mZHJhZ29yYV9naXQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNkMWVmYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2RuZmRyYWdvcmEvZG5mZHJhZ29yYV9naXQuYmIKQEAgLTAsMCArMSwzMCBAQAorU1VNTUFSWSA9ICJkbmZkcmFnb3JhIGlzIGEgRE5GIGZyb250ZW5kLCBiYXNlZCBvbiBycG1kcmFnb3JhIGZyb20gTWFnZWlhIChvcmlnaW5hbGx5IHJwbWRyYWtlKSBQZXJsIGNvZGUuIgorTElDRU5TRSA9ICJHUEx2MyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IFwKKyAgICAgICAgICAgICAgICAgICAiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9tYW5hdG9vbHMvZG5mZHJhZ29yYS5naXQgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1kaXNhYmxlLWJ1aWxkLW1hbnBhZ2VzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtRG8tbm90LXNldC1QWVRIT05fSU5TVEFMTF9ESVItYnktcnVubmluZy1weXRob24ucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1Uby1maXgtZXJyb3Itd2hlbi1kb19wYWNrYWdlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtUnVuLXB5dGhvbi1zY3JpcHRzLXVzaW5nLWVudi5wYXRjaCBcCisgICAgICAgICAgICIKKworUFYgPSAiMS4wLjErZ2l0JHtTUkNQVn0iCitTUkNSRVYgPSAiNGZlZjRjZTg4OWI4ZTRmYTAzMTkxZDQxNGY2M2JmZDUwNzk2MTUyYSIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBjbWFrZSBnZXR0ZXh0IHBrZ2NvbmZpZyBweXRob24zLWRpciBweXRob24zbmF0aXZlIGRpc3R1dGlsczMtYmFzZQorCitERVBFTkRTICs9ICJkbmYgcHl0aG9uMyAiCisjREVQRU5EU19jbGFzcy1uYXRpdmVzZGsgKz0gIm5hdGl2ZXNkay1weXRob24zIgorCitSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgPSAiIHB5dGhvbjMtY29yZSBsaWJ5dWkgbGlieXVpLW5jdXJzZXMgIgorCisjIG1hbnBhZ2VzIGdlbmVyYXRpb24gcmVxdWlyZXMgaHR0cDovL3d3dy5zcGhpbngtZG9jLm9yZy8KK0VYVFJBX09FQ01BS0UgPSAiIC1EV0lUSF9NQU49T0ZGIC1EUFlUSE9OX0lOU1RBTExfRElSPSR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9IC1EUFlUSE9OX0RFU0lSRUQ9MyIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmVzZGsiCisKK0ZJTEVTXyR7UE59ID0gIiR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9LyAke2RhdGFkaXJ9LyAke2JpbmRpcn0vICR7c3lzY29uZmRpcn0vZG5mZHJhZ29yYSAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9mb250Zm9yZ2UvZm9udGZvcmdlXzIwMTcwNzMxLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZm9udGZvcmdlL2ZvbnRmb3JnZV8yMDE3MDczMS5iYgppbmRleCBkOWYwODY3Li40ODFmZWRmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9mb250Zm9yZ2UvZm9udGZvcmdlXzIwMTcwNzMxLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2ZvbnRmb3JnZS9mb250Zm9yZ2VfMjAxNzA3MzEuYmIKQEAgLTYsNyArNiw3IEBACiAgICAgZmlsZTovL0xJQ0VOU0U7bWQ1PTNmOTIyYjQyZWQwMDMzZmEwZmQ0Y2QzMjY4ZjY0MjljIFwKICIKIAotREVQRU5EUyA9ICJnbGliLTIuMCBwYW5nbyBnaWZsaWIgdGlmZiBsaWJ4bWwyIGpwZWcgcHl0aG9uIGxpYnRvb2wgdXRoYXNoIGdudWxpYiIKK0RFUEVORFMgPSAiZ2xpYi0yLjAgcGFuZ28gZ2lmbGliIHRpZmYgbGlieG1sMiBqcGVnIHB5dGhvbiBsaWJ0b29sIHV0aGFzaCBnbnVsaWIgZ2V0dGV4dC1uYXRpdmUiCiBERVBFTkRTX2FwcGVuZF9jbGFzcy10YXJnZXQgPSAiIGxpYnhpIgogCiBpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgcHl0aG9ubmF0aXZlIGRpc3Ryb19mZWF0dXJlc19jaGVjayBnZXR0ZXh0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9mdndtL2Z2d20vMDAwMS1GaXgtY29tcGlsYXRpb24tZm9yLWRpc2FibGVkLWdub21lLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZnZ3bS9mdndtLzAwMDEtRml4LWNvbXBpbGF0aW9uLWZvci1kaXNhYmxlZC1nbm9tZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTc2NDc0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZnZ3bS9mdndtLzAwMDEtRml4LWNvbXBpbGF0aW9uLWZvci1kaXNhYmxlZC1nbm9tZS5wYXRjaApAQCAtMCwwICsxLDY5IEBACitGcm9tIDYwYzE3ZWI0OTEyMWJmMmFhNDg1YWNkMzA3NTBiMmZjNmM4ZWI2MWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKYXJtbyBKYWFra29sYSA8amFybW8uamFha2tvbGFAdmluY2l0LmZpPgorRGF0ZTogTW9uLCAxOSBKdW4gMjAxNyAxNjo0MTozNiArMDMwMAorU3ViamVjdDogW1BBVENIXSBGaXggY29tcGlsYXRpb24gZm9yIEhlbGl4LgorCitHbm9tZSBzdXBwb3J0LCBpbmNsdWRpbmcgR05PTUVfSU5JVF9IT09LLCBoYXMgYmVlbiByZW1vdmVkLCBidXQgaXQgd2FzCitzdGlsbCBiZWluZyBjYWxsZWQuCisKK0NPTVBBVF9PTERfS0VZU1lNREVGIGlzIGEgY2hlY2sgZm9yIGEgbGVnYWN5IHN5c3RlbSwgd2hpY2ggb3VyIHN5c3RlbQorbW9zdCBkZWZpbml0ZWx5IGlzIG5vdC4gIEl0IGlzIGFjY29tcGxpc2hlZCBieSB0cnlpbmcgdG8gZXhlY3V0ZQorYSBwcm9ncmFtLCB3aGljaCBkb2VzIG5vdCB3b3JrIHdoZW4gY3Jvc3MgY29tcGlsaW5nLgorCitUaGUgZnZ3bSgxKSBtYW4gcGFnZSBpcyBjcmVhdGVkIGZyb20gRG9jYm9vayBYTUwgd2hpY2ggaXMgc2V0IGZvcgorYSBXaW5kb3dzIGNvZGUgcGFnZSB0aGF0IGlzIG5vdCBhdmFpbGFibGUgd2hlbiBjb21waWxpbmcuICBFYXNpZXN0IGlzCit0byBqdXN0IG5vdCBjcmVhdGUgdGhlIG1hbiBwYWdlIGFzIHRob3NlIGFyZSBub3QgbmVlZGVkIG9uIHRoZSBtb25pdG9yLgorCitVcHN0cmVhbS1TdGF0dXM6IGluYXBwcm9wcmlhdGUgW09FIHNwZWNpZmljXQorU2lnbmVkLW9mZi1ieTogSmFybW8gSmFha2tvbGEgPGphcm1vLmphYWtrb2xhQHZpbmNpdC5maT4KK1NpZ25lZC1vZmYtYnk6IFJpa3UgSMOkbcOkbMOkaW5lbiA8cmlrdS5oYW1hbGFpbmVuQGdlLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFNlYmFzdGlhbiBSZWljaGVsIDxzZWJhc3RpYW4ucmVpY2hlbEBjb2xsYWJvcmEuY28udWs+CistLS0KKyBjb25maWd1cmUuYWMgICAgICAgICB8IDIwICsrKystLS0tLS0tLS0tLS0tLS0tCisgZG9jL2Z2d20vTWFrZWZpbGUuYW0gfCAgMiArLQorIDMgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggNDhjZTI2NC4uZmFiN2I0NCAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtMTQxMywyMyArMTQxMyw3IEBAIGVsc2UKKyAgIHByb2JsZW1fZ2RraW1saWI9IjogRmFpbGVkIG9uIGdkay1pbWxpYiwgc2VlIGNvbmZpZy5sb2ciCisgZmkKKyAKKy1HTk9NRV9JTklUX0hPT0sKKy0KKy0jIFVuZm9ydHVuYXRlbHkgd2UgaGF2ZSAyIGdub21lIHN1cHBvcnRzOiBXTSBoaW50cyBhbmQgZ25vbWUgbGlicy4KKy0jIFRoZSAkd2l0aF9nbm9tZWhpbnRzIGJlbG93IHJlZmVycyB0byB0aGUgZmlyc3QsIG5vdCBHTk9NRV9JTklUX0hPT0suCistaWYgdGVzdCAhIHgiJGVuYWJsZV9nbm9tZV9oaW50cyIgPSB4bm87IHRoZW4KKy0gIHdpdGhfZ25vbWVoaW50cz15ZXMKKy0gIHByb2JsZW1fZ25vbWVoaW50cz0iIgorLWVsc2UKKy0gIHdpdGhfZ25vbWVoaW50cz1ubworLSAgcHJvYmxlbV9nbm9tZWhpbnRzPSI6IEV4cGxpY2l0bHkgZGlzYWJsZWQiCistZmkKKy0KKyAjIERlZmluZSBzb21lIGNvbXBhdGliaWxpdHkgbWFjcm9zIG5lZWRlZCBmb3IgY29uZmlnLmguCistbWdfREVGSU5FX0lGX05PVChbI2luY2x1ZGUgPFgxMS9rZXlzeW0uaD5dLAorLSAgW2RlZmluZWQgWEtfUGFnZV9VcCAmJiBkZWZpbmVkIFhLX1BhZ2VfRG93bl0sCistICBbQ09NUEFUX09MRF9LRVlTWU1ERUZdLCBbJFhfQ0ZMQUdTXSwKKy0gIFtPbGQgQUlYIHN5c3RlbXMgKDMuMi41KSBkb24ndCBkZWZpbmUgc29tZSBjb21tb24ga2V5c3ltcy5dKQorIEFIX1ZFUkJBVElNKFtfQ09NUEFUX09MRF9LRVlTWU1ERUZdLAorIFsjaWZkZWYgQ09NUEFUX09MRF9LRVlTWU1ERUYKKyAjICBkZWZpbmUgWEtfUGFnZV9VcCAgIFhLX1ByaW9yCitkaWZmIC0tZ2l0IGEvZG9jL2Z2d20vTWFrZWZpbGUuYW0gYi9kb2MvZnZ3bS9NYWtlZmlsZS5hbQoraW5kZXggY2RkYjEwMi4uZmYwMDE0OSAxMDA3NTUKKy0tLSBhL2RvYy9mdndtL01ha2VmaWxlLmFtCisrKysgYi9kb2MvZnZ3bS9NYWtlZmlsZS5hbQorQEAgLTEwLDcgKzEwLDcgQEAgWFNMX1BST0ZJTEUgPSAkKHNyY2RpcikvLi4vZG9jYm9vay14c2wvcHJvZmlsaW5nL3Byb2ZpbGUueHNsCisgSFRNTF9GSUxFUyA9IGZ2d20ubWFuLmh0bWwKKyBYTUxfRklMRVMgPSBARE9DX1NFQ1RJT05TX1hNTF9QQVRIQAorIEVYVFJBX0RJU1QgPSBARE9DX1NFQ1RJT05TX1hNTEAgJChtYW5fTUFOUykgc2VjdGlvbnMKKy1tYW5fTUFOUyA9IGZ2d20uMQorK21hbl9NQU5TID0KKyAKKyBpZiBGVldNX0JVSUxEX0hUTUxET0MKKyBkb2NfREFUQSA9ICQoSFRNTF9GSUxFUykKKy0tIAorMS45LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZnZ3bS9mdndtLzAwMDItQXZvaWQtYWJzb2x1dGUtc3ltbGlua3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9mdndtL2Z2d20vMDAwMi1Bdm9pZC1hYnNvbHV0ZS1zeW1saW5rcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTZjYzg2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZnZ3bS9mdndtLzAwMDItQXZvaWQtYWJzb2x1dGUtc3ltbGlua3MucGF0Y2gKQEAgLTAsMCArMSwyNyBAQAorRnJvbTogU2ViYXN0aWFuIFJlaWNoZWwgPHNlYmFzdGlhbi5yZWljaGVsQGNvbGxhYm9yYS5jby51az4KK0RhdGU6IFR1ZSwgMjkgQXVmIDIwMTcgMTY6MDg6NDIgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gQXZvaWQgYWJzb2x1dGUgc3ltbGlua3MKKworQXZvaWQgdXNhZ2Ugb2YgYWJzb2x1dGUgc3ltbGlua3MsIHdoaWNoIGJyZWFrcyB5b2N0byBidWlsZHMKK3NpbmNlIHB5cm8uCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworU2lnbmVkLW9mZi1ieTogU2ViYXN0aWFuIFJlaWNoZWwgPHNlYmFzdGlhbi5yZWljaGVsQGNvbGxhYm9yYS5jby51az4KKworZGlmZiAtLWdpdCBhL2RlZmF1bHQtY29uZmlnL01ha2VmaWxlLmFtIGIvZGVmYXVsdC1jb25maWcvTWFrZWZpbGUuYW0KK2luZGV4IDVlMTZkMDk1YTEzNy4uNTQwNDE0NWE3NDJjIDEwMDY0NAorLS0tIGEvZGVmYXVsdC1jb25maWcvTWFrZWZpbGUuYW0KKysrKyBiL2RlZmF1bHQtY29uZmlnL01ha2VmaWxlLmFtCitAQCAtMTcsOSArMTcsOSBAQCBFWFRSQV9ESVNUICA9IGltYWdlcyBcCisgCisgaW5zdGFsbC1kYXRhLWhvb2s6CisgCWNwIC1yICQoc3JjZGlyKS9pbWFnZXMgJChpbnN0X2xvY2F0aW9uKQorLQlsbiAtc2YgJChpbnN0X2xvY2F0aW9uKS9GdndtU2NyaXB0LURhdGVUaW1lICQoaW5zdF9sb2NhdGlvbikvLi4KKy0JbG4gLXNmICQoaW5zdF9sb2NhdGlvbikvRnZ3bVNjcmlwdC1Db25maXJtUXVpdCAkKGluc3RfbG9jYXRpb24pLy4uCistCWxuIC1zZiAkKGluc3RfbG9jYXRpb24pL0Z2d21TY3JpcHQtQ29uZmlybUNvcHlDb25maWcgJChpbnN0X2xvY2F0aW9uKS8uLgorKwlsbiAtc2YgZGVmYXVsdC1jb25maWcvRnZ3bVNjcmlwdC1EYXRlVGltZSAkKGluc3RfbG9jYXRpb24pLy4uCisrCWxuIC1zZiBkZWZhdWx0LWNvbmZpZy9GdndtU2NyaXB0LUNvbmZpcm1RdWl0ICQoaW5zdF9sb2NhdGlvbikvLi4KKysJbG4gLXNmIGRlZmF1bHQtY29uZmlnL0Z2d21TY3JpcHQtQ29uZmlybUNvcHlDb25maWcgJChpbnN0X2xvY2F0aW9uKS8uLgorIAorIHVuaW5zdGFsbC1ob29rOgorIAlybSAtZnIgJChERVNURElSKS8kKGNvbmZpZ2RpcikKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2Z2d20vZnZ3bV8yLjYuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2Z2d20vZnZ3bV8yLjYuNy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjg1MWJmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZnZ3bS9mdndtXzIuNi43LmJiCkBAIC0wLDAgKzEsMTE0IEBACitTVU1NQVJZID0gIkYgVmlydHVhbCBXaW5kb3cgTWFuYWdlciAiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmZ2d20ub3JnLyIKK1NFQ1RJT04gPSAieDExL3dtIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTM2M2ZiY2ZiNTkxMjQ2ODlhZjcyYzkxNDU2MGVhZjZlIgorCitERVBFTkRTID0gIiBcCisgICAgYmlzb24tbmF0aXZlIFwKKyAgICBmbGV4LW5hdGl2ZSBcCisgICAgZnJlZXR5cGUtbmF0aXZlIFwKKyAgICBnZXR0ZXh0LW5hdGl2ZSBcCisgICAgbGlieHNsdC1uYXRpdmUgXAorICAgIGZvbnRjb25maWcgXAorICAgIGxpYmljZSBcCisgICAgbGlicG5nIFwKKyAgICBsaWJyc3ZnIFwKKyAgICBsaWJzbSBcCisgICAgbGlieGF1IFwKKyAgICBsaWJ4Y2IgXAorICAgIGxpYnhjdXJzb3IgXAorICAgIGxpYnhkbWNwIFwKKyAgICBsaWJ4ZXh0IFwKKyAgICBsaWJ4Zml4ZXMgXAorICAgIGxpYnhmdCBcCisgICAgbGlieGluZXJhbWEgXAorICAgIGxpYnhtbDIgXAorICAgIGxpYnhyZW5kZXIgXAorICAgIGxpYnh0IFwKKyAgICB2aXJ0dWFsL2xpYngxMSBcCisgICAgeHJhbmRyIFwKKyAgICB6bGliIFwKKyIKKworUFYgPSAiMi42LjcrZ2l0JHtTUkNQVn0iCisKK1NSQ19VUkkgPSAiIFwKKyAgICBnaXQ6Ly9naXRodWIuY29tL2Z2d21vcmcvZnZ3bS5naXQ7cHJvdG9jb2w9aHR0cHMgXAorICAgIGZpbGU6Ly8wMDAxLUZpeC1jb21waWxhdGlvbi1mb3ItZGlzYWJsZWQtZ25vbWUucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAyLUF2b2lkLWFic29sdXRlLXN5bWxpbmtzLnBhdGNoIFwKKyIKKworU1JDUkVWID0gIjU5N2E0ZTI5NmRhNGYyMWU3MWExN2ZhY2FiMjk3ZTAxNmEzYTgwYTgiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK2luaGVyaXQgYXV0b3Rvb2xzIGdldHRleHQgdXBkYXRlLWFsdGVybmF0aXZlcyBwa2djb25maWcgcHl0aG9ubmF0aXZlIHBlcmxuYXRpdmUgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisjIGRlcGVuZHMgb24gdmlydHVhbC9saWJ4MTEKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK0FMVEVSTkFUSVZFXyR7UE59ID0gIngtd2luZG93LW1hbmFnZXIiCitBTFRFUk5BVElWRV9UQVJHRVRbeC13aW5kb3ctbWFuYWdlcl0gPSAiJHtiaW5kaXJ9L2Z2d20iCitBTFRFUk5BVElWRV9QUklPUklUWVt4LXdpbmRvdy1tYW5hZ2VyXSA9ICIyMCIKKworRVhUUkFfT0VDT05GID0gIiBcCisgICAgLS1kaXNhYmxlLWJpZGkgXAorICAgIC0tZGlzYWJsZS1mb250Y29uZmlndGVzdCBcCisgICAgLS1kaXNhYmxlLWZyZWV0eXBldGVzdCBcCisgICAgLS1kaXNhYmxlLWh0bWxkb2MgXAorICAgIC0tZGlzYWJsZS1pbWxpYnRlc3QgXAorICAgIC0tZGlzYWJsZS1tYW5kb2MgXAorICAgIC0tZGlzYWJsZS1ubHMgXAorICAgIC0tZGlzYWJsZS1wZXJsbGliIFwKKyAgICAtLWRpc2FibGUtcnN2ZyBcCisgICAgLS1kaXNhYmxlLXNoYXBlIFwKKyAgICAtLWRpc2FibGUtc20gXAorICAgIC0tZGlzYWJsZS14ZnR0ZXN0IFwKKyAgICAtLXdpdGgtaW1saWItZXhlYy1wcmVmaXg9L25vbmV4aXN0ZW50IFwKKyAgICAtLXdpdGgtaW1saWItcHJlZml4PS9ub25leGlzdGVudCBcCisgICAgLS13aXRob3V0LW5jdXJzZXMtbGlicmFyeSBcCisgICAgLS13aXRob3V0LXJlYWRsaW5lLWxpYnJhcnkgXAorICAgIC0td2l0aG91dC1ycGxheS1saWJyYXJ5IFwKKyAgICAtLXdpdGhvdXQtc3Ryb2tlLWxpYnJhcnkgXAorICAgIC0td2l0aG91dC10ZXJtY2FwLWxpYnJhcnkgXAorICAgIC0td2l0aG91dC14cG0tbGlicmFyeSBcCisgICAgYWNfY3ZfZnVuY19ta3N0ZW1wPW5vIFwKKyAgICBoYXNfc2FmZXR5X21rc3RlbXA9eWVzIFwKKyIKKworIyBzaG93IHRoZSBleGFjdCBjb21tYW5kcyBpbiB0aGUgbG9nIGZpbGUKK0VYVFJBX09FTUFLRSA9ICIgXAorICAgIFY9MSBcCisiCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGluc3RhbGwgLWQgLW0gMDc1NSAke0R9LyR7c3lzY29uZmRpcn0veGRnL2Z2d20KKyAgICAjIFlvdSBjYW4gaW5zdGFsbCB0aGUgY29uZmlnIGZpbGUgaGVyZQorCisgICAgaW5zdGFsbCAtZCAtbSAwNzU1ICR7RH0vJHtkYXRhZGlyfS9mdndtCisgICAgdG91Y2ggJHtEfS8ke2RhdGFkaXJ9L2Z2d20vQ29uZmlnRnZ3bURlZmF1bHRzCit9CisKKyMgdGhlIG9ubHkgbmVlZGVkIHBhY2thZ2VzIChub3RlOiBsb2NhbGUgcGFja2FnZXMgYXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkCisjIGFzIHdlbGwpCitQQUNLQUdFUyA9ICIgXAorICAgICR7UE59IFwKKyAgICAke1BOfS1kYmcgXAorIgorCisjIG1pbmltYWwgc2V0IG9mIGJpbmFyaWVzCitGSUxFU18ke1BOfSA9ICIgXAorICAgICR7YmluZGlyfS9mdndtIFwKKyAgICAke2JpbmRpcn0vZnZ3bS1yb290IFwKKyAgICAke2RhdGFkaXJ9L2Z2d20vQ29uZmlnRnZ3bURlZmF1bHRzIFwKKyIKKworUkRFUEVORFNfJHtQTn0gPSAiIFwKKyAgICB4dXNlci1hY2NvdW50IFwKKyIKKworIyBieSBkZWZhdWx0IGEgbG90IG9mIHN0dWZmIGlzIGluc3RhbGxlZCBhbmQgaXQncyBub3QgZWFzeSB0byBjb250cm9sIHdoYXQgdG8KKyMgaW5zdGFsbCwgc28gaW5zdGFsbCBldmVyeXRoaW5nLCBidXQgc2tpcCB0aGUgY2hlY2sKK0lOU0FORV9TS0lQXyR7UE59ID0gIiBcCisgICAgaW5zdGFsbGVkLXZzLXNoaXBwZWQgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ2VnbC9nZWdsXzAuMy4xOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dlZ2wvZ2VnbF8wLjMuMTguYmIKaW5kZXggNmNjMjBmNS4uMDA1M2MwYyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ2VnbC9nZWdsXzAuMy4xOC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nZWdsL2dlZ2xfMC4zLjE4LmJiCkBAIC01LDcgKzUsOSBAQAogCiBFWFRSQV9PRUNPTkYgPSAiLS1kaXNhYmxlLWRvY3MiCiAKLWluaGVyaXQgZ25vbWViYXNlIHZhbGEgZ29iamVjdC1pbnRyb3NwZWN0aW9uCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBnbm9tZWJhc2UgdmFsYSBnb2JqZWN0LWludHJvc3BlY3Rpb24KKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogUEFDS0FHRUNPTkZJRyA/Pz0gIiIKIFBBQ0tBR0VDT05GSUdbamFzcGVyXSA9ICItLXdpdGgtamFzcGVyLC0td2l0aG91dC1qYXNwZXIsamFzcGVyIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ2ltcC9naW1wXzIuOC4yMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dpbXAvZ2ltcF8yLjguMjIuYmIKaW5kZXggY2Q3ZTI3YS4uOTQzOTg2ZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ2ltcC9naW1wXzIuOC4yMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9naW1wL2dpbXBfMi44LjIyLmJiCkBAIC0yNCw3ICsyNCw5IEBACiAiCiBERVBFTkRTICs9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3gxMScsICdsaWJ4bXUgbGlieHBtJywgJycsIGQpfSIKIAotaW5oZXJpdCBnbm9tZSBndGstZG9jCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBnbm9tZSBndGstZG9jCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIFNSQ19VUkkgPSAiaHR0cDovL2Z0cC5naW1wLm9yZy9wdWIvZ2ltcC92Mi44L2dpbXAtJHtQVn0udGFyLmJ6MiBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS1hYy1kby1ub3QtY2hlY2stZm9yLWZyZWV0eXBlLWNvbmZpZy5wYXRjaCBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nbG0vZmlsZXMvMDAwMS1NYWtlLUdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMLWEtY29uZmlndXJhYmxlLW9wdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dsbS9maWxlcy8wMDAxLU1ha2UtR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwtYS1jb25maWd1cmFibGUtb3B0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2OWM1YWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nbG0vZmlsZXMvMDAwMS1NYWtlLUdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMLWEtY29uZmlndXJhYmxlLW9wdGlvbi5wYXRjaApAQCAtMCwwICsxLDg2MCBAQAorRnJvbSA5OWE5Njc2YTAxOTNmNjI5MWQ3MjAyZDdhZjcyZTI0NTgwYWJlNTY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMTYgTWFyIDIwMTggMTM6NTU6MjkgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzJdIE1ha2UgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYSBjb25maWd1cmFibGUgb3B0aW9uCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0l0IHNlZW1zIHRoYXQgZXJyb3Jpbmcgb3V0IGlmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGlzIG5vdCBzZXQgdHVybnMgaW50bworcGFja2FnZXJzIG5pZ2h0bWFyZTogVGhlcmUgYXJlIHBhY2thZ2VzIGFyb3VuZCBleHBlY3RpbmcgZ2x4IGhlYWRlcnMuIEUuZworbGliZ2x0ZiBbMV0gZmFpbHMgZHVyaW5nIGNvbmZpZ3VyZSBjaGVja2luZyBmb3IgdXNhYmxlIGhlYWRlcnMgQU5EIGR1cmluZworY29tcGlsZS4gUGF0aWN1bGFybHkgZml4aW5nIGNvbmZpZ3VyZSBmb3IgdGhvc2UgcGFja2FnZXMgaXMgdGltZS1jb25zdW1pbmc6CitUaGUgb25seSB3YXkgKGNvcnJlY3QgbWUgaWYgSSBhbSB3cm9uZykgaXMgY3JlYXRpbmcgYSBwYXRjaCBhZGRpbmcKKworQUNfREVGSU5FKFtHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTF0sIFsxXSwgW2dsbSBuZWVkcyB0aGlzIGZvciBndHggaGVhZGVyc10pCisKK0J5IGFkZGluZyBhIGNvbmZpZ3VyZSBvcHRpb24gJ0dMTV9FTkFCTEVfRVhQRVJJTUVOVEFMJywgdGhlIGRlY2lzaW9uIHRvIHVzZQorZ2xtL2dseCBpcyBkb25lIGF0IG9uZSAoYW5kIHRoZSByaWdodCkgcGxhY2UuCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CisKK1sxXSBodHRwczovL2dlcnJpdC5saWJyZW9mZmljZS5vcmcvZ2l0d2ViP3A9bGliZ2x0Zi5naXQKKworVXB0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbMl0KKworWzJdIGh0dHBzOi8vZ2l0aHViLmNvbS9nLXRydWMvZ2xtL3B1bGwvNzQxCistLS0KKyBDTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICB8IDYgKysrKysrCisgZ2xtL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgfCAyICsrCisgZ2xtL2V4cGVyaW1lbnRhbC5ocHAuaW4gICAgICAgICAgICAgfCAxICsKKyBnbG0vZXh0LmhwcCAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvYXNzb2NpYXRlZF9taW5fbWF4LmhwcCAgICAgIHwgMSArCisgZ2xtL2d0eC9iaXQuaHBwICAgICAgICAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L2Nsb3Nlc3RfcG9pbnQuaHBwICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvY29sb3Jfc3BhY2UuaHBwICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9jb2xvcl9zcGFjZV9ZQ29DZy5ocHAgICAgICAgfCAxICsKKyBnbG0vZ3R4L2NvbW1vbi5ocHAgICAgICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvY29tcGF0aWJpbGl0eS5ocHAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9jb21wb25lbnRfd2lzZS5ocHAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L2R1YWxfcXVhdGVybmlvbi5ocHAgICAgICAgICB8IDEgKworIGdsbS9ndHgvZXVsZXJfYW5nbGVzLmhwcCAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9leHRlbmQuaHBwICAgICAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L2V4dGVuZGVkX21pbl9tYXguaHBwICAgICAgICB8IDEgKworIGdsbS9ndHgvZmFzdF9leHBvbmVudGlhbC5ocHAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9mYXN0X3NxdWFyZV9yb290LmhwcCAgICAgICAgfCAxICsKKyBnbG0vZ3R4L2Zhc3RfdHJpZ29ub21ldHJ5LmhwcCAgICAgICB8IDEgKworIGdsbS9ndHgvZ3JhZGllbnRfcGFpbnQuaHBwICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9oYW5kZWRfY29vcmRpbmF0ZV9zcGFjZS5ocHAgfCAxICsKKyBnbG0vZ3R4L2hhc2guaHBwICAgICAgICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvaW50ZWdlci5ocHAgICAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9pbnRlcnNlY3QuaHBwICAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L2lvLmhwcCAgICAgICAgICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvbG9nX2Jhc2UuaHBwICAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9tYXRyaXhfY3Jvc3NfcHJvZHVjdC5ocHAgICAgfCAxICsKKyBnbG0vZ3R4L21hdHJpeF9kZWNvbXBvc2UuaHBwICAgICAgICB8IDEgKworIGdsbS9ndHgvbWF0cml4X2ZhY3RvcmlzYXRpb24uaHBwICAgIHwgMSArCisgZ2xtL2d0eC9tYXRyaXhfaW50ZXJwb2xhdGlvbi5ocHAgICAgfCAxICsKKyBnbG0vZ3R4L21hdHJpeF9tYWpvcl9zdG9yYWdlLmhwcCAgICB8IDEgKworIGdsbS9ndHgvbWF0cml4X29wZXJhdGlvbi5ocHAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9tYXRyaXhfcXVlcnkuaHBwICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L21hdHJpeF90cmFuc2Zvcm1fMmQuaHBwICAgICB8IDEgKworIGdsbS9ndHgvbWl4ZWRfcHJvZHVjdC5ocHAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9ub3JtLmhwcCAgICAgICAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L25vcm1hbC5ocHAgICAgICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvbm9ybWFsaXplX2RvdC5ocHAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9udW1iZXJfcHJlY2lzaW9uLmhwcCAgICAgICAgfCAxICsKKyBnbG0vZ3R4L29wdGltdW1fcG93LmhwcCAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvb3J0aG9ub3JtYWxpemUuaHBwICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9wZXJwZW5kaWN1bGFyLmhwcCAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L3BvbGFyX2Nvb3JkaW5hdGVzLmhwcCAgICAgICB8IDEgKworIGdsbS9ndHgvcHJvamVjdGlvbi5ocHAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9xdWF0ZXJuaW9uLmhwcCAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L3JhbmdlLmhwcCAgICAgICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvcmF3X2RhdGEuaHBwICAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9yb3RhdGVfbm9ybWFsaXplZF9heGlzLmhwcCAgfCAxICsKKyBnbG0vZ3R4L3JvdGF0ZV92ZWN0b3IuaHBwICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvc2NhbGFyX211bHRpcGxpY2F0aW9uLmhwcCAgIHwgMSArCisgZ2xtL2d0eC9zY2FsYXJfcmVsYXRpb25hbC5ocHAgICAgICAgfCAxICsKKyBnbG0vZ3R4L3NwbGluZS5ocHAgICAgICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvc3RkX2Jhc2VkX3R5cGUuaHBwICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC9zdHJpbmdfY2FzdC5ocHAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L3RleHR1cmUuaHBwICAgICAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvdHJhbnNmb3JtLmhwcCAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC90cmFuc2Zvcm0yLmhwcCAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L3R5cGVfYWxpZ25lZC5ocHAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvdHlwZV90cmFpdC5ocHAgICAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC92ZWNfc3dpenpsZS5ocHAgICAgICAgICAgICAgfCAxICsKKyBnbG0vZ3R4L3ZlY3Rvcl9hbmdsZS5ocHAgICAgICAgICAgICB8IDEgKworIGdsbS9ndHgvdmVjdG9yX3F1ZXJ5LmhwcCAgICAgICAgICAgIHwgMSArCisgZ2xtL2d0eC93cmFwLmhwcCAgICAgICAgICAgICAgICAgICAgfCAxICsKKyA2MyBmaWxlcyBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdsbS9leHBlcmltZW50YWwuaHBwLmluCisKK2RpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0CitpbmRleCBlNTE1OWIwZi4uYmQ0ZGQ2NTQgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC04Miw2ICs4MiwxMSBAQCBvcHRpb24oR0xNX1RFU1RfRU5BQkxFX1NJTURfQVZYICJFbmFibGUgQVZYIG9wdGltaXphdGlvbnMiIE9GRikKKyBvcHRpb24oR0xNX1RFU1RfRU5BQkxFX1NJTURfQVZYMiAiRW5hYmxlIEFWWDIgb3B0aW1pemF0aW9ucyIgT0ZGKQorIG9wdGlvbihHTE1fVEVTVF9GT1JDRV9QVVJFICJGb3JjZSAncHVyZScgaW5zdHJ1Y3Rpb25zIiBPRkYpCisgCisrb3B0aW9uKEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMICJFbmFibGUgZXhwZXJpbWVudGFsIEdMTV9HVFgiIE9GRikKKytjb25maWd1cmVfZmlsZShnbG0vZXhwZXJpbWVudGFsLmhwcC5pbiBleHBlcmltZW50YWwuaHBwIEBPTkxZKQorK2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtDTUFLRV9CSU5BUllfRElSfS9nbG0pCisraW5jbHVkZV9kaXJlY3Rvcmllcygke0NNQUtFX0JJTkFSWV9ESVJ9KQorKworIGlmKEdMTV9URVNUX0ZPUkNFX1BVUkUpCisgCWFkZF9kZWZpbml0aW9ucygtREdMTV9GT1JDRV9QVVJFKQorIAorQEAgLTE2Nyw2ICsxNzIsNyBAQCBvcHRpb24oR0xNX0lOU1RBTExfRU5BQkxFICJHTE0gaW5zdGFsbCIgT04pCisgc2V0KEdMTV9JTlNUQUxMX0NPTkZJR0RJUiAiJHtDTUFLRV9JTlNUQUxMX0xJQkRJUn0vY21ha2UvZ2xtIikKKyBpZiAoR0xNX0lOU1RBTExfRU5BQkxFKQorIAlpbnN0YWxsKERJUkVDVE9SWSBnbG0gREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9KQorKwlpbnN0YWxsKEZJTEVTICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vZXhwZXJpbWVudGFsLmhwcCIgREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L2dsbSkKKyBlbmRpZigpCisgCisgd3JpdGVfYmFzaWNfcGFja2FnZV92ZXJzaW9uX2ZpbGUoIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9nbG1Db25maWdWZXJzaW9uLmNtYWtlIiBWRVJTSU9OICR7R0xNX1ZFUlNJT059IENPTVBBVElCSUxJVFkgQW55TmV3ZXJWZXJzaW9uKQorZGlmZiAtLWdpdCBhL2dsbS9DTWFrZUxpc3RzLnR4dCBiL2dsbS9DTWFrZUxpc3RzLnR4dAoraW5kZXggZGY5YzllZTUuLmRjNWRiNGJjIDEwMDY0NAorLS0tIGEvZ2xtL0NNYWtlTGlzdHMudHh0CisrKysgYi9nbG0vQ01ha2VMaXN0cy50eHQKK0BAIC00Myw2ICs0Myw4IEBAIHNvdXJjZV9ncm91cCgiU0lNRCBGaWxlcyIgRklMRVMgJHtTSU1EX0lOTElORX0pCisgc291cmNlX2dyb3VwKCJTSU1EIEZpbGVzIiBGSUxFUyAke1NJTURfSEVBREVSfSkKKyAKKyBpbmNsdWRlX2RpcmVjdG9yaWVzKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLikKKysjIG1ha2Ugb3V0LW9mIHRyZWUgYnVpbGRzIGZpbmQgZXhwZXJpbWVudGFsLmhwcAorK2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtDTUFLRV9CSU5BUllfRElSfS9nbG0pCisgCisgaWYoR0xNX1NUQVRJQ19MSUJSQVJZX0VOQUJMRSBPUiBHTE1fRFlOQU1JQ19MSUJSQVJZX0VOQUJMRSkKKyAJaWYoR0xNX1NUQVRJQ19MSUJSQVJZX0VOQUJMRSkKK2RpZmYgLS1naXQgYS9nbG0vZXhwZXJpbWVudGFsLmhwcC5pbiBiL2dsbS9leHBlcmltZW50YWwuaHBwLmluCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLmJmYWI1MTM4CistLS0gL2Rldi9udWxsCisrKysgYi9nbG0vZXhwZXJpbWVudGFsLmhwcC5pbgorQEAgLTAsMCArMSBAQAorKyNjbWFrZWRlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorZGlmZiAtLWdpdCBhL2dsbS9leHQuaHBwIGIvZ2xtL2V4dC5ocHAKK2luZGV4IGQwODViZmQ1Li5hMjk0ODQ0NyAxMDA2NDQKKy0tLSBhL2dsbS9leHQuaHBwCisrKysgYi9nbG0vZXh0LmhwcAorQEAgLTM5LDYgKzM5LDcgQEAKKyAjCWluY2x1ZGUgIi4vZ3RjL3R5cGVfYWxpZ25lZC5ocHAiCisgI2VuZGlmCisgCisrI2luY2x1ZGUgImV4cGVyaW1lbnRhbC5ocHAiCisgI2lmZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgI2luY2x1ZGUgIi4vZ3R4L2Fzc29jaWF0ZWRfbWluX21heC5ocHAiCisgI2luY2x1ZGUgIi4vZ3R4L2JpdC5ocHAiCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9hc3NvY2lhdGVkX21pbl9tYXguaHBwIGIvZ2xtL2d0eC9hc3NvY2lhdGVkX21pbl9tYXguaHBwCitpbmRleCAwYzk5MzVmMy4uZDAwYzJiYzQgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2Fzc29jaWF0ZWRfbWluX21heC5ocHAKKysrKyBiL2dsbS9ndHgvYXNzb2NpYXRlZF9taW5fbWF4LmhwcAorQEAgLTE2LDYgKzE2LDcgQEAKKyAvLyBEZXBlbmRlbmN5OgorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdUWF9hc3NvY2lhdGVkX21pbl9tYXggaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2JpdC5ocHAgYi9nbG0vZ3R4L2JpdC5ocHAKK2luZGV4IDE0NDdmYTAwLi4zMTk1NzA4MyAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvYml0LmhwcAorKysrIGIvZ2xtL2d0eC9iaXQuaHBwCitAQCAtMTUsNiArMTUsNyBAQAorIC8vIERlcGVuZGVuY2llcworICNpbmNsdWRlICIuLi9ndGMvYml0ZmllbGQuaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfYml0IGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9jbG9zZXN0X3BvaW50LmhwcCBiL2dsbS9ndHgvY2xvc2VzdF9wb2ludC5ocHAKK2luZGV4IDY4NTliYjk2Li5lYmQ5ZmU1YSAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvY2xvc2VzdF9wb2ludC5ocHAKKysrKyBiL2dsbS9ndHgvY2xvc2VzdF9wb2ludC5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2Nsb3Nlc3RfcG9pbnQgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2NvbG9yX3NwYWNlLmhwcCBiL2dsbS9ndHgvY29sb3Jfc3BhY2UuaHBwCitpbmRleCBkMWU2NTVjMy4uNTE0MTY4MTkgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2NvbG9yX3NwYWNlLmhwcAorKysrIGIvZ2xtL2d0eC9jb2xvcl9zcGFjZS5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2NvbG9yX3NwYWNlIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9jb2xvcl9zcGFjZV9ZQ29DZy5ocHAgYi9nbG0vZ3R4L2NvbG9yX3NwYWNlX1lDb0NnLmhwcAoraW5kZXggZTgyY2JkOGIuLjdhZTcxMDQxIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9jb2xvcl9zcGFjZV9ZQ29DZy5ocHAKKysrKyBiL2dsbS9ndHgvY29sb3Jfc3BhY2VfWUNvQ2cuaHBwCitAQCAtMTUsNiArMTUsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9jb2xvcl9zcGFjZV9ZQ29DZyBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvY29tbW9uLmhwcCBiL2dsbS9ndHgvY29tbW9uLmhwcAoraW5kZXggODA4MWJmZjcuLjU3YTY4YThkIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9jb21tb24uaHBwCisrKysgYi9nbG0vZ3R4L2NvbW1vbi5ocHAKK0BAIC0xOCw2ICsxOCw3IEBACisgI2luY2x1ZGUgIi4uL3ZlYzQuaHBwIgorICNpbmNsdWRlICIuLi9ndGMvdmVjMS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9jb21tb24gaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2NvbXBhdGliaWxpdHkuaHBwIGIvZ2xtL2d0eC9jb21wYXRpYmlsaXR5LmhwcAoraW5kZXggZTViNjAzOTkuLjk4NzY2NjljIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9jb21wYXRpYmlsaXR5LmhwcAorKysrIGIvZ2xtL2d0eC9jb21wYXRpYmlsaXR5LmhwcAorQEAgLTE2LDYgKzE2LDcgQEAKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ3RjL3F1YXRlcm5pb24uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfY29tcGF0aWJpbGl0eSBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvY29tcG9uZW50X3dpc2UuaHBwIGIvZ2xtL2d0eC9jb21wb25lbnRfd2lzZS5ocHAKK2luZGV4IDM5YmFiNWQ1Li40ZmUwZTRlMiAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvY29tcG9uZW50X3dpc2UuaHBwCisrKysgYi9nbG0vZ3R4L2NvbXBvbmVudF93aXNlLmhwcAorQEAgLTE4LDYgKzE4LDcgQEAKKyAjaW5jbHVkZSAiLi4vZGV0YWlsL3NldHVwLmhwcCIKKyAjaW5jbHVkZSAiLi4vZGV0YWlsL3F1YWxpZmllci5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9jb21wb25lbnRfd2lzZSBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvZHVhbF9xdWF0ZXJuaW9uLmhwcCBiL2dsbS9ndHgvZHVhbF9xdWF0ZXJuaW9uLmhwcAoraW5kZXggYzQzNDNlOWQuLmQ1OWZiNDU5IDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9kdWFsX3F1YXRlcm5pb24uaHBwCisrKysgYi9nbG0vZ3R4L2R1YWxfcXVhdGVybmlvbi5ocHAKK0BAIC0yMCw2ICsyMCw3IEBACisgI2luY2x1ZGUgIi4uL2d0Yy9jb25zdGFudHMuaHBwIgorICNpbmNsdWRlICIuLi9ndGMvcXVhdGVybmlvbi5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9kdWFsX3F1YXRlcm5pb24gaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2V1bGVyX2FuZ2xlcy5ocHAgYi9nbG0vZ3R4L2V1bGVyX2FuZ2xlcy5ocHAKK2luZGV4IGU2NmU5MjgxLi5hZDU5ODhjMSAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvZXVsZXJfYW5nbGVzLmhwcAorKysrIGIvZ2xtL2d0eC9ldWxlcl9hbmdsZXMuaHBwCitAQCAtMTUsNiArMTUsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9ldWxlcl9hbmdsZXMgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2V4dGVuZC5ocHAgYi9nbG0vZ3R4L2V4dGVuZC5ocHAKK2luZGV4IGVkYTRlNDcwLi5jZGU2ZGI2MyAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvZXh0ZW5kLmhwcAorKysrIGIvZ2xtL2d0eC9leHRlbmQuaHBwCitAQCAtMTUsNiArMTUsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9leHRlbmQgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2V4dGVuZGVkX21pbl9tYXguaHBwIGIvZ2xtL2d0eC9leHRlbmRlZF9taW5fbWF4LmhwcAoraW5kZXggM2U3NjdiMGMuLjBiY2ZmY2M2IDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9leHRlbmRlZF9taW5fbWF4LmhwcAorKysrIGIvZ2xtL2d0eC9leHRlbmRlZF9taW5fbWF4LmhwcAorQEAgLTE1LDYgKzE1LDcgQEAKKyAvLyBEZXBlbmRlbmN5OgorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfZXh0ZW50ZWRfbWluX21heCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvZmFzdF9leHBvbmVudGlhbC5ocHAgYi9nbG0vZ3R4L2Zhc3RfZXhwb25lbnRpYWwuaHBwCitpbmRleCAyZDQ5MThlNy4uZTZkMTFmMGEgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2Zhc3RfZXhwb25lbnRpYWwuaHBwCisrKysgYi9nbG0vZ3R4L2Zhc3RfZXhwb25lbnRpYWwuaHBwCitAQCAtMTYsNiArMTYsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9mYXN0X2V4cG9uZW50aWFsIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9mYXN0X3NxdWFyZV9yb290LmhwcCBiL2dsbS9ndHgvZmFzdF9zcXVhcmVfcm9vdC5ocHAKK2luZGV4IDFlMWVjM2NmLi5mNzU4YWVlZiAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvZmFzdF9zcXVhcmVfcm9vdC5ocHAKKysrKyBiL2dsbS9ndHgvZmFzdF9zcXVhcmVfcm9vdC5ocHAKK0BAIC0xOSw2ICsxOSw3IEBACisgI2luY2x1ZGUgIi4uL2V4cG9uZW50aWFsLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ2VvbWV0cmljLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2Zhc3Rfc3F1YXJlX3Jvb3QgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2Zhc3RfdHJpZ29ub21ldHJ5LmhwcCBiL2dsbS9ndHgvZmFzdF90cmlnb25vbWV0cnkuaHBwCitpbmRleCA3MzkwNjVmYi4uZjEzMzI5NTggMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2Zhc3RfdHJpZ29ub21ldHJ5LmhwcAorKysrIGIvZ2xtL2d0eC9mYXN0X3RyaWdvbm9tZXRyeS5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ3RjL2NvbnN0YW50cy5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9mYXN0X3RyaWdvbm9tZXRyeSBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvZ3JhZGllbnRfcGFpbnQuaHBwIGIvZ2xtL2d0eC9ncmFkaWVudF9wYWludC5ocHAKK2luZGV4IDI3MTNjZWMwLi5kNDcwMzk5MSAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvZ3JhZGllbnRfcGFpbnQuaHBwCisrKysgYi9nbG0vZ3R4L2dyYWRpZW50X3BhaW50LmhwcAorQEAgLTE3LDYgKzE3LDcgQEAKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ3R4L29wdGltdW1fcG93LmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2dyYWRpZW50X3BhaW50IGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9oYW5kZWRfY29vcmRpbmF0ZV9zcGFjZS5ocHAgYi9nbG0vZ3R4L2hhbmRlZF9jb29yZGluYXRlX3NwYWNlLmhwcAoraW5kZXggMWQwZDQxMDQuLjNhNTJkZGNmIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9oYW5kZWRfY29vcmRpbmF0ZV9zcGFjZS5ocHAKKysrKyBiL2dsbS9ndHgvaGFuZGVkX2Nvb3JkaW5hdGVfc3BhY2UuaHBwCitAQCAtMTUsNiArMTUsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9oYW5kZWRfY29vcmRpbmF0ZV9zcGFjZSBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvaGFzaC5ocHAgYi9nbG0vZ3R4L2hhc2guaHBwCitpbmRleCBmZThhM2VmZC4uOTJiZmM5YjIgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2hhc2guaHBwCisrKysgYi9nbG0vZ3R4L2hhc2guaHBwCitAQCAtMTIsNiArMTIsNyBAQAorIAorICNwcmFnbWEgb25jZQorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfaGFzaCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvaW50ZWdlci5ocHAgYi9nbG0vZ3R4L2ludGVnZXIuaHBwCitpbmRleCA5NjYzN2ExMy4uNWQxYTE2YzYgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2ludGVnZXIuaHBwCisrKysgYi9nbG0vZ3R4L2ludGVnZXIuaHBwCitAQCAtMTYsNiArMTYsNyBAQAorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorICNpbmNsdWRlICIuLi9ndGMvaW50ZWdlci5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9pbnRlZ2VyIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9pbnRlcnNlY3QuaHBwIGIvZ2xtL2d0eC9pbnRlcnNlY3QuaHBwCitpbmRleCA2MWUyMjI2YS4uNDg5NWJhOTMgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2ludGVyc2VjdC5ocHAKKysrKyBiL2dsbS9ndHgvaW50ZXJzZWN0LmhwcAorQEAgLTIxLDYgKzIxLDcgQEAKKyAjaW5jbHVkZSAiLi4vZ3R4L2Nsb3Nlc3RfcG9pbnQuaHBwIgorICNpbmNsdWRlICIuLi9ndHgvdmVjdG9yX3F1ZXJ5LmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2Nsb3Nlc3RfcG9pbnQgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L2lvLmhwcCBiL2dsbS9ndHgvaW8uaHBwCitpbmRleCA0OWExZWMxMS4uYWUzOWNkNjAgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L2lvLmhwcAorKysrIGIvZ2xtL2d0eC9pby5ocHAKK0BAIC0yMyw2ICsyMyw3IEBACisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgI2luY2x1ZGUgIi4uL2d0eC9xdWF0ZXJuaW9uLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX2lvIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9sb2dfYmFzZS5ocHAgYi9nbG0vZ3R4L2xvZ19iYXNlLmhwcAoraW5kZXggZTg3M2UzNTYuLjQ1YjhkNTNjIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9sb2dfYmFzZS5ocHAKKysrKyBiL2dsbS9ndHgvbG9nX2Jhc2UuaHBwCitAQCAtMTUsNiArMTUsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9sb2dfYmFzZSBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvbWF0cml4X2Nyb3NzX3Byb2R1Y3QuaHBwIGIvZ2xtL2d0eC9tYXRyaXhfY3Jvc3NfcHJvZHVjdC5ocHAKK2luZGV4IDk2Nzc0M2I4Li41MmQ2YzE3MyAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvbWF0cml4X2Nyb3NzX3Byb2R1Y3QuaHBwCisrKysgYi9nbG0vZ3R4L21hdHJpeF9jcm9zc19wcm9kdWN0LmhwcAorQEAgLTE2LDYgKzE2LDcgQEAKKyAvLyBEZXBlbmRlbmN5OgorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfbWF0cml4X2Nyb3NzX3Byb2R1Y3QgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L21hdHJpeF9kZWNvbXBvc2UuaHBwIGIvZ2xtL2d0eC9tYXRyaXhfZGVjb21wb3NlLmhwcAoraW5kZXggYjdlYzBlODMuLjY3OTNmZWUyIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9tYXRyaXhfZGVjb21wb3NlLmhwcAorKysrIGIvZ2xtL2d0eC9tYXRyaXhfZGVjb21wb3NlLmhwcAorQEAgLTIwLDYgKzIwLDcgQEAKKyAjaW5jbHVkZSAiLi4vZ3RjL3F1YXRlcm5pb24uaHBwIgorICNpbmNsdWRlICIuLi9ndGMvbWF0cml4X3RyYW5zZm9ybS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9tYXRyaXhfZGVjb21wb3NlIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9tYXRyaXhfZmFjdG9yaXNhdGlvbi5ocHAgYi9nbG0vZ3R4L21hdHJpeF9mYWN0b3Jpc2F0aW9uLmhwcAoraW5kZXggZTMwYTc3NDYuLjc5YzI5M2JlIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9tYXRyaXhfZmFjdG9yaXNhdGlvbi5ocHAKKysrKyBiL2dsbS9ndHgvbWF0cml4X2ZhY3RvcmlzYXRpb24uaHBwCitAQCAtMTUsNiArMTUsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9tYXRyaXhfZmFjdG9yaXNhdGlvbiBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvbWF0cml4X2ludGVycG9sYXRpb24uaHBwIGIvZ2xtL2d0eC9tYXRyaXhfaW50ZXJwb2xhdGlvbi5ocHAKK2luZGV4IDg5YzQ1OTZjLi43OTk5ODNiYiAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvbWF0cml4X2ludGVycG9sYXRpb24uaHBwCisrKysgYi9nbG0vZ3R4L21hdHJpeF9pbnRlcnBvbGF0aW9uLmhwcAorQEAgLTE2LDYgKzE2LDcgQEAKKyAvLyBEZXBlbmRlbmN5OgorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfbWF0cml4X2ludGVycG9sYXRpb24gaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L21hdHJpeF9tYWpvcl9zdG9yYWdlLmhwcCBiL2dsbS9ndHgvbWF0cml4X21ham9yX3N0b3JhZ2UuaHBwCitpbmRleCA3ZjI2NGE1OS4uZTY4NDY3Y2QgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L21hdHJpeF9tYWpvcl9zdG9yYWdlLmhwcAorKysrIGIvZ2xtL2d0eC9tYXRyaXhfbWFqb3Jfc3RvcmFnZS5ocHAKK0BAIC0xNiw2ICsxNiw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX21hdHJpeF9tYWpvcl9zdG9yYWdlIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9tYXRyaXhfb3BlcmF0aW9uLmhwcCBiL2dsbS9ndHgvbWF0cml4X29wZXJhdGlvbi5ocHAKK2luZGV4IGJjZTkzOGJiLi4xZTg1YmI1ZSAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvbWF0cml4X29wZXJhdGlvbi5ocHAKKysrKyBiL2dsbS9ndHgvbWF0cml4X29wZXJhdGlvbi5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX21hdHJpeF9vcGVyYXRpb24gaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L21hdHJpeF9xdWVyeS5ocHAgYi9nbG0vZ3R4L21hdHJpeF9xdWVyeS5ocHAKK2luZGV4IDVkZjVmNTJmLi5lZWMxZWVjMCAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvbWF0cml4X3F1ZXJ5LmhwcAorKysrIGIvZ2xtL2d0eC9tYXRyaXhfcXVlcnkuaHBwCitAQCAtMTgsNiArMTgsNyBAQAorICNpbmNsdWRlICIuLi9ndHgvdmVjdG9yX3F1ZXJ5LmhwcCIKKyAjaW5jbHVkZSA8bGltaXRzPgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfbWF0cml4X3F1ZXJ5IGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9tYXRyaXhfdHJhbnNmb3JtXzJkLmhwcCBiL2dsbS9ndHgvbWF0cml4X3RyYW5zZm9ybV8yZC5ocHAKK2luZGV4IDIzOWFiOWY0Li4zY2E4ZDJmMiAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvbWF0cml4X3RyYW5zZm9ybV8yZC5ocHAKKysrKyBiL2dsbS9ndHgvbWF0cml4X3RyYW5zZm9ybV8yZC5ocHAKK0BAIC0xNyw2ICsxNyw3IEBACisgI2luY2x1ZGUgIi4uL21hdDN4My5ocHAiCisgI2luY2x1ZGUgIi4uL3ZlYzIuaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfbWF0cml4X3RyYW5zZm9ybV8yZCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvbWl4ZWRfcHJvZHVjdC5ocHAgYi9nbG0vZ3R4L21peGVkX3Byb2R1Y3QuaHBwCitpbmRleCA1ODU2MmFhYi4uNWM3NDYwZDUgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L21peGVkX3Byb2R1Y3QuaHBwCisrKysgYi9nbG0vZ3R4L21peGVkX3Byb2R1Y3QuaHBwCitAQCAtMTUsNiArMTUsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9taXhlZF9wcm9kdWN0IGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9ub3JtLmhwcCBiL2dsbS9ndHgvbm9ybS5ocHAKK2luZGV4IDQ2NDc0ZTA3Li4zY2YyYzNlYSAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvbm9ybS5ocHAKKysrKyBiL2dsbS9ndHgvbm9ybS5ocHAKK0BAIC0xNyw2ICsxNyw3IEBACisgI2luY2x1ZGUgIi4uL2dlb21ldHJpYy5ocHAiCisgI2luY2x1ZGUgIi4uL2d0eC9xdWF0ZXJuaW9uLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX25vcm0gaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L25vcm1hbC5ocHAgYi9nbG0vZ3R4L25vcm1hbC5ocHAKK2luZGV4IDE1Y2VjOWMyLi43YmI0YzA5NiAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvbm9ybWFsLmhwcAorKysrIGIvZ2xtL2d0eC9ub3JtYWwuaHBwCitAQCAtMTYsNiArMTYsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9ub3JtYWwgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L25vcm1hbGl6ZV9kb3QuaHBwIGIvZ2xtL2d0eC9ub3JtYWxpemVfZG90LmhwcAoraW5kZXggODYwNDhlNzAuLmM2NjA0ZGE0IDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9ub3JtYWxpemVfZG90LmhwcAorKysrIGIvZ2xtL2d0eC9ub3JtYWxpemVfZG90LmhwcAorQEAgLTE2LDYgKzE2LDcgQEAKKyAvLyBEZXBlbmRlbmN5OgorICNpbmNsdWRlICIuLi9ndHgvZmFzdF9zcXVhcmVfcm9vdC5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9ub3JtYWxpemVfZG90IGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9udW1iZXJfcHJlY2lzaW9uLmhwcCBiL2dsbS9ndHgvbnVtYmVyX3ByZWNpc2lvbi5ocHAKK2luZGV4IDM3MzJhNTZjLi5iNDg4NDVmNyAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvbnVtYmVyX3ByZWNpc2lvbi5ocHAKKysrKyBiL2dsbS9ndHgvbnVtYmVyX3ByZWNpc2lvbi5ocHAKK0BAIC0xOCw2ICsxOCw3IEBACisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgI2luY2x1ZGUgIi4uL2d0Yy90eXBlX3ByZWNpc2lvbi5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9udW1iZXJfcHJlY2lzaW9uIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9vcHRpbXVtX3Bvdy5ocHAgYi9nbG0vZ3R4L29wdGltdW1fcG93LmhwcAoraW5kZXggZWIwOWYxYzMuLjk0YTZiYmIyIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9vcHRpbXVtX3Bvdy5ocHAKKysrKyBiL2dsbS9ndHgvb3B0aW11bV9wb3cuaHBwCitAQCAtMTUsNiArMTUsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9vcHRpbXVtX3BvdyBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvb3J0aG9ub3JtYWxpemUuaHBwIGIvZ2xtL2d0eC9vcnRob25vcm1hbGl6ZS5ocHAKK2luZGV4IDJhNjg0ZWU0Li40ZmY0N2U1MyAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvb3J0aG9ub3JtYWxpemUuaHBwCisrKysgYi9nbG0vZ3R4L29ydGhvbm9ybWFsaXplLmhwcAorQEAgLTE4LDYgKzE4LDcgQEAKKyAjaW5jbHVkZSAiLi4vbWF0M3gzLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ2VvbWV0cmljLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX29ydGhvbm9ybWFsaXplIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9wZXJwZW5kaWN1bGFyLmhwcCBiL2dsbS9ndHgvcGVycGVuZGljdWxhci5ocHAKK2luZGV4IDM1NjAxYWM3Li4xNzI1MWViZSAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvcGVycGVuZGljdWxhci5ocHAKKysrKyBiL2dsbS9ndHgvcGVycGVuZGljdWxhci5ocHAKK0BAIC0xNyw2ICsxNyw3IEBACisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgI2luY2x1ZGUgIi4uL2d0eC9wcm9qZWN0aW9uLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3BlcnBlbmRpY3VsYXIgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3BvbGFyX2Nvb3JkaW5hdGVzLmhwcCBiL2dsbS9ndHgvcG9sYXJfY29vcmRpbmF0ZXMuaHBwCitpbmRleCBiODQyMWRiNC4uNTEyNTIxNWQgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3BvbGFyX2Nvb3JkaW5hdGVzLmhwcAorKysrIGIvZ2xtL2d0eC9wb2xhcl9jb29yZGluYXRlcy5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3BvbGFyX2Nvb3JkaW5hdGVzIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9wcm9qZWN0aW9uLmhwcCBiL2dsbS9ndHgvcHJvamVjdGlvbi5ocHAKK2luZGV4IDlhMjRhYmY5Li40ZDViZjc2ZiAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvcHJvamVjdGlvbi5ocHAKKysrKyBiL2dsbS9ndHgvcHJvamVjdGlvbi5ocHAKK0BAIC0xNSw2ICsxNSw3IEBACisgLy8gRGVwZW5kZW5jeToKKyAjaW5jbHVkZSAiLi4vZ2VvbWV0cmljLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3Byb2plY3Rpb24gaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3F1YXRlcm5pb24uaHBwIGIvZ2xtL2d0eC9xdWF0ZXJuaW9uLmhwcAoraW5kZXggYzNkOTlhNWMuLjgwOGJhMGZkIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9xdWF0ZXJuaW9uLmhwcAorKysrIGIvZ2xtL2d0eC9xdWF0ZXJuaW9uLmhwcAorQEAgLTE5LDYgKzE5LDcgQEAKKyAjaW5jbHVkZSAiLi4vZ3RjL3F1YXRlcm5pb24uaHBwIgorICNpbmNsdWRlICIuLi9ndHgvbm9ybS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9xdWF0ZXJuaW9uIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9yYW5nZS5ocHAgYi9nbG0vZ3R4L3JhbmdlLmhwcAoraW5kZXggZTBlZjQ2YWYuLjAzYzc5N2MzIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9yYW5nZS5ocHAKKysrKyBiL2dsbS9ndHgvcmFuZ2UuaHBwCitAQCAtMTUsNiArMTUsNyBAQAorIC8vIERlcGVuZGVuY2llcworICNpbmNsdWRlICIuLi9kZXRhaWwvc2V0dXAuaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfcmFuZ2UgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3Jhd19kYXRhLmhwcCBiL2dsbS9ndHgvcmF3X2RhdGEuaHBwCitpbmRleCBmYjM0YzhjYi4uMDA4NGZlYzYgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3Jhd19kYXRhLmhwcAorKysrIGIvZ2xtL2d0eC9yYXdfZGF0YS5ocHAKK0BAIC0xNiw2ICsxNiw3IEBACisgI2luY2x1ZGUgIi4uL2RldGFpbC9zZXR1cC5ocHAiCisgI2luY2x1ZGUgIi4uL2RldGFpbC90eXBlX2ludC5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9yYXdfZGF0YSBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvcm90YXRlX25vcm1hbGl6ZWRfYXhpcy5ocHAgYi9nbG0vZ3R4L3JvdGF0ZV9ub3JtYWxpemVkX2F4aXMuaHBwCitpbmRleCBlZWU5MGQ2ZS4uODI2MTI5MjggMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3JvdGF0ZV9ub3JtYWxpemVkX2F4aXMuaHBwCisrKysgYi9nbG0vZ3R4L3JvdGF0ZV9ub3JtYWxpemVkX2F4aXMuaHBwCitAQCAtMTksNiArMTksNyBAQAorICNpbmNsdWRlICIuLi9ndGMvZXBzaWxvbi5ocHAiCisgI2luY2x1ZGUgIi4uL2d0Yy9xdWF0ZXJuaW9uLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3JvdGF0ZV9ub3JtYWxpemVkX2F4aXMgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3JvdGF0ZV92ZWN0b3IuaHBwIGIvZ2xtL2d0eC9yb3RhdGVfdmVjdG9yLmhwcAoraW5kZXggYzhhY2U4OWUuLmU5NTRiMDQxIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9yb3RhdGVfdmVjdG9yLmhwcAorKysrIGIvZ2xtL2d0eC9yb3RhdGVfdmVjdG9yLmhwcAorQEAgLTE3LDYgKzE3LDcgQEAKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ3R4L3RyYW5zZm9ybS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF9yb3RhdGVfdmVjdG9yIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9zY2FsYXJfbXVsdGlwbGljYXRpb24uaHBwIGIvZ2xtL2d0eC9zY2FsYXJfbXVsdGlwbGljYXRpb24uaHBwCitpbmRleCBiNzNlZGY2Ny4uMjJiYWE1MmEgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3NjYWxhcl9tdWx0aXBsaWNhdGlvbi5ocHAKKysrKyBiL2dsbS9ndHgvc2NhbGFyX211bHRpcGxpY2F0aW9uLmhwcAorQEAgLTE2LDYgKzE2LDcgQEAKKyAKKyAjaW5jbHVkZSAiLi4vZGV0YWlsL3NldHVwLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3NjYWxhcl9tdWx0aXBsaWNhdGlvbiBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvc2NhbGFyX3JlbGF0aW9uYWwuaHBwIGIvZ2xtL2d0eC9zY2FsYXJfcmVsYXRpb25hbC5ocHAKK2luZGV4IDdmYzhjMWNjLi5mMjFmM2IyYiAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvc2NhbGFyX3JlbGF0aW9uYWwuaHBwCisrKysgYi9nbG0vZ3R4L3NjYWxhcl9yZWxhdGlvbmFsLmhwcAorQEAgLTE1LDYgKzE1LDcgQEAKKyAvLyBEZXBlbmRlbmN5OgorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfZXh0ZW5kIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9zcGxpbmUuaHBwIGIvZ2xtL2d0eC9zcGxpbmUuaHBwCitpbmRleCBmOTZkN2UwNy4uNzYzNTljZmQgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3NwbGluZS5ocHAKKysrKyBiL2dsbS9ndHgvc3BsaW5lLmhwcAorQEAgLTE2LDYgKzE2LDcgQEAKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ3R4L29wdGltdW1fcG93LmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3NwbGluZSBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvc3RkX2Jhc2VkX3R5cGUuaHBwIGIvZ2xtL2d0eC9zdGRfYmFzZWRfdHlwZS5ocHAKK2luZGV4IDU1YTJmMDc0Li45MjUzMmI5ZSAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvc3RkX2Jhc2VkX3R5cGUuaHBwCisrKysgYi9nbG0vZ3R4L3N0ZF9iYXNlZF90eXBlLmhwcAorQEAgLTE3LDYgKzE3LDcgQEAKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAjaW5jbHVkZSA8Y3N0ZGxpYj4KKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3N0ZF9iYXNlZF90eXBlIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC9zdHJpbmdfY2FzdC5ocHAgYi9nbG0vZ3R4L3N0cmluZ19jYXN0LmhwcAoraW5kZXggNGI0ZTI4MGYuLmRmY2Q1MDg1IDEwMDY0NAorLS0tIGEvZ2xtL2d0eC9zdHJpbmdfY2FzdC5ocHAKKysrKyBiL2dsbS9ndHgvc3RyaW5nX2Nhc3QuaHBwCitAQCAtMjQsNiArMjQsNyBAQAorICNpbmNsdWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPGNtYXRoPgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfc3RyaW5nX2Nhc3QgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3RleHR1cmUuaHBwIGIvZ2xtL2d0eC90ZXh0dXJlLmhwcAoraW5kZXggMzEyYmYzOTguLjdhZjE4NWY2IDEwMDY0NAorLS0tIGEvZ2xtL2d0eC90ZXh0dXJlLmhwcAorKysrIGIvZ2xtL2d0eC90ZXh0dXJlLmhwcAorQEAgLTE3LDYgKzE3LDcgQEAKKyAjaW5jbHVkZSAiLi4vZ3RjL2ludGVnZXIuaHBwIgorICNpbmNsdWRlICIuLi9ndHgvY29tcG9uZW50X3dpc2UuaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfdGV4dHVyZSBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvdHJhbnNmb3JtLmhwcCBiL2dsbS9ndHgvdHJhbnNmb3JtLmhwcAoraW5kZXggZDIzYjk5Y2UuLjVhNWQ5NjE5IDEwMDY0NAorLS0tIGEvZ2xtL2d0eC90cmFuc2Zvcm0uaHBwCisrKysgYi9nbG0vZ3R4L3RyYW5zZm9ybS5ocHAKK0BAIC0xOSw2ICsxOSw3IEBACisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgI2luY2x1ZGUgIi4uL2d0Yy9tYXRyaXhfdHJhbnNmb3JtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3RyYW5zZm9ybSBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvdHJhbnNmb3JtMi5ocHAgYi9nbG0vZ3R4L3RyYW5zZm9ybTIuaHBwCitpbmRleCA4NWY1YmVhNC4uNWQ3YzgzZmMgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3RyYW5zZm9ybTIuaHBwCisrKysgYi9nbG0vZ3R4L3RyYW5zZm9ybTIuaHBwCitAQCAtMTcsNiArMTcsNyBAQAorICNpbmNsdWRlICIuLi9nbG0uaHBwIgorICNpbmNsdWRlICIuLi9ndHgvdHJhbnNmb3JtLmhwcCIKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3RyYW5zZm9ybTIgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3R5cGVfYWxpZ25lZC5ocHAgYi9nbG0vZ3R4L3R5cGVfYWxpZ25lZC5ocHAKK2luZGV4IDZmZjlmMjc2Li42YWQ5MmZhZCAxMDA2NDQKKy0tLSBhL2dsbS9ndHgvdHlwZV9hbGlnbmVkLmhwcAorKysrIGIvZ2xtL2d0eC90eXBlX2FsaWduZWQuaHBwCitAQCAtMTgsNiArMTgsNyBAQAorIC8vIERlcGVuZGVuY3k6CisgI2luY2x1ZGUgIi4uL2d0Yy90eXBlX3ByZWNpc2lvbi5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF90eXBlX2FsaWduZWQgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3R5cGVfdHJhaXQuaHBwIGIvZ2xtL2d0eC90eXBlX3RyYWl0LmhwcAoraW5kZXggNjM3YmJkMTkuLjY1NTE5Y2FiIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC90eXBlX3RyYWl0LmhwcAorKysrIGIvZ2xtL2d0eC90eXBlX3RyYWl0LmhwcAorQEAgLTEyLDYgKzEyLDcgQEAKKyAKKyAjcHJhZ21hIG9uY2UKKyAKKysjaW5jbHVkZSAiLi4vZXhwZXJpbWVudGFsLmhwcCIKKyAjaWZuZGVmIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMCisgIwllcnJvciAiR0xNOiBHTE1fR1RYX3R5cGVfdHJhaXQgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3ZlY19zd2l6emxlLmhwcCBiL2dsbS9ndHgvdmVjX3N3aXp6bGUuaHBwCitpbmRleCBkYWViYWMzOC4uMTNkNTIzZGMgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3ZlY19zd2l6emxlLmhwcAorKysrIGIvZ2xtL2d0eC92ZWNfc3dpenpsZS5ocHAKK0BAIC0xNCw2ICsxNCw3IEBACisgCisgI2luY2x1ZGUgIi4uL2dsbS5ocHAiCisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF92ZWNfc3dpenpsZSBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorZGlmZiAtLWdpdCBhL2dsbS9ndHgvdmVjdG9yX2FuZ2xlLmhwcCBiL2dsbS9ndHgvdmVjdG9yX2FuZ2xlLmhwcAoraW5kZXggNDAxYTQ3ZWIuLjk4YzlkMTEwIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC92ZWN0b3JfYW5nbGUuaHBwCisrKysgYi9nbG0vZ3R4L3ZlY3Rvcl9hbmdsZS5ocHAKK0BAIC0yMCw2ICsyMCw3IEBACisgI2luY2x1ZGUgIi4uL2d0eC9xdWF0ZXJuaW9uLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ3R4L3JvdGF0ZV92ZWN0b3IuaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfdmVjdG9yX2FuZ2xlIGlzIGFuIGV4cGVyaW1lbnRhbCBleHRlbnNpb24gYW5kIG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gVXNlICNkZWZpbmUgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwgYmVmb3JlIGluY2x1ZGluZyBpdCwgaWYgeW91IHJlYWxseSB3YW50IHRvIHVzZSBpdC4iCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvZ2xtL2d0eC92ZWN0b3JfcXVlcnkuaHBwIGIvZ2xtL2d0eC92ZWN0b3JfcXVlcnkuaHBwCitpbmRleCA2NTYwZWFhNS4uNWFiMWZmZGEgMTAwNjQ0CistLS0gYS9nbG0vZ3R4L3ZlY3Rvcl9xdWVyeS5ocHAKKysrKyBiL2dsbS9ndHgvdmVjdG9yX3F1ZXJ5LmhwcAorQEAgLTE3LDYgKzE3LDcgQEAKKyAjaW5jbHVkZSA8Y2Zsb2F0PgorICNpbmNsdWRlIDxsaW1pdHM+CisgCisrI2luY2x1ZGUgIi4uL2V4cGVyaW1lbnRhbC5ocHAiCisgI2lmbmRlZiBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTAorICMJZXJyb3IgIkdMTTogR0xNX0dUWF92ZWN0b3JfcXVlcnkgaXMgYW4gZXhwZXJpbWVudGFsIGV4dGVuc2lvbiBhbmQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBVc2UgI2RlZmluZSBHTE1fRU5BQkxFX0VYUEVSSU1FTlRBTCBiZWZvcmUgaW5jbHVkaW5nIGl0LCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGl0LiIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9nbG0vZ3R4L3dyYXAuaHBwIGIvZ2xtL2d0eC93cmFwLmhwcAoraW5kZXggMmM0YjU1ZGYuLjViZjI2YTMzIDEwMDY0NAorLS0tIGEvZ2xtL2d0eC93cmFwLmhwcAorKysrIGIvZ2xtL2d0eC93cmFwLmhwcAorQEAgLTE2LDYgKzE2LDcgQEAKKyAjaW5jbHVkZSAiLi4vZ2xtLmhwcCIKKyAjaW5jbHVkZSAiLi4vZ3RjL3ZlYzEuaHBwIgorIAorKyNpbmNsdWRlICIuLi9leHBlcmltZW50YWwuaHBwIgorICNpZm5kZWYgR0xNX0VOQUJMRV9FWFBFUklNRU5UQUwKKyAjCWVycm9yICJHTE06IEdMTV9HVFhfd3JhcCBpcyBhbiBleHBlcmltZW50YWwgZXh0ZW5zaW9uIGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFVzZSAjZGVmaW5lIEdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMIGJlZm9yZSBpbmNsdWRpbmcgaXQsIGlmIHlvdSByZWFsbHkgd2FudCB0byB1c2UgaXQuIgorICNlbmRpZgorLS0gCisyLjE0LjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ2xtL2ZpbGVzLzAwMDItZ2xtLWluc3RhbGwtaGVhZGVycy1vbmx5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ2xtL2ZpbGVzLzAwMDItZ2xtLWluc3RhbGwtaGVhZGVycy1vbmx5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiZTMzMTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nbG0vZmlsZXMvMDAwMi1nbG0taW5zdGFsbC1oZWFkZXJzLW9ubHkucGF0Y2gKQEAgLTAsMCArMSw0NiBAQAorRnJvbSA3ZmRkMzZkNzQ5NjIzOGUwM2U0M2ZjYzMyODM5Zjc1NTg4MTE2YzVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMTYgTWFyIDIwMTggMTU6NDQ6NDggKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzJdIGdsbTogaW5zdGFsbCBoZWFkZXJzIG9ubHkKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworUGxhdXNpYmlsaXR5IGNoZWNrIGluIHJvb3Qgc291cmNlIHBhdGgKKworJCBmaW5kIGdsbSAtdHlwZSBmICEgLW5hbWUgJyouaHBwJyAhIC1uYW1lICcqLmgnICEgLW5hbWUgJyouaW5sJworZ2xtL2RldGFpbC9nbG0uY3BwCitnbG0vZGV0YWlsL2R1bW15LmNwcAorZ2xtL2V4cGVyaW1lbnRhbC5ocHAuaW4KK2dsbS9DTWFrZUxpc3RzLnR4dAorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorCitVcHRyZWFtLVN0YXR1czogU3VibWl0dGVkIFsxXQorCitbMV0gaHR0cHM6Ly9naXRodWIuY29tL2ctdHJ1Yy9nbG0vcHVsbC83NDEKKy0tLQorIENNYWtlTGlzdHMudHh0IHwgNyArKysrKystCisgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggYmQ0ZGQ2NTQuLjExM2RkNzM1IDEwMDY0NAorLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrKyBiL0NNYWtlTGlzdHMudHh0CitAQCAtMTcxLDcgKzE3MSwxMiBAQCBvcHRpb24oR0xNX0lOU1RBTExfRU5BQkxFICJHTE0gaW5zdGFsbCIgT04pCisgCisgc2V0KEdMTV9JTlNUQUxMX0NPTkZJR0RJUiAiJHtDTUFLRV9JTlNUQUxMX0xJQkRJUn0vY21ha2UvZ2xtIikKKyBpZiAoR0xNX0lOU1RBTExfRU5BQkxFKQorLQlpbnN0YWxsKERJUkVDVE9SWSBnbG0gREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9KQorKwlpbnN0YWxsKERJUkVDVE9SWSBnbG0KKysJCURFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfQorKwkJRklMRVNfTUFUQ0hJTkcKKysJCQlQQVRURVJOICIqLmgiCisrCQkJUEFUVEVSTiAiKi5ocHAiCisrCQkJUEFUVEVSTiAiKi5pbmwiKQorIAlpbnN0YWxsKEZJTEVTICIke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vZXhwZXJpbWVudGFsLmhwcCIgREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L2dsbSkKKyBlbmRpZigpCisgCistLSAKKzIuMTQuMworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nbG0vZ2xtXzAuOS44LjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nbG0vZ2xtXzAuOS44LjUuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExNzRmMmEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ2xtL2dsbV8wLjkuOC41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotU1VNTUFSWSA9ICJPcGVuR0wgTWF0aGVtYXRpY3MgTGlicmFyeSIKLURFU0NSSVBUSU9OID0gIk9wZW5HTCBNYXRoZW1hdGljcyAoR0xNKSBpcyBhIGhlYWRlciBvbmx5IEMrKyBcCi1tYXRoZW1hdGljcyBsaWJyYXJ5IGZvciBncmFwaGljcyBzb2Z0d2FyZSBiYXNlZCBvbiB0aGUgT3BlbkdMIFwKLVNoYWRpbmcgTGFuZ3VhZ2UgKEdMU0wpIHNwZWNpZmljYXRpb25zLiIKLUhPTUVQQUdFID0gImh0dHBzOi8vZ2xtLmctdHJ1Yy5uZXQiCi1CVUdUUkFDS0VSID0gImh0dHBzOi8vZ2l0aHViLmNvbS9nLXRydWMvZ2xtL2lzc3VlcyIKLQotU0VDVElPTiA9ICJsaWJzIgotCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL2NvcHlpbmcudHh0O21kNT00NDMxNjA2ZDE0NDI1MjE0M2M5YzNkZjM4NGE3NGNhZCIKLQotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2ctdHJ1Yy9nbG07YnJhbmNoPTAuOS44IgotU1JDUkVWID0gIjZmYTIwM2VlYjdmYmNiYjZmNjIwNTAxZmFkNDAzNTljOGE0NTYwNDkiCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1pbmhlcml0IGNtYWtlCi0KLUZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2NtYWtlIgotUkRFUEVORFNfJHtQTn0tZGV2ID0gIiIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9nbG0vZ2xtXzAuOS45LWEyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ2xtL2dsbV8wLjkuOS1hMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTJlZTIzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ2xtL2dsbV8wLjkuOS1hMi5iYgpAQCAtMCwwICsxLDI4IEBACitTVU1NQVJZID0gIk9wZW5HTCBNYXRoZW1hdGljcyBMaWJyYXJ5IgorREVTQ1JJUFRJT04gPSAiT3BlbkdMIE1hdGhlbWF0aWNzIChHTE0pIGlzIGEgaGVhZGVyIG9ubHkgQysrIFwKK21hdGhlbWF0aWNzIGxpYnJhcnkgZm9yIGdyYXBoaWNzIHNvZnR3YXJlIGJhc2VkIG9uIHRoZSBPcGVuR0wgXAorU2hhZGluZyBMYW5ndWFnZSAoR0xTTCkgc3BlY2lmaWNhdGlvbnMuIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9nbG0uZy10cnVjLm5ldCIKK0JVR1RSQUNLRVIgPSAiaHR0cHM6Ly9naXRodWIuY29tL2ctdHJ1Yy9nbG0vaXNzdWVzIgorCitTRUNUSU9OID0gImxpYnMiCisKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vcmVhZG1lLm1kO2JlZ2lubGluZT0yMTtlbmRsaW5lPTIyO21kNT0zMDc1YjU3MjdkMzZmMjllZGNjZjk3YjkzZTcyYjc5MCIKKworU1JDX1VSSSA9ICIgXAorICAgIGdpdDovL2dpdGh1Yi5jb20vZy10cnVjL2dsbTticmFuY2g9bWFzdGVyIFwKKyAgICBmaWxlOi8vMDAwMS1NYWtlLUdMTV9FTkFCTEVfRVhQRVJJTUVOVEFMLWEtY29uZmlndXJhYmxlLW9wdGlvbi5wYXRjaCBcCisgICAgZmlsZTovLzAwMDItZ2xtLWluc3RhbGwtaGVhZGVycy1vbmx5LnBhdGNoIFwKKyIKK1NSQ1JFViA9ICJmY2JlZGY1MDU4ZWY4NjEzZGQwMmFhYzYyZWYwMGQ1NWRjZmVhZGQ3IgorUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBjbWFrZQorCitFWFRSQV9PRUNNQUtFID0gIi1ER0xNX0VOQUJMRV9FWFBFUklNRU5UQUw9T04iCisKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2NtYWtlIgorUkRFUEVORFNfJHtQTn0tZGV2ID0gIiIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2dwaG90bzItMi41LjgvMDAwMS1jb25maWd1cmUuYWMtcmVtb3ZlLUFNX1BPX1NVQkRJUlMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2dwaG90bzIvMDAwMS1jb25maWd1cmUuYWMtcmVtb3ZlLUFNX1BPX1NVQkRJUlMucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvZ3Bob3RvMi0yLjUuOC8wMDAxLWNvbmZpZ3VyZS5hYy1yZW1vdmUtQU1fUE9fU1VCRElSUy5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9ncGhvdG8yLzAwMDEtY29uZmlndXJlLmFjLXJlbW92ZS1BTV9QT19TVUJESVJTLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2dwaG90bzItMi41LjgvMDAwMi1Mb29rLWZvci1wb3B0LXdpdGgtR1BfQ0hFQ0tfTElCUkFSWS1mdW5jdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvZ3Bob3RvMi8wMDAyLUxvb2stZm9yLXBvcHQtd2l0aC1HUF9DSEVDS19MSUJSQVJZLWZ1bmN0aW9uLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2dwaG90bzItMi41LjgvMDAwMi1Mb29rLWZvci1wb3B0LXdpdGgtR1BfQ0hFQ0tfTElCUkFSWS1mdW5jdGlvbi5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9ncGhvdG8yLzAwMDItTG9vay1mb3ItcG9wdC13aXRoLUdQX0NIRUNLX0xJQlJBUlktZnVuY3Rpb24ucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvZ3Bob3RvMl8yLjUuMTQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2dwaG90bzJfMi41LjE0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1YWQ3ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2dwaG90bzJfMi41LjE0LmJiCkBAIC0wLDAgKzEsMjIgQEAKK1NVTU1BUlkgPSAiZ3Bob3RvMiAtIGEgY29tbWFuZC1saW5lIGZyb250ZW5kIHRvIGxpYmdwaG90bzIiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmdwaG90by5jb20vIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgorCitERVBFTkRTID0gImxpYmdwaG90bzIgcG9wdCByZWFkbGluZSIKK1JERVBFTkRTX2dwaG90bzIgPSAibGliZ3Bob3RvMiIKKworU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vZ3Bob3RvL2dwaG90bzItJHtQVn0udGFyLmJ6MjtuYW1lPWdwaG90bzIgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1jb25maWd1cmUuYWMtcmVtb3ZlLUFNX1BPX1NVQkRJUlMucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMi1Mb29rLWZvci1wb3B0LXdpdGgtR1BfQ0hFQ0tfTElCUkFSWS1mdW5jdGlvbi5wYXRjaCBcCisiCisKK1NSQ19VUklbZ3Bob3RvMi5tZDVzdW1dID0gIjZjNmEyMWI1ZTg3OTMzMGNkZDcxZWY5MmRjZTM2Mzk5IgorU1JDX1VSSVtncGhvdG8yLnNoYTI1NnN1bV0gPSAiOTMwMmQwMmZiNDcyZDQ5MzY5ODgzODJiNzI3N2NjZGM0ZWRhZjdlZGU1NmM0OTAyNzg5MTJmZmQwNjI3Njk5YyIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdldHRleHQKKworRVhUUkFfT0VDT05GICs9ICItLXdpdGgtanBlZy1wcmVmaXg9JHtTVEFHSU5HX0lOQ0RJUn0gXAorICAgICAgICAgICAgICAgICAtLXdpdGhvdXQtY2RrIFwKKyIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9ncGhvdG8yXzIuNS44LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9ncGhvdG8yXzIuNS44LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MmQyODNiLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvZ3Bob3RvMl8yLjUuOC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVNVTU1BUlkgPSAiZ3Bob3RvMiAtIGEgY29tbWFuZC1saW5lIGZyb250ZW5kIHRvIGxpYmdwaG90bzIiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LmdwaG90by5jb20vIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgotCi1ERVBFTkRTID0gImxpYmdwaG90bzIgcG9wdCByZWFkbGluZSIKLVJERVBFTkRTX2dwaG90bzIgPSAibGliZ3Bob3RvMiIKLQotU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vZ3Bob3RvL2dwaG90bzItJHtQVn0udGFyLmJ6MjtuYW1lPWdwaG90bzIgXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1jb25maWd1cmUuYWMtcmVtb3ZlLUFNX1BPX1NVQkRJUlMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi1Mb29rLWZvci1wb3B0LXdpdGgtR1BfQ0hFQ0tfTElCUkFSWS1mdW5jdGlvbi5wYXRjaCBcCi0iCi0KLVNSQ19VUklbZ3Bob3RvMi5tZDVzdW1dID0gImJhZTM2OWFlZTY4ODFlNTkwYzVjOTFiZGJiMTFhNWY4IgotU1JDX1VSSVtncGhvdG8yLnNoYTI1NnN1bV0gPSAiYTlhYmNkMTVkOTVmMjA1MzE4ZDE3ZTNhYzEyYWY3Y2U1MjNkMmJjNDk0MzcwOWQ1MGIwYTEyYzMwY2M1ZWU0ZCIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdldHRleHQKLQotRVhUUkFfT0VDT05GICs9ICItLXdpdGgtanBlZy1wcmVmaXg9JHtTVEFHSU5HX0lOQ0RJUn0gXAotICAgICAgICAgICAgICAgICAtLXdpdGhvdXQtY2RrIFwKLSIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yLTIuNS44LzAwMDEtc2NyaXB0cy1yZW1vdmUtYmFzaGlzbXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzItMi41LjgvMDAwMS1zY3JpcHRzLXJlbW92ZS1iYXNoaXNtcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGUwZGM4Ny4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzItMi41LjgvMDAwMS1zY3JpcHRzLXJlbW92ZS1iYXNoaXNtcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0OSArMCwwIEBACi1Gcm9tIGMwMGU2M2U5N2Q4NzE4ODM2YmEwMTFkOTE3MjEyODczMmVlY2YwMDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBJc21vIFB1dXN0aW5lbiA8aXNtby5wdXVzdGluZW5AaW50ZWwuY29tPgotRGF0ZTogVHVlLCAyNCBKYW4gMjAxNyAyMjoyNDowNSArMDIwMAotU3ViamVjdDogW1BBVENIXSBzY3JpcHRzOiByZW1vdmUgYmFzaGlzbXMuCi0KLUNvbnZlcnQgYmFzaCBzY3JpcHRzIHRvIG1vcmUgZ2VuZXJpYyBzaGVsbCBzY3JpcHRzLiBUaGlzIHJlbW92ZXMgdGhlCi1zdHJpY3QgYmFzaCBkZXBlbmRlbmN5IGFuZCB0aGUgc2NyaXB0cyBzaG91bGQgbm93IHJ1biB3aXRoIGFueSBwb3NpeAotc2hlbGwuIEFsc28gZml4IHRoZSBpc3N1ZXMgcmVwb3J0ZWQgYnkgc2hlbGxjaGVjayB3aGlsZSBhdCBpdC4KLQotVXBzdHJlYW0tc3RhdHVzOiBBY2NlcHRlZCBbaHR0cHM6Ly9naXRodWIuY29tL2dwaG90by9saWJncGhvdG8yL2NvbW1pdC8zOWI0Mzk1NTMyMDU4YzBlZGI5YTU2ZDBmZjA0ZTQ4YTQ3MmU0NzQzXQotCi0tLS0KLSBwYWNrYWdpbmcvZ2VuZXJpYy9jaGVjay1wdHAtY2FtZXJhICAgICAgICAgIHwgMTIgKysrKysrLS0tLS0tCi0gcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvZ3Bob3RvLXNldC1wcm9jcGVybSB8IDE0ICsrKysrKystLS0tLS0tCi0gcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvdXNiY2FtLmNvbnNvbGUgICAgICB8ICA0ICsrLS0KLSBwYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0uZ3JvdXAgICAgICAgIHwgIDIgKy0KLSBwYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0udXNlciAgICAgICAgIHwgIDIgKy0KLSBwYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0ueDExLWFwcCAgICAgIHwgIDQgKystLQotIDYgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9wYWNrYWdpbmcvZ2VuZXJpYy9jaGVjay1wdHAtY2FtZXJhIGIvcGFja2FnaW5nL2dlbmVyaWMvY2hlY2stcHRwLWNhbWVyYQotaW5kZXggMTc5M2ZjOC4uYmMzYzZhYyAxMDA2NDQKLS0tLSBhL3BhY2thZ2luZy9nZW5lcmljL2NoZWNrLXB0cC1jYW1lcmEKLSsrKyBiL3BhY2thZ2luZy9nZW5lcmljL2NoZWNrLXB0cC1jYW1lcmEKLUBAIC0xLDQgKzEsNCBAQAotLSMhL2Jpbi9iYXNoCi0rIyEvYmluL3NoCi0gIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLUBAIC0yMCwxMyArMjAsMTMgQEAgSU5URVJGQUNFPSIkezE6LTA2LzAxLzAxfSIKLSAKLSBCQVNFTkFNRT0ke0RFVlBBVEgjIyovfQotIGZvciBkIGluIC9zeXMvJHtERVZQQVRIfS8ke0JBU0VOQU1FfToqOyBkbwotLQlbWyAtZCAke2R9IF1dIHx8IGNvbnRpbnVlCi0tCUlOVEVSRkFDRUlEPSIkKDwgJHtkfS9iSW50ZXJmYWNlQ2xhc3MpIgotLQlJTlRFUkZBQ0VJRD0iJHtJTlRFUkZBQ0VJRH0vJCg8ICR7ZH0vYkludGVyZmFjZVN1YkNsYXNzKSIKLS0JSU5URVJGQUNFSUQ9IiR7SU5URVJGQUNFSUR9LyQoPCAke2R9L2JJbnRlcmZhY2VQcm90b2NvbCkiCi0rCVsgLWQgIiR7ZH0iIF0gfHwgY29udGludWUKLSsJSU5URVJGQUNFSUQ9IiQoY2F0ICIke2R9Ii9iSW50ZXJmYWNlQ2xhc3MpIgotKwlJTlRFUkZBQ0VJRD0iJHtJTlRFUkZBQ0VJRH0vJChjYXQgIiR7ZH0iL2JJbnRlcmZhY2VTdWJDbGFzcykiCi0rCUlOVEVSRkFDRUlEPSIke0lOVEVSRkFDRUlEfS8kKGNhdCAiJHtkfSIvYkludGVyZmFjZVByb3RvY29sKSIKLSAKLSAJI2VjaG8gJHtkfTogJHtJTlRFUkZBQ0VJRH0KLS0JaWYgW1sgJHtJTlRFUkZBQ0V9ID09ICR7SU5URVJGQUNFSUR9IF1dOyB0aGVuCi0rCWlmIFsgIiR7SU5URVJGQUNFfSIgPSAiJHtJTlRFUkZBQ0VJRH0iIF07IHRoZW4KLSAJCSMgRm91bmQgaW50ZXJmYWNlCi0gCQlleGl0IDAKLSAJZmkKLWRpZmYgLS1naXQgYS9wYWNrYWdpbmcvbGludXgtaG90cGx1Zy9ncGhvdG8tc2V0LXByb2NwZXJtIGIvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvZ3Bob3RvLXNldC1wcm9jcGVybQotaW5kZXggZDcyZWU2OC4uOTc3Y2JmNSAxMDA2NDQKLS0tLSBhL3BhY2thZ2luZy9saW51eC1ob3RwbHVnL2dwaG90by1zZXQtcHJvY3Blcm0KLSsrKyBiL3BhY2thZ2luZy9saW51eC1ob3RwbHVnL2dwaG90by1zZXQtcHJvY3Blcm0KLUBAIC0xLDQgKzEsNCBAQAotLSMhL2Jpbi9iYXNoCi0rIyEvYmluL3NoCi0gIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLUBAIC0xOCwyMiArMTgsMjIgQEAKLSAjIFRoaXMgaXMgdGFrZW4gZnJvbSBGZWRvcmEgQ29yZSBncGhvdG8yIHBhY2thZ2UuCi0gIyBodHRwOi8vY3ZzLmZlZG9yYS5yZWRoYXQuY29tL3ZpZXdjdnMvKmNoZWNrb3V0Ki9kZXZlbC9ncGhvdG8yL2dwaG90by1zZXQtcHJvY3Blcm0KLSAKLS1jb25zb2xlX3VzZXI9YGNhdCAvdmFyL3J1bi9jb25zb2xlL2NvbnNvbGUubG9ja2AgCi0rY29uc29sZV91c2VyPSQoY2F0IC92YXIvcnVuL2NvbnNvbGUvY29uc29sZS5sb2NrKQotIAotIGlmIFsgLXogIiRjb25zb2xlX3VzZXIiIF0gOyB0aGVuCi0gICBleGl0IDEgCi0gZmkKLSAKLS1pZiBbIC16ICIkSEFMX1BST1BfVVNCX0JVU19OVU1CRVIiIC1vIC16ICIkSEFMX1BST1BfVVNCX0xJTlVYX0RFVklDRV9OVU1CRVIiIF0gOyB0aGVuCi0raWYgWyAteiAiJEhBTF9QUk9QX1VTQl9CVVNfTlVNQkVSIiBdIHx8IFsgLXogIiRIQUxfUFJPUF9VU0JfTElOVVhfREVWSUNFX05VTUJFUiIgXSA7IHRoZW4KLSAgIGV4aXQgMSAKLSBmaQotIAotLWlmIFsgJEhBTF9QUk9QX1VTQl9CVVNfTlVNQkVSIC1sdCAwIC1vICAkSEFMX1BST1BfVVNCX0xJTlVYX0RFVklDRV9OVU1CRVIgLWx0IDAgXSA7IHRoZW4KLStpZiBbICIkSEFMX1BST1BfVVNCX0JVU19OVU1CRVIiIC1sdCAwIF0gfHwgWyAiJEhBTF9QUk9QX1VTQl9MSU5VWF9ERVZJQ0VfTlVNQkVSIiAtbHQgMCBdIDsgdGhlbgotICAgZXhpdCAxIAotIGZpCi0gCi0gCi0tYnVzX251bT1gcHJpbnRmICUuM3UgJEhBTF9QUk9QX1VTQl9CVVNfTlVNQkVSYAotLWRldl9udW09YHByaW50ZiAlLjN1ICRIQUxfUFJPUF9VU0JfTElOVVhfREVWSUNFX05VTUJFUmAKLStidXNfbnVtPSQocHJpbnRmICUuM3UgIiRIQUxfUFJPUF9VU0JfQlVTX05VTUJFUiIpCi0rZGV2X251bT0kKHByaW50ZiAlLjN1ICIkSEFMX1BST1BfVVNCX0xJTlVYX0RFVklDRV9OVU1CRVIiKQotIAotLWNob3duICRjb25zb2xlX3VzZXIgL3Byb2MvYnVzL3VzYi8kYnVzX251bS8kZGV2X251bSAKLStjaG93biAiJGNvbnNvbGVfdXNlciIgL3Byb2MvYnVzL3VzYi8iJGJ1c19udW0iLyIkZGV2X251bSIKLWRpZmYgLS1naXQgYS9wYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0uY29uc29sZSBiL3BhY2thZ2luZy9saW51eC1ob3RwbHVnL3VzYmNhbS5jb25zb2xlCi1pbmRleCBkNzIxMjhmLi43YWM2ZGM1IDEwMDc1NQotLS0tIGEvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvdXNiY2FtLmNvbnNvbGUKLSsrKyBiL3BhY2thZ2luZy9saW51eC1ob3RwbHVnL3VzYmNhbS5jb25zb2xlCi1AQCAtMSw0ICsxLDQgQEAKLS0jIS9iaW4vYmFzaAotKyMhL2Jpbi9zaAotICMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi1AQCAtNTAsNyArNTAsNyBAQCB0aGVuCi0gICAgICAgICAvdmFyL2xvY2svY29uc29sZS5sb2NrCi0gICAgIGRvCi0gICAgICAgICBpZiBbIC1mICIkY29ubG9jayIgXTsgdGhlbgotLQkgICAgQ09OU09MRU9XTkVSPWBjYXQgJGNvbmxvY2tgCi0rICAgICAgICAgICAgQ09OU09MRU9XTkVSPSQoY2F0ICRjb25sb2NrKQotICAgICAgICAgZmkKLSAgICAgZG9uZQotICAgICBpZiBbIC1uICIkQ09OU09MRU9XTkVSIiBdCi1kaWZmIC0tZ2l0IGEvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvdXNiY2FtLmdyb3VwIGIvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvdXNiY2FtLmdyb3VwCi1pbmRleCBmOTZjMzNkLi44NzYxZmFjIDEwMDc1NQotLS0tIGEvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvdXNiY2FtLmdyb3VwCi0rKysgYi9wYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0uZ3JvdXAKLUBAIC0xLDQgKzEsNCBAQAotLSMhL2Jpbi9iYXNoCi0rIyEvYmluL3NoCi0gIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLWRpZmYgLS1naXQgYS9wYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0udXNlciBiL3BhY2thZ2luZy9saW51eC1ob3RwbHVnL3VzYmNhbS51c2VyCi1pbmRleCBjNDZmMTU1Li5hM2JhNzFhIDEwMDY0NAotLS0tIGEvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvdXNiY2FtLnVzZXIKLSsrKyBiL3BhY2thZ2luZy9saW51eC1ob3RwbHVnL3VzYmNhbS51c2VyCi1AQCAtMSw0ICsxLDQgQEAKLS0jIS9iaW4vYmFzaAotKyMhL2Jpbi9zaAotICMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi1kaWZmIC0tZ2l0IGEvcGFja2FnaW5nL2xpbnV4LWhvdHBsdWcvdXNiY2FtLngxMS1hcHAgYi9wYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0ueDExLWFwcAotaW5kZXggMDIzYWU5Yi4uNjE4ZTdkYiAxMDA2NDQKLS0tLSBhL3BhY2thZ2luZy9saW51eC1ob3RwbHVnL3VzYmNhbS54MTEtYXBwCi0rKysgYi9wYWNrYWdpbmcvbGludXgtaG90cGx1Zy91c2JjYW0ueDExLWFwcAotQEAgLTEsNCArMSw0IEBACi0tIyEvYmluL2Jhc2gKLSsjIS9iaW4vc2gKLSAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotQEAgLTY5LDcgKzY5LDcgQEAgdGhlbgotICAgICBpZiBbICIke1VTRVJ9IiAhPSAicm9vdCIgXQotICAgICB0aGVuCi0gCSMgd2UgZG9uJ3Qgd2FudCB0byBydW4gdGhpcyBhcyByb290LiBkZWZpbml0ZWx5IG5vdC4KLS0JY2QgIiR7RElSRUNUT1JZfSIKLSsJY2QgIiR7RElSRUNUT1JZfSIgfHwgZXhpdCAxCi0gCXVzcmhvbWU9fiR7VVNFUn0KLSAJIiR7U1V9IiAiJHtVU0VSfSIgLWMgIiR7RU5WfSBESVNQTEFZPSR7RElTUExBWX0gSE9NRT0ke3VzcmhvbWV9ICR7WDExX0FQUH0iCi0gICAgIGZpCi0tLSAKLTIuOS4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC8wMDAyLWNvcnJlY3QtanBlZy1tZW1zcmNkZXN0LXN1cHBvcnQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzItMi41LjgvMDAwMi1jb3JyZWN0LWpwZWctbWVtc3JjZGVzdC1zdXBwb3J0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZjJkODZkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC8wMDAyLWNvcnJlY3QtanBlZy1tZW1zcmNkZXN0LXN1cHBvcnQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0tLS0gbGliZ3Bob3RvMi0yLjUuOC9jYW1saWJzL2F4MjAzL2pwZWdfbWVtc3JjZGVzdC5oLm9yaWcJMjAxNi0wNi0xNSAwOTowMzoyMC42MjU3NzQ2ODQgLTA0MDAKLSsrKyBsaWJncGhvdG8yLTIuNS44L2NhbWxpYnMvYXgyMDMvanBlZ19tZW1zcmNkZXN0LmgJMjAxNi0wNi0xNSAwOTowMzo0Ny4wNDk3NzQxNDggLTA0MDAKLUBAIC0xLDUgKzEsNyBAQAotICNpbmNsdWRlIDxqcGVnbGliLmg+Ci0gCi0rI2lmIEpQRUdfTElCX1ZFUlNJT04gPCA4MCAmJiAhZGVmaW5lZChNRU1fU1JDRFNUX1NVUFBPUlRFRCkKLSsKLSB2b2lkCi0ganBlZ19tZW1fc3JjIChqX2RlY29tcHJlc3NfcHRyIGNpbmZvLCB1bnNpZ25lZCBjaGFyICogYnVmZmVyLAotIAl1bnNpZ25lZCBsb25nIGJ1ZnNpemUpOwotQEAgLTcsMyArOSw1IEBACi0gdm9pZAotIGpwZWdfbWVtX2Rlc3QgKGpfY29tcHJlc3NfcHRyIGNpbmZvLCB1bnNpZ25lZCBjaGFyICoqIG91dGJ1ZmZlciwKLSAJdW5zaWduZWQgbG9uZyAqIG91dHNpemUpOwotKwotKyNlbmRpZgotLS0tIGxpYmdwaG90bzItMi41LjgvY2FtbGlicy9heDIwMy9qcGVnX21lbXNyY2Rlc3QuYy5vcmlnCTIwMTYtMDYtMTUgMDk6MDM6NTguNjg5NzczOTEzIC0wNDAwCi0rKysgbGliZ3Bob3RvMi0yLjUuOC9jYW1saWJzL2F4MjAzL2pwZWdfbWVtc3JjZGVzdC5jCTIwMTYtMDYtMTUgMDk6MDQ6MTcuNzY5NzczNTI2IC0wNDAwCi1AQCAtMjYsNyArMjYsNyBAQAotIAotIC8qIGxpYmpwZWc4IGFuZCBsYXRlciBjb21lIHdpdGggdGhlaXIgb3duIChBUEkgY29tcGF0aWJsZSkgbWVtb3J5IHNvdXJjZQotICAgIGFuZCBkZXN0ICovCi0tI2lmIEpQRUdfTElCX1ZFUlNJT04gPCA4MAotKyNpZiBKUEVHX0xJQl9WRVJTSU9OIDwgODAgICYmICFkZWZpbmVkKE1FTV9TUkNEU1RfU1VQUE9SVEVEKQotIAotIC8qIEV4cGFuZGVkIGRhdGEgc291cmNlIG9iamVjdCBmb3IgbWVtb3J5IGlucHV0ICovCi0gCi0tLS0gbGliZ3Bob3RvMi0yLjUuOC9jYW1saWJzL2psMjAwNWMvanBlZ19tZW1zcmNkZXN0Lmgub3JpZwkyMDE2LTA2LTE1IDA5OjA1OjAxLjg5Mzc3MjYzMiAtMDQwMAotKysrIGxpYmdwaG90bzItMi41LjgvY2FtbGlicy9qbDIwMDVjL2pwZWdfbWVtc3JjZGVzdC5oCTIwMTYtMDYtMTUgMDk6MDU6MTcuNDMzNzcyMzE4IC0wNDAwCi1AQCAtMSw1ICsxLDcgQEAKLSAjaW5jbHVkZSA8anBlZ2xpYi5oPgotIAotKyNpZiBKUEVHX0xJQl9WRVJTSU9OIDwgODAgJiYgIWRlZmluZWQoTUVNX1NSQ0RTVF9TVVBQT1JURUQpCi0rCi0gdm9pZAotIGpwZWdfbWVtX3NyYyAoal9kZWNvbXByZXNzX3B0ciBjaW5mbywgdW5zaWduZWQgY2hhciAqIGJ1ZmZlciwKLSAJdW5zaWduZWQgbG9uZyBidWZzaXplKTsKLUBAIC03LDMgKzksNSBAQAotIHZvaWQKLSBqcGVnX21lbV9kZXN0IChqX2NvbXByZXNzX3B0ciBjaW5mbywgdW5zaWduZWQgY2hhciAqKiBvdXRidWZmZXIsCi0gCXVuc2lnbmVkIGxvbmcgKiBvdXRzaXplKTsKLSsKLSsjZW5kaWYKLS0tLSBsaWJncGhvdG8yLTIuNS44L2NhbWxpYnMvamwyMDA1Yy9qcGVnX21lbXNyY2Rlc3QuYy5vcmlnCTIwMTYtMDYtMTUgMDk6MDQ6NDIuNjQxNzczMDIyIC0wNDAwCi0rKysgbGliZ3Bob3RvMi0yLjUuOC9jYW1saWJzL2psMjAwNWMvanBlZ19tZW1zcmNkZXN0LmMJMjAxNi0wNi0xNSAwOTowNDo0OC42NTc3NzI5MDEgLTA0MDAKLUBAIC0yNiw3ICsyNiw3IEBACi0gCi0gLyogbGlianBlZzggYW5kIGxhdGVyIGNvbWUgd2l0aCB0aGVpciBvd24gKEFQSSBjb21wYXRpYmxlKSBtZW1vcnkgc291cmNlCi0gICAgYW5kIGRlc3QgKi8KLS0jaWYgSlBFR19MSUJfVkVSU0lPTiA8IDgwCi0rI2lmIEpQRUdfTElCX1ZFUlNJT04gPCA4MCAgJiYgIWRlZmluZWQoTUVNX1NSQ0RTVF9TVVBQT1JURUQpCi0gCi0gLyogRXhwYW5kZWQgZGF0YSBzb3VyY2Ugb2JqZWN0IGZvciBtZW1vcnkgaW5wdXQgKi8KLSAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC9hdm9pZF91c2luZ19zcHJpbnRmLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yLTIuNS44L2F2b2lkX3VzaW5nX3NwcmludGYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiYTRjNjkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yLTIuNS44L2F2b2lkX3VzaW5nX3NwcmludGYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMgKzAsMCBAQAotRnJvbSA0YWRmZTVhNmM5ZGIwNzUzN2RmMzAyZjNjMTc3MTM1MTViZjIzYTJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+Ci1EYXRlOiBTYXQsIDExIEp1bCAyMDE1IDA5OjM4OjEzICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIGF2b2lkIHVzZSBvZiBzcHJpbnRmIHRvIGNvbnZlcnQgJSUgdG8gJSwgZHVwbGljYXRlIHRoZSBtYWNybwotCi1naXQtc3ZuLWlkOiBodHRwczovL3N2bi5jb2RlLnNmLm5ldC9wL2dwaG90by9jb2RlL3RydW5rL2xpYmdwaG90bzJAMTU0OTAgNjdlZDc3NzgtNzM4OC00NGFiLTkwY2YtMGEyOTFmNjVmNTdjCi0tLS0KLSBjYW1saWJzL3B0cDIvY2hkay5jICAgICB8ICA4ICsrLS0tCi0gY2FtbGlicy9wdHAyL2NoZGtfcHRwLmggfCA4MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY2FtbGlicy9wdHAyL2NoZGsuYyBiL2NhbWxpYnMvcHRwMi9jaGRrLmMKLWluZGV4IDVmYjg0ZWEuLjNiOGE5OTUgMTAwNjQ0Ci0tLS0gYS9jYW1saWJzL3B0cDIvY2hkay5jCi0rKysgYi9jYW1saWJzL3B0cDIvY2hkay5jCi1AQCAtMTExOSwxOCArMTExOSwxNCBAQCBjaGRrX2NhbWVyYV9jYXB0dXJlIChDYW1lcmEgKmNhbWVyYSwgQ2FtZXJhQ2FwdHVyZVR5cGUgdHlwZSwgQ2FtZXJhRmlsZVBhdGggKnBhdAotIAlpbnQJCXJldCwgcmV0aW50OwotIAljaGFyCQkqdGFibGUsICpzOwotIAlQVFBQYXJhbXMJKnBhcmFtcyA9ICZjYW1lcmEtPnBsLT5wYXJhbXM7Ci0tCWNoYXIJCSpsdWE7Ci0tCWNvbnN0IGNoYXIJKmx1YXNjcmlwdCA9CVBUUF9DSERLX0xVQV9TRVJJQUxJWkVfTVNHUyBcCi0rCWNvbnN0IGNoYXIJKmx1YXNjcmlwdCA9IFBUUF9DSERLX0xVQV9TRVJJQUxJWkVfTVNHU19TSU1QTEVRVU9URSBcCi0gCQkJCVBUUF9DSERLX0xVQV9STElCX1NIT09UCVwKLSAJCQkJInJldHVybiBybGliX3Nob290KHtpbmZvPXRydWV9KTtcbiI7Ci0gCi0gCXJldCA9ICBjYW1lcmFfcHJlcGFyZV9jaGRrX2NhcHR1cmUoY2FtZXJhLCBjb250ZXh0KTsKLSAJaWYgKHJldCAhPSBHUF9PSykgcmV0dXJuIHJldDsKLSAKLS0JbHVhID0gbWFsbG9jKHN0cmxlbihsdWFzY3JpcHQpKzEpOwotLQlzcHJpbnRmKGx1YSxsdWFzY3JpcHQpOyAvKiBUaGlzIGV4cGFuZHMgdGhlICVxIGluc2lkZSB0aGUgc3RyaW5nIHRvbyAuLi4gZG8gbm90IG9wdGltaXplIGF3YXkuICovCi0tCXJldCA9IGNoZGtfZ2VuZXJpY19zY3JpcHRfcnVuIChwYXJhbXMsIGx1YSwgJnRhYmxlLCAmcmV0aW50LCBjb250ZXh0KTsKLS0JZnJlZSAobHVhKTsKLSsJcmV0ID0gY2hka19nZW5lcmljX3NjcmlwdF9ydW4gKHBhcmFtcywgbHVhc2NyaXB0LCAmdGFibGUsICZyZXRpbnQsIGNvbnRleHQpOwotIAlHUF9MT0dfRCgicmxpYl9zaG9vdCByZXR1cm5lZCB0YWJsZSAlcywgcmV0aW50ICVkXG4iLCB0YWJsZSwgcmV0aW50KTsKLSAJcyA9IHN0cnN0cih0YWJsZSwgImV4cD0iKTsKLSAJaWYgKHMpIHsKLWRpZmYgLS1naXQgYS9jYW1saWJzL3B0cDIvY2hka19wdHAuaCBiL2NhbWxpYnMvcHRwMi9jaGRrX3B0cC5oCi1pbmRleCBkMTFlMGI3Li42NWRjZmQ3IDEwMDY0NAotLS0tIGEvY2FtbGlicy9wdHAyL2NoZGtfcHRwLmgKLSsrKyBiL2NhbWxpYnMvcHRwMi9jaGRrX3B0cC5oCi1AQCAtMTk4LDEwICsxOTgsOTIgQEAgZnVuY3Rpb24gc2VyaWFsaXplKHYsb3B0cylcblwKLSAJcmV0dXJuIHRhYmxlLmNvbmNhdChyKVxuXAotIGVuZFxuIgotIAotKyNkZWZpbmUgUFRQX0NIREtfTFVBX1NFUklBTElaRV9TSU1QTEVRVU9URSAiXG5cCi0rc2VyaWFsaXplX3IgPSBmdW5jdGlvbih2LG9wdHMscixzZWVuLGRlcHRoKVxuXAotKwlsb2NhbCB2dCA9IHR5cGUodilcblwKLSsJaWYgdnQgPT0gJ25pbCcgb3IgIHZ0ID09ICdib29sZWFuJyBvciB2dCA9PSAnbnVtYmVyJyB0aGVuXG5cCi0rCQl0YWJsZS5pbnNlcnQocix0b3N0cmluZyh2KSlcblwKLSsJCXJldHVyblxuXAotKwllbmRcblwKLSsJaWYgdnQgPT0gJ3N0cmluZycgdGhlblxuXAotKwkJdGFibGUuaW5zZXJ0KHIsc3RyaW5nLmZvcm1hdCgnJXEnLHYpKVxuXAotKwkJcmV0dXJuXG5cCi0rCWVuZFxuXAotKwlpZiB2dCA9PSAndGFibGUnIHRoZW5cblwKLSsJCWlmIG5vdCBkZXB0aCB0aGVuXG5cCi0rCQkJZGVwdGggPSAxXG5cCi0rCQllbmRcblwKLSsJCWlmIGRlcHRoID49IG9wdHMubWF4ZGVwdGggdGhlblxuXAotKwkJCWVycm9yKCdzZXJpYWxpemU6IG1heCBkZXB0aCcpXG5cCi0rCQllbmRcblwKLSsJCWlmIG5vdCBzZWVuIHRoZW5cblwKLSsJCQlzZWVuPXt9XG5cCi0rCQllbHNlaWYgc2Vlblt2XSB0aGVuXG5cCi0rCQkJaWYgb3B0cy5lcnJfY3ljbGUgdGhlblxuXAotKwkJCQllcnJvcignc2VyaWFsaXplOiBjeWNsZScpXG5cCi0rCQkJZWxzZVxuXAotKwkJCQl0YWJsZS5pbnNlcnQociwnXCJjeWNsZTonLi50b3N0cmluZyh2KS4uJ1wiJylcblwKLSsJCQkJcmV0dXJuXG5cCi0rCQkJZW5kXG5cCi0rCQllbmRcblwKLSsJCXNlZW5bdl0gPSB0cnVlO1xuXAotKwkJdGFibGUuaW5zZXJ0KHIsJ3snKVxuXAotKwkJZm9yIGssdjEgaW4gcGFpcnModikgZG9cblwKLSsJCQlpZiBvcHRzLnByZXR0eSB0aGVuXG5cCi0rCQkJCXRhYmxlLmluc2VydChyLCdcXG4nLi5zdHJpbmcucmVwKCcgJyxkZXB0aCkpXG5cCi0rCQkJZW5kXG5cCi0rCQkJaWYgdHlwZShrKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLm1hdGNoKGssJ15bXyVhXVslYSVkX10qJCcpIHRoZW5cblwKLSsJCQkJdGFibGUuaW5zZXJ0KHIsaylcblwKLSsJCQllbHNlXG5cCi0rCQkJCXRhYmxlLmluc2VydChyLCdbJylcblwKLSsJCQkJc2VyaWFsaXplX3IoayxvcHRzLHIsc2VlbixkZXB0aCsxKVxuXAotKwkJCQl0YWJsZS5pbnNlcnQociwnXScpXG5cCi0rCQkJZW5kXG5cCi0rCQkJdGFibGUuaW5zZXJ0KHIsJz0nKVxuXAotKwkJCXNlcmlhbGl6ZV9yKHYxLG9wdHMscixzZWVuLGRlcHRoKzEpXG5cCi0rCQkJdGFibGUuaW5zZXJ0KHIsJywnKVxuXAotKwkJZW5kXG5cCi0rCQlpZiBvcHRzLnByZXR0eSB0aGVuXG5cCi0rCQkJdGFibGUuaW5zZXJ0KHIsJ1xcbicuLnN0cmluZy5yZXAoJyAnLGRlcHRoLTEpKVxuXAotKwkJZW5kXG5cCi0rCQl0YWJsZS5pbnNlcnQociwnfScpXG5cCi0rCQlyZXR1cm5cblwKLSsJZW5kXG5cCi0rCWlmIG9wdHMuZXJyX3R5cGUgdGhlblxuXAotKwkJZXJyb3IoJ3NlcmlhbGl6ZTogdW5zdXBwb3J0ZWQgdHlwZSAnIC4uIHZ0LCAyKVxuXAotKwllbHNlXG5cCi0rCQl0YWJsZS5pbnNlcnQociwnXCInLi50b3N0cmluZyh2KS4uJ1wiJylcblwKLSsJZW5kXG5cCi0rZW5kXG5cCi0rc2VyaWFsaXplX2RlZmF1bHRzID0ge1xuXAotKwltYXhkZXB0aD0xMCxcblwKLSsJZXJyX3R5cGU9dHJ1ZSxcblwKLSsJZXJyX2N5Y2xlPXRydWUsXG5cCi0rCXByZXR0eT1mYWxzZSxcblwKLSt9XG5cCi0rZnVuY3Rpb24gc2VyaWFsaXplKHYsb3B0cylcblwKLSsJaWYgb3B0cyB0aGVuXG5cCi0rCQlmb3Igayx2IGluIHBhaXJzKHNlcmlhbGl6ZV9kZWZhdWx0cykgZG9cblwKLSsJCQlpZiBub3Qgb3B0c1trXSB0aGVuXG5cCi0rCQkJCW9wdHNba109dlxuXAotKwkJCWVuZFxuXAotKwkJZW5kXG5cCi0rCWVsc2VcblwKLSsJCW9wdHM9c2VyaWFsaXplX2RlZmF1bHRzXG5cCi0rCWVuZFxuXAotKwlsb2NhbCByPXt9XG5cCi0rCXNlcmlhbGl6ZV9yKHYsb3B0cyxyKVxuXAotKwlyZXR1cm4gdGFibGUuY29uY2F0KHIpXG5cCi0rZW5kXG4iCi0rCi0gI2RlZmluZSBQVFBfQ0hES19MVUFfU0VSSUFMSVpFX01TR1MgXAotIFBUUF9DSERLX0xVQV9TRVJJQUxJWkVcCi0gInVzYl9tc2dfdGFibGVfdG9fc3RyaW5nPXNlcmlhbGl6ZVxuIgotIAotKyNkZWZpbmUgUFRQX0NIREtfTFVBX1NFUklBTElaRV9NU0dTX1NJTVBMRVFVT1RFIFwKLStQVFBfQ0hES19MVUFfU0VSSUFMSVpFX1NJTVBMRVFVT1RFXAotKyJ1c2JfbXNnX3RhYmxlX3RvX3N0cmluZz1zZXJpYWxpemVcbiIKLSsKLSAjZGVmaW5lIFBUUF9DSERLX0xVQV9FWFRFTkRfVEFCTEUgXAotICJmdW5jdGlvbiBleHRlbmRfdGFibGUodGFyZ2V0LHNvdXJjZSxkZWVwKVxuXAotIAlpZiB0eXBlKHRhcmdldCkgfj0gJ3RhYmxlJyB0aGVuXG5cCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzItMi41LjgvMDAwMS1jb25maWd1cmUuYWMtcmVtb3ZlLUFNX1BPX1NVQkRJUlMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzIvMDAwMS1jb25maWd1cmUuYWMtcmVtb3ZlLUFNX1BPX1NVQkRJUlMucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC8wMDAxLWNvbmZpZ3VyZS5hYy1yZW1vdmUtQU1fUE9fU1VCRElSUy5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yLzAwMDEtY29uZmlndXJlLmFjLXJlbW92ZS1BTV9QT19TVUJESVJTLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzItMi41LjgvMTAtY2FtZXJhLWxpYmdwaG90bzItZGV2aWNlLmZkaSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi8xMC1jYW1lcmEtbGliZ3Bob3RvMi1kZXZpY2UuZmRpCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzItMi41LjgvMTAtY2FtZXJhLWxpYmdwaG90bzItZGV2aWNlLmZkaQpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yLzEwLWNhbWVyYS1saWJncGhvdG8yLWRldmljZS5mZGkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi0yLjUuOC8xMC1jYW1lcmEtbGliZ3Bob3RvMi5mZGkgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzIvMTAtY2FtZXJhLWxpYmdwaG90bzIuZmRpCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzItMi41LjgvMTAtY2FtZXJhLWxpYmdwaG90bzIuZmRpCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzIvMTAtY2FtZXJhLWxpYmdwaG90bzIuZmRpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzItMi41LjgvNDAtbGliZ3Bob3RvMi5ydWxlcyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMi80MC1saWJncGhvdG8yLnJ1bGVzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzItMi41LjgvNDAtbGliZ3Bob3RvMi5ydWxlcwpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yLzQwLWxpYmdwaG90bzIucnVsZXMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMl8yLjUuMTYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzJfMi41LjE2LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhNjkxYzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ncGhvdG8yL2xpYmdwaG90bzJfMi41LjE2LmJiCkBAIC0wLDAgKzEsNTQgQEAKK1NVTU1BUlkgPSAibGliZ3Bob3RvMiBhbGxvd3MgeW91IHRvIGFjY2VzcyBkaWdpdGFsIGNhbWVyYXMiCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkxHUEx2Mi4xIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MDQ0OGQzNjc2YmMwZGUwMDQwNmFmMjI3ZDM0MWE0ZDEiCisKK0RFUEVORFMgPSAibGlidG9vbCBqcGVnIHZpcnR1YWwvbGlidXNiMCBsaWJleGlmIHpsaWIgbGlieG1sMiIKKworIyBUaGUgLmZkaSBhbmQgLnJ1bGVzIGZpbGVzIHdlcmUgZ2VuZXJhdGVkIHdpdGg6CisjICBsaWJncGhvdG8yLTIuNS44L3BhY2thZ2luZy9nZW5lcmljJCBxZW11LWFybSAtcyAxMDQ4NTc2IC1yIDIuNi4yNCAtTCAvT0UvYW5nc3Ryb20tZGV2L3N0YWdpbmcvYXJtdjV0ZS1hbmdzdHJvbS1saW51eC1nbnVlYWJpLyAubGlicy9wcmludC1jYW1lcmEtbGlzdAorIyBUaGV5IGFyZSByZWxlYXNlIHNwZWNpZmljLCBzbyBwbGVhc2UgcmVnZW4gd2hlbiBhZGRpbmcgbmV3IHJlbGVhc2VzCisKK1NSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L2dwaG90by9saWJncGhvdG8yLSR7UFZ9LnRhci5iejI7bmFtZT1saWJncGhvdG8yIFwKKyAgICAgICAgICAgZmlsZTovLzEwLWNhbWVyYS1saWJncGhvdG8yLWRldmljZS5mZGkgXAorICAgICAgICAgICBmaWxlOi8vMTAtY2FtZXJhLWxpYmdwaG90bzIuZmRpIFwKKyAgICAgICAgICAgZmlsZTovLzQwLWxpYmdwaG90bzIucnVsZXMgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1jb25maWd1cmUuYWMtcmVtb3ZlLUFNX1BPX1NVQkRJUlMucGF0Y2ggXAorIgorCitTUkNfVVJJW2xpYmdwaG90bzIubWQ1c3VtXSA9ICIwODRkMjIwZDA3OGQyOGMwYzdhM2JhMTNmNDQ3NjEyOCIKK1NSQ19VUklbbGliZ3Bob3RvMi5zaGEyNTZzdW1dID0gImU3NTc0MTZkMTYyM2UwMWE5ZDBkMjk0YjJlNzkwMTYyZTQzNGMwOTY0ZjUwZDNiN2ZmMWEzNDI0YjYyYTI5MDYiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnZXR0ZXh0IGxpYl9wYWNrYWdlCisKK0VYVFJBX09FQ09ORiA9ICIgLS13aXRoLWRyaXZlcnM9YWxsIHVkZXZzY3JpcHRkaXI9JHtub25hcmNoX2Jhc2VfbGliZGlyfS91ZGV2IGFjX2N2X2xpYl9sdGRsX2x0X2RsY2FsbGVyX3JlZ2lzdGVyPXllcyIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiIKK1BBQ0tBR0VDT05GSUdbZ2RdID0gIiwtLXdpdGhvdXQtZ2RsaWIsZ2QiCitQQUNLQUdFQ09ORklHW3NlcmlhbF0gPSAiLS1lbmFibGUtc2VyaWFsLC0tZGlzYWJsZS1zZXJpYWwsbG9ja2RldiIKKworZG9fY29uZmlndXJlX2FwcGVuZCgpIHsKKyAgICBjcCAke1NUQUdJTkdfREFUQURJUl9OQVRJVkV9L2dldHRleHQvcG8vTWFrZWZpbGUuaW4uaW4gJHtTfS9saWJncGhvdG8yX3BvcnQvcG8vCisgICAgY2QgJHtTfS9saWJncGhvdG8yX3BvcnQvCisgICAgYXV0b3JlY29uZiAtV2Nyb3NzIC0tdmVyYm9zZSAtLWluc3RhbGwgLS1mb3JjZSAke0VYVFJBX0FVVE9SRUNPTkZ9ICRhY3BhdGhzCisgICAgY2QgJHtTfQorfQorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0ke2RhdGFkaXJ9L2hhbC9mZGkvaW5mb3JtYXRpb24vMjB0aGlyZHBhcnR5CisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vKi5mZGkgJHtEfSR7ZGF0YWRpcn0vaGFsL2ZkaS9pbmZvcm1hdGlvbi8yMHRoaXJkcGFydHkvCisKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3VkZXYvcnVsZXMuZC8KKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS8qLnJ1bGVzICR7RH0ke3N5c2NvbmZkaXJ9L3VkZXYvcnVsZXMuZC8KK30KKworUEFDS0FHRVMgPSsgImxpYmdwaG90b3BvcnQgbGliZ3Bob3RvMi1jYW1saWJzIgorRklMRVNfbGliZ3Bob3RvMi1jYW1saWJzID0gIiR7bGliZGlyfS9saWJncGhvdG8yKi8qLyouc28qIgorUlJFQ09NTUVORFNfJHtQTn0gPSAibGliZ3Bob3RvMi1jYW1saWJzIgorCitGSUxFU19saWJncGhvdG9wb3J0ID0gIiR7bGliZGlyfS9saWJncGhvdG8yX3BvcnQuc28uKiIKKworRklMRVNfJHtQTn0gKz0gIiR7bm9uYXJjaF9iYXNlX2xpYmRpcn0vdWRldi8qICR7ZGF0YWRpcn0vaGFsIgorRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vKi8qLy5kZWJ1ZyIKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9LyovKi8qLmxhIgorRklMRVNfJHtQTn0tZG9jICs9ICIke2RhdGFkaXJ9L2xpYmdwaG90bzJfcG9ydC8wLjEyLjAvdmNhbWVyYS9SRUFETUUudHh0IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yXzIuNS44LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvZ3Bob3RvMi9saWJncGhvdG8yXzIuNS44LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDM0YWY5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2dwaG90bzIvbGliZ3Bob3RvMl8yLjUuOC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLVNVTU1BUlkgPSAibGliZ3Bob3RvMiBhbGxvd3MgeW91IHRvIGFjY2VzcyBkaWdpdGFsIGNhbWVyYXMiCi1TRUNUSU9OID0gImxpYnMiCi1MSUNFTlNFID0gIkxHUEx2Mi4xIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MDQ0OGQzNjc2YmMwZGUwMDQwNmFmMjI3ZDM0MWE0ZDEiCi0KLURFUEVORFMgPSAibGlidG9vbCBqcGVnIHZpcnR1YWwvbGlidXNiMCBsaWJleGlmIHpsaWIgbGlieG1sMiIKLQotIyBUaGUgLmZkaSBhbmQgLnJ1bGVzIGZpbGVzIHdlcmUgZ2VuZXJhdGVkIHdpdGg6Ci0jICBsaWJncGhvdG8yLTIuNS44L3BhY2thZ2luZy9nZW5lcmljJCBxZW11LWFybSAtcyAxMDQ4NTc2IC1yIDIuNi4yNCAtTCAvT0UvYW5nc3Ryb20tZGV2L3N0YWdpbmcvYXJtdjV0ZS1hbmdzdHJvbS1saW51eC1nbnVlYWJpLyAubGlicy9wcmludC1jYW1lcmEtbGlzdAotIyBUaGV5IGFyZSByZWxlYXNlIHNwZWNpZmljLCBzbyBwbGVhc2UgcmVnZW4gd2hlbiBhZGRpbmcgbmV3IHJlbGVhc2VzCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L2dwaG90by9saWJncGhvdG8yLSR7UFZ9LnRhci5iejI7bmFtZT1saWJncGhvdG8yIFwKLSAgICAgICAgICAgZmlsZTovLzEwLWNhbWVyYS1saWJncGhvdG8yLWRldmljZS5mZGkgXAotICAgICAgICAgICBmaWxlOi8vMTAtY2FtZXJhLWxpYmdwaG90bzIuZmRpIFwKLSAgICAgICAgICAgZmlsZTovLzQwLWxpYmdwaG90bzIucnVsZXMgXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1jb25maWd1cmUuYWMtcmVtb3ZlLUFNX1BPX1NVQkRJUlMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi1jb3JyZWN0LWpwZWctbWVtc3JjZGVzdC1zdXBwb3J0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2F2b2lkX3VzaW5nX3NwcmludGYucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1zY3JpcHRzLXJlbW92ZS1iYXNoaXNtcy5wYXRjaCBcCi0iCi0KLVNSQ19VUklbbGliZ3Bob3RvMi5tZDVzdW1dID0gIjg3M2FiMDFhY2VkNDljNmI5MmE5OGU1MTVkYjVkY2VmIgotU1JDX1VSSVtsaWJncGhvdG8yLnNoYTI1NnN1bV0gPSAiMDMxYTI2MmUzNDJmYWU0M2Y3MjRhZmU2Njc4Nzk0N2NlMWZiNDgzMjc3ZGZlNWE4Y2YxZmJlOTJjNThlMjdiNiIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdldHRleHQgbGliX3BhY2thZ2UKLQotRVhUUkFfT0VDT05GID0gIiAtLXdpdGgtZHJpdmVycz1hbGwgdWRldnNjcmlwdGRpcj0ke25vbmFyY2hfYmFzZV9saWJkaXJ9L3VkZXYgYWNfY3ZfbGliX2x0ZGxfbHRfZGxjYWxsZXJfcmVnaXN0ZXI9eWVzIgotCi1QQUNLQUdFQ09ORklHID8/PSAiIgotUEFDS0FHRUNPTkZJR1tnZF0gPSAiLC0td2l0aG91dC1nZGxpYixnZCIKLVBBQ0tBR0VDT05GSUdbc2VyaWFsXSA9ICItLWVuYWJsZS1zZXJpYWwsLS1kaXNhYmxlLXNlcmlhbCxsb2NrZGV2IgotCi1kb19jb25maWd1cmVfYXBwZW5kKCkgewotICAgIGNwICR7U1RBR0lOR19EQVRBRElSX05BVElWRX0vZ2V0dGV4dC9wby9NYWtlZmlsZS5pbi5pbiAke1N9L2xpYmdwaG90bzJfcG9ydC9wby8KLSAgICBjZCAke1N9L2xpYmdwaG90bzJfcG9ydC8KLSAgICBhdXRvcmVjb25mIC1XY3Jvc3MgLS12ZXJib3NlIC0taW5zdGFsbCAtLWZvcmNlICR7RVhUUkFfQVVUT1JFQ09ORn0gJGFjcGF0aHMKLSAgICBjZCAke1N9Ci19Ci0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vaGFsL2ZkaS9pbmZvcm1hdGlvbi8yMHRoaXJkcGFydHkKLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS8qLmZkaSAke0R9JHtkYXRhZGlyfS9oYWwvZmRpL2luZm9ybWF0aW9uLzIwdGhpcmRwYXJ0eS8KLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdWRldi9ydWxlcy5kLwotICAgIGluc3RhbGwgLW0gMDc1NSAke1dPUktESVJ9LyoucnVsZXMgJHtEfSR7c3lzY29uZmRpcn0vdWRldi9ydWxlcy5kLwotfQotCi1QQUNLQUdFUyA9KyAibGliZ3Bob3RvcG9ydCBsaWJncGhvdG8yLWNhbWxpYnMiCi1GSUxFU19saWJncGhvdG8yLWNhbWxpYnMgPSAiJHtsaWJkaXJ9L2xpYmdwaG90bzIqLyovKi5zbyoiCi1SUkVDT01NRU5EU18ke1BOfSA9ICJsaWJncGhvdG8yLWNhbWxpYnMiCi0KLUZJTEVTX2xpYmdwaG90b3BvcnQgPSAiJHtsaWJkaXJ9L2xpYmdwaG90bzJfcG9ydC5zby4qIgotCi1GSUxFU18ke1BOfSArPSAiJHtub25hcmNoX2Jhc2VfbGliZGlyfS91ZGV2LyogJHtkYXRhZGlyfS9oYWwiCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS8qLyovLmRlYnVnIgotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vKi8qLyoubGEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9ndGtwZXJmL2d0a3BlcmZfMC40MC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2d0a3BlcmYvZ3RrcGVyZl8wLjQwLmJiCmluZGV4IDJkYjkxOTAuLjQwOTQ1MTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2d0a3BlcmYvZ3RrcGVyZl8wLjQwLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2d0a3BlcmYvZ3RrcGVyZl8wLjQwLmJiCkBAIC0xNiw3ICsxNiw5IEBACiAKIFMgPSAiJHtXT1JLRElSfS8ke0JQTn0iCiAKLWluaGVyaXQgYXV0b3Rvb2xzIGJpbmNvbmZpZyBwa2djb25maWcgZ2V0dGV4dAoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIGJpbmNvbmZpZyBwa2djb25maWcgZ2V0dGV4dAorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBkb19jb25maWd1cmVfcHJlcGVuZCAoKSB7CiAgICAgcm0gLWYgJHtTfS9tNC9pbml0Lm00CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ2bmNzZXJ2ZXIvbGlidm5jc2VydmVyXzAuOS4xMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnZuY3NlcnZlci9saWJ2bmNzZXJ2ZXJfMC45LjExLmJiCmluZGV4IDQ1N2Q3MjEuLjM4ZGFjMDYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnZuY3NlcnZlci9saWJ2bmNzZXJ2ZXJfMC45LjExLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnZuY3NlcnZlci9saWJ2bmNzZXJ2ZXJfMC45LjExLmJiCkBAIC0xMiw3ICsxMiw5IEBACiAKIFJERVBFTkRTXyR7UE59ICs9ICJsaWJwbmcgZ3RrKyBsaWJnY3J5cHQiCiAKLWluaGVyaXQgYXV0b3Rvb2xzIGJpbmNvbmZpZyBwa2djb25maWcKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBiaW5jb25maWcgcGtnY29uZmlnCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIFNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL0xpYlZOQy9saWJ2bmNzZXJ2ZXIvYXJjaGl2ZS9MaWJWTkNTZXJ2ZXItJHtQVn0udGFyLmd6IgogU1JDX1VSSVttZDVzdW1dID0gIjdmMDYxMDRkNWMwMDk4MTNlOTUxNDI5MzJjNGRkYjA2IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvbGlieXVpL2xpYnl1aS1uY3Vyc2VzLzAwMDEtRml4LXRoZS1lcnJvci1vZi1jYW4tdC1maW5kLWhlYWRlci1maWxlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvbGlieXVpL2xpYnl1aS1uY3Vyc2VzLzAwMDEtRml4LXRoZS1lcnJvci1vZi1jYW4tdC1maW5kLWhlYWRlci1maWxlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0NWYzY2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLW5jdXJzZXMvMDAwMS1GaXgtdGhlLWVycm9yLW9mLWNhbi10LWZpbmQtaGVhZGVyLWZpbGUucGF0Y2gKQEAgLTAsMCArMSwxMDEgQEAKK0Zyb20gZWIwMDg2ZGM0ZWE4ZmU5Y2RhMDY5NDU2Mjg3YjNhMjlhMjYzMWQzMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFpoZW5nIFJ1b3FpbiA8emhlbmdycS5mbnN0QGNuLmZ1aml0c3UuY29tPgorRGF0ZTogV2VkLCAxMyBEZWMgMjAxNyAxNjoxODo0NSArMDkwMAorU3ViamVjdDogW1BBVENIXSBGaXggdGhlIGVycm9yIG9mIGNhbid0IGZpbmQgaGVhZGVyIGZpbGUKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KK1RoaXMgZml4IGlzIGp1c3QgZm9yIHlvY3RvLgorCitTaWduZWQtb2ZmLWJ5OiBaaGVuZyBSdW9xaW4gPHpoZW5ncnEuZm5zdEBjbi5mdWppdHN1LmNvbT4KKy0tLQorIHNyYy9OQ0FwcGxpY2F0aW9uLmNjIHwgMiArLQorIHNyYy9OQ3N0eWxlLmggICAgICAgIHwgMiArLQorIHNyYy9OQ3Vyc2VzLmggICAgICAgIHwgMiArLQorIHNyYy9uY3Vyc2VzcC5oICAgICAgIHwgMiArLQorIHNyYy9uY3Vyc2Vzdy5jYyAgICAgIHwgMiArLQorIHNyYy9uY3Vyc2Vzdy5oICAgICAgIHwgNCArKy0tCisgNiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvTkNBcHBsaWNhdGlvbi5jYyBiL3NyYy9OQ0FwcGxpY2F0aW9uLmNjCitpbmRleCA1YmNmOTY5Li41MTBmMDM0IDEwMDY0NAorLS0tIGEvc3JjL05DQXBwbGljYXRpb24uY2MKKysrKyBiL3NyYy9OQ0FwcGxpY2F0aW9uLmNjCitAQCAtMjMsNyArMjMsNyBAQAorIAorIC8tKi8KKyAKKy0jaW5jbHVkZSA8bmN1cnNlc3cvY3Vyc2VzLmg+CisrI2luY2x1ZGUgPGN1cnNlcy5oPgorIAorICNkZWZpbmUgIFlVSUxvZ0NvbXBvbmVudCAibmN1cnNlcyIKKyAjaW5jbHVkZSA8eXVpL1lVSUxvZy5oPgorZGlmZiAtLWdpdCBhL3NyYy9OQ3N0eWxlLmggYi9zcmMvTkNzdHlsZS5oCitpbmRleCBhNDBkNWE4Li4zNjU3OTE3IDEwMDY0NAorLS0tIGEvc3JjL05Dc3R5bGUuaAorKysrIGIvc3JjL05Dc3R5bGUuaAorQEAgLTI1LDcgKzI1LDcgQEAKKyAjaWZuZGVmIE5Dc3R5bGVfaAorICNkZWZpbmUgTkNzdHlsZV9oCisgCistI2luY2x1ZGUgPG5jdXJzZXN3L25jdXJzZXMuaD4KKysjaW5jbHVkZSA8bmN1cnNlcy5oPgorIAorICNpbmNsdWRlIDxpb3Nmd2Q+CisgI2luY2x1ZGUgPHN0cmluZz4KK2RpZmYgLS1naXQgYS9zcmMvTkN1cnNlcy5oIGIvc3JjL05DdXJzZXMuaAoraW5kZXggYTA3YzZiZi4uZDE3ZDNjMyAxMDA2NDQKKy0tLSBhL3NyYy9OQ3Vyc2VzLmgKKysrKyBiL3NyYy9OQ3Vyc2VzLmgKK0BAIC0zNCw3ICszNCw3IEBACisgI2luY2x1ZGUgPHl1aS9ZV2lkZ2V0Lmg+CisgI2luY2x1ZGUgPHl1aS9ZTWVudUl0ZW0uaD4KKyAKKy0jaW5jbHVkZSA8bmN1cnNlc3cvY3Vyc2VzLmg+CS8qIGN1cnNlcy5oOiAjZGVmaW5lICBOQ1VSU0VTX0NIX1QgY2NoYXJfdCAqLworKyNpbmNsdWRlIDxjdXJzZXMuaD4JLyogY3Vyc2VzLmg6ICNkZWZpbmUgIE5DVVJTRVNfQ0hfVCBjY2hhcl90ICovCisgI2luY2x1ZGUgPHdjaGFyLmg+CisgCisgI2luY2x1ZGUgIm5jdXJzZXN3LmgiCitkaWZmIC0tZ2l0IGEvc3JjL25jdXJzZXNwLmggYi9zcmMvbmN1cnNlc3AuaAoraW5kZXggZDQ3ODM0Ny4uMmZjZmVhNSAxMDA2NDQKKy0tLSBhL3NyYy9uY3Vyc2VzcC5oCisrKysgYi9zcmMvbmN1cnNlc3AuaAorQEAgLTI4LDcgKzI4LDcgQEAKKyAjaW5jbHVkZSA8aW9zZndkPgorIAorICNpbmNsdWRlICJuY3Vyc2Vzdy5oIgorLSNpbmNsdWRlIDxuY3Vyc2Vzdy9wYW5lbC5oPgorKyNpbmNsdWRlIDxwYW5lbC5oPgorIAorIGNsYXNzIE5DdXJzZXNQYW5lbCA6IHB1YmxpYyBOQ3Vyc2VzV2luZG93CisgeworZGlmZiAtLWdpdCBhL3NyYy9uY3Vyc2Vzdy5jYyBiL3NyYy9uY3Vyc2Vzdy5jYworaW5kZXggM2M3NzFhZi4uYmI4MzIxMCAxMDA2NDQKKy0tLSBhL3NyYy9uY3Vyc2Vzdy5jYworKysrIGIvc3JjL25jdXJzZXN3LmNjCitAQCAtNDcsNyArNDcsNyBAQAorICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVkZSA8c3RkbGliLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgorLSNpbmNsdWRlIDxuY3Vyc2Vzdy90ZXJtLmg+CisrI2luY2x1ZGUgPHRlcm0uaD4KKyAjdW5kZWYgbGluZQorICN1bmRlZiBjb2x1bW5zCisgCitkaWZmIC0tZ2l0IGEvc3JjL25jdXJzZXN3LmggYi9zcmMvbmN1cnNlc3cuaAoraW5kZXggZDI1OTIzYS4uYzE0MGQzNyAxMDA2NDQKKy0tLSBhL3NyYy9uY3Vyc2Vzdy5oCisrKysgYi9zcmMvbmN1cnNlc3cuaAorQEAgLTI3LDggKzI3LDggQEAKKyAKKyAjaW5jbHVkZSA8aW9zZndkPgorIAorLSNpbmNsdWRlIDxuY3Vyc2Vzdy9jdXJzZXMuaD4KKy0jaW5jbHVkZSA8bmN1cnNlc3cvZXRpcC5oPgorKyNpbmNsdWRlIDxjdXJzZXMuaD4KKysjaW5jbHVkZSA8ZXRpcC5oPgorICNpbmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUgPGNzdGRhcmc+CisgI2luY2x1ZGUgPGNsaW1pdHM+CistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnl1aS9saWJ5dWktbmN1cnNlcy8wMDAxLXVzZS1fbmxfbXNnX2NhdF9jbnRyLW9ubHktd2l0aC1nbGliYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnl1aS9saWJ5dWktbmN1cnNlcy8wMDAxLXVzZS1fbmxfbXNnX2NhdF9jbnRyLW9ubHktd2l0aC1nbGliYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTM3NzRjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvbGlieXVpL2xpYnl1aS1uY3Vyc2VzLzAwMDEtdXNlLV9ubF9tc2dfY2F0X2NudHItb25seS13aXRoLWdsaWJjLnBhdGNoCkBAIC0wLDAgKzEsNDAgQEAKK0Zyb20gNGI4NGYyNDNhNzBhOGMwN2Y2YTM4ZGFkM2M5NDExZmE3MDdmMjVjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBTdW4sIDQgTWFyIDIwMTggMTc6MDg6NDMgLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gdXNlIF9ubF9tc2dfY2F0X2NudHIgb25seSB3aXRoIGdsaWJjCisKK1RoZSBtdXNsIGxpYmMgcHJvdmlkZXMgbGliaW50bCAoc2ltaWxhciB0byBnbGliYykKK2J1dCBkb2VzIG5vdCB1c2UgdGhlIHNhbWUgaW50ZXJuYWxzLAorc28gZXZlbiB0aG91Z2ggd2UgYXJlIHVzaW5nIHRoZSBHTlUgZ2V0dGV4dAordGhlIGxpYmludGwgaW5jbHVkZWQgd2l0aCB0aGUgbGliYyBkb2VzIG5vdCBkZWZpbmUKK19ubF9tc2dfY2F0X2NudHIgYW5kIGl0IGRvZXMgbm90IG5lZWQgdG8uCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CistLS0KK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCisgc3JjL05DaTE4bi5oIHwgMyArKy0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvTkNpMThuLmggYi9zcmMvTkNpMThuLmgKK2luZGV4IDE2NWIwZTcuLmJmYzRlZDcgMTAwNjQ0CistLS0gYS9zcmMvTkNpMThuLmgKKysrKyBiL3NyYy9OQ2kxOG4uaAorQEAgLTU5LDEyICs1OSwxMyBAQCBpbmxpbmUgdm9pZCBzZXRUZXh0ZG9tYWluKCBjb25zdCBjaGFyICogZG9tYWluICkKKyAgICAgYmluZHRleHRkb21haW4oIGRvbWFpbiwgIFlTZXR0aW5nczo6bG9jYWxlRGlyKCkuY19zdHIoKSApOworICAgICBiaW5kX3RleHRkb21haW5fY29kZXNldCggZG9tYWluLCAiVVRGLTgiICk7CisgICAgIHRleHRkb21haW4oIGRvbWFpbiApOworLQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgICAgLy8gTWFrZSBjaGFuZ2Uga25vd24KKyAgICAgeworIAlleHRlcm4gaW50IF9ubF9tc2dfY2F0X2NudHI7CisgCSsrX25sX21zZ19jYXRfY250cjsKKyAgICAgfQorKyNlbmRpZgorIH0KKyAKKyAKKy0tIAorMi4xNi4yCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnl1aS9saWJ5dWktbmN1cnNlc19naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLW5jdXJzZXNfZ2l0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3OGM3MTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLW5jdXJzZXNfZ2l0LmJiCkBAIC0wLDAgKzEsNDkgQEAKK1NVTU1BUlkgPSAiQ2hhcmFjdGVyIEJhc2VkIFVzZXIgSW50ZXJmYWNlIGZvciBsaWJ5dWkiCitMSUNFTlNFID0gIkxHUEx2MyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkcubGdwbC0zO21kNT1lNmE2MDBmZDVlMWQ5Y2JkZTJkOTgzNjgwMjMzYWQwMiBcCisgICAgZmlsZTovL0NPUFlJTkcubGdwbC0yLjE7bWQ1PTRmYmQ2NTM4MGNkZDI1NTk1MTA3OTAwOGIzNjQ1MTZjIFwKKyIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2xpYnl1aS9saWJ5dWktbmN1cnNlcy5naXQgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS11c2UtX25sX21zZ19jYXRfY250ci1vbmx5LXdpdGgtZ2xpYmMucGF0Y2ggXAorICAgICAgICAgICIKKworU1JDX1VSSV9hcHBlbmRfY2xhc3MtdGFyZ2V0ID0gIiBmaWxlOi8vMDAwMS1GaXgtdGhlLWVycm9yLW9mLWNhbi10LWZpbmQtaGVhZGVyLWZpbGUucGF0Y2giCisKK1BWID0gIjIuNDguMytnaXQke1NSQ1BWfSIKK1NSQ1JFViA9ICI3OWI4MDRiNDVmZmM2YTBkOTJlMjhlNzkzZmYzODlhMjBiNjNiNTRiIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitpbmhlcml0IGNtYWtlIGdldHRleHQgcGtnY29uZmlnCisKK0RFUEVORFMgKz0gImJvb3N0IGxpYnl1aSBuY3Vyc2VzIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZXNkayIKKworZG9fY29uZmlndXJlX3ByZXBlbmQgKCkgeworICAgIGNkICR7U30KKyAgICBnaXQgY2hlY2tvdXQgYm9vdHN0cmFwLnNoCisgICAgc2VkIC1pICJzIy91c3IjJHtQS0dfQ09ORklHX1NZU1JPT1RfRElSfSR7YmFzZV9wcmVmaXh9JiMiIGJvb3RzdHJhcC5zaAorICAgIC4vYm9vdHN0cmFwLnNoCisgICAgbWtkaXIgLXAgJHtQS0dfQ09ORklHX1NZU1JPT1RfRElSfSR7YmFzZV9wcmVmaXh9L3Vzci9saWI2NC8KKyAgICBjcCAke1BLR19DT05GSUdfU1lTUk9PVF9ESVJ9JHtiYXNlX3ByZWZpeH0vdXNyL2xpYi9saWJ5dWkuc28qICR7UEtHX0NPTkZJR19TWVNST09UX0RJUn0ke2Jhc2VfcHJlZml4fS91c3IvbGliNjQvCisgICAgY2QgLQorICAgIHNlZCAtaSAicyNcJHtZUFJFRklYfSNcJHtQS0dfQ09ORklHX1NZU1JPT1RfRElSfSR7YmFzZV9wcmVmaXh9JiMiICR7U30vQ01ha2VMaXN0cy50eHQKKyAgICBzZWQgLWkgInMjL3VzciMke1BLR19DT05GSUdfU1lTUk9PVF9ESVJ9JHtiYXNlX3ByZWZpeH0mIyIgJHtQS0dfQ09ORklHX1NZU1JPT1RfRElSfSR7bGliZGlyfS9jbWFrZS9saWJ5dWkvTGlieXVpTGlicmFyeURlcGVuZHMtcmVsZWFzZS5jbWFrZQorfQorCitkb19pbnN0YWxsX2FwcGVuZCAoKSB7CisgICAgaWYgWyAiJHtsaWJkaXJ9IiA9ICIke2Jhc2VfcHJlZml4fS91c3IvbGliIiBdICYmIFsgLWQgJHtEfS91c3IvbGliNjQgXTsgdGhlbgorICAgICAgICBtdiAke0R9L3Vzci9saWI2NCAke0R9L3Vzci9saWIKKyAgICBmaQorfQorCitkb19pbnN0YWxsX2FwcGVuZF9jbGFzcy1uYXRpdmVzZGsgKCkgeworICAgIG1rZGlyIC1wICR7RH0vJHtiYXNlX3ByZWZpeH0KKyAgICBtdiAke0R9L3VzciAke0R9LyR7YmFzZV9wcmVmaXh9Cit9CisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9LyoiCisKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9LyoiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLzAwMDEtRml4LUdDQy04LXdhcm5pbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLzAwMDEtRml4LUdDQy04LXdhcm5pbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFiYTQyZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnl1aS9saWJ5dWkvMDAwMS1GaXgtR0NDLTgtd2FybmluZy5wYXRjaApAQCAtMCwwICsxLDQ4IEBACitGcm9tIDFlNmQ0MGZlYzE2YTk0ZDFhNGJkNDA2MzQ0MDUyNjcyMDBiN2U5NjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBtYXJ4aW4gPG1saXNrYUBzdXNlLmN6PgorRGF0ZTogVHVlLCAxMCBBcHIgMjAxOCAxNToyMTo0MCArMDIwMAorU3ViamVjdDogW1BBVENIXSBGaXggR0NDIDggd2FybmluZzoKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworL2hvbWUvbWFyeGluL1Byb2dyYW1taW5nL2xpYnl1aS9zcmMvWURpYWxvZy5jYzogSW4gc3RhdGljIG1lbWJlciBmdW5jdGlvbiDigJhzdGF0aWMgdm9pZCBZRGlhbG9nOjpzaG93VGV4dChjb25zdCBzdHJpbmcmLCBib29sKeKAmToKKy9ob21lL21hcnhpbi9Qcm9ncmFtbWluZy9saWJ5dWkvc3JjL1lEaWFsb2cuY2M6NjkwOjI2OiBlcnJvcjogY2F0Y2hpbmcgcG9seW1vcnBoaWMgdHlwZSDigJhjbGFzcyBZVUlFeGNlcHRpb27igJkgYnkgdmFsdWUgWy1XZXJyb3I9Y2F0Y2gtdmFsdWU9XQorICAgICBjYXRjaCAoIFlVSUV4Y2VwdGlvbiBleGNlcHRpb24gKQorICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn4KKy9ob21lL21hcnhpbi9Qcm9ncmFtbWluZy9saWJ5dWkvc3JjL1lEaWFsb2cuY2M6IEluIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24g4oCYc3RhdGljIGJvb2wgWURpYWxvZzo6c2hvd1JlbE5vdGVzVGV4dCgp4oCZOgorL2hvbWUvbWFyeGluL1Byb2dyYW1taW5nL2xpYnl1aS9zcmMvWURpYWxvZy5jYzo4MTQ6MjY6IGVycm9yOiBjYXRjaGluZyBwb2x5bW9ycGhpYyB0eXBlIOKAmGNsYXNzIFlVSUV4Y2VwdGlvbuKAmSBieSB2YWx1ZSBbLVdlcnJvcj1jYXRjaC12YWx1ZT1dCisgICAgIGNhdGNoICggWVVJRXhjZXB0aW9uIGV4Y2VwdGlvbiApCisgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fgorLS0tCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly9naXRodWIuY29tL2xpYnl1aS9saWJ5dWkvcHVsbC8xMjJdCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCisgc3JjL1lEaWFsb2cuY2MgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL1lEaWFsb2cuY2MgYi9zcmMvWURpYWxvZy5jYworaW5kZXggOTJlNTAzMS4uOGVjZmY5MCAxMDA2NDQKKy0tLSBhL3NyYy9ZRGlhbG9nLmNjCisrKysgYi9zcmMvWURpYWxvZy5jYworQEAgLTY4Nyw3ICs2ODcsNyBAQCBZRGlhbG9nOjpzaG93VGV4dCggY29uc3Qgc3RkOjpzdHJpbmcgJiB0ZXh0LCBib29sIHVzZVJpY2hUZXh0ICkKKyAJZGlhbG9nLT53YWl0Rm9yRXZlbnQoKTsKKyAJZGlhbG9nLT5kZXN0cm95KCk7CisgICAgIH0KKy0gICAgY2F0Y2ggKCBZVUlFeGNlcHRpb24gZXhjZXB0aW9uICkKKysgICAgY2F0Y2ggKCBZVUlFeGNlcHRpb24gJmV4Y2VwdGlvbiApCisgICAgIHsKKyAJLy8gRG9uJ3QgbGV0IHRoZSBhcHBsaWNhdGlvbiBkaWUganVzdCBiZWNhdXNlIGhlbHAgY291bGRuJ3QgYmUgZGlzcGxheWVkLgorIAorQEAgLTgxMSw3ICs4MTEsNyBAQCBZRGlhbG9nOjpzaG93UmVsTm90ZXNUZXh0KCkKKyAJfQorICAgICAgICAgZGlhbG9nLT5kZXN0cm95KCk7CisgICAgIH0KKy0gICAgY2F0Y2ggKCBZVUlFeGNlcHRpb24gZXhjZXB0aW9uICkKKysgICAgY2F0Y2ggKCBZVUlFeGNlcHRpb24gJmV4Y2VwdGlvbiApCisgICAgIHsKKyAgICAgICAgIC8vIERvbid0IGxldCB0aGUgYXBwbGljYXRpb24gZGllIGp1c3QgYmVjYXVzZSBSTiBjb3VsZG4ndCBiZSBkaXNwbGF5ZWQuCisgCistLSAKKzIuMTcuMAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLzAwMDEtRml4LWJ1aWxkLXdpdGgtY2xhbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpLzAwMDEtRml4LWJ1aWxkLXdpdGgtY2xhbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDI2OTAxOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL2xpYnl1aS9saWJ5dWkvMDAwMS1GaXgtYnVpbGQtd2l0aC1jbGFuZy5wYXRjaApAQCAtMCwwICsxLDY4NyBAQAorRnJvbSAxODU2MjY3MTk4MmFkOTc1NDliY2NiNDQ0ZmRiYjU5MDViNmU5MzM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgMjQgQXByIDIwMTggMTU6MDY6MTQgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IGJ1aWxkIHdpdGggY2xhbmcKKworRml4IHdhcm5pbmdzIGZvdW5kIHdpdGggY2xhbmcKKworZXJyb3I6IGNsYXNzICdZQnV0dG9uQm94UHJpdmF0ZScgd2FzIHByZXZpb3VzbHkgZGVjbGFyZWQgYXMgYSBzdHJ1Y3QgWy1XZXJyb3IsLVdtaXNtYXRjaGVkLXRhZ3NdCit8ICAgICBmcmllbmQgY2xhc3MgWUJ1dHRvbkJveFByaXZhdGU7CisKK1lUaW1lem9uZVNlbGVjdG9yLmNjOjM1Ojk6IGVycm9yOiBwcml2YXRlIGZpZWxkICdkdW1teScgaXMgbm90IHVzZWQgWy1XZXJyb3IsLVd1bnVzZWQtcHJpdmF0ZS1maWVsZF0KKyAgIGJvb2wgZHVtbXk7CisgICAgICAgIF4KKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vZ2l0aHViLmNvbS9saWJ5dWkvbGlieXVpL3B1bGwvMTIzXQorCisgc3JjL1lBbGlnbm1lbnQuaCAgICAgICAgICB8IDIgKy0KKyBzcmMvWUJhckdyYXBoLmggICAgICAgICAgIHwgMiArLQorIHNyYy9ZQnVzeUluZGljYXRvci5oICAgICAgfCAyICstCisgc3JjL1lCdXR0b25Cb3guaCAgICAgICAgICB8IDQgKystLQorIHNyYy9ZQ2hlY2tCb3guaCAgICAgICAgICAgfCAyICstCisgc3JjL1lDaGVja0JveEZyYW1lLmggICAgICB8IDIgKy0KKyBzcmMvWUNvbWJvQm94LmggICAgICAgICAgIHwgMiArLQorIHNyYy9ZQ29tbWFuZExpbmUuaCAgICAgICAgfCAyICstCisgc3JjL1lDb250ZXh0TWVudS5oICAgICAgICB8IDIgKy0KKyBzcmMvWURhdGVGaWVsZC5oICAgICAgICAgIHwgMiArLQorIHNyYy9ZRGlhbG9nLmggICAgICAgICAgICAgfCAyICstCisgc3JjL1lEb3dubG9hZFByb2dyZXNzLmggICB8IDIgKy0KKyBzcmMvWUR1bWJUYWIuaCAgICAgICAgICAgIHwgMiArLQorIHNyYy9ZRW1wdHkuaCAgICAgICAgICAgICAgfCAyICstCisgc3JjL1lFdmVudEZpbHRlci5oICAgICAgICB8IDIgKy0KKyBzcmMvWUZyYW1lLmggICAgICAgICAgICAgIHwgMiArLQorIHNyYy9ZR3JhcGguaCAgICAgICAgICAgICAgfCAyICstCisgc3JjL1lJbWFnZS5oICAgICAgICAgICAgICB8IDIgKy0KKyBzcmMvWUlucHV0RmllbGQuaCAgICAgICAgIHwgMiArLQorIHNyYy9ZSW50RmllbGQuaCAgICAgICAgICAgfCAyICstCisgc3JjL1lMYWJlbC5oICAgICAgICAgICAgICB8IDIgKy0KKyBzcmMvWUxheW91dEJveC5oICAgICAgICAgIHwgMiArLQorIHNyYy9ZTG9nVmlldy5oICAgICAgICAgICAgfCAyICstCisgc3JjL1lNZW51QnV0dG9uLmggICAgICAgICB8IDIgKy0KKyBzcmMvWU11bHRpTGluZUVkaXQuaCAgICAgIHwgMiArLQorIHNyYy9ZTXVsdGlQcm9ncmVzc01ldGVyLmggfCAyICstCisgc3JjL1lNdWx0aVNlbGVjdGlvbkJveC5oICB8IDIgKy0KKyBzcmMvWVBhcnRpdGlvblNwbGl0dGVyLmggIHwgMiArLQorIHNyYy9ZUHJvZ3Jlc3NCYXIuaCAgICAgICAgfCAyICstCisgc3JjL1lQdXNoQnV0dG9uLmggICAgICAgICB8IDIgKy0KKyBzcmMvWVJhZGlvQnV0dG9uLmggICAgICAgIHwgMiArLQorIHNyYy9ZUmFkaW9CdXR0b25Hcm91cC5oICAgfCAyICstCisgc3JjL1lSaWNoVGV4dC5oICAgICAgICAgICB8IDIgKy0KKyBzcmMvWVNlbGVjdGlvbkJveC5oICAgICAgIHwgMiArLQorIHNyYy9ZU2VsZWN0aW9uV2lkZ2V0LmggICAgfCAyICstCisgc3JjL1lTaW1wbGVJbnB1dEZpZWxkLmggICB8IDIgKy0KKyBzcmMvWVNsaWRlci5oICAgICAgICAgICAgIHwgMiArLQorIHNyYy9ZU3BhY2luZy5oICAgICAgICAgICAgfCAyICstCisgc3JjL1lTcXVhc2guaCAgICAgICAgICAgICB8IDIgKy0KKyBzcmMvWVRhYmxlLmggICAgICAgICAgICAgIHwgMiArLQorIHNyYy9ZVGFibGVIZWFkZXIuaCAgICAgICAgfCAyICstCisgc3JjL1lUaW1lRmllbGQuaCAgICAgICAgICB8IDIgKy0KKyBzcmMvWVRpbWV6b25lU2VsZWN0b3IuY2MgIHwgMiArLQorIHNyYy9ZVHJlZS5oICAgICAgICAgICAgICAgfCAyICstCisgc3JjL1lVSUxvZy5oICAgICAgICAgICAgICB8IDIgKy0KKyBzcmMvWVdpZGdldC5oICAgICAgICAgICAgIHwgMiArLQorIHNyYy9ZV2l6YXJkLmggICAgICAgICAgICAgfCAyICstCisgNDcgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgNDggZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvWUFsaWdubWVudC5oIGIvc3JjL1lBbGlnbm1lbnQuaAoraW5kZXggZDcxNmM3Ny4uNzI3Njk0NCAxMDA2NDQKKy0tLSBhL3NyYy9ZQWxpZ25tZW50LmgKKysrKyBiL3NyYy9ZQWxpZ25tZW50LmgKK0BAIC0yOCw3ICsyOCw3IEBACisgI2luY2x1ZGUgIllTaW5nbGVDaGlsZENvbnRhaW5lcldpZGdldC5oIgorIAorIAorLWNsYXNzIFlBbGlnbm1lbnRQcml2YXRlOworK3N0cnVjdCBZQWxpZ25tZW50UHJpdmF0ZTsKKyAKKyAvKioKKyAgKiBJbXBsZW1lbnRhdGlvbiBvZiBhbGwgdGhlIGFsaWdubWVudCB3aWRnZXRzOgorZGlmZiAtLWdpdCBhL3NyYy9ZQmFyR3JhcGguaCBiL3NyYy9ZQmFyR3JhcGguaAoraW5kZXggMjlmN2YyNi4uZDdlYWFkMiAxMDA2NDQKKy0tLSBhL3NyYy9ZQmFyR3JhcGguaAorKysrIGIvc3JjL1lCYXJHcmFwaC5oCitAQCAtMjksNyArMjksNyBAQAorICNpbmNsdWRlICJZQ29sb3IuaCIKKyAKKyAKKy1jbGFzcyBZQmFyR3JhcGhQcml2YXRlOworK3N0cnVjdCBZQmFyR3JhcGhQcml2YXRlOworIGNsYXNzIFlCYXJHcmFwaFNlZ21lbnQ7CisgCisgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lCdXN5SW5kaWNhdG9yLmggYi9zcmMvWUJ1c3lJbmRpY2F0b3IuaAoraW5kZXggOTUzMGZhNS4uNzUyOTdkOCAxMDA2NDQKKy0tLSBhL3NyYy9ZQnVzeUluZGljYXRvci5oCisrKysgYi9zcmMvWUJ1c3lJbmRpY2F0b3IuaAorQEAgLTI3LDcgKzI3LDcgQEAKKyAKKyAjaW5jbHVkZSAiWVdpZGdldC5oIgorIAorLWNsYXNzIFlCdXN5SW5kaWNhdG9yUHJpdmF0ZTsKKytzdHJ1Y3QgWUJ1c3lJbmRpY2F0b3JQcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZQnV0dG9uQm94LmggYi9zcmMvWUJ1dHRvbkJveC5oCitpbmRleCA4NGY4ZGJiLi5jYTUxZjU3IDEwMDY0NAorLS0tIGEvc3JjL1lCdXR0b25Cb3guaAorKysrIGIvc3JjL1lCdXR0b25Cb3guaAorQEAgLTMwLDcgKzMwLDcgQEAKKyAjaW5jbHVkZSAiWVdpZGdldC5oIgorICNpbmNsdWRlICJZUHVzaEJ1dHRvbi5oIgorIAorLWNsYXNzIFlCdXR0b25Cb3hQcml2YXRlOworK3N0cnVjdCBZQnV0dG9uQm94UHJpdmF0ZTsKKyBjbGFzcyBZUHVzaEJ1dHRvbjsKKyAKKyAKK0BAIC0xNDcsNyArMTQ3LDcgQEAgc3RydWN0IFlCdXR0b25Cb3hNYXJnaW5zCisgICoqLworIGNsYXNzIFlCdXR0b25Cb3ggOiBwdWJsaWMgWVdpZGdldAorIHsKKy0gICAgZnJpZW5kIGNsYXNzIFlCdXR0b25Cb3hQcml2YXRlOworKyAgICBmcmllbmQgc3RydWN0IFlCdXR0b25Cb3hQcml2YXRlOworIAorIHByb3RlY3RlZDoKKyAgICAgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lDaGVja0JveC5oIGIvc3JjL1lDaGVja0JveC5oCitpbmRleCA3OTNjYzc3Li4wM2YzZmFhIDEwMDY0NAorLS0tIGEvc3JjL1lDaGVja0JveC5oCisrKysgYi9zcmMvWUNoZWNrQm94LmgKK0BAIC0zMCw3ICszMCw3IEBACisgI2luY2x1ZGUgIllXaWRnZXQuaCIKKyAjaW5jbHVkZSAiSW1wbFB0ci5oIgorIAorLWNsYXNzIFlDaGVja0JveFByaXZhdGU7Cisrc3RydWN0IFlDaGVja0JveFByaXZhdGU7CisgCisgZW51bSBZQ2hlY2tCb3hTdGF0ZQorIHsKK2RpZmYgLS1naXQgYS9zcmMvWUNoZWNrQm94RnJhbWUuaCBiL3NyYy9ZQ2hlY2tCb3hGcmFtZS5oCitpbmRleCAyNDNmMWEwLi43MDE3MTEwIDEwMDY0NAorLS0tIGEvc3JjL1lDaGVja0JveEZyYW1lLmgKKysrKyBiL3NyYy9ZQ2hlY2tCb3hGcmFtZS5oCitAQCAtMjksNyArMjksNyBAQAorICNpbmNsdWRlICJZU2luZ2xlQ2hpbGRDb250YWluZXJXaWRnZXQuaCIKKyAjaW5jbHVkZSAiSW1wbFB0ci5oIgorIAorLWNsYXNzIFlDaGVja0JveEZyYW1lUHJpdmF0ZTsKKytzdHJ1Y3QgWUNoZWNrQm94RnJhbWVQcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZQ29tYm9Cb3guaCBiL3NyYy9ZQ29tYm9Cb3guaAoraW5kZXggNDE2MzU5YS4uYWQwZTU1MCAxMDA2NDQKKy0tLSBhL3NyYy9ZQ29tYm9Cb3guaAorKysrIGIvc3JjL1lDb21ib0JveC5oCitAQCAtMjcsNyArMjcsNyBAQAorIAorICNpbmNsdWRlICJZU2VsZWN0aW9uV2lkZ2V0LmgiCisgCistY2xhc3MgWUNvbWJvQm94UHJpdmF0ZTsKKytzdHJ1Y3QgWUNvbWJvQm94UHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWUNvbW1hbmRMaW5lLmggYi9zcmMvWUNvbW1hbmRMaW5lLmgKK2luZGV4IDcwY2I0ZmUuLmYzNDRhM2IgMTAwNjQ0CistLS0gYS9zcmMvWUNvbW1hbmRMaW5lLmgKKysrKyBiL3NyYy9ZQ29tbWFuZExpbmUuaAorQEAgLTI4LDcgKzI4LDcgQEAKKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlICJJbXBsUHRyLmgiCisgCistY2xhc3MgWUNvbW1hbmRMaW5lUHJpdmF0ZTsKKytzdHJ1Y3QgWUNvbW1hbmRMaW5lUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWUNvbnRleHRNZW51LmggYi9zcmMvWUNvbnRleHRNZW51LmgKK2luZGV4IGE0YWNiMWMuLjEyNTMwMDIgMTAwNjQ0CistLS0gYS9zcmMvWUNvbnRleHRNZW51LmgKKysrKyBiL3NyYy9ZQ29udGV4dE1lbnUuaAorQEAgLTI5LDcgKzI5LDcgQEAKKyAjaW5jbHVkZSAiWU1lbnVJdGVtLmgiCisgCisgY2xhc3MgWU1lbnVJdGVtOworLWNsYXNzIFlDb250ZXh0TWVudVByaXZhdGU7Cisrc3RydWN0IFlDb250ZXh0TWVudVByaXZhdGU7CisgCisgCisgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lEYXRlRmllbGQuaCBiL3NyYy9ZRGF0ZUZpZWxkLmgKK2luZGV4IGU1YTQ2OGQuLjYxNjRmYmEgMTAwNjQ0CistLS0gYS9zcmMvWURhdGVGaWVsZC5oCisrKysgYi9zcmMvWURhdGVGaWVsZC5oCitAQCAtMjcsNyArMjcsNyBAQAorIAorICNpbmNsdWRlICJZU2ltcGxlSW5wdXRGaWVsZC5oIgorIAorLWNsYXNzIFlEYXRlRmllbGRQcml2YXRlOworK3N0cnVjdCBZRGF0ZUZpZWxkUHJpdmF0ZTsKKyAKKyAvKioKKyAgKiBJbnB1dCBmaWVsZCBmb3IgZW50ZXJpbmcgYSBkYXRlLgorZGlmZiAtLWdpdCBhL3NyYy9ZRGlhbG9nLmggYi9zcmMvWURpYWxvZy5oCitpbmRleCA2NmMyNWMwLi4zNzEyMDliIDEwMDY0NAorLS0tIGEvc3JjL1lEaWFsb2cuaAorKysrIGIvc3JjL1lEaWFsb2cuaAorQEAgLTMyLDcgKzMyLDcgQEAKKyAKKyBjbGFzcyBZU2hvcnRjdXRNYW5hZ2VyOworIGNsYXNzIFlQdXNoQnV0dG9uOworLWNsYXNzIFlEaWFsb2dQcml2YXRlOworK3N0cnVjdCBZRGlhbG9nUHJpdmF0ZTsKKyBjbGFzcyBZRXZlbnQ7CisgY2xhc3MgWUV2ZW50RmlsdGVyOworIAorZGlmZiAtLWdpdCBhL3NyYy9ZRG93bmxvYWRQcm9ncmVzcy5oIGIvc3JjL1lEb3dubG9hZFByb2dyZXNzLmgKK2luZGV4IGM0N2VjNGYuLmZlMDlhOWQgMTAwNjQ0CistLS0gYS9zcmMvWURvd25sb2FkUHJvZ3Jlc3MuaAorKysrIGIvc3JjL1lEb3dubG9hZFByb2dyZXNzLmgKK0BAIC0yOCw3ICsyOCw3IEBACisgI2luY2x1ZGUgIllXaWRnZXQuaCIKKyAKKyAKKy1jbGFzcyBZRG93bmxvYWRQcm9ncmVzc1ByaXZhdGU7Cisrc3RydWN0IFlEb3dubG9hZFByb2dyZXNzUHJpdmF0ZTsKKyAKKyAvKioKKyAgKiBEb3dubG9hZFByb2dyZXNzOiBBIHByb2dyZXNzIGJhciB0aGF0IG1vbml0b3JzIGRvd25sb2FkaW5nIGEgZmlsZSBieQorZGlmZiAtLWdpdCBhL3NyYy9ZRHVtYlRhYi5oIGIvc3JjL1lEdW1iVGFiLmgKK2luZGV4IGFlYzE3YTMuLmY4ZmIyNTAgMTAwNjQ0CistLS0gYS9zcmMvWUR1bWJUYWIuaAorKysrIGIvc3JjL1lEdW1iVGFiLmgKK0BAIC0yNyw3ICsyNyw3IEBACisgCisgI2luY2x1ZGUgIllTZWxlY3Rpb25XaWRnZXQuaCIKKyAKKy1jbGFzcyBZRHVtYlRhYlByaXZhdGU7Cisrc3RydWN0IFlEdW1iVGFiUHJpdmF0ZTsKKyAKKyAvKioKKyAgKiBEdW1iVGFiOiBBIHZlcnkgc2ltcGxlIHRhYiB3aWRnZXQgdGhhdCBjYW4gZGlzcGxheSBhbmQgc3dpdGNoIGJldHdlZW4gYQorZGlmZiAtLWdpdCBhL3NyYy9ZRW1wdHkuaCBiL3NyYy9ZRW1wdHkuaAoraW5kZXggOWEzY2IzNi4uOWI4OGZiYyAxMDA2NDQKKy0tLSBhL3NyYy9ZRW1wdHkuaAorKysrIGIvc3JjL1lFbXB0eS5oCitAQCAtMjksNyArMjksNyBAQAorICNpbmNsdWRlICJJbXBsUHRyLmgiCisgCisgCistY2xhc3MgWUVtcHR5UHJpdmF0ZTsKKytzdHJ1Y3QgWUVtcHR5UHJpdmF0ZTsKKyAKKyAvKioKKyAgKiBBIHdpZGdldCB3aXRoIHplcm8gc2l6ZSwgdXNlZnVsIGFzIGEgcGxhY2Vob2xkZXIuCitkaWZmIC0tZ2l0IGEvc3JjL1lFdmVudEZpbHRlci5oIGIvc3JjL1lFdmVudEZpbHRlci5oCitpbmRleCAzZGMxODAzLi43NGFhNjJkIDEwMDY0NAorLS0tIGEvc3JjL1lFdmVudEZpbHRlci5oCisrKysgYi9zcmMvWUV2ZW50RmlsdGVyLmgKK0BAIC0zMiw3ICszMiw3IEBACisgY2xhc3MgWUV2ZW50OworIGNsYXNzIFlEaWFsb2c7CisgCistY2xhc3MgWUV2ZW50RmlsdGVyUHJpdmF0ZTsKKytzdHJ1Y3QgWUV2ZW50RmlsdGVyUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWUZyYW1lLmggYi9zcmMvWUZyYW1lLmgKK2luZGV4IDExMWU4ZWMuLjRmOGM2MWUgMTAwNjQ0CistLS0gYS9zcmMvWUZyYW1lLmgKKysrKyBiL3NyYy9ZRnJhbWUuaAorQEAgLTI5LDcgKzI5LDcgQEAKKyAjaW5jbHVkZSAiWVNpbmdsZUNoaWxkQ29udGFpbmVyV2lkZ2V0LmgiCisgI2luY2x1ZGUgIkltcGxQdHIuaCIKKyAKKy1jbGFzcyBZRnJhbWVQcml2YXRlOworK3N0cnVjdCBZRnJhbWVQcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZR3JhcGguaCBiL3NyYy9ZR3JhcGguaAoraW5kZXggZDkwZDFhZS4uMjg3ZDgwMCAxMDA2NDQKKy0tLSBhL3NyYy9ZR3JhcGguaAorKysrIGIvc3JjL1lHcmFwaC5oCitAQCAtMzcsNyArMzcsNyBAQAorICAqIEZvciB0aGF0IHJlYXNvbiBhIGxvdCBvZiBmdW5jdGlvbnMgc2ltcGx5IHRha2UgYSB2b2lkKiBpbnN0ZWFkIG9mIGdyYXBoX3QqLgorICAqLworIAorLWNsYXNzIFlHcmFwaFByaXZhdGU7Cisrc3RydWN0IFlHcmFwaFByaXZhdGU7CisgCisgLyoqCisgICogQSBncmFwaCB3aXRoIG5vZGVzIGFuZCBlZGdlcywgcmVuZGVyZWQgd2l0aCBHcmFwaHZpei4KK2RpZmYgLS1naXQgYS9zcmMvWUltYWdlLmggYi9zcmMvWUltYWdlLmgKK2luZGV4IDE3YmVhMjEuLjg0ZWI2NzQgMTAwNjQ0CistLS0gYS9zcmMvWUltYWdlLmgKKysrKyBiL3NyYy9ZSW1hZ2UuaAorQEAgLTI5LDcgKzI5LDcgQEAKKyAjaW5jbHVkZSA8c3RyaW5nPgorIAorIAorLWNsYXNzIFlJbWFnZVByaXZhdGU7Cisrc3RydWN0IFlJbWFnZVByaXZhdGU7CisgCisgLyoqCisgICogQSBwaWN0dXJlLCBwb3NzaWJseSBhbmltYXRlZCwgbG9hZGVkIGZyb20gYSBmaWxlLgorZGlmZiAtLWdpdCBhL3NyYy9ZSW5wdXRGaWVsZC5oIGIvc3JjL1lJbnB1dEZpZWxkLmgKK2luZGV4IDcwNjQxY2UuLmZhMjliNDIgMTAwNjQ0CistLS0gYS9zcmMvWUlucHV0RmllbGQuaAorKysrIGIvc3JjL1lJbnB1dEZpZWxkLmgKK0BAIC0yOCw3ICsyOCw3IEBACisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSAiWVdpZGdldC5oIgorIAorLWNsYXNzIFlJbnB1dEZpZWxkUHJpdmF0ZTsKKytzdHJ1Y3QgWUlucHV0RmllbGRQcml2YXRlOworIAorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9ZSW50RmllbGQuaCBiL3NyYy9ZSW50RmllbGQuaAoraW5kZXggOWRhMDUzNy4uOGFkMjk0OSAxMDA2NDQKKy0tLSBhL3NyYy9ZSW50RmllbGQuaAorKysrIGIvc3JjL1lJbnRGaWVsZC5oCitAQCAtMjcsNyArMjcsNyBAQAorIAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgCistY2xhc3MgWUludEZpZWxkUHJpdmF0ZTsKKytzdHJ1Y3QgWUludEZpZWxkUHJpdmF0ZTsKKyAKKyAKKyAKK2RpZmYgLS1naXQgYS9zcmMvWUxhYmVsLmggYi9zcmMvWUxhYmVsLmgKK2luZGV4IGQyZmZmNjEuLmJmMDZkOGIgMTAwNjQ0CistLS0gYS9zcmMvWUxhYmVsLmgKKysrKyBiL3NyYy9ZTGFiZWwuaAorQEAgLTMwLDcgKzMwLDcgQEAKKyAjaW5jbHVkZSAiSW1wbFB0ci5oIgorIAorIAorLWNsYXNzIFlMYWJlbFByaXZhdGU7Cisrc3RydWN0IFlMYWJlbFByaXZhdGU7CisgCisgLyoqCisgICogSW1wbGVtZW50YXRpb24gb2YgdGhlIExhYmVsLCBIZWFkaW5nIGFuZCBPdXRwdXRGaWVsZCB3aWRnZXRzCitkaWZmIC0tZ2l0IGEvc3JjL1lMYXlvdXRCb3guaCBiL3NyYy9ZTGF5b3V0Qm94LmgKK2luZGV4IGU2NTJhNDUuLjA3MGVhZmYgMTAwNjQ0CistLS0gYS9zcmMvWUxheW91dEJveC5oCisrKysgYi9zcmMvWUxheW91dEJveC5oCitAQCAtMjksNyArMjksNyBAQAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgCisgCistY2xhc3MgWUxheW91dEJveFByaXZhdGU7Cisrc3RydWN0IFlMYXlvdXRCb3hQcml2YXRlOworIAorIC8qKgorICAqIEEgdmVydGljYWwgb3IgaG9yaXpvbnRhbCBzdGFja2luZyBvZiB3aWRnZXRzLCBpbXBsZW1lbnRpbmcgSEJveCBhbmQgVkJveC4KK2RpZmYgLS1naXQgYS9zcmMvWUxvZ1ZpZXcuaCBiL3NyYy9ZTG9nVmlldy5oCitpbmRleCA1M2ZiOWVlLi41YjQ0MjI5IDEwMDY0NAorLS0tIGEvc3JjL1lMb2dWaWV3LmgKKysrKyBiL3NyYy9ZTG9nVmlldy5oCitAQCAtMjcsNyArMjcsNyBAQAorIAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgCistY2xhc3MgWUxvZ1ZpZXdQcml2YXRlOworK3N0cnVjdCBZTG9nVmlld1ByaXZhdGU7CisgCisgCisgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lNZW51QnV0dG9uLmggYi9zcmMvWU1lbnVCdXR0b24uaAoraW5kZXggMjA1ZTczMC4uNWRmN2VmYiAxMDA2NDQKKy0tLSBhL3NyYy9ZTWVudUJ1dHRvbi5oCisrKysgYi9zcmMvWU1lbnVCdXR0b24uaAorQEAgLTI5LDcgKzI5LDcgQEAKKyAjaW5jbHVkZSAiWU1lbnVJdGVtLmgiCisgCisgY2xhc3MgWU1lbnVJdGVtOworLWNsYXNzIFlNZW51QnV0dG9uUHJpdmF0ZTsKKytzdHJ1Y3QgWU1lbnVCdXR0b25Qcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZTXVsdGlMaW5lRWRpdC5oIGIvc3JjL1lNdWx0aUxpbmVFZGl0LmgKK2luZGV4IGM1MmE2YWUuLjFmNzkyZjggMTAwNjQ0CistLS0gYS9zcmMvWU11bHRpTGluZUVkaXQuaAorKysrIGIvc3JjL1lNdWx0aUxpbmVFZGl0LmgKK0BAIC0yNyw3ICsyNyw3IEBACisgCisgI2luY2x1ZGUgIllXaWRnZXQuaCIKKyAKKy1jbGFzcyBZTXVsdGlMaW5lRWRpdFByaXZhdGU7Cisrc3RydWN0IFlNdWx0aUxpbmVFZGl0UHJpdmF0ZTsKKyAKKyAvKioKKyAgKiBBIG11bHRpLWxpbmUgcGxhaW4tdGV4dCBhcmVhCitkaWZmIC0tZ2l0IGEvc3JjL1lNdWx0aVByb2dyZXNzTWV0ZXIuaCBiL3NyYy9ZTXVsdGlQcm9ncmVzc01ldGVyLmgKK2luZGV4IDU3Yzc1OGQuLmY2YmVjOTEgMTAwNjQ0CistLS0gYS9zcmMvWU11bHRpUHJvZ3Jlc3NNZXRlci5oCisrKysgYi9zcmMvWU11bHRpUHJvZ3Jlc3NNZXRlci5oCitAQCAtMjgsNyArMjgsNyBAQAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKy1jbGFzcyBZTXVsdGlQcm9ncmVzc01ldGVyUHJpdmF0ZTsKKytzdHJ1Y3QgWU11bHRpUHJvZ3Jlc3NNZXRlclByaXZhdGU7CisgCisgCisgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lNdWx0aVNlbGVjdGlvbkJveC5oIGIvc3JjL1lNdWx0aVNlbGVjdGlvbkJveC5oCitpbmRleCBiYmU1YTIwLi5mM2EyOTQ3IDEwMDY0NAorLS0tIGEvc3JjL1lNdWx0aVNlbGVjdGlvbkJveC5oCisrKysgYi9zcmMvWU11bHRpU2VsZWN0aW9uQm94LmgKK0BAIC0yNyw3ICsyNyw3IEBACisgCisgI2luY2x1ZGUgIllTZWxlY3Rpb25XaWRnZXQuaCIKKyAKKy1jbGFzcyBZTXVsdGlTZWxlY3Rpb25Cb3hQcml2YXRlOworK3N0cnVjdCBZTXVsdGlTZWxlY3Rpb25Cb3hQcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZUGFydGl0aW9uU3BsaXR0ZXIuaCBiL3NyYy9ZUGFydGl0aW9uU3BsaXR0ZXIuaAoraW5kZXggMjgzOWJiYy4uOWRlMTE3NCAxMDA2NDQKKy0tLSBhL3NyYy9ZUGFydGl0aW9uU3BsaXR0ZXIuaAorKysrIGIvc3JjL1lQYXJ0aXRpb25TcGxpdHRlci5oCitAQCAtMjgsNyArMjgsNyBAQAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgCisgCistY2xhc3MgWVBhcnRpdGlvblNwbGl0dGVyUHJpdmF0ZTsKKytzdHJ1Y3QgWVBhcnRpdGlvblNwbGl0dGVyUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVByb2dyZXNzQmFyLmggYi9zcmMvWVByb2dyZXNzQmFyLmgKK2luZGV4IDcxODM1MmYuLmJhYWI2NjIgMTAwNjQ0CistLS0gYS9zcmMvWVByb2dyZXNzQmFyLmgKKysrKyBiL3NyYy9ZUHJvZ3Jlc3NCYXIuaAorQEAgLTI3LDcgKzI3LDcgQEAKKyAKKyAjaW5jbHVkZSAiWVdpZGdldC5oIgorIAorLWNsYXNzIFlQcm9ncmVzc0JhclByaXZhdGU7Cisrc3RydWN0IFlQcm9ncmVzc0JhclByaXZhdGU7CisgCisgCisgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lQdXNoQnV0dG9uLmggYi9zcmMvWVB1c2hCdXR0b24uaAoraW5kZXggNWI2NWM5OC4uZTI4ODI1MiAxMDA2NDQKKy0tLSBhL3NyYy9ZUHVzaEJ1dHRvbi5oCisrKysgYi9zcmMvWVB1c2hCdXR0b24uaAorQEAgLTI3LDcgKzI3LDcgQEAKKyAKKyAjaW5jbHVkZSAiWVdpZGdldC5oIgorIAorLWNsYXNzIFlQdXNoQnV0dG9uUHJpdmF0ZTsKKytzdHJ1Y3QgWVB1c2hCdXR0b25Qcml2YXRlOworIAorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9ZUmFkaW9CdXR0b24uaCBiL3NyYy9ZUmFkaW9CdXR0b24uaAoraW5kZXggOWRjNjJkZS4uNWE3YzBkZCAxMDA2NDQKKy0tLSBhL3NyYy9ZUmFkaW9CdXR0b24uaAorKysrIGIvc3JjL1lSYWRpb0J1dHRvbi5oCitAQCAtMjgsNyArMjgsNyBAQAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgCisgY2xhc3MgWVJhZGlvQnV0dG9uR3JvdXA7CistY2xhc3MgWVJhZGlvQnV0dG9uUHJpdmF0ZTsKKytzdHJ1Y3QgWVJhZGlvQnV0dG9uUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVJhZGlvQnV0dG9uR3JvdXAuaCBiL3NyYy9ZUmFkaW9CdXR0b25Hcm91cC5oCitpbmRleCAwNjNhNTJlLi42NzFhMjU3IDEwMDY0NAorLS0tIGEvc3JjL1lSYWRpb0J1dHRvbkdyb3VwLmgKKysrKyBiL3NyYy9ZUmFkaW9CdXR0b25Hcm91cC5oCitAQCAtMjgsNyArMjgsNyBAQAorICNpbmNsdWRlICJZU2luZ2xlQ2hpbGRDb250YWluZXJXaWRnZXQuaCIKKyAKKyBjbGFzcyBZUmFkaW9CdXR0b247CistY2xhc3MgWVJhZGlvQnV0dG9uR3JvdXBQcml2YXRlOworK3N0cnVjdCBZUmFkaW9CdXR0b25Hcm91cFByaXZhdGU7CisgCisgdHlwZWRlZiBzdGQ6Omxpc3Q8WVJhZGlvQnV0dG9uICo+IAkJWVJhZGlvQnV0dG9uTGlzdDsKKyB0eXBlZGVmIFlSYWRpb0J1dHRvbkxpc3Q6Oml0ZXJhdG9yCQlZUmFkaW9CdXR0b25MaXN0SXRlcmF0b3I7CitkaWZmIC0tZ2l0IGEvc3JjL1lSaWNoVGV4dC5oIGIvc3JjL1lSaWNoVGV4dC5oCitpbmRleCAxNDliZmIzLi44NmIzZjgwIDEwMDY0NAorLS0tIGEvc3JjL1lSaWNoVGV4dC5oCisrKysgYi9zcmMvWVJpY2hUZXh0LmgKK0BAIC0zMCw3ICszMCw3IEBACisgI2luY2x1ZGUgIkltcGxQdHIuaCIKKyAKKyAKKy1jbGFzcyBZUmljaFRleHRQcml2YXRlOworK3N0cnVjdCBZUmljaFRleHRQcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZU2VsZWN0aW9uQm94LmggYi9zcmMvWVNlbGVjdGlvbkJveC5oCitpbmRleCA3ZmM0ZmI4Li45YmJmOWYzIDEwMDY0NAorLS0tIGEvc3JjL1lTZWxlY3Rpb25Cb3guaAorKysrIGIvc3JjL1lTZWxlY3Rpb25Cb3guaAorQEAgLTI3LDcgKzI3LDcgQEAKKyAKKyAjaW5jbHVkZSAiWVNlbGVjdGlvbldpZGdldC5oIgorIAorLWNsYXNzIFlTZWxlY3Rpb25Cb3hQcml2YXRlOworK3N0cnVjdCBZU2VsZWN0aW9uQm94UHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVNlbGVjdGlvbldpZGdldC5oIGIvc3JjL1lTZWxlY3Rpb25XaWRnZXQuaAoraW5kZXggYWJiZGZiNC4uY2YwNWFmZCAxMDA2NDQKKy0tLSBhL3NyYy9ZU2VsZWN0aW9uV2lkZ2V0LmgKKysrKyBiL3NyYy9ZU2VsZWN0aW9uV2lkZ2V0LmgKK0BAIC0yOSw3ICsyOSw3IEBACisgI2luY2x1ZGUgIllJdGVtLmgiCisgI2luY2x1ZGUgIkltcGxQdHIuaCIKKyAKKy1jbGFzcyBZU2VsZWN0aW9uV2lkZ2V0UHJpdmF0ZTsKKytzdHJ1Y3QgWVNlbGVjdGlvbldpZGdldFByaXZhdGU7CisgCisgLyoqCisgICogQmFzZSBjbGFzcyBmb3IgdmFyaW91cyBraW5kcyBvZiBtdWx0aS12YWx1ZSB3aWRnZXRzLgorZGlmZiAtLWdpdCBhL3NyYy9ZU2ltcGxlSW5wdXRGaWVsZC5oIGIvc3JjL1lTaW1wbGVJbnB1dEZpZWxkLmgKK2luZGV4IDZkOTI2ZDQuLmI5M2ZlNmIgMTAwNjQ0CistLS0gYS9zcmMvWVNpbXBsZUlucHV0RmllbGQuaAorKysrIGIvc3JjL1lTaW1wbGVJbnB1dEZpZWxkLmgKK0BAIC0yNyw3ICsyNyw3IEBACisgCisgI2luY2x1ZGUgIllXaWRnZXQuaCIKKyAKKy1jbGFzcyBZU2ltcGxlSW5wdXRGaWVsZFByaXZhdGU7Cisrc3RydWN0IFlTaW1wbGVJbnB1dEZpZWxkUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVNsaWRlci5oIGIvc3JjL1lTbGlkZXIuaAoraW5kZXggZDI5ZjZiOC4uNGJjZDdkMyAxMDA2NDQKKy0tLSBhL3NyYy9ZU2xpZGVyLmgKKysrKyBiL3NyYy9ZU2xpZGVyLmgKK0BAIC0yNyw3ICsyNyw3IEBACisgCisgI2luY2x1ZGUgIllJbnRGaWVsZC5oIgorIAorLWNsYXNzIFlTbGlkZXJQcml2YXRlOworK3N0cnVjdCBZU2xpZGVyUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVNwYWNpbmcuaCBiL3NyYy9ZU3BhY2luZy5oCitpbmRleCBlOGFhZmQzLi4wNjZjZDY4IDEwMDY0NAorLS0tIGEvc3JjL1lTcGFjaW5nLmgKKysrKyBiL3NyYy9ZU3BhY2luZy5oCitAQCAtMjgsNyArMjgsNyBAQAorICNpbmNsdWRlICJZV2lkZ2V0LmgiCisgI2luY2x1ZGUgIkltcGxQdHIuaCIKKyAKKy1jbGFzcyBZU3BhY2luZ1ByaXZhdGU7Cisrc3RydWN0IFlTcGFjaW5nUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVNxdWFzaC5oIGIvc3JjL1lTcXVhc2guaAoraW5kZXggNGJkMGZiNi4uMzgwNGNjNCAxMDA2NDQKKy0tLSBhL3NyYy9ZU3F1YXNoLmgKKysrKyBiL3NyYy9ZU3F1YXNoLmgKK0BAIC0yOSw3ICsyOSw3IEBACisgI2luY2x1ZGUgIkltcGxQdHIuaCIKKyAKKyAKKy1jbGFzcyBZU3F1YXNoUHJpdmF0ZTsKKytzdHJ1Y3QgWVNxdWFzaFByaXZhdGU7CisgCisgLyoqCisgICogSFNxdWFzaCwgVlNxdWFzaCBIVlNxdWFzaDogcmVkdWNlIGNoaWxkIHRvIGl0cyBwcmVmZXJyZWQgc2l6ZS4KK2RpZmYgLS1naXQgYS9zcmMvWVRhYmxlLmggYi9zcmMvWVRhYmxlLmgKK2luZGV4IDY2OTRmMTAuLjQ2OWI4Y2EgMTAwNjQ0CistLS0gYS9zcmMvWVRhYmxlLmgKKysrKyBiL3NyYy9ZVGFibGUuaAorQEAgLTMwLDcgKzMwLDcgQEAKKyAjaW5jbHVkZSAiWVRhYmxlSXRlbS5oIgorICNpbmNsdWRlICJZVGFibGVIZWFkZXIuaCIKKyAKKy1jbGFzcyBZVGFibGVQcml2YXRlOworK3N0cnVjdCBZVGFibGVQcml2YXRlOworIAorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9ZVGFibGVIZWFkZXIuaCBiL3NyYy9ZVGFibGVIZWFkZXIuaAoraW5kZXggNzAxNjZjMi4uNGFlOTliNCAxMDA2NDQKKy0tLSBhL3NyYy9ZVGFibGVIZWFkZXIuaAorKysrIGIvc3JjL1lUYWJsZUhlYWRlci5oCitAQCAtMzEsNyArMzEsNyBAQAorIAorIAorIAorLWNsYXNzIFlUYWJsZUhlYWRlclByaXZhdGU7Cisrc3RydWN0IFlUYWJsZUhlYWRlclByaXZhdGU7CisgCisgLyoqCisgICogSGVscGVyIGNsYXNzIGZvciBZVGFibGUgZm9yIHRhYmxlIGNvbHVtbiBwcm9wZXJ0aWVzOgorZGlmZiAtLWdpdCBhL3NyYy9ZVGltZUZpZWxkLmggYi9zcmMvWVRpbWVGaWVsZC5oCitpbmRleCBhYjJmOWEzLi5mM2E3Yjk0IDEwMDY0NAorLS0tIGEvc3JjL1lUaW1lRmllbGQuaAorKysrIGIvc3JjL1lUaW1lRmllbGQuaAorQEAgLTI3LDcgKzI3LDcgQEAKKyAKKyAjaW5jbHVkZSAiWVNpbXBsZUlucHV0RmllbGQuaCIKKyAKKy1jbGFzcyBZVGltZUZpZWxkUHJpdmF0ZTsKKytzdHJ1Y3QgWVRpbWVGaWVsZFByaXZhdGU7CisgCisgCisgLyoqCitkaWZmIC0tZ2l0IGEvc3JjL1lUaW1lem9uZVNlbGVjdG9yLmNjIGIvc3JjL1lUaW1lem9uZVNlbGVjdG9yLmNjCitpbmRleCA5MjU5YjY0Li5lMmY5YjZmIDEwMDY0NAorLS0tIGEvc3JjL1lUaW1lem9uZVNlbGVjdG9yLmNjCisrKysgYi9zcmMvWVRpbWV6b25lU2VsZWN0b3IuY2MKK0BAIC0zMiw3ICszMiw3IEBACisgCisgY2xhc3MgWVRpbWV6b25lU2VsZWN0b3JQcml2YXRlCisgeworLSAgIGJvb2wgZHVtbXk7CisrLy8gICBib29sIGR1bW15OworIH07CisgCisgCitkaWZmIC0tZ2l0IGEvc3JjL1lUcmVlLmggYi9zcmMvWVRyZWUuaAoraW5kZXggMTRmYTI3OS4uNzBlMTM2NCAxMDA2NDQKKy0tLSBhL3NyYy9ZVHJlZS5oCisrKysgYi9zcmMvWVRyZWUuaAorQEAgLTI4LDcgKzI4LDcgQEAKKyAjaW5jbHVkZSAiWVNlbGVjdGlvbldpZGdldC5oIgorIAorIGNsYXNzIFlUcmVlSXRlbTsKKy1jbGFzcyBZVHJlZVByaXZhdGU7Cisrc3RydWN0IFlUcmVlUHJpdmF0ZTsKKyAKKyAKKyAvKioKK2RpZmYgLS1naXQgYS9zcmMvWVVJTG9nLmggYi9zcmMvWVVJTG9nLmgKK2luZGV4IDA4OTBiYzUuLjRhOTI3YTcgMTAwNjQ0CistLS0gYS9zcmMvWVVJTG9nLmgKKysrKyBiL3NyYy9ZVUlMb2cuaAorQEAgLTY0LDcgKzY0LDcgQEAKKyAKKyAKKyAKKy1jbGFzcyBZVUlMb2dQcml2YXRlOworK3N0cnVjdCBZVUlMb2dQcml2YXRlOworIAorIGVudW0gWVVJTG9nTGV2ZWxfdAorIHsKK2RpZmYgLS1naXQgYS9zcmMvWVdpZGdldC5oIGIvc3JjL1lXaWRnZXQuaAoraW5kZXggNWIyODVkMC4uNjM2YTQxYiAxMDA2NDQKKy0tLSBhL3NyYy9ZV2lkZ2V0LmgKKysrKyBiL3NyYy9ZV2lkZ2V0LmgKK0BAIC00NSw3ICs0NSw3IEBAIHR5cGVkZWYgWUNoaWxkcmVuTWFuYWdlcjxZV2lkZ2V0PglZV2lkZ2V0Q2hpbGRyZW5NYW5hZ2VyOworIHR5cGVkZWYgWVNpbmdsZUNoaWxkTWFuYWdlcjxZV2lkZ2V0PglZU2luZ2xlV2lkZ2V0Q2hpbGRNYW5hZ2VyOworIHR5cGVkZWYgWUNoaWxkcmVuUmVqZWN0b3I8WVdpZGdldD4JWVdpZGdldENoaWxkcmVuUmVqZWN0b3I7CisgCistY2xhc3MgWVdpZGdldFByaXZhdGU7Cisrc3RydWN0IFlXaWRnZXRQcml2YXRlOworIAorIAorIC8qKgorZGlmZiAtLWdpdCBhL3NyYy9ZV2l6YXJkLmggYi9zcmMvWVdpemFyZC5oCitpbmRleCA3NjcxY2JmLi45NzViNTk3IDEwMDY0NAorLS0tIGEvc3JjL1lXaXphcmQuaAorKysrIGIvc3JjL1lXaXphcmQuaAorQEAgLTI4LDcgKzI4LDcgQEAKKyAjaW5jbHVkZSAiWVdpZGdldC5oIgorIAorIGNsYXNzIFlNYWNyb1JlY29yZGVyOworLWNsYXNzIFlXaXphcmRQcml2YXRlOworK3N0cnVjdCBZV2l6YXJkUHJpdmF0ZTsKKyBjbGFzcyBZUHVzaEJ1dHRvbjsKKyBjbGFzcyBZUmVwbGFjZVBvaW50OworIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvbGlieXVpL2xpYnl1aV9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9saWJ5dWkvbGlieXVpX2dpdC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Mjk0NTI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvbGlieXVpL2xpYnl1aV9naXQuYmIKQEAgLTAsMCArMSw0MSBAQAorU1VNTUFSWSA9ICJMaWJ5dWkgaXMgYSB3aWRnZXQgYWJzdHJhY3Rpb24gbGlicmFyeSBwcm92aWRpbmcgUXQsIEdUSyBhbmQgbmN1cnNlcyBmcm9udGVuZHMuIgorTElDRU5TRSA9ICJMR1BMdjMiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HLmdwbC0zO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLmxncGwtMi4xO21kNT00ZmJkNjUzODBjZGQyNTU5NTEwNzkwMDhiMzY0NTE2YyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLmxncGwtMzttZDU9ZTZhNjAwZmQ1ZTFkOWNiZGUyZDk4MzY4MDIzM2FkMDIgXAorICAgICAgICAgICAgICAgICAgICIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2xpYnl1aS9saWJ5dWkuZ2l0IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtRml4LUdDQy04LXdhcm5pbmcucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1GaXgtYnVpbGQtd2l0aC1jbGFuZy5wYXRjaCBcCisgICAgICAgICAgICIKKworUFYgPSAiMy4zLjMrZ2l0IgorU1JDUkVWID0gIjJiNjM0Y2I3ODIxZTJlNzlkZDRiN2E3M2NhZjhlNjdjNTAxODkzNzYiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK2luaGVyaXQgY21ha2UgZ2V0dGV4dCBwa2djb25maWcKKworREVQRU5EUyArPSAiYm9vc3QiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKKworZG9fY29uZmlndXJlX3ByZXBlbmQgKCkgeworICAgICAgICBjZCAke1N9CisgICAgICAgIC4vYm9vdHN0cmFwLnNoCisgICAgICAgIGNkIC0KK30KKworZG9faW5zdGFsbF9hcHBlbmQgKCkgeworICAgICAgICBpZiBbICIke2xpYmRpcn0iID0gIiR7YmFzZV9wcmVmaXh9L3Vzci9saWIiIF0gJiYgWyAtZCAke0R9L3Vzci9saWI2NCBdOyB0aGVuCisgICAgICAgICAgICBtdiAke0R9L3Vzci9saWI2NCAke0R9L3Vzci9saWIKKyAgICAgICAgZmkKK30KKworZG9faW5zdGFsbF9hcHBlbmRfY2xhc3MtbmF0aXZlc2RrICgpIHsKKyAgICAgICAgbWtkaXIgLXAgJHtEfS8ke2Jhc2VfcHJlZml4fQorICAgICAgICBtdiAke0R9L3VzciAke0R9LyR7YmFzZV9wcmVmaXh9Cit9CisKK0ZJTEVTXyR7UE59LWRldiA9ICIke2xpYmRpcn0vKiAke2luY2x1ZGVkaXJ9L3l1aSoiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9vcGVuYm94L29wZW5ib3hfMy42LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9vcGVuYm94L29wZW5ib3hfMy42LjEuYmIKaW5kZXggYjM1NGFlNy4uYzM1YTBjNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvb3BlbmJveC9vcGVuYm94XzMuNi4xLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL29wZW5ib3gvb3BlbmJveF8zLjYuMS5iYgpAQCAtMTYsOSArMTYsMTEgQEAKICMgZGVwZW5kcyBvbiB2aXJ0dWFsL2xpYngxMQogUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAotQUxURVJOQVRJVkVfJHtQTn0tY29yZSA9ICJ4LXdpbmRvdy1tYW5hZ2VyIgorQUxURVJOQVRJVkVfJHtQTn0tY29yZSA9ICJ4LXdpbmRvdy1tYW5hZ2VyIHgtc2Vzc2lvbi1tYW5hZ2VyIgogQUxURVJOQVRJVkVfVEFSR0VUW3gtd2luZG93LW1hbmFnZXJdID0gIiR7YmluZGlyfS9vcGVuYm94IgogQUxURVJOQVRJVkVfUFJJT1JJVFlbeC13aW5kb3ctbWFuYWdlcl0gPSAiMTAiCitBTFRFUk5BVElWRV9UQVJHRVRbeC1zZXNzaW9uLW1hbmFnZXJdID0gIiR7YmluZGlyfS9vcGVuYm94LXNlc3Npb24iCitBTFRFUk5BVElWRV9QUklPUklUWVt4LXNlc3Npb24tbWFuYWdlcl0gPSAiMTAwIgogCiBQQUNLQUdFQ09ORklHID8/PSAiIgogUEFDS0FHRUNPTkZJR1tpbWxpYjJdID0gIi0tZW5hYmxlLWltbGliMiwtLWRpc2FibGUtaW1saWIyLGltbGliMiIKQEAgLTM4LDcgKzQwLDcgQEAKIH0KIAogUkRFUEVORFNfJHtQTn0gKz0gIiR7UE59LWNvcmUgJHtQTn0tY29uZmlnICR7UE59LXRoZW1lLWNsZWFybG9va3MiCi1GSUxFU18ke1BOfS1jb3JlID0gIiR7YmluZGlyfS9vcGVuYm94ICR7bGliZGlyfS8qJHtTT0xJQlN9IgorRklMRVNfJHtQTn0tY29yZSA9ICIke2JpbmRpcn0vb3BlbmJveCAke2JpbmRpcn0vb3BlbmJveC1zZXNzaW9uICR7bGliZGlyfS8qJHtTT0xJQlN9IgogCiBGSUxFU18ke1BOfS1seGRlICs9ICIke2RhdGFkaXJ9L2x4ZGUvIFwKICAgICAgICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vbHhwYW5lbCBcCkBAIC00Niw2ICs0OCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2ljb25zIgogCiBGSUxFU18ke1BOfS1nbm9tZSArPSAiIFwKKyAgICAke2JpbmRpcn0vb3BlbmJveC1nbm9tZS1zZXNzaW9uIFwKICAgICAke2RhdGFkaXJ9L2dub21lIFwKICAgICAke2RhdGFkaXJ9L2dub21lLXNlc3Npb24gXAogIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAtZm9udHMtdHJ1ZXR5cGUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1mb250cy10cnVldHlwZS5iYgppbmRleCA2MzJlN2Q0Li4zMDY5ZDJkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1mb250cy10cnVldHlwZS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1mb250cy10cnVldHlwZS5iYgpAQCAtNSw3ICs1LDcgQEAKIFBWID0gIjEuMCIKIFBSID0gInIyIgogCi1pbmhlcml0IHBhY2thZ2Vncm91cCBhbGxhcmNoCitpbmhlcml0IHBhY2thZ2Vncm91cAogCiBQQUNLQUdFUyArPSAiXAogICAgICR7UE59LWNvcmUgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvcGFuZ28vcGFuZ29tbV8yLjQwLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9wYW5nby9wYW5nb21tXzIuNDAuMS5iYgppbmRleCAwMmJiMWNjLi5lMGY3MmNkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9wYW5nby9wYW5nb21tXzIuNDAuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9wYW5nby9wYW5nb21tXzIuNDAuMS5iYgpAQCAtMTIsNyArMTIsOSBAQAogU1JDX1VSSVttZDVzdW1dID0gIjg3NGVhZGQ5NDM0NjEzZGJhY2YwMjcyYzgyYzNhYzIzIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjk3NjJlZTJhMmQ1NzgxYmU2Nzk3NDQ4ZDRkZDIzODNjZTE0OTA3MTU5YjMwYmMxMmJmNmIwOGU3MjI3YmUzYWYiCiAKLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBFWFRSQV9PRUNPTkYgPSAiIC0tZGlzYWJsZS1kb2N1bWVudGF0aW9uICIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvcXJlbmNvZGUvcXJlbmNvZGVfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvcXJlbmNvZGUvcXJlbmNvZGVfZ2l0LmJiCmluZGV4IDZhMTU5YTcuLmY1Mzk3NzUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3FyZW5jb2RlL3FyZW5jb2RlX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9xcmVuY29kZS9xcmVuY29kZV9naXQuYmIKQEAgLTQsOSArNCw5IEBACiBTRUNUSU9OID0gImxpYnMiCiBMSUNFTlNFID0gIkxHUEx2Mi4xIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MmQ1MDI1ZDRhYTM0OTViZWZlZjhmMTcyMDZhNWIwYTEiCi1QViA9ICIzLjQuNCtnaXQke1NSQ1BWfSIKK1BWID0gIjQuMC4wK2dpdCR7U1JDUFZ9IgogCi1TUkNSRVYgPSAiMWI1NjVjN2I1OTkwMjk4MThmYzU5NmU3ZGE0MzcxYTMwODNkYTM2YyIKK1NSQ1JFViA9ICIwN2YzYzVkNGJmOTEzNjcxMTQyMmNjN2RiZjI4YWZmNDY5ZGEyMjBhIgogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2Z1a3VjaGkvbGlicXJlbmNvZGUuZ2l0IgogCiBTID0gIiR7V09SS0RJUn0vZ2l0IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL01ha2VmaWxlLm9lIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL01ha2VmaWxlLm9lCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZWU2OTM0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3NsaW0vc2xpbS9NYWtlZmlsZS5vZQorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLSMgTWFrZWZpbGUgZm9yIHNsaW0gLSBPcGVuRW1iZWRkZWQKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotCi1TTElNTERGTEFHUz0tbFhmdCAtbFgxMSAtbGZyZWV0eXBlIC1sWHJlbmRlciAtbGZvbnRjb25maWcgLWxwbmcxMiAtbHogLWxtIC1sY3J5cHQgLWxYbXUgLWxwbmcgLWxqcGVnIC1scnQgLWxwdGhyZWFkCi1DVVNUT009LURIQVZFX1NIQURPVwotCi1VU0VfUEFNPTEKLWlmZGVmIFVTRV9QQU0KLVNMSU1MREZMQUdTKz0gLWxwYW0KLUNVU1RPTSs9IC1EVVNFX1BBTQotZW5kaWYKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1OQU1FPXNsaW0KLVZFUlNJT049MS4zLjIKLQotREVGSU5FUz0tRFBBQ0tBR0U9XCIkKE5BTUUpXCIgLURWRVJTSU9OPVwiJChWRVJTSU9OKVwiIFwKLQkJLURQS0dEQVRBRElSPVwiJChQUkVGSVgpL3NoYXJlL3NsaW1cIiAtRFNZU0NPTkZESVI9XCIkKENGR0RJUilcIgotCi1PQkpFQ1RTPWpwZWcubyBwbmcubyBtYWluLm8gaW1hZ2UubyBudW1sb2NrLm8gY2ZnLm8gc3dpdGNodXNlci5vIGFwcC5vIFwKLQlwYW5lbC5vIHV0aWwubwotaWZkZWYgVVNFX1BBTQotT0JKRUNUUys9UEFNLm8KLWVuZGlmCi0KLWFsbDogc2xpbQotCi1zbGltOiAkKE9CSkVDVFMpCi0JJChDWFgpICQoT0JKRUNUUykgJChMREZMQUdTKSAkKFNMSU1MREZMQUdTKSAtbyAkKE5BTUUpCi0KLS5jcHAubzoKLQkkKENYWCkgJChDWFhGTEFHUykgJChERUZJTkVTKSAkKENVU1RPTSkgLWMgJDwgLW8gJEAKLQotLmMubzoKLQkkKENDKSAkKENGTEFHUykgJChERUZJTkVTKSAkKENVU1RPTSkgLWMgJDwgLW8gJEAKLQotaW5zdGFsbDogc2xpbSBpbnN0YWxsLXRoZW1lCi0JaW5zdGFsbCAtRCAtbSA3NTUgc2xpbSAkKERFU1RESVIpJChQUkVGSVgpL2Jpbi9zbGltCi0JaW5zdGFsbCAtRCAtbSA2NDQgc2xpbS4xICQoREVTVERJUikkKE1BTkRJUikvbWFuMS9zbGltLjEKLQl0ZXN0IC1lICQoREVTVERJUikkKENGR0RJUikvc2xpbS5jb25mIHx8IFwKLQkJaW5zdGFsbCAtRCAtbSA2NDQgc2xpbS5jb25mICQoREVTVERJUikkKENGR0RJUikvc2xpbS5jb25mCi0KLWNsZWFuOgotCUBybSAtZiBzbGltICoubwotCi1kaXN0OgotCUBybSAtcmYgJChOQU1FKS0kKFZFUlNJT04pCi0JQG1rZGlyICQoTkFNRSktJChWRVJTSU9OKQotCUBjcCAtciAqLmNwcCAqLmggKi5jIE1ha2VmaWxlIE1ha2VmaWxlLiogQ09QWUlORyBDaGFuZ2VMb2cgSU5TVEFMTCBSRUFETUUgVE9ETyBcCi0JCXhpbml0cmMuc2FtcGxlIHNsaW0uMSBUSEVNRVMgdGhlbWVzIHNsaW0uY29uZiAkKE5BTUUpLSQoVkVSU0lPTikKLQlAcm0gLXJmICQoTkFNRSktJChWRVJTSU9OKS90aGVtZXMvLnN2bgkkKE5BTUUpLSQoVkVSU0lPTikvdGhlbWVzL2RlZmF1bHQvLnN2bgotCUB0YXIgY3Z6ZiAkKE5BTUUpLSQoVkVSU0lPTikudGFyLmd6ICQoTkFNRSktJChWRVJTSU9OKQotCUBybSAtcmYgJChOQU1FKS0kKFZFUlNJT04pCi0KLQotaW5zdGFsbC10aGVtZToKLQlpbnN0YWxsIC1EIC1tIDY0NCB0aGVtZXMvZGVmYXVsdC9zbGltLnRoZW1lIFwKLQkJICQoREVTVERJUikkKFBSRUZJWCkvc2hhcmUvc2xpbS90aGVtZXMvZGVmYXVsdC9zbGltLnRoZW1lCi0JaW5zdGFsbCAtRCAtbSA2NDQgdGhlbWVzL2RlZmF1bHQvcGFuZWwucG5nIFwKLQkJICQoREVTVERJUikkKFBSRUZJWCkvc2hhcmUvc2xpbS90aGVtZXMvZGVmYXVsdC9wYW5lbC5wbmcKLQlpbnN0YWxsIC1EIC1tIDY0NCB0aGVtZXMvZGVmYXVsdC9iYWNrZ3JvdW5kLmpwZyBcCi0JCSAkKERFU1RESVIpJChQUkVGSVgpL3NoYXJlL3NsaW0vdGhlbWVzL2RlZmF1bHQvYmFja2dyb3VuZC5qcGcKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3NsaW0vc2xpbS9zbGltLWR5bndtIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL3NsaW0tZHlud20KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5YzlkNDcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL3NsaW0tZHlud20KKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLSMhL2Jpbi9zaAotdXBkYXRlX3NsaW1fd21saXN0Ci1pZiBbICJ4JDEiID0gIngtbm9kYWVtb24iIF07IHRoZW4KLSAgc2hpZnQKLSAgZXhlYyBzbGltICIkQCIKLWVsc2UKLSAgc2xpbSAtZCAiJEAiCi1maQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL3NsaW0ucGFtZCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3NsaW0vc2xpbS9zbGltLnBhbWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwYzM0YjEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL3NsaW0ucGFtZAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLSMgQmVnaW4gL2V0Yy9wYW0uZC9zbGltCi0KLWF1dGggICAgICAgcmVxdWlyZWQgICAgIHBhbV9zaGVsbHMuc28KLWF1dGggICAgICAgaW5jbHVkZSAgICAgIGNvbW1vbi1hdXRoCi1hdXRoICAgICAgIG9wdGlvbmFsICAgICBwYW1fc2VjdXJldHR5LnNvCi1hdXRoICAgICAgIG9wdGlvbmFsICAgICBwYW1fZ25vbWVfa2V5cmluZy5zbwotCi1hY2NvdW50ICAgIHJlcXVpcmVkICAgICBwYW1fbm9sb2dpbi5zbwotYWNjb3VudCAgICBpbmNsdWRlICAgICAgY29tbW9uLWFjY291bnQKLQotcGFzc3dvcmQgICBpbmNsdWRlICAgICAgY29tbW9uLXBhc3N3b3JkCi0KLXNlc3Npb24gICAgaW5jbHVkZSAgICAgIGNvbW1vbi1zZXNzaW9uCi1zZXNzaW9uICAgIHJlcXVpcmVkICAgICBwYW1fbWtob21lZGlyLnNvIHNrZWw9L2V0Yy9za2VsLyB1bWFzaz0wMDIyCi1zZXNzaW9uICAgIG9wdGlvbmFsICAgICBwYW1fbGFzdGxvZy5zbyBub3d0bXAKLXNlc3Npb24gICAgb3B0aW9uYWwgICAgIHBhbV9tYWlsLnNvIGRpcj0vdmFyL21haWwgc3RhbmRhcmQKLXNlc3Npb24gICAgb3B0aW9uYWwgICAgIHBhbV9nbm9tZV9rZXlyaW5nLnNvICBhdXRvX3N0YXJ0Ci0KLSMgRW5kIC9ldGMvcGFtLmQvc2xpbQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL3NsaW0uc2VydmljZSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3NsaW0vc2xpbS9zbGltLnNlcnZpY2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0MTM1MWEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3Mvc2xpbS9zbGltL3NsaW0uc2VydmljZQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVtVbml0XQotRGVzY3JpcHRpb249U0xpTSBTaW1wbGUgTG9naW4gTWFuYWdlcgotUmVxdWlyZXM9ZGV2LXR0eTcuZGV2aWNlCi1BZnRlcj1kZXYtdHR5Ny5kZXZpY2Ugc3lzdGVtZC11c2VyLXNlc3Npb25zLnNlcnZpY2UKLQotW1NlcnZpY2VdCi1FeGVjU3RhcnQ9L3Vzci9iaW4vc2xpbSAtbm9kYWVtb24KLVN0YW5kYXJkT3V0cHV0PXN5c2xvZwotCi1bSW5zdGFsbF0KLVdhbnRlZEJ5PWdyYXBoaWNhbC50YXJnZXQKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3NsaW0vc2xpbS91cGRhdGVfc2xpbV93bWxpc3QgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy9zbGltL3NsaW0vdXBkYXRlX3NsaW1fd21saXN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjExNjUzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3NsaW0vc2xpbS91cGRhdGVfc2xpbV93bWxpc3QKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi0jIS91c3IvYmluL3BlcmwgLXcKLSMKLSMgdXBkYXRlX3NsaW1fd21saXN0LCBiYXNlZCBvbjoKLSMgdXBkYXRlX3dkbV93bWxpc3QsIChjKSAxOTk4IE1hcmNlbG8gTWFnYWxs824gPG1tYWdhbGxvQGRlYmlhbi5vcmc+Ci0jIHJld3JpdGVuIHRvIHVzZSB0aGUgeC13aW5kb3ctbWFuYWdlciBhbHRlcm5hdGl2ZQotIyBtb2RpZmllZCB0byBhbHNvIHVzZSB0aGUgeC1zZXNzaW9uLW1hbmFnZXIgYWx0ZXJuYXRpdmUgYnkgQXJ0aHVyIEtvcm4KLSMgQ29weXJpZ2h0IDIwMDAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLSMgTW9kaWZpZWQgdG8gdXNlIHRoZSBmcmVlZGVza3RvcC5vcmcgLmRlc2t0b3AgbGlrZSBrZG0gYW5kIGdkbQotIwotIyBUaGlzIHNjcmlwdCB3aWxsIHJlYWQgdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIHdpbmRvdyBtYW5hZ2VycyBmcm9tCi0jIHRoZSBmcmVlZGVza3RvcCAuZGVza3RvcCBmaWxlcyBpbiA8ZXRjPi9YMTEvc2Vzc2lvbnMvOjxldGM+L2RtL1Nlc3Npb25zLzoKLSMgPHNoYXJlPi94c2Vzc2lvbnMvCi0jIGFuZCB1cGRhdGUgdGhlIHNlc3Npb25zIGxpbmUgaW4gL2V0Yy9zbGltLmNvbmYuCi0jIEJFV0FSRTogSXQgZG9lc24ndCBhc2sgYW55IHF1ZXN0aW9ucyBhYm91dCB0aGlzLiBJdCBqdXN0IGRvZXMgaXQuIEl0Ci0jIHRha2VzIGFuIG9wdGlvbmFsIGxpc3Qgb2Ygd2luZG93IG1hbmFnZXJzLgotCi11c2Ugc3RyaWN0OwotdXNlIEZpbGU6OkRlc2t0b3BFbnRyeTsKLQotbXkgJHdtX2xpc3Q9Jyc7Ci1teSAlZGVza3RvcF9maWxlczsKLQotdW5sZXNzIChAQVJHVikgewotICAgICNteSBAd21fbGlzdCA9ICgnZGVmYXVsdCcpOwotICAgIG15IEB3bV9saXN0OwotICAgIGZvcmVhY2ggbXkgJGRpciAoJy9ldGMvWDExL3Nlc3Npb25zLycsJy9ldGMvZG0vU2Vzc2lvbnMvJywnL3Vzci9zaGFyZS94c2Vzc2lvbnMvJykgewotCSAgICBuZXh0IHVubGVzcyAob3BlbmRpciBESVIsICRkaXIpOwotCSAgICBteSBAZmlsZXM7Ci0JICAgIEBmaWxlcyA9IGdyZXAgeyAvXC5kZXNrdG9wJC8gJiYgLXIgIiRkaXIvJF8iIH0gcmVhZGRpcihESVIpOwotCSAgICBmb3JlYWNoIG15ICRmaWxlIChAZmlsZXMpIHsKLQkJICAgcHVzaCBAeyRkZXNrdG9wX2ZpbGVzeyRmaWxlfX0sICIkZGlyLyRmaWxlIjsKLQkgICAgfQotICAgIH0KLSAgICBERVNLVE9QOiBmb3JlYWNoIG15ICRkZXNrdG9wX2ZpbGUgKGtleXMoJWRlc2t0b3BfZmlsZXMpKSB7Ci0JICAgIGZvcmVhY2ggbXkgJGZpbGUgKEB7JGRlc2t0b3BfZmlsZXN7JGRlc2t0b3BfZmlsZX19KSB7Ci0JCSAgICBteSAkZW50cnkgPSBGaWxlOjpEZXNrdG9wRW50cnktPm5ld19mcm9tX2ZpbGUoJGZpbGUpOwotCQkgICAgbmV4dCBERVNLVE9QIGlmIChkZWZpbmVkKCRlbnRyeS0+Z2V0X3ZhbHVlKCdIaWRkZW4nKSkKLQkJCWFuZCAkZW50cnktPmdldF92YWx1ZSgnSGlkZGVuJykgZXEgJ3RydWUnKTsKLQkJICAgIGlmICgkZW50cnktPmdldF92YWx1ZSgnTmFtZScpID1+IC9eZ25vbWUkL2kpIHsKLQkJCSAgICBwdXNoIChAd21fbGlzdCwgJ2dub21lJyk7Ci0JCSAgICB9Ci0JCSAgICBlbHNpZiAoJGVudHJ5LT5nZXRfdmFsdWUoJ05hbWUnKSA9fiAvXmtkZSQvaSkgewotCQkJICAgIHB1c2ggKEB3bV9saXN0LCAna2RlJyk7Ci0JCSAgICB9Ci0JCSAgICBlbHNpZiAoZGVmaW5lZCgkZW50cnktPmdldF92YWx1ZSgnRXhlYycpKSkgewotCQkJICAgIHB1c2ggKEB3bV9saXN0LCAkZW50cnktPmdldF92YWx1ZSgnRXhlYycpKTsKLQkJICAgIH0KLQkJICAgIGVsc2UgeyAjIG5vdCBmb3VuZCwgZ28gdG8gbmV4dCBmaWxlCi0JCQkgICAgbmV4dDsKLQkJICAgIH0KLQkJICAgICMgZm91bmQsIHByb2NlZWQgdG8gbmV4dCBkZXN0b3AgZmlsZQotCQkgICAgbmV4dCBERVNLVE9QOwotCSAgICB9Ci0gICAgfQotICAgJHdtX2xpc3QgPSBqb2luICgnLCcsIHNvcnQgQHdtX2xpc3QpIC4gJyxjdXN0b20nOwotfSBlbHNlIHsKLSAgICAkd21fbGlzdCA9IGpvaW4gKCcsJywgc29ydCBAQVJHVik7Ci19Ci0KLW9wZW4gKFNMSU1fQ09ORklHX0ZJTEUsICc8L2V0Yy9zbGltLmNvbmYnKQotICAgIG9yIGRpZSAiQ2FuJ3Qgb3BlbiAvZXRjL3NsaW0uY29uZiBmb3IgcmVhZGluZzogJCEiOwotb3BlbiAoTkVXX1NMSU1fQ09ORklHX0ZJTEUsICc+L2V0Yy9zbGltLmNvbmYubmV3JykKLSAgICBvciBkaWUgIkNhbid0IG9wZW4gL2V0Yy9zbGltLmNvbmYubmV3IGZvciB3cml0aW5nOiAkISI7Ci0KLXdoaWxlICg8U0xJTV9DT05GSUdfRklMRT4pIHsKLSAgICBzfF4oc2Vzc2lvbnNccyopLip8JDEkd21fbGlzdHw7Ci0gICAgcHJpbnQgTkVXX1NMSU1fQ09ORklHX0ZJTEU7Ci19Ci0KLWNsb3NlKFNMSU1fQ09ORklHX0ZJTEUpOwotY2xvc2UoTkVXX1NMSU1fQ09ORklHX0ZJTEUpOwotCi1yZW5hbWUgJy9ldGMvc2xpbS5jb25mLm5ldycsICcvZXRjL3NsaW0uY29uZicKLSAgICBvciBkaWUgIkNhbid0IHJlbmFtZSAvZXRjL3NsaW0uY29uZi5uZXc6ICQhIjsKLQotZXhpdCAwOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvdHNsaWIvdHNsaWJfMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvdHNsaWIvdHNsaWJfMS4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlN2M0OGZmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3RzbGliL3RzbGliXzEuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLVNVTU1BUlkgPSAiQW4gYWJzdHJhY3Rpb24gbGF5ZXIgZm9yIHRvdWNoc2NyZWVuIHBhbmVsIGV2ZW50cyIKLURFU0NSSVBUSU9OID0gIlRzbGliIGlzIGFuIGFic3RyYWN0aW9uIGxheWVyIGZvciB0b3VjaHNjcmVlbiBwYW5lbCBcCi1ldmVudHMsIGFzIHdlbGwgYXMgYSBmaWx0ZXIgc3RhY2sgZm9yIHRoZSBtYW5pcHVsYXRpb24gb2YgdGhvc2UgZXZlbnRzLiBcCi1Uc2xpYiBpcyBnZW5lcmFsbHkgdXNlZCBvbiBlbWJlZGRlZCBkZXZpY2VzIHRvIHByb3ZpZGUgYSBjb21tb24gdXNlciBcCi1zcGFjZSBpbnRlcmZhY2UgdG8gdG91Y2hzY3JlZW4gZnVuY3Rpb25hbGl0eS4iCi1IT01FUEFHRSA9ICJodHRwOi8vdHNsaWIub3JnLyIKLQotQVVUSE9SID0gIlJ1c3NlbGwgS2luZyB3LyBwbHVnaW5zIGJ5IENocmlzIExhcnNvbiBldC4gYWwuIgotU0VDVElPTiA9ICJiYXNlIgotTElDRU5TRSA9ICJMR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1mMzBhOTcxNmVmMzc2MmUzNDY3YTJmNjJiZjc5MGYwYSIKLQotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20va2VyZ290aC90c2xpYi9yZWxlYXNlcy9kb3dubG9hZC8ke1BWfS90c2xpYi0ke1BWfS50YXIueHo7ZG93bmxvYWRmaWxlbmFtZT10c2xpYi0ke1BWfS50YXIueHogXAotICAgICAgICAgICBmaWxlOi8vdHMuY29uZiBcCi0gICAgICAgICAgIGZpbGU6Ly90c2xpYi5zaCBcCi0iCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIxNDc3MWY4NjA3YjM0MWJiNGIyOTc4MTlkMzdlODM3ZCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJmZTM1ZTVmNzEwZWE5MzNiMTE4ZjcxMGUyY2U0NDAzYWMwNzZmZTY5OTI2YjU3MDMzMzg2N2Q0ZGUwODJhNTFjIgotCi1VUFNUUkVBTV9DSEVDS19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2tlcmdvdGgvdHNsaWIvcmVsZWFzZXMiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi1FWFRSQV9PRUNPTkYgPSAiLS1lbmFibGUtc2hhcmVkIC0tZGlzYWJsZS1oMzYwMCAtLWVuYWJsZS1pbnB1dCAtLWRpc2FibGUtY29yZ2kgLS1kaXNhYmxlLWNvbGxpZSAtLWRpc2FibGUtbWs3MTIgLS1kaXNhYmxlLWFyY3RpYzIgLS1kaXNhYmxlLXVjYjF4MDAiCi0KLWRvX2luc3RhbGxfcHJlcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS90cy5jb25mICR7U30vZXRjL3RzLmNvbmYKLX0KLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9wcm9maWxlLmQvCi0gICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vdHNsaWIuc2ggJHtEfSR7c3lzY29uZmRpcn0vcHJvZmlsZS5kLwotfQotCi0jIFBlb3BsZSBzaG91bGQgY29uc2lkZXIgdXNpbmcgdWRldidzIC9kZXYvaW5wdXQvdG91Y2hzY3JlZW4wIHN5bWxpbmsKLSMgaW5zdGVhZCBvZiBkZXRlY3Qtc3R5bHVzCi0jUkRFUEVORFNfdHNsaWItY29uZl93ZWlyZC1tYWNoaW5lID0gImRldGVjdC1zdHlsdXMiCi1SUFJPVklERVNfdHNsaWItY29uZiA9ICJsaWJ0cy0wLjAtY29uZiIKLQotUEFDS0FHRVMgPSsgInRzbGliLWNvbmYgdHNsaWItdGVzdHMgdHNsaWItY2FsaWJyYXRlIgotREVCSUFOX05PQVVUT05BTUVfdHNsaWItY29uZiA9ICIxIgotREVCSUFOX05PQVVUT05BTUVfdHNsaWItdGVzdHMgPSAiMSIKLURFQklBTl9OT0FVVE9OQU1FX3RzbGliLWNhbGlicmF0ZSA9ICIxIgotCi1SREVQRU5EU18ke1BOfSA9ICJ0c2xpYi1jb25mIgotUlJFQ09NTUVORFNfJHtQTn0gPSAicG9pbnRlcmNhbCIKLQotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vdHMvKi5sYSIKLUZJTEVTX3RzbGliLWNvbmYgPSAiJHtzeXNjb25mZGlyfS90cy5jb25mICR7c3lzY29uZmRpcn0vcHJvZmlsZS5kL3RzbGliLnNoICR7ZGF0YWRpcn0vdHNsaWIiCi1GSUxFU18ke1BOfSA9ICIke2xpYmRpcn0vKi5zby4qICR7bGliZGlyfS90cy8qLnNvKiIKLUZJTEVTX3RzbGliLWNhbGlicmF0ZSArPSAiJHtiaW5kaXJ9L3RzX2NhbGlicmF0ZSIKLUZJTEVTX3RzbGliLXRlc3RzID0gIiR7YmluZGlyfS90c19oYXJ2ZXN0ICR7YmluZGlyfS90c19wcmludCAke2JpbmRpcn0vdHNfcHJpbnRfcmF3ICR7YmluZGlyfS90c190ZXN0IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvdHNsaWIvdHNsaWJfMS4xNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3RzbGliL3RzbGliXzEuMTUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FlOTQxYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3RzbGliL3RzbGliXzEuMTUuYmIKQEAgLTAsMCArMSw4MiBAQAorU1VNTUFSWSA9ICJBbiBhYnN0cmFjdGlvbiBsYXllciBmb3IgdG91Y2hzY3JlZW4gcGFuZWwgZXZlbnRzIgorREVTQ1JJUFRJT04gPSAiVHNsaWIgaXMgYW4gYWJzdHJhY3Rpb24gbGF5ZXIgZm9yIHRvdWNoc2NyZWVuIHBhbmVsIFwKK2V2ZW50cywgYXMgd2VsbCBhcyBhIGZpbHRlciBzdGFjayBmb3IgdGhlIG1hbmlwdWxhdGlvbiBvZiB0aG9zZSBldmVudHMuIFwKK1RzbGliIGlzIGdlbmVyYWxseSB1c2VkIG9uIGVtYmVkZGVkIGRldmljZXMgdG8gcHJvdmlkZSBhIGNvbW1vbiB1c2VyIFwKK3NwYWNlIGludGVyZmFjZSB0byB0b3VjaHNjcmVlbiBmdW5jdGlvbmFsaXR5LiIKK0hPTUVQQUdFID0gImh0dHA6Ly90c2xpYi5vcmcvIgorCitBVVRIT1IgPSAiTWFydGluIEtlcHBsaW5nZXIgPG1hcnRpbmtAcG9zdGVvLmRlPiIKK1NFQ1RJT04gPSAiYmFzZSIKK0xJQ0VOU0UgPSAiTEdQTHYyKyAmIEdQTHYyKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiXAorICAgIGZpbGU6Ly9DT1BZSU5HO21kNT1mYzE3OGJjZDQyNTA5MDkzOWE4YjYzNGQxZDZhOTU5NCBcCisgICAgZmlsZTovL3Rlc3RzL0NPUFlJTkc7bWQ1PWEyM2E3NGIzZjRjYWY5NjE2MjMwNzg5ZDk0MjE3YWNiIFwKKyIKKworU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20va2VyZ290aC90c2xpYi9yZWxlYXNlcy9kb3dubG9hZC8ke1BWfS90c2xpYi0ke1BWfS50YXIueHo7ZG93bmxvYWRmaWxlbmFtZT10c2xpYi0ke1BWfS50YXIueHogXAorICAgICAgICAgICBmaWxlOi8vdHMuY29uZiBcCisgICAgICAgICAgIGZpbGU6Ly90c2xpYi5zaCBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiOWZmMzY3ODhjOWFiNzZhMTBiNTg0MjIyMjdiOTYyOWUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiN2NlNDg4MDdjYWI2NTUwNzZkNzFhMWNlZWYzZWQwYWI4YTI1ZGY5ODA3NDk4MWQ0YThmZDE0NzdlZTVmNzEwYyIKKworVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9rZXJnb3RoL3RzbGliL3JlbGVhc2VzIgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworUEFDS0FHRUNPTkZJRyA/Pz0gImRlYm91bmNlIGRlaml0dGVyIGlpciBsaW5lYXIgbWVkaWFuIHB0aHJlcyBza2lwIGxvd3Bhc3MgaW52ZXJ0IHZhcmlhbmNlIGlucHV0IHRvdWNoa2l0IHdhdmVzaGFyZSIKK1BBQ0tBR0VDT05GSUdbZGVib3VuY2VdID0gIi0tZW5hYmxlLWRlYm91bmNlLC0tZGlzYWJsZS1kZWJvdW5jZSIKK1BBQ0tBR0VDT05GSUdbZGVqaXR0ZXJdID0gIi0tZW5hYmxlLWRlaml0dGVyLC0tZGlzYWJsZS1kZWppdHRlciIKK1BBQ0tBR0VDT05GSUdbaWlyXSA9ICItLWVuYWJsZS1paXIsLS1kaXNhYmxlLWlpciIKK1BBQ0tBR0VDT05GSUdbbGluZWFyXSA9ICItLWVuYWJsZS1saW5lYXIsLS1kaXNhYmxlLWxpbmVhciIKK1BBQ0tBR0VDT05GSUdbbWVkaWFuXSA9ICItLWVuYWJsZS1tZWRpYW4sLS1kaXNhYmxlLW1lZGlhbiIKK1BBQ0tBR0VDT05GSUdbcHRocmVzXSA9ICItLWVuYWJsZS1wdGhyZXMsLS1kaXNhYmxlLXB0aHJlcyIKK1BBQ0tBR0VDT05GSUdbc2tpcF0gPSAiLS1lbmFibGUtc2tpcCwtLWRpc2FibGUtc2tpcCIKK1BBQ0tBR0VDT05GSUdbbG93cGFzc10gPSAiLS1lbmFibGUtbG93cGFzcywtLWRpc2FibGUtbG93cGFzcyIKK1BBQ0tBR0VDT05GSUdbaW52ZXJ0XSA9ICItLWVuYWJsZS1pbnZlcnQsLS1kaXNhYmxlLWludmVydCIKK1BBQ0tBR0VDT05GSUdbdmFyaWFuY2VdID0gIi0tZW5hYmxlLXZhcmlhbmNlLC0tZGlzYWJsZS12YXJpYW5jZSIKK1BBQ0tBR0VDT05GSUdbaW5wdXRdID0gIi0tZW5hYmxlLWlucHV0LC0tZGlzYWJsZS1pbnB1dCIKK1BBQ0tBR0VDT05GSUdbdGF0dW5nXSA9ICItLWVuYWJsZS10YXR1bmcsLS1kaXNhYmxlLXRhdHVuZyIKK1BBQ0tBR0VDT05GSUdbdG91Y2hraXRdID0gIi0tZW5hYmxlLXRvdWNoa2l0LC0tZGlzYWJsZS10b3VjaGtpdCIKK1BBQ0tBR0VDT05GSUdbd2F2ZXNoYXJlXSA9ICItLWVuYWJsZS13YXZlc2hhcmUsLS1kaXNhYmxlLXdhdmVzaGFyZSIKK1BBQ0tBR0VDT05GSUdbdWNiMXgwMF0gPSAiLS1lbmFibGUtdWNiMXgwMCwtLWRpc2FibGUtdWNiMXgwMCIKK1BBQ0tBR0VDT05GSUdbbWs3MTJdID0gIi0tZW5hYmxlLW1rNzEyLC0tZGlzYWJsZS1tazcxMiIKK1BBQ0tBR0VDT05GSUdbaDM2MDBdID0gIi0tZW5hYmxlLWgzNjAwLC0tZGlzYWJsZS1oMzYwMCIKK1BBQ0tBR0VDT05GSUdbZG1jXSA9ICItLWVuYWJsZS1kbWMsLS1kaXNhYmxlLWRtYyIKK1BBQ0tBR0VDT05GSUdbbGluZWFyLWgyMjAwXSA9ICItLWVuYWJsZS1saW5lYXItaDIyMDAsLS1kaXNhYmxlLWxpbmVhci1oMjIwMCIKK1BBQ0tBR0VDT05GSUdbY29yZ2ldID0gIi0tZW5hYmxlLWNvcmdpLC0tZGlzYWJsZS1jb3JnaSIKK1BBQ0tBR0VDT05GSUdbY29sbGllXSA9ICItLWVuYWJsZS1jb2xsaWUsLS1kaXNhYmxlLWNvbGxpZSIKK1BBQ0tBR0VDT05GSUdbYXJjdGljMl0gPSAiLS1lbmFibGUtYXJjdGljMiwtLWRpc2FibGUtYXJjdGljMiIKK1BBQ0tBR0VDT05GSUdbZG1jX2R1czMwMDBdID0gIi0tZW5hYmxlLWRtY19kdXMzMDAwLC0tZGlzYWJsZS1kbWNfZHVzMzAwMCIKK1BBQ0tBR0VDT05GSUdbY3k4bXJsbi1wYWxtcHJlXSA9ICItLWVuYWJsZS1jeThtcmxuLXBhbG1wcmUsLS1kaXNhYmxlLWN5OG1ybG4tcGFsbXByZSIKK1BBQ0tBR0VDT05GSUdbZ2FsYXhdID0gIi0tZW5hYmxlLWdhbGF4LC0tZGlzYWJsZS1nYWxheCIKK1BBQ0tBR0VDT05GSUdbZGVidWddID0gIi0tZW5hYmxlLWRlYnVnLC0tZGlzYWJsZS1kZWJ1ZyIKKworZG9faW5zdGFsbF9wcmVwZW5kKCkgeworICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3RzLmNvbmYgJHtTfS9ldGMvdHMuY29uZgorfQorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3Byb2ZpbGUuZC8KKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS90c2xpYi5zaCAke0R9JHtzeXNjb25mZGlyfS9wcm9maWxlLmQvCit9CisKK1JQUk9WSURFU190c2xpYi1jb25mID0gImxpYnRzLTAuMC1jb25mIgorCitQQUNLQUdFUyA9KyAidHNsaWItY29uZiB0c2xpYi10ZXN0cyB0c2xpYi1jYWxpYnJhdGUgdHNsaWItdWlucHV0IgorREVCSUFOX05PQVVUT05BTUVfdHNsaWItY29uZiA9ICIxIgorREVCSUFOX05PQVVUT05BTUVfdHNsaWItdGVzdHMgPSAiMSIKK0RFQklBTl9OT0FVVE9OQU1FX3RzbGliLWNhbGlicmF0ZSA9ICIxIgorREVCSUFOX05PQVVUT05BTUVfdHNsaWItdWlucHV0ID0gIjEiCisKK1JERVBFTkRTXyR7UE59ID0gInRzbGliLWNvbmYiCitSUkVDT01NRU5EU18ke1BOfSA9ICJwb2ludGVyY2FsIgorCitGSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS90cy8qLmxhIgorRklMRVNfdHNsaWItY29uZiA9ICIke3N5c2NvbmZkaXJ9L3RzLmNvbmYgJHtzeXNjb25mZGlyfS9wcm9maWxlLmQvdHNsaWIuc2ggJHtkYXRhZGlyfS90c2xpYiIKK0ZJTEVTXyR7UE59ID0gIiR7bGliZGlyfS8qLnNvLiogJHtsaWJkaXJ9L3RzLyouc28qIgorRklMRVNfdHNsaWItY2FsaWJyYXRlICs9ICIke2JpbmRpcn0vdHNfY2FsaWJyYXRlIgorRklMRVNfdHNsaWItdWlucHV0ICs9ICIke2JpbmRpcn0vdHNfdWlucHV0IgorCitGSUxFU190c2xpYi10ZXN0cyA9ICIke2JpbmRpcn0vdHNfaGFydmVzdCAke2JpbmRpcn0vdHNfcHJpbnQgJHtiaW5kaXJ9L3RzX3ByaW50X3JhdyAke2JpbmRpcn0vdHNfcHJpbnRfbXQgXAorICAgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L3RzX3Rlc3QgJHtiaW5kaXJ9L3RzX3Rlc3RfbXQgJHtiaW5kaXJ9L3RzX3ZlcmlmeSAke2JpbmRpcn0vdHNfZmluZGRldiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3ZkcGF1L2xpYnZkcGF1X2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3ZkcGF1L2xpYnZkcGF1X2dpdC5iYgppbmRleCAzMWY0ZGY0Li4zMWJjY2UwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy92ZHBhdS9saWJ2ZHBhdV9naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MvdmRwYXUvbGlidmRwYXVfZ2l0LmJiCkBAIC0xMiw3ICsxMiw5IEBACiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBkb19pbnN0YWxsX2FwcGVuZCgpIHsKICAgICBybSAtZiAke0R9JHtsaWJkaXJ9LyovKi5sYQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveGN1cnNvcmdlbi94Y3Vyc29yZ2VuXzEuMC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveGN1cnNvcmdlbi94Y3Vyc29yZ2VuXzEuMC41LmJiCmluZGV4IDI3YTM4YzEuLmEyMWRjNDIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hjdXJzb3JnZW4veGN1cnNvcmdlbl8xLjAuNS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94Y3Vyc29yZ2VuL3hjdXJzb3JnZW5fMS4wLjUuYmIKQEAgLTcsNiArNyw4IEBACiBTUkNfVVJJW21kNXN1bV0gPSAiMDlmNTY5NzhhNjI4NTQ1MzRkZWFjYzhhYThmZjMwMzEiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYmM3MTcxYTBmYTIxMmRhODY2ZmNhMjMwMTI0MTYzMGUyMDA5YWVhOGM0ZGRiNzVmMjFiNTFhMzFjMmU0YzU4MSIKIAotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBhdXRvdG9vbHMgcGtnY29uZmlnCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAvYmRmdG9wY2ZfMS4wLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC9iZGZ0b3BjZl8xLjAuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzVkNTAwMi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC9iZGZ0b3BjZl8xLjAuNS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLXJlcXVpcmUgcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94b3JnLWFwcC1jb21tb24uaW5jCi0KLVNVTU1BUlkgPSAiYmRmdG9wY2YgaXMgYSB0b29sIHRvIGNvbnZlcnQgQkRGIGZvbnRzIHRvIFBDRiBmb250cyIKLUhPTUVQQUdFID0gImh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy94b3JnL2FwcC9iZGZ0b3BjZi8iCi1TRUNUSU9OID0gIngxMS9hcHAiCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWY5YTM1MzMzYWRmNzVlZGQxZWFlZjg0YmNhNjVhNDkwIgotREVQRU5EUyA9ICJsaWJ4Zm9udCIKLQotU1JDX1VSSVttZDVzdW1dID0gIjUzYTQ4ZTFmZGZlYzI5YWIyZTg5Zjg2ZDRiN2NhOTAyIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjM4ZjQ0N2JlMGM2MWY5NGM0NzNmMTI4Y2Y1MTlkZDBjZmY2M2I1ZDc3NzUyNDBhMmU4OTVhMTgzYTYxZTIwMjYiCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAvYmRmdG9wY2ZfMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAvYmRmdG9wY2ZfMS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxMTZiNWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC9iZGZ0b3BjZl8xLjEuYmIKQEAgLTAsMCArMSwxMyBAQAorcmVxdWlyZSByZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hvcmctYXBwLWNvbW1vbi5pbmMKKworU1VNTUFSWSA9ICJiZGZ0b3BjZiBpcyBhIHRvb2wgdG8gY29udmVydCBCREYgZm9udHMgdG8gUENGIGZvbnRzIgorSE9NRVBBR0UgPSAiaHR0cDovL2NnaXQuZnJlZWRlc2t0b3Aub3JnL3hvcmcvYXBwL2JkZnRvcGNmLyIKK1NFQ1RJT04gPSAieDExL2FwcCIKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZjlhMzUzMzNhZGY3NWVkZDFlYWVmODRiY2E2NWE0OTAiCitERVBFTkRTID0gImxpYnhmb250IgorCitTUkNfVVJJW21kNXN1bV0gPSAiMmE0NTVkM2MwMjM5MDU5N2ZlYjljZWZiM2ZlOTdhNDUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGI0ZGYwNWZjNTNmMWU5ODk5MzYzOGQ2ZjdlMTc4ZDk1YjMxNzQ1YzQ1NjhjZWU0MDdlMTY3NDkxZmQzMTFhMiIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC9zZXNzcmVnXzEuMS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAvc2Vzc3JlZ18xLjEuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzg4NWQ2MS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC9zZXNzcmVnXzEuMS4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotcmVxdWlyZSByZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hvcmctYXBwLWNvbW1vbi5pbmMKLQotU1VNTUFSWSA9ICJhIHNpbXBsZSBwcm9ncmFtIGZvciBtYW5hZ2luZyB1dG1wL3d0bXAgZW50cmllcyIKLUxJQ0VOU0UgPSAiTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDkzOGE3MGM4MjgwYzI2NWExY2NkMjk1NDM2NWQxODUiCi1TUkNfVVJJICs9ICJmaWxlOi8vMDAwMS1NYWtlZmlsZS5hbS1FcnJvci1GaXgucGF0Y2giCi1TUkNfVVJJW21kNXN1bV0gPSAiZTIzOGM4OWRhYmM1NjZlMTgzNWUxZWNiNjFiNjA1YjkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTUxMTc3NjU3ODM1ZTA5MDJiNWVlZTdiMTk3MTMwMzViZWFhMTU4MWJiZDNjNjUwNmJhYTU1M2U3NTFlMDE3YyIKLQotQ0ZMQUdTX2FwcGVuZF9saWJjLW11c2wgPSAiIC1EX1dUTVBYX0ZJTEU9V1RNUF9GSUxFIC1EX1BBVEhfV1RNUFg9X1BBVEhfV1RNUCAtRF9VVE1QWF9GSUxFPVVUTVBfRklMRSAtRF9QQVRIX1VUTVBYPV9QQVRIX1VUTVAgIgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC9zZXNzcmVnXzEuMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAvc2Vzc3JlZ18xLjEuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMmFmYTc4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAvc2Vzc3JlZ18xLjEuMS5iYgpAQCAtMCwwICsxLDExIEBACityZXF1aXJlIHJlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveG9yZy1hcHAtY29tbW9uLmluYworCitTVU1NQVJZID0gImEgc2ltcGxlIHByb2dyYW0gZm9yIG1hbmFnaW5nIHV0bXAvd3RtcCBlbnRyaWVzIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kOTM4YTcwYzgyODBjMjY1YTFjY2QyOTU0MzY1ZDE4NSIKK1NSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLU1ha2VmaWxlLmFtLUVycm9yLUZpeC5wYXRjaCIKK1NSQ19VUklbbWQ1c3VtXSA9ICJlNDc1MTY3YTg5MmI1ODlkYTIzZWRmOGVkZjhjOTQyZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3OGE3NmFlM2YzZjZhMjY1NDdhMzQ2MzBkMWI3NDBmNDIzNDQ4NDhiNWZiNmQ3YzljN2Y3ZGEyNTVlMzVhNmUxIgorCitDRkxBR1NfYXBwZW5kX2xpYmMtbXVzbCA9ICIgLURfV1RNUFhfRklMRT1XVE1QX0ZJTEUgLURfUEFUSF9XVE1QWD1fUEFUSF9XVE1QIC1EX1VUTVBYX0ZJTEU9VVRNUF9GSUxFIC1EX1BBVEhfVVRNUFg9X1BBVEhfVVRNUCAiCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hsc2NsaWVudHNfMS4xLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94bHNjbGllbnRzXzEuMS4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ODNhNTMxLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hsc2NsaWVudHNfMS4xLjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1yZXF1aXJlIHJlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveG9yZy1hcHAtY29tbW9uLmluYwotCi1TVU1NQVJZID0gIlguT3JnIFgxMSBYIGNsaWVudCB1dGlsaXRpZXMiCi1IT01FUEFHRSA9ICJodHRwOi8vY2dpdC5mcmVlZGVza3RvcC5vcmcveG9yZy9hcHAveGxzY2xpZW50cy8iCi1ERVNDUklQVElPTiA9ICJ4bHNjbGllbnRzIGlzIGEgdXRpbGl0eSBmb3IgbGlzdGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgXAotY2xpZW50IGFwcGxpY2F0aW9ucyBydW5uaW5nIG9uIGEgWDExIHNlcnZlci4iCi1TRUNUSU9OID0gIngxMS9hcHAiCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTM1MGUxYjcxOGE1NmRmMzljZmU4Y2E5MzQ1ZWE0NTc1IgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKLQotU1JDX1VSSVttZDVzdW1dID0gIjlmYmY2YjE3NGE1MTM4YTYxNzM4YTQyZTcwN2FkOGY1IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVkOTY2NmZjYzZjM2RlMjEwZmM3MGQ1YTg0MWE0MDQ5NTVhZjcwOWE2MTZmZGU1MzBmZTRlOGY3NzIzZTNkM2QiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94bHNjbGllbnRzXzEuMS40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveGxzY2xpZW50c18xLjEuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmJkYTdlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveGxzY2xpZW50c18xLjEuNC5iYgpAQCAtMCwwICsxLDE0IEBACityZXF1aXJlIHJlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveG9yZy1hcHAtY29tbW9uLmluYworCitTVU1NQVJZID0gIlguT3JnIFgxMSBYIGNsaWVudCB1dGlsaXRpZXMiCitIT01FUEFHRSA9ICJodHRwOi8vY2dpdC5mcmVlZGVza3RvcC5vcmcveG9yZy9hcHAveGxzY2xpZW50cy8iCitERVNDUklQVElPTiA9ICJ4bHNjbGllbnRzIGlzIGEgdXRpbGl0eSBmb3IgbGlzdGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgXAorY2xpZW50IGFwcGxpY2F0aW9ucyBydW5uaW5nIG9uIGEgWDExIHNlcnZlci4iCitTRUNUSU9OID0gIngxMS9hcHAiCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTM1MGUxYjcxOGE1NmRmMzljZmU4Y2E5MzQ1ZWE0NTc1IgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKKworU1JDX1VSSVttZDVzdW1dID0gIjRmYTkyMzc3ZTBkZGMxMzdjZDIyNmE3YTg3YjZiMjlhIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjc3M2YyYWY0OWM3ZWEyYzQ0ZmJhNDIxM2JlZTY0MzI1ODc1YzFiM2M5YmM0YmJjZDhkYWM5MjYxNzUxODA5YzEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94bHNmb250c18xLjAuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hsc2ZvbnRzXzEuMC41LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZmVlZDc1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hsc2ZvbnRzXzEuMC41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotcmVxdWlyZSByZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hvcmctYXBwLWNvbW1vbi5pbmMKLQotU1VNTUFSWSA9ICJzZXJ2ZXIgZm9udCBsaXN0IGRpc3BsYXllciBmb3IgWCIKLUhPTUVQQUdFID0gImh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy94b3JnL2FwcC94bHNmb250cy8iCi1TRUNUSU9OID0gIngxMS9hcHAiCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTVlYzc0ZGQ3ZWE0ZDEwYzQ3MTVhN2M0NGYxNTlhNDBiIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNmY1NzExYmVmOGM3NjU4NTdhMDg4N2E5MTQ3NjI4M2IiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDAyOTViZWMzNTA3N2NlZTkzYmUyZTRjMjZjYzAwMjY4ZWQ2YWNlNzc5YWU2ZTk3NzY2YTg2NmMxZTM5MjdmYSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hsc2ZvbnRzXzEuMC42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveGxzZm9udHNfMS4wLjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZiNzZlNAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3hsc2ZvbnRzXzEuMC42LmJiCkBAIC0wLDAgKzEsMTAgQEAKK3JlcXVpcmUgcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94b3JnLWFwcC1jb21tb24uaW5jCisKK1NVTU1BUlkgPSAic2VydmVyIGZvbnQgbGlzdCBkaXNwbGF5ZXIgZm9yIFgiCitIT01FUEFHRSA9ICJodHRwOi8vY2dpdC5mcmVlZGVza3RvcC5vcmcveG9yZy9hcHAveGxzZm9udHMvIgorU0VDVElPTiA9ICJ4MTEvYXBwIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT01ZWM3NGRkN2VhNGQxMGM0NzE1YTdjNDRmMTU5YTQwYiIKKworU1JDX1VSSVttZDVzdW1dID0gIjU3NzRmZDRmNTE4YjNmMzM4ZjJiMjhmMjcwZTA0YmZjIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjg5YjgwYjNhMDMwMDA2YWI2Y2VmNzE3YmUyODZjMTJmMjQ3Nzg5NGIyMjcxNThiMWU2MTMzMjc0ZjZlYmQzNjgiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94dGVybV8zMzAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94dGVybV8zMzAuYmIKaW5kZXggZTNiYjBmYi4uMTZmOWI3OCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveHRlcm1fMzMwLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3h0ZXJtXzMzMC5iYgpAQCAtMjcsMyArMjcsOCBAQAogfQogCiBGSUxFU18ke1BOfSArPSAiL3Vzci9saWIvWDExIgorCisjIGJ1c3lib3ggY2FuIHN1cHBseSByZXNpemUgdG9vCitpbmhlcml0IHVwZGF0ZS1hbHRlcm5hdGl2ZXMKKworQUxURVJOQVRJVkVfJHtQTn0gPSAicmVzaXplIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveHd1ZF8xLjAuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3h3dWRfMS4wLjQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzYmQ3ZjAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1hcHAveHd1ZF8xLjAuNC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLXJlcXVpcmUgcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94b3JnLWFwcC1jb21tb24uaW5jCi0KLVNVTU1BUlkgPSAiWC5PcmcgWDExIFggY2xpZW50IHV0aWxpdGllcyIKLUhPTUVQQUdFID0gImh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy94b3JnL2FwcC94d3VkLyIKLURFU0NSSVBUSU9OID0gInh3dWQgYWxsb3dzIFggdXNlcnMgdG8gZGlzcGxheSBpbiBhIHdpbmRvdyBhbiBpbWFnZSBzYXZlZCBcCi1pbiBhIHNwZWNpYWxseSBmb3JtYXR0ZWQgZHVtcCBmaWxlLCBzdWNoIGFzIHByb2R1Y2VkIGJ5IHh3ZC4iCi1TRUNUSU9OID0gIngxMS9hcHAiCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTMxZTg4OTJjODBiN2EwYzFjNWYzN2M4ZThhZTZkNzk0IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMzAyNWIxNTJiNGYxM2ZkZmZkMGM0NmQwYmU1ODdiZTYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZDZiM2EwOWNjZmU3NTA4NjhlMjZiZDIzODQ5MDBhYjVmZjBkNDM0ZjdmNDBjZDI3MmE1MGVkYThhYWExZjhiZCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctYXBwL3h3dWRfMS4wLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94d3VkXzEuMC41LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjYjU1MGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94d3VkXzEuMC41LmJiCkBAIC0wLDAgKzEsMTIgQEAKK3JlcXVpcmUgcmVjaXBlcy1ncmFwaGljcy94b3JnLWFwcC94b3JnLWFwcC1jb21tb24uaW5jCisKK1NVTU1BUlkgPSAiWC5PcmcgWDExIFggY2xpZW50IHV0aWxpdGllcyIKK0hPTUVQQUdFID0gImh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy94b3JnL2FwcC94d3VkLyIKK0RFU0NSSVBUSU9OID0gInh3dWQgYWxsb3dzIFggdXNlcnMgdG8gZGlzcGxheSBpbiBhIHdpbmRvdyBhbiBpbWFnZSBzYXZlZCBcCitpbiBhIHNwZWNpYWxseSBmb3JtYXR0ZWQgZHVtcCBmaWxlLCBzdWNoIGFzIHByb2R1Y2VkIGJ5IHh3ZC4iCitTRUNUSU9OID0gIngxMS9hcHAiCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTMxZTg4OTJjODBiN2EwYzFjNWYzN2M4ZThhZTZkNzk0IgorCitTUkNfVVJJW21kNXN1bV0gPSAiNzk5NzIwOTNiYjA3NjZmY2QwMjIzYjJiZDZkMTE5MzIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOTk5OTcwNTFmOGE4OTIzMTNmMjJlZGY0MWRhYjQ1ODY0ZTg2ZTcwNjJlZTkwMTJkNWRiYjZhNDBmYzZiMTBhOSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctZGF0YS94b3JnLWRhdGEtY29tbW9uLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hvcmctZGF0YS94b3JnLWRhdGEtY29tbW9uLmluYwppbmRleCBiMjMwOTYyLi5jYjZiNWFjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94b3JnLWRhdGEveG9yZy1kYXRhLWNvbW1vbi5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveG9yZy1kYXRhL3hvcmctZGF0YS1jb21tb24uaW5jCkBAIC03LDQgKzcsNiBAQAogU1JDX1VSSSA9ICIke1hPUkdfTUlSUk9SfS9pbmRpdmlkdWFsL2RhdGEvJHtCUH0udGFyLmJ6MiIKIFMgPSAiJHtXT1JLRElSfS8ke1hPUkdfUE59LSR7UFZ9IgogCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGF1dG90b29scyBwa2djb25maWcKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwMS1DT1BZSU5HLWFkZC1HUEx2Mi1saWNlbnNlLWZpbGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDEtQ09QWUlORy1hZGQtR1BMdjItbGljZW5zZS1maWxlLnBhdGNoCmluZGV4IDI5ZGQ3MWEuLjJiZmU4NWIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwMS1DT1BZSU5HLWFkZC1HUEx2Mi1saWNlbnNlLWZpbGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDAxLUNPUFlJTkctYWRkLUdQTHYyLWxpY2Vuc2UtZmlsZS5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUZyb20gODM0ZmEwNjkyMGY4OGNlZWRmNzUyOTY0YzhlMjk2YzY1M2Q1NDFlNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZjkxOTcyNTkxOGZhZDJiMzI1MDRmODlhMjgzMTBmY2FlNGFiMDQwNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IFl1IEtlIDxrZS55dUBpbnRlbC5jb20+CiBEYXRlOiBXZWQsIDExIEFwciAyMDEyIDE0OjI2OjE2ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMDEvMTJdIENPUFlJTkc6IGFkZCBHUEx2MiBsaWNlbnNlIGZpbGUKK1N1YmplY3Q6IFtQQVRDSF0gQ09QWUlORzogYWRkIEdQTHYyIGxpY2Vuc2UgZmlsZQogCiB0aGlzIGlzIGEgbG9jYWwgZmlsZSByZWNpcGUgYW5kIHRoZSBsaWNlbnNlIGZpbGUgaXMgbWlzc2luZy5JbiBvcmRlcgogdG8gcGFzcyB0aGUgbGljZW5zZSBjaGVja3N1bSBjaGVja2luZywgdGhlIGxpY2Vuc2UgZmlsZSBpcyBuZWVkZWQuIFNvCkBAIC05LDkgKzksMTAgQEAKIAogU2lnbmVkLW9mZi1ieTogWXUgS2UgPGtlLnl1QGludGVsLmNvbT4KIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KKwogLS0tCi0gQ09QWUlORyB8ICAzMzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCAzMzkgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKKyBDT1BZSU5HIHwgMzM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMzM5IGluc2VydGlvbnMoKykKICBjcmVhdGUgbW9kZSAxMDA2NDQgQ09QWUlORwogCiBkaWZmIC0tZ2l0IGEvQ09QWUlORyBiL0NPUFlJTkcKQEAgLTM1OSw2ICszNjAsMyBAQAogK2NvbnNpZGVyIGl0IG1vcmUgdXNlZnVsIHRvIHBlcm1pdCBsaW5raW5nIHByb3ByaWV0YXJ5IGFwcGxpY2F0aW9ucyB3aXRoIHRoZQogK2xpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsCiArUHVibGljIExpY2Vuc2UgaW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UuCi0tLSAKLTEuNy44LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDAxLURvbi10LWluc3RhbGwtWHNlc3Npb24tb3ItWHNlcnZlci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwMS1Eb24tdC1pbnN0YWxsLVhzZXNzaW9uLW9yLVhzZXJ2ZXIucGF0Y2gKaW5kZXggMjYyODhkNi4uMGVkMTJkMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDAxLURvbi10LWluc3RhbGwtWHNlc3Npb24tb3ItWHNlcnZlci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDEtRG9uLXQtaW5zdGFsbC1Yc2Vzc2lvbi1vci1Yc2VydmVyLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBjOTJjZTZhNGIzNjIyODc0ZjgyMGI1ZWM0ODdhMmI2M2Y1MTk4MjZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAxMDAyYTExMzdiMTQwZGFkMzMxOWJmMzIwNmZlYzViNmM2Yjc0ZmVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogSnVzc2kgS3Vra29uZW4gPGp1c3NpLmt1a2tvbmVuQGludGVsLmNvbT4KIERhdGU6IFRodSwgMTAgTm92IDIwMTYgMTQ6MzM6MDUgKzAyMDAKIFN1YmplY3Q6IFtQQVRDSF0gRG9uJ3QgaW5zdGFsbCBYc2Vzc2lvbiBvciBYc2VydmVyCkBAIC04LDE1ICs4LDE2IEBACiBiZSB1c2VkIGFzIGJlZm9yZS4KIAogU2lnbmVkLW9mZi1ieTogSnVzc2kgS3Vra29uZW4gPGp1c3NpLmt1a2tvbmVuQGludGVsLmNvbT4KKwogLS0tCi0gTWFrZWZpbGUgfCAxIC0KLSAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQorIE1ha2VmaWxlIHwgMiAtLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQotaW5kZXggY2FhNWRlMS4uN2UzNmJiYyAxMDA2NDQKK2luZGV4IGNhYTVkZTEuLjk0MjgyMDUgMTAwNjQ0CiAtLS0gYS9NYWtlZmlsZQogKysrIGIvTWFrZWZpbGUKLUBAIC0yMCw3ICsyMCw1IEBAIGluc3RhbGwtcHJvZ3JhbToKK0BAIC0yMCw4ICsyMCw2IEBAIGluc3RhbGwtcHJvZ3JhbToKICAJaW5zdGFsbCAtbSA3NTUgcnVuLWNhbGlicmF0ZS5zaCAkKERFU1RESVIpJChQUkVGSVgpL2Jpbi9ydW4tY2FsaWJyYXRlLnNoCiAgCWluc3RhbGwgLW0gNjQ0IFgxMS9YZGVmYXVsdHMgJChERVNURElSKS9ldGMvWDExL1hkZWZhdWx0cwogIAlpbnN0YWxsIC1tIDc1NSBYMTEvWGluaXQgJChERVNURElSKS9ldGMvWDExL1hpbml0CkBAIC0yNSw2ICsyNiwzIEBACiAgCWluc3RhbGwgLW0gNzU1IFgxMS94c2VydmVyLWNvbW1vbiAkKERFU1RESVIpL2V0Yy9YMTEveHNlcnZlci1jb21tb24KICAJaW5zdGFsbCAtbSA3NTUgWDExL2Z1bmN0aW9ucyAkKERFU1RESVIpL2V0Yy9YMTEvZnVuY3Rpb25zCiAgCWluc3RhbGwgLWQgJChERVNURElSKS9ldGMvWDExL3htb2RtYXAKLS0tIAotMi4xLjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDAyLWFkZC1zZXRkcGktWGluaXQuZC1zY3JpcHQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDItYWRkLXNldGRwaS1YaW5pdC5kLXNjcmlwdC5wYXRjaAppbmRleCAyM2I1MzQ1Li4wYmUzZmE1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDItYWRkLXNldGRwaS1YaW5pdC5kLXNjcmlwdC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDItYWRkLXNldGRwaS1YaW5pdC5kLXNjcmlwdC5wYXRjaApAQCAtMSwxMiArMSwxMyBAQAotRnJvbSAzZDFhMWE4MjczMTEyNjY4OTI3YTZjNmJiM2UzNjFlODk2ZjViMjI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAzYjVmNDMxYTM3MDA1NGJmYzA5MDc5NmU4ZDU1ZGU4YzhjZWE0NmY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgogRGF0ZTogV2VkLCAxMSBBcHIgMjAxMiAxNDoyODo0NSArMDIwMAotU3ViamVjdDogW1BBVENIIDAyLzEyXSBhZGQgc2V0ZHBpIFhpbml0LmQgc2NyaXB0CitTdWJqZWN0OiBbUEFUQ0hdIGFkZCBzZXRkcGkgWGluaXQuZCBzY3JpcHQKIAogU2lnbmVkLW9mZi1ieTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgorCiAtLS0KLSBYMTEvWGluaXQuZC81MHNldGRwaSB8ICAgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSAxIGZpbGVzIGNoYW5nZWQsIDkyIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCisgWDExL1hpbml0LmQvNTBzZXRkcGkgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDkyIGluc2VydGlvbnMoKykKICBjcmVhdGUgbW9kZSAxMDA2NDQgWDExL1hpbml0LmQvNTBzZXRkcGkKIAogZGlmZiAtLWdpdCBhL1gxMS9YaW5pdC5kLzUwc2V0ZHBpIGIvWDExL1hpbml0LmQvNTBzZXRkcGkKQEAgLTEwNyw2ICsxMDgsMyBAQAogKwogK3NldF9kcGkgIiRTRVRfU0NSRUVOX0RQSSIKICtzZXRfcnh2dF9mb250ICIkU0NSRUVOX0RQSSIKLS0tIAotMS43LjguNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDYtYWRkLXN1cHBvcnQtZm9yLWV0Yy1YMTEteHNlcnZlci1zeXN0ZW0ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDYtYWRkLXN1cHBvcnQtZm9yLWV0Yy1YMTEteHNlcnZlci1zeXN0ZW0ucGF0Y2gKaW5kZXggN2VlODU3Mi4uNTNhMjgzZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDA2LWFkZC1zdXBwb3J0LWZvci1ldGMtWDExLXhzZXJ2ZXItc3lzdGVtLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwNi1hZGQtc3VwcG9ydC1mb3ItZXRjLVgxMS14c2VydmVyLXN5c3RlbS5wYXRjaApAQCAtMSwxNSArMSwxNiBAQAotRnJvbSAwYzQyZTFmYjg0Y2MyYmZlNzY4YmVkMTdmM2I5NzlhY2E4NjhjZjY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBiNjBlMzY0YzM1ZDU2YTJhMzE2NDI1NGQ5OGM5OTMxYmZhM2ZlZWQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgogRGF0ZTogV2VkLCAxMSBBcHIgMjAxMiAxNDozNDo0MyArMDIwMAotU3ViamVjdDogW1BBVENIIDA2LzEyXSBhZGQgc3VwcG9ydCBmb3IgL2V0Yy9YMTEveHNlcnZlci1zeXN0ZW0KK1N1YmplY3Q6IFtQQVRDSF0gYWRkIHN1cHBvcnQgZm9yIC9ldGMvWDExL3hzZXJ2ZXItc3lzdGVtCiAKIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KKwogLS0tCi0gWDExL3hzZXJ2ZXItY29tbW9uIHwgICAgNSArKysrKwotIDEgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQorIFgxMS94c2VydmVyLWNvbW1vbiB8IDUgKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCiAKIGRpZmYgLS1naXQgYS9YMTEveHNlcnZlci1jb21tb24gYi9YMTEveHNlcnZlci1jb21tb24KLWluZGV4IDRjN2VkNmUuLjZkOGM5ZGYgMTAwNjQ0CitpbmRleCA1MjY1NWNiLi5iYjdjMmZmIDEwMDY0NAogLS0tIGEvWDExL3hzZXJ2ZXItY29tbW9uCiArKysgYi9YMTEveHNlcnZlci1jb21tb24KIEBAIC0yMDQsMyArMjA0LDggQEAgZmkKQEAgLTIxLDYgKzIyLDMgQEAKICtpZiBbIC1lIC9ldGMvWDExL3hzZXJ2ZXItc3lzdGVtIF0gOyB0aGVuICAgICAgICAgICAgICAgICAgICAKICsgICAgICAgLiAvZXRjL1gxMS94c2VydmVyLXN5c3RlbSAgICAgICAgICAgICAgICAgICAgCiArZmkgICAgICAgICAgICAgICAgICAgIAotLS0gCi0xLjcuOC41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwNy11c2Utb3duLWZ1bmN0aW9ucy1maWxlLWluc3RlYWQtZXRjLWluaXQuZC1mdW5jdGlvbnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDctdXNlLW93bi1mdW5jdGlvbnMtZmlsZS1pbnN0ZWFkLWV0Yy1pbml0LmQtZnVuY3Rpb25zLnBhdGNoCmluZGV4IDg3OTEyMjYuLjk0YTM1NDAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwNy11c2Utb3duLWZ1bmN0aW9ucy1maWxlLWluc3RlYWQtZXRjLWluaXQuZC1mdW5jdGlvbnMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDA3LXVzZS1vd24tZnVuY3Rpb25zLWZpbGUtaW5zdGVhZC1ldGMtaW5pdC5kLWZ1bmN0aW9ucy5wYXRjaApAQCAtMSwxNyArMSwxOCBAQAotRnJvbSA2M2U2YjlhNTRlMWYxMmRiZjdkZGJmZTMzNzZmZmY0YzM4MjQyMWE1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA0OTJjNjVhMzJhNGFlNDRjMzQ1ODBlZDhhYzVkM2Y1MGExNTVjZmVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgogRGF0ZTogV2VkLCAxMSBBcHIgMjAxMiAxNDozNjowMiArMDIwMAotU3ViamVjdDogW1BBVENIIDA3LzEyXSB1c2Ugb3duIGZ1bmN0aW9ucyBmaWxlIGluc3RlYWQgL2V0Yy9pbml0LmQvZnVuY3Rpb25zCitTdWJqZWN0OiBbUEFUQ0hdIHVzZSBvd24gZnVuY3Rpb25zIGZpbGUgaW5zdGVhZCAvZXRjL2luaXQuZC9mdW5jdGlvbnMKIAogKiBzbyB3ZSBkb24ndCBoYXZlIHRvIGRlcGVuZCBvbiBpbml0c2NyaXB0cwogCiBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+CisKIC0tLQotIE1ha2VmaWxlICAgICAgICAgICAgIHwgICAgMSArCi0gWDExL1hpbml0LmQvMTF6YXVydXMgfCAgICAyICstCi0gWDExL1hpbml0LmQvMTJrZXltYXAgfCAgICAyICstCi0gWDExL2Z1bmN0aW9ucyAgICAgICAgfCAgIDExICsrKysrKysrKysrCi0gWDExL3hzZXJ2ZXItY29tbW9uICAgfCAgICAyICstCisgTWFrZWZpbGUgICAgICAgICAgICAgfCAgMSArCisgWDExL1hpbml0LmQvMTF6YXVydXMgfCAgMiArLQorIFgxMS9YaW5pdC5kLzEya2V5bWFwIHwgIDIgKy0KKyBYMTEvZnVuY3Rpb25zICAgICAgICB8IDExICsrKysrKysrKysrCisgWDExL3hzZXJ2ZXItY29tbW9uICAgfCAgMiArLQogIDUgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKICBjcmVhdGUgbW9kZSAxMDA2NDQgWDExL2Z1bmN0aW9ucwogCkBAIC03MCw3ICs3MSw3IEBACiArCQl7IGdzdWIoIiAiLCAiXyIsICQyKTsgcHJpbnQgdG9sb3dlcigkMikgfSAnIDwvcHJvYy9jcHVpbmZvCiArfQogZGlmZiAtLWdpdCBhL1gxMS94c2VydmVyLWNvbW1vbiBiL1gxMS94c2VydmVyLWNvbW1vbgotaW5kZXggNmQ4YzlkZi4uZGU5MmJiNyAxMDA2NDQKK2luZGV4IGJiN2MyZmYuLmQ2MjJmMmEgMTAwNjQ0CiAtLS0gYS9YMTEveHNlcnZlci1jb21tb24KICsrKyBiL1gxMS94c2VydmVyLWNvbW1vbgogQEAgLTMwLDcgKzMwLDcgQEAgaWYgWyAtZiAvZXRjL3Byb2ZpbGUgXTsgdGhlbgpAQCAtODIsNiArODMsMyBAQAogIAogIGZhbGxiYWNrX3NjcmVlbl9hcmcoKSB7CiAgICAgIGdlb209YGZic2V0IHwgZ3JlcCBnZW9tZXRyeWAKLS0tIAotMS43LjguNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMDgteHNlcnZlci1jb21tb24tYWRkLWRwaS1hbmQtbm9jdXJzb3ItcGFyYW1zLWZvci1ndGEwMS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwOC14c2VydmVyLWNvbW1vbi1hZGQtZHBpLWFuZC1ub2N1cnNvci1wYXJhbXMtZm9yLWd0YTAxLnBhdGNoCmluZGV4IGUzNWU0YTcuLjkwZDBmMjUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwOC14c2VydmVyLWNvbW1vbi1hZGQtZHBpLWFuZC1ub2N1cnNvci1wYXJhbXMtZm9yLWd0YTAxLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwOC14c2VydmVyLWNvbW1vbi1hZGQtZHBpLWFuZC1ub2N1cnNvci1wYXJhbXMtZm9yLWd0YTAxLnBhdGNoCkBAIC0xLDE2ICsxLDE3IEBACi1Gcm9tIDBlZTdiZjg3ZTBjODNhYmM3OWRlM2E5OWRmYTNjODdkZDVjNWIyMjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGUyYWJiZTExMGU3MWE3YjRiNTY1NjRlNmI5ZDU4ZmZhN2YzNGE5ZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+CiBEYXRlOiBXZWQsIDExIEFwciAyMDEyIDE0OjM3OjI5ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMDgvMTJdIHhzZXJ2ZXItY29tbW9uOiBhZGQgZHBpIGFuZCBub2N1cnNvciBwYXJhbXMgZm9yIGd0YTAxCi0gYW5kIGd0YTAyCitTdWJqZWN0OiBbUEFUQ0hdIHhzZXJ2ZXItY29tbW9uOiBhZGQgZHBpIGFuZCBub2N1cnNvciBwYXJhbXMgZm9yIGd0YTAxIGFuZAorIGd0YTAyCiAKIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KKwogLS0tCi0gWDExL3hzZXJ2ZXItY29tbW9uIHwgICAgOCArKysrKystLQotIDEgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorIFgxMS94c2VydmVyLWNvbW1vbiB8IDggKysrKysrLS0KKyAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvWDExL3hzZXJ2ZXItY29tbW9uIGIvWDExL3hzZXJ2ZXItY29tbW9uCi1pbmRleCBkZTkyYmI3Li5mNzZmYTVmIDEwMDY0NAoraW5kZXggZDYyMmYyYS4uYTJjMDU5MSAxMDA2NDQKIC0tLSBhL1gxMS94c2VydmVyLWNvbW1vbgogKysrIGIvWDExL3hzZXJ2ZXItY29tbW9uCiBAQCAtMTMzLDE1ICsxMzMsMTkgQEAgZWxzZQpAQCAtMzUsNiArMzYsMyBAQAogICAgICAgICAgICAgIGZpCiAgICAgICAgICAgICAgOzsKICAgICAgICAgICJtb3Rvcm9sYV9lenhfcGxhdGZvcm0iKQotLS0gCi0xLjcuOC41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAwOS14c2VydmVyLWNvbW1vbi1hZGQtc3VwcG9ydC1mb3ItbjkwMC1hbGlhcy1ub2tpYV9yeC01LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDA5LXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uOTAwLWFsaWFzLW5va2lhX3J4LTUucGF0Y2gKaW5kZXggMWEwYmRlOC4uOGZiNjliMyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDA5LXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uOTAwLWFsaWFzLW5va2lhX3J4LTUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDA5LXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uOTAwLWFsaWFzLW5va2lhX3J4LTUucGF0Y2gKQEAgLTEsMTYgKzEsMTYgQEAKLUZyb20gNmQ2Y2FlY2I3MTcyYjliMzNlNzM2NDU2NGIwZTZlYWJmNjdiNmU4YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZjJkODA4Y2VhNWI5ZjY5MTU4ZjgyZTE2YzA2Zjg4MmE2ZGIxMGQ2MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KIERhdGU6IFdlZCwgMTEgQXByIDIwMTIgMTQ6NDA6MTQgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAwOS8xMl0geHNlcnZlci1jb21tb246IGFkZCBzdXBwb3J0IGZvciBuOTAwIGFsaWFzCi0gbm9raWFfcngtNTFfYm9hcmQKK1N1YmplY3Q6IFtQQVRDSF0geHNlcnZlci1jb21tb246IGFkZCBzdXBwb3J0IGZvciBuOTAwIGFsaWFzIG5va2lhX3J4LTUxX2JvYXJkCiAKIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KKwogLS0tCi0gWDExL3hzZXJ2ZXItY29tbW9uIHwgICAgNyArKysrKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCisgWDExL3hzZXJ2ZXItY29tbW9uIHwgNyArKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQogCiBkaWZmIC0tZ2l0IGEvWDExL3hzZXJ2ZXItY29tbW9uIGIvWDExL3hzZXJ2ZXItY29tbW9uCi1pbmRleCBmNzZmYTVmLi44NmVkMTdmIDEwMDY0NAoraW5kZXggYTJjMDU5MS4uYjhjMzdlNiAxMDA2NDQKIC0tLSBhL1gxMS94c2VydmVyLWNvbW1vbgogKysrIGIvWDExL3hzZXJ2ZXItY29tbW9uCiBAQCAtMTMyLDYgKzEzMiwxMyBAQCBlbHNlCkBAIC0yNyw2ICsyNywzIEBACiAgICAgICAgICAiZ3RhMDEiICkKICAgICAgICAgICAgICBEUEk9IjI4MCIKICAgICAgICAgICAgICBpZiBbICIkWFNFUlZFUiIgIT0gIlhvcmciIF0gOyB0aGVuCi0tLSAKLTEuNy44LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEwLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uZXh1cy1TLWFsaWFzLWhlcnJpbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMTAteHNlcnZlci1jb21tb24tYWRkLXN1cHBvcnQtZm9yLW5leHVzLVMtYWxpYXMtaGVycmluZy5wYXRjaAppbmRleCA2ODhiZTQwLi5kMzBjN2JiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMTAteHNlcnZlci1jb21tb24tYWRkLXN1cHBvcnQtZm9yLW5leHVzLVMtYWxpYXMtaGVycmluZy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMTAteHNlcnZlci1jb21tb24tYWRkLXN1cHBvcnQtZm9yLW5leHVzLVMtYWxpYXMtaGVycmluZy5wYXRjaApAQCAtMSwxNSArMSwxNiBAQAotRnJvbSA1MjAwM2U2YjUyYjE0MTdjMWEwZTU3MjQzZDgzMzQ5YWRkY2RhY2Y2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBhMTk0YmEyMDEzZjllNThjZjczY2QzOWI1N2JlNjgzODZlNTAxZWRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgogRGF0ZTogV2VkLCAxMSBBcHIgMjAxMiAxNDo0MDo0NCArMDIwMAotU3ViamVjdDogW1BBVENIIDEwLzEyXSB4c2VydmVyLWNvbW1vbjogYWRkIHN1cHBvcnQgZm9yIG5leHVzIFMgYWxpYXMgaGVycmluZworU3ViamVjdDogW1BBVENIXSB4c2VydmVyLWNvbW1vbjogYWRkIHN1cHBvcnQgZm9yIG5leHVzIFMgYWxpYXMgaGVycmluZwogCiBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+CisKIC0tLQotIFgxMS94c2VydmVyLWNvbW1vbiB8ICAgIDMgKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCisgWDExL3hzZXJ2ZXItY29tbW9uIHwgMyArKysKKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCiAKIGRpZmYgLS1naXQgYS9YMTEveHNlcnZlci1jb21tb24gYi9YMTEveHNlcnZlci1jb21tb24KLWluZGV4IDg2ZWQxN2YuLjVjOWE2ZWIgMTAwNjQ0CitpbmRleCBiOGMzN2U2Li45YWE2YjI0IDEwMDY0NAogLS0tIGEvWDExL3hzZXJ2ZXItY29tbW9uCiArKysgYi9YMTEveHNlcnZlci1jb21tb24KIEBAIC0xMjYsNiArMTI2LDkgQEAgZWxzZQpAQCAtMjIsNiArMjMsMyBAQAogICAgICAgICAgImdlbmVyaWNfb21hcDE1MTAvMTYxMC8xNzEwIikKICAgICAgICAgICAgICBBUkdTPSIkQVJHUyAtc2NyZWVuICR7U0NSRUVOX1NJWkV9IgogICAgICAgICAgICAgIERQST0iMjI1IiA7OwotLS0gCi0xLjcuOC41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAxMS14c2VydmVyLWNvbW1vbi1hZGQtc3VwcG9ydC1mb3ItbmV4dXMtb25lLWFsaWFzLW1haGltLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDExLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uZXh1cy1vbmUtYWxpYXMtbWFoaW0ucGF0Y2gKaW5kZXggZjgwNDU2ZC4uMjNlMTdmMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDExLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uZXh1cy1vbmUtYWxpYXMtbWFoaW0ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDExLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1uZXh1cy1vbmUtYWxpYXMtbWFoaW0ucGF0Y2gKQEAgLTEsMTYgKzEsMTYgQEAKLUZyb20gMGVjYzk3OGI3ZDhjYjY4Njc2NDZmYjJhMjk1MjNlYmVmM2FmYTAxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZGZkODMyYjM1YjZjYjRjZjJiNmYyYjUxZGY3YjA5OTlmMTBjOGNhMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KIERhdGU6IFdlZCwgMTEgQXByIDIwMTIgMTQ6NDE6MDYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAxMS8xMl0geHNlcnZlci1jb21tb246IGFkZCBzdXBwb3J0IGZvciBuZXh1cyBvbmUgYWxpYXMKLSBtYWhpbWFoaQorU3ViamVjdDogW1BBVENIXSB4c2VydmVyLWNvbW1vbjogYWRkIHN1cHBvcnQgZm9yIG5leHVzIG9uZSBhbGlhcyBtYWhpbWFoaQogCiBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+CisKIC0tLQotIFgxMS94c2VydmVyLWNvbW1vbiB8ICAgIDMgKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCisgWDExL3hzZXJ2ZXItY29tbW9uIHwgMyArKysKKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCiAKIGRpZmYgLS1naXQgYS9YMTEveHNlcnZlci1jb21tb24gYi9YMTEveHNlcnZlci1jb21tb24KLWluZGV4IDVjOWE2ZWIuLjU1NTk0ZmQgMTAwNjQ0CitpbmRleCA5YWE2YjI0Li44ZGE5MjZlIDEwMDY0NAogLS0tIGEvWDExL3hzZXJ2ZXItY29tbW9uCiArKysgYi9YMTEveHNlcnZlci1jb21tb24KIEBAIC0xMjksNiArMTI5LDkgQEAgZWxzZQpAQCAtMjMsNiArMjMsMyBAQAogICAgICAgICAgImdlbmVyaWNfb21hcDE1MTAvMTYxMC8xNzEwIikKICAgICAgICAgICAgICBBUkdTPSIkQVJHUyAtc2NyZWVuICR7U0NSRUVOX1NJWkV9IgogICAgICAgICAgICAgIERQST0iMjI1IiA7OwotLS0gCi0xLjcuOC41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAxMi14c2VydmVyLWNvbW1vbi1hZGQtc3VwcG9ydC1mb3ItZ3RhMDQtYWxpYXMtT3BlblBob2VuLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEyLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1ndGEwNC1hbGlhcy1PcGVuUGhvZW4ucGF0Y2gKaW5kZXggNTRhMDMyOS4uNWU3OTRmNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEyLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1ndGEwNC1hbGlhcy1PcGVuUGhvZW4ucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEyLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci1ndGEwNC1hbGlhcy1PcGVuUGhvZW4ucGF0Y2gKQEAgLTEsMTYgKzEsMTYgQEAKLUZyb20gZDE5NGYwMzAyNTgyZjFjYTU5OWYyZWE1OGMxNWUxNWY0ZmQ2YmRlZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZDllMDVlNTNiMzBjNjY3MDU4NTIyNTZmZjVjNjAzMjUyYWE5NGIyYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KIERhdGU6IFdlZCwgMTEgQXByIDIwMTIgMTQ6NDE6NTIgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAxMi8xMl0geHNlcnZlci1jb21tb246IGFkZCBzdXBwb3J0IGZvciBndGEwNCBhbGlhcwotIE9wZW5QaG9lbnV4CitTdWJqZWN0OiBbUEFUQ0hdIHhzZXJ2ZXItY29tbW9uOiBhZGQgc3VwcG9ydCBmb3IgZ3RhMDQgYWxpYXMgT3BlblBob2VudXgKIAogU2lnbmVkLW9mZi1ieTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgorCiAtLS0KLSBYMTEveHNlcnZlci1jb21tb24gfCAgICA4ICsrKysrKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCisgWDExL3hzZXJ2ZXItY29tbW9uIHwgOCArKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKIAogZGlmZiAtLWdpdCBhL1gxMS94c2VydmVyLWNvbW1vbiBiL1gxMS94c2VydmVyLWNvbW1vbgotaW5kZXggNTU1OTRmZC4uNDM0MzMzZSAxMDA2NDQKK2luZGV4IDhkYTkyNmUuLmQ5MzI1ZGQgMTAwNjQ0CiAtLS0gYS9YMTEveHNlcnZlci1jb21tb24KICsrKyBiL1gxMS94c2VydmVyLWNvbW1vbgogQEAgLTE2MSw2ICsxNjEsMTQgQEAgZWxzZQpAQCAtMjgsNiArMjgsMyBAQAogICAgICAgICAgIm1vdG9yb2xhX2V6eF9wbGF0Zm9ybSIpCiAgICAgICAgICAgICAgQVJHUz0iJEFSR1MgLXNjcmVlbiAyNDB4MzIwIgogICAgICAgICAgICAgIERQST0iMTcwIiA7OwotLS0gCi0xLjcuOC41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAxMy14c2VydmVyLWNvbW1vbi1hZGQtc3VwcG9ydC1mb3ItdHVuYS1hbGlhcy1HYWxheHktTmV4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEzLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci10dW5hLWFsaWFzLUdhbGF4eS1OZXgucGF0Y2gKaW5kZXggNDkzMjFlYi4uNzhkMmU0MCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEzLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci10dW5hLWFsaWFzLUdhbGF4eS1OZXgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDEzLXhzZXJ2ZXItY29tbW9uLWFkZC1zdXBwb3J0LWZvci10dW5hLWFsaWFzLUdhbGF4eS1OZXgucGF0Y2gKQEAgLTEsMTMgKzEsMTMgQEAKLUZyb20gMTc2YzNiZDNkODZjMjIzZmQ0NGIwZjE1YjYyZDM4NTI2YmIzYjBkMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNTdhYjUyMWZmYzEwMjRmMjExMDVjYTE0YmUyZDA0MWE0Nzc5NDJiMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KIERhdGU6IEZyaSwgMTcgQXVnIDIwMTIgMTM6MDA6NTYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAxMy8xM10geHNlcnZlci1jb21tb246IGFkZCBzdXBwb3J0IGZvciB0dW5hIGFsaWFzIEdhbGF4eQotIE5leHVzCitTdWJqZWN0OiBbUEFUQ0hdIHhzZXJ2ZXItY29tbW9uOiBhZGQgc3VwcG9ydCBmb3IgdHVuYSBhbGlhcyBHYWxheHkgTmV4dXMKIAogU2lnbmVkLW9mZi1ieTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgorCiAtLS0KLSBYMTEveHNlcnZlci1jb21tb24gfCAgICA4ICsrKysrKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCisgWDExL3hzZXJ2ZXItY29tbW9uIHwgOCArKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKIAogZGlmZiAtLWdpdCBhL1gxMS94c2VydmVyLWNvbW1vbiBiL1gxMS94c2VydmVyLWNvbW1vbgogaW5kZXggZDkzMjVkZC4uMDE3ZTVhZSAxMDA2NDQKQEAgLTI4LDYgKzI4LDMgQEAKICAgICAgICAgICJtb3Rvcm9sYV9lenhfcGxhdGZvcm0iKQogICAgICAgICAgICAgIEFSR1M9IiRBUkdTIC1zY3JlZW4gMjQweDMyMCIKICAgICAgICAgICAgICBEUEk9IjE3MCIgOzsKLS0tIAotMS43LjguNgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMTUteHNlcnZlci1jb21tb24tZGlzYWJsZS1UQ1AtY29ubmVjdGlvbnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbi0xLjM0LzAwMTUteHNlcnZlci1jb21tb24tZGlzYWJsZS1UQ1AtY29ubmVjdGlvbnMucGF0Y2gKaW5kZXggMDZkZjI2MS4uYTczMTkxNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb24tMS4zNC8wMDE1LXhzZXJ2ZXItY29tbW9uLWRpc2FibGUtVENQLWNvbm5lY3Rpb25zLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uLTEuMzQvMDAxNS14c2VydmVyLWNvbW1vbi1kaXNhYmxlLVRDUC1jb25uZWN0aW9ucy5wYXRjaApAQCAtMSwzICsxLDQgQEAKK0Zyb20gNTIzNjIwOWUzMGUwZjQ1MTEzZTE0MGYwNjY3YzhmZmNmZTYyMTUzNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEphdmllciBWaWd1ZXJhIDxqYXZpZXIudmlndWVyYUBkaWdpLmNvbT4KIERhdGU6IFdlZCwgMjYgTm92IDIwMTQgMDk6MjQ6NDQgKzAxMDAKIFN1YmplY3Q6IFtQQVRDSF0geHNlcnZlci1jb21tb246IGRpc2FibGUgVENQIGNvbm5lY3Rpb25zCkBAIC01LDEyICs2LDEzIEBACiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCiAKIFNpZ25lZC1vZmYtYnk6IEphdmllciBWaWd1ZXJhIDxqYXZpZXIudmlndWVyYUBkaWdpLmNvbT4KKwogLS0tCiAgWDExL3hzZXJ2ZXItY29tbW9uIHwgMiArLQogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQogCiBkaWZmIC0tZ2l0IGEvWDExL3hzZXJ2ZXItY29tbW9uIGIvWDExL3hzZXJ2ZXItY29tbW9uCi1pbmRleCAwMTdlNWFlZTFhYjAuLjRkYzQ4YzQxMjc0MSAxMDA2NDQKK2luZGV4IDAxN2U1YWUuLjRkYzQ4YzQgMTAwNjQ0CiAtLS0gYS9YMTEveHNlcnZlci1jb21tb24KICsrKyBiL1gxMS94c2VydmVyLWNvbW1vbgogQEAgLTQ0LDcgKzQ0LDcgQEAgU0NSRUVOX1NJWkU9YGZhbGxiYWNrX3NjcmVlbl9hcmdgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbl8xLjM0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ3JhcGhpY3MveHNlcnZlci1jb21tb24veHNlcnZlci1jb21tb25fMS4zNC5iYgppbmRleCBjYzMwNTQxLi5hNWVkMjFkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1ncmFwaGljcy94c2VydmVyLWNvbW1vbi94c2VydmVyLWNvbW1vbl8xLjM0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdyYXBoaWNzL3hzZXJ2ZXItY29tbW9uL3hzZXJ2ZXItY29tbW9uXzEuMzQuYmIKQEAgLTUsNyArNSw5IEBACiBQUiA9ICJyOSIKIAogIyB3ZSBhcmUgdXNpbmcgYSBncGUtc3R5bGUgTWFrZWZpbGUKLWluaGVyaXQgZ3BlCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBncGUKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogU1JDX1VSSVttZDVzdW1dID0gIjgyZjJmODRjZDk2NjEwZThmN2I5MmM3MDBjZDMxYzE0IgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImNkMDRjMzM0MThmNzc2YjFlMTNmY2M3YWYzZDZiZDBjN2NjY2QwM2ZiYWJkN2RiY2Q5N2Y4ODE2NmNjMzQyMTAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvY3B1cG93ZXIvY3B1cG93ZXIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvY3B1cG93ZXIvY3B1cG93ZXIuYmIKaW5kZXggYzk2M2M4ZS4uNGFiZDI3MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL2NwdXBvd2VyL2NwdXBvd2VyLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9jcHVwb3dlci9jcHVwb3dlci5iYgpAQCAtMyw3ICszLDcgQEAKIHNhdmluZyByZWxhdGVkIGZlYXR1cmVzIG9mIHlvdXIgcHJvY2Vzc29yLiIKIExJQ0VOU0UgPSAiR1BMdjIiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kNzgxMGZhYjc0ODdmYjBhYWQzMjdiNzZmMWJlN2NkNyIKLURFUEVORFMgPSAicGNpdXRpbHMiCitERVBFTkRTID0gInBjaXV0aWxzIGdldHRleHQtbmF0aXZlIgogUFJPVklERVMgPSAidmlydHVhbC9jcHVwb3dlciIKIAogaW5oZXJpdCBrZXJuZWxzcmMga2VybmVsLWFyY2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9jcmFzaC9jcmFzaC8wMDA0LWNyYXNoLWZpeC1idWlsZC1mYWlsdXJlLXdpdGgtbWlwcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9jcmFzaC9jcmFzaC8wMDA0LWNyYXNoLWZpeC1idWlsZC1mYWlsdXJlLXdpdGgtbWlwcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU3Y2U2Yi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvY3Jhc2gvY3Jhc2gvMDAwNC1jcmFzaC1maXgtYnVpbGQtZmFpbHVyZS13aXRoLW1pcHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi1Gcm9tIDQyM2ViZGNlMDdhYTlmMzk4ZjMyYzBhZGY2NTkzNTMwNjlkMDIzYzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZW5na2UgRHUgPGRlbmdrZS5kdUB3aW5kcml2ZXIuY29tPgotRGF0ZTogVGh1LCA0IE1heSAyMDE3IDA3OjE0OjEzICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIGNyYXNoOiBmaXggYnVpbGQgZmFpbHVyZSB3aXRoIG1pcHMKLQotV2hlbiBidWlsZCBjcmFzaCB3aXRoIG1pcHM6Ci0KLX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotbWlwcy1saW51eC1uYXQuYzoxNTc6MTogZXJyb3I6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciAncHNfZ2V0X3RocmVhZF9hcmVhJwotIHBzX2dldF90aHJlYWRfYXJlYSAoY29uc3Qgc3RydWN0IHBzX3Byb2NoYW5kbGUgKnBoLAotIF5+fn5+fn5+fn5+fn5+fn5+fgotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGdkYl9wcm9jX3NlcnZpY2UuaDoyNjowLAotICAgICAgICAgICAgICAgICBmcm9tIG1pcHMtbGludXgtbmF0LmM6MzI6Ci1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQotVGhpcyBwcm9ibGVtIGhhdmUgYmVlbiBmaXhlZCBvbiBpbnRlbCBhbmQgYXJtIHBsYW50Zm9ybSwgd2UgY2FuIHVzZSB0aGUKLXNpbWlsYXIgYXBwcm9jaCB0byBmaXggaXQgb24gbWlwcy4KLQotVXBzdHJlYW0tc3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vZ2l0aHViLmNvbS9jcmFzaC11dGlsaXR5L2NyYXNoL3B1bGwvMTFdCi0KLVNpZ25lZC1vZmYtYnk6IERlbmdrZSBEdSA8ZGVuZ2tlLmR1QHdpbmRyaXZlci5jb20+Ci0tLS0KLSBNYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCi0gY3Jhc2gtZml4LWJ1aWxkLWZhaWx1cmUtd2l0aC1taXBzLnBhdGNoIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGNyYXNoLWZpeC1idWlsZC1mYWlsdXJlLXdpdGgtbWlwcy5wYXRjaAotCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQotaW5kZXggNTQ5NjUyMy4uMmVjMzMyNSAxMDA2NDQKLS0tLSBhL01ha2VmaWxlCi0rKysgYi9NYWtlZmlsZQotQEAgLTI2OCw2ICsyNjgsNyBAQCBnZGJfcGF0Y2g6Ci0gCQlncmVwICdleHRlcm4gcHNfZXJyX2UgcHNfZ2V0X3RocmVhZF9hcmVhIChzdHJ1Y3QnICR7UkVDSVBFX1NZU1JPT1R9L3Vzci9pbmNsdWRlL3Byb2Nfc2VydmljZS5oOyBcCi0gCQlpZiBbICQkPyAtZXEgMCBdOyB0aGVuIFwKLSAJCQlwYXRjaCAtcDAgPCAke0dEQn0tcHJvY19zZXJ2aWNlLmgucGF0Y2g7IFwKLSsJCQlwYXRjaCAtcDEgPCBjcmFzaC1maXgtYnVpbGQtZmFpbHVyZS13aXRoLW1pcHMucGF0Y2g7IFwKLSAJCWZpOyBcCi0gCWZpCi0gCi1kaWZmIC0tZ2l0IGEvY3Jhc2gtZml4LWJ1aWxkLWZhaWx1cmUtd2l0aC1taXBzLnBhdGNoIGIvY3Jhc2gtZml4LWJ1aWxkLWZhaWx1cmUtd2l0aC1taXBzLnBhdGNoCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMGM3MGM1ZgotLS0tIC9kZXYvbnVsbAotKysrIGIvY3Jhc2gtZml4LWJ1aWxkLWZhaWx1cmUtd2l0aC1taXBzLnBhdGNoCi1AQCAtMCwwICsxLDM5IEBACi0rRnJvbSA2MTVjODAyZDljNzNmYWQ0ODcyM2I2NTY3MDQyY2Q1NGY2Nzk1ODQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotK0Zyb206IERlbmdrZSBEdSA8ZGVuZ2tlLmR1QHdpbmRyaXZlci5jb20+Ci0rRGF0ZTogVGh1LCA0IE1heSAyMDE3IDA2OjE0OjQ3ICswMDAwCi0rU3ViamVjdDogW1BBVENIXSBjcmFzaDogZml4IGJ1aWxkIGZhaWx1cmUgd2l0aCBtaXBzCi0rCi0rV2hlbiBidWlsZCBjcmFzaCB3aXRoIG1pcHM6Ci0rCi0rfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotK21pcHMtbGludXgtbmF0LmM6MTU3OjE6IGVycm9yOiBjb25mbGljdGluZyB0eXBlcyBmb3IgJ3BzX2dldF90aHJlYWRfYXJlYScKLSsgcHNfZ2V0X3RocmVhZF9hcmVhIChjb25zdCBzdHJ1Y3QgcHNfcHJvY2hhbmRsZSAqcGgsCi0rIF5+fn5+fn5+fn5+fn5+fn5+fgotK0luIGZpbGUgaW5jbHVkZWQgZnJvbSBnZGJfcHJvY19zZXJ2aWNlLmg6MjY6MCwKLSsgICAgICAgICAgICAgICAgIGZyb20gbWlwcy1saW51eC1uYXQuYzozMjoKLSt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0rCi0rVGhpcyBwcm9ibGVtIGhhdmUgYmVlbiBmaXhlZCBvbiBpbnRlbCBhbmQgYXJtIHBsYW50Zm9ybSwgd2UgY2FuIHVzZSB0aGUKLStzaW1pbGFyIGFwcHJvY2ggdG8gZml4IGl0IG9uIG1pcHMuCi0rCi0rU2lnbmVkLW9mZi1ieTogRGVuZ2tlIER1IDxkZW5na2UuZHVAd2luZHJpdmVyLmNvbT4KLSstLS0KLSsgZ2RiLTcuNi9nZGIvbWlwcy1saW51eC1uYXQuYyB8IDIgKy0KLSsgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0rCi0rZGlmZiAtLWdpdCBhL2dkYi03LjYvZ2RiL21pcHMtbGludXgtbmF0LmMgYi9nZGItNy42L2dkYi9taXBzLWxpbnV4LW5hdC5jCi0raW5kZXggNjFlODNjNi4uZDUxN2UzNyAxMDA2NDQKLSstLS0gYS9nZGItNy42L2dkYi9taXBzLWxpbnV4LW5hdC5jCi0rKysrIGIvZ2RiLTcuNi9nZGIvbWlwcy1saW51eC1uYXQuYwotK0BAIC0xNTQsNyArMTU0LDcgQEAgbWlwczY0X2xpbnV4X3JlZ2lzdGVyX2FkZHIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbm8sIGludCBzdG9yZSkKLSsgLyogRmV0Y2ggdGhlIHRocmVhZC1sb2NhbCBzdG9yYWdlIHBvaW50ZXIgZm9yIGxpYnRocmVhZF9kYi4gICovCi0rIAotKyBwc19lcnJfZQotKy1wc19nZXRfdGhyZWFkX2FyZWEgKGNvbnN0IHN0cnVjdCBwc19wcm9jaGFuZGxlICpwaCwKLSsrcHNfZ2V0X3RocmVhZF9hcmVhIChzdHJ1Y3QgcHNfcHJvY2hhbmRsZSAqcGgsCi0rICAgICAgICAgICAgICAgICAgICAgbHdwaWRfdCBsd3BpZCwgaW50IGlkeCwgdm9pZCAqKmJhc2UpCi0rIHsKLSsgICBpZiAocHRyYWNlIChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBLCBsd3BpZCwgTlVMTCwgYmFzZSkgIT0gMCkKLSstLSAKLSsyLjExLjAKLSsKLS0tIAotMi4xMS4wCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9jcmFzaC9jcmFzaF83LjEuOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9jcmFzaC9jcmFzaF83LjEuOS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQwOTM3ZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvY3Jhc2gvY3Jhc2hfNy4xLjkuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMTYgKzAsMCBAQAotU1VNTUFSWSA9ICJLZXJuZWwgYW5hbHlzaXMgdXRpbGl0eSBmb3IgbGl2ZSBzeXN0ZW1zLCBuZXRkdW1wLCBkaXNrZHVtcCwga2R1bXAsIExLQ0Qgb3IgbWNvcmUgZHVtcGZpbGVzIgotREVTQ1JJUFRJT04gPSAiVGhlIGNvcmUgYW5hbHlzaXMgc3VpdGUgaXMgYSBzZWxmLWNvbnRhaW5lZCB0b29sIHRoYXQgY2FuIGJlIHVzZWQgdG9cCi1pbnZlc3RpZ2F0ZSBlaXRoZXIgbGl2ZSBzeXN0ZW1zLCBrZXJuZWwgY29yZSBkdW1wcyBjcmVhdGVkIGZyb20gdGhlXAotbmV0ZHVtcCwgZGlza2R1bXAgYW5kIGtkdW1wIHBhY2thZ2VzIGZyb20gUmVkIEhhdCBMaW51eCwgdGhlIG1jb3JlIGtlcm5lbCBwYXRjaFwKLW9mZmVyZWQgYnkgTWlzc2lvbiBDcml0aWNhbCBMaW51eCwgb3IgdGhlIExLQ0Qga2VybmVsIHBhdGNoLiIKLQotSE9NRVBBR0UgPSAiaHR0cDovL3Blb3BsZS5yZWRoYXQuY29tL2FuZGVyc29uIgotU0VDVElPTiA9ICJkZXZlbCIKLQotTElDRU5TRSA9ICJHUEx2MyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkczO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKLQotREVQRU5EUyA9ICJ6bGliIHJlYWRsaW5lIGNvcmV1dGlscy1uYXRpdmUiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2NyYXNoLXV0aWxpdHkvJHtCUE59L2FyY2hpdmUvJHtQVn0udGFyLmd6O2Rvd25sb2FkZmlsZW5hbWU9JHtCUH0udGFyLmd6IFwKLSAgICAgICAgICAgaHR0cDovL2Z0cC5nbnUub3JnL2dudS9nZGIvZ2RiLTcuNi50YXIuZ3o7bmFtZT1nZGI7c3ViZGlyPSR7QlB9IFwKLSAgICAgICAgICAgZmlsZTovLzcwMDFmb3JjZV9kZWZpbmVfYXJjaGl0ZWN0dXJlLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzcwMDNjcm9zc19yYW5saWIucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1jcm9zc19hZGRfY29uZmlndXJlX29wdGlvbi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9zaW0tcHBjLWRyb3AtTElCUy1mcm9tLXBzaW0tZGVwZW5kZW5jeS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9zaW0tY29tbW9uLXNpbS1hcmFuZ2UtZml4LWV4dGVybi1pbmxpbmUtaGFuZGxpbmcucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vZG9ubm90LWV4dHJhY3QtZ2RiLWR1cmluZy1kby1jb21waWxlLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2dkYl9idWlsZF9qb2JzX2FuZF9ub3Rfd3JpdGVfY3Jhc2hfdGFyZ2V0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL3JlbW92ZS11bnJlY29nbml6ZWQtZ2NjLW9wdGlvbi1tMzItZm9yLW1pcHMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi1jcmFzaC1maXgtYnVpbGQtZXJyb3ItdW5rbm93bi10eXBlLW5hbWUtZ2RiX2ZwcmVnc2V0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDMtY3Jhc2gtZGV0ZWN0LXRoZS1zeXNyb290LXMtZ2xpYmMtaGVhZGVyLWZpbGUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwNC1jcmFzaC1maXgtYnVpbGQtZmFpbHVyZS13aXRoLW1pcHMucGF0Y2ggXAotICAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiZjNiNDRhMTUxZGJlNzA0NjQ2MmI5Y2FhYTk4NDdjYTYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzQ4ZTEyNjk0NDNhNmE4ZTgzMzdlMzI4YjIxYjAzZTRlNTAyNDhmNjA3ZWVkODNmYmIyN2ViMGQ4MzNkNmFhNCIKLQotU1JDX1VSSVtnZGIubWQ1c3VtXSA9ICJhOTgzNjcwNzMzN2U1ZjdiZjc2YTAwOWE4OTA0ZjQ3MCIKLVNSQ19VUklbZ2RiLnNoYTI1NnN1bV0gPSAiODA3MDM4OWE1ZGNjMTA0ZWIwYmU0ODNkNTgyNzI5Zjk4ZWQ0ZDc2MWFkMTljZWRkM2YxN2I1ZDI1MDJmYWEzNiIKLQotaW5oZXJpdCBnZXR0ZXh0Ci0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIGNyb3NzIgotVEFSR0VUX0NDX0FSQ0hfYXBwZW5kID0gIiAke1NFTEVDVEVEX09QVElNSVpBVElPTn0iCi0KLSMgY3Jhc2ggNy4xLjMgYW5kIGJlZm9yZSBkb24ndCBzdXBwb3J0IG1pcHM2NAotQ09NUEFUSUJMRV9IT1NUID0gIl4oPyFtaXBzNjQpLioiCi0KLUVYVFJBX09FTUFLRSA9ICdSUE1QS0c9IiR7UFZ9IiBcCi0gICAgICAgICAgICAgICAgR0RCX1RBUkdFVD0iJHtUQVJHRVRfU1lTfSIgXAotICAgICAgICAgICAgICAgIEdEQl9IT1NUPSIke0JVSUxEX1NZU30iIFwKLSAgICAgICAgICAgICAgICBHREJfTUFLRV9KT0JTPSIke1BBUkFMTEVMX01BS0V9IiBcCi0gICAgICAgICAgICAgICAgTERGTEFHUz0iJHtMREZMQUdTfSIgXAotICAgICAgICAgICAgICAgICcKLQotRVhUUkFfT0VNQUtFX2NsYXNzLWNyb3NzID0gJ1JQTVBLRz0iJHtQVn0iIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJfVEFSR0VUPSIke0JVSUxEX1NZU30gXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwke0dEQl9DT05GX0ZMQUdTfSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS10YXJnZXQ9JHtUQVJHRVRfU1lTfSIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEQl9IT1NUPSIke0JVSUxEX1NZU30iIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJfTUFLRV9KT0JTPSIke1BBUkFMTEVMX01BS0V9IiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJwotCi1FWFRSQV9PRU1BS0VfYXBwZW5kX2NsYXNzLW5hdGl2ZSA9ICIgTERGTEFHUz0nJHtCVUlMRF9MREZMQUdTfSciCi1FWFRSQV9PRU1BS0VfYXBwZW5kX2NsYXNzLWNyb3NzID0gIiBMREZMQUdTPScke0JVSUxEX0xERkxBR1N9JyIKLQotUkVNT1ZFX00zMiA9ICJzZWQgLWkgLWUgJ3MvI2RlZmluZSBUQVJHRVRfQ0ZMQUdTX0FSTV9PTl9YODZfNjQuKi8jZGVmaW5lIFRBUkdFVF9DRkxBR1NfQVJNX09OX1g4Nl82NFx0XCJUQVJHRVRfQ0ZMQUdTPS1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjRcIi9nJyAke1N9L2NvbmZpZ3VyZS5jIgotCi1SRU1PVkVfTTMyX2NsYXNzLWNyb3NzID0gIiIKLQotZG9fY29uZmlndXJlKCkgewotICAgIDoKLX0KLQotZG9fY29tcGlsZV9wcmVwZW5kKCkgewotICAgIGNhc2UgJHtUQVJHRVRfQVJDSH0gaW4KLSAgICAgICAgYWFyY2g2NCopICAgIEFSQ0g9QVJNNjQgOzsKLSAgICAgICAgYXJtKikgICAgICAgIEFSQ0g9QVJNIDs7Ci0gICAgICAgIGkqODYqKSAgICAgICBBUkNIPVg4NiA7OwotICAgICAgICB4ODZfNjQqKSAgICAgQVJDSD1YODZfNjQgOzsKLSAgICAgICAgcG93ZXJwYzY0KikgIEFSQ0g9UFBDNjQgOzsKLSAgICAgICAgcG93ZXJwYyopICAgIEFSQ0g9UFBDIDs7Ci0gICAgICAgIG1pcHMqKSAgICAgICBBUkNIPU1JUFMgOzsKLSAgICBlc2FjCi0KLSAgICBzZWQgLWkgcy9GT1JDRV9ERUZJTkVfQVJDSC8iJHtBUkNIfSIvZyAke1N9L2NvbmZpZ3VyZS5jCi0gICAgJHtSRU1PVkVfTTMyfQotICAgIHNlZCAtaSAncy8mZ3Q7Lz4vZycgJHtTfS9NYWtlZmlsZQotfQotCi1kb19jb21waWxlKCkgewotICAgIG9lX3J1bm1ha2UgJHtFWFRSQV9PRU1BS0V9IFJFQ0lQRV9TWVNST09UPSR7UkVDSVBFX1NZU1JPT1R9Ci19Ci0KLWRvX2luc3RhbGxfcHJlcGVuZCAoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtiaW5kaXJ9Ci0gICAgaW5zdGFsbCAtZCAke0R9LyR7bWFuZGlyfS9tYW44Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtpbmNsdWRlZGlyfS9jcmFzaAotCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vY3Jhc2guOCAke0R9LyR7bWFuZGlyfS9tYW44LwotICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L2RlZnMuaCAke0R9JHtpbmNsdWRlZGlyfS9jcmFzaAotfQotCi1kb19pbnN0YWxsX2NsYXNzLXRhcmdldCAoKSB7Ci0gICAgb2VfcnVubWFrZSBERVNURElSPSR7RH0gaW5zdGFsbAotfQotCi1kb19pbnN0YWxsX2NsYXNzLW5hdGl2ZSAoKSB7Ci0gICAgb2VfcnVubWFrZSBERVNURElSPSR7RH0ke1NUQUdJTkdfRElSX05BVElWRX0gaW5zdGFsbAotfQotCi1kb19pbnN0YWxsX2NsYXNzLWNyb3NzICgpIHsKLSAgICBpbnN0YWxsIC1tIDA3NTUgJHtTfS9jcmFzaCAke0R9LyR7YmluZGlyfQotfQotCi1SREVQRU5EU18ke1BOfSArPSAibGlibHptYSIKLVJERVBFTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCi1SREVQRU5EU18ke1BOfV9jbGFzcy1jcm9zcyA9ICIiCi0KLSMgQ2F1c2VzIGdjYyB0byBnZXQgc3R1Y2sgYW5kIGVhdCBhbGwgYXZhaWxhYmxlIG1lbW9yeSBpbiBxZW11YXJtIGJ1aWxkcwotIyBqZW5raW5zICAxNTE2MSAgMTAwIDEyLjUgMTAzODk1OTYgMTAzMjEyODQgPyAgIFIgICAgMTE6NDAgIDI4OjE3IC9ob21lL2plbmtpbnMvb2Uvd29ybGQvc2hyLWNvcmUvdG1wLWdsaWJjL3N5c3Jvb3RzL3g4Nl82NC1saW51eC91c3IvbGliZXhlYy9hcm0tb2UtbGludXgtZ251ZWFiaS9nY2MvYXJtLW9lLWxpbnV4LWdudWVhYmkvNC45LjIvY2MxIC1xdWlldCAtSSAuIC1JIC4gLUkgLi9jb21tb24gLUkgLi9jb25maWcgLUkgLi8uLi9pbmNsdWRlL29wY29kZSAtSSAuLy4uL29wY29kZXMvLi4gLUkgLi8uLi9yZWFkbGluZS8uLiAtSSAuLi9iZmQgLUkgLi8uLi9iZmQgLUkgLi8uLi9pbmNsdWRlIC1JIC4uL2xpYmRlY251bWJlciAtSSAuLy4uL2xpYmRlY251bWJlciAtSSAuL2dudWxpYi9pbXBvcnQgLUkgYnVpbGQtZ251bGliL2ltcG9ydCAtaXN5c3Jvb3QgL2hvbWUvamVua2lucy9vZS93b3JsZC9zaHItY29yZS90bXAtZ2xpYmMvc3lzcm9vdHMvcWVtdWFybSAtTU1EIGV2YWwuZCAtTUYgLmRlcHMvZXZhbC5UcG8gLU1QIC1NVCBldmFsLm8gLUQgTE9DQUxFRElSPSIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIgLUQgQ1JBU0hfTUVSR0UgLUQgSEFWRV9DT05GSUdfSCAtRCBUVUk9MSBldmFsLmMgLXF1aWV0IC1kdW1wYmFzZSBldmFsLmMgLW1hcmNoPWFybXY1dGUgLW10aHVtYiAtbXRodW1iLWludGVyd29yayAtbXRscy1kaWFsZWN0PWdudSAtYXV4YmFzZS1zdHJpcCBldmFsLm8gLWcgLU8yIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV2Zvcm1hdC1ub25saXRlcmFsIC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkIC1XdW51c2VkLXZhbHVlIC1XdW51c2VkLWZ1bmN0aW9uIC1Xbm8tc3dpdGNoIC1Xbm8tY2hhci1zdWJzY3JpcHRzIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW1wdHktYm9keSAtZmVsaW1pbmF0ZS11bnVzZWQtZGVidWctdHlwZXMgLW8gLQotQVJNX0lOU1RSVUNUSU9OX1NFVCA9ICJhcm0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvY3Jhc2gvY3Jhc2hfNy4yLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvY3Jhc2gvY3Jhc2hfNy4yLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWJlYTQ4ZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9jcmFzaC9jcmFzaF83LjIuMC5iYgpAQCAtMCwwICsxLDExNSBAQAorU1VNTUFSWSA9ICJLZXJuZWwgYW5hbHlzaXMgdXRpbGl0eSBmb3IgbGl2ZSBzeXN0ZW1zLCBuZXRkdW1wLCBkaXNrZHVtcCwga2R1bXAsIExLQ0Qgb3IgbWNvcmUgZHVtcGZpbGVzIgorREVTQ1JJUFRJT04gPSAiVGhlIGNvcmUgYW5hbHlzaXMgc3VpdGUgaXMgYSBzZWxmLWNvbnRhaW5lZCB0b29sIHRoYXQgY2FuIGJlIHVzZWQgdG9cCitpbnZlc3RpZ2F0ZSBlaXRoZXIgbGl2ZSBzeXN0ZW1zLCBrZXJuZWwgY29yZSBkdW1wcyBjcmVhdGVkIGZyb20gdGhlXAorbmV0ZHVtcCwgZGlza2R1bXAgYW5kIGtkdW1wIHBhY2thZ2VzIGZyb20gUmVkIEhhdCBMaW51eCwgdGhlIG1jb3JlIGtlcm5lbCBwYXRjaFwKK29mZmVyZWQgYnkgTWlzc2lvbiBDcml0aWNhbCBMaW51eCwgb3IgdGhlIExLQ0Qga2VybmVsIHBhdGNoLiIKKworSE9NRVBBR0UgPSAiaHR0cDovL3Blb3BsZS5yZWRoYXQuY29tL2FuZGVyc29uIgorU0VDVElPTiA9ICJkZXZlbCIKKworTElDRU5TRSA9ICJHUEx2MyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkczO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKKworREVQRU5EUyA9ICJ6bGliIHJlYWRsaW5lIGNvcmV1dGlscy1uYXRpdmUiCisKK1NSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2NyYXNoLXV0aWxpdHkvJHtCUE59L2FyY2hpdmUvJHtQVn0udGFyLmd6O2Rvd25sb2FkZmlsZW5hbWU9JHtCUH0udGFyLmd6IFwKKyAgICAgICAgICAgaHR0cDovL2Z0cC5nbnUub3JnL2dudS9nZGIvZ2RiLTcuNi50YXIuZ3o7bmFtZT1nZGI7c3ViZGlyPSR7QlB9IFwKKyAgICAgICAgICAgZmlsZTovLzcwMDFmb3JjZV9kZWZpbmVfYXJjaGl0ZWN0dXJlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzcwMDNjcm9zc19yYW5saWIucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1jcm9zc19hZGRfY29uZmlndXJlX29wdGlvbi5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9zaW0tcHBjLWRyb3AtTElCUy1mcm9tLXBzaW0tZGVwZW5kZW5jeS5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9zaW0tY29tbW9uLXNpbS1hcmFuZ2UtZml4LWV4dGVybi1pbmxpbmUtaGFuZGxpbmcucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vZG9ubm90LWV4dHJhY3QtZ2RiLWR1cmluZy1kby1jb21waWxlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2dkYl9idWlsZF9qb2JzX2FuZF9ub3Rfd3JpdGVfY3Jhc2hfdGFyZ2V0LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3JlbW92ZS11bnJlY29nbml6ZWQtZ2NjLW9wdGlvbi1tMzItZm9yLW1pcHMucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMi1jcmFzaC1maXgtYnVpbGQtZXJyb3ItdW5rbm93bi10eXBlLW5hbWUtZ2RiX2ZwcmVnc2V0LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDMtY3Jhc2gtZGV0ZWN0LXRoZS1zeXNyb290LXMtZ2xpYmMtaGVhZGVyLWZpbGUucGF0Y2ggXAorICAgICAgICAgICAiCitTUkNfVVJJW21kNXN1bV0gPSAiNDg4OTlkZTMxMThlMDRjZmE0MGEyMzY0ZjU2MTgxOTMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWQwNzZlMWZlZmI0MWFhMTc4YWQzZTFjZWY2NTExNjcwZWZjNDdkZTVjYjA0ZDRhZjliZGQ0ZThmMmYxOGNiYyIKKworU1JDX1VSSVtnZGIubWQ1c3VtXSA9ICJhOTgzNjcwNzMzN2U1ZjdiZjc2YTAwOWE4OTA0ZjQ3MCIKK1NSQ19VUklbZ2RiLnNoYTI1NnN1bV0gPSAiODA3MDM4OWE1ZGNjMTA0ZWIwYmU0ODNkNTgyNzI5Zjk4ZWQ0ZDc2MWFkMTljZWRkM2YxN2I1ZDI1MDJmYWEzNiIKKworaW5oZXJpdCBnZXR0ZXh0CisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIGNyb3NzIgorVEFSR0VUX0NDX0FSQ0hfYXBwZW5kID0gIiAke1NFTEVDVEVEX09QVElNSVpBVElPTn0iCisKKyMgY3Jhc2ggNy4xLjMgYW5kIGJlZm9yZSBkb24ndCBzdXBwb3J0IG1pcHM2NAorQ09NUEFUSUJMRV9IT1NUID0gIl4oPyFtaXBzNjQpLioiCisKK0VYVFJBX09FTUFLRSA9ICdSUE1QS0c9IiR7UFZ9IiBcCisgICAgICAgICAgICAgICAgR0RCX1RBUkdFVD0iJHtUQVJHRVRfU1lTfSIgXAorICAgICAgICAgICAgICAgIEdEQl9IT1NUPSIke0JVSUxEX1NZU30iIFwKKyAgICAgICAgICAgICAgICBHREJfTUFLRV9KT0JTPSIke1BBUkFMTEVMX01BS0V9IiBcCisgICAgICAgICAgICAgICAgTERGTEFHUz0iJHtMREZMQUdTfSIgXAorICAgICAgICAgICAgICAgICcKKworRVhUUkFfT0VNQUtFX2NsYXNzLWNyb3NzID0gJ1JQTVBLRz0iJHtQVn0iIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJfVEFSR0VUPSIke0JVSUxEX1NZU30gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwke0dEQl9DT05GX0ZMQUdTfSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS10YXJnZXQ9JHtUQVJHRVRfU1lTfSIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEQl9IT1NUPSIke0JVSUxEX1NZU30iIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJfTUFLRV9KT0JTPSIke1BBUkFMTEVMX01BS0V9IiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJworCitFWFRSQV9PRU1BS0VfYXBwZW5kX2NsYXNzLW5hdGl2ZSA9ICIgTERGTEFHUz0nJHtCVUlMRF9MREZMQUdTfSciCitFWFRSQV9PRU1BS0VfYXBwZW5kX2NsYXNzLWNyb3NzID0gIiBMREZMQUdTPScke0JVSUxEX0xERkxBR1N9JyIKKworUkVNT1ZFX00zMiA9ICJzZWQgLWkgLWUgJ3MvI2RlZmluZSBUQVJHRVRfQ0ZMQUdTX0FSTV9PTl9YODZfNjQuKi8jZGVmaW5lIFRBUkdFVF9DRkxBR1NfQVJNX09OX1g4Nl82NFx0XCJUQVJHRVRfQ0ZMQUdTPS1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjRcIi9nJyAke1N9L2NvbmZpZ3VyZS5jIgorCitSRU1PVkVfTTMyX2NsYXNzLWNyb3NzID0gIiIKKworZG9fY29uZmlndXJlKCkgeworICAgIDoKK30KKworZG9fY29tcGlsZV9wcmVwZW5kKCkgeworICAgIGNhc2UgJHtUQVJHRVRfQVJDSH0gaW4KKyAgICAgICAgYWFyY2g2NCopICAgIEFSQ0g9QVJNNjQgOzsKKyAgICAgICAgYXJtKikgICAgICAgIEFSQ0g9QVJNIDs7CisgICAgICAgIGkqODYqKSAgICAgICBBUkNIPVg4NiA7OworICAgICAgICB4ODZfNjQqKSAgICAgQVJDSD1YODZfNjQgOzsKKyAgICAgICAgcG93ZXJwYzY0KikgIEFSQ0g9UFBDNjQgOzsKKyAgICAgICAgcG93ZXJwYyopICAgIEFSQ0g9UFBDIDs7CisgICAgICAgIG1pcHMqKSAgICAgICBBUkNIPU1JUFMgOzsKKyAgICBlc2FjCisKKyAgICBzZWQgLWkgcy9GT1JDRV9ERUZJTkVfQVJDSC8iJHtBUkNIfSIvZyAke1N9L2NvbmZpZ3VyZS5jCisgICAgJHtSRU1PVkVfTTMyfQorICAgIHNlZCAtaSAncy8mZ3Q7Lz4vZycgJHtTfS9NYWtlZmlsZQorfQorCitkb19jb21waWxlKCkgeworICAgIG9lX3J1bm1ha2UgJHtFWFRSQV9PRU1BS0V9IFJFQ0lQRV9TWVNST09UPSR7UkVDSVBFX1NZU1JPT1R9Cit9CisKK2RvX2luc3RhbGxfcHJlcGVuZCAoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9JHtiaW5kaXJ9CisgICAgaW5zdGFsbCAtZCAke0R9LyR7bWFuZGlyfS9tYW44CisgICAgaW5zdGFsbCAtZCAke0R9JHtpbmNsdWRlZGlyfS9jcmFzaAorCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vY3Jhc2guOCAke0R9LyR7bWFuZGlyfS9tYW44LworICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L2RlZnMuaCAke0R9JHtpbmNsdWRlZGlyfS9jcmFzaAorfQorCitkb19pbnN0YWxsX2NsYXNzLXRhcmdldCAoKSB7CisgICAgb2VfcnVubWFrZSBERVNURElSPSR7RH0gaW5zdGFsbAorfQorCitkb19pbnN0YWxsX2NsYXNzLW5hdGl2ZSAoKSB7CisgICAgb2VfcnVubWFrZSBERVNURElSPSR7RH0ke1NUQUdJTkdfRElSX05BVElWRX0gaW5zdGFsbAorfQorCitkb19pbnN0YWxsX2NsYXNzLWNyb3NzICgpIHsKKyAgICBpbnN0YWxsIC1tIDA3NTUgJHtTfS9jcmFzaCAke0R9LyR7YmluZGlyfQorfQorCitSREVQRU5EU18ke1BOfSArPSAibGlibHptYSIKK1JERVBFTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCitSREVQRU5EU18ke1BOfV9jbGFzcy1jcm9zcyA9ICIiCisKKyMgQ2F1c2VzIGdjYyB0byBnZXQgc3R1Y2sgYW5kIGVhdCBhbGwgYXZhaWxhYmxlIG1lbW9yeSBpbiBxZW11YXJtIGJ1aWxkcworIyBqZW5raW5zICAxNTE2MSAgMTAwIDEyLjUgMTAzODk1OTYgMTAzMjEyODQgPyAgIFIgICAgMTE6NDAgIDI4OjE3IC9ob21lL2plbmtpbnMvb2Uvd29ybGQvc2hyLWNvcmUvdG1wLWdsaWJjL3N5c3Jvb3RzL3g4Nl82NC1saW51eC91c3IvbGliZXhlYy9hcm0tb2UtbGludXgtZ251ZWFiaS9nY2MvYXJtLW9lLWxpbnV4LWdudWVhYmkvNC45LjIvY2MxIC1xdWlldCAtSSAuIC1JIC4gLUkgLi9jb21tb24gLUkgLi9jb25maWcgLUkgLi8uLi9pbmNsdWRlL29wY29kZSAtSSAuLy4uL29wY29kZXMvLi4gLUkgLi8uLi9yZWFkbGluZS8uLiAtSSAuLi9iZmQgLUkgLi8uLi9iZmQgLUkgLi8uLi9pbmNsdWRlIC1JIC4uL2xpYmRlY251bWJlciAtSSAuLy4uL2xpYmRlY251bWJlciAtSSAuL2dudWxpYi9pbXBvcnQgLUkgYnVpbGQtZ251bGliL2ltcG9ydCAtaXN5c3Jvb3QgL2hvbWUvamVua2lucy9vZS93b3JsZC9zaHItY29yZS90bXAtZ2xpYmMvc3lzcm9vdHMvcWVtdWFybSAtTU1EIGV2YWwuZCAtTUYgLmRlcHMvZXZhbC5UcG8gLU1QIC1NVCBldmFsLm8gLUQgTE9DQUxFRElSPSIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIgLUQgQ1JBU0hfTUVSR0UgLUQgSEFWRV9DT05GSUdfSCAtRCBUVUk9MSBldmFsLmMgLXF1aWV0IC1kdW1wYmFzZSBldmFsLmMgLW1hcmNoPWFybXY1dGUgLW10aHVtYiAtbXRodW1iLWludGVyd29yayAtbXRscy1kaWFsZWN0PWdudSAtYXV4YmFzZS1zdHJpcCBldmFsLm8gLWcgLU8yIC1XYWxsIC1XcG9pbnRlci1hcml0aCAtV2Zvcm1hdC1ub25saXRlcmFsIC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkIC1XdW51c2VkLXZhbHVlIC1XdW51c2VkLWZ1bmN0aW9uIC1Xbm8tc3dpdGNoIC1Xbm8tY2hhci1zdWJzY3JpcHRzIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1XZW1wdHktYm9keSAtZmVsaW1pbmF0ZS11bnVzZWQtZGVidWctdHlwZXMgLW8gLQorQVJNX0lOU1RSVUNUSU9OX1NFVCA9ICJhcm0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lwbWl0b29sL2lwbWl0b29sXzEuOC4xOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9pcG1pdG9vbC9pcG1pdG9vbF8xLjguMTguYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaXBtaXRvb2wvaXBtaXRvb2xfMS44LjE4LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvaXBtaXRvb2wvaXBtaXRvb2xfMS44LjE4LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lwbWl1dGlsL2lwbWl1dGlsL2ZpeF9zeXN0ZW1kX3BhdGgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvaXBtaXV0aWwvaXBtaXV0aWwvZml4X3N5c3RlbWRfcGF0aC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pcG1pdXRpbC9pcG1pdXRpbC9maXhfc3lzdGVtZF9wYXRoLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvaXBtaXV0aWwvaXBtaXV0aWwvZml4X3N5c3RlbWRfcGF0aC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pcG1pdXRpbC9pcG1pdXRpbF8zLjAuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9pcG1pdXRpbC9pcG1pdXRpbF8zLjAuNS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pcG1pdXRpbC9pcG1pdXRpbF8zLjAuNS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL2lwbWl1dGlsL2lwbWl1dGlsXzMuMC41LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwva3BhdGNoL2twYXRjaC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwva3BhdGNoL2twYXRjaC5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFlNzNlOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9rcGF0Y2gva3BhdGNoLmluYwpAQCAtMCwwICsxLDQ5IEBACitTVU1NQVJZID0gIkxpbnV4IGR5bmFtaWMga2VybmVsIHBhdGNoaW5nIGluZnJhc3RydWN0dXJlIgorREVTQ1JJUFRJT04gPSAia3BhdGNoIGlzIGEgTGludXggZHluYW1pYyBrZXJuZWwgcGF0Y2hpbmcgaW5mcmFzdHJ1Y3R1cmUgd2hpY2ggYWxsb3dzIHlvdSB0byBwYXRjaCBhIHJ1bm5pbmcga2VybmVsIHdpdGhvdXQgcmVib290aW5nIG9yIHJlc3RhcnRpbmcgYW55IHByb2Nlc3Nlcy4iCitMSUNFTlNFID0gIkdQTHYyICYgTEdQTHYyIgorREVQRU5EUyA9ICJlbGZ1dGlscyBiYXNoIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vZHludXAva3BhdGNoLmdpdDtwcm90b2NvbD1odHRwcyBcCisJZmlsZTovLzAwMDEta3BhdGNoLWJ1aWxkLWFkZC1jcm9zcy1jb21waWxhdGlvbi1zdXBwb3J0LnBhdGNoIFwKKwlmaWxlOi8vMDAwMi1rcGF0Y2gtYnVpbGQtYWxsb3ctb3ZlcnJpZGluZy1vZi1kaXN0cm8tbmFtZS5wYXRjaCBcCisJIgorCitFWFRSQV9PRU1BS0UgPSAiIFwKKwlQUkVGSVg9JHtwcmVmaXh9IFwKKwlCSU5ESVI9JHtEfSR7YmluZGlyfSBcCisJU0JJTkRJUj0ke0R9JHtzYmluZGlyfSBcCisJTElCRElSPSR7RH0ke2xpYmRpcn0gXAorCU1BTkRJUj0ke0R9JHttYW5kaXJ9L21hbjEgXAorCVNZU1RFTURESVI9JHtEfSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0gXAorCURFU1RESVI9JHtEfSBcCisJQlVJTERNT0Q9bm8gXAorCUNDPScke0NDfScgXAorCSIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworZG9faW5zdGFsbCAoKSB7CisJb2VfcnVubWFrZSBpbnN0YWxsCit9CisKK1BBQ0tBR0VTID0rICJrcGF0Y2gtYnVpbGQiCitQUk9WSURFUyArPSAia3BhdGNoLWJ1aWxkIgorCitDT01QQVRJQkxFX0hPU1QgPSAiKHg4Nl82NCkuKi1saW51eCIKKworUkRFUEVORFNfJHtQTn0gPSAiYmFzaCBiaW51dGlscyIKK1JERVBFTkRTX2twYXRjaC1idWlsZCA9ICJiYXNoIGdsaWJjLXV0aWxzIgorCitGSUxFU18ke1BOfSA9ICIgXAorCSR7c2JpbmRpcn0va3BhdGNoIFwKKwkke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L2twYXRjaC5zZXJ2aWNlIFwKKwkke21hbmRpcn0vbWFuMS9rcGF0Y2guMS5neiBcCisJIgorRklMRVNfa3BhdGNoLWJ1aWxkID0gIiBcCisJJHtiaW5kaXJ9L2twYXRjaC1idWlsZCBcCisJJHtsaWJleGVjZGlyfS8qIFwKKwkke2RhdGFkaXJ9L2twYXRjaCBcCisJJHttYW5kaXJ9L21hbjEva3BhdGNoLWJ1aWxkLjEuZ3ogXAorCSIKKworU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImtwYXRjaC5zZXJ2aWNlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL2twYXRjaC9rcGF0Y2gvMDAwMS1rcGF0Y2gtYnVpbGQtYWRkLWNyb3NzLWNvbXBpbGF0aW9uLXN1cHBvcnQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwva3BhdGNoL2twYXRjaC8wMDAxLWtwYXRjaC1idWlsZC1hZGQtY3Jvc3MtY29tcGlsYXRpb24tc3VwcG9ydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTlmYjIxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL2twYXRjaC9rcGF0Y2gvMDAwMS1rcGF0Y2gtYnVpbGQtYWRkLWNyb3NzLWNvbXBpbGF0aW9uLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSwxMDMgQEAKK0Zyb20gYTlhODBhMWY0ZGY2NTg5MmEwMjY5Mjk1Y2U4YTY0YjA2ZjJmZjYxZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJ1c2xhbiBCaWxvdm9sIDxyYmlsb3ZvbEBjaXNjby5jb20+CitEYXRlOiBUdWUsIDE5IERlYyAyMDE3IDE1OjU5OjA0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGtwYXRjaC1idWlsZDogYWRkIGNyb3NzLWNvbXBpbGF0aW9uIHN1cHBvcnQKKworVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBvcHRpb24gZm9yIGtwYXRjaC1idWlsZAorc2NyaXB0ICItLWNyb3NzLWNvbXBpbGUiIHdoaWNoIGNhbiBiZSB1c2VkIGZvcgorc3BlY2lmeWluZyBjcm9zcy1jb21wbGllciBwcmVmaXguCitJdCBhbGxvd3MgdG8gYnVpbGQgbGl2ZSBwYXRjaGVzIG5vdCBvbmx5IG9uCit0YXJnZXQgc3lzdGVtLCBidXQgYWxzbyBvbiBob3N0cyBmb3IgYSB0YXJnZXQgb3RoZXIKK3RoYW4gdGhlIG9uZSBvbiB3aGljaCB0aGUgY29tcGlsZXIgaXMgcnVubmluZworCitBbHNvIHJlbW92ZWQgcXVvdGVzIGluIGV4ZWMgbGluZXMsIHNvIGl0IGlzCitwb3NzaWJsZSB0byBwYXNzIG11bHR5LWNvbXBvbmVudCBzdHJpbmdzIGxpa2UKKyJjY2FjaGUgeDg2XzY0LXhlbGludXgtbGludXgtIiBhcyBjcm9zcy1jb21waWxlcgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogUnVzbGFuIEJpbG92b2wgPHJiaWxvdm9sQGNpc2NvLmNvbT4KKy0tLQorIGtwYXRjaC1idWlsZC9rcGF0Y2gtYnVpbGQgfCAxMyArKysrKysrKysrKy0tCisga3BhdGNoLWJ1aWxkL2twYXRjaC1nY2MgICB8ICA0ICsrLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9rcGF0Y2gtYnVpbGQva3BhdGNoLWJ1aWxkIGIva3BhdGNoLWJ1aWxkL2twYXRjaC1idWlsZAoraW5kZXggMTY2ZWNiZC4uYWYyNGNjNCAxMDA3NTUKKy0tLSBhL2twYXRjaC1idWlsZC9rcGF0Y2gtYnVpbGQKKysrKyBiL2twYXRjaC1idWlsZC9rcGF0Y2gtYnVpbGQKK0BAIC0xOTUsNyArMTk1LDcgQEAgZ2NjX3ZlcnNpb25fY2hlY2soKSB7CisgCSMgZ2NjIC0tdmVyc2lvbiB2YXJpZXMgYmV0d2VlbiBkaXN0cmlidXRpb25zIHRoZXJlZm9yZSBleHRyYWN0IHZlcnNpb24KKyAJIyBieSBjb21waWxpbmcgYSB0ZXN0IGZpbGUgYW5kIGNvbXBhcmUgaXQgdG8gdm1saW51eCdzIHZlcnNpb24uCisgCWVjaG8gJ3ZvaWQgbWFpbih2b2lkKSB7fScgPiAiJGMiCistCW91dD0iJChnY2MgLWMgLXBnIC1mZnVuY3Rpb24tc2VjdGlvbnMgLW8gIiRvIiAiJGMiIDI+JjEpIgorKwlvdXQ9IiQoJHtLUEFUQ0hfQ1JPU1NfQ09NUElMRX1nY2MgLWMgLXBnIC1mZnVuY3Rpb24tc2VjdGlvbnMgLW8gIiRvIiAiJGMiIDI+JjEpIgorIAlnY2N2ZXI9IiQoZ2NjX3ZlcnNpb25fZnJvbV9maWxlICIkbyIpIgorIAlrZ2NjdmVyPSIkKGdjY192ZXJzaW9uX2Zyb21fZmlsZSAiJFZNTElOVVgiKSIKKyAJcm0gLWYgIiRjIiAiJG8iCitAQCAtMzgxLDEyICszODEsMTQgQEAgdXNhZ2UoKSB7CisgCWVjaG8gIgkJLWQsIC0tZGVidWcgICAgICAgIEVuYWJsZSAneHRyYWNlJyBhbmQga2VlcCBzY3JhdGNoIGZpbGVzIiA+JjIKKyAJZWNobyAiCQkgICAgICAgICAgICAgICAgICAgaW4gPENBQ0hFRElSPi90bXAiID4mMgorIAllY2hvICIJCSAgICAgICAgICAgICAgICAgICAoY2FuIGJlIHNwZWNpZmllZCBtdWx0aXBsZSB0aW1lcykiID4mMgorKwllY2hvICIJCS0tY3Jvc3MtY29tcGlsZSAgICBTcGVjaWZ5IHRoZSBwcmVmaXggdXNlZCBmb3IgYWxsIGV4ZWN1dGFibGVzIiA+JjIKKysJZWNobyAiCQkgICAgICAgICAgICAgICAgICAgdXNlZCBkdXJpbmcgY29tcGlsYXRpb24iID4mMgorIAllY2hvICIJCS0tc2tpcC1jbGVhbnVwICAgICBTa2lwIHBvc3QtYnVpbGQgY2xlYW51cCIgPiYyCisgCWVjaG8gIgkJLS1za2lwLWdjYy1jaGVjayAgIFNraXAgZ2NjIHZlcnNpb24gbWF0Y2hpbmcgY2hlY2siID4mMgorIAllY2hvICIJCSAgICAgICAgICAgICAgICAgICAobm90IHJlY29tbWVuZGVkKSIgPiYyCisgfQorIAorLW9wdGlvbnM9IiQoZ2V0b3B0IC1vIGhhOnI6czpjOnY6ajp0Om46bzpkIC1sICJoZWxwLGFyY2h2ZXJzaW9uOixzb3VyY2VycG06LHNvdXJjZWRpcjosY29uZmlnOix2bWxpbnV4Oixqb2JzOix0YXJnZXQ6LG5hbWU6LG91dHB1dDosZGVidWcsc2tpcC1nY2MtY2hlY2ssc2tpcC1jbGVhbnVwIiAtLSAiJEAiKSIgfHwgZGllICJnZXRvcHQgZmFpbGVkIgorK29wdGlvbnM9IiQoZ2V0b3B0IC1vIGhhOnI6czpjOnY6ajp0Om46bzpkIC1sICJoZWxwLGFyY2h2ZXJzaW9uOixzb3VyY2VycG06LHNvdXJjZWRpcjosY29uZmlnOix2bWxpbnV4Oixqb2JzOix0YXJnZXQ6LG5hbWU6LG91dHB1dDosZGVidWcsY3Jvc3MtY29tcGlsZTosc2tpcC1nY2MtY2hlY2ssc2tpcC1jbGVhbnVwIiAtLSAiJEAiKSIgfHwgZGllICJnZXRvcHQgZmFpbGVkIgorIAorIGV2YWwgc2V0IC0tICIkb3B0aW9ucyIKKyAKK0BAIC00NDQsNiArNDQ2LDEwIEBAIHdoaWxlIFtbICQjIC1ndCAwIF1dOyBkbworIAkJCWVjaG8gIkRFQlVHIG1vZGUgZW5hYmxlZCIKKyAJCWZpCisgCQk7OworKwktLWNyb3NzLWNvbXBpbGUpCisrCQlLUEFUQ0hfQ1JPU1NfQ09NUElMRT0iJDIiCisrCQlzaGlmdAorKwkJOzsKKyAJLS1za2lwLWNsZWFudXApCisgCQllY2hvICJTa2lwcGluZyBjbGVhbnVwIgorIAkJU0tJUENMRUFOVVA9MQorQEAgLTY5MSw2ICs2OTcsOCBAQCBpZiBbWyAkREVCVUcgLWdlIDQgXV07IHRoZW4KKyAJZXhwb3J0IEtQQVRDSF9HQ0NfREVCVUc9MQorIGZpCisgCisrZXhwb3J0IEtQQVRDSF9DUk9TU19DT01QSUxFCisrCisgZWNobyAiQnVpbGRpbmcgb3JpZ2luYWwga2VybmVsIgorIC4vc2NyaXB0cy9zZXRsb2NhbHZlcnNpb24gLS1zYXZlLXNjbXZlcnNpb24gfHwgZGllCisgbWFrZSBtcnByb3BlciAyPiYxIHwgbG9nZ2VyIHx8IGRpZQorQEAgLTg0MCw2ICs4NDgsNyBAQCBjZCAiJFRFTVBESVIvcGF0Y2giIHx8IGRpZQorIEtQQVRDSF9CVUlMRD0iJFNSQ0RJUiIgS1BBVENIX05BTUU9IiRNT0ROQU1FIiBcCisgS0JVSUxEX0VYVFJBX1NZTUJPTFM9IiRLQlVJTERfRVhUUkFfU1lNQk9MUyIgXAorIEtQQVRDSF9MREZMQUdTPSIkS1BBVENIX0xERkxBR1MiIFwKKytDUk9TU19DT01QSUxFPSIkS1BBVENIX0NST1NTX0NPTVBJTEUiIFwKKyAJbWFrZSAyPiYxIHwgbG9nZ2VyIHx8IGRpZQorIAorIGlmICEgIiRLUEFUQ0hfTU9EVUxFIjsgdGhlbgorZGlmZiAtLWdpdCBhL2twYXRjaC1idWlsZC9rcGF0Y2gtZ2NjIGIva3BhdGNoLWJ1aWxkL2twYXRjaC1nY2MKK2luZGV4IDZiYTEzM2MuLjM5Mzc5NDggMTAwNzU1CistLS0gYS9rcGF0Y2gtYnVpbGQva3BhdGNoLWdjYworKysrIGIva3BhdGNoLWJ1aWxkL2twYXRjaC1nY2MKK0BAIC04LDcgKzgsNyBAQCBUT09MQ0hBSU5DTUQ9IiQxIgorIHNoaWZ0CisgCisgaWYgW1sgLXogIiRLUEFUQ0hfR0NDX1RFTVBESVIiIF1dOyB0aGVuCistCWV4ZWMgIiRUT09MQ0hBSU5DTUQiICIkQCIKKysJZXhlYyAke0tQQVRDSF9DUk9TU19DT01QSUxFfSR7VE9PTENIQUlOQ01EfSAiJEAiCisgZmkKKyAKKyBkZWNsYXJlIC1hIGFyZ3M9KCIkQCIpCitAQCAtODAsNCArODAsNCBAQCBlbGlmIFtbICIkVE9PTENIQUlOQ01EIiA9ICJsZCIgXV0gOyB0aGVuCisgCWRvbmUKKyBmaQorIAorLWV4ZWMgIiRUT09MQ0hBSU5DTUQiICIke2FyZ3NbQF19IgorK2V4ZWMgJHtLUEFUQ0hfQ1JPU1NfQ09NUElMRX0ke1RPT0xDSEFJTkNNRH0gIiR7YXJnc1tAXX0iCistLSAKKzEuOS4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9rcGF0Y2gva3BhdGNoLzAwMDIta3BhdGNoLWJ1aWxkLWFsbG93LW92ZXJyaWRpbmctb2YtZGlzdHJvLW5hbWUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwva3BhdGNoL2twYXRjaC8wMDAyLWtwYXRjaC1idWlsZC1hbGxvdy1vdmVycmlkaW5nLW9mLWRpc3Ryby1uYW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZDhhN2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwva3BhdGNoL2twYXRjaC8wMDAyLWtwYXRjaC1idWlsZC1hbGxvdy1vdmVycmlkaW5nLW9mLWRpc3Ryby1uYW1lLnBhdGNoCkBAIC0wLDAgKzEsNjIgQEAKK0Zyb20gZDQxOGQ3MTZkYWUxZTJhMDUxMzFkZmI0MmExOWE0ZGEyZmM4YTg1ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJ1c2xhbiBCaWxvdm9sIDxyYmlsb3ZvbEBjaXNjby5jb20+CitEYXRlOiBUdWUsIDIgSmFuIDIwMTggMTQ6NTA6MDMgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0ga3BhdGNoLWJ1aWxkOiBhbGxvdyBvdmVycmlkaW5nIG9mIGRpc3RybyBuYW1lCisKK0l0IGlzIHNvbWV0aW1lcyB1c2VmdWwgdG8gaGF2ZSBhYmlsaXR5IHRvIG92ZXJyaWRlCitkaXN0cm8gbmFtZSwgZm9yIGV4YW1wbGUgZHVyaW5nIGNyb3NzLWNvbXBpbGF0aW9uCitidWlsZCB3aGVuIGxpdmVwYXRjaCBtb2R1bGVzIHdpbGwgYmUgcmFuIG9uIHRoZQordGFyZ2V0IHdoaWNoIGRpZmZlcnMgZnJvbSBob3N0LgorCitUaGlzIHBhdGNoIGFkZHMgYSBuZXcgLS1kaXN0cm8gb3B0aW9uIHdoaWNoCitpbXBsZW1lbnRzIGFsbCBuZWVkZWQgZnVuY3Rpb25hbGl0eQorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogUnVzbGFuIEJpbG92b2wgPHJiaWxvdm9sQGNpc2NvLmNvbT4KKy0tLQorIGtwYXRjaC1idWlsZC9rcGF0Y2gtYnVpbGQgfCA5ICsrKysrKystLQorIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9rcGF0Y2gtYnVpbGQva3BhdGNoLWJ1aWxkIGIva3BhdGNoLWJ1aWxkL2twYXRjaC1idWlsZAoraW5kZXggYWYyNGNjNC4uNGY5Zjc4ZCAxMDA3NTUKKy0tLSBhL2twYXRjaC1idWlsZC9rcGF0Y2gtYnVpbGQKKysrKyBiL2twYXRjaC1idWlsZC9rcGF0Y2gtYnVpbGQKK0BAIC0zODMsMTIgKzM4MywxMyBAQCB1c2FnZSgpIHsKKyAJZWNobyAiCQkgICAgICAgICAgICAgICAgICAgKGNhbiBiZSBzcGVjaWZpZWQgbXVsdGlwbGUgdGltZXMpIiA+JjIKKyAJZWNobyAiCQktLWNyb3NzLWNvbXBpbGUgICAgU3BlY2lmeSB0aGUgcHJlZml4IHVzZWQgZm9yIGFsbCBleGVjdXRhYmxlcyIgPiYyCisgCWVjaG8gIgkJICAgICAgICAgICAgICAgICAgIHVzZWQgZHVyaW5nIGNvbXBpbGF0aW9uIiA+JjIKKysJZWNobyAiCQktLWRpc3RybyAgICAgICAgICAgT3ZlcnJpZGUgZGlzdHJvIG5hbWUiID4mMgorIAllY2hvICIJCS0tc2tpcC1jbGVhbnVwICAgICBTa2lwIHBvc3QtYnVpbGQgY2xlYW51cCIgPiYyCisgCWVjaG8gIgkJLS1za2lwLWdjYy1jaGVjayAgIFNraXAgZ2NjIHZlcnNpb24gbWF0Y2hpbmcgY2hlY2siID4mMgorIAllY2hvICIJCSAgICAgICAgICAgICAgICAgICAobm90IHJlY29tbWVuZGVkKSIgPiYyCisgfQorIAorLW9wdGlvbnM9IiQoZ2V0b3B0IC1vIGhhOnI6czpjOnY6ajp0Om46bzpkIC1sICJoZWxwLGFyY2h2ZXJzaW9uOixzb3VyY2VycG06LHNvdXJjZWRpcjosY29uZmlnOix2bWxpbnV4Oixqb2JzOix0YXJnZXQ6LG5hbWU6LG91dHB1dDosZGVidWcsY3Jvc3MtY29tcGlsZTosc2tpcC1nY2MtY2hlY2ssc2tpcC1jbGVhbnVwIiAtLSAiJEAiKSIgfHwgZGllICJnZXRvcHQgZmFpbGVkIgorK29wdGlvbnM9IiQoZ2V0b3B0IC1vIGhhOnI6czpjOnY6ajp0Om46bzpkIC1sICJoZWxwLGFyY2h2ZXJzaW9uOixzb3VyY2VycG06LHNvdXJjZWRpcjosY29uZmlnOix2bWxpbnV4Oixqb2JzOix0YXJnZXQ6LG5hbWU6LG91dHB1dDosZGVidWcsY3Jvc3MtY29tcGlsZTosZGlzdHJvOixza2lwLWdjYy1jaGVjayxza2lwLWNsZWFudXAiIC0tICIkQCIpIiB8fCBkaWUgImdldG9wdCBmYWlsZWQiCisgCisgZXZhbCBzZXQgLS0gIiRvcHRpb25zIgorIAorQEAgLTQ1MCw2ICs0NTEsMTAgQEAgd2hpbGUgW1sgJCMgLWd0IDAgXV07IGRvCisgCQlLUEFUQ0hfQ1JPU1NfQ09NUElMRT0iJDIiCisgCQlzaGlmdAorIAkJOzsKKysJLS1kaXN0cm8pCisrCQlESVNUUk89IiQyIgorKwkJc2hpZnQKKysJCTs7CisgCS0tc2tpcC1jbGVhbnVwKQorIAkJZWNobyAiU2tpcHBpbmcgY2xlYW51cCIKKyAJCVNLSVBDTEVBTlVQPTEKK0BAIC01MjYsNyArNTMxLDcgQEAgZmkKKyAjIERvbid0IGNoZWNrIGV4dGVybmFsIGZpbGUuCisgIyBzaGVsbGNoZWNrIGRpc2FibGU9U0MxMDkxCisgc291cmNlIC9ldGMvb3MtcmVsZWFzZQorLURJU1RSTz0iJElEIgorK0RJU1RSTz0iJHtESVNUUk86LSR7SUR9fSIKKyBpZiBbWyAiJERJU1RSTyIgPSBmZWRvcmEgXV0gfHwgW1sgIiRESVNUUk8iID0gcmhlbCBdXSB8fCBbWyAiJERJU1RSTyIgPSBvbCBdXSB8fCBbWyAiJERJU1RSTyIgPSBjZW50b3MgXV07IHRoZW4KKyAJW1sgLXogIiRWTUxJTlVYIiBdXSAmJiBWTUxJTlVYPSIvdXNyL2xpYi9kZWJ1Zy9saWIvbW9kdWxlcy8kQVJDSFZFUlNJT04vdm1saW51eCIKKyAJW1sgLWUgIiRWTUxJTlVYIiBdXSB8fCBkaWUgImtlcm5lbC1kZWJ1Z2luZm8tJEFSQ0hWRVJTSU9OIG5vdCBpbnN0YWxsZWQiCistLSAKKzEuOS4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9rcGF0Y2gva3BhdGNoX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9rcGF0Y2gva3BhdGNoX2dpdC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDk1ZTI4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL2twYXRjaC9rcGF0Y2hfZ2l0LmJiCkBAIC0wLDAgKzEsMTEgQEAKK3JlcXVpcmUga3BhdGNoLmluYworCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKKworU1JDUkVWID0gImRiNmVmYmI4YzdlOTBkMmI3NjEyNzJjZjU2MzA0NzExOTA3Mjc2OGYiCisKK1BWID0gIjAuNS4wK2dpdCR7U1JDUFZ9IgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvbGludXgvbGludXguaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL2xpbnV4L2xpbnV4LmluYwppbmRleCBlMjAwMTI3Li45ZjE0MzcwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvbGludXgvbGludXguaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9saW51eC9saW51eC5pbmMKQEAgLTE2LDcgKzE2LDcgQEAKIAogIyBLZXJuZWwgYm9vdGxvZ28gaXMgZGlzdHJvLXNwZWNpZmljIChkZWZhdWx0IGlzIE9FIGxvZ28pLgogIyBMb2dvIHJlc29sdXRpb24gKHF2Z2EsIHZnYSwgLi4uKSBpcyBtYWNoaW5lLXNwZWNpZmljLgotTE9HT19TSVpFID89ICcke0BiYXNlX2NvbmRpdGlvbmFsKCJNQUNISU5FX0dVSV9DTEFTUyIsICJiaWdzY3JlZW4iLCAidmdhIiwgInF2Z2EiLCBkKX0nCitMT0dPX1NJWkUgPz0gJyR7QG9lLnV0aWxzLmNvbmRpdGlvbmFsKCJNQUNISU5FX0dVSV9DTEFTUyIsICJiaWdzY3JlZW4iLCAidmdhIiwgInF2Z2EiLCBkKX0nCiAjIFRvIHVzZSB0aGlzLCBhZGQgZmlsZTovLyR7TE9HT19TSVpFfS9sb2dvX2xpbnV4X2NsdXQyMjQucHBtLmJ6MiBvciBzaW1pbGFyCiAjIHRvIHlvdXIga2VybmVsIHJlY2lwZSwgYW5kIHRoZW4gc3RydWN0dXJlIHlvdXIgbG9nb3MgZm9yIGVhY2ggcmVzb2x1dGlvbgogIyBhY2NvcmRpbmdseS4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9taW5pY29yZWR1bXBlci9maWxlcy9taW5pY29yZWR1bXBlci5pbml0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL21pbmljb3JlZHVtcGVyL2ZpbGVzL21pbmljb3JlZHVtcGVyLmluaXQKaW5kZXggOTBlZjdmYS4uOWM5NmUzMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL21pbmljb3JlZHVtcGVyL2ZpbGVzL21pbmljb3JlZHVtcGVyLmluaXQKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL21pbmljb3JlZHVtcGVyL2ZpbGVzL21pbmljb3JlZHVtcGVyLmluaXQKQEAgLTIyLDcgKzIyLDcgQEAKIAogY2FzZSAiJDEiIGluCiAgICAgc3RhcnQpCi0gICAgICAgIGVjaG8gInwvdXNyL2Jpbi9taW5pY29yZWR1bXBlciAlcCAldSAlZyAlcyAldCAlaCAlZSIgPiAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgorICAgICAgICBlY2hvICJ8L3Vzci9zYmluL21pbmljb3JlZHVtcGVyICVwICV1ICVnICVzICV0ICVoICVlIiA+IC9wcm9jL3N5cy9rZXJuZWwvY29yZV9wYXR0ZXJuCiAgICAgICAgIDs7CiAgICAgc3RvcCkKICAgICAgICAgZWNobyAiY29yZSIgPiAvcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL21pbmljb3JlZHVtcGVyL2ZpbGVzL21pbmljb3JlZHVtcGVyLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvbWluaWNvcmVkdW1wZXIvZmlsZXMvbWluaWNvcmVkdW1wZXIuc2VydmljZQppbmRleCA4NTFiNTRjLi40NWQwOThmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvbWluaWNvcmVkdW1wZXIvZmlsZXMvbWluaWNvcmVkdW1wZXIuc2VydmljZQorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvbWluaWNvcmVkdW1wZXIvZmlsZXMvbWluaWNvcmVkdW1wZXIuc2VydmljZQpAQCAtNCw3ICs0LDcgQEAKIFtTZXJ2aWNlXQogVHlwZT1vbmVzaG90CiBSZW1haW5BZnRlckV4aXQ9eWVzCi1FeGVjU3RhcnQ9L2Jpbi9zaCAtYyAnL2Jpbi9lY2hvICJ8L3Vzci9iaW4vbWluaWNvcmVkdW1wZXIgJSVwICUldSAlJWcgJSVzICUldCAlJWggJSVlIiA+IC9wcm9jL3N5cy9rZXJuZWwvY29yZV9wYXR0ZXJuJworRXhlY1N0YXJ0PS9iaW4vc2ggLWMgJy9iaW4vZWNobyAifC91c3Ivc2Jpbi9taW5pY29yZWR1bXBlciAlJXAgJSV1ICUlZyAlJXMgJSV0ICUlaCAlJWUiID4gL3Byb2Mvc3lzL2tlcm5lbC9jb3JlX3BhdHRlcm4nCiBFeGVjU3RvcD0vYmluL3NoIC1jICcvYmluL2VjaG8gImNvcmUiID4gL3Byb2Mvc3lzL2tlcm5lbC9jb3JlX3BhdHRlcm4nCiAKIFtJbnN0YWxsXQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL21pbmljb3JlZHVtcGVyL21pbmljb3JlZHVtcGVyXzIuMC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMta2VybmVsL21pbmljb3JlZHVtcGVyL21pbmljb3JlZHVtcGVyXzIuMC4wLmJiCmluZGV4IDE4NThlMTAuLjBkM2M2NmIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWtlcm5lbC9taW5pY29yZWR1bXBlci9taW5pY29yZWR1bXBlcl8yLjAuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1rZXJuZWwvbWluaWNvcmVkdW1wZXIvbWluaWNvcmVkdW1wZXJfMi4wLjAuYmIKQEAgLTM4LDQgKzM4LDggQEAKICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9taW5pY29yZWR1bXBlci5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9CiAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9taW5pY29yZWR1bXBlci5pbml0ICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC9taW5pY29yZWR1bXBlcgorCisgICAgIyBjb3JyZWN0IHBhdGggb2YgbWluaWNvcmVkdW1wZXIKKyAgICBzZWQgLWkgLWUgczovdXNyL2Jpbi9taW5pY29yZWR1bXBlcjoke3NiaW5kaXJ9L21pbmljb3JlZHVtcGVyOmcgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL21pbmljb3JlZHVtcGVyCisgICAgc2VkIC1pIC1lIHM6L3Vzci9iaW4vbWluaWNvcmVkdW1wZXI6JHtzYmluZGlyfS9taW5pY29yZWR1bXBlcjpnICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L21pbmljb3JlZHVtcGVyLnNlcnZpY2UKIH0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLW9zcy0xLjAuMTcvbGliaW8ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS1vc3MtMS4wLjE3L2xpYmlvLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDUzZTRjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLW9zcy0xLjAuMTcvbGliaW8ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi1JbmRleDogYWxzYS1vc3MtMS4wLjE1L2Fsc2Evc3RkaW9lbXUuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGFsc2Etb3NzLTEuMC4xNS5vcmlnL2Fsc2Evc3RkaW9lbXUuYwkyMDA3LTEwLTE1IDEwOjUwOjQwLjAwMDAwMDAwMCArMDIwMAotKysrIGFsc2Etb3NzLTEuMC4xNS9hbHNhL3N0ZGlvZW11LmMJMjAwOC0wNy0yMSAyMjoxNzowNi4zMDMxNjE0MzggKzAyMDAKLUBAIC0zNyw3ICszNyw5IEBACi0gI2VuZGlmCi0gCi0gI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2lmZGVmIEhBVkVfTElCSU9fSAotICNpbmNsdWRlIDxsaWJpby5oPgotKyNlbmRpZgotIAotIHN0cnVjdCBmZF9jb29raWUgewotIAlpbnQgZmQ7Ci1AQCAtOTksNyArMTAxLDExIEBACi0gCi0gCWlmIChvcGVuX21vZGUgJiYgZmRjLT5mZCA+IDApIHsKLSAJCXJlc3VsdCA9IGZvcGVuY29va2llIChmZGMsInciLCBmbnMpOwotKyNpZmRlZiBIQVZFX0ZJTEVOTwotIAkJcmVzdWx0LT5fZmlsZW5vID0gZmRjLT5mZDsJCS8qIHVnbHkgcGF0Y2h5IHNsaW15IGtsdWRneSBoYWNrICovCi0rI2Vsc2UKLSsJCXJlc3VsdC0+X19maWxlZGVzID0gZmRjLT5mZDsKLSsjZW5kaWYKLSAJfQotIAlyZXR1cm4gcmVzdWx0OwotIH0KLUluZGV4OiBhbHNhLW9zcy0xLjAuMTUvY29uZmlndXJlLmluCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gYWxzYS1vc3MtMS4wLjE1Lm9yaWcvY29uZmlndXJlLmluCTIwMDctMTAtMTUgMTA6NTA6NDAuMDAwMDAwMDAwICswMjAwCi0rKysgYWxzYS1vc3MtMS4wLjE1L2NvbmZpZ3VyZS5pbgkyMDA4LTA3LTIxIDIyOjE2OjExLjcxOTgzNzI5OCArMDIwMAotQEAgLTMzLDYgKzMzLDEyIEBACi0gICBMSUJTPSIkT0xEX0xJQlMiCi0gZmkKLSAKLStBQ19DSEVDS19IRUFERVJTX09OQ0UoW2xpYmlvLmhdKQotKwotK0FDX0NIRUNLX01FTUJFUihbc3RydWN0IF9JT19GSUxFLl9maWxlbm9dLAotKwkJW0FDX0RFRklORShbSEFWRV9GSUxFTk9dLCBbMV0sW0RlZmluZSBpZiBfZmlsZW5vIGV4aXN0cy5dKV0sCi0rCQlbXSxbXSkKLSsKLSBBQ19PVVRQVVQoTWFrZWZpbGUgYWxzYS9NYWtlZmlsZSBhbHNhL2Fvc3MgYWxzYS9hb3NzLm9sZCBcCi0gCSAgb3NzLXJlZGlyL01ha2VmaWxlIHRlc3QvTWFrZWZpbGUgXAotICAgICAgICAgICBhbHNhL3Rlc3Rhb3NzIHRlc3QvdGVzdGFvc3MpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS1vc3MvbGliaW8ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS1vc3MvbGliaW8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI5OTk0NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLW9zcy9saWJpby5wYXRjaApAQCAtMCwwICsxLDQzIEBACitJbmRleDogYWxzYS1vc3MtMS4wLjI4L2Fsc2Evc3RkaW9lbXUuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGFsc2Etb3NzLTEuMC4yOC5vcmlnL2Fsc2Evc3RkaW9lbXUuYworKysrIGFsc2Etb3NzLTEuMC4yOC9hbHNhL3N0ZGlvZW11LmMKK0BAIC0zNyw3ICszNyw5IEBACisgI2VuZGlmCisgCisgI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2lmZGVmIEhBVkVfTElCSU9fSAorICNpbmNsdWRlIDxsaWJpby5oPgorKyNlbmRpZgorIAorIHN0cnVjdCBmZF9jb29raWUgeworIAlpbnQgZmQ7CitAQCAtOTksNyArMTAxLDExIEBAIHN0YXRpYyBGSUxFICpmYWtlX2ZvcGVuKGNvbnN0IGNoYXIgKnBhdGgKKyAKKyAJaWYgKG9wZW5fbW9kZSAmJiBmZGMtPmZkID4gMCkgeworIAkJcmVzdWx0ID0gZm9wZW5jb29raWUgKGZkYywidyIsIGZucyk7CisrI2lmZGVmIEhBVkVfRklMRU5PCisgCQlyZXN1bHQtPl9maWxlbm8gPSBmZGMtPmZkOwkJLyogdWdseSBwYXRjaHkgc2xpbXkga2x1ZGd5IGhhY2sgKi8KKysjZWxzZQorKwkJcmVzdWx0LT5fX2ZpbGVkZXMgPSBmZGMtPmZkOworKyNlbmRpZgorIAl9CisgCXJldHVybiByZXN1bHQ7CisgfQorSW5kZXg6IGFsc2Etb3NzLTEuMC4yOC9jb25maWd1cmUuYWMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBhbHNhLW9zcy0xLjAuMjgub3JpZy9jb25maWd1cmUuYWMKKysrKyBhbHNhLW9zcy0xLjAuMjgvY29uZmlndXJlLmFjCitAQCAtMzUsNiArMzUsMTIgQEAgaWYgdGVzdCAiJHdpdGhfYW9zcyIgPSAieWVzIjsgdGhlbgorICAgTElCUz0iJE9MRF9MSUJTIgorIGZpCisgCisrQUNfQ0hFQ0tfSEVBREVSU19PTkNFKFtsaWJpby5oXSkKKysKKytBQ19DSEVDS19NRU1CRVIoW3N0cnVjdCBfSU9fRklMRS5fZmlsZW5vXSwKKysJCVtBQ19ERUZJTkUoW0hBVkVfRklMRU5PXSwgWzFdLFtEZWZpbmUgaWYgX2ZpbGVubyBleGlzdHMuXSldLAorKwkJW10sW10pCisrCisgQUNfT1VUUFVUKE1ha2VmaWxlIGFsc2EvTWFrZWZpbGUgYWxzYS9hb3NzIGFsc2EvYW9zcy5vbGQgXAorIAkgIG9zcy1yZWRpci9NYWtlZmlsZSB0ZXN0L01ha2VmaWxlIFwKKyAgICAgICAgICAgYWxzYS90ZXN0YW9zcyB0ZXN0L3Rlc3Rhb3NzKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2Etb3NzXzEuMC4xNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLW9zc18xLjAuMTcuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5NjZkYmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2Etb3NzXzEuMC4xNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVNVTU1BUlkgPSAiQWxzYSBPU1MgQ29tcGF0aWJpbGl0eSBQYWNrYWdlIgotU0VDVElPTiA9ICJsaWJzL211bHRpbWVkaWEiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MzkzYTVjYTQ0NWY2OTY1ODczZWNhMDI1OWExN2Y4MzMiCi1ERVBFTkRTID0gImFsc2EtbGliIgotUFIgPSAicjEiCi0KLVNSQ19VUkkgPSAiZnRwOi8vZnRwLmFsc2EtcHJvamVjdC5vcmcvcHViL29zcy1saWIvYWxzYS1vc3MtJHtQVn0udGFyLmJ6MiBcCi0gICAgZmlsZTovL2xpYmlvLnBhdGNoIFwKLSIKLQotaW5oZXJpdCBhdXRvdG9vbHMKLQotTEVBRF9TT05BTUUgPSAibGliYW9zcy5zby4wIgotCi1kb19jb25maWd1cmVfcHJlcGVuZCAoKSB7Ci0gICAgdG91Y2ggTkVXUyBSRUFETUUgQVVUSE9SUyBDaGFuZ2VMb2cKLSAgICBzZWQgLWkgInMvbGliYW9zcy5zby8ke0xFQURfU09OQU1FfS8iICR7U30vYWxzYS9hb3NzLmluCi19Ci0KLVNSQ19VUklbbWQ1c3VtXSA9ICIxYjE4NTBjMmZjOTE0NzZhNzNkNTBmNTM3Y2JkNDAyZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4ZDAwOWUyM2UyY2JlZTE2OTFlYzNjOTVkMTgzODA1NmE4MDRkOTg0NDBlYWU3NzE1ZDZjM2FlYmM3MTBmOWNhIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2Etb3NzXzEuMC4yOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLW9zc18xLjAuMjguYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM0YTlmNQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLW9zc18xLjAuMjguYmIKQEAgLTAsMCArMSwyMCBAQAorU1VNTUFSWSA9ICJBbHNhIE9TUyBDb21wYXRpYmlsaXR5IFBhY2thZ2UiCitTRUNUSU9OID0gImxpYnMvbXVsdGltZWRpYSIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0zOTNhNWNhNDQ1ZjY5NjU4NzNlY2EwMjU5YTE3ZjgzMyIKK0RFUEVORFMgPSAiYWxzYS1saWIiCisKK1NSQ19VUkkgPSAiZnRwOi8vZnRwLmFsc2EtcHJvamVjdC5vcmcvcHViL29zcy1saWIvYWxzYS1vc3MtJHtQVn0udGFyLmJ6MiBcCisgICAgZmlsZTovL2xpYmlvLnBhdGNoIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICI5MWY1N2U4Y2VlMWFkNGNjOTU2Y2FhOGI2MmFjNWQ0MyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzYWU2MmNhYTg4YTBiYzdiMzBlZDgzNmRjYjc5NGRjNmVmNGQzNjUwNDM5ZTIyNjBkYjU0Y2FjZTdkNWM2YWQ1IgorCitpbmhlcml0IGF1dG90b29scworCitMRUFEX1NPTkFNRSA9ICJsaWJhb3NzLnNvLjAiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKKyAgICB0b3VjaCBORVdTIFJFQURNRSBBVVRIT1JTIENoYW5nZUxvZworICAgIHNlZCAtaSAicy9saWJhb3NzLnNvLyR7TEVBRF9TT05BTUV9LyIgJHtTfS9hbHNhL2Fvc3MuaW4KK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvY2Rya2l0L2NkcmtpdF8xLjEuMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2NkcmtpdC9jZHJraXRfMS4xLjExLmJiCmluZGV4IGMwZjIyMGYuLjNiMTBlOTcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvY2Rya2l0L2NkcmtpdF8xLjEuMTEuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9jZHJraXQvY2Rya2l0XzEuMS4xMS5iYgpAQCAtMTgsMyArMTgsNyBAQAogCiBERVBFTkRTID0gImxpYmNhcCBmaWxlIGJ6aXAyIgogUkRFUEVORFNfJHtQTn0gPSAicGVybCIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgbG4gLXNmICR7YmluZGlyfS9nZW5pc29pbWFnZSAke0R9JHtiaW5kaXJ9L21raXNvZnMKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvZXNvdW5kL2Vzb3VuZC8wMDAxLWF1ZGlvX2Fsc2EwOS5jLWFsc2EtZHJhaW4tZml4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9lc291bmQvZXNvdW5kLzAwMDEtYXVkaW9fYWxzYTA5LmMtYWxzYS1kcmFpbi1maXgucGF0Y2gKaW5kZXggNmM3ZjNiZC4uMTMwZjNjMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9lc291bmQvZXNvdW5kLzAwMDEtYXVkaW9fYWxzYTA5LmMtYWxzYS1kcmFpbi1maXgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9lc291bmQvZXNvdW5kLzAwMDEtYXVkaW9fYWxzYTA5LmMtYWxzYS1kcmFpbi1maXgucGF0Y2gKQEAgLTEsOSArMSwxMCBAQAotRnJvbSBhODYwZmUwNzk2YzQzZTM1ZWFjOTc4MzE0MGZjYjU2M2NhYjlmNTVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA5NDVkZjJkYTg3YTQxMjc1OGNlYWI0YWM1NzExYWJiYjI2OWE0N2MxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IFRodSwgOCBKdW4gMjAxNyAyMzowOTo1MSAtMDcwMAotU3ViamVjdDogW1BBVENIIDEvM10gYXVkaW9fYWxzYTA5LmM6IGFsc2EgZHJhaW4gZml4CitTdWJqZWN0OiBbUEFUQ0hdIGF1ZGlvX2Fsc2EwOS5jOiBhbHNhIGRyYWluIGZpeAogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBhdWRpb19hbHNhMDkuYyB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKQEAgLTIxLDYgKzIyLDMgQEAKICAgIAogIAlpZiAoYWxzYWRiZykgCiAgCQlwcmludF9zdGF0ZSgpOwotLS0gCi0yLjEzLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9lc291bmQvZXNvdW5kLzAwMDItVW5kZWZpbmUtb3BlbjY0LWFuZC1mb3BlbjY0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9lc291bmQvZXNvdW5kLzAwMDItVW5kZWZpbmUtb3BlbjY0LWFuZC1mb3BlbjY0LnBhdGNoCmluZGV4IDMzNzU0NmEuLjEwYTZiYTAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvZXNvdW5kL2Vzb3VuZC8wMDAyLVVuZGVmaW5lLW9wZW42NC1hbmQtZm9wZW42NC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Vzb3VuZC9lc291bmQvMDAwMi1VbmRlZmluZS1vcGVuNjQtYW5kLWZvcGVuNjQucGF0Y2gKQEAgLTEsMTEgKzEsMTIgQEAKLUZyb20gMWZiZWU2ZTk2Mzg0ZjM0MGI4MTZlMjIxZmUxYzJmM2ZmMGI0ODdiZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZTIxOGQ1YTBhNTQ1ZWJiOTYyM2Q2MmRhNWNmY2E0NzhmOWM5MGZjZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBUaHUsIDggSnVuIDIwMTcgMjM6MTE6MzEgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAyLzNdIFVuZGVmaW5lIG9wZW42NCBhbmQgZm9wZW42NAorU3ViamVjdDogW1BBVENIXSBVbmRlZmluZSBvcGVuNjQgYW5kIGZvcGVuNjQKIAogU2luY2UgdGhlIHNpZ25hdHVyZXMgZG8gbm90IG1hdGNoIHdpdGggbGliYwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBlc2Rkc3AuYyB8IDIgKysKICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCkBAIC0zMCw2ICszMSwzIEBACiAgRklMRSAqCiAgZm9wZW42NCAoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqbW9kZSkKICB7Ci0tLSAKLTIuMTMuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Vzb3VuZC9lc291bmQvMDAwMy1Vc2UtSS1wYXRoLWluLWNvbmZpZ3VyZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvZXNvdW5kL2Vzb3VuZC8wMDAzLVVzZS1JLXBhdGgtaW4tY29uZmlndXJlLnBhdGNoCmluZGV4IDYyYzg4MGQuLjgzMzY1YjQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvZXNvdW5kL2Vzb3VuZC8wMDAzLVVzZS1JLXBhdGgtaW4tY29uZmlndXJlLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvZXNvdW5kL2Vzb3VuZC8wMDAzLVVzZS1JLXBhdGgtaW4tY29uZmlndXJlLnBhdGNoCkBAIC0xLDEyICsxLDEzIEBACi1Gcm9tIDk3OWEwMmQ5ZWM5YzI4Njg2MDIxY2QyYjQ5Y2E1NWQyMTk1YzlkY2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDg5YzYyZGI1NDcxNmQ1MTRlNjM5ZjllMWJmZDNjMWY3ZDgyNjQxZGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogVGh1LCA4IEp1biAyMDE3IDIzOjEyOjM2IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMy8zXSBVc2UgLUk9PHBhdGg+IGluIGNvbmZpZ3VyZQorU3ViamVjdDogW1BBVENIXSBVc2UgLUk9PHBhdGg+IGluIGNvbmZpZ3VyZQogCiBUaGlzIGhlbHBzIHRvIHVzZSBwcm9wZXIgc3lzcm9vdCBpbgogY3Jvc3MgYnVpbGQgZW52aXJvbm1lbnQKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgY29uZmlndXJlLmFjIHwgNCArKy0tCiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKQEAgLTMzLDYgKzM0LDMgQEAKICAJU09VTkRfTElCUz0tbG1tZQogICAgICAgIGVzYWMKICAgICBmaQotLS0gCi0yLjEzLjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9lc291bmQvZXNvdW5kL25vLWRvY3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Vzb3VuZC9lc291bmQvbm8tZG9jcy5wYXRjaAppbmRleCBmYzY5ZjFhLi44YTU0NmU2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Vzb3VuZC9lc291bmQvbm8tZG9jcy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2Vzb3VuZC9lc291bmQvbm8tZG9jcy5wYXRjaApAQCAtMSwxMSArMSwxOSBAQAotSW5kZXg6IGVzb3VuZC0wLjIuMzYvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBlc291bmQtMC4yLjM2Lm9yaWcvTWFrZWZpbGUuYW0KLSsrKyBlc291bmQtMC4yLjM2L01ha2VmaWxlLmFtCitGcm9tIGJmY2FhOWJkYzcwNDQwZGI5NmYxMGFmYzBjMmE3OTI4NzBmNzVhY2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgorRGF0ZTogRnJpLCAzIEp1biAyMDExIDE5OjM5OjAyICswMjAwCisKKy0tLQorIE1ha2VmaWxlLmFtIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQoraW5kZXggMDhjNGM5NC4uZWRlOWQyNiAxMDA2NDQKKy0tLSBhL01ha2VmaWxlLmFtCisrKysgYi9NYWtlZmlsZS5hbQogQEAgLTEsNSArMSw1IEBACiAgCiAtU1VCRElSUyA9IGRvY3MKICtTVUJESVJTID0gCiAgCi0gQUNMT0NBTF9GTEFHUyA9IC1JIG00CisgQUNMT0NBTF9BTUZMQUdTID0gLUkgbTQKICAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvamFjay9qYWNrLzAwMDEtdHlwZWNhc3QtaW5wdXQtcGFyYW1ldGVyLXRvLWludC1mb3ItYWJzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9qYWNrL2phY2svMDAwMS10eXBlY2FzdC1pbnB1dC1wYXJhbWV0ZXItdG8taW50LWZvci1hYnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxMTlmMTkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9qYWNrL2phY2svMDAwMS10eXBlY2FzdC1pbnB1dC1wYXJhbWV0ZXItdG8taW50LWZvci1hYnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1Gcm9tIDhlYzZmNzViZjdhMzE4YTNhMWUzNTJkZjdjOTc2MzBjZmFiYTUzN2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCAyMSBBcHIgMjAxNyAxNjoxODozOSAtMDcwMAotU3ViamVjdDogW1BBVENIXSB0eXBlY2FzdCBpbnB1dCBwYXJhbWV0ZXIgdG8gaW50IGZvciBhYnMoKQotCi1GaXhlcwotLi4vdGVzdHMvdGVzdC5jcHA6NDgyOjczOiBlcnJvcjogY2FsbCBvZiBvdmVybG9hZGVkICdhYnMoamFja19uZnJhbWVzX3QpJyBpcyBhbWJpZ3VvdXMKLQotYmVjYXVzZSB0aGUgc2lnbmF0dXJlIGlzIGludCBhYnMoaW50KSBhbmQgaXRzIHBhc3NpbmcKLXVuc2lnbmVkIGludCB0byBpdC4KLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIHRlc3RzL3Rlc3QuY3BwIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdC5jcHAgYi90ZXN0cy90ZXN0LmNwcAotaW5kZXggOGE4YTgxMTcuLjk2NTU3NDJlIDEwMDY0NAotLS0tIGEvdGVzdHMvdGVzdC5jcHAKLSsrKyBiL3Rlc3RzL3Rlc3QuY3BwCi1AQCAtNDc5LDcgKzQ3OSw3IEBAIGludCBwcm9jZXNzNChqYWNrX25mcmFtZXNfdCBuZnJhbWVzLCB2b2lkICphcmcpCi0gCWphY2tfbmZyYW1lc190IGRlbHRhX3RpbWUgPSBjdXJfdGltZSAtIGxhc3RfdGltZTsKLSAKLSAJTG9nKCJjYWxsaW5nIHByb2Nlc3M0IGNhbGxiYWNrIDogamFja19mcmFtZV90aW1lID0gJWxkIGRlbHRhX3RpbWUgPSAlbGRcbiIsIGN1cl90aW1lLCBkZWx0YV90aW1lKTsKLS0JaWYgKGRlbHRhX3RpbWUgPiAwICAmJiAoamFja19uZnJhbWVzX3QpYWJzKGRlbHRhX3RpbWUgLSBjdXJfYnVmZmVyX3NpemUpID4gdG9sZXJhbmNlKSB7Ci0rCWlmIChkZWx0YV90aW1lID4gMCAgJiYgKGphY2tfbmZyYW1lc190KWFicyhpbnQoZGVsdGFfdGltZSAtIGN1cl9idWZmZXJfc2l6ZSkpID4gdG9sZXJhbmNlKSB7Ci0gCQlwcmludGYoIiEhISBFUlJPUiAhISEgamFja19mcmFtZV90aW1lIHNlZW1zIHRvIHJldHVybiBpbmNvcnJlY3QgdmFsdWVzIGN1cl9idWZmZXJfc2l6ZSA9ICVkLCBkZWx0YV90aW1lID0gJWQgdG9sZXJhbmNlICVkXG4iLCBjdXJfYnVmZmVyX3NpemUsIGRlbHRhX3RpbWUsIHRvbGVyYW5jZSk7Ci0gCX0KLSAKLS0tIAotMi4xMi4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvamFjay9qYWNrX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvamFjay9qYWNrX2dpdC5iYgppbmRleCBiODViYThhLi4xMWRhNmIxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2phY2svamFja19naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9qYWNrL2phY2tfZ2l0LmJiCkBAIC0xNCwxMSArMTQsOSBAQAogCiBERVBFTkRTID0gImxpYnNhbXBsZXJhdGUwIGxpYnNuZGZpbGUxIHJlYWRsaW5lIgogCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vamFja2F1ZGlvL2phY2syLmdpdCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLXR5cGVjYXN0LWlucHV0LXBhcmFtZXRlci10by1pbnQtZm9yLWFicy5wYXRjaCBcCi0gICAgICAgICAgIgotU1JDUkVWID0gIjJkMWQzMjM1MDU1ODVkNDA2YTdlNjRmYjkzMjk1M2JhZWZjNTk0NWUiCi1QViA9ICIxLjkuMTArZ2l0JHtTUkNQVn0iCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vamFja2F1ZGlvL2phY2syLmdpdCIKK1NSQ1JFViA9ICJjMTY0NzgxOWVlZDZkMTFmOTRiMjE5ODFkOWM4Njk2MjkyOTlmMzU3IgorUFYgPSAiMS45LjEyIgogUyA9ICIke1dPUktESVJ9L2dpdCIKIAogaW5oZXJpdCB3YWYgcGtnY29uZmlnCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmFzcy9saWJhc3MuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhc3MvbGliYXNzLmluYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJjM2RiMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmFzcy9saWJhc3MuaW5jCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotREVTQ1JJUFRJT04gPSAibGliYXNzIGlzIGEgcG9ydGFibGUgc3VidGl0bGUgcmVuZGVyZXIgZm9yIHRoZSBBU1MvU1NBIChBZHZhbmNlZCBTdWJzdGF0aW9uIEFscGhhL1N1YnN0YXRpb24gQWxwaGEpIHN1YnRpdGxlIGZvcm1hdC4gSXQgaXMgbW9zdGx5IGNvbXBhdGlibGUgd2l0aCBWU0ZpbHRlci4iCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vbGliYXNzL2xpYmFzcyIKLVNFQ1RJT04gPSAibGlicy9tdWx0aW1lZGlhIgotCi1MSUNFTlNFID0gIklTQyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWE0MjUzMmEwNjg0NDIwYmRiMTU1NTZjM2NkZDQ5YTc1IgotCi1ERVBFTkRTID0gImVuY2EgZm9udGNvbmZpZyBmcmVldHlwZSBsaWJwbmcgZnJpYmlkaSIKLQotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vbGliYXNzL2xpYmFzcy9yZWxlYXNlcy9kb3dubG9hZC8ke1BWfS9saWJhc3MtJHtQVn0udGFyLnh6IgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiIKLVBBQ0tBR0VDT05GSUdbaGFyZmJ1enpdID0gIi0tZW5hYmxlLWhhcmZidXp6LC0tZGlzYWJsZS1oYXJmYnV6eixoYXJmYnV6eiIKLQotRVhUUkFfT0VDT05GID0gIiBcCi0gICAgLS1lbmFibGUtZm9udGNvbmZpZyBcCi0iCi0KLSMgRGlzYWJsZSBjb21waWxpbmcgd2l0aCBBU00gZm9yIHg4NiB0byBhdm9pZCB0ZXh0cmVsCi1FWFRSQV9PRUNPTkZfYXBwZW5kX3g4NiA9ICIgLS1kaXNhYmxlLWFzbSIKLQotUEFDS0FHRVMgPSsgIiR7UE59LXRlc3RzIgotCi1GSUxFU18ke1BOfS10ZXN0cyA9ICIgXAotICAgICR7bGliZGlyfS90ZXN0L3Rlc3QgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhc3MvbGliYXNzXzAuMTMuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvbGliYXNzL2xpYmFzc18wLjEzLjYuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwYWMwZjguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhc3MvbGliYXNzXzAuMTMuNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotcmVxdWlyZSByZWNpcGVzLW11bHRpbWVkaWEvJHtCUE59LyR7QlBOfS5pbmMKLQotU1JDX1VSSVttZDVzdW1dID0gImRhYTZjZmNhNDM3YzA3NzZhZjVmNzk3NTBjZGQ5YjRlIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImY4YTg3NGQxMDRlM2U3MmUyY2MwNTdlNWExNzEwYzY1MGIxMDM2NzQ4Njg0NWEyNmU1ZmYyOGVkN2E5MTJjMmQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmFzcy9saWJhc3NfMC4xNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhc3MvbGliYXNzXzAuMTQuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDU0YTVjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhc3MvbGliYXNzXzAuMTQuMC5iYgpAQCAtMCwwICsxLDMwIEBACitERVNDUklQVElPTiA9ICJsaWJhc3MgaXMgYSBwb3J0YWJsZSBzdWJ0aXRsZSByZW5kZXJlciBmb3IgdGhlIEFTUy9TU0EgKEFkdmFuY2VkIFN1YnN0YXRpb24gQWxwaGEvU3Vic3RhdGlvbiBBbHBoYSkgc3VidGl0bGUgZm9ybWF0LiBJdCBpcyBtb3N0bHkgY29tcGF0aWJsZSB3aXRoIFZTRmlsdGVyLiIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9saWJhc3MvbGliYXNzIgorU0VDVElPTiA9ICJsaWJzL211bHRpbWVkaWEiCisKK0xJQ0VOU0UgPSAiSVNDIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YTQyNTMyYTA2ODQ0MjBiZGIxNTU1NmMzY2RkNDlhNzUiCisKK0RFUEVORFMgPSAiZW5jYSBmb250Y29uZmlnIGZyZWV0eXBlIGxpYnBuZyBmcmliaWRpIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbGliYXNzL2xpYmFzcy5naXQiCitTUkNSRVYgPSAiNzMyODRiNjc2YjEyYjQ3ZTE3YWYyZWYxYjQzMDUyNzI5OWUxMGMxNyIKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCitQQUNLQUdFQ09ORklHID8/PSAiIgorUEFDS0FHRUNPTkZJR1toYXJmYnV6el0gPSAiLS1lbmFibGUtaGFyZmJ1enosLS1kaXNhYmxlLWhhcmZidXp6LGhhcmZidXp6IgorCitFWFRSQV9PRUNPTkYgPSAiIFwKKyAgICAtLWVuYWJsZS1mb250Y29uZmlnIFwKKyIKKworIyBEaXNhYmxlIGNvbXBpbGluZyB3aXRoIEFTTSBmb3IgeDg2IHRvIGF2b2lkIHRleHRyZWwKK0VYVFJBX09FQ09ORl9hcHBlbmRfeDg2ID0gIiAtLWRpc2FibGUtYXNtIgorCitQQUNLQUdFUyA9KyAiJHtQTn0tdGVzdHMiCisKK0ZJTEVTXyR7UE59LXRlc3RzID0gIiBcCisgICAgJHtsaWJkaXJ9L3Rlc3QvdGVzdCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmNkaW8vbGliY2Rpb18wLjkzLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJjZGlvL2xpYmNkaW9fMC45My5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTllNmE4NC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmNkaW8vbGliY2Rpb18wLjkzLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotU1VNTUFSWSA9ICJUaGUgR05VIENvbXBhY3QgRGlzYyBJbnB1dCBhbmQgQ29udHJvbCBsaWJyYXJ5IChsaWJjZGlvKSBjb250YWlucyBhIGxpYnJhcnkgZm9yIENELVJPTSBhbmQgQ0QgaW1hZ2UgYWNjZXNzLiIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJjZGlvLyIKLVNFQ1RJT04gPSAibGlicyIKLUxJQ0VOU0UgPSAiR1BMdjMrIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQiCi0KLVNSQ19VUkkgPSAiJHtHTlVfTUlSUk9SfS8ke0JQTn0vJHtCUH0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gImQxNTQ0NzZmZWFhYzVhN2I1ZjE4MGU4M2VhZjNkNjg5IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ5NzJjZDIyZmQ4ZDBlOGJmZjkyMmQzNWM3YTY0NWJlMGRiMGFiMGU3YjNkZmFlY2M5Y2Q4MjcyNDI5ZDY5NzUiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi1QQUNLQUdFQ09ORklHID8/PSAiY2RkYS1wbGF5ZXIiCi1QQUNLQUdFQ09ORklHW2NkZGEtcGxheWVyXSA9ICItLXdpdGgtY2RkYS1wbGF5ZXIsLS13aXRob3V0LWNkZGEtcGxheWVyLG5jdXJzZXMiCi1QQUNLQUdFQ09ORklHW2NkZGJdID0gIi0tZW5hYmxlLWNkZGIsLS1kaXNhYmxlLWNkZGIsbGliY2RkYiIKLVBBQ0tBR0VDT05GSUdbdmNkLWluZm9dID0gIi0tZW5hYmxlLXZjZC1pbmZvLC0tZGlzYWJsZS12Y2QtaW5mbyx2Y2RpbWFnZXIiCi0KLVBBQ0tBR0VTICs9ICIke1BOfS11dGlscyIKLQotRklMRVNfJHtQTn0gPSAiJHtsaWJkaXJ9LyR7QlBOfSR7U09MSUJ9IgotRklMRVNfJHtQTn0tdXRpbHMgPSAiJHtiaW5kaXJ9LyoiCi0KLXB5dGhvbiBsaWJjZGlvX3NwbGl0X3BhY2thZ2VzKCkgewotICAgIGxpYmRpciA9IGQuZXhwYW5kKCcke2xpYmRpcn0nKQotICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIGxpYmRpciwgJ15saWIoLiopXC5zb1wuLionLCAnbGliJXMnLCAnbGliY2RpbyAlcyBsaWJyYXJ5JywgZXh0cmFfZGVwZW5kcz0nJywgYWxsb3dfbGlua3M9VHJ1ZSkKLX0KLQotUEFDS0FHRVNQTElURlVOQ1MgPSsgImxpYmNkaW9fc3BsaXRfcGFja2FnZXMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmNkaW8vbGliY2Rpb18yLjAuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvbGliY2Rpby9saWJjZGlvXzIuMC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiZjY0ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmNkaW8vbGliY2Rpb18yLjAuMC5iYgpAQCAtMCwwICsxLDI5IEBACitTVU1NQVJZID0gIlRoZSBHTlUgQ29tcGFjdCBEaXNjIElucHV0IGFuZCBDb250cm9sIGxpYnJhcnkgKGxpYmNkaW8pIGNvbnRhaW5zIGEgbGlicmFyeSBmb3IgQ0QtUk9NIGFuZCBDRCBpbWFnZSBhY2Nlc3MuIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmNkaW8vIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJHUEx2MysiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKKworU1JDX1VSSSA9ICIke0dOVV9NSVJST1J9LyR7QlBOfS8ke0JQfS50YXIuZ3oiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIwY2IyNTkwNTExM2I5MzBlNDUzOWQyZjRlYjY1NzRiMCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIxYjQ4MWI1ZGEwMDliZWEzMWRiODc1ODA1NjY1OTc0ZTJmYzU2OGUyYjJhZmE1MTZmNDAzNjczMzY1N2NmOTU4IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworUEFDS0FHRUNPTkZJRyA/Pz0gImNkZGEtcGxheWVyIgorUEFDS0FHRUNPTkZJR1tjZGRhLXBsYXllcl0gPSAiLS13aXRoLWNkZGEtcGxheWVyLC0td2l0aG91dC1jZGRhLXBsYXllcixuY3Vyc2VzIgorUEFDS0FHRUNPTkZJR1tjZGRiXSA9ICItLWVuYWJsZS1jZGRiLC0tZGlzYWJsZS1jZGRiLGxpYmNkZGIiCitQQUNLQUdFQ09ORklHW3ZjZC1pbmZvXSA9ICItLWVuYWJsZS12Y2QtaW5mbywtLWRpc2FibGUtdmNkLWluZm8sdmNkaW1hZ2VyIgorCitQQUNLQUdFUyArPSAiJHtQTn0tdXRpbHMiCisKK0ZJTEVTXyR7UE59ID0gIiR7bGliZGlyfS8ke0JQTn0ke1NPTElCfSIKK0ZJTEVTXyR7UE59LXV0aWxzID0gIiR7YmluZGlyfS8qIgorCitweXRob24gbGliY2Rpb19zcGxpdF9wYWNrYWdlcygpIHsKKyAgICBsaWJkaXIgPSBkLmV4cGFuZCgnJHtsaWJkaXJ9JykKKyAgICBkb19zcGxpdF9wYWNrYWdlcyhkLCBsaWJkaXIsICdebGliKC4qKVwuc29cLi4qJywgJ2xpYiVzJywgJ2xpYmNkaW8gJXMgbGlicmFyeScsIGV4dHJhX2RlcGVuZHM9JycsIGFsbG93X2xpbmtzPVRydWUpCit9CisKK1BBQ0tBR0VTUExJVEZVTkNTID0rICJsaWJjZGlvX3NwbGl0X3BhY2thZ2VzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJzZGwtbWl4ZXIvbGlic2RsMi1taXhlcl8yLjAuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvbGlic2RsLW1peGVyL2xpYnNkbDItbWl4ZXJfMi4wLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyNzZiNDQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9saWJzZGwtbWl4ZXIvbGlic2RsMi1taXhlcl8yLjAuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLVNVTU1BUlkgPSAiU2ltcGxlIERpcmVjdE1lZGlhIExheWVyIG1peGVyIGxpYnJhcnkgVjIiCi1TRUNUSU9OID0gImxpYnMiCi1ERVBFTkRTID0gInZpcnR1YWwvbGlic2RsMiBmbGFjIGxpYm1pa21vZCBsaWJ2b3JiaXMiCi1MSUNFTlNFID0gIlpsaWIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HLnR4dDttZDU9MjlkOGJjN2MzOGFhNDRiMWNmM2E2MzNhNDY1ODk5MTciCi0KLVNSQ19VUkkgPSAiaHR0cDovL3d3dy5saWJzZGwub3JnL3Byb2plY3RzL1NETF9taXhlci9yZWxlYXNlL1NETDJfbWl4ZXItJHtQVn0udGFyLmd6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiYzZjNGY1NTZkNDQxNTg3MWY1MjYyNDhmNWM5YTYyN2QiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWEyNGY2MmE2MTAyNDlkNzQ0Y2JkOGQyOGVlMzk5ZDg5MDVkYjcyMjJiZjNiZGJjOGE4YjRhNzZlNTk3Njk1ZiIKLQotUyA9ICIke1dPUktESVJ9L1NETDJfbWl4ZXItJHtQVn0iCi0KLWluaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcKLQotRVhUUkFfQVVUT1JFQ09ORiArPSAiLS1pbmNsdWRlPWFjaW5jbHVkZSIKLUVYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtbXVzaWMtbXAzIC0tZW5hYmxlLW11c2ljLW9nZyAtLWVuYWJsZS1tdXNpYy1vZ2ctdHJlbW9yIExJQlM9LUwke1NUQUdJTkdfTElCRElSfSIKLQotUEFDS0FHRUNPTkZJR1ttYWRdID0gIi0tZW5hYmxlLW11c2ljLW1wMy1tYWQtZ3BsLC0tZGlzYWJsZS1tdXNpYy1tcDMtbWFkLWdwbCxsaWJtYWQiCi0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKLSAgICAjIFJlbW92ZSBvbGQgbGlidG9vbCBtYWNyb3MuCi0gICAgTUFDUk9TPSJsaWJ0b29sLm00IGx0fm9ic29sZXRlLm00IGx0b3B0aW9ucy5tNCBsdHN1Z2FyLm00IGx0dmVyc2lvbi5tNCIKLSAgICBmb3IgaSBpbiAke01BQ1JPU307IGRvCi0gICAgICAgIHJtIC1mIGFjaW5jbHVkZS8kaQotICAgIGRvbmUKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvbGlic2RsLW1peGVyL2xpYnNkbDItbWl4ZXJfMi4wLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYnNkbC1taXhlci9saWJzZGwyLW1peGVyXzIuMC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxOGYzZjUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYnNkbC1taXhlci9saWJzZGwyLW1peGVyXzIuMC4yLmJiCkBAIC0wLDAgKzEsMjcgQEAKK1NVTU1BUlkgPSAiU2ltcGxlIERpcmVjdE1lZGlhIExheWVyIG1peGVyIGxpYnJhcnkgVjIiCitTRUNUSU9OID0gImxpYnMiCitERVBFTkRTID0gInZpcnR1YWwvbGlic2RsMiBmbGFjIGxpYm1pa21vZCBsaWJ2b3JiaXMiCitMSUNFTlNFID0gIlpsaWIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HLnR4dDttZDU9OTVlMGMzY2Y2M2Y3MWI5NTA5MTFlNjk4YTU0YjdmYzUiCisKK1NSQ19VUkkgPSAiaHR0cDovL3d3dy5saWJzZGwub3JnL3Byb2plY3RzL1NETF9taXhlci9yZWxlYXNlL1NETDJfbWl4ZXItJHtQVn0udGFyLmd6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiYWFhMDU1MTM5Mzk5M2MxNGExM2Y3MmIzMzljMGVkNmMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGU2MTVlMjdlZmNhNGY0MzlkZjlhZjZhYTJjNmRlODQxNTBkMTdjYmZkMTIxNzRiNTQ4NjhjMTJmMTljODNiYiIKKworUyA9ICIke1dPUktESVJ9L1NETDJfbWl4ZXItJHtQVn0iCisKK2luaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcKKworRVhUUkFfQVVUT1JFQ09ORiArPSAiLS1pbmNsdWRlPWFjaW5jbHVkZSIKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtbXVzaWMtbXAzIC0tZW5hYmxlLW11c2ljLW9nZyAtLWVuYWJsZS1tdXNpYy1vZ2ctdHJlbW9yIExJQlM9LUwke1NUQUdJTkdfTElCRElSfSIKKworUEFDS0FHRUNPTkZJR1ttYWRdID0gIi0tZW5hYmxlLW11c2ljLW1wMy1tYWQtZ3BsLC0tZGlzYWJsZS1tdXNpYy1tcDMtbWFkLWdwbCxsaWJtYWQiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKKyAgICAjIFJlbW92ZSBvbGQgbGlidG9vbCBtYWNyb3MuCisgICAgTUFDUk9TPSJsaWJ0b29sLm00IGx0fm9ic29sZXRlLm00IGx0b3B0aW9ucy5tNCBsdHN1Z2FyLm00IGx0dmVyc2lvbi5tNCIKKyAgICBmb3IgaSBpbiAke01BQ1JPU307IGRvCisgICAgICAgIHJtIC1mIGFjaW5jbHVkZS8kaQorICAgIGRvbmUKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvbXBsYXllci9tcHZfMC4yNi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9tcGxheWVyL21wdl8wLjI2LjAuYmIKaW5kZXggNDRkOTJhMC4uZGU3OGRlMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9tcGxheWVyL21wdl8wLjI2LjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS9tcGxheWVyL21wdl8wLjI2LjAuYmIKQEAgLTE2LDcgKzE2LDcgQEAKIAogU1JDX1VSSSA9ICIgXAogICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tcHYtcGxheWVyL21wdi9hcmNoaXZlL3Yke1BWfS50YXIuZ3o7bmFtZT1tcHYgXAotICAgIGh0dHA6Ly93d3cuZnJlZWhhY2tlcnMub3JnL350bmFneS9yZWxlYXNlL3dhZi0xLjguMTI7bmFtZT13YWY7c3ViZGlyPSR7QlBOfS0ke1BWfSBcCisgICAgaHR0cDovL3d3dy5mcmVlaGFja2Vycy5vcmcvfnRuYWd5L3JlbGVhc2Uvd2FmLTEuOC4xMjtuYW1lPXdhZjtkb3dubG9hZGZpbGVuYW1lPXdhZjtzdWJkaXI9JHtCUE59LSR7UFZ9IFwKICIKIFNSQ19VUklbbXB2Lm1kNXN1bV0gPSAiMDM4ZDBiNjYwZGUwN2ZmNjQ1YWQ2YTc0MTcwNGVjYWIiCiBTUkNfVVJJW21wdi5zaGEyNTZzdW1dID0gImRhZjNlZjM1OGQ1ZjI2MGYyMjY5ZjdjYWFiY2UyN2Y0NDZjMjkxNDU3ZWMzMzAwNzcxNTIxMjcxMzNiNzFiNDYiCkBAIC02NCw5ICs2NCwxMCBAQAogICAgICR7UEFDS0FHRUNPTkZJR19DT05GQVJHU30gXAogIgogCi1kb19jb25maWd1cmVfcHJlcGVuZCAoKSB7Ci0gICAgbG4gLXNmIHdhZi0xLjguMTIgJHtTfS93YWYKK2FkanVzdF93YWZfcGVybXMoKSB7CiAgICAgY2htb2QgK3ggJHtTfS93YWYKIH0KIAorZG9fcGF0Y2hbcG9zdGZ1bmNzXSArPSAiYWRqdXN0X3dhZl9wZXJtcyIKKwogRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vaWNvbnMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAxLVJldmVydC1tZWRpYS1jdGwtRG9uLXQtaW5zdGFsbC1saWJtZWRpYWN0bC1hbmQtbGlidjQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAxLVJldmVydC1tZWRpYS1jdGwtRG9uLXQtaW5zdGFsbC1saWJtZWRpYWN0bC1hbmQtbGlidjQucGF0Y2gKaW5kZXggNzQxMzA5NC4uZWIyOTRiMyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvMDAwMS1SZXZlcnQtbWVkaWEtY3RsLURvbi10LWluc3RhbGwtbGlibWVkaWFjdGwtYW5kLWxpYnY0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzLzAwMDEtUmV2ZXJ0LW1lZGlhLWN0bC1Eb24tdC1pbnN0YWxsLWxpYm1lZGlhY3RsLWFuZC1saWJ2NC5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZyb20gMmQ2YmZhNzViMmUxNmI0ZDc2NGYxYmYwMGJiOTAyZmI0YjVlNTA3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNjdhNmU5MTliODI2M2Q2ZDJiNzE1MGU2MmYyNmZiMDZiYmM1MjZlZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBGcmksIDI3IEZlYiAyMDE1IDIxOjU1OjM2ICswMDAwCiBTdWJqZWN0OiBbUEFUQ0hdIFJldmVydCAibWVkaWEtY3RsOiBEb24ndCBpbnN0YWxsIGxpYm1lZGlhY3RsIGFuZApAQCAtMTAsNiArMTAsNyBAQAogCiBDb25mbGljdHM6CiAJdXRpbHMvbWVkaWEtY3RsL01ha2VmaWxlLmFtCisKIC0tLQogIHV0aWxzL21lZGlhLWN0bC9NYWtlZmlsZS5hbSB8IDEwICsrKy0tLS0tLS0KICAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQpAQCAtNDAsNiArNDEsMyBAQAogIG1lZGlhY3RsX2luY2x1ZGVkaXI9JChpbmNsdWRlZGlyKS9tZWRpYWN0bAogIG5vaW5zdF9IRUFERVJTID0gbWVkaWFjdGwuaCB2NGwyc3ViZGV2LmgKICAKLS0tIAotMi45LjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvMDAwMS1idWlsZHN5c3RlbS1kby1ub3QtYXNzdW1lLWJ1aWxkaW5nLWluLXNvdXJjZS10cmVlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvMDAwMS1idWlsZHN5c3RlbS1kby1ub3QtYXNzdW1lLWJ1aWxkaW5nLWluLXNvdXJjZS10cmVlLnBhdGNoCmluZGV4IDU0MTYxZjkuLjEyNjA5ZDMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzLzAwMDEtYnVpbGRzeXN0ZW0tZG8tbm90LWFzc3VtZS1idWlsZGluZy1pbi1zb3VyY2UtdHJlZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAxLWJ1aWxkc3lzdGVtLWRvLW5vdC1hc3N1bWUtYnVpbGRpbmctaW4tc291cmNlLXRyZWUucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1Gcm9tIDgwNjgyMmY1YWNiNzU2ZDVhY2RhMGY5MDYzYzg0YjI4YjM4YjNmZmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDc1MzcyYjgwODhjMjA0NzQ0OTdiNzllYzZjZjFlOTlmMmQxN2Y1NmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBJc21vIFB1dXN0aW5lbiA8aXNtby5wdXVzdGluZW5AaW50ZWwuY29tPgogRGF0ZTogTW9uLCAzIEFwciAyMDE3IDEzOjIzOjM4ICswMzAwCi1TdWJqZWN0OiBbUEFUQ0ggdjRsLXV0aWxzXSBidWlsZHN5c3RlbTogZG8gbm90IGFzc3VtZSBidWlsZGluZyBpbiBzb3VyY2UgdHJlZS4KK1N1YmplY3Q6IFtQQVRDSF0gYnVpbGRzeXN0ZW06IGRvIG5vdCBhc3N1bWUgYnVpbGRpbmcgaW4gc291cmNlIHRyZWUuCiAKIFVzZSAkKHRvcF9zcmNkaXIpIGFzIHJlZmVyZW5jZSBmb3IgaW5jbHVkZSBwYXRocyBhbmQgYnVpbGR0aW1lIHNjcmlwdHMuCiBPdGhlcndpc2UgY29tcGlsYXRpb24gb3V0c2lkZSBvZiBwcm9qZWN0IHJvb3QgZGlyZWN0b3J5IHdpbGwgZmFpbApAQCAtMTIsNiArMTIsNyBAQAogVXBzdHJlYW0tc3RhdHVzOiBBY2NlcHRlZCBbaHR0cHM6Ly9naXQubGludXh0di5vcmcvL3Y0bC11dGlscy5naXQvY29tbWl0Lz9pZD1iZDk4YzlhOTliZmZjOGQ0NGM1NDg1OTM0NWU0ZGZlZTBhZGE0Mjc1XQogCiBTaWduZWQtb2ZmLWJ5OiBJc21vIFB1dXN0aW5lbiA8aXNtby5wdXVzdGluZW5AaW50ZWwuY29tPgorCiAtLS0KICB1dGlscy9jZWMtY29tcGxpYW5jZS9NYWtlZmlsZS5hbSAgfCAyICstCiAgdXRpbHMvY2VjLWN0bC9NYWtlZmlsZS5hbSAgICAgICAgIHwgMiArLQpAQCAtMjIsNyArMjMsNyBAQAogIDYgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvdXRpbHMvY2VjLWNvbXBsaWFuY2UvTWFrZWZpbGUuYW0gYi91dGlscy9jZWMtY29tcGxpYW5jZS9NYWtlZmlsZS5hbQotaW5kZXggZWM1ZGU1MS4uODMzMWFhMCAxMDA2NDQKK2luZGV4IGYwNWZlNmMuLmY3ZDE1MzUgMTAwNjQ0CiAtLS0gYS91dGlscy9jZWMtY29tcGxpYW5jZS9NYWtlZmlsZS5hbQogKysrIGIvdXRpbHMvY2VjLWNvbXBsaWFuY2UvTWFrZWZpbGUuYW0KIEBAIC03LDcgKzcsNyBAQCBjZWNfY29tcGxpYW5jZV9MREZMQUdTID0gLWxydApAQCAtMzUsMTAgKzM2LDEwIEBACiAgY2VjLWNvbXBsaWFuY2UuY3BwOiB2ZXJzaW9uLmgKICAKIGRpZmYgLS1naXQgYS91dGlscy9jZWMtY3RsL01ha2VmaWxlLmFtIGIvdXRpbHMvY2VjLWN0bC9NYWtlZmlsZS5hbQotaW5kZXggMGE3ZWYyMi4uNmFmYjZjOSAxMDA2NDQKK2luZGV4IDRhNmVhZTUuLjU3MGEwNzAgMTAwNjQ0CiAtLS0gYS91dGlscy9jZWMtY3RsL01ha2VmaWxlLmFtCiArKysgYi91dGlscy9jZWMtY3RsL01ha2VmaWxlLmFtCi1AQCAtNyw3ICs3LDcgQEAgY2VjX2N0bF9MREZMQUdTID0gLWxydAorQEAgLTYsNyArNiw3IEBAIGNlY19jdGxfU09VUkNFUyA9IGNlYy1jdGwuY3BwCiAgY2VjLWN0bC5jcHA6IGNlYy1jdGwtZ2VuLmgKICAKICBjZWMtY3RsLWdlbi5oOiBtc2cyY3RsLnBsIC4uLy4uL2luY2x1ZGUvbGludXgvY2VjLmggLi4vLi4vaW5jbHVkZS9saW51eC9jZWMtZnVuY3MuaApAQCAtNDgsNyArNDksNyBAQAogIGNsZWFuLWxvY2FsOgogIAktcm0gLXZmIGNlYy1jdGwtZ2VuLmgKIGRpZmYgLS1naXQgYS91dGlscy9jZWMtZm9sbG93ZXIvTWFrZWZpbGUuYW0gYi91dGlscy9jZWMtZm9sbG93ZXIvTWFrZWZpbGUuYW0KLWluZGV4IDUzOGVkYjIuLmZkYmYzZDkgMTAwNjQ0CitpbmRleCBkOGFkMjkyLi5lMzU1M2ViIDEwMDY0NAogLS0tIGEvdXRpbHMvY2VjLWZvbGxvd2VyL01ha2VmaWxlLmFtCiArKysgYi91dGlscy9jZWMtZm9sbG93ZXIvTWFrZWZpbGUuYW0KIEBAIC03LDEyICs3LDEyIEBAIGNlY19mb2xsb3dlcl9MREZMQUdTID0gLWxydApAQCAtNjUsNyArNjYsNyBAQAogKwkkKHRvcF9zcmNkaXIpL3V0aWxzL2NlYy1jdGwvbXNnMmN0bC5wbCAyICQodG9wX3NyY2RpcikvaW5jbHVkZS9saW51eC9jZWMuaCAkKHRvcF9zcmNkaXIpL2luY2x1ZGUvbGludXgvY2VjLWZ1bmNzLmggPiRACiAgCiAgdmVyc2lvbi5oOgotIAlAaWYgZ2l0IHJldi1wYXJzZSBIRUFEID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisgCUBpZiBnaXQgc2hvdy1yZWYgLXMgSEVBRCA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAogZGlmZiAtLWdpdCBhL3V0aWxzL3F2NGwyL01ha2VmaWxlLmFtIGIvdXRpbHMvcXY0bDIvTWFrZWZpbGUuYW0KIGluZGV4IGZkNTg0ODYuLmNjZDFhMmEgMTAwNjQ0CiAtLS0gYS91dGlscy9xdjRsMi9NYWtlZmlsZS5hbQpAQCAtODAsNyArODEsNyBAQAogIGlmIFdJVEhfUVRHTAogIHF2NGwyX0NQUEZMQUdTICs9ICQoUVRHTF9DRkxBR1MpCiBkaWZmIC0tZ2l0IGEvdXRpbHMvdjRsMi1jb21wbGlhbmNlL01ha2VmaWxlLmFtIGIvdXRpbHMvdjRsMi1jb21wbGlhbmNlL01ha2VmaWxlLmFtCi1pbmRleCAwM2RiOGRmLi4xOGI5ODkyIDEwMDY0NAoraW5kZXggYzJiNTkxOS4uZmI4ZDEyZSAxMDA2NDQKIC0tLSBhL3V0aWxzL3Y0bDItY29tcGxpYW5jZS9NYWtlZmlsZS5hbQogKysrIGIvdXRpbHMvdjRsMi1jb21wbGlhbmNlL01ha2VmaWxlLmFtCiBAQCAtNSw3ICs1LDcgQEAgREVGUyA6PQpAQCAtMTA1LDYgKzEwNiwzIEBACiAgCiAgaWYgV0lUSF9WNEwyX0NUTF9MSUJWNEwKICB2NGwyX2N0bF9MREFERCA9IC4uLy4uL2xpYi9saWJ2NGwyL2xpYnY0bDIubGEgLi4vLi4vbGliL2xpYnY0bGNvbnZlcnQvbGlidjRsY29udmVydC5sYSAtbHJ0IC1scHRocmVhZAotLS0gCi0yLjkuMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAxLWlyLWN0bC1EZWZpbmUtVEVNUF9GQUlMVVJFX1JFVFJZLWlmLXVuZGVmaW5lZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzLzAwMDEtaXItY3RsLURlZmluZS1URU1QX0ZBSUxVUkVfUkVUUlktaWYtdW5kZWZpbmVkLnBhdGNoCmluZGV4IGYxZTExZGEuLjgyZmMzZTEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzLzAwMDEtaXItY3RsLURlZmluZS1URU1QX0ZBSUxVUkVfUkVUUlktaWYtdW5kZWZpbmVkLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzLzAwMDEtaXItY3RsLURlZmluZS1URU1QX0ZBSUxVUkVfUkVUUlktaWYtdW5kZWZpbmVkLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotRnJvbSBlNjBhZWE1MGU0MWFlOGExNzY3MmJlYjU4NTliZWVjYjY2ZTdhMzA1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBiMmVmY2MyMDYxN2Q2MzE3Zjc0YzRhY2IyYTZhZjViNzY1ZjIwYjM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IEZyaSwgMTQgSnVsIDIwMTcgMTM6MTE6MjUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzNdIGlyLWN0bDogRGVmaW5lIFRFTVBfRkFJTFVSRV9SRVRSWSBpZiB1bmRlZmluZWQKK1N1YmplY3Q6IFtQQVRDSF0gaXItY3RsOiBEZWZpbmUgVEVNUF9GQUlMVVJFX1JFVFJZIGlmIHVuZGVmaW5lZAogCiB1c2Ugc3RybmR1cCgpIGluc3RlYWQgb2Ygc3RybmR1cGEoKSB3aGljaCBpcyBub3QKIHVuaXZlcnNhbGx5IGF2YWlsYWJsZSBpbiBDIGxpYnJhcmllcwpAQCAtOSw2ICs5LDcgQEAKIFRha2VuIGZyb20gQWxwaW5lTGludXgKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgdXRpbHMvaXItY3RsL2lyLWN0bC5jIHwgMTQgKysrKysrKysrKysrKy0KICAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQpAQCAtNTAsNiArNTEsMyBAQAogIAogIAlpZiAoIXN0cnRvc2NhbmNvZGUocCArIDEsICZzY2FuY29kZSkpIHsKICAJCWZwcmludGYoc3RkZXJyLCBfKCJlcnJvcjogaW52YWxpZCBzY2FuY29kZSAnJXMnXG4iKSwgcCArIDEpOwotLS0gCi0yLjEzLjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvMDAwMi1jb250cmliLXRlc3QtTGluay1tY19uZXh0Z2VuX3Rlc3Qtd2l0aC1saWJhcmdwLWlmLW5lLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvMDAwMi1jb250cmliLXRlc3QtTGluay1tY19uZXh0Z2VuX3Rlc3Qtd2l0aC1saWJhcmdwLWlmLW5lLnBhdGNoCmluZGV4IDJmYjQwNTcuLmE3NzlhMzAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzLzAwMDItY29udHJpYi10ZXN0LUxpbmstbWNfbmV4dGdlbl90ZXN0LXdpdGgtbGliYXJncC1pZi1uZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAyLWNvbnRyaWItdGVzdC1MaW5rLW1jX25leHRnZW5fdGVzdC13aXRoLWxpYmFyZ3AtaWYtbmUucGF0Y2gKQEAgLTEsMTEgKzEsMTIgQEAKLUZyb20gYjNhY2M0YzY0MDdmOTU1M2YzMjU4MmE5YWVlNmExMWI1ZmNkMWQ4YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNDlmODY1YTE3ZDYyZGI3YmJkMzMzYTliODNmYWRlZWE1NTY4NmUzNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBGcmksIDE0IEp1bCAyMDE3IDEzOjE3OjE5IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8zXSBjb250cmliL3Rlc3Q6IExpbmsgbWNfbmV4dGdlbl90ZXN0IHdpdGggbGliYXJncCBpZiBuZWVkZWQKK1N1YmplY3Q6IFtQQVRDSF0gY29udHJpYi90ZXN0OiBMaW5rIG1jX25leHRnZW5fdGVzdCB3aXRoIGxpYmFyZ3AgaWYgbmVlZGVkCiAKIG11c2wgZGVwZW5kcyBvbiBleHRlcm5hbCBhcmdwIGltcGxlbWVudGF0aW9uIGUuZy4KIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgY29udHJpYi90ZXN0L01ha2VmaWxlLmFtIHwgMiArLQogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQpAQCAtMjMsNiArMjQsMyBAQAogIAogIAogIGlvY3RsX3Rlc3RfU09VUkNFUyA9IGlvY3RsLXRlc3QuYyBpb2N0bC10ZXN0LmggaW9jdGxfMzIuaCBpb2N0bF82NC5oCi0tLSAKLTIuMTMuMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAzLXY0bDItY3RsLURvLW5vdC11c2UtZ2V0c3Vib3B0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvMDAwMy12NGwyLWN0bC1Eby1ub3QtdXNlLWdldHN1Ym9wdC5wYXRjaAppbmRleCAwYTk4NmFlLi41Yjg0YWYyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy8wMDAzLXY0bDItY3RsLURvLW5vdC11c2UtZ2V0c3Vib3B0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzLzAwMDMtdjRsMi1jdGwtRG8tbm90LXVzZS1nZXRzdWJvcHQucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1Gcm9tIGQwNGFhNjg2NmNiZWE1N2M0YTgxYjAzM2NkNjA1ODZhOTQzNmFjNmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGY3YTRiNzliMzMyMzUzNDQ2MGE2M2IzZTZjNThlYmFmMDZhZGYyMDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogRnJpLCAxNCBKdWwgMjAxNyAxMzoyMDowNSAtMDcwMAotU3ViamVjdDogW1BBVENIIDMvM10gdjRsMi1jdGw6IERvIG5vdCB1c2UgZ2V0c3Vib3B0CitTdWJqZWN0OiBbUEFUQ0hdIHY0bDItY3RsOiBEbyBub3QgdXNlIGdldHN1Ym9wdAogCiBQT1NJWCBzYXlzIHRoYXQgYmVoYXZpb3Igd2hlbiBzdWJvcHRzIGxpc3QgaXMgZW1wdHkgaXMgdW5kZWZpbmVkLgogbXVzbCBsaWJzIHdpbGwgc2V0IHZhbHVlIHRvIE5VTEwgd2hpY2ggbGVhZHMgdG8gY3Jhc2guCkBAIC05LDYgKzksNyBAQAogVGFrZW4gZnJvbSBBbHBpbmVMaW51eAogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICB1dGlscy92NGwyLWN0bC92NGwyLWN0bC1jb21tb24uY3BwIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQogIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQpAQCAtNDQsNiArNDUsMyBAQAogIH0KICAKICB2b2lkIGNvbW1vbl9jbWQoaW50IGNoLCBjaGFyICpvcHRhcmcpCi0tLSAKLTIuMTMuMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy9leHBvcnQtbWVkaWFjdGwtaGVhZGVycy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzL2V4cG9ydC1tZWRpYWN0bC1oZWFkZXJzLnBhdGNoCmluZGV4IGM2MTBlN2UuLjU1YTVjZGMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzL2V4cG9ydC1tZWRpYWN0bC1oZWFkZXJzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzL2V4cG9ydC1tZWRpYWN0bC1oZWFkZXJzLnBhdGNoCkBAIC0xLDkgKzEsMTcgQEAKLUluZGV4OiB2NGwtdXRpbHMtMS42LjIvdXRpbHMvbWVkaWEtY3RsL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gdjRsLXV0aWxzLTEuNi4yLm9yaWcvdXRpbHMvbWVkaWEtY3RsL01ha2VmaWxlLmFtCi0rKysgdjRsLXV0aWxzLTEuNi4yL3V0aWxzL21lZGlhLWN0bC9NYWtlZmlsZS5hbQotQEAgLTQsOCArNCw4IEBAIGxpYm1lZGlhY3RsX2xhX0NGTEFHUyA9ICQoTElCVURFVl9DRkxBR1MKLSBsaWJtZWRpYWN0bF9sYV9MREZMQUdTID0gJChMSUJVREVWX0xJQlMpCitGcm9tIGI4MmU1MDljMTA2NTlhNDY0Nzk2MWE2ZGEzYWRmNGQyODVkZWEyZGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogU3VuLCAxIE1hciAyMDE1IDIyOjI1OjA3ICswMDAwCisKKy0tLQorIHV0aWxzL21lZGlhLWN0bC9NYWtlZmlsZS5hbSB8IDQgKystLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS91dGlscy9tZWRpYS1jdGwvTWFrZWZpbGUuYW0gYi91dGlscy9tZWRpYS1jdGwvTWFrZWZpbGUuYW0KK2luZGV4IDdjNTIwYTIuLjc0ODM1M2QgMTAwNjQ0CistLS0gYS91dGlscy9tZWRpYS1jdGwvTWFrZWZpbGUuYW0KKysrKyBiL3V0aWxzL21lZGlhLWN0bC9NYWtlZmlsZS5hbQorQEAgLTE3LDggKzE3LDggQEAgQ0xFQU5GSUxFUyA9ICQoQlVJTFRfU09VUkNFUykKKyBub2Rpc3RfbGlidjRsMnN1YmRldl9sYV9TT1VSQ0VTID0gJChCVUlMVF9TT1VSQ0VTKQogIGxpYnY0bDJzdWJkZXZfbGFfU09VUkNFUyA9IGxpYnY0bDJzdWJkZXYuYwogIGxpYnY0bDJzdWJkZXZfbGFfTElCQUREID0gbGlibWVkaWFjdGwubGEKIC1tZWRpYWN0bF9pbmNsdWRlZGlyPSQoaW5jbHVkZWRpcikvbWVkaWFjdGwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzL21lZGlhY3RsLXBrZ2NvbmZpZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvdjRsMmFwcHMvdjRsLXV0aWxzL21lZGlhY3RsLXBrZ2NvbmZpZy5wYXRjaAppbmRleCAzNGZiM2NmLi45ZmNmNjExIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Y0bDJhcHBzL3Y0bC11dGlscy9tZWRpYWN0bC1wa2djb25maWcucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS92NGwyYXBwcy92NGwtdXRpbHMvbWVkaWFjdGwtcGtnY29uZmlnLnBhdGNoCkBAIC0xLDggKzEsMTYgQEAKLUluZGV4OiB2NGwtdXRpbHMtMS42LjIvdXRpbHMvbWVkaWEtY3RsL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gdjRsLXV0aWxzLTEuNi4yLm9yaWcvdXRpbHMvbWVkaWEtY3RsL01ha2VmaWxlLmFtCi0rKysgdjRsLXV0aWxzLTEuNi4yL3V0aWxzL21lZGlhLWN0bC9NYWtlZmlsZS5hbQotQEAgLTcsNiArNyw3IEBAIGxpYnY0bDJzdWJkZXZfbGFfTElCQUREID0gbGlibWVkaWFjdGwubGEKK0Zyb20gNDgwYzA0YWM2YTlkMTFiZmVmOWQ0YWNhMDczMDUyZmRjZWU0ZmRlYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBTdW4sIDEgTWFyIDIwMTUgMjI6MjU6MDcgKzAwMDAKKworLS0tCisgdXRpbHMvbWVkaWEtY3RsL01ha2VmaWxlLmFtIHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS91dGlscy9tZWRpYS1jdGwvTWFrZWZpbGUuYW0gYi91dGlscy9tZWRpYS1jdGwvTWFrZWZpbGUuYW0KK2luZGV4IGQxMWZhMmUuLjdjNTIwYTIgMTAwNjQ0CistLS0gYS91dGlscy9tZWRpYS1jdGwvTWFrZWZpbGUuYW0KKysrKyBiL3V0aWxzL21lZGlhLWN0bC9NYWtlZmlsZS5hbQorQEAgLTIwLDYgKzIwLDcgQEAgbGlidjRsMnN1YmRldl9sYV9MSUJBREQgPSBsaWJtZWRpYWN0bC5sYQogIG1lZGlhY3RsX2luY2x1ZGVkaXI9JChpbmNsdWRlZGlyKS9tZWRpYWN0bAogIG5vaW5zdF9IRUFERVJTID0gbWVkaWFjdGwuaCB2NGwyc3ViZGV2LmgKICAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvd2VibS9saWJ2cHgvbGlidnB4LWNvbmZpZ3VyZS1zdXBwb3J0LWJsYW5rLXByZWZpeC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW11bHRpbWVkaWEvd2VibS9saWJ2cHgvbGlidnB4LWNvbmZpZ3VyZS1zdXBwb3J0LWJsYW5rLXByZWZpeC5wYXRjaAppbmRleCBjN2E2ZTUxLi42YWQ3ZjJiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1tdWx0aW1lZGlhL3dlYm0vbGlidnB4L2xpYnZweC1jb25maWd1cmUtc3VwcG9ydC1ibGFuay1wcmVmaXgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbXVsdGltZWRpYS93ZWJtL2xpYnZweC9saWJ2cHgtY29uZmlndXJlLXN1cHBvcnQtYmxhbmstcHJlZml4LnBhdGNoCkBAIC0xLDE5ICsxLDI4IEBACi1VcHN0cmVhbTogbm90IHlldAorRnJvbSBkYzBhNWMzZDJkZDRlNzlkMTJhMTUwYTI0NmE5NWM0ZGM4ODMyNmYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KK0RhdGU6IFR1ZSwgMTYgQXVnIDIwMTEgMTY6MDQ6MzUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXBzdHJlYW06IG5vdCB5ZXQKIAogRml4IGNvbmZpZ3VyZSB0byBhY2NlcHQgIi0tcHJlZml4PSIgKGEgYmxhbmsgcHJlZml4KS4KIAotLS0tIGxpYnZweC0wLjkuMS9idWlsZC9tYWtlL2NvbmZpZ3VyZS5zaC5vcmlnCTIwMTAtMDYtMTcgMDk6MDg6NTYuMDAwMDAwMDAwIC0wNDAwCi0rKysgbGlidnB4LTAuOS4xL2J1aWxkL21ha2UvY29uZmlndXJlLnNoCTIwMTAtMDktMjMgMTQ6Mjc6NDguMDAwMDAwMDAwIC0wNDAwCi1AQCAtNDQ0LDYgKzQ0NCw4IEBACistLS0KKyBidWlsZC9tYWtlL2NvbmZpZ3VyZS5zaCB8IDIwICsrKysrKysrKysrKysrKystLS0tCisgMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9idWlsZC9tYWtlL2NvbmZpZ3VyZS5zaCBiL2J1aWxkL21ha2UvY29uZmlndXJlLnNoCitpbmRleCAwMDdlMDIwLi4wNGQ1Y2JmIDEwMDY0NAorLS0tIGEvYnVpbGQvbWFrZS9jb25maWd1cmUuc2gKKysrKyBiL2J1aWxkL21ha2UvY29uZmlndXJlLnNoCitAQCAtNTgxLDYgKzU4MSw4IEBAIHByb2Nlc3NfY29tbW9uX2NtZGxpbmUoKSB7CiAgICAgICAgICA7OwotICAgICAgICAgLS1wcmVmaXg9KikKKyAgICAgICAtLXByZWZpeD0qKQogICAgICAgICAgcHJlZml4PSIke29wdHZhbH0iCiArICAgICAgICAjIERpc3Rpbmd1aXNoIGJldHdlZW4gInByZWZpeCBub3Qgc2V0IiBhbmQgInByZWZpeCBzZXQgdG8gJyciCiArICAgICAgICBwcmVmaXhzZXQ9MQogICAgICAgICAgOzsKLSAgICAgICAgIC0tbGliZGlyPSopCisgICAgICAgLS1saWJkaXI9KikKICAgICAgICAgIGxpYmRpcj0iJHtvcHR2YWx9IgotQEAgLTU4NywxMyArNTg3LDIzIEBAIHByb2Nlc3NfY21kbGluZSgpIHsKK0BAIC02MTQsMTMgKzYxNiwyMyBAQCBwcm9jZXNzX2NtZGxpbmUoKSB7CiAgfQogIAogIHBvc3RfcHJvY2Vzc19jb21tb25fY21kbGluZSgpIHsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ2VvY2x1ZS9nZW9jbHVlXzIuNC40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9nZW9jbHVlL2dlb2NsdWVfMi40LjQuYmIKaW5kZXggMWQ1MzFhZS4uYjMxZDhlYiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9nZW9jbHVlL2dlb2NsdWVfMi40LjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9nZW9jbHVlL2dlb2NsdWVfMi40LjQuYmIKQEAgLTgsOSArOCw5IEBACiAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTgxMTRiODNhMDQzNWQ4MTM2YjQ3YmQ3MDExMWNlNWNkIgogCi1ERVBFTkRTID0gImdsaWItMi4wIGRidXMganNvbi1nbGliIGxpYnNvdXAtMi40IGludGx0b29sLW5hdGl2ZSBnb2JqZWN0LWludHJvc3BlY3Rpb24tbmF0aXZlIgorREVQRU5EUyA9ICJnbGliLTIuMCBkYnVzIGpzb24tZ2xpYiBsaWJzb3VwLTIuNCBpbnRsdG9vbC1uYXRpdmUiCiAKLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBndGstZG9jCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ3RrLWRvYyBnb2JqZWN0LWludHJvc3BlY3Rpb24KIAogU1JDX1VSSSA9ICIgXAogICAgIGh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3NvZnR3YXJlL2dlb2NsdWUvcmVsZWFzZXMvMi40L2dlb2NsdWUtJHtQVn0udGFyLnh6IFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLTMuMTYvMDAwMS1TQ29uc3RydWN0LXByZWZpeC1pbmNsdWRlcHktd2l0aC1zeXNyb290LWFuZC1kcm9wLXN5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QtMy4xNi8wMDAxLVNDb25zdHJ1Y3QtcHJlZml4LWluY2x1ZGVweS13aXRoLXN5c3Jvb3QtYW5kLWRyb3Atc3kucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlYTMyMjYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QtMy4xNi8wMDAxLVNDb25zdHJ1Y3QtcHJlZml4LWluY2x1ZGVweS13aXRoLXN5c3Jvb3QtYW5kLWRyb3Atc3kucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi1Gcm9tIDFlMmNlYTg5NDViYzIxODNmYmUxYTAxMmRjZDYzM2EzNTIxMjU5NTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDI0IEFwciAyMDEyIDE4OjQ1OjE0ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIFNDb25zdHJ1Y3Q6IHByZWZpeCBpbmNsdWRlcHkgd2l0aCBzeXNyb290IGFuZCBkcm9wIHN5c3Jvb3QKLSBmcm9tIHB5dGhvbl9saWJfZGlyCi0KLSogd2l0aG91dCBQWVRIT05QQVRILCBkaXN0dXRpbCdzIHN5c2NvbmZpZyByZXR1cm5zIElOQ0xVREVQWSB3aXRob3V0IHN5c3Jvb3QgcHJlZml4Ci0gIGFuZCB3aXRoIFBZVEhPTlBBVEggZnJvbSBPRSBpdCdzIHBvaW50aW5nIHRvIG5hdGl2ZSBweXRob24gZGlyCi0KLSAgICAkIGV4cG9ydCBQWVRIT05QQVRIPS9PRS9zaHItY29yZS90bXAtZWdsaWJjL3N5c3Jvb3RzL29tLWd0YTAyL3Vzci9saWIvcHl0aG9uMi43LwotICAgICQgcHl0aG9uCi0gICAgUHl0aG9uIDIuNy4yIChkZWZhdWx0LCBBcHIgMTggMjAxMiwgMDk6MTk6NTkpCi0gICAgW0dDQyA0LjYuMl0gb24gbGludXgyCi0gICAgVHlwZSAiaGVscCIsICJjb3B5cmlnaHQiLCAiY3JlZGl0cyIgb3IgImxpY2Vuc2UiIGZvciBtb3JlIGluZm9ybWF0aW9uLgotICAgID4+PiBmcm9tIGRpc3R1dGlscyBpbXBvcnQgc3lzY29uZmlnCi0gICAgPj4+IHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcnMoJ0lOQ0xVREVQWScpCi0gICAgWycvT0Uvc2hyLWNvcmUvdG1wLWVnbGliYy9zeXNyb290cy94ODZfNjQtbGludXgvdXNyL2luY2x1ZGUvcHl0aG9uMi43J10KLSAgICA+Pj4KLSAgICAkIHVuc2V0IFBZVEhPTlBBVEgKLSAgICAkIHB5dGhvbgotICAgIFB5dGhvbiAyLjcuMiAoZGVmYXVsdCwgQXByIDE4IDIwMTIsIDA5OjE5OjU5KQotICAgIFtHQ0MgNC42LjJdIG9uIGxpbnV4MgotICAgIFR5cGUgImhlbHAiLCAiY29weXJpZ2h0IiwgImNyZWRpdHMiIG9yICJsaWNlbnNlIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLSAgICA+Pj4gZnJvbSBkaXN0dXRpbHMgaW1wb3J0IHN5c2NvbmZpZwotICAgID4+PiBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXJzKCdJTkNMVURFUFknKQotICAgIFsnL3B5dGhvbjIuNyddCi0gICAgPj4+IGltcG9ydCBzeXNjb25maWcKLSAgICA+Pj4gc3lzY29uZmlnLmdldF9jb25maWdfdmFycygnSU5DTFVERVBZJykKLSAgICBbJy9PRS9zaHItY29yZS90bXAtZWdsaWJjL3N5c3Jvb3RzL3g4Nl82NC1saW51eC91c3IvaW5jbHVkZS9weXRob24yLjcnXQotKiBweXRob25fbGliX2RpciA9IHB5dGhvbl9saWJfZGlyLnJlcGxhY2UoZW52WydzeXNyb290J10sICcnKQotICByZXR1cm5zIHBhdGggdG8gdGFyZ2V0IHN5c3Jvb3QKLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KLQotU2lnbmVkLW9mZi1ieTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgotU2lnbmVkLW9mZi1ieTogUGV0ZXIgQS4gQmlnb3QgPHBhYkBwYWJpZ290LmNvbT4KLS0tLQotIFNDb25zdHJ1Y3QgfCA5ICsrKysrKysrKwotIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL1NDb25zdHJ1Y3QgYi9TQ29uc3RydWN0Ci1pbmRleCA2YzkzMzExLi5jZGU4YjNkIDEwMDY0NAotLS0tIGEvU0NvbnN0cnVjdAotKysrIGIvU0NvbnN0cnVjdAotQEAgLTExNDgsNiArMTE0OCwxMiBAQCBlbHNlOgotICAgICAgICAgYmFzZWNmbGFncyArPSAnIC1jb3ZlcmFnZScKLSAgICAgICAgIGxkZmxhZ3MgKz0gJyAtY292ZXJhZ2UnCi0gICAgICAgICBsZHNoYXJlZCArPSAnIC1jb3ZlcmFnZScKLSsKLSsgICAgaWYgZW52WydzeXNyb290J106Ci0rICAgICAgICBwcmludCAiUHJlZml4aW5nIGluY2x1ZGVweSAnJXMnIHdpdGggc3lzcm9vdCBwcmVmaXgiICUgaW5jbHVkZXB5Ci0rICAgICAgICBpbmNsdWRlcHkgPSBvcy5wYXRoLm5vcm1wYXRoKCIlcy8lcy8lcy8lcyIgJSAoZW52WydzeXNyb290J10sIGVudlsncHJlZml4J10sIGVudlsnaW5jbHVkZWRpciddLCBpbmNsdWRlcHkpKQotKyAgICAgICAgcHJpbnQgIiclcyciICUgaW5jbHVkZXB5Ci0rCi0gICAgICMgaW4gY2FzZSBDQy9DWFggd2FzIHNldCB0byB0aGUgc2Nhbi1idWlsZCB3cmFwcGVyLAotICAgICAjIGVuc3VyZSB0aGF0IHdlIGJ1aWxkIHRoZSBweXRob24gbW9kdWxlcyB3aXRoIHNjYW4tYnVpbGQsIHRvbwotICAgICBpZiBlbnZbJ0NDJ10gaXMgTm9uZSBvciBlbnZbJ0NDJ10uZmluZCgnc2Nhbi1idWlsZCcpIDwgMDoKLUBAIC0xNDA4LDExICsxNDE0LDE0IEBAIGlmIG5vdCBlbnZbJ3B5dGhvbiddOgotICAgICBweXRob25faW5zdGFsbCA9IFtdCi0gZWxzZToKLSAgICAgcHl0aG9uX2xpYl9kaXIgPSBlbnZbJ3B5dGhvbl9saWJkaXInXQotKyAgICBweXRob25fbGliX2RpciA9IHB5dGhvbl9saWJfZGlyLnJlcGxhY2UoZW52WydzeXNyb290J10sICcnKQotICAgICBweXRob25fbW9kdWxlX2RpciA9IHB5dGhvbl9saWJfZGlyICsgb3Muc2VwICsgJ2dwcycKLSAgICAgcHl0aG9uX2V4dGVuc2lvbnNfaW5zdGFsbCA9IHB5dGhvbl9lbnYuSW5zdGFsbCggREVTVERJUiArIHB5dGhvbl9tb2R1bGVfZGlyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRob25fYnVpbHRfZXh0ZW5zaW9ucykKLSAgICAgaWYgbm90IGVudlsnZGVidWcnXSBhbmQgbm90IGVudlsncHJvZmlsaW5nJ10gYW5kIG5vdCBlbnZbJ25vc3RyaXAnXSBhbmQgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdkYXJ3aW4nKToKLSAgICAgICAgIHB5dGhvbl9lbnYuQWRkUG9zdEFjdGlvbihweXRob25fZXh0ZW5zaW9uc19pbnN0YWxsLCAnJFNUUklQICRUQVJHRVQnKQotKyAgICBlbnYuQWRkUG9zdEFjdGlvbihweXRob25fZXh0ZW5zaW9uc19pbnN0YWxsLCAnJENIUlBBVEggLXIgIiVzIiAiJFRBUkdFVCInIFwKLSsgICAgICAgICAgICAgICAgICAgICAlIChweXRob25fbGliX2RpciwgKSkKLSAKLSAgICAgcHl0aG9uX21vZHVsZXNfaW5zdGFsbCA9IHB5dGhvbl9lbnYuSW5zdGFsbCggREVTVERJUiArIHB5dGhvbl9tb2R1bGVfZGlyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhvbl9tb2R1bGVzKQotLS0gCi0yLjEuMAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC0zLjE2LzAwMDEtaW5jbHVkZS1zeXMtdHR5ZGVmYXVsdHMuaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLTMuMTYvMDAwMS1pbmNsdWRlLXN5cy10dHlkZWZhdWx0cy5oLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDk2YjVlLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLTMuMTYvMDAwMS1pbmNsdWRlLXN5cy10dHlkZWZhdWx0cy5oLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotRnJvbSBmMjIxZmE5NTljODBiNDNjNjU0MjY1MDBhNjgzNmExYjVjZjZmZTBjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgMTcgQXVnIDIwMTYgMDI6MTY6MTIgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gaW5jbHVkZSBzeXMvdHR5ZGVmYXVsdHMuaAotCi1UaGlzIGlzIG5lZWRlZCBmb3IgQ1RSTCBkZWZpbml0aW9uLCBhcyBleHBvc2VkIGJ5IG11c2wgb24gZ2xpYmMKLXRoaXMgaW5jbHVkZSBmaWxlIGdldHMgcHVsbGVkIGluZGlyZWN0bHkuCi0KLS91c3Ivc3JjL2RlYnVnL2dwc2QvMy4xNC1yMC9ncHNkLTMuMTQvZ3BzbW9uLmM6NjA1OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBDVFJMJwotY2xhbmctMy45OiBlcnJvcjogbGlua2VyIGNvbW1hbmQgZmFpbGVkIHdpdGggZXhpdCBjb2RlIDEgKHVzZSAtdiB0byBzZWUgaW52b2NhdGlvbikKLXNjb25zOiAqKiogW2dwc21vbl0gRXJyb3IgMQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotCi1Gb3Jld2FyZCBwb3J0IHRvIGdwc2QgMy4xNgotU2lnbmVkLW9mZi1ieTogTWF4IEtydW1tZW5hY2hlciA8bWF4LmtydW1tZW5hY2hlckB0b3JhZGV4LmNvbT4KLS0tLQotIGdwc21vbi5jIHwgMSArCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCi0KLWRpZmYgLS1naXQgYS9ncHNtb24uYyBiL2dwc21vbi5jCi1pbmRleCBlYWQ4NGQwLi5mMjA1Y2IxIDEwMDY0NAotLS0tIGEvZ3BzbW9uLmMKLSsrKyBiL2dwc21vbi5jCi1AQCAtMjAsNiArMjAsNyBAQAotICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSAjaW5jbHVkZSA8c3lzL3NlbGVjdC5oPgotKyNpbmNsdWRlIDxzeXMvdHR5ZGVmYXVsdHMuaD4KLSAjaW5jbHVkZSA8ZmNudGwuaD4KLSAjaW5jbHVkZSA8dW5pc3RkLmg+Ci0gCi0tLSAKLTIuMTIuMAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC0zLjE2LzAwMDQtU0NvbnN0cnVjdC1kaXNhYmxlLWh0bWwtYW5kLW1hbi1kb2NzLWJ1aWxkaW5nLWJlY2F1cy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLTMuMTYvMDAwNC1TQ29uc3RydWN0LWRpc2FibGUtaHRtbC1hbmQtbWFuLWRvY3MtYnVpbGRpbmctYmVjYXVzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTI3ZjBkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLTMuMTYvMDAwNC1TQ29uc3RydWN0LWRpc2FibGUtaHRtbC1hbmQtbWFuLWRvY3MtYnVpbGRpbmctYmVjYXVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotRnJvbSA2OTdlMmU5ZmY5NzQ4NzI2NmQ4MTdjZGQ0MWJhY2M4M2Y2ODFlM2Q3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgotRGF0ZTogU3VuLCAyOSBBcHIgMjAxMiAwMDowNTo1OSArMDIwMAotU3ViamVjdDogW1BBVENIIDQvNF0gU0NvbnN0cnVjdDogZGlzYWJsZSBodG1sIGFuZCBtYW4gZG9jcyBidWlsZGluZyBiZWNhdXNlCi0geG1sdG8tbmF0aXZlIGZyb20gT0UgaXMgYnJva2VuCi0KLUl0IHdpbGwgdHJ5IHRvIGxvYWQgZHRkIGFuZCBmYWlsOgotfCB4bWx0byBtYW4gZ3BzY3RsLnhtbDsgbXYgYGJhc2VuYW1lIGdwc2N0bC4xYCBncHNjdGwuMQotfCB4bWx0bzogL3Zhci9saWIvamVua2lucy9qb2JzL3Noci1jb3JlLWJyYW5jaGVzL3dvcmtzcGFjZS9zaHItY29yZS90bXAtZWdsaWJjL3dvcmsvYXJtdjR0LW9lLWxpbnV4LWdudWVhYmkvZ3BzZC0zLjQtcjIvZ3BzZC0zLjQvZ3BzY3RsLnhtbCBkb2VzIG5vdCB2YWxpZGF0ZSAoc3RhdHVzIDMpCi18IHhtbHRvOiBGaXggZG9jdW1lbnQgc3ludGF4IG9yIHVzZSAtLXNraXAtdmFsaWRhdGlvbiBvcHRpb24KLXwgSS9PIGVycm9yIDogQXR0ZW1wdCB0byBsb2FkIG5ldHdvcmsgZW50aXR5IGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkCi18IC92YXIvbGliL2plbmtpbnMvam9icy9zaHItY29yZS1icmFuY2hlcy93b3Jrc3BhY2Uvc2hyLWNvcmUvdG1wLWVnbGliYy93b3JrL2FybXY0dC1vZS1saW51eC1nbnVlYWJpL2dwc2QtMy40LXIyL2dwc2QtMy40L2dwc2N0bC54bWw6ODogd2FybmluZzogZmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgZW50aXR5ICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCIKLXwgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIj4KLXwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi18IEkvTyBlcnJvciA6IEF0dGVtcHQgdG8gbG9hZCBuZXR3b3JrIGVudGl0eSBodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZAotfCB3YXJuaW5nOiBmYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBlbnRpdHkgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIgotfCB2YWxpZGl0eSBlcnJvciA6IENvdWxkIG5vdCBsb2FkIHRoZSBleHRlcm5hbCBzdWJzZXQgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIgotfCBEb2N1bWVudCAvdmFyL2xpYi9qZW5raW5zL2pvYnMvc2hyLWNvcmUtYnJhbmNoZXMvd29ya3NwYWNlL3Noci1jb3JlL3RtcC1lZ2xpYmMvd29yay9hcm12NHQtb2UtbGludXgtZ251ZWFiaS9ncHNkLTMuNC1yMi9ncHNkLTMuNC9ncHNjdGwueG1sIGRvZXMgbm90IHZhbGlkYXRlCi18IG12OiBjYW5ub3Qgc3RhdCBgZ3BzY3RsLjEnOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci18IHNjb25zOiAqKiogW2dwc2N0bC4xXSBFcnJvciAxCi18IHNjb25zOiBidWlsZGluZyB0ZXJtaW5hdGVkIGJlY2F1c2Ugb2YgZXJyb3JzLgotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2Rpc2FibGUgZmVhdHVyZV0KLQotU2lnbmVkLW9mZi1ieTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgotU2lnbmVkLW9mZi1ieTogUGV0ZXIgQS4gQmlnb3QgPHBhYkBwYWJpZ290LmNvbT4KLS0tLQotIFNDb25zdHJ1Y3QgfCA0ICsrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvU0NvbnN0cnVjdCBiL1NDb25zdHJ1Y3QKLWluZGV4IDBlNTE4ZTcuLmMwMWE3MWIgMTAwNjQ0Ci0tLS0gYS9TQ29uc3RydWN0Ci0rKysgYi9TQ29uc3RydWN0Ci1AQCAtNzA0LDEyICs3MDQsMTIgQEAgc2l6ZV90IHN0cmxjcHkoLypAb3V0QCovY2hhciAqZHN0LCAvKkBpbkAqL2NvbnN0IGNoYXIgKnNyYywgc2l6ZV90IHNpemUpOwotIAotICAgICBtYW5idWlsZGVyID0gbWFuZ2VuZXJhdG9yID0gaHRtbGJ1aWxkZXIgPSBOb25lCi0gICAgIGlmIGVudlsnbWFuYnVpbGQnXToKLS0gICAgICAgIGlmIGNvbmZpZy5DaGVja1hzbHRwcm9jKCk6Ci0rICAgICAgICBpZiBGYWxzZSBhbmQgY29uZmlnLkNoZWNrWHNsdHByb2MoKToKLSAgICAgICAgICAgICBtYW5nZW5lcmF0b3IgPSAneHNsdHByb2MnCi0gICAgICAgICAgICAgYnVpbGQgPSAieHNsdHByb2MgLS1ub25ldCAlcyAkU09VUkNFID4kVEFSR0VUIgotICAgICAgICAgICAgIGh0bWxidWlsZGVyID0gYnVpbGQgJSBkb2Nib29rX2h0bWxfdXJpCi0gICAgICAgICAgICAgbWFuYnVpbGRlciA9IGJ1aWxkICUgZG9jYm9va19tYW5fdXJpCi0tICAgICAgICBlbGlmIFdoZXJlSXMoInhtbHRvIik6Ci0rICAgICAgICBlbGlmIEZhbHNlIGFuZCBXaGVyZUlzKCJ4bWx0byIpOgotICAgICAgICAgICAgIG1hbmdlbmVyYXRvciA9ICd4bWx0bycKLSAgICAgICAgICAgICB4bWx0byA9ICJ4bWx0byAlcyAkU09VUkNFIHx8IG12IGBiYXNlbmFtZSAkVEFSR0VUYCBgZGlybmFtZSAkVEFSR0VUYCIKLSAgICAgICAgICAgICBodG1sYnVpbGRlciA9IHhtbHRvICUgImh0bWwtbm9jaHVua3MiCi0tLSAKLTEuOC41LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QtMy4xNy8wMDAxLVNDb25zdHJ1Y3QtcHJlZml4LWluY2x1ZGVweS13aXRoLXN5c3Jvb3QtYW5kLWRyb3Atc3kucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC0zLjE3LzAwMDEtU0NvbnN0cnVjdC1wcmVmaXgtaW5jbHVkZXB5LXdpdGgtc3lzcm9vdC1hbmQtZHJvcC1zeS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmEyN2MyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QtMy4xNy8wMDAxLVNDb25zdHJ1Y3QtcHJlZml4LWluY2x1ZGVweS13aXRoLXN5c3Jvb3QtYW5kLWRyb3Atc3kucGF0Y2gKQEAgLTAsMCArMSw4MSBAQAorRnJvbSAxZTJjZWE4OTQ1YmMyMTgzZmJlMWEwMTJkY2Q2MzNhMzUyMTI1OTUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWFydGluIEphbnNhIDxNYXJ0aW4uSmFuc2FAZ21haWwuY29tPgorRGF0ZTogVHVlLCAyNCBBcHIgMjAxMiAxODo0NToxNCArMDIwMAorU3ViamVjdDogW1BBVENIXSBTQ29uc3RydWN0OiBwcmVmaXggaW5jbHVkZXB5IHdpdGggc3lzcm9vdCBhbmQgZHJvcCBzeXNyb290CisgZnJvbSBweXRob25fbGliX2RpcgorCisqIHdpdGhvdXQgUFlUSE9OUEFUSCwgZGlzdHV0aWwncyBzeXNjb25maWcgcmV0dXJucyBJTkNMVURFUFkgd2l0aG91dCBzeXNyb290IHByZWZpeAorICBhbmQgd2l0aCBQWVRIT05QQVRIIGZyb20gT0UgaXQncyBwb2ludGluZyB0byBuYXRpdmUgcHl0aG9uIGRpcgorCisgICAgJCBleHBvcnQgUFlUSE9OUEFUSD0vT0Uvc2hyLWNvcmUvdG1wLWVnbGliYy9zeXNyb290cy9vbS1ndGEwMi91c3IvbGliL3B5dGhvbjIuNy8KKyAgICAkIHB5dGhvbgorICAgIFB5dGhvbiAyLjcuMiAoZGVmYXVsdCwgQXByIDE4IDIwMTIsIDA5OjE5OjU5KQorICAgIFtHQ0MgNC42LjJdIG9uIGxpbnV4MgorICAgIFR5cGUgImhlbHAiLCAiY29weXJpZ2h0IiwgImNyZWRpdHMiIG9yICJsaWNlbnNlIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICA+Pj4gZnJvbSBkaXN0dXRpbHMgaW1wb3J0IHN5c2NvbmZpZworICAgID4+PiBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXJzKCdJTkNMVURFUFknKQorICAgIFsnL09FL3Noci1jb3JlL3RtcC1lZ2xpYmMvc3lzcm9vdHMveDg2XzY0LWxpbnV4L3Vzci9pbmNsdWRlL3B5dGhvbjIuNyddCisgICAgPj4+CisgICAgJCB1bnNldCBQWVRIT05QQVRICisgICAgJCBweXRob24KKyAgICBQeXRob24gMi43LjIgKGRlZmF1bHQsIEFwciAxOCAyMDEyLCAwOToxOTo1OSkKKyAgICBbR0NDIDQuNi4yXSBvbiBsaW51eDIKKyAgICBUeXBlICJoZWxwIiwgImNvcHlyaWdodCIsICJjcmVkaXRzIiBvciAibGljZW5zZSIgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgPj4+IGZyb20gZGlzdHV0aWxzIGltcG9ydCBzeXNjb25maWcKKyAgICA+Pj4gc3lzY29uZmlnLmdldF9jb25maWdfdmFycygnSU5DTFVERVBZJykKKyAgICBbJy9weXRob24yLjcnXQorICAgID4+PiBpbXBvcnQgc3lzY29uZmlnCisgICAgPj4+IHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcnMoJ0lOQ0xVREVQWScpCisgICAgWycvT0Uvc2hyLWNvcmUvdG1wLWVnbGliYy9zeXNyb290cy94ODZfNjQtbGludXgvdXNyL2luY2x1ZGUvcHl0aG9uMi43J10KKyogcHl0aG9uX2xpYl9kaXIgPSBweXRob25fbGliX2Rpci5yZXBsYWNlKGVudlsnc3lzcm9vdCddLCAnJykKKyAgcmV0dXJucyBwYXRoIHRvIHRhcmdldCBzeXNyb290CisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCisKK1NpZ25lZC1vZmYtYnk6IE1hcnRpbiBKYW5zYSA8TWFydGluLkphbnNhQGdtYWlsLmNvbT4KK1NpZ25lZC1vZmYtYnk6IFBldGVyIEEuIEJpZ290IDxwYWJAcGFiaWdvdC5jb20+CistLS0KKyBTQ29uc3RydWN0IHwgOSArKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9TQ29uc3RydWN0IGIvU0NvbnN0cnVjdAoraW5kZXggMzMxOGJiNDguLmUxYzRmOTYzIDEwMDY0NAorLS0tIGEvU0NvbnN0cnVjdAorKysrIGIvU0NvbnN0cnVjdAorQEAgLTkzNCw3ICs5MzQsNyBAQCBlbHNlOgorIAorICMgU2V0IHVwIGNvbmZpZ3VyYXRpb24gZm9yIHRhcmdldCBQeXRob24KKyAKKy1QWVRIT05fTElCRElSX0NBTEwgPSAnc3lzY29uZmlnLmdldF9weXRob25fbGliKCknCisrUFlUSE9OX0xJQkRJUl9DQUxMID0gJ3N5c2NvbmZpZy5nZXRfcHl0aG9uX2xpYihwbGF0X3NwZWNpZmljPTEpJworIAorIFBZVEhPTl9DT05GSUdfTkFNRVMgPSBbJ0NDJywgJ0NYWCcsICdPUFQnLCAnQkFTRUNGTEFHUycsCisgICAgICAgICAgICAgICAgICAgICAgICAnQ0NTSEFSRUQnLCAnTERTSEFSRUQnLCAnU08nLCAnSU5DTFVERVBZJywgJ0xERkxBR1MnXQorQEAgLTEzNjQsNyArMTM2NCw3IEBAIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBMSU5LPWxkc2hhcmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgU0hMSUJQUkVGSVg9IiIsCisgICAgICAgICAgICAgICAgICAgICAgICBTSExJQlNVRkZJWD1weXRob25fY29uZmlnWydTTyddLAorLSAgICAgICAgICAgICAgICAgICAgICAgQ1BQUEFUSD1bcHl0aG9uX2NvbmZpZ1snSU5DTFVERVBZJ11dLAorKyAgICAgICAgICAgICAgICAgICAgICAgQ1BQUEFUSD1bb3MucGF0aC5ub3JtcGF0aCgiJXMvJXMvJXMvJXMiICUgKGVudlsnc3lzcm9vdCddLCBlbnZbJ3ByZWZpeCddLCBlbnZbJ2luY2x1ZGVkaXInXSwgcHl0aG9uX2NvbmZpZ1snSU5DTFVERVBZJ10pKV0gaWYgZW52WydzeXNyb290J10gZWxzZSBbcHl0aG9uX2NvbmZpZ1snSU5DTFVERVBZJ11dLAorICAgICAgICAgICAgICAgICAgICAgICAgQ1BQRkxBR1M9cHl0aG9uX2NvbmZpZ1snT1BUJ10sCisgICAgICAgICAgICAgICAgICAgICAgICBDRkxBR1M9cHl0aG9uX2NvbmZpZ1snQkFTRUNGTEFHUyddLAorICAgICAgICAgICAgICAgICAgICAgICAgQ1hYRkxBR1M9cHl0aG9uX2NvbmZpZ1snQkFTRUNGTEFHUyddKQorQEAgLTE2NjIsMTIgKzE2NjIsMTUgQEAgaWYgKChub3QgZW52WydkZWJ1ZyddIGFuZCBub3QgZW52Wydwcm9maWxpbmcnXSBhbmQgbm90IGVudlsnbm9zdHJpcCddCisgaWYgbm90IGVudlsncHl0aG9uJ106CisgICAgIHB5dGhvbl9pbnN0YWxsID0gW10KKyBlbHNlOgorKyAgICBweXRob25fbGliZGlyID0gcHl0aG9uX2xpYmRpci5yZXBsYWNlKGVudlsnc3lzcm9vdCddLCAnJykKKyAgICAgcHl0aG9uX21vZHVsZV9kaXIgPSBweXRob25fbGliZGlyICsgb3Muc2VwICsgJ2dwcycKKyAgICAgcHl0aG9uX2V4dGVuc2lvbnNfaW5zdGFsbCA9IHB5dGhvbl9lbnYuSW5zdGFsbChERVNURElSICsgcHl0aG9uX21vZHVsZV9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uX2J1aWx0X2V4dGVuc2lvbnMpCisgICAgIGlmICgobm90IGVudlsnZGVidWcnXSBhbmQgbm90IGVudlsncHJvZmlsaW5nJ10KKyAgICAgICAgICBhbmQgbm90IGVudlsnbm9zdHJpcCddIGFuZCBub3Qgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2RhcndpbicpKSk6CisgICAgICAgICBweXRob25fZW52LkFkZFBvc3RBY3Rpb24ocHl0aG9uX2V4dGVuc2lvbnNfaW5zdGFsbCwgJyRTVFJJUCAkVEFSR0VUJykKKysgICAgZW52LkFkZFBvc3RBY3Rpb24ocHl0aG9uX2V4dGVuc2lvbnNfaW5zdGFsbCwgJyRDSFJQQVRIIC1yICIlcyIgIiRUQVJHRVQiJyBcCisrICAgICAgICAgICAgICAgICAgICAgJSAocHl0aG9uX2xpYmRpciwgKSkKKyAKKyAgICAgcHl0aG9uX21vZHVsZXNfaW5zdGFsbCA9IHB5dGhvbl9lbnYuSW5zdGFsbChERVNURElSICsgcHl0aG9uX21vZHVsZV9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uX21vZHVsZXMpCistLSAKKzIuMS4wCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLTMuMTcvMDAwMS1pbmNsdWRlLXN5cy10dHlkZWZhdWx0cy5oLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QtMy4xNy8wMDAxLWluY2x1ZGUtc3lzLXR0eWRlZmF1bHRzLmgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTkxZTRlOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLTMuMTcvMDAwMS1pbmNsdWRlLXN5cy10dHlkZWZhdWx0cy5oLnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAKK0Zyb20gZjIyMWZhOTU5YzgwYjQzYzY1NDI2NTAwYTY4MzZhMWI1Y2Y2ZmUwYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBXZWQsIDE3IEF1ZyAyMDE2IDAyOjE2OjEyICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIGluY2x1ZGUgc3lzL3R0eWRlZmF1bHRzLmgKKworVGhpcyBpcyBuZWVkZWQgZm9yIENUUkwgZGVmaW5pdGlvbiwgYXMgZXhwb3NlZCBieSBtdXNsIG9uIGdsaWJjCit0aGlzIGluY2x1ZGUgZmlsZSBnZXRzIHB1bGxlZCBpbmRpcmVjdGx5LgorCisvdXNyL3NyYy9kZWJ1Zy9ncHNkLzMuMTQtcjAvZ3BzZC0zLjE0L2dwc21vbi5jOjYwNTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgQ1RSTCcKK2NsYW5nLTMuOTogZXJyb3I6IGxpbmtlciBjb21tYW5kIGZhaWxlZCB3aXRoIGV4aXQgY29kZSAxICh1c2UgLXYgdG8gc2VlIGludm9jYXRpb24pCitzY29uczogKioqIFtncHNtb25dIEVycm9yIDEKKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKworRm9yZXdhcmQgcG9ydCB0byBncHNkIDMuMTYKK1NpZ25lZC1vZmYtYnk6IE1heCBLcnVtbWVuYWNoZXIgPG1heC5rcnVtbWVuYWNoZXJAdG9yYWRleC5jb20+CistLS0KKyBncHNtb24uYyB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvZ3BzbW9uLmMgYi9ncHNtb24uYworaW5kZXggODljNDNlZTIuLjVjYzBkYWJkIDEwMDY0NAorLS0tIGEvZ3BzbW9uLmMKKysrKyBiL2dwc21vbi5jCitAQCAtMjQsNiArMjQsNyBAQAorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyAjaW5jbHVkZSA8c3lzL3NlbGVjdC5oPgorKyNpbmNsdWRlIDxzeXMvdHR5ZGVmYXVsdHMuaD4KKyAjaW5jbHVkZSA8ZmNudGwuaD4KKyAjaW5jbHVkZSA8dW5pc3RkLmg+CisgCistLSAKKzIuMTIuMAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC0zLjE3LzAwMDQtU0NvbnN0cnVjdC1kaXNhYmxlLWh0bWwtYW5kLW1hbi1kb2NzLWJ1aWxkaW5nLWJlY2F1cy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLTMuMTcvMDAwNC1TQ29uc3RydWN0LWRpc2FibGUtaHRtbC1hbmQtbWFuLWRvY3MtYnVpbGRpbmctYmVjYXVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhM2QyMDUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC0zLjE3LzAwMDQtU0NvbnN0cnVjdC1kaXNhYmxlLWh0bWwtYW5kLW1hbi1kb2NzLWJ1aWxkaW5nLWJlY2F1cy5wYXRjaApAQCAtMCwwICsxLDUxIEBACitGcm9tIDY5N2UyZTlmZjk3NDg3MjY2ZDgxN2NkZDQxYmFjYzgzZjY4MWUzZDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+CitEYXRlOiBTdW4sIDI5IEFwciAyMDEyIDAwOjA1OjU5ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggNC80XSBTQ29uc3RydWN0OiBkaXNhYmxlIGh0bWwgYW5kIG1hbiBkb2NzIGJ1aWxkaW5nIGJlY2F1c2UKKyB4bWx0by1uYXRpdmUgZnJvbSBPRSBpcyBicm9rZW4KKworSXQgd2lsbCB0cnkgdG8gbG9hZCBkdGQgYW5kIGZhaWw6Cit8IHhtbHRvIG1hbiBncHNjdGwueG1sOyBtdiBgYmFzZW5hbWUgZ3BzY3RsLjFgIGdwc2N0bC4xCit8IHhtbHRvOiAvdmFyL2xpYi9qZW5raW5zL2pvYnMvc2hyLWNvcmUtYnJhbmNoZXMvd29ya3NwYWNlL3Noci1jb3JlL3RtcC1lZ2xpYmMvd29yay9hcm12NHQtb2UtbGludXgtZ251ZWFiaS9ncHNkLTMuNC1yMi9ncHNkLTMuNC9ncHNjdGwueG1sIGRvZXMgbm90IHZhbGlkYXRlIChzdGF0dXMgMykKK3wgeG1sdG86IEZpeCBkb2N1bWVudCBzeW50YXggb3IgdXNlIC0tc2tpcC12YWxpZGF0aW9uIG9wdGlvbgorfCBJL08gZXJyb3IgOiBBdHRlbXB0IHRvIGxvYWQgbmV0d29yayBlbnRpdHkgaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQKK3wgL3Zhci9saWIvamVua2lucy9qb2JzL3Noci1jb3JlLWJyYW5jaGVzL3dvcmtzcGFjZS9zaHItY29yZS90bXAtZWdsaWJjL3dvcmsvYXJtdjR0LW9lLWxpbnV4LWdudWVhYmkvZ3BzZC0zLjQtcjIvZ3BzZC0zLjQvZ3BzY3RsLnhtbDo4OiB3YXJuaW5nOiBmYWlsZWQgdG8gbG9hZCBleHRlcm5hbCBlbnRpdHkgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkIgorfCAgICAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQiPgorfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK3wgSS9PIGVycm9yIDogQXR0ZW1wdCB0byBsb2FkIG5ldHdvcmsgZW50aXR5IGh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRkCit8IHdhcm5pbmc6IGZhaWxlZCB0byBsb2FkIGV4dGVybmFsIGVudGl0eSAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQiCit8IHZhbGlkaXR5IGVycm9yIDogQ291bGQgbm90IGxvYWQgdGhlIGV4dGVybmFsIHN1YnNldCAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQiCit8IERvY3VtZW50IC92YXIvbGliL2plbmtpbnMvam9icy9zaHItY29yZS1icmFuY2hlcy93b3Jrc3BhY2Uvc2hyLWNvcmUvdG1wLWVnbGliYy93b3JrL2FybXY0dC1vZS1saW51eC1nbnVlYWJpL2dwc2QtMy40LXIyL2dwc2QtMy40L2dwc2N0bC54bWwgZG9lcyBub3QgdmFsaWRhdGUKK3wgbXY6IGNhbm5vdCBzdGF0IGBncHNjdGwuMSc6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK3wgc2NvbnM6ICoqKiBbZ3BzY3RsLjFdIEVycm9yIDEKK3wgc2NvbnM6IGJ1aWxkaW5nIHRlcm1pbmF0ZWQgYmVjYXVzZSBvZiBlcnJvcnMuCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZGlzYWJsZSBmZWF0dXJlXQorCitTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gSmFuc2EgPE1hcnRpbi5KYW5zYUBnbWFpbC5jb20+CitTaWduZWQtb2ZmLWJ5OiBQZXRlciBBLiBCaWdvdCA8cGFiQHBhYmlnb3QuY29tPgorLS0tCisgU0NvbnN0cnVjdCB8IDQgKystLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9TQ29uc3RydWN0IGIvU0NvbnN0cnVjdAoraW5kZXggMzMxOGJiNDguLmE1YmI3NTZkIDEwMDY0NAorLS0tIGEvU0NvbnN0cnVjdAorKysrIGIvU0NvbnN0cnVjdAorQEAgLTg4OSwxMSArODg5LDExIEBAIGVsc2U6CisgCisgICAgIG1hbmJ1aWxkZXIgPSBodG1sYnVpbGRlciA9IE5vbmUKKyAgICAgaWYgZW52WydtYW5idWlsZCddOgorLSAgICAgICAgaWYgY29uZmlnLkNoZWNrWHNsdHByb2MoKToKKysgICAgICAgIGlmIEZhbHNlIGFuZCBjb25maWcuQ2hlY2tYc2x0cHJvYygpOgorICAgICAgICAgICAgIGJ1aWxkID0gInhzbHRwcm9jIC0tbm9uZXQgJXMgJFNPVVJDRSA+JFRBUkdFVCIKKyAgICAgICAgICAgICBodG1sYnVpbGRlciA9IGJ1aWxkICUgZG9jYm9va19odG1sX3VyaQorICAgICAgICAgICAgIG1hbmJ1aWxkZXIgPSBidWlsZCAlIGRvY2Jvb2tfbWFuX3VyaQorLSAgICAgICAgZWxpZiBXaGVyZUlzKCJ4bWx0byIpOgorKyAgICAgICAgZWxpZiBGYWxzZSBhbmQgV2hlcmVJcygieG1sdG8iKToKKyAgICAgICAgICAgICB4bWx0byA9ICJ4bWx0byAlcyAkU09VUkNFIHx8IG12IGBiYXNlbmFtZSAkVEFSR0VUYCAiIFwKKyAgICAgICAgICAgICAgICAgICAgICJgZGlybmFtZSAkVEFSR0VUYCIKKyAgICAgICAgICAgICBodG1sYnVpbGRlciA9IHhtbHRvICUgImh0bWwtbm9jaHVua3MiCistLSAKKzEuOC41LjUKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QvNjAtZ3BzZC5ydWxlcyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkLzYwLWdwc2QucnVsZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxMTQzYjguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QvNjAtZ3BzZC5ydWxlcworKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLSMgdWRldiBydWxlcyBmb3IgZ3BzZAotIyAkSWQkCi0jCi0jIEdQU2VzIGRvbid0IGhhdmUgdGhlaXIgb3duIFVTQiBkZXZpY2UgY2xhc3MuICBUaGV5J3JlIHNlcmlhbC1vdmVyLVVTQgotIyBkZXZpY2VzLCBzbyB3aGF0IHlvdSBzZWUgaXMgYWN0dWFsbHkgdGhlIElEIG9mIHRoZSBzZXJpYWwtb3Zlci1VU0IgY2hpcC4KLSMgRm9ydHVuYXRlbHksIGp1c3QgdHdvIG9mIHRoZXNlIGFjY291bnQgZm9yIG92ZXIgODAlIG9mIGNvbnN1bWVyLWdyYWRlCi0jIEdQUyBzZW5zb3JzLiAgVGhlIGdwc2QuaG90cGx1Zy53cmFwcGVyIHNjcmlwdCB3aWxsIHRlbGwgYSBydW5uaW5nIGdwc2QKLSMgdGhhdCBpdCBzaG91bGQgbG9vayBhdCB0aGUgZGV2aWNlIHRoYXQganVzdCB3ZW50IGFjdGl2ZSwgYmVjYXVzZSBpdAotIyBtaWdodCBiZSBhIEdQUy4KLSMKLSMgVGhlIGZvbGxvd2luZyBzZXR1cCB3b3JrcyBvbiBEZWJpYW4gLSBzb21ldGhpbmcgc2ltaWxhciB3aWxsIGFwcGx5IG9uIAotIyBvdGhlciBkaXN0cmlidXRpb25zOgotIyAKLSMgICAvZXRjL3VkZXYvZ3BzZC5ydWxlcwotIyAgIC9ldGMvdWRldi9ydWxlcy5kLzAyNV9ncHNkLnJ1bGVzIC0+IC4uL2dwc2QucnVsZXMKLSMgICAvbGliL3VkZXYvZ3BzZC5ob3RwbHVnLndyYXBwZXIKLSMgICAvbGliL3VkZXYvZ3BzZC5ob3RwbHVnCi0jIAotIyBTZXR0aW5nIHRoZSBsaW5rIGluIC9ldGMvdWRldi9ydWxlcy5kIGFjdGl2YXRlcyB0aGUgcnVsZSBhbmQgZGV0ZXJtaW5lcwotIyB3aGVuIHRvIHJ1biBpdCBvbiBib290IChzaW1pbGFyIHRvIGluaXQuZCBwcm9jZXNzaW5nKS4KLQotU1VCU1lTVEVNIT0idHR5IiwgR09UTz0iZ3BzZF9ydWxlc19lbmQiCi0KLSMgUHJvbGlmaWMgVGVjaG5vbG9neSwgSW5jLiBQTDIzMDMgU2VyaWFsIFBvcnQKLUFUVFJ7aWRWZW5kb3J9PT0iMDY3YiIsIEFUVFJ7aWRQcm9kdWN0fT09IjIzMDMiLCBTWU1MSU5LKz0iZ3BzJW4iLCBSVU4rPSIvbGliL3VkZXYvZ3BzZC5ob3RwbHVnLndyYXBwZXIiCi0jIEFURU4gSW50ZXJuYXRpb25hbCBDby4sIEx0ZCBVQy0yMzJBIFNlcmlhbCBQb3J0IFtwbDIzMDNdCi1BVFRSe2lkVmVuZG9yfT09IjA1NTciLCBBVFRSe2lkUHJvZHVjdH09PSIyMDA4IiwgU1lNTElOSys9ImdwcyVuIiwgUlVOKz0iL2xpYi91ZGV2L2dwc2QuaG90cGx1Zy53cmFwcGVyIgotIyBGVERJIDhVMjMyQU0KLUFUVFJ7aWRWZW5kb3J9PT0iMDQwMyIsIEFUVFJ7aWRQcm9kdWN0fT09IjYwMDEiLCBTWU1MSU5LKz0iZ3BzJW4iLCBSVU4rPSIvbGliL3VkZXYvZ3BzZC5ob3RwbHVnLndyYXBwZXIiCi0jIEN5cHJlc3MgTTgvQ1k3QzY0MDEzIChEZUxvcm1lIHVzZXMgdGhlc2UpCi1BVFRSe2lkVmVuZG9yfT09IjExNjMiLCBBVFRSe2lkUHJvZHVjdH09PSIwMTAwIiwgU1lNTElOSys9ImdwcyVuIiwgUlVOKz0iL2xpYi91ZGV2L2dwc2QuaG90cGx1Zy53cmFwcGVyIgotIyBQUy0zNjAgT0VNIChNaWNyb3NvZnQgR1BTIHNvbGQgd2l0aCBTdHJlZXQgYW5kIFRyaXBzIDIwMDUpCi1BVFRSe2lkVmVuZG9yfT09IjA2N2IiLCBBVFRSe2lkUHJvZHVjdH09PSJhYWEwIiwgU1lNTElOSys9ImdwcyVuIiwgUlVOKz0iL2xpYi91ZGV2L2dwc2QuaG90cGx1Zy53cmFwcGVyIgotIyBHYXJtaW4gSW50ZXJuYXRpb25hbCBHUFNtYXAsIHZhcmlvdXMgbW9kZWxzICh0ZXN0ZWQgd2l0aCBHYXJtaW4gR1BTIDE4IFVTQikKLUFUVFJ7aWRWZW5kb3J9PT0iMDkxZSIsIEFUVFJ7aWRQcm9kdWN0fT09IjAwMDMiLCBTWU1MSU5LKz0iZ3BzJW4iLCBSVU4rPSIvbGliL3VkZXYvZ3BzZC5ob3RwbHVnLndyYXBwZXIiCi0jIEN5Z25hbCBJbnRlZ3JhdGVkIFByb2R1Y3RzLCBJbmMuIENQMjEweCBDb21wb3NpdGUgRGV2aWNlIChVc2VkIGJ5IEhvbHV4IG0yNDEpCi1BVFRSe2lkVmVuZG9yfT09IjEwYzQiLCBBVFRSe2lkUHJvZHVjdH09PSJlYTYwIiwgU1lNTElOSys9ImdwcyVuIiwgUlVOKz0iL2xpYi91ZGV2L2dwc2QuaG90cGx1Zy53cmFwcGVyIgotIyB1LWJsb3ggQUcsIHUtYmxveCA1ICh0ZXN0ZWQgd2l0aCBOYXZpbG9jayBOTC00MDJVKQotQVRUUntpZFZlbmRvcn09PSIxNTQ2IiwgQVRUUntpZFByb2R1Y3R9PT0iMDFhNSIsIFNZTUxJTks9ImdwcyVuIiwgUlVOKz0iL2xpYi91ZGV2L2dwc2QuaG90cGx1Zy53cmFwcGVyIgotIyBGVERJIEZUMjMyCi1BVFRSe2lkVmVuZG9yfT09IjA0MDMiLCBBVFRSe2lkUHJvZHVjdH09PSI2MDAxIiwgU1lNTElOSz0iZ3BzJW4iLCBSVU4rPSIvbGliL3VkZXYvZ3BzZC5ob3RwbHVnLndyYXBwZXIiCi0jIHUtYmxveCA0Ci1BVFRSe2lkVmVuZG9yfT09IjE1NDYiLCBBVFRSe2lkUHJvZHVjdH09PSIwMWE0IiwgU1lNTElOSz0iZ3BzJW4iLCBSVU4rPSIvbGliL3VkZXYvZ3BzZC5ob3RwbHVnLndyYXBwZXIiCi0KLUFDVElPTj09InJlbW92ZSIsIFJVTis9Ii9saWIvdWRldi9ncHNkLmhvdHBsdWcud3JhcHBlciIKLQotTEFCRUw9Imdwc2RfcnVsZXNfZW5kIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QvZ3BzZCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkL2dwc2QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGJhNzNkYWYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QvZ3BzZAorKysgL2Rldi9udWxsCkBAIC0xLDEzNiArMCwwIEBACi0jIS9iaW4vc2gKLSMjIyBCRUdJTiBJTklUIElORk8KLSMgUHJvdmlkZXM6ICAgICAgICAgIGdwc2QKLSMgUmVxdWlyZWQtU3RhcnQ6ICAgICRyZW1vdGVfZnMgJG5ldHdvcmsKLSMgU2hvdWxkLVN0YXJ0OiAgICAgIGJsdWV0b290aCBkYnVzIHVkZXYKLSMgUmVxdWlyZWQtU3RvcDogICAgICRyZW1vdGVfZnMgJG5ldHdvcmsKLSMgRGVmYXVsdC1TdGFydDogICAgIDIgMyA0IDUKLSMgRGVmYXVsdC1TdG9wOiAgICAgIDAgMSA2Ci0jIFNob3J0LURlc2NyaXB0aW9uOiBHUFMgKEdsb2JhbCBQb3NpdGlvbmluZyBTeXN0ZW0pIGRhZW1vbiBzdGFydC9zdG9wIHNjcmlwdAotIyBEZXNjcmlwdGlvbjogICAgICAgU3RhcnQvU3RvcCBzY3JpcHQgZm9yIHRoZSBncHNkIHNlcnZpY2UgZGFlbW9uLAotIyAgICAgICAgICAgICAgICAgICAgd2hpY2ggaXMgYWJsZSB0byBtb25pdG9yIG9uZSBvciBtb3JlIEdQUyBkZXZpY2VzCi0jICAgICAgICAgICAgICAgICAgICBjb25uZWN0ZWQgdG8gYSBob3N0IGNvbXB1dGVyLCBtYWtpbmcgYWxsIGRhdGEgb24KLSMgICAgICAgICAgICAgICAgICAgIHRoZSBsb2NhdGlvbiBhbmQgbW92ZW1lbnRzIG9mIHRoZSBzZW5zb3JzIGF2YWlsYWJsZQotIyAgICAgICAgICAgICAgICAgICAgdG8gYmUgcXVlcmllZCBvbiBUQ1AgcG9ydCAyOTQ3LgotIyMjIEVORCBJTklUIElORk8KLQotIyBBdXRob3I6IEJlcm5kIFplaW1ldHogPGJ6ZWRAZGViaWFuLm9yZz4KLSMKLSMgUGxlYXNlIHJlbW92ZSB0aGUgIkF1dGhvciIgbGluZXMgYWJvdmUgYW5kIHJlcGxhY2UgdGhlbQotIyB3aXRoIHlvdXIgb3duIG5hbWUgaWYgeW91IGNvcHkgYW5kIG1vZGlmeSB0aGlzIHNjcmlwdC4KLQotIyBEbyBOT1QgInNldCAtZSIKLQotIyBQQVRIIHNob3VsZCBvbmx5IGluY2x1ZGUgL3Vzci8qIGlmIGl0IHJ1bnMgYWZ0ZXIgdGhlIG1vdW50bmZzLnNoIHNjcmlwdAotUEFUSD0vc2JpbjovdXNyL3NiaW46L2JpbjovdXNyL2JpbgotREVTQz0iR1BTIChHbG9iYWwgUG9zaXRpb25pbmcgU3lzdGVtKSBkYWVtb24iCi1OQU1FPWdwc2QKLURBRU1PTj0vdXNyL3NiaW4vJE5BTUUKLVBJREZJTEU9L3Zhci9ydW4vJE5BTUUucGlkCi1TQ1JJUFROQU1FPS9ldGMvaW5pdC5kLyROQU1FCi0KLSMgRXhpdCBpZiB0aGUgcGFja2FnZSBpcyBub3QgaW5zdGFsbGVkCi1bIC14ICIkREFFTU9OIiBdIHx8IGV4aXQgMAotCi0jIFJlYWQgY29uZmlndXJhdGlvbiwgaWYgcHJlc2VudAotWyAtciAvZXRjL2RlZmF1bHQvJE5BTUUgXSAmJiAuIC9ldGMvZGVmYXVsdC8kTkFNRQotCi1pZiBbIC16ICIkR1BTRF9TT0NLRVQiIF0gJiYgWyAteiAiJERFVklDRVMiIF07IHRoZW4KLQlHUFNEX1NPQ0tFVD0vdmFyL3J1bi9ncHNkLnNvY2sKLWZpCi0KLWlmIFsgLW4gIiRHUFNEX1NPQ0tFVCIgXTsgdGhlbgotICAgICAgICBHUFNEX09QVElPTlM9IiRHUFNEX09QVElPTlMgLUYgJEdQU0RfU09DS0VUIgotZmkKLQotIwotIyBGdW5jdGlvbiB0aGF0IHN0YXJ0cyB0aGUgZGFlbW9uL3NlcnZpY2UKLSMKLWRvX3N0YXJ0KCkKLXsKLQkjIFJldHVybgotCSMgICAwIGlmIGRhZW1vbiBoYXMgYmVlbiBzdGFydGVkCi0JIyAgIDEgaWYgZGFlbW9uIHdhcyBhbHJlYWR5IHJ1bm5pbmcKLQkjICAgMiBpZiBkYWVtb24gY291bGQgbm90IGJlIHN0YXJ0ZWQKLQlzdGFydC1zdG9wLWRhZW1vbiAtLXN0YXJ0IC0tcXVpZXQgLS1waWRmaWxlICRQSURGSUxFIC0tZXhlYyAkREFFTU9OIC0tdGVzdCBcCi0gICAgICAgIC0tICRHUFNEX09QVElPTlMgLVAgJFBJREZJTEUgJEdQU19ERVZJQ0VTID4gL2Rldi9udWxsIFwKLQkJfHwgcmV0dXJuIDEKLQlzdGFydC1zdG9wLWRhZW1vbiAtLXN0YXJ0IC0tcXVpZXQgLS1waWRmaWxlICRQSURGSUxFIC0tZXhlYyAkREFFTU9OIC0tIFwKLQkJJEdQU0RfT1BUSU9OUyAtUCAkUElERklMRSAkR1BTX0RFVklDRVMgXAotCQl8fCByZXR1cm4gMgotfQotCi0jCi0jIEZ1bmN0aW9uIHRoYXQgc3RvcHMgdGhlIGRhZW1vbi9zZXJ2aWNlCi0jCi1kb19zdG9wKCkKLXsKLQkjIFJldHVybgotCSMgICAwIGlmIGRhZW1vbiBoYXMgYmVlbiBzdG9wcGVkCi0JIyAgIDEgaWYgZGFlbW9uIHdhcyBhbHJlYWR5IHN0b3BwZWQKLQkjICAgMiBpZiBkYWVtb24gY291bGQgbm90IGJlIHN0b3BwZWQKLQkjICAgb3RoZXIgaWYgYSBmYWlsdXJlIG9jY3VycmVkCi0Jc3RhcnQtc3RvcC1kYWVtb24gLS1zdG9wIC0tcXVpZXQgLS1yZXRyeT1URVJNLzMwL0tJTEwvNSAtLXBpZGZpbGUgJFBJREZJTEUgLS1uYW1lICROQU1FCi0JUkVUVkFMPSIkPyIKLQlbICIkUkVUVkFMIiA9IDIgXSAmJiByZXR1cm4gMgotCSMgTWFueSBkYWVtb25zIGRvbid0IGRlbGV0ZSB0aGVpciBwaWRmaWxlcyB3aGVuIHRoZXkgZXhpdC4KLQlybSAtZiAkUElERklMRQotCXJldHVybiAiJFJFVFZBTCIKLX0KLQotIwotIyBGdW5jdGlvbiB0aGF0IHNlbmRzIGEgU0lHSFVQIHRvIHRoZSBkYWVtb24vc2VydmljZQotIwotZG9fcmVsb2FkKCkgewotCSMKLQkjIElmIHRoZSBkYWVtb24gY2FuIHJlbG9hZCBpdHMgY29uZmlndXJhdGlvbiB3aXRob3V0Ci0JIyByZXN0YXJ0aW5nIChmb3IgZXhhbXBsZSwgd2hlbiBpdCBpcyBzZW50IGEgU0lHSFVQKSwKLQkjIHRoZW4gaW1wbGVtZW50IHRoYXQgaGVyZS4KLQkjCi0Jc3RhcnQtc3RvcC1kYWVtb24gLS1zdG9wIC0tc2lnbmFsIDEgLS1xdWlldCAtLXBpZGZpbGUgJFBJREZJTEUgLS1uYW1lICROQU1FCi0JcmV0dXJuIDAKLX0KLQotY2FzZSAiJDEiIGluCi0gIHN0YXJ0KQotCQllY2hvICJTdGFydGluZyAkREVTQyIgIiROQU1FIgotCQlkb19zdGFydAotCQlleGl0ICQ/Ci0JOzsKLSAgc3RvcCkKLQllY2hvICJTdG9wcGluZyAkREVTQyIgIiROQU1FIgotCWRvX3N0b3AKLQlleGl0ICQ/Ci0JOzsKLSAgc3RhdHVzKQotICAgICAgIDs7Ci0gIHJlbG9hZHxmb3JjZS1yZWxvYWQpCi0JZWNobyAiUmVsb2FkaW5nICRERVNDIiAiJE5BTUUiCi0JZG9fcmVsb2FkCi0JZXhpdCAkPwotCTs7Ci0gIHJlc3RhcnQpCi0JIwotCSMgSWYgdGhlICJyZWxvYWQiIG9wdGlvbiBpcyBpbXBsZW1lbnRlZCB0aGVuIHJlbW92ZSB0aGUKLQkjICdmb3JjZS1yZWxvYWQnIGFsaWFzCi0JIwotCWVjaG8gIlJlc3RhcnRpbmcgJERFU0MiICIkTkFNRSIKLQlkb19zdG9wCi0JY2FzZSAiJD8iIGluCi0JICAwfDEpCi0JCWRvX3N0YXJ0Ci0JCWV4aXQgJD8KLQkJOzsKLQkgICopCi0JIAkjIEZhaWxlZCB0byBzdG9wCi0JCWV4aXQgMQotCQk7OwotCWVzYWMKLQk7OwotICAqKQotCWVjaG8gIlVzYWdlOiAkU0NSSVBUTkFNRSB7c3RhcnR8c3RvcHxzdGF0dXN8cmVzdGFydHxmb3JjZS1yZWxvYWR9IiA+JjIKLQlleGl0IDMKLQk7OwotZXNhYwotCi06CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC9ncHNkLWRlZmF1bHQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC9ncHNkLWRlZmF1bHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjZWZmMDMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QvZ3BzZC1kZWZhdWx0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0jIElmIHlvdSBtdXN0IHNwZWNpZnkgYSBub24tTk1FQSBkcml2ZXIsIHVuY29tbWVudCBhbmQgbW9kaWZ5IHRoZSBuZXh0IGxpbmUKLUdQU0RfU09DS0VUPSIvdmFyL3J1bi9ncHNkLnNvY2siCi1HUFNEX09QVElPTlM9IiIgCi1HUFNfREVWSUNFUz0iIgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC9ncHNkLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZC9ncHNkLnNlcnZpY2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxMzFhNTguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2QvZ3BzZC5zZXJ2aWNlCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotW1VuaXRdCi1EZXNjcmlwdGlvbj1HUFMgKEdsb2JhbCBQb3NpdGlvbmluZyBTeXN0ZW0pIERhZW1vbgotUmVxdWlyZXM9Z3BzZC5zb2NrZXQKLQotW1NlcnZpY2VdCi1FbnZpcm9ubWVudEZpbGU9L2V0Yy9kZWZhdWx0L2dwc2QKLUV4ZWNTdGFydD0vdXNyL3NiaW4vZ3BzZCAtTiAkR1BTX0RFVklDRVMKLQotW0luc3RhbGxdCi1BbHNvPWdwc2Quc29ja2V0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZF8zLjE2LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9ncHNkL2dwc2RfMy4xNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjZkNzQ4Ni4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZF8zLjE2LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAKLVNVTU1BUlkgPSAiQSBUQ1AvSVAgRGFlbW9uIHNpbXBsaWZ5aW5nIHRoZSBjb21tdW5pY2F0aW9uIHdpdGggR1BTIGRldmljZXMiCi1TRUNUSU9OID0gImNvbnNvbGUvbmV0d29yayIKLUxJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDIxN2EyM2Y0MDhlOTFjOTQzNTk0NDc3MzViYzE4MDAiCi1ERVBFTkRTID0gImRidXMgZGJ1cy1nbGliIG5jdXJzZXMgcHl0aG9uIGxpYnVzYjEgY2hycGF0aC1yZXBsYWNlbWVudC1uYXRpdmUgcHBzLXRvb2xzIgotUFJPVklERVMgPSAidmlydHVhbC9ncHNkIgotCi1FWFRSQU5BVElWRVBBVEggKz0gImNocnBhdGgtbmF0aXZlIgotCi1TUkNfVVJJID0gIiR7U0FWQU5OQUhfR05VX01JUlJPUn0vJHtCUE59LyR7QlB9LnRhci5neiBcCi0gICAgZmlsZTovLzAwMDEtU0NvbnN0cnVjdC1wcmVmaXgtaW5jbHVkZXB5LXdpdGgtc3lzcm9vdC1hbmQtZHJvcC1zeS5wYXRjaCBcCi0gICAgZmlsZTovLzAwMDQtU0NvbnN0cnVjdC1kaXNhYmxlLWh0bWwtYW5kLW1hbi1kb2NzLWJ1aWxkaW5nLWJlY2F1cy5wYXRjaCBcCi0gICAgZmlsZTovLzAwMDEtaW5jbHVkZS1zeXMtdHR5ZGVmYXVsdHMuaC5wYXRjaCBcCi0gICAgZmlsZTovL2dwc2QtZGVmYXVsdCBcCi0gICAgZmlsZTovL2dwc2QgXAotICAgIGZpbGU6Ly82MC1ncHNkLnJ1bGVzIFwKLSAgICBmaWxlOi8vZ3BzZC5zZXJ2aWNlIFwKLSIKLVNSQ19VUklbbWQ1c3VtXSA9ICI2ODY5MWI1ZGU0Yzk0ZjgyZWM0MDYyYjA0MmI1ZWI2MyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIwMzU3OWFmMTNhNGQzZmUwYzViNzlmYTQ0YjVmNzVjOWYzY2FjNjc0OTM1N2YxZDk5Y2U1ZDM4YzA5YmMyMDI5IgotCi1pbmhlcml0IHNjb25zIHVwZGF0ZS1yYy5kIHB5dGhvbi1kaXIgcHl0aG9ubmF0aXZlIHN5c3RlbWQgYmx1ZXRvb3RoIHVwZGF0ZS1hbHRlcm5hdGl2ZXMKLQotSU5JVFNDUklQVF9QQUNLQUdFUyA9ICJncHNkLWNvbmYiCi1JTklUU0NSSVBUX05BTUUgPSAiZ3BzZCIKLUlOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIDM1IgotCi1TWVNURU1EX09FU0NPTlMgPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJ3RydWUnLCAnZmFsc2UnLGQpfSIKLQotZXhwb3J0IFNUQUdJTkdfSU5DRElSCi1leHBvcnQgU1RBR0lOR19MSUJESVIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnYmx1ZXRvb3RoJywgJ2JsdWV6JywgJycsIGQpfSIKLVBBQ0tBR0VDT05GSUdbYmx1ZXpdID0gImJsdWV6PSd0cnVlJyxibHVlej0nZmFsc2UnLCR7QkxVRVp9IgotUEFDS0FHRUNPTkZJR1txdF0gPSAicXQ9J3llcycscXQ9J25vJyxxdDQteDExLWZyZWUiCi1FWFRSQV9PRVNDT05TID0gIiBcCi0gICAgc3lzcm9vdD0ke1NUQUdJTkdfRElSX1RBUkdFVH0gXAotICAgIGxpYlFncHNtbT0nZmFsc2UnIFwKLSAgICBkZWJ1Zz0ndHJ1ZScgXAotICAgIHN0cmlwPSdmYWxzZScgXAotICAgIGNocnBhdGg9J3llcycgXAotICAgIHN5c3RlbWQ9JyR7U1lTVEVNRF9PRVNDT05TfScgXAotICAgIGxpYmRpcj0nJHtsaWJkaXJ9JyBcCi0gICAgJHtQQUNLQUdFQ09ORklHX0NPTkZBUkdTfSBcCi0iCi0jIHRoaXMgY2Fubm90IGJlIHVzZWQsIGJlY2F1c2UgdGhlbiBjaHJwYXRoIGlzIG5vdCBmb3VuZCBhbmQgb25seSBzdGF0aWMgbGliIGlzIGJ1aWx0Ci0jIHRhcmdldD0ke0hPU1RfU1lTfQotCi1kb19jb21waWxlX3ByZXBlbmQoKSB7Ci0gICAgZXhwb3J0IFBLR19DT05GSUdfUEFUSD0iJHtQS0dfQ09ORklHX1BBVEh9IgotICAgIGV4cG9ydCBQS0dfQ09ORklHPSJQS0dfQ09ORklHX1NZU1JPT1RfRElSPVwiJHtQS0dfQ09ORklHX1NZU1JPT1RfRElSfVwiIHBrZy1jb25maWciCi0gICAgZXhwb3J0IFNUQUdJTkdfUFJFRklYPSIke1NUQUdJTkdfRElSX0hPU1R9LyR7cHJlZml4fSIKLSAgICBleHBvcnQgTElOS0ZMQUdTPSIke0xERkxBR1N9IgotfQotCi1kb19pbnN0YWxsKCkgewotICAgIGV4cG9ydCBQS0dfQ09ORklHX1BBVEg9IiR7UEtHX0NPTkZJR19QQVRIfSIKLSAgICBleHBvcnQgUEtHX0NPTkZJRz0iUEtHX0NPTkZJR19TWVNST09UX0RJUj1cIiR7UEtHX0NPTkZJR19TWVNST09UX0RJUn1cIiBwa2ctY29uZmlnIgotICAgIGV4cG9ydCBTVEFHSU5HX1BSRUZJWD0iJHtTVEFHSU5HX0RJUl9IT1NUfS8ke3ByZWZpeH0iCi0gICAgZXhwb3J0IExJTktGTEFHUz0iJHtMREZMQUdTfSIKLQotICAgIGV4cG9ydCBERVNURElSPSIke0R9IgotICAgICMgcHJlZml4IGlzIHVzZWQgZm9yIFJQQVRIIGFuZCBERVNURElSL3ByZWZpeCBmb3IgaW5zdGFsYXRpb24KLSAgICAke1NUQUdJTkdfQklORElSX05BVElWRX0vc2NvbnMgcHJlZml4PSR7cHJlZml4fSBpbnN0YWxsICR7RVhUUkFfT0VTQ09OU318fCBcCi0gICAgICBiYmZhdGFsICJzY29ucyBpbnN0YWxsIGV4ZWN1dGlvbiBmYWlsZWQuIgotfQotCi1kb19pbnN0YWxsX2FwcGVuZCgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQKLSAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS9ncHNkICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQvCi0gICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vZGVmYXVsdAotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2dwc2QtZGVmYXVsdCAke0R9LyR7c3lzY29uZmRpcn0vZGVmYXVsdC9ncHNkLmRlZmF1bHQKLQotICAgICNzdXBwb3J0IGZvciB1ZGV2Ci0gICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vdWRldi9ydWxlcy5kCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vNjAtZ3BzZC5ydWxlcyAke0R9LyR7c3lzY29uZmRpcn0vdWRldi9ydWxlcy5kCi0gICAgaW5zdGFsbCAtZCAke0R9JHtiYXNlX2xpYmRpcn0vdWRldi8KLSAgICBpbnN0YWxsIC1tIDA3NTUgJHtTfS9ncHNkLmhvdHBsdWcgJHtEfSR7YmFzZV9saWJkaXJ9L3VkZXYvCi0KLSAgICAjc3VwcG9ydCBmb3IgcHl0aG9uCi0gICAgaW5zdGFsbCAtZCAke0R9LyR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L2dwcwotICAgIGluc3RhbGwgLW0gNzU1ICR7U30vZ3BzLyoucHkgJHtEfS8ke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9ncHMKLQotICAgICNzdXBwb3J0IGZvciBzeXN0ZW1kCi0gICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8KLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS8ke0JQTn0uc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8ke0JQTn0uc2VydmljZQotICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L3N5c3RlbWQvJHtCUE59LnNvY2tldCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8ke0JQTn0uc29ja2V0Ci19Ci0KLVBBQ0tBR0VTID0rICJsaWJncHMgbGliZ3BzZCBweXRob24tcHlncHMtZGJnIHB5dGhvbi1weWdwcyBncHNkLXVkZXYgZ3BzZC1jb25mIGdwc2QtZ3BzY3RsIGdwcy11dGlscyIKLQotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vcGtnY29uZmRpci9saWJncHNkLnBjICR7bGliZGlyfS9wa2djb25mZGlyL2xpYmdwcy5wYyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9saWJRZ3BzbW0ucHJsIgotCi1GSUxFU19weXRob24tcHlncHMtZGJnICs9ICIgJHtsaWJkaXJ9L3B5dGhvbiovc2l0ZS1wYWNrYWdlcy9ncHMvLmRlYnVnIgotCi1SREVQRU5EU18ke1BOfSA9ICJncHNkLWdwc2N0bCIKLVJSRUNPTU1FTkRTXyR7UE59ID0gImdwc2QtY29uZiBncHNkLXVkZXYgZ3BzZC1tYWNoaW5lLWNvbmYiCi0KLVNVTU1BUllfZ3BzZC11ZGV2ID0gInVkZXYgcmVsZXZhbnQgZmlsZXMgdG8gdXNlIGdwc2QgaG90cGx1Z2dpbmciCi1GSUxFU19ncHNkLXVkZXYgPSAiJHtiYXNlX2xpYmRpcn0vdWRldiAke3N5c2NvbmZkaXJ9L3VkZXYvKiIKLVJERVBFTkRTX2dwc2QtdWRldiArPSAidWRldiBncHNkLWNvbmYiCi0KLVNVTU1BUllfbGliZ3BzZCA9ICJDIHNlcnZpY2UgbGlicmFyeSB1c2VkIGZvciBjb21tdW5pY2F0aW5nIHdpdGggZ3BzZCIKLUZJTEVTX2xpYmdwc2QgPSAiJHtsaWJkaXJ9L2xpYmdwc2Quc28uKiIKLQotU1VNTUFSWV9saWJncHMgPSAiQyBzZXJ2aWNlIGxpYnJhcnkgdXNlZCBmb3IgY29tbXVuaWNhdGluZyB3aXRoIGdwc2QiCi1GSUxFU19saWJncHMgPSAiJHtsaWJkaXJ9L2xpYmdwcy5zby4qIgotCi1TVU1NQVJZX2dwc2QtY29uZiA9ICJncHNkIGNvbmZpZ3VyYXRpb24gZmlsZXMgYW5kIGluaXQgc2NyaXB0cyIKLUZJTEVTX2dwc2QtY29uZiA9ICIke3N5c2NvbmZkaXJ9IgotQ09ORkZJTEVTX2dwc2QtY29uZiA9ICIke3N5c2NvbmZkaXJ9L2RlZmF1bHQvZ3BzZC5kZWZhdWx0IgotCi1TVU1NQVJZX2dwc2QtZ3BzY3RsID0gIlRvb2wgZm9yIHR3ZWFraW5nIEdQUyBtb2RlcyIKLUZJTEVTX2dwc2QtZ3BzY3RsID0gIiR7YmluZGlyfS9ncHNjdGwiCi0KLVNVTU1BUllfZ3BzLXV0aWxzID0gIlV0aWxzIHVzZWQgZm9yIHNpbXVsYXRpbmcsIG1vbml0b3JpbmcsLi4uIGEgR1BTIgotRklMRVNfZ3BzLXV0aWxzID0gIiR7YmluZGlyfS8qIgotUkRFUEVORFNfZ3BzLXV0aWxzID0gInB5dGhvbi1weWdwcyIKLQotU1VNTUFSWV9weXRob24tcHlncHMgPSAiUHl0aG9uIGJpbmRpbmdzIHRvIGdwc2QiCi1GSUxFU19weXRob24tcHlncHMgPSAiJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vKiIKLVJERVBFTkRTX3B5dGhvbi1weWdwcyA9ICIgXAotICAgIHB5dGhvbi1jb3JlIFwKLSAgICBweXRob24taW8gXAotICAgIHB5dGhvbi10aHJlYWRpbmcgXAotICAgIHB5dGhvbi10ZXJtaW5hbCBcCi0gICAgcHl0aG9uLWN1cnNlcyBcCi0gICAgZ3BzZCBcCi0gICAgcHl0aG9uLWpzb24iCi0KLVJQUk9WSURFU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKLVJSRVBMQUNFU18ke1BOfSArPSAiJHtQTn0tc3lzdGVtZCIKLVJDT05GTElDVFNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiJHtQTn0uc29ja2V0IgotCi0KLUFMVEVSTkFUSVZFXyR7UE59ID0gImdwc2QtZGVmYXVsdHMiCi1BTFRFUk5BVElWRV9MSU5LX05BTUVbZ3BzZC1kZWZhdWx0c10gPSAiJHtzeXNjb25mZGlyfS9kZWZhdWx0L2dwc2QiCi1BTFRFUk5BVElWRV9UQVJHRVRbZ3BzZC1kZWZhdWx0c10gPSAiJHtzeXNjb25mZGlyfS9kZWZhdWx0L2dwc2QuZGVmYXVsdCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vZ3BzZC9ncHNkXzMuMTcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZF8zLjE3LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1MjZkYjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL2dwc2QvZ3BzZF8zLjE3LmJiCkBAIC0wLDAgKzEsMTM3IEBACitTVU1NQVJZID0gIkEgVENQL0lQIERhZW1vbiBzaW1wbGlmeWluZyB0aGUgY29tbXVuaWNhdGlvbiB3aXRoIEdQUyBkZXZpY2VzIgorU0VDVElPTiA9ICJjb25zb2xlL25ldHdvcmsiCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQyMTdhMjNmNDA4ZTkxYzk0MzU5NDQ3NzM1YmMxODAwIgorREVQRU5EUyA9ICJkYnVzIGRidXMtZ2xpYiBuY3Vyc2VzIHB5dGhvbiBsaWJ1c2IxIGNocnBhdGgtcmVwbGFjZW1lbnQtbmF0aXZlIHBwcy10b29scyIKK1BST1ZJREVTID0gInZpcnR1YWwvZ3BzZCIKKworRVhUUkFOQVRJVkVQQVRIICs9ICJjaHJwYXRoLW5hdGl2ZSIKKworU1JDX1VSSSA9ICIke1NBVkFOTkFIX0dOVV9NSVJST1J9LyR7QlBOfS8ke0JQfS50YXIuZ3ogXAorICAgIGZpbGU6Ly8wMDAxLVNDb25zdHJ1Y3QtcHJlZml4LWluY2x1ZGVweS13aXRoLXN5c3Jvb3QtYW5kLWRyb3Atc3kucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDA0LVNDb25zdHJ1Y3QtZGlzYWJsZS1odG1sLWFuZC1tYW4tZG9jcy1idWlsZGluZy1iZWNhdXMucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAxLWluY2x1ZGUtc3lzLXR0eWRlZmF1bHRzLmgucGF0Y2ggXAorIgorU1JDX1VSSVttZDVzdW1dID0gImUwY2ZhZGNmNGE2NWRmYmRkMmFmYjExYzU4ZjRlNGExIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjY4ZTBkYmVjZmI1ODMxOTk3ZjhiM2Q2YmE0OGFlZDgxMmViNDY1ZDhjMDA4OTQyMGFiNjhmOWNlNGQ4NWU3N2EiCisKK2luaGVyaXQgc2NvbnMgdXBkYXRlLXJjLmQgcHl0aG9uLWRpciBweXRob25uYXRpdmUgc3lzdGVtZCBibHVldG9vdGggdXBkYXRlLWFsdGVybmF0aXZlcworCitJTklUU0NSSVBUX1BBQ0tBR0VTID0gImdwc2QtY29uZiIKK0lOSVRTQ1JJUFRfTkFNRSA9ICJncHNkIgorSU5JVFNDUklQVF9QQVJBTVMgPSAiZGVmYXVsdHMgMzUiCisKK1NZU1RFTURfT0VTQ09OUyA9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAndHJ1ZScsICdmYWxzZScsZCl9IgorCitleHBvcnQgU1RBR0lOR19JTkNESVIKK2V4cG9ydCBTVEFHSU5HX0xJQkRJUgorCitQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdibHVldG9vdGgnLCAnYmx1ZXonLCAnJywgZCl9IgorUEFDS0FHRUNPTkZJR1tibHVlel0gPSAiYmx1ZXo9J3RydWUnLGJsdWV6PSdmYWxzZScsJHtCTFVFWn0iCitQQUNLQUdFQ09ORklHW3F0XSA9ICJxdD0neWVzJyxxdD0nbm8nLHF0NC14MTEtZnJlZSIKK0VYVFJBX09FU0NPTlMgPSAiIFwKKyAgICBzeXNyb290PSR7U1RBR0lOR19ESVJfVEFSR0VUfSBcCisgICAgbGliUWdwc21tPSdmYWxzZScgXAorICAgIGRlYnVnPSd0cnVlJyBcCisgICAgc3RyaXA9J2ZhbHNlJyBcCisgICAgY2hycGF0aD0neWVzJyBcCisgICAgc3lzdGVtZD0nJHtTWVNURU1EX09FU0NPTlN9JyBcCisgICAgbGliZGlyPScke2xpYmRpcn0nIFwKKyAgICAke1BBQ0tBR0VDT05GSUdfQ09ORkFSR1N9IFwKKyIKKyMgdGhpcyBjYW5ub3QgYmUgdXNlZCwgYmVjYXVzZSB0aGVuIGNocnBhdGggaXMgbm90IGZvdW5kIGFuZCBvbmx5IHN0YXRpYyBsaWIgaXMgYnVpbHQKKyMgdGFyZ2V0PSR7SE9TVF9TWVN9CisKK2RvX2NvbXBpbGVfcHJlcGVuZCgpIHsKKyAgICBleHBvcnQgUEtHX0NPTkZJR19QQVRIPSIke1BLR19DT05GSUdfUEFUSH0iCisgICAgZXhwb3J0IFBLR19DT05GSUc9IlBLR19DT05GSUdfU1lTUk9PVF9ESVI9XCIke1BLR19DT05GSUdfU1lTUk9PVF9ESVJ9XCIgcGtnLWNvbmZpZyIKKyAgICBleHBvcnQgU1RBR0lOR19QUkVGSVg9IiR7U1RBR0lOR19ESVJfSE9TVH0vJHtwcmVmaXh9IgorICAgIGV4cG9ydCBMSU5LRkxBR1M9IiR7TERGTEFHU30iCit9CisKK2RvX2luc3RhbGwoKSB7CisgICAgZXhwb3J0IFBLR19DT05GSUdfUEFUSD0iJHtQS0dfQ09ORklHX1BBVEh9IgorICAgIGV4cG9ydCBQS0dfQ09ORklHPSJQS0dfQ09ORklHX1NZU1JPT1RfRElSPVwiJHtQS0dfQ09ORklHX1NZU1JPT1RfRElSfVwiIHBrZy1jb25maWciCisgICAgZXhwb3J0IFNUQUdJTkdfUFJFRklYPSIke1NUQUdJTkdfRElSX0hPU1R9LyR7cHJlZml4fSIKKyAgICBleHBvcnQgTElOS0ZMQUdTPSIke0xERkxBR1N9IgorCisgICAgZXhwb3J0IERFU1RESVI9IiR7RH0iCisgICAgIyBwcmVmaXggaXMgdXNlZCBmb3IgUlBBVEggYW5kIERFU1RESVIvcHJlZml4IGZvciBpbnN0YWxhdGlvbgorICAgICR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9zY29ucyBwcmVmaXg9JHtwcmVmaXh9IGluc3RhbGwgJHtFWFRSQV9PRVNDT05TfXx8IFwKKyAgICAgIGJiZmF0YWwgInNjb25zIGluc3RhbGwgZXhlY3V0aW9uIGZhaWxlZC4iCit9CisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZAorICAgIGluc3RhbGwgLW0gMDc1NSAke1N9L3BhY2thZ2luZy9kZWIvZXRjX2luaXQuZF9ncHNkICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQvZ3BzZAorICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2RlZmF1bHQKKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS9wYWNrYWdpbmcvZGViL2V0Y19kZWZhdWx0X2dwc2QgJHtEfS8ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvZ3BzZC5kZWZhdWx0CisKKyAgICAjc3VwcG9ydCBmb3IgdWRldgorICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L3VkZXYvcnVsZXMuZAorICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L2dwc2QucnVsZXMgJHtEfS8ke3N5c2NvbmZkaXJ9L3VkZXYvcnVsZXMuZC8KKyAgICBpbnN0YWxsIC1kICR7RH0ke2Jhc2VfbGliZGlyfS91ZGV2LworICAgIGluc3RhbGwgLW0gMDc1NSAke1N9L2dwc2QuaG90cGx1ZyAke0R9JHtiYXNlX2xpYmRpcn0vdWRldi8KKworICAgICNzdXBwb3J0IGZvciBweXRob24KKyAgICBpbnN0YWxsIC1kICR7RH0vJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vZ3BzCisgICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9ncHMvKi5weSAke0R9LyR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L2dwcworCisgICAgI3N1cHBvcnQgZm9yIHN5c3RlbWQKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtLworICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L3N5c3RlbWQvJHtCUE59LnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vJHtCUE59LnNlcnZpY2UKKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS9zeXN0ZW1kLyR7QlBOfWN0bEAuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS8ke0JQTn1jdGxALnNlcnZpY2UKKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS9zeXN0ZW1kLyR7QlBOfS5zb2NrZXQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vJHtCUE59LnNvY2tldAorfQorCitQQUNLQUdFUyA9KyAibGliZ3BzIGxpYmdwc2QgcHl0aG9uLXB5Z3BzLWRiZyBweXRob24tcHlncHMgZ3BzZC11ZGV2IGdwc2QtY29uZiBncHNkLWdwc2N0bCBncHMtdXRpbHMiCisKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L3BrZ2NvbmZkaXIvbGliZ3BzZC5wYyAke2xpYmRpcn0vcGtnY29uZmRpci9saWJncHMucGMgXAorICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vbGliUWdwc21tLnBybCIKKworRklMRVNfcHl0aG9uLXB5Z3BzLWRiZyArPSAiICR7bGliZGlyfS9weXRob24qL3NpdGUtcGFja2FnZXMvZ3BzLy5kZWJ1ZyIKKworUkRFUEVORFNfJHtQTn0gPSAiZ3BzZC1ncHNjdGwiCitSUkVDT01NRU5EU18ke1BOfSA9ICJncHNkLWNvbmYgZ3BzZC11ZGV2IGdwc2QtbWFjaGluZS1jb25mIgorCitTVU1NQVJZX2dwc2QtdWRldiA9ICJ1ZGV2IHJlbGV2YW50IGZpbGVzIHRvIHVzZSBncHNkIGhvdHBsdWdnaW5nIgorRklMRVNfZ3BzZC11ZGV2ID0gIiR7YmFzZV9saWJkaXJ9L3VkZXYgJHtzeXNjb25mZGlyfS91ZGV2LyoiCitSREVQRU5EU19ncHNkLXVkZXYgKz0gInVkZXYgZ3BzZC1jb25mIgorCitTVU1NQVJZX2xpYmdwc2QgPSAiQyBzZXJ2aWNlIGxpYnJhcnkgdXNlZCBmb3IgY29tbXVuaWNhdGluZyB3aXRoIGdwc2QiCitGSUxFU19saWJncHNkID0gIiR7bGliZGlyfS9saWJncHNkLnNvLioiCisKK1NVTU1BUllfbGliZ3BzID0gIkMgc2VydmljZSBsaWJyYXJ5IHVzZWQgZm9yIGNvbW11bmljYXRpbmcgd2l0aCBncHNkIgorRklMRVNfbGliZ3BzID0gIiR7bGliZGlyfS9saWJncHMuc28uKiIKKworU1VNTUFSWV9ncHNkLWNvbmYgPSAiZ3BzZCBjb25maWd1cmF0aW9uIGZpbGVzIGFuZCBpbml0IHNjcmlwdHMiCitGSUxFU19ncHNkLWNvbmYgPSAiJHtzeXNjb25mZGlyfSIKK0NPTkZGSUxFU19ncHNkLWNvbmYgPSAiJHtzeXNjb25mZGlyfS9kZWZhdWx0L2dwc2QuZGVmYXVsdCIKKworU1VNTUFSWV9ncHNkLWdwc2N0bCA9ICJUb29sIGZvciB0d2Vha2luZyBHUFMgbW9kZXMiCitGSUxFU19ncHNkLWdwc2N0bCA9ICIke2JpbmRpcn0vZ3BzY3RsIgorCitTVU1NQVJZX2dwcy11dGlscyA9ICJVdGlscyB1c2VkIGZvciBzaW11bGF0aW5nLCBtb25pdG9yaW5nLC4uLiBhIEdQUyIKK0ZJTEVTX2dwcy11dGlscyA9ICIke2JpbmRpcn0vKiIKK1JERVBFTkRTX2dwcy11dGlscyA9ICJweXRob24tcHlncHMiCisKK1NVTU1BUllfcHl0aG9uLXB5Z3BzID0gIlB5dGhvbiBiaW5kaW5ncyB0byBncHNkIgorRklMRVNfcHl0aG9uLXB5Z3BzID0gIiR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9LyoiCitSREVQRU5EU19weXRob24tcHlncHMgPSAiIFwKKyAgICBweXRob24tY29yZSBcCisgICAgcHl0aG9uLWlvIFwKKyAgICBweXRob24tdGhyZWFkaW5nIFwKKyAgICBweXRob24tdGVybWluYWwgXAorICAgIHB5dGhvbi1jdXJzZXMgXAorICAgIGdwc2QgXAorICAgIHB5dGhvbi1qc29uIgorCitSUFJPVklERVNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCitSUkVQTEFDRVNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCitSQ09ORkxJQ1RTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gIiR7QlBOfS5zb2NrZXQgJHtCUE59Y3RsQC5zZXJ2aWNlIgorCisKK0FMVEVSTkFUSVZFXyR7UE59ID0gImdwc2QtZGVmYXVsdHMiCitBTFRFUk5BVElWRV9MSU5LX05BTUVbZ3BzZC1kZWZhdWx0c10gPSAiJHtzeXNjb25mZGlyfS9kZWZhdWx0L2dwc2QiCitBTFRFUk5BVElWRV9UQVJHRVRbZ3BzZC1kZWZhdWx0c10gPSAiJHtzeXNjb25mZGlyfS9kZWZhdWx0L2dwc2QuZGVmYXVsdCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vb3JyZXJ5L29ycmVyeV8yLjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1uYXZpZ2F0aW9uL29ycmVyeS9vcnJlcnlfMi43LmJiCmluZGV4IDFhMDBiMDguLjAxMGY2NWYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLW5hdmlnYXRpb24vb3JyZXJ5L29ycmVyeV8yLjcuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtbmF2aWdhdGlvbi9vcnJlcnkvb3JyZXJ5XzIuNy5iYgpAQCAtNSw3ICs1LDkgQEAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL29ycmVyeS5jO2VuZGxpbmU9MjU7bWQ1PWQ3OTJiZGYyYjU5MTk3MmRhMTc1YWVjYzM4ZDg4Y2ZlIgogREVQRU5EUyA9ICJndGsrIgogCi1pbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAgcGtnY29uZmlnCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBhdXRvdG9vbHMtYnJva2Vuc2VwIHBrZ2NvbmZpZworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiBTUkNfVVJJID0gImh0dHA6Ly9wcm9qZWN0cy5vcGVubW9rby5vcmcvZnJzL2Rvd25sb2FkLnBocC85MjMvb3JyZXJ5XzIuN19jbGVhbi50YXIuZ3ogXAogICAgICAgICAgICBmaWxlOi8vb3JyZXJ5LnBuZyBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bhc3N3ZHFjL3Bhc3N3ZHFjL21ha2VmaWxlLWFkZC1sZGZsYWdzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2VjdXJpdHkvcGFzc3dkcWMvcGFzc3dkcWMvbWFrZWZpbGUtYWRkLWxkZmxhZ3MucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcGFzc3dkcWMvcGFzc3dkcWMvbWFrZWZpbGUtYWRkLWxkZmxhZ3MucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXNlY3VyaXR5L3Bhc3N3ZHFjL3Bhc3N3ZHFjL21ha2VmaWxlLWFkZC1sZGZsYWdzLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zZWN1cml0eS9wYXNzd2RxYy9wYXNzd2RxY18xLjMuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXNlY3VyaXR5L3Bhc3N3ZHFjL3Bhc3N3ZHFjXzEuMy4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmYzBiMzUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zZWN1cml0eS9wYXNzd2RxYy9wYXNzd2RxY18xLjMuMS5iYgpAQCAtMCwwICsxLDY2IEBACitTVU1NQVJZID0gIkEgcGFzc3dvcmQvcGFzc3BocmFzZSBzdHJlbmd0aCBjaGVja2luZyBhbmQgZW5mb3JjZW1lbnQgdG9vbHNldCIKK0RFU0NSSVBUSU9OID0gIlwKK3Bhc3N3ZHFjIGlzIGEgcGFzc3dvcmQvcGFzc3BocmFzZSBzdHJlbmd0aCBjaGVja2luZyBhbmQgcG9saWN5IGVuZm9yY2VtZW50IFwKK3Rvb2xzZXQsIGluY2x1ZGluZyBhbiBvcHRpb25hbCBQQU0gbW9kdWxlIChwYW1fcGFzc3dkcWMpLCBjb21tYW5kLWxpbmUgXAorcHJvZ3JhbXMgKHB3cWNoZWNrIGFuZCBwd3FnZW4pLCBhbmQgYSBsaWJyYXJ5IChsaWJwYXNzd2RxYykuIFwKK3BhbV9wYXNzd2RxYyBpcyBub3JtYWxseSBpbnZva2VkIG9uIHBhc3N3b3JkIGNoYW5nZXMgYnkgcHJvZ3JhbXMgc3VjaCBhcyBcCitwYXNzd2QoMSkuICBJdCBpcyBjYXBhYmxlIG9mIGNoZWNraW5nIHBhc3N3b3JkIG9yIHBhc3NwaHJhc2Ugc3RyZW5ndGgsIFwKK2VuZm9yY2luZyBhIHBvbGljeSwgYW5kIG9mZmVyaW5nIHJhbmRvbWx5LWdlbmVyYXRlZCBwYXNzcGhyYXNlcywgd2l0aCBcCithbGwgb2YgdGhlc2UgZmVhdHVyZXMgYmVpbmcgb3B0aW9uYWwgYW5kIGVhc2lseSAocmUtKWNvbmZpZ3VyYWJsZS4gXAorXAorcHdxY2hlY2sgYW5kIHB3cWdlbiBhcmUgc3RhbmRhbG9uZSBwYXNzd29yZC9wYXNzcGhyYXNlIHN0cmVuZ3RoIGNoZWNraW5nIFwKK2FuZCByYW5kb20gcGFzc3BocmFzZSBnZW5lcmF0b3IgcHJvZ3JhbXMsIHJlc3BlY3RpdmVseSwgd2hpY2ggYXJlIHVzYWJsZSBcCitmcm9tIHNjcmlwdHMuIFwKK1wKK2xpYnBhc3N3ZHFjIGlzIHRoZSB1bmRlcmx5aW5nIGxpYnJhcnksIHdoaWNoIG1heSBhbHNvIGJlIHVzZWQgZnJvbSBcCit0aGlyZC1wYXJ0eSBwcm9ncmFtcy4gXAorIgorCitIT01FUEFHRSA9ICJodHRwOi8vd3d3Lm9wZW53YWxsLmNvbS9wYXNzd2RxYyIKK1NFQ1RJT04gPSAiU3lzdGVtIEVudmlyb25tZW50L0Jhc2UiCisKK0RFUEVORFMgKz0gImxpYnBhbSIKKworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJwYW0iCisKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MWI0YWY2ZjNkNGVlMDc5YTM4MTA3MzY2ZTkzYjMzNGQiCisKK1NSQ19VUkkgPSAiaHR0cDovL3d3dy5vcGVud2FsbC5jb20vJHtCUE59LyR7QlB9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9tYWtlZmlsZS1hZGQtbGRmbGFncy5wYXRjaCBcCisgICAgICAgICAgIgorU1JDX1VSSVttZDVzdW1dID0gIjM4NzhiNTdiY2QzZmRiY2YzZDRiMzYyZGJjNjIyOGI5IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImQxZmVkZWFmNzU5ZThhMGYzMmQyOGI1ODExZWYxMWI1YTUzNjUxNTQ4NDkxOTBmNGI3ZmFiNjcwYTcwZmZiMTQiCisKKyMgZXhwbGljaXRseSBkZWZpbmUgTElOVVhfUEFNIGluIGNhc2UgRElTVFJPX0ZFQVRVUkVTIG5vIHBhbQorIyB0aGlzIHBhY2thZ2UncyBwYW1fcGFzc3dkcWMuc28gbmVlZHMgcGFtCitDRkxBR1NfYXBwZW5kICs9ICItV2FsbCAtZlBJQyAtREhBVkVfU0hBRE9XIC1ETElOVVhfUEFNIgorCisjIC1lIGlzIG5vIGxvbmdlciBkZWZhdWx0IHNldHRpbmcgaW4gYml0YmFrZS5jb25mCitFWFRSQV9PRU1BS0UgPSAiLWUiCisKK2RvX2NvbXBpbGUoKSB7CisgICAgIyBtYWtlIHN1cmUgc3ViIG1ha2UgdXNlIGVudmlyb25tZW50IHRvIG92ZXJyaWRlIHZhcmlhYmxlcyBpbiBNYWtlZmlsZQorICAgICMgTGludXgpICAgICQoTUFLRSksIHRoZXJlIGlzIGEgdGFiIGJldHdlZW4KKyAgICBzZWQgLWkgLWUgJ3MvTGludXgpCSQoTUFLRSkgQ0ZMQUdTX2xpYi9MaW51eCkJJChNQUtFKSAtZSBDRkxBR1NfbGliLycgJHtTfS9NYWtlZmlsZQorCisgICAgIyBMRF9saWIgYW5kIExEIG11c3QgYmUgQ0MgYmVjYXVzZSBvZiBNYWtlZmlsZQorICAgIG9lX3J1bm1ha2UgTEQ9IiR7Q0N9IgorfQorCitkb19pbnN0YWxsKCkgeworICAgIG9lX3J1bm1ha2UgaW5zdGFsbCBERVNURElSPSR7RH0gU0hBUkVEX0xJQkRJUj0ke2Jhc2VfbGliZGlyfSBcCisgICAgICAgICAgIERFVkVMX0xJQkRJUj0ke2xpYmRpcn0gU0VDVVJFRElSPSR7YmFzZV9saWJkaXJ9L3NlY3VyaXR5IFwKKyAgICAgICAgICAgSU5TVEFMTD0iaW5zdGFsbCAtcCIKK30KKworUFJPVklERVMgKz0gInBhbS0ke0JQTn0iCitQQUNLQUdFUyA9KyAibGliJHtCUE59IHBhbS0ke0JQTn0iCisKK0ZJTEVTX2xpYiR7QlBOfSA9ICIke2Jhc2VfbGliZGlyfS9saWJwYXNzd2RxYy5zby4wIgorRklMRVNfcGFtLSR7QlBOfSA9ICIke2Jhc2VfbGliZGlyfS9zZWN1cml0eS9wYW1fcGFzc3dkcWMuc28iCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7YmFzZV9saWJkaXJ9L3NlY3VyaXR5Ly5kZWJ1ZyIKKworUkRFUEVORFNfJHtQTn0gPSAibGliJHtCUE59IHBhbS0ke0JQTn0iCitSREVQRU5EU19wYW0tJHtCUE59ID0gImxpYiR7QlBOfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXNlY3VyaXR5L3RvbW95by10b29scy90b21veW8tdG9vbHNfMi41LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zZWN1cml0eS90b21veW8tdG9vbHMvdG9tb3lvLXRvb2xzXzIuNS4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNjI3NzUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zZWN1cml0eS90b21veW8tdG9vbHMvdG9tb3lvLXRvb2xzXzIuNS4wLmJiCkBAIC0wLDAgKzEsMzAgQEAKK1NVTU1BUlkgPSAiVE9NT1lPIExpbnV4IHRvb2xzIgorREVTQ1JJUFRJT04gPSAiVE9NT1lPIExpbnV4IGlzIGEgTWFuZGF0b3J5IEFjY2VzcyBDb250cm9sIChNQUMpIGltcGxlbWVudGF0aW9uIFwKK2ZvciBMaW51eCB0aGF0IGNhbiBiZSB1c2VkIHRvIGluY3JlYXNlIHRoZSBzZWN1cml0eSBvZiBhIHN5c3RlbSwgd2hpbGUgYWxzbyBcCitiZWluZyB1c2VmdWwgcHVyZWx5IGFzIGEgc3lzdGVtIGFuYWx5c2lzIHRvb2wuIgorSE9NRVBBR0UgPSAiaHR0cDovL3RvbW95by5zb3VyY2Vmb3JnZS5qcC8iCitTRUNUSU9OID0gIlN5c3RlbSBFbnZpcm9ubWVudC9LZXJuZWwiCisKK1NSQ19VUkkgPSAiaHR0cDovL2phaXN0LmRsLnNvdXJjZWZvcmdlLmpwL3RvbW95by81MzM1Ny8ke0JQfS0yMDE3MDEwMi50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiODg4ODA0ZDU4NzQyNDUyZmUyMTNhNjhmN2VhZGQwYWQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDBmZWRmYWM1ZTUxNDMyMTI1MGJiZTY5ZWFjY2M3MzJjOGE4MTU4NTk2Zjc3YTc4NWMyZTNhZTlmOTk2ODI4MyIKKworUyA9ICIke1dPUktESVJ9LyR7QlBOfSIKKworTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkcudG9tb3lvO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKKworRklMRVNfJHtQTn0gICAgICs9ICIke2xpYmRpcn0vdG9tb3lvIgorRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vdG9tb3lvLy5kZWJ1ZyIKKworREVQRU5EUyA9ICJsaW51eC1saWJjLWhlYWRlcnMgbmN1cnNlcyIKKworRVhUUkFfT0VNQUtFID0gIi1lIFVTUkxJQkRJUj0ke2xpYmRpcn0iCisKK2RvX2NvbXBpbGUgKCkgeworICAgIG9lX3J1bm1ha2UgJ0NDPSR7Q0N9JworfQorCitkb19pbnN0YWxsKCkgeworICAgIG9lX3J1bm1ha2UgaW5zdGFsbCBJTlNUQUxMRElSPSR7RH0KK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL2Rhc2gvZGFzaC8wMDAxLUZpeC1wcmludGYtZm9ybWF0LWVycm9ycy13aXRoLWNsYW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2hlbGxzL2Rhc2gvZGFzaC8wMDAxLUZpeC1wcmludGYtZm9ybWF0LWVycm9ycy13aXRoLWNsYW5nLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC9kYXNoL2Rhc2gvMDAwMS1GaXgtcHJpbnRmLWZvcm1hdC1lcnJvcnMtd2l0aC1jbGFuZy5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2hlbGxzL2Rhc2gvZGFzaC8wMDAxLUZpeC1wcmludGYtZm9ybWF0LWVycm9ycy13aXRoLWNsYW5nLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zaGVsbHMvZGFzaC9kYXNoXzAuNS45LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zaGVsbHMvZGFzaC9kYXNoXzAuNS45LjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRlZTY2ZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXNoZWxscy9kYXNoL2Rhc2hfMC41LjkuMS5iYgpAQCAtMCwwICsxLDI5IEBACitTVU1NQVJZID0gIlNtYWxsIGFuZCBmYXN0IFBPU0lYLWNvbXBsaWFudCBzaGVsbCIKK0hPTUVQQUdFID0gImh0dHA6Ly9nb25kb3IuYXBhbmEub3JnLmF1L35oZXJiZXJ0L2Rhc2gvIgorU0VDVElPTiA9ICJTeXN0ZW0gRW52aXJvbm1lbnQvU2hlbGxzIgorCitMSUNFTlNFID0gIkJTRCAmIEdQTHYyKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWI1MjYyYjRhMWExYmZmNzJiNDhlOTM1NTMxOTc2ZDJlIgorCitpbmhlcml0IGF1dG90b29scyB1cGRhdGUtYWx0ZXJuYXRpdmVzCisKK1NSQ19VUkkgPSAiaHR0cDovL2dvbmRvci5hcGFuYS5vcmcuYXUvfmhlcmJlcnQvJHtCUE59L2ZpbGVzLyR7QlB9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLUZpeC1wcmludGYtZm9ybWF0LWVycm9ycy13aXRoLWNsYW5nLnBhdGNoIFwKKyAgICAgICAgICAgIgorU1JDX1VSSVttZDVzdW1dID0gIjY0NzI3MDJhOGQ5NzYwZDE2NmVmODMzM2RjYjUyN2E2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVlY2Q1YmVhNzJhOTNlZDEwZWIxNWExYmU5OTUxZGQ1MWI1MmU1ZGExZDRhN2FlMDIwZWZkOTgyNmI0OWU2NTkiCisKK0VYVFJBX09FQ09ORiArPSAiLS1iaW5kaXI9JHtiYXNlX2JpbmRpcn0iCisKK0FMVEVSTkFUSVZFXyR7UE59ID0gInNoIgorQUxURVJOQVRJVkVfTElOS19OQU1FW3NoXSA9ICIke2Jhc2VfYmluZGlyfS9zaCIKK0FMVEVSTkFUSVZFX1RBUkdFVFtzaF0gPSAiJHtiYXNlX2JpbmRpcn0vZGFzaCIKK0FMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjEwIgorCitwa2dfcG9zdGluc3RfJHtQTn0gKCkgeworICAgIGdyZXAgLXEgIl4ke2Jhc2VfYmluZGlyfS9kYXNoJCIgJEQke3N5c2NvbmZkaXJ9L3NoZWxscyB8fCBlY2hvICR7YmFzZV9iaW5kaXJ9L2Rhc2ggPj4gJEQke3N5c2NvbmZkaXJ9L3NoZWxscworfQorCitwa2dfcG9zdHJtXyR7UE59ICgpIHsKKyAgICBwcmludGYgIiQoZ3JlcCAtdiAiXiR7YmFzZV9iaW5kaXJ9L2Rhc2gkIiAkRCR7c3lzY29uZmRpcn0vc2hlbGxzKVxuIiA+ICREJHtzeXNjb25mZGlyfS9zaGVsbHMKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Rjc2gvdGNzaC8wMDAxLUVuYWJsZS1zeXN0ZW0tbWFsbG9jLW9uLWFsbC1saW51eC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXNoZWxscy90Y3NoL3Rjc2gvMDAwMS1FbmFibGUtc3lzdGVtLW1hbGxvYy1vbi1hbGwtbGludXgucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Rjc2gvdGNzaC8wMDAxLUVuYWJsZS1zeXN0ZW0tbWFsbG9jLW9uLWFsbC1saW51eC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2hlbGxzL3Rjc2gvdGNzaC8wMDAxLUVuYWJsZS1zeXN0ZW0tbWFsbG9jLW9uLWFsbC1saW51eC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGNzaC90Y3NoLzAwMDItQWRkLWRlYmlhbi1jc2gtc2NyaXB0cy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXNoZWxscy90Y3NoL3Rjc2gvMDAwMi1BZGQtZGViaWFuLWNzaC1zY3JpcHRzLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90Y3NoL3Rjc2gvMDAwMi1BZGQtZGViaWFuLWNzaC1zY3JpcHRzLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zaGVsbHMvdGNzaC90Y3NoLzAwMDItQWRkLWRlYmlhbi1jc2gtc2NyaXB0cy5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGNzaC90Y3NoXzYuMjAuMDAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zaGVsbHMvdGNzaC90Y3NoXzYuMjAuMDAuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Rjc2gvdGNzaF82LjIwLjAwLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zaGVsbHMvdGNzaC90Y3NoXzYuMjAuMDAuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXNoZWxscy96c2gvenNoXzUuNC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc2hlbGxzL3pzaC96c2hfNS40LjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTAwYzQ0OQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXNoZWxscy96c2gvenNoXzUuNC4yLmJiCkBAIC0wLDAgKzEsNjQgQEAKK1NVTU1BUlkgPSAiVU5JWCBTaGVsbCBzaW1pbGFyIHRvIHRoZSBLb3JuIHNoZWxsIgorREVTQ1JJUFRJT04gPSAiWnNoIGlzIGEgc2hlbGwgZGVzaWduZWQgZm9yIGludGVyYWN0aXZlIHVzZSwgYWx0aG91Z2ggaXQgaXMgYWxzbyBhIFwKKyAgICAgICAgICAgICAgIHBvd2VyZnVsIHNjcmlwdGluZyBsYW5ndWFnZS4gTWFueSBvZiB0aGUgdXNlZnVsIGZlYXR1cmVzIG9mIGJhc2gsIFwKKyAgICAgICAgICAgICAgIGtzaCwgYW5kIHRjc2ggd2VyZSBpbmNvcnBvcmF0ZWQgaW50byB6c2g7IG1hbnkgb3JpZ2luYWwgZmVhdHVyZXMgd2VyZSBhZGRlZC4iCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LnpzaC5vcmciCitTRUNUSU9OID0gImJhc2Uvc2hlbGwiCisKK0xJQ0VOU0UgPSAienNoIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5DRTttZDU9MWE0YzRjZGEzZTgwOTZkMmZkNDgzZmYyZjQ1MTRmZWMiCisKK0RFUEVORFMgPSAibmN1cnNlcyBiaXNvbi1uYXRpdmUgbGliY2FwIGxpYnBjcmUgZ2RibSBncm9mZi1uYXRpdmUiCisKK1NSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9LyR7QlBOfS8ke0JQfS50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiZGZlMTU2ZmQ2OWIwZDhkMTc0NWVjZjZkNmUwMmUwNDciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOTU3YmNkYjJjNTdmNjRjMDJmNjczNjkzZWE1YTc1MThlZjI0YjY1NTdhZWIzYTRjZTIyMmNlZmE2ZDc0YWNjOSIKKworaW5oZXJpdCBhdXRvdG9vbHMgZ2V0dGV4dCB1cGRhdGUtYWx0ZXJuYXRpdmVzCisKK0VYVFJBX09FQ09ORiA9ICIgXAorICAgIC0tYmluZGlyPSR7YmFzZV9iaW5kaXJ9IFwKKyAgICAtLWVuYWJsZS1ldGNkaXI9JHtzeXNjb25mZGlyfSBcCisgICAgLS1lbmFibGUtZm5kaXI9JHtkYXRhZGlyfS8ke1BOfS8ke1BWfS9mdW5jdGlvbnMgXAorICAgIC0tZW5hYmxlLXNpdGUtZm5kaXI9JHtkYXRhZGlyfS8ke1BOfS9zaXRlLWZ1bmN0aW9ucyBcCisgICAgLS13aXRoLXRlcm0tbGliPSduY3Vyc2VzdyBuY3Vyc2VzJyBcCisgICAgLS13aXRoLXRjc2V0cGdycCBcCisgICAgLS1lbmFibGUtY2FwIFwKKyAgICAtLWVuYWJsZS1tdWx0aWJ5dGUgXAorICAgIC0tZGlzYWJsZS1nZGJtIFwKKyAgICAtLWRpc2FibGUtZHluYW1pYyBcCisgICAgenNoX2N2X3NoYXJlZF9lbnZpcm9uPXllcyBcCisiCisKKyMgQ29uZmlndXJlIHJlc3BlY3RzIC0tYmluZGlyIGZyb20gRVhUUkFfT0VDT05GLCBidXQgdGhlbiBTcmMvTWFrZWZpbGUgd2lsbCByZWFkIGJpbmRpciBmcm9tIGVudmlyb25tZW50CitleHBvcnQgYmluZGlyPSIke2Jhc2VfYmluZGlyfSIKKworRVhUUkFfT0VNQUtFID0gIi1lIE1BS0VGTEFHUz0iCisKK0FMVEVSTkFUSVZFXyR7UE59ID0gInNoIgorQUxURVJOQVRJVkVfTElOS19OQU1FW3NoXSA9ICIke2Jhc2VfYmluZGlyfS9zaCIKK0FMVEVSTkFUSVZFX1RBUkdFVFtzaF0gPSAiJHtiYXNlX2JpbmRpcn0vJHtCUE59IgorQUxURVJOQVRJVkVfUFJJT1JJVFkgPSAiMTAwIgorCitleHBvcnQgQVVUT0hFQURFUiA9ICJ0cnVlIgorCitkb19jb25maWd1cmUgKCkgeworICAgIGdudS1jb25maWdpemUgLS1mb3JjZSAke1N9CisgICAgb2VfcnVuY29uZgorfQorCitkb19pbnN0YWxsX2FwcGVuZCAoKSB7CisgICAgcm0gLWZyICR7RH0vdXNyL3NoYXJlCit9CisKK3BrZ19wb3N0aW5zdF8ke1BOfSAoKSB7CisgICAgdG91Y2ggJEQke3N5c2NvbmZkaXJ9L3NoZWxscworICAgIGdyZXAgLXEgImJpbi96c2giICREJHtzeXNjb25mZGlyfS9zaGVsbHMgfHwgZWNobyAvYmluL3pzaCA+PiAkRCR7c3lzY29uZmRpcn0vc2hlbGxzCisgICAgZ3JlcCAtcSAiYmluL3NoIiAkRCR7c3lzY29uZmRpcn0vc2hlbGxzIHx8IGVjaG8gL2Jpbi9zaCA+PiAkRCR7c3lzY29uZmRpcn0vc2hlbGxzCit9CisKK0ZJTEVTXyR7UE59LWRiZyArPSAiXAorICAgICR7bGliZGlyfS8ke1BOfS8ke1BWfS8ke1BOfS8uZGVidWcvKi5zbyBcCisgICAgJHtsaWJkaXJ9LyR7UE59LyR7UFZ9LyR7UE59L2RiLy5kZWJ1Zy8qLnNvIFwKKyAgICAke2xpYmRpcn0vJHtQTn0vJHtQVn0vJHtQTn0vbmV0Ly5kZWJ1Zy8qLnNvIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYW50aHkvYW50aHkvbmF0aXZlLWhlbHBlcnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2FudGh5L2FudGh5L25hdGl2ZS1oZWxwZXJzLnBhdGNoCmluZGV4IDI5MWI2NmIuLjQ3Y2UwMDcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYW50aHkvYW50aHkvbmF0aXZlLWhlbHBlcnMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9hbnRoeS9hbnRoeS9uYXRpdmUtaGVscGVycy5wYXRjaApAQCAtMywyMCArMywyNCBAQAogY29tbWVudDogU3RhZ2UgdGhlIG5hdGl2ZSBhbnRoeSBoZWxwZXJzIG1rZmlsZWRpYywgbWtkZXBncmFwaCwgbWt3b3JkZGljLCAKIGNvbW1lbnQ6IGNhbGN0cmFucyBhbmQgcHJvY2NvcnB1cy4KIAotLS0tIGFudGh5LTc4MTEvbWthbnRoeWRpYy9NYWtlZmlsZS5hbX4JMjAwNi0wNS0xMyAxODoyODozNS4wMDAwMDAwMDAgKzA5MDAKLSsrKyBhbnRoeS03ODExL21rYW50aHlkaWMvTWFrZWZpbGUuYW0JMjAwNi0wNi0xOCAxMDo1NjoyNS43NzAwMDAwMDAgKzA5MDAKLUBAIC0zLDcgKzMsNyBAQAorSW5kZXg6IGFudGh5LTkxMDBoL21rYW50aHlkaWMvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBhbnRoeS05MTAwaC5vcmlnL21rYW50aHlkaWMvTWFrZWZpbGUuYW0KKysrKyBhbnRoeS05MTAwaC9ta2FudGh5ZGljL01ha2VmaWxlLmFtCitAQCAtMyw3ICszLDcgQEAgbm9pbnN0X1NDUklQVFMgPQogIENMRUFORklMRVMgPSBhbnRoeS5kaWMKLSBJTkNMVURFUyA9IC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIC1EU1JDRElSPVwiJChzcmNkaXIpXCIKKyBJTkNMVURFUyA9IC1JJCh0b3Bfc3JjZGlyKS8gLURTUkNESVI9XCIkKHNyY2RpcilcIgogIAogLW5vaW5zdF9QUk9HUkFNUyA9IG1rZmlsZWRpYwogK2Jpbl9QUk9HUkFNUyA9IG1rZmlsZWRpYwogIG1rZmlsZWRpY19TT1VSQ0VTID0gbWtmaWxlZGljLmMKICBta2ZpbGVkaWNfTERBREQgPSAuLi9zcmMtZGljbGliL2xpYmRpY2xpYi5sYQogIAotLS0tIGFudGh5LTc4MTEvZGVwZ3JhcGgvTWFrZWZpbGUuYW1+CTIwMDYtMDYtMDIgMDA6MjA6NTQuMDAwMDAwMDAwICswOTAwCi0rKysgYW50aHktNzgxMS9kZXBncmFwaC9NYWtlZmlsZS5hbQkyMDA2LTA2LTE4IDEwOjU3OjE5LjQyMDAwMDAwMCArMDkwMAotQEAgLTksNyArOSw3IEBACitJbmRleDogYW50aHktOTEwMGgvZGVwZ3JhcGgvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBhbnRoeS05MTAwaC5vcmlnL2RlcGdyYXBoL01ha2VmaWxlLmFtCisrKysgYW50aHktOTEwMGgvZGVwZ3JhcGgvTWFrZWZpbGUuYW0KK0BAIC05LDcgKzksNyBAQCBDTEVBTkZJTEVTID0gYW50aHkuZGVwCiAgRVhUUkFfRElTVCA9IGluZGVwd29yZC50eHQgJChERVBXT1JEUykKICAKICAjIEdlbmVyYXRlIHRoZSBkaWN0aW9uYXJ5CkBAIC0yNSwxMCArMjksMTIgQEAKICBta2RlcGdyYXBoX1NPVVJDRVMgPSBta2RlcGdyYXBoLmMKICBta2RlcGdyYXBoX0xEQUREID0gIC4uL3NyYy1tYWluL2xpYmFudGh5LmxhIC4uL3NyYy13b3JkZGljL2xpYmFudGh5ZGljLmxhCiAgCi0tLS0gYW50aHktNzgxMS9ta3dvcmRkaWMvTWFrZWZpbGUuYW1+CTIwMDYtMDUtMTMgMTg6Mjk6MDcuMDAwMDAwMDAwICswOTAwCi0rKysgYW50aHktNzgxMS9ta3dvcmRkaWMvTWFrZWZpbGUuYW0JMjAwNi0wNi0xOCAxMToyMTo1Ni4zMDAwMDAwMDAgKzA5MDAKLUBAIC0xNiw3ICsxNiw4IEBACi0gIHVkaWN0IGRpY3QuYXJncy5pbgorSW5kZXg6IGFudGh5LTkxMDBoL21rd29yZGRpYy9NYWtlZmlsZS5hbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGFudGh5LTkxMDBoLm9yaWcvbWt3b3JkZGljL01ha2VmaWxlLmFtCisrKysgYW50aHktOTEwMGgvbWt3b3JkZGljL01ha2VmaWxlLmFtCitAQCAtMjYsNyArMjYsOCBAQCBESUNfRklMRVMgPSBAdG9wX3NyY2RpckAvYWx0LWNhbm5hZGljL2djCisgCSAgICBAdG9wX3NyY2RpckAvbWt3b3JkZGljL3VkaWN0CiAgCiAgIyBHZW5lcmF0ZSB0aGUgZGljdGlvbmFyeQogLW5vaW5zdF9QUk9HUkFNUyA9IG1rd29yZGRpYwpAQCAtMzYsMTAgKzQyLDEyIEBACiArYmluX1BST0dSQU1TID0gbWt3b3JkZGljCiAgbWt3b3JkZGljX1NPVVJDRVMgPSBta2RpYy5jIHdyaXRld29yZHMuYyBta3VkaWMuYyBjYWxjZnJlcS5jIG1rZGljLmgKICBta3dvcmRkaWNfTERBREQgPSAuLi9zcmMtd29yZGRpYy9saWJhbnRoeWRpYy5sYQotCi0tLS0gYW50aHktOTEwMGUub3JpZy9jYWxjdHJhbnMvTWFrZWZpbGUuYW0JMjAwOC0wNS0wOCAxNTowNDoxMy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBhbnRoeS05MTAwZS9jYWxjdHJhbnMvTWFrZWZpbGUuYW0JMjAwOC0wNS0wOCAxNTowNDoyNC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0zLDcgKzMsNyBAQAorIAorSW5kZXg6IGFudGh5LTkxMDBoL2NhbGN0cmFucy9NYWtlZmlsZS5hbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGFudGh5LTkxMDBoLm9yaWcvY2FsY3RyYW5zL01ha2VmaWxlLmFtCisrKysgYW50aHktOTEwMGgvY2FsY3RyYW5zL01ha2VmaWxlLmFtCitAQCAtMyw3ICszLDcgQEAgRVhUUkFfRElTVCA9XAogICBjb3JwdXMuMy50eHQgY29ycHVzLjQudHh0IGNvcnB1cy41LnR4dFwKICAgY29ycHVzX2luZm8gd2Vha193b3JkcwogIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9hbnRoeS9hbnRoeS9ub3RfYnVpbGRfZWxjLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9hbnRoeS9hbnRoeS9ub3RfYnVpbGRfZWxjLnBhdGNoCmluZGV4IGJmNzQ4ZjMuLjFjNWM0OTQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYW50aHkvYW50aHkvbm90X2J1aWxkX2VsYy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2FudGh5L2FudGh5L25vdF9idWlsZF9lbGMucGF0Y2gKQEAgLTEsMTIgKzEsMTMgQEAKIHVwc3RyZWFtOiBub3QgYXBwbGljYWJsZQogc291cmNlOiBzdG9sZW4gZnJvbSBkZWJpYW4KIAotZGlmZiAtTmF1ciBhbnRoeS03ODExL3NyYy11dGlsLm9yaWcvTWFrZWZpbGUuYW0gYW50aHktNzgxMS9zcmMtdXRpbC9NYWtlZmlsZS5hbQotLS0tIGFudGh5LTc4MTEvc3JjLXV0aWwub3JpZy9NYWtlZmlsZS5hbQkyMDA2LTA2LTE4IDEwOjQ3OjU1Ljc5MDAwMDAwMCArMDkwMAotKysrIGFudGh5LTc4MTEvc3JjLXV0aWwvTWFrZWZpbGUuYW0JMjAwNi0wNi0xOCAxMDo0ODoyMy44NjAwMDAwMDAgKzA5MDAKLUBAIC02LDcgKzYsOCBAQAorSW5kZXg6IGFudGh5LTkxMDBoL3NyYy11dGlsL01ha2VmaWxlLmFtCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gYW50aHktOTEwMGgub3JpZy9zcmMtdXRpbC9NYWtlZmlsZS5hbQorKysrIGFudGh5LTkxMDBoL3NyYy11dGlsL01ha2VmaWxlLmFtCitAQCAtOCw3ICs4LDggQEAgRUxJU1BfRklMRVMgPSBhbnRoeS5lbCBhbnRoeS1kaWMuZWwgYW50aAogICBhbnRoeS1pc2VhcmNoLmVsIGFudGh5LWF6aWsuZWwgYW50aHkta3l1cmkuZWwKLSBFWFRSQV9ESVNUID0gJChFTElTUF9GSUxFUykgdHlwZXRhYiBkaWMtdG9vbC11c2FnZS50eHQgcmNzaXplLnJiCisgRVhUUkFfRElTVCA9ICQoRUxJU1BfRklMRVMpIHR5cGV0YWIgZGljLXRvb2wtdXNhZ2UudHh0IGFudGh5LmkKICBiaW5fUFJPR1JBTVMgPSBhbnRoeS1kaWMtdG9vbCBhbnRoeS1hZ2VudCBhbnRoeS1tb3JwaG9sb2dpY2FsLWFuYWx5emVyCiAtRUxDRklMRVMgPSBhbnRoeS5lbGMgYW50aHktZGljLmVsYyBhbnRoeS1hemlrLmVsYyBhbnRoeS1jb25mLmVsYyBhbnRoeS1pc2VhcmNoLmVsYyBhbnRoeS1reXVyaS5lbGMgbGVpbS1saXN0LmVsYwogKyNFTENGSUxFUyA9IGFudGh5LmVsYyBhbnRoeS1kaWMuZWxjIGFudGh5LWF6aWsuZWxjIGFudGh5LWNvbmYuZWxjIGFudGh5LWlzZWFyY2guZWxjIGFudGh5LWt5dXJpLmVsYyBsZWltLWxpc3QuZWxjCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2F1Z2Vhcy9hdWdlYXMvMDAwMS1VbnNldC1uZWVkX2NoYXJzZXRfYWxpYXMtd2hlbi1idWlsZGluZy1mb3ItbXVzbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYXVnZWFzL2F1Z2Vhcy8wMDAxLVVuc2V0LW5lZWRfY2hhcnNldF9hbGlhcy13aGVuLWJ1aWxkaW5nLWZvci1tdXNsLnBhdGNoCmluZGV4IDlhMTk4NzYuLjBiYTdjNzYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYXVnZWFzL2F1Z2Vhcy8wMDAxLVVuc2V0LW5lZWRfY2hhcnNldF9hbGlhcy13aGVuLWJ1aWxkaW5nLWZvci1tdXNsLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYXVnZWFzL2F1Z2Vhcy8wMDAxLVVuc2V0LW5lZWRfY2hhcnNldF9hbGlhcy13aGVuLWJ1aWxkaW5nLWZvci1tdXNsLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBiOTU2NWRjMmZlMGM0ZjdkYWFlYzkxYjdlODNiYzczMTNkZWUyZjRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAzMmIxNTMzMmUyMTMwYTU0YjI1ZjRmYmY2ZjU4YjQwN2I4NTFkZDhmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KIERhdGU6IE1vbiwgMTMgQXByIDIwMTUgMTc6MDI6MTMgLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gVW5zZXQgbmVlZF9jaGFyc2V0X2FsaWFzIHdoZW4gYnVpbGRpbmcgZm9yIG11c2wKQEAgLTExLDE0ICsxMSwxNSBAQAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQotIGxpYi9nbnVsaWIubWsgfCAyICstCisgZ251bGliL2xpYi9NYWtlZmlsZS5hbSB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAotSW5kZXg6IGF1Z2Vhcy0xLjIuMC9nbnVsaWIvbGliL01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gYXVnZWFzLTEuMi4wLm9yaWcvZ251bGliL2xpYi9NYWtlZmlsZS5hbQotKysrIGF1Z2Vhcy0xLjIuMC9nbnVsaWIvbGliL01ha2VmaWxlLmFtCitkaWZmIC0tZ2l0IGEvZ251bGliL2xpYi9NYWtlZmlsZS5hbSBiL2dudWxpYi9saWIvTWFrZWZpbGUuYW0KK2luZGV4IDk2M2IyMmQuLjc1Nzg4ZDIgMTAwNjQ0CistLS0gYS9nbnVsaWIvbGliL01ha2VmaWxlLmFtCisrKysgYi9nbnVsaWIvbGliL01ha2VmaWxlLmFtCiBAQCAtNDYzLDcgKzQ2Myw3IEBAIGluc3RhbGwtZXhlYy1sb2NhbGNoYXJzZXQ6IGFsbC1sb2NhbAogIAkgIGNhc2UgJyQoaG9zdF9vcyknIGluIFwKICAJICAgIGRhcndpbls1Nl0qKSBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2F1Z2Vhcy9hdWdlYXMvYWRkLW1pc3NpbmctYXJnei1jb25kaXRpb25hbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYXVnZWFzL2F1Z2Vhcy9hZGQtbWlzc2luZy1hcmd6LWNvbmRpdGlvbmFsLnBhdGNoCmluZGV4IGFiYmRiYWEuLjM2OGJiNDEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYXVnZWFzL2F1Z2Vhcy9hZGQtbWlzc2luZy1hcmd6LWNvbmRpdGlvbmFsLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYXVnZWFzL2F1Z2Vhcy9hZGQtbWlzc2luZy1hcmd6LWNvbmRpdGlvbmFsLnBhdGNoCkBAIC0xLDE0ICsxLDIxIEBACi1BZGQgbWlzc2luZyBHTF9HRU5FUkFURV9BUkdaX0ggY29uZGl0aW9uYWwKK0Zyb20gOWE2ZTYzNzRkYTdkNzA1NmRiMDk1MGYwZjdkNmI4YjkwNTAwOTc3NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IENvbnN0YW50aW4gTXVzY2EgPGNvbnN0YW50aW54Lm11c2NhQGludGVsLmNvbT4KK0RhdGU6IEZyaSwgMTUgSnVsIDIwMTYgMTA6MDQ6NDggKzAzMDAKK1N1YmplY3Q6IFtQQVRDSF0gQWRkIG1pc3NpbmcgR0xfR0VORVJBVEVfQVJHWl9IIGNvbmRpdGlvbmFsCiAKIC0gR0xfR0VORVJBVEVfQVJHWl9IIGlzIHVzZWQgaW4gZ251bGliL2xpYi9NYWtlZmlsZS5hbQogCiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIFNpZ25lZC1vZmYtYnk6IENvbnN0YW50aW4gTXVzY2EgPGNvbnN0YW50aW54Lm11c2NhQGludGVsLmNvbT4KIAotSW5kZXg6IGF1Z2Vhcy0xLjAuMC9jb25maWd1cmUuYWMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdWdlYXMtMS4wLjAub3JpZy9jb25maWd1cmUuYWMKLSsrKyBhdWdlYXMtMS4wLjAvY29uZmlndXJlLmFjCistLS0KKyBjb25maWd1cmUuYWMgfCAyICsrCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCA3MmI2OTg0Li5mYjk2NTNlIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKIEBAIC01NSw2ICs1NSw4IEBAIEFDX0FSR19XSVRIKFtmYWlsbWFsbG9jXSwKICAKICBBTV9DT05ESVRJT05BTChbV0lUSF9GQUlMTUFMTE9DXSwgW3Rlc3QgeCR3aXRoX2ZhaWxtYWxsb2MgIT0geG5vXSkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYXVnZWFzL2F1Z2Vhcy9zZXBidWlsZGZpeC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvYXVnZWFzL2F1Z2Vhcy9zZXBidWlsZGZpeC5wYXRjaAppbmRleCBiODJhM2VlLi4yYjE4NjE4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2F1Z2Vhcy9hdWdlYXMvc2VwYnVpbGRmaXgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9hdWdlYXMvYXVnZWFzL3NlcGJ1aWxkZml4LnBhdGNoCkBAIC0xLDE1ICsxLDI0IEBACi1FbnN1cmUgdGhhdCBidWlsZHMgaW4gc2VwYXJhdGUgYnVpbGRkaXJzICgke0J9ICE9ICR7U30pIGNvcnJlY3RseSBpbnN0YWxsIHRoZSAKK0Zyb20gOGEyNzc5NTdhMjU3OWU3MTQ5YzE4NTA2NzU0NDFiMjg4MTkyMDc3YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEp1c3NpIEt1a2tvbmVuIDxqdXNzaS5rdWtrb25lbkBpbnRlbC5jb20+CitEYXRlOiBGcmksIDE1IEp1bCAyMDE2IDEwOjA0OjQ4ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIGF1Z2VhczogZml4IHNlcGFyYXRlIGJ1aWxkZGlycworCitFbnN1cmUgdGhhdCBidWlsZHMgaW4gc2VwYXJhdGUgYnVpbGRkaXJzICgke0J9ICE9ICR7U30pIGNvcnJlY3RseSBpbnN0YWxsIHRoZQogbGVuc2VzIGZpbGVzLgogCiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAogUlAgMjAxMy80LzE3CiAKLUluZGV4OiBhdWdlYXMtMS4wLjAvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBhdWdlYXMtMS4wLjAub3JpZy9NYWtlZmlsZS5hbQkyMDEyLTExLTAyIDE1OjIwOjExLjAwMDAwMDAwMCArMDAwMAotKysrIGF1Z2Vhcy0xLjAuMC9NYWtlZmlsZS5hbQkyMDEzLTA0LTE3IDEwOjM2OjI0LjAzMzQwMDEyNSArMDAwMAotQEAgLTUsOCArNSw4IEBACistLS0KKyBNYWtlZmlsZS5hbSB8IDQgKystLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCitpbmRleCA4N2Q1MTFhLi43NzEwYjNiIDEwMDY0NAorLS0tIGEvTWFrZWZpbGUuYW0KKysrKyBiL01ha2VmaWxlLmFtCitAQCAtNSw4ICs1LDggQEAgQUNMT0NBTF9BTUZMQUdTID0gLUkgZ251bGliL200CiAgbGVuc2Rpcj0kKGRhdGFkaXIpL2F1Z2Vhcy9sZW5zZXMvZGlzdAogIGxlbnN0ZXN0ZGlyPSQoZGF0YWRpcikvYXVnZWFzL2xlbnNlcy9kaXN0L3Rlc3RzCiAgCkBAIC0xOCw1ICsyNyw1IEBACiArZGlzdF9sZW5zX0RBVEE9JCh3aWxkY2FyZCAkKHRvcF9zcmNkaXIpL2xlbnNlcy8qLmF1ZykKICtkaXN0X2xlbnN0ZXN0X0RBVEE9JCh3aWxkY2FyZCAkKHRvcF9zcmNkaXIpbGVuc2VzL3Rlc3RzLyouYXVnKQogIAotIEVYVFJBX0RJU1Q9YXVnZWFzLnNwZWMgYnVpbGQvYXV4L21vdmUtaWYtY2hhbmdlIE1ha2VmaWxlLmFtIEhBQ0tJTkcKKyBFWFRSQV9ESVNUPWF1Z2Vhcy5zcGVjIGJ1aWxkL2FjLWF1eC9tb3ZlLWlmLWNoYW5nZSBNYWtlZmlsZS5hbSBIQUNLSU5HLm1kCiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2Nhbm9uaWNhbC1tdWx0aXRvdWNoL2dlaXNfMi4yLjE3LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jYW5vbmljYWwtbXVsdGl0b3VjaC9nZWlzXzIuMi4xNy5iYgppbmRleCA5NzZhYWZiLi4zMGQ0MWExIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2Nhbm9uaWNhbC1tdWx0aXRvdWNoL2dlaXNfMi4yLjE3LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY2Fub25pY2FsLW11bHRpdG91Y2gvZ2Vpc18yLjIuMTcuYmIKQEAgLTMwLDcgKzMwLDYgQEAKIAogRklMRVNfJHtQTn0tYmluID0gIiR7YmluZGlyfSIKIFJERVBFTkRTXyR7UE59LWJpbiA9ICIgXAotICAgIHB5dGhvbjMtYXJncGFyc2UgXAogICAgIHB5dGhvbjMtY29tcHJlc3Npb24gXAogICAgIHB5dGhvbjMtY29yZSBcCiAgICAgcHl0aG9uMy1jcnlwdCBcCkBAIC00MCw4ICszOSw2IEBACiAgICAgcHl0aG9uMy1waWNrbGUgXAogICAgIHB5dGhvbjMtc2hlbGwgXAogICAgIHB5dGhvbjMtc3RyaW5nb2xkIFwKLSAgICBweXRob24zLXN1YnByb2Nlc3MgXAotICAgIHB5dGhvbjMtdGV4dHV0aWxzIFwKICAgICBweXRob24zLXRocmVhZGluZyBcCiAiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY2VyZXMtc29sdmVyL2NlcmVzLXNvbHZlcl8xLjEzLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jZXJlcy1zb2x2ZXIvY2VyZXMtc29sdmVyXzEuMTMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4ODNjNzAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jZXJlcy1zb2x2ZXIvY2VyZXMtc29sdmVyXzEuMTMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1ERVNDUklQVElPTiA9ICJDZXJlcyBTb2x2ZXIgaXMgYW4gb3BlbiBzb3VyY2UgQysrIGxpYnJhcnkgZm9yIG1vZGVsaW5nIGFuZCBzb2x2aW5nIGxhcmdlLCBjb21wbGljYXRlZCBvcHRpbWl6YXRpb24gcHJvYmxlbXMuIgotQVVUSE9SID0gIlNhbWVlciBBZ2Fyd2FsIGFuZCBLZWlyIE1pZXJsZSBhbmQgT3RoZXJzIgotSE9NRVBBR0UgPSAiaHR0cDovL2NlcmVzLXNvbHZlci5vcmcvIgotCi1MSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTM1ZTAwZjBjNGM5NmEwODIwYTAzZTBiMzFlNjQxNmJlIgotCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vY2VyZXMtc29sdmVyL2NlcmVzLXNvbHZlci5naXQiCi1TUkNSRVYgPSAiMTkzMzNiMGY1NWM4NDYyMzgxMDM4ZTcwZDQyYWY0M2I1Mjk0MTEyOCIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLQotREVQRU5EUyA9ICJsaWJlaWdlbiBnbG9nIgotCi1pbmhlcml0IGNtYWtlCi0KLSMgT25seSBhIHN0YXRpYyBsaWJyYXJ5IGFuZCBoZWFkZXJzIGFyZSBjcmVhdGVkCi1BTExPV19FTVBUWV8ke1BOfSA9ICIxIgotCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9jbWFrZS8qIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jZXJlcy1zb2x2ZXIvY2VyZXMtc29sdmVyXzEuMTQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2NlcmVzLXNvbHZlci9jZXJlcy1zb2x2ZXJfMS4xNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTkxN2M4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jZXJlcy1zb2x2ZXIvY2VyZXMtc29sdmVyXzEuMTQuYmIKQEAgLTAsMCArMSwyMCBAQAorREVTQ1JJUFRJT04gPSAiQ2VyZXMgU29sdmVyIGlzIGFuIG9wZW4gc291cmNlIEMrKyBsaWJyYXJ5IGZvciBtb2RlbGluZyBhbmQgc29sdmluZyBsYXJnZSwgY29tcGxpY2F0ZWQgb3B0aW1pemF0aW9uIHByb2JsZW1zLiIKK0FVVEhPUiA9ICJTYW1lZXIgQWdhcndhbCBhbmQgS2VpciBNaWVybGUgYW5kIE90aGVycyIKK0hPTUVQQUdFID0gImh0dHA6Ly9jZXJlcy1zb2x2ZXIub3JnLyIKKworTElDRU5TRSA9ICJCU0QtMy1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zNWUwMGYwYzRjOTZhMDgyMGEwM2UwYjMxZTY0MTZiZSIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2NlcmVzLXNvbHZlci9jZXJlcy1zb2x2ZXIuZ2l0IgorU1JDUkVWID0gImZhY2IxOTlmM2VkYTkwMjM2MGY5ZTFkNTI3MTM3MmI3ZTU0ZmViZTEiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK0RFUEVORFMgPSAibGliZWlnZW4gZ2xvZyIKKworaW5oZXJpdCBjbWFrZQorCisjIE9ubHkgYSBzdGF0aWMgbGlicmFyeSBhbmQgaGVhZGVycyBhcmUgY3JlYXRlZAorQUxMT1dfRU1QVFlfJHtQTn0gPSAiMSIKKworRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vY21ha2UvKiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY3BwcmVzdC9jcHByZXN0LTIuMTAuMi9maXgtY21ha2UtaW5zdGFsbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvY3BwcmVzdC9jcHByZXN0LTIuMTAuMi9maXgtY21ha2UtaW5zdGFsbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZmVhZmVmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jcHByZXN0L2NwcHJlc3QtMi4xMC4yL2ZpeC1jbWFrZS1pbnN0YWxsLnBhdGNoCkBAIC0wLDAgKzEsMTcgQEAKK0Rlc2NyaXB0aW9uOiBpbnN0YWxsIGNtYWtlIGZpbGVzIGludG8gL3Vzci9saWIvY21ha2UvY3BwcmVzdHNkaworQXV0aG9yOiBHaWFuZnJhbmNvIENvc3RhbWFnbmEgPGxvY3V0dXNvZmJvcmdAZGViaWFuLm9yZz4KK1Vwc3RyZWFtLVN0YXR1czogaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9jcHByZXN0c2RrL3B1bGwvNzM3CitGb3J3YXJkZWQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvY3BwcmVzdHNkay9wdWxsLzczNworTGFzdC1VcGRhdGU6IDIwMTgtMDQtMTkKKworLS0tIGNwcHJlc3QtMi4xMC4yLm9yaWcvQ01ha2VMaXN0cy50eHQKKysrKyBjcHByZXN0LTIuMTAuMi9DTWFrZUxpc3RzLnR4dAorQEAgLTE4LDcgKzE4LDcgQEAgZW5hYmxlX3Rlc3RpbmcoKQorIHNldChXRVJST1IgT04gQ0FDSEUgQk9PTCAiVHJlYXQgV2FybmluZ3MgYXMgRXJyb3JzLiIpCisgc2V0KENQUFJFU1RfRVhDTFVERV9XRUJTT0NLRVRTIE9GRiBDQUNIRSBCT09MICJFeGNsdWRlIHdlYnNvY2tldHMgZnVuY3Rpb25hbGl0eS4iKQorIHNldChDUFBSRVNUX0VYQ0xVREVfQ09NUFJFU1NJT04gT0ZGIENBQ0hFIEJPT0wgIkV4Y2x1ZGUgY29tcHJlc3Npb24gZnVuY3Rpb25hbGl0eS4iKQorLXNldChDUFBSRVNUX0VYUE9SVF9ESVIgbGliL2NwcHJlc3RzZGsgQ0FDSEUgU1RSSU5HICJEaXJlY3RvcnkgdG8gaW5zdGFsbCBDTWFrZSBjb25maWcgZmlsZXMuIikKKytzZXQoQ1BQUkVTVF9FWFBPUlRfRElSIGxpYi9jbWFrZS9jcHByZXN0c2RrIENBQ0hFIFNUUklORyAiRGlyZWN0b3J5IHRvIGluc3RhbGwgQ01ha2UgY29uZmlnIGZpbGVzLiIpCisgc2V0KENQUFJFU1RfSU5TVEFMTF9IRUFERVJTIE9OIENBQ0hFIEJPT0wgIkluc3RhbGwgaGVhZGVyIGZpbGVzLiIpCisgc2V0KENQUFJFU1RfSU5TVEFMTCBPTiBDQUNIRSBCT09MICJBZGQgaW5zdGFsbCBjb21tYW5kcy4iKQorIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jcHByZXN0L2NwcHJlc3RfMi4xMC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9jcHByZXN0L2NwcHJlc3RfMi4xMC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiYTZmYzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2NwcHJlc3QvY3BwcmVzdF8yLjEwLjIuYmIKQEAgLTAsMCArMSwxNyBAQAorU1VNTUFSWSA9ICJNaWNyb3NvZnQgcHJvamVjdCBmb3IgY2xvdWQtYmFzZWQgY2xpZW50LXNlcnZlciBjb21tdW5pY2F0aW9uIGluIG5hdGl2ZSBjb2RlIHVzaW5nIGEgbW9kZXJuIGFzeW5jaHJvbm91cyBDKysgQVBJIGRlc2lnbi4iCitTRUNUSU9OID0gImxpYnMvbmV0d29yayIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvY3BwcmVzdHNkay8iCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLyR7U30vLi4vbGljZW5zZS50eHQ7bWQ1PWEyZTE1Yjk1NDc2OTIxOGZmOTEyNDY4ZWVjZDZhMDJmIgorREVQRU5EUyA9ICJvcGVuc3NsIHdlYnNvY2tldHBwIHpsaWIgYm9vc3QiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvY3BwcmVzdHNkay5naXQ7cHJvdG9jb2w9aHR0cHM7YnJhbmNoPW1hc3RlciIKKworU1JDX1VSSSArPSAiZmlsZTovL2ZpeC1jbWFrZS1pbnN0YWxsLnBhdGNoIgorCisjIHRhZyAyLjEwLjIKK1NSQ1JFVj0gImZlYTg0OGUyYTc3NTYzY2YyYTZmMjhmOGVhYjM5NmZkNmU3ODdmYmYiCisKK1MgPSAiJHtXT1JLRElSfS9naXQvUmVsZWFzZSIKKworaW5oZXJpdCBjbWFrZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9kb3MydW5peC9kb3MydW5peF83LjMuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZG9zMnVuaXgvZG9zMnVuaXhfNy4zLjQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiZjdkMWMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9kb3MydW5peC9kb3MydW5peF83LjMuNC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLVNVTU1BUlkgPSAiQ29udmVydCB0ZXh0IGZpbGUgbGluZSBlbmRpbmdzIGJldHdlZW4gQ1JMRiBhbmQgTEYiCi1ERVNDUklQVElPTiA9ICJUaGUgRG9zMnVuaXggcGFja2FnZSBpbmNsdWRlcyB1dGlsaXRpZXMgZG9zMnVuaXggYW5kIFwKLXVuaXgyZG9zIHRvIGNvbnZlcnQgcGxhaW4gdGV4dCBmaWxlcyBpbiBET1Mgb3IgTWFjIGZvcm1hdCB0byBVbml4IFwKLWZvcm1hdCBhbmQgdmljZSB2ZXJzYS4iCi1IT01FUEFHRSA9ICJodHRwOi8vd2F0ZXJsYW4uaG9tZS54czRhbGwubmwvZG9zMnVuaXguaHRtbCIKLVNFQ1RJT04gPSAic3VwcG9ydCIKLQotTElDRU5TRSA9ICJCU0QtMi1DbGF1c2UiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HLnR4dDttZDU9MWI3OGZjYTc4NGRiMjRmNGE0MGUzMGIzMDA3ODdmM2YiCi0KLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0LmNvZGUuc2YubmV0L3AvZG9zMnVuaXgvZG9zMnVuaXgiCi0KLSMgUmVsZWFzZSA3LjMuNAotU1JDUkVWID0gIjgzODFiYTRlMWM0Y2Q1Y2U5OGViZDljMjQ3MjZkNTFjYjIwM2NkZTAiCi0KLVMgPSAiJHtXT1JLRElSfS9naXQvZG9zMnVuaXgiCi0KLWluaGVyaXQgZ2V0dGV4dCBwZXJsbmF0aXZlCi0KLSMgVGhlIGRvczJ1bml4IE5MUyByZWxpZXMgb24gcG80YS1uYXRpdmUsIHdoaWxlIHBvNGEgcmVjaXBlIGlzCi0jIHByb3ZpZGVkIGJ5IG1ldGEtcGVybCBsYXllciwgc28gbWFrZSBpdCBvcHRpb25hbCBoZXJlLCB5b3UKLSMgbmVlZCBoYXZlIG1ldGEtcGVybCBpbiBiYmxheWVycy5jb25mIGJlZm9yZSBlbmFibGluZyBubHMgaW4KLSMgUEFDS0FHRUNPTkZJRy4KLVBBQ0tBR0VDT05GSUcgPz89ICIiCi1QQUNLQUdFQ09ORklHW25sc10gPSAiRU5BQkxFX05MUz0xLEVOQUJMRV9OTFM9LHBvNGEtbmF0aXZlIgotCi1FWFRSQV9PRU1BS0UgPSAiJHtQQUNLQUdFQ09ORklHX0NPTkZBUkdTfSBMREZMQUdTX1VTRVI9JyR7TERGTEFHU30nIgotRVhUUkFfT0VNQUtFX2NsYXNzLW5hdGl2ZSA9ICJFTkFCTEVfTkxTPSIKLQotZG9faW5zdGFsbCAoKSB7Ci0gICAgb2VfcnVubWFrZSBERVNURElSPSIke0R9JHtiYXNlX3ByZWZpeH0iIGluc3RhbGwKLX0KLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9kb3MydW5peC9kb3MydW5peF83LjQuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZG9zMnVuaXgvZG9zMnVuaXhfNy40LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQzYzU3OAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZG9zMnVuaXgvZG9zMnVuaXhfNy40LjAuYmIKQEAgLTAsMCArMSwzNCBAQAorU1VNTUFSWSA9ICJDb252ZXJ0IHRleHQgZmlsZSBsaW5lIGVuZGluZ3MgYmV0d2VlbiBDUkxGIGFuZCBMRiIKK0RFU0NSSVBUSU9OID0gIlRoZSBEb3MydW5peCBwYWNrYWdlIGluY2x1ZGVzIHV0aWxpdGllcyBkb3MydW5peCBhbmQgXAordW5peDJkb3MgdG8gY29udmVydCBwbGFpbiB0ZXh0IGZpbGVzIGluIERPUyBvciBNYWMgZm9ybWF0IHRvIFVuaXggXAorZm9ybWF0IGFuZCB2aWNlIHZlcnNhLiIKK0hPTUVQQUdFID0gImh0dHA6Ly93YXRlcmxhbi5ob21lLnhzNGFsbC5ubC9kb3MydW5peC5odG1sIgorU0VDVElPTiA9ICJzdXBwb3J0IgorCitMSUNFTlNFID0gIkJTRC0yLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkcudHh0O21kNT0xYjc4ZmNhNzg0ZGIyNGY0YTQwZTMwYjMwMDc4N2YzZiIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXQuY29kZS5zZi5uZXQvcC9kb3MydW5peC9kb3MydW5peCIKKworIyBSZWxlYXNlIDcuNC4wCitTUkNSRVYgPSAiMTE4MjUzM2JkZTNjMWZlNjViZTJlYWQ0NjVlODc2NzFmYWEyYzAyNyIKKworUyA9ICIke1dPUktESVJ9L2dpdC9kb3MydW5peCIKKworaW5oZXJpdCBnZXR0ZXh0IHBlcmxuYXRpdmUKKworIyBUaGUgZG9zMnVuaXggTkxTIHJlbGllcyBvbiBwbzRhLW5hdGl2ZSwgd2hpbGUgcG80YSByZWNpcGUgaXMKKyMgcHJvdmlkZWQgYnkgbWV0YS1wZXJsIGxheWVyLCBzbyBtYWtlIGl0IG9wdGlvbmFsIGhlcmUsIHlvdQorIyBuZWVkIGhhdmUgbWV0YS1wZXJsIGluIGJibGF5ZXJzLmNvbmYgYmVmb3JlIGVuYWJsaW5nIG5scyBpbgorIyBQQUNLQUdFQ09ORklHLgorUEFDS0FHRUNPTkZJRyA/Pz0gIiIKK1BBQ0tBR0VDT05GSUdbbmxzXSA9ICJFTkFCTEVfTkxTPTEsRU5BQkxFX05MUz0scG80YS1uYXRpdmUiCisKK0VYVFJBX09FTUFLRSA9ICIke1BBQ0tBR0VDT05GSUdfQ09ORkFSR1N9IExERkxBR1NfVVNFUj0nJHtMREZMQUdTfSciCitFWFRSQV9PRU1BS0VfY2xhc3MtbmF0aXZlID0gIkVOQUJMRV9OTFM9IgorCitkb19pbnN0YWxsICgpIHsKKyAgICBvZV9ydW5tYWtlIERFU1RESVI9IiR7RH0ke2Jhc2VfcHJlZml4fSIgaW5zdGFsbAorfQorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2VuZ2luZS1wa2NzMTEvZW5naW5lLXBrY3MxMV8wLjIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZW5naW5lLXBrY3MxMS9lbmdpbmUtcGtjczExXzAuMi4yLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDdmNzAxLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZW5naW5lLXBrY3MxMS9lbmdpbmUtcGtjczExXzAuMi4yLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotU1VNTUFSWSA9ICJBIFBLQ1MiCi1ERVNDUklQVElPTiA9ICJcCi1FbmdpbmVfcGtjczExIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIGFuIGVuZ2luZSBmb3IgT3BlblNTTC4gSXQgY2FuIGJlIFwKLWxvYWRlZCB1c2luZyBjb2RlLCBjb25maWcgZmlsZSBvciBjb21tYW5kIGxpbmUgYW5kIHdpbGwgcGFzcyBhbnkgZnVuY3Rpb24gXAotY2FsbCBieSBvcGVuc3NsIHRvIGEgUEtDUyBjYXJkcyBhbmQgc29mdHdhcmUgZm9yIHVzaW5nIHNtYXJ0IGNhcmRzIGluIFBLQ1MiCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vT3BlblNDL2VuZ2luZV9wa2NzMTEiCi1TRUNUSU9OID0gIkRldmVsb3BtZW50L0xpYnJhcmllcyIKLUxJQ0VOU0UgPSAiTEdQTHYyLjErIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vc3JjL2VuZ2luZV9wa2NzMTEuaDtzdGFydGxpbmU9MTtlbmRsaW5lPTI2O21kNT05NzNhMTlmOGE2MTA1ZGUwNDdmMmFkZmJiZmMwNGMzMyIKLURFUEVORFMgPSAib3BlbnNzbCBsaWJwMTEiCi0KLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9PcGVuU0MvZW5naW5lX3BrY3MxMS5naXQiCi1TUkNSRVYgPSAiMTMyZmNmMmM4YjMxOWY5ZjRiMmViZGM4ZGNiNTRmZjQ5NmRjMDUxOSIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCi0KLUVYVFJBX09FQ09ORiA9ICJcCi0gICAgLS1kaXNhYmxlLXN0YXRpYyBcCi0gICAgLS1saWJkaXIgJHtsaWJkaXJ9L2VuZ2luZXMgXAotIgotCi1kb19pbnN0YWxsX2FwcGVuZCAoKSB7Ci0gICAgcm0gLWYgJHtEfSR7bGliZGlyfS9lbmdpbmVzL2xpYnBrY3MxMS5sYQotfQotCi1GSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L2VuZ2luZXMvbGlicGtjczExJHtTT0xJQlNERVZ9IgotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vZW5naW5lcy8uZGVidWcvIgotCi1SREVQRU5EU18ke1BOfSArPSAib3BlbnNzbCBsaWJwMTEgb3BlbnNjIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ldmVudGxvZy9ldmVudGxvZ18wLjIuMTMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2V2ZW50bG9nL2V2ZW50bG9nXzAuMi4xMy5iYgppbmRleCA1OWIwMWI2Li4xM2ViNzk0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2V2ZW50bG9nL2V2ZW50bG9nXzAuMi4xMy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2V2ZW50bG9nL2V2ZW50bG9nXzAuMi4xMy5iYgpAQCAtMTMsNyArMTMsNyBAQAogTElDRU5TRSA9ICJCU0QiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iOGJhOGU3N2JjZGE5YTUzZmFjMGZlMzlmZTk1Nzc2NyIKIAotU1JDX1VSSSA9ICJodHRwOi8vd3d3LmJhbGFiaXQuY29tL2Rvd25sb2Fkcy9maWxlcy9zeXNsb2ctbmcvb3Blbi1zb3VyY2UtZWRpdGlvbi8zLjQuMi9zb3VyY2UvJHtCUE59XyR7UFZ9LnRhci5neiIKK1NSQ19VUkkgPSAiaHR0cHM6Ly93d3cuYmFsYWJpdC5jb20vZG93bmxvYWRzL3N5c2xvZy1uZy9vcGVuLXNvdXJjZS1lZGl0aW9uLzMuNC4yL3NvdXJjZS8ke0JQTn1fJHtQVn0udGFyLmd6IgogCiBpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mZnR3L2ZmdHdfMy4zLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZmdHcvZmZ0d18zLjMuNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQxNGUxNi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZmdHcvZmZ0d18zLjMuNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLURFU0NSSVBUSU9OID0gIkZGVFciCi1TRUNUSU9OID0gImxpYnMiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NTk1MzBiZGYzMzY1OWIyOWU3M2Q0YWRiOWY5ZjY1NTIiCi0KLVNSQ19VUkkgPSAiIFwKLSAgICBodHRwOi8vd3d3LmZmdHcub3JnL2ZmdHctJHtQVn0tcGwxLnRhci5neiBcCi0gICAgZmlsZTovLzAwMDEtTkVPTi1hdXRvZGV0ZWN0aW9uLXNlZ2ZhdWx0cy1hc3N1bWUtbmVvbi1wcmVzZW50LnBhdGNoIFwKLSIKLVNSQ19VUklbbWQ1c3VtXSA9ICI2ODJhMGU3OGQ2OTY2Y2EzN2M3NDQ2ZDRhYjRjYzJhMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIxZWY0YWE4NDI3ZDk3ODU4MzliYzc2N2YzZWI2YTg0ZmNiNWU5YTM3YzMxZWQ3N2EwNGU3ZTA0NzUxOWExODNkIgotCi1TID0gIiR7V09SS0RJUn0vZmZ0dy0ke1BWfS1wbDEiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi0jIHdlIGhhZCBtdWx0aXBsZSByZWNpcGVzIGluIHRoZSBwYXN0Ci1QUk9WSURFUyA9ICJmZnR3bCBmZnR3ZiIKLQotRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1mb3J0cmFuIC0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS10aHJlYWRzIgotCi1DRkxBR1MgKz0gIi1EX0dOVV9TT1VSQ0UiCi0KLUZGVFdfTkVPTiA9ICIke0BiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICduZW9uJywgJy0tZW5hYmxlLW5lb24nLCAnJywgZCl9IgotRkZUV19ORU9OX2NsYXNzLW5hdGl2ZSA9ICIiCi0KLWRvX2NvbmZpZ3VyZSgpIHsKLSAgICAjIGNvbmZpZ3VyZSBmZnR3Ci0gICAgcm0gLXJmICR7V09SS0RJUn0vYnVpbGQtZmZ0dwotCW1rZGlyIC1wICR7Qn0KLSAgICBjZCAke0J9Ci0gICAgIyBmdWxsIChyZSljb25maWd1cmUKLSAgICBhdXRvdG9vbHNfZG9fY29uZmlndXJlCi0gICAgbXYgJHtCfSAke1dPUktESVJ9L2J1aWxkLWZmdHcKLQotICAgICMgY29uZmlndXJlIGZmdHdsCi0gICAgcm0gLXJmICR7V09SS0RJUn0vYnVpbGQtZmZ0d2wKLQlta2RpciAtcCAke0J9Ci0gICAgY2QgJHtCfQotICAgICMgY29uZmlndXJlIG9ubHkKLSAgICBvZV9ydW5jb25mICAtLWVuYWJsZS1sb25nLWRvdWJsZQotICAgIG12ICR7Qn0gJHtXT1JLRElSfS9idWlsZC1mZnR3bCAKLQotICAgICMgY29uZmlndXJlIGZmdHdmCi0gICAgcm0gLXJmICR7V09SS0RJUn0vYnVpbGQtZmZ0d2YKLQlta2RpciAtcCAke0J9Ci0gICAgY2QgJHtCfQotICAgICMgY29uZmlndXJlIG9ubHkKLSAgICBvZV9ydW5jb25mIC0tZW5hYmxlLXNpbmdsZSAke0ZGVFdfTkVPTn0KLSAgICBtdiAke0J9ICR7V09SS0RJUn0vYnVpbGQtZmZ0d2YKLX0KLQotZG9fY29tcGlsZSgpIHsKLSAgICBmb3IgbGliIGluIGZmdHcgZmZ0d2wgZmZ0d2Y7IGRvCi0gICAgICAgIGNkICR7V09SS0RJUn0vYnVpbGQtJGxpYgotICAgICAgICBhdXRvdG9vbHNfZG9fY29tcGlsZQotICAgIGRvbmUKLX0KLQotZG9faW5zdGFsbCgpIHsKLSAgICBmb3IgbGliIGluIGZmdHcgZmZ0d2wgZmZ0d2Y7IGRvCi0gICAgICAgIGNkICR7V09SS0RJUn0vYnVpbGQtJGxpYgotICAgICAgICBhdXRvdG9vbHNfZG9faW5zdGFsbAotICAgIGRvbmUKLX0KLQotCi1QQUNLQUdFUyA9KyAibGliZmZ0dyBsaWJmZnR3bCBsaWJmZnR3ZiIKLUZJTEVTX2xpYmZmdHcgPSAiJHtsaWJkaXJ9L2xpYmZmdHczLnNvLiogJHtsaWJkaXJ9L2xpYmZmdHczXyouc28uKiIKLUZJTEVTX2xpYmZmdHdsID0gIiR7bGliZGlyfS9saWJmZnR3M2wuc28uKiAke2xpYmRpcn0vbGliZmZ0dzNsXyouc28uKiIKLUZJTEVTX2xpYmZmdHdmID0gIiR7bGliZGlyfS9saWJmZnR3M2Yuc28uKiAke2xpYmRpcn0vbGliZmZ0dzNmXyouc28uKiIKLQotUEFDS0FHRVMgPSsgImZmdHctd2lzZG9tIGZmdHdsLXdpc2RvbSBmZnR3Zi13aXNkb20gZmZ0dy13aXNkb20tdG8tY29uZiIKLUZJTEVTX2ZmdHctd2lzZG9tID0gIiR7YmluZGlyfS9mZnR3LXdpc2RvbSIKLUZJTEVTX2ZmdHdsLXdpc2RvbSA9ICIke2JpbmRpcn0vZmZ0d2wtd2lzZG9tIgotRklMRVNfZmZ0d2Ytd2lzZG9tID0gIiR7YmluZGlyfS9mZnR3Zi13aXNkb20iCi1GSUxFU19mZnR3LXdpc2RvbS10by1jb25mID0gIiR7YmluZGlyfS9mZnR3LXdpc2RvbS10by1jb25mIgotCi1SREVQRU5EU18ke1BOfS1kZXYgPSAiIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZmZ0dy9mZnR3XzMuMy43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mZnR3L2ZmdHdfMy4zLjcuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFlNmVjOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZmZ0dy9mZnR3XzMuMy43LmJiCkBAIC0wLDAgKzEsODAgQEAKK0RFU0NSSVBUSU9OID0gIkZGVFciCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NTk1MzBiZGYzMzY1OWIyOWU3M2Q0YWRiOWY5ZjY1NTIiCisKK1NSQ19VUkkgPSAiIFwKKyAgICBodHRwOi8vd3d3LmZmdHcub3JnL2ZmdHctJHtQVn0udGFyLmd6IFwKKyAgICBmaWxlOi8vMDAwMS1ORU9OLWF1dG9kZXRlY3Rpb24tc2VnZmF1bHRzLWFzc3VtZS1uZW9uLXByZXNlbnQucGF0Y2ggXAorIgorU1JDX1VSSVttZDVzdW1dID0gIjBkNTkxNWQ3ZDM5YjMyNTNjMWNjMDUwMzBkNzlhYzQ3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjNiNjA5YjdmZWJhNTIzMGU4ZjZkZDhkMjQ1ZGRiZWZhYzMyNGM1YTZhZTQxODY5NDc2NzBkOWFjMmNkMjU1NzMiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCisjIHdlIGhhZCBtdWx0aXBsZSByZWNpcGVzIGluIHRoZSBwYXN0CitQUk9WSURFUyA9ICJmZnR3bCBmZnR3ZiIKKworRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1mb3J0cmFuIC0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS10aHJlYWRzIgorCitDRkxBR1MgKz0gIi1EX0dOVV9TT1VSQ0UiCisKK0ZGVFdfTkVPTiA9ICIke0BiYi51dGlscy5jb250YWlucygnVFVORV9GRUFUVVJFUycsICduZW9uJywgJy0tZW5hYmxlLW5lb24nLCAnJywgZCl9IgorRkZUV19ORU9OX2NsYXNzLW5hdGl2ZSA9ICIiCisKK2RvX2NvbmZpZ3VyZSgpIHsKKyAgICAjIGNvbmZpZ3VyZSBmZnR3CisgICAgcm0gLXJmICR7V09SS0RJUn0vYnVpbGQtZmZ0dworCW1rZGlyIC1wICR7Qn0KKyAgICBjZCAke0J9CisgICAgIyBmdWxsIChyZSljb25maWd1cmUKKyAgICBhdXRvdG9vbHNfZG9fY29uZmlndXJlCisgICAgbXYgJHtCfSAke1dPUktESVJ9L2J1aWxkLWZmdHcKKworICAgICMgY29uZmlndXJlIGZmdHdsCisgICAgcm0gLXJmICR7V09SS0RJUn0vYnVpbGQtZmZ0d2wKKwlta2RpciAtcCAke0J9CisgICAgY2QgJHtCfQorICAgICMgY29uZmlndXJlIG9ubHkKKyAgICBvZV9ydW5jb25mICAtLWVuYWJsZS1sb25nLWRvdWJsZQorICAgIG12ICR7Qn0gJHtXT1JLRElSfS9idWlsZC1mZnR3bCAKKworICAgICMgY29uZmlndXJlIGZmdHdmCisgICAgcm0gLXJmICR7V09SS0RJUn0vYnVpbGQtZmZ0d2YKKwlta2RpciAtcCAke0J9CisgICAgY2QgJHtCfQorICAgICMgY29uZmlndXJlIG9ubHkKKyAgICBvZV9ydW5jb25mIC0tZW5hYmxlLXNpbmdsZSAke0ZGVFdfTkVPTn0KKyAgICBtdiAke0J9ICR7V09SS0RJUn0vYnVpbGQtZmZ0d2YKK30KKworZG9fY29tcGlsZSgpIHsKKyAgICBmb3IgbGliIGluIGZmdHcgZmZ0d2wgZmZ0d2Y7IGRvCisgICAgICAgIGNkICR7V09SS0RJUn0vYnVpbGQtJGxpYgorICAgICAgICBhdXRvdG9vbHNfZG9fY29tcGlsZQorICAgIGRvbmUKK30KKworZG9faW5zdGFsbCgpIHsKKyAgICBmb3IgbGliIGluIGZmdHcgZmZ0d2wgZmZ0d2Y7IGRvCisgICAgICAgIGNkICR7V09SS0RJUn0vYnVpbGQtJGxpYgorICAgICAgICBhdXRvdG9vbHNfZG9faW5zdGFsbAorICAgIGRvbmUKK30KKworCitQQUNLQUdFUyA9KyAibGliZmZ0dyBsaWJmZnR3bCBsaWJmZnR3ZiIKK0ZJTEVTX2xpYmZmdHcgPSAiJHtsaWJkaXJ9L2xpYmZmdHczLnNvLiogJHtsaWJkaXJ9L2xpYmZmdHczXyouc28uKiIKK0ZJTEVTX2xpYmZmdHdsID0gIiR7bGliZGlyfS9saWJmZnR3M2wuc28uKiAke2xpYmRpcn0vbGliZmZ0dzNsXyouc28uKiIKK0ZJTEVTX2xpYmZmdHdmID0gIiR7bGliZGlyfS9saWJmZnR3M2Yuc28uKiAke2xpYmRpcn0vbGliZmZ0dzNmXyouc28uKiIKKworUEFDS0FHRVMgPSsgImZmdHctd2lzZG9tIGZmdHdsLXdpc2RvbSBmZnR3Zi13aXNkb20gZmZ0dy13aXNkb20tdG8tY29uZiIKK0ZJTEVTX2ZmdHctd2lzZG9tID0gIiR7YmluZGlyfS9mZnR3LXdpc2RvbSIKK0ZJTEVTX2ZmdHdsLXdpc2RvbSA9ICIke2JpbmRpcn0vZmZ0d2wtd2lzZG9tIgorRklMRVNfZmZ0d2Ytd2lzZG9tID0gIiR7YmluZGlyfS9mZnR3Zi13aXNkb20iCitGSUxFU19mZnR3LXdpc2RvbS10by1jb25mID0gIiR7YmluZGlyfS9mZnR3LXdpc2RvbS10by1jb25mIgorCitGSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9jbWFrZSIKK1JERVBFTkRTXyR7UE59LWRldiA9ICJsaWJmZnR3IGxpYmZmdHdsIGxpYmZmdHdmIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZmxpdGUvZmxpdGUtYWxzYS0xLjMvZmxpdGUtMS4zLWFsc2Ffc3VwcG9ydC0xLjIuZGlmZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZmxpdGUvZmxpdGUtYWxzYS0xLjMvZmxpdGUtMS4zLWFsc2Ffc3VwcG9ydC0xLjIuZGlmZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjNlNGI3YS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZsaXRlL2ZsaXRlLWFsc2EtMS4zL2ZsaXRlLTEuMy1hbHNhX3N1cHBvcnQtMS4yLmRpZmYKKysrIC9kZXYvbnVsbApAQCAtMSw2NjE1ICswLDAgQEAKLUluZGV4OiBsYW5nL3VzZW5nbGlzaC9NYWtlZmlsZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGZsaXRlLTEuMy1yZWxlYXNlL2xhbmcvdXNlbmdsaXNoL01ha2VmaWxlCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiA3KQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL2xhbmcvdXNlbmdsaXNoL01ha2VmaWxlCSguLi4vcmVsZWFzZS0xLjIpCShyZXZpc2lvbiA3KQotQEAgLTM4LDYgKzM4LDcgQEAKLSBESVJOQU1FPWxhbmcvdXNlbmdsaXNoCi0gQlVJTERfRElSUyA9IAotIEFMTF9ESVJTPSAKLStpbmNsdWRlICQoVE9QKS9jb25maWcvY29uZmlnCi0gSCA9IHVzZW5nbGlzaC5oIHVzX2ludF9hY2NlbnRfY2FydC5oIHVzX2ludF90b25lX2NhcnQuaCB1c19kdXJ6X2NhcnQuaCBcCi0gICAgIHVzX2ZmZWF0dXJlcy5oIHVzX3BocmFzaW5nX2NhcnQuaCB1c190ZXh0LmggdXNfZjAuaCB1c19udW1zX2NhcnQuaAotIFNSQ1MgPSB1c19pbnRfYWNjZW50X2NhcnQuYyB1c19pbnRfdG9uZV9jYXJ0LmMgdXNfZjBfbW9kZWwuYyBcCi1AQCAtNDUsNyArNDYsMTEgQEAKLSAgICAgICAgdXNfcGhvbmVzZXQuYyB1c19mZmVhdHVyZXMuYyB1c19waHJhc2luZ19jYXJ0LmMgXAotICAgICAgICB1c19ncG9zLmMgdXNfdGV4dC5jIHVzX2V4cGFuZC5jIHVzX3Bvc3RsZXguYyBcCi0gICAgICAgIHVzX251bXNfY2FydC5jIHVzX2Fzd2QuYyB1c2VuZ2xpc2guYyAKLS1PQkpTID0gJChTUkNTOi5jPS5vKQotK2lmZGVmIFNIRkxBR1MKLStPQkpTIDo9ICQoU1JDUzouYz0ub3MpCi0rZWxzZQotK09CSlMgOj0gJChTUkNTOi5jPS5vKQotK2VuZGlmCi0gU0NNPQotIEZJTEVTID0gTWFrZWZpbGUgJChTQ00pICQoU1JDUykgJChIKQotIExJQk5BTUUgPSBmbGl0ZV91c2VuZ2xpc2gKLUluZGV4OiBsYW5nL2NtdV91c19rYWwvTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBmbGl0ZS0xLjMtcmVsZWFzZS9sYW5nL2NtdV91c19rYWwvTWFrZWZpbGUJKC4uLi9mbGl0ZS0xLjMtb3JpZykJKHJldmlzaW9uIDcpCi0rKysgZmxpdGUtMS4zLXJlbGVhc2UvbGFuZy9jbXVfdXNfa2FsL01ha2VmaWxlCSguLi4vcmVsZWFzZS0xLjIpCShyZXZpc2lvbiA3KQotQEAgLTQzLDcgKzQzLDEyIEBACi0gICAgICAgIGNtdV91c19rYWxfbHBjLmMgXAotICAgICAgICBjbXVfdXNfa2FsX3Jlcy5jIFwKLSAgICAgICAgY211X3VzX2thbF9yZXNpZHguYwotLU9CSlMgPSAkKFNSQ1M6LmM9Lm8pCi0raW5jbHVkZSAkKFRPUCkvY29uZmlnL2NvbmZpZwotK2lmZGVmIFNIRkxBR1MKLStPQkpTIDo9ICQoU1JDUzouYz0ub3MpCi0rZWxzZQotK09CSlMgOj0gJChTUkNTOi5jPS5vKQotK2VuZGlmCi0gU0NNPQotIEZJTEVTID0gTWFrZWZpbGUgJChTQ00pICQoU1JDUykgJChIKQotIExJQk5BTUUgPSBmbGl0ZV9jbXVfdXNfa2FsCi1JbmRleDogbGFuZy9jbXVfdXNfa2FsMTYvTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBmbGl0ZS0xLjMtcmVsZWFzZS9sYW5nL2NtdV91c19rYWwxNi9NYWtlZmlsZQkoLi4uL2ZsaXRlLTEuMy1vcmlnKQkocmV2aXNpb24gNykKLSsrKyBmbGl0ZS0xLjMtcmVsZWFzZS9sYW5nL2NtdV91c19rYWwxNi9NYWtlZmlsZQkoLi4uL3JlbGVhc2UtMS4yKQkocmV2aXNpb24gNykKLUBAIC00NCw3ICs0NCwxMiBAQAotICAgICAgICBjbXVfdXNfa2FsMTZfbHBjLmMgXAotICAgICAgICBjbXVfdXNfa2FsMTZfcmVzLmMgXAotICAgICAgICBjbXVfdXNfa2FsMTZfcmVzaWR4LmMKLS1PQkpTID0gJChTUkNTOi5jPS5vKQotK2luY2x1ZGUgJChUT1ApL2NvbmZpZy9jb25maWcKLStpZmRlZiBTSEZMQUdTCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm9zKQotK2Vsc2UKLStPQkpTIDo9ICQoU1JDUzouYz0ubykKLStlbmRpZgotIFNDTT0KLSBGSUxFUyA9IE1ha2VmaWxlICQoU0NNKSAkKFNSQ1MpICQoSCkKLSBMSUJOQU1FID0gZmxpdGVfY211X3VzX2thbDE2Ci1JbmRleDogbGFuZy9jbXVfdGltZV9hd2IvTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBmbGl0ZS0xLjMtcmVsZWFzZS9sYW5nL2NtdV90aW1lX2F3Yi9NYWtlZmlsZQkoLi4uL2ZsaXRlLTEuMy1vcmlnKQkocmV2aXNpb24gNykKLSsrKyBmbGl0ZS0xLjMtcmVsZWFzZS9sYW5nL2NtdV90aW1lX2F3Yi9NYWtlZmlsZQkoLi4uL3JlbGVhc2UtMS4yKQkocmV2aXNpb24gNykKLUBAIC00NSw3ICs0NSwxMiBAQAotIAljbXVfdGltZV9hd2JfbWNlcC5jIFwKLSAJY211X3RpbWVfYXdiX2xwYy5jIFwKLSAJY211X3RpbWVfYXdiX2xleF9lbnRyeS5jCi0tT0JKUyA9ICQoU1JDUzouYz0ubykKLStpbmNsdWRlICQoVE9QKS9jb25maWcvY29uZmlnCi0raWZkZWYgU0hGTEFHUwotK09CSlMgOj0gJChTUkNTOi5jPS5vcykKLStlbHNlCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm8pCi0rZW5kaWYKLSBTQ009Ci0gRklMRVMgPSBNYWtlZmlsZSAkKFNDTSkgJChTUkNTKSAkKEgpCi0gTElCTkFNRSA9IGZsaXRlX2NtdV90aW1lX2F3YgotSW5kZXg6IGxhbmcvY211bGV4L01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2UvbGFuZy9jbXVsZXgvTWFrZWZpbGUJKC4uLi9mbGl0ZS0xLjMtb3JpZykJKHJldmlzaW9uIDcpCi0rKysgZmxpdGUtMS4zLXJlbGVhc2UvbGFuZy9jbXVsZXgvTWFrZWZpbGUJKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtMzgsMTMgKzM4LDIwIEBACi0gRElSTkFNRT1sYW5nL2NtdWxleAotIEJVSUxEX0RJUlMgPSAKLSBBTExfRElSUz0gCi0rCi0gSCA9IGNtdV9sdHNfbW9kZWwuaCBjbXVsZXguaAotIFNSQ1MgPSBjbXVfbHRzX3J1bGVzLmMgY211X2x0c19tb2RlbC5jIFwKLSAgICAgICAgY211X2xleC5jIGNtdV9sZXhfZW50cmllcy5jIGNtdV9sZXhfZGF0YS5jCi0gTEVYX0RBVEFfSU5DTFVERVMgPSBjbXVfbGV4X2RhdGFfcmF3LmMgY211X2xleF9udW1fYnl0ZXMuYyBcCi0gICAgICBjbXVfbGV4X3Bob25lc19odWZmX3RhYmxlLmMgY211X2xleF9lbnRyaWVzX2h1ZmZfdGFibGUuYwotIAotLU9CSlMgPSAkKFNSQ1M6LmM9Lm8pCi0raW5jbHVkZSAkKFRPUCkvY29uZmlnL2NvbmZpZwotK2lmZGVmIFNIRkxBR1MKLStPQkpTIDo9ICQoU1JDUzouYz0ub3MpCi0rZWxzZQotK09CSlMgOj0gJChTUkNTOi5jPS5vKQotK2VuZGlmCi0rCi0gU0NSSVBUUz1tYWtlX2NtdWxleCAgCi0gCi0gU0NNPQotSW5kZXg6IGNvbmZpZ3VyZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGZsaXRlLTEuMy1yZWxlYXNlL2NvbmZpZ3VyZQkoLi4uL2ZsaXRlLTEuMy1vcmlnKQkocmV2aXNpb24gNykKLSsrKyBmbGl0ZS0xLjMtcmVsZWFzZS9jb25maWd1cmUJKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtMSwzMjQgKzEsMzggQEAKLSAjISAvYmluL3NoCi0rCi0gIyBHdWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIGFuZCBjcmVhdGUgTWFrZWZpbGVzLgotLSMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3LgotKyMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgdXNpbmcgYXV0b2NvbmYgdmVyc2lvbiAyLjEzIAotKyMgQ29weXJpZ2h0IChDKSAxOTkyLCA5MywgOTQsIDk1LCA5NiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSAjCi0tIyBDb3B5cmlnaHQgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMgotLSMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0gIyBUaGlzIGNvbmZpZ3VyZSBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotICMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LgotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotLSMjIE00c2ggSW5pdGlhbGl6YXRpb24uICAjIwotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIAotLSMgQmUgQm91cm5lIGNvbXBhdGlibGUKLS1pZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLS0gIGVtdWxhdGUgc2gKLS0gIE5VTExDTUQ9OgotLSAgIyBac2ggMy54IGFuZCA0LnggcGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAotLSAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLS0gIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJwotLWVsaWYgdGVzdCAtbiAiJHtCQVNIX1ZFUlNJT04rc2V0fSIgJiYgKHNldCAtbyBwb3NpeCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0tICBzZXQgLW8gcG9zaXgKLS1maQotLQotLSMgU3VwcG9ydCB1bnNldCB3aGVuIHBvc3NpYmxlLgotLWlmIChGT089Rk9POyB1bnNldCBGT08pID4vZGV2L251bGwgMj4mMTsgdGhlbgotLSAgYXNfdW5zZXQ9dW5zZXQKLS1lbHNlCi0tICBhc191bnNldD1mYWxzZQotLWZpCi0tCi0tCi0tIyBXb3JrIGFyb3VuZCBidWdzIGluIHByZS0zLjAgVVdJTiBrc2guCi0tJGFzX3Vuc2V0IEVOViBNQUlMIE1BSUxQQVRICi0tUFMxPSckICcKLS1QUzI9Jz4gJwotLVBTND0nKyAnCi0tCi0tIyBOTFMgbnVpc2FuY2VzLgotLWZvciBhc192YXIgaW4gXAotLSAgTEFORyBMQU5HVUFHRSBMQ19BRERSRVNTIExDX0FMTCBMQ19DT0xMQVRFIExDX0NUWVBFIExDX0lERU5USUZJQ0FUSU9OIFwKLS0gIExDX01FQVNVUkVNRU5UIExDX01FU1NBR0VTIExDX01PTkVUQVJZIExDX05BTUUgTENfTlVNRVJJQyBMQ19QQVBFUiBcCi0tICBMQ19URUxFUEhPTkUgTENfVElNRQotLWRvCi0tICBpZiAoc2V0ICt4OyB0ZXN0IC1uICJgKGV2YWwgJGFzX3Zhcj1DOyBleHBvcnQgJGFzX3ZhcikgMj4mMWAiKTsgdGhlbgotLSAgICBldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIKLS0gIGVsc2UKLS0gICAgJGFzX3Vuc2V0ICRhc192YXIKLS0gIGZpCi0tZG9uZQotLQotLSMgUmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgotLWlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0tICBhc19leHByPWV4cHIKLS1lbHNlCi0tICBhc19leHByPWZhbHNlCi0tZmkKLS0KLS1pZiAoYmFzZW5hbWUgLykgPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhgYmFzZW5hbWUgLyAyPiYxYCIgPSAiWC8iOyB0aGVuCi0tICBhc19iYXNlbmFtZT1iYXNlbmFtZQotLWVsc2UKLS0gIGFzX2Jhc2VuYW1lPWZhbHNlCi0tZmkKLS0KLS0KLS0jIE5hbWUgb2YgdGhlIGV4ZWN1dGFibGUuCi0tYXNfbWU9YCRhc19iYXNlbmFtZSAiJDAiIHx8Ci0tJGFzX2V4cHIgWC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKLS0JIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCi0tCSBYIiQwIiA6ICdYXCgvXCkkJyBcfCBcCi0tCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLS1lY2hvIFgvIiQwIiB8Ci0tICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveyBzLy9cMS87IHE7IH0KLS0gIAkgIC9eWFwvXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0tICAJICAvXlhcL1woXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0tICAJICBzLy4qLy4vOyBxJ2AKLS0KLS0KLS0jIFBBVEggbmVlZHMgQ1IsIGFuZCBMSU5FTk8gbmVlZHMgQ1IgYW5kIFBBVEguCi0tIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIgUmFuZ2VzLgotLWFzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JwotLWFzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwotLWFzX2NyX0xldHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUwotLWFzX2NyX2RpZ2l0cz0nMDEyMzQ1Njc4OScKLS1hc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKLS0KLS0jIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KLS1pZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgotLSAgZWNobyAiIyEgL2Jpbi9zaCIgPmNvbmYkJC5zaAotLSAgZWNobyAgImV4aXQgMCIgICA+PmNvbmYkJC5zaAotLSAgY2htb2QgK3ggY29uZiQkLnNoCi0tICBpZiAoUEFUSD0iL25vbmV4aXN0ZW50Oy4iOyBjb25mJCQuc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgotLSAgICBQQVRIX1NFUEFSQVRPUj0nOycKLS0gIGVsc2UKLS0gICAgUEFUSF9TRVBBUkFUT1I9OgotLSAgZmkKLS0gIHJtIC1mIGNvbmYkJC5zaAotLWZpCi0tCi0tCi0tICBhc19saW5lbm9fMT0kTElORU5PCi0tICBhc19saW5lbm9fMj0kTElORU5PCi0tICBhc19saW5lbm9fMz1gKGV4cHIgJGFzX2xpbmVub18xICsgMSkgMj4vZGV2L251bGxgCi0tICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKLS0gIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xpbmVub18yIiAgfHwgewotLSAgIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gcGF0aCBhdCBhbGwKLS0gICMgcmVsYXRpdmUgb3Igbm90LgotLSAgY2FzZSAkMCBpbgotLSAgICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7Ci0tICAgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLS1mb3IgYXNfZGlyIGluICRQQVRICi0tZG8KLS0gIElGUz0kYXNfc2F2ZV9JRlMKLS0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0tICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhawotLWRvbmUKLS0KLS0gICAgICAgOzsKLS0gIGVzYWMKLS0gICMgV2UgZGlkIG5vdCBmaW5kIG91cnNlbHZlcywgbW9zdCBwcm9iYWJseSB3ZSB3ZXJlIHJ1biBhcyBgc2ggQ09NTUFORCcKLS0gICMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgotLSAgaWYgdGVzdCAieCRhc19teXNlbGYiID0geDsgdGhlbgotLSAgICBhc19teXNlbGY9JDAKLS0gIGZpCi0tICBpZiB0ZXN0ICEgLWYgIiRhc19teXNlbGYiOyB0aGVuCi0tICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIHBhdGgiID4mMgotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotLSAgZmkKLS0gIGNhc2UgJENPTkZJR19TSEVMTCBpbgotLSAgJycpCi0tICAgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLS1mb3IgYXNfZGlyIGluIC9iaW4kUEFUSF9TRVBBUkFUT1IvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRICi0tZG8KLS0gIElGUz0kYXNfc2F2ZV9JRlMKLS0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0tICBmb3IgYXNfYmFzZSBpbiBzaCBiYXNoIGtzaCBzaDU7IGRvCi0tCSBjYXNlICRhc19kaXIgaW4KLS0JIC8qKQotLQkgICBpZiAoIiRhc19kaXIvJGFzX2Jhc2UiIC1jICcKLS0gIGFzX2xpbmVub18xPSRMSU5FTk8KLS0gIGFzX2xpbmVub18yPSRMSU5FTk8KLS0gIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKLS0gIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotLSAgdGVzdCAieCRhc19saW5lbm9fMyIgID0gIngkYXNfbGluZW5vXzIiICcpIDI+L2Rldi9udWxsOyB0aGVuCi0tCSAgICAgJGFzX3Vuc2V0IEJBU0hfRU5WIHx8IHRlc3QgIiR7QkFTSF9FTlYrc2V0fSIgIT0gc2V0IHx8IHsgQkFTSF9FTlY9OyBleHBvcnQgQkFTSF9FTlY7IH0KLS0JICAgICAkYXNfdW5zZXQgRU5WIHx8IHRlc3QgIiR7RU5WK3NldH0iICE9IHNldCB8fCB7IEVOVj07IGV4cG9ydCBFTlY7IH0KLS0JICAgICBDT05GSUdfU0hFTEw9JGFzX2Rpci8kYXNfYmFzZQotLQkgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwKLS0JICAgICBleGVjICIkQ09ORklHX1NIRUxMIiAiJDAiICR7MSsiJEAifQotLQkgICBmaTs7Ci0tCSBlc2FjCi0tICAgICAgIGRvbmUKLS1kb25lCi0tOzsKLS0gIGVzYWMKLS0KLS0gICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KLS0gICMgdW5pZm9ybWx5IHJlcGxhY2VkIGJ5IHRoZSBsaW5lIG51bWJlci4gIFRoZSBmaXJzdCAnc2VkJyBpbnNlcnRzIGEKLS0gICMgbGluZS1udW1iZXIgbGluZSBiZWZvcmUgZWFjaCBsaW5lOyB0aGUgc2Vjb25kICdzZWQnIGRvZXMgdGhlIHJlYWwKLS0gICMgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaCBsaW5lLW51bWJlciBsaW5lCi0tICAjIHdpdGggdGhlIG51bWJlcmVkIGxpbmUsIGFuZCBhcHBlbmRzIHRyYWlsaW5nICctJyBkdXJpbmcKLS0gICMgc3Vic3RpdHV0aW9uIHNvIHRoYXQgJExJTkVOTyBpcyBub3QgYSBzcGVjaWFsIGNhc2UgYXQgbGluZSBlbmQuCi0tICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKLS0gICMgc2Vjb25kICdzZWQnIHNjcmlwdC4gIEJsYW1lIExlZSBFLiBNY01haG9uIGZvciBzZWQncyBzeW50YXguICA6LSkKLS0gIHNlZCAnPScgPCRhc19teXNlbGYgfAotLSAgICBzZWQgJwotLSAgICAgIE4KLS0gICAgICBzLCQsLSwKLS0gICAgICA6IGxvb3AKLS0gICAgICBzLF5cKFsnJGFzX2NyX2RpZ2l0cyddKlwpXCguKlwpWyRdTElORU5PXChbXickYXNfY3JfYWxudW0nX11cKSxcMVwyXDFcMywKLS0gICAgICB0IGxvb3AKLS0gICAgICBzLC0kLCwKLS0gICAgICBzLF5bJyRhc19jcl9kaWdpdHMnXSpcbiwsCi0tICAgICcgPiRhc19tZS5saW5lbm8gJiYKLS0gIGNobW9kICt4ICRhc19tZS5saW5lbm8gfHwKLS0gICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiYyCi0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0tCi0tICAjIERvbid0IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBvZiBwcm9ibGVtcwotLSAgIyAodGhlIGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJlIHdlIG1pZ2h0IGZpbmQgdGhlCi0tICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2libGUgdG8gdGhpcykuCi0tICAuIC4vJGFzX21lLmxpbmVubwotLSAgIyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCi0tICBleGl0Ci0tfQotLQotLQotLWNhc2UgYGVjaG8gInRlc3RpbmdcYyI7IGVjaG8gMSwyLDNgLGBlY2hvIC1uIHRlc3Rpbmc7IGVjaG8gMSwyLDNgIGluCi0tICAqYyosLW4qKSBFQ0hPX049IEVDSE9fQz0nCi0tJyBFQ0hPX1Q9JwknIDs7Ci0tICAqYyosKiAgKSBFQ0hPX049LW4gRUNIT19DPSBFQ0hPX1Q9IDs7Ci0tICAqKSAgICAgICBFQ0hPX049IEVDSE9fQz0nXGMnIEVDSE9fVD0gOzsKLS1lc2FjCi0tCi0taWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLS0gIGFzX2V4cHI9ZXhwcgotLWVsc2UKLS0gIGFzX2V4cHI9ZmFsc2UKLS1maQotLQotLXJtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0tZWNobyA+Y29uZiQkLmZpbGUKLS1pZiBsbiAtcyBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KLS0gICMgV2UgY291bGQganVzdCBjaGVjayBmb3IgREpHUFA7IGJ1dCB0aGlzIHRlc3QgYSkgd29ya3MgYikgaXMgbW9yZSBnZW5lcmljCi0tICAjIGFuZCBjKSB3aWxsIHJlbWFpbiB2YWxpZCBvbmNlIERKR1BQIHN1cHBvcnRzIHN5bWxpbmtzIChESkdQUCAyLjA0KS4KLS0gIGlmIHRlc3QgLWYgY29uZiQkLmV4ZTsgdGhlbgotLSAgICAjIERvbid0IHVzZSBsbiBhdCBhbGw7IHdlIGRvbid0IGhhdmUgYW55IGxpbmtzCi0tICAgIGFzX2xuX3M9J2NwIC1wJwotLSAgZWxzZQotLSAgICBhc19sbl9zPSdsbiAtcycKLS0gIGZpCi0tZWxpZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KLS0gIGFzX2xuX3M9bG4KLS1lbHNlCi0tICBhc19sbl9zPSdjcCAtcCcKLS1maQotLXJtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0tCi0taWYgbWtkaXIgLXAgLiAyPi9kZXYvbnVsbDsgdGhlbgotLSAgYXNfbWtkaXJfcD06Ci0tZWxzZQotLSAgYXNfbWtkaXJfcD1mYWxzZQotLWZpCi0tCi0tYXNfZXhlY3V0YWJsZV9wPSJ0ZXN0IC1mIgotLQotLSMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCBDUFAgbmFtZS4KLS1hc190cl9jcHA9InNlZCB5JSokYXNfY3JfbGV0dGVycyVQJGFzX2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWciCi0tCi0tIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCi0tYXNfdHJfc2g9InNlZCB5JSorJXBwJTtzJVteXyRhc19jcl9hbG51bV0lXyVnIgotLQotLQotLSMgSUZTCi0tIyBXZSBuZWVkIHNwYWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhhdCBvcmRlci4KLS1hc19ubD0nCi0tJwotLUlGUz0iIAkkYXNfbmwiCi0tCi0tIyBDRFBBVEguCi0tJGFzX3Vuc2V0IENEUEFUSAotLQotLQotLSMgTmFtZSBvZiB0aGUgaG9zdC4KLS0jIGhvc3RuYW1lIG9uIHNvbWUgc3lzdGVtcyAoU1ZSMy4yLCBMaW51eCkgcmV0dXJucyBhIGJvZ3VzIGV4aXQgc3RhdHVzLAotLSMgc28gdW5hbWUgZ2V0cyBydW4gdG9vLgotLWFjX2hvc3RuYW1lPWAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAotLQotLWV4ZWMgNj4mMQotLQotLSMKLS0jIEluaXRpYWxpemF0aW9ucy4KLS0jCi0rIyBEZWZhdWx0czoKLSthY19oZWxwPQotIGFjX2RlZmF1bHRfcHJlZml4PS91c3IvbG9jYWwKLS1hY19jb25maWdfbGlib2JqX2Rpcj0uCi0tY3Jvc3NfY29tcGlsaW5nPW5vCi0tc3ViZGlycz0KLS1NRkxBR1M9Ci0tTUFLRUZMQUdTPQotLVNIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9Ci0rIyBBbnkgYWRkaXRpb25zIGZyb20gY29uZmlndXJlLmluOgotK2FjX2hlbHA9IiRhY19oZWxwCi0rICAtLWRpc2FibGUtc2hhcmVkICAgICB3aXRob3V0IHNoYXJlZCBsaWJyYXJ5IHN1cHBvcnQiCi0rYWNfaGVscD0iJGFjX2hlbHAKLSsgIC0tZGlzYWJsZS1zb2NrZXRzICAgICB3aXRob3V0IHNvY2tldCBzdXBwb3J0IgotK2FjX2hlbHA9IiRhY19oZWxwCi0rICAtLXdpdGgtYXVkaW8gICAgICAgICAgd2l0aCBzcGVjaWZpYyBhdWRpbyBzdXBwb3J0IChub25lIGxpbnV4IGZyZWVic2QgZXRjKSAiCi0rYWNfaGVscD0iJGFjX2hlbHAKLSsgIC0td2l0aC1sYW5nICAgICAgICAgICB3aXRoIGxhbmd1YWdlICIKLSthY19oZWxwPSIkYWNfaGVscAotKyAgLS13aXRoLXZveCAgICAgICAgICAgIHdpdGggdm94ICIKLSthY19oZWxwPSIkYWNfaGVscAotKyAgLS13aXRoLWxleCAgICAgICAgICAgIHdpdGggbGV4aWNvbiAiCi0gCi0tIyBNYXhpbXVtIG51bWJlciBvZiBsaW5lcyB0byBwdXQgaW4gYSBzaGVsbCBoZXJlIGRvY3VtZW50LgotLSMgVGhpcyB2YXJpYWJsZSBzZWVtcyBvYnNvbGV0ZS4gIEl0IHNob3VsZCBwcm9iYWJseSBiZSByZW1vdmVkLCBhbmQKLS0jIG9ubHkgYWNfbWF4X3NlZF9saW5lcyBzaG91bGQgYmUgdXNlZC4KLS06ICR7YWNfbWF4X2hlcmVfbGluZXM9Mzh9Ci0tCi0tIyBJZGVudGl0eSBvZiB0aGlzIHBhY2thZ2UuCi0tUEFDS0FHRV9OQU1FPQotLVBBQ0tBR0VfVEFSTkFNRT0KLS1QQUNLQUdFX1ZFUlNJT049Ci0tUEFDS0FHRV9TVFJJTkc9Ci0tUEFDS0FHRV9CVUdSRVBPUlQ9Ci0tCi0tYWNfdW5pcXVlX2ZpbGU9ImluY2x1ZGUvZmxpdGUuaCIKLS0jIEZhY3RvcmluZyBkZWZhdWx0IGhlYWRlcnMgZm9yIG1vc3QgdGVzdHMuCi0tYWNfaW5jbHVkZXNfZGVmYXVsdD0iXAotLSNpbmNsdWRlIDxzdGRpby5oPgotLSNpZiBIQVZFX1NZU19UWVBFU19ICi0tIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLS0jZW5kaWYKLS0jaWYgSEFWRV9TWVNfU1RBVF9ICi0tIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotLSNlbmRpZgotLSNpZiBTVERDX0hFQURFUlMKLS0jIGluY2x1ZGUgPHN0ZGxpYi5oPgotLSMgaW5jbHVkZSA8c3RkZGVmLmg+Ci0tI2Vsc2UKLS0jIGlmIEhBVkVfU1RETElCX0gKLS0jICBpbmNsdWRlIDxzdGRsaWIuaD4KLS0jIGVuZGlmCi0tI2VuZGlmCi0tI2lmIEhBVkVfU1RSSU5HX0gKLS0jIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotLSMgIGluY2x1ZGUgPG1lbW9yeS5oPgotLSMgZW5kaWYKLS0jIGluY2x1ZGUgPHN0cmluZy5oPgotLSNlbmRpZgotLSNpZiBIQVZFX1NUUklOR1NfSAotLSMgaW5jbHVkZSA8c3RyaW5ncy5oPgotLSNlbmRpZgotLSNpZiBIQVZFX0lOVFRZUEVTX0gKLS0jIGluY2x1ZGUgPGludHR5cGVzLmg+Ci0tI2Vsc2UKLS0jIGlmIEhBVkVfU1RESU5UX0gKLS0jICBpbmNsdWRlIDxzdGRpbnQuaD4KLS0jIGVuZGlmCi0tI2VuZGlmCi0tI2lmIEhBVkVfVU5JU1REX0gKLS0jIGluY2x1ZGUgPHVuaXN0ZC5oPgotLSNlbmRpZiIKLS0KLS1hY19zdWJzdF92YXJzPSdTSEVMTCBQQVRIX1NFUEFSQVRPUiBQQUNLQUdFX05BTUUgUEFDS0FHRV9UQVJOQU1FIFBBQ0tBR0VfVkVSU0lPTiBQQUNLQUdFX1NUUklORyBQQUNLQUdFX0JVR1JFUE9SVCBleGVjX3ByZWZpeCBwcmVmaXggcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGxpYmRpciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIgYnVpbGRfYWxpYXMgaG9zdF9hbGlhcyB0YXJnZXRfYWxpYXMgREVGUyBFQ0hPX0MgRUNIT19OIEVDSE9fVCBMSUJTIGJ1aWxkIGJ1aWxkX2NwdSBidWlsZF92ZW5kb3IgYnVpbGRfb3MgaG9zdCBob3N0X2NwdSBob3N0X3ZlbmRvciBob3N0X29zIHRhcmdldCB0YXJnZXRfY3B1IHRhcmdldF92ZW5kb3IgdGFyZ2V0X29zIENDIENGTEFHUyBMREZMQUdTIENQUEZMQUdTIGFjX2N0X0NDIEVYRUVYVCBPQkpFWFQgUkFOTElCIGFjX2N0X1JBTkxJQiBJTlNUQUxMX1BST0dSQU0gSU5TVEFMTF9TQ1JJUFQgSU5TVEFMTF9EQVRBIEFSIGFjX2N0X0FSIFRBUkdFVF9PUyBUQVJHRVRfQ1BVIE02OEtDQyBMRVhERUZTIFZPWERFRlMgSE9TVF9PUyBIT1NUX0NQVSBPVEhFUkxJQlMgU0hGTEFHUyBNTUFQVFlQRSBTVERJT1RZUEUgQ1BQIEVHUkVQIEFVRElPRFJJVkVSIEFVRElPREVGUyBBVURJT0xJQlMgRkxfTEFORyBGTF9WT1ggRkxfTEVYIExJQk9CSlMgTFRMSUJPQkpTJwotLWFjX3N1YnN0X2ZpbGVzPScnCi0tCi0gIyBJbml0aWFsaXplIHNvbWUgdmFyaWFibGVzIHNldCBieSBvcHRpb25zLgotLWFjX2luaXRfaGVscD0KLS1hY19pbml0X3ZlcnNpb249ZmFsc2UKLSAjIFRoZSB2YXJpYWJsZXMgaGF2ZSB0aGUgc2FtZSBuYW1lcyBhcyB0aGUgb3B0aW9ucywgd2l0aAotICMgZGFzaGVzIGNoYW5nZWQgdG8gdW5kZXJsaW5lcy4KLS1jYWNoZV9maWxlPS9kZXYvbnVsbAotK2J1aWxkPU5PTkUKLStjYWNoZV9maWxlPS4vY29uZmlnLmNhY2hlCi0gZXhlY19wcmVmaXg9Tk9ORQotK2hvc3Q9Tk9ORQotIG5vX2NyZWF0ZT0KLStub25vcHQ9Tk9ORQotIG5vX3JlY3Vyc2lvbj0KLSBwcmVmaXg9Tk9ORQotIHByb2dyYW1fcHJlZml4PU5PTkUKLUBAIC0zMjcsMTUgKzQxLDEwIEBACi0gc2lsZW50PQotIHNpdGU9Ci0gc3JjZGlyPQotK3RhcmdldD1OT05FCi0gdmVyYm9zZT0KLSB4X2luY2x1ZGVzPU5PTkUKLSB4X2xpYnJhcmllcz1OT05FCi0tCi0tIyBJbnN0YWxsYXRpb24gZGlyZWN0b3J5IG9wdGlvbnMuCi0tIyBUaGVzZSBhcmUgbGVmdCB1bmV4cGFuZGVkIHNvIHVzZXJzIGNhbiAibWFrZSBpbnN0YWxsIGV4ZWNfcHJlZml4PS9mb28iCi0tIyBhbmQgYWxsIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgc3VwcG9zZWQgdG8gYmUgYmFzZWQgb24gZXhlY19wcmVmaXgKLS0jIGJ5IGRlZmF1bHQgd2lsbCBhY3R1YWxseSBjaGFuZ2UuCi0tIyBVc2UgYnJhY2VzIGluc3RlYWQgb2YgcGFyZW5zIGJlY2F1c2Ugc2gsIHBlcmwsIGV0Yy4gYWxzbyBhY2NlcHQgdGhlbS4KLSBiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicKLSBzYmluZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJwotIGxpYmV4ZWNkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYmV4ZWMnCi1AQCAtMzQ5LDkgKzU4LDE3IEBACi0gaW5mb2Rpcj0nJHtwcmVmaXh9L2luZm8nCi0gbWFuZGlyPScke3ByZWZpeH0vbWFuJwotIAotKyMgSW5pdGlhbGl6ZSBzb21lIG90aGVyIHZhcmlhYmxlcy4KLStzdWJkaXJzPQotK01GTEFHUz0gTUFLRUZMQUdTPQotK1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9Ci0rIyBNYXhpbXVtIG51bWJlciBvZiBsaW5lcyB0byBwdXQgaW4gYSBzaGVsbCBoZXJlIGRvY3VtZW50LgotK2FjX21heF9oZXJlX2xpbmVzPTEyCi0rCi0gYWNfcHJldj0KLSBmb3IgYWNfb3B0aW9uCi0gZG8KLSsKLSAgICMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgotICAgaWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCi0gICAgIGV2YWwgIiRhY19wcmV2PVwkYWNfb3B0aW9uIgotQEAgLTM1OSw1OSArNzYsNTkgQEAKLSAgICAgY29udGludWUKLSAgIGZpCi0gCi0tICBhY19vcHRhcmc9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4W149XSo9XCguKlwpJ2AKLSsgIGNhc2UgIiRhY19vcHRpb24iIGluCi0rICAtKj0qKSBhY19vcHRhcmc9YGVjaG8gIiRhY19vcHRpb24iIHwgc2VkICdzL1stX2EtekEtWjAtOV0qPS8vJ2AgOzsKLSsgICopIGFjX29wdGFyZz0gOzsKLSsgIGVzYWMKLSAKLSAgICMgQWNjZXB0IHRoZSBpbXBvcnRhbnQgQ3lnbnVzIGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlhZ25vc2UgdHlwb3MuCi0gCi0tICBjYXNlICRhY19vcHRpb24gaW4KLSsgIGNhc2UgIiRhY19vcHRpb24iIGluCi0gCi0gICAtYmluZGlyIHwgLS1iaW5kaXIgfCAtLWJpbmRpIHwgLS1iaW5kIHwgLS1iaW4gfCAtLWJpKQotICAgICBhY19wcmV2PWJpbmRpciA7OwotICAgLWJpbmRpcj0qIHwgLS1iaW5kaXI9KiB8IC0tYmluZGk9KiB8IC0tYmluZD0qIHwgLS1iaW49KiB8IC0tYmk9KikKLS0gICAgYmluZGlyPSRhY19vcHRhcmcgOzsKLSsgICAgYmluZGlyPSIkYWNfb3B0YXJnIiA7OwotIAotICAgLWJ1aWxkIHwgLS1idWlsZCB8IC0tYnVpbCB8IC0tYnVpIHwgLS1idSkKLS0gICAgYWNfcHJldj1idWlsZF9hbGlhcyA7OwotKyAgICBhY19wcmV2PWJ1aWxkIDs7Ci0gICAtYnVpbGQ9KiB8IC0tYnVpbGQ9KiB8IC0tYnVpbD0qIHwgLS1idWk9KiB8IC0tYnU9KikKLS0gICAgYnVpbGRfYWxpYXM9JGFjX29wdGFyZyA7OwotKyAgICBidWlsZD0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC1jYWNoZS1maWxlIHwgLS1jYWNoZS1maWxlIHwgLS1jYWNoZS1maWwgfCAtLWNhY2hlLWZpIFwKLSAgIHwgLS1jYWNoZS1mIHwgLS1jYWNoZS0gfCAtLWNhY2hlIHwgLS1jYWNoIHwgLS1jYWMgfCAtLWNhIHwgLS1jKQotICAgICBhY19wcmV2PWNhY2hlX2ZpbGUgOzsKLSAgIC1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbGU9KiB8IC0tY2FjaGUtZmlsPSogfCAtLWNhY2hlLWZpPSogXAotICAgfCAtLWNhY2hlLWY9KiB8IC0tY2FjaGUtPSogfCAtLWNhY2hlPSogfCAtLWNhY2g9KiB8IC0tY2FjPSogfCAtLWNhPSogfCAtLWM9KikKLS0gICAgY2FjaGVfZmlsZT0kYWNfb3B0YXJnIDs7Ci0rICAgIGNhY2hlX2ZpbGU9IiRhY19vcHRhcmciIDs7Ci0gCi0tICAtLWNvbmZpZy1jYWNoZSB8IC1DKQotLSAgICBjYWNoZV9maWxlPWNvbmZpZy5jYWNoZSA7OwotLQotICAgLWRhdGFkaXIgfCAtLWRhdGFkaXIgfCAtLWRhdGFkaSB8IC0tZGF0YWQgfCAtLWRhdGEgfCAtLWRhdCB8IC0tZGEpCi0gICAgIGFjX3ByZXY9ZGF0YWRpciA7OwotICAgLWRhdGFkaXI9KiB8IC0tZGF0YWRpcj0qIHwgLS1kYXRhZGk9KiB8IC0tZGF0YWQ9KiB8IC0tZGF0YT0qIHwgLS1kYXQ9KiBcCi0gICB8IC0tZGE9KikKLS0gICAgZGF0YWRpcj0kYWNfb3B0YXJnIDs7Ci0rICAgIGRhdGFkaXI9IiRhY19vcHRhcmciIDs7Ci0gCi0gICAtZGlzYWJsZS0qIHwgLS1kaXNhYmxlLSopCi0tICAgIGFjX2ZlYXR1cmU9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSpkaXNhYmxlLVwoLipcKSdgCi0rICAgIGFjX2ZlYXR1cmU9YGVjaG8gJGFjX29wdGlvbnxzZWQgLWUgJ3MvLSpkaXNhYmxlLS8vJ2AKLSAgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotLSAgICBleHByICJ4JGFjX2ZlYXR1cmUiIDogIi4qW14tXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLS0gICAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgZmVhdHVyZSBuYW1lOiAkYWNfZmVhdHVyZSIgPiYyCi0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0tICAgIGFjX2ZlYXR1cmU9YGVjaG8gJGFjX2ZlYXR1cmUgfCBzZWQgJ3MvLS9fL2cnYAotLSAgICBldmFsICJlbmFibGVfJGFjX2ZlYXR1cmU9bm8iIDs7Ci0rICAgIGlmIHRlc3QgLW4gImBlY2hvICRhY19mZWF0dXJlfCBzZWQgJ3MvWy1hLXpBLVowLTlfXS8vZydgIjsgdGhlbgotKyAgICAgIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogJGFjX2ZlYXR1cmU6IGludmFsaWQgZmVhdHVyZSBuYW1lIiAxPiYyOyBleGl0IDE7IH0KLSsgICAgZmkKLSsgICAgYWNfZmVhdHVyZT1gZWNobyAkYWNfZmVhdHVyZXwgc2VkICdzLy0vXy9nJ2AKLSsgICAgZXZhbCAiZW5hYmxlXyR7YWNfZmVhdHVyZX09bm8iIDs7Ci0gCi0gICAtZW5hYmxlLSogfCAtLWVuYWJsZS0qKQotLSAgICBhY19mZWF0dXJlPWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZW5hYmxlLVwoW149XSpcKSdgCi0rICAgIGFjX2ZlYXR1cmU9YGVjaG8gJGFjX29wdGlvbnxzZWQgLWUgJ3MvLSplbmFibGUtLy8nIC1lICdzLz0uKi8vJ2AKLSAgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotLSAgICBleHByICJ4JGFjX2ZlYXR1cmUiIDogIi4qW14tXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLS0gICAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgZmVhdHVyZSBuYW1lOiAkYWNfZmVhdHVyZSIgPiYyCi0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0tICAgIGFjX2ZlYXR1cmU9YGVjaG8gJGFjX2ZlYXR1cmUgfCBzZWQgJ3MvLS9fL2cnYAotLSAgICBjYXNlICRhY19vcHRpb24gaW4KLS0gICAgICAqPSopIGFjX29wdGFyZz1gZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OwotKyAgICBpZiB0ZXN0IC1uICJgZWNobyAkYWNfZmVhdHVyZXwgc2VkICdzL1stX2EtekEtWjAtOV0vL2cnYCI7IHRoZW4KLSsgICAgICB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6ICRhY19mZWF0dXJlOiBpbnZhbGlkIGZlYXR1cmUgbmFtZSIgMT4mMjsgZXhpdCAxOyB9Ci0rICAgIGZpCi0rICAgIGFjX2ZlYXR1cmU9YGVjaG8gJGFjX2ZlYXR1cmV8IHNlZCAncy8tL18vZydgCi0rICAgIGNhc2UgIiRhY19vcHRpb24iIGluCi0rICAgICAgKj0qKSA7OwotICAgICAgICopIGFjX29wdGFyZz15ZXMgOzsKLSAgICAgZXNhYwotLSAgICBldmFsICJlbmFibGVfJGFjX2ZlYXR1cmU9JyRhY19vcHRhcmcnIiA7OwotKyAgICBldmFsICJlbmFibGVfJHthY19mZWF0dXJlfT0nJGFjX29wdGFyZyciIDs7Ci0gCi0gICAtZXhlYy1wcmVmaXggfCAtLWV4ZWNfcHJlZml4IHwgLS1leGVjLXByZWZpeCB8IC0tZXhlYy1wcmVmaSBcCi0gICB8IC0tZXhlYy1wcmVmIHwgLS1leGVjLXByZSB8IC0tZXhlYy1wciB8IC0tZXhlYy1wIHwgLS1leGVjLSBcCi1AQCAtNDIwLDQ3ICsxMzcsOTUgQEAKLSAgIC1leGVjLXByZWZpeD0qIHwgLS1leGVjX3ByZWZpeD0qIHwgLS1leGVjLXByZWZpeD0qIHwgLS1leGVjLXByZWZpPSogXAotICAgfCAtLWV4ZWMtcHJlZj0qIHwgLS1leGVjLXByZT0qIHwgLS1leGVjLXByPSogfCAtLWV4ZWMtcD0qIHwgLS1leGVjLT0qIFwKLSAgIHwgLS1leGVjPSogfCAtLWV4ZT0qIHwgLS1leD0qKQotLSAgICBleGVjX3ByZWZpeD0kYWNfb3B0YXJnIDs7Ci0rICAgIGV4ZWNfcHJlZml4PSIkYWNfb3B0YXJnIiA7OwotIAotICAgLWdhcyB8IC0tZ2FzIHwgLS1nYSB8IC0tZykKLSAgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC1nYXMuCi0gICAgIHdpdGhfZ2FzPXllcyA7OwotIAotLSAgLWhlbHAgfCAtLWhlbHAgfCAtLWhlbCB8IC0taGUgfCAtaCkKLS0gICAgYWNfaW5pdF9oZWxwPWxvbmcgOzsKLS0gIC1oZWxwPXIqIHwgLS1oZWxwPXIqIHwgLS1oZWw9ciogfCAtLWhlPXIqIHwgLWhyKikKLS0gICAgYWNfaW5pdF9oZWxwPXJlY3Vyc2l2ZSA7OwotLSAgLWhlbHA9cyogfCAtLWhlbHA9cyogfCAtLWhlbD1zKiB8IC0taGU9cyogfCAtaHMqKQotLSAgICBhY19pbml0X2hlbHA9c2hvcnQgOzsKLSsgIC1oZWxwIHwgLS1oZWxwIHwgLS1oZWwgfCAtLWhlKQotKyAgICAjIE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBvc2luZy4KLSsgICAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgotKyAgICBjYXQgPDwgRU9GCi0rVXNhZ2U6IGNvbmZpZ3VyZSBbb3B0aW9uc10gW2hvc3RdCi0rT3B0aW9uczogW2RlZmF1bHRzIGluIGJyYWNrZXRzIGFmdGVyIGRlc2NyaXB0aW9uc10KLStDb25maWd1cmF0aW9uOgotKyAgLS1jYWNoZS1maWxlPUZJTEUgICAgICAgY2FjaGUgdGVzdCByZXN1bHRzIGluIEZJTEUKLSsgIC0taGVscCAgICAgICAgICAgICAgICAgIHByaW50IHRoaXMgbWVzc2FnZQotKyAgLS1uby1jcmVhdGUgICAgICAgICAgICAgZG8gbm90IGNyZWF0ZSBvdXRwdXQgZmlsZXMKLSsgIC0tcXVpZXQsIC0tc2lsZW50ICAgICAgIGRvIG5vdCBwcmludCBcYGNoZWNraW5nLi4uJyBtZXNzYWdlcwotKyAgLS12ZXJzaW9uICAgICAgICAgICAgICAgcHJpbnQgdGhlIHZlcnNpb24gb2YgYXV0b2NvbmYgdGhhdCBjcmVhdGVkIGNvbmZpZ3VyZQotK0RpcmVjdG9yeSBhbmQgZmlsZSBuYW1lczoKLSsgIC0tcHJlZml4PVBSRUZJWCAgICAgICAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGZpbGVzIGluIFBSRUZJWAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgWyRhY19kZWZhdWx0X3ByZWZpeF0KLSsgIC0tZXhlYy1wcmVmaXg9RVBSRUZJWCAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBmaWxlcyBpbiBFUFJFRklYCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBbc2FtZSBhcyBwcmVmaXhdCi0rICAtLWJpbmRpcj1ESVIgICAgICAgICAgICB1c2VyIGV4ZWN1dGFibGVzIGluIERJUiBbRVBSRUZJWC9iaW5dCi0rICAtLXNiaW5kaXI9RElSICAgICAgICAgICBzeXN0ZW0gYWRtaW4gZXhlY3V0YWJsZXMgaW4gRElSIFtFUFJFRklYL3NiaW5dCi0rICAtLWxpYmV4ZWNkaXI9RElSICAgICAgICBwcm9ncmFtIGV4ZWN1dGFibGVzIGluIERJUiBbRVBSRUZJWC9saWJleGVjXQotKyAgLS1kYXRhZGlyPURJUiAgICAgICAgICAgcmVhZC1vbmx5IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIGluIERJUgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgW1BSRUZJWC9zaGFyZV0KLSsgIC0tc3lzY29uZmRpcj1ESVIgICAgICAgIHJlYWQtb25seSBzaW5nbGUtbWFjaGluZSBkYXRhIGluIERJUiBbUFJFRklYL2V0Y10KLSsgIC0tc2hhcmVkc3RhdGVkaXI9RElSICAgIG1vZGlmaWFibGUgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGRhdGEgaW4gRElSCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBbUFJFRklYL2NvbV0KLSsgIC0tbG9jYWxzdGF0ZWRpcj1ESVIgICAgIG1vZGlmaWFibGUgc2luZ2xlLW1hY2hpbmUgZGF0YSBpbiBESVIgW1BSRUZJWC92YXJdCi0rICAtLWxpYmRpcj1ESVIgICAgICAgICAgICBvYmplY3QgY29kZSBsaWJyYXJpZXMgaW4gRElSIFtFUFJFRklYL2xpYl0KLSsgIC0taW5jbHVkZWRpcj1ESVIgICAgICAgIEMgaGVhZGVyIGZpbGVzIGluIERJUiBbUFJFRklYL2luY2x1ZGVdCi0rICAtLW9sZGluY2x1ZGVkaXI9RElSICAgICBDIGhlYWRlciBmaWxlcyBmb3Igbm9uLWdjYyBpbiBESVIgWy91c3IvaW5jbHVkZV0KLSsgIC0taW5mb2Rpcj1ESVIgICAgICAgICAgIGluZm8gZG9jdW1lbnRhdGlvbiBpbiBESVIgW1BSRUZJWC9pbmZvXQotKyAgLS1tYW5kaXI9RElSICAgICAgICAgICAgbWFuIGRvY3VtZW50YXRpb24gaW4gRElSIFtQUkVGSVgvbWFuXQotKyAgLS1zcmNkaXI9RElSICAgICAgICAgICAgZmluZCB0aGUgc291cmNlcyBpbiBESVIgW2NvbmZpZ3VyZSBkaXIgb3IgLi5dCi0rICAtLXByb2dyYW0tcHJlZml4PVBSRUZJWCBwcmVwZW5kIFBSRUZJWCB0byBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwotKyAgLS1wcm9ncmFtLXN1ZmZpeD1TVUZGSVggYXBwZW5kIFNVRkZJWCB0byBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwotKyAgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPVBST0dSQU0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1biBzZWQgUFJPR1JBTSBvbiBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwotK0VPRgotKyAgICBjYXQgPDwgRU9GCi0rSG9zdCB0eXBlOgotKyAgLS1idWlsZD1CVUlMRCAgICAgICAgICAgY29uZmlndXJlIGZvciBidWlsZGluZyBvbiBCVUlMRCBbQlVJTEQ9SE9TVF0KLSsgIC0taG9zdD1IT1NUICAgICAgICAgICAgIGNvbmZpZ3VyZSBmb3IgSE9TVCBbZ3Vlc3NlZF0KLSsgIC0tdGFyZ2V0PVRBUkdFVCAgICAgICAgIGNvbmZpZ3VyZSBmb3IgVEFSR0VUIFtUQVJHRVQ9SE9TVF0KLStGZWF0dXJlcyBhbmQgcGFja2FnZXM6Ci0rICAtLWRpc2FibGUtRkVBVFVSRSAgICAgICBkbyBub3QgaW5jbHVkZSBGRUFUVVJFIChzYW1lIGFzIC0tZW5hYmxlLUZFQVRVUkU9bm8pCi0rICAtLWVuYWJsZS1GRUFUVVJFWz1BUkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNdCi0rICAtLXdpdGgtUEFDS0FHRVs9QVJHXSAgICB1c2UgUEFDS0FHRSBbQVJHPXllc10KLSsgIC0td2l0aG91dC1QQUNLQUdFICAgICAgIGRvIG5vdCB1c2UgUEFDS0FHRSAoc2FtZSBhcyAtLXdpdGgtUEFDS0FHRT1ubykKLSsgIC0teC1pbmNsdWRlcz1ESVIgICAgICAgIFggaW5jbHVkZSBmaWxlcyBhcmUgaW4gRElSCi0rICAtLXgtbGlicmFyaWVzPURJUiAgICAgICBYIGxpYnJhcnkgZmlsZXMgYXJlIGluIERJUgotK0VPRgotKyAgICBpZiB0ZXN0IC1uICIkYWNfaGVscCI7IHRoZW4KLSsgICAgICBlY2hvICItLWVuYWJsZSBhbmQgLS13aXRoIG9wdGlvbnMgcmVjb2duaXplZDokYWNfaGVscCIKLSsgICAgZmkKLSsgICAgZXhpdCAwIDs7Ci0gCi0gICAtaG9zdCB8IC0taG9zdCB8IC0taG9zIHwgLS1obykKLS0gICAgYWNfcHJldj1ob3N0X2FsaWFzIDs7Ci0rICAgIGFjX3ByZXY9aG9zdCA7OwotICAgLWhvc3Q9KiB8IC0taG9zdD0qIHwgLS1ob3M9KiB8IC0taG89KikKLS0gICAgaG9zdF9hbGlhcz0kYWNfb3B0YXJnIDs7Ci0rICAgIGhvc3Q9IiRhY19vcHRhcmciIDs7Ci0gCi0gICAtaW5jbHVkZWRpciB8IC0taW5jbHVkZWRpciB8IC0taW5jbHVkZWRpIHwgLS1pbmNsdWRlZCB8IC0taW5jbHVkZSBcCi0gICB8IC0taW5jbHVkIHwgLS1pbmNsdSB8IC0taW5jbCB8IC0taW5jKQotICAgICBhY19wcmV2PWluY2x1ZGVkaXIgOzsKLSAgIC1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaXI9KiB8IC0taW5jbHVkZWRpPSogfCAtLWluY2x1ZGVkPSogfCAtLWluY2x1ZGU9KiBcCi0gICB8IC0taW5jbHVkPSogfCAtLWluY2x1PSogfCAtLWluY2w9KiB8IC0taW5jPSopCi0tICAgIGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OwotKyAgICBpbmNsdWRlZGlyPSIkYWNfb3B0YXJnIiA7OwotIAotICAgLWluZm9kaXIgfCAtLWluZm9kaXIgfCAtLWluZm9kaSB8IC0taW5mb2QgfCAtLWluZm8gfCAtLWluZikKLSAgICAgYWNfcHJldj1pbmZvZGlyIDs7Ci0gICAtaW5mb2Rpcj0qIHwgLS1pbmZvZGlyPSogfCAtLWluZm9kaT0qIHwgLS1pbmZvZD0qIHwgLS1pbmZvPSogfCAtLWluZj0qKQotLSAgICBpbmZvZGlyPSRhY19vcHRhcmcgOzsKLSsgICAgaW5mb2Rpcj0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC1saWJkaXIgfCAtLWxpYmRpciB8IC0tbGliZGkgfCAtLWxpYmQpCi0gICAgIGFjX3ByZXY9bGliZGlyIDs7Ci0gICAtbGliZGlyPSogfCAtLWxpYmRpcj0qIHwgLS1saWJkaT0qIHwgLS1saWJkPSopCi0tICAgIGxpYmRpcj0kYWNfb3B0YXJnIDs7Ci0rICAgIGxpYmRpcj0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC1saWJleGVjZGlyIHwgLS1saWJleGVjZGlyIHwgLS1saWJleGVjZGkgfCAtLWxpYmV4ZWNkIHwgLS1saWJleGVjIFwKLSAgIHwgLS1saWJleGUgfCAtLWxpYmV4IHwgLS1saWJlKQotICAgICBhY19wcmV2PWxpYmV4ZWNkaXIgOzsKLSAgIC1saWJleGVjZGlyPSogfCAtLWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2RpPSogfCAtLWxpYmV4ZWNkPSogfCAtLWxpYmV4ZWM9KiBcCi0gICB8IC0tbGliZXhlPSogfCAtLWxpYmV4PSogfCAtLWxpYmU9KikKLS0gICAgbGliZXhlY2Rpcj0kYWNfb3B0YXJnIDs7Ci0rICAgIGxpYmV4ZWNkaXI9IiRhY19vcHRhcmciIDs7Ci0gCi0gICAtbG9jYWxzdGF0ZWRpciB8IC0tbG9jYWxzdGF0ZWRpciB8IC0tbG9jYWxzdGF0ZWRpIHwgLS1sb2NhbHN0YXRlZCBcCi0gICB8IC0tbG9jYWxzdGF0ZSB8IC0tbG9jYWxzdGF0IHwgLS1sb2NhbHN0YSB8IC0tbG9jYWxzdCBcCi1AQCAtNDY5LDE5ICsyMzQsMTkgQEAKLSAgIC1sb2NhbHN0YXRlZGlyPSogfCAtLWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpPSogfCAtLWxvY2Fsc3RhdGVkPSogXAotICAgfCAtLWxvY2Fsc3RhdGU9KiB8IC0tbG9jYWxzdGF0PSogfCAtLWxvY2Fsc3RhPSogfCAtLWxvY2Fsc3Q9KiBcCi0gICB8IC0tbG9jYWxzPSogfCAtLWxvY2FsPSogfCAtLWxvY2E9KiB8IC0tbG9jPSogfCAtLWxvPSopCi0tICAgIGxvY2Fsc3RhdGVkaXI9JGFjX29wdGFyZyA7OwotKyAgICBsb2NhbHN0YXRlZGlyPSIkYWNfb3B0YXJnIiA7OwotIAotICAgLW1hbmRpciB8IC0tbWFuZGlyIHwgLS1tYW5kaSB8IC0tbWFuZCB8IC0tbWFuIHwgLS1tYSB8IC0tbSkKLSAgICAgYWNfcHJldj1tYW5kaXIgOzsKLSAgIC1tYW5kaXI9KiB8IC0tbWFuZGlyPSogfCAtLW1hbmRpPSogfCAtLW1hbmQ9KiB8IC0tbWFuPSogfCAtLW1hPSogfCAtLW09KikKLS0gICAgbWFuZGlyPSRhY19vcHRhcmcgOzsKLSsgICAgbWFuZGlyPSIkYWNfb3B0YXJnIiA7OwotIAotICAgLW5mcCB8IC0tbmZwIHwgLS1uZikKLSAgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aG91dC1mcC4KLSAgICAgd2l0aF9mcD1ubyA7OwotIAotICAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKLS0gIHwgLS1uby1jciB8IC0tbm8tYyB8IC1uKQotKyAgfCAtLW5vLWNyIHwgLS1uby1jKQotICAgICBub19jcmVhdGU9eWVzIDs7Ci0gCi0gICAtbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1yZWN1cnNpIFwKLUBAIC00OTUsMjYgKzI2MCwyNiBAQAotICAgLW9sZGluY2x1ZGVkaXI9KiB8IC0tb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGk9KiB8IC0tb2xkaW5jbHVkZWQ9KiBcCi0gICB8IC0tb2xkaW5jbHVkZT0qIHwgLS1vbGRpbmNsdWQ9KiB8IC0tb2xkaW5jbHU9KiB8IC0tb2xkaW5jbD0qIHwgLS1vbGRpbmM9KiBcCi0gICB8IC0tb2xkaW49KiB8IC0tb2xkaT0qIHwgLS1vbGQ9KiB8IC0tb2w9KiB8IC0tbz0qKQotLSAgICBvbGRpbmNsdWRlZGlyPSRhY19vcHRhcmcgOzsKLSsgICAgb2xkaW5jbHVkZWRpcj0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC1wcmVmaXggfCAtLXByZWZpeCB8IC0tcHJlZmkgfCAtLXByZWYgfCAtLXByZSB8IC0tcHIgfCAtLXApCi0gICAgIGFjX3ByZXY9cHJlZml4IDs7Ci0gICAtcHJlZml4PSogfCAtLXByZWZpeD0qIHwgLS1wcmVmaT0qIHwgLS1wcmVmPSogfCAtLXByZT0qIHwgLS1wcj0qIHwgLS1wPSopCi0tICAgIHByZWZpeD0kYWNfb3B0YXJnIDs7Ci0rICAgIHByZWZpeD0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC1wcm9ncmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZmkgfCAtLXByb2dyYW0tcHJlZiBcCi0gICB8IC0tcHJvZ3JhbS1wcmUgfCAtLXByb2dyYW0tcHIgfCAtLXByb2dyYW0tcCkKLSAgICAgYWNfcHJldj1wcm9ncmFtX3ByZWZpeCA7OwotICAgLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZmk9KiBcCi0gICB8IC0tcHJvZ3JhbS1wcmVmPSogfCAtLXByb2dyYW0tcHJlPSogfCAtLXByb2dyYW0tcHI9KiB8IC0tcHJvZ3JhbS1wPSopCi0tICAgIHByb2dyYW1fcHJlZml4PSRhY19vcHRhcmcgOzsKLSsgICAgcHJvZ3JhbV9wcmVmaXg9IiRhY19vcHRhcmciIDs7Ci0gCi0gICAtcHJvZ3JhbS1zdWZmaXggfCAtLXByb2dyYW0tc3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpIHwgLS1wcm9ncmFtLXN1ZmYgXAotICAgfCAtLXByb2dyYW0tc3VmIHwgLS1wcm9ncmFtLXN1IHwgLS1wcm9ncmFtLXMpCi0gICAgIGFjX3ByZXY9cHJvZ3JhbV9zdWZmaXggOzsKLSAgIC1wcm9ncmFtLXN1ZmZpeD0qIHwgLS1wcm9ncmFtLXN1ZmZpeD0qIHwgLS1wcm9ncmFtLXN1ZmZpPSogXAotICAgfCAtLXByb2dyYW0tc3VmZj0qIHwgLS1wcm9ncmFtLXN1Zj0qIHwgLS1wcm9ncmFtLXN1PSogfCAtLXByb2dyYW0tcz0qKQotLSAgICBwcm9ncmFtX3N1ZmZpeD0kYWNfb3B0YXJnIDs7Ci0rICAgIHByb2dyYW1fc3VmZml4PSIkYWNfb3B0YXJnIiA7OwotIAotICAgLXByb2dyYW0tdHJhbnNmb3JtLW5hbWUgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbWUgXAotICAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbSB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmEgXAotQEAgLTUzMSw3ICsyOTYsNyBAQAotICAgfCAtLXByb2dyYW0tdHJhbnNmbz0qIHwgLS1wcm9ncmFtLXRyYW5zZj0qIFwKLSAgIHwgLS1wcm9ncmFtLXRyYW5zPSogfCAtLXByb2dyYW0tdHJhbj0qIFwKLSAgIHwgLS1wcm9nci10cmE9KiB8IC0tcHJvZ3JhbS10cj0qIHwgLS1wcm9ncmFtLXQ9KikKLS0gICAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0kYWNfb3B0YXJnIDs7Ci0rICAgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9IiRhY19vcHRhcmciIDs7Ci0gCi0gICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAotICAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwpCi1AQCAtNTQxLDcgKzMwNiw3IEBACi0gICAgIGFjX3ByZXY9c2JpbmRpciA7OwotICAgLXNiaW5kaXI9KiB8IC0tc2JpbmRpcj0qIHwgLS1zYmluZGk9KiB8IC0tc2JpbmQ9KiB8IC0tc2Jpbj0qIFwKLSAgIHwgLS1zYmk9KiB8IC0tc2I9KikKLS0gICAgc2JpbmRpcj0kYWNfb3B0YXJnIDs7Ci0rICAgIHNiaW5kaXI9IiRhY19vcHRhcmciIDs7Ci0gCi0gICAtc2hhcmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpIFwKLSAgIHwgLS1zaGFyZWRzdGF0ZWQgfCAtLXNoYXJlZHN0YXRlIHwgLS1zaGFyZWRzdGF0IHwgLS1zaGFyZWRzdGEgXAotQEAgLTU1Miw1NyArMzE3LDU4IEBACi0gICB8IC0tc2hhcmVkc3RhdGVkPSogfCAtLXNoYXJlZHN0YXRlPSogfCAtLXNoYXJlZHN0YXQ9KiB8IC0tc2hhcmVkc3RhPSogXAotICAgfCAtLXNoYXJlZHN0PSogfCAtLXNoYXJlZHM9KiB8IC0tc2hhcmVkPSogfCAtLXNoYXJlPSogfCAtLXNoYXI9KiBcCi0gICB8IC0tc2hhPSogfCAtLXNoPSopCi0tICAgIHNoYXJlZHN0YXRlZGlyPSRhY19vcHRhcmcgOzsKLSsgICAgc2hhcmVkc3RhdGVkaXI9IiRhY19vcHRhcmciIDs7Ci0gCi0gICAtc2l0ZSB8IC0tc2l0ZSB8IC0tc2l0KQotICAgICBhY19wcmV2PXNpdGUgOzsKLSAgIC1zaXRlPSogfCAtLXNpdGU9KiB8IC0tc2l0PSopCi0tICAgIHNpdGU9JGFjX29wdGFyZyA7OwotKyAgICBzaXRlPSIkYWNfb3B0YXJnIiA7OwotIAotICAgLXNyY2RpciB8IC0tc3JjZGlyIHwgLS1zcmNkaSB8IC0tc3JjZCB8IC0tc3JjIHwgLS1zcikKLSAgICAgYWNfcHJldj1zcmNkaXIgOzsKLSAgIC1zcmNkaXI9KiB8IC0tc3JjZGlyPSogfCAtLXNyY2RpPSogfCAtLXNyY2Q9KiB8IC0tc3JjPSogfCAtLXNyPSopCi0tICAgIHNyY2Rpcj0kYWNfb3B0YXJnIDs7Ci0rICAgIHNyY2Rpcj0iJGFjX29wdGFyZyIgOzsKLSAKLSAgIC1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGkgfCAtLXN5c2NvbmZkIHwgLS1zeXNjb25mIFwKLSAgIHwgLS1zeXNjb24gfCAtLXN5c2NvIHwgLS1zeXNjIHwgLS1zeXMgfCAtLXN5KQotICAgICBhY19wcmV2PXN5c2NvbmZkaXIgOzsKLSAgIC1zeXNjb25mZGlyPSogfCAtLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpPSogfCAtLXN5c2NvbmZkPSogfCAtLXN5c2NvbmY9KiBcCi0gICB8IC0tc3lzY29uPSogfCAtLXN5c2NvPSogfCAtLXN5c2M9KiB8IC0tc3lzPSogfCAtLXN5PSopCi0tICAgIHN5c2NvbmZkaXI9JGFjX29wdGFyZyA7OwotKyAgICBzeXNjb25mZGlyPSIkYWNfb3B0YXJnIiA7OwotIAotICAgLXRhcmdldCB8IC0tdGFyZ2V0IHwgLS10YXJnZSB8IC0tdGFyZyB8IC0tdGFyIHwgLS10YSB8IC0tdCkKLS0gICAgYWNfcHJldj10YXJnZXRfYWxpYXMgOzsKLSsgICAgYWNfcHJldj10YXJnZXQgOzsKLSAgIC10YXJnZXQ9KiB8IC0tdGFyZ2V0PSogfCAtLXRhcmdlPSogfCAtLXRhcmc9KiB8IC0tdGFyPSogfCAtLXRhPSogfCAtLXQ9KikKLS0gICAgdGFyZ2V0X2FsaWFzPSRhY19vcHRhcmcgOzsKLSsgICAgdGFyZ2V0PSIkYWNfb3B0YXJnIiA7OwotIAotICAgLXYgfCAtdmVyYm9zZSB8IC0tdmVyYm9zZSB8IC0tdmVyYm9zIHwgLS12ZXJibyB8IC0tdmVyYikKLSAgICAgdmVyYm9zZT15ZXMgOzsKLSAKLS0gIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwgLVYpCi0tICAgIGFjX2luaXRfdmVyc2lvbj06IDs7Ci0rICAtdmVyc2lvbiB8IC0tdmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12ZXJzaSB8IC0tdmVycykKLSsgICAgZWNobyAiY29uZmlndXJlIGdlbmVyYXRlZCBieSBhdXRvY29uZiB2ZXJzaW9uIDIuMTMiCi0rICAgIGV4aXQgMCA7OwotIAotICAgLXdpdGgtKiB8IC0td2l0aC0qKQotLSAgICBhY19wYWNrYWdlPWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qd2l0aC1cKFtePV0qXCknYAotKyAgICBhY19wYWNrYWdlPWBlY2hvICRhY19vcHRpb258c2VkIC1lICdzLy0qd2l0aC0vLycgLWUgJ3MvPS4qLy8nYAotICAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0tICAgIGV4cHIgIngkYWNfcGFja2FnZSIgOiAiLipbXi1fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotLSAgICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBwYWNrYWdlIG5hbWU6ICRhY19wYWNrYWdlIiA+JjIKLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgICAgaWYgdGVzdCAtbiAiYGVjaG8gJGFjX3BhY2thZ2V8IHNlZCAncy9bLV9hLXpBLVowLTldLy9nJ2AiOyB0aGVuCi0rICAgICAgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiAkYWNfcGFja2FnZTogaW52YWxpZCBwYWNrYWdlIG5hbWUiIDE+JjI7IGV4aXQgMTsgfQotKyAgICBmaQotICAgICBhY19wYWNrYWdlPWBlY2hvICRhY19wYWNrYWdlfCBzZWQgJ3MvLS9fL2cnYAotLSAgICBjYXNlICRhY19vcHRpb24gaW4KLS0gICAgICAqPSopIGFjX29wdGFyZz1gZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OwotKyAgICBjYXNlICIkYWNfb3B0aW9uIiBpbgotKyAgICAgICo9KikgOzsKLSAgICAgICAqKSBhY19vcHRhcmc9eWVzIDs7Ci0gICAgIGVzYWMKLS0gICAgZXZhbCAid2l0aF8kYWNfcGFja2FnZT0nJGFjX29wdGFyZyciIDs7Ci0rICAgIGV2YWwgIndpdGhfJHthY19wYWNrYWdlfT0nJGFjX29wdGFyZyciIDs7Ci0gCi0gICAtd2l0aG91dC0qIHwgLS13aXRob3V0LSopCi0tICAgIGFjX3BhY2thZ2U9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRob3V0LVwoLipcKSdgCi0rICAgIGFjX3BhY2thZ2U9YGVjaG8gJGFjX29wdGlvbnxzZWQgLWUgJ3MvLSp3aXRob3V0LS8vJ2AKLSAgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotLSAgICBleHByICJ4JGFjX3BhY2thZ2UiIDogIi4qW14tXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLS0gICAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgcGFja2FnZSBuYW1lOiAkYWNfcGFja2FnZSIgPiYyCi0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0tICAgIGFjX3BhY2thZ2U9YGVjaG8gJGFjX3BhY2thZ2UgfCBzZWQgJ3MvLS9fL2cnYAotLSAgICBldmFsICJ3aXRoXyRhY19wYWNrYWdlPW5vIiA7OwotKyAgICBpZiB0ZXN0IC1uICJgZWNobyAkYWNfcGFja2FnZXwgc2VkICdzL1stYS16QS1aMC05X10vL2cnYCI7IHRoZW4KLSsgICAgICB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6ICRhY19wYWNrYWdlOiBpbnZhbGlkIHBhY2thZ2UgbmFtZSIgMT4mMjsgZXhpdCAxOyB9Ci0rICAgIGZpCi0rICAgIGFjX3BhY2thZ2U9YGVjaG8gJGFjX3BhY2thZ2V8IHNlZCAncy8tL18vZydgCi0rICAgIGV2YWwgIndpdGhfJHthY19wYWNrYWdlfT1ubyIgOzsKLSAKLSAgIC0teCkKLSAgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC14LgotQEAgLTYxMywxMTAgKzM3OSw5OSBAQAotICAgICBhY19wcmV2PXhfaW5jbHVkZXMgOzsKLSAgIC14LWluY2x1ZGVzPSogfCAtLXgtaW5jbHVkZXM9KiB8IC0teC1pbmNsdWRlPSogfCAtLXgtaW5jbHVkPSogfCAtLXgtaW5jbHU9KiBcCi0gICB8IC0teC1pbmNsPSogfCAtLXgtaW5jPSogfCAtLXgtaW49KiB8IC0teC1pPSopCi0tICAgIHhfaW5jbHVkZXM9JGFjX29wdGFyZyA7OwotKyAgICB4X2luY2x1ZGVzPSIkYWNfb3B0YXJnIiA7OwotIAotICAgLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllcyB8IC0teC1saWJyYXJpZSB8IC0teC1saWJyYXJpIFwKLSAgIHwgLS14LWxpYnJhciB8IC0teC1saWJyYSB8IC0teC1saWJyIHwgLS14LWxpYiB8IC0teC1saSB8IC0teC1sKQotICAgICBhY19wcmV2PXhfbGlicmFyaWVzIDs7Ci0gICAteC1saWJyYXJpZXM9KiB8IC0teC1saWJyYXJpZXM9KiB8IC0teC1saWJyYXJpZT0qIHwgLS14LWxpYnJhcmk9KiBcCi0gICB8IC0teC1saWJyYXI9KiB8IC0teC1saWJyYT0qIHwgLS14LWxpYnI9KiB8IC0teC1saWI9KiB8IC0teC1saT0qIHwgLS14LWw9KikKLS0gICAgeF9saWJyYXJpZXM9JGFjX29wdGFyZyA7OwotKyAgICB4X2xpYnJhcmllcz0iJGFjX29wdGFyZyIgOzsKLSAKLS0gIC0qKSB7IGVjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICRhY19vcHRpb24KLS1UcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCi0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAtKikgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiAkYWNfb3B0aW9uOiBpbnZhbGlkIG9wdGlvbjsgdXNlIC0taGVscCB0byBzaG93IHVzYWdlIiAxPiYyOyBleGl0IDE7IH0KLSAgICAgOzsKLSAKLS0gICo9KikKLS0gICAgYWNfZW52dmFyPWBleHByICJ4JGFjX29wdGlvbiIgOiAneFwoW149XSpcKT0nYAotLSAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0tICAgIGV4cHIgIngkYWNfZW52dmFyIiA6ICIuKlteXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLS0gICAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgdmFyaWFibGUgbmFtZTogJGFjX2VudnZhciIgPiYyCi0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0tICAgIGFjX29wdGFyZz1gZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAKLS0gICAgZXZhbCAiJGFjX2VudnZhcj0nJGFjX29wdGFyZyciCi0tICAgIGV4cG9ydCAkYWNfZW52dmFyIDs7Ci0tCi0gICAqKQotLSAgICAjIEZJWE1FOiBzaG91bGQgYmUgcmVtb3ZlZCBpbiBhdXRvY29uZiAzLjAuCi0tICAgIGVjaG8gIiRhc19tZTogV0FSTklORzogeW91IHNob3VsZCB1c2UgLS1idWlsZCwgLS1ob3N0LCAtLXRhcmdldCIgPiYyCi0tICAgIGV4cHIgIngkYWNfb3B0aW9uIiA6ICIuKlteLS5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotLSAgICAgIGVjaG8gIiRhc19tZTogV0FSTklORzogaW52YWxpZCBob3N0IHR5cGU6ICRhY19vcHRpb24iID4mMgotLSAgICA6ICR7YnVpbGRfYWxpYXM9JGFjX29wdGlvbn0gJHtob3N0X2FsaWFzPSRhY19vcHRpb259ICR7dGFyZ2V0X2FsaWFzPSRhY19vcHRpb259Ci0rICAgIGlmIHRlc3QgLW4gImBlY2hvICRhY19vcHRpb258IHNlZCAncy9bLWEtejAtOS5dLy9nJ2AiOyB0aGVuCi0rICAgICAgZWNobyAiY29uZmlndXJlOiB3YXJuaW5nOiAkYWNfb3B0aW9uOiBpbnZhbGlkIGhvc3QgdHlwZSIgMT4mMgotKyAgICBmaQotKyAgICBpZiB0ZXN0ICJ4JG5vbm9wdCIgIT0geE5PTkU7IHRoZW4KLSsgICAgICB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6IGNhbiBvbmx5IGNvbmZpZ3VyZSBmb3Igb25lIGhvc3QgYW5kIG9uZSB0YXJnZXQgYXQgYSB0aW1lIiAxPiYyOyBleGl0IDE7IH0KLSsgICAgZmkKLSsgICAgbm9ub3B0PSIkYWNfb3B0aW9uIgotICAgICA7OwotIAotICAgZXNhYwotIGRvbmUKLSAKLSBpZiB0ZXN0IC1uICIkYWNfcHJldiI7IHRoZW4KLS0gIGFjX29wdGlvbj0tLWBlY2hvICRhY19wcmV2IHwgc2VkICdzL18vLS9nJ2AKLS0gIHsgZWNobyAiJGFzX21lOiBlcnJvcjogbWlzc2luZyBhcmd1bWVudCB0byAkYWNfb3B0aW9uIiA+JjIKLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogbWlzc2luZyBhcmd1bWVudCB0byAtLWBlY2hvICRhY19wcmV2IHwgc2VkICdzL18vLS9nJ2AiIDE+JjI7IGV4aXQgMTsgfQotIGZpCi0gCi0tIyBCZSBzdXJlIHRvIGhhdmUgYWJzb2x1dGUgcGF0aHMuCi0tZm9yIGFjX3ZhciBpbiBleGVjX3ByZWZpeCBwcmVmaXgKLS1kbwotLSAgZXZhbCBhY192YWw9JGBlY2hvICRhY192YXJgCi0tICBjYXNlICRhY192YWwgaW4KLS0gICAgW1xcLyRdKiB8ID86W1xcL10qIHwgTk9ORSB8ICcnICkgOzsKLS0gICAgKikgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogZXhwZWN0ZWQgYW4gYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgZm9yIC0tJGFjX3ZhcjogJGFjX3ZhbCIgPiYyCi0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKLS0gIGVzYWMKLS1kb25lCi0rdHJhcCAncm0gLWZyIGNvbmZ0ZXN0KiBjb25mZGVmcyogY29yZSBjb3JlLiogKi5jb3JlICRhY19jbGVhbl9maWxlczsgZXhpdCAxJyAxIDIgMTUKLSAKLS0jIEJlIHN1cmUgdG8gaGF2ZSBhYnNvbHV0ZSBwYXRocy4KLS1mb3IgYWNfdmFyIGluIGJpbmRpciBzYmluZGlyIGxpYmV4ZWNkaXIgZGF0YWRpciBzeXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIFwKLS0gICAgICAgICAgICAgIGxvY2Fsc3RhdGVkaXIgbGliZGlyIGluY2x1ZGVkaXIgb2xkaW5jbHVkZWRpciBpbmZvZGlyIG1hbmRpcgotKyMgRmlsZSBkZXNjcmlwdG9yIHVzYWdlOgotKyMgMCBzdGFuZGFyZCBpbnB1dAotKyMgMSBmaWxlIGNyZWF0aW9uCi0rIyAyIGVycm9ycyBhbmQgd2FybmluZ3MKLSsjIDMgc29tZSBzeXN0ZW1zIG1heSBvcGVuIGl0IHRvIC9kZXYvdHR5Ci0rIyA0IHVzZWQgb24gdGhlIEt1Ym90YSBUaXRhbgotKyMgNiBjaGVja2luZyBmb3IuLi4gbWVzc2FnZXMgYW5kIHJlc3VsdHMKLSsjIDUgY29tcGlsZXIgbWVzc2FnZXMgc2F2ZWQgaW4gY29uZmlnLmxvZwotK2lmIHRlc3QgIiRzaWxlbnQiID0geWVzOyB0aGVuCi0rICBleGVjIDY+L2Rldi9udWxsCi0rZWxzZQotKyAgZXhlYyA2PiYxCi0rZmkKLStleGVjIDU+Li9jb25maWcubG9nCi0rCi0rZWNobyAiXAotK1RoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCi0rcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4KLSsiIDE+JjUKLSsKLSsjIFN0cmlwIG91dCAtLW5vLWNyZWF0ZSBhbmQgLS1uby1yZWN1cnNpb24gc28gdGhleSBkbyBub3QgcGlsZSB1cC4KLSsjIEFsc28gcXVvdGUgYW55IGFyZ3MgY29udGFpbmluZyBzaGVsbCBtZXRhY2hhcmFjdGVycy4KLSthY19jb25maWd1cmVfYXJncz0KLStmb3IgYWNfYXJnCi0gZG8KLS0gIGV2YWwgYWNfdmFsPSRgZWNobyAkYWNfdmFyYAotLSAgY2FzZSAkYWNfdmFsIGluCi0tICAgIFtcXC8kXSogfCA/OltcXC9dKiApIDs7Ci0tICAgICopICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGV4cGVjdGVkIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192YWwiID4mMgotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0rICBjYXNlICIkYWNfYXJnIiBpbgotKyAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKLSsgIHwgLS1uby1jciB8IC0tbm8tYykgOzsKLSsgIC1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvbiB8IC0tbm8tcmVjdXJzaW8gfCAtLW5vLXJlY3Vyc2kgXAotKyAgfCAtLW5vLXJlY3VycyB8IC0tbm8tcmVjdXIgfCAtLW5vLXJlY3UgfCAtLW5vLXJlYyB8IC0tbm8tcmUgfCAtLW5vLXIpIDs7Ci0rICAqIiAiKnwqIgkiKnwqW1xbXF1cflwjXCRcXlwmXCpcKFwpXHtcfVxcXHxcO1w8XD5cP10qKQotKyAgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAnJGFjX2FyZyciIDs7Ci0rICAqKSBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzICRhY19hcmciIDs7Ci0gICBlc2FjCi0gZG9uZQotIAotLSMgVGhlcmUgbWlnaHQgYmUgcGVvcGxlIHdobyBkZXBlbmQgb24gdGhlIG9sZCBicm9rZW4gYmVoYXZpb3I6IGAkaG9zdCcKLS0jIHVzZWQgdG8gaG9sZCB0aGUgYXJndW1lbnQgb2YgLS1ob3N0IGV0Yy4KLS0jIEZJWE1FOiBUbyByZW1vdmUgc29tZSBkYXkuCi0tYnVpbGQ9JGJ1aWxkX2FsaWFzCi0taG9zdD0kaG9zdF9hbGlhcwotLXRhcmdldD0kdGFyZ2V0X2FsaWFzCi0rIyBOTFMgbnVpc2FuY2VzLgotKyMgT25seSBzZXQgdGhlc2UgdG8gQyBpZiBhbHJlYWR5IHNldC4gIFRoZXNlIG11c3Qgbm90IGJlIHNldCB1bmNvbmRpdGlvbmFsbHkKLSsjIGJlY2F1c2Ugbm90IGFsbCBzeXN0ZW1zIHVuZGVyc3RhbmQgZS5nLiBMQU5HPUMgKG5vdGFibHkgU0NPKS4KLSsjIEZpeGluZyBMQ19NRVNTQUdFUyBwcmV2ZW50cyBTb2xhcmlzIHNoIGZyb20gdHJhbnNsYXRpbmcgdmFyIHZhbHVlcyBpbiBgc2V0JyEKLSsjIE5vbi1DIExDX0NUWVBFIHZhbHVlcyBicmVhayB0aGUgY3R5cGUgY2hlY2suCi0raWYgdGVzdCAiJHtMQU5HK3NldH0iICAgPSBzZXQ7IHRoZW4gTEFORz1DOyAgIGV4cG9ydCBMQU5HOyAgIGZpCi0raWYgdGVzdCAiJHtMQ19BTEwrc2V0fSIgPSBzZXQ7IHRoZW4gTENfQUxMPUM7IGV4cG9ydCBMQ19BTEw7IGZpCi0raWYgdGVzdCAiJHtMQ19NRVNTQUdFUytzZXR9IiA9IHNldDsgdGhlbiBMQ19NRVNTQUdFUz1DOyBleHBvcnQgTENfTUVTU0FHRVM7IGZpCi0raWYgdGVzdCAiJHtMQ19DVFlQRStzZXR9IiAgICA9IHNldDsgdGhlbiBMQ19DVFlQRT1DOyAgICBleHBvcnQgTENfQ1RZUEU7ICAgIGZpCi0gCi0tIyBGSVhNRTogVG8gcmVtb3ZlIHNvbWUgZGF5LgotLWlmIHRlc3QgIngkaG9zdF9hbGlhcyIgIT0geDsgdGhlbgotLSAgaWYgdGVzdCAieCRidWlsZF9hbGlhcyIgPSB4OyB0aGVuCi0tICAgIGNyb3NzX2NvbXBpbGluZz1tYXliZQotLSAgICBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IElmIHlvdSB3YW50ZWQgdG8gc2V0IHRoZSAtLWJ1aWxkIHR5cGUsIGRvbid0IHVzZSAtLWhvc3QuCi0tICAgIElmIGEgY3Jvc3MgY29tcGlsZXIgaXMgZGV0ZWN0ZWQgdGhlbiBjcm9zcyBjb21waWxlIG1vZGUgd2lsbCBiZSB1c2VkLiIgPiYyCi0tICBlbGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiICE9ICJ4JGhvc3RfYWxpYXMiOyB0aGVuCi0tICAgIGNyb3NzX2NvbXBpbGluZz15ZXMKLS0gIGZpCi0tZmkKLSsjIGNvbmZkZWZzLmggYXZvaWRzIE9TIGNvbW1hbmQgbGluZSBsZW5ndGggbGltaXRzIHRoYXQgREVGUyBjYW4gZXhjZWVkLgotK3JtIC1yZiBjb25mdGVzdCogY29uZmRlZnMuaAotKyMgQUlYIGNwcCBsb3NlcyBvbiBhbiBlbXB0eSBmaWxlLCBzbyBtYWtlIHN1cmUgaXQgY29udGFpbnMgYXQgbGVhc3QgYSBuZXdsaW5lLgotK2VjaG8gPiBjb25mZGVmcy5oCi0gCi0tYWNfdG9vbF9wcmVmaXg9Ci0tdGVzdCAtbiAiJGhvc3RfYWxpYXMiICYmIGFjX3Rvb2xfcHJlZml4PSRob3N0X2FsaWFzLQotKyMgQSBmaWxlbmFtZSB1bmlxdWUgdG8gdGhpcyBwYWNrYWdlLCByZWxhdGl2ZSB0byB0aGUgZGlyZWN0b3J5IHRoYXQKLSsjIGNvbmZpZ3VyZSBpcyBpbiwgd2hpY2ggd2UgY2FuIGxvb2sgZm9yIHRvIGZpbmQgb3V0IGlmIHNyY2RpciBpcyBjb3JyZWN0LgotK2FjX3VuaXF1ZV9maWxlPWluY2x1ZGUvZmxpdGUuaAotIAotLXRlc3QgIiRzaWxlbnQiID0geWVzICYmIGV4ZWMgNj4vZGV2L251bGwKLS0KLS0KLSAjIEZpbmQgdGhlIHNvdXJjZSBmaWxlcywgaWYgbG9jYXRpb24gd2FzIG5vdCBzcGVjaWZpZWQuCi0gaWYgdGVzdCAteiAiJHNyY2RpciI7IHRoZW4KLSAgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9eWVzCi0gICAjIFRyeSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhpcyBzY3JpcHQsIHRoZW4gaXRzIHBhcmVudC4KLS0gIGFjX2NvbmZkaXI9YChkaXJuYW1lICIkMCIpIDI+L2Rldi9udWxsIHx8Ci0tJGFzX2V4cHIgWCIkMCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLS0gICAgICAgICBYIiQwIiA6ICdYXCgvL1wpW14vXScgXHwgXAotLSAgICAgICAgIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCi0tICAgICAgICAgWCIkMCIgOiAnWFwoL1wpJyBcfCBcCi0tICAgICAgICAgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8Ci0tZWNobyBYIiQwIiB8Ci0tICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLS0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLS0gIAkgIHMvLiovLi87IHEnYAotKyAgYWNfcHJvZz0kMAotKyAgYWNfY29uZmRpcj1gZWNobyAkYWNfcHJvZ3xzZWQgJ3MlL1teL11bXi9dKiQlJSdgCi0rICB0ZXN0ICJ4JGFjX2NvbmZkaXIiID0gIngkYWNfcHJvZyIgJiYgYWNfY29uZmRpcj0uCi0gICBzcmNkaXI9JGFjX2NvbmZkaXIKLSAgIGlmIHRlc3QgISAtciAkc3JjZGlyLyRhY191bmlxdWVfZmlsZTsgdGhlbgotICAgICBzcmNkaXI9Li4KLUBAIC03MjYsNDQxICs0ODEsMTMgQEAKLSBmaQotIGlmIHRlc3QgISAtciAkc3JjZGlyLyRhY191bmlxdWVfZmlsZTsgdGhlbgotICAgaWYgdGVzdCAiJGFjX3NyY2Rpcl9kZWZhdWx0ZWQiID0geWVzOyB0aGVuCi0tICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgc291cmNlcyAoJGFjX3VuaXF1ZV9maWxlKSBpbiAkYWNfY29uZmRpciBvciAuLiIgPiYyCi0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAgIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogY2FuIG5vdCBmaW5kIHNvdXJjZXMgaW4gJGFjX2NvbmZkaXIgb3IgLi4iIDE+JjI7IGV4aXQgMTsgfQotICAgZWxzZQotLSAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIHNvdXJjZXMgKCRhY191bmlxdWVfZmlsZSkgaW4gJHNyY2RpciIgPiYyCi0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAgIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogY2FuIG5vdCBmaW5kIHNvdXJjZXMgaW4gJHNyY2RpciIgMT4mMjsgZXhpdCAxOyB9Ci0gICBmaQotIGZpCi0tKGNkICRzcmNkaXIgJiYgdGVzdCAtciAuLyRhY191bmlxdWVfZmlsZSkgMj4vZGV2L251bGwgfHwKLS0gIHsgZWNobyAiJGFzX21lOiBlcnJvcjogc291cmNlcyBhcmUgaW4gJHNyY2RpciwgYnV0IFxgY2QgJHNyY2RpcicgZG9lcyBub3Qgd29yayIgPiYyCi0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0tc3JjZGlyPWBlY2hvICIkc3JjZGlyIiB8IHNlZCAncyVcKFteXFwvXVwpW1xcL10qJCVcMSUnYAotLWFjX2Vudl9idWlsZF9hbGlhc19zZXQ9JHtidWlsZF9hbGlhcytzZXR9Ci0tYWNfZW52X2J1aWxkX2FsaWFzX3ZhbHVlPSRidWlsZF9hbGlhcwotLWFjX2N2X2Vudl9idWlsZF9hbGlhc19zZXQ9JHtidWlsZF9hbGlhcytzZXR9Ci0tYWNfY3ZfZW52X2J1aWxkX2FsaWFzX3ZhbHVlPSRidWlsZF9hbGlhcwotLWFjX2Vudl9ob3N0X2FsaWFzX3NldD0ke2hvc3RfYWxpYXMrc2V0fQotLWFjX2Vudl9ob3N0X2FsaWFzX3ZhbHVlPSRob3N0X2FsaWFzCi0tYWNfY3ZfZW52X2hvc3RfYWxpYXNfc2V0PSR7aG9zdF9hbGlhcytzZXR9Ci0tYWNfY3ZfZW52X2hvc3RfYWxpYXNfdmFsdWU9JGhvc3RfYWxpYXMKLS1hY19lbnZfdGFyZ2V0X2FsaWFzX3NldD0ke3RhcmdldF9hbGlhcytzZXR9Ci0tYWNfZW52X3RhcmdldF9hbGlhc192YWx1ZT0kdGFyZ2V0X2FsaWFzCi0tYWNfY3ZfZW52X3RhcmdldF9hbGlhc19zZXQ9JHt0YXJnZXRfYWxpYXMrc2V0fQotLWFjX2N2X2Vudl90YXJnZXRfYWxpYXNfdmFsdWU9JHRhcmdldF9hbGlhcwotLWFjX2Vudl9DQ19zZXQ9JHtDQytzZXR9Ci0tYWNfZW52X0NDX3ZhbHVlPSRDQwotLWFjX2N2X2Vudl9DQ19zZXQ9JHtDQytzZXR9Ci0tYWNfY3ZfZW52X0NDX3ZhbHVlPSRDQwotLWFjX2Vudl9DRkxBR1Nfc2V0PSR7Q0ZMQUdTK3NldH0KLS1hY19lbnZfQ0ZMQUdTX3ZhbHVlPSRDRkxBR1MKLS1hY19jdl9lbnZfQ0ZMQUdTX3NldD0ke0NGTEFHUytzZXR9Ci0tYWNfY3ZfZW52X0NGTEFHU192YWx1ZT0kQ0ZMQUdTCi0tYWNfZW52X0xERkxBR1Nfc2V0PSR7TERGTEFHUytzZXR9Ci0tYWNfZW52X0xERkxBR1NfdmFsdWU9JExERkxBR1MKLS1hY19jdl9lbnZfTERGTEFHU19zZXQ9JHtMREZMQUdTK3NldH0KLS1hY19jdl9lbnZfTERGTEFHU192YWx1ZT0kTERGTEFHUwotLWFjX2Vudl9DUFBGTEFHU19zZXQ9JHtDUFBGTEFHUytzZXR9Ci0tYWNfZW52X0NQUEZMQUdTX3ZhbHVlPSRDUFBGTEFHUwotLWFjX2N2X2Vudl9DUFBGTEFHU19zZXQ9JHtDUFBGTEFHUytzZXR9Ci0tYWNfY3ZfZW52X0NQUEZMQUdTX3ZhbHVlPSRDUFBGTEFHUwotLWFjX2Vudl9DUFBfc2V0PSR7Q1BQK3NldH0KLS1hY19lbnZfQ1BQX3ZhbHVlPSRDUFAKLS1hY19jdl9lbnZfQ1BQX3NldD0ke0NQUCtzZXR9Ci0tYWNfY3ZfZW52X0NQUF92YWx1ZT0kQ1BQCi0rc3JjZGlyPWBlY2hvICIke3NyY2Rpcn0iIHwgc2VkICdzJVwoW14vXVwpLyokJVwxJSdgCi0gCi0tIwotLSMgUmVwb3J0IHRoZSAtLWhlbHAgbWVzc2FnZS4KLS0jCi0taWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAibG9uZyI7IHRoZW4KLS0gICMgT21pdCBzb21lIGludGVybmFsIG9yIG9ic29sZXRlIG9wdGlvbnMgdG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgotLSAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgotLSAgY2F0IDw8X0FDRU9GCi0tXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgdGhpcyBwYWNrYWdlIHRvIGFkYXB0IHRvIG1hbnkga2luZHMgb2Ygc3lzdGVtcy4KLS0KLS1Vc2FnZTogJDAgW09QVElPTl0uLi4gW1ZBUj1WQUxVRV0uLi4KLS0KLS1UbyBhc3NpZ24gZW52aXJvbm1lbnQgdmFyaWFibGVzIChlLmcuLCBDQywgQ0ZMQUdTLi4uKSwgc3BlY2lmeSB0aGVtIGFzCi0tVkFSPVZBTFVFLiAgU2VlIGJlbG93IGZvciBkZXNjcmlwdGlvbnMgb2Ygc29tZSBvZiB0aGUgdXNlZnVsIHZhcmlhYmxlcy4KLS0KLS1EZWZhdWx0cyBmb3IgdGhlIG9wdGlvbnMgYXJlIHNwZWNpZmllZCBpbiBicmFja2V0cy4KLS0KLS1Db25maWd1cmF0aW9uOgotLSAgLWgsIC0taGVscCAgICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKLS0gICAgICAtLWhlbHA9c2hvcnQgICAgICAgIGRpc3BsYXkgb3B0aW9ucyBzcGVjaWZpYyB0byB0aGlzIHBhY2thZ2UKLS0gICAgICAtLWhlbHA9cmVjdXJzaXZlICAgIGRpc3BsYXkgdGhlIHNob3J0IGhlbHAgb2YgYWxsIHRoZSBpbmNsdWRlZCBwYWNrYWdlcwotLSAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Ci0tICAtcSwgLS1xdWlldCwgLS1zaWxlbnQgICBkbyBub3QgcHJpbnQgXGBjaGVja2luZy4uLicgbWVzc2FnZXMKLS0gICAgICAtLWNhY2hlLWZpbGU9RklMRSAgIGNhY2hlIHRlc3QgcmVzdWx0cyBpbiBGSUxFIFtkaXNhYmxlZF0KLS0gIC1DLCAtLWNvbmZpZy1jYWNoZSAgICAgIGFsaWFzIGZvciBcYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnCi0tICAtbiwgLS1uby1jcmVhdGUgICAgICAgICBkbyBub3QgY3JlYXRlIG91dHB1dCBmaWxlcwotLSAgICAgIC0tc3JjZGlyPURJUiAgICAgICAgZmluZCB0aGUgc291cmNlcyBpbiBESVIgW2NvbmZpZ3VyZSBkaXIgb3IgXGAuLiddCi0tCi0tX0FDRU9GCi0tCi0tICBjYXQgPDxfQUNFT0YKLS1JbnN0YWxsYXRpb24gZGlyZWN0b3JpZXM6Ci0tICAtLXByZWZpeD1QUkVGSVggICAgICAgICBpbnN0YWxsIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcyBpbiBQUkVGSVgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIFskYWNfZGVmYXVsdF9wcmVmaXhdCi0tICAtLWV4ZWMtcHJlZml4PUVQUkVGSVggICBpbnN0YWxsIGFyY2hpdGVjdHVyZS1kZXBlbmRlbnQgZmlsZXMgaW4gRVBSRUZJWAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgW1BSRUZJWF0KLS0KLS1CeSBkZWZhdWx0LCBcYG1ha2UgaW5zdGFsbCcgd2lsbCBpbnN0YWxsIGFsbCB0aGUgZmlsZXMgaW4KLS1cYCRhY19kZWZhdWx0X3ByZWZpeC9iaW4nLCBcYCRhY19kZWZhdWx0X3ByZWZpeC9saWInIGV0Yy4gIFlvdSBjYW4gc3BlY2lmeQotLWFuIGluc3RhbGxhdGlvbiBwcmVmaXggb3RoZXIgdGhhbiBcYCRhY19kZWZhdWx0X3ByZWZpeCcgdXNpbmcgXGAtLXByZWZpeCcsCi0tZm9yIGluc3RhbmNlIFxgLS1wcmVmaXg9XCRIT01FJy4KLS0KLS1Gb3IgYmV0dGVyIGNvbnRyb2wsIHVzZSB0aGUgb3B0aW9ucyBiZWxvdy4KLS0KLS1GaW5lIHR1bmluZyBvZiB0aGUgaW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzOgotLSAgLS1iaW5kaXI9RElSICAgICAgICAgICB1c2VyIGV4ZWN1dGFibGVzIFtFUFJFRklYL2Jpbl0KLS0gIC0tc2JpbmRpcj1ESVIgICAgICAgICAgc3lzdGVtIGFkbWluIGV4ZWN1dGFibGVzIFtFUFJFRklYL3NiaW5dCi0tICAtLWxpYmV4ZWNkaXI9RElSICAgICAgIHByb2dyYW0gZXhlY3V0YWJsZXMgW0VQUkVGSVgvbGliZXhlY10KLS0gIC0tZGF0YWRpcj1ESVIgICAgICAgICAgcmVhZC1vbmx5IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQUkVGSVgvc2hhcmVdCi0tICAtLXN5c2NvbmZkaXI9RElSICAgICAgIHJlYWQtb25seSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvZXRjXQotLSAgLS1zaGFyZWRzdGF0ZWRpcj1ESVIgICBtb2RpZmlhYmxlIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQUkVGSVgvY29tXQotLSAgLS1sb2NhbHN0YXRlZGlyPURJUiAgICBtb2RpZmlhYmxlIHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC92YXJdCi0tICAtLWxpYmRpcj1ESVIgICAgICAgICAgIG9iamVjdCBjb2RlIGxpYnJhcmllcyBbRVBSRUZJWC9saWJdCi0tICAtLWluY2x1ZGVkaXI9RElSICAgICAgIEMgaGVhZGVyIGZpbGVzIFtQUkVGSVgvaW5jbHVkZV0KLS0gIC0tb2xkaW5jbHVkZWRpcj1ESVIgICAgQyBoZWFkZXIgZmlsZXMgZm9yIG5vbi1nY2MgWy91c3IvaW5jbHVkZV0KLS0gIC0taW5mb2Rpcj1ESVIgICAgICAgICAgaW5mbyBkb2N1bWVudGF0aW9uIFtQUkVGSVgvaW5mb10KLS0gIC0tbWFuZGlyPURJUiAgICAgICAgICAgbWFuIGRvY3VtZW50YXRpb24gW1BSRUZJWC9tYW5dCi0tX0FDRU9GCi0tCi0tICBjYXQgPDxcX0FDRU9GCi0tCi0tU3lzdGVtIHR5cGVzOgotLSAgLS1idWlsZD1CVUlMRCAgICAgY29uZmlndXJlIGZvciBidWlsZGluZyBvbiBCVUlMRCBbZ3Vlc3NlZF0KLS0gIC0taG9zdD1IT1NUICAgICAgIGNyb3NzLWNvbXBpbGUgdG8gYnVpbGQgcHJvZ3JhbXMgdG8gcnVuIG9uIEhPU1QgW0JVSUxEXQotLSAgLS10YXJnZXQ9VEFSR0VUICAgY29uZmlndXJlIGZvciBidWlsZGluZyBjb21waWxlcnMgZm9yIFRBUkdFVCBbSE9TVF0KLS1fQUNFT0YKLS1maQotLQotLWlmIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiOyB0aGVuCi0tCi0tICBjYXQgPDxcX0FDRU9GCi0tCi0tT3B0aW9uYWwgRmVhdHVyZXM6Ci0tICAtLWRpc2FibGUtRkVBVFVSRSAgICAgICBkbyBub3QgaW5jbHVkZSBGRUFUVVJFIChzYW1lIGFzIC0tZW5hYmxlLUZFQVRVUkU9bm8pCi0tICAtLWVuYWJsZS1GRUFUVVJFWz1BUkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNdCi0tICAtLWRpc2FibGUtc2hhcmVkICAgICB3aXRob3V0IHNoYXJlZCBsaWJyYXJ5IHN1cHBvcnQKLS0gIC0tZGlzYWJsZS1zb2NrZXRzICAgICB3aXRob3V0IHNvY2tldCBzdXBwb3J0Ci0tCi0tT3B0aW9uYWwgUGFja2FnZXM6Ci0tICAtLXdpdGgtUEFDS0FHRVs9QVJHXSAgICB1c2UgUEFDS0FHRSBbQVJHPXllc10KLS0gIC0td2l0aG91dC1QQUNLQUdFICAgICAgIGRvIG5vdCB1c2UgUEFDS0FHRSAoc2FtZSBhcyAtLXdpdGgtUEFDS0FHRT1ubykKLS0gIC0td2l0aC1hdWRpbyAgICAgICAgICB3aXRoIHNwZWNpZmljIGF1ZGlvIHN1cHBvcnQgKG5vbmUgbGludXggZnJlZWJzZCBldGMpCi0tICAtLXdpdGgtbGFuZyAgICAgICAgICAgd2l0aCBsYW5ndWFnZQotLSAgLS13aXRoLXZveCAgICAgICAgICAgIHdpdGggdm94Ci0tICAtLXdpdGgtbGV4ICAgICAgICAgICAgd2l0aCBsZXhpY29uCi0tCi0tU29tZSBpbmZsdWVudGlhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0tICBDQyAgICAgICAgICBDIGNvbXBpbGVyIGNvbW1hbmQKLS0gIENGTEFHUyAgICAgIEMgY29tcGlsZXIgZmxhZ3MKLS0gIExERkxBR1MgICAgIGxpbmtlciBmbGFncywgZS5nLiAtTDxsaWIgZGlyPiBpZiB5b3UgaGF2ZSBsaWJyYXJpZXMgaW4gYQotLSAgICAgICAgICAgICAgbm9uc3RhbmRhcmQgZGlyZWN0b3J5IDxsaWIgZGlyPgotLSAgQ1BQRkxBR1MgICAgQy9DKysgcHJlcHJvY2Vzc29yIGZsYWdzLCBlLmcuIC1JPGluY2x1ZGUgZGlyPiBpZiB5b3UgaGF2ZQotLSAgICAgICAgICAgICAgaGVhZGVycyBpbiBhIG5vbnN0YW5kYXJkIGRpcmVjdG9yeSA8aW5jbHVkZSBkaXI+Ci0tICBDUFAgICAgICAgICBDIHByZXByb2Nlc3NvcgotLQotLVVzZSB0aGVzZSB2YXJpYWJsZXMgdG8gb3ZlcnJpZGUgdGhlIGNob2ljZXMgbWFkZSBieSBgY29uZmlndXJlJyBvciB0byBoZWxwCi0taXQgdG8gZmluZCBsaWJyYXJpZXMgYW5kIHByb2dyYW1zIHdpdGggbm9uc3RhbmRhcmQgbmFtZXMvbG9jYXRpb25zLgotLQotLV9BQ0VPRgotLWZpCi0tCi0taWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAicmVjdXJzaXZlIjsgdGhlbgotLSAgIyBJZiB0aGVyZSBhcmUgc3ViZGlycywgcmVwb3J0IHRoZWlyIHNwZWNpZmljIC0taGVscC4KLS0gIGFjX3BvcGRpcj1gcHdkYAotLSAgZm9yIGFjX2RpciBpbiA6ICRhY19zdWJkaXJzX2FsbDsgZG8gdGVzdCAieCRhY19kaXIiID0geDogJiYgY29udGludWUKLS0gICAgdGVzdCAtZCAkYWNfZGlyIHx8IGNvbnRpbnVlCi0tICAgIGFjX2J1aWxkZGlyPS4KLS0KLS1pZiB0ZXN0ICIkYWNfZGlyIiAhPSAuOyB0aGVuCi0tICBhY19kaXJfc3VmZml4PS9gZWNobyAiJGFjX2RpciIgfCBzZWQgJ3MsXlwuW1xcL10sLCdgCi0tICAjIEEgIi4uLyIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgotLSAgYWNfdG9wX2J1aWxkZGlyPWBlY2hvICIkYWNfZGlyX3N1ZmZpeCIgfCBzZWQgJ3MsL1teXFwvXSosLi4vLGcnYAotLWVsc2UKLS0gIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcj0KLS1maQotLQotLWNhc2UgJHNyY2RpciBpbgotLSAgLikgICMgTm8gLS1zcmNkaXIgb3B0aW9uLiAgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgotLSAgICBhY19zcmNkaXI9LgotLSAgICBpZiB0ZXN0IC16ICIkYWNfdG9wX2J1aWxkZGlyIjsgdGhlbgotLSAgICAgICBhY190b3Bfc3JjZGlyPS4KLS0gICAgZWxzZQotLSAgICAgICBhY190b3Bfc3JjZGlyPWBlY2hvICRhY190b3BfYnVpbGRkaXIgfCBzZWQgJ3MsLyQsLCdgCi0tICAgIGZpIDs7Ci0tICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIHBhdGguCi0tICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7Ci0tICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpciA7OwotLSAgKikgIyBSZWxhdGl2ZSBwYXRoLgotLSAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIkYWNfZGlyX3N1ZmZpeAotLSAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyIDs7Ci0tZXNhYwotLSMgRG9uJ3QgYmxpbmRseSBwZXJmb3JtIGEgYGNkICIkYWNfZGlyIi8kYWNfZm9vICYmIHB3ZGAgc2luY2UgJGFjX2ZvbyBjYW4gYmUKLS0jIGFic29sdXRlLgotLWFjX2Fic19idWlsZGRpcj1gY2QgIiRhY19kaXIiICYmIGNkICRhY19idWlsZGRpciAmJiBwd2RgCi0tYWNfYWJzX3RvcF9idWlsZGRpcj1gY2QgIiRhY19kaXIiICYmIGNkICR7YWNfdG9wX2J1aWxkZGlyfS4gJiYgcHdkYAotLWFjX2Fic19zcmNkaXI9YGNkICIkYWNfZGlyIiAmJiBjZCAkYWNfc3JjZGlyICYmIHB3ZGAKLS1hY19hYnNfdG9wX3NyY2Rpcj1gY2QgIiRhY19kaXIiICYmIGNkICRhY190b3Bfc3JjZGlyICYmIHB3ZGAKLS0KLS0gICAgY2QgJGFjX2RpcgotLSAgICAjIENoZWNrIGZvciBndWVzdGVkIGNvbmZpZ3VyZTsgb3RoZXJ3aXNlIGdldCBDeWdudXMgc3R5bGUgY29uZmlndXJlLgotLSAgICBpZiB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlLmdudTsgdGhlbgotLSAgICAgIGVjaG8KLS0gICAgICAkU0hFTEwgJGFjX3NyY2Rpci9jb25maWd1cmUuZ251ICAtLWhlbHA9cmVjdXJzaXZlCi0tICAgIGVsaWYgdGVzdCAtZiAkYWNfc3JjZGlyL2NvbmZpZ3VyZTsgdGhlbgotLSAgICAgIGVjaG8KLS0gICAgICAkU0hFTEwgJGFjX3NyY2Rpci9jb25maWd1cmUgIC0taGVscD1yZWN1cnNpdmUKLS0gICAgZWxpZiB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlLmFjIHx8Ci0tICAgICAgICAgICB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlLmluOyB0aGVuCi0tICAgICAgZWNobwotLSAgICAgICRhY19jb25maWd1cmUgLS1oZWxwCi0tICAgIGVsc2UKLS0gICAgICBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IG5vIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gaXMgaW4gJGFjX2RpciIgPiYyCi0tICAgIGZpCi0tICAgIGNkICRhY19wb3BkaXIKLS0gIGRvbmUKLS1maQotLQotLXRlc3QgLW4gIiRhY19pbml0X2hlbHAiICYmIGV4aXQgMAotLWlmICRhY19pbml0X3ZlcnNpb247IHRoZW4KLS0gIGNhdCA8PFxfQUNFT0YKLS0KLS1Db3B5cmlnaHQgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMgotLUZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotLVRoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0tZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LgotLV9BQ0VPRgotLSAgZXhpdCAwCi0tZmkKLS1leGVjIDU+Y29uZmlnLmxvZwotLWNhdCA+JjUgPDxfQUNFT0YKLS1UaGlzIGZpbGUgY29udGFpbnMgYW55IG1lc3NhZ2VzIHByb2R1Y2VkIGJ5IGNvbXBpbGVycyB3aGlsZQotLXJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBhIG1pc3Rha2UuCi0tCi0tSXQgd2FzIGNyZWF0ZWQgYnkgJGFzX21lLCB3aGljaCB3YXMKLS1nZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTcuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKLS0KLS0gICQgJDAgJEAKLS0KLS1fQUNFT0YKLS17Ci0tY2F0IDw8X0FTVU5BTUUKLS0jIyAtLS0tLS0tLS0gIyMKLS0jIyBQbGF0Zm9ybS4gIyMKLS0jIyAtLS0tLS0tLS0gIyMKLS0KLS1ob3N0bmFtZSA9IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAotLXVuYW1lIC1tID0gYCh1bmFtZSAtbSkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotLXVuYW1lIC1yID0gYCh1bmFtZSAtcikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotLXVuYW1lIC1zID0gYCh1bmFtZSAtcykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotLXVuYW1lIC12ID0gYCh1bmFtZSAtdikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotLQotLS91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNyL2Jpbi91bmFtZSAtcCkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotLS9iaW4vdW5hbWUgLVggICAgID0gYCgvYmluL3VuYW1lIC1YKSAyPi9kZXYvbnVsbCAgICAgfHwgZWNobyB1bmtub3duYAotLQotLS9iaW4vYXJjaCAgICAgICAgICAgICAgPSBgKC9iaW4vYXJjaCkgMj4vZGV2L251bGwgICAgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS0vdXNyL2Jpbi9hcmNoIC1rICAgICAgID0gYCgvdXNyL2Jpbi9hcmNoIC1rKSAyPi9kZXYvbnVsbCAgICAgICB8fCBlY2hvIHVua25vd25gCi0tL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lzaW5mbykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotLWhvc3RpbmZvICAgICAgICAgICAgICAgPSBgKGhvc3RpbmZvKSAyPi9kZXYvbnVsbCAgICAgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS0vYmluL21hY2hpbmUgICAgICAgICAgID0gYCgvYmluL21hY2hpbmUpIDI+L2Rldi9udWxsICAgICAgICAgICB8fCBlY2hvIHVua25vd25gCi0tL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4vZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAotLS9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS0KLS1fQVNVTkFNRQotLQotLWFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLS1mb3IgYXNfZGlyIGluICRQQVRICi0tZG8KLS0gIElGUz0kYXNfc2F2ZV9JRlMKLS0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0tICBlY2hvICJQQVRIOiAkYXNfZGlyIgotLWRvbmUKLS0KLS19ID4mNQotLQotLWNhdCA+JjUgPDxfQUNFT0YKLS0KLS0KLS0jIyAtLS0tLS0tLS0tLSAjIwotLSMjIENvcmUgdGVzdHMuICMjCi0tIyMgLS0tLS0tLS0tLS0gIyMKLS0KLS1fQUNFT0YKLS0KLS0KLS0jIEtlZXAgYSB0cmFjZSBvZiB0aGUgY29tbWFuZCBsaW5lLgotLSMgU3RyaXAgb3V0IC0tbm8tY3JlYXRlIGFuZCAtLW5vLXJlY3Vyc2lvbiBzbyB0aGV5IGRvIG5vdCBwaWxlIHVwLgotLSMgU3RyaXAgb3V0IC0tc2lsZW50IGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byByZWNvcmQgaXQgZm9yIGZ1dHVyZSBydW5zLgotLSMgQWxzbyBxdW90ZSBhbnkgYXJncyBjb250YWluaW5nIHNoZWxsIG1ldGEtY2hhcmFjdGVycy4KLS0jIE1ha2UgdHdvIHBhc3NlcyB0byBhbGxvdyBmb3IgcHJvcGVyIGR1cGxpY2F0ZS1hcmd1bWVudCBzdXBwcmVzc2lvbi4KLS1hY19jb25maWd1cmVfYXJncz0KLS1hY19jb25maWd1cmVfYXJnczA9Ci0tYWNfY29uZmlndXJlX2FyZ3MxPQotLWFjX3NlcD0KLS1hY19tdXN0X2tlZXBfbmV4dD1mYWxzZQotLWZvciBhY19wYXNzIGluIDEgMgotLWRvCi0tICBmb3IgYWNfYXJnCi0tICBkbwotLSAgICBjYXNlICRhY19hcmcgaW4KLS0gICAgLW5vLWNyZWF0ZSB8IC0tbm8tYyogfCAtbiB8IC1uby1yZWN1cnNpb24gfCAtLW5vLXIqKSBjb250aW51ZSA7OwotLSAgICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAotLSAgICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKLS0gICAgICBjb250aW51ZSA7OwotLSAgICAqIiAiKnwqIgkiKnwqW1xbXF1cflwjXCRcXlwmXCpcKFwpXHtcfVxcXHxcO1w8XD5cP1wiXCddKikKLS0gICAgICBhY19hcmc9YGVjaG8gIiRhY19hcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7Ci0tICAgIGVzYWMKLS0gICAgY2FzZSAkYWNfcGFzcyBpbgotLSAgICAxKSBhY19jb25maWd1cmVfYXJnczA9IiRhY19jb25maWd1cmVfYXJnczAgJyRhY19hcmcnIiA7OwotLSAgICAyKQotLSAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzMT0iJGFjX2NvbmZpZ3VyZV9hcmdzMSAnJGFjX2FyZyciCi0tICAgICAgaWYgdGVzdCAkYWNfbXVzdF9rZWVwX25leHQgPSB0cnVlOyB0aGVuCi0tICAgICAgICBhY19tdXN0X2tlZXBfbmV4dD1mYWxzZSAjIEdvdCB2YWx1ZSwgYmFjayB0byBub3JtYWwuCi0tICAgICAgZWxzZQotLSAgICAgICAgY2FzZSAkYWNfYXJnIGluCi0tICAgICAgICAgICo9KiB8IC0tY29uZmlnLWNhY2hlIHwgLUMgfCAtZGlzYWJsZS0qIHwgLS1kaXNhYmxlLSogXAotLSAgICAgICAgICB8IC1lbmFibGUtKiB8IC0tZW5hYmxlLSogfCAtZ2FzIHwgLS1nKiB8IC1uZnAgfCAtLW5mKiBcCi0tICAgICAgICAgIHwgLXEgfCAtcXVpZXQgfCAtLXEqIHwgLXNpbGVudCB8IC0tc2lsKiB8IC12IHwgLXZlcmIqIFwKLS0gICAgICAgICAgfCAtd2l0aC0qIHwgLS13aXRoLSogfCAtd2l0aG91dC0qIHwgLS13aXRob3V0LSogfCAtLXgpCi0tICAgICAgICAgICAgY2FzZSAiJGFjX2NvbmZpZ3VyZV9hcmdzMCAiIGluCi0tICAgICAgICAgICAgICAiJGFjX2NvbmZpZ3VyZV9hcmdzMSIqIiAnJGFjX2FyZycgIiogKSBjb250aW51ZSA7OwotLSAgICAgICAgICAgIGVzYWMKLS0gICAgICAgICAgICA7OwotLSAgICAgICAgICAtKiApIGFjX211c3Rfa2VlcF9uZXh0PXRydWUgOzsKLS0gICAgICAgIGVzYWMKLS0gICAgICBmaQotLSAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MkYWNfc2VwJyRhY19hcmcnIgotLSAgICAgICMgR2V0IHJpZCBvZiB0aGUgbGVhZGluZyBzcGFjZS4KLS0gICAgICBhY19zZXA9IiAiCi0tICAgICAgOzsKLS0gICAgZXNhYwotLSAgZG9uZQotLWRvbmUKLS0kYXNfdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MwIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MwK3NldH0iICE9IHNldCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMD07IGV4cG9ydCBhY19jb25maWd1cmVfYXJnczA7IH0KLS0kYXNfdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MxIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MxK3NldH0iICE9IHNldCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMT07IGV4cG9ydCBhY19jb25maWd1cmVfYXJnczE7IH0KLS0KLS0jIFdoZW4gaW50ZXJydXB0ZWQgb3IgZXhpdCdkLCBjbGVhbnVwIHRlbXBvcmFyeSBmaWxlcywgYW5kIGNvbXBsZXRlCi0tIyBjb25maWcubG9nLiAgV2UgcmVtb3ZlIGNvbW1lbnRzIGJlY2F1c2UgYW55d2F5IHRoZSBxdW90ZXMgaW4gdGhlcmUKLS0jIHdvdWxkIGNhdXNlIHByb2JsZW1zIG9yIGxvb2sgdWdseS4KLS0jIFdBUk5JTkc6IEJlIHN1cmUgbm90IHRvIHVzZSBzaW5nbGUgcXVvdGVzIGluIHRoZXJlLCBhcyBzb21lIHNoZWxscywKLS0jIHN1Y2ggYXMgb3VyIERVIDUuMCBmcmllbmQsIHdpbGwgdGhlbiBgY2xvc2UnIHRoZSB0cmFwLgotLXRyYXAgJ2V4aXRfc3RhdHVzPSQ/Ci0tICAjIFNhdmUgaW50byBjb25maWcubG9nIHNvbWUgaW5mb3JtYXRpb24gdGhhdCBtaWdodCBoZWxwIGluIGRlYnVnZ2luZy4KLS0gIHsKLS0gICAgZWNobwotLQotLSAgICBjYXQgPDxcX0FTQk9YCi0tIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwotLSMjIENhY2hlIHZhcmlhYmxlcy4gIyMKLS0jIyAtLS0tLS0tLS0tLS0tLS0tICMjCi0tX0FTQk9YCi0tICAgIGVjaG8KLS0gICAgIyBUaGUgZm9sbG93aW5nIHdheSBvZiB3cml0aW5nIHRoZSBjYWNoZSBtaXNoYW5kbGVzIG5ld2xpbmVzIGluIHZhbHVlcywKLS17Ci0tICAoc2V0KSAyPiYxIHwKLS0gICAgY2FzZSBgKGFjX3NwYWNlPSciJyInICciJyInOyBzZXQgfCBncmVwIGFjX3NwYWNlKSAyPiYxYCBpbgotLSAgICAqYWNfc3BhY2U9XCAqKQotLSAgICAgIHNlZCAtbiBcCi0tICAgICAgICAicy8nIiciJy8nIiciJ1xcXFwnIiciJyciJyInL2c7Ci0tICAgIAkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9JyInIidcXDInIiciJy9wIgotLSAgICAgIDs7Ci0tICAgICopCi0tICAgICAgc2VkIC1uIFwKLS0gICAgICAgICJzL15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSpcXCk9XFwoLipcXCkvXFwxPVxcMi9wIgotLSAgICAgIDs7Ci0tICAgIGVzYWM7Ci0tfQotLSAgICBlY2hvCi0tCi0tICAgIGNhdCA8PFxfQVNCT1gKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwotLSMjIE91dHB1dCB2YXJpYWJsZXMuICMjCi0tIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS1fQVNCT1gKLS0gICAgZWNobwotLSAgICBmb3IgYWNfdmFyIGluICRhY19zdWJzdF92YXJzCi0tICAgIGRvCi0tICAgICAgZXZhbCBhY192YWw9JGBlY2hvICRhY192YXJgCi0tICAgICAgZWNobyAiJGFjX3Zhcj0nIiciJyRhY192YWwnIiciJyIKLS0gICAgZG9uZSB8IHNvcnQKLS0gICAgZWNobwotLQotLSAgICBpZiB0ZXN0IC1uICIkYWNfc3Vic3RfZmlsZXMiOyB0aGVuCi0tICAgICAgY2F0IDw8XF9BU0JPWAotLSMjIC0tLS0tLS0tLS0tLS0gIyMKLS0jIyBPdXRwdXQgZmlsZXMuICMjCi0tIyMgLS0tLS0tLS0tLS0tLSAjIwotLV9BU0JPWAotLSAgICAgIGVjaG8KLS0gICAgICBmb3IgYWNfdmFyIGluICRhY19zdWJzdF9maWxlcwotLSAgICAgIGRvCi0tCWV2YWwgYWNfdmFsPSRgZWNobyAkYWNfdmFyYAotLSAgICAgICAgZWNobyAiJGFjX3Zhcj0nIiciJyRhY192YWwnIiciJyIKLS0gICAgICBkb25lIHwgc29ydAotLSAgICAgIGVjaG8KLS0gICAgZmkKLS0KLS0gICAgaWYgdGVzdCAtcyBjb25mZGVmcy5oOyB0aGVuCi0tICAgICAgY2F0IDw8XF9BU0JPWAotLSMjIC0tLS0tLS0tLS0tICMjCi0tIyMgY29uZmRlZnMuaC4gIyMKLS0jIyAtLS0tLS0tLS0tLSAjIwotLV9BU0JPWAotLSAgICAgIGVjaG8KLS0gICAgICBzZWQgIi9eJC9kIiBjb25mZGVmcy5oIHwgc29ydAotLSAgICAgIGVjaG8KLS0gICAgZmkKLS0gICAgdGVzdCAiJGFjX3NpZ25hbCIgIT0gMCAmJgotLSAgICAgIGVjaG8gIiRhc19tZTogY2F1Z2h0IHNpZ25hbCAkYWNfc2lnbmFsIgotLSAgICBlY2hvICIkYXNfbWU6IGV4aXQgJGV4aXRfc3RhdHVzIgotLSAgfSA+JjUKLS0gIHJtIC1mIGNvcmUgY29yZS4qICouY29yZSAmJgotLSAgcm0gLXJmIGNvbmZ0ZXN0KiBjb25mZGVmcyogY29uZiQkKiAkYWNfY2xlYW5fZmlsZXMgJiYKLS0gICAgZXhpdCAkZXhpdF9zdGF0dXMKLS0gICAgICcgMAotLWZvciBhY19zaWduYWwgaW4gMSAyIDEzIDE1OyBkbwotLSAgdHJhcCAnYWNfc2lnbmFsPSckYWNfc2lnbmFsJzsgeyAoZXhpdCAxKTsgZXhpdCAxOyB9JyAkYWNfc2lnbmFsCi0tZG9uZQotLWFjX3NpZ25hbD0wCi0tCi0tIyBjb25mZGVmcy5oIGF2b2lkcyBPUyBjb21tYW5kIGxpbmUgbGVuZ3RoIGxpbWl0cyB0aGF0IERFRlMgY2FuIGV4Y2VlZC4KLS1ybSAtcmYgY29uZnRlc3QqIGNvbmZkZWZzLmgKLS0jIEFJWCBjcHAgbG9zZXMgb24gYW4gZW1wdHkgZmlsZSwgc28gbWFrZSBzdXJlIGl0IGNvbnRhaW5zIGF0IGxlYXN0IGEgbmV3bGluZS4KLS1lY2hvID5jb25mZGVmcy5oCi0tCi0tIyBQcmVkZWZpbmVkIHByZXByb2Nlc3NvciB2YXJpYWJsZXMuCi0tCi0tY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotLSNkZWZpbmUgUEFDS0FHRV9OQU1FICIkUEFDS0FHRV9OQU1FIgotLV9BQ0VPRgotLQotLQotLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLS0jZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiJFBBQ0tBR0VfVEFSTkFNRSIKLS1fQUNFT0YKLS0KLS0KLS1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0tI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiRQQUNLQUdFX1ZFUlNJT04iCi0tX0FDRU9GCi0tCi0tCi0tY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotLSNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiRQQUNLQUdFX1NUUklORyIKLS1fQUNFT0YKLS0KLS0KLS1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0tI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiJFBBQ0tBR0VfQlVHUkVQT1JUIgotLV9BQ0VPRgotLQotLQotLSMgTGV0IHRoZSBzaXRlIGZpbGUgc2VsZWN0IGFuIGFsdGVybmF0ZSBjYWNoZSBmaWxlIGlmIGl0IHdhbnRzIHRvLgotICMgUHJlZmVyIGV4cGxpY2l0bHkgc2VsZWN0ZWQgZmlsZSB0byBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkIG9uZXMuCi0gaWYgdGVzdCAteiAiJENPTkZJR19TSVRFIjsgdGhlbgotICAgaWYgdGVzdCAieCRwcmVmaXgiICE9IHhOT05FOyB0aGVuCi1AQCAtMTE3MSwxMDYgKzQ5OCw0MiBAQAotIGZpCi0gZm9yIGFjX3NpdGVfZmlsZSBpbiAkQ09ORklHX1NJVEU7IGRvCi0gICBpZiB0ZXN0IC1yICIkYWNfc2l0ZV9maWxlIjsgdGhlbgotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUiID4mNQotLWVjaG8gIiRhc19tZTogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjY7fQotLSAgICBzZWQgJ3MvXi98IC8nICIkYWNfc2l0ZV9maWxlIiA+JjUKLSsgICAgZWNobyAibG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIgotICAgICAuICIkYWNfc2l0ZV9maWxlIgotICAgZmkKLSBkb25lCi0gCi0gaWYgdGVzdCAtciAiJGNhY2hlX2ZpbGUiOyB0aGVuCi0tICAjIFNvbWUgdmVyc2lvbnMgb2YgYmFzaCB3aWxsIGZhaWwgdG8gc291cmNlIC9kZXYvbnVsbCAoc3BlY2lhbAotLSAgIyBmaWxlcyBhY3R1YWxseSksIHNvIHdlIGF2b2lkIGRvaW5nIHRoYXQuCi0tICBpZiB0ZXN0IC1mICIkY2FjaGVfZmlsZSI7IHRoZW4KLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1Ci0tZWNobyAiJGFzX21lOiBsb2FkaW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjY7fQotLSAgICBjYXNlICRjYWNoZV9maWxlIGluCi0tICAgICAgW1xcL10qIHwgPzpbXFwvXSogKSAuICRjYWNoZV9maWxlOzsKLS0gICAgICAqKSAgICAgICAgICAgICAgICAgICAgICAuIC4vJGNhY2hlX2ZpbGU7OwotLSAgICBlc2FjCi0tICBmaQotKyAgZWNobyAibG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIKLSsgIC4gJGNhY2hlX2ZpbGUKLSBlbHNlCi0tICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1Ci0tZWNobyAiJGFzX21lOiBjcmVhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KLS0gID4kY2FjaGVfZmlsZQotKyAgZWNobyAiY3JlYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiCi0rICA+ICRjYWNoZV9maWxlCi0gZmkKLSAKLS0jIENoZWNrIHRoYXQgdGhlIHByZWNpb3VzIHZhcmlhYmxlcyBzYXZlZCBpbiB0aGUgY2FjaGUgaGF2ZSBrZXB0IHRoZSBzYW1lCi0tIyB2YWx1ZS4KLS1hY19jYWNoZV9jb3JydXB0ZWQ9ZmFsc2UKLS1mb3IgYWNfdmFyIGluIGAoc2V0KSAyPiYxIHwKLS0gICAgICAgICAgICAgICBzZWQgLW4gJ3MvXmFjX2Vudl9cKFthLXpBLVpfMC05XSpcKV9zZXQ9LiovXDEvcCdgOyBkbwotLSAgZXZhbCBhY19vbGRfc2V0PVwkYWNfY3ZfZW52XyR7YWNfdmFyfV9zZXQKLS0gIGV2YWwgYWNfbmV3X3NldD1cJGFjX2Vudl8ke2FjX3Zhcn1fc2V0Ci0tICBldmFsIGFjX29sZF92YWw9IlwkYWNfY3ZfZW52XyR7YWNfdmFyfV92YWx1ZSIKLS0gIGV2YWwgYWNfbmV3X3ZhbD0iXCRhY19lbnZfJHthY192YXJ9X3ZhbHVlIgotLSAgY2FzZSAkYWNfb2xkX3NldCwkYWNfbmV3X3NldCBpbgotLSAgICBzZXQsKQotLSAgICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192YXInIHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwnIGluIHRoZSBwcmV2aW91cyBydW4iID4mMjt9Ci0tICAgICAgYWNfY2FjaGVfY29ycnVwdGVkPTogOzsKLS0gICAgLHNldCkKLS0gICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXInIHdhcyBub3Qgc2V0IGluIHRoZSBwcmV2aW91cyBydW4iID4mMjt9Ci0tICAgICAgYWNfY2FjaGVfY29ycnVwdGVkPTogOzsKLS0gICAgLCk7OwotLSAgICAqKQotLSAgICAgIGlmIHRlc3QgIngkYWNfb2xkX3ZhbCIgIT0gIngkYWNfbmV3X3ZhbCI7IHRoZW4KLS0gICAgICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192YXInIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXInIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjI7fQotLSAgICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogICBmb3JtZXIgdmFsdWU6ICAkYWNfb2xkX3ZhbCIgPiY1Ci0tZWNobyAiJGFzX21lOiAgIGZvcm1lciB2YWx1ZTogICRhY19vbGRfdmFsIiA+JjI7fQotLSAgICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogICBjdXJyZW50IHZhbHVlOiAkYWNfbmV3X3ZhbCIgPiY1Ci0tZWNobyAiJGFzX21lOiAgIGN1cnJlbnQgdmFsdWU6ICRhY19uZXdfdmFsIiA+JjI7fQotLSAgICAgICAgYWNfY2FjaGVfY29ycnVwdGVkPToKLS0gICAgICBmaTs7Ci0tICBlc2FjCi0tICAjIFBhc3MgcHJlY2lvdXMgdmFyaWFibGVzIHRvIGNvbmZpZy5zdGF0dXMuCi0tICBpZiB0ZXN0ICIkYWNfbmV3X3NldCIgPSBzZXQ7IHRoZW4KLS0gICAgY2FzZSAkYWNfbmV3X3ZhbCBpbgotLSAgICAqIiAiKnwqIgkiKnwqW1xbXF1cflwjXCRcXlwmXCpcKFwpXHtcfVxcXHxcO1w8XD5cP1wiXCddKikKLS0gICAgICBhY19hcmc9JGFjX3Zhcj1gZWNobyAiJGFjX25ld192YWwiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7Ci0tICAgICopIGFjX2FyZz0kYWNfdmFyPSRhY19uZXdfdmFsIDs7Ci0tICAgIGVzYWMKLS0gICAgY2FzZSAiICRhY19jb25maWd1cmVfYXJncyAiIGluCi0tICAgICAgKiIgJyRhY19hcmcnICIqKSA7OyAjIEF2b2lkIGR1cHMuICBVc2Ugb2YgcXVvdGVzIGVuc3VyZXMgYWNjdXJhY3kuCi0tICAgICAgKikgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAnJGFjX2FyZyciIDs7Ci0tICAgIGVzYWMKLS0gIGZpCi0tZG9uZQotLWlmICRhY19jYWNoZV9jb3JydXB0ZWQ7IHRoZW4KLS0gIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IGNoYW5nZXMgaW4gdGhlIGVudmlyb25tZW50IGNhbiBjb21wcm9taXNlIHRoZSBidWlsZCIgPiYyO30KLS0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHJ1biBcYG1ha2UgZGlzdGNsZWFuJyBhbmQvb3IgXGBybSAkY2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IHJ1biBcYG1ha2UgZGlzdGNsZWFuJyBhbmQvb3IgXGBybSAkY2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0tZmkKLS0KLSBhY19leHQ9YwotKyMgQ0ZMQUdTIGlzIG5vdCBpbiBhY19jcHAgYmVjYXVzZSAtZywgLU8sIGV0Yy4gYXJlIG5vdCB2YWxpZCBjcHAgb3B0aW9ucy4KLSBhY19jcHA9JyRDUFAgJENQUEZMQUdTJwotLWFjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLS1hY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotLWFjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSthY19jb21waWxlPScke0NDLWNjfSAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0IDE+JjUnCi0rYWNfbGluaz0nJHtDQy1jY30gLW8gY29uZnRlc3Qke2FjX2V4ZWV4dH0gJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyAxPiY1JwotK2Nyb3NzX2NvbXBpbGluZz0kYWNfY3ZfcHJvZ19jY19jcm9zcwotIAotK2FjX2V4ZWV4dD0KLSthY19vYmpleHQ9bwotK2lmIChlY2hvICJ0ZXN0aW5nXGMiOyBlY2hvIDEsMiwzKSB8IGdyZXAgYyA+L2Rldi9udWxsOyB0aGVuCi0rICAjIFN0YXJkZW50IFZpc3RyYSBTVlI0IGdyZXAgbGFja3MgLWUsIHNheXMgZ2hhemlAY2FpcC5ydXRnZXJzLmVkdS4KLSsgIGlmIChlY2hvIC1uIHRlc3Rpbmc7IGVjaG8gMSwyLDMpIHwgc2VkIHMvLW4veG4vIHwgZ3JlcCB4biA+L2Rldi9udWxsOyB0aGVuCi0rICAgIGFjX249IGFjX2M9JwotKycgYWNfdD0nCScKLSsgIGVsc2UKLSsgICAgYWNfbj0tbiBhY19jPSBhY190PQotKyAgZmkKLStlbHNlCi0rICBhY19uPSBhY19jPSdcYycgYWNfdD0KLStmaQotIAotIAotIAotLQotLQotLQotLQotLQotLQotLQotLQotLQotLQotLQotLQotLQotLQotLQotLQotIGFjX2F1eF9kaXI9Ci0gZm9yIGFjX2RpciBpbiAkc3JjZGlyICRzcmNkaXIvLi4gJHNyY2Rpci8uLi8uLjsgZG8KLSAgIGlmIHRlc3QgLWYgJGFjX2Rpci9pbnN0YWxsLXNoOyB0aGVuCi1AQCAtMTI4MSw3NDAgKzU0NCwzMTIgQEAKLSAgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0gICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL2luc3RhbGwuc2ggLWMiCi0gICAgIGJyZWFrCi0tICBlbGlmIHRlc3QgLWYgJGFjX2Rpci9zaHRvb2w7IHRoZW4KLS0gICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0tICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL3NodG9vbCBpbnN0YWxsIC1jIgotLSAgICBicmVhawotICAgZmkKLSBkb25lCi0gaWYgdGVzdCAteiAiJGFjX2F1eF9kaXIiOyB0aGVuCi0tICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gJHNyY2RpciAkc3JjZGlyLy4uICRzcmNkaXIvLi4vLi4iID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGluc3RhbGwtc2ggb3IgaW5zdGFsbC5zaCBpbiAkc3JjZGlyICRzcmNkaXIvLi4gJHNyY2Rpci8uLi8uLiIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogY2FuIG5vdCBmaW5kIGluc3RhbGwtc2ggb3IgaW5zdGFsbC5zaCBpbiAkc3JjZGlyICRzcmNkaXIvLi4gJHNyY2Rpci8uLi8uLiIgMT4mMjsgZXhpdCAxOyB9Ci0gZmkKLS1hY19jb25maWdfZ3Vlc3M9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuZ3Vlc3MiCi0tYWNfY29uZmlnX3N1Yj0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIiCi0tYWNfY29uZmlndXJlPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlndXJlIiAjIFRoaXMgc2hvdWxkIGJlIEN5Z251cyBjb25maWd1cmUuCi0rYWNfY29uZmlnX2d1ZXNzPSRhY19hdXhfZGlyL2NvbmZpZy5ndWVzcwotK2FjX2NvbmZpZ19zdWI9JGFjX2F1eF9kaXIvY29uZmlnLnN1YgotK2FjX2NvbmZpZ3VyZT0kYWNfYXV4X2Rpci9jb25maWd1cmUgIyBUaGlzIHNob3VsZCBiZSBDeWdudXMgY29uZmlndXJlLgotIAotLSMgTWFrZSBzdXJlIHdlIGNhbiBydW4gY29uZmlnLnN1Yi4KLS0kYWNfY29uZmlnX3N1YiBzdW40ID4vZGV2L251bGwgMj4mMSB8fAotLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IHJ1biAkYWNfY29uZmlnX3N1YiIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IHJ1biAkYWNfY29uZmlnX3N1YiIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSAKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9idWlsZCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1lbHNlCi0tICBhY19jdl9idWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKLS10ZXN0IC16ICIkYWNfY3ZfYnVpbGRfYWxpYXMiICYmCi0tICBhY19jdl9idWlsZF9hbGlhcz1gJGFjX2NvbmZpZ19ndWVzc2AKLS10ZXN0IC16ICIkYWNfY3ZfYnVpbGRfYWxpYXMiICYmCi0tICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBndWVzcyBidWlsZCB0eXBlOyB5b3UgbXVzdCBzcGVjaWZ5IG9uZSIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLS1hY19jdl9idWlsZD1gJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2J1aWxkX2FsaWFzYCB8fAotLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2J1aWxkX2FsaWFzIGZhaWxlZCIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2J1aWxkX2FsaWFzIGZhaWxlZCIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsjIERvIHNvbWUgZXJyb3IgY2hlY2tpbmcgYW5kIGRlZmF1bHRpbmcgZm9yIHRoZSBob3N0IGFuZCB0YXJnZXQgdHlwZS4KLSsjIFRoZSBpbnB1dHMgYXJlOgotKyMgICAgY29uZmlndXJlIC0taG9zdD1IT1NUIC0tdGFyZ2V0PVRBUkdFVCAtLWJ1aWxkPUJVSUxEIE5PTk9QVAotKyMKLSsjIFRoZSBydWxlcyBhcmU6Ci0rIyAxLiBZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIHNwZWNpZnkgLS1ob3N0LCAtLXRhcmdldCwgYW5kIG5vbm9wdCBhdCB0aGUKLSsjICAgIHNhbWUgdGltZS4KLSsjIDIuIEhvc3QgZGVmYXVsdHMgdG8gbm9ub3B0LgotKyMgMy4gSWYgbm9ub3B0IGlzIG5vdCBzcGVjaWZpZWQsIHRoZW4gaG9zdCBkZWZhdWx0cyB0byB0aGUgY3VycmVudCBob3N0LAotKyMgICAgYXMgZGV0ZXJtaW5lZCBieSBjb25maWcuZ3Vlc3MuCi0rIyA0LiBUYXJnZXQgYW5kIGJ1aWxkIGRlZmF1bHQgdG8gbm9ub3B0LgotKyMgNS4gSWYgbm9ub3B0IGlzIG5vdCBzcGVjaWZpZWQsIHRoZW4gdGFyZ2V0IGFuZCBidWlsZCBkZWZhdWx0IHRvIGhvc3QuCi0gCi0rIyBUaGUgYWxpYXNlcyBzYXZlIHRoZSBuYW1lcyB0aGUgdXNlciBzdXBwbGllZCwgd2hpbGUgJGhvc3QgZXRjLgotKyMgd2lsbCBnZXQgY2Fub25pY2FsaXplZC4KLStjYXNlICRob3N0LS0tJHRhcmdldC0tLSRub25vcHQgaW4KLStOT05FLS0tKi0tLSogfCAqLS0tTk9ORS0tLSogfCAqLS0tKi0tLU5PTkUpIDs7Ci0rKikgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiBjYW4gb25seSBjb25maWd1cmUgZm9yIG9uZSBob3N0IGFuZCBvbmUgdGFyZ2V0IGF0IGEgdGltZSIgMT4mMjsgZXhpdCAxOyB9IDs7Ci0rZXNhYwotKwotKwotKyMgTWFrZSBzdXJlIHdlIGNhbiBydW4gY29uZmlnLnN1Yi4KLStpZiAke0NPTkZJR19TSEVMTC0vYmluL3NofSAkYWNfY29uZmlnX3N1YiBzdW40ID4vZGV2L251bGwgMj4mMTsgdGhlbiA6Ci0rZWxzZSB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6IGNhbiBub3QgcnVuICRhY19jb25maWdfc3ViIiAxPiYyOyBleGl0IDE7IH0KLSBmaQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9idWlsZCIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2J1aWxkIiA+JjYKLS1idWlsZD0kYWNfY3ZfYnVpbGQKLS1idWlsZF9jcHU9YGVjaG8gJGFjX2N2X2J1aWxkIHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDEvJ2AKLS1idWlsZF92ZW5kb3I9YGVjaG8gJGFjX2N2X2J1aWxkIHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDIvJ2AKLS1idWlsZF9vcz1gZWNobyAkYWNfY3ZfYnVpbGQgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMy8nYAotIAotK2VjaG8gJGFjX24gImNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUiIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZTo1ODU6IGNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUiID4mNQotIAotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9ob3N0K3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotLWVsc2UKLS0gIGFjX2N2X2hvc3RfYWxpYXM9JGhvc3RfYWxpYXMKLS10ZXN0IC16ICIkYWNfY3ZfaG9zdF9hbGlhcyIgJiYKLS0gIGFjX2N2X2hvc3RfYWxpYXM9JGFjX2N2X2J1aWxkX2FsaWFzCi0tYWNfY3ZfaG9zdD1gJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2hvc3RfYWxpYXNgIHx8Ci0tICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAkYWNfY29uZmlnX3N1YiAkYWNfY3ZfaG9zdF9hbGlhcyBmYWlsZWQiID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6ICRhY19jb25maWdfc3ViICRhY19jdl9ob3N0X2FsaWFzIGZhaWxlZCIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStob3N0X2FsaWFzPSRob3N0Ci0rY2FzZSAiJGhvc3RfYWxpYXMiIGluCi0rTk9ORSkKLSsgIGNhc2UgJG5vbm9wdCBpbgotKyAgTk9ORSkKLSsgICAgaWYgaG9zdF9hbGlhcz1gJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0gJGFjX2NvbmZpZ19ndWVzc2A7IHRoZW4gOgotKyAgICBlbHNlIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogY2FuIG5vdCBndWVzcyBob3N0IHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiAxPiYyOyBleGl0IDE7IH0KLSsgICAgZmkgOzsKLSsgICopIGhvc3RfYWxpYXM9JG5vbm9wdCA7OwotKyAgZXNhYyA7OwotK2VzYWMKLSAKLS1maQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9ob3N0IiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaG9zdCIgPiY2Ci0taG9zdD0kYWNfY3ZfaG9zdAotLWhvc3RfY3B1PWBlY2hvICRhY19jdl9ob3N0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDEvJ2AKLS1ob3N0X3ZlbmRvcj1gZWNobyAkYWNfY3ZfaG9zdCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wyLydgCi0taG9zdF9vcz1gZWNobyAkYWNfY3ZfaG9zdCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wzLydgCi0raG9zdD1gJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0gJGFjX2NvbmZpZ19zdWIgJGhvc3RfYWxpYXNgCi0raG9zdF9jcHU9YGVjaG8gJGhvc3QgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMS8nYAotK2hvc3RfdmVuZG9yPWBlY2hvICRob3N0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDIvJ2AKLStob3N0X29zPWBlY2hvICRob3N0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDMvJ2AKLStlY2hvICIkYWNfdCIiJGhvc3QiIDE+JjYKLSAKLStlY2hvICRhY19uICJjaGVja2luZyB0YXJnZXQgc3lzdGVtIHR5cGUiIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZTo2MDY6IGNoZWNraW5nIHRhcmdldCBzeXN0ZW0gdHlwZSIgPiY1Ci0gCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHRhcmdldCBzeXN0ZW0gdHlwZSIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyB0YXJnZXQgc3lzdGVtIHR5cGUuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl90YXJnZXQrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZWxzZQotLSAgYWNfY3ZfdGFyZ2V0X2FsaWFzPSR0YXJnZXRfYWxpYXMKLS10ZXN0ICJ4JGFjX2N2X3RhcmdldF9hbGlhcyIgPSAieCIgJiYKLS0gIGFjX2N2X3RhcmdldF9hbGlhcz0kYWNfY3ZfaG9zdF9hbGlhcwotLWFjX2N2X3RhcmdldD1gJGFjX2NvbmZpZ19zdWIgJGFjX2N2X3RhcmdldF9hbGlhc2AgfHwKLS0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6ICRhY19jb25maWdfc3ViICRhY19jdl90YXJnZXRfYWxpYXMgZmFpbGVkIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiAkYWNfY29uZmlnX3N1YiAkYWNfY3ZfdGFyZ2V0X2FsaWFzIGZhaWxlZCIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSt0YXJnZXRfYWxpYXM9JHRhcmdldAotK2Nhc2UgIiR0YXJnZXRfYWxpYXMiIGluCi0rTk9ORSkKLSsgIGNhc2UgJG5vbm9wdCBpbgotKyAgTk9ORSkgdGFyZ2V0X2FsaWFzPSRob3N0X2FsaWFzIDs7Ci0rICAqKSB0YXJnZXRfYWxpYXM9JG5vbm9wdCA7OwotKyAgZXNhYyA7OwotK2VzYWMKLSAKLS1maQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl90YXJnZXQiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdl90YXJnZXQiID4mNgotLXRhcmdldD0kYWNfY3ZfdGFyZ2V0Ci0tdGFyZ2V0X2NwdT1gZWNobyAkYWNfY3ZfdGFyZ2V0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDEvJ2AKLS10YXJnZXRfdmVuZG9yPWBlY2hvICRhY19jdl90YXJnZXQgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMi8nYAotLXRhcmdldF9vcz1gZWNobyAkYWNfY3ZfdGFyZ2V0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDMvJ2AKLSt0YXJnZXQ9YCR7Q09ORklHX1NIRUxMLS9iaW4vc2h9ICRhY19jb25maWdfc3ViICR0YXJnZXRfYWxpYXNgCi0rdGFyZ2V0X2NwdT1gZWNobyAkdGFyZ2V0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDEvJ2AKLSt0YXJnZXRfdmVuZG9yPWBlY2hvICR0YXJnZXQgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMi8nYAotK3RhcmdldF9vcz1gZWNobyAkdGFyZ2V0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDMvJ2AKLStlY2hvICIkYWNfdCIiJHRhcmdldCIgMT4mNgotIAotK2VjaG8gJGFjX24gImNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6NjI0OiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZSIgPiY1Ci0gCi0tIyBUaGUgYWxpYXNlcyBzYXZlIHRoZSBuYW1lcyB0aGUgdXNlciBzdXBwbGllZCwgd2hpbGUgJGhvc3QgZXRjLgotLSMgd2lsbCBnZXQgY2Fub25pY2FsaXplZC4KLS10ZXN0IC1uICIkdGFyZ2V0X2FsaWFzIiAmJgotK2J1aWxkX2FsaWFzPSRidWlsZAotK2Nhc2UgIiRidWlsZF9hbGlhcyIgaW4KLStOT05FKQotKyAgY2FzZSAkbm9ub3B0IGluCi0rICBOT05FKSBidWlsZF9hbGlhcz0kaG9zdF9hbGlhcyA7OwotKyAgKikgYnVpbGRfYWxpYXM9JG5vbm9wdCA7OwotKyAgZXNhYyA7OwotK2VzYWMKLSsKLStidWlsZD1gJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0gJGFjX2NvbmZpZ19zdWIgJGJ1aWxkX2FsaWFzYAotK2J1aWxkX2NwdT1gZWNobyAkYnVpbGQgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMS8nYAotK2J1aWxkX3ZlbmRvcj1gZWNobyAkYnVpbGQgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMi8nYAotK2J1aWxkX29zPWBlY2hvICRidWlsZCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wzLydgCi0rZWNobyAiJGFjX3QiIiRidWlsZCIgMT4mNgotKwotK3Rlc3QgIiRob3N0X2FsaWFzIiAhPSAiJHRhcmdldF9hbGlhcyIgJiYKLSAgIHRlc3QgIiRwcm9ncmFtX3ByZWZpeCRwcm9ncmFtX3N1ZmZpeCRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIiA9IFwKLSAgICAgTk9ORU5PTkVzLHgseCwgJiYKLSAgIHByb2dyYW1fcHJlZml4PSR7dGFyZ2V0X2FsaWFzfS0KLS1hY19leHQ9YwotLWFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0tYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotLWFjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0tYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotLWlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLS0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1nY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotLXNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWdjYzsgYWNfd29yZD0kMgotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1lbHNlCi0tICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0tICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotLWVsc2UKLS1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0tICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotLSAgICBhY19jdl9wcm9nX0NDPSIke2FjX3Rvb2xfcHJlZml4fWdjYyIKLS0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotLSAgICBicmVhayAyCi0tICBmaQotLWRvbmUKLS1kb25lCi0gCi0tZmkKLS1maQotLUNDPSRhY19jdl9wcm9nX0NDCi0taWYgdGVzdCAtbiAiJENDIjsgdGhlbgotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kQ0MiID4mNgotLWVsc2UKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLS1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci0tZmkKLS0KLS1maQotLWlmIHRlc3QgLXogIiRhY19jdl9wcm9nX0NDIjsgdGhlbgotLSAgYWNfY3RfQ0M9JENDCi0tICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJnY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotIHNldCBkdW1teSBnY2M7IGFjX3dvcmQ9JDIKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0rZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRhY193b3JkIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6NjQ5OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wcm9nX0NDJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KLSsgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci0gZWxzZQotLSAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotLSAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX2N0X0NDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLS1lbHNlCi0tYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLS0gICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iZ2NjIgotLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0tICAgIGJyZWFrIDIKLS0gIGZpCi0tZG9uZQotLWRvbmUKLS0KLS1maQotLWZpCi0tYWNfY3RfQ0M9JGFjX2N2X3Byb2dfYWNfY3RfQ0MKLS1pZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdF9DQyIgPiY2Ci0tZWxzZQotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotLWVjaG8gIiR7RUNIT19UfW5vIiA+JjYKLS1maQotLQotLSAgQ0M9JGFjX2N0X0NDCi0tZWxzZQotLSAgQ0M9IiRhY19jdl9wcm9nX0NDIgotLWZpCi0tCi0taWYgdGVzdCAteiAiJENDIjsgdGhlbgotLSAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotLSAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWNjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLS1zZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1jYzsgYWNfd29yZD0kMgotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1lbHNlCi0gICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0gICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotIGVsc2UKLS1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0tICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotLSAgICBhY19jdl9wcm9nX0NDPSIke2FjX3Rvb2xfcHJlZml4fWNjIgotLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0tICAgIGJyZWFrIDIKLS0gIGZpCi0tZG9uZQotLWRvbmUKLS0KLSsgIElGUz0iJHtJRlM9IAl9IjsgYWNfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IjoiCi0rICBhY19kdW1teT0iJFBBVEgiCi0rICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSsgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAkYWNfZGlyLyRhY193b3JkOyB0aGVuCi0rICAgICAgYWNfY3ZfcHJvZ19DQz0iZ2NjIgotKyAgICAgIGJyZWFrCi0rICAgIGZpCi0rICBkb25lCi0rICBJRlM9IiRhY19zYXZlX2lmcyIKLSBmaQotIGZpCi0tQ0M9JGFjX2N2X3Byb2dfQ0MKLStDQz0iJGFjX2N2X3Byb2dfQ0MiCi0gaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kQ0MiID4mNgotKyAgZWNobyAiJGFjX3QiIiRDQyIgMT4mNgotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLS1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci0rICBlY2hvICIkYWNfdCIibm8iIDE+JjYKLSBmaQotIAotLWZpCi0taWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfQ0MiOyB0aGVuCi0tICBhY19jdF9DQz0kQ0MKLS0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotLXNldCBkdW1teSBjYzsgYWNfd29yZD0kMgotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1lbHNlCi0tICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0tICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotLWVsc2UKLS1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0tICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotLSAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSJjYyIKLS0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotLSAgICBicmVhayAyCi0tICBmaQotLWRvbmUKLS1kb25lCi0tCi0tZmkKLS1maQotLWFjX2N0X0NDPSRhY19jdl9wcm9nX2FjX2N0X0NDCi0taWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NDIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3RfQ0MiID4mNgotLWVsc2UKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLS1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci0tZmkKLS0KLS0gIENDPSRhY19jdF9DQwotLWVsc2UKLS0gIENDPSIkYWNfY3ZfcHJvZ19DQyIKLS1maQotLQotLWZpCi0gaWYgdGVzdCAteiAiJENDIjsgdGhlbgotICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0gc2V0IGR1bW15IGNjOyBhY193b3JkPSQyCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotK2VjaG8gJGFjX24gImNoZWNraW5nIGZvciAkYWNfd29yZCIiLi4uICRhY19jIiAxPiY2Ci0rZWNobyAiY29uZmlndXJlOjY3OTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLStpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19DQycrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0rICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotIGVsc2UKLSAgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSAgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0gZWxzZQotKyAgSUZTPSIke0lGUz0gCX0iOyBhY19zYXZlX2lmcz0iJElGUyI7IElGUz0iOiIKLSAgIGFjX3Byb2dfcmVqZWN0ZWQ9bm8KLS1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0tICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotLSAgICBpZiB0ZXN0ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA9ICIvdXNyL3VjYi9jYyI7IHRoZW4KLS0gICAgICAgYWNfcHJvZ19yZWplY3RlZD15ZXMKLS0gICAgICAgY29udGludWUKLS0gICAgIGZpCi0tICAgIGFjX2N2X3Byb2dfQ0M9ImNjIgotLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0tICAgIGJyZWFrIDIKLS0gIGZpCi0tZG9uZQotLWRvbmUKLS0KLSsgIGFjX2R1bW15PSIkUEFUSCIKLSsgIGZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbwotKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvJGFjX3dvcmQ7IHRoZW4KLSsgICAgICBpZiB0ZXN0ICIkYWNfZGlyLyRhY193b3JkIiA9ICIvdXNyL3VjYi9jYyI7IHRoZW4KLSsgICAgICAgIGFjX3Byb2dfcmVqZWN0ZWQ9eWVzCi0rCWNvbnRpbnVlCi0rICAgICAgZmkKLSsgICAgICBhY19jdl9wcm9nX0NDPSJjYyIKLSsgICAgICBicmVhawotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkYWNfc2F2ZV9pZnMiCi0gaWYgdGVzdCAkYWNfcHJvZ19yZWplY3RlZCA9IHllczsgdGhlbgotICAgIyBXZSBmb3VuZCBhIGJvZ29uIGluIHRoZSBwYXRoLCBzbyBtYWtlIHN1cmUgd2UgbmV2ZXIgdXNlIGl0LgotICAgc2V0IGR1bW15ICRhY19jdl9wcm9nX0NDCi0gICBzaGlmdAotLSAgaWYgdGVzdCAkIyAhPSAwOyB0aGVuCi0rICBpZiB0ZXN0ICQjIC1ndCAwOyB0aGVuCi0gICAgICMgV2UgY2hvc2UgYSBkaWZmZXJlbnQgY29tcGlsZXIgZnJvbSB0aGUgYm9ndXMgb25lLgotICAgICAjIEhvd2V2ZXIsIGl0IGhhcyB0aGUgc2FtZSBiYXNlbmFtZSwgc28gdGhlIGJvZ29uIHdpbGwgYmUgY2hvc2VuCi0gICAgICMgZmlyc3QgaWYgd2Ugc2V0IENDIHRvIGp1c3QgdGhlIGJhc2VuYW1lOyB1c2UgdGhlIGZ1bGwgZmlsZSBuYW1lLgotICAgICBzaGlmdAotLSAgICBhY19jdl9wcm9nX0NDPSIkYXNfZGlyLyRhY193b3JkJHsxKycgJ30kQCIKLSsgICAgc2V0IGR1bW15ICIkYWNfZGlyLyRhY193b3JkIiAiJEAiCi0rICAgIHNoaWZ0Ci0rICAgIGFjX2N2X3Byb2dfQ0M9IiRAIgotICAgZmkKLSBmaQotIGZpCi0gZmkKLS1DQz0kYWNfY3ZfcHJvZ19DQwotK0NDPSIkYWNfY3ZfcHJvZ19DQyIKLSBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQotLWVjaG8gIiR7RUNIT19UfSRDQyIgPiY2Ci0rICBlY2hvICIkYWNfdCIiJENDIiAxPiY2Ci0gZWxzZQotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotLWVjaG8gIiR7RUNIT19UfW5vIiA+JjYKLSsgIGVjaG8gIiRhY190IiJubyIgMT4mNgotIGZpCi0gCi0tZmkKLS1pZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCi0tICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0tICBmb3IgYWNfcHJvZyBpbiBjbAotLSAgZG8KLS0gICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0tc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotKyAgaWYgdGVzdCAteiAiJENDIjsgdGhlbgotKyAgICBjYXNlICJgdW5hbWUgLXNgIiBpbgotKyAgICAqd2luMzIqIHwgKldJTjMyKikKLSsgICAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNsIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgY2w7IGFjX3dvcmQ9JDIKLStlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQiIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZTo3MzA6IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0raWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X3Byb2dfQ0MnK3NldH0nYFwiID0gc2V0IjsgdGhlbgotKyAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLSBlbHNlCi0gICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0gICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotIGVsc2UKLS1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0tICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotLSAgICBhY19jdl9wcm9nX0NDPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKLS0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotLSAgICBicmVhayAyCi0tICBmaQotLWRvbmUKLS1kb25lCi0tCi0rICBJRlM9IiR7SUZTPSAJfSI7IGFjX3NhdmVfaWZzPSIkSUZTIjsgSUZTPSI6IgotKyAgYWNfZHVtbXk9IiRQQVRIIgotKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCi0rICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8kYWNfd29yZDsgdGhlbgotKyAgICAgIGFjX2N2X3Byb2dfQ0M9ImNsIgotKyAgICAgIGJyZWFrCi0rICAgIGZpCi0rICBkb25lCi0rICBJRlM9IiRhY19zYXZlX2lmcyIKLSBmaQotIGZpCi0tQ0M9JGFjX2N2X3Byb2dfQ0MKLStDQz0iJGFjX2N2X3Byb2dfQ0MiCi0gaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kQ0MiID4mNgotKyAgZWNobyAiJGFjX3QiIiRDQyIgMT4mNgotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLS1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci0rICBlY2hvICIkYWNfdCIibm8iIDE+JjYKLSBmaQotLQotLSAgICB0ZXN0IC1uICIkQ0MiICYmIGJyZWFrCi0tICBkb25lCi0tZmkKLS1pZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCi0tICBhY19jdF9DQz0kQ0MKLS0gIGZvciBhY19wcm9nIGluIGNsCi0tZG8KLS0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotLXNldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1lbHNlCi0tICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0tICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotLWVsc2UKLS1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0tICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotLSAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfcHJvZyIKLS0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotLSAgICBicmVhayAyCi0rIDs7Ci0rICAgIGVzYWMKLSAgIGZpCi0tZG9uZQotLWRvbmUKLS0KLSsgIHRlc3QgLXogIiRDQyIgJiYgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiBubyBhY2NlcHRhYmxlIGNjIGZvdW5kIGluIFwkUEFUSCIgMT4mMjsgZXhpdCAxOyB9Ci0gZmkKLS1maQotLWFjX2N0X0NDPSRhY19jdl9wcm9nX2FjX2N0X0NDCi0taWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NDIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3RfQ0MiID4mNgotLWVsc2UKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLS1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci0tZmkKLSAKLS0gIHRlc3QgLW4gIiRhY19jdF9DQyIgJiYgYnJlYWsKLS1kb25lCi0rZWNobyAkYWNfbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciAoJENDICRDRkxBR1MgJExERkxBR1MpIHdvcmtzIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6NzYyOiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyICgkQ0MgJENGTEFHUyAkTERGTEFHUykgd29ya3MiID4mNQotIAotLSAgQ0M9JGFjX2N0X0NDCi0tZmkKLSthY19leHQ9YwotKyMgQ0ZMQUdTIGlzIG5vdCBpbiBhY19jcHAgYmVjYXVzZSAtZywgLU8sIGV0Yy4gYXJlIG5vdCB2YWxpZCBjcHAgb3B0aW9ucy4KLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyR7Q0MtY2N9IC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgMT4mNScKLSthY19saW5rPScke0NDLWNjfSAtbyBjb25mdGVzdCR7YWNfZXhlZXh0fSAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTIDE+JjUnCi0rY3Jvc3NfY29tcGlsaW5nPSRhY19jdl9wcm9nX2NjX2Nyb3NzCi0gCi0tZmkKLStjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8IEVPRgotIAotKyNsaW5lIDc3MyAiY29uZmlndXJlIgotKyNpbmNsdWRlICJjb25mZGVmcy5oIgotIAotLXRlc3QgLXogIiRDQyIgJiYgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAotLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICi0tU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0tCi0tIyBQcm92aWRlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBpbGVyLgotLWVjaG8gIiRhc19tZTokTElORU5POiIgXAotLSAgICAgImNoZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNpb24iID4mNQotLWFjX2NvbXBpbGVyPWBzZXQgWCAkYWNfY29tcGlsZTsgZWNobyAkMmAKLS17IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlciAtLXZlcnNpb24gPC9kZXYvbnVsbCA+JjVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA8L2Rldi9udWxsID4mNSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotLXsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVyIC12IDwvZGV2L251bGwgPiY1XCIiKSA+JjUKLS0gIChldmFsICRhY19jb21waWxlciAtdiA8L2Rldi9udWxsID4mNSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotLXsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVyIC1WIDwvZGV2L251bGwgPiY1XCIiKSA+JjUKLS0gIChldmFsICRhY19jb21waWxlciAtViA8L2Rldi9udWxsID4mNSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotLQotLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotLQotLWludAotLW1haW4gKCkKLS17Ci0tCi0tICA7Ci0tICByZXR1cm4gMDsKLS19Ci0tX0FDRU9GCi0tYWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKLS1hY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzIGEub3V0IGEuZXhlIGIub3V0IgotLSMgVHJ5IHRvIGNyZWF0ZSBhbiBleGVjdXRhYmxlIHdpdGhvdXQgLW8gZmlyc3QsIGRpc3JlZ2FyZCBhLm91dC4KLS0jIEl0IHdpbGwgaGVscCB1cyBkaWFnbm9zZSBicm9rZW4gY29tcGlsZXJzLCBhbmQgZmluZGluZyBvdXQgYW4gaW50dWl0aW9uCi0tIyBvZiBleGVleHQuCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0Li4uICRFQ0hPX0MiID4mNgotLWFjX2xpbmtfZGVmYXVsdD1gZWNobyAiJGFjX2xpbmsiIHwgc2VkICdzLyAtbyAqY29uZnRlc3RbXiBdKi8vJ2AKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rX2RlZmF1bHRcIiIpID4mNQotLSAgKGV2YWwgJGFjX2xpbmtfZGVmYXVsdCkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotLSAgIyBGaW5kIHRoZSBvdXRwdXQsIHN0YXJ0aW5nIGZyb20gdGhlIG1vc3QgbGlrZWx5LiAgVGhpcyBzY2hlbWUgaXMKLS0jIG5vdCByb2J1c3QgdG8ganVuayBpbiBgLicsIGhlbmNlIGdvIHRvIHdpbGRjYXJkcyAoYS4qKSBvbmx5IGFzIGEgbGFzdAotLSMgcmVzb3J0LgotLQotLSMgQmUgY2FyZWZ1bCB0byBpbml0aWFsaXplIHRoaXMgdmFyaWFibGUsIHNpbmNlIGl0IHVzZWQgdG8gYmUgY2FjaGVkLgotLSMgT3RoZXJ3aXNlIGFuIG9sZCBjYWNoZSB2YWx1ZSBvZiBgbm8nIGxlZCB0byBgRVhFRVhUID0gbm8nIGluIGEgTWFrZWZpbGUuCi0tYWNfY3ZfZXhlZXh0PQotLSMgYi5vdXQgaXMgY3JlYXRlZCBieSBpOTYwIGNvbXBpbGVycy4KLS1mb3IgYWNfZmlsZSBpbiBhX291dC5leGUgYS5leGUgY29uZnRlc3QuZXhlIGEub3V0IGNvbmZ0ZXN0IGEuKiBjb25mdGVzdC4qIGIub3V0Ci0tZG8KLS0gIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZQotLSAgY2FzZSAkYWNfZmlsZSBpbgotLSAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubyB8ICoub2JqICkKLS0gICAgICAgIDs7Ci0tICAgIGNvbmZ0ZXN0LiRhY19leHQgKQotLSAgICAgICAgIyBUaGlzIGlzIHRoZSBzb3VyY2UgZmlsZS4KLS0gICAgICAgIDs7Ci0tICAgIFthYl0ub3V0ICkKLS0gICAgICAgICMgV2UgZm91bmQgdGhlIGRlZmF1bHQgZXhlY3V0YWJsZSwgYnV0IGV4ZWV4dD0nJyBpcyBtb3N0Ci0tICAgICAgICAjIGNlcnRhaW5seSByaWdodC4KLS0gICAgICAgIGJyZWFrOzsKLS0gICAgKi4qICkKLS0gICAgICAgIGFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAotLSAgICAgICAgIyBGSVhNRTogSSBiZWxpZXZlIHdlIGV4cG9ydCBhY19jdl9leGVleHQgZm9yIExpYnRvb2wsCi0tICAgICAgICAjIGJ1dCBpdCB3b3VsZCBiZSBjb29sIHRvIGZpbmQgb3V0IGlmIGl0J3MgdHJ1ZS4gIERvZXMgYW55Ym9keQotLSAgICAgICAgIyBtYWludGFpbiBMaWJ0b29sPyAtLWFraW0uCi0tICAgICAgICBleHBvcnQgYWNfY3ZfZXhlZXh0Ci0tICAgICAgICBicmVhazs7Ci0tICAgICogKQotLSAgICAgICAgYnJlYWs7OwotLSAgZXNhYwotLWRvbmUKLS1lbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS17IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBDIGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKLS1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogQyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzCi0tU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9Ci0tICAgeyAoZXhpdCA3Nyk7IGV4aXQgNzc7IH07IH0KLS1maQotLQotLWFjX2V4ZWV4dD0kYWNfY3ZfZXhlZXh0Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2ZpbGUiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19maWxlIiA+JjYKLS0KLS0jIENoZWNrIHRoZSBjb21waWxlciBwcm9kdWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBlaXRoZXIKLS0jIHRoZSBjb21waWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNvbXBpbGUuCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jrcy4uLiAkRUNIT19DIiA+JjYKLS0jIEZJWE1FOiBUaGVzZSBjcm9zcyBjb21waWxlciBoYWNrcyBzaG91bGQgYmUgcmVtb3ZlZCBmb3IgQXV0b2NvbmYgMy4wCi0tIyBJZiBub3QgY3Jvc3MgY29tcGlsaW5nLCBjaGVjayB0aGF0IHdlIGNhbiBydW4gYSBzaW1wbGUgcHJvZ3JhbS4KLS1pZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSB5ZXM7IHRoZW4KLS0gIGlmIHsgYWNfdHJ5PScuLyRhY19maWxlJwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLS0gICAgY3Jvc3NfY29tcGlsaW5nPW5vCi0rbWFpbigpe3JldHVybigwKTt9Ci0rRU9GCi0raWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo3Nzg6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbgotKyAgYWNfY3ZfcHJvZ19jY193b3Jrcz15ZXMKLSsgICMgSWYgd2UgY2FuJ3QgcnVuIGEgdHJpdmlhbCBwcm9ncmFtLCB3ZSBhcmUgcHJvYmFibHkgdXNpbmcgYSBjcm9zcyBjb21waWxlci4KLSsgIGlmICguL2NvbmZ0ZXN0OyBleGl0KSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICBhY19jdl9wcm9nX2NjX2Nyb3NzPW5vCi0gICBlbHNlCi0tICAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0gbWF5YmU7IHRoZW4KLS0JY3Jvc3NfY29tcGlsaW5nPXllcwotLSAgICBlbHNlCi0tCXsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gQyBjb21waWxlZCBwcm9ncmFtcy4KLS1JZiB5b3UgbWVhbnQgdG8gY3Jvc3MgY29tcGlsZSwgdXNlIFxgLS1ob3N0Jy4KLS1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IHJ1biBDIGNvbXBpbGVkIHByb2dyYW1zLgotLUlmIHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLgotLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotLSAgICBmaQotKyAgICBhY19jdl9wcm9nX2NjX2Nyb3NzPXllcwotICAgZmkKLStlbHNlCi0rICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotKyAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rICBhY19jdl9wcm9nX2NjX3dvcmtzPW5vCi0gZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotLWVjaG8gIiR7RUNIT19UfXllcyIgPiY2Ci0rcm0gLWZyIGNvbmZ0ZXN0KgotK2FjX2V4dD1jCi0rIyBDRkxBR1MgaXMgbm90IGluIGFjX2NwcCBiZWNhdXNlIC1nLCAtTywgZXRjLiBhcmUgbm90IHZhbGlkIGNwcCBvcHRpb25zLgotK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJHtDQy1jY30gLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCAxPiY1JwotK2FjX2xpbms9JyR7Q0MtY2N9IC1vIGNvbmZ0ZXN0JHthY19leGVleHR9ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgMT4mNScKLStjcm9zc19jb21waWxpbmc9JGFjX2N2X3Byb2dfY2NfY3Jvc3MKLSAKLS1ybSAtZiBhLm91dCBhLmV4ZSBjb25mdGVzdCRhY19jdl9leGVleHQgYi5vdXQKLS1hY19jbGVhbl9maWxlcz0kYWNfY2xlYW5fZmlsZXNfc2F2ZQotLSMgQ2hlY2sgdGhlIGNvbXBpbGVyIHByb2R1Y2VzIGV4ZWN1dGFibGVzIHdlIGNhbiBydW4uICBJZiBub3QsIGVpdGhlcgotLSMgdGhlIGNvbXBpbGVyIGlzIGJyb2tlbiwgb3Igd2UgY3Jvc3MgY29tcGlsZS4KLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiAkRUNIT19DIiA+JjYKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkY3Jvc3NfY29tcGlsaW5nIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kY3Jvc3NfY29tcGlsaW5nIiA+JjYKLS0KLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcyIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uICRFQ0hPX0MiID4mNgotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotLSAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLS0gICMgSWYgYm90aCBgY29uZnRlc3QuZXhlJyBhbmQgYGNvbmZ0ZXN0JyBhcmUgYHByZXNlbnQnICh3ZWxsLCBvYnNlcnZhYmxlKQotLSMgY2F0Y2ggYGNvbmZ0ZXN0LmV4ZScuICBGb3IgaW5zdGFuY2Ugd2l0aCBDeWd3aW4sIGBscyBjb25mdGVzdCcgd2lsbAotLSMgd29yayBwcm9wZXJseSAoaS5lLiwgcmVmZXIgdG8gYGNvbmZ0ZXN0LmV4ZScpLCB3aGlsZSBpdCB3b24ndCB3aXRoCi0tIyBgcm0nLgotLWZvciBhY19maWxlIGluIGNvbmZ0ZXN0LmV4ZSBjb25mdGVzdCBjb25mdGVzdC4qOyBkbwotLSAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCi0tICBjYXNlICRhY19maWxlIGluCi0tICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5vIHwgKi5vYmogKSA7OwotLSAgICAqLiogKSBhY19jdl9leGVleHQ9YGV4cHIgIiRhY19maWxlIiA6ICdbXi5dKlwoXC4uKlwpJ2AKLS0gICAgICAgICAgZXhwb3J0IGFjX2N2X2V4ZWV4dAotLSAgICAgICAgICBicmVhazs7Ci0tICAgICogKSBicmVhazs7Ci0tICBlc2FjCi0tZG9uZQotLWVsc2UKLS0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKLS1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIGV4ZWN1dGFibGVzOiBjYW5ub3QgY29tcGlsZSBhbmQgbGluawotLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2VjaG8gIiRhY190IiIkYWNfY3ZfcHJvZ19jY193b3JrcyIgMT4mNgotK2lmIHRlc3QgJGFjX2N2X3Byb2dfY2Nfd29ya3MgPSBubzsgdGhlbgotKyAgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiBpbnN0YWxsYXRpb24gb3IgY29uZmlndXJhdGlvbiBwcm9ibGVtOiBDIGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMuIiAxPiYyOyBleGl0IDE7IH0KLSBmaQotK2VjaG8gJGFjX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgKCRDQyAkQ0ZMQUdTICRMREZMQUdTKSBpcyBhIGNyb3NzLWNvbXBpbGVyIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6ODA0OiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyICgkQ0MgJENGTEFHUyAkTERGTEFHUykgaXMgYSBjcm9zcy1jb21waWxlciIgPiY1Ci0rZWNobyAiJGFjX3QiIiRhY19jdl9wcm9nX2NjX2Nyb3NzIiAxPiY2Ci0rY3Jvc3NfY29tcGlsaW5nPSRhY19jdl9wcm9nX2NjX2Nyb3NzCi0gCi0tcm0gLWYgY29uZnRlc3QkYWNfY3ZfZXhlZXh0Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2V4ZWV4dCIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2V4ZWV4dCIgPiY2Ci0tCi0tcm0gLWYgY29uZnRlc3QuJGFjX2V4dAotLUVYRUVYVD0kYWNfY3ZfZXhlZXh0Ci0tYWNfZXhlZXh0PSRFWEVFWFQKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9vYmpleHQrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0rZWNobyAkYWNfbiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgR05VIEMiIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZTo4MDk6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIEdOVSBDIiA+JjUKLStpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19nY2MnK3NldH0nYFwiID0gc2V0IjsgdGhlbgotKyAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLSBlbHNlCi0tICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0KLS1pbnQKLS1tYWluICgpCi0tewotLQotLSAgOwotLSAgcmV0dXJuIDA7Ci0tfQotLV9BQ0VPRgotLXJtIC1mIGNvbmZ0ZXN0Lm8gY29uZnRlc3Qub2JqCi0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotLSAgZm9yIGFjX2ZpbGUgaW4gYChscyBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iajsgbHMgY29uZnRlc3QuKikgMj4vZGV2L251bGxgOyBkbwotLSAgY2FzZSAkYWNfZmlsZSBpbgotLSAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyApIDs7Ci0tICAgICopIGFjX2N2X29iamV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJy4qXC5cKC4qXCknYAotLSAgICAgICBicmVhazs7Ci0tICBlc2FjCi0tZG9uZQotKyAgY2F0ID4gY29uZnRlc3QuYyA8PEVPRgotKyNpZmRlZiBfX0dOVUNfXwotKyAgeWVzOwotKyNlbmRpZgotK0VPRgotK2lmIHsgYWNfdHJ5PScke0NDLWNjfSAtRSBjb25mdGVzdC5jJzsgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo4MTg6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9OyB9IHwgZWdyZXAgeWVzID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgYWNfY3ZfcHJvZ19nY2M9eWVzCi0gZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0teyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIG9iamVjdCBmaWxlczogY2Fubm90IGNvbXBpbGUKLS1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIG9iamVjdCBmaWxlczogY2Fubm90IGNvbXBpbGUKLS1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgIGFjX2N2X3Byb2dfZ2NjPW5vCi0gZmkKLS0KLS1ybSAtZiBjb25mdGVzdC4kYWNfY3Zfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSBmaQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9vYmpleHQiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdl9vYmpleHQiID4mNgotLU9CSkVYVD0kYWNfY3Zfb2JqZXh0Ci0tYWNfb2JqZXh0PSRPQkpFWFQKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlci4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X2NfY29tcGlsZXJfZ251K3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotLWVsc2UKLS0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotIAotLWludAotLW1haW4gKCkKLS17Ci0tI2lmbmRlZiBfX0dOVUNfXwotLSAgICAgICBjaG9rZSBtZQotLSNlbmRpZgotK2VjaG8gIiRhY190IiIkYWNfY3ZfcHJvZ19nY2MiIDE+JjYKLSAKLS0gIDsKLS0gIHJldHVybiAwOwotLX0KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotLSAgYWNfY29tcGlsZXJfZ251PXllcwotK2lmIHRlc3QgJGFjX2N2X3Byb2dfZ2NjID0geWVzOyB0aGVuCi0rICBHQ0M9eWVzCi0gZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tYWNfY29tcGlsZXJfZ251PW5vCi0rICBHQ0M9Ci0gZmkKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLS1hY19jdl9jX2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251Ci0gCi0tZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY19jb21waWxlcl9nbnUiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdl9jX2NvbXBpbGVyX2dudSIgPiY2Ci0tR0NDPWB0ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5ZXMgJiYgZWNobyB5ZXNgCi0tYWNfdGVzdF9DRkxBR1M9JHtDRkxBR1Mrc2V0fQotLWFjX3NhdmVfQ0ZMQUdTPSRDRkxBR1MKLS1DRkxBR1M9Ii1nIgotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgJENDIGFjY2VwdHMgLWcuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9wcm9nX2NjX2crc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0rYWNfdGVzdF9DRkxBR1M9IiR7Q0ZMQUdTK3NldH0iCi0rYWNfc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCi0rQ0ZMQUdTPQotK2VjaG8gJGFjX24gImNoZWNraW5nIHdoZXRoZXIgJHtDQy1jY30gYWNjZXB0cyAtZyIiLi4uICRhY19jIiAxPiY2Ci0rZWNobyAiY29uZmlndXJlOjgzNzogY2hlY2tpbmcgd2hldGhlciAke0NDLWNjfSBhY2NlcHRzIC1nIiA+JjUKLStpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19jY19nJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KLSsgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci0gZWxzZQotLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tCi0taW50Ci0tbWFpbiAoKQotLXsKLS0KLS0gIDsKLS0gIHJldHVybiAwOwotLX0KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotKyAgZWNobyAndm9pZCBmKCl7fScgPiBjb25mdGVzdC5jCi0raWYgdGVzdCAteiAiYCR7Q0MtY2N9IC1nIC1jIGNvbmZ0ZXN0LmMgMj4mMWAiOyB0aGVuCi0gICBhY19jdl9wcm9nX2NjX2c9eWVzCi0gZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rICBhY19jdl9wcm9nX2NjX2c9bm8KLStmaQotK3JtIC1mIGNvbmZ0ZXN0KgotIAotLWFjX2N2X3Byb2dfY2NfZz1ubwotIGZpCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0tZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19nIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3ZfcHJvZ19jY19nIiA+JjYKLSsKLStlY2hvICIkYWNfdCIiJGFjX2N2X3Byb2dfY2NfZyIgMT4mNgotIGlmIHRlc3QgIiRhY190ZXN0X0NGTEFHUyIgPSBzZXQ7IHRoZW4KLS0gIENGTEFHUz0kYWNfc2F2ZV9DRkxBR1MKLSsgIENGTEFHUz0iJGFjX3NhdmVfQ0ZMQUdTIgotIGVsaWYgdGVzdCAkYWNfY3ZfcHJvZ19jY19nID0geWVzOyB0aGVuCi0gICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotICAgICBDRkxBR1M9Ii1nIC1PMiIKLUBAIC0yMDI4LDMwNCArODYzLDM3IEBACi0gICAgIENGTEFHUz0KLSAgIGZpCi0gZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IEFOU0kgQyIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJENDIG9wdGlvbiB0byBhY2NlcHQgQU5TSSBDLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jY19zdGRjK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotLWVsc2UKLS0gIGFjX2N2X3Byb2dfY2Nfc3RkYz1ubwotLWFjX3NhdmVfQ0M9JENDCi0tY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tI2luY2x1ZGUgPHN0ZGFyZy5oPgotLSNpbmNsdWRlIDxzdGRpby5oPgotLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLS0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLS0vKiBNb3N0IG9mIHRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIHN0b2xlbiBmcm9tIFJDUyA1LjcncyBzcmMvY29uZi5zaC4gICovCi0tc3RydWN0IGJ1ZiB7IGludCB4OyB9OwotLUZJTEUgKiAoKnJjc29wZW4pIChzdHJ1Y3QgYnVmICosIHN0cnVjdCBzdGF0ICosIGludCk7Ci0tc3RhdGljIGNoYXIgKmUgKHAsIGkpCi0tICAgICBjaGFyICoqcDsKLS0gICAgIGludCBpOwotLXsKLS0gIHJldHVybiBwW2ldOwotLX0KLS1zdGF0aWMgY2hhciAqZiAoY2hhciAqICgqZykgKGNoYXIgKiosIGludCksIGNoYXIgKipwLCAuLi4pCi0tewotLSAgY2hhciAqczsKLS0gIHZhX2xpc3QgdjsKLS0gIHZhX3N0YXJ0ICh2LHApOwotLSAgcyA9IGcgKHAsIHZhX2FyZyAodixpbnQpKTsKLS0gIHZhX2VuZCAodik7Ci0tICByZXR1cm4gczsKLS19Ci0taW50IHRlc3QgKGludCBpLCBkb3VibGUgeCk7Ci0tc3RydWN0IHMxIHtpbnQgKCpmKSAoaW50IGEpO307Ci0tc3RydWN0IHMyIHtpbnQgKCpmKSAoZG91YmxlIGEpO307Ci0taW50IHBhaXJuYW1lcyAoaW50LCBjaGFyICoqLCBGSUxFICooKikoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAqLCBpbnQpLCBpbnQsIGludCk7Ci0taW50IGFyZ2M7Ci0tY2hhciAqKmFyZ3Y7Ci0taW50Ci0tbWFpbiAoKQotLXsKLS1yZXR1cm4gZiAoZSwgYXJndiwgMCkgIT0gYXJndlswXSAgfHwgIGYgKGUsIGFyZ3YsIDEpICE9IGFyZ3ZbMV07Ci0tICA7Ci0tICByZXR1cm4gMDsKLS19Ci0tX0FDRU9GCi0tIyBEb24ndCB0cnkgZ2NjIC1hbnNpOyB0aGF0IHR1cm5zIG9mZiB1c2VmdWwgZXh0ZW5zaW9ucyBhbmQKLS0jIGJyZWFrcyBzb21lIHN5c3RlbXMnIGhlYWRlciBmaWxlcy4KLS0jIEFJWAkJCS1xbGFuZ2x2bD1hbnNpCi0tIyBVbHRyaXggYW5kIE9TRi8xCS1zdGQxCi0tIyBIUC1VWCAxMC4yMCBhbmQgbGF0ZXIJLUFlCi0tIyBIUC1VWCBvbGRlciB2ZXJzaW9ucwktQWEgLURfSFBVWF9TT1VSQ0UKLS0jIFNWUjQJCQktWGMgLURfX0VYVEVOU0lPTlNfXwotLWZvciBhY19hcmcgaW4gIiIgLXFsYW5nbHZsPWFuc2kgLXN0ZDEgLUFlICItQWEgLURfSFBVWF9TT1VSQ0UiICItWGMgLURfX0VYVEVOU0lPTlNfXyIKLS1kbwotLSAgQ0M9IiRhY19zYXZlX0NDICRhY19hcmciCi0tICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotLSAgYWNfY3ZfcHJvZ19jY19zdGRjPSRhY19hcmcKLS1icmVhawotLWVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotIAotLWZpCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotLWRvbmUKLS1ybSAtZiBjb25mdGVzdC4kYWNfZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQKLS1DQz0kYWNfc2F2ZV9DQwotLQotLWZpCi0tCi0tY2FzZSAieCRhY19jdl9wcm9nX2NjX3N0ZGMiIGluCi0tICB4fHhubykKLS0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm9uZSBuZWVkZWQiID4mNQotLWVjaG8gIiR7RUNIT19UfW5vbmUgbmVlZGVkIiA+JjYgOzsKLS0gICopCi0tICAgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX3N0ZGMiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdl9wcm9nX2NjX3N0ZGMiID4mNgotLSAgICBDQz0iJENDICRhY19jdl9wcm9nX2NjX3N0ZGMiIDs7Ci0tZXNhYwotLQotLSMgU29tZSBwZW9wbGUgdXNlIGEgQysrIGNvbXBpbGVyIHRvIGNvbXBpbGUgQy4gIFNpbmNlIHdlIHVzZSBgZXhpdCcsCi0tIyBpbiBDKysgd2UgbmVlZCB0byBkZWNsYXJlIGl0LiAgSW4gY2FzZSBzb21lb25lIHVzZXMgdGhlIHNhbWUgY29tcGlsZXIKLS0jIGZvciBib3RoIGNvbXBpbGluZyBDIGFuZCBDKysgd2UgbmVlZCB0byBoYXZlIHRoZSBDKysgY29tcGlsZXIgZGVjaWRlCi0tIyB0aGUgZGVjbGFyYXRpb24gb2YgZXhpdCwgc2luY2UgaXQncyB0aGUgbW9zdCBkZW1hbmRpbmcgZW52aXJvbm1lbnQuCi0tY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2lmbmRlZiBfX2NwbHVzcGx1cwotLSAgY2hva2UgbWUKLS0jZW5kaWYKLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotLSAgZm9yIGFjX2RlY2xhcmF0aW9uIGluIFwKLS0gICAnJ1wKLS0gICAnI2luY2x1ZGUgPHN0ZGxpYi5oPicgXAotLSAgICdleHRlcm4gIkMiIHZvaWQgc3RkOjpleGl0IChpbnQpIHRocm93ICgpOyB1c2luZyBzdGQ6OmV4aXQ7JyBcCi0tICAgJ2V4dGVybiAiQyIgdm9pZCBzdGQ6OmV4aXQgKGludCk7IHVzaW5nIHN0ZDo6ZXhpdDsnIFwKLS0gICAnZXh0ZXJuICJDIiB2b2lkIGV4aXQgKGludCkgdGhyb3cgKCk7JyBcCi0tICAgJ2V4dGVybiAiQyIgdm9pZCBleGl0IChpbnQpOycgXAotLSAgICd2b2lkIGV4aXQgKGludCk7JwotLWRvCi0tICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0jaW5jbHVkZSA8c3RkbGliLmg+Ci0tJGFjX2RlY2xhcmF0aW9uCi0taW50Ci0tbWFpbiAoKQotLXsKLS1leGl0ICg0Mik7Ci0tICA7Ci0tICByZXR1cm4gMDsKLS19Ci0tX0FDRU9GCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLS0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLS0gIDoKLSsjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInJhbmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IHJhbmxpYjsgYWNfd29yZD0kMgotK2VjaG8gJGFjX24gImNoZWNraW5nIGZvciAkYWNfd29yZCIiLi4uICRhY19jIiAxPiY2Ci0rZWNobyAiY29uZmlndXJlOjg3MTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLStpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19SQU5MSUInK3NldH0nYFwiID0gc2V0IjsgdGhlbgotKyAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS1jb250aW51ZQotLWZpCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0tICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0kYWNfZGVjbGFyYXRpb24KLS1pbnQKLS1tYWluICgpCi0tewotLWV4aXQgKDQyKTsKLS0gIDsKLS0gIHJldHVybiAwOwotLX0KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotLSAgYnJlYWsKLS1lbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS1maQotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotLWRvbmUKLS1ybSAtZiBjb25mdGVzdCoKLS1pZiB0ZXN0IC1uICIkYWNfZGVjbGFyYXRpb24iOyB0aGVuCi0tICBlY2hvICcjaWZkZWYgX19jcGx1c3BsdXMnID4+Y29uZmRlZnMuaAotLSAgZWNobyAkYWNfZGVjbGFyYXRpb24gICAgICA+PmNvbmZkZWZzLmgKLS0gIGVjaG8gJyNlbmRpZicgICAgICAgICAgICAgPj5jb25mZGVmcy5oCi0tZmkKLS0KLS1lbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS1maQotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotLWFjX2V4dD1jCi0tYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLS1hY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0tYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLS1hY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0tCi0taWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotLSAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXJhbmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0tc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9cmFubGliOyBhY193b3JkPSQyCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9wcm9nX1JBTkxJQitzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1lbHNlCi0gICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotICAgYWNfY3ZfcHJvZ19SQU5MSUI9IiRSQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotIGVsc2UKLS1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0tICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotLSAgICBhY19jdl9wcm9nX1JBTkxJQj0iJHthY190b29sX3ByZWZpeH1yYW5saWIiCi0tICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLS0gICAgYnJlYWsgMgotLSAgZmkKLS1kb25lCi0tZG9uZQotLQotKyAgSUZTPSIke0lGUz0gCX0iOyBhY19zYXZlX2lmcz0iJElGUyI7IElGUz0iOiIKLSsgIGFjX2R1bW15PSIkUEFUSCIKLSsgIGZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbwotKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvJGFjX3dvcmQ7IHRoZW4KLSsgICAgICBhY19jdl9wcm9nX1JBTkxJQj0icmFubGliIgotKyAgICAgIGJyZWFrCi0rICAgIGZpCi0rICBkb25lCi0rICBJRlM9IiRhY19zYXZlX2lmcyIKLSsgIHRlc3QgLXogIiRhY19jdl9wcm9nX1JBTkxJQiIgJiYgYWNfY3ZfcHJvZ19SQU5MSUI9IjoiCi0gZmkKLSBmaQotLVJBTkxJQj0kYWNfY3ZfcHJvZ19SQU5MSUIKLStSQU5MSUI9IiRhY19jdl9wcm9nX1JBTkxJQiIKLSBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFJBTkxJQiIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JFJBTkxJQiIgPiY2Ci0rICBlY2hvICIkYWNfdCIiJFJBTkxJQiIgMT4mNgotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLS1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci0rICBlY2hvICIkYWNfdCIibm8iIDE+JjYKLSBmaQotIAotLWZpCi0taWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfUkFOTElCIjsgdGhlbgotLSAgYWNfY3RfUkFOTElCPSRSQU5MSUIKLS0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLS1zZXQgZHVtbXkgcmFubGliOyBhY193b3JkPSQyCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1JBTkxJQitzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1lbHNlCi0tICBpZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgotLSAgYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9IiRhY19jdF9SQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotLWVsc2UKLS1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0tICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotLSAgICBhY19jdl9wcm9nX2FjX2N0X1JBTkxJQj0icmFubGliIgotLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0tICAgIGJyZWFrIDIKLS0gIGZpCi0tZG9uZQotLWRvbmUKLS0KLS0gIHRlc3QgLXogIiRhY19jdl9wcm9nX2FjX2N0X1JBTkxJQiIgJiYgYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9IjoiCi0tZmkKLS1maQotLWFjX2N0X1JBTkxJQj0kYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIKLS1pZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X1JBTkxJQiIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N0X1JBTkxJQiIgPiY2Ci0tZWxzZQotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotLWVjaG8gIiR7RUNIT19UfW5vIiA+JjYKLS1maQotLQotLSAgUkFOTElCPSRhY19jdF9SQU5MSUIKLS1lbHNlCi0tICBSQU5MSUI9IiRhY19jdl9wcm9nX1JBTkxJQiIKLS1maQotLQotICMgRmluZCBhIGdvb2QgaW5zdGFsbCBwcm9ncmFtLiAgV2UgcHJlZmVyIGEgQyBwcm9ncmFtIChmYXN0ZXIpLAotICMgc28gb25lIHNjcmlwdCBpcyBhcyBnb29kIGFzIGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgotICMgaW5jb21wYXRpYmxlIHZlcnNpb25zOgotQEAgLTIzMzMsMzA2ICs5MDEsMTU4IEBACi0gIyBTdW5PUyAvdXNyL2V0Yy9pbnN0YWxsCi0gIyBJUklYIC9zYmluL2luc3RhbGwKLSAjIEFJWCAvYmluL2luc3RhbGwKLS0jIEFtaWdhT1MgL0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9vdGJsb2NrcyBvbiBmbG9wcHkgZGlzY3MKLSAjIEFJWCA0IC91c3IvYmluL2luc3RhbGxic2QsIHdoaWNoIGRvZXNuJ3Qgd29yayB3aXRob3V0IGEgLWcgZmxhZwotICMgQUZTIC91c3IvYWZzd3MvYmluL2luc3RhbGwsIHdoaWNoIG1pc2hhbmRsZXMgbm9uZXhpc3RlbnQgYXJncwotICMgU1ZSNCAvdXNyL3VjYi9pbnN0YWxsLCB3aGljaCB0cmllcyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJzdGFmZiIKLSAjIC4vaW5zdGFsbCwgd2hpY2ggY2FuIGJlIGVycm9uZW91c2x5IGNyZWF0ZWQgYnkgbWFrZSBmcm9tIC4vaW5zdGFsbC5zaC4KLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uICRFQ0hPX0MiID4mNgotK2VjaG8gJGFjX24gImNoZWNraW5nIGZvciBhIEJTRCBjb21wYXRpYmxlIGluc3RhbGwiIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZTo5MTA6IGNoZWNraW5nIGZvciBhIEJTRCBjb21wYXRpYmxlIGluc3RhbGwiID4mNQotIGlmIHRlc3QgLXogIiRJTlNUQUxMIjsgdGhlbgotLWlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wYXRoX2luc3RhbGwnK3NldH0nYFwiID0gc2V0IjsgdGhlbgotKyAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLSBlbHNlCi0tICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgIyBBY2NvdW50IGZvciBwZW9wbGUgd2hvIHB1dCB0cmFpbGluZyBzbGFzaGVzIGluIFBBVEggZWxlbWVudHMuCi0tY2FzZSAkYXNfZGlyLyBpbgotLSAgLi8gfCAuLy8gfCAvY0MvKiB8IFwKLS0gIC9ldGMvKiB8IC91c3Ivc2Jpbi8qIHwgL3Vzci9ldGMvKiB8IC9zYmluLyogfCAvdXNyL2Fmc3dzL2Jpbi8qIHwgXAotLSAgL3Vzci91Y2IvKiApIDs7Ci0tICAqKQotLSAgICAjIE9TRjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVzIGZvciBpbnN0YWxsLgotLSAgICAjIERvbid0IHVzZSBpbnN0YWxsYnNkIGZyb20gT1NGIHNpbmNlIGl0IGluc3RhbGxzIHN0dWZmIGFzIHJvb3QKLS0gICAgIyBieSBkZWZhdWx0LgotLSAgICBmb3IgYWNfcHJvZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7IGRvCi0tICAgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0tICAgICAgICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IjsgdGhlbgotLSAgICAgICAgICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgotLSAgICAgICAgICAgIGdyZXAgZHNwbXNnICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLS0gICAgICAgICAgICAjIEFJWCBpbnN0YWxsLiAgSXQgaGFzIGFuIGluY29tcGF0aWJsZSBjYWxsaW5nIGNvbnZlbnRpb24uCi0tICAgICAgICAgICAgOgotLSAgICAgICAgICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCi0tICAgICAgICAgICAgZ3JlcCBwd3BsdXMgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4vZGV2L251bGwgMj4mMTsgdGhlbgotLSAgICAgICAgICAgICMgcHJvZ3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlwdCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgotLSAgICAgICAgICAgIDoKLS0gICAgICAgICAgZWxzZQotLSAgICAgICAgICAgIGFjX2N2X3BhdGhfaW5zdGFsbD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKLS0gICAgICAgICAgICBicmVhayAzCi0tICAgICAgICAgIGZpCi0tICAgICAgICBmaQotKyAgICBJRlM9IiR7SUZTPSAJfSI7IGFjX3NhdmVfSUZTPSIkSUZTIjsgSUZTPSI6IgotKyAgZm9yIGFjX2RpciBpbiAkUEFUSDsgZG8KLSsgICAgIyBBY2NvdW50IGZvciBwZW9wbGUgd2hvIHB1dCB0cmFpbGluZyBzbGFzaGVzIGluIFBBVEggZWxlbWVudHMuCi0rICAgIGNhc2UgIiRhY19kaXIvIiBpbgotKyAgICAvfC4vfC4vL3wvZXRjLyp8L3Vzci9zYmluLyp8L3Vzci9ldGMvKnwvc2Jpbi8qfC91c3IvYWZzd3MvYmluLyp8L3Vzci91Y2IvKikgOzsKLSsgICAgKikKLSsgICAgICAjIE9TRjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVzIGZvciBpbnN0YWxsLgotKyAgICAgICMgRG9uJ3QgdXNlIGluc3RhbGxic2QgZnJvbSBPU0Ygc2luY2UgaXQgaW5zdGFsbHMgc3R1ZmYgYXMgcm9vdAotKyAgICAgICMgYnkgZGVmYXVsdC4KLSsgICAgICBmb3IgYWNfcHJvZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7IGRvCi0rICAgICAgICBpZiB0ZXN0IC1mICRhY19kaXIvJGFjX3Byb2c7IHRoZW4KLSsJICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgotKyAgICAgICAgICAgIGdyZXAgZHNwbXNnICRhY19kaXIvJGFjX3Byb2cgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCSAgICAjIEFJWCBpbnN0YWxsLiAgSXQgaGFzIGFuIGluY29tcGF0aWJsZSBjYWxsaW5nIGNvbnZlbnRpb24uCi0rCSAgICA6Ci0rCSAgZWxzZQotKwkgICAgYWNfY3ZfcGF0aF9pbnN0YWxsPSIkYWNfZGlyLyRhY19wcm9nIC1jIgotKwkgICAgYnJlYWsgMgotKwkgIGZpCi0rCWZpCi0gICAgICAgZG9uZQotLSAgICBkb25lCi0tICAgIDs7Ci0tZXNhYwotLWRvbmUKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rICBJRlM9IiRhY19zYXZlX0lGUyIKLSAKLS0KLSBmaQotICAgaWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gICAgSU5TVEFMTD0kYWNfY3ZfcGF0aF9pbnN0YWxsCi0rICAgIElOU1RBTEw9IiRhY19jdl9wYXRoX2luc3RhbGwiCi0gICBlbHNlCi0gICAgICMgQXMgYSBsYXN0IHJlc29ydCwgdXNlIHRoZSBzbG93IHNoZWxsIHNjcmlwdC4gIFdlIGRvbid0IGNhY2hlIGEKLSAgICAgIyBwYXRoIGZvciBJTlNUQUxMIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCi0gICAgICMgYnJlYWsgb3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0b3J5IGlzCi0gICAgICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHBhdGggaXMgcmVsYXRpdmUuCi0tICAgIElOU1RBTEw9JGFjX2luc3RhbGxfc2gKLSsgICAgSU5TVEFMTD0iJGFjX2luc3RhbGxfc2giCi0gICBmaQotIGZpCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJElOU1RBTEwiID4mNQotLWVjaG8gIiR7RUNIT19UfSRJTlNUQUxMIiA+JjYKLStlY2hvICIkYWNfdCIiJElOU1RBTEwiIDE+JjYKLSAKLSAjIFVzZSB0ZXN0IC16IGJlY2F1c2UgU3VuT1M0IHNoIG1pc2hhbmRsZXMgYnJhY2VzIGluICR7dmFyLXZhbH0uCi0gIyBJdCB0aGlua3MgdGhlIGZpcnN0IGNsb3NlIGJyYWNlIGVuZHMgdGhlIHZhcmlhYmxlIHN1YnN0aXR1dGlvbi4KLSB0ZXN0IC16ICIkSU5TVEFMTF9QUk9HUkFNIiAmJiBJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCi0gCi0tdGVzdCAteiAiJElOU1RBTExfU0NSSVBUIiAmJiBJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKLSt0ZXN0IC16ICIkSU5TVEFMTF9TQ1JJUFQiICYmIElOU1RBTExfU0NSSVBUPScke0lOU1RBTExfUFJPR1JBTX0nCi0gCi0gdGVzdCAteiAiJElOU1RBTExfREFUQSIgJiYgSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKLSAKLS1pZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0tICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9YXIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK2lmIHRlc3QgJGhvc3QgIT0gJGJ1aWxkOyB0aGVuCi0rICBhY190b29sX3ByZWZpeD0ke2hvc3RfYWxpYXN9LQotK2Vsc2UKLSsgIGFjX3Rvb2xfcHJlZml4PQotK2ZpCi0rCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWFyIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLSBzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1hcjsgYWNfd29yZD0kMgotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19BUitzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLStlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQiIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZTo5NzE6IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0raWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X3Byb2dfQVInK3NldH0nYFwiID0gc2V0IjsgdGhlbgotKyAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLSBlbHNlCi0gICBpZiB0ZXN0IC1uICIkQVIiOyB0aGVuCi0gICBhY19jdl9wcm9nX0FSPSIkQVIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotIGVsc2UKLS1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0tICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotLSAgICBhY19jdl9wcm9nX0FSPSIke2FjX3Rvb2xfcHJlZml4fWFyIgotLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0tICAgIGJyZWFrIDIKLS0gIGZpCi0tZG9uZQotLWRvbmUKLS0KLSsgIElGUz0iJHtJRlM9IAl9IjsgYWNfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IjoiCi0rICBhY19kdW1teT0iJFBBVEgiCi0rICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSsgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAkYWNfZGlyLyRhY193b3JkOyB0aGVuCi0rICAgICAgYWNfY3ZfcHJvZ19BUj0iJHthY190b29sX3ByZWZpeH1hciIKLSsgICAgICBicmVhawotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkYWNfc2F2ZV9pZnMiCi0rICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19BUiIgJiYgYWNfY3ZfcHJvZ19BUj0iYXIiCi0gZmkKLSBmaQotLUFSPSRhY19jdl9wcm9nX0FSCi0rQVI9IiRhY19jdl9wcm9nX0FSIgotIGlmIHRlc3QgLW4gIiRBUiI7IHRoZW4KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRBUiIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JEFSIiA+JjYKLSsgIGVjaG8gIiRhY190IiIkQVIiIDE+JjYKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotKyAgZWNobyAiJGFjX3QiIm5vIiAxPiY2Ci0gZmkKLSAKLS1maQotLWlmIHRlc3QgLXogIiRhY19jdl9wcm9nX0FSIjsgdGhlbgotLSAgYWNfY3RfQVI9JEFSCi0tICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImFyIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLS1zZXQgZHVtbXkgYXI7IGFjX3dvcmQ9JDIKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQVIrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZWxzZQotLSAgaWYgdGVzdCAtbiAiJGFjX2N0X0FSIjsgdGhlbgotLSAgYWNfY3ZfcHJvZ19hY19jdF9BUj0iJGFjX2N0X0FSIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLS1lbHNlCi0tYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLS0gICAgYWNfY3ZfcHJvZ19hY19jdF9BUj0iYXIiCi0tICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLS0gICAgYnJlYWsgMgotLSAgZmkKLS1kb25lCi0tZG9uZQotIAotLWZpCi0tZmkKLS1hY19jdF9BUj0kYWNfY3ZfcHJvZ19hY19jdF9BUgotLWlmIHRlc3QgLW4gIiRhY19jdF9BUiI7IHRoZW4KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9BUiIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N0X0FSIiA+JjYKLS1lbHNlCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotLWZpCi0gCi0tICBBUj0kYWNfY3RfQVIKLStlY2hvICRhY19uICJjaGVja2luZyB3aGV0aGVyIGJ5dGUgb3JkZXJpbmcgaXMgYmlnZW5kaWFuIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6MTAwMTogY2hlY2tpbmcgd2hldGhlciBieXRlIG9yZGVyaW5nIGlzIGJpZ2VuZGlhbiIgPiY1Ci0raWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2NfYmlnZW5kaWFuJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KLSsgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci0gZWxzZQotLSAgQVI9IiRhY19jdl9wcm9nX0FSIgotLWZpCi0tCi0tCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYnl0ZSBvcmRlcmluZyBpcyBiaWdlbmRpYW4iID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciBieXRlIG9yZGVyaW5nIGlzIGJpZ2VuZGlhbi4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X2NfYmlnZW5kaWFuK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotLWVsc2UKLS0gICMgU2VlIGlmIHN5cy9wYXJhbS5oIGRlZmluZXMgdGhlIEJZVEVfT1JERVIgbWFjcm8uCi0tY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0rICBhY19jdl9jX2JpZ2VuZGlhbj11bmtub3duCi0rIyBTZWUgaWYgc3lzL3BhcmFtLmggZGVmaW5lcyB0aGUgQllURV9PUkRFUiBtYWNyby4KLStjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0rI2xpbmUgMTAwOCAiY29uZmlndXJlIgotKyNpbmNsdWRlICJjb25mZGVmcy5oIgotICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0raW50IG1haW4oKSB7Ci0gCi0taW50Ci0tbWFpbiAoKQotLXsKLSAjaWYgIUJZVEVfT1JERVIgfHwgIUJJR19FTkRJQU4gfHwgIUxJVFRMRV9FTkRJQU4KLSAgYm9ndXMgZW5kaWFuIG1hY3JvcwotICNlbmRpZgotLQotLSAgOwotLSAgcmV0dXJuIDA7Ci0tfQotLV9BQ0VPRgotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLS0gIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0tICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLS0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0rOyByZXR1cm4gMDsgfQotK0VPRgotK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MTAxOTogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbgotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotICAgIyBJdCBkb2VzOyBub3cgc2VlIHdoZXRoZXIgaXQgZGVmaW5lZCB0byBCSUdfRU5ESUFOIG9yIG5vdC4KLS1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLStjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0rI2xpbmUgMTAyMyAiY29uZmlndXJlIgotKyNpbmNsdWRlICJjb25mZGVmcy5oIgotICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0raW50IG1haW4oKSB7Ci0gCi0taW50Ci0tbWFpbiAoKQotLXsKLSAjaWYgQllURV9PUkRFUiAhPSBCSUdfRU5ESUFOCi0gIG5vdCBiaWcgZW5kaWFuCi0gI2VuZGlmCi0tCi0tICA7Ci0tICByZXR1cm4gMDsKLS19Ci0tX0FDRU9GCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLS0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSs7IHJldHVybiAwOyB9Ci0rRU9GCi0raWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxMDM0OiBcIiRhY19jb21waWxlXCIpIDE+JjU7IChldmFsICRhY19jb21waWxlKSAyPiY1OyB9OyB0aGVuCi0rICBybSAtcmYgY29uZnRlc3QqCi0gICBhY19jdl9jX2JpZ2VuZGlhbj15ZXMKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS1hY19jdl9jX2JpZ2VuZGlhbj1ubwotKyAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgYWNfY3ZfY19iaWdlbmRpYW49bm8KLSBmaQotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK3JtIC1mIGNvbmZ0ZXN0KgotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLSMgSXQgZG9lcyBub3Q7IGNvbXBpbGUgYSB0ZXN0IHByb2dyYW0uCi0taWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLS0gICMgdHJ5IHRvIGd1ZXNzIHRoZSBlbmRpYW5uZXNzIGJ5IGdyZXBwaW5nIHZhbHVlcyBpbnRvIGFuIG9iamVjdCBmaWxlCi0tICBhY19jdl9jX2JpZ2VuZGlhbj11bmtub3duCi0tICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS1zaG9ydCBhc2NpaV9tbVtdID0geyAweDQyNDksIDB4NDc2NSwgMHg2RTQ0LCAweDY5NjEsIDB4NkU1MywgMHg3OTUzLCAwIH07Ci0tc2hvcnQgYXNjaWlfaWlbXSA9IHsgMHg2OTRDLCAweDU0NTQsIDB4NjU2QywgMHg2RTQ1LCAweDY5NDQsIDB4NkU2MSwgMCB9OwotLXZvaWQgX2FzY2lpICgpIHsgY2hhciAqcyA9IChjaGFyICopIGFzY2lpX21tOyBzID0gKGNoYXIgKikgYXNjaWlfaWk7IH0KLS1zaG9ydCBlYmNkaWNfaWlbXSA9IHsgMHg4OUQzLCAweEUzRTMsIDB4ODU5MywgMHg5NUM1LCAweDg5QzQsIDB4OTU4MSwgMCB9OwotLXNob3J0IGViY2RpY19tbVtdID0geyAweEMyQzksIDB4Qzc4NSwgMHg5NUM0LCAweDg5ODEsIDB4OTVFMiwgMHhBOEUyLCAwIH07Ci0tdm9pZCBfZWJjZGljICgpIHsgY2hhciAqcyA9IChjaGFyICopIGViY2RpY19tbTsgcyA9IChjaGFyICopIGViY2RpY19paTsgfQotLWludAotLW1haW4gKCkKLS17Ci0tIF9hc2NpaSAoKTsgX2ViY2RpYyAoKTsKLS0gIDsKLS0gIHJldHVybiAwOwotLX0KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotLSAgaWYgZ3JlcCBCSUdlbkRpYW5TeVMgY29uZnRlc3QuJGFjX29iamV4dCA+L2Rldi9udWxsIDsgdGhlbgotLSAgYWNfY3ZfY19iaWdlbmRpYW49eWVzCi0rICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotKyAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0gZmkKLS1pZiBncmVwIExpVFRsZUVuRGlhbiBjb25mdGVzdC4kYWNfb2JqZXh0ID4vZGV2L251bGwgOyB0aGVuCi0tICBpZiB0ZXN0ICIkYWNfY3ZfY19iaWdlbmRpYW4iID0gdW5rbm93bjsgdGhlbgotLSAgICBhY19jdl9jX2JpZ2VuZGlhbj1ubwotLSAgZWxzZQotLSAgICAjIGZpbmRpbmcgYm90aCBzdHJpbmdzIGlzIHVubGlrZWx5IHRvIGhhcHBlbiwgYnV0IHdobyBrbm93cz8KLS0gICAgYWNfY3ZfY19iaWdlbmRpYW49dW5rbm93bgotLSAgZmkKLS1maQotK3JtIC1mIGNvbmZ0ZXN0KgotK2lmIHRlc3QgJGFjX2N2X2NfYmlnZW5kaWFuID0gdW5rbm93bjsgdGhlbgotK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCi0rICAgIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogY2FuIG5vdCBydW4gdGVzdCBwcm9ncmFtIHdoaWxlIGNyb3NzIGNvbXBpbGluZyIgMT4mMjsgZXhpdCAxOyB9Ci0gZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tZmkKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLS1lbHNlCi0tICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS1pbnQKLS1tYWluICgpCi0tewotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDEwNTQgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSttYWluICgpIHsKLSAgIC8qIEFyZSB3ZSBsaXR0bGUgb3IgYmlnIGVuZGlhbj8gIEZyb20gSGFyYmlzb24mU3RlZWxlLiAgKi8KLSAgIHVuaW9uCi0gICB7Ci1AQCAtMjY0Miw1MiArMTA2MiwzMSBAQAotICAgdS5sID0gMTsKLSAgIGV4aXQgKHUuY1tzaXplb2YgKGxvbmcpIC0gMV0gPT0gMSk7Ci0gfQotLV9BQ0VPRgotLXJtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotLSAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLStFT0YKLStpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjEwNjc6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAmJiAoLi9jb25mdGVzdDsgZXhpdCkgMj4vZGV2L251bGwKLSt0aGVuCi0gICBhY19jdl9jX2JpZ2VuZGlhbj1ubwotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1Ci0tZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tKCBleGl0ICRhY19zdGF0dXMgKQotLWFjX2N2X2NfYmlnZW5kaWFuPXllcwotKyAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgcm0gLWZyIGNvbmZ0ZXN0KgotKyAgYWNfY3ZfY19iaWdlbmRpYW49eWVzCi0gZmkKLS1ybSAtZiBjb3JlIGNvcmUuKiAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStybSAtZnIgY29uZnRlc3QqCi0gZmkKLSsKLSBmaQotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotIGZpCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2NfYmlnZW5kaWFuIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3ZfY19iaWdlbmRpYW4iID4mNgotLWNhc2UgJGFjX2N2X2NfYmlnZW5kaWFuIGluCi0tICB5ZXMpCi0gCi0tY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLStlY2hvICIkYWNfdCIiJGFjX2N2X2NfYmlnZW5kaWFuIiAxPiY2Ci0raWYgdGVzdCAkYWNfY3ZfY19iaWdlbmRpYW4gPSB5ZXM7IHRoZW4KLSsgIGNhdCA+PiBjb25mZGVmcy5oIDw8XEVPRgotICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKLS1fQUNFT0YKLS0gOzsKLS0gIG5vKQotLSAgICAgOzsKLS0gICopCi0tICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHVua25vd24gZW5kaWFubmVzcwotLXByZXNldHRpbmcgYWNfY3ZfY19iaWdlbmRpYW49bm8gKG9yIHllcykgd2lsbCBoZWxwIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiB1bmtub3duIGVuZGlhbm5lc3MKLS1wcmVzZXR0aW5nIGFjX2N2X2NfYmlnZW5kaWFuPW5vIChvciB5ZXMpIHdpbGwgaGVscCIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0gOzsKLS1lc2FjCi0rRU9GCi0gCi0rZmkKLSAKLSsKLSBpZiB0ZXN0ICJ4JEdDQyIgPSAieHllcyI7IHRoZW4KLSAJQ0ZMQUdTPSIkQ0ZMQUdTIC1XYWxsIgotIGZpCi1AQCAtMjY5NywxNCArMTA5NiwxMyBAQAotICAgY2FzZSAiJHtlbmFibGV2YWx9IiBpbgotICAgICAgICAgICAgICAgICAgeWVzKSBzaGFyZWQ9dHJ1ZSA7OwotICAgICAgICAgICAgICAgICAgbm8pIHNoYXJlZD1mYWxzZSA7OwotLSAgICAgICAgICAgICAgICAgKikgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogYmFkIHZhbHVlICR7ZW5hYmxldmFsfSBmb3Igc2hhcmVkIG9wdGlvbnMiID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IGJhZCB2YWx1ZSAke2VuYWJsZXZhbH0gZm9yIHNoYXJlZCBvcHRpb25zIiA+JjI7fQotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwotKyAgICAgICAgICAgICAgICAgKikgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiBiYWQgdmFsdWUgJHtlbmFibGV2YWx9IGZvciBzaGFyZWQgb3B0aW9ucyIgMT4mMjsgZXhpdCAxOyB9IDs7Ci0gICAgICAgICAgICAgICAgICBlc2FjCi0gZWxzZQotICAgc2hhcmVkPWZhbHNlCi0tZmk7Ci0rZmkKLSAKLSsKLSBjYXNlICIkdGFyZ2V0X2NwdSIgaW4KLSAgICAgIGkzODZ8aTQ4NnxpNTg2fGk2ODYpCi0gCVRBUkdFVF9DUFU9aTM4NgotQEAgLTI3MTIsNyArMTExMCw3IEBACi0gICAgICAqKQotICAgICAgICAgVEFSR0VUX0NQVT0kdGFyZ2V0X2NwdQotICAgICAgOzsKLS1lc2FjCi0rZXNhYyAgICAgCi0gVEFSR0VUX09TPSR0YXJnZXRfb3MKLSAKLSBNNjhLQ0M9Ci1AQCAtMjcyNiw3ICsxMTI0LDcgQEAKLSAJCU02OEtDQz0vdXNyL202OGstcGFsbW9zL2Jpbi9nY2MKLSAJCSMgR2VuZXJpYyBidWlsZCBpcyBBUk0gb3IgTTY4SyAocHJvYmFibHkgQVJNIHRob3VnaCkKLSAgICAgICAgICAgICAgICAgQ0M9Ii91c3IvJFRBUkdFVF9DUFUtcGFsbW9zL2Jpbi9nY2MiCi0tCQlpZiB0ZXN0ICIkdGFyZ2V0X2NwdSIgPSAiYXJtIgotKwkJaWYgdGVzdCAiJHRhcmdldF9jcHUiID0gImFybSIgCi0gICAgICAgICAgICAgICAgIHRoZW4KLSAgICAgICAgICAgICAgICAgICAgQ0M9IiRDQyAtZlBJQyAtbWFyY2g9YXJtdjR0IgotICAgICAgICAgICAgICAgICBmaQotQEAgLTI3NjIsNyArMTE2MCw3IEBACi0gICAgICAqKQotICAgICAgICAgSE9TVF9DUFU9JGhvc3RfY3B1Ci0gICAgICA7OwotLWVzYWMKLStlc2FjICAgICAKLSBIT1NUX09TPSRob3N0X29zCi0gCi0gCi1AQCAtMjgwMCwxMzggKzExOTgsOTEgQEAKLSAgIGNhc2UgIiR7ZW5hYmxldmFsfSIgaW4KLSAgICAgICAgICAgICAgICAgIHllcykgc29ja2V0cz10cnVlIDs7Ci0gICAgICAgICAgICAgICAgICBubykgc29ja2V0cz1mYWxzZSA7OwotLSAgICAgICAgICAgICAgICAgKikgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogYmFkIHZhbHVlICR7ZW5hYmxldmFsfSBmb3Igc29ja2V0cyBvcHRpb25zIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiBiYWQgdmFsdWUgJHtlbmFibGV2YWx9IGZvciBzb2NrZXRzIG9wdGlvbnMiID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7Ci0rICAgICAgICAgICAgICAgICAqKSB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6IGJhZCB2YWx1ZSAke2VuYWJsZXZhbH0gZm9yIHNvY2tldHMgb3B0aW9ucyIgMT4mMjsgZXhpdCAxOyB9IDs7Ci0gICAgICAgICAgICAgICAgICBlc2FjCi0gZWxzZQotICAgc29ja2V0cz10cnVlCi0tZmk7Ci0rZmkKLSsKLSBpZiB0ZXN0ICIkc29ja2V0cyIgPSBmYWxzZTsgdGhlbgotLSAgIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rICAgY2F0ID4+IGNvbmZkZWZzLmggPDxcRU9GCi0gI2RlZmluZSBDU1RfTk9fU09DS0VUUyAxCi0tX0FDRU9GCi0rRU9GCi0gCi0gZmkKLSAKLS1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLStjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0rI2xpbmUgMTIxNiAiY29uZmlndXJlIgotKyNpbmNsdWRlICJjb25mZGVmcy5oIgotICNpbmNsdWRlIDxzdGRpby5oPgotLWludAotLW1haW4gKCkKLS17Ci0raW50IG1haW4oKSB7Ci0gIHN0cnVjdCBhIHsgdW5pb24geyBmbG9hdCBiOyBpbnQgYzsgfSBkOyB9OwotLSAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGEgZSA9IHsgLmQ9eyAuYj0zLjE0IH0gfTsKLS0gIDsKLS0gIHJldHVybiAwOwotLX0KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotKyAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGEgZSA9IHsgLmQ9eyAuYj0zLjE0IH0gfTsgCi0rOyByZXR1cm4gMDsgfQotK0VPRgotK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MTIyNDogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbgotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotICAgdW5pb25pbml0PXllcwotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLXVuaW9uaW5pdD1ubwotKyAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgdW5pb25pbml0PW5vCi0gZmkKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStybSAtZiBjb25mdGVzdCoKLSBpZiB0ZXN0ICIkdW5pb25pbml0IiA9IG5vOyB0aGVuCi0tICAgY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsgICBjYXQgPj4gY29uZmRlZnMuaCA8PFxFT0YKLSAjZGVmaW5lIE5PX1VOSU9OX0lOSVRJQUxJWkFUSU9OIDEKLS1fQUNFT0YKLStFT0YKLSAKLSBmaQotIAotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbW1hcCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgbW1hcC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X2Z1bmNfbW1hcCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLStlY2hvICRhY19uICJjaGVja2luZyBmb3IgbW1hcCIiLi4uICRhY19jIiAxPiY2Ci0rZWNobyAiY29uZmlndXJlOjEyNDI6IGNoZWNraW5nIGZvciBtbWFwIiA+JjUKLStpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfZnVuY19tbWFwJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KLSsgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci0gZWxzZQotLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0rICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0rI2xpbmUgMTI0NyAiY29uZmlndXJlIgotKyNpbmNsdWRlICJjb25mZGVmcy5oIgotIC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKLS0gICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBtbWFwICgpOyBiZWxvdy4KLS0gICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotLSAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwotLSNpZmRlZiBfX1NURENfXwotLSMgaW5jbHVkZSA8bGltaXRzLmg+Ci0tI2Vsc2UKLS0jIGluY2x1ZGUgPGFzc2VydC5oPgotLSNlbmRpZgotKyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIG1tYXAoKTsgYmVsb3cuICAqLwotKyNpbmNsdWRlIDxhc3NlcnQuaD4KLSAvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwotLSNpZmRlZiBfX2NwbHVzcGx1cwotLWV4dGVybiAiQyIKLS17Ci0tI2VuZGlmCi0gLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgotLSAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCi0tY2hhciBtbWFwICgpOwotKyAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotK2NoYXIgbW1hcCgpOwotKwotK2ludCBtYWluKCkgewotKwotIC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKLSAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKLSAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCi0gI2lmIGRlZmluZWQgKF9fc3R1Yl9tbWFwKSB8fCBkZWZpbmVkIChfX3N0dWJfX19tbWFwKQotIGNob2tlIG1lCi0gI2Vsc2UKLS1jaGFyICgqZikgKCkgPSBtbWFwOwotK21tYXAoKTsKLSAjZW5kaWYKLS0jaWZkZWYgX19jcGx1c3BsdXMKLS19Ci0tI2VuZGlmCi0gCi0taW50Ci0tbWFpbiAoKQotLXsKLS1yZXR1cm4gZiAhPSBtbWFwOwotLSAgOwotLSAgcmV0dXJuIDA7Ci0tfQotLV9BQ0VPRgotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0tICAoZXZhbCAkYWNfbGluaykgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKLS0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0tICBhY19jdl9mdW5jX21tYXA9eWVzCi0rOyByZXR1cm4gMDsgfQotK0VPRgotK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MTI3MDogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICBldmFsICJhY19jdl9mdW5jX21tYXA9eWVzIgotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLWFjX2N2X2Z1bmNfbW1hcD1ubwotKyAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgZXZhbCAiYWNfY3ZfZnVuY19tbWFwPW5vIgotIGZpCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK3JtIC1mIGNvbmZ0ZXN0KgotIGZpCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2Z1bmNfbW1hcCIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2Z1bmNfbW1hcCIgPiY2Ci0taWYgdGVzdCAkYWNfY3ZfZnVuY19tbWFwID0geWVzOyB0aGVuCi0rCi0raWYgZXZhbCAidGVzdCBcImBlY2hvICckYWNfY3ZfZnVuY18nbW1hcGBcIiA9IHllcyI7IHRoZW4KLSsgIGVjaG8gIiRhY190IiJ5ZXMiIDE+JjYKLSAgIE1NQVBUWVBFPXBvc2l4Ci0rZWxzZQotKyAgZWNobyAiJGFjX3QiIm5vIiAxPiY2Ci0gZmkKLSAKLSAKLUBAIC0yOTU2LDEwMjggKzEzMDcsMjY2IEBACi0gCi0gCi0gQVVESU9EUklWRVI9bm9uZQotLWFjX2V4dD1jCi0tYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLS1hY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0tYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLS1hY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yLi4uICRFQ0hPX0MiID4mNgotK2VjaG8gJGFjX24gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6MTMxMjogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IiID4mNQotICMgT24gU3Vucywgc29tZXRpbWVzICRDUFAgbmFtZXMgYSBkaXJlY3RvcnkuCi0gaWYgdGVzdCAtbiAiJENQUCIgJiYgdGVzdCAtZCAiJENQUCI7IHRoZW4KLSAgIENQUD0KLSBmaQotIGlmIHRlc3QgLXogIiRDUFAiOyB0aGVuCi0tICBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1BQK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wcm9nX0NQUCcrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0rICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotIGVsc2UKLS0gICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDUFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKLS0gICAgZm9yIENQUCBpbiAiJENDIC1FIiAiJENDIC1FIC10cmFkaXRpb25hbC1jcHAiICIvbGliL2NwcCIKLS0gICAgZG8KLS0gICAgICBhY19wcmVwcm9jX29rPWZhbHNlCi0tZm9yIGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCi0tZG8KLS0gICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKLS0gICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgotLSAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0tICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KLSsgICAgIyBUaGlzIG11c3QgYmUgaW4gZG91YmxlIHF1b3Rlcywgbm90IHNpbmdsZSBxdW90ZXMsIGJlY2F1c2UgQ1BQIG1heSBnZXQKLSsgICMgc3Vic3RpdHV0ZWQgaW50byB0aGUgTWFrZWZpbGUgYW5kICIke0NDLWNjfSIgd2lsbCBjb25mdXNlIG1ha2UuCi0rICBDUFA9IiR7Q0MtY2N9IC1FIgotICAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLS0gICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgotLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tI2lmZGVmIF9fU1REQ19fCi0tIyBpbmNsdWRlIDxsaW1pdHMuaD4KLS0jZWxzZQotLSMgaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0tI2VuZGlmCi0tICAgICAgICAgICAgICAgICAgICAgU3ludGF4IGVycm9yCi0tX0FDRU9GCi0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0tICBjYXQgY29uZnRlc3QuZXJyID4mNQotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgotLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLS0gICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZwotLSAgZWxzZQotLSAgICBhY19jcHBfZXJyPQotLSAgZmkKLS1lbHNlCi0tICBhY19jcHBfZXJyPXllcwotLWZpCi0taWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0aGVuCi0rICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLgotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDEzMjcgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSsjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rU3ludGF4IEVycm9yCi0rRU9GCi0rYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dCIKLSt7IChldmFsIGVjaG8gY29uZmlndXJlOjEzMzM6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9Ci0rYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAotK2lmIHRlc3QgLXogIiRhY19lcnIiOyB0aGVuCi0gICA6Ci0gZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCi0tY29udGludWUKLS1maQotLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0tCi0tICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uLWV4aXN0ZW50IGhlYWRlcnMKLS0gICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCi0tICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0jaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLS1fQUNFT0YKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCi0tICBhY19zdGF0dXM9JD8KLS0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0tICBybSAtZiBjb25mdGVzdC5lcjEKLS0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCi0tICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0tICBlbHNlCi0tICAgIGFjX2NwcF9lcnI9Ci0tICBmaQotLWVsc2UKLS0gIGFjX2NwcF9lcnI9eWVzCi0tZmkKLS1pZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KLS0gICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCi0tY29udGludWUKLS1lbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS0gICMgUGFzc2VzIGJvdGggdGVzdHMuCi0tYWNfcHJlcHJvY19vaz06Ci0tYnJlYWsKLS1maQotLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0tCi0tZG9uZQotLSMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0taWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KLS0gIGJyZWFrCi0tZmkKLS0KLS0gICAgZG9uZQotLSAgICBhY19jdl9wcm9nX0NQUD0kQ1BQCi0tCi0tZmkKLS0gIENQUD0kYWNfY3ZfcHJvZ19DUFAKLS1lbHNlCi0tICBhY19jdl9wcm9nX0NQUD0kQ1BQCi0tZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1BQIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kQ1BQIiA+JjYKLS1hY19wcmVwcm9jX29rPWZhbHNlCi0tZm9yIGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCi0tZG8KLS0gICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKLS0gICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgotLSAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0tICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KLS0gICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCi0tICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KLS0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotLSNpZmRlZiBfX1NURENfXwotLSMgaW5jbHVkZSA8bGltaXRzLmg+Ci0tI2Vsc2UKLS0jIGluY2x1ZGUgPGFzc2VydC5oPgotLSNlbmRpZgotLSAgICAgICAgICAgICAgICAgICAgIFN5bnRheCBlcnJvcgotLV9BQ0VPRgotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKLS0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLS0gIGFjX3N0YXR1cz0kPwotLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLS0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLS0gIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCi0tICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKLS0gIGVsc2UKLS0gICAgYWNfY3BwX2Vycj0KLS0gIGZpCi0tZWxzZQotLSAgYWNfY3BwX2Vycj15ZXMKLS1maQotLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotKyAgZWNobyAiJGFjX2VyciIgPiY1Ci0rICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotKyAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rICBybSAtcmYgY29uZnRlc3QqCi0rICBDUFA9IiR7Q0MtY2N9IC1FIC10cmFkaXRpb25hbC1jcHAiCi0rICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0rI2xpbmUgMTM0NCAiY29uZmlndXJlIgotKyNpbmNsdWRlICJjb25mZGVmcy5oIgotKyNpbmNsdWRlIDxhc3NlcnQuaD4KLStTeW50YXggRXJyb3IKLStFT0YKLSthY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgotK3sgKGV2YWwgZWNobyBjb25maWd1cmU6MTM1MDogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7IH0KLSthY19lcnI9YGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0Lm91dCB8IGdyZXAgLXYgIl5jb25mdGVzdC4ke2FjX2V4dH1cJCJgCi0raWYgdGVzdCAteiAiJGFjX2VyciI7IHRoZW4KLSAgIDoKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS0gICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLS1jb250aW51ZQotLWZpCi0tcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLS0KLS0gICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub24tZXhpc3RlbnQgaGVhZGVycwotLSAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KLS0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotLSNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgotLV9BQ0VPRgotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKLS0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLS0gIGFjX3N0YXR1cz0kPwotLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLS0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLS0gIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCi0tICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKLS0gIGVsc2UKLS0gICAgYWNfY3BwX2Vycj0KLS0gIGZpCi0tZWxzZQotLSAgYWNfY3BwX2Vycj15ZXMKLS1maQotLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotLSAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KLS1jb250aW51ZQotLWVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLSAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KLS1hY19wcmVwcm9jX29rPToKLS1icmVhawotLWZpCi0tcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLS0KLS1kb25lCi0tIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCi0tcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLS1pZiAkYWNfcHJlcHJvY19vazsgdGhlbgotKyAgZWNobyAiJGFjX2VyciIgPiY1Ci0rICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotKyAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rICBybSAtcmYgY29uZnRlc3QqCi0rICBDUFA9IiR7Q0MtY2N9IC1ub2xvZ28gLUUiCi0rICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0rI2xpbmUgMTM2MSAiY29uZmlndXJlIgotKyNpbmNsdWRlICJjb25mZGVmcy5oIgotKyNpbmNsdWRlIDxhc3NlcnQuaD4KLStTeW50YXggRXJyb3IKLStFT0YKLSthY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgotK3sgKGV2YWwgZWNobyBjb25maWd1cmU6MTM2NzogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7IH0KLSthY19lcnI9YGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0Lm91dCB8IGdyZXAgLXYgIl5jb25mdGVzdC4ke2FjX2V4dH1cJCJgCi0raWYgdGVzdCAteiAiJGFjX2VyciI7IHRoZW4KLSAgIDoKLSBlbHNlCi0tICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBDIHByZXByb2Nlc3NvciBcIiRDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLS1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogQyBwcmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCi0tU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBlY2hvICIkYWNfZXJyIiA+JjUKLSsgIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIENQUD0vbGliL2NwcAotIGZpCi0tCi0tYWNfZXh0PWMKLS1hY19jcHA9JyRDUFAgJENQUEZMQUdTJwotLWFjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLS1hY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotLWFjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLS0KLS0KLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGVncmVwIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBlZ3JlcC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfZWdyZXArc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZWxzZQotLSAgaWYgZWNobyBhIHwgKGdyZXAgLUUgJyhhfGIpJykgPi9kZXYvbnVsbCAyPiYxCi0tICAgIHRoZW4gYWNfY3ZfcHJvZ19lZ3JlcD0nZ3JlcCAtRScKLS0gICAgZWxzZSBhY19jdl9wcm9nX2VncmVwPSdlZ3JlcCcKLS0gICAgZmkKLStybSAtZiBjb25mdGVzdCoKLSBmaQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2VncmVwIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3ZfcHJvZ19lZ3JlcCIgPiY2Ci0tIEVHUkVQPSRhY19jdl9wcm9nX2VncmVwCi0tCi0tCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N0ZGMrc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZWxzZQotLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tI2luY2x1ZGUgPHN0ZGxpYi5oPgotLSNpbmNsdWRlIDxzdGRhcmcuaD4KLS0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0tI2luY2x1ZGUgPGZsb2F0Lmg+Ci0tCi0taW50Ci0tbWFpbiAoKQotLXsKLS0KLS0gIDsKLS0gIHJldHVybiAwOwotLX0KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotLSAgYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCi0tZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KLS1maQotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotLQotLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0tICAjIFN1bk9TIDQueCBzdHJpbmcuaCBkb2VzIG5vdCBkZWNsYXJlIG1lbSosIGNvbnRyYXJ5IHRvIEFOU0kuCi0tICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0tCi0tX0FDRU9GCi0taWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotLSAgJEVHUkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhlbgotLSAgOgotLWVsc2UKLS0gIGFjX2N2X2hlYWRlcl9zdGRjPW5vCi0tZmkKLSBybSAtZiBjb25mdGVzdCoKLS0KLSBmaQotLQotLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0tICAjIElTQyAyLjAuMiBzdGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuCi0tICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0jaW5jbHVkZSA8c3RkbGliLmg+Ci0tCi0tX0FDRU9GCi0taWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotLSAgJEVHUkVQICJmcmVlIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLS0gIDoKLS1lbHNlCi0tICBhY19jdl9oZWFkZXJfc3RkYz1ubwotLWZpCi0gcm0gLWYgY29uZnRlc3QqCi0tCi0rICBhY19jdl9wcm9nX0NQUD0iJENQUCIKLSBmaQotLQotLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0tICAjIC9iaW4vY2MgaW4gSXJpeC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3JvcyB1bmxlc3MgdXNpbmcgLWFuc2kuCi0tICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgotLSAgOgotKyAgQ1BQPSIkYWNfY3ZfcHJvZ19DUFAiCi0gZWxzZQotLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotLS8qIGNvbmZkZWZzLmguICAqLwotLV9BQ0VPRgotLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0tI2luY2x1ZGUgPGN0eXBlLmg+Ci0tI2lmICgoJyAnICYgMHgwRkYpID09IDB4MDIwKQotLSMgZGVmaW5lIElTTE9XRVIoYykgKCdhJyA8PSAoYykgJiYgKGMpIDw9ICd6JykKLS0jIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMpID8gJ0EnICsgKChjKSAtICdhJykgOiAoYykpCi0tI2Vsc2UKLS0jIGRlZmluZSBJU0xPV0VSKGMpIFwKLS0gICAgICAgICAgICAgICAgICAgKCgnYScgPD0gKGMpICYmIChjKSA8PSAnaScpIFwKLS0gICAgICAgICAgICAgICAgICAgICB8fCAoJ2onIDw9IChjKSAmJiAoYykgPD0gJ3InKSBcCi0tICAgICAgICAgICAgICAgICAgICAgfHwgKCdzJyA8PSAoYykgJiYgKGMpIDw9ICd6JykpCi0tIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICgoYykgfCAweDQwKSA6IChjKSkKLS0jZW5kaWYKLS0KLS0jZGVmaW5lIFhPUihlLCBmKSAoKChlKSAmJiAhKGYpKSB8fCAoIShlKSAmJiAoZikpKQotLWludAotLW1haW4gKCkKLS17Ci0tICBpbnQgaTsKLS0gIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykKLS0gICAgaWYgKFhPUiAoaXNsb3dlciAoaSksIElTTE9XRVIgKGkpKQotLSAgICAgICAgfHwgdG91cHBlciAoaSkgIT0gVE9VUFBFUiAoaSkpCi0tICAgICAgZXhpdCgyKTsKLS0gIGV4aXQgKDApOwotLX0KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdCRhY19leGVleHQKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKLS0gIChldmFsICRhY19saW5rKSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLS0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0tICA6Ci0tZWxzZQotLSAgZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKLS1lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS0oIGV4aXQgJGFjX3N0YXR1cyApCi0tYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KLSsgIGFjX2N2X3Byb2dfQ1BQPSIkQ1BQIgotIGZpCi0tcm0gLWYgY29yZSBjb3JlLiogKi5jb3JlIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0tZmkKLS1maQotLWZpCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zdGRjIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNgotLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0rZWNobyAiJGFjX3QiIiRDUFAiIDE+JjYKLSAKLS1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotLSNkZWZpbmUgU1REQ19IRUFERVJTIDEKLS1fQUNFT0YKLS0KLS1maQotLQotLSMgT24gSVJJWCA1LjMsIHN5cy90eXBlcyBhbmQgaW50dHlwZXMuaCBhcmUgY29uZmxpY3RpbmcuCi0tCi0tCi0tCi0tCi0tCi0tCi0tCi0tCi0tCi0tZm9yIGFjX2hlYWRlciBpbiBzeXMvdHlwZXMuaCBzeXMvc3RhdC5oIHN0ZGxpYi5oIHN0cmluZy5oIG1lbW9yeS5oIHN0cmluZ3MuaCBcCi0tICAgICAgICAgICAgICAgICAgaW50dHlwZXMuaCBzdGRpbnQuaCB1bmlzdGQuaAotLWRvCi0tYXNfYWNfSGVhZGVyPWBlY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICRFQ0hPX0MiID4mNgotLWlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0rYWNfc2FmZT1gZWNobyAic3lzL3NvdW5kY2FyZC5oIiB8IHNlZCAneSUuLystJV9fcF8lJ2AKLStlY2hvICRhY19uICJjaGVja2luZyBmb3Igc3lzL3NvdW5kY2FyZC5oIiIuLi4gJGFjX2MiIDE+JjYKLStlY2hvICJjb25maWd1cmU6MTM5MzogY2hlY2tpbmcgZm9yIHN5cy9zb3VuZGNhcmQuaCIgPiY1Ci0raWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2hlYWRlcl8kYWNfc2FmZScrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0rICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotIGVsc2UKLS0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotLSRhY19pbmNsdWRlc19kZWZhdWx0Ci0tCi0tI2luY2x1ZGUgPCRhY19oZWFkZXI+Ci0tX0FDRU9GCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLS0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLS0gIChldmFsICRhY190cnkpIDI+JjUKLS0gIGFjX3N0YXR1cz0kPwotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLS0gIGV2YWwgIiRhc19hY19IZWFkZXI9eWVzIgotLWVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLWV2YWwgIiRhc19hY19IZWFkZXI9bm8iCi0tZmkKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLS1maQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKLS1lY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2Ci0taWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgotLSAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotLSNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi0tX0FDRU9GCi0tCi0tZmkKLS0KLS1kb25lCi0tCi0tCi0taWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3NvdW5kY2FyZF9oK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN5cy9zb3VuZGNhcmQuaCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3lzL3NvdW5kY2FyZC5oLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N5c19zb3VuZGNhcmRfaCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1maQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3lzX3NvdW5kY2FyZF9oIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N5c19zb3VuZGNhcmRfaCIgPiY2Ci0tZWxzZQotLSAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHN5cy9zb3VuZGNhcmQuaCB1c2FiaWxpdHkiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL3NvdW5kY2FyZC5oIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjYKLS1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0kYWNfaW5jbHVkZXNfZGVmYXVsdAotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDEzOTggImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSAjaW5jbHVkZSA8c3lzL3NvdW5kY2FyZC5oPgotLV9BQ0VPRgotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLS0gIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0tICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLS0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0tICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCi0rRU9GCi0rYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dCIKLSt7IChldmFsIGVjaG8gY29uZmlndXJlOjE0MDM6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9Ci0rYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAotK2lmIHRlc3QgLXogIiRhY19lcnIiOyB0aGVuCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICBldmFsICJhY19jdl9oZWFkZXJfJGFjX3NhZmU9eWVzIgotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLWFjX2hlYWRlcl9jb21waWxlcj1ubwotKyAgZWNobyAiJGFjX2VyciIgPiY1Ci0rICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotKyAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rICBybSAtcmYgY29uZnRlc3QqCi0rICBldmFsICJhY19jdl9oZWFkZXJfJGFjX3NhZmU9bm8iCi0gZmkKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjYKLS0KLS0jIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgc3lzL3NvdW5kY2FyZC5oIHByZXNlbmNlIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIHN5cy9zb3VuZGNhcmQuaCBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjYKLS1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0jaW5jbHVkZSA8c3lzL3NvdW5kY2FyZC5oPgotLV9BQ0VPRgotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKLS0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLS0gIGFjX3N0YXR1cz0kPwotLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLS0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLS0gIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCi0tICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKLS0gIGVsc2UKLS0gICAgYWNfY3BwX2Vycj0KLS0gIGZpCi0tZWxzZQotLSAgYWNfY3BwX2Vycj15ZXMKLStybSAtZiBjb25mdGVzdCoKLSBmaQotLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotLSAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCi0tZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tICBhY19oZWFkZXJfcHJlcHJvYz1ubwotLWZpCi0tcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfcHJlcHJvYyIgPiY2Ci0tCi0tIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/Ci0tY2FzZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYyBpbgotLSAgeWVzOm5vICkKLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKLS1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc291bmRjYXJkLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQotLSAgICAoCi0tICAgICAgY2F0IDw8XF9BU0JPWAotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotLSMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1hdXRvY29uZkBnbnUub3JnLiAjIwotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotLV9BU0JPWAotLSAgICApIHwKLS0gICAgICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKLS0gICAgOzsKLS0gIG5vOnllcyApCi0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKLS1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9zb3VuZGNhcmQuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvc291bmRjYXJkLmg6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc291bmRjYXJkLmg6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3NvdW5kY2FyZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc291bmRjYXJkLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQotLSAgICAoCi0tICAgICAgY2F0IDw8XF9BU0JPWAotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotLSMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1hdXRvY29uZkBnbnUub3JnLiAjIwotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotLV9BU0JPWAotLSAgICApIHwKLS0gICAgICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKLS0gICAgOzsKLS1lc2FjCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzeXMvc291bmRjYXJkLmgiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN5cy9zb3VuZGNhcmQuaC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfc291bmRjYXJkX2grc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZWxzZQotLSAgYWNfY3ZfaGVhZGVyX3N5c19zb3VuZGNhcmRfaD0kYWNfaGVhZGVyX3ByZXByb2MKLS1maQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3lzX3NvdW5kY2FyZF9oIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N5c19zb3VuZGNhcmRfaCIgPiY2Ci0tCi0tZmkKLS1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3lzX3NvdW5kY2FyZF9oID0geWVzOyB0aGVuCi0raWYgZXZhbCAidGVzdCBcImBlY2hvICckYWNfY3ZfaGVhZGVyXyckYWNfc2FmZWBcIiA9IHllcyI7IHRoZW4KLSsgIGVjaG8gIiRhY190IiJ5ZXMiIDE+JjYKLSAgIEFVRElPRFJJVkVSPSJvc3MiCi0gICAgICAgICAgICAgICAgQVVESU9ERUZTPS1EQ1NUX0FVRElPX0xJTlVYCi0rZWxzZQotKyAgZWNobyAiJGFjX3QiIm5vIiAxPiY2Ci0gZmkKLSAKLS0KLS1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9tYWNoaW5lX3NvdW5kY2FyZF9oK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1hY2hpbmUvc291bmRjYXJkLmgiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG1hY2hpbmUvc291bmRjYXJkLmguLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9oZWFkZXJfbWFjaGluZV9zb3VuZGNhcmRfaCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1maQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfbWFjaGluZV9zb3VuZGNhcmRfaCIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9tYWNoaW5lX3NvdW5kY2FyZF9oIiA+JjYKLSthY19zYWZlPWBlY2hvICJtYWNoaW5lL3NvdW5kY2FyZC5oIiB8IHNlZCAneSUuLystJV9fcF8lJ2AKLStlY2hvICRhY19uICJjaGVja2luZyBmb3IgbWFjaGluZS9zb3VuZGNhcmQuaCIiLi4uICRhY19jIiAxPiY2Ci0rZWNobyAiY29uZmlndXJlOjE0Mjc6IGNoZWNraW5nIGZvciBtYWNoaW5lL3NvdW5kY2FyZC5oIiA+JjUKLStpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfaGVhZGVyXyRhY19zYWZlJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KLSsgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci0gZWxzZQotLSAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIG1hY2hpbmUvc291bmRjYXJkLmggdXNhYmlsaXR5IiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIG1hY2hpbmUvc291bmRjYXJkLmggdXNhYmlsaXR5Li4uICRFQ0hPX0MiID4mNgotLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotLSRhY19pbmNsdWRlc19kZWZhdWx0Ci0rICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0rI2xpbmUgMTQzMiAiY29uZmlndXJlIgotKyNpbmNsdWRlICJjb25mZGVmcy5oIgotICNpbmNsdWRlIDxtYWNoaW5lL3NvdW5kY2FyZC5oPgotLV9BQ0VPRgotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLS0gIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0tICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLS0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0tICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCi0rRU9GCi0rYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dCIKLSt7IChldmFsIGVjaG8gY29uZmlndXJlOjE0Mzc6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9Ci0rYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAotK2lmIHRlc3QgLXogIiRhY19lcnIiOyB0aGVuCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICBldmFsICJhY19jdl9oZWFkZXJfJGFjX3NhZmU9eWVzIgotIGVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLWFjX2hlYWRlcl9jb21waWxlcj1ubwotKyAgZWNobyAiJGFjX2VyciIgPiY1Ci0rICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotKyAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rICBybSAtcmYgY29uZnRlc3QqCi0rICBldmFsICJhY19jdl9oZWFkZXJfJGFjX3NhZmU9bm8iCi0gZmkKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjYKLS0KLS0jIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgbWFjaGluZS9zb3VuZGNhcmQuaCBwcmVzZW5jZSIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBtYWNoaW5lL3NvdW5kY2FyZC5oIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNgotLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLSNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLS0vKiBjb25mZGVmcy5oLiAgKi8KLS1fQUNFT0YKLS1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLS1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0tLyogZW5kIGNvbmZkZWZzLmguICAqLwotLSNpbmNsdWRlIDxtYWNoaW5lL3NvdW5kY2FyZC5oPgotLV9BQ0VPRgotLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKLS0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLS0gIGFjX3N0YXR1cz0kPwotLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLS0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLS0gIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCi0tICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKLS0gIGVsc2UKLS0gICAgYWNfY3BwX2Vycj0KLS0gIGZpCi0tZWxzZQotLSAgYWNfY3BwX2Vycj15ZXMKLStybSAtZiBjb25mdGVzdCoKLSBmaQotLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotLSAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCi0tZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tICBhY19oZWFkZXJfcHJlcHJvYz1ubwotLWZpCi0tcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfcHJlcHJvYyIgPiY2Ci0tCi0tIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/Ci0tY2FzZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYyBpbgotLSAgeWVzOm5vICkKLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KLS0gICAgKAotLSAgICAgIGNhdCA8PFxfQVNCT1gKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS0jIyBSZXBvcnQgdGhpcyB0byBidWctYXV0b2NvbmZAZ251Lm9yZy4gIyMKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS1fQVNCT1gKLS0gICAgKSB8Ci0tICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCi0tICAgIDs7Ci0tICBubzp5ZXMgKQotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQotLWVjaG8gIiRhc19tZTogV0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQotLWVjaG8gIiRhc19tZTogV0FSTklORzogbWFjaGluZS9zb3VuZGNhcmQuaDogY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtYWNoaW5lL3NvdW5kY2FyZC5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KLS0gICAgKAotLSAgICAgIGNhdCA8PFxfQVNCT1gKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS0jIyBSZXBvcnQgdGhpcyB0byBidWctYXV0b2NvbmZAZ251Lm9yZy4gIyMKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS1fQVNCT1gKLS0gICAgKSB8Ci0tICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCi0tICAgIDs7Ci0tZXNhYwotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFjaGluZS9zb3VuZGNhcmQuaCIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgbWFjaGluZS9zb3VuZGNhcmQuaC4uLiAkRUNIT19DIiA+JjYKLS1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9tYWNoaW5lX3NvdW5kY2FyZF9oK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotLWVsc2UKLS0gIGFjX2N2X2hlYWRlcl9tYWNoaW5lX3NvdW5kY2FyZF9oPSRhY19oZWFkZXJfcHJlcHJvYwotLWZpCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9tYWNoaW5lX3NvdW5kY2FyZF9oIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX21hY2hpbmVfc291bmRjYXJkX2giID4mNgotLQotLWZpCi0taWYgdGVzdCAkYWNfY3ZfaGVhZGVyX21hY2hpbmVfc291bmRjYXJkX2ggPSB5ZXM7IHRoZW4KLStpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyRhY19jdl9oZWFkZXJfJyRhY19zYWZlYFwiID0geWVzIjsgdGhlbgotKyAgZWNobyAiJGFjX3QiInllcyIgMT4mNgotICAgQVVESU9EUklWRVI9Im9zcyIKLSAgICAgICAgICAgICAgICBBVURJT0RFRlM9LURDU1RfQVVESU9fRlJFRUJTRAotK2Vsc2UKLSsgIGVjaG8gIiRhY190IiJubyIgMT4mNgotIGZpCi0gCi0tCi0taWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX2F1ZGlvaW9faCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzeXMvYXVkaW9pby5oIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzeXMvYXVkaW9pby5oLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N5c19hdWRpb2lvX2grc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0tZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N5c19hdWRpb2lvX2giID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3lzX2F1ZGlvaW9faCIgPiY2Ci0rYWNfc2FmZT1gZWNobyAic3lzL2F1ZGlvaW8uaCIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCi0rZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIHN5cy9hdWRpb2lvLmgiIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZToxNDYxOiBjaGVja2luZyBmb3Igc3lzL2F1ZGlvaW8uaCIgPiY1Ci0raWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2hlYWRlcl8kYWNfc2FmZScrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0rICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotIGVsc2UKLS0gICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvYXVkaW9pby5oIHVzYWJpbGl0eSIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBzeXMvYXVkaW9pby5oIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjYKLS1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0kYWNfaW5jbHVkZXNfZGVmYXVsdAotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDE0NjYgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSAjaW5jbHVkZSA8c3lzL2F1ZGlvaW8uaD4KLS1fQUNFT0YKLS1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0taWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0tICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotLSAgYWNfc3RhdHVzPSQ/Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotLSAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwotK0VPRgotK2FjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQiCi0reyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxNDcxOiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotK2FjX2Vycj1gZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0IHwgZ3JlcCAtdiAiXmNvbmZ0ZXN0LiR7YWNfZXh0fVwkImAKLStpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgZXZhbCAiYWNfY3ZfaGVhZGVyXyRhY19zYWZlPXllcyIKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS1hY19oZWFkZXJfY29tcGlsZXI9bm8KLSsgIGVjaG8gIiRhY19lcnIiID4mNQotKyAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgZXZhbCAiYWNfY3ZfaGVhZGVyXyRhY19zYWZlPW5vIgotIGZpCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2Ci0tCi0tIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHN5cy9hdWRpb2lvLmggcHJlc2VuY2UiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL2F1ZGlvaW8uaCBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjYKLS1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0jaW5jbHVkZSA8c3lzL2F1ZGlvaW8uaD4KLS1fQUNFT0YKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCi0tICBhY19zdGF0dXM9JD8KLS0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0tICBybSAtZiBjb25mdGVzdC5lcjEKLS0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCi0tICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0tICBlbHNlCi0tICAgIGFjX2NwcF9lcnI9Ci0tICBmaQotLWVsc2UKLS0gIGFjX2NwcF9lcnI9eWVzCi0rcm0gLWYgY29uZnRlc3QqCi0gZmkKLS1pZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KLS0gIGFjX2hlYWRlcl9wcmVwcm9jPXllcwotLWVsc2UKLS0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0tc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotLQotLSAgYWNfaGVhZGVyX3ByZXByb2M9bm8KLS1maQotLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKLS1lY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNgotLQotLSMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwotLWNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2MgaW4KLS0gIHllczpubyApCi0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9hdWRpb2lvLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQotLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL2F1ZGlvaW8uaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL2F1ZGlvaW8uaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQotLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL2F1ZGlvaW8uaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9Ci0tICAgICgKLS0gICAgICBjYXQgPDxcX0FTQk9YCi0tIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0tIyMgUmVwb3J0IHRoaXMgdG8gYnVnLWF1dG9jb25mQGdudS5vcmcuICMjCi0tIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0tX0FTQk9YCi0tICAgICkgfAotLSAgICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgotLSAgICA7OwotLSAgbm86eWVzICkKLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL2F1ZGlvaW8uaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKLS1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9hdWRpb2lvLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL2F1ZGlvaW8uaDogY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUKLS1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9hdWRpb2lvLmg6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KLS0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL2F1ZGlvaW8uaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQotLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL2F1ZGlvaW8uaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9Ci0tICAgICgKLS0gICAgICBjYXQgPDxcX0FTQk9YCi0tIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0tIyMgUmVwb3J0IHRoaXMgdG8gYnVnLWF1dG9jb25mQGdudS5vcmcuICMjCi0tIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0tX0FTQk9YCi0tICAgICkgfAotLSAgICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgotLSAgICA7OwotLWVzYWMKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN5cy9hdWRpb2lvLmgiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN5cy9hdWRpb2lvLmguLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX2F1ZGlvaW9faCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1lbHNlCi0tICBhY19jdl9oZWFkZXJfc3lzX2F1ZGlvaW9faD0kYWNfaGVhZGVyX3ByZXByb2MKLS1maQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3lzX2F1ZGlvaW9faCIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zeXNfYXVkaW9pb19oIiA+JjYKLS0KLS1maQotLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zeXNfYXVkaW9pb19oID0geWVzOyB0aGVuCi0raWYgZXZhbCAidGVzdCBcImBlY2hvICckYWNfY3ZfaGVhZGVyXyckYWNfc2FmZWBcIiA9IHllcyI7IHRoZW4KLSsgIGVjaG8gIiRhY190IiJ5ZXMiIDE+JjYKLSAgIEFVRElPRFJJVkVSPSJzdW4iCi0gICAgICAgICAgICAgICAgQVVESU9ERUZTPS1EQ1NUX0FVRElPX1NVTk9TCi0rZWxzZQotKyAgZWNobyAiJGFjX3QiIm5vIiAxPiY2Ci0gZmkKLSAKLS0KLS1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9tbXN5c3RlbV9oK3NldH0iID0gc2V0OyB0aGVuCi0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1tc3lzdGVtLmgiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG1tc3lzdGVtLmguLi4gJEVDSE9fQyIgPiY2Ci0taWYgdGVzdCAiJHthY19jdl9oZWFkZXJfbW1zeXN0ZW1faCtzZXR9IiA9IHNldDsgdGhlbgotLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLS1maQotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfbW1zeXN0ZW1faCIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9tbXN5c3RlbV9oIiA+JjYKLSsgYWNfc2FmZT1gZWNobyAiYWxzYS9hc291bmRsaWIuaCIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCi0rZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIGFsc2EvYXNvdW5kbGliLmgiIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZToxNDk1OiBjaGVja2luZyBmb3IgYWxzYS9hc291bmRsaWIuaCIgPiY1Ci0raWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2hlYWRlcl8kYWNfc2FmZScrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0rICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotIGVsc2UKLS0gICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwotLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBtbXN5c3RlbS5oIHVzYWJpbGl0eSIgPiY1Ci0tZWNobyAkRUNIT19OICJjaGVja2luZyBtbXN5c3RlbS5oIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjYKLS1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0kYWNfaW5jbHVkZXNfZGVmYXVsdAotLSNpbmNsdWRlIDxtbXN5c3RlbS5oPgotLV9BQ0VPRgotLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLS0gIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0tICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLS0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0tICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0tICBhY19zdGF0dXM9JD8KLS0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLS0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0tICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCi0rICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0rI2xpbmUgMTUwMCAiY29uZmlndXJlIgotKyNpbmNsdWRlICJjb25mZGVmcy5oIgotKyNpbmNsdWRlIDxhbHNhL2Fzb3VuZGxpYi5oPgotK0VPRgotK2FjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQiCi0reyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxNTA1OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotK2FjX2Vycj1gZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0IHwgZ3JlcCAtdiAiXmNvbmZ0ZXN0LiR7YWNfZXh0fVwkImAKLStpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgZXZhbCAiYWNfY3ZfaGVhZGVyXyRhY19zYWZlPXllcyIKLSBlbHNlCi0tICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLS0KLS1hY19oZWFkZXJfY29tcGlsZXI9bm8KLSsgIGVjaG8gIiRhY19lcnIiID4mNQotKyAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgZXZhbCAiYWNfY3ZfaGVhZGVyXyRhY19zYWZlPW5vIgotIGZpCi0tcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2Ci0tCi0tIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/Ci0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIG1tc3lzdGVtLmggcHJlc2VuY2UiID4mNQotLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgbW1zeXN0ZW0uaCBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjYKLS1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS0jbGluZSAkTElORU5PICJjb25maWd1cmUiCi0tLyogY29uZmRlZnMuaC4gICovCi0tX0FDRU9GCi0tY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0tY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS0jaW5jbHVkZSA8bW1zeXN0ZW0uaD4KLS1fQUNFT0YKLS1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0tICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCi0tICBhY19zdGF0dXM9JD8KLS0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0tICBybSAtZiBjb25mdGVzdC5lcjEKLS0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0tICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0tICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCi0tICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0tICBlbHNlCi0tICAgIGFjX2NwcF9lcnI9Ci0tICBmaQotLWVsc2UKLS0gIGFjX2NwcF9lcnI9eWVzCi0rcm0gLWYgY29uZnRlc3QqCi0gZmkKLS1pZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KLS0gIGFjX2hlYWRlcl9wcmVwcm9jPXllcwotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJGFjX2N2X2hlYWRlcl8nJGFjX3NhZmVgXCIgPSB5ZXMiOyB0aGVuCi0rICBlY2hvICIkYWNfdCIieWVzIiAxPiY2Ci0rICBBVURJT0RSSVZFUj0iYWxzYSIKLSsJICAgICAgIEFVRElPREVGUz0tRENTVF9BVURJT19BTFNBCi0rICAgICAgICAgICAgICAgQVVESU9MSUJTPS1sYXNvdW5kCi0gZWxzZQotLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLS1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0tCi0tICBhY19oZWFkZXJfcHJlcHJvYz1ubwotKyAgZWNobyAiJGFjX3QiIm5vIiAxPiY2Ci0gZmkKLS1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1Ci0tZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjYKLSAKLS0jIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KLS1jYXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jIGluCi0tICB5ZXM6bm8gKQotLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtbXN5c3RlbS5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKLS1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IG1tc3lzdGVtLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9Ci0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IG1tc3lzdGVtLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKLS1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IG1tc3lzdGVtLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQotLSAgICAoCi0tICAgICAgY2F0IDw8XF9BU0JPWAotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotLSMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1hdXRvY29uZkBnbnUub3JnLiAjIwotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotLV9BU0JPWAotLSAgICApIHwKLS0gICAgICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKLS0gICAgOzsKLS0gIG5vOnllcyApCi0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IG1tc3lzdGVtLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtbXN5c3RlbS5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mMjt9Ci0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IG1tc3lzdGVtLmg6IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1Ci0tZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtbXN5c3RlbS5oOiBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9Ci0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IG1tc3lzdGVtLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKLS1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IG1tc3lzdGVtLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQotLSAgICAoCi0tICAgICAgY2F0IDw8XF9BU0JPWAotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotLSMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1hdXRvY29uZkBnbnUub3JnLiAjIwotLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotLV9BU0JPWAotLSAgICApIHwKLS0gICAgICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKLS0gICAgOzsKLS1lc2FjCi0tZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtbXN5c3RlbS5oIiA+JjUKLS1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBtbXN5c3RlbS5oLi4uICRFQ0hPX0MiID4mNgotLWlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX21tc3lzdGVtX2grc2V0fSIgPSBzZXQ7IHRoZW4KLS0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci0rYWNfc2FmZT1gZWNobyAibW1zeXN0ZW0uaCIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgCi0rZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIG1tc3lzdGVtLmgiIi4uLiAkYWNfYyIgMT4mNgotK2VjaG8gImNvbmZpZ3VyZToxNTMwOiBjaGVja2luZyBmb3IgbW1zeXN0ZW0uaCIgPiY1Ci0raWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2hlYWRlcl8kYWNfc2FmZScrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0rICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotIGVsc2UKLS0gIGFjX2N2X2hlYWRlcl9tbXN5c3RlbV9oPSRhY19oZWFkZXJfcHJlcHJvYwotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotKyNsaW5lIDE1MzUgImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIKLSsjaW5jbHVkZSA8bW1zeXN0ZW0uaD4KLStFT0YKLSthY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgotK3sgKGV2YWwgZWNobyBjb25maWd1cmU6MTU0MDogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7IH0KLSthY19lcnI9YGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0Lm91dCB8IGdyZXAgLXYgIl5jb25mdGVzdC4ke2FjX2V4dH1cJCJgCi0raWYgdGVzdCAteiAiJGFjX2VyciI7IHRoZW4KLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIGV2YWwgImFjX2N2X2hlYWRlcl8kYWNfc2FmZT15ZXMiCi0rZWxzZQotKyAgZWNobyAiJGFjX2VyciIgPiY1Ci0rICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotKyAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rICBybSAtcmYgY29uZnRlc3QqCi0rICBldmFsICJhY19jdl9oZWFkZXJfJGFjX3NhZmU9bm8iCi0gZmkKLS1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX21tc3lzdGVtX2giID4mNQotLWVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfbW1zeXN0ZW1faCIgPiY2Ci0tCi0rcm0gLWYgY29uZnRlc3QqCi0gZmkKLS1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfbW1zeXN0ZW1faCA9IHllczsgdGhlbgotK2lmIGV2YWwgInRlc3QgXCJgZWNobyAnJGFjX2N2X2hlYWRlcl8nJGFjX3NhZmVgXCIgPSB5ZXMiOyB0aGVuCi0rICBlY2hvICIkYWNfdCIieWVzIiAxPiY2Ci0gICBBVURJT0RSSVZFUj0id2luY2UiCi0gCSAgICAgICBBVURJT0RFRlM9LURDU1RfQVVESU9fV0lOQ0UKLSAJICAgICAgIEFVRElPTElCUz0tbHdpbm1tCi0rZWxzZQotKyAgZWNobyAiJGFjX3QiIm5vIiAxPiY2Ci0gZmkKLSAKLSAKLS0KLS0KLSAjIENoZWNrIHdoZXRoZXIgLS13aXRoLWF1ZGlvIG9yIC0td2l0aG91dC1hdWRpbyB3YXMgZ2l2ZW4uCi0gaWYgdGVzdCAiJHt3aXRoX2F1ZGlvK3NldH0iID0gc2V0OyB0aGVuCi0gICB3aXRodmFsPSIkd2l0aF9hdWRpbyIKLS0gIEFVRElPRFJJVkVSPSR3aXRoX2F1ZGlvCi0tZmk7Ci0rICBBVURJT0RSSVZFUj0kd2l0aF9hdWRpbyAKLStmaQotIAotKwotIGlmIHRlc3QgIngkQVVESU9ERUZTIiA9IHg7IHRoZW4KLSAgICAgY2FzZSAiJEFVRElPRFJJVkVSIiBpbgotIAlsaW51eHxvc3MpCi1AQCAtNDAwNiwzNCArMTU5NSwzNCBAQAotIAotIAotIAotLQotICMgQ2hlY2sgd2hldGhlciAtLXdpdGgtbGFuZyBvciAtLXdpdGhvdXQtbGFuZyB3YXMgZ2l2ZW4uCi0gaWYgdGVzdCAiJHt3aXRoX2xhbmcrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgIHdpdGh2YWw9IiR3aXRoX2xhbmciCi0tICBGTF9MQU5HPSR3aXRoX2xhbmcKLS1maTsKLSsgIEZMX0xBTkc9JHdpdGhfbGFuZyAKLStmaQotKwotIGlmIHRlc3QgIngkd2l0aF9sYW5nIiA9ICJ4IjsgdGhlbgotICAgICAgICAgRkxfTEFORz0idXNlbmdsaXNoIgotIGZpCi0gCi0gCi0tCi0gIyBDaGVjayB3aGV0aGVyIC0td2l0aC12b3ggb3IgLS13aXRob3V0LXZveCB3YXMgZ2l2ZW4uCi0gaWYgdGVzdCAiJHt3aXRoX3ZveCtzZXR9IiA9IHNldDsgdGhlbgotICAgd2l0aHZhbD0iJHdpdGhfdm94IgotLSAgRkxfVk9YPSR3aXRoX3ZveAotLWZpOwotKyAgRkxfVk9YPSR3aXRoX3ZveCAKLStmaQotKwotIGlmIHRlc3QgIngkd2l0aF92b3giID0gIngiOyB0aGVuCi0gICAgICAgICBGTF9WT1g9ImNtdV91c19rYWwiCi0gZmkKLSAKLSAKLS0KLSAjIENoZWNrIHdoZXRoZXIgLS13aXRoLWxleCBvciAtLXdpdGhvdXQtbGV4IHdhcyBnaXZlbi4KLSBpZiB0ZXN0ICIke3dpdGhfbGV4K3NldH0iID0gc2V0OyB0aGVuCi0gICB3aXRodmFsPSIkd2l0aF9sZXgiCi0tICBGTF9MRVg9JHdpdGhfbGV4Ci0tZmk7Ci0rICBGTF9MRVg9JHdpdGhfbGV4IAotK2ZpCi0rCi0gaWYgdGVzdCAieCR3aXRoX2xleCIgPSAieCI7IHRoZW4KLSAgICAgICAgIEZMX0xFWD0iY211bGV4IgotIGZpCi1AQCAtNDA0MSw5MjEgKzE2MzAsMzAwIEBACi0gCi0gCi0gCi0tICAgICAgICAgICAgICAgICAgICBhY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgY29uZmlnL2NvbmZpZyBjb25maWcvc3lzdGVtLm1hayIKLS1jYXQgPmNvbmZjYWNoZSA8PFxfQUNFT0YKLSt0cmFwICcnIDEgMiAxNQotK2NhdCA+IGNvbmZjYWNoZSA8PFxFT0YKLSAjIFRoaXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlwdCB0aGF0IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBjb25maWd1cmUKLSAjIHRlc3RzIHJ1biBvbiB0aGlzIHN5c3RlbSBzbyB0aGV5IGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBjb25maWd1cmUKLS0jIHNjcmlwdHMgYW5kIGNvbmZpZ3VyZSBydW5zLCBzZWUgY29uZmlndXJlJ3Mgb3B0aW9uIC0tY29uZmlnLWNhY2hlLgotLSMgSXQgaXMgbm90IHVzZWZ1bCBvbiBvdGhlciBzeXN0ZW1zLiAgSWYgaXQgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3QKLS0jIHdhbnQgdG8ga2VlcCwgeW91IG1heSByZW1vdmUgb3IgZWRpdCBpdC4KLSsjIHNjcmlwdHMgYW5kIGNvbmZpZ3VyZSBydW5zLiAgSXQgaXMgbm90IHVzZWZ1bCBvbiBvdGhlciBzeXN0ZW1zLgotKyMgSWYgaXQgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3Qgd2FudCB0byBrZWVwLCB5b3UgbWF5IHJlbW92ZSBvciBlZGl0IGl0LgotICMKLS0jIGNvbmZpZy5zdGF0dXMgb25seSBwYXlzIGF0dGVudGlvbiB0byB0aGUgY2FjaGUgZmlsZSBpZiB5b3UgZ2l2ZSBpdAotLSMgdGhlIC0tcmVjaGVjayBvcHRpb24gdG8gcmVydW4gY29uZmlndXJlLgotKyMgQnkgZGVmYXVsdCwgY29uZmlndXJlIHVzZXMgLi9jb25maWcuY2FjaGUgYXMgdGhlIGNhY2hlIGZpbGUsCi0rIyBjcmVhdGluZyBpdCBpZiBpdCBkb2VzIG5vdCBleGlzdCBhbHJlYWR5LiAgWW91IGNhbiBnaXZlIGNvbmZpZ3VyZQotKyMgdGhlIC0tY2FjaGUtZmlsZT1GSUxFIG9wdGlvbiB0byB1c2UgYSBkaWZmZXJlbnQgY2FjaGUgZmlsZTsgdGhhdCBpcwotKyMgd2hhdCBjb25maWd1cmUgZG9lcyB3aGVuIGl0IGNhbGxzIGNvbmZpZ3VyZSBzY3JpcHRzIGluCi0rIyBzdWJkaXJlY3Rvcmllcywgc28gdGhleSBzaGFyZSB0aGUgY2FjaGUuCi0rIyBHaXZpbmcgLS1jYWNoZS1maWxlPS9kZXYvbnVsbCBkaXNhYmxlcyBjYWNoaW5nLCBmb3IgZGVidWdnaW5nIGNvbmZpZ3VyZS4KLSsjIGNvbmZpZy5zdGF0dXMgb25seSBwYXlzIGF0dGVudGlvbiB0byB0aGUgY2FjaGUgZmlsZSBpZiB5b3UgZ2l2ZSBpdCB0aGUKLSsjIC0tcmVjaGVjayBvcHRpb24gdG8gcmVydW4gY29uZmlndXJlLgotICMKLS0jIGBhY19jdl9lbnZfZm9vJyB2YXJpYWJsZXMgKHNldCBvciB1bnNldCkgd2lsbCBiZSBvdmVycmlkZGVuIHdoZW4KLS0jIGxvYWRpbmcgdGhpcyBmaWxlLCBvdGhlciAqdW5zZXQqIGBhY19jdl9mb28nIHdpbGwgYmUgYXNzaWduZWQgdGhlCi0tIyBmb2xsb3dpbmcgdmFsdWVzLgotLQotLV9BQ0VPRgotLQotK0VPRgotICMgVGhlIGZvbGxvd2luZyB3YXkgb2Ygd3JpdGluZyB0aGUgY2FjaGUgbWlzaGFuZGxlcyBuZXdsaW5lcyBpbiB2YWx1ZXMsCi0gIyBidXQgd2Uga25vdyBvZiBubyB3b3JrYXJvdW5kIHRoYXQgaXMgc2ltcGxlLCBwb3J0YWJsZSwgYW5kIGVmZmljaWVudC4KLSAjIFNvLCBkb24ndCBwdXQgbmV3bGluZXMgaW4gY2FjaGUgdmFyaWFibGVzJyB2YWx1ZXMuCi0gIyBVbHRyaXggc2ggc2V0IHdyaXRlcyB0byBzdGRlcnIgYW5kIGNhbid0IGJlIHJlZGlyZWN0ZWQgZGlyZWN0bHksCi0gIyBhbmQgc2V0cyB0aGUgaGlnaCBiaXQgaW4gdGhlIGNhY2hlIGZpbGUgdW5sZXNzIHdlIGFzc2lnbiB0byB0aGUgdmFycy4KLS17Ci0tICAoc2V0KSAyPiYxIHwKLS0gICAgY2FzZSBgKGFjX3NwYWNlPScgJzsgc2V0IHwgZ3JlcCBhY19zcGFjZSkgMj4mMWAgaW4KLS0gICAgKmFjX3NwYWNlPVwgKikKLS0gICAgICAjIGBzZXQnIGRvZXMgbm90IHF1b3RlIGNvcnJlY3RseSwgc28gYWRkIHF1b3RlcyAoZG91YmxlLXF1b3RlCi0tICAgICAgIyBzdWJzdGl0dXRpb24gdHVybnMgXFxcXCBpbnRvIFxcLCBhbmQgc2VkIHR1cm5zIFxcIGludG8gXCkuCi0tICAgICAgc2VkIC1uIFwKLS0gICAgICAgICJzLycvJ1xcXFwnJy9nOwotLSAgICAJICBzL15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSpcXCk9XFwoLipcXCkvXFwxPSdcXDInL3AiCi0tICAgICAgOzsKLS0gICAgKikKLS0gICAgICAjIGBzZXQnIHF1b3RlcyBjb3JyZWN0bHkgYXMgcmVxdWlyZWQgYnkgUE9TSVgsIHNvIGRvIG5vdCBhZGQgcXVvdGVzLgotLSAgICAgIHNlZCAtbiBcCi0tICAgICAgICAicy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT1cXDIvcCIKLS0gICAgICA7OwotLSAgICBlc2FjOwotLX0gfAotLSAgc2VkICcKLS0gICAgIHQgY2xlYXIKLS0gICAgIDogY2xlYXIKLS0gICAgIHMvXlwoW149XSpcKT1cKC4qW3t9XS4qXCkkL3Rlc3QgIiR7XDErc2V0fSIgPSBzZXQgfHwgJi8KLS0gICAgIHQgZW5kCi0tICAgICAvXmFjX2N2X2Vudi8hcy9eXChbXj1dKlwpPVwoLipcKSQvXDE9JHtcMT1cMn0vCi0tICAgICA6IGVuZCcgPj5jb25mY2FjaGUKLS1pZiBkaWZmICRjYWNoZV9maWxlIGNvbmZjYWNoZSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQotKyhzZXQpIDI+JjEgfAotKyAgY2FzZSBgKGFjX3NwYWNlPScgJzsgc2V0IHwgZ3JlcCBhY19zcGFjZSkgMj4mMWAgaW4KLSsgICphY19zcGFjZT1cICopCi0rICAgICMgYHNldCcgZG9lcyBub3QgcXVvdGUgY29ycmVjdGx5LCBzbyBhZGQgcXVvdGVzIChkb3VibGUtcXVvdGUgc3Vic3RpdHV0aW9uCi0rICAgICMgdHVybnMgXFxcXCBpbnRvIFxcLCBhbmQgc2VkIHR1cm5zIFxcIGludG8gXCkuCi0rICAgIHNlZCAtbiBcCi0rICAgICAgLWUgInMvJy8nXFxcXCcnL2ciIFwKLSsgICAgICAtZSAicy9eXFwoW2EtekEtWjAtOV9dKl9jdl9bYS16QS1aMC05X10qXFwpPVxcKC4qXFwpL1xcMT1cJHtcXDE9J1xcMid9L3AiCi0rICAgIDs7Ci0rICAqKQotKyAgICAjIGBzZXQnIHF1b3RlcyBjb3JyZWN0bHkgYXMgcmVxdWlyZWQgYnkgUE9TSVgsIHNvIGRvIG5vdCBhZGQgcXVvdGVzLgotKyAgICBzZWQgLW4gLWUgJ3MvXlwoW2EtekEtWjAtOV9dKl9jdl9bYS16QS1aMC05X10qXCk9XCguKlwpL1wxPSR7XDE9XDJ9L3AnCi0rICAgIDs7Ci0rICBlc2FjID4+IGNvbmZjYWNoZQotK2lmIGNtcCAtcyAkY2FjaGVfZmlsZSBjb25mY2FjaGU7IHRoZW4KLSsgIDoKLStlbHNlCi0gICBpZiB0ZXN0IC13ICRjYWNoZV9maWxlOyB0aGVuCi0tICAgIHRlc3QgIngkY2FjaGVfZmlsZSIgIT0gIngvZGV2L251bGwiICYmIGVjaG8gInVwZGF0aW5nIGNhY2hlICRjYWNoZV9maWxlIgotLSAgICBjYXQgY29uZmNhY2hlID4kY2FjaGVfZmlsZQotKyAgICBlY2hvICJ1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIKLSsgICAgY2F0IGNvbmZjYWNoZSA+ICRjYWNoZV9maWxlCi0gICBlbHNlCi0gICAgIGVjaG8gIm5vdCB1cGRhdGluZyB1bndyaXRhYmxlIGNhY2hlICRjYWNoZV9maWxlIgotICAgZmkKLSBmaQotIHJtIC1mIGNvbmZjYWNoZQotIAotK3RyYXAgJ3JtIC1mciBjb25mdGVzdCogY29uZmRlZnMqIGNvcmUgY29yZS4qICouY29yZSAkYWNfY2xlYW5fZmlsZXM7IGV4aXQgMScgMSAyIDE1Ci0rCi0gdGVzdCAieCRwcmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSRhY19kZWZhdWx0X3ByZWZpeAotICMgTGV0IG1ha2UgZXhwYW5kIGV4ZWNfcHJlZml4LgotIHRlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUgJiYgZXhlY19wcmVmaXg9JyR7cHJlZml4fScKLSAKLS0jIFZQQVRIIG1heSBjYXVzZSB0cm91YmxlIHdpdGggc29tZSBtYWtlcywgc28gd2UgcmVtb3ZlICQoc3JjZGlyKSwKLS0jICR7c3JjZGlyfSBhbmQgQHNyY2RpckAgZnJvbSBWUEFUSCBpZiBzcmNkaXIgaXMgIi4iLCBzdHJpcCBsZWFkaW5nIGFuZAotLSMgdHJhaWxpbmcgY29sb25zIGFuZCB0aGVuIHJlbW92ZSB0aGUgd2hvbGUgbGluZSBpZiBWUEFUSCBiZWNvbWVzIGVtcHR5Ci0tIyAoYWN0dWFsbHkgd2UgbGVhdmUgYW4gZW1wdHkgbGluZSB0byBwcmVzZXJ2ZSBsaW5lIG51bWJlcnMpLgotKyMgQW55IGFzc2lnbm1lbnQgdG8gVlBBVEggY2F1c2VzIFN1biBtYWtlIHRvIG9ubHkgZXhlY3V0ZQotKyMgdGhlIGZpcnN0IHNldCBvZiBkb3VibGUtY29sb24gcnVsZXMsIHNvIHJlbW92ZSBpdCBpZiBub3QgbmVlZGVkLgotKyMgSWYgdGhlcmUgaXMgYSBjb2xvbiBpbiB0aGUgcGF0aCwgd2UgbmVlZCB0byBrZWVwIGl0LgotIGlmIHRlc3QgIngkc3JjZGlyIiA9IHguOyB0aGVuCi0tICBhY192cHN1Yj0nL15bIAldKlZQQVRIWyAJXSo9L3sKLS1zLzoqXCQoc3JjZGlyKToqLzovOwotLXMvOipcJHtzcmNkaXJ9OiovOi87Ci0tcy86KkBzcmNkaXJAOiovOi87Ci0tcy9eXChbXj1dKj1bIAldKlwpOiovXDEvOwotLXMvOiokLy87Ci0tcy9eW149XSo9WyAJXSokLy87Ci0tfScKLSsgIGFjX3Zwc3ViPScvXlsgCV0qVlBBVEhbIAldKj1bXjpdKiQvZCcKLSBmaQotIAotK3RyYXAgJ3JtIC1mICRDT05GSUdfU1RBVFVTIGNvbmZ0ZXN0KjsgZXhpdCAxJyAxIDIgMTUKLSsKLSAjIFRyYW5zZm9ybSBjb25mZGVmcy5oIGludG8gREVGUy4KLSAjIFByb3RlY3QgYWdhaW5zdCBzaGVsbCBleHBhbnNpb24gd2hpbGUgZXhlY3V0aW5nIE1ha2VmaWxlIHJ1bGVzLgotICMgUHJvdGVjdCBhZ2FpbnN0IE1ha2VmaWxlIG1hY3JvIGV4cGFuc2lvbi4KLS0jCi0tIyBJZiB0aGUgZmlyc3Qgc2VkIHN1YnN0aXR1dGlvbiBpcyBleGVjdXRlZCAod2hpY2ggbG9va3MgZm9yIG1hY3JvcyB0aGF0Ci0tIyB0YWtlIGFyZ3VtZW50cyksIHRoZW4gd2UgYnJhbmNoIHRvIHRoZSBxdW90ZSBzZWN0aW9uLiAgT3RoZXJ3aXNlLAotLSMgbG9vayBmb3IgYSBtYWNybyB0aGF0IGRvZXNuJ3QgdGFrZSBhcmd1bWVudHMuCi0tY2F0ID5jb25mZGVmMm9wdC5zZWQgPDxcX0FDRU9GCi0tdCBjbGVhcgotLTogY2xlYXIKLS1zLF5bIAldKiNbIAldKmRlZmluZVsgCV1bIAldKlwoW14gCShdW14gCShdKihbXildKilcKVsgCV0qXCguKlwpLC1EXDE9XDIsZwotLXQgcXVvdGUKLS1zLF5bIAldKiNbIAldKmRlZmluZVsgCV1bIAldKlwoW14gCV1bXiAJXSpcKVsgCV0qXCguKlwpLC1EXDE9XDIsZwotLXQgcXVvdGUKLS1kCi0tOiBxdW90ZQotLXMsWyAJYH4jJF4mKigpe31cXHw7JyI8Pj9dLFxcJixnCi0tcyxcWyxcXCYsZwotLXMsXF0sXFwmLGcKLS1zLFwkLCQkLGcKLS1wCi0tX0FDRU9GCi0tIyBXZSB1c2UgZWNobyB0byBhdm9pZCBhc3N1bWluZyBhIHBhcnRpY3VsYXIgbGluZS1icmVha2luZyBjaGFyYWN0ZXIuCi0tIyBUaGUgZXh0cmEgZG90IGlzIHRvIHByZXZlbnQgdGhlIHNoZWxsIGZyb20gY29uc3VtaW5nIHRyYWlsaW5nCi0tIyBsaW5lLWJyZWFrcyBmcm9tIHRoZSBzdWItY29tbWFuZCBvdXRwdXQuICBBIGxpbmUtYnJlYWsgd2l0aGluCi0tIyBzaW5nbGUtcXVvdGVzIGRvZXNuJ3Qgd29yayBiZWNhdXNlLCBpZiB0aGlzIHNjcmlwdCBpcyBjcmVhdGVkIGluIGEKLS0jIHBsYXRmb3JtIHRoYXQgdXNlcyB0d28gY2hhcmFjdGVycyBmb3IgbGluZS1icmVha3MgKGUuZy4sIERPUyksIHRyCi0tIyB3b3VsZCBicmVhay4KLS1hY19MRl9hbmRfRE9UPWBlY2hvOyBlY2hvIC5gCi0tREVGUz1gc2VkIC1uIC1mIGNvbmZkZWYyb3B0LnNlZCBjb25mZGVmcy5oIHwgdHIgIiRhY19MRl9hbmRfRE9UIiAnIC4nYAotLXJtIC1mIGNvbmZkZWYyb3B0LnNlZAotK2NhdCA+IGNvbmZ0ZXN0LmRlZnMgPDxcRU9GCi0rcyUjZGVmaW5lIFwoW0EtWmEtel9dW0EtWmEtejAtOV9dKlwpICpcKC4qXCklLURcMT1cMiVnCi0rcyVbIAlgfiMkXiYqKCl7fVxcfDsnIjw+P10lXFwmJWcKLStzJVxbJVxcJiVnCi0rcyVcXSVcXCYlZwotK3MlXCQlJCQlZwotK0VPRgotK0RFRlM9YHNlZCAtZiBjb25mdGVzdC5kZWZzIGNvbmZkZWZzLmggfCB0ciAnXDAxMicgJyAnYAotK3JtIC1mIGNvbmZ0ZXN0LmRlZnMKLSAKLSAKLS1hY19saWJvYmpzPQotLWFjX2x0bGlib2Jqcz0KLS1mb3IgYWNfaSBpbiA6ICRMSUJPQkpTOyBkbyB0ZXN0ICJ4JGFjX2kiID0geDogJiYgY29udGludWUKLS0gICMgMS4gUmVtb3ZlIHRoZSBleHRlbnNpb24sIGFuZCAkVSBpZiBhbHJlYWR5IGluc3RhbGxlZC4KLS0gIGFjX2k9YGVjaG8gIiRhY19pIiB8Ci0tICAgICAgICAgc2VkICdzL1wkVVwuLy4vO3MvXC5vJC8vO3MvXC5vYmokLy8nYAotLSAgIyAyLiBBZGQgdGhlbS4KLS0gIGFjX2xpYm9ianM9IiRhY19saWJvYmpzICRhY19pXCRVLiRhY19vYmpleHQiCi0tICBhY19sdGxpYm9ianM9IiRhY19sdGxpYm9ianMgJGFjX2kiJyRVLmxvJwotLWRvbmUKLS1MSUJPQkpTPSRhY19saWJvYmpzCi0tCi0tTFRMSUJPQkpTPSRhY19sdGxpYm9ianMKLS0KLS0KLS0KLSsjIFdpdGhvdXQgdGhlICIuLyIsIHNvbWUgc2hlbGxzIGxvb2sgaW4gUEFUSCBmb3IgY29uZmlnLnN0YXR1cy4KLSA6ICR7Q09ORklHX1NUQVRVUz0uL2NvbmZpZy5zdGF0dXN9Ci0tYWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKLS1hY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzICRDT05GSUdfU1RBVFVTIgotLXsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjUKLS1lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjY7fQotLWNhdCA+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKLS0jISAkU0hFTEwKLS0jIEdlbmVyYXRlZCBieSAkYXNfbWUuCi0rCi0rZWNobyBjcmVhdGluZyAkQ09ORklHX1NUQVRVUwotK3JtIC1mICRDT05GSUdfU1RBVFVTCi0rY2F0ID4gJENPTkZJR19TVEFUVVMgPDxFT0YKLSsjISAvYmluL3NoCi0rIyBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBjb25maWd1cmUuCi0gIyBSdW4gdGhpcyBmaWxlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uCi0rIyBUaGlzIGRpcmVjdG9yeSB3YXMgY29uZmlndXJlZCBhcyBmb2xsb3dzLAotKyMgb24gaG9zdCBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWA6Ci0rIwotKyMgJDAgJGFjX2NvbmZpZ3VyZV9hcmdzCi0rIwotICMgQ29tcGlsZXIgb3V0cHV0IHByb2R1Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcKLS0jIGNvbmZpZ3VyZSwgaXMgaW4gY29uZmlnLmxvZyBpZiBpdCBleGlzdHMuCi0rIyBjb25maWd1cmUsIGlzIGluIC4vY29uZmlnLmxvZyBpZiBpdCBleGlzdHMuCi0gCi0tZGVidWc9ZmFsc2UKLS1hY19jc19yZWNoZWNrPWZhbHNlCi0tYWNfY3Nfc2lsZW50PWZhbHNlCi0tU0hFTEw9XCR7Q09ORklHX1NIRUxMLSRTSEVMTH0KLS1fQUNFT0YKLS0KLS1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS0jIyBNNHNoIEluaXRpYWxpemF0aW9uLiAgIyMKLS0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLS0KLS0jIEJlIEJvdXJuZSBjb21wYXRpYmxlCi0taWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0tICBlbXVsYXRlIHNoCi0tICBOVUxMQ01EPToKLS0gICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLS0gICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCi0tICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKLS1lbGlmIHRlc3QgLW4gIiR7QkFTSF9WRVJTSU9OK3NldH0iICYmIChzZXQgLW8gcG9zaXgpID4vZGV2L251bGwgMj4mMTsgdGhlbgotLSAgc2V0IC1vIHBvc2l4Ci0tZmkKLS0KLS0jIFN1cHBvcnQgdW5zZXQgd2hlbiBwb3NzaWJsZS4KLS1pZiAoRk9PPUZPTzsgdW5zZXQgRk9PKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLS0gIGFzX3Vuc2V0PXVuc2V0Ci0tZWxzZQotLSAgYXNfdW5zZXQ9ZmFsc2UKLS1maQotLQotLQotLSMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgotLSRhc191bnNldCBFTlYgTUFJTCBNQUlMUEFUSAotLVBTMT0nJCAnCi0tUFMyPSc+ICcKLS1QUzQ9JysgJwotLQotLSMgTkxTIG51aXNhbmNlcy4KLS1mb3IgYXNfdmFyIGluIFwKLS0gIExBTkcgTEFOR1VBR0UgTENfQUREUkVTUyBMQ19BTEwgTENfQ09MTEFURSBMQ19DVFlQRSBMQ19JREVOVElGSUNBVElPTiBcCi0tICBMQ19NRUFTVVJFTUVOVCBMQ19NRVNTQUdFUyBMQ19NT05FVEFSWSBMQ19OQU1FIExDX05VTUVSSUMgTENfUEFQRVIgXAotLSAgTENfVEVMRVBIT05FIExDX1RJTUUKLSthY19jc191c2FnZT0iVXNhZ2U6ICRDT05GSUdfU1RBVFVTIFstLXJlY2hlY2tdIFstLXZlcnNpb25dIFstLWhlbHBdIgotK2ZvciBhY19vcHRpb24KLSBkbwotLSAgaWYgKHNldCAreDsgdGVzdCAtbiAiYChldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIpIDI+JjFgIik7IHRoZW4KLS0gICAgZXZhbCAkYXNfdmFyPUM7IGV4cG9ydCAkYXNfdmFyCi0tICBlbHNlCi0tICAgICRhc191bnNldCAkYXNfdmFyCi0tICBmaQotKyAgY2FzZSAiXCRhY19vcHRpb24iIGluCi0rICAtcmVjaGVjayB8IC0tcmVjaGVjayB8IC0tcmVjaGVjIHwgLS1yZWNoZSB8IC0tcmVjaCB8IC0tcmVjIHwgLS1yZSB8IC0tcikKLSsgICAgZWNobyAicnVubmluZyBcJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0gJDAgJGFjX2NvbmZpZ3VyZV9hcmdzIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9uIgotKyAgICBleGVjIFwke0NPTkZJR19TSEVMTC0vYmluL3NofSAkMCAkYWNfY29uZmlndXJlX2FyZ3MgLS1uby1jcmVhdGUgLS1uby1yZWN1cnNpb24gOzsKLSsgIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwgLS12ZXIgfCAtLXZlIHwgLS12KQotKyAgICBlY2hvICIkQ09ORklHX1NUQVRVUyBnZW5lcmF0ZWQgYnkgYXV0b2NvbmYgdmVyc2lvbiAyLjEzIgotKyAgICBleGl0IDAgOzsKLSsgIC1oZWxwIHwgLS1oZWxwIHwgLS1oZWwgfCAtLWhlIHwgLS1oKQotKyAgICBlY2hvICJcJGFjX2NzX3VzYWdlIjsgZXhpdCAwIDs7Ci0rICAqKSBlY2hvICJcJGFjX2NzX3VzYWdlIjsgZXhpdCAxIDs7Ci0rICBlc2FjCi0gZG9uZQotIAotLSMgUmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgotLWlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0tICBhc19leHByPWV4cHIKLS1lbHNlCi0tICBhc19leHByPWZhbHNlCi0tZmkKLSthY19naXZlbl9zcmNkaXI9JHNyY2RpcgotK2FjX2dpdmVuX0lOU1RBTEw9IiRJTlNUQUxMIgotIAotLWlmIChiYXNlbmFtZSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KLS0gIGFzX2Jhc2VuYW1lPWJhc2VuYW1lCi0tZWxzZQotLSAgYXNfYmFzZW5hbWU9ZmFsc2UKLS1maQotK3RyYXAgJ3JtIC1mciBgZWNobyAiY29uZmlnL2NvbmZpZyBjb25maWcvc3lzdGVtLm1hayIgfCBzZWQgInMvOlteIF0qLy9nImAgY29uZnRlc3QqOyBleGl0IDEnIDEgMiAxNQotK0VPRgotK2NhdCA+PiAkQ09ORklHX1NUQVRVUyA8PEVPRgotIAotKyMgUHJvdGVjdCBhZ2FpbnN0IGJlaW5nIG9uIHRoZSByaWdodCBzaWRlIG9mIGEgc2VkIHN1YnN0IGluIGNvbmZpZy5zdGF0dXMuCi0rc2VkICdzLyVAL0BALzsgcy9AJS9AQC87IHMvJWdcJC9AZy87IC9AZ1wkL3MvW1xcXFwmJV0vXFxcXCYvZzsKLSsgcy9AQC8lQC87IHMvQEAvQCUvOyBzL0BnXCQvJWcvJyA+IGNvbmZ0ZXN0LnN1YnMgPDxcXENFT0YKLSskYWNfdnBzdWIKLSskZXh0cmFzdWIKLStzJUBTSEVMTEAlJFNIRUxMJWcKLStzJUBDRkxBR1NAJSRDRkxBR1MlZwotK3MlQENQUEZMQUdTQCUkQ1BQRkxBR1MlZwotK3MlQENYWEZMQUdTQCUkQ1hYRkxBR1MlZwotK3MlQEZGTEFHU0AlJEZGTEFHUyVnCi0rcyVAREVGU0AlJERFRlMlZwotK3MlQExERkxBR1NAJSRMREZMQUdTJWcKLStzJUBMSUJTQCUkTElCUyVnCi0rcyVAZXhlY19wcmVmaXhAJSRleGVjX3ByZWZpeCVnCi0rcyVAcHJlZml4QCUkcHJlZml4JWcKLStzJUBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQCUkcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSVnCi0rcyVAYmluZGlyQCUkYmluZGlyJWcKLStzJUBzYmluZGlyQCUkc2JpbmRpciVnCi0rcyVAbGliZXhlY2RpckAlJGxpYmV4ZWNkaXIlZwotK3MlQGRhdGFkaXJAJSRkYXRhZGlyJWcKLStzJUBzeXNjb25mZGlyQCUkc3lzY29uZmRpciVnCi0rcyVAc2hhcmVkc3RhdGVkaXJAJSRzaGFyZWRzdGF0ZWRpciVnCi0rcyVAbG9jYWxzdGF0ZWRpckAlJGxvY2Fsc3RhdGVkaXIlZwotK3MlQGxpYmRpckAlJGxpYmRpciVnCi0rcyVAaW5jbHVkZWRpckAlJGluY2x1ZGVkaXIlZwotK3MlQG9sZGluY2x1ZGVkaXJAJSRvbGRpbmNsdWRlZGlyJWcKLStzJUBpbmZvZGlyQCUkaW5mb2RpciVnCi0rcyVAbWFuZGlyQCUkbWFuZGlyJWcKLStzJUBob3N0QCUkaG9zdCVnCi0rcyVAaG9zdF9hbGlhc0AlJGhvc3RfYWxpYXMlZwotK3MlQGhvc3RfY3B1QCUkaG9zdF9jcHUlZwotK3MlQGhvc3RfdmVuZG9yQCUkaG9zdF92ZW5kb3IlZwotK3MlQGhvc3Rfb3NAJSRob3N0X29zJWcKLStzJUB0YXJnZXRAJSR0YXJnZXQlZwotK3MlQHRhcmdldF9hbGlhc0AlJHRhcmdldF9hbGlhcyVnCi0rcyVAdGFyZ2V0X2NwdUAlJHRhcmdldF9jcHUlZwotK3MlQHRhcmdldF92ZW5kb3JAJSR0YXJnZXRfdmVuZG9yJWcKLStzJUB0YXJnZXRfb3NAJSR0YXJnZXRfb3MlZwotK3MlQGJ1aWxkQCUkYnVpbGQlZwotK3MlQGJ1aWxkX2FsaWFzQCUkYnVpbGRfYWxpYXMlZwotK3MlQGJ1aWxkX2NwdUAlJGJ1aWxkX2NwdSVnCi0rcyVAYnVpbGRfdmVuZG9yQCUkYnVpbGRfdmVuZG9yJWcKLStzJUBidWlsZF9vc0AlJGJ1aWxkX29zJWcKLStzJUBDQ0AlJENDJWcKLStzJUBSQU5MSUJAJSRSQU5MSUIlZwotK3MlQElOU1RBTExfUFJPR1JBTUAlJElOU1RBTExfUFJPR1JBTSVnCi0rcyVASU5TVEFMTF9TQ1JJUFRAJSRJTlNUQUxMX1NDUklQVCVnCi0rcyVASU5TVEFMTF9EQVRBQCUkSU5TVEFMTF9EQVRBJWcKLStzJUBBUkAlJEFSJWcKLStzJUBUQVJHRVRfT1NAJSRUQVJHRVRfT1MlZwotK3MlQFRBUkdFVF9DUFVAJSRUQVJHRVRfQ1BVJWcKLStzJUBNNjhLQ0NAJSRNNjhLQ0MlZwotK3MlQExFWERFRlNAJSRMRVhERUZTJWcKLStzJUBWT1hERUZTQCUkVk9YREVGUyVnCi0rcyVASE9TVF9PU0AlJEhPU1RfT1MlZwotK3MlQEhPU1RfQ1BVQCUkSE9TVF9DUFUlZwotK3MlQE9USEVSTElCU0AlJE9USEVSTElCUyVnCi0rcyVAU0hGTEFHU0AlJFNIRkxBR1MlZwotK3MlQE1NQVBUWVBFQCUkTU1BUFRZUEUlZwotK3MlQFNURElPVFlQRUAlJFNURElPVFlQRSVnCi0rcyVAQ1BQQCUkQ1BQJWcKLStzJUBBVURJT0RSSVZFUkAlJEFVRElPRFJJVkVSJWcKLStzJUBBVURJT0RFRlNAJSRBVURJT0RFRlMlZwotK3MlQEFVRElPTElCU0AlJEFVRElPTElCUyVnCi0rcyVARkxfTEFOR0AlJEZMX0xBTkclZwotK3MlQEZMX1ZPWEAlJEZMX1ZPWCVnCi0rcyVARkxfTEVYQCUkRkxfTEVYJWcKLStzJUBFWEVFWFRAJSRFWEVFWFQlZwotIAotLSMgTmFtZSBvZiB0aGUgZXhlY3V0YWJsZS4KLS1hc19tZT1gJGFzX2Jhc2VuYW1lICIkMCIgfHwKLS0kYXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAotLQkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKLS0JIFgiJDAiIDogJ1hcKC9cKSQnIFx8IFwKLS0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotLWVjaG8gWC8iJDAiIHwKLS0gICAgc2VkICcvXi4qXC9cKFteL11bXi9dKlwpXC8qJC97IHMvL1wxLzsgcTsgfQotLSAgCSAgL15YXC9cKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLS0gIAkgIC9eWFwvXChcL1wpLioveyBzLy9cMS87IHE7IH0KLS0gIAkgIHMvLiovLi87IHEnYAotK0NFT0YKLStFT0YKLSAKLStjYXQgPj4gJENPTkZJR19TVEFUVVMgPDxcRU9GCi0gCi0tIyBQQVRIIG5lZWRzIENSLCBhbmQgTElORU5PIG5lZWRzIENSIGFuZCBQQVRILgotLSMgQXZvaWQgZGVwZW5kaW5nIHVwb24gQ2hhcmFjdGVyIFJhbmdlcy4KLS1hc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKLS1hc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKLS1hc19jcl9MZXR0ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2NyX0xFVFRFUlMKLS1hc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCi0tYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGlnaXRzCi0tCi0tIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCi0taWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRoZW4KLS0gIGVjaG8gIiMhIC9iaW4vc2giID5jb25mJCQuc2gKLS0gIGVjaG8gICJleGl0IDAiICAgPj5jb25mJCQuc2gKLS0gIGNobW9kICt4IGNvbmYkJC5zaAotLSAgaWYgKFBBVEg9Ii9ub25leGlzdGVudDsuIjsgY29uZiQkLnNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLS0gICAgUEFUSF9TRVBBUkFUT1I9JzsnCi0rIyBTcGxpdCB0aGUgc3Vic3RpdHV0aW9ucyBpbnRvIGJpdGUtc2l6ZWQgcGllY2VzIGZvciBzZWRzIHdpdGgKLSsjIHNtYWxsIGNvbW1hbmQgbnVtYmVyIGxpbWl0cywgbGlrZSBvbiBEaWdpdGFsIE9TRi8xIGFuZCBIUC1VWC4KLSthY19tYXhfc2VkX2NtZHM9OTAgIyBNYXhpbXVtIG51bWJlciBvZiBsaW5lcyB0byBwdXQgaW4gYSBzZWQgc2NyaXB0LgotK2FjX2ZpbGU9MSAjIE51bWJlciBvZiBjdXJyZW50IGZpbGUuCi0rYWNfYmVnPTEgIyBGaXJzdCBsaW5lIGZvciBjdXJyZW50IGZpbGUuCi0rYWNfZW5kPSRhY19tYXhfc2VkX2NtZHMgIyBMaW5lIGFmdGVyIGxhc3QgbGluZSBmb3IgY3VycmVudCBmaWxlLgotK2FjX21vcmVfbGluZXM9OgotK2FjX3NlZF9jbWRzPSIiCi0rd2hpbGUgJGFjX21vcmVfbGluZXM7IGRvCi0rICBpZiB0ZXN0ICRhY19iZWcgLWd0IDE7IHRoZW4KLSsgICAgc2VkICIxLCR7YWNfYmVnfWQ7ICR7YWNfZW5kfXEiIGNvbmZ0ZXN0LnN1YnMgPiBjb25mdGVzdC5zJGFjX2ZpbGUKLSAgIGVsc2UKLS0gICAgUEFUSF9TRVBBUkFUT1I9OgotKyAgICBzZWQgIiR7YWNfZW5kfXEiIGNvbmZ0ZXN0LnN1YnMgPiBjb25mdGVzdC5zJGFjX2ZpbGUKLSAgIGZpCi0tICBybSAtZiBjb25mJCQuc2gKLS1maQotLQotLQotLSAgYXNfbGluZW5vXzE9JExJTkVOTwotLSAgYXNfbGluZW5vXzI9JExJTkVOTwotLSAgYXNfbGluZW5vXzM9YChleHByICRhc19saW5lbm9fMSArIDEpIDI+L2Rldi9udWxsYAotLSAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCi0tICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgIHx8IHsKLS0gICMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIHBhdGggYXQgYWxsCi0tICAjIHJlbGF0aXZlIG9yIG5vdC4KLS0gIGNhc2UgJDAgaW4KLS0gICAgKltcXC9dKiApIGFzX215c2VsZj0kMCA7OwotLSAgICAqKSBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0tZm9yIGFzX2RpciBpbiAkUEFUSAotLWRvCi0tICBJRlM9JGFzX3NhdmVfSUZTCi0tICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotLSAgdGVzdCAtciAiJGFzX2Rpci8kMCIgJiYgYXNfbXlzZWxmPSRhc19kaXIvJDAgJiYgYnJlYWsKLS1kb25lCi0tCi0tICAgICAgIDs7Ci0tICBlc2FjCi0tICAjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCi0tICAjIGluIHdoaWNoIGNhc2Ugd2UgYXJlIG5vdCB0byBiZSBmb3VuZCBpbiB0aGUgcGF0aC4KLS0gIGlmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KLS0gICAgYXNfbXlzZWxmPSQwCi0tICBmaQotLSAgaWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgotLSAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgcGF0aCIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIHBhdGgiID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0tICBmaQotLSAgY2FzZSAkQ09ORklHX1NIRUxMIGluCi0tICAnJykKLS0gICAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotLWZvciBhc19kaXIgaW4gL2JpbiRQQVRIX1NFUEFSQVRPUi91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgKLS1kbwotLSAgSUZTPSRhc19zYXZlX0lGUwotLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLS0gIGZvciBhc19iYXNlIGluIHNoIGJhc2gga3NoIHNoNTsgZG8KLS0JIGNhc2UgJGFzX2RpciBpbgotLQkgLyopCi0tCSAgIGlmICgiJGFzX2Rpci8kYXNfYmFzZSIgLWMgJwotLSAgYXNfbGluZW5vXzE9JExJTkVOTwotLSAgYXNfbGluZW5vXzI9JExJTkVOTwotLSAgYXNfbGluZW5vXzM9YChleHByICRhc19saW5lbm9fMSArIDEpIDI+L2Rldi9udWxsYAotLSAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCi0tICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgJykgMj4vZGV2L251bGw7IHRoZW4KLS0JICAgICAkYXNfdW5zZXQgQkFTSF9FTlYgfHwgdGVzdCAiJHtCQVNIX0VOVitzZXR9IiAhPSBzZXQgfHwgeyBCQVNIX0VOVj07IGV4cG9ydCBCQVNIX0VOVjsgfQotLQkgICAgICRhc191bnNldCBFTlYgfHwgdGVzdCAiJHtFTlYrc2V0fSIgIT0gc2V0IHx8IHsgRU5WPTsgZXhwb3J0IEVOVjsgfQotLQkgICAgIENPTkZJR19TSEVMTD0kYXNfZGlyLyRhc19iYXNlCi0tCSAgICAgZXhwb3J0IENPTkZJR19TSEVMTAotLQkgICAgIGV4ZWMgIiRDT05GSUdfU0hFTEwiICIkMCIgJHsxKyIkQCJ9Ci0tCSAgIGZpOzsKLS0JIGVzYWMKLS0gICAgICAgZG9uZQotLWRvbmUKLS07OwotLSAgZXNhYwotLQotLSAgIyBDcmVhdGUgJGFzX21lLmxpbmVubyBhcyBhIGNvcHkgb2YgJGFzX215c2VsZiwgYnV0IHdpdGggJExJTkVOTwotLSAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVyLiAgVGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQotLSAgIyBsaW5lLW51bWJlciBsaW5lIGJlZm9yZSBlYWNoIGxpbmU7IHRoZSBzZWNvbmQgJ3NlZCcgZG9lcyB0aGUgcmVhbAotLSAgIyB3b3JrLiAgVGhlIHNlY29uZCBzY3JpcHQgdXNlcyAnTicgdG8gcGFpciBlYWNoIGxpbmUtbnVtYmVyIGxpbmUKLS0gICMgd2l0aCB0aGUgbnVtYmVyZWQgbGluZSwgYW5kIGFwcGVuZHMgdHJhaWxpbmcgJy0nIGR1cmluZwotLSAgIyBzdWJzdGl0dXRpb24gc28gdGhhdCAkTElORU5PIGlzIG5vdCBhIHNwZWNpYWwgY2FzZSBhdCBsaW5lIGVuZC4KLS0gICMgKFJhamEgUiBIYXJpbmF0aCBzdWdnZXN0ZWQgc2VkICc9JywgYW5kIFBhdWwgRWdnZXJ0IHdyb3RlIHRoZQotLSAgIyBzZWNvbmQgJ3NlZCcgc2NyaXB0LiAgQmxhbWUgTGVlIEUuIE1jTWFob24gZm9yIHNlZCdzIHN5bnRheC4gIDotKQotLSAgc2VkICc9JyA8JGFzX215c2VsZiB8Ci0tICAgIHNlZCAnCi0tICAgICAgTgotLSAgICAgIHMsJCwtLAotLSAgICAgIDogbG9vcAotLSAgICAgIHMsXlwoWyckYXNfY3JfZGlnaXRzJ10qXClcKC4qXClbJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXVwpLFwxXDJcMVwzLAotLSAgICAgIHQgbG9vcAotLSAgICAgIHMsLSQsLAotLSAgICAgIHMsXlsnJGFzX2NyX2RpZ2l0cyddKlxuLCwKLS0gICAgJyA+JGFzX21lLmxpbmVubyAmJgotLSAgY2htb2QgK3ggJGFzX21lLmxpbmVubyB8fAotLSAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0tCi0tICAjIERvbid0IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBvZiBwcm9ibGVtcwotLSAgIyAodGhlIGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJlIHdlIG1pZ2h0IGZpbmQgdGhlCi0tICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2libGUgdG8gdGhpcykuCi0tICAuIC4vJGFzX21lLmxpbmVubwotLSAgIyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCi0tICBleGl0Ci0tfQotLQotLQotLWNhc2UgYGVjaG8gInRlc3RpbmdcYyI7IGVjaG8gMSwyLDNgLGBlY2hvIC1uIHRlc3Rpbmc7IGVjaG8gMSwyLDNgIGluCi0tICAqYyosLW4qKSBFQ0hPX049IEVDSE9fQz0nCi0tJyBFQ0hPX1Q9JwknIDs7Ci0tICAqYyosKiAgKSBFQ0hPX049LW4gRUNIT19DPSBFQ0hPX1Q9IDs7Ci0tICAqKSAgICAgICBFQ0hPX049IEVDSE9fQz0nXGMnIEVDSE9fVD0gOzsKLS1lc2FjCi0tCi0taWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLS0gIGFzX2V4cHI9ZXhwcgotLWVsc2UKLS0gIGFzX2V4cHI9ZmFsc2UKLS1maQotLQotLXJtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0tZWNobyA+Y29uZiQkLmZpbGUKLS1pZiBsbiAtcyBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KLS0gICMgV2UgY291bGQganVzdCBjaGVjayBmb3IgREpHUFA7IGJ1dCB0aGlzIHRlc3QgYSkgd29ya3MgYikgaXMgbW9yZSBnZW5lcmljCi0tICAjIGFuZCBjKSB3aWxsIHJlbWFpbiB2YWxpZCBvbmNlIERKR1BQIHN1cHBvcnRzIHN5bWxpbmtzIChESkdQUCAyLjA0KS4KLS0gIGlmIHRlc3QgLWYgY29uZiQkLmV4ZTsgdGhlbgotLSAgICAjIERvbid0IHVzZSBsbiBhdCBhbGw7IHdlIGRvbid0IGhhdmUgYW55IGxpbmtzCi0tICAgIGFzX2xuX3M9J2NwIC1wJwotKyAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LnMkYWNfZmlsZTsgdGhlbgotKyAgICBhY19tb3JlX2xpbmVzPWZhbHNlCi0rICAgIHJtIC1mIGNvbmZ0ZXN0LnMkYWNfZmlsZQotICAgZWxzZQotLSAgICBhc19sbl9zPSdsbiAtcycKLSsgICAgaWYgdGVzdCAteiAiJGFjX3NlZF9jbWRzIjsgdGhlbgotKyAgICAgIGFjX3NlZF9jbWRzPSJzZWQgLWYgY29uZnRlc3QucyRhY19maWxlIgotKyAgICBlbHNlCi0rICAgICAgYWNfc2VkX2NtZHM9IiRhY19zZWRfY21kcyB8IHNlZCAtZiBjb25mdGVzdC5zJGFjX2ZpbGUiCi0rICAgIGZpCi0rICAgIGFjX2ZpbGU9YGV4cHIgJGFjX2ZpbGUgKyAxYAotKyAgICBhY19iZWc9JGFjX2VuZAotKyAgICBhY19lbmQ9YGV4cHIgJGFjX2VuZCArICRhY19tYXhfc2VkX2NtZHNgCi0gICBmaQotLWVsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCi0tICBhc19sbl9zPWxuCi0tZWxzZQotLSAgYXNfbG5fcz0nY3AgLXAnCi0tZmkKLS1ybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQotLQotLWlmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLS0gIGFzX21rZGlyX3A9OgotLWVsc2UKLS0gIGFzX21rZGlyX3A9ZmFsc2UKLS1maQotLQotLWFzX2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKLS0KLS0jIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgQ1BQIG5hbWUuCi0tYXNfdHJfY3BwPSJzZWQgeSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnIgotLQotLSMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCB2YXJpYWJsZSBuYW1lLgotLWFzX3RyX3NoPSJzZWQgeSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyIKLS0KLS0KLS0jIElGUwotLSMgV2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcgbGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3JkZXIuCi0tYXNfbmw9JwotLScKLS1JRlM9IiAJJGFzX25sIgotLQotLSMgQ0RQQVRILgotLSRhc191bnNldCBDRFBBVEgKLS0KLS1leGVjIDY+JjEKLS0KLS0jIE9wZW4gdGhlIGxvZyByZWFsIHNvb24sIHRvIGtlZXAgXCRbMF0gYW5kIHNvIG9uIG1lYW5pbmdmdWwsIGFuZCB0bwotLSMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklHX0ZJTEVTIGV0Yy4gaW5zdGVhZCBvZiB0aGVpcgotLSMgdmFsdWVzIGFmdGVyIG9wdGlvbnMgaGFuZGxpbmcuICBMb2dnaW5nIC0tdmVyc2lvbiBldGMuIGlzIE9LLgotLWV4ZWMgNT4+Y29uZmlnLmxvZwotLXsKLS0gIGVjaG8KLS0gIHNlZCAnaDtzLy4vLS9nO3MvXi4uLi8jIyAvO3MvLi4uJC8gIyMvO3A7eDtwO3gnIDw8X0FTQk9YCi0tIyMgUnVubmluZyAkYXNfbWUuICMjCi0tX0FTQk9YCi0tfSA+JjUKLS1jYXQgPiY1IDw8X0NTRU9GCi0tCi0tVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSAkYXNfbWUsIHdoaWNoIHdhcwotLWdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41Ny4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwotLQotLSAgQ09ORklHX0ZJTEVTICAgID0gJENPTkZJR19GSUxFUwotLSAgQ09ORklHX0hFQURFUlMgID0gJENPTkZJR19IRUFERVJTCi0tICBDT05GSUdfTElOS1MgICAgPSAkQ09ORklHX0xJTktTCi0tICBDT05GSUdfQ09NTUFORFMgPSAkQ09ORklHX0NPTU1BTkRTCi0tICAkICQwICRACi0tCi0tX0NTRU9GCi0tZWNobyAib24gYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgIiA+JjUKLS1lY2hvID4mNQotLV9BQ0VPRgotLQotLSMgRmlsZXMgdGhhdCBjb25maWcuc3RhdHVzIHdhcyBtYWRlIGZvci4KLS1pZiB0ZXN0IC1uICIkYWNfY29uZmlnX2ZpbGVzIjsgdGhlbgotLSAgZWNobyAiY29uZmlnX2ZpbGVzPVwiJGFjX2NvbmZpZ19maWxlc1wiIiA+PiRDT05GSUdfU1RBVFVTCi0tZmkKLS0KLS1pZiB0ZXN0IC1uICIkYWNfY29uZmlnX2hlYWRlcnMiOyB0aGVuCi0tICBlY2hvICJjb25maWdfaGVhZGVycz1cIiRhY19jb25maWdfaGVhZGVyc1wiIiA+PiRDT05GSUdfU1RBVFVTCi0tZmkKLS0KLS1pZiB0ZXN0IC1uICIkYWNfY29uZmlnX2xpbmtzIjsgdGhlbgotLSAgZWNobyAiY29uZmlnX2xpbmtzPVwiJGFjX2NvbmZpZ19saW5rc1wiIiA+PiRDT05GSUdfU1RBVFVTCi0tZmkKLS0KLS1pZiB0ZXN0IC1uICIkYWNfY29uZmlnX2NvbW1hbmRzIjsgdGhlbgotLSAgZWNobyAiY29uZmlnX2NvbW1hbmRzPVwiJGFjX2NvbmZpZ19jb21tYW5kc1wiIiA+PiRDT05GSUdfU1RBVFVTCi0tZmkKLS0KLS1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLS0KLS1hY19jc191c2FnZT0iXAotLVxgJGFzX21lJyBpbnN0YW50aWF0ZXMgZmlsZXMgZnJvbSB0ZW1wbGF0ZXMgYWNjb3JkaW5nIHRvIHRoZQotLWN1cnJlbnQgY29uZmlndXJhdGlvbi4KLS0KLS1Vc2FnZTogJDAgW09QVElPTlNdIFtGSUxFXS4uLgotLQotLSAgLWgsIC0taGVscCAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAotLSAgLVYsIC0tdmVyc2lvbiAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0Ci0tICAtcSwgLS1xdWlldCAgICAgIGRvIG5vdCBwcmludCBwcm9ncmVzcyBtZXNzYWdlcwotLSAgLWQsIC0tZGVidWcgICAgICBkb24ndCByZW1vdmUgdGVtcG9yYXJ5IGZpbGVzCi0tICAgICAgLS1yZWNoZWNrICAgIHVwZGF0ZSAkYXNfbWUgYnkgcmVjb25maWd1cmluZyBpbiB0aGUgc2FtZSBjb25kaXRpb25zCi0tICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCi0tICAgICAgICAgICAgICAgICAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQotLQotLUNvbmZpZ3VyYXRpb24gZmlsZXM6Ci0tJGNvbmZpZ19maWxlcwotLQotLVJlcG9ydCBidWdzIHRvIDxidWctYXV0b2NvbmZAZ251Lm9yZz4uIgotLV9BQ0VPRgotLQotLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCi0tYWNfY3NfdmVyc2lvbj0iXFwKLS1jb25maWcuc3RhdHVzCi0tY29uZmlndXJlZCBieSAkMCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU3LAotLSAgd2l0aCBvcHRpb25zIFxcImBlY2hvICIkYWNfY29uZmlndXJlX2FyZ3MiIHwgc2VkICdzL1tcXCIiXGBcJF0vXFxcXCYvZydgXFwiCi0tCi0tQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEKLS1GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLS1UaGlzIGNvbmZpZy5zdGF0dXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLS1naXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuIgotLXNyY2Rpcj0kc3JjZGlyCi0tSU5TVEFMTD0iJElOU1RBTEwiCi0tX0FDRU9GCi0tCi0tY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0tIyBJZiBubyBmaWxlIGFyZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIsIHRoZW4gd2UgbmVlZCB0byBwcm92aWRlIGRlZmF1bHQKLS0jIHZhbHVlLiAgQnkgd2UgbmVlZCB0byBrbm93IGlmIGZpbGVzIHdlcmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLgotLWFjX25lZWRfZGVmYXVsdHM9OgotLXdoaWxlIHRlc3QgJCMgIT0gMAotLWRvCi0tICBjYXNlICQxIGluCi0tICAtLSo9KikKLS0gICAgYWNfb3B0aW9uPWBleHByICJ4JDEiIDogJ3hcKFtePV0qXCk9J2AKLS0gICAgYWNfb3B0YXJnPWBleHByICJ4JDEiIDogJ3hbXj1dKj1cKC4qXCknYAotLSAgICBhY19zaGlmdD06Ci0tICAgIDs7Ci0tICAtKikKLS0gICAgYWNfb3B0aW9uPSQxCi0tICAgIGFjX29wdGFyZz0kMgotLSAgICBhY19zaGlmdD1zaGlmdAotLSAgICA7OwotLSAgKikgIyBUaGlzIGlzIG5vdCBhbiBvcHRpb24sIHNvIHRoZSB1c2VyIGhhcyBwcm9iYWJseSBnaXZlbiBleHBsaWNpdAotLSAgICAgIyBhcmd1bWVudHMuCi0tICAgICBhY19vcHRpb249JDEKLS0gICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotLSAgZXNhYwotLQotLSAgY2FzZSAkYWNfb3B0aW9uIGluCi0tICAjIEhhbmRsaW5nIG9mIHRoZSBvcHRpb25zLgotLV9BQ0VPRgotLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgotLSAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAtLXIpCi0tICAgIGFjX2NzX3JlY2hlY2s9OiA7OwotLSAgLS12ZXJzaW9uIHwgLS12ZXJzKiB8IC1WICkKLS0gICAgZWNobyAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDAgOzsKLS0gIC0taGUgfCAtLWgpCi0tICAgICMgQ29uZmxpY3QgYmV0d2VlbiAtLWhlbHAgYW5kIC0taGVhZGVyCi0tICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCi0tVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCi0tVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKLS0gIC0taGVscCB8IC0taGVsIHwgLWggKQotLSAgICBlY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0IDAgOzsKLS0gIC0tZGVidWcgfCAtLWQqIHwgLWQgKQotLSAgICBkZWJ1Zz06IDs7Ci0tICAtLWZpbGUgfCAtLWZpbCB8IC0tZmkgfCAtLWYgKQotLSAgICAkYWNfc2hpZnQKLS0gICAgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTICRhY19vcHRhcmciCi0tICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotLSAgLS1oZWFkZXIgfCAtLWhlYWRlIHwgLS1oZWFkIHwgLS1oZWEgKQotLSAgICAkYWNfc2hpZnQKLS0gICAgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyAkYWNfb3B0YXJnIgotLSAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKLS0gIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCi0tICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCB8IC0tc2kgfCAtLXMpCi0tICAgIGFjX2NzX3NpbGVudD06IDs7Ci0tCi0tICAjIFRoaXMgaXMgYW4gZXJyb3IuCi0tICAtKikgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJDEKLS1UcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJDEKLS1UcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0gOzsKLS0KLS0gICopIGFjX2NvbmZpZ190YXJnZXRzPSIkYWNfY29uZmlnX3RhcmdldHMgJDEiIDs7Ci0tCi0tICBlc2FjCi0tICBzaGlmdAotIGRvbmUKLS0KLS1hY19jb25maWd1cmVfZXh0cmFfYXJncz0KLS0KLS1pZiAkYWNfY3Nfc2lsZW50OyB0aGVuCi0tICBleGVjIDY+L2Rldi9udWxsCi0tICBhY19jb25maWd1cmVfZXh0cmFfYXJncz0iJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tc2lsZW50IgotK2lmIHRlc3QgLXogIiRhY19zZWRfY21kcyI7IHRoZW4KLSsgIGFjX3NlZF9jbWRzPWNhdAotIGZpCi0rRU9GCi0gCi0tX0FDRU9GCi0tY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKLS1pZiBcJGFjX2NzX3JlY2hlY2s7IHRoZW4KLS0gIGVjaG8gInJ1bm5pbmcgJFNIRUxMICQwICIgJGFjX2NvbmZpZ3VyZV9hcmdzIFwkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgIiAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbiIgPiY2Ci0tICBleGVjICRTSEVMTCAkMCAkYWNfY29uZmlndXJlX2FyZ3MgXCRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgotLWZpCi0rY2F0ID4+ICRDT05GSUdfU1RBVFVTIDw8RU9GCi0gCi0tX0FDRU9GCi0tCi0tCi0tCi0tCi0tCi0tY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0tZm9yIGFjX2NvbmZpZ190YXJnZXQgaW4gJGFjX2NvbmZpZ190YXJnZXRzCi0tZG8KLS0gIGNhc2UgIiRhY19jb25maWdfdGFyZ2V0IiBpbgotLSAgIyBIYW5kbGluZyBvZiBhcmd1bWVudHMuCi0tICAiY29uZmlnL2NvbmZpZyIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgY29uZmlnL2NvbmZpZyIgOzsKLS0gICJjb25maWcvc3lzdGVtLm1hayIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgY29uZmlnL3N5c3RlbS5tYWsiIDs7Ci0tICAqKSB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNfY29uZmlnX3RhcmdldCIgPiY1Ci0tZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4mMjt9Ci0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKLStDT05GSUdfRklMRVM9XCR7Q09ORklHX0ZJTEVTLSJjb25maWcvY29uZmlnIGNvbmZpZy9zeXN0ZW0ubWFrIn0KLStFT0YKLStjYXQgPj4gJENPTkZJR19TVEFUVVMgPDxcRU9GCi0rZm9yIGFjX2ZpbGUgaW4gLi4gJENPTkZJR19GSUxFUzsgZG8gaWYgdGVzdCAieCRhY19maWxlIiAhPSB4Li47IHRoZW4KLSsgICMgU3VwcG9ydCAib3V0ZmlsZVs6aW5maWxlWzppbmZpbGUuLi5dXSIsIGRlZmF1bHRpbmcgaW5maWxlPSJvdXRmaWxlLmluIi4KLSsgIGNhc2UgIiRhY19maWxlIiBpbgotKyAgKjoqKSBhY19maWxlX2luPWBlY2hvICIkYWNfZmlsZSJ8c2VkICdzJVteOl0qOiUlJ2AKLSsgICAgICAgYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUifHNlZCAncyU6LiolJSdgIDs7Ci0rICAqKSBhY19maWxlX2luPSIke2FjX2ZpbGV9LmluIiA7OwotICAgZXNhYwotLWRvbmUKLSAKLS0jIElmIHRoZSB1c2VyIGRpZCBub3QgdXNlIHRoZSBhcmd1bWVudHMgdG8gc3BlY2lmeSB0aGUgaXRlbXMgdG8gaW5zdGFudGlhdGUsCi0tIyB0aGVuIHRoZSBlbnZ2YXIgaW50ZXJmYWNlIGlzIHVzZWQuICBTZXQgb25seSB0aG9zZSB0aGF0IGFyZSBub3QuCi0tIyBXZSB1c2UgdGhlIGxvbmcgZm9ybSBmb3IgdGhlIGRlZmF1bHQgYXNzaWdubWVudCBiZWNhdXNlIG9mIGFuIGV4dHJlbWVseQotLSMgYml6YXJyZSBidWcgb24gU3VuT1MgNC4xLjMuCi0taWYgJGFjX25lZWRfZGVmYXVsdHM7IHRoZW4KLS0gIHRlc3QgIiR7Q09ORklHX0ZJTEVTK3NldH0iID0gc2V0IHx8IENPTkZJR19GSUxFUz0kY29uZmlnX2ZpbGVzCi0tZmkKLSsgICMgQWRqdXN0IGEgcmVsYXRpdmUgc3JjZGlyLCB0b3Bfc3JjZGlyLCBhbmQgSU5TVEFMTCBmb3Igc3ViZGlyZWN0b3JpZXMuCi0gCi0tIyBIYXZlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgY29udmVuaWVuY2UuICBNYWtlIGl0IGluIHRoZSBidWlsZCB0cmVlCi0tIyBzaW1wbHkgYmVjYXVzZSB0aGVyZSBpcyBubyByZWFzb24gdG8gcHV0IGl0IGhlcmUsIGFuZCBpbiBhZGRpdGlvbiwKLS0jIGNyZWF0aW5nIGFuZCBtb3ZpbmcgZmlsZXMgZnJvbSAvdG1wIGNhbiBzb21ldGltZXMgY2F1c2UgcHJvYmxlbXMuCi0tIyBDcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5LCBhbmQgaG9vayBmb3IgaXRzIHJlbW92YWwgdW5sZXNzIGRlYnVnZ2luZy4KLS0kZGVidWcgfHwKLS17Ci0tICB0cmFwICdleGl0X3N0YXR1cz0kPzsgcm0gLXJmICR0bXAgJiYgZXhpdCAkZXhpdF9zdGF0dXMnIDAKLS0gIHRyYXAgJ3sgKGV4aXQgMSk7IGV4aXQgMTsgfScgMSAyIDEzIDE1Ci0tfQotLQotLSMgQ3JlYXRlIGEgKHNlY3VyZSkgdG1wIGRpcmVjdG9yeSBmb3IgdG1wIGZpbGVzLgotLQotLXsKLS0gIHRtcD1gKHVtYXNrIDA3NyAmJiBta3RlbXAgLWQgLXEgIi4vY29uZnN0YXRYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYKLS0gIHRlc3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAiCi0tfSAgfHwKLS17Ci0tICB0bXA9Li9jb25mc3RhdCQkLSRSQU5ET00KLS0gICh1bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkKLS19IHx8Ci0tewotLSAgIGVjaG8gIiRtZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gLiIgPiYyCi0tICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0tfQotLQotLV9BQ0VPRgotLQotLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCi0tCi0tIwotLSMgQ09ORklHX0ZJTEVTIHNlY3Rpb24uCi0tIwotLQotLSMgTm8gbmVlZCB0byBnZW5lcmF0ZSB0aGUgc2NyaXB0cyBpZiB0aGVyZSBhcmUgbm8gQ09ORklHX0ZJTEVTLgotLSMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aGVuIC4vY29uZmlnLnN0YXR1cyBjb25maWcuaAotLWlmIHRlc3QgLW4gIlwkQ09ORklHX0ZJTEVTIjsgdGhlbgotLSAgIyBQcm90ZWN0IGFnYWluc3QgYmVpbmcgb24gdGhlIHJpZ2h0IHNpZGUgb2YgYSBzZWQgc3Vic3QgaW4gY29uZmlnLnN0YXR1cy4KLS0gIHNlZCAncy8sQC9AQC87IHMvQCwvQEAvOyBzLyw7dCB0XCQvQDt0IHQvOyAvQDt0IHRcJC9zL1tcXFxcJixdL1xcXFwmL2c7Ci0tICAgcy9AQC8sQC87IHMvQEAvQCwvOyBzL0A7dCB0XCQvLDt0IHQvJyA+XCR0bXAvc3Vicy5zZWQgPDxcXENFT0YKLS1zLEBTSEVMTEAsJFNIRUxMLDt0IHQKLS1zLEBQQVRIX1NFUEFSQVRPUkAsJFBBVEhfU0VQQVJBVE9SLDt0IHQKLS1zLEBQQUNLQUdFX05BTUVALCRQQUNLQUdFX05BTUUsO3QgdAotLXMsQFBBQ0tBR0VfVEFSTkFNRUAsJFBBQ0tBR0VfVEFSTkFNRSw7dCB0Ci0tcyxAUEFDS0FHRV9WRVJTSU9OQCwkUEFDS0FHRV9WRVJTSU9OLDt0IHQKLS1zLEBQQUNLQUdFX1NUUklOR0AsJFBBQ0tBR0VfU1RSSU5HLDt0IHQKLS1zLEBQQUNLQUdFX0JVR1JFUE9SVEAsJFBBQ0tBR0VfQlVHUkVQT1JULDt0IHQKLS1zLEBleGVjX3ByZWZpeEAsJGV4ZWNfcHJlZml4LDt0IHQKLS1zLEBwcmVmaXhALCRwcmVmaXgsO3QgdAotLXMsQHByb2dyYW1fdHJhbnNmb3JtX25hbWVALCRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lLDt0IHQKLS1zLEBiaW5kaXJALCRiaW5kaXIsO3QgdAotLXMsQHNiaW5kaXJALCRzYmluZGlyLDt0IHQKLS1zLEBsaWJleGVjZGlyQCwkbGliZXhlY2Rpciw7dCB0Ci0tcyxAZGF0YWRpckAsJGRhdGFkaXIsO3QgdAotLXMsQHN5c2NvbmZkaXJALCRzeXNjb25mZGlyLDt0IHQKLS1zLEBzaGFyZWRzdGF0ZWRpckAsJHNoYXJlZHN0YXRlZGlyLDt0IHQKLS1zLEBsb2NhbHN0YXRlZGlyQCwkbG9jYWxzdGF0ZWRpciw7dCB0Ci0tcyxAbGliZGlyQCwkbGliZGlyLDt0IHQKLS1zLEBpbmNsdWRlZGlyQCwkaW5jbHVkZWRpciw7dCB0Ci0tcyxAb2xkaW5jbHVkZWRpckAsJG9sZGluY2x1ZGVkaXIsO3QgdAotLXMsQGluZm9kaXJALCRpbmZvZGlyLDt0IHQKLS1zLEBtYW5kaXJALCRtYW5kaXIsO3QgdAotLXMsQGJ1aWxkX2FsaWFzQCwkYnVpbGRfYWxpYXMsO3QgdAotLXMsQGhvc3RfYWxpYXNALCRob3N0X2FsaWFzLDt0IHQKLS1zLEB0YXJnZXRfYWxpYXNALCR0YXJnZXRfYWxpYXMsO3QgdAotLXMsQERFRlNALCRERUZTLDt0IHQKLS1zLEBFQ0hPX0NALCRFQ0hPX0MsO3QgdAotLXMsQEVDSE9fTkAsJEVDSE9fTiw7dCB0Ci0tcyxARUNIT19UQCwkRUNIT19ULDt0IHQKLS1zLEBMSUJTQCwkTElCUyw7dCB0Ci0tcyxAYnVpbGRALCRidWlsZCw7dCB0Ci0tcyxAYnVpbGRfY3B1QCwkYnVpbGRfY3B1LDt0IHQKLS1zLEBidWlsZF92ZW5kb3JALCRidWlsZF92ZW5kb3IsO3QgdAotLXMsQGJ1aWxkX29zQCwkYnVpbGRfb3MsO3QgdAotLXMsQGhvc3RALCRob3N0LDt0IHQKLS1zLEBob3N0X2NwdUAsJGhvc3RfY3B1LDt0IHQKLS1zLEBob3N0X3ZlbmRvckAsJGhvc3RfdmVuZG9yLDt0IHQKLS1zLEBob3N0X29zQCwkaG9zdF9vcyw7dCB0Ci0tcyxAdGFyZ2V0QCwkdGFyZ2V0LDt0IHQKLS1zLEB0YXJnZXRfY3B1QCwkdGFyZ2V0X2NwdSw7dCB0Ci0tcyxAdGFyZ2V0X3ZlbmRvckAsJHRhcmdldF92ZW5kb3IsO3QgdAotLXMsQHRhcmdldF9vc0AsJHRhcmdldF9vcyw7dCB0Ci0tcyxAQ0NALCRDQyw7dCB0Ci0tcyxAQ0ZMQUdTQCwkQ0ZMQUdTLDt0IHQKLS1zLEBMREZMQUdTQCwkTERGTEFHUyw7dCB0Ci0tcyxAQ1BQRkxBR1NALCRDUFBGTEFHUyw7dCB0Ci0tcyxAYWNfY3RfQ0NALCRhY19jdF9DQyw7dCB0Ci0tcyxARVhFRVhUQCwkRVhFRVhULDt0IHQKLS1zLEBPQkpFWFRALCRPQkpFWFQsO3QgdAotLXMsQFJBTkxJQkAsJFJBTkxJQiw7dCB0Ci0tcyxAYWNfY3RfUkFOTElCQCwkYWNfY3RfUkFOTElCLDt0IHQKLS1zLEBJTlNUQUxMX1BST0dSQU1ALCRJTlNUQUxMX1BST0dSQU0sO3QgdAotLXMsQElOU1RBTExfU0NSSVBUQCwkSU5TVEFMTF9TQ1JJUFQsO3QgdAotLXMsQElOU1RBTExfREFUQUAsJElOU1RBTExfREFUQSw7dCB0Ci0tcyxAQVJALCRBUiw7dCB0Ci0tcyxAYWNfY3RfQVJALCRhY19jdF9BUiw7dCB0Ci0tcyxAVEFSR0VUX09TQCwkVEFSR0VUX09TLDt0IHQKLS1zLEBUQVJHRVRfQ1BVQCwkVEFSR0VUX0NQVSw7dCB0Ci0tcyxATTY4S0NDQCwkTTY4S0NDLDt0IHQKLS1zLEBMRVhERUZTQCwkTEVYREVGUyw7dCB0Ci0tcyxAVk9YREVGU0AsJFZPWERFRlMsO3QgdAotLXMsQEhPU1RfT1NALCRIT1NUX09TLDt0IHQKLS1zLEBIT1NUX0NQVUAsJEhPU1RfQ1BVLDt0IHQKLS1zLEBPVEhFUkxJQlNALCRPVEhFUkxJQlMsO3QgdAotLXMsQFNIRkxBR1NALCRTSEZMQUdTLDt0IHQKLS1zLEBNTUFQVFlQRUAsJE1NQVBUWVBFLDt0IHQKLS1zLEBTVERJT1RZUEVALCRTVERJT1RZUEUsO3QgdAotLXMsQENQUEAsJENQUCw7dCB0Ci0tcyxARUdSRVBALCRFR1JFUCw7dCB0Ci0tcyxAQVVESU9EUklWRVJALCRBVURJT0RSSVZFUiw7dCB0Ci0tcyxAQVVESU9ERUZTQCwkQVVESU9ERUZTLDt0IHQKLS1zLEBBVURJT0xJQlNALCRBVURJT0xJQlMsO3QgdAotLXMsQEZMX0xBTkdALCRGTF9MQU5HLDt0IHQKLS1zLEBGTF9WT1hALCRGTF9WT1gsO3QgdAotLXMsQEZMX0xFWEAsJEZMX0xFWCw7dCB0Ci0tcyxATElCT0JKU0AsJExJQk9CSlMsO3QgdAotLXMsQExUTElCT0JKU0AsJExUTElCT0JKUyw7dCB0Ci0tQ0VPRgotLQotLV9BQ0VPRgotLQotLSAgY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0tICAjIFNwbGl0IHRoZSBzdWJzdGl0dXRpb25zIGludG8gYml0ZS1zaXplZCBwaWVjZXMgZm9yIHNlZHMgd2l0aAotLSAgIyBzbWFsbCBjb21tYW5kIG51bWJlciBsaW1pdHMsIGxpa2Ugb24gRGlnaXRhbCBPU0YvMSBhbmQgSFAtVVguCi0tICBhY19tYXhfc2VkX2xpbmVzPTQ4Ci0tICBhY19zZWRfZnJhZz0xICMgTnVtYmVyIG9mIGN1cnJlbnQgZmlsZS4KLS0gIGFjX2JlZz0xICMgRmlyc3QgbGluZSBmb3IgY3VycmVudCBmaWxlLgotLSAgYWNfZW5kPSRhY19tYXhfc2VkX2xpbmVzICMgTGluZSBhZnRlciBsYXN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KLS0gIGFjX21vcmVfbGluZXM9OgotLSAgYWNfc2VkX2NtZHM9Ci0tICB3aGlsZSAkYWNfbW9yZV9saW5lczsgZG8KLS0gICAgaWYgdGVzdCAkYWNfYmVnIC1ndCAxOyB0aGVuCi0tICAgICAgc2VkICIxLCR7YWNfYmVnfWQ7ICR7YWNfZW5kfXEiICR0bXAvc3Vicy5zZWQgPiR0bXAvc3Vicy5mcmFnCi0tICAgIGVsc2UKLS0gICAgICBzZWQgIiR7YWNfZW5kfXEiICR0bXAvc3Vicy5zZWQgPiR0bXAvc3Vicy5mcmFnCi0tICAgIGZpCi0tICAgIGlmIHRlc3QgISAtcyAkdG1wL3N1YnMuZnJhZzsgdGhlbgotLSAgICAgIGFjX21vcmVfbGluZXM9ZmFsc2UKLS0gICAgZWxzZQotLSAgICAgICMgVGhlIHB1cnBvc2Ugb2YgdGhlIGxhYmVsIGFuZCBvZiB0aGUgYnJhbmNoaW5nIGNvbmRpdGlvbiBpcyB0bwotLSAgICAgICMgc3BlZWQgdXAgdGhlIHNlZCBwcm9jZXNzaW5nIChpZiB0aGVyZSBhcmUgbm8gYEAnIGF0IGFsbCwgdGhlcmUKLS0gICAgICAjIGlzIG5vIG5lZWQgdG8gYnJvd3NlIGFueSBvZiB0aGUgc3Vic3RpdHV0aW9ucykuCi0tICAgICAgIyBUaGVzZSBhcmUgdGhlIHR3byBleHRyYSBzZWQgY29tbWFuZHMgbWVudGlvbmVkIGFib3ZlLgotLSAgICAgIChlY2hvICc6dAotLSAgL0BbYS16QS1aX11bYS16QS1aXzAtOV0qQC8hYicgJiYgY2F0ICR0bXAvc3Vicy5mcmFnKSA+JHRtcC9zdWJzLSRhY19zZWRfZnJhZy5zZWQKLS0gICAgICBpZiB0ZXN0IC16ICIkYWNfc2VkX2NtZHMiOyB0aGVuCi0tICAJYWNfc2VkX2NtZHM9InNlZCAtZiAkdG1wL3N1YnMtJGFjX3NlZF9mcmFnLnNlZCIKLS0gICAgICBlbHNlCi0tICAJYWNfc2VkX2NtZHM9IiRhY19zZWRfY21kcyB8IHNlZCAtZiAkdG1wL3N1YnMtJGFjX3NlZF9mcmFnLnNlZCIKLS0gICAgICBmaQotLSAgICAgIGFjX3NlZF9mcmFnPWBleHByICRhY19zZWRfZnJhZyArIDFgCi0tICAgICAgYWNfYmVnPSRhY19lbmQKLS0gICAgICBhY19lbmQ9YGV4cHIgJGFjX2VuZCArICRhY19tYXhfc2VkX2xpbmVzYAotLSAgICBmaQotLSAgZG9uZQotLSAgaWYgdGVzdCAteiAiJGFjX3NlZF9jbWRzIjsgdGhlbgotLSAgICBhY19zZWRfY21kcz1jYXQKLSsgICMgUmVtb3ZlIGxhc3Qgc2xhc2ggYW5kIGFsbCB0aGF0IGZvbGxvd3MgaXQuICBOb3QgYWxsIHN5c3RlbXMgaGF2ZSBkaXJuYW1lLgotKyAgYWNfZGlyPWBlY2hvICRhY19maWxlfHNlZCAncyUvW14vXVteL10qJCUlJ2AKLSsgIGlmIHRlc3QgIiRhY19kaXIiICE9ICIkYWNfZmlsZSIgJiYgdGVzdCAiJGFjX2RpciIgIT0gLjsgdGhlbgotKyAgICAjIFRoZSBmaWxlIGlzIGluIGEgc3ViZGlyZWN0b3J5LgotKyAgICB0ZXN0ICEgLWQgIiRhY19kaXIiICYmIG1rZGlyICIkYWNfZGlyIgotKyAgICBhY19kaXJfc3VmZml4PSIvYGVjaG8gJGFjX2RpcnxzZWQgJ3MlXlwuLyUlJ2AiCi0rICAgICMgQSAiLi4vIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCi0rICAgIGFjX2RvdHM9YGVjaG8gJGFjX2Rpcl9zdWZmaXh8c2VkICdzJS9bXi9dKiUuLi8lZydgCi0rICBlbHNlCi0rICAgIGFjX2Rpcl9zdWZmaXg9IGFjX2RvdHM9Ci0gICBmaQotLWZpICMgdGVzdCAtbiAiJENPTkZJR19GSUxFUyIKLSAKLS1fQUNFT0YKLS1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLS1mb3IgYWNfZmlsZSBpbiA6ICRDT05GSUdfRklMRVM7IGRvIHRlc3QgIngkYWNfZmlsZSIgPSB4OiAmJiBjb250aW51ZQotLSAgIyBTdXBwb3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIiwgZGVmYXVsdGluZyBpbmZpbGU9Im91dGZpbGUuaW4iLgotLSAgY2FzZSAkYWNfZmlsZSBpbgotLSAgLSB8ICo6LSB8ICo6LToqICkgIyBpbnB1dCBmcm9tIHN0ZGluCi0tICAgICAgICBjYXQgPiR0bXAvc3RkaW4KLS0gICAgICAgIGFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCi0tICAgICAgICBhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OwotLSAgKjoqICkgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKLS0gICAgICAgIGFjX2ZpbGU9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgIDs7Ci0tICAqICkgICBhY19maWxlX2luPSRhY19maWxlLmluIDs7Ci0rICBjYXNlICIkYWNfZ2l2ZW5fc3JjZGlyIiBpbgotKyAgLikgIHNyY2Rpcj0uCi0rICAgICAgaWYgdGVzdCAteiAiJGFjX2RvdHMiOyB0aGVuIHRvcF9zcmNkaXI9LgotKyAgICAgIGVsc2UgdG9wX3NyY2Rpcj1gZWNobyAkYWNfZG90c3xzZWQgJ3MlLyQlJSdgOyBmaSA7OwotKyAgLyopIHNyY2Rpcj0iJGFjX2dpdmVuX3NyY2RpciRhY19kaXJfc3VmZml4IjsgdG9wX3NyY2Rpcj0iJGFjX2dpdmVuX3NyY2RpciIgOzsKLSsgICopICMgUmVsYXRpdmUgcGF0aC4KLSsgICAgc3JjZGlyPSIkYWNfZG90cyRhY19naXZlbl9zcmNkaXIkYWNfZGlyX3N1ZmZpeCIKLSsgICAgdG9wX3NyY2Rpcj0iJGFjX2RvdHMkYWNfZ2l2ZW5fc3JjZGlyIiA7OwotICAgZXNhYwotIAotLSAgIyBDb21wdXRlIEBzcmNkaXJALCBAdG9wX3NyY2RpckAsIGFuZCBASU5TVEFMTEAgZm9yIHN1YmRpcmVjdG9yaWVzLgotLSAgYWNfZGlyPWAoZGlybmFtZSAiJGFjX2ZpbGUiKSAyPi9kZXYvbnVsbCB8fAotLSRhc19leHByIFgiJGFjX2ZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0tICAgICAgICAgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKLS0gICAgICAgICBYIiRhY19maWxlIiA6ICdYXCgvL1wpJCcgXHwgXAotLSAgICAgICAgIFgiJGFjX2ZpbGUiIDogJ1hcKC9cKScgXHwgXAotLSAgICAgICAgIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotLWVjaG8gWCIkYWNfZmlsZSIgfAotLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLS0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0tICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLS0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0tICAJICBzLy4qLy4vOyBxJ2AKLS0gIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KLS0gICAgbWtkaXIgLXAgIiRhY19kaXIiCi0tICBlbHNlCi0tICAgIGFzX2Rpcj0iJGFjX2RpciIKLS0gICAgYXNfZGlycz0KLS0gICAgd2hpbGUgdGVzdCAhIC1kICIkYXNfZGlyIjsgZG8KLS0gICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgotLSAgICAgIGFzX2Rpcj1gKGRpcm5hbWUgIiRhc19kaXIiKSAyPi9kZXYvbnVsbCB8fAotLSRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLS0gICAgICAgICBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0tICAgICAgICAgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotLSAgICAgICAgIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCBcCi0tICAgICAgICAgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8Ci0tZWNobyBYIiRhc19kaXIiIHwKLS0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0tICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0tICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotLSAgCSAgcy8uKi8uLzsgcSdgCi0tICAgIGRvbmUKLS0gICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKLS0gIGZpIHx8IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJGFjX2RpclwiIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLSsgIGNhc2UgIiRhY19naXZlbl9JTlNUQUxMIiBpbgotKyAgWy8kXSopIElOU1RBTEw9IiRhY19naXZlbl9JTlNUQUxMIiA7OwotKyAgKikgSU5TVEFMTD0iJGFjX2RvdHMkYWNfZ2l2ZW5fSU5TVEFMTCIgOzsKLSsgIGVzYWMKLSAKLS0gIGFjX2J1aWxkZGlyPS4KLS0KLS1pZiB0ZXN0ICIkYWNfZGlyIiAhPSAuOyB0aGVuCi0tICBhY19kaXJfc3VmZml4PS9gZWNobyAiJGFjX2RpciIgfCBzZWQgJ3MsXlwuW1xcL10sLCdgCi0tICAjIEEgIi4uLyIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgotLSAgYWNfdG9wX2J1aWxkZGlyPWBlY2hvICIkYWNfZGlyX3N1ZmZpeCIgfCBzZWQgJ3MsL1teXFwvXSosLi4vLGcnYAotLWVsc2UKLS0gIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcj0KLS1maQotLQotLWNhc2UgJHNyY2RpciBpbgotLSAgLikgICMgTm8gLS1zcmNkaXIgb3B0aW9uLiAgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgotLSAgICBhY19zcmNkaXI9LgotLSAgICBpZiB0ZXN0IC16ICIkYWNfdG9wX2J1aWxkZGlyIjsgdGhlbgotLSAgICAgICBhY190b3Bfc3JjZGlyPS4KLS0gICAgZWxzZQotLSAgICAgICBhY190b3Bfc3JjZGlyPWBlY2hvICRhY190b3BfYnVpbGRkaXIgfCBzZWQgJ3MsLyQsLCdgCi0tICAgIGZpIDs7Ci0tICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIHBhdGguCi0tICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7Ci0tICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpciA7OwotLSAgKikgIyBSZWxhdGl2ZSBwYXRoLgotLSAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIkYWNfZGlyX3N1ZmZpeAotLSAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyIDs7Ci0tZXNhYwotLSMgRG9uJ3QgYmxpbmRseSBwZXJmb3JtIGEgYGNkICIkYWNfZGlyIi8kYWNfZm9vICYmIHB3ZGAgc2luY2UgJGFjX2ZvbyBjYW4gYmUKLS0jIGFic29sdXRlLgotLWFjX2Fic19idWlsZGRpcj1gY2QgIiRhY19kaXIiICYmIGNkICRhY19idWlsZGRpciAmJiBwd2RgCi0tYWNfYWJzX3RvcF9idWlsZGRpcj1gY2QgIiRhY19kaXIiICYmIGNkICR7YWNfdG9wX2J1aWxkZGlyfS4gJiYgcHdkYAotLWFjX2Fic19zcmNkaXI9YGNkICIkYWNfZGlyIiAmJiBjZCAkYWNfc3JjZGlyICYmIHB3ZGAKLS1hY19hYnNfdG9wX3NyY2Rpcj1gY2QgIiRhY19kaXIiICYmIGNkICRhY190b3Bfc3JjZGlyICYmIHB3ZGAKLS0KLS0KLS0gIGNhc2UgJElOU1RBTEwgaW4KLS0gIFtcXC8kXSogfCA/OltcXC9dKiApIGFjX0lOU1RBTEw9JElOU1RBTEwgOzsKLS0gICopIGFjX0lOU1RBTEw9JGFjX3RvcF9idWlsZGRpciRJTlNUQUxMIDs7Ci0rICBlY2hvIGNyZWF0aW5nICIkYWNfZmlsZSIKLSsgIHJtIC1mICIkYWNfZmlsZSIKLSsgIGNvbmZpZ3VyZV9pbnB1dD0iR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBgZWNobyAkYWNfZmlsZV9pbnxzZWQgJ3MlLiovJSUnYCBieSBjb25maWd1cmUuIgotKyAgY2FzZSAiJGFjX2ZpbGUiIGluCi0rICAqTWFrZWZpbGUqKSBhY19jb21zdWI9IjFpXFwKLSsjICRjb25maWd1cmVfaW5wdXQiIDs7Ci0rICAqKSBhY19jb21zdWI9IDs7Ci0gICBlc2FjCi0gCi0tICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0tICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUKLS1lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRhY19maWxlIiA+JjY7fQotLSAgICBybSAtZiAiJGFjX2ZpbGUiCi0tICBmaQotLSAgIyBMZXQncyBzdGlsbCBwcmV0ZW5kIGl0IGlzIGBjb25maWd1cmUnIHdoaWNoIGluc3RhbnRpYXRlcyAoaS5lLiwgZG9uJ3QKLS0gICMgdXNlICRhc19tZSksIHBlb3BsZSB3b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoKLS0gICMgICAgLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYnkgY29uZmlnLnN0YXR1cy4gICovCi0tICBpZiB0ZXN0IHgiJGFjX2ZpbGUiID0geC07IHRoZW4KLS0gICAgY29uZmlndXJlX2lucHV0PQotLSAgZWxzZQotLSAgICBjb25maWd1cmVfaW5wdXQ9IiRhY19maWxlLiAgIgotLSAgZmkKLS0gIGNvbmZpZ3VyZV9pbnB1dD0kY29uZmlndXJlX2lucHV0IkdlbmVyYXRlZCBmcm9tIGBlY2hvICRhY19maWxlX2luIHwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VkICdzLC4qLywsJ2AgYnkgY29uZmlndXJlLiIKLSsgIGFjX2ZpbGVfaW5wdXRzPWBlY2hvICRhY19maWxlX2lufHNlZCAtZSAicyVeJSRhY19naXZlbl9zcmNkaXIvJSIgLWUgInMlOiUgJGFjX2dpdmVuX3NyY2Rpci8lZyJgCi0rICBzZWQgLWUgIiRhY19jb21zdWIKLStzJUBjb25maWd1cmVfaW5wdXRAJSRjb25maWd1cmVfaW5wdXQlZwotK3MlQHNyY2RpckAlJHNyY2RpciVnCi0rcyVAdG9wX3NyY2RpckAlJHRvcF9zcmNkaXIlZwotK3MlQElOU1RBTExAJSRJTlNUQUxMJWcKLSsiICRhY19maWxlX2lucHV0cyB8IChldmFsICIkYWNfc2VkX2NtZHMiKSA+ICRhY19maWxlCi0rZmk7IGRvbmUKLStybSAtZiBjb25mdGVzdC5zKgotIAotLSAgIyBGaXJzdCBsb29rIGZvciB0aGUgaW5wdXQgZmlsZXMgaW4gdGhlIGJ1aWxkIHRyZWUsIG90aGVyd2lzZSBpbiB0aGUKLS0gICMgc3JjIHRyZWUuCi0tICBhY19maWxlX2lucHV0cz1gSUZTPToKLS0gICAgZm9yIGYgaW4gJGFjX2ZpbGVfaW47IGRvCi0tICAgICAgY2FzZSAkZiBpbgotLSAgICAgIC0pIGVjaG8gJHRtcC9zdGRpbiA7OwotLSAgICAgIFtcXC8kXSopCi0tICAgICAgICAgIyBBYnNvbHV0ZSAoY2FuJ3QgYmUgRE9TLXN0eWxlLCBhcyBJRlM9OikKLS0gICAgICAgICB0ZXN0IC1mICIkZiIgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mNQotLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQotLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotLSAgICAgICAgIGVjaG8gJGY7OwotLSAgICAgICopICMgUmVsYXRpdmUKLS0gICAgICAgICBpZiB0ZXN0IC1mICIkZiI7IHRoZW4KLS0gICAgICAgICAgICMgQnVpbGQgdHJlZQotLSAgICAgICAgICAgZWNobyAkZgotLSAgICAgICAgIGVsaWYgdGVzdCAtZiAiJHNyY2Rpci8kZiI7IHRoZW4KLS0gICAgICAgICAgICMgU291cmNlIHRyZWUKLS0gICAgICAgICAgIGVjaG8gJHNyY2Rpci8kZgotLSAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICMgL2Rldi9udWxsIHRyZWUKLS0gICAgICAgICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKLS1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KLS0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLS0gICAgICAgICBmaTs7Ci0tICAgICAgZXNhYwotLSAgICBkb25lYCB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KLS1fQUNFT0YKLS1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgotLSAgc2VkICIkYWNfdnBzdWIKLS0kZXh0cmFzdWIKLS1fQUNFT0YKLS1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLS06dAotLS9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWIKLS1zLEBjb25maWd1cmVfaW5wdXRALCRjb25maWd1cmVfaW5wdXQsO3QgdAotLXMsQHNyY2RpckAsJGFjX3NyY2Rpciw7dCB0Ci0tcyxAYWJzX3NyY2RpckAsJGFjX2Fic19zcmNkaXIsO3QgdAotLXMsQHRvcF9zcmNkaXJALCRhY190b3Bfc3JjZGlyLDt0IHQKLS1zLEBhYnNfdG9wX3NyY2RpckAsJGFjX2Fic190b3Bfc3JjZGlyLDt0IHQKLS1zLEBidWlsZGRpckAsJGFjX2J1aWxkZGlyLDt0IHQKLS1zLEBhYnNfYnVpbGRkaXJALCRhY19hYnNfYnVpbGRkaXIsO3QgdAotLXMsQHRvcF9idWlsZGRpckAsJGFjX3RvcF9idWlsZGRpciw7dCB0Ci0tcyxAYWJzX3RvcF9idWlsZGRpckAsJGFjX2Fic190b3BfYnVpbGRkaXIsO3QgdAotLXMsQElOU1RBTExALCRhY19JTlNUQUxMLDt0IHQKLS0iICRhY19maWxlX2lucHV0cyB8IChldmFsICIkYWNfc2VkX2NtZHMiKSA+JHRtcC9vdXQKLS0gIHJtIC1mICR0bXAvc3RkaW4KLS0gIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KLS0gICAgbXYgJHRtcC9vdXQgJGFjX2ZpbGUKLS0gIGVsc2UKLS0gICAgY2F0ICR0bXAvb3V0Ci0tICAgIHJtIC1mICR0bXAvb3V0Ci0tICBmaQotK0VPRgotK2NhdCA+PiAkQ09ORklHX1NUQVRVUyA8PEVPRgotIAotLWRvbmUKLS1fQUNFT0YKLStFT0YKLStjYXQgPj4gJENPTkZJR19TVEFUVVMgPDxcRU9GCi0gCi0tY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0tCi0teyAoZXhpdCAwKTsgZXhpdCAwOyB9Ci0tX0FDRU9GCi0rZXhpdCAwCi0rRU9GCi0gY2htb2QgK3ggJENPTkZJR19TVEFUVVMKLS1hY19jbGVhbl9maWxlcz0kYWNfY2xlYW5fZmlsZXNfc2F2ZQotK3JtIC1mciBjb25mZGVmcyogJGFjX2NsZWFuX2ZpbGVzCi0rdGVzdCAiJG5vX2NyZWF0ZSIgPSB5ZXMgfHwgJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0gJENPTkZJR19TVEFUVVMgfHwgZXhpdCAxCi0gCi0tCi0tIyBjb25maWd1cmUgaXMgd3JpdGluZyB0byBjb25maWcubG9nLCBhbmQgdGhlbiBjYWxscyBjb25maWcuc3RhdHVzLgotLSMgY29uZmlnLnN0YXR1cyBkb2VzIGl0cyBvd24gcmVkaXJlY3Rpb24sIGFwcGVuZGluZyB0byBjb25maWcubG9nLgotLSMgVW5mb3J0dW5hdGVseSwgb24gRE9TIHRoaXMgZmFpbHMsIGFzIGNvbmZpZy5sb2cgaXMgc3RpbGwga2VwdCBvcGVuCi0tIyBieSBjb25maWd1cmUsIHNvIGNvbmZpZy5zdGF0dXMgd29uJ3QgYmUgYWJsZSB0byB3cml0ZSB0byBpdDsgaXRzCi0tIyBvdXRwdXQgaXMgc2ltcGx5IGRpc2NhcmRlZC4gIFNvIHdlIGV4ZWMgdGhlIEZEIHRvIC9kZXYvbnVsbCwKLS0jIGVmZmVjdGl2ZWx5IGNsb3NpbmcgY29uZmlnLmxvZywgc28gaXQgY2FuIGJlIHByb3Blcmx5IChyZSlvcGVuZWQgYW5kCi0tIyBhcHBlbmRlZCB0byBieSBjb25maWcuc3RhdHVzLiAgV2hlbiBjb21pbmcgYmFjayB0byBjb25maWd1cmUsIHdlCi0tIyBuZWVkIHRvIG1ha2UgdGhlIEZEIGF2YWlsYWJsZSBhZ2Fpbi4KLS1pZiB0ZXN0ICIkbm9fY3JlYXRlIiAhPSB5ZXM7IHRoZW4KLS0gIGFjX2NzX3N1Y2Nlc3M9OgotLSAgYWNfY29uZmlnX3N0YXR1c19hcmdzPQotLSAgdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYKLS0gICAgYWNfY29uZmlnX3N0YXR1c19hcmdzPSIkYWNfY29uZmlnX3N0YXR1c19hcmdzIC0tcXVpZXQiCi0tICBleGVjIDU+L2Rldi9udWxsCi0tICAkU0hFTEwgJENPTkZJR19TVEFUVVMgJGFjX2NvbmZpZ19zdGF0dXNfYXJncyB8fCBhY19jc19zdWNjZXNzPWZhbHNlCi0tICBleGVjIDU+PmNvbmZpZy5sb2cKLS0gICMgVXNlIHx8LCBub3QgJiYsIHRvIGF2b2lkIGV4aXRpbmcgZnJvbSB0aGUgaWYgd2l0aCAkPyA9IDEsIHdoaWNoCi0tICAjIHdvdWxkIG1ha2UgY29uZmlndXJlIGZhaWwgaWYgdGhpcyBpcyB0aGUgbGFzdCBpbnN0cnVjdGlvbi4KLS0gICRhY19jc19zdWNjZXNzIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotLWZpCi0tCi1JbmRleDogY29uZmlndXJlLmluCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2UvY29uZmlndXJlLmluCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiA3KQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL2NvbmZpZ3VyZS5pbgkoLi4uL3JlbGVhc2UtMS4yKQkocmV2aXNpb24gNykKLUBAIC0yMDYsMTAgKzIwNiwxMCBAQAotIEFDX0NIRUNLX0hFQURFUihzeXMvYXVkaW9pby5oLAotICAgICAgICAgICAgICAgW0FVRElPRFJJVkVSPSJzdW4iCi0gICAgICAgICAgICAgICAgQVVESU9ERUZTPS1EQ1NUX0FVRElPX1NVTk9TXSkKLS1kbmwgQUNfQ0hFQ0tfSEVBREVSKHN5cy9hc291bmRsaWIuaCwKLS1kbmwgICAgICAgICAgICAgIFtBVURJT0RSSVZFUj0iYWxzYSIKLS1kbmwJICAgICAgIEFVRElPREVGUz0tRENTVF9BVURJT19BTFNBCi0tZG5sICAgICAgICAgICAgICAgQVVESU9MSUJTPS1sYXNvdW5kXSkKLSsgQUNfQ0hFQ0tfSEVBREVSKGFsc2EvYXNvdW5kbGliLmgsCi0rICAgICAgICAgICAgICBbQVVESU9EUklWRVI9ImFsc2EiCi0rCSAgICAgICBBVURJT0RFRlM9LURDU1RfQVVESU9fQUxTQQotKyAgICAgICAgICAgICAgIEFVRElPTElCUz0tbGFzb3VuZF0pCi0gQUNfQ0hFQ0tfSEVBREVSKG1tc3lzdGVtLmgsCi0gCSAgICAgIFtBVURJT0RSSVZFUj0id2luY2UiCi0gCSAgICAgICBBVURJT0RFRlM9LURDU1RfQVVESU9fV0lOQ0UKLUluZGV4OiBzcmMvaHJnL01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2Uvc3JjL2hyZy9NYWtlZmlsZQkoLi4uL2ZsaXRlLTEuMy1vcmlnKQkocmV2aXNpb24gNykKLSsrKyBmbGl0ZS0xLjMtcmVsZWFzZS9zcmMvaHJnL01ha2VmaWxlCSguLi4vcmVsZWFzZS0xLjIpCShyZXZpc2lvbiA3KQotQEAgLTM5LDkgKzM5LDE0IEBACi0gQlVJTERfRElSUyA9IAotIEFMTF9ESVJTPSAKLSBIID0gCi0raW5jbHVkZSAkKFRPUCkvY29uZmlnL2NvbmZpZwotIFNSQ1MgPSBjc3RfdXR0ZXJhbmNlLmMgY3N0X3JlbGF0aW9uLmMgY3N0X2l0ZW0uYyBjc3RfZmZlYXR1cmUuYyBcCi0gICAgICAgIGNzdF9yZWxfaW8uYwotLU9CSlMgPSAkKFNSQ1M6LmM9Lm8pCi0raWZkZWYgU0hGTEFHUwotK09CSlMgOj0gJChTUkNTOi5jPS5vcykKLStlbHNlCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm8pCi0rZW5kaWYKLSBGSUxFUyA9IE1ha2VmaWxlICQoSCkgJChTUkNTKQotIExJQk5BTUUgPSBmbGl0ZQotIAotSW5kZXg6IHNyYy91dGlscy9NYWtlZmlsZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy91dGlscy9NYWtlZmlsZQkoLi4uL2ZsaXRlLTEuMy1vcmlnKQkocmV2aXNpb24gNykKLSsrKyBmbGl0ZS0xLjMtcmVsZWFzZS9zcmMvdXRpbHMvTWFrZWZpbGUJKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtNDQsOCArNDQsMTMgQEAKLSAgICAgICAgY3N0X3Rva2Vuc3RyZWFtLmMgY3N0X3ZhbC5jIGNzdF9mZWF0dXJlcy5jIFwKLSAgICAgICAgY3N0X2VuZGlhbi5jIGNzdF9zb2NrZXQuYyBjc3RfdmFsX2NvbnN0LmMgXAotICAgICAgICBjc3RfdmFsX3VzZXIuYyBjc3RfYXJncy5jIAotK2lmZGVmIFNIRkxBR1MKLStPQkpTIDo9ICQoU1JDUzouYz0ub3MpICQoTU1BUFRZUEU6JT1jc3RfbW1hcF8lLm9zKSBcCi0rICAgICAgICAkKFNURElPVFlQRTolPWNzdF9maWxlXyUub3MpCi0rZWxzZQotIE9CSlMgOj0gJChTUkNTOi5jPS5vKSAkKE1NQVBUWVBFOiU9Y3N0X21tYXBfJS5vKSBcCi0gICAgICAgICAkKFNURElPVFlQRTolPWNzdF9maWxlXyUubykKLStlbmRpZgotIEZJTEVTID0gTWFrZWZpbGUgJChIKSAkKFNSQ1MpIFwKLSAJY3N0X21tYXBfcG9zaXguYyBjc3RfbW1hcF93aW4zMi5jIGNzdF9tbWFwX25vbmUuYyBcCi0gCWNzdF9maWxlX3N0ZGlvLmMgY3N0X2ZpbGVfd2luY2UuYyBjc3RfZmlsZV9wYWxtb3MuYwotSW5kZXg6IHNyYy9hdWRpby9hdV9hbHNhLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBmbGl0ZS0xLjMtcmVsZWFzZS9zcmMvYXVkaW8vYXVfYWxzYS5jCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiAwKQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy9hdWRpby9hdV9hbHNhLmMJKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtMCwwICsxLDMxMSBAQAotKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2UgVGVjaG5vbG9naWVzIEluc3RpdHV0ZSAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICAgICAgICAgICAgICAgICAgICAgQ2FybmVnaWUgTWVsbG9uIFVuaXZlcnNpdHkgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICAgICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICAgICAgICAgICAgICAgICAgICAgICAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gdXNlIGFuZCBkaXN0cmlidXRlICAqLwotKy8qICB0aGlzIHNvZnR3YXJlIGFuZCBpdHMgZG9jdW1lbnRhdGlvbiB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgICAqLwotKy8qICB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsICAqLwotKy8qICBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhpcyB3b3JrLCBhbmQgdG8gICAgICAqLwotKy8qICBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoaXMgd29yayBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gICAqLwotKy8qICB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICAgMS4gVGhlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiAgICAqLwotKy8qICAgICAgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICAgMi4gQW55IG1vZGlmaWNhdGlvbnMgbXVzdCBiZSBjbGVhcmx5IG1hcmtlZCBhcyBzdWNoLiAgICAgICAgICAgICAgICAqLwotKy8qICAgMy4gT3JpZ2luYWwgYXV0aG9ycycgbmFtZXMgYXJlIG5vdCBkZWxldGVkLiAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICAgNC4gVGhlIGF1dGhvcnMnIG5hbWVzIGFyZSBub3QgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgICAqLwotKy8qICAgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuICAgICAgICAqLwotKy8qICAgICAgcGVybWlzc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICBDQVJORUdJRSBNRUxMT04gVU5JVkVSU0lUWSBBTkQgVEhFIENPTlRSSUJVVE9SUyBUTyBUSElTIFdPUksgICAgICAgICAqLwotKy8qICBESVNDTEFJTSBBTEwgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLCBJTkNMVURJTkcgICAgICAqLwotKy8qICBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUywgSU4gTk8gRVZFTlQgICAqLwotKy8qICBTSEFMTCBDQVJORUdJRSBNRUxMT04gVU5JVkVSU0lUWSBOT1IgVEhFIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgICAgICAqLwotKy8qICBGT1IgQU5ZIFNQRUNJQUwsIElORElSRUNUIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyAgICAqLwotKy8qICBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gICAqLwotKy8qICBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCAgICAgICAgICAqLwotKy8qICBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiAgICAgICAqLwotKy8qICBUSElTIFNPRlRXQVJFLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwotKy8qICAgICAgICAgICAgIEF1dGhvcjogIEx1a2FzIExvZWhyZXIgKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICAgICAgICAgICAgICAgRGF0ZTogIEphbnVhcnkgMjAwNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICBOYXRpdmUgYWNjZXNzIHRvIGFsc2EgYXVkaW8gZGV2aWNlcyBvbiBMaW51eCAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qICBUZXN0ZWQgd2l0aCBsaWJhc291bmQgdmVyc2lvbiAxLjAuMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotKwotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaW5jbHVkZSA8dW5pc3RkLmg+Ci0rI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotKyNpbmNsdWRlIDxhc3NlcnQuaD4KLSsjaW5jbHVkZSA8ZXJybm8uaD4KLSsKLSsjaW5jbHVkZSAiY3N0X3N0cmluZy5oIgotKyNpbmNsdWRlICJjc3Rfd2F2ZS5oIgotKyNpbmNsdWRlICJjc3RfYXVkaW8uaCIKLSsKLSsjaW5jbHVkZSA8YWxzYS9hc291bmRsaWIuaD4KLSsKLSsKLSsvKnN0YXRpYyBjaGFyICpwY21fZGV2X25hbWUgPSAiaHc6MCwwIjsgKi8KLStzdGF0aWMgY2hhciAqcGNtX2Rldl9uYW1lID0iZGVmYXVsdCI7Ci0rCi0rc3RhdGljIGlubGluZSB2b2lkIHByaW50X3BjbV9zdGF0ZShzbmRfcGNtX3QgKmhhbmRsZSwgY2hhciAqbXNnKQotK3sKLSsgIGZwcmludGYoc3RkZXJyLCAiUENNIHN0YXRlIGF0ICVzID0gJXNcbiIsIG1zZywKLSsJCSAgc25kX3BjbV9zdGF0ZV9uYW1lKHNuZF9wY21fc3RhdGUoaGFuZGxlKSkpOwotK30KLSsKLStjc3RfYXVkaW9kZXYgKmF1ZGlvX29wZW5fYWxzYShpbnQgc3BzLCBpbnQgY2hhbm5lbHMsIGNzdF9hdWRpb2ZtdCBmbXQpCi0rewotKyAgY3N0X2F1ZGlvZGV2ICphZDsKLSsgIHVuc2lnbmVkIAlpbnQgcmVhbF9yYXRlOwotKyAgaW50IGVycjsKLSsKLSsgIC8qIGFsc2Egc3BlY2lmaWMgc3R1ZmYgKi8KLSsgIHNuZF9wY21fdCAqcGNtX2hhbmRsZTsgICAgICAgICAgCi0rICBzbmRfcGNtX3N0cmVhbV90IHN0cmVhbSA9IFNORF9QQ01fU1RSRUFNX1BMQVlCQUNLOwotKyAgc25kX3BjbV9od19wYXJhbXNfdCAqaHdwYXJhbXM7Ci0rICBzbmRfcGNtX2Zvcm1hdF90IGZvcm1hdDsKLSsgIHNuZF9wY21fYWNjZXNzX3QgYWNjZXNzID0gU05EX1BDTV9BQ0NFU1NfUldfSU5URVJMRUFWRUQ7Ci0rCi0rICAvKiBBbGxvY2F0ZSB0aGUgc25kX3BjbV9od19wYXJhbXNfdCBzdHJ1Y3R1cmUgb24gdGhlIHN0YWNrLiAqLwotKyAgc25kX3BjbV9od19wYXJhbXNfYWxsb2NhKCZod3BhcmFtcyk7Ci0rCi0rICAvKiBPcGVuIHBjbSBkZXZpY2UgKi8KLSsgIGVyciA9IHNuZF9wY21fb3BlbigmcGNtX2hhbmRsZSwgcGNtX2Rldl9uYW1lLCBzdHJlYW0sIDApOwotKyAgaWYgKGVyciA8IDApIAotKyAgewotKwljc3RfZXJybXNnKCJhdWRpb19vcGVuX2Fsc2E6IGZhaWxlZCB0byBvcGVuIGF1ZGlvIGRldmljZSAlcy4gJXNcbiIsCi0rCQkJICAgcGNtX2Rldl9uYW1lLCBzbmRfc3RyZXJyb3IoZXJyKSk7Ci0rCXJldHVybiBOVUxMOwotKyAgfQotKwotKyAgLyogSW5pdCBod3BhcmFtcyB3aXRoIGZ1bGwgY29uZmlndXJhdGlvbiBzcGFjZSAqLwotKyAgZXJyID0gc25kX3BjbV9od19wYXJhbXNfYW55KHBjbV9oYW5kbGUsIGh3cGFyYW1zKTsKLSsgIGlmIChlcnIgPCAwKSAKLSsgIHsKLSsJc25kX3BjbV9jbG9zZShwY21faGFuZGxlKTsKLSsJY3N0X2Vycm1zZygiYXVkaW9fb3Blbl9hbHNhOiBmYWlsZWQgdG8gZ2V0IGhhcmR3YXJlIHBhcmFtZXRlcnMgZnJvbSBhdWRpbyBkZXZpY2UuICVzXG4iLCBzbmRfc3RyZXJyb3IoZXJyKSk7Ci0rCXJldHVybiBOVUxMOwotKyAgfQotKwotKyAgLyogU2V0IGFjY2VzcyBtb2RlICovCi0rICBlcnIgPSBzbmRfcGNtX2h3X3BhcmFtc19zZXRfYWNjZXNzKHBjbV9oYW5kbGUsIGh3cGFyYW1zLCBhY2Nlc3MpOwotKyAgaWYgKGVyciA8IDApIAotKyAgewotKwlzbmRfcGNtX2Nsb3NlKHBjbV9oYW5kbGUpOwotKwljc3RfZXJybXNnKCJhdWRpb19vcGVuX2Fsc2E6IGZhaWxlZCB0byBzZXQgYWNjZXNzIG1vZGUuICVzLlxuIiwgc25kX3N0cmVycm9yKGVycikpOwotKwlyZXR1cm4gTlVMTDsKLSsgIH0KLSsKLSsgIC8qIERldGVybWluZSBtYXRjaGluZyBhbHNhIHNhbXBsZSBmb3JtYXQgKi8KLSsgIC8qIFRoaXMgY291bGQgYmUgaW1wbGVtZW50ZWQgaW4gYSBtb3JlICovCi0rICAvKiBmbGV4aWJsZSB3YXkgKGJ5dGUgb3JkZXIgY29udmVyc2lvbikuICovCi0rICBzd2l0Y2ggKGZtdCkKLSsgIHsKLSsgIGNhc2UgQ1NUX0FVRElPX0xJTkVBUjE2OgotKwlpZiAoQ1NUX0xJVFRMRV9FTkRJQU4pCi0rCSAgZm9ybWF0ID0gU05EX1BDTV9GT1JNQVRfUzE2X0xFOwotKwllbHNlCi0rCSAgZm9ybWF0ID0gU05EX1BDTV9GT1JNQVRfUzE2X0JFOwotKwlicmVhazsKLSsgIGNhc2UgQ1NUX0FVRElPX0xJTkVBUjg6Ci0rCWZvcm1hdCA9IFNORF9QQ01fRk9STUFUX1U4OwotKwlicmVhazsKLSsgIGNhc2UgQ1NUX0FVRElPX01VTEFXOgotKwlmb3JtYXQgPSBTTkRfUENNX0ZPUk1BVF9NVV9MQVc7Ci0rCWJyZWFrOwotKyAgZGVmYXVsdDoKLSsJc25kX3BjbV9jbG9zZShwY21faGFuZGxlKTsKLSsJY3N0X2Vycm1zZygiYXVkaW9fb3Blbl9hbHNhOiBmYWlsZWQgdG8gZmluZCBzdWl0YWJsZSBmb3JtYXQuXG4iKTsKLSsJcmV0dXJuIE5VTEw7Ci0rCWJyZWFrOwotKyAgfQotKwotKyAgLyogU2V0IHNhbWJsZSBmb3JtYXQgKi8KLSsgIGVyciA9IHNuZF9wY21faHdfcGFyYW1zX3NldF9mb3JtYXQocGNtX2hhbmRsZSwgaHdwYXJhbXMsIGZvcm1hdCk7Ci0rICBpZiAoZXJyIDwwKSAKLSsgIHsKLSsJc25kX3BjbV9jbG9zZShwY21faGFuZGxlKTsKLSsJY3N0X2Vycm1zZygiYXVkaW9fb3Blbl9hbHNhOiBmYWlsZWQgdG8gc2V0IGZvcm1hdC4gJXMuXG4iLCBzbmRfc3RyZXJyb3IoZXJyKSk7Ci0rCXJldHVybiBOVUxMOwotKyAgfQotKwotKyAgLyogU2V0IHNhbXBsZSByYXRlIG5lYXIgdGhlIGRpc2lyZWQgcmF0ZSAqLwotKyAgcmVhbF9yYXRlID0gc3BzOwotKyAgZXJyID0gc25kX3BjbV9od19wYXJhbXNfc2V0X3JhdGVfbmVhcihwY21faGFuZGxlLCBod3BhcmFtcywgJnJlYWxfcmF0ZSwgMCk7Ci0rICBpZiAoZXJyIDwgMCkgICAKLSsgIHsKLSsJc25kX3BjbV9jbG9zZShwY21faGFuZGxlKTsKLSsJY3N0X2Vycm1zZygiYXVkaW9fb3Blbl9hbHNhOiBmYWlsZWQgdG8gc2V0IHNhbXBsZSByYXRlIG5lYXIgJWQuICVzLlxuIiwgc3BzLCBzbmRfc3RyZXJyb3IoZXJyKSk7Ci0rCXJldHVybiBOVUxMOwotKyAgfQotKyAgLypGSVhNRTogIFRoaXMgaXMgcHJvYmFibHkgdG9vIHN0cmljdCAqLwotKyAgYXNzZXJ0KHNwcyA9PSByZWFsX3JhdGUpOwotKwotKyAgLyogU2V0IG51bWJlciBvZiBjaGFubmVscyAqLwotKyAgYXNzZXJ0KGNoYW5uZWxzID4wKTsKLSsgIGVyciA9IHNuZF9wY21faHdfcGFyYW1zX3NldF9jaGFubmVscyhwY21faGFuZGxlLCBod3BhcmFtcywgY2hhbm5lbHMpOwotKyAgaWYgKGVyciA8IDApIAotKyAgewotKwlzbmRfcGNtX2Nsb3NlKHBjbV9oYW5kbGUpOwotKwljc3RfZXJybXNnKCJhdWRpb19vcGVuX2Fsc2E6IGZhaWxlZCB0byBzZXQgbnVtYmVyIG9mIGNoYW5uZWxzIHRvICVkLiAlcy5cbiIsIGNoYW5uZWxzLCBzbmRfc3RyZXJyb3IoZXJyKSk7Ci0rCXJldHVybiBOVUxMOwotKyAgfQotKwotKyAgLyogQ29tbWl0IGhhcmR3YXJlIHBhcmFtZXRlcnMgKi8KLSsgIGVyciA9IHNuZF9wY21faHdfcGFyYW1zKHBjbV9oYW5kbGUsIGh3cGFyYW1zKTsKLSsgIGlmIChlcnIgPCAwKSAKLSsgIHsKLSsJc25kX3BjbV9jbG9zZShwY21faGFuZGxlKTsKLSsJY3N0X2Vycm1zZygiYXVkaW9fb3Blbl9hbHNhOiBmYWlsZWQgdG8gc2V0IGh3IHBhcmFtZXRlcnMuICVzLlxuIiwgc25kX3N0cmVycm9yKGVycikpOwotKwlyZXR1cm4gTlVMTDsKLSsgIH0KLSsKLSsgIC8qIE1ha2Ugc3VyZSB0aGUgZGV2aWNlIGlzIHJlYWR5IHRvIGFjY2VwdCBkYXRhICovCi0rICBhc3NlcnQoc25kX3BjbV9zdGF0ZShwY21faGFuZGxlKSA9PSBTTkRfUENNX1NUQVRFX1BSRVBBUkVEKTsKLSsKLSsgIC8qIFdyaXRlIGhhcmR3YXJlIHBhcmFtZXRlcnMgdG8gZmxpdGUgYXVkaW8gZGV2aWNlIGRhdGEgc3RydWN0dXJlICovCi0rICBhZCA9IGNzdF9hbGxvYyhjc3RfYXVkaW9kZXYsIDEpOwotKyAgYXNzZXJ0KGFkICE9IE5VTEwpOwotKyAgYWQtPnJlYWxfc3BzID0gYWQtPnNwcyA9IHNwczsKLSsgIGFkLT5yZWFsX2NoYW5uZWxzID0gYWQtPmNoYW5uZWxzID0gY2hhbm5lbHM7Ci0rICBhZC0+cmVhbF9mbXQgPSBhZC0+Zm10ID0gZm10OwotKyAgYWQtPnBsYXRmb3JtX2RhdGEgPSAodm9pZCAqKSBwY21faGFuZGxlOwotKwotKyAgcmV0dXJuIGFkOwotK30KLSsKLStpbnQgYXVkaW9fY2xvc2VfYWxzYShjc3RfYXVkaW9kZXYgKmFkKQotK3sKLSsgIGludCByZXN1bHQ7Ci0rICBzbmRfcGNtX3QgKnBjbV9oYW5kbGU7Ci0rCi0rICBpZiAoYWQgPT0gTlVMTCkKLSsJcmV0dXJuIDA7Ci0rCi0rICBwY21faGFuZGxlID0gKHNuZF9wY21fdCAqKSBhZC0+cGxhdGZvcm1fZGF0YTsKLSsgIHJlc3VsdCA9IHNuZF9wY21fY2xvc2UocGNtX2hhbmRsZSk7Ci0rICBpZiAocmVzdWx0IDwgMCkKLSsgIHsKLSsJY3N0X2Vycm1zZygiYXVkaW9fY2xvc2VfYWxzYTogRXJyb3I6ICVzLlxuIiwgc25kX3N0cmVycm9yKHJlc3VsdCkpOwotKyAgfQotKyAgY3N0X2ZyZWUoYWQpOwotKyAgcmV0dXJuIHJlc3VsdDsKLSt9Ci0rCi0rLyogUmV0dXJucyB6ZXJvIGlmIHJlY292ZXJ5IHdhcyBzdWNjZXNzZnVsLiAqLwotK3N0YXRpYyBpbnQgcmVjb3Zlcl9mcm9tX2Vycm9yKHNuZF9wY21fdCAqcGNtX2hhbmRsZSwgc3NpemVfdCByZXMpCi0rewotKyAgaWYgKHJlcyA9PSAtRVBJUEUpIC8qIHhydW4gKi8KLSsgIHsKLSsJcmVzID0gc25kX3BjbV9wcmVwYXJlKHBjbV9oYW5kbGUpOwotKwlpZiAocmVzIDwgMCkgCi0rCXsKLSsJICAvKiBGYWlsZWQgdG8gcmVjb3ZlciBmcm9tIHhydW4gKi8KLSsJICBjc3RfZXJybXNnKCJyZWNvdmVyX2Zyb21fd3JpdGVfZXJyb3I6IGZhaWxlZCB0byByZWNvdmVyIGZyb20geHJ1bi4gJXNcbi4iLCBzbmRfc3RyZXJyb3IocmVzKSk7Ci0rCSAgcmV0dXJuIHJlczsKLSsJfQotKyAgfSAKLSsgIGVsc2UgaWYgKHJlcyA9PSAtRVNUUlBJUEUpIC8qIFN1c3BlbmQgKi8KLSsgIHsKLSsJd2hpbGUgKChyZXMgPSBzbmRfcGNtX3Jlc3VtZShwY21faGFuZGxlKSkgPT0gLUVBR0FJTikgCi0rCXsKLSsJICBzbmRfcGNtX3dhaXQocGNtX2hhbmRsZSwgMTAwMCk7Ci0rCX0KLSsJaWYgKHJlcyA8IDApIAotKwl7Ci0rCSAgcmVzID0gc25kX3BjbV9wcmVwYXJlKHBjbV9oYW5kbGUpOwotKwkgIGlmIChyZXMgPDApIAotKwkgIHsKLSsJCS8qIFJlc3VtZSBmYWlsZWQgKi8KLSsJCWNzdF9lcnJtc2coImF1ZGlvX3JlY292ZXJfZnJvbV93cml0ZV9lcnJvcjogZmFpbGVkIHRvIHJlc3VtZSBhZnRlciBzdXNwZW5kLiAlc1xuLiIsIHNuZF9zdHJlcnJvcihyZXMpKTsKLSsJCXJldHVybiByZXM7Ci0rCSAgfQotKwl9Ci0rICB9IAotKyAgZWxzZSBpZiAocmVzIDwgMCkgCi0rICB7Ci0rCS8qIFVua25vd24gZmFpbHVyZSAqLwotKwljc3RfZXJybXNnKCJhdWRpb19yZWNvdmVyX2Zyb21fd3JpdGVfZXJyb3I6ICVzLlxuIiwgc25kX3N0cmVycm9yKHJlcykpOwotKwlyZXR1cm4gcmVzOwotKyAgfQotKyAgcmV0dXJuIDA7Ci0rfQotKwotK2ludCBhdWRpb193cml0ZV9hbHNhKGNzdF9hdWRpb2RldiAqYWQsIHZvaWQgKnNhbXBsZXMsIGludCBudW1fYnl0ZXMpCi0rewotKyAgc2l6ZV90IGZyYW1lX3NpemU7Ci0rICBzc2l6ZV90IG51bV9mcmFtZXMsIHJlczsKLSsgIHNuZF9wY21fdCAqcGNtX2hhbmRsZTsKLSsgIGNoYXIgKmJ1ZiA9IChjaGFyICopIHNhbXBsZXM7Ci0rCi0rICAvKiBEZXRlcm1pbmUgZnJhbWUgc2l6ZSBpbiBieXRlcyAqLwotKyAgZnJhbWVfc2l6ZSAgPSBhdWRpb19icHMoYWQtPnJlYWxfZm10KSAqIGFkLT5yZWFsX2NoYW5uZWxzOwotKyAgLyogUmVxdWlyZSB0aGF0IG9ubHkgY29tcGxldGUgZnJhbWVzIGFyZSBoYW5kZWQgaW4gKi8KLSsgIGFzc2VydCgobnVtX2J5dGVzICUgZnJhbWVfc2l6ZSkgPT0gMCk7Ci0rICBudW1fZnJhbWVzID0gbnVtX2J5dGVzIC8gZnJhbWVfc2l6ZTsKLSsgIHBjbV9oYW5kbGUgPSAoc25kX3BjbV90ICopIGFkLT5wbGF0Zm9ybV9kYXRhOwotKwotKyAgd2hpbGUgKG51bV9mcmFtZXMgPiAwKSAKLSsgIHsKLSsJcmVzID0gc25kX3BjbV93cml0ZWkocGNtX2hhbmRsZSwgYnVmLCBudW1fZnJhbWVzKTsKLSsJaWYgKHJlcyAhPSBudW1fZnJhbWVzKSAKLSsJewotKwkgIGlmIChyZXMgPT0gLUVBR0FJTiB8fCAocmVzID4gMCAmJiByZXMgPCBudW1fZnJhbWVzKSkgCi0rCSAgewotKwkJc25kX3BjbV93YWl0KHBjbV9oYW5kbGUsIDEwMCk7Ci0rCSAgfQotKwkgIGVsc2UgaWYgKHJlY292ZXJfZnJvbV9lcnJvcihwY21faGFuZGxlLCByZXMpIDwgMCkgCi0rCSAgewotKwkJcmV0dXJuIC0xOwotKwkgIH0KLSsJfQotKwotKwlpZiAocmVzID4wKSAKLSsJewotKwkgIG51bV9mcmFtZXMgLT0gcmVzOwotKwkgIGJ1ZiArPSByZXMgKiBmcmFtZV9zaXplOwotKwl9Ci0rICB9Ci0rICByZXR1cm4gbnVtX2J5dGVzOwotK30KLSsKLStpbnQgYXVkaW9fZmx1c2hfYWxzYShjc3RfYXVkaW9kZXYgKmFkKQotK3sKLSsgIGludCByZXN1bHQ7Ci0rICByZXN1bHQgPSBzbmRfcGNtX2RyYWluKChzbmRfcGNtX3QgKikgYWQtPnBsYXRmb3JtX2RhdGEpOwotKyAgaWYgKHJlc3VsdCA8IDApCi0rICB7Ci0rCWNzdF9lcnJtc2coImF1ZGlvX2ZsdXNoX2Fsc2E6IEVycm9yOiAlcy5cbiIsIHNuZF9zdHJlcnJvcihyZXN1bHQpKTsKLSsgIH0KLSsJLyogUHJlcGFyZSBkZXZpY2UgZm9yIG1vcmUgZGF0YSAqLwotKyAgcmVzdWx0ID0gc25kX3BjbV9wcmVwYXJlKChzbmRfcGNtX3QgKikgYWQtPnBsYXRmb3JtX2RhdGEpOwotK2lmIChyZXN1bHQgPCAwKQotKyAgewotKwljc3RfZXJybXNnKCJhdWRpb19mbHVzaF9hbHNhOiBFcnJvcjogJXMuXG4iLCBzbmRfc3RyZXJyb3IocmVzdWx0KSk7Ci0rICB9Ci0rICByZXR1cm4gcmVzdWx0OwotK30KLSsKLStpbnQgYXVkaW9fZHJhaW5fYWxzYShjc3RfYXVkaW9kZXYgKmFkKQotK3sKLSsgIGludCByZXN1bHQ7Ci0rICByZXN1bHQgPSBzbmRfcGNtX2Ryb3AoKHNuZF9wY21fdCAqKSBhZC0+cGxhdGZvcm1fZGF0YSk7Ci0rICBpZiAocmVzdWx0IDwgMCkKLSsgIHsKLSsJY3N0X2Vycm1zZygiYXVkaW9fZHJhaW5fYWxzYTogRXJyb3I6ICVzLlxuIiwgc25kX3N0cmVycm9yKHJlc3VsdCkpOwotKyAgfQotKy8qIFByZXBhcmUgZGV2aWNlIGZvciBtb3JlIGRhdGEgKi8KLSsgIHJlc3VsdCA9IHNuZF9wY21fcHJlcGFyZSgoc25kX3BjbV90ICopIGFkLT5wbGF0Zm9ybV9kYXRhKTsKLStpZiAocmVzdWx0IDwgMCkKLSsgIHsKLSsJY3N0X2Vycm1zZygiYXVkaW9fZHJhaW5fYWxzYTogRXJyb3I6ICVzLlxuIiwgc25kX3N0cmVycm9yKHJlc3VsdCkpOwotKyAgfQotKyAgcmV0dXJuIHJlc3VsdDsKLSt9Ci1JbmRleDogc3JjL2F1ZGlvL01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2Uvc3JjL2F1ZGlvL01ha2VmaWxlCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiA3KQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy9hdWRpby9NYWtlZmlsZQkoLi4uL3JlbGVhc2UtMS4yKQkocmV2aXNpb24gNykKLUBAIC00Myw5ICs0MywxMyBAQAotIAotIEJBU0VTUkNTID0gYXVjbGllbnQuYyBhdXNlcnZlci5jIGF1ZGlvLmMgCi0gU1JDUyA9ICQoQkFTRVNSQ1MpICQoQVVESU9EUklWRVI6JT1hdV8lLmMpCi0tT0JKUyA9ICQoU1JDUzouYz0ubykKLStpZmRlZiBTSEZMQUdTCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm9zKQotK2Vsc2UKLStPQkpTIDo9ICQoU1JDUzouYz0ubykKLStlbmRpZgotIEZJTEVTID0gTWFrZWZpbGUgJChIKSAkKEJBU0VTUkNTKSBhdV9jb21tYW5kLmMgYXVfbm9uZS5jIFwKLS0JYXVfb3NzLmMgYXVfc3VuLmMgYXVfd2luY2UuYyBhdV9wYWxtb3MuYwotKwlhdV9vc3MuYyBhdV9zdW4uYyBhdV93aW5jZS5jIGF1X3BhbG1vcy5jIGF1X2Fsc2EuYwotIExJQk5BTUUgPSBmbGl0ZQotIAotIExPQ0FMX0lOQ0xVREVTID0gLUkuICQoQVVESU9ERUZTKQotSW5kZXg6IHNyYy9sZXhpY29uL01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2Uvc3JjL2xleGljb24vTWFrZWZpbGUJKC4uLi9mbGl0ZS0xLjMtb3JpZykJKHJldmlzaW9uIDcpCi0rKysgZmxpdGUtMS4zLXJlbGVhc2Uvc3JjL2xleGljb24vTWFrZWZpbGUJKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtMzgsOCArMzgsMTMgQEAKLSBESVJOQU1FPXNyYy9sZXhpY29uCi0gQlVJTERfRElSUyA9IAotIEFMTF9ESVJTPSAKLStpbmNsdWRlICQoVE9QKS9jb25maWcvY29uZmlnCi0gU1JDUyA9IGNzdF9sZXhpY29uLmMgY3N0X2x0cy5jIGNzdF9sdHNfcmV3cml0ZXMuYwotLU9CSlMgPSAkKFNSQ1M6LmM9Lm8pCi0raWZkZWYgU0hGTEFHUwotK09CSlMgOj0gJChTUkNTOi5jPS5vcykKLStlbHNlCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm8pCi0rZW5kaWYKLSBGSUxFUyA9IE1ha2VmaWxlICQoU1JDUykKLSBMSUJOQU1FID0gZmxpdGUKLSAKLUluZGV4OiBzcmMvc3ludGgvTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBmbGl0ZS0xLjMtcmVsZWFzZS9zcmMvc3ludGgvTWFrZWZpbGUJKC4uLi9mbGl0ZS0xLjMtb3JpZykJKHJldmlzaW9uIDcpCi0rKysgZmxpdGUtMS4zLXJlbGVhc2Uvc3JjL3N5bnRoL01ha2VmaWxlCSguLi4vcmVsZWFzZS0xLjIpCShyZXZpc2lvbiA3KQotQEAgLTM4LDkgKzM4LDE0IEBACi0gRElSTkFNRT1zcmMvc3ludGgKLSBCVUlMRF9ESVJTID0gCi0gQUxMX0RJUlM9IAotK2luY2x1ZGUgJChUT1ApL2NvbmZpZy9jb25maWcKLSBTUkNTID0gY3N0X3N5bnRoLmMgY3N0X3V0dF91dGlscy5jIGNzdF92b2ljZS5jIGNzdF9waG9uZXNldC5jIFwKLSAgICAgICAgZmxpdGUuYyAKLS1PQkpTID0gJChTUkNTOi5jPS5vKQotK2lmZGVmIFNIRkxBR1MKLStPQkpTIDo9ICQoU1JDUzouYz0ub3MpCi0rZWxzZQotK09CSlMgOj0gJChTUkNTOi5jPS5vKQotK2VuZGlmCi0gRklMRVMgPSBNYWtlZmlsZSAkKFNSQ1MpCi0gTElCTkFNRSA9IGZsaXRlCi0gCi1JbmRleDogc3JjL3NwZWVjaC9NYWtlZmlsZQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy9zcGVlY2gvTWFrZWZpbGUJKC4uLi9mbGl0ZS0xLjMtb3JpZykJKHJldmlzaW9uIDcpCi0rKysgZmxpdGUtMS4zLXJlbGVhc2Uvc3JjL3NwZWVjaC9NYWtlZmlsZQkoLi4uL3JlbGVhc2UtMS4yKQkocmV2aXNpb24gNykKLUBAIC0zOSw5ICszOSwxNCBAQAotIEJVSUxEX0RJUlMgPSAKLSBBTExfRElSUz0gCi0gSCA9IAotK2luY2x1ZGUgJChUT1ApL2NvbmZpZy9jb25maWcKLSBTUkNTID0gY3N0X3dhdmUuYyBjc3Rfd2F2ZV9pby5jIGNzdF90cmFjay5jIGNzdF90cmFja19pby5jIFwKLSAgICAgICAgY3N0X3dhdmVfdXRpbHMuYyBjc3RfbHBjcmVzLmMgcmF0ZWNvbnYuYwotLU9CSlMgPSAkKFNSQ1M6LmM9Lm8pCi0raWZkZWYgU0hGTEFHUwotK09CSlMgOj0gJChTUkNTOi5jPS5vcykKLStlbHNlCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm8pCi0rZW5kaWYKLSBGSUxFUyA9IE1ha2VmaWxlICQoSCkgJChTUkNTKQotIExJQk5BTUUgPSBmbGl0ZQotIAotSW5kZXg6IHNyYy93YXZlc3ludGgvTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBmbGl0ZS0xLjMtcmVsZWFzZS9zcmMvd2F2ZXN5bnRoL01ha2VmaWxlCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiA3KQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy93YXZlc3ludGgvTWFrZWZpbGUJKC4uLi9yZWxlYXNlLTEuMikJKHJldmlzaW9uIDcpCi1AQCAtMzgsOSArMzgsMTQgQEAKLSBESVJOQU1FPXNyYy93YXZlc3ludGgKLSBCVUlMRF9ESVJTID0gCi0gQUxMX0RJUlM9Ci0raW5jbHVkZSAkKFRPUCkvY29uZmlnL2NvbmZpZwotIFNSQ1MgPSBjc3RfdW5pdHMuYyBjc3Rfc2lncHIuYyBjc3RfY2x1bml0cy5jIGNzdF9kaXBob25lLmMgXAotICAgICAgICBjc3Rfc2lncHJGUC5jIGNzdF9zdHMuYyBjc3RfcmVmbHBjLmMKLS1PQkpTID0gJChTUkNTOi5jPS5vKQotK2lmZGVmIFNIRkxBR1MKLStPQkpTIDo9ICQoU1JDUzouYz0ub3MpCi0rZWxzZQotK09CSlMgOj0gJChTUkNTOi5jPS5vKQotK2VuZGlmCi0gTElCTkFNRSA9IGZsaXRlCi0gRklMRVMgPSBNYWtlZmlsZSAkKFNSQ1MpCi0gCi1JbmRleDogc3JjL3JlZ2V4L01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2Uvc3JjL3JlZ2V4L01ha2VmaWxlCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiA3KQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy9yZWdleC9NYWtlZmlsZQkoLi4uL3JlbGVhc2UtMS4yKQkocmV2aXNpb24gNykKLUBAIC00Miw4ICs0MiwxMyBAQAotIERJUk5BTUU9c3JjL3JlZ2V4Ci0gQlVJTERfRElSUyA9IAotIEFMTF9ESVJTPSAKLStpbmNsdWRlICQoVE9QKS9jb25maWcvY29uZmlnCi0gU1JDUyA9IGNzdF9yZWdleC5jIHJlZ2V4cC5jIHJlZ3N1Yi5jCi0tT0JKUyA9ICQoU1JDUzouYz0ubykKLStpZmRlZiBTSEZMQUdTCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm9zKQotK2Vsc2UKLStPQkpTIDo9ICQoU1JDUzouYz0ubykKLStlbmRpZgotIEZJTEVTID0gTWFrZWZpbGUgJChIKSAkKFNSQ1MpCi0gTElCTkFNRSA9IGZsaXRlCi0gCi1JbmRleDogc3JjL3N0YXRzL01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2Uvc3JjL3N0YXRzL01ha2VmaWxlCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiA3KQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL3NyYy9zdGF0cy9NYWtlZmlsZQkoLi4uL3JlbGVhc2UtMS4yKQkocmV2aXNpb24gNykKLUBAIC0zOSw4ICszOSwxMyBAQAotIEJVSUxEX0RJUlMgPSAKLSBBTExfRElSUz0gCi0gSCA9IAotK2luY2x1ZGUgJChUT1ApL2NvbmZpZy9jb25maWcKLSBTUkNTID0gY3N0X2NhcnQuYyBjc3Rfdml0ZXJiaS5jIGNzdF9zcy5jCi0tT0JKUyA9ICQoU1JDUzouYz0ubykKLStpZmRlZiBTSEZMQUdTCi0rT0JKUyA6PSAkKFNSQ1M6LmM9Lm9zKQotK2Vsc2UKLStPQkpTIDo9ICQoU1JDUzouYz0ubykKLStlbmRpZgotIEZJTEVTID0gTWFrZWZpbGUgJChIKSAkKFNSQ1MpCi0gTElCTkFNRSA9IGZsaXRlCi0gCi1JbmRleDogY29uZmlnL2NvbW1vbl9tYWtlX3J1bGVzCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZmxpdGUtMS4zLXJlbGVhc2UvY29uZmlnL2NvbW1vbl9tYWtlX3J1bGVzCSguLi4vZmxpdGUtMS4zLW9yaWcpCShyZXZpc2lvbiA3KQotKysrIGZsaXRlLTEuMy1yZWxlYXNlL2NvbmZpZy9jb21tb25fbWFrZV9ydWxlcwkoLi4uL3JlbGVhc2UtMS4yKQkocmV2aXNpb24gNykKLUBAIC03MywxMiArNzMsMTMgQEAKLSBpZmRlZiBTSEZMQUdTCi0gU09PQkpTID0gJChPQkpTOi5vPS5vcykKLSBGVUxMU0hPQkpTID0gJChTT09CSlM6JT0kKE9CSkRJUikvJSkKLS1pZmRlZiBMSUJOQU1FCi0tQUxMICs9ICQoT0JKRElSKS8uYnVpbGRfc28KLSsjaWZkZWYgTElCTkFNRQotKyNBTEwgKz0gJChPQkpESVIpLy5idWlsZF9zbwotKyNlbmRpZgotIGVuZGlmCi0tZW5kaWYKLSBpZmRlZiBMSUJOQU1FCi0gQUxMICs9ICQoT0JKRElSKS8uYnVpbGRfbGliCi0rQUxMICs9ICQoT0JKRElSKS8uYnVpbGRfc28KLSBlbmRpZgotICMgT25seSBkbyBzb21lIGRpcmVjdG9yaWVzIHdoZW4geW91IGFyZSBub3QgY3Jvc3MgY29tcGlsaW5nCi0gaWZlcSAoJChIT1NUX1BMQVRGT1JNKSwkKFRBUkdFVF9QTEFURk9STSkpCi1AQCAtMTE3LDE0ICsxMTgsMTcgQEAKLSAJQCB0b3VjaCAkKE9CSkRJUikvLmJ1aWxkX3NvCi0gCi0gIyBVc2VkIGluIHRoZSBsaWIvIGRpcmVjdG9yeSBhbmQgaW4gYnVpbGRpbmcgbmV3IHZvaWNlcwotLSQoT0JKRElSKS8lLnNvOiAlLnNoYXJlZC5hCi0rIyQoT0JKRElSKS8lLnNvOiAlLnNoYXJlZC5hCi0rJS5zbzogJS5zaGFyZWQuYQotIAlAIGVjaG8gbWFraW5nICRACi0gCUAgcm0gLXJmIHNoYXJlZF9vcyAmJiBta2RpciBzaGFyZWRfb3MKLSAJQCBybSAtZiAkQCAkKExJQkRJUikvJEAuJHtQUk9KRUNUX1ZFUlNJT059ICQoTElCRElSKS8kQC4ke1BST0pFQ1RfU0hMSUJfVkVSU0lPTn0gCi0gCUAgKGNkIHNoYXJlZF9vcyAmJiBhciB4IC4uLyQ8KQotIAlAIChjZCBzaGFyZWRfb3MgJiYgJChDQykgLXNoYXJlZCAtV2wsLXNvbmFtZSwkQC4ke1BST0pFQ1RfU0hMSUJfVkVSU0lPTn0gLW8gLi4vJEAuJHtQUk9KRUNUX1ZFUlNJT059ICoub3MpCi0tCUAgbG4gLXMgJChMSUJESVIpLyRALiR7UFJPSkVDVF9WRVJTSU9OfSAkKExJQkRJUikvJEAuJHtQUk9KRUNUX1NITElCX1ZFUlNJT059Ci0tCUAgbG4gLXMgJChMSUJESVIpLyRALiR7UFJPSkVDVF9TSExJQl9WRVJTSU9OfSAkKExJQkRJUikvJEAKLSsJI0AgbG4gLXMgJChMSUJESVIpLyRALiR7UFJPSkVDVF9WRVJTSU9OfSAkKExJQkRJUikvJEAuJHtQUk9KRUNUX1NITElCX1ZFUlNJT059Ci0rCSNAIGxuIC1zICQoTElCRElSKS8kQC4ke1BST0pFQ1RfU0hMSUJfVkVSU0lPTn0gJChMSUJESVIpLyRACi0rCUAgbG4gLXMgJEAuJHtQUk9KRUNUX1ZFUlNJT059ICRALiR7UFJPSkVDVF9TSExJQl9WRVJTSU9OfQotKwlAIGxuIC1zICRALiR7UFJPSkVDVF9TSExJQl9WRVJTSU9OfSAkQAotIAlAIHJtIC1yZiBzaGFyZWRfb3MKLSAKLSAkKE9CSkRJUikvLm1ha2VfYnVpbGRfZGlyczoKLUluZGV4OiBsaWIvTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBmbGl0ZS0xLjMtcmVsZWFzZS9saWIvTWFrZWZpbGUJKC4uLi9mbGl0ZS0xLjMtb3JpZykJKHJldmlzaW9uIDApCi0rKysgZmxpdGUtMS4zLXJlbGVhc2UvbGliL01ha2VmaWxlCSguLi4vcmVsZWFzZS0xLjIpCShyZXZpc2lvbiA3KQotQEAgLTAsMCArMSw3MCBAQAotKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotKyMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2UgVGVjaG5vbG9naWVzIEluc3RpdHV0ZSAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICAgICAgICAgICAgICAgICAgICAgQ2FybmVnaWUgTWVsbG9uIFVuaXZlcnNpdHkgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICAgICAgICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICAgICAgICAgICAgICAgICAgICAgICAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gdXNlIGFuZCBkaXN0cmlidXRlICAjIwotKyMjICB0aGlzIHNvZnR3YXJlIGFuZCBpdHMgZG9jdW1lbnRhdGlvbiB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgICAjIwotKyMjICB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsICAjIwotKyMjICBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhpcyB3b3JrLCBhbmQgdG8gICAgICAjIwotKyMjICBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoaXMgd29yayBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gICAjIwotKyMjICB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICAgMS4gVGhlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiAgICAjIwotKyMjICAgICAgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICAgMi4gQW55IG1vZGlmaWNhdGlvbnMgbXVzdCBiZSBjbGVhcmx5IG1hcmtlZCBhcyBzdWNoLiAgICAgICAgICAgICAgICAjIwotKyMjICAgMy4gT3JpZ2luYWwgYXV0aG9ycycgbmFtZXMgYXJlIG5vdCBkZWxldGVkLiAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICAgNC4gVGhlIGF1dGhvcnMnIG5hbWVzIGFyZSBub3QgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgICAjIwotKyMjICAgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuICAgICAgICAjIwotKyMjICAgICAgcGVybWlzc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICBDQVJORUdJRSBNRUxMT04gVU5JVkVSU0lUWSBBTkQgVEhFIENPTlRSSUJVVE9SUyBUTyBUSElTIFdPUksgICAgICAgICAjIwotKyMjICBESVNDTEFJTSBBTEwgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLCBJTkNMVURJTkcgICAgICAjIwotKyMjICBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUywgSU4gTk8gRVZFTlQgICAjIwotKyMjICBTSEFMTCBDQVJORUdJRSBNRUxMT04gVU5JVkVSU0lUWSBOT1IgVEhFIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgICAgICAjIwotKyMjICBGT1IgQU5ZIFNQRUNJQUwsIElORElSRUNUIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyAgICAjIwotKyMjICBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gICAjIwotKyMjICBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCAgICAgICAgICAjIwotKyMjICBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiAgICAgICAjIwotKyMjICBUSElTIFNPRlRXQVJFLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotKyMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICAgIEZMSVRFIGxpYnJhcmllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIwotKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotK1RPUD0uLgotK0RJUk5BTUU9bGliCi0rQlVJTERfRElSUyA9IAotK0FMTF9ESVJTPQotK0ZJTEVTID0gTWFrZWZpbGUKLStMSUJOQU1FUyA9IGZsaXRlIGZsaXRlX2NtdWxleCBmbGl0ZV91c2VuZ2xpc2ggXAotKyAgICAgICAgICAgZmxpdGVfY211X3VzX2thbCBmbGl0ZV9jbXVfdXNfa2FsMTYgZmxpdGVfY211X3RpbWVfYXdiCi0rCi0rU1RBVElDTElCUz0gJChMSUJOQU1FUzolPWxpYiUuYSkKLStTSEFSRURBUkxJQlM9ICQoTElCTkFNRVM6JT1saWIlLnNoYXJlZC5hKQotKyNTSEFSRURMSUJTID0gJChMSUJOQU1FUzolPWxpYiUuc28pCi0rU0hBUkVETElCUyA9ICQoU0hBUkVEQVJMSUJTOiUuc2hhcmVkLmE9JS5zbykKLStWRVJTSU9OU0hBUkVETElCUyA9ICQoU0hBUkVETElCUzolPSUuJHtQUk9KRUNUX1ZFUlNJT059KSBcCi0rICAgICAgICAgICAgICAgICAgICAkKFNIQVJFRExJQlM6JT0lLiR7UFJPSkVDVF9TSExJQl9WRVJTSU9OfSkKLStBTExfTElCUyA9ICQoU1RBVElDTElCUykgJChTSEFSRURMSUJTKSAkKFZFUlNJT05TSEFSRURMSUJTKQotKwotK0FMTCA9IHNoYXJlZF9saWJzCi0rCi0rTE9DQUxfQ0xFQU49Ki5hICouc28gKi5zby4ke1BST0pFQ1RfVkVSU0lPTn0gKi5zby4ke1BST0pFQ1RfU0hMSUJfVkVSU0lPTn0KLSsKLStpbmNsdWRlICQoVE9QKS9jb25maWcvY29tbW9uX21ha2VfcnVsZXMKLSsKLStpZmRlZiBTSEZMQUdTCi0rc2hhcmVkX2xpYnM6ICQoU0hBUkVETElCUykKLStlbHNlCi0rc2hhcmVkX2xpYnM6IG5vdGhpbmcKLStlbmRpZgotKwotK2luc3RhbGw6Ci0rCUAgY3AgLXZmICQoTElCRElSKS8qIC4KLSsJQCAkKE1BS0UpIHNoYXJlZF9saWJzCi0rCUAgZWNobyBBUkxJQlM6ICQoU0hBUkVEQVJMSUJTKQotKwlAIGVjaG8gU0hBUkxJQlM6ICQoU0hBUkVETElCUykKLSsJQCB0YXIgY3ZmIC0gJChBTExfTElCUykgfCAoIGNkICQoSU5TVEFMTExJQkRJUikgJiYgdGFyIHhmIC0pCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZsdGsvZmx0ay5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZmx0ay9mbHRrLmJiCmluZGV4IDYxOWQxNDIuLmVjOWUwNGIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZmx0ay9mbHRrLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZmx0ay9mbHRrLmJiCkBAIC0yLDcgKzIsMTAgQEAKIAogREVQRU5EUyA9ICJhbHNhLWxpYiB6bGliIGpwZWcgbGlicG5nIGxpYnhleHQgbGlieGZ0IgogCi1pbmhlcml0IGJpbmNvbmZpZyBsaWJfcGFja2FnZSBndGstaWNvbi1jYWNoZSBtaW1lCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBiaW5jb25maWcgbGliX3BhY2thZ2UgZ3RrLWljb24tY2FjaGUgbWltZQorUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworU1JDX1VSSSArPSAiZmlsZTovLzAwMDMtQ01ha2UtYnVpbGQtRm9yY2Utc2hhcmVkLWxpYnMtd2l0aC11bnN1ZmZpeGVkLW5hbWVzLnBhdGNoIgogCiBFWFRSQV9PRUNNQUtFID0gIiBcCiAgICAgLURPUFRJT05fQlVJTERfU0hBUkVEX0xJQlM9T04gXApAQCAtMTUsNiArMTgsNyBAQAogUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ29wZW5nbCcsIGQpfSIKIAogUEFDS0FHRUNPTkZJR1tleGFtcGxlc10gPSAiLURPUFRJT05fQlVJTERfRVhBTVBMRVM9T04sLURPUFRJT05fQlVJTERfRVhBTVBMRVM9T0ZGLCIKK1BBQ0tBR0VDT05GSUdbY2Fpcm9dID0gIi1ET1BUSU9OX0NBSVJPPU9OLC1ET1BUSU9OX0NBSVJPPU9GRixjYWlybyIKIFBBQ0tBR0VDT05GSUdbb3BlbmdsXSA9ICItRE9QVElPTl9VU0VfR0w9T04sLURPUFRJT05fVVNFX0dMPU9GRix2aXJ0dWFsL2xpYmdsIgogUEFDS0FHRUNPTkZJR1t4aW5lcmFtYV0gPSAiLURPUFRJT05fVVNFX1hJTkVSQU1BPU9OLC1ET1BUSU9OX1VTRV9YSU5FUkFNQT1PRkYsbGlieGluZXJhbWEiCiBQQUNLQUdFQ09ORklHW3hmaXhlc10gPSAiLURPUFRJT05fVVNFX1hGSVhFUz1PTiwtRE9QVElPTl9VU0VfWEZJWEVTPU9GRixsaWJ4Zml4ZXMiCkBAIC0zMSw0ICszNSwxMiBAQAogCiBMRUFEX1NPTkFNRSA9ICJsaWJmbHRrLnNvIgogCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9taW1lIgorIyAuZGVza3RvcCAvIGljb25zIC8gbWltZSBvbmx5IG5lY2Vzc2FyeSBmb3IgZmx1aWQgYXBwCitGSUxFU18ke1BOfS1iaW4gKz0gIiBcCisgICAgJHtkYXRhZGlyfS9hcHBsaWNhdGlvbnMgXAorICAgICR7ZGF0YWRpcn0vaWNvbnMgXAorICAgICR7ZGF0YWRpcn0vbWltZSBcCisiCisKKyMgY21ha2UgZmlsZXMKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtkYXRhZGlyfS9mbHRrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mbHRrL2ZsdGsvMDAwMy1DTWFrZS1idWlsZC1Gb3JjZS1zaGFyZWQtbGlicy13aXRoLXVuc3VmZml4ZWQtbmFtZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZsdGsvZmx0ay8wMDAzLUNNYWtlLWJ1aWxkLUZvcmNlLXNoYXJlZC1saWJzLXdpdGgtdW5zdWZmaXhlZC1uYW1lcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjJmOGFlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mbHRrL2ZsdGsvMDAwMy1DTWFrZS1idWlsZC1Gb3JjZS1zaGFyZWQtbGlicy13aXRoLXVuc3VmZml4ZWQtbmFtZXMucGF0Y2gKQEAgLTAsMCArMSw0MSBAQAorRnJvbSBiYzM4ZmI0MTA0NDUwM2M5ZGViZjU3MTA5MTBjNTFkZDI5Njc0YjZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FuZHJlYXM9MjBNPUMzPUJDbGxlcj89IDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMTUgRGVjIDIwMTcgMjI6MTQ6MDEgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gQ01ha2UgYnVpbGQ6IEZvcmNlIHNoYXJlZCBsaWJzIHdpdGggdW5zdWZmaXhlZCBuYW1lcworTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitGb3Igd2luZG93cyBidWlsZCBzYWtlIENNYWtlIGNvbXBsYWlucyB3aGVuIGEgcHJvamVjdCB3YW50cyB0byBidWlsZCBzaGFyZWQgYW5kCitzdGF0aWMgbGlicmFyaWVzIHdpdGggc2FtZSBuYW1lLiBUaGlzIGNhdXNlZCB0aGUgYXV0aG9ycyBvZiBmbHRrIHRvIGdlbmVyYXRlCitsaWJyYXJpZXMgd2l0aCBuYW1lcyBzdWZmaXhlZCBieSAnX1NIQVJFRCcgd2hlbiBidWlsZGluZyBmbHRrIHdpdGggY21ha2UgLQorYXV0b3Rvb2xzIGJ1aWxkcyBkbyBub3Qgc3VmZml4LgorCitSZWFzb25zIHRvIGJ1aWxkIHNoYXJlZCBsaWJzIHdpdGggY29ycmVjdCBuYW1lczoKKworKiBTaGFyZWQgbGlicmFyaWVzIGFyZSB0aGUgcHJlZmVycmVkIGNob2ljZSBmb3IgZW1iZWRkZWQgZGV2aWNlcworKiBUaGVyZSBhcmUgcHJvamVjdHMgKGUuZyB5b3NoaW1pKSBleHBlY3Rpbmcgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHVuc3VmZml4ZWQKKyAgbmFtZXMgLSBhcyBjcmVhdGVkIGJ5IGF1dG90b29scyBidWlsZC4gVGhlc2UgcHJvamVjdHMgbGluayBhZ2FpbnN0IHN0YXRpYworICBsaWJyYXJpZXMgYnkgYWNjaWRlbnQgY2F1c2luZyB1bnVzYWJsZSBiaW5hcmllcy4KKworU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KKy0tLQorIENNYWtlL21hY3Jvcy5jbWFrZSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL0NNYWtlL21hY3Jvcy5jbWFrZSBiL0NNYWtlL21hY3Jvcy5jbWFrZQoraW5kZXggNGRlZjYyZC4uYWI2NzVmMCAxMDA2NDQKKy0tLSBhL0NNYWtlL21hY3Jvcy5jbWFrZQorKysrIGIvQ01ha2UvbWFjcm9zLmNtYWtlCitAQCAtNDksNyArNDksNyBAQCBtYWNybyhGTF9BRERfTElCUkFSWSBMSUJOQU1FIExJQlRZUEUgTElCRklMRVMpCisgCSAgICBQUk9QRVJUSUVTCisgCSAgICBWRVJTSU9OICR7RkxUS19WRVJTSU9OX0ZVTEx9CisgCSAgICBTT1ZFUlNJT04gJHtGTFRLX1ZFUlNJT05fTUFKT1J9LiR7RkxUS19WRVJTSU9OX01JTk9SfQorLQkgICAgUFJFRklYICJsaWIiICAgICMgZm9yIE1TVkMgc3RhdGljL3NoYXJlZCBjb2V4aXN0ZW5jZQorKwkgICAgT1VUUFVUX05BTUUgJHtMSUJOQU1FfSBDTEVBTl9ESVJFQ1RfT1VUUFVUIDEKKyAJICAgICkKKyAgICAgZW5kaWYgKCR7TElCVFlQRX0gU1RSRVFVQUwgIlNIQVJFRCIpCisgCistLSAKKzIuOS41CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZnJlZXJkcC9mcmVlcmRwLzAwMDEtRmluZEdTdHJlYW1lcl8xXzAtZml4LWJ1aWxkLWZhaWx1cmUtZm9yLW5ldy1nc3RyZWFtZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZnJlZXJkcC9mcmVlcmRwLzAwMDEtRmluZEdTdHJlYW1lcl8xXzAtZml4LWJ1aWxkLWZhaWx1cmUtZm9yLW5ldy1nc3RyZWFtZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDVmNjQ4NS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZyZWVyZHAvZnJlZXJkcC8wMDAxLUZpbmRHU3RyZWFtZXJfMV8wLWZpeC1idWlsZC1mYWlsdXJlLWZvci1uZXctZ3N0cmVhbWUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi1Gcm9tIGJlYTI3ZmQ5MTliNjRlZThkOTc5OTY0MDllMjc5ZTFlODNkMTM1OTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKZWFuLUxvdWlzIER1cG9uZCA8amVhbi1sb3Vpc0BkdXBvbmQuYmU+Ci1EYXRlOiBTdW4sIDQgT2N0IDIwMTUgMTg6MTc6MzMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gRmluZEdTdHJlYW1lcl8xXzA6IGZpeCBidWlsZCBmYWlsdXJlIGZvciBuZXcgZ3N0cmVhbWVyCi0gdmVyc2lvbnMKLQotLS0tCi0gY21ha2UvRmluZEdTdHJlYW1lcl8xXzAuY21ha2UgfCAzMCArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9jbWFrZS9GaW5kR1N0cmVhbWVyXzFfMC5jbWFrZSBiL2NtYWtlL0ZpbmRHU3RyZWFtZXJfMV8wLmNtYWtlCi1pbmRleCBmN2JmOTkwLi4zYWE4ZmM2IDEwMDY0NAotLS0tIGEvY21ha2UvRmluZEdTdHJlYW1lcl8xXzAuY21ha2UKLSsrKyBiL2NtYWtlL0ZpbmRHU3RyZWFtZXJfMV8wLmNtYWtlCi1AQCAtNTMsMTcgKzUzLDE3IEBAIHNldChHU1RSRUFNRVJfMV8wX01JTklNVU1fVkVSU0lPTiAxLjAuNSkKLSAjIEhlbHBlciBtYWNybyB0byBmaW5kIGEgR3N0cmVhbWVyIHBsdWdpbiAob3IgR3N0cmVhbWVyIGl0c2VsZikKLSAjICAgX2NvbXBvbmVudF9wcmVmaXggaXMgcHJlcGVuZGVkIHRvIHRoZSBfSU5DTFVERV9ESVJTIGFuZCBfTElCUkFSSUVTIHZhcmlhYmxlcyAoZWcuICJHU1RSRUFNRVJfMV8wX0FVRElPIikKLSAjICAgX3BrZ2NvbmZpZ19uYW1lIGlzIHRoZSBjb21wb25lbnQncyBwa2ctY29uZmlnIG5hbWUgKGVnLiAiZ3N0cmVhbWVyLTEuMCIsIG9yICJnc3RyZWFtZXItdmlkZW8tMS4wIikuCi0tIyAgIF9oZWFkZXIgaXMgdGhlIGNvbXBvbmVudCdzIGhlYWRlciwgcmVsYXRpdmUgdG8gdGhlIGdzdHJlYW1lci0xLjAgZGlyZWN0b3J5IChlZy4gImdzdC9nc3QuaCIpLgotICMgICBfbGlicmFyeSBpcyB0aGUgY29tcG9uZW50J3MgbGlicmFyeSBuYW1lIChlZy4gImdzdHJlYW1lci0xLjAiIG9yICJnc3R2aWRlby0xLjAiKQotLW1hY3JvKEZJTkRfR1NUUkVBTUVSX0NPTVBPTkVOVCBfY29tcG9uZW50X3ByZWZpeCBfcGtnY29uZmlnX25hbWUgX2hlYWRlciBfbGlicmFyeSkKLSttYWNybyhGSU5EX0dTVFJFQU1FUl9DT01QT05FTlQgX2NvbXBvbmVudF9wcmVmaXggX3BrZ2NvbmZpZ19uYW1lIF9saWJyYXJ5KQotICAgICAjIEZJWE1FOiBUaGUgUVVJRVQga2V5d29yZCBjYW4gYmUgdXNlZCBvbmNlIHdlIHJlcXVpcmUgQ01ha2UgMi44LjIuCi0tICAgIHBrZ19jaGVja19tb2R1bGVzKFBDXyR7X2NvbXBvbmVudF9wcmVmaXh9ICR7X3BrZ2NvbmZpZ19uYW1lfSkKLSAKLS0gICAgZmluZF9wYXRoKCR7X2NvbXBvbmVudF9wcmVmaXh9X0lOQ0xVREVfRElSUwotLSAgICAgICAgTkFNRVMgJHtfaGVhZGVyfQotLSAgICAgICAgSElOVFMgJHtQQ18ke19jb21wb25lbnRfcHJlZml4fV9JTkNMVURFX0RJUlN9ICR7UENfJHtfY29tcG9uZW50X3ByZWZpeH1fSU5DTFVERURJUn0KLS0gICAgICAgIFBBVEhfU1VGRklYRVMgZ3N0cmVhbWVyLTEuMAotLSAgICApCi0rICAgIHN0cmluZyhSRUdFWCBNQVRDSCAiKC4qKT49KC4qKSIgX2R1bW15ICIke19wa2djb25maWdfbmFtZX0iKQotKyAgICBpZiAoIiR7Q01BS0VfTUFUQ0hfMn0iIFNUUkVRVUFMICIiKQotKyAgICAgICAgcGtnX2NoZWNrX21vZHVsZXMoUENfJHtfY29tcG9uZW50X3ByZWZpeH0gIiR7X3BrZ2NvbmZpZ19uYW1lfSA+PSAke0dTdHJlYW1lcl9GSU5EX1ZFUlNJT059IikKLSsgICAgZWxzZSAoKQotKyAgICAgICAgcGtnX2NoZWNrX21vZHVsZXMoUENfJHtfY29tcG9uZW50X3ByZWZpeH0gJHtfcGtnY29uZmlnX25hbWV9KQotKyAgICBlbmRpZiAoKQotKyAgICBzZXQoJHtfY29tcG9uZW50X3ByZWZpeH1fSU5DTFVERV9ESVJTICR7UENfJHtfY29tcG9uZW50X3ByZWZpeH1fSU5DTFVERV9ESVJTfSkKLSAKLSAgICAgZmluZF9saWJyYXJ5KCR7X2NvbXBvbmVudF9wcmVmaXh9X0xJQlJBUklFUwotICAgICAgICAgTkFNRVMgJHtfbGlicmFyeX0gZ3N0cmVhbWVyX2FuZHJvaWQKLUBAIC03OCw4ICs3OCw4IEBAIGVuZG1hY3JvKCkKLSAjIDEuMS4gRmluZCBoZWFkZXJzIGFuZCBsaWJyYXJpZXMKLSBzZXQoR0xJQl9ST09UX0RJUiAke0dTVFJFQU1FUl8xXzBfUk9PVF9ESVJ9KQotIGZpbmRfcGFja2FnZShHbGliIFJFUVVJUkVEKQotLUZJTkRfR1NUUkVBTUVSX0NPTVBPTkVOVChHU1RSRUFNRVJfMV8wIGdzdHJlYW1lci0xLjAgZ3N0L2dzdC5oIGdzdHJlYW1lci0xLjApCi0tRklORF9HU1RSRUFNRVJfQ09NUE9ORU5UKEdTVFJFQU1FUl8xXzBfQkFTRSBnc3RyZWFtZXItYmFzZS0xLjAgZ3N0L2dzdC5oIGdzdGJhc2UtMS4wKQotK0ZJTkRfR1NUUkVBTUVSX0NPTVBPTkVOVChHU1RSRUFNRVJfMV8wIGdzdHJlYW1lci0xLjAgZ3N0cmVhbWVyLTEuMCkKLStGSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSXzFfMF9CQVNFIGdzdHJlYW1lci1iYXNlLTEuMCBnc3RiYXNlLTEuMCkKLSAKLSAjIDEuMi4gQ2hlY2sgR3N0cmVhbWVyIHZlcnNpb24KLSBpZiAoR1NUUkVBTUVSXzFfMF9JTkNMVURFX0RJUlMpCi1AQCAtMTEwLDExICsxMTAsMTEgQEAgZW5kaWYgKCkKLSAjIDIuIEZpbmQgR3N0cmVhbWVyIHBsdWdpbnMKLSAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAKLS1GSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSXzFfMF9BUFAgZ3N0cmVhbWVyLWFwcC0xLjAgZ3N0L2FwcC9nc3RhcHBzaW5rLmggZ3N0YXBwLTEuMCkKLS1GSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSXzFfMF9BVURJTyBnc3RyZWFtZXItYXVkaW8tMS4wIGdzdC9hdWRpby9hdWRpby5oIGdzdGF1ZGlvLTEuMCkKLS1GSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSXzFfMF9GRlQgZ3N0cmVhbWVyLWZmdC0xLjAgZ3N0L2ZmdC9nc3RmZnQuaCBnc3RmZnQtMS4wKQotLUZJTkRfR1NUUkVBTUVSX0NPTVBPTkVOVChHU1RSRUFNRVJfMV8wX1BCVVRJTFMgZ3N0cmVhbWVyLXBidXRpbHMtMS4wIGdzdC9wYnV0aWxzL3BidXRpbHMuaCBnc3RwYnV0aWxzLTEuMCkKLS1GSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSXzFfMF9WSURFTyBnc3RyZWFtZXItdmlkZW8tMS4wIGdzdC92aWRlby92aWRlby5oIGdzdHZpZGVvLTEuMCkKLStGSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSXzFfMF9BUFAgZ3N0cmVhbWVyLWFwcC0xLjAgZ3N0YXBwLTEuMCkKLStGSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSXzFfMF9BVURJTyBnc3RyZWFtZXItYXVkaW8tMS4wIGdzdGF1ZGlvLTEuMCkKLStGSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSXzFfMF9GRlQgZ3N0cmVhbWVyLWZmdC0xLjAgZ3N0ZmZ0LTEuMCkKLStGSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSXzFfMF9QQlVUSUxTIGdzdHJlYW1lci1wYnV0aWxzLTEuMCBnc3RwYnV0aWxzLTEuMCkKLStGSU5EX0dTVFJFQU1FUl9DT01QT05FTlQoR1NUUkVBTUVSXzFfMF9WSURFTyBnc3RyZWFtZXItdmlkZW8tMS4wIGdzdHZpZGVvLTEuMCkKLSAKLSAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICMgMy4gUHJvY2VzcyB0aGUgQ09NUE9ORU5UUyBwYXNzZWQgdG8gRklORF9QQUNLQUdFCi0tLSAKLTIuNi40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZnJlZXJkcC9mcmVlcmRwLzAwMDEtRml4LWdzdHJlYW1lci0xLjAtZGV0ZWN0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mcmVlcmRwL2ZyZWVyZHAvMDAwMS1GaXgtZ3N0cmVhbWVyLTEuMC1kZXRlY3Rpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU2N2NiYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZnJlZXJkcC9mcmVlcmRwLzAwMDEtRml4LWdzdHJlYW1lci0xLjAtZGV0ZWN0aW9uLnBhdGNoCkBAIC0wLDAgKzEsMjcgQEAKK0Zyb20gMzY4OTg5NTI2YzMyY2RmOWQ2ODBhMzk3ZmVkZTNjYjc3M2ZhMjYwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pa2UgR2lsYmVydCA8ZmxvcHB5bUBnZW50b28ub3JnPgorRGF0ZTogRnJpLCAyOCBKdWwgMjAxNyAxNjozMTo0MSAtMDQwMAorU3ViamVjdDogW1BBVENIXSBGaXggZ3N0cmVhbWVyLTEuMCBkZXRlY3Rpb24KKworVXBzdHJlYW0gU3RhdGU6IEJhY2twb3J0CisKKy0tLQorIGNtYWtlL0ZpbmRHU3RyZWFtZXJfMV8wLmNtYWtlIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvY21ha2UvRmluZEdTdHJlYW1lcl8xXzAuY21ha2UgYi9jbWFrZS9GaW5kR1N0cmVhbWVyXzFfMC5jbWFrZQoraW5kZXggM2FhOGZjNi4uNmZiYzBlYyAxMDA2NDQKKy0tLSBhL2NtYWtlL0ZpbmRHU3RyZWFtZXJfMV8wLmNtYWtlCisrKysgYi9jbWFrZS9GaW5kR1N0cmVhbWVyXzFfMC5jbWFrZQorQEAgLTU5LDcgKzU5LDcgQEAgbWFjcm8oRklORF9HU1RSRUFNRVJfQ09NUE9ORU5UIF9jb21wb25lbnRfcHJlZml4IF9wa2djb25maWdfbmFtZSBfbGlicmFyeSkKKyAKKyAgICAgc3RyaW5nKFJFR0VYIE1BVENIICIoLiopPj0oLiopIiBfZHVtbXkgIiR7X3BrZ2NvbmZpZ19uYW1lfSIpCisgICAgIGlmICgiJHtDTUFLRV9NQVRDSF8yfSIgU1RSRVFVQUwgIiIpCistICAgICAgICBwa2dfY2hlY2tfbW9kdWxlcyhQQ18ke19jb21wb25lbnRfcHJlZml4fSAiJHtfcGtnY29uZmlnX25hbWV9ID49ICR7R1N0cmVhbWVyX0ZJTkRfVkVSU0lPTn0iKQorKyAgICAgICAgcGtnX2NoZWNrX21vZHVsZXMoUENfJHtfY29tcG9uZW50X3ByZWZpeH0gIiR7X3BrZ2NvbmZpZ19uYW1lfSA+PSAke0dTVFJFQU1FUl8xXzBfTUlOSU1VTV9WRVJTSU9OfSIpCisgICAgIGVsc2UgKCkKKyAgICAgICAgIHBrZ19jaGVja19tb2R1bGVzKFBDXyR7X2NvbXBvbmVudF9wcmVmaXh9ICR7X3BrZ2NvbmZpZ19uYW1lfSkKKyAgICAgZW5kaWYgKCkKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mcmVlcmRwL2ZyZWVyZHAvMDAwMy1hZGQtbWlzc2luZy1kZWZpbmUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZyZWVyZHAvZnJlZXJkcC8wMDAzLWFkZC1taXNzaW5nLWRlZmluZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjIwZWRlZi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZyZWVyZHAvZnJlZXJkcC8wMDAzLWFkZC1taXNzaW5nLWRlZmluZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLWxpYndpbnByL2NvbW1fc2VyaWE6IGZpeCBtaXNzaW5nIGRlZmluZQotCi1GcmVlUkRQIHVzZXMgQ01TUEFSLCB3aGljaCBpcyBkZWZpbmVkIGJ5IGdsaWJjIGluIGJpdHMvdGVybWlvcy5oIC4KLQotZ2xpYmMgaGFzIHR3byBmbGF2b3VycyBvZiBiaXRzL3Rlcm1pb3MuaDogYSBnZW5tZXJpYyBvbmUgYW5kIGFuCi1hcmNoaXRlY3R1cmUtc3BlY2lmaWMgb25lLiBXaGVuIGluc3RhbGxpbmcsIGdsaWJjIHdpbGwgaW5zdGFsbCB0aGUKLWFyY2hpdGVjdHVyZS1zcGVjaWZpYyBmaWxlIGlmIGl0IGV4aXN0cywgb3RoZXJ3aXNlIGl0IGluc3RhbGxzIHRoZQotZ2VuZXJpYyBmaWxlLiBPbmx5IEFscGhhLCBNSVBTLCBQUEMgYW5kIFNwYXJjIGhhdmUgdGhlaXIgb3duCi1iaXRzL3Rlcm1pb3MuaC4KLQotVGhlIGdlbmVyaWMgYml0cy90ZXJtaW9zLmgsIGFzIHdlbGwgYXMgdGhlIEFscGhhLCBQUEMgYW5kIFNwYXJjIGZsYXZvdXJzCi1kbyBkZWZpbmUgQ01TUEFSLiBIb3dldmVyLCB0aGUgTUlQUyBmbGF2b3VyIGRvZXMgbm90IGRlZmluZSBpdC4KLQotRGVmaW5lIENNU1BBUiB0byB0aGUgdmFsdWUgZnJvbSB0aGUgZ2VuZXJpYyB2YWx1ZSwgd2hpY2ggaXMgYWxzbyB0aGUKLXZhbHVlIGtub3duIHRvIHRoZSBMaW51eCBrZXJuZWwgZm9yIE1JUFMuCi0KLUZpeGVzOgotICAgIGh0dHA6Ly9hdXRvYnVpbGQuYnVpbGRyb290Lm9yZy9yZXN1bHRzLzBiNC8wYjQ3OTNmMGJmOWY0YzU3OTMzODk3ZjM0ODAwNTRhNGUwNjUyOGFkLwotICAgIGh0dHA6Ly9hdXRvYnVpbGQuYnVpbGRyb290Lm9yZy9yZXN1bHRzLzdhMi83YTIyODRkMGEyOTg3MTU4ZmEyZTc4Zjc4OWIwN2M4YzZmY2RiOTc0LwotICAgIGh0dHA6Ly9hdXRvYnVpbGQuYnVpbGRyb290Lm9yZy9yZXN1bHRzLzM4Ny8zODc0MDg4YzNjY2Q0YmJmNzZlYTBjOTExY2ExZWY2NGM3ZGM5ZDFjLwotICAgIC4uLgotCi1TaWduZWQtb2ZmLWJ5OiAiWWFubiBFLiBNT1JJTiIgPHlhbm4ubW9yaW4uMTk5OEBmcmVlLmZyPgotQ2M6IFBldGVyIEtvcnNnYWFyZCA8amFjbWV0QHVjbGliYy5vcmc+Ci1DYzogVGhvbWFzIFBldGF6em9uaSA8dGhvbWFzLnBldGF6em9uaUBmcmVlLWVsZWN0cm9ucy5jb20+Ci0KLWRpZmYgLWR1ck4gZnJlZXJkcC0xNzgzNGFmN2JiMzc4Zjg1YTNiM2NjNGRjYWRhYTUxMjVhMzM3ZTE2Lm9yaWcvd2lucHIvbGlid2lucHIvY29tbS9jb21tX3NlcmlhbF9zeXMuYyBmcmVlcmRwLTE3ODM0YWY3YmIzNzhmODVhM2IzY2M0ZGNhZGFhNTEyNWEzMzdlMTYvd2lucHIvbGlid2lucHIvY29tbS9jb21tX3NlcmlhbF9zeXMuYwotLS0tIGZyZWVyZHAtMTc4MzRhZjdiYjM3OGY4NWEzYjNjYzRkY2FkYWE1MTI1YTMzN2UxNi5vcmlnL3dpbnByL2xpYndpbnByL2NvbW0vY29tbV9zZXJpYWxfc3lzLmMJMjAxNS0wOS0wNCAxNjoyMDoxNy4wMDAwMDAwMDAgKzAxMDAKLSsrKyBmcmVlcmRwLTE3ODM0YWY3YmIzNzhmODVhM2IzY2M0ZGNhZGFhNTEyNWEzMzdlMTYvd2lucHIvbGlid2lucHIvY29tbS9jb21tX3NlcmlhbF9zeXMuYwkyMDE1LTEwLTA0IDExOjA3OjQxLjg2ODUxMzcyNiArMDEwMAotQEAgLTI3LDYgKzI3LDE0IEBACi0gI2luY2x1ZGUgPGZjbnRsLmg+Ci0gI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotICNpbmNsdWRlIDx0ZXJtaW9zLmg+Ci0rCi0rLyogZ2xpYmMgZm9yIE1JUFMgaGFzIGl0cyBvd24gYml0cy90ZXJtaW9zLmggd2hpY2ggZG9lcyBub3QgZGVmaW5lCi0rICogQ01TUEFSLCBzbyB3ZSB2YW1waXJpc2UgdGhlIHZhbHVlIGZyb20gdGhlIGdlbmVyaWMgYml0cy90ZXJtaW9zLmgKLSsgKi8KLSsjaWZuZGVmIENNU1BBUgotKyNkZWZpbmUgQ01TUEFSIDAxMDAwMDAwMDAwMAotKyNlbmRpZgotKwotICNpbmNsdWRlIDx1bmlzdGQuaD4KLSAKLSAjaW5jbHVkZSAiY29tbV9zZXJpYWxfc3lzLmgiCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZnJlZXJkcC9mcmVlcmRwL3dpbnByLW1ha2VjZXJ0LUJ1aWxkLXdpdGgtaW5zdGFsbC1SUEFUSC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZnJlZXJkcC9mcmVlcmRwL3dpbnByLW1ha2VjZXJ0LUJ1aWxkLXdpdGgtaW5zdGFsbC1SUEFUSC5wYXRjaAppbmRleCBkMjc5ZDZkLi4wZDdkY2MyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZyZWVyZHAvZnJlZXJkcC93aW5wci1tYWtlY2VydC1CdWlsZC13aXRoLWluc3RhbGwtUlBBVEgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mcmVlcmRwL2ZyZWVyZHAvd2lucHItbWFrZWNlcnQtQnVpbGQtd2l0aC1pbnN0YWxsLVJQQVRILnBhdGNoCkBAIC0xLDMxICsxLDMxIEBACi1Gcm9tIDI1M2VhZmM4YzhkYTgzZmMyYjFhOTlhOWU0MzgyNGVmYzYxMDVjN2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYW51ZWwgQmFjaG1hbm4gPG1hbnVlbC5iYWNobWFubkBpb3QuYnpoPgotRGF0ZTogU3VuLCA0IE9jdCAyMDE1IDEwOjQ0OjQ5ICswMjAwCiBTdWJqZWN0OiBbUEFUQ0hdIHdpbnByLW1ha2VjZXJ0OiBCdWlsZCB3aXRoIGluc3RhbGwgUlBBVEgKIAogQXMgd2UgYXJlIGluc3RhbGxpbmcgIndpbnByLW1ha2VjZXJ0IiBtYW51YWxseSwgd2UgZG8gd2FudAogdG8gcmVmZXIgdG8gdGhlIGxpYnJhcnkgaW4gREVTVERJUiwgbm90IHRoZSBvbmUgcmVzdGluZyBpbgogdGhlIGJ1aWxkIHRyZWUuCiAKLVNpZ25lZC1vZmYtYnk6IE1hbnVlbCBCYWNobWFubiA8bWFudWVsLmJhY2htYW5uQGlvdC5iemg+Ci0tLS0KLSB3aW5wci90b29scy9tYWtlY2VydC9jbGkvQ01ha2VMaXN0cy50eHQgfCA0ICsrKysKLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCitVcGRhdGUgaXQgZm9yIDIuMC4wLgogCi1kaWZmIC0tZ2l0IGEvd2lucHIvdG9vbHMvbWFrZWNlcnQvY2xpL0NNYWtlTGlzdHMudHh0IGIvd2lucHIvdG9vbHMvbWFrZWNlcnQvY2xpL0NNYWtlTGlzdHMudHh0Ci1pbmRleCAxNzk1NGM0Li45MGM0NDZiIDEwMDY0NAotLS0tIGEvd2lucHIvdG9vbHMvbWFrZWNlcnQvY2xpL0NNYWtlTGlzdHMudHh0Ci0rKysgYi93aW5wci90b29scy9tYWtlY2VydC9jbGkvQ01ha2VMaXN0cy50eHQKLUBAIC00NSw1ICs0NSw5IEBAIHNldCgke01PRFVMRV9QUkVGSVh9X0xJQlMgd2lucHItbWFrZWNlcnQtdG9vbCkKK1NpZ25lZC1vZmYtYnk6IE1hbnVlbCBCYWNobWFubiA8bWFudWVsLmJhY2htYW5uQGlvdC5iemg+CitTaWduZWQtb2ZmLWJ5OiBaaGVuZyBSdW9xaW4gPHpoZW5ncnEuZm5zdEBjbi5mdWppdHN1LmNvbT4KKy0tLQorIHdpbnByL3Rvb2xzL21ha2VjZXJ0LWNsaS9DTWFrZUxpc3RzLnR4dCB8IDMgKysrCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvd2lucHIvdG9vbHMvbWFrZWNlcnQtY2xpL0NNYWtlTGlzdHMudHh0IGIvd2lucHIvdG9vbHMvbWFrZWNlcnQtY2xpL0NNYWtlTGlzdHMudHh0CitpbmRleCA3NGFmYTA5Li44ZDAwZWYxIDEwMDY0NAorLS0tIGEvd2lucHIvdG9vbHMvbWFrZWNlcnQtY2xpL0NNYWtlTGlzdHMudHh0CisrKysgYi93aW5wci90b29scy9tYWtlY2VydC1jbGkvQ01ha2VMaXN0cy50eHQKK0BAIC00NCw2ICs0NCw5IEBAIHNldCgke01PRFVMRV9QUkVGSVh9X0xJQlMgd2lucHItdG9vbHMpCiAgCiAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKCR7TU9EVUxFX05BTUV9ICR7JHtNT0RVTEVfUFJFRklYfV9MSUJTfSkKICAKLStzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtNT0RVTEVfTkFNRX0gUFJPUEVSVElFUyAKLSsJQlVJTERfV0lUSF9JTlNUQUxMX1JQQVRIIDEpCisrc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7TU9EVUxFX05BTUV9IFBST1BFUlRJRVMKKysgICAgICAgQlVJTERfV0lUSF9JTlNUQUxMX1JQQVRIIDEpCiArCiAgc2V0X3Byb3BlcnR5KFRBUkdFVCAke01PRFVMRV9OQU1FfSBQUk9QRVJUWSBGT0xERVIgIldpblBSL1Rvb2xzIikKICAKLSsKKyBpbnN0YWxsKFRBUkdFVFMgJHtNT0RVTEVfTkFNRX0gREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX0JJTkRJUn0gQ09NUE9ORU5UIHRvb2xzIEVYUE9SVCBXaW5QUlRhcmdldHMpCiAtLSAKLTEuOC4zLjEKKzIuNy40CiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZnJlZXJkcC9mcmVlcmRwX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZnJlZXJkcC9mcmVlcmRwX2dpdC5iYgppbmRleCBmMGFhMWI2Li44OGFlYzljIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2ZyZWVyZHAvZnJlZXJkcF9naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mcmVlcmRwL2ZyZWVyZHBfZ2l0LmJiCkBAIC0xMCwxNCArMTAsMTMgQEAKIAogaW5oZXJpdCBwa2djb25maWcgY21ha2UgZ2l0cGtndgogCi1QViA9ICIxLjIuNStnaXRyJHtTUkNQVn0iCitQViA9ICIyLjAuMCtnaXRyJHtTUkNQVn0iCiBQS0dWID0gIiR7R0lUUEtHVlRBR30iCiAKLVNSQ1JFViA9ICI2MmRhOWQyOGM2NzQ4MTRjODFjMjQ1YzFjNzg4MmViMGRhN2JlNzZiIgorU1JDUkVWID0gIjE2NDhkZWI0MzVhZDUyMjA2ZjdhYTJhZmU0YjRkZmY3MWQ5MzI5YmMiCiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vRnJlZVJEUC9GcmVlUkRQLmdpdCBcCiAgICAgZmlsZTovL3dpbnByLW1ha2VjZXJ0LUJ1aWxkLXdpdGgtaW5zdGFsbC1SUEFUSC5wYXRjaCBcCi0gICAgZmlsZTovLzAwMDEtRmluZEdTdHJlYW1lcl8xXzAtZml4LWJ1aWxkLWZhaWx1cmUtZm9yLW5ldy1nc3RyZWFtZS5wYXRjaCBcCi0gICAgZmlsZTovLzAwMDMtYWRkLW1pc3NpbmctZGVmaW5lLnBhdGNoIFwKKyAgICBmaWxlOi8vMDAwMS1GaXgtZ3N0cmVhbWVyLTEuMC1kZXRlY3Rpb24ucGF0Y2ggXAogIgogCiBTID0gIiR7V09SS0RJUn0vZ2l0IgpAQCAtNTcsNyArNTYsNyBAQAogIyB3ZSB3aWxsIG5lZWQgd2lucHItbWFrZWNlcnQgdG8gZ2VuZXJhdGUgVExTIGNlcnRpZmljYXRlcwogZG9faW5zdGFsbF9hcHBlbmQgKCkgewogICAgIGluc3RhbGwgLWQgJHtEfSR7YmluZGlyfQotICAgIGluc3RhbGwgLW03NTUgd2lucHIvdG9vbHMvbWFrZWNlcnQvY2xpL3dpbnByLW1ha2VjZXJ0ICR7RH0ke2JpbmRpcn0KKyAgICBpbnN0YWxsIC1tNzU1IHdpbnByL3Rvb2xzL21ha2VjZXJ0LWNsaS93aW5wci1tYWtlY2VydCAke0R9JHtiaW5kaXJ9CiAgICAgcm0gLXJmICR7RH0ke2xpYmRpcn0vY21ha2UKICAgICBybSAtcmYgJHtEfSR7bGliZGlyfS9mcmVlcmRwCiB9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dkL2dkXzIuMi40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9nZC9nZF8yLjIuNC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDkzMmJiNy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dkL2dkXzIuMi40LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotU1VNTUFSWSA9ICJnZCBpcyBhIGxpYnJhcnkgdXNlZCB0byBjcmVhdGUgUE5HLCBKUEVHLCBvciBXQk1QIGltYWdlcyIKLURFU0NSSVBUSU9OID0gIlRoZSBnZCBncmFwaGljcyBsaWJyYXJ5IGFsbG93cyB5b3VyIGNvZGUgdG8gcXVpY2tseSBkcmF3IGltYWdlcyBcCi1jb21wbGV0ZSB3aXRoIGxpbmVzLCBhcmNzLCB0ZXh0LCBtdWx0aXBsZSBjb2xvcnMsIGN1dCBhbmQgcGFzdGUgZnJvbSBvdGhlciBcCi1pbWFnZXMsIGFuZCBmbG9vZCBmaWxscywgYW5kIHRvIHdyaXRlIG91dCB0aGUgcmVzdWx0IGFzIGEgUE5HIG9yIEpQRUcgZmlsZS4gXAotVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGluIFdlYiBhcHBsaWNhdGlvbnMsIHdoZXJlIFBORyBhbmQgSlBFRyBhcmUgdHdvIFwKLW9mIHRoZSBmb3JtYXRzIGFjY2VwdGVkIGZvciBpbmxpbmUgaW1hZ2VzIGJ5IG1vc3QgYnJvd3NlcnMuIE5vdGUgdGhhdCBnZCBpcyBub3QgXAotYSBwYWludCBwcm9ncmFtLiIKLUhPTUVQQUdFID0gImh0dHA6Ly9saWJnZC5iaXRidWNrZXQub3JnLyIKLQotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJHRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTA3Mzg0YjNhYTJlMGQzOWFmY2EwZDZjNDAyODZmNTQ1IgotCi1ERVBFTkRTID0gImZyZWV0eXBlIGxpYnBuZyBqcGVnIHpsaWIgdGlmZiIKLQotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2xpYmdkL2xpYmdkLmdpdDticmFuY2g9R0QtMi4yIFwKLSAgICAgICAgICAiCi0KLVNSQ1JFViA9ICJkZTA5ODc0YjE1YTRjODg3NzJkYjM1Y2VkODQyMzMwZjVkZTIzZTc2IgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotCi1pbmhlcml0IGF1dG90b29scyBiaW5jb25maWcgZ2V0dGV4dCBwa2djb25maWcKLQotRVhUUkFfT0VDT05GICs9ICIgLS1kaXNhYmxlLXJwYXRoIFwKLSAgICAgICAgICAgICAgICAgIC0td2l0aC1qcGVnPSR7U1RBR0lOR19MSUJESVJ9Ly4uIFwKLSAgICAgICAgICAgICAgICAgIC0td2l0aC1mcmVldHlwZT15ZXMgXAotICAgICAgICAgICAgICAgICAgLS13aXRob3V0LWZvbnRjb25maWcgXAotICAgICAgICAgICAgICAgICAgLS13aXRob3V0LXdlYnAgXAotICAgICAgICAgICAgICAgICAgLS13aXRob3V0LXhwbSBcCi0gICAgICAgICAgICAgICAgICAtLXdpdGhvdXQteCBcCi0gICAgICAgICAgICAgICAgIgotCi1FWFRSQV9PRU1BS0UgPSAnTERGTEFHUz0iJHtMREZMQUdTfSInCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgICMgY2xlYW51cCBidWlsZHBhdGhzIGZyb20gZ2RsaWIucGMKLSAgICBzZWQgLWkgLWUgJ3MjJHtTVEFHSU5HX0RJUl9IT1NUfSMjZycgJHtEfSR7bGliZGlyfS9wa2djb25maWcvZ2RsaWIucGMKLX0KLQotUEFDS0FHRVMgKz0gIiR7UE59LXRvb2xzIgotCi1GSUxFU18ke1BOfSA9ICIke2xpYmRpcn0vbGliKiR7U09MSUJTfSIKLUZJTEVTXyR7UE59LXRvb2xzID0gIiR7YmluZGlyfS8qIgotCi1QUk9WSURFUyArPSAiJHtQTn0tdG9vbHMiCi1SUFJPVklERVNfJHtQTn0tdG9vbHMgPSAiJHtQTn0tdG9vbHMiCi1SREVQRU5EU18ke1BOfS10b29scyA9ICJwZXJsIHBlcmwtbW9kdWxlLXN0cmljdCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ2QvZ2RfMi4yLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dkL2dkXzIuMi41LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzZDlhY2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dkL2dkXzIuMi41LmJiCkBAIC0wLDAgKzEsNDggQEAKK1NVTU1BUlkgPSAiZ2QgaXMgYSBsaWJyYXJ5IHVzZWQgdG8gY3JlYXRlIFBORywgSlBFRywgb3IgV0JNUCBpbWFnZXMiCitERVNDUklQVElPTiA9ICJUaGUgZ2QgZ3JhcGhpY3MgbGlicmFyeSBhbGxvd3MgeW91ciBjb2RlIHRvIHF1aWNrbHkgZHJhdyBpbWFnZXMgXAorY29tcGxldGUgd2l0aCBsaW5lcywgYXJjcywgdGV4dCwgbXVsdGlwbGUgY29sb3JzLCBjdXQgYW5kIHBhc3RlIGZyb20gb3RoZXIgXAoraW1hZ2VzLCBhbmQgZmxvb2QgZmlsbHMsIGFuZCB0byB3cml0ZSBvdXQgdGhlIHJlc3VsdCBhcyBhIFBORyBvciBKUEVHIGZpbGUuIFwKK1RoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBpbiBXZWIgYXBwbGljYXRpb25zLCB3aGVyZSBQTkcgYW5kIEpQRUcgYXJlIHR3byBcCitvZiB0aGUgZm9ybWF0cyBhY2NlcHRlZCBmb3IgaW5saW5lIGltYWdlcyBieSBtb3N0IGJyb3dzZXJzLiBOb3RlIHRoYXQgZ2QgaXMgbm90IFwKK2EgcGFpbnQgcHJvZ3JhbS4iCitIT01FUEFHRSA9ICJodHRwOi8vbGliZ2QuYml0YnVja2V0Lm9yZy8iCisKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiR0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0wNzM4NGIzYWEyZTBkMzlhZmNhMGQ2YzQwMjg2ZjU0NSIKKworREVQRU5EUyA9ICJmcmVldHlwZSBsaWJwbmcganBlZyB6bGliIHRpZmYiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9saWJnZC9saWJnZC5naXQ7YnJhbmNoPUdELTIuMiBcCisgICAgICAgICAgIgorCitTUkNSRVYgPSAiODI1NTIzMWI2ODg4OTU5N2QwNGQ0NTFhNzI0MzhhYjkyYTQwNWFiYSIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBhdXRvdG9vbHMgYmluY29uZmlnIGdldHRleHQgcGtnY29uZmlnCisKK0VYVFJBX09FQ09ORiArPSAiIC0tZGlzYWJsZS1ycGF0aCBcCisgICAgICAgICAgICAgICAgICAtLXdpdGgtanBlZz0ke1NUQUdJTkdfTElCRElSfS8uLiBcCisgICAgICAgICAgICAgICAgICAtLXdpdGgtZnJlZXR5cGU9eWVzIFwKKyAgICAgICAgICAgICAgICAgIC0td2l0aG91dC1mb250Y29uZmlnIFwKKyAgICAgICAgICAgICAgICAgIC0td2l0aG91dC13ZWJwIFwKKyAgICAgICAgICAgICAgICAgIC0td2l0aG91dC14cG0gXAorICAgICAgICAgICAgICAgICAgLS13aXRob3V0LXggXAorICAgICAgICAgICAgICAgICIKKworRVhUUkFfT0VNQUtFID0gJ0xERkxBR1M9IiR7TERGTEFHU30iJworCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICAjIGNsZWFudXAgYnVpbGRwYXRocyBmcm9tIGdkbGliLnBjCisgICAgc2VkIC1pIC1lICdzIyR7U1RBR0lOR19ESVJfSE9TVH0jI2cnICR7RH0ke2xpYmRpcn0vcGtnY29uZmlnL2dkbGliLnBjCit9CisKK1BBQ0tBR0VTICs9ICIke1BOfS10b29scyIKKworRklMRVNfJHtQTn0gPSAiJHtsaWJkaXJ9L2xpYioke1NPTElCU30iCitGSUxFU18ke1BOfS10b29scyA9ICIke2JpbmRpcn0vKiIKKworUFJPVklERVMgKz0gIiR7UE59LXRvb2xzIgorUlBST1ZJREVTXyR7UE59LXRvb2xzID0gIiR7UE59LXRvb2xzIgorUkRFUEVORFNfJHtQTn0tdG9vbHMgPSAicGVybCBwZXJsLW1vZHVsZS1zdHJpY3QiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dmbGFncy9nZmxhZ3NfMi4yLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dmbGFncy9nZmxhZ3NfMi4yLjAuYmIKaW5kZXggMGU4NWIzZi4uMjhiNjUyYSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9nZmxhZ3MvZ2ZsYWdzXzIuMi4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ2ZsYWdzL2dmbGFnc18yLjIuMC5iYgpAQCAtMTksMyArMTksNSBAQAogUEFDS0FHRVMgPSsgIiR7UE59LWJhc2gtY29tcGxldGlvbiIKIEZJTEVTXyR7UE59LWJhc2gtY29tcGxldGlvbiArPSAiJHtiaW5kaXJ9L2dmbGFnc19jb21wbGV0aW9ucy5zaCIKIFJERVBFTkRTXyR7UE59LWJhc2gtY29tcGxldGlvbiA9ICJiYXNoIGJhc2gtY29tcGxldGlvbiIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dudWxpYi9nbnVsaWJfMjAxNy0wOC0yMC4xOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ251bGliL2dudWxpYl8yMDE3LTA4LTIwLjE4LmJiCmluZGV4IGI1MDVhYzEuLmI3MmZmYTkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ251bGliL2dudWxpYl8yMDE3LTA4LTIwLjE4LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ251bGliL2dudWxpYl8yMDE3LTA4LTIwLjE4LmJiCkBAIC0yOSw4ICsyOSw4IEBACiBkb19jb21waWxlW25vZXhlY10gPSAiMSIKIGRvX3BhY2thZ2Vbbm9leGVjXSA9ICIxIgogZG9fcGFja2FnZWRhdGFbbm9leGVjXSA9ICIxIgotZG9fcGFja2FnZV93cml0ZV9pcGtbbm9leGVjXSA9ICIxIgotZG9fcGFja2FnZV93cml0ZV9kZWJbbm9leGVjXSA9ICIxIgotZG9fcGFja2FnZV93cml0ZV9ycG1bbm9leGVjXSA9ICIxIgorZGVsdGFzayBwYWNrYWdlX3dyaXRlX2lwaworZGVsdGFzayBwYWNrYWdlX3dyaXRlX2RlYgorZGVsdGFzayBwYWNrYWdlX3dyaXRlX3JwbQogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtU3VwcG9ydC1BdG9taWMtb3BzLW9uLWNsYW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1TdXBwb3J0LUF0b21pYy1vcHMtb24tY2xhbmcucGF0Y2gKaW5kZXggZTU4MmMwZC4uMmZkMjFjMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1TdXBwb3J0LUF0b21pYy1vcHMtb24tY2xhbmcucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1TdXBwb3J0LUF0b21pYy1vcHMtb24tY2xhbmcucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIGVhOWY2NGViMmNkZjNiZTZjNGRjNjVmYTE0NzJkODU0NjE2ZTQzY2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGFhMGE2MzIwOWFmNjgxM2Q4NzI1NWVjM2FiMzM5ZjJkYmJmMjdkNmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogTW9uLCA2IE1hciAyMDE3IDEzOjM4OjQ2IC0wODAwCiBTdWJqZWN0OiBbUEFUQ0hdIFN1cHBvcnQgQXRvbWljIG9wcyBvbiBjbGFuZwpAQCAtOSwyNSArOSwyMyBAQAogdGhlIGF0b21pY3MgYW5kIGZhaWxzIGZvciBjbGFuZwogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCisKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwogCistLS0KICBzcmMvYmFzZS9hdG9taWNvcHMuaCB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAogZGlmZiAtLWdpdCBhL3NyYy9iYXNlL2F0b21pY29wcy5oIGIvc3JjL2Jhc2UvYXRvbWljb3BzLmgKLWluZGV4IGJlMDM4ZjMuLmYxYTIxZmYgMTAwNjQ0CitpbmRleCBkYWM5NWJlLi4zOTA3MzNjIDEwMDY0NAogLS0tIGEvc3JjL2Jhc2UvYXRvbWljb3BzLmgKICsrKyBiL3NyYy9iYXNlL2F0b21pY29wcy5oCi1AQCAtMTE4LDcgKzExOCw3IEBACitAQCAtMTI0LDcgKzEyNCw3IEBACiAgI2luY2x1ZGUgImJhc2UvYXRvbWljb3BzLWludGVybmFscy1saW51eHBwYy5oIgogICNlbGlmIGRlZmluZWQoX19HTlVDX18pICYmIGRlZmluZWQoX19taXBzX18pCiAgI2luY2x1ZGUgImJhc2UvYXRvbWljb3BzLWludGVybmFscy1taXBzLmgiCiAtI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgR0NDX1ZFUlNJT04gPj0gNDA3MDAKICsjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBHQ0NfVkVSU0lPTiA+PSA0MDcwMCB8fCBkZWZpbmVkKF9fY2xhbmdfXykKICAjaW5jbHVkZSAiYmFzZS9hdG9taWNvcHMtaW50ZXJuYWxzLWdjYy5oIgotICNlbHNlCi0gI2Vycm9yIFlvdSBuZWVkIHRvIGltcGxlbWVudCBhdG9taWMgb3BlcmF0aW9ucyBmb3IgdGhpcyBhcmNoaXRlY3R1cmUKLS0tIAotMi4xMi4wCi0KKyAjZWxpZiBkZWZpbmVkKF9fY2xhbmdfXykgJiYgQ0xBTkdfVkVSU0lPTiA+PSAzMDQwMAorICNpbmNsdWRlICJiYXNlL2F0b21pY29wcy1pbnRlcm5hbHMtZ2NjLmgiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy8wMDAxLVVzZS11Y29udGV4dF90LWluc3RlYWQtb2Ytc3RydWN0LXVjb250ZXh0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1Vc2UtdWNvbnRleHRfdC1pbnN0ZWFkLW9mLXN0cnVjdC11Y29udGV4dC5wYXRjaAppbmRleCA1YmQwYjZmLi5iMzAzMzYyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy8wMDAxLVVzZS11Y29udGV4dF90LWluc3RlYWQtb2Ytc3RydWN0LXVjb250ZXh0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtVXNlLXVjb250ZXh0X3QtaW5zdGVhZC1vZi1zdHJ1Y3QtdWNvbnRleHQucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDEyYWMwZGM2NzQyZTFiY2RmYWYxODQyMTg2YzkwMDJmMDgyMGE1ZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDIzMGNkODQ0ODYxNDVjNWJiMWQ2OWQ0YzlhNTQ0ZTAwYWRiY2M5YjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogU2F0LCAxIEp1bCAyMDE3IDEzOjIxOjIxIC0wNzAwCiBTdWJqZWN0OiBbUEFUQ0hdIFVzZSB1Y29udGV4dF90IGluc3RlYWQgb2Ygc3RydWN0IHVjb250ZXh0CkBAIC02LDEyICs2LDEzIEBACiBOZXdlciBnbGliYyBoYXMgZHJvcHBlZCB0aGUgdWNvbnRleHQgdGFnIGZyb20gZXhwb3NpbmcKIAogU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKwogLS0tCiAgc3JjL3N0YWNrdHJhY2VfcG93ZXJwYy1saW51eC1pbmwuaCB8IDMgKy0tCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvc3JjL3N0YWNrdHJhY2VfcG93ZXJwYy1saW51eC1pbmwuaCBiL3NyYy9zdGFja3RyYWNlX3Bvd2VycGMtbGludXgtaW5sLmgKLWluZGV4IGE5YmY3NzUuLjQ3ZmYyZDcgMTAwNjQ0CitpbmRleCAzYjM4NDNiLi5hMzAxYTQ2IDEwMDY0NAogLS0tIGEvc3JjL3N0YWNrdHJhY2VfcG93ZXJwYy1saW51eC1pbmwuaAogKysrIGIvc3JjL3N0YWNrdHJhY2VfcG93ZXJwYy1saW51eC1pbmwuaAogQEAgLTUzLDcgKzUzLDYgQEAKQEAgLTMxLDYgKzMyLDMgQEAKICAgICAgICAgICAgLy8gV2UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgcmVzdCwgc2luY2UgSVAgdmFsdWUgaXMgYXQgJ3VjJyBmaWVsZC5BCiAgICAgICAgICB9ICpzaWdmcmFtZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8cnRfc2lnbmFsX2ZyYW1lXzMyKj4oY3VycmVudCk7CiAgICAgICAgICByZXN1bHRbbl0gPSAodm9pZCopIHNpZ2ZyYW1lLT51Yy51Y19tY29udGV4dC51Y19yZWdzLT5ncmVnc1tQVF9OSVBdOwotLS0gCi0yLjEzLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1kaXNiYWxlLWhlYXAtY2hlY2tlcnMtYW5kLWRlYnVnLWFsbG9jYXRvci1vbi1tdXNsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1kaXNiYWxlLWhlYXAtY2hlY2tlcnMtYW5kLWRlYnVnLWFsbG9jYXRvci1vbi1tdXNsLnBhdGNoCmluZGV4IDk5MTI3ZTEuLmFiM2NlYjkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtZGlzYmFsZS1oZWFwLWNoZWNrZXJzLWFuZC1kZWJ1Zy1hbGxvY2F0b3Itb24tbXVzbC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy8wMDAxLWRpc2JhbGUtaGVhcC1jaGVja2Vycy1hbmQtZGVidWctYWxsb2NhdG9yLW9uLW11c2wucGF0Y2gKQEAgLTEsMTkgKzEsMjAgQEAKLUZyb20gYjU5NjFmMTdlOWQ3ZjJiYzQ0ZGE2MTFiM2U0YjI3YzhhNjQxZmM3MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gMDY2MDUxNTg4NTJmOTM2NDUxOTM5MWZhMTEwNzBiYTVlYzQzMDNlOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBEYXRlOiBTYXQsIDIgU2VwIDIwMTcgMDg6MDc6MTcgLTA3MDAKIFN1YmplY3Q6IFtQQVRDSF0gZGlzYmFsZSBoZWFwIGNoZWNrZXJzIGFuZCBkZWJ1ZyBhbGxvY2F0b3Igb24gbXVzbAogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCisKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwogCistLS0KICBjb25maWd1cmUuYWMgfCAyICsrCiAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQogCi1JbmRleDogZ2l0L2NvbmZpZ3VyZS5hYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdpdC5vcmlnL2NvbmZpZ3VyZS5hYwotKysrIGdpdC9jb25maWd1cmUuYWMKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IDcwYjQ5YTMuLjgxNTRjNWMgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYwogQEAgLTUxLDYgKzUxLDggQEAgY2FzZSAiJGhvc3QiIGluCiAgICAgKi1jeWd3aW4qKSBkZWZhdWx0X2VuYWJsZV9oZWFwX2NoZWNrZXI9bm87IGRlZmF1bHRfZW5hYmxlX2NwdV9wcm9maWxlcj1ubzs7CiAgICAgKi1mcmVlYnNkKikgZGVmYXVsdF9lbmFibGVfaGVhcF9jaGVja2VyPW5vOzsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtZml4LWJ1aWxkLXdpdGgtbXVzbC1saWJjLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1maXgtYnVpbGQtd2l0aC1tdXNsLWxpYmMucGF0Y2gKaW5kZXggNzg2MjFjNy4uMGE3MmZmMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1maXgtYnVpbGQtd2l0aC1tdXNsLWxpYmMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1maXgtYnVpbGQtd2l0aC1tdXNsLWxpYmMucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDE1NzkxNDk0MWJkMzhmMWEzOGJiNmJkNzI5NGNhNmMyYmMxYjhkY2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDAzNGU3ZGEwOGMzZmJmZmNiYThjZjhkNGUyNGE3MWExNjU1OGRiNWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogU3VuLCAxNiBKdWwgMjAxNyAxNTo1MToyOCAtMDcwMAogU3ViamVjdDogW1BBVENIXSBmaXggYnVpbGQgd2l0aCBtdXNsIGxpYmMKQEAgLTYsNiArNiw3IEBACiBQYXRjaCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvcHVsbC83NjUvCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CisKIC0tLQogIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgfCAxICsKICBzcmMvbWFsbG9jX2hvb2tfbW1hcF9saW51eC5oIHwgOCArKysrKystLQpAQCAtNTYsNiArNTcsMyBAQAogIC8vIGxpYmMncyB2ZXJzaW9uOgogIGV4dGVybiAiQyIgdm9pZCogX19zYnJrKHB0cmRpZmZfdCBpbmNyZW1lbnQpOwogIAotLS0gCi0yLjEzLjMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1pbmNsdWRlLWZjbnRsLmgtZm9yLWxvZmZfdC1kZWZpbml0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvMDAwMS1pbmNsdWRlLWZjbnRsLmgtZm9yLWxvZmZfdC1kZWZpbml0aW9uLnBhdGNoCmluZGV4IDY2NzAwOGEuLjRjNjNlNzMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzLzAwMDEtaW5jbHVkZS1mY250bC5oLWZvci1sb2ZmX3QtZGVmaW5pdGlvbi5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy8wMDAxLWluY2x1ZGUtZmNudGwuaC1mb3ItbG9mZl90LWRlZmluaXRpb24ucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDA0ZWE4ZTAwMTUwMTkzMWY0ZGJmMjAyODhhY2E3ODQ2OTYxN2IwOGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGExNmE3M2YwODE5ZDI2MjE5ZWU4M2NkOThlZWE4Mjc4NmQ3YzE3NTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogRGF0ZTogU3VuLCAxNiBKdWwgMjAxNyAxOToyODoxNyAtMDcwMAogU3ViamVjdDogW1BBVENIXSBpbmNsdWRlIGZjbnRsLmggZm9yIGxvZmZfdCBkZWZpbml0aW9uCkBAIC03LDYgKzcsNyBAQAogbGludXhfc3lzY2FsbF9zdXBwb3J0Lmg6MjY0MToyNjogZXJyb3I6ICdsb2ZmX3QnIGhhcyBub3QgYmVlbiBkZWNsYXJlZAogCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCiAtLS0KICBzcmMvYmFzZS9saW51eF9zeXNjYWxsX3N1cHBvcnQuaCB8IDEgKwogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQpAQCAtMjMsNiArMjQsMyBAQAogIAogICNpZmRlZiBfX21pcHNfXwogIC8qIEluY2x1ZGUgZGVmaW5pdGlvbnMgb2YgdGhlIEFCSSBjdXJyZW50bHkgaW4gdXNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS0tIAotMi4xMy4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzL2Rpc2FibGVfbGlidW53aW5kX2FhcmNoNjQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy9kaXNhYmxlX2xpYnVud2luZF9hYXJjaDY0LnBhdGNoCmluZGV4IGYyNjQ3NDAuLmMzYzU3ODQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzL2Rpc2FibGVfbGlidW53aW5kX2FhcmNoNjQucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvZGlzYWJsZV9saWJ1bndpbmRfYWFyY2g2NC5wYXRjaApAQCAtMSwxNSArMSwyMiBAQAotRGlzYWJsZSBsaWJ1bndpbmQgb24gYWFyY2g2NAorRnJvbSA1NjRmODAwZTNlMjQ2NDdjMDk1ZjdhMzIxYmYzZWJkY2NmYmY3NjJkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IFNhdCwgMiBTZXAgMjAxNyAxMjowMjowNCAtMDcwMAorU3ViamVjdDogW1BBVENIXSBEaXNhYmxlIGxpYnVud2luZCBvbiBhYXJjaDY0CiAKIEZpeGVzIGhhbmdzIHdoZW4gdXNpbmcgbGlidGNtYWxsb2Muc28KIAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogCi1JbmRleDogZ2l0L2NvbmZpZ3VyZS5hYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdpdC5vcmlnL2NvbmZpZ3VyZS5hYwotKysrIGdpdC9jb25maWd1cmUuYWMKLUBAIC02OSw2ICs2OSwxMSBAQCBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKCwgW3JlCistLS0KKyBjb25maWd1cmUuYWMgfCA1ICsrKysrCisgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCA4MTU0YzVjLi4wNjNiMjYwIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC02OSw2ICs2OSwxMSBAQCBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKCwgW3JldHVybiBfX1BQQzY0X19dKV0sCiAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRfZW5hYmxlX2xpYnVud2luZD15ZXMKICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdF90Y21hbGxvY19wYWdlc2l6ZT04XSkKICAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzL3NnaWRlZi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvZ3BlcmZ0b29scy9ncGVyZnRvb2xzL3NnaWRlZi5wYXRjaAppbmRleCA3ZTFhMjNiLi4xMDI3NGE2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2dwZXJmdG9vbHMvZ3BlcmZ0b29scy9zZ2lkZWYucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ncGVyZnRvb2xzL2dwZXJmdG9vbHMvc2dpZGVmLnBhdGNoCkBAIC0xLDExICsxLDE5IEBACi1zZ2lkZWYuaCBkb2VzIG5vdCBleGlzdCBvbiBtdXNsIGFuZCBpdHMgbm90IG5lZWRlZCB0byBjb21waWxlCitGcm9tIDI1OWI0MjA0NDRjNTI0NjM3OTViNGI1ODJhMmFiNzUxMTE0OWVlYTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogTW9uLCAxNiBPY3QgMjAxNyAyMToyNjo0MCAtMDcwMAorU3ViamVjdDogW1BBVENIXSBzZ2lkZWYuaCBkb2VzIG5vdCBleGlzdCBvbiBtdXNsIGFuZCBpdHMgbm90IG5lZWRlZCB0byBjb21waWxlCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLUluZGV4OiBnaXQvc3JjL2Jhc2UvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnaXQub3JpZy9zcmMvYmFzZS9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotKysrIGdpdC9zcmMvYmFzZS9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorCistLS0KKyBzcmMvYmFzZS9saW51eF9zeXNjYWxsX3N1cHBvcnQuaCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NyYy9iYXNlL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oIGIvc3JjL2Jhc2UvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKK2luZGV4IDcwNDMxY2EuLmIyM2NhNTkgMTAwNjQ0CistLS0gYS9zcmMvYmFzZS9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAorKysrIGIvc3JjL2Jhc2UvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKIEBAIC0xNjQsNyArMTY0LDcgQEAgZXh0ZXJuICJDIiB7CiAgI2luY2x1ZGUgPGVuZGlhbi5oPgogICNpbmNsdWRlIDxmY250bC5oPgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9oZGR0ZW1wL2hkZHRlbXAvaGRkdGVtcC0wLjMtYmV0YTE1LWF1dG9kZXRlY3QtNzE3NDc5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9oZGR0ZW1wL2hkZHRlbXAvaGRkdGVtcC0wLjMtYmV0YTE1LWF1dG9kZXRlY3QtNzE3NDc5LnBhdGNoCmluZGV4IDE5ZjgzODAuLjFlYzZhNjEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaGRkdGVtcC9oZGR0ZW1wL2hkZHRlbXAtMC4zLWJldGExNS1hdXRvZGV0ZWN0LTcxNzQ3OS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2hkZHRlbXAvaGRkdGVtcC9oZGR0ZW1wLTAuMy1iZXRhMTUtYXV0b2RldGVjdC03MTc0NzkucGF0Y2gKQEAgLTMsOSArMywxMCBAQAogUmVmZXIgdG86CiBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTcxNzQ3OQogCi1kaWZmIC11cCBoZGR0ZW1wLTAuMy1iZXRhMTUvZG9jL2hkZHRlbXAuOH4gaGRkdGVtcC0wLjMtYmV0YTE1L2RvYy9oZGR0ZW1wLjgKLS0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUvZG9jL2hkZHRlbXAuOH4JMjAxMS0wOC0xOCAwMDozNjowNS42ODkwMDE0NzAgKzAzMDAKLSsrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvZG9jL2hkZHRlbXAuOAkyMDExLTA4LTE4IDAwOjQ0OjQ2Ljc1MzAwNjI1MyArMDMwMAorSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9kb2MvaGRkdGVtcC44Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gaGRkdGVtcC0wLjMtYmV0YTE1Lm9yaWcvZG9jL2hkZHRlbXAuOAorKysrIGhkZHRlbXAtMC4zLWJldGExNS9kb2MvaGRkdGVtcC44CiBAQCAtMTksNyArMTksNyBAQAogIGhkZHRlbXAgXC0gVXRpbGl0eSB0byBtb25pdG9yIGhhcmQgZHJpdmUgdGVtcGVyYXR1cmUKICAuU0ggU1lOT1BTSVMKQEAgLTI1LDkgKzI2LDEwIEBACiAgCiAgCiAgLlNIICJPUFRJT05TIgotZGlmZiAtdXAgaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9oZGR0ZW1wLmN+IGhkZHRlbXAtMC4zLWJldGExNS9zcmMvaGRkdGVtcC5jCi0tLS0gaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9oZGR0ZW1wLmN+CTIwMTEtMDgtMTggMDA6MzY6MDUuNjM4OTk2ODYxICswMzAwCi0rKysgaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9oZGR0ZW1wLmMJMjAxMS0wOC0xOCAwMDozNTo1NS40ODUwNjA3OTggKzAzMDAKK0luZGV4OiBoZGR0ZW1wLTAuMy1iZXRhMTUvc3JjL2hkZHRlbXAuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL3NyYy9oZGR0ZW1wLmMKKysrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvc3JjL2hkZHRlbXAuYwogQEAgLTU0LDYgKzU0LDcgQEAKICAjaW5jbHVkZSA8bGludXgvaGRyZWcuaD4KICAjaW5jbHVkZSA8Y3R5cGUuaD4KQEAgLTQ0LDcgKzQ2LDcgQEAKICAKICAgIGJhY2t0cmFjZV9zaWdzZWd2KCk7CiAgICBiYWNrdHJhY2Vfc2lnaWxsKCk7Ci1AQCAtNDE5LDExICs0MjEsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CitAQCAtNDIzLDExICs0MjUsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CiAgICAgICBleGl0KDApOwogICAgfQogICAgCkBAIC01Niw3ICs1OCw3IEBACiAgICBpZihkZWJ1ZykgewogICAgICAvKiAgICBhcmdjID0gb3B0aW5kICsgMTsqLwogICAgICBxdWlldCA9IDE7Ci1AQCAtNDM0LDYgKzQzMSwyMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CitAQCAtNDM4LDYgKzQzNSwyMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CiAgICAgIGV4aXQoMSk7CiAgICB9CiAgCkBAIC04MCw3ICs4Miw3IEBACiAgICBpbml0X2J1c190eXBlcygpOwogIAogICAgLyogY29sbGVjdCBkaXNrcyBpbmZvcm1hdGlvbnMgKi8KLUBAIC01MjcsNiArNTQxLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgeworQEAgLTUzMSw2ICs1NDUsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CiAgICBlbHNlIHsKICAgICAgZG9fZGlyZWN0X21vZGUobGRpc2tzKTsKICAgIH0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaGRkdGVtcC9oZGR0ZW1wL2hkZHRlbXBfMC4zLWJldGExNS01Mi5kaWZmIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9oZGR0ZW1wL2hkZHRlbXAvaGRkdGVtcF8wLjMtYmV0YTE1LTUyLmRpZmYKaW5kZXggZjYxYzE2NC4uMDU3YjFmZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9oZGR0ZW1wL2hkZHRlbXAvaGRkdGVtcF8wLjMtYmV0YTE1LTUyLmRpZmYKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9oZGR0ZW1wL2hkZHRlbXAvaGRkdGVtcF8wLjMtYmV0YTE1LTUyLmRpZmYKQEAgLTgsOSArOCwxMSBAQAogCiBVcHN0cmVhbS1TdGF0dXM6IHVubWFpbnRhaW5lZAogCitJbmRleDogaGRkdGVtcC0wLjMtYmV0YTE1L2RvYy9oZGR0ZW1wLjgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUub3JpZy9kb2MvaGRkdGVtcC44CiArKysgaGRkdGVtcC0wLjMtYmV0YTE1L2RvYy9oZGR0ZW1wLjgKLUBAIC01OCw2ICs1OCwxMCBAQAorQEAgLTU4LDYgKzU4LDEwIEBAIEV4ZWN1dGUgaGRkdGVtcCBpbiBUQ1AvSVAgZGFlbW9uIG1vZGUgKHAKICAuQiBcLWYsIFwtXC1maWxlPVxmSWZpbGVcZkkKICBTcGVjaWZ5IHRoZSBkYXRhYmFzZSBmaWxlIHRvIHVzZS4KICAuVFAKQEAgLTIxLDcgKzIzLDcgQEAKICAuQiBcLWwsIFwtXC1saXN0ZW49XGZJYWRkclxmUgogIExpc3RlbiBvbiBhIHNwZWNpZmljIGFkZHJlc3MuICBcZklhZGRyXGZSIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgYQogIGhvc3QgbmFtZSBvciBhIG51bWVyaWMgaG9zdCBhZGRyZXNzIHN0cmluZy4gIFRoZSBudW1lcmljIGhvc3QgYWRkcmVzcwotQEAgLTgwLDYgKzg0LDkgQEAKK0BAIC04MCw2ICs4NCw5IEBAIHNlY29uZHMuCiAgLkIgXC1xLCBcLVwtcXVpZXQKICBEb24ndCBjaGVjayBpZiB0aGUgZHJpdmUgaXMgc3VwcG9ydGVkLgogIC5UUApAQCAtMzEsNyArMzMsNyBAQAogIC5CIFwtdiwgXC1cLXZlcnNpb24KICBEaXNwbGF5IGhkZHRlbXAgdmVyc2lvbiBudW1iZXIuCiAgLlRQCi1AQCAtOTYsNyArMTAzLDcgQEAKK0BAIC05Niw3ICsxMDMsNyBAQCBMaXN0ZW4gb24gSVB2NiBzb2NrZXRzIG9ubHkuCiAgLlNIICJEUklWRSBEQVRBQkFTRSIKICBJZiB5b3Uga25vdyB5b3VyIGRyaXZlIGhhcyBhIHRlbXBlcmF0dXJlIHNlbnNvciBidXQgaXQgaXMgYmVpbmcKICByZXBvcnRlZCB1bnN1cHBvcnRlZCwgdGVsbCBtZSB3aGljaCBtb2RlbCBhbmQgd2hpY2ggbWFudWZhY3R1cmVyIGl0CkBAIC00MCw3ICs0Miw3IEBACiAgbGluZSBvZiBoZGR0ZW1wLmRiIGlzIGVpdGhlciBhIGNvbW1lbnQsIGEgYmxhbmsgbGluZSBvciBhIGxpbmUKICBjb250YWluaW5nOgogIC5UUAotQEAgLTExMiw3ICsxMTksNyBAQAorQEAgLTExMiw3ICsxMTksNyBAQCBzZXQgb2YgZHJpdmVzIGZyb20gaXRzIG1vZGVsIG5hbWUgb3IgZnJvCiAgRmVlZGJhY2sgaXMgd2VsY29tZSAoc2VlIHRoZSBSRVBPUlQgc2VjdGlvbiBiZWxvdykuCiAgCiAgLlNIICJUQ1AvSVAgREFFTU9OIE1PREUiCkBAIC00OSw3ICs1MSw3IEBACiAgLlBQCiAgIyBoZGR0ZW1wIFNBVEE6L2Rldi9zZGEgUEFUQTovZGV2L2hkYQogIC5QUAotQEAgLTEyMCw3ICsxMjcsNyBAQAorQEAgLTEyMCw3ICsxMjcsNyBAQCBUbyB0ZXN0CiAgLkIgaGRkdGVtcAogIGluIGRhZW1vbiBtb2RlLCBzdGFydCBpdCBsaWtlIHRoaXM6CiAgLlBQCkBAIC01OCw3ICs2MCw3IEBACiAgLlBQCiAgLlBQCiAgYW5kIHVzZQotQEAgLTE2NSw4ICsxNzIsOCBAQAorQEAgLTE2NSw4ICsxNzIsOCBAQCBhbmQgMTIgYXJlIG9mdGVuIHJlcG9ydGVkIHRvIG1hdGNoIGEgdGVtCiAgaW52ZXN0aWdhdGlvbiB0aGV5IGRvIG5vdC4gIEJ1dCBmaWVsZHMgMTk0ICh3aGljaCBpcyB0aGUgc3RhbmRhcmQKICBmaWVsZCBmb3IgdGVtcGVyYXR1cmUpIGFuZCAyMzEgYXJlIGdvb2QgY2FuZGlkYXRlcy4KICAuUFAKQEAgLTY5LDEzICs3MSwxNSBAQAogIHlvdXJzZWxmLgogIAogIC5TSCAiQlVHUyIKLUBAIC0xODMsNSArMTkwLDUgQEAKK0BAIC0xODMsNSArMTkwLDUgQEAgc3VwcG9ydGVkIG9uIGkzODYgYXJjaGl0ZWN0dXJlcyBvbmx5LgogIC5QUAogIEVtbWFudWVsIFZhcmFnbmF0IChoZGR0ZW1wQGd1enUubmV0KS4KICAuUFAKIC1UaGlzIG1hbnVhbCBwYWdlIHdhcyBvcmlnaW5hbHkgd3JpdHRlbiBieSBBdXJlbGllbiBKYXJubyA8YXVyZWwzMkBkZWJpYW4ub3JnPiwKICtUaGlzIG1hbnVhbCBwYWdlIHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgQXVyZWxpZW4gSmFybm8gPGF1cmVsMzJAZGViaWFuLm9yZz4sCiAgZm9yIHRoZSBEZWJpYW4gR05VL0xpbnV4IHN5c3RlbSAoYnV0IG1heSBiZSB1c2VkIGJ5IG90aGVycykuCitJbmRleDogaGRkdGVtcC0wLjMtYmV0YTE1L3BvL2ZyLnBvCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gaGRkdGVtcC0wLjMtYmV0YTE1Lm9yaWcvcG8vZnIucG8KICsrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvcG8vZnIucG8KIEBAIC03LDkgKzcsOSBAQApAQCAtOTEsNyArOTUsNyBAQAogICJMYXN0LVRyYW5zbGF0b3I6IEF1cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD5cbiIKICAiTGFuZ3VhZ2UtVGVhbTogRlJBTkNBSVMgPGZyQGxpLm9yZz5cbiIKICAiTUlNRS1WZXJzaW9uOiAxLjBcbiIKLUBAIC0xNywyMyArMTcsNyBAQAorQEAgLTE3LDIzICsxNyw3IEBAIG1zZ3N0ciAiIgogICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiAgIlgtR2VuZXJhdG9yOiBLQmFiZWwgMS4wLjFcbiIKICAKQEAgLTExNiw3ICsxMjAsNyBAQAogICMsIGMtZm9ybWF0CiAgbXNnaWQgIiIKICAiXG4iCi1AQCAtNDYsNyArMzAsNyBAQAorQEAgLTQ2LDcgKzMwLDcgQEAgbXNnc3RyICIiCiAgIk1vZOhsZTogJXNcbiIKICAiXG4iCiAgCkBAIC0xMjUsNyArMTI5LDcgQEAKICAjLCBjLWZvcm1hdAogIG1zZ2lkICIiCiAgIldBUk5JTkc6IERyaXZlICVzIGRvZXNuJ3Qgc2VlbSB0byBoYXZlIGEgdGVtcGVyYXR1cmUgc2Vuc29yLlxuIgotQEAgLTYwLDc1ICs0NCw2MCBAQAorQEAgLTYwLDc1ICs0NCw2MCBAQCBtc2dzdHIgIiIKICAibmV0KS5cbiIKICAiQVRURU5USU9OIDogVm9pciBsZXMgb3B0aW9ucyAtLWhlbHAsIC0tZGVidWcgZXQgLS1kcml2ZWJhc2UuXG4iCiAgCkBAIC0yMTYsNyArMjIwLDcgQEAKICAiICAtYiAgIC0tZHJpdmViYXNlICAgOiAgZGlzcGxheSBkYXRhYmFzZSBmaWxlIGNvbnRlbnQgdGhhdCBhbGxvdyBoZGR0ZW1wIHRvXG4iCiAgIiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29nbml6ZSBzdXBwb3J0ZWQgZHJpdmVzLlxuIgogICIgIC1EICAgLS1kZWJ1ZyAgICAgICA6ICBkaXNwbGF5IHZhcmlvdXMgUy5NLkEuUi5ULiBmaWVsZHMgYW5kIHRoZWlyIHZhbHVlcy5cbiIKLUBAIC0xMzgsNiArMTA3LDcgQEAKK0BAIC0xMzgsNiArMTA3LDcgQEAgbXNnaWQgIiIKICAiICAtZCAgIC0tZGFlbW9uICAgICAgOiAgcnVuIGhkZHRlbXAgaW4gVENQL0lQIGRhZW1vbiBtb2RlIChwb3J0ICVkIGJ5ICIKICAiZGVmYXVsdC4pXG4iCiAgIiAgLWYgICAtLWZpbGU9RklMRSAgIDogIHNwZWNpZnkgZGF0YWJhc2UgZmlsZSB0byB1c2UuXG4iCkBAIC0yMjQsNyArMjI4LDcgQEAKICAiICAtbCAgIC0tbGlzdGVuPWFkZHIgOiAgbGlzdGVuIG9uIGEgc3BlY2lmaWMgaW50ZXJmYWNlIChpbiBUQ1AvSVAgZGFlbW9uICIKICAibW9kZSkuXG4iCiAgIiAgLW4gICAtLW51bWVyaWMgICAgIDogIHByaW50IG9ubHkgdGhlIHRlbXBlcmF0dXJlLlxuIgotQEAgLTE0NSw2ICsxMTUsOCBAQAorQEAgLTE0NSw2ICsxMTUsOCBAQCBtc2dpZCAiIgogICIgIC1zICAgLS1zZXBhcmF0b3I9QyA6ICBzZXBhcmF0b3IgdG8gdXNlIGJldHdlZW4gZmllbGRzIChpbiBUQ1AvSVAgZGFlbW9uICIKICAibW9kZSkuXG4iCiAgIiAgLVMgICAtLXN5c2xvZz1zICAgIDogIGxvZyB0ZW1wZXJhdHVyZSB0byBzeXNsb2cgZXZlcnkgcyBzZWNvbmRzLlxuIgpAQCAtMjMzLDcgKzIzNyw3IEBACiAgIiAgLXEgICAtLXF1aWV0ICAgICAgIDogIGRvIG5vdCBjaGVjayBpZiB0aGUgZHJpdmUgaXMgc3VwcG9ydGVkLlxuIgogICIgIC12ICAgLS12ZXJzaW9uICAgICA6ICBkaXNwbGF5IGhkZHRlbXAgdmVyc2lvbiBudW1iZXIuXG4iCiAgIiAgLXcgICAtLXdha2UtdXAgICAgIDogIHdha2UtdXAgdGhlIGRyaXZlIGlmIG5lZWQuXG4iCi1AQCAtMTUzLDExICsxMjUsMTQgQEAKK0BAIC0xNTMsMTEgKzEyNSwxNCBAQCBtc2dpZCAiIgogICJcbiIKICAiUmVwb3J0IGJ1Z3Mgb3IgbmV3IGRyaXZlcyB0byA8aGRkdGVtcEBndXp1Lm5ldD4uXG4iCiAgbXNnc3RyICIiCkBAIC0yNDksNyArMjUzLDcgQEAKICAiICAtYiAgIC0tZHJpdmViYXNlICAgOiAgYWZmaWNoZSBsZSBjb250ZW51IGR1IGZpY2hpZXIgZGUgYmFzZSBkZSBkb25u6WUgIgogICJxdWkgXG4iCiAgIiAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1ldCDgIGhkZHRlbXAgZGUgcmVjb25uYe50cmUgbGVzIGxlY3RldXJzICIKLUBAIC0xNzIsNiArMTQ3LDcgQEAKK0BAIC0xNzIsNiArMTQ3LDcgQEAgbXNnc3RyICIiCiAgImTpZmF1dCkuXG4iCiAgIiAgLWYgICAtLWZpbGU9RklMRSAgIDogIHNwZWNpZmllIGxlIGZpY2hpZXIg4CB1dGlsaXNlciBjb21tZSBiYXNlIGRlICIKICAiZG9ubullcy5cbiIKQEAgLTI1Nyw3ICsyNjEsNyBAQAogICIgIC1sICAgLS1saXN0ZW49YWRkciA6ICDpY291dGUgc3VyIHVuZSBpbnRlcmZhY2Ugc3DpY2lmaXF1ZSAoZW4gbW9kZSBk6W1vbiAiCiAgIlRDUC9JUCkuXG4iCiAgIiAgLW4gICAtLW51bWVyaWMgICAgIDogIGFmZmljaGUgc2V1bGVtZW50IGxhIHRlbXDpcmF0dXJlLlxuIgotQEAgLTE4MCw2ICsxNTYsOCBAQAorQEAgLTE4MCw2ICsxNTYsOCBAQCBtc2dzdHIgIiIKICAiZOltb24gVENQL0lQKS5cbiIKICAiICAtUyAgIC0tc3lzbG9nPXMgICAgOiAgZW5yZWdpc3RyZSBsYSB0ZW1w6XJhdHVyZSBkYW5zIHN5c2xvZyB0b3VzIGxlcyBzICIKICAic2Vjb25kZXMuXG4iCkBAIC0yNjYsNyArMjcwLDcgQEAKICAiICAtcSAgIC0tcXVpZXQgICAgICAgOiAgbmUgdulyaWZpZSBwYXMgc2kgbGUgbGVjdGV1ciBlc3Qgc3VwcG9ydOkuXG4iCiAgIiAgLXYgICAtLXZlcnNpb24gICAgIDogIGFmZmljaGUgbGEgdmVyc2lvbiBkZSBoZGR0ZW1wLlxuIgogICIgIC13ICAgLS13YWtlLXVwICAgICA6ICBy6XZlaWxsZXIgbGUgbGVjdGV1ciBzaSBu6WNlc3NhaXJlLlxuIgotQEAgLTE4OCw2MiArMTY2LDk1IEBACitAQCAtMTg4LDYyICsxNjYsOTUgQEAgbXNnc3RyICIiCiAgIlxuIgogICJSZXBvcnQgYnVncyBvciBuZXcgZHJpdmVzIHRvIDxoZGR0ZW1wQGd1enUubmV0Pi5cbiIKICAKQEAgLTM3Nyw2ICszODEsOCBAQAogKwogKyN+IG1zZ2lkICJmaWVsZCglZClcdCA9ICVkXG4iCiArI34gbXNnc3RyICJjaGFtcCglZClcdCA9ICVkXG4iCitJbmRleDogaGRkdGVtcC0wLjMtYmV0YTE1L3BvL3J1LnBvCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gaGRkdGVtcC0wLjMtYmV0YTE1Lm9yaWcvcG8vcnUucG8KICsrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvcG8vcnUucG8KIEBAIC02LDggKzYsOCBAQApAQCAtMzkwLDcgKzM5Niw3IEBACiAgIlBPLVJldmlzaW9uLURhdGU6IDIwMDMtMDMtMDggMTY6NDIrMDMwMFxuIgogICJMYXN0LVRyYW5zbGF0b3I6IE1pY2hhZWwgU2hpZ29yaW4gPG1pa2VAYWx0bGludXgucnU+XG4iCiAgIkxhbmd1YWdlLVRlYW06IFJ1c3NpYW4gPHJ1QGxpLm9yZz5cbiIKLUBAIC0xNSwyMyArMTUsNyBAQAorQEAgLTE1LDIzICsxNSw3IEBAIG1zZ3N0ciAiIgogICJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9a29pOC1yXG4iCiAgIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKICAKQEAgLTQxNSw3ICs0MjEsNyBAQAogICMsIGMtZm9ybWF0CiAgbXNnaWQgIiIKICAiXG4iCi1AQCAtNDAsNyArMjQsNyBAQAorQEAgLTQwLDcgKzI0LDcgQEAgbXNnaWQgIiIKICAiXG4iCiAgbXNnc3RyICIiCiAgCkBAIC00MjQsNyArNDMwLDcgQEAKICAjLCBjLWZvcm1hdAogIG1zZ2lkICIiCiAgIldBUk5JTkc6IERyaXZlICVzIGRvZXNuJ3Qgc2VlbSB0byBoYXZlIGEgdGVtcGVyYXR1cmUgc2Vuc29yLlxuIgotQEAgLTUzLDcyICszNyw1OSBAQAorQEAgLTUzLDcyICszNyw1OSBAQCBtc2dzdHIgIiIKICAi9+7p7eHu6eU6IOXTzMkg19kg1M/ezs8g2s7BxdTFLCDe1M8gxMHU3snLIMXT1NgsIM7B0MnbydTFIGhkZHRlbXBAZ3V6dS5uZXRcbiIKICAi9+7p7eHu6eU6ICjTzS4gz9DDyckgLS1oZWxwLCAtLWRlYnVnIMkgLS1kcml2ZWJhc2UpLlxuIgogIApAQCAtNTEyLDcgKzUxOCw3IEBACiAgIiAgLWIgICAtLWRyaXZlYmFzZSAgIDogIGRpc3BsYXkgZGF0YWJhc2UgZmlsZSBjb250ZW50IHRoYXQgYWxsb3cgaGRkdGVtcCB0b1xuIgogICIgICAgICAgICAgICAgICAgICAgICAgICByZWNvZ25pemUgc3VwcG9ydGVkIGRyaXZlcy5cbiIKICAiICAtRCAgIC0tZGVidWcgICAgICAgOiAgZGlzcGxheSB2YXJpb3VzIFMuTS5BLlIuVC4gZmllbGRzIGFuZCB0aGVpciB2YWx1ZXMuXG4iCi1AQCAtMTI4LDYgKzk5LDcgQEAKK0BAIC0xMjgsNiArOTksNyBAQCBtc2dpZCAiIgogICIgIC1kICAgLS1kYWVtb24gICAgICA6ICBydW4gaGRkdGVtcCBpbiBUQ1AvSVAgZGFlbW9uIG1vZGUgKHBvcnQgJWQgYnkgIgogICJkZWZhdWx0LilcbiIKICAiICAtZiAgIC0tZmlsZT1GSUxFICAgOiAgc3BlY2lmeSBkYXRhYmFzZSBmaWxlIHRvIHVzZS5cbiIKQEAgLTUyMCw3ICs1MjYsNyBAQAogICIgIC1sICAgLS1saXN0ZW49YWRkciA6ICBsaXN0ZW4gb24gYSBzcGVjaWZpYyBpbnRlcmZhY2UgKGluIFRDUC9JUCBkYWVtb24gIgogICJtb2RlKS5cbiIKICAiICAtbiAgIC0tbnVtZXJpYyAgICAgOiAgcHJpbnQgb25seSB0aGUgdGVtcGVyYXR1cmUuXG4iCi1AQCAtMTM1LDYgKzEwNyw4IEBACitAQCAtMTM1LDYgKzEwNyw4IEBAIG1zZ2lkICIiCiAgIiAgLXMgICAtLXNlcGFyYXRvcj1DIDogIHNlcGFyYXRvciB0byB1c2UgYmV0d2VlbiBmaWVsZHMgKGluIFRDUC9JUCBkYWVtb24gIgogICJtb2RlKS5cbiIKICAiICAtUyAgIC0tc3lzbG9nPXMgICAgOiAgbG9nIHRlbXBlcmF0dXJlIHRvIHN5c2xvZyBldmVyeSBzIHNlY29uZHMuXG4iCkBAIC01MjksNyArNTM1LDcgQEAKICAiICAtcSAgIC0tcXVpZXQgICAgICAgOiAgZG8gbm90IGNoZWNrIGlmIHRoZSBkcml2ZSBpcyBzdXBwb3J0ZWQuXG4iCiAgIiAgLXYgICAtLXZlcnNpb24gICAgIDogIGRpc3BsYXkgaGRkdGVtcCB2ZXJzaW9uIG51bWJlci5cbiIKICAiICAtdyAgIC0td2FrZS11cCAgICAgOiAgd2FrZS11cCB0aGUgZHJpdmUgaWYgbmVlZC5cbiIKLUBAIC0xNjgsNTkgKzE0Miw5MCBAQAorQEAgLTE2OCw1OSArMTQyLDkwIEBAIG1zZ3N0ciAiIgogICJcbiIKICAi88/Pwt3FzsnRIM/CIM/bycLLwcggySDEwc7O2cUgxMzRIMTJ08vP1yDP1NDSwdfM0crUxSDOwSA8aGRkdGVtcEBndXp1Lm5ldD4uXG4iCiAgCkBAIC02MzYsNiArNjQyLDggQEAKICsKICsjfiBtc2dpZCAiZmllbGQoJWQpXHQgPSAlZFxuIgogKyN+IG1zZ3N0ciAi0M/MxSglZClcdCA9ICVkXG4iCitJbmRleDogaGRkdGVtcC0wLjMtYmV0YTE1L3BvL3N2LnBvCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gaGRkdGVtcC0wLjMtYmV0YTE1Lm9yaWcvcG8vc3YucG8KICsrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvcG8vc3YucG8KIEBAIC02LDggKzYsOCBAQApAQCAtNjQ5LDcgKzY1Nyw3IEBACiAgIlBPLVJldmlzaW9uLURhdGU6IDIwMDUtMTEtMDIgMTk6MDMrMDEwMFxuIgogICJMYXN0LVRyYW5zbGF0b3I6IERhbmllbCBOeWxhbmRlciA8cG9AZGFuaWVsbnlsYW5kZXIuc2U+XG4iCiAgIkxhbmd1YWdlLVRlYW06IFN3ZWRpc2ggPHN2QGxpLm9yZz5cbiIKLUBAIC0xNywyMyArMTcsNyBAQAorQEAgLTE3LDIzICsxNyw3IEBAIG1zZ3N0ciAiIgogICJYLVBvZWRpdC1MYW5ndWFnZTogc3dlXG4iCiAgIlgtUG9lZGl0LUNvdW50cnk6IHN3ZVxuIgogIApAQCAtNjc0LDcgKzY4Miw3IEBACiAgIywgYy1mb3JtYXQKICBtc2dpZCAiIgogICJcbiIKLUBAIC00Niw3ICszMCw3IEBACitAQCAtNDYsNyArMzAsNyBAQCBtc2dzdHIgIiIKICAiTW9kZWxsOiAlc1xuIgogICJcbiIKICAKQEAgLTY4Myw3ICs2OTEsNyBAQAogICMsIGMtZm9ybWF0CiAgbXNnaWQgIiIKICAiV0FSTklORzogRHJpdmUgJXMgZG9lc24ndCBzZWVtIHRvIGhhdmUgYSB0ZW1wZXJhdHVyZSBzZW5zb3IuXG4iCi1AQCAtNjAsNzYgKzQ0LDYzIEBACitAQCAtNjAsNzYgKzQ0LDYzIEBAIG1zZ3N0ciAiIgogICJuZXQpLlxuIgogICJWQVJOSU5HOiBTZSAtLWhlbHAsIC0tZGVidWcgb2NoIC0tZHJpdmViYXNlIGZsYWdnb3JuYS5cbiIKICAKQEAgLTc3Nyw3ICs3ODUsNyBAQAogICIgIC1iICAgLS1kcml2ZWJhc2UgICA6ICBkaXNwbGF5IGRhdGFiYXNlIGZpbGUgY29udGVudCB0aGF0IGFsbG93IGhkZHRlbXAgdG9cbiIKICAiICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXplIHN1cHBvcnRlZCBkcml2ZXMuXG4iCiAgIiAgLUQgICAtLWRlYnVnICAgICAgIDogIGRpc3BsYXkgdmFyaW91cyBTLk0uQS5SLlQuIGZpZWxkcyBhbmQgdGhlaXIgdmFsdWVzLlxuIgotQEAgLTEzOSw2ICsxMTAsNyBAQAorQEAgLTEzOSw2ICsxMTAsNyBAQCBtc2dpZCAiIgogICIgIC1kICAgLS1kYWVtb24gICAgICA6ICBydW4gaGRkdGVtcCBpbiBUQ1AvSVAgZGFlbW9uIG1vZGUgKHBvcnQgJWQgYnkgIgogICJkZWZhdWx0LilcbiIKICAiICAtZiAgIC0tZmlsZT1GSUxFICAgOiAgc3BlY2lmeSBkYXRhYmFzZSBmaWxlIHRvIHVzZS5cbiIKQEAgLTc4NSw3ICs3OTMsNyBAQAogICIgIC1sICAgLS1saXN0ZW49YWRkciA6ICBsaXN0ZW4gb24gYSBzcGVjaWZpYyBpbnRlcmZhY2UgKGluIFRDUC9JUCBkYWVtb24gIgogICJtb2RlKS5cbiIKICAiICAtbiAgIC0tbnVtZXJpYyAgICAgOiAgcHJpbnQgb25seSB0aGUgdGVtcGVyYXR1cmUuXG4iCi1AQCAtMTQ2LDYgKzExOCw4IEBACitAQCAtMTQ2LDYgKzExOCw4IEBAIG1zZ2lkICIiCiAgIiAgLXMgICAtLXNlcGFyYXRvcj1DIDogIHNlcGFyYXRvciB0byB1c2UgYmV0d2VlbiBmaWVsZHMgKGluIFRDUC9JUCBkYWVtb24gIgogICJtb2RlKS5cbiIKICAiICAtUyAgIC0tc3lzbG9nPXMgICAgOiAgbG9nIHRlbXBlcmF0dXJlIHRvIHN5c2xvZyBldmVyeSBzIHNlY29uZHMuXG4iCkBAIC03OTQsNyArODAyLDcgQEAKICAiICAtcSAgIC0tcXVpZXQgICAgICAgOiAgZG8gbm90IGNoZWNrIGlmIHRoZSBkcml2ZSBpcyBzdXBwb3J0ZWQuXG4iCiAgIiAgLXYgICAtLXZlcnNpb24gICAgIDogIGRpc3BsYXkgaGRkdGVtcCB2ZXJzaW9uIG51bWJlci5cbiIKICAiICAtdyAgIC0td2FrZS11cCAgICAgOiAgd2FrZS11cCB0aGUgZHJpdmUgaWYgbmVlZC5cbiIKLUBAIC0xODQsNjEgKzE1OCw5MSBAQAorQEAgLTE4NCw2MSArMTU4LDkxIEBAIG1zZ3N0ciAiIgogICJcbiIKICAiUmFwcG9ydGVyYSBidWdnYXIgZWxsZXIgbnlhIGjlcmRkaXNrYXIgdGlsbCA8aGRkdGVtcEBndXp1Lm5ldD4uXG4iCiAgCkBAIC05MDEsOSArOTA5LDExIEBACiArCiArI34gbXNnaWQgImZpZWxkKCVkKVx0ID0gJWRcbiIKICsjfiBtc2dzdHIgImbkbHQoJWQpXHQgPSAlZFxuIgorSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9wby9wdC5wbworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL3BvL3B0LnBvCiArKysgaGRkdGVtcC0wLjMtYmV0YTE1L3BvL3B0LnBvCi1AQCAtNyw3ICs3LDcgQEAKK0BAIC03LDcgKzcsNyBAQCBtc2dpZCAiIgogIG1zZ3N0ciAiIgogICJQcm9qZWN0LUlkLVZlcnNpb246IGhkZHRlbXAgMC4zLWJldGExNFxuIgogICJSZXBvcnQtTXNnaWQtQnVncy1UbzogXG4iCkBAIC05MTIsNyArOTIyLDcgQEAKICAiUE8tUmV2aXNpb24tRGF0ZTogMjAwNi0wMy0yOSAyMzoyMiswMDAwXG4iCiAgIkxhc3QtVHJhbnNsYXRvcjogTWlndWVsIEZpZ3VlaXJlZG8gPGVsbWlnQGRlYmlhbnAub3JnPlxuIgogICJMYW5ndWFnZS1UZWFtOiBQb3J0dWd1ZXNlIDx0cmFkdXpAZGViaWFucHQub3JnPlxuIgotQEAgLTE1LDIzICsxNSw3IEBACitAQCAtMTUsMjMgKzE1LDcgQEAgbXNnc3RyICIiCiAgIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOFxuIgogICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiAgCkBAIC05MzcsNyArOTQ3LDcgQEAKICAjLCBjLWZvcm1hdAogIG1zZ2lkICIiCiAgIlxuIgotQEAgLTQ0LDcgKzI4LDcgQEAKK0BAIC00NCw3ICsyOCw3IEBAIG1zZ3N0ciAiIgogICJNb2RlbG86ICVzXG4iCiAgIlxuIgogIApAQCAtOTQ2LDcgKzk1Niw3IEBACiAgIywgYy1mb3JtYXQKICBtc2dpZCAiIgogICJXQVJOSU5HOiBEcml2ZSAlcyBkb2Vzbid0IHNlZW0gdG8gaGF2ZSBhIHRlbXBlcmF0dXJlIHNlbnNvci5cbiIKLUBAIC01NCw3OSArMzgsNjggQEAKK0BAIC01NCw3OSArMzgsNjggQEAgbXNnaWQgIiIKICBtc2dzdHIgIiIKICAiQVZJU086IE8gZGlzY28gJXMgbsOjbyBwYXJlY2UgdGVyIHVtIHNlbnNvciBkZSB0ZW1wZXJhdHVyYS5cbiIKICAiQVZJU086IElzdG8gbsOjbyBzaWduaWZpY2EgcXVlIG7Do28gdGVtIG5lbmh1bS5cbiIKQEAgLTEwNDcsNyArMTA1Nyw3IEBACiAgIiAgLWIgICAtLWRyaXZlYmFzZSAgIDogIGRpc3BsYXkgZGF0YWJhc2UgZmlsZSBjb250ZW50IHRoYXQgYWxsb3cgaGRkdGVtcCB0b1xuIgogICIgICAgICAgICAgICAgICAgICAgICAgICByZWNvZ25pemUgc3VwcG9ydGVkIGRyaXZlcy5cbiIKICAiICAtRCAgIC0tZGVidWcgICAgICAgOiAgZGlzcGxheSB2YXJpb3VzIFMuTS5BLlIuVC4gZmllbGRzIGFuZCB0aGVpciB2YWx1ZXMuXG4iCi1AQCAtMTM2LDYgKzEwOSw3IEBACitAQCAtMTM2LDYgKzEwOSw3IEBAIG1zZ2lkICIiCiAgIiAgLWQgICAtLWRhZW1vbiAgICAgIDogIHJ1biBoZGR0ZW1wIGluIFRDUC9JUCBkYWVtb24gbW9kZSAocG9ydCAlZCBieSAiCiAgImRlZmF1bHQuKVxuIgogICIgIC1mICAgLS1maWxlPUZJTEUgICA6ICBzcGVjaWZ5IGRhdGFiYXNlIGZpbGUgdG8gdXNlLlxuIgpAQCAtMTA1NSw3ICsxMDY1LDcgQEAKICAiICAtbCAgIC0tbGlzdGVuPWFkZHIgOiAgbGlzdGVuIG9uIGEgc3BlY2lmaWMgaW50ZXJmYWNlIChpbiBUQ1AvSVAgZGFlbW9uICIKICAibW9kZSkuXG4iCiAgIiAgLW4gICAtLW51bWVyaWMgICAgIDogIHByaW50IG9ubHkgdGhlIHRlbXBlcmF0dXJlLlxuIgotQEAgLTE0Myw2ICsxMTcsOCBAQAorQEAgLTE0Myw2ICsxMTcsOCBAQCBtc2dpZCAiIgogICIgIC1zICAgLS1zZXBhcmF0b3I9QyA6ICBzZXBhcmF0b3IgdG8gdXNlIGJldHdlZW4gZmllbGRzIChpbiBUQ1AvSVAgZGFlbW9uICIKICAibW9kZSkuXG4iCiAgIiAgLVMgICAtLXN5c2xvZz1zICAgIDogIGxvZyB0ZW1wZXJhdHVyZSB0byBzeXNsb2cgZXZlcnkgcyBzZWNvbmRzLlxuIgpAQCAtMTA2NCw3ICsxMDc0LDcgQEAKICAiICAtcSAgIC0tcXVpZXQgICAgICAgOiAgZG8gbm90IGNoZWNrIGlmIHRoZSBkcml2ZSBpcyBzdXBwb3J0ZWQuXG4iCiAgIiAgLXYgICAtLXZlcnNpb24gICAgIDogIGRpc3BsYXkgaGRkdGVtcCB2ZXJzaW9uIG51bWJlci5cbiIKICAiICAtdyAgIC0td2FrZS11cCAgICAgOiAgd2FrZS11cCB0aGUgZHJpdmUgaWYgbmVlZC5cbiIKLUBAIC0xNTYsMTkgKzEzMiwyMyBAQAorQEAgLTE1NiwxOSArMTMyLDIzIEBAIG1zZ3N0ciAiIgogICIgICBoZGR0ZW1wIG1vc3RyYSBhIHRlbXBlcmF0dXJhIGRvcyBkaXNjb3MgaW5kaWNhZG9zIG5vIGFyZ3VtZW50by5cbiIKICAiICAgT3MgZGlzY29zIHTDqm0gZGUgc3Vwb3J0YXIgUy5NLkEuUi5ULlxuIgogICJcbiIKQEAgLTEwOTYsNyArMTEwNiw3IEBACiAgIiAgLXEgICAtLXF1aWV0ICAgICAgIDogIG7Do28gdmVyaWZpY2FyIHNlIG8gZGlzY28gw6kgc3Vwb3J0YWRvLlxuIgogICIgIC12ICAgLS12ZXJzaW9uICAgICA6ICBtb3N0cmFyIG8gbsO6bWVybyBkYSB2ZXJzw6NvIGRvIGhkZHRlbXAuXG4iCiAgIiAgLXcgICAtLXdha2UtdXAgICAgIDogIGFjb3JkYXIgbyBkaXNjbyBzZSBuZWNlc3PDoXJpby5cbiIKLUBAIC0xNzcsNTggKzE1Nyw5MyBAQAorQEAgLTE3Nyw1OCArMTU3LDkzIEBAIG1zZ3N0ciAiIgogICJcbiIKICAiUmVsYXRhciBidWdzIG91IG5vdm9zIGRpc2NvcyBwYXJhIDxoZGR0ZW1wQGd1enUubmV0Pi5cbiIKICAKQEAgLTEyMDgsNyArMTIxOCw5IEBACiArCiArI34gbXNnaWQgImZpZWxkKCVkKVx0ID0gJWRcbiIKICsjfiBtc2dzdHIgImNhbXBvKCVkKVx0ID0gJWRcbiIKLS0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUub3JpZy9wby9kZS5wbworSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9wby9kZS5wbworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAogKysrIGhkZHRlbXAtMC4zLWJldGExNS9wby9kZS5wbwogQEAgLTAsMCArMSwyNTAgQEAKICsjIEdlcm1hbiB0cmFuc2xhdGlvbiBvZiBoZGR0ZW1wLgpAQCAtMTQ2MSwxMiArMTQ3MywxNiBAQAogKyMsIGMtZm9ybWF0CiArbXNnaWQgImxvZyBzZW5zZSBmYWlsZWQgOiAlcyIKICttc2dzdHIgIlByb3Rva29sbC1Fcmtlbm51bmcgZmVobGdlc2NobGFnZW4gOiAlcyIKK0luZGV4OiBoZGR0ZW1wLTAuMy1iZXRhMTUvcG8vTElOR1VBUworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL3BvL0xJTkdVQVMKICsrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvcG8vTElOR1VBUwogQEAgLTEsMiArMSwyIEBACiAgIyBTZXQgb2YgYXZhaWxhYmxlIGxhbmd1YWdlcy4KIC1mciBwdCBydSBzdiAKICtkZSBmciBwdCBydSBzdiAKK0luZGV4OiBoZGR0ZW1wLTAuMy1iZXRhMTUvcG8vaGRkdGVtcC5wb3QKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUub3JpZy9wby9oZGR0ZW1wLnBvdAogKysrIGhkZHRlbXAtMC4zLWJldGExNS9wby9oZGR0ZW1wLnBvdAogQEAgLTEsMzUgKzEsMjIgQEAKQEAgLTE1MTMsNyArMTUyOSw3IEBACiAgIywgYy1mb3JtYXQKICBtc2dpZCAiIgogICJcbiIKLUBAIC0zOCw3ICsyNSw3IEBACitAQCAtMzgsNyArMjUsNyBAQCBtc2dpZCAiIgogICJcbiIKICBtc2dzdHIgIiIKICAKQEAgLTE1MjIsNyArMTUzOCw3IEBACiAgIywgYy1mb3JtYXQKICBtc2dpZCAiIgogICJXQVJOSU5HOiBEcml2ZSAlcyBkb2Vzbid0IHNlZW0gdG8gaGF2ZSBhIHRlbXBlcmF0dXJlIHNlbnNvci5cbiIKLUBAIC00Nyw2NyArMzQsNTkgQEAKK0BAIC00Nyw2NyArMzQsNTkgQEAgbXNnaWQgIiIKICAiV0FSTklORzogU2VlIC0taGVscCwgLS1kZWJ1ZyBhbmQgLS1kcml2ZWJhc2Ugb3B0aW9ucy5cbiIKICBtc2dzdHIgIiIKICAKQEAgLTE2MDQsNyArMTYyMCw3IEBACiAgIiAgLWIgICAtLWRyaXZlYmFzZSAgIDogIGRpc3BsYXkgZGF0YWJhc2UgZmlsZSBjb250ZW50IHRoYXQgYWxsb3cgaGRkdGVtcCB0b1xuIgogICIgICAgICAgICAgICAgICAgICAgICAgICByZWNvZ25pemUgc3VwcG9ydGVkIGRyaXZlcy5cbiIKICAiICAtRCAgIC0tZGVidWcgICAgICAgOiAgZGlzcGxheSB2YXJpb3VzIFMuTS5BLlIuVC4gZmllbGRzIGFuZCB0aGVpciB2YWx1ZXMuXG4iCi1AQCAtMTE3LDYgKzk2LDcgQEAKK0BAIC0xMTcsNiArOTYsNyBAQCBtc2dpZCAiIgogICIgIC1kICAgLS1kYWVtb24gICAgICA6ICBydW4gaGRkdGVtcCBpbiBUQ1AvSVAgZGFlbW9uIG1vZGUgKHBvcnQgJWQgYnkgIgogICJkZWZhdWx0LilcbiIKICAiICAtZiAgIC0tZmlsZT1GSUxFICAgOiAgc3BlY2lmeSBkYXRhYmFzZSBmaWxlIHRvIHVzZS5cbiIKQEAgLTE2MTIsNyArMTYyOCw3IEBACiAgIiAgLWwgICAtLWxpc3Rlbj1hZGRyIDogIGxpc3RlbiBvbiBhIHNwZWNpZmljIGludGVyZmFjZSAoaW4gVENQL0lQIGRhZW1vbiAiCiAgIm1vZGUpLlxuIgogICIgIC1uICAgLS1udW1lcmljICAgICA6ICBwcmludCBvbmx5IHRoZSB0ZW1wZXJhdHVyZS5cbiIKLUBAIC0xMjQsNiArMTA0LDggQEAKK0BAIC0xMjQsNiArMTA0LDggQEAgbXNnaWQgIiIKICAiICAtcyAgIC0tc2VwYXJhdG9yPUMgOiAgc2VwYXJhdG9yIHRvIHVzZSBiZXR3ZWVuIGZpZWxkcyAoaW4gVENQL0lQIGRhZW1vbiAiCiAgIm1vZGUpLlxuIgogICIgIC1TICAgLS1zeXNsb2c9cyAgICA6ICBsb2cgdGVtcGVyYXR1cmUgdG8gc3lzbG9nIGV2ZXJ5IHMgc2Vjb25kcy5cbiIKQEAgLTE2MjEsNyArMTYzNyw3IEBACiAgIiAgLXEgICAtLXF1aWV0ICAgICAgIDogIGRvIG5vdCBjaGVjayBpZiB0aGUgZHJpdmUgaXMgc3VwcG9ydGVkLlxuIgogICIgIC12ICAgLS12ZXJzaW9uICAgICA6ICBkaXNwbGF5IGhkZHRlbXAgdmVyc2lvbiBudW1iZXIuXG4iCiAgIiAgLXcgICAtLXdha2UtdXAgICAgIDogIHdha2UtdXAgdGhlIGRyaXZlIGlmIG5lZWQuXG4iCi1AQCAtMTMzLDU4ICsxMTUsNjkgQEAKK0BAIC0xMzMsNTggKzExNSw2OSBAQCBtc2dpZCAiIgogICJSZXBvcnQgYnVncyBvciBuZXcgZHJpdmVzIHRvIDxoZGR0ZW1wQGd1enUubmV0Pi5cbiIKICBtc2dzdHIgIiIKICAKQEAgLTE3MDUsOSArMTcyMSwxMSBAQAogICMsIGMtZm9ybWF0CiAgbXNnaWQgImxvZyBzZW5zZSBmYWlsZWQgOiAlcyIKICBtc2dzdHIgIiIKK0luZGV4OiBoZGR0ZW1wLTAuMy1iZXRhMTUvc3JjL3NhdGEuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL3NyYy9zYXRhLmMKICsrKyBoZGR0ZW1wLTAuMy1iZXRhMTUvc3JjL3NhdGEuYwotQEAgLTExOCwxMSArMTE4LDIyIEBACitAQCAtMTE4LDExICsxMTgsMjIgQEAgc3RhdGljIGVudW0gZV9nZXR0ZW1wIHNhdGFfZ2V0X3RlbXBlcmF0dQogICAgaW50ICAgICAgICAgICAgICBpOwogICAgdTE2ICogICAgICAgICAgICBwOwogIApAQCAtMTczMSw3ICsxNzQ5LDcgQEAKICAgIAogICAgLyogZ2V0IFNNQVJUIHZhbHVlcyAqLwogICAgaWYoc2F0YV9lbmFibGVfc21hcnQoZHNrLT5mZCkgIT0gMCkgewotQEAgLTE1NCwyNCArMTY1LDE1IEBACitAQCAtMTU0LDI0ICsxNjUsMTUgQEAgc3RhdGljIGVudW0gZV9nZXR0ZW1wIHNhdGFfZ2V0X3RlbXBlcmF0dQogICAgfQogIAogICAgLyogdGVtcGVyYXR1cmUgKi8KQEAgLTE3NTksNiArMTc3Nyw4IEBACiAgCiAgICAvKiBuZXZlciByZWFjaGVkICovCiAgfQorSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9zcmMvc2F0YWNtZHMuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL3NyYy9zYXRhY21kcy5jCiArKysgaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9zYXRhY21kcy5jCiBAQCAtMzksNyArMzksNyBAQApAQCAtMTc3MCw3ICsxNzkwLDcgQEAKICAKICAvLyBBcHBsaWNhdGlvbiBzcGVjaWZpYyBpbmNsdWRlcwogICNpbmNsdWRlICJzYXRhY21kcy5oIgotQEAgLTgwLDggKzgwLDggQEAKK0BAIC04MCw4ICs4MCw4IEBAIGludCBzYXRhX3Bhc3NfdGhydShpbnQgZGV2aWNlLCB1bnNpZ25lZAogIAogICAgcmV0ID0gc2NzaV9TR19JTyhkZXZpY2UsIGNkYiwgc2l6ZW9mKGNkYiksIGJ1ZmZlciwgY21kWzNdICogNTEyLCBzZW5zZSwgc2l6ZW9mKHNlbnNlKSwgZHhmZXJfZGlyZWN0aW9uKTsKICAgCkBAIC0xNzgxLDcgKzE4MDEsNyBAQAogICAgICByZXR1cm4gMTsJCSAgCiAgICBlbHNlIAogICAgICByZXR1cm4gcmV0OwotQEAgLTk1LDEwICs5NSwxMCBAQAorQEAgLTk1LDEwICs5NSwxMCBAQCB2b2lkIHNhdGFfZml4c3RyaW5nKHVuc2lnbmVkIGNoYXIgKnMsIGluCiAgICBwID0gczsKICAgIGVuZCA9ICZzW2J5dGVjb3VudCAmIH4xXTsgLyogYnl0ZWNvdW50IG11c3QgYmUgZXZlbiAqLwogIApAQCAtMTc5NCw2ICsxODE0LDggQEAKICAgIH0KICAKICAgIC8qIHN0cmlwIGxlYWRpbmcgYmxhbmtzICovCitJbmRleDogaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9iYWNrdHJhY2UuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL3NyYy9iYWNrdHJhY2UuYwogKysrIGhkZHRlbXAtMC4zLWJldGExNS9zcmMvYmFja3RyYWNlLmMKIEBAIC0xNiw5ICsxNiwxMCBAQApAQCAtMTgyMiw3ICsxODQ0LDcgQEAKICAKICAjZGVmaW5lIE1BWF9CVFNJWkUgNjQKICAKLUBAIC00Miw3ICs0Nyw2IEBACitAQCAtNDIsNyArNDcsNiBAQCB2b2lkIGJhY2t0cmFjZV9oYW5kbGVyKGludCBuLCBzaWdpbmZvX3QKICAgIHN0YXRpYyBjaGFyICoqbWVzc2FnZXMgPSBOVUxMOwogICAgc3RhdGljIHNpemVfdCBidHNpemUgPSAwOwogICAgc3RhdGljIHNpemVfdCBpOwpAQCAtMTgzMCw3ICsxODUyLDcgQEAKICAgIHN0YXRpYyBjaGFyICpzdHJlcnIgPSAiPz8/IjsKICAgIHN0YXRpYyBGSUxFICpmc3RybTsKICAKLUBAIC02MSwxMCArNjUsMTAgQEAKK0BAIC02MSwxMCArNjUsMTAgQEAgdm9pZCBiYWNrdHJhY2VfaGFuZGxlcihpbnQgbiwgc2lnaW5mb190CiAgICAgICAgU0lDX0NBU0UoU0VHVl9NQVBFUlIpOwogICAgICAgIFNJQ19DQVNFKFNFR1ZfQUNDRVJSKTsKICAgICAgfQpAQCAtMTg0Myw3ICsxODY1LDcgQEAKICAgICAgYnJlYWs7CiAgICBjYXNlIFNJR0lMTDoKICAgICAgc3dpdGNoKGlzdC0+c2lfY29kZSkgewotQEAgLTc3LDEwICs4MSwxMCBAQAorQEAgLTc3LDEwICs4MSwxMCBAQCB2b2lkIGJhY2t0cmFjZV9oYW5kbGVyKGludCBuLCBzaWdpbmZvX3QKICAgICAgICBTSUNfQ0FTRShJTExfQ09QUk9DKTsKICAgICAgICBTSUNfQ0FTRShJTExfQkFEU1RLKTsKICAgICAgfQpAQCAtMTg1Niw3ICsxODc4LDcgQEAKICAgICAgYnJlYWs7CiAgICBjYXNlIFNJR0JVUzoKICAgICAgc3dpdGNoKGlzdC0+c2lfY29kZSkgewotQEAgLTg4LDEwICs5MiwxMCBAQAorQEAgLTg4LDEwICs5MiwxMCBAQCB2b2lkIGJhY2t0cmFjZV9oYW5kbGVyKGludCBuLCBzaWdpbmZvX3QKICAgICAgICBTSUNfQ0FTRShCVVNfQURSRVJSKTsKICAgICAgICBTSUNfQ0FTRShCVVNfT0JKRVJSKTsKICAgICAgfQpAQCAtMTg2OSw3ICsxODkxLDcgQEAKICAgICAgYnJlYWs7CiAgICB9CiAgICBmZmx1c2goZnN0cm0pOwotQEAgLTEwMSw3ICsxMDUsNyBAQAorQEAgLTEwMSw3ICsxMDUsNyBAQCB2b2lkIGJhY2t0cmFjZV9oYW5kbGVyKGludCBuLCBzaWdpbmZvX3QKICAgIC8qCiAgICAgIG9sZF9laXAgPSAqKHVuc2lnbmVkIGludCopKCh2b2lkKikmbi00KTsKICAgICAgb2xkX2VicCA9ICoodW5zaWduZWQgaW50KikoKHZvaWQqKSZuLTgpOwpAQCAtMTg3OCw3ICsxOTAwLDcgQEAKICAgICAgKih1bnNpZ25lZCBpbnQqKSgodm9pZCopJm4tOCkgPSBwdWMtPnVjX21jb250ZXh0LmdyZWdzW1JFR19FQlBdOyAgICAKICAgICAgCiAgICAgIGJ0c2l6ZSA9IGJhY2t0cmFjZShidGluZm8sIE1BWF9CVFNJWkUpOwotQEAgLTExMSwxNCArMTE1LDE0IEBACitAQCAtMTExLDE0ICsxMTUsMTQgQEAgdm9pZCBiYWNrdHJhY2VfaGFuZGxlcihpbnQgbiwgc2lnaW5mb190CiAgICAqLwogICAgCiAgICBidHNpemUgPSBiYWNrdHJhY2UoYnRpbmZvLCBNQVhfQlRTSVpFKTsKQEAgLTE4OTUsOSArMTkxNywxMSBAQAogICAgZmZsdXNoKGZzdHJtKTsKICAgIGZjbG9zZShmc3RybSk7CiAgCitJbmRleDogaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9kYWVtb24uYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL3NyYy9kYWVtb24uYwogKysrIGhkZHRlbXAtMC4zLWJldGExNS9zcmMvZGFlbW9uLmMKLUBAIC0xNjMsMTkgKzE2MywxNiBAQAorQEAgLTE2MywxOSArMTYzLDE2IEBAIHZvaWQgZGFlbW9uX3NlbmRfbXNnKHN0cnVjdCBkaXNrICpsZGlza3MKICAKICAgICAgc3dpdGNoKGRzay0+cmV0KSB7CiAgICAgIGNhc2UgR0VUVEVNUF9OT1RfQVBQTElDQUJMRToKQEAgLTE5MjIsNyArMTk0Niw3IEBACiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgR0VUVEVNUF9LTk9XTjoKICAgICAgICBuID0gc25wcmludGYobXNnLCBzaXplb2YobXNnKSwgIiVzJWMlcyVjJWQlYyVjIiwKLUBAIC0xODUsMjYgKzE4MiwyMyBAQAorQEAgLTE4NSwyNiArMTgyLDIzIEBAIHZvaWQgZGFlbW9uX3NlbmRfbXNnKHN0cnVjdCBkaXNrICpsZGlza3MKICAgICAgICAgICAgICAgICAgICAgZ2V0X3VuaXQoZHNrKSk7CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgR0VUVEVNUF9OT1NFTlNPUjoKQEAgLTE5NTUsNyArMTk3OSw3IEBACiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgd3JpdGUoY2ZkLCZzZXBhcmF0b3IsIDEpOwotQEAgLTIyMiwxNCArMjE2LDExIEBACitAQCAtMjIyLDE0ICsyMTYsMTEgQEAgdm9pZCBkYWVtb25fc3lzbG9nKHN0cnVjdCBkaXNrICpsZGlza3MpCiAgICBmb3IoZHNrID0gbGRpc2tzOyBkc2s7IGRzayA9IGRzay0+bmV4dCkgewogICAgICBzd2l0Y2goZHNrLT5yZXQpIHsKICAgICAgY2FzZSBHRVRURU1QX0tOT1dOOgpAQCAtMTk3Miw3ICsxOTk2LDcgQEAKICAgICAgICBicmVhazsKICAgICAgY2FzZSBHRVRURU1QX0RSSVZFX1NMRUVQOgogICAgICAgIHN5c2xvZyhMT0dfV0FSTklORywgXygiJXM6ICVzOiBkcml2ZSBpcyBzbGVlcGluZyIpLCAKLUBAIC0yNzAsMjggKzI2MSwzMCBAQAorQEAgLTI3MCwyOCArMjYxLDMwIEBAIHZvaWQgZG9fZGFlbW9uX21vZGUoc3RydWN0IGRpc2sgKmxkaXNrcykKICAgIGZkX3NldCAgICAgICAgICAgICBkZWZmZHM7CiAgICB0aW1lX3QgICAgICAgICAgICAgbmV4dF90aW1lOwogIApAQCAtMjAyNSw5ICsyMDQ5LDExIEBACiAgICB9CiAgICBjaGRpcigiLyIpOwogICAgdW1hc2soMCk7CitJbmRleDogaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9oZGR0ZW1wLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSBoZGR0ZW1wLTAuMy1iZXRhMTUub3JpZy9zcmMvaGRkdGVtcC5jCiArKysgaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9oZGR0ZW1wLmMKLUBAIC03NSw3ICs3NSw3IEBACitAQCAtNzUsNyArNzUsNyBAQCBjaGFyICogICAgICAgICAgICAgbGlzdGVuX2FkZHI7CiAgY2hhciAgICAgICAgICAgICAgIHNlcGFyYXRvciA9IFNFUEFSQVRPUjsKICAKICBzdHJ1Y3QgYnVzdHlwZSAqICAgYnVzW0JVU19UWVBFX01BWF07CkBAIC0yMDM2LDcgKzIwNjIsNyBAQAogIAogIHN0YXRpYyBlbnVtIHsgREVGQVVMVCwgQ0VMU0lVUywgRkFIUkVOSEVJVCB9IHVuaXQ7CiAgCi1AQCAtMTk0LDIzICsxOTQsNyBAQAorQEAgLTE5NCwyMyArMTk0LDcgQEAgc3RhdGljIHZvaWQgZGlzcGxheV90ZW1wZXJhdHVyZShzdHJ1Y3QgZAogICAgICBpZiAobnVtZXJpYyAmJiBxdWlldCkKICAgICAgICBwcmludGYoIjBcbiIpOyAgICAgIAogICAgICBlbHNlCkBAIC0yMDYxLDcgKzIwODcsNyBAQAogIAogICAgICBicmVhazsKICAgIGNhc2UgR0VUVEVNUF9LTk9XTjoKLUBAIC0yMzIsMTQgKzIxNiwxNCBAQAorQEAgLTIzMiwxNCArMjE2LDE0IEBAIHN0YXRpYyB2b2lkIGRpc3BsYXlfdGVtcGVyYXR1cmUoc3RydWN0IGQKICAgICAgaWYgKG51bWVyaWMgJiYgcXVpZXQpCiAgICAgICAgcHJpbnRmKCIwXG4iKTsgICAgICAKICAgICAgZWxzZQpAQCAtMjA3OCw3ICsyMTA0LDcgQEAKICAgICAgICAKICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgotQEAgLTI2OCw4ICsyNTIsOSBAQAorQEAgLTI2OCw4ICsyNTIsOSBAQCB2b2lkIGRvX2RpcmVjdF9tb2RlKHN0cnVjdCBkaXNrICpsZGlza3MpCiAgCiAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewogICAgaW50ICAgICAgICAgICBpLCBjLCBsaW5kZXggPSAwLCBkYl9sb2FkZWQgPSAwOwpAQCAtMjA4OSwxNiArMjExNSwxNiBAQAogIAogICAgYmFja3RyYWNlX3NpZ3NlZ3YoKTsKICAgIGJhY2t0cmFjZV9zaWdpbGwoKTsKLUBAIC0yNzksNyArMjY0LDcgQEAKLSAgIGJpbmR0ZXh0ZG9tYWluIChQQUNLQUdFLCBMT0NBTEVESVIpOworQEAgLTI4Myw3ICsyNjgsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CiAgICB0ZXh0ZG9tYWluIChQQUNLQUdFKTsKKyAjZW5kaWYKICAgIAogLSAgc2hvd19kYiA9IGRlYnVnID0gbnVtZXJpYyA9IHF1aWV0ID0gd2FrZXVwID0gYWZfaGludCA9IHN5c2xvZ19pbnRlcnZhbCA9IDA7CiArICBzaG93X2RiID0gZGVidWcgPSBudW1lcmljID0gcXVpZXQgPSB3YWtldXAgPSBhZl9oaW50ID0gc3lzbG9nX2ludGVydmFsID0gZm9yZWdyb3VuZCA9IDA7CiAgICB1bml0ID0gREVGQVVMVDsKICAgIHBvcnRudW0gPSBQT1JUX05VTUJFUjsKICAgIGxpc3Rlbl9hZGRyID0gTlVMTDsKLUBAIC0yOTQsNiArMjc5LDcgQEAKK0BAIC0yOTgsNiArMjgzLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewogICAgICAgIHsiZHJpdmViYXNlIiwgIDAsIE5VTEwsICdiJ30sCiAgICAgICAgeyJkZWJ1ZyIsICAgICAgMCwgTlVMTCwgJ0QnfSwKICAgICAgICB7ImZpbGUiLCAgICAgICAxLCBOVUxMLCAnZid9LApAQCAtMjEwNiw3ICsyMTMyLDcgQEAKICAgICAgICB7Imxpc3RlbiIsICAgICAxLCBOVUxMLCAnbCd9LAogICAgICAgIHsidmVyc2lvbiIsICAgIDAsIE5VTEwsICd2J30sCiAgICAgICAgeyJwb3J0IiwgICAgICAgMSwgTlVMTCwgJ3AnfSwKLUBAIC0zMDUsNyArMjkxLDcgQEAKK0BAIC0zMDksNyArMjk1LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewogICAgICAgIHswLCAwLCAwLCAwfQogICAgICB9OwogICAKQEAgLTIxMTUsNyArMjE0MSw3IEBACiAgICAgIGlmIChjID09IC0xKQogICAgICAgIGJyZWFrOwogICAgICAKLUBAIC0zODIsMTIgKzM2OCwxMyBAQAorQEAgLTM4NiwxMiArMzcyLDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pIHsKICAJCSAiICAgICAgICAgICAgICAgICAgICAgICAgKGRvbmUgZm9yIGV2ZXJ5IGRyaXZlIHN1cHBsaWVkKS5cbiIKICAJCSAiICAtZCAgIC0tZGFlbW9uICAgICAgOiAgcnVuIGhkZHRlbXAgaW4gVENQL0lQIGRhZW1vbiBtb2RlIChwb3J0ICVkIGJ5IGRlZmF1bHQuKVxuIgogIAkJICIgIC1mICAgLS1maWxlPUZJTEUgICA6ICBzcGVjaWZ5IGRhdGFiYXNlIGZpbGUgdG8gdXNlLlxuIgpAQCAtMjEzMCw3ICsyMTU2LDcgQEAKICAJCSAiICAtcSAgIC0tcXVpZXQgICAgICAgOiAgZG8gbm90IGNoZWNrIGlmIHRoZSBkcml2ZSBpcyBzdXBwb3J0ZWQuXG4iCiAgCQkgIiAgLXYgICAtLXZlcnNpb24gICAgIDogIGRpc3BsYXkgaGRkdGVtcCB2ZXJzaW9uIG51bWJlci5cbiIKICAJCSAiICAtdyAgIC0td2FrZS11cCAgICAgOiAgd2FrZS11cCB0aGUgZHJpdmUgaWYgbmVlZC5cbiIKLUBAIC00MTgsNiArNDA1LDkgQEAKK0BAIC00MjIsNiArNDA5LDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewogIAkgIH0KICAgICAgICAgIH0KICAJYnJlYWs7CkBAIC0yMTQwLDcgKzIxNjYsNyBAQAogICAgICAgIGRlZmF1bHQ6CiAgCWV4aXQoMSk7CiAgICAgICAgfQotQEAgLTQ4OSw2ICs0NzksNyBAQAorQEAgLTQ5Myw2ICs0ODMsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CiAgICAgIGlmKCAoZHNrLT5mZCA9IG9wZW4oZHNrLT5kcml2ZSwgT19SRE9OTFkgfCBPX05PTkJMT0NLKSkgPCAwKSB7CiAgICAgICAgc25wcmludGYoZHNrLT5lcnJvcm1zZywgTUFYX0VSUk9STVNHX1NJWkUsICJvcGVuOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAgICBkc2stPnR5cGUgPSBFUlJPUjsKQEAgLTIxNDgsNyArMjE3NCw3IEBACiAgICAgICAgY29udGludWU7CiAgICAgIH0KICAKLUBAIC01MDEsNiArNDkyLDcgQEAKK0BAIC01MDUsNiArNDk2LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewogIAogICAgICAgIGxkaXNrcyA9IGRzay0+bmV4dDsKICAgICAgICBmcmVlKGRzayk7CkBAIC0yMTU2LDcgKzIxODIsNyBAQAogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgCi1AQCAtNTE0LDExICs1MDYsMTcgQEAKK0BAIC01MTgsMTEgKzUxMCwxNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CiAgCWRiX2xvYWRlZCA9IDE7CiAgICAgICAgfSAgICAgIAogIApAQCAtMjE3NywxNiArMjIwMywxOCBAQAogICAgICB9CiAgICB9CiAgCi1AQCAtNTMwLDUgKzUyOCw1IEBACitAQCAtNTM0LDUgKzUzMiw1IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pIHsKICAgICAgZG9fZGlyZWN0X21vZGUobGRpc2tzKTsKICAgIH0KICAKIC0gIHJldHVybiAwOwogKyAgcmV0dXJuIHJldDsKICB9CitJbmRleDogaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9hdGEuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL3NyYy9hdGEuYwogKysrIGhkZHRlbXAtMC4zLWJldGExNS9zcmMvYXRhLmMKLUBAIC03NSw3ICs3NSw3IEBACitAQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgZW51bSBlX2dldHRlbXAgYXRhX2dldF90ZW1wZXJhdHVyCiAgICBpbnQgICAgICAgICAgICAgIGk7CiAgICB1MTYgKiAgICAgICAgICAgIHA7CiAgCkBAIC0yMTk1LDcgKzIyMjMsNyBAQAogICAgICBjbG9zZShkc2stPmZkKTsKICAgICAgZHNrLT5mZCA9IC0xOwogICAgICByZXR1cm4gR0VUVEVNUF9OT1NFTlNPUjsKLUBAIC0xNDAsMjQgKzE0MCwxNSBAQAorQEAgLTE0MCwyNCArMTQwLDE1IEBAIHN0YXRpYyBlbnVtIGVfZ2V0dGVtcCBhdGFfZ2V0X3RlbXBlcmF0dXIKICAgICovCiAgCiAgICAvKiB0ZW1wZXJhdHVyZSAqLwpAQCAtMjIyNCw5ICsyMjUyLDExIEBACiAgCiAgICAvKiBuZXZlciByZWFjaGVkICovCiAgfQorSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9zcmMvaGRkdGVtcC5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gaGRkdGVtcC0wLjMtYmV0YTE1Lm9yaWcvc3JjL2hkZHRlbXAuaAogKysrIGhkZHRlbXAtMC4zLWJldGExNS9zcmMvaGRkdGVtcC5oCi1AQCAtMzksOCArMzksNiBAQAorQEAgLTM5LDggKzM5LDYgQEAgZW51bSBlX2dldHRlbXAgewogICAgR0VUVEVNUF9FUlJPUiwgICAgICAgICAgICAvKiBFcnJvciAqLwogICAgR0VUVEVNUF9OT1RfQVBQTElDQUJMRSwgICAvKiAqLwogICAgR0VUVEVNUF9VTktOT1dOLCAgICAgICAgICAvKiBEcml2ZSBpcyBub3QgaW4gZGF0YWJhc2UgKi8KQEAgLTIyMzUsNyArMjI2NSw3IEBACiAgICBHRVRURU1QX0tOT1dOLCAgICAgICAgICAgIC8qIERyaXZlIGFwcGVhciBpbiBkYXRhYmFzZSAqLwogICAgR0VUVEVNUF9OT1NFTlNPUiwgICAgICAgICAvKiBEcml2ZSBhcHBlYXIgaW4gZGF0YWJhc2UgYnV0IGlzIGtub3duIHRvIGhhdmUgbm8gc2Vuc29yICovCiAgICBHRVRURU1QX0RSSVZFX1NMRUVQICAgICAgIC8qIERyaXZlIGlzIHNsZWVwaW5nICovCi1AQCAtNzgsNyArNzYsNyBAQAorQEAgLTc4LDcgKzc2LDcgQEAgc3RydWN0IGJ1c3R5cGUgewogIAogIGV4dGVybiBzdHJ1Y3QgYnVzdHlwZSAqICAgYnVzW0JVU19UWVBFX01BWF07CiAgZXh0ZXJuIGNoYXIgICAgICAgICAgICAgICBlcnJvcm1zZ1tNQVhfRVJST1JNU0dfU0laRV07CkBAIC0yMjQ0LDkgKzIyNzQsMTEgQEAKICBleHRlcm4gY2hhciAgICAgICAgICAgICAgIHNlcGFyYXRvcjsKICBleHRlcm4gbG9uZyAgICAgICAgICAgICAgIHBvcnRudW0sIHN5c2xvZ19pbnRlcnZhbDsKICBleHRlcm4gY2hhciAqICAgICAgICAgICAgIGxpc3Rlbl9hZGRyOworSW5kZXg6IGhkZHRlbXAtMC4zLWJldGExNS9zcmMvc2NzaWNtZHMuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGhkZHRlbXAtMC4zLWJldGExNS5vcmlnL3NyYy9zY3NpY21kcy5jCiArKysgaGRkdGVtcC0wLjMtYmV0YTE1L3NyYy9zY3NpY21kcy5jCi1AQCAtMTQ3LDYgKzE0Nyw3IEBACitAQCAtMTQ3LDYgKzE0Nyw3IEBAIGludCBzY3NpX2lucXVpcnkoaW50IGRldmljZSwgdW5zaWduZWQgY2gKICAgICAgcmV0dXJuIDE7CiAgICBlbHNlIHsKICAgICAgc2NzaV9maXhzdHJpbmcoYnVmZmVyICsgOCwgMjQpOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9odG9wL2ZpbGVzLzAwMDEtVXNlLXBrZy1jb25maWcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2h0b3AvZmlsZXMvMDAwMS1Vc2UtcGtnLWNvbmZpZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzBkODZlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9odG9wL2ZpbGVzLzAwMDEtVXNlLXBrZy1jb25maWcucGF0Y2gKQEAgLTAsMCArMSwzOSBAQAorV2UgbmVlZCB0byB1c2UgcGtnLWNvbmZpZyB0byBmaW5kIHRoZSBuY3Vyc2VzIGxpYnJhcnkgaW5zdGVhZCBvZiB0aGUKK25jdXJzZXMqLWNvbmZpZyBhcHBsaWNhdGlvbnMuCisKK1NpZ25lZC1vZmYtYnk6IFBhdWwgQmFya2VyIDxwYmFya2VyQHRvZ2FubGFicy5jb20+CitTaWduZWQtb2ZmLWJ5OiBSb2JlcnQgSm9zbHluIDxyb2JlcnQuam9zbHluQHJlZHJlY3RhbmdsZS5vcmc+CisKK1Vwc3RyZWFtLXN0YXR1czogSW5hcHByb3ByaWF0ZQorICAgIChgbmN1cnNlcyotY29uZmlnYCBjYW4gYmUgdXNlZCBvdXRzaWRlIG9mIE9wZW5FbWJlZGRlZCkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggNTU5ZGM0ZC4uNzdhZWEyMiAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtMTg1LDEwICsxODUsMTAgQEAgbTRfZGVmaW5lKFtIVE9QX0NIRUNLX0xJQl0sCisgCisgQUNfQVJHX0VOQUJMRSh1bmljb2RlLCBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXVuaWNvZGVdLCBbZW5hYmxlIFVuaWNvZGUgc3VwcG9ydF0pXSwgLGVuYWJsZV91bmljb2RlPSJ5ZXMiKQorIGlmIHRlc3QgIngkZW5hYmxlX3VuaWNvZGUiID0geHllczsgdGhlbgorLSAgIEhUT1BfQ0hFQ0tfU0NSSVBUKFtuY3Vyc2VzdzZdLCBbYWRkbndzdHJdLCBbSEFWRV9MSUJOQ1VSU0VTV10sICJuY3Vyc2VzdzYtY29uZmlnIiwKKy0gICAgSFRPUF9DSEVDS19TQ1JJUFQoW25jdXJzZXN3XSwgW2FkZG53c3RyXSwgW0hBVkVfTElCTkNVUlNFU1ddLCAibmN1cnNlc3c2LWNvbmZpZyIsCistICAgICBIVE9QX0NIRUNLX1NDUklQVChbbmN1cnNlc3ddLCBbYWRkbndzdHJdLCBbSEFWRV9MSUJOQ1VSU0VTV10sICJuY3Vyc2VzdzUtY29uZmlnIiwKKy0gICAgICBIVE9QX0NIRUNLX1NDUklQVChbbmN1cnNlc10sIFthZGRud3N0cl0sIFtIQVZFX0xJQk5DVVJTRVNXXSwgIm5jdXJzZXM1LWNvbmZpZyIsCisrICAgSFRPUF9DSEVDS19TQ1JJUFQoW25jdXJzZXN3Nl0sIFthZGRud3N0cl0sIFtIQVZFX0xJQk5DVVJTRVNXXSwgInBrZy1jb25maWcgbmN1cnNlc3c2IiwKKysgICAgSFRPUF9DSEVDS19TQ1JJUFQoW25jdXJzZXN3XSwgW2FkZG53c3RyXSwgW0hBVkVfTElCTkNVUlNFU1ddLCAicGtnLWNvbmZpZyBuY3Vyc2VzdzYiLAorKyAgICAgSFRPUF9DSEVDS19TQ1JJUFQoW25jdXJzZXN3XSwgW2FkZG53c3RyXSwgW0hBVkVfTElCTkNVUlNFU1ddLCAicGtnLWNvbmZpZyBuY3Vyc2VzdzUiLAorKyAgICAgIEhUT1BfQ0hFQ0tfU0NSSVBUKFtuY3Vyc2VzXSwgW2FkZG53c3RyXSwgW0hBVkVfTElCTkNVUlNFU1ddLCAicGtnLWNvbmZpZyBuY3Vyc2VzNSIsCisgICAgICAgIEhUT1BfQ0hFQ0tfTElCKFtuY3Vyc2VzdzZdLCBbYWRkbndzdHJdLCBbSEFWRV9MSUJOQ1VSU0VTV10sCisgICAgICAgICBIVE9QX0NIRUNLX0xJQihbbmN1cnNlc3ddLCBbYWRkbndzdHJdLCBbSEFWRV9MSUJOQ1VSU0VTV10sCisgICAgICAgICAgSFRPUF9DSEVDS19MSUIoW25jdXJzZXNdLCBbYWRkbndzdHJdLCBbSEFWRV9MSUJOQ1VSU0VTV10sCitAQCAtMjAxLDggKzIwMSw4IEBAIGlmIHRlc3QgIngkZW5hYmxlX3VuaWNvZGUiID0geHllczsgdGhlbgorICAgICAgICAgIFtBQ19DSEVDS19IRUFERVJTKFtuY3Vyc2VzL2N1cnNlcy5oXSxbOl0sCisgICAgICAgICAgICAgW0FDX0NIRUNLX0hFQURFUlMoW25jdXJzZXMuaF0sWzpdLFttaXNzaW5nX2hlYWRlcnM9IiRtaXNzaW5nX2hlYWRlcnMgJGFjX2hlYWRlciJdKV0pXSldKQorIGVsc2UKKy0gICBIVE9QX0NIRUNLX1NDUklQVChbbmN1cnNlczZdLCBbcmVmcmVzaF0sIFtIQVZFX0xJQk5DVVJTRVNdLCAibmN1cnNlczYtY29uZmlnIiwKKy0gICAgSFRPUF9DSEVDS19TQ1JJUFQoW25jdXJzZXNdLCBbcmVmcmVzaF0sIFtIQVZFX0xJQk5DVVJTRVNdLCAibmN1cnNlczUtY29uZmlnIiwKKysgICBIVE9QX0NIRUNLX1NDUklQVChbbmN1cnNlczZdLCBbcmVmcmVzaF0sIFtIQVZFX0xJQk5DVVJTRVNdLCAicGtnLWNvbmZpZyBuY3Vyc2VzNiIsCisrICAgIEhUT1BfQ0hFQ0tfU0NSSVBUKFtuY3Vyc2VzXSwgW3JlZnJlc2hdLCBbSEFWRV9MSUJOQ1VSU0VTXSwgInBrZy1jb25maWcgbmN1cnNlczUiLAorICAgICAgSFRPUF9DSEVDS19MSUIoW25jdXJzZXM2XSwgIFtyZWZyZXNoXSwgW0hBVkVfTElCTkNVUlNFU10sCisgICAgICAgSFRPUF9DSEVDS19MSUIoW25jdXJzZXNdLCAgW3JlZnJlc2hdLCBbSEFWRV9MSUJOQ1VSU0VTXSwKKyAgICAgICBtaXNzaW5nX2xpYnJhcmllcz0iJG1pc3NpbmdfbGlicmFyaWVzIGxpYm5jdXJzZXMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2h0b3AvaHRvcF8xLjAuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHRvcC9odG9wXzEuMC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODE2NjFhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHRvcC9odG9wXzEuMC4zLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotU1VNTUFSWSA9ICJodG9wIHByb2Nlc3MgbW9uaXRvciIKLUhPTUVQQUdFID0gImh0dHA6Ly9odG9wLnNmLm5ldCIKLVNFQ1RJT04gPSAiY29uc29sZS91dGlscyIKLUxJQ0VOU0UgPSAiR1BMdjIiCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWMzMTI2NTM1MzJlOGU2NjlmMzBlNWVjOGJkYzIzYmUzIgotCi1ERVBFTkRTID0gIm5jdXJzZXMiCi1SREVQRU5EU18ke1BOfSA9ICJuY3Vyc2VzLXRlcm1pbmZvIgotCi1TUkNfVVJJID0gImh0dHA6Ly9oaXNoYW0uaG0vaHRvcC9yZWxlYXNlcy8ke1BWfS9odG9wLSR7UFZ9LnRhci5neiIKLQotU1JDX1VSSVttZDVzdW1dID0gImU3NjhiOWI1NWMwMzNkOWMxZGZmZGE3MmRiM2E2YWM3IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjA1NWM1NzkyN2Y3NTg0N2ZkYzIyMmI1MjU4YjA3OWE5NTQyODExYTlkY2Y1NDIxYzYxNWM3ZTE3ZjU1ZDE4MjkiCi0KLUxERkxBR1NfYXBwZW5kX2xpYmMtdWNsaWJjID0gIiAtbHViYWNrdHJhY2UiCi0KLWRvX2NvbmZpZ3VyZV9wcmVwZW5kICgpIHsKLSAgICBybSAtcmYgJHtTfS9jb25maWcuaAotfQotCi1pbmhlcml0IGF1dG90b29scwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9odG9wL2h0b3BfMi4xLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2h0b3AvaHRvcF8yLjEuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzUwOGY5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9odG9wL2h0b3BfMi4xLjAuYmIKQEAgLTAsMCArMSwzNSBAQAorU1VNTUFSWSA9ICJJbnRlcmFjdGl2ZSBwcm9jZXNzIHZpZXdlciIKK0hPTUVQQUdFID0gImh0dHA6Ly9oaXNoYW0uaG0vaHRvcCIKK1NFQ1RJT04gPSAiY29uc29sZS91dGlscyIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1jMzEyNjUzNTMyZThlNjY5ZjMwZTVlYzhiZGMyM2JlMyIKKworREVQRU5EUyA9ICJuY3Vyc2VzIgorCitTUkNfVVJJID0gImh0dHA6Ly9oaXNoYW0uaG0vaHRvcC9yZWxlYXNlcy8ke1BWfS8ke0JQfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1Vc2UtcGtnLWNvbmZpZy5wYXRjaCIKK1NSQ19VUklbbWQ1c3VtXSA9ICJmMjYyYjY2YWQ2YzE5NDc4MmY0ZDNhODA2MjdlODRjOCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzMjYwYmU5OTBkMjZlMjViNmI0OWZjOWQ5NmRiYzkzNWFkNDZlNjEwODNjMGI3ZjZkZjQxM2U1MTNiZjgwNzQ4IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworUEFDS0FHRUNPTkZJRyA/Pz0gInByb2MgXAorICAgICAgICAgICAgICAgICAgIGNncm91cCBcCisgICAgICAgICAgICAgICAgICAgdGFza3N0YXRzIFwKKyAgICAgICAgICAgICAgICAgICB1bmljb2RlIFwKKyAgICAgICAgICAgICAgICAgICBsaW51eC1hZmZpbml0eSBcCisgICAgICAgICAgICAgICAgICAgZGVsYXlhY2N0IgorUEFDS0FHRUNPTkZJR1twcm9jXSA9ICItLWVuYWJsZS1wcm9jLC0tZGlzYWJsZS1wcm9jIgorUEFDS0FHRUNPTkZJR1tvcGVudnpdID0gIi0tZW5hYmxlLW9wZW52eiwtLWRpc2FibGUtb3BlbnZ6IgorUEFDS0FHRUNPTkZJR1tjZ3JvdXBdID0gIi0tZW5hYmxlLWNncm91cCwtLWRpc2FibGUtY2dyb3VwIgorUEFDS0FHRUNPTkZJR1t2c2VydmVyXSA9ICItLWVuYWJsZS12c2VydmVyLC0tZGlzYWJsZS12c2VydmVyIgorUEFDS0FHRUNPTkZJR1t0YXNrc3RhdHNdID0gIi0tZW5hYmxlLXRhc2tzdGF0cywtLWRpc2FibGUtdGFza3N0YXRzIgorUEFDS0FHRUNPTkZJR1t1bmljb2RlXSA9ICItLWVuYWJsZS11bmljb2RlLC0tZGlzYWJsZS11bmljb2RlIgorUEFDS0FHRUNPTkZJR1tsaW51eC1hZmZpbml0eV0gPSAiLS1lbmFibGUtbGludXgtYWZmaW5pdHksLS1kaXNhYmxlLWxpbnV4LWFmZmluaXR5IgorUEFDS0FHRUNPTkZJR1tod2xvY10gPSAiLS1lbmFibGUtaHdsb2MsLS1kaXNhYmxlLWh3bG9jLGh3bG9jIgorUEFDS0FHRUNPTkZJR1tzZXR1aWRdID0gIi0tZW5hYmxlLXNldHVpZCwtLWRpc2FibGUtc2V0dWlkIgorUEFDS0FHRUNPTkZJR1tkZWxheWFjY3RdID0gIi0tZW5hYmxlLWRlbGF5YWNjdCwtLWRpc2FibGUtZGVsYXlhY2N0LGxpYm5sIgorCitkb19jb25maWd1cmVfcHJlcGVuZCAoKSB7CisgICAgcm0gLXJmICR7U30vY29uZmlnLmgKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHVuc3BlbGwvaHVuc3BlbGxfMS42LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2h1bnNwZWxsL2h1bnNwZWxsXzEuNi4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjU3MjlmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHVuc3BlbGwvaHVuc3BlbGxfMS42LjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1TVU1NQVJZID0gIkEgc3BlbGwgY2hlY2tlciBhbmQgbW9ycGhvbG9naWNhbCBhbmFseXplciBsaWJyYXJ5IgotSE9NRVBBR0UgPSAiaHR0cDovL2h1bnNwZWxsLmdpdGh1Yi5pby8iCi1MSUNFTlNFID0gIkdQTHYzIHwgTEdQTHYzIgotTElDX0ZJTEVTX0NIS1NVTSA9ICIgXAotICAgIGZpbGU6Ly9DT1BZSU5HO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCBcCi0gICAgZmlsZTovL0NPUFlJTkcuTEVTU0VSO21kNT1lNmE2MDBmZDVlMWQ5Y2JkZTJkOTgzNjgwMjMzYWQwMiBcCi0iCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tLyR7QlBOfS8ke0JQTn0vYXJjaGl2ZS92JHtQVn0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gIjBkZjFjMThjMTI4NGY4NjI1YWY1YWU1YThkNWM0Y2VmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjMwZjU5MzczM2M1MGI3OTQwMTZiYjAzZDMxZmQyYTIwNzFlNDYxMGM2ZmE0NzA4ZTMzZWRhZDIzMzUxMDJjNDkiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnZXR0ZXh0Ci0KLVJERVBFTkRTXyR7UE59ID0gInBlcmwiCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9odW5zcGVsbC9odW5zcGVsbF8xLjYuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHVuc3BlbGwvaHVuc3BlbGxfMS42LjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWZlZWE4OQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHVuc3BlbGwvaHVuc3BlbGxfMS42LjIuYmIKQEAgLTAsMCArMSwxNyBAQAorU1VNTUFSWSA9ICJBIHNwZWxsIGNoZWNrZXIgYW5kIG1vcnBob2xvZ2ljYWwgYW5hbHl6ZXIgbGlicmFyeSIKK0hPTUVQQUdFID0gImh0dHA6Ly9odW5zcGVsbC5naXRodWIuaW8vIgorTElDRU5TRSA9ICJHUEx2MyB8IExHUEx2MyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiIFwKKyAgICBmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQgXAorICAgIGZpbGU6Ly9DT1BZSU5HLkxFU1NFUjttZDU9ZTZhNjAwZmQ1ZTFkOWNiZGUyZDk4MzY4MDIzM2FkMDIgXAorIgorCitTUkNfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS8ke0JQTn0vJHtCUE59L2FyY2hpdmUvdiR7UFZ9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICIxYTU0NTA0Y2I0NzBhYWZhNjUzMGJiMzcyYTEwZGMwNCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzY2Q5Y2ViMDYyZmU1ODE0ZjY2OGU0ZjIyYjJmYTZlM2JhMGIzMzliOTIxNzM5NTQxY2UxODBjYWM0ZDZmNGM0IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ2V0dGV4dAorCitSREVQRU5EU18ke1BOfSA9ICJwZXJsIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHdkYXRhL2h3ZGF0YV9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2h3ZGF0YS9od2RhdGFfZ2l0LmJiCmluZGV4IDUwZDM1YzYuLjY3OTY3M2IgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaHdkYXRhL2h3ZGF0YV9naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9od2RhdGEvaHdkYXRhX2dpdC5iYgpAQCAtNSw4ICs1LDggQEAKIExJQ0VOU0UgPSAiR1BMLTIuMCsiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0xNTU2NTQ3NzExZTgyNDY5OTJiOTk5ZWRkOTQ0NWE1NyIKIAotUFYgPSAiMC4yOTErZ2l0JHtTUkNQVn0iCi1TUkNSRVYgPSAiNGJmYmRjZjU5MTNkNmRkNTMzMzZkMzFiODAzNTcwODA3NWU2ZmRmYSIKK1BWID0gIjAuMjk4K2dpdCR7U1JDUFZ9IgorU1JDUkVWID0gIjkwMzBmYmQ2YWIxNTM4ZjRkNzdkM2NmMWUwYjQ2M2E3ZWMyNWI1YzQiCiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vdmNyaG9uZWsvJHtCUE59LmdpdCIKIAogUyA9ICIke1dPUktESVJ9L2dpdCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaWtzZW1lbC9pa3NlbWVsLTEuNC9yMjUuZGlmZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaWtzZW1lbC9pa3NlbWVsLTEuNC9yMjUuZGlmZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY2NmNlMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lrc2VtZWwvaWtzZW1lbC0xLjQvcjI1LmRpZmYKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1UYWtlbiBmcm9tIHVwc3RyZWFtIHN1YnZlcnNpb24gcmVwb3NpdG9yeToKLQotaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2lrc2VtZWwvc291cmNlL2RldGFpbD9yPTI1Ci0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLQotIGNvbmZpZ3VyZS5hYyB8ICAgMTAgKysrKysrKysrLQotIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotLS0tIGlrc2VtZWwtMS40Lm9yaWcvY29uZmlndXJlLmFjCi0rKysgaWtzZW1lbC0xLjQvY29uZmlndXJlLmFjCi1AQCAtNDMsMTEgKzQzLDE5IEBAIEFNX0NPTkRJVElPTkFMKERPX1BPU0lYLCB0ZXN0ICJ4JGRlZmlvIgotIGRubCBDaGVja3MgZm9yIGxpYnJhcnkgZnVuY3Rpb25zCi0gQUNfU0VBUkNIX0xJQlMocmVjdixzb2NrZXQpCi0gQUNfQ0hFQ0tfRlVOQ1MoZ2V0b3B0X2xvbmcpCi0gQUNfQ0hFQ0tfRlVOQ1MoZ2V0YWRkcmluZm8pCi0gCi0tQU1fUEFUSF9MSUJHTlVUTFMoLEFDX0RFRklORShIQVZFX0dOVVRMUywsIlVzZSBsaWJnbnV0bHMiKSkKLStkbmwgQ2hlY2sgR05VIFRMUwotK1BLR19DSEVDS19NT0RVTEVTKEdOVVRMUywgZ251dGxzID49IDIuMC4wLCBoYXZlX2dudXRscz15ZXMsIGhhdmVfZ251dGxzPW5vKQotK2lmIHRlc3QgIngkaGF2ZV9nbnV0bHMiID0gInh5ZXMiOyB0aGVuCi0rICBMSUJHTlVUTFNfQ0ZMQUdTPSIkR05VVExTX0NGTEFHUyIKLSsgIExJQkdOVVRMU19MSUJTPSIkR05VVExTX0xJQlMiCi0rICBBQ19TVUJTVChMSUJHTlVUTFNfQ0ZMQUdTKQotKyAgQUNfU1VCU1QoTElCR05VVExTX0xJQlMpCi0rICBBQ19ERUZJTkUoSEFWRV9HTlVUTFMsIDEsIFt3aGV0aGVyIHRvIHVzZSBHbnVUU0wgc3VwcG9ydC5dKQotK2ZpCi0gCi0gZG5sIENoZWNrIC1XYWxsIGZsYWcgb2YgR0NDCi0gaWYgdGVzdCAieCRHQ0MiID0gInh5ZXMiOyB0aGVuCi0gICBpZiB0ZXN0IC16ICJgZWNobyAiJENGTEFHUyIgfCBncmVwICJcLVdhbGwiIDI+IC9kZXYvbnVsbGAiIDsgdGhlbgotICAgICBDRkxBR1M9IiRDRkxBR1MgLVdhbGwiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lrc2VtZWwvaWtzZW1lbC9hdm9pZC1vYnNvbGV0ZS1nbnV0bHMtYXBpcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaWtzZW1lbC9pa3NlbWVsL2F2b2lkLW9ic29sZXRlLWdudXRscy1hcGlzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxZmNjYzMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lrc2VtZWwvaWtzZW1lbC9hdm9pZC1vYnNvbGV0ZS1nbnV0bHMtYXBpcy5wYXRjaApAQCAtMCwwICsxLDU1IEBACitGcm9tIDcxMzZhOTA4YTA1NmQwZTM2Yzg5YjZlMWMzOWFkZmY4Y2UyYmIxZDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZSBNY0N1cmR5IDxhcm1jY3VyZHlAZ21haWwuY29tPgorRGF0ZTogV2VkLCAxIE5vdiAyMDE3IDEzOjE3OjM0IC0wNzAwCitTdWJqZWN0OiBbUEFUQ0hdIGF2b2lkIG9ic29sZXRlIGdudXRscyBhcGlzCisKK1RoZSBnbnV0bHNfKl9zZXRfcHJpb3JpdHkoKSBmYW1pbHkgb2YgZnVuY3Rpb25zIHdhcyBtYXJrZWQgZGVwcmVjYXRlZAoraW4gZ251dGxzIDIuMTIueCBhbmQgcmVtb3ZlZCBjb21wbGV0ZWx5IGluIDMuNS54LiBUaGVzZSBmdW5jdGlvbnMKK2hhdmUgYmVlbiBzdXBlcmNlZGVkIGJ5IGdudXRsc19wcmlvcml0eV9zZXRfZGlyZWN0KCksIHdoaWNoIHdhcyBhZGRlZAoraW4gZ251dGxzIDIuMi4wIChyZWxlYXNlZCAyMDA3LTEyLTE0KS4KKworUmF0aGVyIHRoYW4gc2ltcGx5IHVwZGF0ZSB0aGUgY3VzdG9tIGdudXRsc18qX3NldF9wcmlvcml0eSgpIGNhbGxzIHRvCit1c2UgZ251dGxzX3ByaW9yaXR5X3NldF9kaXJlY3QoKSwgZHJvcCB0aGUgY3VzdG9tIHByaW9yaXR5IHNlbGVjdGlvbgorY29tcGxldGVseSBhbmQgdXNlIHRoZSByZWNvbW1lbmRlZCBhcHByb2FjaCBvZiBsZXR0aW5nIGdudXRscyBwaWNrIGEKK3JlYXNvbmFibGUgc2V0IG9mIGRlZmF1bHRzLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogQW5kcmUgTWNDdXJkeSA8YXJtY2N1cmR5QGdtYWlsLmNvbT4KKy0tLQorIHNyYy90bHMtZ251dGxzLmMgfCAxMiArKy0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy90bHMtZ251dGxzLmMgYi9zcmMvdGxzLWdudXRscy5jCitpbmRleCBkN2I3YzkxLi43NDllOWVmIDEwMDY0NAorLS0tIGEvc3JjL3Rscy1nbnV0bHMuYworKysrIGIvc3JjL3Rscy1nbnV0bHMuYworQEAgLTQ4LDExICs0OCw2IEBAIHRsc19wdWxsIChzdHJ1Y3QgaWtzdGxzX2RhdGEgKmRhdGEsIGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGxlbikKKyBzdGF0aWMgaW50CisgdGxzX2hhbmRzaGFrZSAoc3RydWN0IGlrc3Rsc19kYXRhICoqZGF0YXAsIGlrc3RyYW5zcG9ydCAqdHJhbnMsIHZvaWQgKnNvY2spCisgeworLQljb25zdCBpbnQgcHJvdG9jb2xfcHJpb3JpdHlbXSA9IHsgR05VVExTX1RMUzEsIEdOVVRMU19TU0wzLCAwIH07CistCWNvbnN0IGludCBreF9wcmlvcml0eVtdID0geyBHTlVUTFNfS1hfUlNBLCAwIH07CistCWNvbnN0IGludCBjaXBoZXJfcHJpb3JpdHlbXSA9IHsgR05VVExTX0NJUEhFUl8zREVTX0NCQywgR05VVExTX0NJUEhFUl9BUkNGT1VSLCAwfTsKKy0JY29uc3QgaW50IGNvbXBfcHJpb3JpdHlbXSA9IHsgR05VVExTX0NPTVBfWkxJQiwgR05VVExTX0NPTVBfTlVMTCwgMCB9OworLQljb25zdCBpbnQgbWFjX3ByaW9yaXR5W10gPSB7IEdOVVRMU19NQUNfU0hBLCBHTlVUTFNfTUFDX01ENSwgMCB9OworIAlzdHJ1Y3QgaWtzdGxzX2RhdGEgKmRhdGE7CisgCWludCByZXQ7CisgCitAQCAtODEsMTEgKzc2LDggQEAgdGxzX2hhbmRzaGFrZSAoc3RydWN0IGlrc3Rsc19kYXRhICoqZGF0YXAsIGlrc3RyYW5zcG9ydCAqdHJhbnMsIHZvaWQgKnNvY2spCisgCQlyZXR1cm4gSUtTX05PTUVNOworIAl9CisgCistCWdudXRsc19wcm90b2NvbF9zZXRfcHJpb3JpdHkgKGRhdGEtPnNlc3MsIHByb3RvY29sX3ByaW9yaXR5KTsKKy0JZ251dGxzX2NpcGhlcl9zZXRfcHJpb3JpdHkoZGF0YS0+c2VzcywgY2lwaGVyX3ByaW9yaXR5KTsKKy0JZ251dGxzX2NvbXByZXNzaW9uX3NldF9wcmlvcml0eShkYXRhLT5zZXNzLCBjb21wX3ByaW9yaXR5KTsKKy0JZ251dGxzX2t4X3NldF9wcmlvcml0eShkYXRhLT5zZXNzLCBreF9wcmlvcml0eSk7CistCWdudXRsc19tYWNfc2V0X3ByaW9yaXR5KGRhdGEtPnNlc3MsIG1hY19wcmlvcml0eSk7CisrCWdudXRsc19zZXRfZGVmYXVsdF9wcmlvcml0eSAoZGF0YS0+c2Vzcyk7CisrCisgCWdudXRsc19jcmVkZW50aWFsc19zZXQgKGRhdGEtPnNlc3MsIEdOVVRMU19DUkRfQ0VSVElGSUNBVEUsIGRhdGEtPmNyZWQpOworIAorIAlnbnV0bHNfdHJhbnNwb3J0X3NldF9wdXNoX2Z1bmN0aW9uIChkYXRhLT5zZXNzLCAoZ251dGxzX3B1c2hfZnVuYykgdGxzX3B1c2gpOworLS0gCisxLjkuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lrc2VtZWwvaWtzZW1lbC9maXgtY29uZmlndXJlLW9wdGlvbi1wYXJzaW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pa3NlbWVsL2lrc2VtZWwvZml4LWNvbmZpZ3VyZS1vcHRpb24tcGFyc2luZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWFjY2RkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9pa3NlbWVsL2lrc2VtZWwvZml4LWNvbmZpZ3VyZS1vcHRpb24tcGFyc2luZy5wYXRjaApAQCAtMCwwICsxLDYyIEBACitGcm9tIDE3YTVjZjhmNzBiODZkOGEyMTk1NTYyZTJkOWRjY2NiNGZhMzVjODMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbmRyZSBNY0N1cmR5IDxhcm1jY3VyZHlAZ21haWwuY29tPgorRGF0ZTogVHVlLCAzMSBPY3QgMjAxNyAyMDowNTo1OCAtMDcwMAorU3ViamVjdDogW1BBVENIXSBmaXggY29uZmlndXJlIG9wdGlvbiBwYXJzaW5nCisKK0Rvbid0IG92ZXItd3JpdGUgd2l0aF9vcGVuc3NsIGV0YyBieSB0cnlpbmcgdG8gc2V0IHRvICRlbmFibGV2YXIKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEFuZHJlIE1jQ3VyZHkgPGFybWNjdXJkeUBnbWFpbC5jb20+CistLS0KKyBjb25maWd1cmUuYWMgfCAxNCArKysrKysrLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IDgyZTZkMmQuLjgyM2U2YzEgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTU2LDE3ICs1NiwxNyBAQCBmaQorIGRubCBPcHRpb25zIGZvciBvdmVycmlkaW5nIFRMUyBjaGVja3MKKyBBQ19BUkdfV0lUSChbb3BlbnNzbF0sCisgICBBU19IRUxQX1NUUklORyhbLS13aXRob3V0LW9wZW5zc2xdLFtkaXNhYmxlIGNoZWNraW5nIGZvciBvcGVuc3NsXSksCistICBbd2l0aF9vcGVuc3NsPSRlbmFibGV2YWxdLAorLSAgW3dpdGhfb3BlbnNzbD15ZXNdCisrICBbXSwKKysgIFt3aXRoX29wZW5zc2w9YXV0b10KKyApCisgQUNfQVJHX1dJVEgoW2dudXRsc10sCisgICBBU19IRUxQX1NUUklORyhbLS13aXRob3V0LWdudXRsc10sW2Rpc2FibGUgY2hlY2tpbmcgZm9yIEdOVSBUTFNdKSwKKy0gIFt3aXRoX2dudXRscz0kZW5hYmxldmFsXSwKKy0gIFt3aXRoX2dudXRscz15ZXNdCisrICBbXSwKKysgIFt3aXRoX2dudXRscz1hdXRvXQorICkKKyAKKyBkbmwgQ2hlY2sgT3BlblNTTAorLWlmIHRlc3QgIngkd2l0aF9vcGVuc3NsIiA9ICJ4eWVzIjsgdGhlbgorK2lmIHRlc3QgIngkd2l0aF9vcGVuc3NsIiAhPSAieG5vIjsgdGhlbgorICAgUEtHX0NIRUNLX01PRFVMRVMoW09QRU5TU0xdLCBvcGVuc3NsID49IDAuOS44LCBoYXZlX29wZW5zc2w9eWVzLCBoYXZlX29wZW5zc2w9bm8pCisgICBpZiB0ZXN0ICJ4JGhhdmVfb3BlbnNzbCIgPSAieHllcyI7IHRoZW4KKyAgICAgTElCT1BFTlNTTF9DRkxBR1M9IiRPUEVOU1NMX0NGTEFHUyIKK0BAIC03OCw3ICs3OCw3IEBAIGlmIHRlc3QgIngkd2l0aF9vcGVuc3NsIiA9ICJ4eWVzIjsgdGhlbgorIGZpCisgCisgZG5sIENoZWNrIEdOVSBUTFMKKy1pZiB0ZXN0ICJ4JHdpdGhfZ251dGxzIiA9ICJ4eWVzIjsgdGhlbgorK2lmIHRlc3QgIngkd2l0aF9nbnV0bHMiICE9ICJ4bm8iOyB0aGVuCisgICBpZiB0ZXN0ICJ4JGhhdmVfb3BlbnNzbCIgIT0gInh5ZXMiOyB0aGVuCisgICAgIFBLR19DSEVDS19NT0RVTEVTKFtHTlVUTFNdLCBnbnV0bHMgPj0gMi4wLjAsIGhhdmVfZ251dGxzPXllcywgaGF2ZV9nbnV0bHM9bm8pCisgICAgIGlmIHRlc3QgIngkaGF2ZV9nbnV0bHMiID0gInh5ZXMiOyB0aGVuCitAQCAtOTQsNyArOTQsNyBAQCBmaQorIGRubCBPcHRpb24gZm9yIG92ZXJyaWRpbmcgUHl0aG9uIGNoZWNrCisgQUNfQVJHX0VOQUJMRShbcHl0aG9uXSwKKyAgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtcHl0aG9uXSxbZGlzYWJsZSBjaGVja2luZyBmb3IgUHl0aG9uIGJpbmRpbmdzXSksCistICBbd2l0aF9weXRob249JGVuYWJsZXZhbF0sCisrICBbXSwKKyAgIFt3aXRoX3B5dGhvbj15ZXNdCisgKQorIAorLS0gCisxLjkuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lrc2VtZWwvaWtzZW1lbF8xLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2lrc2VtZWwvaWtzZW1lbF8xLjUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDkwM2U5MAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvaWtzZW1lbC9pa3NlbWVsXzEuNS5iYgpAQCAtMCwwICsxLDI0IEBACitTVU1NQVJZID0gIkZhc3QgYW5kIHBvcnRhYmxlIFhNTCBwYXJzZXIgYW5kIEphYmJlciBwcm90b2NvbCBsaWJyYXJ5IgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL21lZHVrZXR0by9pa3NlbWVsIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJMR1BMdjIuMSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQ4MDQ1ZjNiOGY5MjljMWNiMjlhMWUzZmQ3MzdiNDk5IgorCitTUkNSRVYgPSAiOTc4YjczMzQ2MmU0MWVmZDVkYjcyYmM5OTc0Y2IzYjBkMWQ1ZjZmYSIKK1BWID0gIjEuNStnaXQke1NSQ1BWfSIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL21lZHVrZXR0by9pa3NlbWVsLmdpdDtwcm90b2NvbD1odHRwcyBcCisgICAgICAgICAgIGZpbGU6Ly9maXgtY29uZmlndXJlLW9wdGlvbi1wYXJzaW5nLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2F2b2lkLW9ic29sZXRlLWdudXRscy1hcGlzLnBhdGNoIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgbGliX3BhY2thZ2UKKworIyBUTFMgc3VwcG9ydCByZXF1aXJlcyBlaXRoZXIgb3BlbnNzbCBvciBnbnV0bHMgKGlmIGJvdGggYXJlIGVuYWJsZWQgb3BlbnNzbCB3aWxsIGJlIHVzZWQpLgorUEFDS0FHRUNPTkZJRyA/PSAiZ251dGxzIgorCitQQUNLQUdFQ09ORklHW2dudXRsc10gPSAiLS13aXRoLWdudXRscywtLXdpdGhvdXQtZ251dGxzLGdudXRscyIKK1BBQ0tBR0VDT05GSUdbb3BlbnNzbF0gPSAiLS13aXRoLW9wZW5zc2wsLS13aXRob3V0LW9wZW5zc2wsb3BlbnNzbCIKKworRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1weXRob24iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmVpZ2VuL2xpYmVpZ2VuLzAwMDEtQ01ha2VMaXN0cy50eHQtaW5zdGFsbC1GaW5kRWlnZW4zLmNtYWtlLXNjcmlwdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZWlnZW4vbGliZWlnZW4vMDAwMS1DTWFrZUxpc3RzLnR4dC1pbnN0YWxsLUZpbmRFaWdlbjMuY21ha2Utc2NyaXB0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjFkYWRiLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZWlnZW4vbGliZWlnZW4vMDAwMS1DTWFrZUxpc3RzLnR4dC1pbnN0YWxsLUZpbmRFaWdlbjMuY21ha2Utc2NyaXB0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotRnJvbSBmZDhiYzY2ZWZhYzEwNTljMTA2OGY4MDQ3NDZiMDFiOTAxNzdjMzMzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTHVrYXMgQnVsd2FobiA8bHVrYXMuYnVsd2FobkBvc3MuYm13LWNhcml0LmRlPgotRGF0ZTogU3VuLCAxOCBPY3QgMjAxNSAxNjo1MjoyNSArMDIwMAotU3ViamVjdDogW1BBVENIXSBDTWFrZUxpc3RzLnR4dDogaW5zdGFsbCBGaW5kRWlnZW4zLmNtYWtlIHNjcmlwdAotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogTHVrYXMgQnVsd2FobiA8bHVrYXMuYnVsd2FobkBvc3MuYm13LWNhcml0LmRlPgotLS0tCi0gQ01ha2VMaXN0cy50eHQgfCAyICsrCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAotaW5kZXggNzZhMTFiOS4uZWM2YzZlYSAxMDA2NDQKLS0tLSBhL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9DTWFrZUxpc3RzLnR4dAotQEAgLTM0Miw2ICszNDIsOCBAQCBpZihFSUdFTl9CVUlMRF9QS0dDT05GSUcpCi0gICAgICAgICApCi0gZW5kaWYoRUlHRU5fQlVJTERfUEtHQ09ORklHKQotIAotK2luc3RhbGwoRklMRVMgIiR7UFJPSkVDVF9TT1VSQ0VfRElSfS9jbWFrZS9GaW5kRWlnZW4zLmNtYWtlIiBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vc2hhcmUvY21ha2UvTW9kdWxlcyIpCi0rCi0gYWRkX3N1YmRpcmVjdG9yeShFaWdlbikKLSAKLSBhZGRfc3ViZGlyZWN0b3J5KGRvYyBFWENMVURFX0ZST01fQUxMKQotLS0gCi0xLjkuMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmVpZ2VuL2xpYmVpZ2VuXzMuMi44LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJlaWdlbi9saWJlaWdlbl8zLjIuOC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGNjYTJlOS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmVpZ2VuL2xpYmVpZ2VuXzMuMi44LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiRWlnZW4gaXMgYSBDKysgdGVtcGxhdGUgbGlicmFyeSBmb3IgbGluZWFyIGFsZ2VicmE6IG1hdHJpY2VzLCB2ZWN0b3JzLCBudW1lcmljYWwgc29sdmVycywgYW5kIHJlbGF0ZWQgYWxnb3JpdGhtcy4iCi1BVVRIT1IgPSAiQmVub8OudCBKYWNvYiBhbmQgR2HDq2wgR3Vlbm5lYmF1ZCBhbmQgb3RoZXJzIgotSE9NRVBBR0UgPSAiaHR0cDovL2VpZ2VuLnR1eGZhbWlseS5vcmcvIgotTElDRU5TRSA9ICJNUEwtMi4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORy5NUEwyO21kNT04MTVjYTU5OWM5ZGYyNDdhMGM3ZjYxOWJhYjEyM2RhZCIKLQotU1JDX1VSSSA9ICJodHRwOi8vYml0YnVja2V0Lm9yZy9laWdlbi9laWdlbi9nZXQvJHtQVn0udGFyLmJ6Mjtkb3dubG9hZGZpbGVuYW1lPSR7QlB9LnRhci5iejIgXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1DTWFrZUxpc3RzLnR4dC1pbnN0YWxsLUZpbmRFaWdlbjMuY21ha2Utc2NyaXB0LnBhdGNoIgotU1JDX1VSSVttZDVzdW1dID0gIjllM2JmYWFhYjNkYjE4MjUzY2ZkODdlYTY5N2IzYWIxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjcyMmE2M2Q2NzJiNzBmMzljMjcxYzVlMmE0YTQzYmExNGQxMjAxNTY3NDMzMTc5MDQxNGZjYjE2N2MzNTdlNTUiCi0KLVMgPSAiJHtXT1JLRElSfS9laWdlbi1laWdlbi0wNzEwNWY3MTI0ZjkiCi0KLWluaGVyaXQgY21ha2UKLQotRklMRVNfJHtQTn0gPSAiJHtpbmNsdWRlZGlyfSAke2xpYmRpcn0iCi1GSUxFU18ke1BOfS1kZXYgPSAiJHtkYXRhZGlyfS9jbWFrZS9Nb2R1bGVzICR7ZGF0YWRpcn0vcGtnY29uZmlnIgotCi0jICR7UE59IGlzIGVtcHR5IHNvIHdlIG5lZWQgdG8gdHdlYWsgLWRldiBhbmQgLWRiZyBwYWNrYWdlIGRlcGVuZGVuY2llcwotUkRFUEVORFNfJHtQTn0tZGV2ID0gIiIKLVJSRUNPTU1FTkRTXyR7UE59LWRiZyA9ICIke1BOfS1kZXYgKD0gJHtFWFRFTkRQS0dWfSkiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmVpZ2VuL2xpYmVpZ2VuXzMuMy40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJlaWdlbi9saWJlaWdlbl8zLjMuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzNiMzJlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJlaWdlbi9saWJlaWdlbl8zLjMuNC5iYgpAQCAtMCwwICsxLDIwIEBACitERVNDUklQVElPTiA9ICJFaWdlbiBpcyBhIEMrKyB0ZW1wbGF0ZSBsaWJyYXJ5IGZvciBsaW5lYXIgYWxnZWJyYTogbWF0cmljZXMsIHZlY3RvcnMsIG51bWVyaWNhbCBzb2x2ZXJzLCBhbmQgcmVsYXRlZCBhbGdvcml0aG1zLiIKK0FVVEhPUiA9ICJCZW5vw650IEphY29iIGFuZCBHYcOrbCBHdWVubmViYXVkIGFuZCBvdGhlcnMiCitIT01FUEFHRSA9ICJodHRwOi8vZWlnZW4udHV4ZmFtaWx5Lm9yZy8iCitMSUNFTlNFID0gIk1QTC0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HLk1QTDI7bWQ1PTgxNWNhNTk5YzlkZjI0N2EwYzdmNjE5YmFiMTIzZGFkIgorCitTUkNfVVJJID0gImh0dHA6Ly9iaXRidWNrZXQub3JnL2VpZ2VuL2VpZ2VuL2dldC8ke1BWfS50YXIuYnoyO2Rvd25sb2FkZmlsZW5hbWU9JHtCUH0udGFyLmJ6MiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJhN2FhYjlmNzU4MjQ5Yjg2YzkzMjIxYWQ0MTdmYmUxOCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkZDI1NGJlYjBiYWZjNjk1ZDBmNjJhZTFhMjIyZmY4NWI1MmRiYWEzYTE2Zjc2ZTc4MWRjZTIyZDBkMjBhNGE2IgorCitTID0gIiR7V09SS0RJUn0vZWlnZW4tZWlnZW4tNWEwMTU2ZTQwZmViIgorCitpbmhlcml0IGNtYWtlCisKK0ZJTEVTXyR7UE59ID0gIiR7aW5jbHVkZWRpcn0gJHtsaWJkaXJ9IgorRklMRVNfJHtQTn0tZGV2ID0gIiR7ZGF0YWRpcn0vZWlnZW4zL2NtYWtlICR7ZGF0YWRpcn0vY21ha2UvTW9kdWxlcyAke2RhdGFkaXJ9L3BrZ2NvbmZpZyIKKworIyAke1BOfSBpcyBlbXB0eSBzbyB3ZSBuZWVkIHRvIHR3ZWFrIC1kZXYgYW5kIC1kYmcgcGFja2FnZSBkZXBlbmRlbmNpZXMKK1JERVBFTkRTXyR7UE59LWRldiA9ICIiCitSUkVDT01NRU5EU18ke1BOfS1kYmcgPSAiJHtQTn0tZGV2ICg9ICR7RVhURU5EUEtHVn0pIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJncGlvZC9saWJncGlvZC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZ3Bpb2QvbGliZ3Bpb2QuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1MDYwNTcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJncGlvZC9saWJncGlvZC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVNVTU1BUlkgPSAiQyBsaWJyYXJ5IGFuZCB0b29scyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgbGludXggR1BJTyBjaGFyYWN0ZXIgZGV2aWNlIgotCi1MSUNFTlNFID0gIkxHUEx2Mi4xKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTJjYWNlZDBiMjVkZmVmZDRjNjAxZDkyYmQxNTExNmRlIgotCi1TUkNfVVJJID0gImh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvcHViL3NvZnR3YXJlL2xpYnMvbGliZ3Bpb2QvJHtCUH0udGFyLnh6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNWY5ZDg1NTM1MmIxYTUyNzJjZjZmMWMyZTIwNjg5ZDIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNmRmZDZhZWI1NDRlOGI3YmFmNDg0YTA1YzlhZTBlNjcwMjJjMTA5MzYyYTQxZDg3MDA1MzkzMDQ2YjZiZWFjZiIKLQotUFYgPSAiMC4zLjEiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi0jIGVuYWJsZSB0b29scwotUEFDS0FHRUNPTkZJRyA/PSAidG9vbHMiCi0KLVBBQ0tBR0VDT05GSUdbdGVzdHNdID0gIi0tZW5hYmxlLXRlc3RzLC0tZGlzYWJsZS10ZXN0cyxrbW9kIHVkZXYiCi1QQUNLQUdFQ09ORklHW3Rvb2xzXSA9ICItLWVuYWJsZS10b29scywtLWRpc2FibGUtdG9vbHMsIgotCi1QQUNLQUdFUyArPSAiICR7UE59LXRvb2xzIgotCi1GSUxFU18ke1BOfS10b29scyA9ICIke2JpbmRpcn0vKiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZ3Bpb2QvbGliZ3Bpb2QuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJncGlvZC9saWJncGlvZC5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Q3NzUwNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZ3Bpb2QvbGliZ3Bpb2QuaW5jCkBAIC0wLDAgKzEsMjEgQEAKK1NVTU1BUlkgPSAiQyBsaWJyYXJ5IGFuZCB0b29scyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgbGludXggR1BJTyBjaGFyYWN0ZXIgZGV2aWNlIgorCitMSUNFTlNFID0gIkxHUEx2Mi4xKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTJjYWNlZDBiMjVkZmVmZDRjNjAxZDkyYmQxNTExNmRlIgorCitTUkNfVVJJID0gImh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvcHViL3NvZnR3YXJlL2xpYnMvbGliZ3Bpb2QvJHtCUH0udGFyLnh6IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworIyBlbmFibGUgdG9vbHMKK1BBQ0tBR0VDT05GSUcgPz0gInRvb2xzIgorCitQQUNLQUdFQ09ORklHW3Rlc3RzXSA9ICItLWVuYWJsZS10ZXN0cywtLWRpc2FibGUtdGVzdHMsa21vZCB1ZGV2IgorUEFDS0FHRUNPTkZJR1t0b29sc10gPSAiLS1lbmFibGUtdG9vbHMsLS1kaXNhYmxlLXRvb2xzLCIKKworUEFDS0FHRVMgPSsgIiAke1BOfS10b29scyIKKworRklMRVNfJHtQTn0tdG9vbHMgPSAiJHtiaW5kaXJ9LyoiCisKK1JSRUNPTU1FTkRTX1RPT0xTID0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3Rvb2xzJywgJyR7UE59LXRvb2xzJywgJycsZCl9IgorUlJFQ09NTUVORFNfJHtQTn0gKz0gIiR7UlJFQ09NTUVORFNfVE9PTFN9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJncGlvZC9saWJncGlvZF8wLjMuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZ3Bpb2QvbGliZ3Bpb2RfMC4zLjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDlmYjY1YQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZ3Bpb2QvbGliZ3Bpb2RfMC4zLjMuYmIKQEAgLTAsMCArMSw0IEBACityZXF1aXJlIGxpYmdwaW9kLmluYworCitTUkNfVVJJW21kNXN1bV0gPSAiMmFhMWUxYTgwYzNjOTE5YWUxNDJhYjlhNTVmYjU5Y2EiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjc3M2U1NTdhZjFhNDk3Zjc4NjgyNTQ2MmE3NzZiN2JmOTAxNjhlNjdlZTBhNWJjNWQyNDczYTU2NzRkYzM4YyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliZ3Bpb2QvbGliZ3Bpb2RfMS4wLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmdwaW9kL2xpYmdwaW9kXzEuMC4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxNDk5ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmdwaW9kL2xpYmdwaW9kXzEuMC4xLmJiCkBAIC0wLDAgKzEsNCBAQAorcmVxdWlyZSBsaWJncGlvZC5pbmMKKworU1JDX1VSSVttZDVzdW1dID0gIjJjYTBjM2ViMTdkNjllMzY3YjZmNmExMDljYTg2ZTQxIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjk3MjkyNDE5NTM2N2Y1ZmIwNDVjMDIzZDY1MzQwYzRiN2RmYzg3NjQ0OTk1MTZiZTQ0NjU1Mzg2NTIwOGRlZGMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmlpby9saWJpaW9fZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJpaW8vbGliaWlvX2dpdC5iYgppbmRleCBkNjZhYzU4Li5iYTM4MGVkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYmlpby9saWJpaW9fZ2l0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGliaWlvL2xpYmlpb19naXQuYmIKQEAgLTQsMjEgKzQsNDEgQEAKIExJQ0VOU0UgPSAiTEdQTHYyLjErIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORy50eHQ7bWQ1PTdjMTNiMzM3NmNlYTBjZTY4ZDJkMmRhMGExYjNhNzJjIgogCi1TUkNSRVYgPSAiMDhmOTQ3ZDVlNDA2MDAyNTliYjY5OGMzYjk1NTM4ZTlmMmJmZWNjMiIKLVBWID0gIjAuOCtnaXQke1NSQ1BWfSIKK1NSQ1JFViA9ICJmYTgyOTc0ZDhiZDFmZGVkNzhlNjMwYWI3MWE3ZGVkMWIxMWQwZTMzIgorUFYgPSAiMC4xNCtnaXQke1NSQ1BWfSIKIAotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2FuYWxvZ2RldmljZXNpbmMvbGliaWlvLmdpdCIKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9hbmFsb2dkZXZpY2VzaW5jL2xpYmlpby5naXQ7cHJvdG9jb2w9aHR0cHMiCiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKLURFUEVORFMgPSAiZmxleC1uYXRpdmUgYmlzb24tbmF0aXZlIGF2YWhpIGxpYmFpbyBsaWJ1c2IxIGxpYnhtbDIiCitpbmhlcml0IGNtYWtlIHB5dGhvbm5hdGl2ZSBzeXN0ZW1kCiAKLWluaGVyaXQgY21ha2UgcHl0aG9ubmF0aXZlCitERVBFTkRTID0gIiBcCisgICAgZmxleC1uYXRpdmUgYmlzb24tbmF0aXZlIGxpYmFpbyBcCisgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd6ZXJvY29uZicsICdhdmFoaScsICcnLCBkKX0gXAorIgorCitFWFRSQV9PRUNNQUtFID0gIiBcCisgICAgLURDTUFLRV9CVUlMRF9UWVBFPVJlbFdpdGhEZWJJbmZvIFwKKyAgICAtRFVERVZfUlVMRVNfSU5TVEFMTF9ESVI9JHtub25hcmNoX2Jhc2VfbGliZGlyfS91ZGV2L3J1bGVzLmQgXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICctRFdJVEhfU1lTVEVNRD1PTiAtRFNZU1RFTURfVU5JVF9JTlNUQUxMX0RJUj0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9JywgJycsIGQpfSBcCisiCisKK1BBQ0tBR0VDT05GSUcgPz89ICJVU0JfQkFDS0VORCBORVRXT1JLX0JBQ0tFTkQiCisKK1BBQ0tBR0VDT05GSUdbVVNCX0JBQ0tFTkRdID0gIi1EV0lUSF9VU0JfQkFDS0VORD1PTiwtRFdJVEhfVVNCX0JBQ0tFTkQ9T0ZGLGxpYnVzYjEsbGlieG1sMiIKK1BBQ0tBR0VDT05GSUdbTkVUV09SS19CQUNLRU5EXSA9ICItRFdJVEhfTkVUV09SS19CQUNLRU5EPU9OLC1EV0lUSF9ORVRXT1JLX0JBQ0tFTkQ9T0ZGLGxpYnhtbDIiCiAKIFBBQ0tBR0VTID0rICIke1BOfS1paW9kICR7UE59LXRlc3RzICR7UE59LXB5dGhvbiIKIAogUkRFUEVORFNfJHtQTn0tcHl0aG9uID0gIiR7UE59IHB5dGhvbi1jdHlwZXMgcHl0aG9uLXN0cmluZ29sZCIKIAotRklMRVNfJHtQTn0taWlvZCA9ICIke3NiaW5kaXJ9L2lpb2QiCitGSUxFU18ke1BOfS1paW9kID0gIiBcCisgICAgJHtzYmluZGlyfS9paW9kIFwKKyAgICAke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9L2lpb2Quc2VydmljZSBcCisiCiBGSUxFU18ke1BOfS10ZXN0cyA9ICIke2JpbmRpcn0iCiBGSUxFU18ke1BOfS1weXRob24gPSAiJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0iCisKK1NZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0taWlvZCIKK1NZU1RFTURfU0VSVklDRV8ke1BOfS1paW9kID0gImlpb2Quc2VydmljZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlibWljcm9odHRwZC9saWJtaWNyb2h0dHBkXzAuOS41NS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlibWljcm9odHRwZC9saWJtaWNyb2h0dHBkXzAuOS41NS5iYgppbmRleCBlZTM5OWE3Li4wOTMwYTI3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYm1pY3JvaHR0cGQvbGlibWljcm9odHRwZF8wLjkuNTUuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJtaWNyb2h0dHBkL2xpYm1pY3JvaHR0cGRfMC45LjU1LmJiCkBAIC0xMSw2ICsxMSw4IEBACiAKIGluaGVyaXQgYXV0b3Rvb2xzIGxpYl9wYWNrYWdlIHBrZ2NvbmZpZyBnZXR0ZXh0CiAKK0NGTEFHUyArPSAiLXB0aHJlYWQgLURfUkVFTlRSQU5UIgorCiBFWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS1zdGF0aWMgLS13aXRoLWdudXRscz0ke1NUQUdJTkdfTElCRElSfS8uLi8iCiAKIFBBQ0tBR0VDT05GSUcgPz0gImN1cmwiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYm9sL2xpYm9sXzAuMy4xOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlib2wvbGlib2xfMC4zLjE4LmJiCmluZGV4IDc0ZTFlZjIuLmQ3YWRiMmIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlib2wvbGlib2xfMC4zLjE4LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlib2wvbGlib2xfMC4zLjE4LmJiCkBAIC00LDcgKzQsNyBAQAogTElDRU5TRSA9ICJHUEx2MiIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWM5M2MwNTUwYmQzMTczZjQ1MDRiMmNiZDg5OTFlNTBiIgogCi1TUkNfVVJJID0gImh0dHA6Ly93d3cuYmFsYWJpdC5jb20vZG93bmxvYWRzL2ZpbGVzL2xpYm9sLzAuMy8ke0JQfS50YXIuZ3ogXAorU1JDX1VSSSA9ICJodHRwOi8vd3d3LmJhbGFiaXQuY29tL2Rvd25sb2Fkcy9saWJvbC8wLjMvJHtCUH0udGFyLmd6IFwKICAgICAgICAgICAgZmlsZTovL2NvbmZpZ3VyZS5wYXRjaCIKIFNSQ19VUklbbWQ1c3VtXSA9ICJjYmFkZjRiN2VhMjc2ZGZhODVhY2MzOGExY2M1ZmYxNyIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICI5ZGUzYmYxMzI5N2ZmODgyZTAyYTFlNmU1ZjZiZjc2MGE1NDRhZmY5MmE5ZDhhMWNmNDMyOGEzMjAwNWNlZmU3IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJzZGwtdHRmL2ZpbGVzL2F1dG9tYWtlX2ZvcmVpZ24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnNkbC10dGYvZmlsZXMvYXV0b21ha2VfZm9yZWlnbi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQ1YmQ2ZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnNkbC10dGYvZmlsZXMvYXV0b21ha2VfZm9yZWlnbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLUluZGV4OiBTREwyX3R0Zi0yLjAuMTQvTWFrZWZpbGUuYW0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBTREwyX3R0Zi0yLjAuMTQub3JpZy9NYWtlZmlsZS5hbQotKysrIFNETDJfdHRmLTIuMC4xNC9NYWtlZmlsZS5hbQotQEAgLTEsNiArMSw4IEBACi0gIyBNYWtlZmlsZS5hbSBmb3IgdGhlIFNETCB0cnVldHlwZSBmb250IGxvYWRpbmcgbGlicmFyeSBhbmQgdmlld2VyCi0gbGliX0xUTElCUkFSSUVTID0gbGliU0RMMl90dGYubGEKLSAKLStBVVRPTUFLRV9PUFRJT05TID0gZm9yZWlnbgotKwotIGxpYlNETDJfdHRmaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvU0RMMgotIGxpYlNETDJfdHRmaW5jbHVkZV9IRUFERVJTID0JXAotIAlTRExfdHRmLmgKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic2RsLXR0Zi9maWxlcy91c2UucGtnLWNvbmZpZy5mb3IuZnJlZXR5cGUyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJzZGwtdHRmL2ZpbGVzL3VzZS5wa2ctY29uZmlnLmZvci5mcmVldHlwZTIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhMTFmNjYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJzZGwtdHRmL2ZpbGVzL3VzZS5wa2ctY29uZmlnLmZvci5mcmVldHlwZTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi1mcmVldHlwZS1jb25maWcgd2FzIHJlbW92ZWQgZnJvbSBvZS1jb3JlIGluCi0KLWNvbW1pdCA1ODcwYmQyNzJiMGIwNzdkMDgyNmZiOTAwYjI1MTg4NGMxYzA1MDYxCi1BdXRob3I6IFJpY2hhcmQgUHVyZGllIDxyaWNoYXJkLnB1cmRpZUBsaW51eGZvdW5kYXRpb24ub3JnPgotRGF0ZTogICBUaHUgTWF5IDIyIDEwOjU5OjMzIDIwMTQgKzAxMDAKLQotICAgIGJpbmNvbmZpZy1kaXNhYmxlZDogQWRkIGNsYXNzIGFuZCB1c2UKLQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgotaW5kZXggNDA4ZThkNi4uNWY5ZTczMCAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5pbgotKysrIGIvY29uZmlndXJlLmluCi1AQCAtODYsMzkgKzg2LDExIEBAIGNhc2UgIiRob3N0IiBpbgotIGVzYWMKLSBBTV9DT05ESVRJT05BTChVU0VfVkVSU0lPTl9SQywgdGVzdCB4JHVzZV92ZXJzaW9uX3JjID0geHRydWUpCi0gCi0tZG5sIENoZWNrIGZvciB0aGUgRnJlZVR5cGUgMiBsaWJyYXJ5Ci0tZG5sCi0tZG5sIEdldCB0aGUgY2ZsYWdzIGFuZCBsaWJyYXJpZXMgZnJvbSB0aGUgZnJlZXR5cGUtY29uZmlnIHNjcmlwdAotLWRubAotLUFDX0FSR19XSVRIKGZyZWV0eXBlLXByZWZpeCxbICAtLXdpdGgtZnJlZXR5cGUtcHJlZml4PVBGWCAgIFByZWZpeCB3aGVyZSBGUkVFVFlQRSBpcyAKLS1pbnN0YWxsZWQgKG9wdGlvbmFsKV0sCi0tICAgICAgICAgICAgZnJlZXR5cGVfcHJlZml4PSIkd2l0aHZhbCIsIGZyZWV0eXBlX3ByZWZpeD0iIikKLS1BQ19BUkdfV0lUSChmcmVldHlwZS1leGVjLXByZWZpeCxbICAtLXdpdGgtZnJlZXR5cGUtZXhlYy1wcmVmaXg9UEZYIEV4ZWMgcHJlZml4IAotLXdoZXJlIEZSRUVUWVBFIGlzIGluc3RhbGxlZCAob3B0aW9uYWwpXSwKLS0gICAgICAgICAgICBmcmVldHlwZV9leGVjX3ByZWZpeD0iJHdpdGh2YWwiLCBmcmVldHlwZV9leGVjX3ByZWZpeD0iIikKLS0KLS1pZiB0ZXN0IHgkZnJlZXR5cGVfZXhlY19wcmVmaXggIT0geCA7IHRoZW4KLS0gICAgIGZyZWV0eXBlX2FyZ3M9IiRmcmVldHlwZV9hcmdzIC0tZXhlYy1wcmVmaXg9JGZyZWV0eXBlX2V4ZWNfcHJlZml4IgotLSAgICAgaWYgdGVzdCB4JHtGUkVFVFlQRV9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgotLSAgICAgICAgRlJFRVRZUEVfQ09ORklHPSRmcmVldHlwZV9leGVjX3ByZWZpeC9iaW4vZnJlZXR5cGUtY29uZmlnCi0tICAgICBmaQotLWZpCi0taWYgdGVzdCB4JGZyZWV0eXBlX3ByZWZpeCAhPSB4IDsgdGhlbgotLSAgICAgZnJlZXR5cGVfYXJncz0iJGZyZWV0eXBlX2FyZ3MgLS1wcmVmaXg9JGZyZWV0eXBlX3ByZWZpeCIKLS0gICAgIGlmIHRlc3QgeCR7RlJFRVRZUEVfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KLS0gICAgICAgIEZSRUVUWVBFX0NPTkZJRz0kZnJlZXR5cGVfcHJlZml4L2Jpbi9mcmVldHlwZS1jb25maWcKLS0gICAgIGZpCi0tZmkKLS1BQ19QQVRIX1BST0coRlJFRVRZUEVfQ09ORklHLCBmcmVldHlwZS1jb25maWcsIG5vKQotLW5vX2ZyZWV0eXBlPSIiCi0taWYgdGVzdCAiJEZSRUVUWVBFX0NPTkZJRyIgPSAibm8iIDsgdGhlbgotLSAgICBBQ19NU0dfRVJST1IoWwotLSoqKiBVbmFibGUgdG8gZmluZCBGcmVlVHlwZTIgbGlicmFyeSAoaHR0cDovL3d3dy5mcmVldHlwZS5vcmcvKQotLV0pCi0tZWxzZQotLSAgICBDRkxBR1M9IiRDRkxBR1MgYCRGUkVFVFlQRV9DT05GSUcgJGZyZWV0eXBlY29uZl9hcmdzIC0tY2ZsYWdzYCIKLS0gICAgTElCUz0iJExJQlMgYCRGUkVFVFlQRV9DT05GSUcgJGZyZWV0eXBlY29uZl9hcmdzIC0tbGlic2AiCi0tZmkKLStQS0dfQ0hFQ0tfTU9EVUxFUyhGUkVFVFlQRTIsIGZyZWV0eXBlMiwgCi0rICAgIENGTEFHUz0iJENGTEFHUyAkRlJFRVRZUEUyX0NGTEFHUyIKLSsgICAgTElCUz0iJExJQlMgJEZSRUVUWVBFMl9MSUJTIiwKLSsgICAgQUNfTVNHX0VSUk9SKFsqKiogVW5hYmxlIHRvIGZpbmQgRnJlZVR5cGUyIGxpYnJhcnkgKGh0dHA6Ly93d3cuZnJlZXR5cGUub3JnLyldKQotKykKLSAKLSBkbmwgQ2hlY2sgZm9yIFNETAotIFNETF9WRVJTSU9OPTIuMC4wCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnNkbC10dGYvbGlic2RsLXR0Zi91c2UucGtnLWNvbmZpZy5mb3IuZnJlZXR5cGUyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJzZGwtdHRmL2xpYnNkbC10dGYvdXNlLnBrZy1jb25maWcuZm9yLmZyZWV0eXBlMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTE2YzM0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJzZGwtdHRmL2xpYnNkbC10dGYvdXNlLnBrZy1jb25maWcuZm9yLmZyZWV0eXBlMi5wYXRjaApAQCAtMCwwICsxLDYyIEBACitGcm9tIDhjZjMxODE5N2VlYTkxYmVjNjA1NzMwOGJlZmJiMjk0MjZkNjkwMTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSaWNoYXJkIFB1cmRpZSA8cmljaGFyZC5wdXJkaWVAbGludXhmb3VuZGF0aW9uLm9yZz4KK0RhdGU6IFRodSwgMjIgTWF5IDIwMTQgMTA6NTk6MzMgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gZnJlZXR5cGUtY29uZmlnIHdhcyByZW1vdmVkIGZyb20gb2UtY29yZSBpbgorCitjb21taXQgNTg3MGJkMjcyYjBiMDc3ZDA4MjZmYjkwMGIyNTE4ODRjMWMwNTA2MQorCisgICAgYmluY29uZmlnLWRpc2FibGVkOiBBZGQgY2xhc3MgYW5kIHVzZQorCistLS0KKyBjb25maWd1cmUuaW4gfCAzOCArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCitpbmRleCA4NjUwNzVlLi5kN2E1YTgxIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmluCisrKysgYi9jb25maWd1cmUuaW4KK0BAIC05MCwzOSArOTAsMTEgQEAgY2FzZSAiJGhvc3QiIGluCisgZXNhYworIEFNX0NPTkRJVElPTkFMKFVTRV9WRVJTSU9OX1JDLCB0ZXN0IHgkdXNlX3ZlcnNpb25fcmMgPSB4dHJ1ZSkKKyAKKy1kbmwgQ2hlY2sgZm9yIHRoZSBGcmVlVHlwZSAyIGxpYnJhcnkKKy1kbmwKKy1kbmwgR2V0IHRoZSBjZmxhZ3MgYW5kIGxpYnJhcmllcyBmcm9tIHRoZSBmcmVldHlwZS1jb25maWcgc2NyaXB0CistZG5sCistQUNfQVJHX1dJVEgoZnJlZXR5cGUtcHJlZml4LFsgIC0td2l0aC1mcmVldHlwZS1wcmVmaXg9UEZYICAgUHJlZml4IHdoZXJlIEZSRUVUWVBFIGlzIAorLWluc3RhbGxlZCAob3B0aW9uYWwpXSwKKy0gICAgICAgICAgICBmcmVldHlwZV9wcmVmaXg9IiR3aXRodmFsIiwgZnJlZXR5cGVfcHJlZml4PSIiKQorLUFDX0FSR19XSVRIKGZyZWV0eXBlLWV4ZWMtcHJlZml4LFsgIC0td2l0aC1mcmVldHlwZS1leGVjLXByZWZpeD1QRlggRXhlYyBwcmVmaXggCistd2hlcmUgRlJFRVRZUEUgaXMgaW5zdGFsbGVkIChvcHRpb25hbCldLAorLSAgICAgICAgICAgIGZyZWV0eXBlX2V4ZWNfcHJlZml4PSIkd2l0aHZhbCIsIGZyZWV0eXBlX2V4ZWNfcHJlZml4PSIiKQorLQorLWlmIHRlc3QgeCRmcmVldHlwZV9leGVjX3ByZWZpeCAhPSB4IDsgdGhlbgorLSAgICAgZnJlZXR5cGVfYXJncz0iJGZyZWV0eXBlX2FyZ3MgLS1leGVjLXByZWZpeD0kZnJlZXR5cGVfZXhlY19wcmVmaXgiCistICAgICBpZiB0ZXN0IHgke0ZSRUVUWVBFX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCistICAgICAgICBGUkVFVFlQRV9DT05GSUc9JGZyZWV0eXBlX2V4ZWNfcHJlZml4L2Jpbi9mcmVldHlwZS1jb25maWcKKy0gICAgIGZpCistZmkKKy1pZiB0ZXN0IHgkZnJlZXR5cGVfcHJlZml4ICE9IHggOyB0aGVuCistICAgICBmcmVldHlwZV9hcmdzPSIkZnJlZXR5cGVfYXJncyAtLXByZWZpeD0kZnJlZXR5cGVfcHJlZml4IgorLSAgICAgaWYgdGVzdCB4JHtGUkVFVFlQRV9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgorLSAgICAgICAgRlJFRVRZUEVfQ09ORklHPSRmcmVldHlwZV9wcmVmaXgvYmluL2ZyZWV0eXBlLWNvbmZpZworLSAgICAgZmkKKy1maQorLUFDX1BBVEhfUFJPRyhGUkVFVFlQRV9DT05GSUcsIGZyZWV0eXBlLWNvbmZpZywgbm8pCistbm9fZnJlZXR5cGU9IiIKKy1pZiB0ZXN0ICIkRlJFRVRZUEVfQ09ORklHIiA9ICJubyIgOyB0aGVuCistICAgIEFDX01TR19FUlJPUihbCistKioqIFVuYWJsZSB0byBmaW5kIEZyZWVUeXBlMiBsaWJyYXJ5IChodHRwOi8vd3d3LmZyZWV0eXBlLm9yZy8pCistXSkKKy1lbHNlCistICAgIENGTEFHUz0iJENGTEFHUyBgJEZSRUVUWVBFX0NPTkZJRyAkZnJlZXR5cGVjb25mX2FyZ3MgLS1jZmxhZ3NgIgorLSAgICBMSUJTPSIkTElCUyBgJEZSRUVUWVBFX0NPTkZJRyAkZnJlZXR5cGVjb25mX2FyZ3MgLS1saWJzYCIKKy1maQorK1BLR19DSEVDS19NT0RVTEVTKEZSRUVUWVBFMiwgZnJlZXR5cGUyLCAKKysgICAgQ0ZMQUdTPSIkQ0ZMQUdTICRGUkVFVFlQRTJfQ0ZMQUdTIgorKyAgICBMSUJTPSIkTElCUyAkRlJFRVRZUEUyX0xJQlMiLAorKyAgICBBQ19NU0dfRVJST1IoWyoqKiBVbmFibGUgdG8gZmluZCBGcmVlVHlwZTIgbGlicmFyeSAoaHR0cDovL3d3dy5mcmVldHlwZS5vcmcvKV0pCisrKQorIAorIGRubCBDaGVjayBmb3IgU0RMCisgU0RMX1ZFUlNJT049MS4yLjQKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic2RsLXR0Zi9saWJzZGwyLXR0Zi9hdXRvbWFrZV9mb3JlaWduLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJzZGwtdHRmL2xpYnNkbDItdHRmL2F1dG9tYWtlX2ZvcmVpZ24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODcxZTZlOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic2RsLXR0Zi9saWJzZGwyLXR0Zi9hdXRvbWFrZV9mb3JlaWduLnBhdGNoCkBAIC0wLDAgKzEsMjEgQEAKK0Zyb20gZjljNGFkM2ExNzFkNjc2ZTM4MThiOGY2ODk3ZjMyNWNjZjBiMjIwMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDkgTWF5IDIwMTcgMDA6NTc6MTAgLTA3MDAKKworLS0tCisgTWFrZWZpbGUuYW0gfCAyICsrCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQoraW5kZXggODE2NmQ5MS4uOGUwNWU0OSAxMDA2NDQKKy0tLSBhL01ha2VmaWxlLmFtCisrKysgYi9NYWtlZmlsZS5hbQorQEAgLTIsNiArMiw4IEBACisgCisgbGliX0xUTElCUkFSSUVTID0gbGliU0RMMl90dGYubGEKKyAKKytBVVRPTUFLRV9PUFRJT05TID0gZm9yZWlnbgorKworIGxpYlNETDJfdHRmaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvU0RMMgorIGxpYlNETDJfdHRmaW5jbHVkZV9IRUFERVJTID0JXAorIAlTRExfdHRmLmgKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic2RsLXR0Zi9saWJzZGwyLXR0Zi91c2UucGtnLWNvbmZpZy5mb3IuZnJlZXR5cGUyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJzZGwtdHRmL2xpYnNkbDItdHRmL3VzZS5wa2ctY29uZmlnLmZvci5mcmVldHlwZTIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWRmYmVjNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlic2RsLXR0Zi9saWJzZGwyLXR0Zi91c2UucGtnLWNvbmZpZy5mb3IuZnJlZXR5cGUyLnBhdGNoCkBAIC0wLDAgKzEsNjIgQEAKK0Zyb20gZTZkMmMwZTEzMDgxMWMxNWI1ZjVjYzEwMjIxZmFlMTgyY2I4NjA5ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJpY2hhcmQgUHVyZGllIDxyaWNoYXJkLnB1cmRpZUBsaW51eGZvdW5kYXRpb24ub3JnPgorRGF0ZTogVGh1LCAyMiBNYXkgMjAxNCAxMDo1OTozMyArMDEwMAorU3ViamVjdDogW1BBVENIXSBmcmVldHlwZS1jb25maWcgd2FzIHJlbW92ZWQgZnJvbSBvZS1jb3JlIGluCisKK2NvbW1pdCA1ODcwYmQyNzJiMGIwNzdkMDgyNmZiOTAwYjI1MTg4NGMxYzA1MDYxCisKKyAgICBiaW5jb25maWctZGlzYWJsZWQ6IEFkZCBjbGFzcyBhbmQgdXNlCisKKy0tLQorIGNvbmZpZ3VyZS5pbiB8IDM4ICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KK2luZGV4IDliMzZlMTUuLmYzMDBjYWUgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuaW4KKysrKyBiL2NvbmZpZ3VyZS5pbgorQEAgLTg2LDM5ICs4NiwxMSBAQCBjYXNlICIkaG9zdCIgaW4KKyBlc2FjCisgQU1fQ09ORElUSU9OQUwoVVNFX1ZFUlNJT05fUkMsIHRlc3QgeCR1c2VfdmVyc2lvbl9yYyA9IHh0cnVlKQorIAorLWRubCBDaGVjayBmb3IgdGhlIEZyZWVUeXBlIDIgbGlicmFyeQorLWRubAorLWRubCBHZXQgdGhlIGNmbGFncyBhbmQgbGlicmFyaWVzIGZyb20gdGhlIGZyZWV0eXBlLWNvbmZpZyBzY3JpcHQKKy1kbmwKKy1BQ19BUkdfV0lUSChmcmVldHlwZS1wcmVmaXgsWyAgLS13aXRoLWZyZWV0eXBlLXByZWZpeD1QRlggICBQcmVmaXggd2hlcmUgRlJFRVRZUEUgaXMgCistaW5zdGFsbGVkIChvcHRpb25hbCldLAorLSAgICAgICAgICAgIGZyZWV0eXBlX3ByZWZpeD0iJHdpdGh2YWwiLCBmcmVldHlwZV9wcmVmaXg9IiIpCistQUNfQVJHX1dJVEgoZnJlZXR5cGUtZXhlYy1wcmVmaXgsWyAgLS13aXRoLWZyZWV0eXBlLWV4ZWMtcHJlZml4PVBGWCBFeGVjIHByZWZpeCAKKy13aGVyZSBGUkVFVFlQRSBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKV0sCistICAgICAgICAgICAgZnJlZXR5cGVfZXhlY19wcmVmaXg9IiR3aXRodmFsIiwgZnJlZXR5cGVfZXhlY19wcmVmaXg9IiIpCistCistaWYgdGVzdCB4JGZyZWV0eXBlX2V4ZWNfcHJlZml4ICE9IHggOyB0aGVuCistICAgICBmcmVldHlwZV9hcmdzPSIkZnJlZXR5cGVfYXJncyAtLWV4ZWMtcHJlZml4PSRmcmVldHlwZV9leGVjX3ByZWZpeCIKKy0gICAgIGlmIHRlc3QgeCR7RlJFRVRZUEVfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KKy0gICAgICAgIEZSRUVUWVBFX0NPTkZJRz0kZnJlZXR5cGVfZXhlY19wcmVmaXgvYmluL2ZyZWV0eXBlLWNvbmZpZworLSAgICAgZmkKKy1maQorLWlmIHRlc3QgeCRmcmVldHlwZV9wcmVmaXggIT0geCA7IHRoZW4KKy0gICAgIGZyZWV0eXBlX2FyZ3M9IiRmcmVldHlwZV9hcmdzIC0tcHJlZml4PSRmcmVldHlwZV9wcmVmaXgiCistICAgICBpZiB0ZXN0IHgke0ZSRUVUWVBFX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCistICAgICAgICBGUkVFVFlQRV9DT05GSUc9JGZyZWV0eXBlX3ByZWZpeC9iaW4vZnJlZXR5cGUtY29uZmlnCistICAgICBmaQorLWZpCistQUNfUEFUSF9QUk9HKEZSRUVUWVBFX0NPTkZJRywgZnJlZXR5cGUtY29uZmlnLCBubykKKy1ub19mcmVldHlwZT0iIgorLWlmIHRlc3QgIiRGUkVFVFlQRV9DT05GSUciID0gIm5vIiA7IHRoZW4KKy0gICAgQUNfTVNHX0VSUk9SKFsKKy0qKiogVW5hYmxlIHRvIGZpbmQgRnJlZVR5cGUyIGxpYnJhcnkgKGh0dHA6Ly93d3cuZnJlZXR5cGUub3JnLykKKy1dKQorLWVsc2UKKy0gICAgQ0ZMQUdTPSIkQ0ZMQUdTIGAkRlJFRVRZUEVfQ09ORklHICRmcmVldHlwZWNvbmZfYXJncyAtLWNmbGFnc2AiCistICAgIExJQlM9IiRMSUJTIGAkRlJFRVRZUEVfQ09ORklHICRmcmVldHlwZWNvbmZfYXJncyAtLWxpYnNgIgorLWZpCisrUEtHX0NIRUNLX01PRFVMRVMoRlJFRVRZUEUyLCBmcmVldHlwZTIsIAorKyAgICBDRkxBR1M9IiRDRkxBR1MgJEZSRUVUWVBFMl9DRkxBR1MiCisrICAgIExJQlM9IiRMSUJTICRGUkVFVFlQRTJfTElCUyIsCisrICAgIEFDX01TR19FUlJPUihbKioqIFVuYWJsZSB0byBmaW5kIEZyZWVUeXBlMiBsaWJyYXJ5IChodHRwOi8vd3d3LmZyZWV0eXBlLm9yZy8pXSkKKyspCisgCisgZG5sIENoZWNrIGZvciBTREwKKyBTRExfVkVSU0lPTj0yLjAuMApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZWFtL2xpYnRlYW0vMDAwMS10ZWFtX2Jhc2ljX3Rlc3QucHktZGlzYWJsZS1SZWRIYXQtc3BlY2lmaWMtdGVzdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlidGVhbS9saWJ0ZWFtLzAwMDEtdGVhbV9iYXNpY190ZXN0LnB5LWRpc2FibGUtUmVkSGF0LXNwZWNpZmljLXRlc3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDY4YTU1ZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlidGVhbS9saWJ0ZWFtLzAwMDEtdGVhbV9iYXNpY190ZXN0LnB5LWRpc2FibGUtUmVkSGF0LXNwZWNpZmljLXRlc3QucGF0Y2gKQEAgLTAsMCArMSwzMiBAQAorRnJvbSAwMGRlYmU2YmQ0Y2Y1YTMxMzNhOGZiYWFiNzVmNzQ0N2EzOWZhNjU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogV2Vuem9uZyBGYW4gPHdlbnpvbmcuZmFuQHdpbmRyaXZlci5jb20+CitEYXRlOiBUaHUsIDEyIEFwciAyMDE4IDAxOjU0OjE1ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIHRlYW1fYmFzaWNfdGVzdC5weTogZGlzYWJsZSBSZWRIYXQgc3BlY2lmaWMgdGVzdAorCitUaGUgdGVzdCBfcnVuX3RlYW1kX2luaXRzY3JpcHRzKCkgaXMgZm9yIFJlZEhhdCBpZmNmZyBzY3JpcHRzIHdoaWNoIGFyZQoraW5jb21wYXRpYmxlIHdpdGggT0U6CisgIC9ldGMvc3lzY29uZmlnL25ldHdvcmstc2NyaXB0cy9pZmNmZy0qCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbT0UgU3BlY2lmaWNdCisKK1NpZ25lZC1vZmYtYnk6IFdlbnpvbmcgRmFuIDx3ZW56b25nLmZhbkB3aW5kcml2ZXIuY29tPgorLS0tCisgc2NyaXB0cy90ZWFtX2Jhc2ljX3Rlc3QucHkgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zY3JpcHRzL3RlYW1fYmFzaWNfdGVzdC5weSBiL3NjcmlwdHMvdGVhbV9iYXNpY190ZXN0LnB5CitpbmRleCBiMDViZTllLi5mYWFiZDE4IDEwMDc1NQorLS0tIGEvc2NyaXB0cy90ZWFtX2Jhc2ljX3Rlc3QucHkKKysrKyBiL3NjcmlwdHMvdGVhbV9iYXNpY190ZXN0LnB5CitAQCAtMTcxLDcgKzE3MSw3IEBAIFRFQU1fUE9SVF9DT05GSUc9J3sicHJpbyI6IDEwfScKKyAgICAgICAgIHRyeToKKyAgICAgICAgICAgICBmb3IgbW9kZV9uYW1lIGluIHNlbGYuX3RlYW1fbW9kZXM6CisgICAgICAgICAgICAgICAgIHNlbGYuX3J1bl9vbmVfbW9kZShtb2RlX25hbWUpCistICAgICAgICAgICAgc2VsZi5fcnVuX3RlYW1kX2luaXRzY3JpcHRzKCkKKysgICAgICAgICAgICAjc2VsZi5fcnVuX3RlYW1kX2luaXRzY3JpcHRzKCkKKyAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgY21kX2V4ZWMoIm1vZHByb2JlIC1yIHRlYW1fbW9kZV9sb2FkYmFsYW5jZSB0ZWFtX21vZGVfcm91bmRyb2JpbiB0ZWFtX21vZGVfYWN0aXZlYmFja3VwIHRlYW1fbW9kZV9icm9hZGNhc3QgdGVhbSIpOworIAorLS0gCisyLjEzLjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZWFtL2xpYnRlYW0vcnVuLXB0ZXN0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZWFtL2xpYnRlYW0vcnVuLXB0ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiYTVhY2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnRlYW0vbGlidGVhbS9ydW4tcHRlc3QKQEAgLTAsMCArMSwzIEBACisjIS9iaW4vc2gKKworcHl0aG9uICQoZGlybmFtZSAkMCkvdGVhbV9iYXNpY190ZXN0LnB5CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnRlYW0vbGlidGVhbV8xLjI3LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9saWJ0ZWFtL2xpYnRlYW1fMS4yNy5iYgppbmRleCAzMjIyNzAwLi40NDI1OTJkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2xpYnRlYW0vbGlidGVhbV8xLjI3LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbGlidGVhbS9saWJ0ZWFtXzEuMjcuYmIKQEAgLTEwLDYgKzEwLDggQEAKIFNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9qcGlya28vbGlidGVhbSBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLWluY2x1ZGUtc3lzLXNlbGVjdC5oLWZvci1mZF9zZXQtZGVmaW5pdGlvbi5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAyLXRlYW1kLVJlLWFkanVzdC1pbmNsdWRlLWhlYWRlci1vcmRlci5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLXRlYW1fYmFzaWNfdGVzdC5weS1kaXNhYmxlLVJlZEhhdC1zcGVjaWZpYy10ZXN0LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCBcCiAgICAgICAgICAgICIKIFNSQ1JFViA9ICI5MWE5MjhhNTZhNTAxZGFhYzVjZThiM2MxNmJkOTk0MzY2MWYxZDE2IgogCkBAIC0xOCw3ICsyMCw3IEBACiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIHB0ZXN0CiAKIEZJTEVTXyR7UE59ID0gIiR7bGliZGlyfS9saWJ0ZWFtJHtTT0xJQlN9IFwKICIKQEAgLTMzLDQgKzM1LDggQEAKICIKIAogUkRFUEVORFNfJHtQTn0tdXRpbHMgPSAiYmFzaCIKK1JERVBFTkRTXyR7UE59LXB0ZXN0ID0gInB5dGhvbiIKIAorZG9faW5zdGFsbF9wdGVzdCgpIHsKKwlpbnN0YWxsICR7U30vc2NyaXB0cy90ZWFtX2Jhc2ljX3Rlc3QucHkgJHtEfSR7UFRFU1RfUEFUSH0vCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAxLVRlbGwtc2NvbnMtdG8tdXNlLWJ1aWxkLXNldHRpbmdzLWZyb20tZW52aXJvbm1lbnQtdmEucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAxLVRlbGwtc2NvbnMtdG8tdXNlLWJ1aWxkLXNldHRpbmdzLWZyb20tZW52aXJvbm1lbnQtdmEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5ZDQ5ZDIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMS1UZWxsLXNjb25zLXRvLXVzZS1idWlsZC1zZXR0aW5ncy1mcm9tLWVudmlyb25tZW50LXZhLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotRnJvbSA1MzM2OGQzZjRhZGMwOWRkODQyMzRhOWFmMzE3NzFiY2Q4Y2EyNzU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3ZlbiBFYmVuZmVsZCA8c3Zlbi5lYmVuZmVsZEBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDE1IEphbiAyMDE2IDIyOjQxOjI4ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFRlbGwgc2NvbnMgdG8gdXNlIGJ1aWxkIHNldHRpbmdzIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzCi0KLVNpZ25lZC1vZmYtYnk6IFN2ZW4gRWJlbmZlbGQgPHN2ZW4uZWJlbmZlbGRAZ21haWwuY29tPgotLS0tCi0gU0NvbnN0cnVjdCAgICAgICAgICAgICAgICB8IDggKysrKysrLS0KLSBzcmMvbW9uZ28vdXRpbC9TQ29uc2NyaXB0IHwgMiArKwotIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvU0NvbnN0cnVjdCBiL1NDb25zdHJ1Y3QKLWluZGV4IDUwODJhNGIuLjMzNzBmNzAgMTAwNjQ0Ci0tLS0gYS9TQ29uc3RydWN0Ci0rKysgYi9TQ29uc3RydWN0Ci1AQCAtNTA3LDYgKzUwNyw3IEBAIGRlZiB2YXJpYWJsZV9hcmNoX2NvbnZlcnRlcih2YWwpOgotICAgICAgICAgJ2FtZDY0JzogICd4ODZfNjQnLAotICAgICAgICAgJ2VtdDY0JzogICAneDg2XzY0JywKLSAgICAgICAgICd4ODYnOiAgICAnaTM4NicsCi0rICAgICAgICAnYWFyY2g2NCc6ICdhcm02NCcsCi0gICAgIH0KLSAgICAgdmFsID0gdmFsLmxvd2VyKCkKLSAKLUBAIC01NjgsNyArNTY5LDggQEAgZW52X3ZhcnMuQWRkKCdBUkZMQUdTJywKLSAgICAgY29udmVydGVyPXZhcmlhYmxlX3NobGV4X2NvbnZlcnRlcikKLSAKLSBlbnZfdmFycy5BZGQoJ0NDJywKLS0gICAgaGVscD0nU2VsZWN0IHRoZSBDIGNvbXBpbGVyIHRvIHVzZScpCi0rICAgIGhlbHA9J1NlbGVjdCB0aGUgQyBjb21waWxlciB0byB1c2UnLAotKyAgICBkZWZhdWx0PW9zLmdldGVudignQ0MnKSkKLSAKLSBlbnZfdmFycy5BZGQoJ0NDRkxBR1MnLAotICAgICBoZWxwPSdTZXRzIGZsYWdzIGZvciB0aGUgQyBhbmQgQysrIGNvbXBpbGVyJywKLUBAIC01ODgsNyArNTkwLDggQEAgZW52X3ZhcnMuQWRkKCdDUFBQQVRIJywKLSAgICAgY29udmVydGVyPXZhcmlhYmxlX3NobGV4X2NvbnZlcnRlcikKLSAKLSBlbnZfdmFycy5BZGQoJ0NYWCcsCi0tICAgIGhlbHA9J1NlbGVjdCB0aGUgQysrIGNvbXBpbGVyIHRvIHVzZScpCi0rICAgIGhlbHA9J1NlbGVjdCB0aGUgQysrIGNvbXBpbGVyIHRvIHVzZScsCi0rICAgIGRlZmF1bHQ9b3MuZ2V0ZW52KCdDWFgnKSkKLSAKLSBlbnZfdmFycy5BZGQoJ0NYWEZMQUdTJywKLSAgICAgaGVscD0nU2V0cyBmbGFncyBmb3IgdGhlIEMrKyBjb21waWxlcicsCi1AQCAtODE4LDYgKzgyMSw3IEBAIGVudkRpY3QgPSBkaWN0KEJVSUxEX1JPT1Q9YnVpbGREaXIsCi0gICAgICAgICAgICAgICAgKQotIAotIGVudiA9IEVudmlyb25tZW50KHZhcmlhYmxlcz1lbnZfdmFycywgKiplbnZEaWN0KQotK2Vudi5QcmVwZW5kRU5WUGF0aCgnUEFUSCcsIG9zLmdldGVudignUEFUSCcpKQotIGRlbCBlbnZEaWN0Ci0gCi0gZW52LkFkZE1ldGhvZChlbnZfb3NfaXNfd3JhcHBlciwgJ1RhcmdldE9TSXMnKQotZGlmZiAtLWdpdCBhL3NyYy9tb25nby91dGlsL1NDb25zY3JpcHQgYi9zcmMvbW9uZ28vdXRpbC9TQ29uc2NyaXB0Ci1pbmRleCA2YWRkNjAyLi44ZDA1YTYyIDEwMDY0NAotLS0tIGEvc3JjL21vbmdvL3V0aWwvU0NvbnNjcmlwdAotKysrIGIvc3JjL21vbmdvL3V0aWwvU0NvbnNjcmlwdAotQEAgLTI1MSw2ICsyNTEsOCBAQCBpZiBnZXRfb3B0aW9uKCdhbGxvY2F0b3InKSA9PSAndGNtYWxsb2MnOgotICAgICAgICAgICAgICAgICAnTU9OR09fSEFWRV9HUEVSRlRPT0xTX0dFVF9USFJFQURfQ0FDSEVfU0laRScKLSAgICAgICAgICAgICBdCi0gICAgICAgICApCi0rICAgIGlmIG5vdCB1c2Vfc3lzdGVtX3ZlcnNpb25fb2ZfbGlicmFyeSgndmFsZ3JpbmQnKToKLSsgICAgICAgIHRjbXNwRW52LkluamVjdFRoaXJkUGFydHlJbmNsdWRlUGF0aHMoJ3ZhbGdyaW5kJykKLSAKLSAgICAgdGNtc3BFbnYuTGlicmFyeSgKLSAgICAgICAgIHRhcmdldD0ndGNtYWxsb2Nfc2V0X3BhcmFtZXRlcicsCi0tLSAKLTEuOS4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiLzAwMDEtVXNlLWxvbmctbG9uZy1pbnN0ZWFkLW9mLWludDY0X3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAxLVVzZS1sb25nLWxvbmctaW5zdGVhZC1vZi1pbnQ2NF90LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDNiZWI0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiLzAwMDEtVXNlLWxvbmctbG9uZy1pbnN0ZWFkLW9mLWludDY0X3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi1Gcm9tIGE0OTUxNDg5ZDY0OWMyYjYwOWNiYjgwZjZjZmI0OWZkY2FkOGJkNDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogU2F0LCAyIFNlcCAyMDE3IDEwOjAzOjM3IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVzZSBsb25nIGxvbmcgaW5zdGVhZCBvZiBpbnQ2NF90Ci0KLUZpeGVzCi1lcnJvcjogY2FsbCB0byBtZW1iZXIgZnVuY3Rpb24gJ2FwcGVuZE51bWJlcicgaXMgYW1iaWd1b3VzCi1zaW5jZSB0aGlzIGZ1bmN0aW9uIGV4cGVjdHMgbG9uZyBsb25nIGFzIHBhcmFtZXRlciBhbmQgbm90IGludDY0X3QKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0gc3JjL21vbmdvL3V0aWwvcHJvY3BhcnNlci5jcHAgfCAxMCArKysrKy0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9tb25nby91dGlsL3Byb2NwYXJzZXIuY3BwIGIvc3JjL21vbmdvL3V0aWwvcHJvY3BhcnNlci5jcHAKLWluZGV4IDM2ZjJhZTAyNTQuLjJjMTY0YmNiZjMgMTAwNjQ0Ci0tLS0gYS9zcmMvbW9uZ28vdXRpbC9wcm9jcGFyc2VyLmNwcAotKysrIGIvc3JjL21vbmdvL3V0aWwvcHJvY3BhcnNlci5jcHAKLUBAIC0yNjAsNyArMjYwLDcgQEAgU3RhdHVzIHBhcnNlUHJvY1N0YXQoY29uc3Qgc3RkOjp2ZWN0b3I8U3RyaW5nRGF0YT4mIGtleXMsCi0gCi0gICAgICAgICAgICAgICAgICAgICBTdHJpbmdEYXRhIHN0cmluZ1ZhbHVlKCgqcGFydEl0KS5iZWdpbigpLCAoKnBhcnRJdCkuZW5kKCkgLSAoKnBhcnRJdCkuYmVnaW4oKSk7Ci0gCi0tICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCB2YWx1ZTsKLSsgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyAgdmFsdWU7Ci0gCi0gICAgICAgICAgICAgICAgICAgICBpZiAoIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJpbmdWYWx1ZSwgJnZhbHVlKS5pc09LKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IDA7Ci1AQCAtMjcyLDcgKzI3Miw3IEBAIFN0YXR1cyBwYXJzZVByb2NTdGF0KGNvbnN0IHN0ZDo6dmVjdG9yPFN0cmluZ0RhdGE+JiBrZXlzLAotICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIFN0cmluZ0RhdGEgc3RyaW5nVmFsdWUoKCpwYXJ0SXQpLmJlZ2luKCksICgqcGFydEl0KS5lbmQoKSAtICgqcGFydEl0KS5iZWdpbigpKTsKLSAKLS0gICAgICAgICAgICAgICAgdWludDY0X3QgdmFsdWU7Ci0rICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZTsKLSAKLSAgICAgICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlckZyb21TdHJpbmcoc3RyaW5nVmFsdWUsICZ2YWx1ZSkuaXNPSygpKSB7Ci0gICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IDA7Ci1AQCAtMzY1LDcgKzM2NSw3IEBAIFN0YXR1cyBwYXJzZVByb2NNZW1JbmZvKGNvbnN0IHN0ZDo6dmVjdG9yPFN0cmluZ0RhdGE+JiBrZXlzLAotIAotICAgICAgICAgICAgIFN0cmluZ0RhdGEgc3RyaW5nVmFsdWUoKCpwYXJ0SXQpLmJlZ2luKCksICgqcGFydEl0KS5lbmQoKSk7Ci0gCi0tICAgICAgICAgICAgdWludDY0X3QgdmFsdWU7Ci0rICAgICAgICAgICAgbG9uZyBsb25nIHZhbHVlOwotIAotICAgICAgICAgICAgIGlmICghcGFyc2VOdW1iZXJGcm9tU3RyaW5nKHN0cmluZ1ZhbHVlLCAmdmFsdWUpLmlzT0soKSkgewotICAgICAgICAgICAgICAgICB2YWx1ZSA9IDA7Ci1AQCAtNDI2LDcgKzQyNiw3IEBAIFN0YXR1cyBwYXJzZVByb2NEaXNrU3RhdHMoY29uc3Qgc3RkOjp2ZWN0b3I8U3RyaW5nRGF0YT4mIGRpc2tzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nRGF0YSBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgQlNPTk9iakJ1aWxkZXIqIGJ1aWxkZXIpIHsKLSAgICAgYm9vbCBmb3VuZEtleXMgPSBmYWxzZTsKLS0gICAgc3RkOjp2ZWN0b3I8dWludDY0X3Q+IHN0YXRzOwotKyAgICBzdGQ6OnZlY3Rvcjxsb25nIGxvbmc+IHN0YXRzOwotICAgICBzdGF0cy5yZXNlcnZlKGtEaXNrRmllbGRDb3VudCk7Ci0gCi0gICAgIHVzaW5nIHN0cmluZ19zcGxpdF9pdGVyYXRvciA9IGJvb3N0OjpzcGxpdF9pdGVyYXRvcjxTdHJpbmdEYXRhOjpjb25zdF9pdGVyYXRvcj47Ci1AQCAtNTAxLDcgKzUwMSw3IEBAIFN0YXR1cyBwYXJzZVByb2NEaXNrU3RhdHMoY29uc3Qgc3RkOjp2ZWN0b3I8U3RyaW5nRGF0YT4mIGRpc2tzLAotIAotICAgICAgICAgICAgICAgICBTdHJpbmdEYXRhIHN0cmluZ1ZhbHVlKCgqcGFydEl0KS5iZWdpbigpLCAoKnBhcnRJdCkuZW5kKCkpOwotIAotLSAgICAgICAgICAgICAgICB1aW50NjRfdCB2YWx1ZTsKLSsgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbHVlOwotIAotICAgICAgICAgICAgICAgICBpZiAoIXBhcnNlTnVtYmVyRnJvbVN0cmluZyhzdHJpbmdWYWx1ZSwgJnZhbHVlKS5pc09LKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gMDsKLS0tIAotMi4xNC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiLzAwMDEtbW9uZ28tQWRkLXVzaW5nLXN0ZC1zdHJpbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAxLW1vbmdvLUFkZC11c2luZy1zdGQtc3RyaW5nLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTE3ZDUzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbW9uZ29kYi9tb25nb2RiLzAwMDEtbW9uZ28tQWRkLXVzaW5nLXN0ZC1zdHJpbmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi1Gcm9tIDVmZGVjOTU5MjI4NWY1OTc2MzQ1ZmJjY2IzZDA3ZmFlMTI0NWFiNTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogV2VkLCAyIEF1ZyAyMDE3IDE1OjQxOjIyIC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIG1vbmdvOiBBZGQgdXNpbmcgc3RkOjpzdHJpbmcKLQotVGhpcyBpcyBuZWVkZWQgd2l0aCBsYXRlc3QgY2xhbmcKLUZpeGVzCi1zcmMvbW9uZ28vZGIvZGJ3ZWJzZXJ2ZXIuY3BwOjIwNjoyMzogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ3N0cmluZyc7IGRpZCB5b3UgbWVhbiAnU3RyaW5nJz8KLSAgICAgICAgc3RhdGljIHZlY3RvcjxzdHJpbmc+IGNvbW1hbmRzOwotICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fgotICAgICAgICAgICAgICAgICAgICAgIFN0cmluZwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi0gc3JjL21vbmdvL2RiL2Rid2Vic2VydmVyLmNwcCAgICAgICAgICAgICB8IDEgKwotIHNyYy9tb25nby9kYi9tYXRjaGVyL2V4cHJlc3Npb25fbGVhZi5jcHAgfCAyICsrCi0gc3JjL21vbmdvL2RiL3JlcGwvbWFzdGVyX3NsYXZlLmNwcCAgICAgICB8IDEgKwotIHNyYy9tb25nby91dGlsL25ldC9taW5pd2Vic2VydmVyLmNwcCAgICAgfCAxICsKLSA0IGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvc3JjL21vbmdvL2RiL2Rid2Vic2VydmVyLmNwcCBiL3NyYy9tb25nby9kYi9kYndlYnNlcnZlci5jcHAKLWluZGV4IGIyMDJlMDUwMGIuLjAyNTU2MTM1MjQgMTAwNjQ0Ci0tLS0gYS9zcmMvbW9uZ28vZGIvZGJ3ZWJzZXJ2ZXIuY3BwCi0rKysgYi9zcmMvbW9uZ28vZGIvZGJ3ZWJzZXJ2ZXIuY3BwCi1AQCAtNjcsNiArNjcsNyBAQCBuYW1lc3BhY2UgbW9uZ28gewotIHVzaW5nIHN0ZDo6bWFwOwotIHVzaW5nIHN0ZDo6c3RyaW5nc3RyZWFtOwotIHVzaW5nIHN0ZDo6dmVjdG9yOwotK3VzaW5nIHN0ZDo6c3RyaW5nOwotIAotIHVzaW5nIG5hbWVzcGFjZSBodG1sOwotIAotZGlmZiAtLWdpdCBhL3NyYy9tb25nby9kYi9tYXRjaGVyL2V4cHJlc3Npb25fbGVhZi5jcHAgYi9zcmMvbW9uZ28vZGIvbWF0Y2hlci9leHByZXNzaW9uX2xlYWYuY3BwCi1pbmRleCBkNTYyYmZmMTQxLi40ZDkzMTk4NWUyIDEwMDY0NAotLS0tIGEvc3JjL21vbmdvL2RiL21hdGNoZXIvZXhwcmVzc2lvbl9sZWFmLmNwcAotKysrIGIvc3JjL21vbmdvL2RiL21hdGNoZXIvZXhwcmVzc2lvbl9sZWFmLmNwcAotQEAgLTQ0LDYgKzQ0LDggQEAKLSAjaW5jbHVkZSAibW9uZ28vc3RkeC9tZW1vcnkuaCIKLSAjaW5jbHVkZSAibW9uZ28vdXRpbC9tb25nb3V0aWxzL3N0ci5oIgotIAotK3VzaW5nIHN0ZDo6c3RyaW5nOwotKwotIG5hbWVzcGFjZSBtb25nbyB7Ci0gCi0gU3RhdHVzIExlYWZNYXRjaEV4cHJlc3Npb246OnNldFBhdGgoU3RyaW5nRGF0YSBwYXRoKSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL21vbmdvL2RiL3JlcGwvbWFzdGVyX3NsYXZlLmNwcCBiL3NyYy9tb25nby9kYi9yZXBsL21hc3Rlcl9zbGF2ZS5jcHAKLWluZGV4IDA1ZmFhZDEyNTkuLmVhMjVkNzE1MWIgMTAwNjQ0Ci0tLS0gYS9zcmMvbW9uZ28vZGIvcmVwbC9tYXN0ZXJfc2xhdmUuY3BwCi0rKysgYi9zcmMvbW9uZ28vZGIvcmVwbC9tYXN0ZXJfc2xhdmUuY3BwCi1AQCAtNzgsNiArNzgsNyBAQCB1c2luZyBzdGQ6OmVuZGw7Ci0gdXNpbmcgc3RkOjptYXg7Ci0gdXNpbmcgc3RkOjptaW47Ci0gdXNpbmcgc3RkOjpzZXQ7Ci0rdXNpbmcgc3RkOjpzdHJpbmc7Ci0gdXNpbmcgc3RkOjpzdHJpbmdzdHJlYW07Ci0gdXNpbmcgc3RkOjp1bmlxdWVfcHRyOwotIHVzaW5nIHN0ZDo6dmVjdG9yOwotZGlmZiAtLWdpdCBhL3NyYy9tb25nby91dGlsL25ldC9taW5pd2Vic2VydmVyLmNwcCBiL3NyYy9tb25nby91dGlsL25ldC9taW5pd2Vic2VydmVyLmNwcAotaW5kZXggNWY0MTY1ZDQyZi4uMjM5NzIwYzM0OSAxMDA2NDQKLS0tLSBhL3NyYy9tb25nby91dGlsL25ldC9taW5pd2Vic2VydmVyLmNwcAotKysrIGIvc3JjL21vbmdvL3V0aWwvbmV0L21pbml3ZWJzZXJ2ZXIuY3BwCi1AQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgbW9uZ28gewotIAotIHVzaW5nIHN0ZDo6c2hhcmVkX3B0cjsKLSB1c2luZyBzdGQ6OnN0cmluZ3N0cmVhbTsKLSt1c2luZyBzdGQ6OnN0cmluZzsKLSB1c2luZyBzdGQ6OnZlY3RvcjsKLSAKLSBNaW5pV2ViU2VydmVyOjpNaW5pV2ViU2VydmVyKGNvbnN0IHN0cmluZyYgbmFtZSwgY29uc3Qgc3RyaW5nJiBpcCwgaW50IHBvcnQsIFNlcnZpY2VDb250ZXh0KiBjdHgpCi0tLSAKLTIuMTMuMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAyLWRfc3RhdGUuY3BwLUFkZC1taXNzaW5nLWRlcGVuZGVubmN5LW9uLWxvY2FsX3NoYXJkaW4ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYi8wMDAyLWRfc3RhdGUuY3BwLUFkZC1taXNzaW5nLWRlcGVuZGVubmN5LW9uLWxvY2FsX3NoYXJkaW4ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1ZjljMWMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGIvMDAwMi1kX3N0YXRlLmNwcC1BZGQtbWlzc2luZy1kZXBlbmRlbm5jeS1vbi1sb2NhbF9zaGFyZGluLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotRnJvbSA1NzU5ODc4ZTVkMjc4ZjExYTEwNjNlOGZjY2QxZTZiN2I1NGNhYWRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgMiBBdWcgMjAxNyAxNjoyNTozNyAtMDcwMAotU3ViamVjdDogW1BBVENIIDIvMl0gZF9zdGF0ZS5jcHA6IEFkZCBtaXNzaW5nIGRlcGVuZGVubmN5IG9uCi0gbG9jYWxfc2hhcmRpbmdfaW5mbwotCi1GaXhlcwotfCBzcmMvbW9uZ28vcy9kX3N0YXRlLmNwcDo4MTogZXJyb3I6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gJ21vbmdvOjplbmFibGVMb2NhbFNoYXJkaW5nSW5mbyhtb25nbzo6U2VydmljZUNvbnRleHQqLCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKG1vbmdvOjpPcGVyYXRpb25Db250ZXh0Kiwgc3RkOjpfX2N4eDExOjpiYXNpY19zdHJpbmc8Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiwgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPiBjb25zdCYpPiknCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvbW9uZ28vcy9TQ29uc2NyaXB0IHwgMSArCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCi0KLWRpZmYgLS1naXQgYS9zcmMvbW9uZ28vcy9TQ29uc2NyaXB0IGIvc3JjL21vbmdvL3MvU0NvbnNjcmlwdAotaW5kZXggNzE3MjBiZTUxNy4uNTFiZDE5OTEyNyAxMDA2NDQKLS0tLSBhL3NyYy9tb25nby9zL1NDb25zY3JpcHQKLSsrKyBiL3NyYy9tb25nby9zL1NDb25zY3JpcHQKLUBAIC0zMTcsNSArMzE3LDYgQEAgZW52LkxpYnJhcnkoCi0gICAgICAgICAiJEJVSUxEX0RJUi9tb25nby9kYi9zL3NoYXJkaW5nIiwKLSAgICAgICAgICIkQlVJTERfRElSL21vbmdvL2V4ZWN1dG9yL25ldHdvcmtfaW50ZXJmYWNlX2ZhY3RvcnkiLAotICAgICAgICAgIiRCVUlMRF9ESVIvbW9uZ28vcy9jbGllbnQvc2hhcmRfbG9jYWwiLAotKyAgICAgICAgIiRCVUlMRF9ESVIvbW9uZ28vcy9sb2NhbF9zaGFyZGluZ19pbmZvIiwKLSAgICAgXSwKLSApCi0tLSAKLTIuMTMuMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYl9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L21vbmdvZGIvbW9uZ29kYl9naXQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmZjdkMGIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9tb25nb2RiL21vbmdvZGJfZ2l0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotU1VNTUFSWSA9ICJtb25nb2RiIgotTElDRU5TRSA9ICJBR1BMLTMuMCAmIEFwYWNoZS0yLjAgJiBabGliIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vR05VLUFHUEwtMy4wLnR4dDttZDU9NzNmMWViMjA1MTdjNTViZjk0OTNiN2RkNmU0ODA3ODggXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQVBBQ0hFLTIuMC50eHQ7bWQ1PTNiODNlZjk2Mzg3ZjE0NjU1ZmM4NTRkZGMzYzZiZDU3IgotCi1ERVBFTkRTID0gIm9wZW5zc2wgbGlicGNyZSBsaWJwY2FwIHpsaWIgcHl0aG9uIGJvb3N0IgotCi1pbmhlcml0IHNjb25zIGRvczJ1bml4IHNpdGVpbmZvCi0KLVBWID0gIjMuNC42K2dpdCR7U1JDUFZ9IgotU1JDUkVWID0gImM1NWViODZlZjQ2ZWU3YWVkZTNiMWUyYTVkMTg0YTdkZjRiZmI1YjUiCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbW9uZ29kYi9tb25nby5naXQ7YnJhbmNoPXYzLjQgXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1UZWxsLXNjb25zLXRvLXVzZS1idWlsZC1zZXR0aW5ncy1mcm9tLWVudmlyb25tZW50LXZhLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtbW9uZ28tQWRkLXVzaW5nLXN0ZC1zdHJpbmcucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi1kX3N0YXRlLmNwcC1BZGQtbWlzc2luZy1kZXBlbmRlbm5jeS1vbi1sb2NhbF9zaGFyZGluLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtVXNlLWxvbmctbG9uZy1pbnN0ZWFkLW9mLWludDY0X3QucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1Vc2UtX19HTElCQ19fLXRvLWNvbnRyb2wtdXNlLW9mLWdudV9nZXRfbGliY192ZXJzaW9uLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtVXNlLXN0cmVycm9yX3Itb25seS1vbi1nbGliYy1zeXN0ZW1zLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDItQWRkLWEtZGVmaW5pdGlvbi1mb3ItdGhlLW1hY3JvLV9fRUxGX05BVElWRV9DTEFTUy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAzLUNvbmRpdGlvbmFsaXplLWdsaWJjLXNwZWNpZmljLXN0cmVycm9yX3IucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vYXJtNjQtc3VwcG9ydC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLUludGVsUkRGUE1hdGhMaWIyMFUxLUNoZWNrLWZvci1fX0RFRklORURfd2NoYXJfdC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9kaXNhYmxlLWh3LWNyYzMyLW9uLWFybTY0LXMzOTB4LnBhdGNoIFwKLSAgICAgICAgICAgIgotU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0iXAotICAgICAgICAgICBmaWxlOi8vMDAwNC13aXJlZHRpZ2VyLURpc2FibGUtc3RydG91cS1vbi1tdXNsLnBhdGNoIFwKLSAgICAgICAgICAgIgotUyA9ICIke1dPUktESVJ9L2dpdCIKLQotIyBXaXJlZHRpZ2VyIHN1cHBvcnRzIG9ubHkgNjQtYml0IHBsYXRmb3JtcwotUEFDS0FHRUNPTkZJR194ODYtNjQgPz89ICJ0Y21hbGxvYyB3aXJlZHRpZ2VyIgotUEFDS0FHRUNPTkZJR19hYXJjaDY0ID8/PSAidGNtYWxsb2Mgd2lyZWR0aWdlciIKLVBBQ0tBR0VDT05GSUcgPz89ICJ0Y21hbGxvYyIKLSMgZ3BlcmZ0b29scyBjb21waWxhdGlvbiBmYWlscyBmb3IgYXJtIGJlbG93IHY3IGJlY2F1c2Ugb2YgbWlzc2luZyBzdXBwb3J0IG9mCi0jIGRtYiBvcGVyYXRpb24uIFNvIHdlIHVzZSBzeXN0ZW0tYWxsb2NhdG9yIGluc3RlYWQgb2YgdGNtYWxsb2MKLVBBQ0tBR0VDT05GSUdfcmVtb3ZlX2FybXY2ID0gInRjbWFsbG9jIgotUEFDS0FHRUNPTkZJR19yZW1vdmVfbGliYy1tdXNsID0gInRjbWFsbG9jIgotCi0jc3RkOjpjdXJyZW50X2V4Y2VwdGlvbiBpcyB1bmRlZmluZWQgZm9yIGFybSA8IHY2Ci1DT01QQVRJQkxFX01BQ0hJTkVfYXJtdjQgPSAiKCEuKmFybXY0KS4qIgotQ09NUEFUSUJMRV9NQUNISU5FX2FybXY1ID0gIighLiphcm12NSkuKiIKLUNPTVBBVElCTEVfTUFDSElORV9hcm12N2EgPSAiKCEuKmFybXY3YSkuKiIKLUNPTVBBVElCTEVfTUFDSElORV9hcm12N3ZlID0gIighLiphcm12N3ZlKS4qIgotQ09NUEFUSUJMRV9NQUNISU5FX21pcHM2NCA9ICIoIS4qbWlwczY0KS4qIgotQ09NUEFUSUJMRV9NQUNISU5FX3Bvd2VycGMgPSAiKCEuKnBwYykuKiIKLQotUEFDS0FHRUNPTkZJR1t0Y21hbGxvY10gPSAiLS11c2Utc3lzdGVtLXRjbWFsbG9jLC0tYWxsb2NhdG9yPXN5c3RlbSxncGVyZnRvb2xzLCIKLVBBQ0tBR0VDT05GSUdbd2lyZWR0aWdlcl0gPSAiLS13aXJlZHRpZ2VyPW9uLC0td2lyZWR0aWdlcj1vZmYsLCIKLQotRVhUUkFfT0VTQ09OUyA9ICItLXByZWZpeD0ke0R9JHtwcmVmaXh9IFwKLSAgICAgICAgICAgICAgICAgTElCUEFUSD0ke1NUQUdJTkdfTElCRElSfSBcCi0gICAgICAgICAgICAgICAgIExJTktGTEFHUz0nJHtMREZMQUdTfScgXAotICAgICAgICAgICAgICAgICBDWFhGTEFHUz0nJHtDWFhGTEFHU30nIFwKLSAgICAgICAgICAgICAgICAgVEFSR0VUX0FSQ0g9JHtUQVJHRVRfQVJDSH0gXAotICAgICAgICAgICAgICAgICAtLXNzbCBcCi0gICAgICAgICAgICAgICAgIC0tZGlzYWJsZS13YXJuaW5ncy1hcy1lcnJvcnMgXAotICAgICAgICAgICAgICAgICAtLXVzZS1zeXN0ZW0tcGNyZSBcCi0gICAgICAgICAgICAgICAgIC0tdXNlLXN5c3RlbS16bGliIFwKLSAgICAgICAgICAgICAgICAgLS1qcy1lbmdpbmU9bm9uZSBcCi0gICAgICAgICAgICAgICAgIC0tbm9zdHJpcCBcCi0gICAgICAgICAgICAgICAgIC0tZW5kaWFuPSR7QGJhc2VfY29uZGl0aW9uYWwoJ1NJVEVJTkZPX0VORElBTk5FU1MnLCAnbGUnLCAnbGl0dGxlJywgJ2JpZycsIGQpfSBcCi0gICAgICAgICAgICAgICAgICR7UEFDS0FHRUNPTkZJR19DT05GQVJHU30gXAotICAgICAgICAgICAgICAgICBtb25nb2QgbW9uZ29zIgotCi1kb19jb25maWd1cmVfcHJlcGVuZCgpIHsKLSAgICAgICAgIyB0ZXN0cyB1c2UgaGV4IGZsb2F0cywgbm90IHN1cHBvcnRlZCBpbiBwbGFpbiBDKysKLSAgICAgICAgc2VkIC1lICdzfC1zdGQ9YysrMTF8LXN0ZD1nbnUrKzExfGcnIC1pICR7U30vU0NvbnN0cnVjdAotfQotc2NvbnNfZG9fY29tcGlsZSgpIHsKLSAgICAgICAgJHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9L3Njb25zICR7UEFSQUxMRUxfTUFLRX0gJHtFWFRSQV9PRVNDT05TfSB8fCBcCi0gICAgICAgIGRpZSAic2NvbnMgYnVpbGQgZXhlY3V0aW9uIGZhaWxlZC4iCi19Ci0KLXNjb25zX2RvX2luc3RhbGwoKSB7Ci0gICAgICAgICR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9zY29ucyBpbnN0YWxsICR7RVhUUkFfT0VTQ09OU318fCBcCi0gICAgICAgIGRpZSAic2NvbnMgaW5zdGFsbCBleGVjdXRpb24gZmFpbGVkLiIKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIuaW5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjNiMzEzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi5pbmMKKysrIC9kZXYvbnVsbApAQCAtMSwyOTMgKzAsMCBAQAotU1VNTUFSWSA9ICJBIHJvYnVzdCwgc2NhbGFibGUsIGFuZCByZWxpYWJsZSBTUUwgc2VydmVyIgotSE9NRVBBR0UgPSAiaHR0cDovL21hcmlhZGIub3JnIgotU0VDVElPTiA9ICJsaWJzIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIgotCi1TUkNfVVJJID0gImh0dHBzOi8vZG93bmxvYWRzLm1hcmlhZGIub3JnL2YvJHtCUH0vc291cmNlLyR7QlB9LnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly9maXgtY21ha2UtbW9kdWxlLXBhdGgucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vcmVtb3ZlLWJhZC1wYXRoLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2ZpeC1teXNxbGNsaWVudC1yLXZlcnNpb24ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbXkuY25mIFwKLSAgICAgICAgICAgZmlsZTovL215c3FsZC5zZXJ2aWNlIFwKLSAgICAgICAgICAgZmlsZTovL2luc3RhbGxfZGIuc2VydmljZSBcCi0gICAgICAgICAgIGZpbGU6Ly9pbnN0YWxsX2RiIFwKLSAgICAgICAgICAgZmlsZTovL215c3FsLXN5c3RlbWQtc3RhcnQgXAotICAgICAgICAgICBmaWxlOi8vY29uZmlndXJlLmNtYWtlLWZpeC12YWxncmluZC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9maXgtYS1idWlsZGluZy1mYWlsdXJlLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2NoYW5nZS1jYy10by1jYy12ZXJzaW9uLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtZGlzYWJsZS11Y29udGV4dC1vbi1tdXNsLnBhdGNoIFwKLSAgICAgICAgICAiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIyZDQxMDRhYWUwYjllNWVmYTg4Nzg5MThiZDMyOWNiNCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI1ZGJkZTk4ZDdlNGE1YTE3MjFiNmNiZWQ3ODk4YjI1NDlhODg4NjYyNDc5NTFjZjU4NjA1Nzk3NWM2Y2VhNjQxIgotCi1TID0gIiR7V09SS0RJUn0vbWFyaWFkYi0ke1BWfSIKLQotQklOQ09ORklHX0dMT0IgPSAibXlzcWxfY29uZmlnIgotCi1pbmhlcml0IGNtYWtlIGdldHRleHQgYmluY29uZmlnIHVwZGF0ZS1yYy5kIHVzZXJhZGQgc3lzdGVtZAotCi1JTklUU0NSSVBUX1BBQ0tBR0VTID0gIiR7UE59LXNlcnZlciAke1BOfS1zZXR1cGRiIgotSU5JVFNDUklQVF9OQU1FXyR7UE59LXNlcnZlciA9ICJteXNxbGQiCi1JTklUU0NSSVBUX1BBUkFNU18ke1BOfS1zZXJ2ZXIgPz0gInN0YXJ0IDQ1IDUgLiBzdG9wIDQ1IDAgNiAxIC4iCi0KLVVTRVJBRERfUEFDS0FHRVMgPSAiJHtQTn0tc2VydmVyIgotVVNFUkFERF9QQVJBTV8ke1BOfS1zZXJ2ZXIgPSAiLS1zeXN0ZW0gLS1ob21lLWRpciAvdmFyL215c3FsIC1nIG15c3FsIC0tc2hlbGwgL2Jpbi9mYWxzZSBteXNxbCIKLUdST1VQQUREX1BBUkFNXyR7UE59LXNlcnZlciA9ICItLXN5c3RlbSBteXNxbCIKLQotSU5JVFNDUklQVF9OQU1FXyR7UE59LXNldHVwZGIgPSAiaW5zdGFsbF9kYiIKLUlOSVRTQ1JJUFRfUEFSQU1TXyR7UE59LXNldHVwZGIgPz0gImRlZmF1bHRzIDQ0IDQ0IgotCi1TWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59LXNlcnZlciAke1BOfS1zZXR1cGRiIgotU1lTVEVNRF9TRVJWSUNFXyR7UE59LXNlcnZlciA9ICJteXNxbGQuc2VydmljZSIKLVNZU1RFTURfQVVUT19FTkFCTEVfJHtQTn0tc2VydmVyID89ICJkaXNhYmxlIgotCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0tc2V0dXBkYiA9ICJpbnN0YWxsX2RiLnNlcnZpY2UiCi1TWVNURU1EX0FVVE9fRU5BQkxFXyR7UE59LXNldHVwZGIgPz0gImVuYWJsZSIKLUFMTE9XX0VNUFRZXyR7UE59LXNldHVwZGIgPz0gIjEiCi1GSUxFU18ke1BOfS1zZXR1cGRiID0gIiR7c3lzY29uZmRpcn0vaW5pdC5kL2luc3RhbGxfZGIiCi0KLUVYVFJBX09FTUFLRSA9ICInR0VOX0xFWF9IQVNIPSR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9nZW5fbGV4X2hhc2gnIgotCi1QQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgZCl9IHNldHVwZGIiCi1QQUNLQUdFQ09ORklHX2NsYXNzLW5hdGl2ZSA9ICIiCi1QQUNLQUdFQ09ORklHW3BhbV0gPSAiLC1EV0lUSE9VVF9BVVRIX1BBTT1UUlVFLGxpYnBhbSIKLVBBQ0tBR0VDT05GSUdbdmFsZ3JpbmRdID0gIi1EV0lUSF9WQUxHUklORD1UUlVFLC1EV0lUSF9WQUxHUklORD1GQUxTRSx2YWxncmluZCIKLVBBQ0tBR0VDT05GSUdbbGliZWRpdF0gPSAiLURMSUJFRElUX0lOVEVSRkFDRT1UUlVFLC1ETElCRURJVF9JTlRFUkZBQ0U9RkFMU0UsbGliZWRpdCIKLVBBQ0tBR0VDT05GSUdba3JiNV0gPSAiLCAsa3JiNSIKLVBBQ0tBR0VDT05GSUdbc2V0dXBkYl0gPSAiLCAsLCR7UE59LXNldHVwZGIiCi0KLSMgTWFyaWFEQiBkb2Vzbid0IGxpbmsgcHJvcGVybHkgd2l0aCBnb2xkCi0jIGh0dHBzOi8vbWFyaWFkYi5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9NREVWLTU5ODIKLVRBUkdFVF9DRkxBR1MgKz0gIi1mdXNlLWxkPWJmZCIKLQotQlVJTERfQ0ZMQUdTICs9ICItZnVzZS1sZD1iZmQiCi1CVUlMRF9DWFhGTEFHUyArPSAiLWZ1c2UtbGQ9YmZkIgotCi1FWFRSQV9PRUNNQUtFID0gIi1EV0lUSF9FTUJFRERFRF9TRVJWRVI9T04gXAotICAgICAgICAgICAgICAgICAtRFdJVEhfSkVNQUxMT0M9bm8gXAotICAgICAgICAgICAgICAgICAtRFdJVEhPVVRfVE9LVURCPVRSVUUgXAotICAgICAgICAgICAgICAgICAtRENNQUtFX0RJU0FCTEVfRklORF9QQUNLQUdFX0Jvb3N0PVRSVUUgXAotICAgICAgICAgICAgICAgICAtREdST0ZGPUZBTFNFIFwKLSAgICAgICAgICAgICAgICAgLUROUk9GRj1GQUxTRSBcCi0gICAgICAgICAgICAgICAgIC1ERU5BQkxFX0RUUkFDRT1GQUxTRSBcCi0gICAgICAgICAgICAgICAgIC1EV0lUSF9QSUM9T04gXAotICAgICAgICAgICAgICAgICAtRElOU1RBTExfTEFZT1VUPVJQTSBcCi0gICAgICAgICAgICAgICAgIC1ESU5TVEFMTF9ET0NESVI6UEFUSD0ke2RhdGFkaXJ9L2RvYy8ke0JQTn0gXAotICAgICAgICAgICAgICAgICAtRElOU1RBTExfTElCRElSOlBBVEg9JHtiYXNlbGlifSBcCi0gICAgICAgICAgICAgICAgIC1ESU5TVEFMTF9QTFVHSU5ESVI6UEFUSD0ke2Jhc2VsaWJ9L3BsdWdpbiBcCi0gICAgICAgICAgICAgICAgIC1ESU5TVEFMTF9TWVNDT05GRElSOlBBVEg9JHtzeXNjb25mZGlyfSBcCi0gICAgICAgICAgICAgICAgIC1ETVlTUUxfREFUQURJUjpQQVRIPS92YXIvbXlzcWwgXAotICAgICAgICAgICAgICAgICAtRENBVF9FWEVDVVRBQkxFPWB3aGljaCBjYXRgIFwKLSAgICAgICAgICAgICAgICAgLURDTUFLRV9BUjpGSUxFUEFUSD0ke0FSfSIKLQotQVJNX0lOU1RSVUNUSU9OX1NFVF9hcm12NCA9ICJhcm0iCi1BUk1fSU5TVFJVQ1RJT05fU0VUX2FybXY1ID0gImFybSIKLQotZG9fY29uZmlndXJlX2FwcGVuZCgpIHsKLSAgICAjIGhhbmRsZSBkaXN0cm9zIHdpdGggZGlmZmVyZW50IHZhbHVlcyBvZiAke2xpYmV4ZWNkaXJ9Ci0gICAgbGliZXhlY2RpcjI9YGVjaG8gJHtsaWJleGVjZGlyfSB8IHNlZCAtZSAncysvdXNyLysrZydgCi0gICAgc2VkIC1pIC1lICJzOi9saWJleGVjOi8kbGliZXhlY2RpcjI6ZyIgJHtTfS9zY3JpcHRzL215c3FsX2luc3RhbGxfZGIuc2gKLSAgICBzZWQgLWkgLWUgInM6bXlzcWxkIGxpYmV4ZWM6bXlzcWxkICRsaWJleGVjZGlyMjpnIiAke1N9L3NjcmlwdHMvbXlzcWxfaW5zdGFsbF9kYi5zaAotICAgIHNlZCAtaSAtZSAiczovbGliZXhlYzovJGxpYmV4ZWNkaXIyOmciICR7U30vc2NyaXB0cy9teXNxbGRfc2FmZS5zaAotfQotCi1kb19nZW5lcmF0ZV90b29sY2hhaW5fZmlsZV9hcHBlbmRfY2xhc3MtbmF0aXZlICgpIHsKLSAgICAjIElmIHRoZXNlIGFyZSBzZXQgY21ha2Ugd2lsbCBhc3N1bWUgd2UncmUgY3Jvc3MtY29tcGlsaW5nLCB3aGljaCB3aWxsCi0gICAgIyByZXN1bHQgaW4gY2VydGFpbiB0aGluZ3Mgd2Ugd2FudCBiZWluZyBkaXNhYmxlZAotICAgIHNlZCAtaSAiL3NldCggQ01BS0VfU1lTVEVNX05BTUUvZCIgJHtXT1JLRElSfS90b29sY2hhaW4uY21ha2UKLSAgICBzZWQgLWkgIi9zZXQoIENNQUtFX1NZU1RFTV9QUk9DRVNTT1IvZCIgJHtXT1JLRElSfS90b29sY2hhaW4uY21ha2UKLX0KLQotZG9fY29tcGlsZV9wcmVwZW5kX2NsYXNzLXRhcmdldCAoKSB7Ci0gICAgIyBUaGVzZSBuZWVkIHRvIGJlIGluLXRyZWUgb3IgbWFrZSB3aWxsIHRoaW5rIHRoZXkgbmVlZCB0byBiZSBidWlsdCwKLSAgICAjIGFuZCBzaW5jZSB3ZSdyZSBjcm9zcy1jb21waWxpbmcgdGhhdCBpcyBkaXNhYmxlZAotICAgIGNwICR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9jb21wX2VyciAke1N9L2V4dHJhCi0gICAgY3AgJHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9L2NvbXBfc3FsICR7U30vc2NyaXB0cwotCi0gICAgaWYgWyAiJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAna3JiNScsICd5ZXMnLCAnbm8nLCBkKX0iID0gIm5vIiBdOyB0aGVuCi0gICAgICAgIGlmICEgWyAtZSAke0J9L2luY2x1ZGUvb3BlbnNzbC9rc3NsLmggXSA7IHRoZW4KLSAgICAgICAgICAgIG1rZGlyIC1wICR7Qn0vaW5jbHVkZS9vcGVuc3NsCi0gICAgICAgICAgICBlY2hvICIjaWZuZGVmIEtTU0xfSCIgPiR7Qn0vaW5jbHVkZS9vcGVuc3NsL2tzc2wuaAotICAgICAgICAgICAgZWNobyAiI2RlZmluZSBLU1NMX0giID4+JHtCfS9pbmNsdWRlL29wZW5zc2wva3NzbC5oCi0gICAgICAgICAgICBlY2hvICIjaW5jbHVkZSA8b3BlbnNzbC9vcGVuc3NsY29uZi5oPiI+PiR7Qn0vaW5jbHVkZS9vcGVuc3NsL2tzc2wuaAotICAgICAgICAgICAgZWNobyAiI2VuZGlmIiA+PiR7Qn0vaW5jbHVkZS9vcGVuc3NsL2tzc2wuaAotICAgICAgICBmaQotICAgIGZpCi19Ci0KLVNZU1JPT1RfUFJFUFJPQ0VTU19GVU5DUyArPSAibWFyaWFkYl9zeXNyb290X3ByZXByb2Nlc3MiCi0KLSMgV2UgbmVlZCB0byBhcHBlbmQgdGhpcyBzbyBpdCBydW5zICphZnRlciogYmluY29uZmlnJ3MgcHJlcHJvY2VzcyBmdW5jdGlvbgotIwotIyBXZSByZWFsbHkgZG9uJ3QgY2FyZSBleGFjdGx5IHdoYXQgdGhlIGRpcmVjdG9yaWVzIHdlcmUgc2V0IHRvIG9yaWdpbmFsbHkuCi0jIHBsdWdpbmRpciBpcyBub3QgZml4ZWQsIGJ1dCB3ZSBkb24ndCBjcmVhdGUgYW55IHBsdWdpbnMuCi0jCi1tYXJpYWRiX3N5c3Jvb3RfcHJlcHJvY2VzcyAoKSB7Ci0gICAgc2VkIC1pIC1lcyxecGtnaW5jbHVkZWRpcj0uKixwa2dpbmNsdWRlZGlyPVwnJHtTVEFHSU5HX0lOQ0RJUn0vbXlzcWxcJywgJHtTWVNST09UX0RFU1RESVJ9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS9teXNxbF9jb25maWcKLSAgICBzZWQgLWkgLWVzLF5wa2dsaWJkaXI9LioscGtnbGliZGlyPVwnJHtTVEFHSU5HX0xJQkRJUn1cJywgJHtTWVNST09UX0RFU1RESVJ9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS9teXNxbF9jb25maWcKLX0KLQotZG9faW5zdGFsbCgpIHsKLSAgICBvZV9ydW5tYWtlICdERVNURElSPSR7RH0nIGluc3RhbGwKLQotICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZAotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L215LmNuZiAke0R9LyR7c3lzY29uZmRpcn0vCi0gICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vaW5zdGFsbF9kYiAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kLwotICAgIG12ICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQvbXlzcWwgJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZC9teXNxbGQKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9teXNxbGQuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQotICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2luc3RhbGxfZGIuc2VydmljZSAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQotICAgIHNlZCAtaSAtZSAncyxAQklORElSQCwke2JpbmRpcn0sZycgLWUgJ3MsQFBSRUZJWEAsJHtwcmVmaXh9LGcnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL215c3FsZC5zZXJ2aWNlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS9pbnN0YWxsX2RiLnNlcnZpY2UKLQotICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZAotICAgICAgICBlY2hvICJmIC92YXIvbG9nL215c3FsZC5lcnIgMDY0MCBteXNxbCBteXNxbCAtIiBcCi0gICAgICAgICAgICA+ICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvOTktbXlzcWxkLmNvbmYKLSAgICBmaQotICAgIGluc3RhbGwgLWQgJHtEfSR7YmluZGlyfQotICAgIGluc3RhbGwgLW0gNzU1ICR7V09SS0RJUn0vbXlzcWwtc3lzdGVtZC1zdGFydCAke0R9JHtiaW5kaXJ9Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtkYXRhZGlyfS9kb2MvJHtQTn0KLSAgICBpZiBbIC1mICR7RH0ke2RhdGFkaXJ9L2RvYy9SRUFETUUgXTsgdGhlbgotICAgICAgICBtdiAke0R9JHtkYXRhZGlyfS9kb2MvUkVBRE1FICR7RH0ke2RhdGFkaXJ9L2RvYy8ke1BOfS8KLSAgICBmaQotfQotCi1QQUNLQUdFUyA9ICIke1BOfS1kYmcgJHtQTn0gXAotICAgIGxpYm15c3FsY2xpZW50LXIgbGlibXlzcWxjbGllbnQtci1kZXYgbGlibXlzcWxjbGllbnQtci1zdGF0aWNkZXYgbGlibXlzcWxjbGllbnQtci1kYmcgXAotICAgIGxpYm15c3FsY2xpZW50IGxpYm15c3FsY2xpZW50LWRldiBsaWJteXNxbGNsaWVudC1zdGF0aWNkZXYgbGlibXlzcWxjbGllbnQtZGJnIFwKLSAgICBsaWJteXNxbGQgbGlibXlzcWxkLWRldiAke1BOfS1jbGllbnQgJHtQTn0tc2VydmVyICR7UE59LXNldHVwZGIgJHtQTn0tbGVmdG92ZXJzIgotQ09ORkZJTEVTXyR7UE59LXNlcnZlciArPSAiJHtzeXNjb25mZGlyfS9teS5jbmYgJHtzeXNjb25mZGlyfS9teS5jbmYuZC9zZXJ2ZXIuY25mIgotQ09ORkZJTEVTXyR7UE59LWNsaWVudCArPSAiJHtzeXNjb25mZGlyfS9teS5jbmYuZC9teXNxbC1jbGllbnRzLmNuZiIKLUNPTkZGSUxFU19saWJteXNxbGNsaWVudCArPSAiJHtzeXNjb25mZGlyfS9teS5jbmYuZC9jbGllbnQuY25mIgotCi1GSUxFU18ke1BOfSA9ICIgIgotUkRFUEVORFNfJHtQTn0gPSAiJHtQTn0tY2xpZW50ICR7UE59LXNlcnZlciIKLUFMTE9XX0VNUFRZXyR7UE59ID0gIjEiCi0KLVJERVBFTkRTXyR7UE59LWNsaWVudCA9ICJwZXJsIHBlcmwtbW9kdWxlLWdldG9wdC1sb25nIHBlcmwtbW9kdWxlLWZpbGUtdGVtcCBcCi0gICAgcGVybC1tb2R1bGUtZmNudGwgcGVybC1tb2R1bGUtc3lzLWhvc3RuYW1lIHBlcmwtbW9kdWxlLWlwYy1vcGVuMyBcCi0gICAgcGVybC1tb2R1bGUtZXhwb3J0ZXIiCi1SREVQRU5EU18ke1BOfS1zZXJ2ZXIgPSAicGVybCBwZXJsLW1vZHVsZS1nZXRvcHQtbG9uZyBwZXJsLW1vZHVsZS1kYXRhLWR1bXBlciBcCi0gICAgcGVybC1tb2R1bGUtZmlsZS1iYXNlbmFtZSBwZXJsLW1vZHVsZS1maWxlLXBhdGggcGVybC1tb2R1bGUtc3lzLWhvc3RuYW1lIFwKLSAgICBwZXJsLW1vZHVsZS1maWxlLWNvcHkgcGVybC1tb2R1bGUtZmlsZS10ZW1wIHBlcmwtbW9kdWxlLXBvc2l4IFwKLSAgICAke1BOfS1jbGllbnQgbGliZGJpLXBlcmwgbGliZGJkLW15c3FsLXBlcmwiCi1SREVQRU5EU18ke1BOfS1sZWZ0b3ZlcnMgPSAicGVybCBwZXJsLW1vZHVsZS1jd2QgcGVybC1tb2R1bGUtYmVuY2htYXJrIHBlcmwtbW9kdWxlLWdldG9wdC1sb25nIFwKLSAgICBwZXJsLW1vZHVsZS1wb3NpeCBwZXJsLW1vZHVsZS1kYXRhLWR1bXBlciBwZXJsLW1vZHVsZS1zaWd0cmFwIHBlcmwtbW9kdWxlLXRocmVhZHMgXAotICAgIHBlcmwtbW9kdWxlLXRocmVhZHMtc2hhcmVkIHBlcmwtbW9kdWxlLWlvLXNvY2tldCBwZXJsLW1vZHVsZS1zeXMtaG9zdG5hbWUgcGVybC1tb2R1bGUtZmlsZS1jb3B5IFwKLSAgICBwZXJsLW1vZHVsZS1maWxlLXNwZWMgcGVybC1tb2R1bGUtZmlsZS1maW5kIHBlcmwtbW9kdWxlLWZpbGUtYmFzZW5hbWUgcGVybC1tb2R1bGUtZmlsZS1wYXRoIFwKLSAgICBwZXJsLW1vZHVsZS1jb25zdGFudCBwZXJsLW1vZHVsZS1saWIgcGVybC1tb2R1bGUtZmlsZS10ZW1wIHBlcmwtbW9kdWxlLWZpbGUtc3BlYy1mdW5jdGlvbnMgXAotICAgIHBlcmwtbW9kdWxlLWlvLXNvY2tldC1pbmV0IHBlcmwtbW9kdWxlLWlvLXNlbGVjdCIKLVJERVBFTkRTXyR7UE59LXNldHVwZGIgPSAiY29yZXV0aWxzIgotCi0jIEFsbG93IG9sZCBjb2RlIHRvIGxpbmsgdG8gdGhlIGJhY2t3YXJkIGNvbXBhdGlibGUgbGlicmFyeQotUkRFUEVORFNfbGlibXlzcWxjbGllbnQtZGV2ID0gImxpYm15c3FsY2xpZW50LXItZGV2IgotCi1GSUxFU19saWJteXNxbGNsaWVudCA9ICJcCi0gICAgJHtsaWJkaXJ9L2xpYm15c3FsY2xpZW50LnNvLiogXAotICAgICR7c3lzY29uZmRpcn0vbXkuY25mLmQvY2xpZW50LmNuZiIKLUZJTEVTX2xpYm15c3FsY2xpZW50LWRldiA9ICIgXAotICAgICR7aW5jbHVkZWRpcn0vbXlzcWwvIFwKLSAgICAke2xpYmRpcn0vbGlibXlzcWxjbGllbnQuc28gXAotICAgICR7c3lzY29uZmRpcn0vYWNsb2NhbCBcCi0gICAgJHtiaW5kaXJ9L215c3FsX2NvbmZpZyIKLUZJTEVTX2xpYm15c3FsY2xpZW50LXN0YXRpY2RldiA9ICJcCi0gICAgJHtsaWJkaXJ9LyouYSIKLUZJTEVTX2xpYm15c3FsY2xpZW50LWRiZyA9ICIke2xpYmRpcn0vcGx1Z2luLy5kZWJ1Zy8gXAotICAgICR7ZGF0YWRpcn0vbXlzcWwtdGVzdC9saWIvTXkvU2FmZVByb2Nlc3MvLmRlYnVnL215X3NhZmVfcHJvY2VzcyIKLQotIyBBdm9pZCB3YXJuaW5ncyBhYm91dCBoYV94dHJhZGIuc28uMC4wLjAgYW5kIGhhX2lubm9kYl9wbHVnaW4uc28uMC4wLjAKLSMgd2hpY2ggYXJlIGludGVudGlvbmFsbHkgbm9uLVBJQyBvbiAzMi1iaXQgeDg2IChzZWUgZS5nLgotIyBzdG9yYWdlL3h0cmFkYi9wbHVnLmluIGluIHRoZSBzb3VyY2UpCi1JTlNBTkVfU0tJUF9saWJteXNxbGNsaWVudF9hcHBlbmRfeDg2ID0gIiB0ZXh0cmVsIgotCi1GSUxFU19saWJteXNxbGNsaWVudC1yID0gIiR7bGliZGlyfS9saWJteXNxbGNsaWVudF9yLnNvLioiCi1GSUxFU19saWJteXNxbGNsaWVudC1yLWRldiA9ICJcCi0gICAgJHtsaWJkaXJ9L2xpYm15c3FsY2xpZW50X3Iuc28iCi1GSUxFU19saWJteXNxbGNsaWVudC1yLXN0YXRpY2RldiA9ICIke2xpYmRpcn0vbGlibXlzcWxjbGllbnRfci5hIgotRklMRVNfbGlibXlzcWxjbGllbnQtci1kYmcgPSAiJHtsaWJkaXJ9L3BsdWdpbi8uZGVidWdsaWJteXNxbGNsaWVudF9yLnNvLioiCi0KLUZJTEVTX2xpYm15c3FsZCA9ICJcCi0gICAgJHtsaWJkaXJ9L2xpYm15c3FsZC5zby4qIgotRklMRVNfbGlibXlzcWxkLWRldiA9ICJcCi0gICAgJHtsaWJkaXJ9L2xpYm15c3FsZC5zbyIKLQotRklMRVNfJHtQTn0tY2xpZW50ID0gIlwKLSAgICAke2JpbmRpcn0vbXlpc2FtX2Z0ZHVtcCBcCi0gICAgJHtiaW5kaXJ9L215c3FsIFwKLSAgICAke2JpbmRpcn0vbXlzcWxfY2xpZW50X3Rlc3QgXAotICAgICR7YmluZGlyfS9teXNxbF9jbGllbnRfdGVzdF9lbWJlZGRlZCBcCi0gICAgJHtiaW5kaXJ9L215c3FsX2ZpbmRfcm93cyBcCi0gICAgJHtiaW5kaXJ9L215c3FsX2ZpeF9leHRlbnNpb25zIFwKLSAgICAke2JpbmRpcn0vbXlzcWxfd2FpdHBpZCBcCi0gICAgJHtiaW5kaXJ9L215c3FsYWNjZXNzIFwKLSAgICAke2JpbmRpcn0vbXlzcWxhZG1pbiBcCi0gICAgJHtiaW5kaXJ9L215c3FsYnVnIFwKLSAgICAke2JpbmRpcn0vbXlzcWxjaGVjayBcCi0gICAgJHtiaW5kaXJ9L215c3FsZHVtcCBcCi0gICAgJHtiaW5kaXJ9L215c3FsZHVtcHNsb3cgXAotICAgICR7YmluZGlyfS9teXNxbGltcG9ydCBcCi0gICAgJHtiaW5kaXJ9L215c3Fsc2hvdyBcCi0gICAgJHtiaW5kaXJ9L215c3Fsc2xhcCBcCi0gICAgJHtiaW5kaXJ9L215c3FsdGVzdF9lbWJlZGRlZCBcCi0gICAgJHtsaWJleGVjZGlyfS9teXNxbG1hbmFnZXIgXAotICAgICR7c3lzY29uZmRpcn0vbXkuY25mLmQvbXlzcWwtY2xpZW50cy5jbmYiCi0KLUZJTEVTXyR7UE59LXNlcnZlciA9ICJcCi0gICAgJHtiaW5kaXJ9L2NvbXBfZXJyIFwKLSAgICAke2JpbmRpcn0vaXNhbWNoayBcCi0gICAgJHtiaW5kaXJ9L2lzYW1sb2cgXAotICAgICR7YmluZGlyfS9tc3FsMm15c3FsIFwKLSAgICAke2JpbmRpcn0vbXlfcHJpbnRfZGVmYXVsdHMgXAotICAgICR7YmluZGlyfS9teWlzYW1jaGsgXAotICAgICR7YmluZGlyfS9teWlzYW1sb2cgXAotICAgICR7YmluZGlyfS9teWlzYW1wYWNrIFwKLSAgICAke2JpbmRpcn0vbXlzcWxfY29udmVydF90YWJsZV9mb3JtYXQgXAotICAgICR7YmluZGlyfS9teXNxbF9maXhfcHJpdmlsZWdlX3RhYmxlcyBcCi0gICAgJHtiaW5kaXJ9L215c3FsX2luc3RhbGxfZGIgXAotICAgICR7YmluZGlyfS9teXNxbF9zZWN1cmVfaW5zdGFsbGF0aW9uIFwKLSAgICAke2JpbmRpcn0vbXlzcWxfc2V0cGVybWlzc2lvbiBcCi0gICAgJHtiaW5kaXJ9L215c3FsLXN5c3RlbWQtc3RhcnQgXAotICAgICR7YmluZGlyfS9teXNxbF90emluZm9fdG9fc3FsIFwKLSAgICAke2JpbmRpcn0vbXlzcWxfdXBncmFkZSBcCi0gICAgJHtiaW5kaXJ9L215c3FsX3BsdWdpbiBcCi0gICAgJHtiaW5kaXJ9L215c3FsX3phcCBcCi0gICAgJHtiaW5kaXJ9L215c3FsYmlubG9nIFwKLSAgICAke2JpbmRpcn0vbXlzcWxkX211bHRpIFwKLSAgICAke2JpbmRpcn0vbXlzcWxkX3NhZmUgXAotICAgICR7YmluZGlyfS9teXNxbGRfc2FmZV9oZWxwZXIgXAotICAgICR7YmluZGlyfS9teXNxbGhvdGNvcHkgXAotICAgICR7YmluZGlyfS9teXNxbHRlc3QgXAotICAgICR7YmluZGlyfS9uZGJfZGVsZXRlX2FsbCBcCi0gICAgJHtiaW5kaXJ9L25kYl9kZXNjIFwKLSAgICAke2JpbmRpcn0vbmRiX2Ryb3BfaW5kZXggXAotICAgICR7YmluZGlyfS9uZGJfZHJvcF90YWJsZSBcCi0gICAgJHtiaW5kaXJ9L25kYl9tZ20gXAotICAgICR7YmluZGlyfS9uZGJfcmVzdG9yZSBcCi0gICAgJHtiaW5kaXJ9L25kYl9zZWxlY3RfYWxsIFwKLSAgICAke2JpbmRpcn0vbmRiX3NlbGVjdF9jb3VudCBcCi0gICAgJHtiaW5kaXJ9L25kYl9zaG93X3RhYmxlcyBcCi0gICAgJHtiaW5kaXJ9L25kYl93YWl0ZXIgXAotICAgICR7YmluZGlyfS9wYWNrX2lzYW0gXAotICAgICR7YmluZGlyfS9wZXJyb3IgXAotICAgICR7YmluZGlyfS9yZXBsYWNlIFwKLSAgICAke2JpbmRpcn0vcmVzb2x2ZV9zdGFja19kdW1wIFwKLSAgICAke2JpbmRpcn0vcmVzb2x2ZWlwIFwKLSAgICAke2xpYmV4ZWNkaXJ9L215c3FsZCBcCi0gICAgJHtzYmluZGlyfS9teXNxbGQgXAotICAgICR7c2JpbmRpcn0vbmRiX2NwY2QgXAotICAgICR7c2JpbmRpcn0vbmRiZCBcCi0gICAgJHtzYmluZGlyfS9uZGJfbWdtZCBcCi0gICAgJHtsaWJkaXJ9L3BsdWdpbi8qLnNvIFwKLSAgICAke2RhdGFkaXJ9L215c3FsLyBcCi0gICAgJHtsb2NhbHN0YXRlZGlyfS9teXNxbC8gXAotICAgICR7c3lzY29uZmRpcn0vaW5pdC5kL215c3FsZCBcCi0gICAgJHtzeXNjb25mZGlyfS9teS5jbmYgXAotICAgICR7c3lzY29uZmRpcn0vbXkuY25mLmQvc2VydmVyLmNuZiBcCi0gICAgJHtzeXNjb25mZGlyfS90bXBmaWxlcy5kIgotCi1ERVNDUklQVElPTl8ke1BOfS1sZWZ0b3ZlcnMgPSAidW5wYWNrYWdlZCBhbmQgcHJvYmFibHkgdW5uZWVkZWQgZmlsZXMgZm9yICR7UE59IgotRklMRVNfJHtQTn0tbGVmdG92ZXJzID0gIi8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L215c3FsL21hcmlhZGIvZml4LW15c3FsY2xpZW50LXItdmVyc2lvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9maXgtbXlzcWxjbGllbnQtci12ZXJzaW9uLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTE2NjE5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbXlzcWwvbWFyaWFkYi9maXgtbXlzcWxjbGllbnQtci12ZXJzaW9uLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTYxICswLDAgQEAKLUZyb20gNmRiMmE2MDYxOTZmYjM4YTZkMTA2ZGM0MDllZWUxY2I5YTQwYTQ0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFRvciBEaWRyaWtzZW4gPHRvci5kaWRyaWtzZW5Ab3JhY2xlLmNvbT4KLURhdGU6IE1vbiwgMjQgSnVuIDIwMTMgMTc6MTU6MzUgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gQnVnIzE2ODA5MDU1IE1ZU1FMIDUuNiBBTkQgNS43IFNUSUxMIFVTRSBMSUJNWVNRTENMSUVOVC5TTy4xOAotCi1XaXRoIHRoaXMgcGF0Y2gsIHRoZSBsaWJteXNxbC8gZGlyZWN0b3J5IGNvbnRhaW5zOgotbGlibXlzcWxjbGllbnQuYQotbGlibXlzcWxjbGllbnRfci5hIC0+IGxpYm15c3FsY2xpZW50LmEKLWxpYm15c3FsY2xpZW50X3Iuc28gLT4gbGlibXlzcWxjbGllbnQuc28qCi1saWJteXNxbGNsaWVudF9yLnNvLjE4IC0+IGxpYm15c3FsY2xpZW50LnNvLjE4KgotbGlibXlzcWxjbGllbnRfci5zby4xOC4xLjAgLT4gbGlibXlzcWxjbGllbnQuc28uMTguMS4wKgotbGlibXlzcWxjbGllbnQuc28gLT4gbGlibXlzcWxjbGllbnQuc28uMTgqCi1saWJteXNxbGNsaWVudC5zby4xOCAtPiBsaWJteXNxbGNsaWVudC5zby4xOC4xLjAqCi1saWJteXNxbGNsaWVudC5zby4xOC4xLjAqCi0KLVRoaXMgZml4ZXMgbGlibXlzcWxjbGllbnRfciBzeW1saW5rcyBwb2ludGluZyB0byB0aGUgdW52ZXJzaW9uZWQKLWxpYm15c3FsY2xpZW50LnNvIHN5bWxpbmsgKGxlYWRpbmcgdG8gcGFja2FnZSBRQSBlcnJvcnMgc2luY2UgdGhlCi1saWJteXNxbGNsaWVudC1yIHBhY2thZ2UgZW5kcyB1cCBkZXBlbmRpbmcgb24gbGlibXlzcWxjbGllbnQtZGV2KS4KLQotQm9ycm93ZWQgZnJvbSBNeVNRTCA1LjYgdHJlZSBhdCBodHRwczovL2dpdGh1Yi5jb20vcGVyY29uYS9teXNxbC8KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFBhdWwgRWdnbGV0b24gPHBhdWwuZWdnbGV0b25AbGludXguaW50ZWwuY29tPgotCi0tLS0KLSBjbWFrZS9pbnN0YWxsX21hY3Jvcy5jbWFrZSB8IDI1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0KLSBjbWFrZS9teXNxbF92ZXJzaW9uLmNtYWtlICB8ICAzICsrLQotIGxpYm15c3FsL0NNYWtlTGlzdHMudHh0ICAgIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCi0gMyBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NtYWtlL2luc3RhbGxfbWFjcm9zLmNtYWtlIGIvY21ha2UvaW5zdGFsbF9tYWNyb3MuY21ha2UKLWluZGV4IGI4ZWZkZjguLmEwZDBlNjggMTAwNjQ0Ci0tLS0gYS9jbWFrZS9pbnN0YWxsX21hY3Jvcy5jbWFrZQotKysrIGIvY21ha2UvaW5zdGFsbF9tYWNyb3MuY21ha2UKLUBAIC0xLDQgKzEsNCBAQAotLSMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDExLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKyMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEzLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICMgCi0gIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLUBAIC0xMTEsMjggKzExMSwzMyBAQCBGVU5DVElPTihJTlNUQUxMX1NDUklQVCkKLSBFTkRGVU5DVElPTigpCi0gCi0gIyBJbnN0YWxsIHN5bWJvbGljIGxpbmsgdG8gQ01ha2UgdGFyZ2V0LiAKLS0jIHRoZSBsaW5rIGlzIGNyZWF0ZWQgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRhcmdldAotLSMgYW5kIGV4dGVuc2lvbiB3aWxsIGJlIHRoZSBzYW1lIGFzIGZvciB0YXJnZXQgZmlsZS4KLS1NQUNSTyhJTlNUQUxMX1NZTUxJTksgbGlua25hbWUgdGFyZ2V0IGRlc3RpbmF0aW9uIGNvbXBvbmVudCkKLSsjIFdlIGRvICdjZCBwYXRoOyBsbiAtcyB0YXJnZXRfbmFtZSBsaW5rX25hbWUnCi0rIyBXZSBhbHNvIGFkZCBhbiBJTlNUQUxMIHRhcmdldCBmb3IgIiR7cGF0aH0vJHtsaW5rX25hbWV9IgotK01BQ1JPKElOU1RBTExfU1lNTElOSyB0YXJnZXQgdGFyZ2V0X25hbWUgbGlua19uYW1lIGRlc3RpbmF0aW9uIGNvbXBvbmVudCkKLSBJRihVTklYKQotICAgR0VUX1RBUkdFVF9QUk9QRVJUWShsb2NhdGlvbiAke3RhcmdldH0gTE9DQVRJT04pCi0gICBHRVRfRklMRU5BTUVfQ09NUE9ORU5UKHBhdGggJHtsb2NhdGlvbn0gUEFUSCkKLS0gIEdFVF9GSUxFTkFNRV9DT01QT05FTlQobmFtZSAke2xvY2F0aW9ufSBOQU1FKQotLSAgU0VUKG91dHB1dCAke3BhdGh9LyR7bGlua25hbWV9KQotKyAgTUVTU0FHRShTVEFUVVMgInRhcmdldCAke3RhcmdldH0iKQotKyAgTUVTU0FHRShTVEFUVVMgImxpbmtfbmFtZSAke2xpbmtfbmFtZX0iKQotKyAgTUVTU0FHRShTVEFUVVMgInRhcmdldF9uYW1lICR7dGFyZ2V0X25hbWV9IikKLSsgIE1FU1NBR0UoU1RBVFVTICJwYXRoICR7cGF0aH0iKQotKyAgTUVTU0FHRShTVEFUVVMgIiIpCi0rCi0rICBTRVQob3V0cHV0ICR7cGF0aH0vJHtsaW5rX25hbWV9KQotICAgQUREX0NVU1RPTV9DT01NQU5EKAotICAgICBPVVRQVVQgJHtvdXRwdXR9Ci0gICAgIENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSBBUkdTIC1FIHJlbW92ZSAtZiAke291dHB1dH0KLSAgICAgQ09NTUFORCAke0NNQUtFX0NPTU1BTkR9IEFSR1MgLUUgY3JlYXRlX3N5bWxpbmsgCi0tICAgICAgJHtuYW1lfSAKLS0gICAgICAke2xpbmtuYW1lfQotKyAgICAgICR7dGFyZ2V0X25hbWV9IAotKyAgICAgICR7bGlua19uYW1lfQotICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke3BhdGh9Ci0gICAgIERFUEVORFMgJHt0YXJnZXR9Ci0gICAgICkKLSAgIAotLSAgQUREX0NVU1RPTV9UQVJHRVQoc3ltbGlua18ke2xpbmtuYW1lfQotKyAgQUREX0NVU1RPTV9UQVJHRVQoc3ltbGlua18ke2xpbmtfbmFtZX0KLSAgICAgQUxMCi0gICAgIERFUEVORFMgJHtvdXRwdXR9KQotLSAgU0VUX1RBUkdFVF9QUk9QRVJUSUVTKHN5bWxpbmtfJHtsaW5rbmFtZX0gUFJPUEVSVElFUyBDTEVBTl9ESVJFQ1RfT1VUUFVUIDEpCi0rICBTRVRfVEFSR0VUX1BST1BFUlRJRVMoc3ltbGlua18ke2xpbmtfbmFtZX0gUFJPUEVSVElFUyBDTEVBTl9ESVJFQ1RfT1VUUFVUIDEpCi0gICBJRihDTUFLRV9HRU5FUkFUT1IgTUFUQ0hFUyAiWGNvZGUiKQotICAgICAjIEZvciBYY29kZSwgcmVwbGFjZSBwcm9qZWN0IGNvbmZpZyB3aXRoIGluc3RhbGwgY29uZmlnCi0gICAgIFNUUklORyhSRVBMQUNFICIke0NNQUtFX0NGR19JTlRESVJ9IiAKLWRpZmYgLS1naXQgYS9saWJteXNxbC9DTWFrZUxpc3RzLnR4dCBiL2xpYm15c3FsL0NNYWtlTGlzdHMudHh0Ci1pbmRleCBiZTU3NjBmLi45NjI4NmZmIDEwMDY0NAotLS0tIGEvbGlibXlzcWwvQ01ha2VMaXN0cy50eHQKLSsrKyBiL2xpYm15c3FsL0NNYWtlTGlzdHMudHh0Ci1AQCAtMTgwLDYgKzE4MCwxMiBAQCBJRihNU1ZDKQotICBJTlNUQUxMX0RFQlVHX1RBUkdFVChteXNxbGNsaWVudCBERVNUSU5BVElPTiAke0lOU1RBTExfTElCRElSfS9kZWJ1ZykKLSBFTkRJRigpCi0gCi0rTUFDUk8oR0VUX1RBUkdFVF9OQU1FIHRhcmdldCBvdXRfbmFtZSkKLSsgIEdFVF9UQVJHRVRfUFJPUEVSVFkobG9jYXRpb24gJHt0YXJnZXR9IExPQ0FUSU9OKQotKyAgR0VUX0ZJTEVOQU1FX0NPTVBPTkVOVChuYW1lICR7bG9jYXRpb259IE5BTUUpCi0rICBTRVQoJHtvdXRfbmFtZX0gJHtuYW1lfSkKLStFTkRNQUNSTygpCi0rCi0gSUYoVU5JWCkKLSAgIE1BQ1JPKEdFVF9WRVJTSU9ORURfTElCTkFNRSBMSUJOQU1FIEVYVEVOU0lPTiBWRVJTSU9OIE9VVE5BTUUpCi0gICAgIFNFVChET1RfVkVSU0lPTiAiLiR7VkVSU0lPTn0iKQotQEAgLTE5Miw3ICsxOTgsMTMgQEAgSUYoVU5JWCkKLSAgICAgICBTRVQoJHtPVVROQU1FfSAke0xJQk5BTUV9JHtFWFRFTlNJT059JHtET1RfVkVSU0lPTn0pCi0gICAgIEVORElGKCkgCi0gICBFTkRNQUNSTygpCi0tICBJTlNUQUxMX1NZTUxJTksoJHtDTUFLRV9TVEFUSUNfTElCUkFSWV9QUkVGSVh9bXlzcWxjbGllbnRfci5hIG15c3FsY2xpZW50ICR7SU5TVEFMTF9MSUJESVJ9IERldmVsb3BtZW50KQotK0VORElGKCkKLSsKLStJRihVTklYKQotKyAgR0VUX1RBUkdFVF9OQU1FKG15c3FsY2xpZW50IGxpYl9uYW1lKQotKyAgSU5TVEFMTF9TWU1MSU5LKG15c3FsY2xpZW50Ci0rICAgICR7bGliX25hbWV9ICR7Q01BS0VfU1RBVElDX0xJQlJBUllfUFJFRklYfW15c3FsY2xpZW50X3IuYQotKyAgICAke0lOU1RBTExfTElCRElSfSBEZXZlbG9wbWVudCkKLSBFTkRJRigpCi0gCi0gSUYoTk9UIERJU0FCTEVfU0hBUkVEKQotQEAgLTIwNSwxMCArMjE3LDkgQEAgSUYoTk9UIERJU0FCTEVfU0hBUkVEKQotICAgICAjIGxpYnRvb2wgY29tcGF0YWJpbGl0eQotICAgICBJRihDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICJGcmVlQlNEIiBPUiBBUFBMRSkKLSAgICAgICBTRVQoT1NfU0hBUkVEX0xJQl9WRVJTSU9OICIke1NIQVJFRF9MSUJfTUFKT1JfVkVSU0lPTn0iKQotLSAgICBFTFNFSUYoQ01BS0VfU1lTVEVNX05BTUUgTUFUQ0hFUyAiSFAtVVgiKQotLSAgICAgIFNFVChPU19TSEFSRURfTElCX1ZFUlNJT04gIiR7U0hBUkVEX0xJQl9NQUpPUl9WRVJTSU9OfS4wIikKLSAgICAgRUxTRSgpCi0tICAgICAgU0VUKE9TX1NIQVJFRF9MSUJfVkVSU0lPTiAiJHtTSEFSRURfTElCX01BSk9SX1ZFUlNJT059LjAuMCIpCi0rICAgICAgU0VUKE9TX1NIQVJFRF9MSUJfVkVSU0lPTgotKyAgICAgICAgIiR7U0hBUkVEX0xJQl9NQUpPUl9WRVJTSU9OfS4ke1NIQVJFRF9MSUJfTUlOT1JfVkVSU0lPTn0uMCIpCi0gICAgIEVORElGKCkKLSAgICAgIyBOYW1lIG9mIHNoYXJlZCBsaWJyYXJ5IGlzIG15c3FsY2xpZW50IG9uIFVuaXgKLSAgICAgU0VUX1RBUkdFVF9QUk9QRVJUSUVTKGxpYm15c3FsIFBST1BFUlRJRVMgCi1AQCAtMjM5LDggKzI1MCwxMyBAQCBJRihOT1QgRElTQUJMRV9TSEFSRUQpCi0gICAgICAgIiR7Q01BS0VfU0hBUkVEX0xJQlJBUllfU1VGRklYfSIKLSAgICAgICAiIgotICAgICAgIGxpbmtuYW1lKQotLSAgICBJTlNUQUxMX1NZTUxJTksoJHtsaW5rbmFtZX0gbGlibXlzcWwgJHtJTlNUQUxMX0xJQkRJUn0gU2hhcmVkTGlicmFyaWVzKQotLSAgICBTRVQoT1NfU0hBUkVEX0xJQl9TWU1MSU5LUyAiJHtTSEFSRURfTElCX01BSk9SX1ZFUlNJT059IiAiJHtPU19TSEFSRURfTElCX1ZFUlNJT059IikKLSsgICAgR0VUX1RBUkdFVF9OQU1FKGxpYm15c3FsIGxpYl9uYW1lKQotKyAgICBHRVRfRklMRU5BTUVfQ09NUE9ORU5UKGxpYl9uYW1lX3dlICR7bGliX25hbWV9IE5BTUVfV0UpCi0rICAgIElOU1RBTExfU1lNTElOSyhsaWJteXNxbAotKyAgICAgICR7bGliX25hbWV9ICR7bGlua25hbWV9Ci0rICAgICAgJHtJTlNUQUxMX0xJQkRJUn0gU2hhcmVkTGlicmFyaWVzKQotKyAgICBTRVQoT1NfU0hBUkVEX0xJQl9TWU1MSU5LUwotKyAgICAgICIke1NIQVJFRF9MSUJfTUFKT1JfVkVSU0lPTn0iICIke09TX1NIQVJFRF9MSUJfVkVSU0lPTn0iKQotICAgICBMSVNUKFJFTU9WRV9EVVBMSUNBVEVTIE9TX1NIQVJFRF9MSUJfU1lNTElOS1MpCi0gICAgIEZPUkVBQ0godmVyICR7T1NfU0hBUkVEX0xJQl9TWU1MSU5LU30pCi0gICAgICAgR0VUX1ZFUlNJT05FRF9MSUJOQU1FKAotQEAgLTI0OCw3ICsyNjQsMTEgQEAgSUYoTk9UIERJU0FCTEVfU0hBUkVEKQotICAgICAgICAgIiR7Q01BS0VfU0hBUkVEX0xJQlJBUllfU1VGRklYfSIKLSAgICAgICAgICIke3Zlcn0iCi0gICAgICAgICBsaW5rbmFtZSkKLS0gICAgICBJTlNUQUxMX1NZTUxJTksoJHtsaW5rbmFtZX0gbGlibXlzcWwgJHtJTlNUQUxMX0xJQkRJUn0gU2hhcmVkTGlicmFyaWVzKQotKyAgICAgIEdFVF9WRVJTSU9ORURfTElCTkFNRSgKLSsgICAgICAgICR7bGliX25hbWVfd2V9ICIke0NNQUtFX1NIQVJFRF9MSUJSQVJZX1NVRkZJWH0iICIke3Zlcn0iIGxpYl9uYW1lX3ZlcikKLSsgICAgICBJTlNUQUxMX1NZTUxJTksobGlibXlzcWwKLSsgICAgICAgICR7bGliX25hbWVfdmVyfSAke2xpbmtuYW1lfQotKyAgICAgICAgJHtJTlNUQUxMX0xJQkRJUn0gU2hhcmVkTGlicmFyaWVzKQotICAgICBFTkRGT1JFQUNIKCkKLSAgIEVORElGKCkKLSBFTkRJRigpCi0tLSAKLTIuMC4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmFuby9uYW5vXzIuNy40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uYW5vL25hbm9fMi43LjQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhZjM5M2UuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uYW5vL25hbm9fMi43LjQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLWluY2x1ZGUgbmFuby5pbmMKLQotU1JDX1VSSVttZDVzdW1dID0gImMwMTFjN2Y5ZTQ3Y2IxZGEyN2Q0ZTdjYzhiNTZlYzZhIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjc1MjE3MDY0MzAzOWUyYzk1YTQzM2RlMzU3ZjBjNzBhOGM0YzRjNTYxYTkwYTdlNzI1OWE2M2UyMjViNjU5YjkiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L25hbm8vbmFub18yLjkuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmFuby9uYW5vXzIuOS4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmYjBjZjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L25hbm8vbmFub18yLjkuMy5iYgpAQCAtMCwwICsxLDQgQEAKK2luY2x1ZGUgbmFuby5pbmMKKworU1JDX1VSSVttZDVzdW1dID0gIjZkZDM3ZjAxMGQ2YTk4NWJmMGU1ZjhlZDA5MWZmOTE5IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjc3ODNiY2ZkNGIyZDVkYzBiZjY0ZDRiZDA3YjFhMTllN2JhM2M5MWRhODgxYTQyNDk3NzJhMzZiOTcyZDQwMTIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L25lMTAvbmUxMF8xLjIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmUxMC9uZTEwXzEuMi4xLmJiCmluZGV4IGU1YjUwY2UuLjc2ZTA3NDEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmUxMC9uZTEwXzEuMi4xLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmUxMC9uZTEwXzEuMi4xLmJiCkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICAgIGQuc2V0VmFyKCdORTEwX1RBUkdFVF9BUkNIJywgJ2FhcmNoNjQnKQogICAgICAgICBiYi5kZWJ1ZygyLCAnQnVpbGRpbmcgTmUxMCBmb3IgYWFyY2g2NCcpCiAgICAgZWxzZToKLSAgICAgICAgcmFpc2UgYmIucGFyc2UuU2tpcFBhY2thZ2UoIkluY29tcGF0aWJsZSB3aXRoIGFyY2hzIG90aGVyIHRoYW4gYXJtdjcgYW5kIGFhcmNoNjQiKQorICAgICAgICByYWlzZSBiYi5wYXJzZS5Ta2lwUmVjaXBlKCJJbmNvbXBhdGlibGUgd2l0aCBhcmNocyBvdGhlciB0aGFuIGFybXY3IGFuZCBhYXJjaDY0IikKIH0KIAogZG9faW5zdGFsbCgpIHsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmVvbi9uZW9uL3BrZ2NvbmZpZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmVvbi9uZW9uL3BrZ2NvbmZpZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzlkYmE4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uZW9uL25lb24vcGtnY29uZmlnLnBhdGNoCkBAIC0wLDAgKzEsMTUgQEAKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KKworLS0tCisgbmVvbi5wYy5pbiB8ICAgIDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworLS0tIG5lb24tMC4zMC4xLm9yaWcvbmVvbi5wYy5pbgorKysrIG5lb24tMC4zMC4xL25lb24ucGMuaW4KK0BAIC03LDUgKzcsNSBAQCBOYW1lOiBuZW9uCisgRGVzY3JpcHRpb246IEhUVFAvV2ViREFWIGNsaWVudCBsaWJyYXJ5CisgVmVyc2lvbjogQE5FT05fVkVSU0lPTkAKKyBMaWJzOiAtTCR7bGliZGlyfSAtbG5lb24gQE5FT05fUENfTElCU0AKKy1MaWJzLnByaXZhdGU6IEBORU9OX0xJQlNACisrTGlicy5wcml2YXRlOiAtTCR7bGliZGlyfSAtbHogLWxnY3J5cHQgLWxncGctZXJyb3IgLWxleHBhdCAtbGdudXRscworIENmbGFnczogLUkke2luY2x1ZGVkaXJ9L25lb24gQE5FT05fQ0ZMQUdTQApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uZW9uL25lb25fMC4zMC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9uZW9uL25lb25fMC4zMC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwYjc5ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L25lb24vbmVvbl8wLjMwLjIuYmIKQEAgLTAsMCArMSwzOCBAQAorU1VNTUFSWSA9ICJBbiBIVFRQIGFuZCBXZWJEQVYgY2xpZW50IGxpYnJhcnkgd2l0aCBhIEMgaW50ZXJmYWNlIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy53ZWJkYXYub3JnL25lb24vIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJMR1BMdjIrIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vc3JjL0NPUFlJTkcuTElCO21kNT1mMzBhOTcxNmVmMzc2MmUzNDY3YTJmNjJiZjc5MGYwYSBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvbmVfdXRpbHMuaDtiZWdpbmxpbmU9MTtlbmRsaW5lPTIwO21kNT0yY2FjYTYwOTUzOGVkZGFhNmY2YWRmMTIwYTIxODAzNyIKKworU1JDX1VSSSA9ICIke0RFQklBTl9NSVJST1J9L21haW4vbi9uZW9uMjcvbmVvbjI3XyR7UFZ9Lm9yaWcudGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL3BrZ2NvbmZpZy5wYXRjaCBcCisgICAgICAgICAgIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZTI4ZDc3YmYxNDAzMmQ3ZjUwNDZiMzkzMDcwNGVmNDEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZGIwYmQ4Y2RlYzMyOWI0OGY1M2E2ZjAwMTk5YzkyZDViYTQwYjBmMDE1YjE1MzcxOGQxYjE1ZDNkOTY3ZmJjYSIKKworaW5oZXJpdCBhdXRvdG9vbHMgYmluY29uZmlnLWRpc2FibGVkIGxpYl9wYWNrYWdlIHBrZ2NvbmZpZworCisjIEVuYWJsZSBnbnV0bHMgb3Igb3BlbnNzbCwgbm90IGJvdGgKK1BBQ0tBR0VDT05GSUcgPz0gImV4cGF0IGdudXRscyBsaWJwcm94eSB3ZWJkYXYgemxpYiIKK1BBQ0tBR0VDT05GSUdfY2xhc3MtbmF0aXZlID0gImV4cGF0IGdudXRscyB3ZWJkYXYgemxpYiIKKworUEFDS0FHRUNPTkZJR1tleHBhdF0gPSAiLS13aXRoLWV4cGF0LC0td2l0aG91dC1leHBhdCxleHBhdCIKK1BBQ0tBR0VDT05GSUdbZ251dGxzXSA9ICItLXdpdGgtc3NsPWdudXRscywsZ251dGxzIgorUEFDS0FHRUNPTkZJR1tnc3NhcGldID0gIi0td2l0aC1nc3NhcGksLS13aXRob3V0LWdzc2FwaSxrcmI1IgorUEFDS0FHRUNPTkZJR1tsaWJwcm94eV0gPSAiLS13aXRoLWxpYnByb3h5LC0td2l0aG91dC1saWJwcm94eSxsaWJwcm94eSIKK1BBQ0tBR0VDT05GSUdbbGlieG1sMl0gPSAiLS13aXRoLWxpYnhtbDIsLS13aXRob3V0LWxpYnhtbDIsbGlieG1sMiIKK1BBQ0tBR0VDT05GSUdbb3BlbnNzbF0gPSAiLS13aXRoLXNzbD1vcGVuc3NsLCxvcGVuc3NsIgorUEFDS0FHRUNPTkZJR1t3ZWJkYXZdID0gIi0tZW5hYmxlLXdlYmRhdiwtLWRpc2FibGUtd2ViZGF2LCIKK1BBQ0tBR0VDT05GSUdbemxpYl0gPSAiLS13aXRoLXpsaWIsLS13aXRob3V0LXpsaWIsemxpYiIKKworRVhUUkFfT0VDT05GICs9ICItLWVuYWJsZS1zaGFyZWQiCisKK2RvX2NvbXBpbGVfYXBwZW5kKCkgeworICAgIG9lX3J1bm1ha2UgLUMgdGVzdAorfQorCitCSU5DT05GSUcgPSAiJHtiaW5kaXJ9L25lb24tY29uZmlnIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmdodHRwMi9uZ2h0dHAyXzEuMjYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvbmdodHRwMi9uZ2h0dHAyXzEuMjYuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2U2YjEwYS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L25naHR0cDIvbmdodHRwMl8xLjI2LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1TVU1NQVJZID0gIkhUVFAvMiBDIExpYnJhcnkgYW5kIHRvb2xzIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9uZ2h0dHAyLm9yZy8iCi1TRUNUSU9OID0gImxpYnMiCi0KLURFUEVORFMgPSAicGtnY29uZmlnIGN1bml0IHpsaWIgb3BlbnNzbCBsaWJ4bWwyIGphbnNzb24gYy1hcmVzIgotCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLyR7Q09SRUJBU0V9L21ldGEvQ09QWUlORy5NSVQ7bWQ1PTNkYTljZmJjYjc4OGM4MGEwMzg0MzYxYjRkZTIwNDIwIgotCi1TUkNfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS9uZ2h0dHAyL25naHR0cDIvcmVsZWFzZXMvZG93bmxvYWQvdiR7UFZ9L25naHR0cDItJHtQVn0udGFyLmJ6MiIKLVNSQ19VUklbbWQ1c3VtXSA9ICI5MjZmMDdhZDNiNTBmMzhmN2Q4OTM1Y2VkMDQ3MTZjZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIwZGY0MjI5ZjQxMjNiNWFhOTZlODM0ZWJjZmRmZmU5NTRlOTNkOTg2ZjAyNTJmZDEwMTIzZDUwYzZmMDEwOTgzIgotCi1pbmhlcml0IGNtYWtlIHB5dGhvbm5hdGl2ZSBweXRob24tZGlyCi0KLUVYVFJBX09FQ01BS0UgPSAiIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuLXZtLXRvb2xzL2ZpbGVzL3ZtdG9vbHNkLmluaXQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW4tdm0tdG9vbHMvZmlsZXMvdm10b29sc2QuaW5pdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODI4MDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuLXZtLXRvb2xzL2ZpbGVzL3ZtdG9vbHNkLmluaXQKQEAgLTAsMCArMSw2NiBAQAorIyEvYmluL3NoCisjCisjICAgdm10b29sc2QgICAgICAgICAgU3RhcnQvc3RvcCB0aGUgdm13YXJlIHRvb2xzIGRhZW1vbgorIworIyBjaGtjb25maWc6ICAyMzQ1IDkwIDYwCisjIGRlc2NyaXB0aW9uOiB2bXRvb2xzZCBpcyBhIGRhZW1vbiB0aGF0IHN0YXJ0cyB1cC4gIGZvciBzb21lIHJlYXNvbiwgaXQKKyMgICAgICAgICAgICAgIGRvZXNuJ3QgaW5jbHVkZSBhIHN5c3YgaW5pdCBzdGFydHVwIGZpbGUgaW4gdGhlIGxhdGVzdCByZWxlYXNlLgorIyAgICAgICAgICAgICAgc28gaSBoYXZlIHRvIHdyaXRlIHRoaXMKKyMKKworIyMjIEJFR0lOIElOSVQgSU5GTworIyBQcm92aWRlczogdm10b29sc2QKKyMgUmVxdWlyZWQtU3RhcnQ6ICRsb2NhbF9mcyAkc3lzbG9nCisjIFJlcXVpcmVkLVN0b3A6ICRsb2NhbF9mcyAkc3lzbG9nCisjIERlZmF1bHQtU3RhcnQ6IDIzNDUKKyMgRGVmYXVsdC1TdG9wOiA5MAorIyBTaG9ydC1EZXNjcmlwdGlvbjogUnVuIHZtd2FyZSB0b29scyBkYWVtb24KKyMjIyBFTkQgSU5JVCBJTkZPCisKK1BBVEg9L3NiaW46L2JpbjovdXNyL3NiaW46L3Vzci9iaW4KK0RBRU1PTj0vdXNyL2Jpbi92bXRvb2xzZAorTkFNRT12bXRvb2xzZAorREVTQz0idm13YXJlIHRvb2xzIGRhZW1vbiIKK1ZNVE9PTFNEQVJHUz0iIC1iIC92YXIvcnVuL3ZtdG9vbHNkLnBpZCAiCitSRVRWQUw9IjEiCisKKyMgc291cmNlIGZ1bmN0aW9uIGxpYnJhcnkKKy4gL2V0Yy9pbml0LmQvZnVuY3Rpb25zCisKK3Rlc3QgLWYgJERBRU1PTiB8fCBleGl0IDAKKworCitjYXNlICIkMSIgaW4KKyAgc3RhcnQpCisgICAgZWNobyAtbiAiU3RhcnRpbmcgdm13YXJlIHRvb2xzIGRhZW1vbjogIgorICAgIHN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RhcnQgLS1xdWlldCAtLWV4ZWMgJERBRU1PTiAtLSAkVk1UT09MU0RBUkdTCisgICAgUkVUVkFMPSQ/CisgICAgaWYgWyAkUkVUVkFMIC1lcSAwIF0gOyB0aGVuCisgICAgICAgIGVjaG8gIk9LIgorICAgIGVsc2UKKyAgICAgICAgZWNobyAiRkFJTCIKKyAgICBmaQorICAgIDs7CisgIHN0b3ApCisgICAgZWNobyAtbiAiU3RvcHBpbmcgdm13YXJlIHRvb2xzIGRhZW1vbjogIgorICAgIHN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAtLXF1aWV0IC0tcGlkZmlsZSAvdmFyL3J1bi92bXRvb2xzZC5waWQKKyAgICBSRVRWQUw9JD8KKyAgICBpZiBbICRSRVRWQUwgLWVxIDAgXSA7IHRoZW4KKyAgICAgICAgZWNobyAiT0siCisgICAgZWxzZQorICAgICAgICBlY2hvICJGQUlMIgorICAgIGZpCisgICAgOzsKKyAgc3RhdHVzKQorICAgIHN0YXR1cyB2bXRvb2xzZAorICAgIGV4aXQgJD8KKyAgICA7OworICByZXN0YXJ0KQorICAgICQwIHN0b3AgJiYgc2xlZXAgMSAmJiAkMCBzdGFydAorICAgIDs7CisgICopCisgICAgZWNobyAiVXNhZ2U6IC9ldGMvaW5pdC5kL3ZtdG9vbHNkIHtzdGFydHxzdG9wfHN0YXR1c3xyZXN0YXJ0fSIKKyAgICBleGl0IDEKK2VzYWMKKworZXhpdCAkUkVUVkFMCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW4tdm0tdG9vbHMvb3Blbi12bS10b29sc18xMC4xLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW4tdm0tdG9vbHMvb3Blbi12bS10b29sc18xMC4xLjUuYmIKaW5kZXggODFlOGU5Ni4uYzMyZDJjNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuLXZtLXRvb2xzL29wZW4tdm0tdG9vbHNfMTAuMS41LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3Blbi12bS10b29scy9vcGVuLXZtLXRvb2xzXzEwLjEuNS5iYgpAQCAtMjQsNiArMjQsNyBAQAogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3Ztd2FyZS9vcGVuLXZtLXRvb2xzLmdpdDtwcm90b2NvbD1odHRwcyBcCiAgICAgICAgICAgIGZpbGU6Ly90b29scy5jb25mIFwKICAgICAgICAgICAgZmlsZTovL3ZtdG9vbHNkLnNlcnZpY2UgXAorICAgICAgICAgICBmaWxlOi8vdm10b29sc2QuaW5pdCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS5hYy1kb24tdC11c2UtZG5ldC1jb25maWcucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAwMi1hZGQtaW5jbHVkZS1zeXMtc3lzbWFjcm9zLmgucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1SZW1vdmUtYXNzdW1wdGlvbnMtYWJvdXQtZ2xpYmMtYmVpbmctb25seS1saWJjLWltcGxlLnBhdGNoIFwKQEAgLTUwLDcgKzUxLDcgQEAKICMgb3Blbi12bS10b29scyBpcyBzdXBwb3J0ZWQgb25seSBvbiB4ODYuCiBDT01QQVRJQkxFX0hPU1QgPSAnKHg4Nl82NC4qfGkuODYuKiktbGludXgnCiAKLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBzeXN0ZW1kCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgc3lzdGVtZCB1cGRhdGUtcmMuZAogCiBTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAidm10b29sc2Quc2VydmljZSIKIApAQCAtODUsOCArODYsMTQgQEAKIAogZG9faW5zdGFsbF9hcHBlbmQoKSB7CiAgICAgbG4gLXNmICR7c2JpbmRpcn0vbW91bnQudm1oZ2ZzICR7RH0vc2Jpbi9tb3VudC52bWhnZnMKLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtICR7RH0ke3N5c2NvbmZkaXJ9L3Ztd2FyZS10b29scwotICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vKi5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS92bXdhcmUtdG9vbHMKKyAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAndHJ1ZScsICdmYWxzZScsIGQpfTsgdGhlbgorICAgICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vKi5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgZWxzZQorICAgICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZAorICAgICAgICBpbnN0YWxsIC1tIDA3NTUgJHtXT1JLRElSfS92bXRvb2xzZC5pbml0ICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC92bXRvb2xzZAorICAgIGZpCiAgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vdG9vbHMuY29uZiAke0R9JHtzeXNjb25mZGlyfS92bXdhcmUtdG9vbHMvdG9vbHMuY29uZgogfQogCkBAIC05NSw2ICsxMDIsMTAgQEAKICAgICBleHBvcnQgQ1VTVE9NX0RORVRfTElCUz0tTCR7U1RBR0lOR19MSUJESVJ9L2xpYmRuZXQuc28KIH0KIAorSU5JVFNDUklQVF9QQUNLQUdFUyA9ICIke1BOfSIKK0lOSVRTQ1JJUFRfTkFNRV8ke1BOfSA9ICJ2bXRvb2xzZCIKK0lOSVRTQ1JJUFRfUEFSQU1TXyR7UE59ID0gInN0YXJ0IDkwIDIgMyA0IDUgLiBzdG9wIDYwIDAgMSA2IC4iCisKIHB5dGhvbigpIHsKICAgICBpZiAnbmV0d29ya2luZy1sYXllcicgbm90IGluIGQuZ2V0VmFyKCdCQkZJTEVfQ09MTEVDVElPTlMnKS5zcGxpdCgpIG9yIFwKIAknZmlsZXN5c3RlbXMtbGF5ZXInIG5vdCBpbiBkLmdldFZhcignQkJGSUxFX0NPTExFQ1RJT05TJykuc3BsaXQoKToKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3BlbmN0L29wZW5jdF8wLjYuMjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdC9vcGVuY3RfMC42LjIwLmJiCmluZGV4IGM3ZDcyMDMuLjkxMzI5MGMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3BlbmN0L29wZW5jdF8wLjYuMjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Qvb3BlbmN0XzAuNi4yMC5iYgpAQCAtMjUsNyArMjUsNyBAQAogTElDRU5TRSA9ICJMR1BMdjIrIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTEdQTC0yLjE7bWQ1PTJkNTAyNWQ0YWEzNDk1YmVmZWY4ZjE3MjA2YTViMGExIgogCi1pbmhlcml0ICR7QGJiLnV0aWxzLmZpbHRlcignVklSVFVBTC1SVU5USU1FX2luaXRfbWFuYWdlcicsICdzeXN0ZW1kJywgZCl9Citpbmhlcml0IHN5c3RlbWQKIFNZU1RFTURfU0VSVklDRV8ke1BOfSArPSAib3BlbmN0LnNlcnZpY2UgIgogU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJlbmFibGUiCiAKQEAgLTc3LDEwICs3Nyw4IEBACiAgICAgaW5zdGFsbCAtRHBtIDc1NSAke1dPUktESVJ9L29wZW5jdC5pbml0ICR7RH0vZXRjL2luaXQuZC9vcGVuY3QKICAgICBpbnN0YWxsIC1EcG0gNjQ0ICR7V09SS0RJUn0vb3BlbmN0LnN5c2NvbmZpZyAke0R9L2V0Yy9zeXNjb25maWcvb3BlbmN0CiAKLSAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywnc3lzdGVtZCcsJ3RydWUnLCdmYWxzZScsZCl9OyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vb3BlbmN0LnNlcnZpY2UgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgZmkKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vb3BlbmN0LnNlcnZpY2UgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCiAKICAgICBzbz0kKGZpbmQgJHtEfSAtbmFtZSBcKi5zbyB8IHNlZCAic3xeJHtEfXx8IikKICAgICBzZWQgLWkgLWUgJ3N8XFwoTElCUEFUSFxccypcXCkuKnxcXDEkc298JyBldGMvcmVhZGVyLmNvbmYKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3BlbmN2L29wZW5jdi9hbHJlYWR5LWV4aXN0cy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3BlbmN2L29wZW5jdi9hbHJlYWR5LWV4aXN0cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTI0ZjJkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Yvb3BlbmN2L2FscmVhZHktZXhpc3RzLnBhdGNoCkBAIC0wLDAgKzEsMzk0IEBACitGcm9tIGU0YmYxNDhjZGRmMjc3ODM0ZTU3YzlhZmVlYzhkYWZmODM3OGE2NTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQGdtYWlsLmNvbT4KK0RhdGU6IFdlZCwgMjIgTm92IDIwMTcgMTU6Mjc6MDcgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4OiBGaWxlIGFscmVhZHkgZXhpc3RzIGluIGRhdGFiYXNlOiBjYWZmZS5wcm90bworCitGaXhlcyBlcnJvciB3aGVuIGltcG9ydGluZyBweXRob24gY3YKKworVXBzdHJlYW0tc3RhdHVzOiBCYWNrcG9ydCBodHRwczovL2dpdGh1Yi5jb20vb3BlbmN2L29wZW5jdi9wdWxsLzEwMDkyCitTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQGdtYWlsLmNvbT4KKy0tLQorIG1vZHVsZXMvZG5uL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDYgKysrLS0tCisgbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2ltcG9ydGVyLmNwcCAgICAgICAgICAgICAgICAgIHwgMSAtCisgbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgMSAtCisgbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmhwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQorIG1vZHVsZXMvZG5uL3NyYy9jYWZmZS97Y2FmZmUucHJvdG8gPT4gb3BlbmN2LWNhZmZlLnByb3RvfSB8IDAKKyA1IGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKyByZW5hbWUgbW9kdWxlcy9kbm4vc3JjL2NhZmZlL3tjYWZmZS5wcm90byA9PiBvcGVuY3YtY2FmZmUucHJvdG99ICgxMDAlKQorCitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9kbm4vQ01ha2VMaXN0cy50eHQgYi9tb2R1bGVzL2Rubi9DTWFrZUxpc3RzLnR4dAoraW5kZXggYzYzMjlhNzQyMjYzLi44ZWYwMGVmOTgzZmYgMTAwNjQ0CistLS0gYS9tb2R1bGVzL2Rubi9DTWFrZUxpc3RzLnR4dAorKysrIGIvbW9kdWxlcy9kbm4vQ01ha2VMaXN0cy50eHQKK0BAIC01NSwxMyArNTUsMTMgQEAgb2N2X3dhcm5pbmdzX2Rpc2FibGUoQ01BS0VfQ1hYX0ZMQUdTCisgCisgaWYoUFJPVE9CVUZfVVBEQVRFX0ZJTEVTKQorICAgZmlsZShHTE9CIHByb3RvX2ZpbGVzIHNyYy90ZW5zb3JmbG93LyoucHJvdG8pCistICBsaXN0KEFQUEVORCBwcm90b19maWxlcyBzcmMvY2FmZmUvY2FmZmUucHJvdG8pCisrICBsaXN0KEFQUEVORCBwcm90b19maWxlcyBzcmMvY2FmZmUvb3BlbmN2LWNhZmZlLnByb3RvKQorICAgUFJPVE9CVUZfR0VORVJBVEVfQ1BQKFByb3RvYnVmX0hEUlMgUHJvdG9idWZfU1JDUyAke3Byb3RvX2ZpbGVzfSkKKyBlbHNlKCkKKyAgIGZpbGUoR0xPQiBmd19zcmNzICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9taXNjL3RlbnNvcmZsb3cvKi5jYykKKyAgIGZpbGUoR0xPQiBmd19oZHJzICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9taXNjL3RlbnNvcmZsb3cvKi5oKQorLSAgbGlzdChBUFBFTkQgZndfc3JjcyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vbWlzYy9jYWZmZS9jYWZmZS5wYi5jYykKKy0gIGxpc3QoQVBQRU5EIGZ3X2hkcnMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L21pc2MvY2FmZmUvY2FmZmUucGIuaCkKKysgIGxpc3QoQVBQRU5EIGZ3X3NyY3MgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L21pc2MvY2FmZmUvb3BlbmN2LWNhZmZlLnBiLmNjKQorKyAgbGlzdChBUFBFTkQgZndfaGRycyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vbWlzYy9jYWZmZS9vcGVuY3YtY2FmZmUucGIuaCkKKyAgIGxpc3QoQVBQRU5EIFByb3RvYnVmX1NSQ1MgJHtmd19zcmNzfSkKKyAgIGxpc3QoQVBQRU5EIFByb3RvYnVmX0hEUlMgJHtmd19oZHJzfSkKKyAgIGxpc3QoQVBQRU5EIFByb3RvYnVmX0lOQ0xVREVfRElSUyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vbWlzYy9jYWZmZSkKK2RpZmYgLS1naXQgYS9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW1wb3J0ZXIuY3BwIGIvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2ltcG9ydGVyLmNwcAoraW5kZXggYzA3NTY1MWI5NWIzLi4yYzk3N2M4NGIwZjQgMTAwNjQ0CistLS0gYS9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW1wb3J0ZXIuY3BwCisrKysgYi9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW1wb3J0ZXIuY3BwCitAQCAtNDIsNyArNDIsNiBAQAorICNpbmNsdWRlICIuLi9wcmVjb21wLmhwcCIKKyAKKyAjaWZkZWYgSEFWRV9QUk9UT0JVRgorLSNpbmNsdWRlICJjYWZmZS5wYi5oIgorIAorICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVkZSA8ZnN0cmVhbT4KK2RpZmYgLS1naXQgYS9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW8uY3BwIGIvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmNwcAoraW5kZXggMGY0NmVhNzdkZjlhLi4xZDNjNTE4ZjEzMjggMTAwNjQ0CistLS0gYS9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW8uY3BwCisrKysgYi9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW8uY3BwCitAQCAtOTksNyArOTksNiBAQAorICNpbmNsdWRlIDxmc3RyZWFtPgorICNpbmNsdWRlIDx2ZWN0b3I+CisgCistI2luY2x1ZGUgImNhZmZlLnBiLmgiCisgI2luY2x1ZGUgImNhZmZlX2lvLmhwcCIKKyAjaW5jbHVkZSAiZ2xvZ19lbXVsYXRvci5ocHAiCisgCitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmhwcCBiL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pby5ocHAKK2luZGV4IDA5YmM1NzA5YTI0ZS4uZjU5MTJjM2JjZWMxIDEwMDY0NAorLS0tIGEvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmhwcAorKysrIGIvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmhwcAorQEAgLTkxLDcgKzkxLDcgQEAKKyAjZGVmaW5lIF9fT1BFTkNWX0ROTl9DQUZGRV9JT19IUFBfXworICNpZmRlZiBIQVZFX1BST1RPQlVGCisgCistI2luY2x1ZGUgImNhZmZlLnBiLmgiCisrI2luY2x1ZGUgIm9wZW5jdi1jYWZmZS5wYi5oIgorIAorIG5hbWVzcGFjZSBjdiB7CisgbmFtZXNwYWNlIGRubiB7CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlLnByb3RvIGIvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL29wZW5jdi1jYWZmZS5wcm90bworc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSBtb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmUucHJvdG8KK3JlbmFtZSB0byBtb2R1bGVzL2Rubi9zcmMvY2FmZmUvb3BlbmN2LWNhZmZlLnByb3RvCitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9kbm4vc3JjL2xheWVycy9kZXRlY3Rpb25fb3V0cHV0X2xheWVyLmNwcCBiL21vZHVsZXMvZG5uL3NyYy9sYXllcnMvZGV0ZWN0aW9uX291dHB1dF9sYXllci5jcHAKK2luZGV4IDBiNzIzMjZmN2U3ZC4uZjQxM2JhZDViODFhIDEwMDY0NAorLS0tIGEvbW9kdWxlcy9kbm4vc3JjL2xheWVycy9kZXRlY3Rpb25fb3V0cHV0X2xheWVyLmNwcAorKysrIGIvbW9kdWxlcy9kbm4vc3JjL2xheWVycy9kZXRlY3Rpb25fb3V0cHV0X2xheWVyLmNwcAorQEAgLTQ0LDcgKzQ0LDcgQEAKKyAjaW5jbHVkZSAibGF5ZXJzX2NvbW1vbi5ocHAiCisgI2luY2x1ZGUgPGZsb2F0Lmg+CisgI2luY2x1ZGUgPHN0cmluZz4KKy0jaW5jbHVkZSA8Y2FmZmUucGIuaD4KKysjaW5jbHVkZSA8b3BlbmN2LWNhZmZlLnBiLmg+CisgCisgbmFtZXNwYWNlIGN2CisgeworZGlmZiAtLWdpdCBhL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pbXBvcnRlci5jcHAgYi9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW1wb3J0ZXIuY3BwCitpbmRleCAyYzk3N2M4NGIwZjQuLmExODI3YTM4MTExNyAxMDA2NDQKKy0tLSBhL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pbXBvcnRlci5jcHAKKysrKyBiL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pbXBvcnRlci5jcHAKK0BAIC03OCw4ICs3OCw4IEBAIHN0YXRpYyBjdjo6U3RyaW5nIHRvU3RyaW5nKGNvbnN0IFQgJnYpCisgCisgY2xhc3MgQ2FmZmVJbXBvcnRlciA6IHB1YmxpYyBJbXBvcnRlcgorIHsKKy0gICAgY2FmZmU6Ok5ldFBhcmFtZXRlciBuZXQ7CistICAgIGNhZmZlOjpOZXRQYXJhbWV0ZXIgbmV0QmluYXJ5OworKyAgICBvcGVuY3ZjYWZmZTo6TmV0UGFyYW1ldGVyIG5ldDsKKysgICAgb3BlbmN2Y2FmZmU6Ok5ldFBhcmFtZXRlciBuZXRCaW5hcnk7CisgCisgcHVibGljOgorIAorQEAgLTE5Nyw3ICsxOTcsNyBAQCBwdWJsaWM6CisgICAgICAgICB9CisgICAgIH0KKyAKKy0gICAgdm9pZCBibG9iU2hhcGVGcm9tUHJvdG8oY29uc3QgY2FmZmU6OkJsb2JQcm90byAmcGJCbG9iLCBNYXRTaGFwZSYgc2hhcGUpCisrICAgIHZvaWQgYmxvYlNoYXBlRnJvbVByb3RvKGNvbnN0IG9wZW5jdmNhZmZlOjpCbG9iUHJvdG8gJnBiQmxvYiwgTWF0U2hhcGUmIHNoYXBlKQorICAgICB7CisgICAgICAgICBzaGFwZS5jbGVhcigpOworICAgICAgICAgaWYgKHBiQmxvYi5oYXNfbnVtKCkgfHwgcGJCbG9iLmhhc19jaGFubmVscygpIHx8IHBiQmxvYi5oYXNfaGVpZ2h0KCkgfHwgcGJCbG9iLmhhc193aWR0aCgpKQorQEAgLTIwOSw3ICsyMDksNyBAQCBwdWJsaWM6CisgICAgICAgICB9CisgICAgICAgICBlbHNlIGlmIChwYkJsb2IuaGFzX3NoYXBlKCkpCisgICAgICAgICB7CistICAgICAgICAgICAgY29uc3QgY2FmZmU6OkJsb2JTaGFwZSAmX3NoYXBlID0gcGJCbG9iLnNoYXBlKCk7CisrICAgICAgICAgICAgY29uc3Qgb3BlbmN2Y2FmZmU6OkJsb2JTaGFwZSAmX3NoYXBlID0gcGJCbG9iLnNoYXBlKCk7CisgCisgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBfc2hhcGUuZGltX3NpemUoKTsgaSsrKQorICAgICAgICAgICAgICAgICBzaGFwZS5wdXNoX2JhY2soKGludClfc2hhcGUuZGltKGkpKTsKK0BAIC0yMTgsNyArMjE4LDcgQEAgcHVibGljOgorICAgICAgICAgICAgIENWX0Vycm9yKEVycm9yOjpTdHNFcnJvciwgIlVua25vd24gc2hhcGUgb2YgaW5wdXQgYmxvYiIpOworICAgICB9CisgCistICAgIHZvaWQgYmxvYkZyb21Qcm90byhjb25zdCBjYWZmZTo6QmxvYlByb3RvICZwYkJsb2IsIGN2OjpNYXQgJmRzdEJsb2IpCisrICAgIHZvaWQgYmxvYkZyb21Qcm90byhjb25zdCBvcGVuY3ZjYWZmZTo6QmxvYlByb3RvICZwYkJsb2IsIGN2OjpNYXQgJmRzdEJsb2IpCisgICAgIHsKKyAgICAgICAgIE1hdFNoYXBlIHNoYXBlOworICAgICAgICAgYmxvYlNoYXBlRnJvbVByb3RvKHBiQmxvYiwgc2hhcGUpOworQEAgLTIzMyw3ICsyMzMsNyBAQCBwdWJsaWM6CisgICAgICAgICAgICAgZHN0RGF0YVtpXSA9IHBiQmxvYi5kYXRhKGkpOworICAgICB9CisgCistICAgIHZvaWQgZXh0cmFjdEJpbmFyeUxheWVyUGFybXMoY29uc3QgY2FmZmU6OkxheWVyUGFyYW1ldGVyJiBsYXllciwgTGF5ZXJQYXJhbXMmIGxheWVyUGFyYW1zKQorKyAgICB2b2lkIGV4dHJhY3RCaW5hcnlMYXllclBhcm1zKGNvbnN0IG9wZW5jdmNhZmZlOjpMYXllclBhcmFtZXRlciYgbGF5ZXIsIExheWVyUGFyYW1zJiBsYXllclBhcmFtcykKKyAgICAgeworICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUgPSBsYXllci5uYW1lKCk7CisgCitAQCAtMjQ3LDcgKzI0Nyw3IEBAIHB1YmxpYzoKKyAgICAgICAgIGlmIChsaSA9PSBuZXRCaW5hcnkubGF5ZXJfc2l6ZSgpIHx8IG5ldEJpbmFyeS5sYXllcihsaSkuYmxvYnNfc2l6ZSgpID09IDApCisgICAgICAgICAgICAgcmV0dXJuOworIAorLSAgICAgICAgY29uc3QgY2FmZmU6OkxheWVyUGFyYW1ldGVyICZiaW5MYXllciA9IG5ldEJpbmFyeS5sYXllcihsaSk7CisrICAgICAgICBjb25zdCBvcGVuY3ZjYWZmZTo6TGF5ZXJQYXJhbWV0ZXIgJmJpbkxheWVyID0gbmV0QmluYXJ5LmxheWVyKGxpKTsKKyAgICAgICAgIGxheWVyUGFyYW1zLmJsb2JzLnJlc2l6ZShiaW5MYXllci5ibG9ic19zaXplKCkpOworICAgICAgICAgZm9yIChpbnQgYmkgPSAwOyBiaSA8IGJpbkxheWVyLmJsb2JzX3NpemUoKTsgYmkrKykKKyAgICAgICAgIHsKK0BAIC0yODksNyArMjg5LDcgQEAgcHVibGljOgorIAorICAgICAgICAgZm9yIChpbnQgbGkgPSAwOyBsaSA8IGxheWVyc1NpemU7IGxpKyspCisgICAgICAgICB7CistICAgICAgICAgICAgY29uc3QgY2FmZmU6OkxheWVyUGFyYW1ldGVyICZsYXllciA9IG5ldC5sYXllcihsaSk7CisrICAgICAgICAgICAgY29uc3Qgb3BlbmN2Y2FmZmU6OkxheWVyUGFyYW1ldGVyICZsYXllciA9IG5ldC5sYXllcihsaSk7CisgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBsYXllci5uYW1lKCk7CisgICAgICAgICAgICAgU3RyaW5nIHR5cGUgPSBsYXllci50eXBlKCk7CisgICAgICAgICAgICAgTGF5ZXJQYXJhbXMgbGF5ZXJQYXJhbXM7CitAQCAtMzEzLDcgKzMxMyw3IEBAIHB1YmxpYzoKKyAgICAgICAgIGFkZGVkQmxvYnMuY2xlYXIoKTsKKyAgICAgfQorIAorLSAgICB2b2lkIGFkZE91dHB1dChjb25zdCBjYWZmZTo6TGF5ZXJQYXJhbWV0ZXIgJmxheWVyLCBpbnQgbGF5ZXJJZCwgaW50IG91dE51bSkKKysgICAgdm9pZCBhZGRPdXRwdXQoY29uc3Qgb3BlbmN2Y2FmZmU6OkxheWVyUGFyYW1ldGVyICZsYXllciwgaW50IGxheWVySWQsIGludCBvdXROdW0pCisgICAgIHsKKyAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lID0gbGF5ZXIudG9wKG91dE51bSk7CisgCitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmhwcCBiL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pby5ocHAKK2luZGV4IGY1OTEyYzNiY2VjMS4uMjRjZDVmYTI1NGViIDEwMDY0NAorLS0tIGEvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmhwcAorKysrIGIvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL2NhZmZlX2lvLmhwcAorQEAgLTk4LDkgKzk4LDkgQEAgbmFtZXNwYWNlIGRubiB7CisgCisgLy8gUmVhZCBwYXJhbWV0ZXJzIGZyb20gYSBmaWxlIGludG8gYSBOZXRQYXJhbWV0ZXIgcHJvdG8gbWVzc2FnZS4KKyB2b2lkIFJlYWROZXRQYXJhbXNGcm9tVGV4dEZpbGVPckRpZShjb25zdCBjaGFyKiBwYXJhbV9maWxlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhZmZlOjpOZXRQYXJhbWV0ZXIqIHBhcmFtKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuY3ZjYWZmZTo6TmV0UGFyYW1ldGVyKiBwYXJhbSk7Cisgdm9pZCBSZWFkTmV0UGFyYW1zRnJvbUJpbmFyeUZpbGVPckRpZShjb25zdCBjaGFyKiBwYXJhbV9maWxlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FmZmU6Ok5ldFBhcmFtZXRlciogcGFyYW0pOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbmN2Y2FmZmU6Ok5ldFBhcmFtZXRlciogcGFyYW0pOworIAorIH0KKyB9CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL29wZW5jdi1jYWZmZS5wcm90byBiL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9vcGVuY3YtY2FmZmUucHJvdG8KK2luZGV4IDNkMjNmYjQ4ZWE2YS4uZGY0ZTFkMzI2OWFlIDEwMDY0NAorLS0tIGEvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL29wZW5jdi1jYWZmZS5wcm90bworKysrIGIvbW9kdWxlcy9kbm4vc3JjL2NhZmZlL29wZW5jdi1jYWZmZS5wcm90bworQEAgLTQ4LDcgKzQ4LDcgQEAKKyAKKyBzeW50YXggPSAicHJvdG8yIjsKKyAKKy1wYWNrYWdlIGNhZmZlOworK3BhY2thZ2Ugb3BlbmN2Y2FmZmU7CisgCisgLy8gU3BlY2lmaWVzIHRoZSBzaGFwZSAoZGltZW5zaW9ucykgb2YgYSBCbG9iLgorIG1lc3NhZ2UgQmxvYlNoYXBlIHsKK2RpZmYgLS1naXQgYS9tb2R1bGVzL2Rubi9zcmMvbGF5ZXJzL2RldGVjdGlvbl9vdXRwdXRfbGF5ZXIuY3BwIGIvbW9kdWxlcy9kbm4vc3JjL2xheWVycy9kZXRlY3Rpb25fb3V0cHV0X2xheWVyLmNwcAoraW5kZXggZjQxM2JhZDViODFhLi44MzJjMjU3ZWViZjkgMTAwNjQ0CistLS0gYS9tb2R1bGVzL2Rubi9zcmMvbGF5ZXJzL2RldGVjdGlvbl9vdXRwdXRfbGF5ZXIuY3BwCisrKysgYi9tb2R1bGVzL2Rubi9zcmMvbGF5ZXJzL2RldGVjdGlvbl9vdXRwdXRfbGF5ZXIuY3BwCitAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CisgCisgICAgIGludCBfYmFja2dyb3VuZExhYmVsSWQ7CisgCistICAgIHR5cGVkZWYgY2FmZmU6OlByaW9yQm94UGFyYW1ldGVyX0NvZGVUeXBlIENvZGVUeXBlOworKyAgICB0eXBlZGVmIG9wZW5jdmNhZmZlOjpQcmlvckJveFBhcmFtZXRlcl9Db2RlVHlwZSBDb2RlVHlwZTsKKyAgICAgQ29kZVR5cGUgX2NvZGVUeXBlOworIAorICAgICBib29sIF92YXJpYW5jZUVuY29kZWRJblRhcmdldDsKK0BAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKKyAgICAgZW51bSB7IF9udW1BeGVzID0gNCB9OworICAgICBzdGF0aWMgY29uc3Qgc3RkOjpzdHJpbmcgX2xheWVyTmFtZTsKKyAKKy0gICAgdHlwZWRlZiBzdGQ6Om1hcDxpbnQsIHN0ZDo6dmVjdG9yPGNhZmZlOjpOb3JtYWxpemVkQkJveD4gPiBMYWJlbEJCb3g7CisrICAgIHR5cGVkZWYgc3RkOjptYXA8aW50LCBzdGQ6OnZlY3RvcjxvcGVuY3ZjYWZmZTo6Tm9ybWFsaXplZEJCb3g+ID4gTGFiZWxCQm94OworIAorICAgICBib29sIGdldFBhcmFtZXRlckRpY3QoY29uc3QgTGF5ZXJQYXJhbXMgJnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZwYXJhbWV0ZXJOYW1lLAorQEAgLTEzMSwxMSArMTMxLDExIEBAIHB1YmxpYzoKKyAgICAgeworICAgICAgICAgU3RyaW5nIGNvZGVUeXBlU3RyaW5nID0gcGFyYW1zLmdldDxTdHJpbmc+KCJjb2RlX3R5cGUiKS50b0xvd2VyQ2FzZSgpOworICAgICAgICAgaWYgKGNvZGVUeXBlU3RyaW5nID09ICJjb3JuZXIiKQorLSAgICAgICAgICAgIF9jb2RlVHlwZSA9IGNhZmZlOjpQcmlvckJveFBhcmFtZXRlcl9Db2RlVHlwZV9DT1JORVI7CisrICAgICAgICAgICAgX2NvZGVUeXBlID0gb3BlbmN2Y2FmZmU6OlByaW9yQm94UGFyYW1ldGVyX0NvZGVUeXBlX0NPUk5FUjsKKyAgICAgICAgIGVsc2UgaWYgKGNvZGVUeXBlU3RyaW5nID09ICJjZW50ZXJfc2l6ZSIpCistICAgICAgICAgICAgX2NvZGVUeXBlID0gY2FmZmU6OlByaW9yQm94UGFyYW1ldGVyX0NvZGVUeXBlX0NFTlRFUl9TSVpFOworKyAgICAgICAgICAgIF9jb2RlVHlwZSA9IG9wZW5jdmNhZmZlOjpQcmlvckJveFBhcmFtZXRlcl9Db2RlVHlwZV9DRU5URVJfU0laRTsKKyAgICAgICAgIGVsc2UKKy0gICAgICAgICAgICBfY29kZVR5cGUgPSBjYWZmZTo6UHJpb3JCb3hQYXJhbWV0ZXJfQ29kZVR5cGVfQ09STkVSOworKyAgICAgICAgICAgIF9jb2RlVHlwZSA9IG9wZW5jdmNhZmZlOjpQcmlvckJveFBhcmFtZXRlcl9Db2RlVHlwZV9DT1JORVI7CisgICAgIH0KKyAKKyAgICAgRGV0ZWN0aW9uT3V0cHV0TGF5ZXJJbXBsKGNvbnN0IExheWVyUGFyYW1zICZwYXJhbXMpCitAQCAtMjE1LDcgKzIxNSw3IEBAIHB1YmxpYzoKKyAgICAgICAgICAgICBHZXRDb25maWRlbmNlU2NvcmVzKGNvbmZpZGVuY2VEYXRhLCBudW0sIG51bVByaW9ycywgX251bUNsYXNzZXMsIGFsbENvbmZpZGVuY2VTY29yZXMpOworIAorICAgICAgICAgICAgIC8vIFJldHJpZXZlIGFsbCBwcmlvciBiYm94ZXMKKy0gICAgICAgICAgICBzdGQ6OnZlY3RvcjxjYWZmZTo6Tm9ybWFsaXplZEJCb3g+IHByaW9yQkJveGVzOworKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveD4gcHJpb3JCQm94ZXM7CisgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8c3RkOjp2ZWN0b3I8ZmxvYXQ+ID4gcHJpb3JWYXJpYW5jZXM7CisgICAgICAgICAgICAgR2V0UHJpb3JCQm94ZXMocHJpb3JEYXRhLCBudW1QcmlvcnMsIHByaW9yQkJveGVzLCBwcmlvclZhcmlhbmNlcyk7CisgCitAQCAtMjcyLDcgKzI3Miw3IEBAIHB1YmxpYzoKKyAgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGluZGljZXMuc2l6ZSgpOyArK2osICsrY291bnQpCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBpbnQgaWR4ID0gaW5kaWNlc1tqXTsKKy0gICAgICAgICAgICAgICAgY29uc3QgY2FmZmU6Ok5vcm1hbGl6ZWRCQm94JiBkZWNvZGVfYmJveCA9IGxhYmVsX2Jib3hlcy0+c2Vjb25kW2lkeF07CisrICAgICAgICAgICAgICAgIGNvbnN0IG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveCYgZGVjb2RlX2Jib3ggPSBsYWJlbF9iYm94ZXMtPnNlY29uZFtpZHhdOworICAgICAgICAgICAgICAgICBvdXRwdXRzRGF0YVtjb3VudCAqIDddID0gaTsKKyAgICAgICAgICAgICAgICAgb3V0cHV0c0RhdGFbY291bnQgKiA3ICsgMV0gPSBsYWJlbDsKKyAgICAgICAgICAgICAgICAgb3V0cHV0c0RhdGFbY291bnQgKiA3ICsgMl0gPSBzY29yZXNbaWR4XTsKK0BAIC0zNTUsNyArMzU1LDcgQEAgcHVibGljOgorIAorICAgICAvLyBDb21wdXRlIGJib3ggc2l6ZQorICAgICB0ZW1wbGF0ZTxib29sIG5vcm1hbGl6ZWQ+CistICAgIHN0YXRpYyBmbG9hdCBCQm94U2l6ZShjb25zdCBjYWZmZTo6Tm9ybWFsaXplZEJCb3gmIGJib3gpCisrICAgIHN0YXRpYyBmbG9hdCBCQm94U2l6ZShjb25zdCBvcGVuY3ZjYWZmZTo6Tm9ybWFsaXplZEJCb3gmIGJib3gpCisgICAgIHsKKyAgICAgICAgIGlmIChiYm94LnhtYXgoKSA8IGJib3gueG1pbigpIHx8IGJib3gueW1heCgpIDwgYmJveC55bWluKCkpCisgICAgICAgICB7CitAQCAtMzg4LDEwICszODgsMTAgQEAgcHVibGljOgorICAgICAvLyBEZWNvZGUgYSBiYm94IGFjY29yZGluZyB0byBhIHByaW9yIGJib3gKKyAgICAgdGVtcGxhdGU8Ym9vbCB2YXJpYW5jZV9lbmNvZGVkX2luX3RhcmdldD4KKyAgICAgc3RhdGljIHZvaWQgRGVjb2RlQkJveCgKKy0gICAgICAgIGNvbnN0IGNhZmZlOjpOb3JtYWxpemVkQkJveCYgcHJpb3JfYmJveCwgY29uc3Qgc3RkOjp2ZWN0b3I8ZmxvYXQ+JiBwcmlvcl92YXJpYW5jZSwKKysgICAgICAgIGNvbnN0IG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveCYgcHJpb3JfYmJveCwgY29uc3Qgc3RkOjp2ZWN0b3I8ZmxvYXQ+JiBwcmlvcl92YXJpYW5jZSwKKyAgICAgICAgIGNvbnN0IENvZGVUeXBlIGNvZGVfdHlwZSwKKy0gICAgICAgIGNvbnN0IGJvb2wgY2xpcF9iYm94LCBjb25zdCBjYWZmZTo6Tm9ybWFsaXplZEJCb3gmIGJib3gsCistICAgICAgICBjYWZmZTo6Tm9ybWFsaXplZEJCb3gmIGRlY29kZV9iYm94KQorKyAgICAgICAgY29uc3QgYm9vbCBjbGlwX2Jib3gsIGNvbnN0IG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveCYgYmJveCwKKysgICAgICAgIG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveCYgZGVjb2RlX2Jib3gpCisgICAgIHsKKyAgICAgICAgIGZsb2F0IGJib3hfeG1pbiA9IHZhcmlhbmNlX2VuY29kZWRfaW5fdGFyZ2V0ID8gYmJveC54bWluKCkgOiBwcmlvcl92YXJpYW5jZVswXSAqIGJib3gueG1pbigpOworICAgICAgICAgZmxvYXQgYmJveF95bWluID0gdmFyaWFuY2VfZW5jb2RlZF9pbl90YXJnZXQgPyBiYm94LnltaW4oKSA6IHByaW9yX3ZhcmlhbmNlWzFdICogYmJveC55bWluKCk7CitAQCAtMzk5LDEzICszOTksMTMgQEAgcHVibGljOgorICAgICAgICAgZmxvYXQgYmJveF95bWF4ID0gdmFyaWFuY2VfZW5jb2RlZF9pbl90YXJnZXQgPyBiYm94LnltYXgoKSA6IHByaW9yX3ZhcmlhbmNlWzNdICogYmJveC55bWF4KCk7CisgICAgICAgICBzd2l0Y2goY29kZV90eXBlKQorICAgICAgICAgeworLSAgICAgICAgICAgIGNhc2UgY2FmZmU6OlByaW9yQm94UGFyYW1ldGVyX0NvZGVUeXBlX0NPUk5FUjoKKysgICAgICAgICAgICBjYXNlIG9wZW5jdmNhZmZlOjpQcmlvckJveFBhcmFtZXRlcl9Db2RlVHlwZV9DT1JORVI6CisgICAgICAgICAgICAgICAgIGRlY29kZV9iYm94LnNldF94bWluKHByaW9yX2Jib3gueG1pbigpICsgYmJveF94bWluKTsKKyAgICAgICAgICAgICAgICAgZGVjb2RlX2Jib3guc2V0X3ltaW4ocHJpb3JfYmJveC55bWluKCkgKyBiYm94X3ltaW4pOworICAgICAgICAgICAgICAgICBkZWNvZGVfYmJveC5zZXRfeG1heChwcmlvcl9iYm94LnhtYXgoKSArIGJib3hfeG1heCk7CisgICAgICAgICAgICAgICAgIGRlY29kZV9iYm94LnNldF95bWF4KHByaW9yX2Jib3gueW1heCgpICsgYmJveF95bWF4KTsKKyAgICAgICAgICAgICAgICAgYnJlYWs7CistICAgICAgICAgICAgY2FzZSBjYWZmZTo6UHJpb3JCb3hQYXJhbWV0ZXJfQ29kZVR5cGVfQ0VOVEVSX1NJWkU6CisrICAgICAgICAgICAgY2FzZSBvcGVuY3ZjYWZmZTo6UHJpb3JCb3hQYXJhbWV0ZXJfQ29kZVR5cGVfQ0VOVEVSX1NJWkU6CisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBmbG9hdCBwcmlvcl93aWR0aCA9IHByaW9yX2Jib3gueG1heCgpIC0gcHJpb3JfYmJveC54bWluKCk7CisgICAgICAgICAgICAgICAgIENWX0Fzc2VydChwcmlvcl93aWR0aCA+IDApOworQEAgLTQzMSw3ICs0MzEsNyBAQCBwdWJsaWM6CisgICAgICAgICB9OworICAgICAgICAgaWYgKGNsaXBfYmJveCkKKyAgICAgICAgIHsKKy0gICAgICAgICAgICAvLyBDbGlwIHRoZSBjYWZmZTo6Tm9ybWFsaXplZEJCb3ggc3VjaCB0aGF0IHRoZSByYW5nZSBmb3IgZWFjaCBjb3JuZXIgaXMgWzAsIDFdCisrICAgICAgICAgICAgLy8gQ2xpcCB0aGUgb3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94IHN1Y2ggdGhhdCB0aGUgcmFuZ2UgZm9yIGVhY2ggY29ybmVyIGlzIFswLCAxXQorICAgICAgICAgICAgIGRlY29kZV9iYm94LnNldF94bWluKHN0ZDo6bWF4KHN0ZDo6bWluKGRlY29kZV9iYm94LnhtaW4oKSwgMS5mKSwgMC5mKSk7CisgICAgICAgICAgICAgZGVjb2RlX2Jib3guc2V0X3ltaW4oc3RkOjptYXgoc3RkOjptaW4oZGVjb2RlX2Jib3gueW1pbigpLCAxLmYpLCAwLmYpKTsKKyAgICAgICAgICAgICBkZWNvZGVfYmJveC5zZXRfeG1heChzdGQ6Om1heChzdGQ6Om1pbihkZWNvZGVfYmJveC54bWF4KCksIDEuZiksIDAuZikpOworQEAgLTQ0MywxMSArNDQzLDExIEBAIHB1YmxpYzoKKyAKKyAgICAgLy8gRGVjb2RlIGEgc2V0IG9mIGJib3hlcyBhY2NvcmRpbmcgdG8gYSBzZXQgb2YgcHJpb3IgYmJveGVzCisgICAgIHN0YXRpYyB2b2lkIERlY29kZUJCb3hlcygKKy0gICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGNhZmZlOjpOb3JtYWxpemVkQkJveD4mIHByaW9yX2Jib3hlcywKKysgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveD4mIHByaW9yX2Jib3hlcywKKyAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6dmVjdG9yPGZsb2F0PiA+JiBwcmlvcl92YXJpYW5jZXMsCisgICAgICAgICBjb25zdCBDb2RlVHlwZSBjb2RlX3R5cGUsIGNvbnN0IGJvb2wgdmFyaWFuY2VfZW5jb2RlZF9pbl90YXJnZXQsCistICAgICAgICBjb25zdCBib29sIGNsaXBfYmJveCwgY29uc3Qgc3RkOjp2ZWN0b3I8Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94PiYgYmJveGVzLAorLSAgICAgICAgc3RkOjp2ZWN0b3I8Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94PiYgZGVjb2RlX2Jib3hlcykKKysgICAgICAgIGNvbnN0IGJvb2wgY2xpcF9iYm94LCBjb25zdCBzdGQ6OnZlY3RvcjxvcGVuY3ZjYWZmZTo6Tm9ybWFsaXplZEJCb3g+JiBiYm94ZXMsCisrICAgICAgICBzdGQ6OnZlY3RvcjxvcGVuY3ZjYWZmZTo6Tm9ybWFsaXplZEJCb3g+JiBkZWNvZGVfYmJveGVzKQorICAgICB7CisgICAgICAgICBDVl9Bc3NlcnQocHJpb3JfYmJveGVzLnNpemUoKSA9PSBwcmlvcl92YXJpYW5jZXMuc2l6ZSgpKTsKKyAgICAgICAgIENWX0Fzc2VydChwcmlvcl9iYm94ZXMuc2l6ZSgpID09IGJib3hlcy5zaXplKCkpOworQEAgLTQ3MCw3ICs0NzAsNyBAQCBwdWJsaWM6CisgCisgICAgIC8vIERlY29kZSBhbGwgYmJveGVzIGluIGEgYmF0Y2gKKyAgICAgc3RhdGljIHZvaWQgRGVjb2RlQkJveGVzQWxsKGNvbnN0IHN0ZDo6dmVjdG9yPExhYmVsQkJveD4mIGFsbF9sb2NfcHJlZHMsCistICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxjYWZmZTo6Tm9ybWFsaXplZEJCb3g+JiBwcmlvcl9iYm94ZXMsCisrICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxvcGVuY3ZjYWZmZTo6Tm9ybWFsaXplZEJCb3g+JiBwcmlvcl9iYm94ZXMsCisgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnZlY3RvcjxmbG9hdD4gPiYgcHJpb3JfdmFyaWFuY2VzLAorICAgICAgICAgY29uc3QgaW50IG51bSwgY29uc3QgYm9vbCBzaGFyZV9sb2NhdGlvbiwKKyAgICAgICAgIGNvbnN0IGludCBudW1fbG9jX2NsYXNzZXMsIGNvbnN0IGludCBiYWNrZ3JvdW5kX2xhYmVsX2lkLAorQEAgLTUwMywxMCArNTAzLDEwIEBAIHB1YmxpYzoKKyAgICAgLy8gR2V0IHByaW9yIGJvdW5kaW5nIGJveGVzIGZyb20gcHJpb3JfZGF0YQorICAgICAvLyAgICBwcmlvcl9kYXRhOiAxIHggMiB4IG51bV9wcmlvcnMgKiA0IHggMSBibG9iLgorICAgICAvLyAgICBudW1fcHJpb3JzOiBudW1iZXIgb2YgcHJpb3JzLgorLSAgICAvLyAgICBwcmlvcl9iYm94ZXM6IHN0b3JlcyBhbGwgdGhlIHByaW9yIGJib3hlcyBpbiB0aGUgZm9ybWF0IG9mIGNhZmZlOjpOb3JtYWxpemVkQkJveC4KKysgICAgLy8gICAgcHJpb3JfYmJveGVzOiBzdG9yZXMgYWxsIHRoZSBwcmlvciBiYm94ZXMgaW4gdGhlIGZvcm1hdCBvZiBvcGVuY3ZjYWZmZTo6Tm9ybWFsaXplZEJCb3guCisgICAgIC8vICAgIHByaW9yX3ZhcmlhbmNlczogc3RvcmVzIGFsbCB0aGUgdmFyaWFuY2VzIG5lZWRlZCBieSBwcmlvciBiYm94ZXMuCisgICAgIHN0YXRpYyB2b2lkIEdldFByaW9yQkJveGVzKGNvbnN0IGZsb2F0KiBwcmlvckRhdGEsIGNvbnN0IGludCYgbnVtUHJpb3JzLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGNhZmZlOjpOb3JtYWxpemVkQkJveD4mIHByaW9yQkJveGVzLAorKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveD4mIHByaW9yQkJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHN0ZDo6dmVjdG9yPGZsb2F0PiA+JiBwcmlvclZhcmlhbmNlcykKKyAgICAgeworICAgICAgICAgcHJpb3JCQm94ZXMuY2xlYXIoKTsgcHJpb3JCQm94ZXMucmVzaXplKG51bVByaW9ycyk7CitAQCAtNTE0LDcgKzUxNCw3IEBAIHB1YmxpYzoKKyAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUHJpb3JzOyArK2kpCisgICAgICAgICB7CisgICAgICAgICAgICAgaW50IHN0YXJ0SWR4ID0gaSAqIDQ7CistICAgICAgICAgICAgY2FmZmU6Ok5vcm1hbGl6ZWRCQm94JiBiYm94ID0gcHJpb3JCQm94ZXNbaV07CisrICAgICAgICAgICAgb3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94JiBiYm94ID0gcHJpb3JCQm94ZXNbaV07CisgICAgICAgICAgICAgYmJveC5zZXRfeG1pbihwcmlvckRhdGFbc3RhcnRJZHhdKTsKKyAgICAgICAgICAgICBiYm94LnNldF95bWluKHByaW9yRGF0YVtzdGFydElkeCArIDFdKTsKKyAgICAgICAgICAgICBiYm94LnNldF94bWF4KHByaW9yRGF0YVtzdGFydElkeCArIDJdKTsKK0BAIC01NjUsNyArNTY1LDcgQEAgcHVibGljOgorICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsQkJveFtsYWJlbF0ucmVzaXplKG51bVByZWRzUGVyQ2xhc3MpOworICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgY2FmZmU6Ok5vcm1hbGl6ZWRCQm94JiBiYm94ID0gbGFiZWxCQm94W2xhYmVsXVtwXTsKKysgICAgICAgICAgICAgICAgICAgIG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveCYgYmJveCA9IGxhYmVsQkJveFtsYWJlbF1bcF07CisgICAgICAgICAgICAgICAgICAgICBiYm94LnNldF94bWluKGxvY0RhdGFbc3RhcnRJZHggKyBjICogNF0pOworICAgICAgICAgICAgICAgICAgICAgYmJveC5zZXRfeW1pbihsb2NEYXRhW3N0YXJ0SWR4ICsgYyAqIDQgKyAxXSk7CisgICAgICAgICAgICAgICAgICAgICBiYm94LnNldF94bWF4KGxvY0RhdGFbc3RhcnRJZHggKyBjICogNCArIDJdKTsKK0BAIC02MTIsNyArNjEyLDcgQEAgcHVibGljOgorICAgICAvLyAgICBubXNfdGhyZXNob2xkOiBhIHRocmVzaG9sZCB1c2VkIGluIG5vbiBtYXhpbXVtIHN1cHByZXNzaW9uLgorICAgICAvLyAgICB0b3BfazogaWYgbm90IC0xLCBrZWVwIGF0IG1vc3QgdG9wX2sgcGlja2VkIGluZGljZXMuCisgICAgIC8vICAgIGluZGljZXM6IHRoZSBrZXB0IGluZGljZXMgb2YgYmJveGVzIGFmdGVyIG5tcy4KKy0gICAgc3RhdGljIHZvaWQgQXBwbHlOTVNGYXN0KGNvbnN0IHN0ZDo6dmVjdG9yPGNhZmZlOjpOb3JtYWxpemVkQkJveD4mIGJib3hlcywKKysgICAgc3RhdGljIHZvaWQgQXBwbHlOTVNGYXN0KGNvbnN0IHN0ZDo6dmVjdG9yPG9wZW5jdmNhZmZlOjpOb3JtYWxpemVkQkJveD4mIGJib3hlcywKKyAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8ZmxvYXQ+JiBzY29yZXMsIGNvbnN0IGZsb2F0IHNjb3JlX3RocmVzaG9sZCwKKyAgICAgICAgICAgY29uc3QgZmxvYXQgbm1zX3RocmVzaG9sZCwgY29uc3QgZmxvYXQgZXRhLCBjb25zdCBpbnQgdG9wX2ssCisgICAgICAgICAgIHN0ZDo6dmVjdG9yPGludD4mIGluZGljZXMpCitAQCAtNjc0LDEwICs2NzQsMTAgQEAgcHVibGljOgorIAorICAgICAvLyBDb21wdXRlIHRoZSBqYWNjYXJkIChpbnRlcnNlY3Rpb24gb3ZlciB1bmlvbiBJb1UpIG92ZXJsYXAgYmV0d2VlbiB0d28gYmJveGVzLgorICAgICB0ZW1wbGF0ZTxib29sIG5vcm1hbGl6ZWQ+CistICAgIHN0YXRpYyBmbG9hdCBKYWNjYXJkT3ZlcmxhcChjb25zdCBjYWZmZTo6Tm9ybWFsaXplZEJCb3gmIGJib3gxLAorLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYWZmZTo6Tm9ybWFsaXplZEJCb3gmIGJib3gyKQorKyAgICBzdGF0aWMgZmxvYXQgSmFjY2FyZE92ZXJsYXAoY29uc3Qgb3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94JiBiYm94MSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94JiBiYm94MikKKyAgICAgeworLSAgICAgICAgY2FmZmU6Ok5vcm1hbGl6ZWRCQm94IGludGVyc2VjdF9iYm94OworKyAgICAgICAgb3BlbmN2Y2FmZmU6Ok5vcm1hbGl6ZWRCQm94IGludGVyc2VjdF9iYm94OworICAgICAgICAgaWYgKGJib3gyLnhtaW4oKSA+IGJib3gxLnhtYXgoKSB8fCBiYm94Mi54bWF4KCkgPCBiYm94MS54bWluKCkgfHwKKyAgICAgICAgICAgICBiYm94Mi55bWluKCkgPiBiYm94MS55bWF4KCkgfHwgYmJveDIueW1heCgpIDwgYmJveDEueW1pbigpKQorICAgICAgICAgeworZGlmZiAtLWdpdCBhL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pby5jcHAgYi9tb2R1bGVzL2Rubi9zcmMvY2FmZmUvY2FmZmVfaW8uY3BwCitpbmRleCAxZDNjNTE4ZjEzMjguLjNjZjZlMjU1YWE2MCAxMDA2NDQKKy0tLSBhL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pby5jcHAKKysrKyBiL21vZHVsZXMvZG5uL3NyYy9jYWZmZS9jYWZmZV9pby5jcHAKK0BAIC0xMDcsNyArMTA3LDcgQEAgbmFtZXNwYWNlIGRubiB7CisgCisgdXNpbmcgc3RkOjpzdHJpbmc7CisgdXNpbmcgc3RkOjptYXA7CistdXNpbmcgbmFtZXNwYWNlIGNhZmZlOworK3VzaW5nIG5hbWVzcGFjZSBvcGVuY3ZjYWZmZTsKKyB1c2luZyBuYW1lc3BhY2UgOjpnb29nbGU6OnByb3RvYnVmOworIHVzaW5nIG5hbWVzcGFjZSA6Omdvb2dsZTo6cHJvdG9idWY6OmlvOworIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Yvb3BlbmN2L2phdmFnZW4ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdi9vcGVuY3YvamF2YWdlbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjUyNmVjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Yvb3BlbmN2L2phdmFnZW4ucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAorVXBzdHJlYW0tc3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtPRSBzcGVjaWZpY10gaHR0cHM6Ly9naXRodWIuY29tL29wZW5jdi9vcGVuY3YvcHVsbC8xMDAzOSNpc3N1ZWNvbW1lbnQtMzQyNTM5Mjg4CisKK1NpZ25lZC1vZmYtYnk6IFJpY2FyZG8gUmliYWxkYSA8cmljYXJkby5yaWJhbGRhQGdtYWlsLmNvbT4KK2RpZmYgLS1naXQgYS9tb2R1bGVzL2phdmEvQ01ha2VMaXN0cy50eHQgYi9tb2R1bGVzL2phdmEvQ01ha2VMaXN0cy50eHQKK2luZGV4IDc0YmMwZWYwNDE2OS4uNDYyMmZiZjlhNWYxIDEwMDY0NAorLS0tIGEvbW9kdWxlcy9qYXZhL0NNYWtlTGlzdHMudHh0CisrKysgYi9tb2R1bGVzL2phdmEvQ01ha2VMaXN0cy50eHQKK0BAIC0yOTEsNyArMjkxLDcgQEAgZm9yZWFjaChqYXZhX2ZpbGUgJHtzdGVwM19pbnB1dF9maWxlc30pCisgICBlbmRpZigpCisgICBpZihfX2NvbmZpZ3VyZSkKKyAgICAgY29uZmlndXJlX2ZpbGUoIiR7amF2YV9maWxlfSIgIiR7amF2YV9zcmNfZGlyfS8ke291dHB1dF9uYW1lfSIgQE9OTFkpCistICBlbHNlaWYoTk9UICIke2phdmFfZmlsZX0iIE1BVENIRVMgIiR7T3BlbkNWX0JJTkFSWV9ESVJ9LyIpCisrICBlbHNlaWYoRVhJU1RTICIke2phdmFfZmlsZX0iIEFORCBOT1QgIiR7amF2YV9maWxlfSIgTUFUQ0hFUyAiJHtPcGVuQ1ZfQklOQVJZX0RJUn0vIikKKyAgICAgY29uZmlndXJlX2ZpbGUoIiR7amF2YV9maWxlfSIgIiR7amF2YV9zcmNfZGlyfS8ke291dHB1dF9uYW1lfSIgQ09QWU9OTFkpCisgICBlbHNlKCkKKyAgICAgYWRkX2N1c3RvbV9jb21tYW5kKE9VVFBVVCAiJHtqYXZhX3NyY19kaXJ9LyR7b3V0cHV0X25hbWV9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Yvb3BlbmN2L3Byb3RvYnVmLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Yvb3BlbmN2L3Byb3RvYnVmLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2M2RjMTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdi9vcGVuY3YvcHJvdG9idWYucGF0Y2gKQEAgLTAsMCArMSw1NyBAQAorVXBzdHJlYW0tc3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtPRSBzcGVjaWZpY10KKworU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIDxyaWNhcmRvLnJpYmFsZGFAZ21haWwuY29tPgorZGlmZiAtLWdpdCBhL2NtYWtlL09wZW5DVkZpbmRMaWJQcm90b2J1Zi5jbWFrZSBiL2NtYWtlL09wZW5DVkZpbmRMaWJQcm90b2J1Zi5jbWFrZQoraW5kZXggYjZjZTFlN2ZkNTZiLi5lOTE2ZWMwZGYyYTYgMTAwNjQ0CistLS0gYS9jbWFrZS9PcGVuQ1ZGaW5kTGliUHJvdG9idWYuY21ha2UKKysrKyBiL2NtYWtlL09wZW5DVkZpbmRMaWJQcm90b2J1Zi5jbWFrZQorQEAgLTcsMjEgKzcsMjEgQEAgT0NWX09QVElPTihCVUlMRF9QUk9UT0JVRiAiRm9yY2UgdG8gYnVpbGQgbGlicHJvdG9idWYgZnJvbSBzb3VyY2VzIiBPTikKKyBPQ1ZfT1BUSU9OKFBST1RPQlVGX1VQREFURV9GSUxFUyAiRm9yY2UgdG8gcmVidWlsZCAucHJvdG8gZmlsZXMiIE9GRikKKyAKKyBpZihQUk9UT0JVRl9VUERBVEVfRklMRVMpCistICBpZihOT1QgREVGSU5FRCBQcm90b2J1Zl9QUk9UT0NfRVhFQ1VUQUJMRSkKKysgIGlmKE5PVCBERUZJTkVEIFBST1RPQlVGX1BST1RPQ19FWEVDVVRBQkxFKQorICAgICBmaW5kX3BhY2thZ2UoUHJvdG9idWYgUVVJRVQpCisgICBlbmRpZigpCistICBpZihERUZJTkVEIFByb3RvYnVmX1BST1RPQ19FWEVDVVRBQkxFIEFORCBFWElTVFMgJHtQcm90b2J1Zl9QUk9UT0NfRVhFQ1VUQUJMRX0pCistICAgIG1lc3NhZ2UoU1RBVFVTICJUaGUgcHJvdG9jb2wgYnVmZmVyIGNvbXBpbGVyIGlzIGZvdW5kICgke1Byb3RvYnVmX1BST1RPQ19FWEVDVVRBQkxFfSkiKQorKyAgaWYoREVGSU5FRCBQUk9UT0JVRl9QUk9UT0NfRVhFQ1VUQUJMRSBBTkQgRVhJU1RTICR7UFJPVE9CVUZfUFJPVE9DX0VYRUNVVEFCTEV9KQorKyAgICBtZXNzYWdlKFNUQVRVUyAiVGhlIHByb3RvY29sIGJ1ZmZlciBjb21waWxlciBpcyBmb3VuZCAoJHtQUk9UT0JVRl9QUk9UT0NfRVhFQ1VUQUJMRX0pIikKKyAgIGVsc2UoKQorLSAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJUaGUgcHJvdG9jb2wgYnVmZmVyIGNvbXBpbGVyIGlzIG5vdCBmb3VuZCAoUHJvdG9idWZfUFJPVE9DX0VYRUNVVEFCTEU9JyR7UHJvdG9idWZfUFJPVE9DX0VYRUNVVEFCTEV9JykiKQorKyAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJUaGUgcHJvdG9jb2wgYnVmZmVyIGNvbXBpbGVyIGlzIG5vdCBmb3VuZCAoUFJPVE9CVUZfUFJPVE9DX0VYRUNVVEFCTEU9JyR7UFJPVE9CVUZfUFJPVE9DX0VYRUNVVEFCTEV9JykiKQorICAgZW5kaWYoKQorIGVuZGlmKCkKKyAKKy1pZihOT1QgQlVJTERfUFJPVE9CVUYgQU5EIE5PVCAoREVGSU5FRCBQcm90b2J1Zl9JTkNMVURFX0RJUlMgQU5EIERFRklORUQgUHJvdG9idWZfTElCUkFSSUVTKSkKKytpZihOT1QgQlVJTERfUFJPVE9CVUYgQU5EIE5PVCAoREVGSU5FRCBQUk9UT0JVRl9JTkNMVURFX0RJUiBBTkQgREVGSU5FRCBQUk9UT0JVRl9MSUJSQVJJRVMpKQorICAgZmluZF9wYWNrYWdlKFByb3RvYnVmIFFVSUVUKQorIGVuZGlmKCkKKyAKKy1pZihQcm90b2J1Zl9GT1VORCkKKytpZihQUk9UT0JVRl9GT1VORCBPUiAoREVGSU5FRCBQUk9UT0JVRl9JTkNMVURFX0RJUiBBTkQgREVGSU5FRCBQUk9UT0JVRl9MSUJSQVJJRVMpKQorICAgIyBub3RoaW5nCisgZWxzZSgpCisgICBzZXQoUHJvdG9idWZfTElCUkFSSUVTIGxpYnByb3RvYnVmKQorZGlmZiAtLWdpdCBhL21vZHVsZXMvZG5uL0NNYWtlTGlzdHMudHh0IGIvbW9kdWxlcy9kbm4vQ01ha2VMaXN0cy50eHQKK2luZGV4IDJhNzE1NjhkMWE0NC4uYzYzMjlhNzQyMjYzIDEwMDY0NAorLS0tIGEvbW9kdWxlcy9kbm4vQ01ha2VMaXN0cy50eHQKKysrKyBiL21vZHVsZXMvZG5uL0NNYWtlTGlzdHMudHh0CitAQCAtNyw3ICs3LDcgQEAgaWYoREVGSU5FRCBCVUlMRF9vcGVuY3ZfZG5uIEFORCBOT1QgQlVJTERfb3BlbmN2X2RubikKKyBlbmRpZigpCisgCisgaW5jbHVkZSgke09wZW5DVl9TT1VSQ0VfRElSfS9jbWFrZS9PcGVuQ1ZGaW5kTGliUHJvdG9idWYuY21ha2UpCistaWYoTk9UIFByb3RvYnVmX0ZPVU5EKQorK2lmKE5PVCBQUk9UT0JVRl9GT1VORCkKKyAgIG9jdl9tb2R1bGVfZGlzYWJsZShvcGVuY3ZfZG5uKQorIGVuZGlmKCkKKyAKK0BAIC03Miw3ICs3Miw3IEBAIG9jdl9zb3VyY2VfZ3JvdXAoIlNyY1xccHJvdG9idWYiIEZJTEVTICR7UHJvdG9idWZfU1JDU30gJHtQcm90b2J1Zl9IRFJTfSkKKyBvY3ZfbW9kdWxlX2luY2x1ZGVfZGlyZWN0b3JpZXMoaW5jbHVkZSAke1Byb3RvYnVmX0lOQ0xVREVfRElSU30pCisgCisgb2N2X2dsb2JfbW9kdWxlX3NvdXJjZXMoJHtQcm90b2J1Zl9TUkNTfSAke1Byb3RvYnVmX0hEUlN9ICR7Q0JMQVNfSF9QUk9YWV9QQVRIfSkKKy1vY3ZfY3JlYXRlX21vZHVsZSgke1Byb3RvYnVmX0xJQlJBUklFU30gJHtMQVBBQ0tfTElCUkFSSUVTfSkKKytvY3ZfY3JlYXRlX21vZHVsZSgke1BST1RPQlVGX0xJQlJBUklFU30gJHtMQVBBQ0tfTElCUkFSSUVTfSkKKyBvY3ZfYWRkX3NhbXBsZXMoKQorIG9jdl9hZGRfYWNjdXJhY3lfdGVzdHMoKQorIG9jdl9hZGRfcGVyZl90ZXN0cygpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdi9vcGVuY3YvdGlueWRubi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3BlbmN2L29wZW5jdi90aW55ZG5uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0MzNmYzMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdi9vcGVuY3YvdGlueWRubi5wYXRjaApAQCAtMCwwICsxLDM0IEBACitVcHN0cmVhbS1zdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgPHJpY2FyZG8ucmliYWxkYUBnbWFpbC5jb20+CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9kbm5fbW9kZXJuL0NNYWtlTGlzdHMudHh0IGIvbW9kdWxlcy9kbm5fbW9kZXJuL0NNYWtlTGlzdHMudHh0CitpbmRleCA3OWI2NGIxMjE2MGIuLmJhMDZhMGExNjNlNCAxMDA2NDQKKy0tLSBhL21vZHVsZXMvZG5uX21vZGVybi9DTWFrZUxpc3RzLnR4dAorKysrIGIvbW9kdWxlcy9kbm5fbW9kZXJuL0NNYWtlTGlzdHMudHh0CitAQCAtMTUsMjQgKzE1LDggQEAgbGlzdChBUFBFTkQgQ01BS0VfTU9EVUxFX1BBVEggJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2NtYWtlKQorICMgTU9EVUxFIFJFUVVJUkVNRU5UUworICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorLXNldChUSU5ZX0ROTl9DUFBfUEFUSCAiJHtPcGVuQ1ZfQklOQVJZX0RJUn0vM3JkcGFydHkvdGlueWRubiIpCistc2V0KFRJTllfRE5OX0NQUF9ST09UICIke1RJTllfRE5OX0NQUF9QQVRIfS90aW55LWRubi0xLjAuMGEzIikKKy1vY3ZfZG93bmxvYWQoRklMRU5BTUUgInYxLjAuMGEzLnRhci5neiIKKy0gICAgICAgICAgICAgICBIQVNIICJhZGIxYzUxMmUwOWNhMmM3YTZmYWVmMzZmOWM1M2U1OSIKKy0gICAgICAgICAgICAgICBVUkwKKy0gICAgICAgICAgICAgICAgICIke09QRU5DVl9USU5ZX0ROTl9VUkx9IgorLSAgICAgICAgICAgICAgICAgIiRFTlZ7T1BFTkNWX1RJTllfRE5OX1VSTH0iCistICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3RpbnktZG5uL3RpbnktZG5uL2FyY2hpdmUvIgorLSAgICAgICAgICAgICAgIERFU1RJTkFUSU9OX0RJUiAiJHtUSU5ZX0ROTl9DUFBfUEFUSH0iCistICAgICAgICAgICAgICAgU1RBVFVTIFRJTllfRE5OX0RPV05MT0FEX1NVQ0NFU1MKKy0gICAgICAgICAgICAgICBJRCAidGlueS1kbm4iCistICAgICAgICAgICAgICAgVU5QQUNLIFJFTEFUSVZFX1VSTCkKKy0KKy1pZihOT1QgVElOWV9ETk5fRE9XTkxPQURfU1VDQ0VTUykKKy0gIG1lc3NhZ2UoU1RBVFVTICJGYWlsZWQgdG8gZG93bmxvYWQgdGlueS1kbm4gc291cmNlcyIpCistZW5kaWYoKQorLQorLWZpbmRfcGFja2FnZShUaW55RE5OIFFVSUVUKQorK3NldChUSU5ZRE5OX0lOQ0xVREVfRElSUyAiJHtPcGVuQ1ZfU09VUkNFX0RJUn0vM3JkcGFydHkvdGlueWRubi90aW55LWRubi0xLjAuMGEzIikKKytzZXQoVGlueUROTl9GT1VORCBUUlVFKQorIAorIGluY2x1ZGUoQ2hlY2tDWFhDb21waWxlckZsYWcpCisgQ0hFQ0tfQ1hYX0NPTVBJTEVSX0ZMQUcoIi1zdGQ9YysrMTEiIENPTVBJTEVSX1NVUFBPUlRTX0NYWDExKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Yvb3BlbmN2XzMuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvb3BlbmN2L29wZW5jdl8zLjMuYmIKaW5kZXggZGQ5ZTRjYS4uY2E2MmRlNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9vcGVuY3Yvb3BlbmN2XzMuMy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L29wZW5jdi9vcGVuY3ZfMy4zLmJiCkBAIC0xNSw2ICsxNSw4IEBACiBTUkNSRVZfaXBwID0gImE2MmUyMDY3NmE2MGVlMGFkNjU4MWUyMTdmZTdlNGJhZGEzYjk1ZGIiCiBTUkNSRVZfYm9vc3RkZXNjID0gIjM0ZTQyMDZhZWY0NGQ1MGU2YmJjZDBhYjA2MzU0YjUyZTc0NjZkMjYiCiBTUkNSRVZfdmdnID0gImZjY2Y3Y2Q2YTRiMTIwNzlmNzNiYmZiMjE3NDVmOWJhYmNkNGViMWQiCitTUkNfVVJJW3Rpbnlkbm4ubWQ1c3VtXSA9ICJhZGIxYzUxMmUwOWNhMmM3YTZmYWVmMzZmOWM1M2U1OSIKK1NSQ19VUklbdGlueWRubi5zaGEyNTZzdW1dID0gImUyYzYxY2U4YzVkZWJhYTY0NDEyMTE3OWU5ZGJkY2Y4M2Y0OTdmMzlkZTg1M2Y4ZGQ1MTc1ODQ2NTA1YWExOGIiCiAKIGRlZiBpcHBfZmlsZW5hbWUoZCk6CiAgICAgaW1wb3J0IHJlCkBAIC00MSw5ICs0MywxMSBAQAogICAgIGdpdDovL2dpdGh1Yi5jb20vb3BlbmN2L29wZW5jdl8zcmRwYXJ0eS5naXQ7YnJhbmNoPWlwcGljdi9tYXN0ZXJfMjAxNzA0MTg7ZGVzdHN1ZmZpeD1pcHA7bmFtZT1pcHAgXAogICAgIGdpdDovL2dpdGh1Yi5jb20vb3BlbmN2L29wZW5jdl8zcmRwYXJ0eS5naXQ7YnJhbmNoPWNvbnRyaWJfeGZlYXR1cmVzMmRfYm9vc3RkZXNjXzIwMTYxMDEyO2Rlc3RzdWZmaXg9Ym9vc3RkZXNjO25hbWU9Ym9vc3RkZXNjIFwKICAgICBnaXQ6Ly9naXRodWIuY29tL29wZW5jdi9vcGVuY3ZfM3JkcGFydHkuZ2l0O2JyYW5jaD1jb250cmliX3hmZWF0dXJlczJkX3ZnZ18yMDE2MDMxNztkZXN0c3VmZml4PXZnZztuYW1lPXZnZyBcCisgICAgaHR0cHM6Ly9naXRodWIuY29tL3RpbnktZG5uL3RpbnktZG5uL2FyY2hpdmUvdjEuMC4wYTMudGFyLmd6O2Rlc3RzdWZmaXg9Z2l0LzNyZHBhcnR5L3Rpbnlkbm4vdGlueS1kbm4tMS4wLjBhMztuYW1lPXRpbnlkbm47dW5wYWNrPWZhbHNlIFwKICAgICBmaWxlOi8vMDAwMS0zcmRwYXJ0eS1pcHBpY3YtVXNlLXByZS1kb3dubG9hZGVkLWlwcC5wYXRjaCBcCiAgICAgZmlsZTovL2ZpeHBrZ2NvbmZpZy5wYXRjaCBcCiAgICAgZmlsZTovL3VzZWxvY2FseGZlYXR1cmVzLnBhdGNoO3BhdGNoZGlyPS4uL2NvbnRyaWIvIFwKKyAgICBmaWxlOi8vdGlueWRubi5wYXRjaDtwYXRjaGRpcj0uLi9jb250cmliLyBcCiAgICAgZmlsZTovLzAwMDItTWFrZS1vcGVuY3YtdHMtY3JlYXRlLXNoYXJlLWxpYnJhcnktaW50ZWFkLW9mLXN0YXRpYy5wYXRjaCBcCiAgICAgZmlsZTovLzAwMDMtVG8tZml4LWVycm9ycy1hcy1mb2xsb3dpbmcucGF0Y2ggXAogICAgIGZpbGU6Ly8wMDAxLWJ1aWxkLXdvcmthcm91bmQtR0NDLTcuMS4xLWNvbXBpbGF0aW9uLWlzc3VlLXdpdGgtc2EucGF0Y2ggXApAQCAtNTMsMTIgKzU3LDE3IEBACiAgICAgZmlsZTovLzAwMDEtY2Fyb3RlbmUtZG9uLXQtdXNlLV9fYXNtX18td2l0aC1hYXJjaDY0LnBhdGNoIFwKICAgICBmaWxlOi8vMDAwMi1Eby1ub3QtZW5hYmxlLWFzbS13aXRoLWNsYW5nLnBhdGNoIFwKICAgICBmaWxlOi8vQ1ZFLTIwMTctMTQxMzYucGF0Y2ggXAorICAgIGZpbGU6Ly9qYXZhZ2VuLnBhdGNoIFwKKyAgICBmaWxlOi8vcHJvdG9idWYucGF0Y2ggXAorICAgIGZpbGU6Ly9hbHJlYWR5LWV4aXN0cy5wYXRjaCBcCiAiCiBQViA9ICIzLjMrZ2l0JHtTUkNQVn0iCiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKIGRvX3VucGFja19leHRyYSgpIHsKKyAgICBta2RpciAtcCAke1N9LzNyZHBhcnR5L3Rpbnlkbm4vCisgICAgdGFyIHh6ZiAke1dPUktESVJ9L3YxLjAuMGEzLnRhci5neiAtQyAke1N9LzNyZHBhcnR5L3Rpbnlkbm4vCiAgICAgdGFyIHh6ZiAke1dPUktESVJ9L2lwcC9pcHBpY3YvJHtJUFBfRklMRU5BTUV9IC1DICR7V09SS0RJUn0KICAgICBjcCAke1dPUktESVJ9L3ZnZy8qLmkgJHtXT1JLRElSfS9jb250cmliL21vZHVsZXMveGZlYXR1cmVzMmQvc3JjCiAgICAgY3AgJHtXT1JLRElSfS9ib29zdGRlc2MvKi5pICR7V09SS0RJUn0vY29udHJpYi9tb2R1bGVzL3hmZWF0dXJlczJkL3NyYwpAQCAtNjgsMTMgKzc3LDEzIEBACiBFWFRSQV9PRUNNQUtFID0gIi1ET1BFTkNWX0VYVFJBX01PRFVMRVNfUEFUSD0ke1dPUktESVJ9L2NvbnRyaWIvbW9kdWxlcyBcCiAgICAgLURXSVRIXzEzOTQ9T0ZGIFwKICAgICAtRENNQUtFX1NLSVBfUlBBVEg9T04gXAotICAgIC1ET1BFTkNWX0lDVl9QQUNLQUdFX0RPV05MT0FERUQ9JHtJUFBfTUQ1fSBcCi0gICAgLURPUEVOQ1ZfSUNWX1BBVEg9JHtXT1JLRElSfS9pcHBpY3ZfbG54IFwKKyAgICAtRE9QRU5DVl9JQ1ZfSEFTSD0ke0lQUF9NRDV9IFwKKyAgICAtRElQUFJPT1Q9JHtXT1JLRElSfS9pcHBpY3ZfbG54IFwKICAgICAke0BiYi51dGlscy5jb250YWlucygiVEFSR0VUX0NDX0FSQ0giLCAiLW1zc2UzIiwgIi1ERU5BQkxFX1NTRT0xIC1ERU5BQkxFX1NTRTI9MSAtREVOQUJMRV9TU0UzPTEgLURFTkFCTEVfU1NTRTM9MSIsICIiLCBkKX0gXAogICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCJUQVJHRVRfQ0NfQVJDSCIsICItbXNzZTQuMSIsICItREVOQUJMRV9TU0U9MSAtREVOQUJMRV9TU0UyPTEgLURFTkFCTEVfU1NFMz0xIC1ERU5BQkxFX1NTU0UzPTEgLURFTkFCTEVfU1NFNDE9MSIsICIiLCBkKX0gXAogICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCJUQVJHRVRfQ0NfQVJDSCIsICItbXNzZTQuMiIsICItREVOQUJMRV9TU0U9MSAtREVOQUJMRV9TU0UyPTEgLURFTkFCTEVfU1NFMz0xIC1ERU5BQkxFX1NTU0UzPTEgLURFTkFCTEVfU1NFNDE9MSAtREVOQUJMRV9TU0U0Mj0xIiwgIiIsIGQpfSBcCi0gICAgJHtAYmFzZV9jb25kaXRpb25hbCgibGliZGlyIiwgIi91c3IvbGliNjQiLCAiLURMSUJfU1VGRklYPTY0IiwgIiIsIGQpfSBcCi0gICAgJHtAYmFzZV9jb25kaXRpb25hbCgibGliZGlyIiwgIi91c3IvbGliMzIiLCAiLURMSUJfU1VGRklYPTMyIiwgIiIsIGQpfSBcCisgICAgJHtAb2UudXRpbHMuY29uZGl0aW9uYWwoImxpYmRpciIsICIvdXNyL2xpYjY0IiwgIi1ETElCX1NVRkZJWD02NCIsICIiLCBkKX0gXAorICAgICR7QG9lLnV0aWxzLmNvbmRpdGlvbmFsKCJsaWJkaXIiLCAiL3Vzci9saWIzMiIsICItRExJQl9TVUZGSVg9MzIiLCAiIiwgZCl9IFwKICIKIEVYVFJBX09FQ01BS0VfYXBwZW5kX3g4NiA9ICIgLURYODY9T04iCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcGFzc3dkcWMvcGFzc3dkcWNfMS4zLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bhc3N3ZHFjL3Bhc3N3ZHFjXzEuMy4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOThkYjNjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcGFzc3dkcWMvcGFzc3dkcWNfMS4zLjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi1TVU1NQVJZID0gIkEgcGFzc3dvcmQvcGFzc3BocmFzZSBzdHJlbmd0aCBjaGVja2luZyBhbmQgZW5mb3JjZW1lbnQgdG9vbHNldCIKLURFU0NSSVBUSU9OID0gIlwKLXBhc3N3ZHFjIGlzIGEgcGFzc3dvcmQvcGFzc3BocmFzZSBzdHJlbmd0aCBjaGVja2luZyBhbmQgcG9saWN5IGVuZm9yY2VtZW50IFwKLXRvb2xzZXQsIGluY2x1ZGluZyBhbiBvcHRpb25hbCBQQU0gbW9kdWxlIChwYW1fcGFzc3dkcWMpLCBjb21tYW5kLWxpbmUgXAotcHJvZ3JhbXMgKHB3cWNoZWNrIGFuZCBwd3FnZW4pLCBhbmQgYSBsaWJyYXJ5IChsaWJwYXNzd2RxYykuIFwKLXBhbV9wYXNzd2RxYyBpcyBub3JtYWxseSBpbnZva2VkIG9uIHBhc3N3b3JkIGNoYW5nZXMgYnkgcHJvZ3JhbXMgc3VjaCBhcyBcCi1wYXNzd2QoMSkuICBJdCBpcyBjYXBhYmxlIG9mIGNoZWNraW5nIHBhc3N3b3JkIG9yIHBhc3NwaHJhc2Ugc3RyZW5ndGgsIFwKLWVuZm9yY2luZyBhIHBvbGljeSwgYW5kIG9mZmVyaW5nIHJhbmRvbWx5LWdlbmVyYXRlZCBwYXNzcGhyYXNlcywgd2l0aCBcCi1hbGwgb2YgdGhlc2UgZmVhdHVyZXMgYmVpbmcgb3B0aW9uYWwgYW5kIGVhc2lseSAocmUtKWNvbmZpZ3VyYWJsZS4gXAotXAotcHdxY2hlY2sgYW5kIHB3cWdlbiBhcmUgc3RhbmRhbG9uZSBwYXNzd29yZC9wYXNzcGhyYXNlIHN0cmVuZ3RoIGNoZWNraW5nIFwKLWFuZCByYW5kb20gcGFzc3BocmFzZSBnZW5lcmF0b3IgcHJvZ3JhbXMsIHJlc3BlY3RpdmVseSwgd2hpY2ggYXJlIHVzYWJsZSBcCi1mcm9tIHNjcmlwdHMuIFwKLVwKLWxpYnBhc3N3ZHFjIGlzIHRoZSB1bmRlcmx5aW5nIGxpYnJhcnksIHdoaWNoIG1heSBhbHNvIGJlIHVzZWQgZnJvbSBcCi10aGlyZC1wYXJ0eSBwcm9ncmFtcy4gXAotIgotCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3Lm9wZW53YWxsLmNvbS9wYXNzd2RxYyIKLVNFQ1RJT04gPSAiU3lzdGVtIEVudmlyb25tZW50L0Jhc2UiCi0KLURFUEVORFMgKz0gImxpYnBhbSIKLQotTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0xYjRhZjZmM2Q0ZWUwNzlhMzgxMDczNjZlOTNiMzM0ZCIKLQotU1JDX1VSSSA9ICJodHRwOi8vd3d3Lm9wZW53YWxsLmNvbS8ke0JQTn0vJHtCUH0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL21ha2VmaWxlLWFkZC1sZGZsYWdzLnBhdGNoIFwKLSAgICAgICAgICAiCi1TUkNfVVJJW21kNXN1bV0gPSAiMzg3OGI1N2JjZDNmZGJjZjNkNGIzNjJkYmM2MjI4YjkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZDFmZWRlYWY3NTllOGEwZjMyZDI4YjU4MTFlZjExYjVhNTM2NTE1NDg0OTE5MGY0YjdmYWI2NzBhNzBmZmIxNCIKLQotIyBleHBsaWNpdGx5IGRlZmluZSBMSU5VWF9QQU0gaW4gY2FzZSBESVNUUk9fRkVBVFVSRVMgbm8gcGFtCi0jIHRoaXMgcGFja2FnZSdzIHBhbV9wYXNzd2RxYy5zbyBuZWVkcyBwYW0KLUNGTEFHU19hcHBlbmQgKz0gIi1XYWxsIC1mUElDIC1ESEFWRV9TSEFET1cgLURMSU5VWF9QQU0iCi0KLSMgLWUgaXMgbm8gbG9uZ2VyIGRlZmF1bHQgc2V0dGluZyBpbiBiaXRiYWtlLmNvbmYKLUVYVFJBX09FTUFLRSA9ICItZSIKLQotZG9fY29tcGlsZSgpIHsKLSAgICAjIG1ha2Ugc3VyZSBzdWIgbWFrZSB1c2UgZW52aXJvbm1lbnQgdG8gb3ZlcnJpZGUgdmFyaWFibGVzIGluIE1ha2VmaWxlCi0gICAgIyBMaW51eCkgICAgJChNQUtFKSwgdGhlcmUgaXMgYSB0YWIgYmV0d2VlbgotICAgIHNlZCAtaSAtZSAncy9MaW51eCkJJChNQUtFKSBDRkxBR1NfbGliL0xpbnV4KQkkKE1BS0UpIC1lIENGTEFHU19saWIvJyAke1N9L01ha2VmaWxlCi0KLSAgICAjIExEX2xpYiBhbmQgTEQgbXVzdCBiZSBDQyBiZWNhdXNlIG9mIE1ha2VmaWxlCi0gICAgb2VfcnVubWFrZSBMRD0iJHtDQ30iCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0gICAgb2VfcnVubWFrZSBpbnN0YWxsIERFU1RESVI9JHtEfSBTSEFSRURfTElCRElSPSR7YmFzZV9saWJkaXJ9IFwKLSAgICAgICAgICAgREVWRUxfTElCRElSPSR7bGliZGlyfSBTRUNVUkVESVI9JHtiYXNlX2xpYmRpcn0vc2VjdXJpdHkgXAotICAgICAgICAgICBJTlNUQUxMPSJpbnN0YWxsIC1wIgotfQotCi1QUk9WSURFUyArPSAicGFtLSR7QlBOfSIKLVBBQ0tBR0VTID0rICJsaWIke0JQTn0gcGFtLSR7QlBOfSIKLQotRklMRVNfbGliJHtCUE59ID0gIiR7YmFzZV9saWJkaXJ9L2xpYnBhc3N3ZHFjLnNvLjAiCi1GSUxFU19wYW0tJHtCUE59ID0gIiR7YmFzZV9saWJkaXJ9L3NlY3VyaXR5L3BhbV9wYXNzd2RxYy5zbyIKLUZJTEVTXyR7UE59LWRiZyArPSAiJHtiYXNlX2xpYmRpcn0vc2VjdXJpdHkvLmRlYnVnIgotCi1SREVQRU5EU18ke1BOfSA9ICJsaWIke0JQTn0gcGFtLSR7QlBOfSIKLVJERVBFTkRTX3BhbS0ke0JQTn0gPSAibGliJHtCUE59IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9waWRnaW4vcGlkZ2luL3BpZGdpbi1jcm9zcy1weXRob24tMjY1LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9waWRnaW4vcGlkZ2luL3BpZGdpbi1jcm9zcy1weXRob24tMjY1LnBhdGNoCmluZGV4IDcyYmY0ZWQuLjMxMmZjODUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcGlkZ2luL3BpZGdpbi9waWRnaW4tY3Jvc3MtcHl0aG9uLTI2NS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BpZGdpbi9waWRnaW4vcGlkZ2luLWNyb3NzLXB5dGhvbi0yNjUucGF0Y2gKQEAgLTEsOSArMSwxNyBAQAotVXNlIHBrZy1jb25maWcgaW5zdGVhZCBvZiAke1BZVEhPTn0tY29uZmlnIHRvIGZpbmQgcHl0aG9uCitGcm9tIDg1NWNjMjBiYWZhMzA1OTdhZTdhNjJmNzY3MmQ0MjY1NGIyNWNkZTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIZXJyaWUgPGdpdGh1Yi5jb21AaGVycmllLm9yZz4KK0RhdGU6IE1vbiwgMjQgSnVsIDIwMTcgMjE6MzA6MTYgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIHBrZy1jb25maWcgaW5zdGVhZCBvZiAke1BZVEhPTn0tY29uZmlnIHRvIGZpbmQgcHl0aG9uCiAKLWRpZmYgLXVOciBwaWRnaW4tMi4xMC4xMi5vcmlnL2NvbmZpZ3VyZS5hYyBwaWRnaW4tMi4xMC4xMi9jb25maWd1cmUuYWMKLS0tLSBwaWRnaW4tMi4xMC4xMi5vcmlnL2NvbmZpZ3VyZS5hYwkyMDE2LTAxLTAxIDAwOjE5OjQwLjAwMDAwMDAwMCArMDEwMAotKysrIHBpZGdpbi0yLjEwLjEyL2NvbmZpZ3VyZS5hYwkyMDE2LTA1LTA1IDE2OjU1OjEzLjI1ODk0NTkyNSArMDIwMAotQEAgLTE1ODUsMjAgKzE1ODUsMTUgQEAKKy0tLQorIGNvbmZpZ3VyZS5hYyB8IDIxICsrKysrKysrLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCBkMjBhMThlLi5jNzQxODI5IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0xNTY3LDIwICsxNTY3LDE1IEBAIEFNX0NPTkRJVElPTkFMKEVOQUJMRV9EQlVTLCB0ZXN0ICJ4JGVuYWJsZV9kYnVzIiA9ICJ4eWVzIikKICBkbmwgQ2hlY2sgZm9yIFB5dGhvbiBoZWFkZXJzIChjdXJyZW50bHkgdXNlZnVsIG9ubHkgZm9yIGxpYmdudCkKICBkbmwgKFRoYW5rcyB0byBYQ2hhdCkKICBpZiB0ZXN0ICJ4JGVuYWJsZV9jb25zb2xldWkiID0gInh5ZXMiIC1hICEgLXogIiRQWVRIT04iIC1hIHgiJFBZVEhPTiIgIT0geCJubyIgOyB0aGVuCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BpZGdpbi9waWRnaW4vcHVycGxlLU9FLWJyYW5kaW5nLTI1LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9waWRnaW4vcGlkZ2luL3B1cnBsZS1PRS1icmFuZGluZy0yNS5wYXRjaAppbmRleCAyOTNlZjcwLi45YTI0ZmJiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BpZGdpbi9waWRnaW4vcHVycGxlLU9FLWJyYW5kaW5nLTI1LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcGlkZ2luL3BpZGdpbi9wdXJwbGUtT0UtYnJhbmRpbmctMjUucGF0Y2gKQEAgLTEsOCArMSwxNiBAQAotSW5kZXg6IHBpZGdpbi0yLjUuMC9saWJwdXJwbGUvcHJvdG9jb2xzL2lyYy9pcmMuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHBpZGdpbi0yLjUuMC5vcmlnL2xpYnB1cnBsZS9wcm90b2NvbHMvaXJjL2lyYy5oCTIwMDgtMDgtMTkgMDE6NTM6MzguMDAwMDAwMDAwICswMDAwCi0rKysgcGlkZ2luLTIuNS4wL2xpYnB1cnBsZS9wcm90b2NvbHMvaXJjL2lyYy5oCTIwMDgtMDgtMjcgMTE6MTU6NTguMDAwMDAwMDAwICswMDAwCi1AQCAtMzYsOSArMzYsOSBAQAorRnJvbSA0M2U5ZGI2NTY0MzFmZmIyMmI0MjlkNWZjYTRjZTNiNGFmMjFiYzllIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSGVycmllIDxnaXRodWIuY29tQGhlcnJpZS5vcmc+CitEYXRlOiBNb24sIDI0IEp1bCAyMDE3IDIxOjMwOjE2ICswMjAwCisKKy0tLQorIGxpYnB1cnBsZS9wcm90b2NvbHMvaXJjL2lyYy5oIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYnB1cnBsZS9wcm90b2NvbHMvaXJjL2lyYy5oIGIvbGlicHVycGxlL3Byb3RvY29scy9pcmMvaXJjLmgKK2luZGV4IGZkZTM1YzQuLjY2ZTUyZGQgMTAwNjQ0CistLS0gYS9saWJwdXJwbGUvcHJvdG9jb2xzL2lyYy9pcmMuaAorKysrIGIvbGlicHVycGxlL3Byb3RvY29scy9pcmMvaXJjLmgKK0BAIC00MCw5ICs0MCw5IEBACiAgCiAgI2RlZmluZSBJUkNfREVGQVVMVF9DSEFSU0VUICJVVEYtOCIKICAjZGVmaW5lIElSQ19ERUZBVUxUX0FVVE9ERVRFQ1QgRkFMU0UKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcGlkZ2luL3BpZGdpbi9zYW5pdGl6ZS1jb25maWd1cmUuYWMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BpZGdpbi9waWRnaW4vc2FuaXRpemUtY29uZmlndXJlLmFjLnBhdGNoCmluZGV4IGE3N2Q2NGYuLjg0ZGJjZGMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcGlkZ2luL3BpZGdpbi9zYW5pdGl6ZS1jb25maWd1cmUuYWMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9waWRnaW4vcGlkZ2luL3Nhbml0aXplLWNvbmZpZ3VyZS5hYy5wYXRjaApAQCAtMSw2ICsxLDE2IEBACi0tLS0gL3RtcC9jb25maWd1cmUuYWMJMjAwNy0wNS0wOCAxNzoyOTowMi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBwaWRnaW4tMi4wLjAvY29uZmlndXJlLmFjCTIwMDctMDUtMDggMTc6MzA6MzAuMzI1MjUxMDAwICswMjAwCi1AQCAtNDcyLDcgKzQ3Miw3IEBACitGcm9tIGMzMDU4ZjllYWRhZjVmZjI4YmE3NzZjZmVkNTRiNjA5YTkzYTEyNDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIZXJyaWUgPGdpdGh1Yi5jb21AaGVycmllLm9yZz4KK0RhdGU6IE1vbiwgMjQgSnVsIDIwMTcgMjE6MzA6MTYgKzAyMDAKKworLS0tCisgY29uZmlndXJlLmFjIHwgMTAgKy0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgOSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggYjhhY2QyYS4uZDIwYTE4ZSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtNjQyLDcgKzY0Miw3IEBAIGlmIHRlc3QgIngkZW5hYmxlX2NvbnNvbGV1aSIgPSAieHllcyI7IHRoZW4KICAJaWYgdGVzdCAieCRlbmFibGVfY29uc29sZXVpIiA9ICJ4eWVzIjsgdGhlbgogIAkJZG5sICMgU29tZSBkaXN0cm9zIHB1dCB0aGUgaGVhZGVycyBpbiBuY3Vyc2Vzdy8sIHNvbWUgZG9uJ3QKICAJCWZvdW5kX25jdXJzZXNfaD1ubwpAQCAtOCw4ICsxOCw4IEBACiArCQlmb3IgbG9jYXRpb24gaW4gJGFjX25jdXJzZXNfaW5jbHVkZXMgJE5DVVJTRVNfSEVBREVSUyAKICAJCWRvCiAgCQkJZj0iJGxvY2F0aW9uL25jdXJzZXMuaCIKLSAJCQlBQ19DSEVDS19IRUFERVIoJGYsWwotQEAgLTE4NjAsMTAgKzE4NjAsNiBAQAorIAkJCW9yaWdfQ0ZMQUdTPSIkQ0ZMQUdTIgorQEAgLTIzOTcsMTAgKzIzOTcsNiBAQCBpZiB0ZXN0ICIka2VyYmVyb3MiICE9ICJubyIgOyB0aGVuCiAgCQkJS1JCNF9DRkxBR1M9IiRLUkI0X0NGTEFHUyAtSSR7a2VyYmVyb3N9L2luY2x1ZGUva2VyYmVyb3NJViIKICAJCWZpCiAgCQlLUkI0X0xERkxBR1M9Ii1MJHtrZXJiZXJvc30vbGliIgpAQCAtMjAsNyArMzAsNyBAQAogIAlmaQogIAlBQ19ERUZJTkUoWkVQSFlSX1VTRVNfS0VSQkVST1MsIDEsIFtEZWZpbmUgaWYga2VyYmVyb3Mgc2hvdWxkIGJlIHVzZWQgaW4gWmVwaHlyLl0pCiAgCi1AQCAtMTg5NiwxMCArMTg5Miw2IEBACitAQCAtMjQzMywxMCArMjQyOSw2IEBAIGlmIHRlc3QgIiR6ZXBoeXIiICE9ICJubyIgOyB0aGVuCiAgCQlaRVBIWVJfTERGTEFHUz0iLUwke3plcGh5cn0vbGliIgogIAllbGlmIHRlc3QgLWQgL3Vzci9hdGhlbmEvaW5jbHVkZS96ZXBoeXIgOyB0aGVuCiAgCQlaRVBIWVJfQ0ZMQUdTPSItSS91c3IvYXRoZW5hL2luY2x1ZGUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvY28vcG9jb18xLjcuOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9jby9wb2NvXzEuNy45LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzY1NzM1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9jby9wb2NvXzEuNy45LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICswLDAgQEAKLVNVTU1BUlkgPSAiTW9kZXJuLCBwb3dlcmZ1bCBvcGVuIHNvdXJjZSBjcm9zcy1wbGF0Zm9ybSBDKysgY2xhc3MgbGlicmFyaWVzIgotREVTQ1JJUFRJT04gPSAiTW9kZXJuLCBwb3dlcmZ1bCBvcGVuIHNvdXJjZSBDKysgY2xhc3MgbGlicmFyaWVzIGFuZCBmcmFtZXdvcmtzIGZvciBidWlsZGluZyBuZXR3b3JrLSBhbmQgaW50ZXJuZXQtYmFzZWQgYXBwbGljYXRpb25zIHRoYXQgcnVuIG9uIGRlc2t0b3AsIHNlcnZlciwgbW9iaWxlIGFuZCBlbWJlZGRlZCBzeXN0ZW1zLiIKLVNFQ1RJT04gPSAibGlicyIKLUhPTUVQQUdFID0gImh0dHA6Ly9wb2NvcHJvamVjdC5vcmcvIgotTElDRU5TRSA9ICJCU0wtMS4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NDI2N2Y0OGZjNzM4ZjUwMzgwY2JlZWI3NmY5NWNlYmMiCi0KLSMgVGhlc2UgZGVwZW5kZW5jaWVzIGFyZSByZXF1aXJlZCBieSBGb3VuZGF0aW9uCi1ERVBFTkRTID0gImxpYnBjcmUgemxpYiIKLQotaW5oZXJpdCBjbWFrZSBwdGVzdAotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKLQotU1JDUkVWID0gImJmYmU2YTMyODc0NGVhYTg0Y2I0NDNiOTNlZTIwOTQ3YWEwYmU5MWYiCi1TUkNfVVJJID0gIiBcCi0gICAgZ2l0Oi8vZ2l0aHViLmNvbS9wb2NvcHJvamVjdC9wb2NvLmdpdDticmFuY2g9bWFzdGVyIFwKLSAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKLSAgICIKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLQotRVhUUkFfT0VDTUFLRSA9ICItRENNQUtFX0JVSUxEX1RZUEU9UmVsV2l0aERlYkluZm8gLURQT0NPX1VOQlVORExFRD1PTiBcCi0gICAgICAgICAgICAgICAgICAtRFpMSUJfTElCUkFSWV9SRUxFQVNFOlNUUklORz16IC1EUENSRV9MSUJSQVJZOlNUUklORz1wY3JlIFwKLSAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BURVNUX0VOQUJMRUQnLCAnMScsICctREVOQUJMRV9URVNUUz1PTiAnLCAnJywgZCl9IgotCi0jIEZvciB0aGUgbmF0aXZlIGJ1aWxkIHdlIHdhbnQgdG8gdXNlIHRoZSBidW5kbGVkIHZlcnNpb24KLUVYVFJBX09FQ01BS0VfYXBwZW5kX2NsYXNzLW5hdGl2ZSA9ICIgLURQT0NPX1VOQlVORExFRD1PRkYiCi0KLSMgZG8gbm90IHVzZSBycGF0aAotRVhUUkFfT0VDTUFLRV9hcHBlbmQgPSAiIC1EQ01BS0VfU0tJUF9SUEFUSD1PTiIKLQotIyBCeSBkZWZhdWx0IHRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgcG9jbyBjb21wb25lbnRzIGFyZSBidWlsdAotIyBGb3VuZGF0aW9uIGlzIGJ1aWx0IGFueXdheSBhbmQgZG9lc24ndCBuZWVkIHRvIGJlIGxpc3RlZCBleHBsaWNpdGx5Ci0jIHRoZXNlIGRvbid0IGhhdmUgZGVwZW5kZW5jaWVzIG91dHNpZGUgb2UtY29yZQotUEFDS0FHRUNPTkZJRyA/Pz0gIlhNTCBKU09OIE1vbmdvREIgUERGIFV0aWwgTmV0IE5ldFNTTCBDcnlwdG8gRGF0YSBEYXRhU1FMaXRlIFppcCIKLQotUEFDS0FHRUNPTkZJR1tYTUxdID0gIi1ERU5BQkxFX1hNTD1PTiAtREVYUEFUX0xJQlJBUlk6U1RSSU5HPWV4cGF0LC1ERU5BQkxFX1hNTD1PRkYsZXhwYXQiCi1QQUNLQUdFQ09ORklHW0pTT05dID0gIi1ERU5BQkxFX0pTT049T04sLURFTkFCTEVfSlNPTj1PRkYiCi1QQUNLQUdFQ09ORklHW01vbmdvREJdID0gIi1ERU5BQkxFX01PTkdPREI9T04sLURFTkFCTEVfTU9OR09EQj1PRkYiCi1QQUNLQUdFQ09ORklHW1BERl0gPSAiLURFTkFCTEVfUERGPU9OLC1ERU5BQkxFX1BERj1PRkYsemxpYiIKLVBBQ0tBR0VDT05GSUdbVXRpbF0gPSAiLURFTkFCTEVfVVRJTD1PTiwtREVOQUJMRV9VVElMPU9GRiIKLVBBQ0tBR0VDT05GSUdbTmV0XSA9ICItREVOQUJMRV9ORVQ9T04sLURFTkFCTEVfTkVUPU9GRiIKLVBBQ0tBR0VDT05GSUdbTmV0U1NMXSA9ICItREVOQUJMRV9ORVRTU0w9T04gLURPUEVOU1NMX1NTTF9MSUJSQVJZOlNUUklORz1zc2wgLURPUEVOU1NMX0NSWVBUT19MSUJSQVJZOlNUUklORz1jcnlwdG8sLURFTkFCTEVfTkVUU1NMPU9GRixvcGVuc3NsIgotUEFDS0FHRUNPTkZJR1tDcnlwdG9dID0gIi1ERU5BQkxFX0NSWVBUTz1PTiAtRE9QRU5TU0xfU1NMX0xJQlJBUlk6U1RSSU5HPXNzbCAtRE9QRU5TU0xfQ1JZUFRPX0xJQlJBUlk6U1RSSU5HPWNyeXB0bywtREVOQUJMRV9DUllQVE89T0ZGLG9wZW5zc2wiCi1QQUNLQUdFQ09ORklHW0RhdGFdID0gIi1ERU5BQkxFX0RBVEE9T04sLURFTkFCTEVfREFUQT1PRkYiCi1QQUNLQUdFQ09ORklHW0RhdGFTUUxpdGVdID0gIi1ERU5BQkxFX0RBVEFfU1FMSVRFPU9OIC1EU1FMSVRFM19MSUJSQVJZOlNUUklORz1zcWxpdGUzLC1ERU5BQkxFX0RBVEFfU1FMSVRFPU9GRixzcWxpdGUzIgotUEFDS0FHRUNPTkZJR1taaXBdID0gIi1ERU5BQkxFX1pJUD1PTiwtREVOQUJMRV9aSVA9T0ZGIgotCi0jIEFkZGl0aW9uYWwgY29tcG9uZW50cyBub3QgYnVpbGQgYnkgZGVmYXVsdCwKLSMgdGhleSBtaWdodCBoYXZlIGRlcGVuZGVuY2llcyBub3QgaW5jbHVkZWQgaW4gb2UtY29yZQotIyBvciB0aGV5IGRvbid0IHdvcmsgb24gYWxsIGFyY2hpdGVjdHVyZXMKLVBBQ0tBR0VDT05GSUdbbW9kX3BvY29dID0gIi1ERU5BQkxFX0FQQUNIRUNPTk5FQ1RPUj1PTiwtREVOQUJMRV9BUEFDSEVDT05ORUNUT1I9T0ZGLGFwciBhcGFjaGUyIgotUEFDS0FHRUNPTkZJR1tDcHBQYXJzZXJdID0gIi1ERU5BQkxFX0NQUFBBUlNFUj1PTiwtREVOQUJMRV9DUFBQQVJTRVI9T0ZGIgotUEFDS0FHRUNPTkZJR1tEYXRhTXlTUUxdID0gIi1ERU5BQkxFX0RBVEFfTVlTUUw9T04gLURNWVNRTF9MSUI6U1RSSU5HPW15c3FsY2xpZW50X3IsLURFTkFCTEVfREFUQV9NWVNRTD1PRkYsbWFyaWFkYiIKLVBBQ0tBR0VDT05GSUdbRGF0YU9EQkNdID0gIi1ERU5BQkxFX0RBVEFfT0RCQz1PTiwtREVOQUJMRV9EQVRBX09EQkM9T0ZGLGxpYmlvZGJjIgotUEFDS0FHRUNPTkZJR1tQYWdlQ29tcGlsZXJdID0gIi1ERU5BQkxFX1BBR0VDT01QSUxFUj1PTiwtREVOQUJMRV9QQUdFQ09NUElMRVI9T0ZGIgotUEFDS0FHRUNPTkZJR1tQYWdlQ29tcGlsZXJGaWxlMlBhZ2VdID0gIi1ERU5BQkxFX1BBR0VDT01QSUxFUl9GSUxFMlBBR0U9T04sLURFTkFCTEVfUEFHRUNPTVBJTEVSX0ZJTEUyUEFHRT1PRkYiCi1QQUNLQUdFQ09ORklHW1NldmVuWmlwXSA9ICItREVOQUJMRV9TRVZFTlpJUD1PTiwtREVOQUJMRV9TRVZFTlpJUD1PRkYiCi0KLSMgTWFrZSBhIHBhY2thZ2UgZm9yIGVhY2ggbGlicmFyeQotUEFDS0FHRVMgPSAiJHtQTn0tZGJnICR7UE9DT19QQUNLQUdFU30iCi1weXRob24gX19hbm9ueW1vdXMgKCkgewotICAgIHBhY2thZ2VzID0gW10KLSAgICB0ZXN0cnVubmVycyA9IFtdCi0gICAgY29tcG9uZW50cyA9IGQuZ2V0VmFyKCJQQUNLQUdFQ09ORklHIikuc3BsaXQoKQotICAgIGNvbXBvbmVudHMuYXBwZW5kKCJGb3VuZGF0aW9uIikKLSAgICBmb3IgbGliIGluIGNvbXBvbmVudHM6Ci0gICAgICAgIHBrZyA9ICgicG9jby0lcyIgJSBsaWIubG93ZXIoKSkucmVwbGFjZSgiXyIsIiIpCi0gICAgICAgIHBhY2thZ2VzLmFwcGVuZChwa2cpCi0gICAgICAgIGlmIG5vdCBkLmdldFZhcigiRklMRVNfJXMiICUgcGtnKToKLSAgICAgICAgICAgIGQuc2V0VmFyKCJGSUxFU18lcyIgJSBwa2csICIke2xpYmRpcn0vbGliUG9jbyVzLnNvLioiICUgbGliKQotICAgICAgICB0ZXN0cnVubmVycy5hcHBlbmQoIiVzIiAlIGxpYikKLQotICAgIGQuc2V0VmFyKCJQT0NPX1BBQ0tBR0VTIiwgIiAiLmpvaW4ocGFja2FnZXMpKQotICAgIGQuc2V0VmFyKCJQT0NPX1RFU1RSVU5ORVJTIiwgIlxuIi5qb2luKHRlc3RydW5uZXJzKSkKLX0KLQotIyAicG9jbyIgaXMgYSBtZXRhcGFja2FnZSB3aGljaCBwdWxscyBpbiBhbGwgUG9jbyBjb21wb25lbnRzCi1QQUNLQUdFUyArPSAiJHtQTn0iCi1SUkVDT01NRU5EU18ke1BOfSArPSAiJHtQT0NPX1BBQ0tBR0VTfSIKLVJSRUNPTU1FTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCi1BTExPV19FTVBUWV8ke1BOfSA9ICIxIgotCi0jIC1kZXYgbGFzdCB0byBwaWNrIHVwIHRoZSByZW1haW5pbmcgc3R1ZmYKLVBBQ0tBR0VTICs9ICIke1BOfS1kZXYgJHtQTn0tc3RhdGljZGV2IgotRklMRVNfJHtQTn0tZGV2ID0gIiR7aW5jbHVkZWRpcn0gJHtsaWJkaXJ9L2xpYlBvY28qLnNvICR7bGliZGlyfS9jbWFrZSIKLUZJTEVTXyR7UE59LXN0YXRpY2RldiA9ICIke2xpYmRpcn0vbGliUG9jbyouYSIKLQotIyBwdGVzdCBzdXBwb3J0Ci1GSUxFU18ke1BOfS1kYmcgKz0gIiR7UFRFU1RfUEFUSH0vYmluLy5kZWJ1ZyIKLQotIyBjcHB1bml0IGlzIG9ubHkgYnVpbHQgaWYgdGVzdHMgYXJlIGVuYWJsZWQKLVBBQ0tBR0VTICs9ICIke1BOfS1jcHB1bml0IgotRklMRVNfJHtQTn0tY3BwdW5pdCArPSAiJHtsaWJkaXJ9L2xpYkNwcFVuaXQuc28qIgotQUxMT1dfRU1QVFlfJHtQTn0tY3BwdW5pdCA9ICIxIgotCi1SREVQRU5EU18ke1BOfS1wdGVzdCArPSAiJHtQTn0tY3BwdW5pdCIKLQotZG9faW5zdGFsbF9wdGVzdCAoKSB7Ci0gICAgICAgY3AgLXJmICR7Qn0vYmluLyAke0R9JHtQVEVTVF9QQVRIfQotICAgICAgIGNwIC1mICR7Qn0vbGliL2xpYkNwcFVuaXQuc28qICR7RH0ke2xpYmRpcn0KLSAgICAgICBjcCAtcmYgJHtCfS8qL3Rlc3RzdWl0ZS9kYXRhICR7RH0ke1BURVNUX1BBVEh9L2Jpbi8KLSAgICAgICBmaW5kICIke0R9JHtQVEVTVF9QQVRIfSIgLWV4ZWN1dGFibGUgLWV4ZWMgY2hycGF0aCAtZCB7fSBcOwotICAgICAgIGVjaG8gIiR7UE9DT19URVNUUlVOTkVSU30iID4gIiR7RH0ke1BURVNUX1BBVEh9L3Rlc3RydW5uZXJzIgotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb2NvL3BvY29fMS44LjAuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9jby9wb2NvXzEuOC4wLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYwYjRkMwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9jby9wb2NvXzEuOC4wLjEuYmIKQEAgLTAsMCArMSwxMDYgQEAKK1NVTU1BUlkgPSAiTW9kZXJuLCBwb3dlcmZ1bCBvcGVuIHNvdXJjZSBjcm9zcy1wbGF0Zm9ybSBDKysgY2xhc3MgbGlicmFyaWVzIgorREVTQ1JJUFRJT04gPSAiTW9kZXJuLCBwb3dlcmZ1bCBvcGVuIHNvdXJjZSBDKysgY2xhc3MgbGlicmFyaWVzIGFuZCBmcmFtZXdvcmtzIGZvciBidWlsZGluZyBuZXR3b3JrLSBhbmQgaW50ZXJuZXQtYmFzZWQgYXBwbGljYXRpb25zIHRoYXQgcnVuIG9uIGRlc2t0b3AsIHNlcnZlciwgbW9iaWxlIGFuZCBlbWJlZGRlZCBzeXN0ZW1zLiIKK1NFQ1RJT04gPSAibGlicyIKK0hPTUVQQUdFID0gImh0dHA6Ly9wb2NvcHJvamVjdC5vcmcvIgorTElDRU5TRSA9ICJCU0wtMS4wIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NDI2N2Y0OGZjNzM4ZjUwMzgwY2JlZWI3NmY5NWNlYmMiCisKKyMgVGhlc2UgZGVwZW5kZW5jaWVzIGFyZSByZXF1aXJlZCBieSBGb3VuZGF0aW9uCitERVBFTkRTID0gImxpYnBjcmUgemxpYiIKKworaW5oZXJpdCBjbWFrZSBwdGVzdAorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKKworU1JDUkVWID0gImFmNTI3YWIyMWZjYTVhYjI2NTkyODU0MDhhZWM5OTIwZWQ3YzdiMTciCitTUkNfVVJJID0gIiBcCisgICAgZ2l0Oi8vZ2l0aHViLmNvbS9wb2NvcHJvamVjdC9wb2NvLmdpdCBcCisgICAgZmlsZTovL3J1bi1wdGVzdCBcCisgICAiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK0VYVFJBX09FQ01BS0UgPSAiLURDTUFLRV9CVUlMRF9UWVBFPVJlbFdpdGhEZWJJbmZvIC1EUE9DT19VTkJVTkRMRUQ9T04gXAorICAgICAgICAgICAgICAgICAgLURaTElCX0xJQlJBUllfUkVMRUFTRTpTVFJJTkc9eiAtRFBDUkVfTElCUkFSWTpTVFJJTkc9cGNyZSBcCisgICAgICAgICAgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQVEVTVF9FTkFCTEVEJywgJzEnLCAnLURFTkFCTEVfVEVTVFM9T04gJywgJycsIGQpfSIKKworIyBGb3IgdGhlIG5hdGl2ZSBidWlsZCB3ZSB3YW50IHRvIHVzZSB0aGUgYnVuZGxlZCB2ZXJzaW9uCitFWFRSQV9PRUNNQUtFX2FwcGVuZF9jbGFzcy1uYXRpdmUgPSAiIC1EUE9DT19VTkJVTkRMRUQ9T0ZGIgorCisjIGRvIG5vdCB1c2UgcnBhdGgKK0VYVFJBX09FQ01BS0VfYXBwZW5kID0gIiAtRENNQUtFX1NLSVBfUlBBVEg9T04iCisKKyMgQnkgZGVmYXVsdCB0aGUgbW9zdCBjb21tb25seSB1c2VkIHBvY28gY29tcG9uZW50cyBhcmUgYnVpbHQKKyMgRm91bmRhdGlvbiBpcyBidWlsdCBhbnl3YXkgYW5kIGRvZXNuJ3QgbmVlZCB0byBiZSBsaXN0ZWQgZXhwbGljaXRseQorIyB0aGVzZSBkb24ndCBoYXZlIGRlcGVuZGVuY2llcyBvdXRzaWRlIG9lLWNvcmUKK1BBQ0tBR0VDT05GSUcgPz89ICJYTUwgSlNPTiBNb25nb0RCIFBERiBVdGlsIE5ldCBOZXRTU0wgQ3J5cHRvIERhdGEgRGF0YVNRTGl0ZSBaaXAiCisKK1BBQ0tBR0VDT05GSUdbWE1MXSA9ICItREVOQUJMRV9YTUw9T04gLURFWFBBVF9MSUJSQVJZOlNUUklORz1leHBhdCwtREVOQUJMRV9YTUw9T0ZGLGV4cGF0IgorUEFDS0FHRUNPTkZJR1tKU09OXSA9ICItREVOQUJMRV9KU09OPU9OLC1ERU5BQkxFX0pTT049T0ZGIgorUEFDS0FHRUNPTkZJR1tNb25nb0RCXSA9ICItREVOQUJMRV9NT05HT0RCPU9OLC1ERU5BQkxFX01PTkdPREI9T0ZGIgorUEFDS0FHRUNPTkZJR1tQREZdID0gIi1ERU5BQkxFX1BERj1PTiwtREVOQUJMRV9QREY9T0ZGLHpsaWIiCitQQUNLQUdFQ09ORklHW1V0aWxdID0gIi1ERU5BQkxFX1VUSUw9T04sLURFTkFCTEVfVVRJTD1PRkYiCitQQUNLQUdFQ09ORklHW05ldF0gPSAiLURFTkFCTEVfTkVUPU9OLC1ERU5BQkxFX05FVD1PRkYiCitQQUNLQUdFQ09ORklHW05ldFNTTF0gPSAiLURFTkFCTEVfTkVUU1NMPU9OIC1ET1BFTlNTTF9TU0xfTElCUkFSWTpTVFJJTkc9c3NsIC1ET1BFTlNTTF9DUllQVE9fTElCUkFSWTpTVFJJTkc9Y3J5cHRvLC1ERU5BQkxFX05FVFNTTD1PRkYsb3BlbnNzbCIKK1BBQ0tBR0VDT05GSUdbQ3J5cHRvXSA9ICItREVOQUJMRV9DUllQVE89T04gLURPUEVOU1NMX1NTTF9MSUJSQVJZOlNUUklORz1zc2wgLURPUEVOU1NMX0NSWVBUT19MSUJSQVJZOlNUUklORz1jcnlwdG8sLURFTkFCTEVfQ1JZUFRPPU9GRixvcGVuc3NsIgorUEFDS0FHRUNPTkZJR1tEYXRhXSA9ICItREVOQUJMRV9EQVRBPU9OLC1ERU5BQkxFX0RBVEE9T0ZGIgorUEFDS0FHRUNPTkZJR1tEYXRhU1FMaXRlXSA9ICItREVOQUJMRV9EQVRBX1NRTElURT1PTiAtRFNRTElURTNfTElCUkFSWTpTVFJJTkc9c3FsaXRlMywtREVOQUJMRV9EQVRBX1NRTElURT1PRkYsc3FsaXRlMyIKK1BBQ0tBR0VDT05GSUdbWmlwXSA9ICItREVOQUJMRV9aSVA9T04sLURFTkFCTEVfWklQPU9GRiIKKworIyBBZGRpdGlvbmFsIGNvbXBvbmVudHMgbm90IGJ1aWxkIGJ5IGRlZmF1bHQsCisjIHRoZXkgbWlnaHQgaGF2ZSBkZXBlbmRlbmNpZXMgbm90IGluY2x1ZGVkIGluIG9lLWNvcmUKKyMgb3IgdGhleSBkb24ndCB3b3JrIG9uIGFsbCBhcmNoaXRlY3R1cmVzCitQQUNLQUdFQ09ORklHW21vZF9wb2NvXSA9ICItREVOQUJMRV9BUEFDSEVDT05ORUNUT1I9T04sLURFTkFCTEVfQVBBQ0hFQ09OTkVDVE9SPU9GRixhcHIgYXBhY2hlMiIKK1BBQ0tBR0VDT05GSUdbQ3BwUGFyc2VyXSA9ICItREVOQUJMRV9DUFBQQVJTRVI9T04sLURFTkFCTEVfQ1BQUEFSU0VSPU9GRiIKK1BBQ0tBR0VDT05GSUdbRGF0YU15U1FMXSA9ICItREVOQUJMRV9EQVRBX01ZU1FMPU9OIC1ETVlTUUxfTElCOlNUUklORz1teXNxbGNsaWVudF9yLC1ERU5BQkxFX0RBVEFfTVlTUUw9T0ZGLG1hcmlhZGIiCitQQUNLQUdFQ09ORklHW0RhdGFPREJDXSA9ICItREVOQUJMRV9EQVRBX09EQkM9T04sLURFTkFCTEVfREFUQV9PREJDPU9GRixsaWJpb2RiYyIKK1BBQ0tBR0VDT05GSUdbUGFnZUNvbXBpbGVyXSA9ICItREVOQUJMRV9QQUdFQ09NUElMRVI9T04sLURFTkFCTEVfUEFHRUNPTVBJTEVSPU9GRiIKK1BBQ0tBR0VDT05GSUdbUGFnZUNvbXBpbGVyRmlsZTJQYWdlXSA9ICItREVOQUJMRV9QQUdFQ09NUElMRVJfRklMRTJQQUdFPU9OLC1ERU5BQkxFX1BBR0VDT01QSUxFUl9GSUxFMlBBR0U9T0ZGIgorUEFDS0FHRUNPTkZJR1tTZXZlblppcF0gPSAiLURFTkFCTEVfU0VWRU5aSVA9T04sLURFTkFCTEVfU0VWRU5aSVA9T0ZGIgorCisjIE1ha2UgYSBwYWNrYWdlIGZvciBlYWNoIGxpYnJhcnkKK1BBQ0tBR0VTID0gIiR7UE59LWRiZyAke1BPQ09fUEFDS0FHRVN9IgorcHl0aG9uIF9fYW5vbnltb3VzICgpIHsKKyAgICBwYWNrYWdlcyA9IFtdCisgICAgdGVzdHJ1bm5lcnMgPSBbXQorICAgIGNvbXBvbmVudHMgPSBkLmdldFZhcigiUEFDS0FHRUNPTkZJRyIpLnNwbGl0KCkKKyAgICBjb21wb25lbnRzLmFwcGVuZCgiRm91bmRhdGlvbiIpCisgICAgZm9yIGxpYiBpbiBjb21wb25lbnRzOgorICAgICAgICBwa2cgPSAoInBvY28tJXMiICUgbGliLmxvd2VyKCkpLnJlcGxhY2UoIl8iLCIiKQorICAgICAgICBwYWNrYWdlcy5hcHBlbmQocGtnKQorICAgICAgICBpZiBub3QgZC5nZXRWYXIoIkZJTEVTXyVzIiAlIHBrZyk6CisgICAgICAgICAgICBkLnNldFZhcigiRklMRVNfJXMiICUgcGtnLCAiJHtsaWJkaXJ9L2xpYlBvY28lcy5zby4qIiAlIGxpYikKKyAgICAgICAgdGVzdHJ1bm5lcnMuYXBwZW5kKCIlcyIgJSBsaWIpCisKKyAgICBkLnNldFZhcigiUE9DT19QQUNLQUdFUyIsICIgIi5qb2luKHBhY2thZ2VzKSkKKyAgICBkLnNldFZhcigiUE9DT19URVNUUlVOTkVSUyIsICJcbiIuam9pbih0ZXN0cnVubmVycykpCit9CisKKyMgInBvY28iIGlzIGEgbWV0YXBhY2thZ2Ugd2hpY2ggcHVsbHMgaW4gYWxsIFBvY28gY29tcG9uZW50cworUEFDS0FHRVMgKz0gIiR7UE59IgorUlJFQ09NTUVORFNfJHtQTn0gKz0gIiR7UE9DT19QQUNLQUdFU30iCitSUkVDT01NRU5EU18ke1BOfV9jbGFzcy1uYXRpdmUgPSAiIgorQUxMT1dfRU1QVFlfJHtQTn0gPSAiMSIKKworIyAtZGV2IGxhc3QgdG8gcGljayB1cCB0aGUgcmVtYWluaW5nIHN0dWZmCitQQUNLQUdFUyArPSAiJHtQTn0tZGV2ICR7UE59LXN0YXRpY2RldiIKK0ZJTEVTXyR7UE59LWRldiA9ICIke2luY2x1ZGVkaXJ9ICR7bGliZGlyfS9saWJQb2NvKi5zbyAke2xpYmRpcn0vY21ha2UiCitGSUxFU18ke1BOfS1zdGF0aWNkZXYgPSAiJHtsaWJkaXJ9L2xpYlBvY28qLmEiCisKKyMgcHRlc3Qgc3VwcG9ydAorRklMRVNfJHtQTn0tZGJnICs9ICIke1BURVNUX1BBVEh9L2Jpbi8uZGVidWciCisKKyMgY3BwdW5pdCBpcyBvbmx5IGJ1aWx0IGlmIHRlc3RzIGFyZSBlbmFibGVkCitQQUNLQUdFUyArPSAiJHtQTn0tY3BwdW5pdCIKK0ZJTEVTXyR7UE59LWNwcHVuaXQgKz0gIiR7bGliZGlyfS9saWJDcHBVbml0LnNvKiIKK0FMTE9XX0VNUFRZXyR7UE59LWNwcHVuaXQgPSAiMSIKKworUkRFUEVORFNfJHtQTn0tcHRlc3QgKz0gIiR7UE59LWNwcHVuaXQiCisKK2RvX2luc3RhbGxfcHRlc3QgKCkgeworICAgICAgIGNwIC1yZiAke0J9L2Jpbi8gJHtEfSR7UFRFU1RfUEFUSH0KKyAgICAgICBjcCAtZiAke0J9L2xpYi9saWJDcHBVbml0LnNvKiAke0R9JHtsaWJkaXJ9CisgICAgICAgY3AgLXJmICR7Qn0vKi90ZXN0c3VpdGUvZGF0YSAke0R9JHtQVEVTVF9QQVRIfS9iaW4vCisgICAgICAgZmluZCAiJHtEfSR7UFRFU1RfUEFUSH0iIC1leGVjdXRhYmxlIC1leGVjIGNocnBhdGggLWQge30gXDsKKyAgICAgICBlY2hvICIke1BPQ09fVEVTVFJVTk5FUlN9IiA+ICIke0R9JHtQVEVTVF9QQVRIfS90ZXN0cnVubmVycyIKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyLWRhdGFfMC40LjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlci1kYXRhXzAuNC43LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTMwYTQ4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyLWRhdGFfMC40LjcuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1TVU1NQVJZID0gIkVuY29kaW5nIGZpbGVzIGZvciBQb3BwbGVyIgotREVTQ1JJUFRJT04gPSAiRW5jb2RpbmcgZmlsZXMgZm9yIHVzZSB3aXRoIHBvcHBsZXIgdGhhdCBlbmFibGUgcG9wcGxlciB0byBcCi0gICAgICAgICAgICAgICBjb3JyZWN0bHkgcmVuZGVyIENKSyBhbmQgQ3lycmlsaWMuIgotTElDRU5TRSA9ICJCU0QgJiBHUEx2MiAmIEdQTHYzKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTQ4NzBiOTgzNDNmMGJiYjI1ZmE0M2I5ZDJiYTU5NDQ4IFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuYWRvYmU7bWQ1PTYzYzZhOGE5ZGYyMDRjMDA0NjFmYTVmMTYzZDhhNjYzIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuZ3BsMjttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUgXAotIgotCi1pbmhlcml0IGFsbGFyY2gKLQotSU5ISUJJVF9ERUZBVUxUX0RFUFMgPSAiMSIKLQotQ01BUF9SRVNPVVJDRVNfQkFTRSA9ICJodHRwczovL2dpdGh1Yi5jb20vYWRvYmUtdHlwZS10b29scy9jbWFwLXJlc291cmNlcy9yYXcvMDU2MWViY2EwMzU4MTNlZDA0YzM0ODViY2E2MzZhMGFhN2FiZGMxZC9jbWFwcmVzb3VyY2VzX2lkZW50aXR5LTAvQ01hcCIKLQotU1JDX1VSSSA9ICJodHRwOi8vcG9wcGxlci5mcmVlZGVza3RvcC5vcmcvJHtCUH0udGFyLmd6IFwKLSAgICAgICAgICAgJHtDTUFQX1JFU09VUkNFU19CQVNFfS9JZGVudGl0eS1IO25hbWU9aWRoIFwKLSAgICAgICAgICAgJHtDTUFQX1JFU09VUkNFU19CQVNFfS9JZGVudGl0eS1WO25hbWU9aWR2IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNjM2YThmMmI5ZjZkZjllN2NlZDhlYzA5NDY5NjFlYWYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTc1MmIwZDg4YTdhYmE1NDU3NDE1MjE0M2U3YmY3NjQzNmE3ZWY1MTk3N2M1NWQ2YmQ5YTQ4ZGNjZGUzYTdkZSIKLVNSQ19VUklbaWRoLm1kNXN1bV0gPSAiMDA5YzkzY2YwMTQxYWI3YmQ2YWNiN2VlYTE0MzA2Y2MiCi1TUkNfVVJJW2lkaC5zaGEyNTZzdW1dID0gImFlNzAyYzIwM2E4MmVhMTI0ZTliOTY1OTBmODIxZGI2ZmJmODc1NGUyYzQ1NDdhOWRiYTBlODJmOTQ3MzllOTUiCi1TUkNfVVJJW2lkdi5tZDVzdW1dID0gIjJmMzJhNDVkNDNkMDAxYzI2ZWVhYzZiODc4ODU1ZmJmIgotU1JDX1VSSVtpZHYuc2hhMjU2c3VtXSA9ICI4OWE4NWRhZjcwMzFlOTNjODgzZTc2YjkxNjhhMjI2ZGZkNTg1YmY1NTA2ZTllMTk1Njc3MjE2M2YxNWNiMDgyIgotCi1kb19jb21waWxlKCkgewotfQotCi1kb19pbnN0YWxsKCkgewotICAgIG9lX3J1bm1ha2UgaW5zdGFsbCBERVNURElSPSR7RH0gcHJlZml4PSR7cHJlZml4fSBkYXRhZGlyPSR7ZGF0YWRpcn0KLSAgICBpbnN0YWxsIC1kICR7RH0ke2RhdGFkaXJ9L3BvcHBsZXIvY01hcAotICAgIGluc3RhbGwgLW02NDQgJHtXT1JLRElSfS9JZGVudGl0eS0qICR7RH0ke2RhdGFkaXJ9L3BvcHBsZXIvY01hcC8KLX0KLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlci1kYXRhXzAuNC44LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXItZGF0YV8wLjQuOC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDNiNmRiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXItZGF0YV8wLjQuOC5iYgpAQCAtMCwwICsxLDM2IEBACitTVU1NQVJZID0gIkVuY29kaW5nIGZpbGVzIGZvciBQb3BwbGVyIgorREVTQ1JJUFRJT04gPSAiRW5jb2RpbmcgZmlsZXMgZm9yIHVzZSB3aXRoIHBvcHBsZXIgdGhhdCBlbmFibGUgcG9wcGxlciB0byBcCisgICAgICAgICAgICAgICBjb3JyZWN0bHkgcmVuZGVyIENKSyBhbmQgQ3lycmlsaWMuIgorTElDRU5TRSA9ICJCU0QgJiBHUEx2MiAmIEdQTHYzKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTQ4NzBiOTgzNDNmMGJiYjI1ZmE0M2I5ZDJiYTU5NDQ4IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuYWRvYmU7bWQ1PTYzYzZhOGE5ZGYyMDRjMDA0NjFmYTVmMTYzZDhhNjYzIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuZ3BsMjttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUgXAorIgorCitpbmhlcml0IGFsbGFyY2gKKworSU5ISUJJVF9ERUZBVUxUX0RFUFMgPSAiMSIKKworQ01BUF9SRVNPVVJDRVNfQkFTRSA9ICJodHRwczovL2dpdGh1Yi5jb20vYWRvYmUtdHlwZS10b29scy9jbWFwLXJlc291cmNlcy9yYXcvMDU2MWViY2EwMzU4MTNlZDA0YzM0ODViY2E2MzZhMGFhN2FiZGMxZC9jbWFwcmVzb3VyY2VzX2lkZW50aXR5LTAvQ01hcCIKKworU1JDX1VSSSA9ICJodHRwOi8vcG9wcGxlci5mcmVlZGVza3RvcC5vcmcvJHtCUH0udGFyLmd6IFwKKyAgICAgICAgICAgJHtDTUFQX1JFU09VUkNFU19CQVNFfS9JZGVudGl0eS1IO25hbWU9aWRoIFwKKyAgICAgICAgICAgJHtDTUFQX1JFU09VUkNFU19CQVNFfS9JZGVudGl0eS1WO25hbWU9aWR2IgorCitTUkNfVVJJW21kNXN1bV0gPSAiMDBmODk4OWM4MDRkZTg0YWYwYmEyZWE2Mjk5NDk5ODAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTA5NmExODE2MWYyNjNjY2NkYzZkOGEyZWI1NTQ4YzQxZmY4ZmNmOWEzNjA5MjQzZjFiNjI5NmFiZGY3Mjg3MiIKK1NSQ19VUklbaWRoLm1kNXN1bV0gPSAiMDA5YzkzY2YwMTQxYWI3YmQ2YWNiN2VlYTE0MzA2Y2MiCitTUkNfVVJJW2lkaC5zaGEyNTZzdW1dID0gImFlNzAyYzIwM2E4MmVhMTI0ZTliOTY1OTBmODIxZGI2ZmJmODc1NGUyYzQ1NDdhOWRiYTBlODJmOTQ3MzllOTUiCitTUkNfVVJJW2lkdi5tZDVzdW1dID0gIjJmMzJhNDVkNDNkMDAxYzI2ZWVhYzZiODc4ODU1ZmJmIgorU1JDX1VSSVtpZHYuc2hhMjU2c3VtXSA9ICI4OWE4NWRhZjcwMzFlOTNjODgzZTc2YjkxNjhhMjI2ZGZkNTg1YmY1NTA2ZTllMTk1Njc3MjE2M2YxNWNiMDgyIgorCitkb19jb21waWxlKCkgeworfQorCitkb19pbnN0YWxsKCkgeworICAgIG9lX3J1bm1ha2UgaW5zdGFsbCBERVNURElSPSR7RH0gcHJlZml4PSR7cHJlZml4fSBkYXRhZGlyPSR7ZGF0YWRpcn0KKyAgICBpbnN0YWxsIC1kICR7RH0ke2RhdGFkaXJ9L3BvcHBsZXIvY01hcAorICAgIGluc3RhbGwgLW02NDQgJHtXT1JLRElSfS9JZGVudGl0eS0qICR7RH0ke2RhdGFkaXJ9L3BvcHBsZXIvY01hcC8KK30KKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlci8wMDAxLURvLW5vdC1vdmVyd3JpdGUtYWxsLW91ci1idWlsZC1mbGFncy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyLzAwMDEtRG8tbm90LW92ZXJ3cml0ZS1hbGwtb3VyLWJ1aWxkLWZsYWdzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4ZjUwODUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlci8wMDAxLURvLW5vdC1vdmVyd3JpdGUtYWxsLW91ci1idWlsZC1mbGFncy5wYXRjaApAQCAtMCwwICsxLDM4IEBACitGcm9tIGI2ZmM2YzM2ZDM1OWE1MDUwMzEzOGNkODdkNzE0N2ZhZjZkZmY4OTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogU2F0LCAxNyBNYXIgMjAxOCAyMDo1MjoxMCArMDEwMAorU3ViamVjdDogW1BBVENIXSBEbyBub3Qgb3ZlcndyaXRlIGFsbCBvdXIgYnVpbGQgZmxhZ3MKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KKworU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KKy0tLQorIGNtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jvcy5jbWFrZSB8IDQgKystLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jbWFrZS9tb2R1bGVzL1BvcHBsZXJNYWNyb3MuY21ha2UgYi9jbWFrZS9tb2R1bGVzL1BvcHBsZXJNYWNyb3MuY21ha2UKK2luZGV4IGNjYjI3OTAuLjBmMzkyY2IgMTAwNjQ0CistLS0gYS9jbWFrZS9tb2R1bGVzL1BvcHBsZXJNYWNyb3MuY21ha2UKKysrKyBiL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jvcy5jbWFrZQorQEAgLTEyNSwxNCArMTI1LDE0IEBAIGlmKENNQUtFX0NPTVBJTEVSX0lTX0dOVUNYWCkKKyAgIHNldChERUZBVUxUX0NPTVBJTEVfV0FSTklOR1NfRVhUUkEgIiR7X3dhcm59ICR7X3dhcm54fSIpCisgCisgICBzZXQoX3NhdmVfY3h4ZmxhZ3MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSIpCistICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICAgICAgICAgICAgICAgICItZm5vLWV4Y2VwdGlvbnMgLWZuby1jaGVjay1uZXcgLWZuby1jb21tb24gLURfREVGQVVMVF9TT1VSQ0UiKQorKyAgc2V0KENNQUtFX0NYWF9GTEFHUyAgICAgICAgICAgICAgICAiLWZuby1leGNlcHRpb25zIC1mbm8tY2hlY2stbmV3IC1mbm8tY29tbW9uIC1EX0RFRkFVTFRfU09VUkNFICR7X3NhdmVfY3h4ZmxhZ3N9IikKKyAgIHNldChDTUFLRV9DWFhfRkxBR1NfUkVMV0lUSERFQklORk8gIi1PMiAtZyAke19zYXZlX2N4eGZsYWdzfSIpCisgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTX1JFTEVBU0UgICAgICAgICItTzIgLUROREVCVUcgJHtfc2F2ZV9jeHhmbGFnc30iKQorICAgc2V0KENNQUtFX0NYWF9GTEFHU19ERUJVRyAgICAgICAgICAiLWcgLU8yIC1mbm8tcmVvcmRlci1ibG9ja3MgLWZuby1zY2hlZHVsZS1pbnNucyAtZm5vLWlubGluZSAke19zYXZlX2N4eGZsYWdzfSIpCisgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTX0RFQlVHRlVMTCAgICAgICItZzMgLWZuby1pbmxpbmUgJHtfc2F2ZV9jeHhmbGFnc30iKQorICAgc2V0KENNQUtFX0NYWF9GTEFHU19QUk9GSUxFICAgICAgICAiLWczIC1mbm8taW5saW5lIC1mdGVzdC1jb3ZlcmFnZSAtZnByb2ZpbGUtYXJjcyAke19zYXZlX2N4eGZsYWdzfSIpCisgICBzZXQoX3NhdmVfY2ZsYWdzICIke0NNQUtFX0NfRkxBR1N9IikKKy0gIHNldChDTUFLRV9DX0ZMQUdTICAgICAgICAgICAgICAgICAgIi1zdGQ9Yzk5IC1EX0RFRkFVTFRfU09VUkNFIikKKysgIHNldChDTUFLRV9DX0ZMQUdTICAgICAgICAgICAgICAgICAgIi1zdGQ9Yzk5IC1EX0RFRkFVTFRfU09VUkNFICR7X3NhdmVfY2ZsYWdzfSIpCisgICBzZXQoQ01BS0VfQ19GTEFHU19SRUxXSVRIREVCSU5GTyAgICItTzIgLWcgJHtfc2F2ZV9jZmxhZ3N9IikKKyAgIHNldChDTUFLRV9DX0ZMQUdTX1JFTEVBU0UgICAgICAgICAgIi1PMiAtRE5ERUJVRyAke19zYXZlX2NmbGFnc30iKQorICAgc2V0KENNQUtFX0NfRkxBR1NfREVCVUcgICAgICAgICAgICAiLWcgLU8yIC1mbm8tcmVvcmRlci1ibG9ja3MgLWZuby1zY2hlZHVsZS1pbnNucyAtZm5vLWlubGluZSAke19zYXZlX2NmbGFnc30iKQorLS0gCisyLjE0LjMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyLzAwMDEtYWRkLW1hbmFkYXRvcnktb3B0aW9ucy10by1maW5kLXF0NC1xdDUtbW9jLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXIvMDAwMS1hZGQtbWFuYWRhdG9yeS1vcHRpb25zLXRvLWZpbmQtcXQ0LXF0NS1tb2MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlODBkMjQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXIvMDAwMS1hZGQtbWFuYWRhdG9yeS1vcHRpb25zLXRvLWZpbmQtcXQ0LXF0NS1tb2MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi1Gcm9tIDkxYjYyNzVmMGU5MWMyNWJlYjA0MGI0ZWY5NDg0MDUzYWUzMDVkODYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDI2IE1heSAyMDE1IDEyOjQ1OjQ3ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGFkZCBtYW5hZGF0b3J5IG9wdGlvbnMgdG8gZmluZCBxdDQvcXQ1IG1vYwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIHNwZWNpZmljXQotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci0tLS0KLSBjb25maWd1cmUuYWMgfCA1NSArKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IGM0Y2ZjMmMuLjhlOTYxYzcgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTcxMiwyNSArNzEyLDEwIEBAIEFDX1NVQlNUKFBPUFBMRVJfUVQ0X0xJQlMpCi0gQUNfU1VCU1QoUE9QUExFUl9RVDRfVEVTVF9MSUJTKQotIAotIGlmIHRlc3QgeCRlbmFibGVfcG9wcGxlcl9xdDQgPSB4eWVzOyB0aGVuCi0tICBBQ19DSEVDS19UT09MKE1PQ1FUNCwgbW9jKQotLSAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgUXQ0IG1vY10pCi0tICBtb2N2ZXJzaW9uPWAkTU9DUVQ0IC12IDI+JjFgCi0tICBtb2N2ZXJzaW9uZ3JlcD1gZWNobyAkbW9jdmVyc2lvbiB8IGdyZXAgIlF0IDQiYAotLSAgaWYgdGVzdCB4IiRtb2N2ZXJzaW9uZ3JlcCIgIT0geCIkbW9jdmVyc2lvbiI7IHRoZW4KLS0gICAgQUNfTVNHX1JFU1VMVChbbm9dKQotLSAgICAjIG1vYyB3YXMgbm90IHRoZSBxdDQgb25lLCB0cnkgd2l0aCBtb2MtcXQ0Ci0tICAgIEFDX0NIRUNLX1RPT0woTU9DUVQ0MiwgbW9jLXF0NCkKLS0gICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgUXQ0IG1vYy1xdDRdKQotLSAgICBtb2N2ZXJzaW9uPWAkTU9DUVQ0MiAtdiAyPiYxYAotLSAgICBtb2N2ZXJzaW9uZ3JlcD1gZWNobyAkbW9jdmVyc2lvbiB8IGdyZXAgIlF0IDQiYAotLSAgICBpZiB0ZXN0IHgiJG1vY3ZlcnNpb25ncmVwIiAhPSB4IiRtb2N2ZXJzaW9uIjsgdGhlbgotLSAgICAgICMgbm8gdmFsaWQgbW9jIGZvdW5kCi0tICAgICAgZW5hYmxlX3BvcHBsZXJfcXQ0PW5vOwotLSAgICAgIE1PQ1FUND0ibm90IGZvdW5kIgotLSAgICBlbHNlCi0tICAgICAgTU9DUVQ0PSRNT0NRVDQyCi0tICAgIGZpCi0tICBmaQotKyAgQUNfQVJHX1dJVEgoW21vYy1xdDRdLAotKyAgICAgICAgICAgICAgQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1tb2MtcXQ0XSwgW1NldCBsb2NhdGlvbiBvZiBxdDQgbW9jXSksCi0rICAgICAgICAgICAgICBbTU9DUVQ0PSR3aXRodmFsXQotKyAgKQotICAgQUNfU1VCU1QoTU9DUVQ0KQotICAgQUNfTVNHX1JFU1VMVChbJE1PQ1FUNF0pCi0gZmkKLUBAIC03NjksMzQgKzc1NCwxMCBAQCBBQ19TVUJTVChQT1BQTEVSX1FUNV9MSUJTKQotIEFDX1NVQlNUKFBPUFBMRVJfUVQ1X1RFU1RfTElCUykKLSAKLSBpZiB0ZXN0IHgkZW5hYmxlX3BvcHBsZXJfcXQ1ID0geHllczsgdGhlbgotLSAgQUNfQ0hFQ0tfVE9PTChNT0NRVDUsIG1vYykKLS0gIEFDX01TR19DSEVDS0lORyhbZm9yIFF0NSBtb2NdKQotLSAgbW9jdmVyc2lvbj1gJE1PQ1FUNSAtdiAyPiYxYAotLSAgbW9jdmVyc2lvbmdyZXA9YGVjaG8gJG1vY3ZlcnNpb24gfCBncmVwIC1FICJRdCA1fG1vYyA1ImAKLS0gIGlmIHRlc3QgeCIkbW9jdmVyc2lvbmdyZXAiICE9IHgiJG1vY3ZlcnNpb24iOyB0aGVuCi0tICAgIEFDX01TR19SRVNVTFQoW25vXSkKLS0gICAgIyBtb2Mgd2FzIG5vdCB0aGUgcXQ1IG9uZSwgdHJ5IHdpdGggbW9jLXF0NQotLSAgICBBQ19DSEVDS19UT09MKE1PQ1FUNTIsIG1vYy1xdDUpCi0tICAgIEFDX01TR19DSEVDS0lORyhbZm9yIFF0NSBtb2MtcXQ1XSkKLS0gICAgbW9jdmVyc2lvbj1gJE1PQ1FUNTIgLXYgMj4mMWAKLS0gICAgbW9jdmVyc2lvbmdyZXA9YGVjaG8gJG1vY3ZlcnNpb24gfCBncmVwIC1FICJRdCA1fG1vYy1xdDUgNXxtb2MgNSJgCi0tICAgIGlmIHRlc3QgeCIkbW9jdmVyc2lvbmdyZXAiICE9IHgiJG1vY3ZlcnNpb24iOyB0aGVuCi0tICAgICAgQUNfQ0hFQ0tfVE9PTChRVENIT09TRVIsIHF0Y2hvb3NlcikKLS0gICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBxdGNob29zZXJdKQotLSAgICAgIHF0NXRvb2xkaXI9YFFUX1NFTEVDVD1xdDUgcXRjaG9vc2VyIC1wcmludC1lbnYgfCBncmVwIFFUVE9PTERJUiB8IGN1dCAtZCAnPScgLWYgMiB8IGN1dCAtZCBcIiAtZiAyYAotLSAgICAgIG1vY3ZlcnNpb249YCRxdDV0b29sZGlyL21vYyAtdiAyPiYxYAotLSAgICAgIG1vY3ZlcnNpb25ncmVwPWBlY2hvICRtb2N2ZXJzaW9uIHwgZ3JlcCAtRSAiUXQgNXxtb2MgNSJgCi0tICAgICAgaWYgdGVzdCB4IiRtb2N2ZXJzaW9uZ3JlcCIgIT0geCIkbW9jdmVyc2lvbiI7IHRoZW4KLS0gICAgICAgICMgbm8gdmFsaWQgbW9jIGZvdW5kCi0tICAgICAgICBlbmFibGVfcG9wcGxlcl9xdDU9bm87Ci0tICAgICAgICBNT0NRVDU9Im5vdCBmb3VuZCIKLS0gICAgICBlbHNlCi0tICAgICAgICBNT0NRVDU9JHF0NXRvb2xkaXIvbW9jCi0tICAgICAgZmkKLS0gICAgZWxzZQotLSAgICAgIE1PQ1FUNT0kTU9DUVQ1MgotLSAgICBmaQotLSAgZmkKLSsgIEFDX0FSR19XSVRIKFttb2MtcXQ1XSwKLSsgICAgICAgICAgICAgIEFTX0hFTFBfU1RSSU5HKFstLXdpdGgtbW9jLXF0NV0sIFtTZXQgbG9jYXRpb24gb2YgcXQ1IG1vY10pLAotKyAgICAgICAgICAgICAgW01PQ1FUNT0kd2l0aHZhbF0KLSsgICkKLSAgIEFDX1NVQlNUKE1PQ1FUNSkKLSAgIEFDX01TR19SRVNVTFQoWyRNT0NRVDVdKQotIGZpCi0tLSAKLTIuNS41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyLzAwMDItQ2Fpcm9PdXRwdXREZXYuY2MtZml4LWJ1aWxkLWVycm9yLXdoZW4tdXNpbmctZml4ZWRwby5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyLzAwMDItQ2Fpcm9PdXRwdXREZXYuY2MtZml4LWJ1aWxkLWVycm9yLXdoZW4tdXNpbmctZml4ZWRwby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzIzMWZlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXIvMDAwMi1DYWlyb091dHB1dERldi5jYy1maXgtYnVpbGQtZXJyb3Itd2hlbi11c2luZy1maXhlZHBvLnBhdGNoCkBAIC0wLDAgKzEsMTAwIEBACitGcm9tIDYyODc2NjNlN2RiMDRkZjdlNmRlYzU4YTFmYzViYjVkNTEwZThiZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorRGF0ZTogTW9uLCA5IEFwciAyMDE4IDE5OjExOjIwICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIENhaXJvT3V0cHV0RGV2LmNjOiBmaXggYnVpbGQgZXJyb3Igd2hlbiB1c2luZyBmaXhlZHBvaW50CitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0ZpeGVzOgorfCA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3BvcHBsZXItMC42My4wL3BvcHBsZXIvQ2Fpcm9PdXRwdXREZXYuY2M6IEluIGZ1bmN0aW9uICdpbnQgc3BsYXNoUm91bmQoU3BsYXNoQ29vcmQpJzoKK3wgPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9wb3BwbGVyLTAuNjMuMC9wb3BwbGVyL0NhaXJvT3V0cHV0RGV2LmNjOjE2MDQ6Mjg6IGVycm9yOiBjYWxsIG9mIG92ZXJsb2FkZWQgJ2Zsb29yKEZpeGVkUG9pbnQpJyBpcyBhbWJpZ3VvdXMKK3wgICAgcmV0dXJuIChpbnQpZmxvb3IoeCArIDAuNSk7Cit8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCit8IEluIGZpbGUgaW5jbHVkZWQgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3JlY2lwZS1zeXNyb290L3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmg6NDI4OjAsCit8ICAgICAgICAgICAgICAgICAgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3JlY2lwZS1zeXNyb290L3Vzci9pbmNsdWRlL2MrKy83LjMuMC9hcm0tb2UtbGludXgtZ251ZWFiaS9iaXRzL29zX2RlZmluZXMuaDozOSwKK3wgICAgICAgICAgICAgICAgICBmcm9tIDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvYysrLzcuMy4wL2FybS1vZS1saW51eC1nbnVlYWJpL2JpdHMvYysrY29uZmlnLmg6NTMzLAorfCAgICAgICAgICAgICAgICAgIGZyb20gPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9jKysvNy4zLjAvY3N0ZGludDozOCwKK3wgICAgICAgICAgICAgICAgICBmcm9tIDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcG9wcGxlci0wLjYzLjAvcG9wcGxlci9DYWlyb091dHB1dERldi5jYzo0NDoKK3wgPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9iaXRzL21hdGhjYWxscy5oOjE2NToxOiBub3RlOiBjYW5kaWRhdGU6IGRvdWJsZSBmbG9vcihkb3VibGUpCit8ICBfX01BVEhDQUxMWCAoZmxvb3IsLCAoX01kb3VibGVfIF9feCksIChfX2NvbnN0X18pKTsKK3wgIF4KK3wgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvYysrLzcuMy4wL21hdGguaDozNjowLAorfCAgICAgICAgICAgICAgICAgIGZyb20gPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9wb3BwbGVyLTAuNjMuMC9wb3BwbGVyL0NhaXJvT3V0cHV0RGV2LmNjOjQ2OgorfCA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3JlY2lwZS1zeXNyb290L3Vzci9pbmNsdWRlL2MrKy83LjMuMC9jbWF0aDoyNjA6Mzogbm90ZTogY2FuZGlkYXRlOiBjb25zdGV4cHIgZmxvYXQgc3RkOjpmbG9vcihmbG9hdCkKK3wgICAgZmxvb3IoZmxvYXQgX194KQorfCAgICBefn5+fgorfCA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3JlY2lwZS1zeXNyb290L3Vzci9pbmNsdWRlL2MrKy83LjMuMC9jbWF0aDoyNjQ6Mzogbm90ZTogY2FuZGlkYXRlOiBjb25zdGV4cHIgbG9uZyBkb3VibGUgc3RkOjpmbG9vcihsb25nIGRvdWJsZSkKK3wgICAgZmxvb3IobG9uZyBkb3VibGUgX194KQorfCAgICBefn5+fgorfCA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3BvcHBsZXItMC42My4wL3BvcHBsZXIvQ2Fpcm9PdXRwdXREZXYuY2M6IEluIGZ1bmN0aW9uICdpbnQgc3BsYXNoQ2VpbChTcGxhc2hDb29yZCknOgorfCA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3BvcHBsZXItMC42My4wL3BvcHBsZXIvQ2Fpcm9PdXRwdXREZXYuY2M6MTYwODoyMTogZXJyb3I6IGNhbGwgb2Ygb3ZlcmxvYWRlZCAnY2VpbChTcGxhc2hDb29yZCYpJyBpcyBhbWJpZ3VvdXMKK3wgICAgcmV0dXJuIChpbnQpY2VpbCh4KTsKK3wgICAgICAgICAgICAgICAgICAgICAgXgorfCBJbiBmaWxlIGluY2x1ZGVkIGZyb20gPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9mZWF0dXJlcy5oOjQyODowLAorfCAgICAgICAgICAgICAgICAgIGZyb20gPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9jKysvNy4zLjAvYXJtLW9lLWxpbnV4LWdudWVhYmkvYml0cy9vc19kZWZpbmVzLmg6MzksCit8ICAgICAgICAgICAgICAgICAgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3JlY2lwZS1zeXNyb290L3Vzci9pbmNsdWRlL2MrKy83LjMuMC9hcm0tb2UtbGludXgtZ251ZWFiaS9iaXRzL2MrK2NvbmZpZy5oOjUzMywKK3wgICAgICAgICAgICAgICAgICBmcm9tIDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvYysrLzcuMy4wL2NzdGRpbnQ6MzgsCit8ICAgICAgICAgICAgICAgICAgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3BvcHBsZXItMC42My4wL3BvcHBsZXIvQ2Fpcm9PdXRwdXREZXYuY2M6NDQ6Cit8IDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvYml0cy9tYXRoY2FsbHMuaDoxNTk6MTogbm90ZTogY2FuZGlkYXRlOiBkb3VibGUgY2VpbChkb3VibGUpCit8ICBfX01BVEhDQUxMWCAoY2VpbCwsIChfTWRvdWJsZV8gX194KSwgKF9fY29uc3RfXykpOworfCAgXgorfCBJbiBmaWxlIGluY2x1ZGVkIGZyb20gPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9jKysvNy4zLjAvbWF0aC5oOjM2OjAsCit8ICAgICAgICAgICAgICAgICAgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3BvcHBsZXItMC42My4wL3BvcHBsZXIvQ2Fpcm9PdXRwdXREZXYuY2M6NDY6Cit8IDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvYysrLzcuMy4wL2NtYXRoOjE2NTozOiBub3RlOiBjYW5kaWRhdGU6IGNvbnN0ZXhwciBmbG9hdCBzdGQ6OmNlaWwoZmxvYXQpCit8ICAgIGNlaWwoZmxvYXQgX194KQorfCAgICBefn5+Cit8IDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvYysrLzcuMy4wL2NtYXRoOjE2OTozOiBub3RlOiBjYW5kaWRhdGU6IGNvbnN0ZXhwciBsb25nIGRvdWJsZSBzdGQ6OmNlaWwobG9uZyBkb3VibGUpCit8ICAgIGNlaWwobG9uZyBkb3VibGUgX194KQorfCAgICBefn5+Cit8IDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcG9wcGxlci0wLjYzLjAvcG9wcGxlci9DYWlyb091dHB1dERldi5jYzogSW4gZnVuY3Rpb24gJ2ludCBzcGxhc2hGbG9vcihTcGxhc2hDb29yZCknOgorfCA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3BvcHBsZXItMC42My4wL3BvcHBsZXIvQ2Fpcm9PdXRwdXREZXYuY2M6MTYxMjoyMjogZXJyb3I6IGNhbGwgb2Ygb3ZlcmxvYWRlZCAnZmxvb3IoU3BsYXNoQ29vcmQmKScgaXMgYW1iaWd1b3VzCit8ICAgIHJldHVybiAoaW50KWZsb29yKHgpOworfCAgICAgICAgICAgICAgICAgICAgICAgXgorfCBJbiBmaWxlIGluY2x1ZGVkIGZyb20gPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9mZWF0dXJlcy5oOjQyODowLAorfCAgICAgICAgICAgICAgICAgIGZyb20gPHRtcGRpcj4vb2UtY29yZS1nbGliYy93b3JrL2FybXY1dGUtb2UtbGludXgtZ251ZWFiaS9wb3BwbGVyLzAuNjMuMC1yMC9yZWNpcGUtc3lzcm9vdC91c3IvaW5jbHVkZS9jKysvNy4zLjAvYXJtLW9lLWxpbnV4LWdudWVhYmkvYml0cy9vc19kZWZpbmVzLmg6MzksCit8ICAgICAgICAgICAgICAgICAgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3JlY2lwZS1zeXNyb290L3Vzci9pbmNsdWRlL2MrKy83LjMuMC9hcm0tb2UtbGludXgtZ251ZWFiaS9iaXRzL2MrK2NvbmZpZy5oOjUzMywKK3wgICAgICAgICAgICAgICAgICBmcm9tIDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvYysrLzcuMy4wL2NzdGRpbnQ6MzgsCit8ICAgICAgICAgICAgICAgICAgZnJvbSA8dG1wZGlyPi9vZS1jb3JlLWdsaWJjL3dvcmsvYXJtdjV0ZS1vZS1saW51eC1nbnVlYWJpL3BvcHBsZXIvMC42My4wLXIwL3BvcHBsZXItMC42My4wL3BvcHBsZXIvQ2Fpcm9PdXRwdXREZXYuY2M6NDQ6Cit8IDx0bXBkaXI+L29lLWNvcmUtZ2xpYmMvd29yay9hcm12NXRlLW9lLWxpbnV4LWdudWVhYmkvcG9wcGxlci8wLjYzLjAtcjAvcmVjaXBlLXN5c3Jvb3QvdXNyL2luY2x1ZGUvYml0cy9tYXRoY2FsbHMuaDoxNjU6MTogbm90ZTogY2FuZGlkYXRlOiBkb3VibGUgZmxvb3IoZG91YmxlKQorCitTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ21haWwuY29tPgorLS0tCisgcG9wcGxlci9DYWlyb091dHB1dERldi5jYyB8IDEyICsrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9wb3BwbGVyL0NhaXJvT3V0cHV0RGV2LmNjIGIvcG9wcGxlci9DYWlyb091dHB1dERldi5jYworaW5kZXggMTgxMjRiOGYuLjRjODVhZDY1IDEwMDY0NAorLS0tIGEvcG9wcGxlci9DYWlyb091dHB1dERldi5jYworKysrIGIvcG9wcGxlci9DYWlyb091dHB1dERldi5jYworQEAgLTE2MDIsMTUgKzE2MDIsMjcgQEAgdm9pZCBDYWlyb091dHB1dERldjo6ZW5kQWN0dWFsVGV4dChHZnhTdGF0ZSAqc3RhdGUpCisgfQorIAorIHN0YXRpYyBpbmxpbmUgaW50IHNwbGFzaFJvdW5kKFNwbGFzaENvb3JkIHgpIHsKKysjaWYgZGVmaW5lZChVU0VfRklYRURQT0lOVCkKKysgIHJldHVybiBGaXhlZFBvaW50OjpmbG9vcih4ICsgMC41KTsKKysjZWxzZQorICAgcmV0dXJuIChpbnQpZmxvb3IoeCArIDAuNSk7CisrI2VuZGlmCisgfQorIAorIHN0YXRpYyBpbmxpbmUgaW50IHNwbGFzaENlaWwoU3BsYXNoQ29vcmQgeCkgeworKyNpZiBkZWZpbmVkKFVTRV9GSVhFRFBPSU5UKQorKyAgcmV0dXJuIEZpeGVkUG9pbnQ6OmNlaWwoeCk7CisrI2Vsc2UKKyAgIHJldHVybiAoaW50KWNlaWwoeCk7CisrI2VuZGlmCisgfQorIAorIHN0YXRpYyBpbmxpbmUgaW50IHNwbGFzaEZsb29yKFNwbGFzaENvb3JkIHgpIHsKKysjaWYgZGVmaW5lZChVU0VfRklYRURQT0lOVCkKKysgIHJldHVybiBGaXhlZFBvaW50OjpmbG9vcih4KTsKKysjZWxzZQorICAgcmV0dXJuIChpbnQpZmxvb3IoeCk7CisrI2VuZGlmCisgfQorIAorIHN0YXRpYworLS0gCisyLjE0LjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXIvMDAwMi1maXgtZ2NjLTYtbWF0aC1hbWJpZ3VvdXMtZXJyb3JzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXIvMDAwMi1maXgtZ2NjLTYtbWF0aC1hbWJpZ3VvdXMtZXJyb3JzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MDYwMDlmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9wcGxlci9wb3BwbGVyLzAwMDItZml4LWdjYy02LW1hdGgtYW1iaWd1b3VzLWVycm9ycy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBwb3BwbGVyLTAuNDUuMC9wb3BwbGVyL0NhaXJvT3V0cHV0RGV2LmNjLm9yaWcJMjAxNi0wNi0xNyAxNDoyMzozNS4zOTkwODM5MjkgLTA0MDAKLSsrKyBwb3BwbGVyLTAuNDUuMC9wb3BwbGVyL0NhaXJvT3V0cHV0RGV2LmNjCTIwMTYtMDYtMTcgMTQ6MzY6NTMuMzUxMDk3ODI1IC0wNDAwCi1AQCAtNDIsNyArNDIsNyBAQAotICNlbmRpZgotIAotICNpbmNsdWRlIDxzdHJpbmcuaD4KLS0jaW5jbHVkZSA8bWF0aC5oPgotKyNpbmNsdWRlIDxjbWF0aD4KLSAjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0gI2luY2x1ZGUgPGNhaXJvLmg+Ci0gCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlcl8wLjU3LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlcl8wLjU3LjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzYjc3YWEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXJfMC41Ny4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotU1VNTUFSWSA9ICJQb3BwbGVyIGlzIGEgUERGIHJlbmRlcmluZyBsaWJyYXJ5IGJhc2VkIG9uIHRoZSB4cGRmLTMuMCBjb2RlIGJhc2UiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCi0KLVNSQ19VUkkgPSAiIFwKLSAgICBodHRwOi8vcG9wcGxlci5mcmVlZGVza3RvcC5vcmcvJHtCUH0udGFyLnh6IFwKLSAgICBmaWxlOi8vMDAwMS1hZGQtbWFuYWRhdG9yeS1vcHRpb25zLXRvLWZpbmQtcXQ0LXF0NS1tb2MucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAyLWZpeC1nY2MtNi1tYXRoLWFtYmlndW91cy1lcnJvcnMucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gImJjNWExOTE3NDE2MDQ1NTJjOTBkNDg0MTAzMjI5Mzc0IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjBlYTM3ZGU3MWI3ZGI3ODIxMmViYzc5ZGY1OWY5OWI2NjQwOWEyOWMyZWFjNGQ4ODJkYWU5ZjIzOTdmZTQ0ZDgiCi0KLURFUEVORFMgPSAiZm9udGNvbmZpZyB6bGliIGNhaXJvIGxjbXMiCi0KLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBndGstZG9jIGdvYmplY3QtaW50cm9zcGVjdGlvbgotCi1QQUNLQUdFQ09ORklHID8/PSAianBlZyBvcGVuanBlZyBwbmcgdGlmZiBuc3MgJHtAYmIudXRpbHMuY29udGFpbnMoJ0JCRklMRV9DT0xMRUNUSU9OUycsICdxdDUtbGF5ZXInLCAncXQ1JywgJycsIGQpfSIKLVBBQ0tBR0VDT05GSUdbanBlZ10gPSAiLS1lbmFibGUtZGN0ZGVjb2Rlcj1saWJqcGVnLC0tZW5hYmxlLWRjdGRlY29kZXI9bm9uZSxqcGVnIgotUEFDS0FHRUNPTkZJR1twbmddID0gIi0tZW5hYmxlLWxpYnBuZywtLWRpc2FibGUtbGlicG5nLGxpYnBuZyIKLVBBQ0tBR0VDT05GSUdbdGlmZl0gPSAiLS1lbmFibGUtbGlidGlmZiwtLWRpc2FibGUtbGlidGlmZix0aWZmIgotUEFDS0FHRUNPTkZJR1tjdXJsXSA9ICItLWVuYWJsZS1saWJjdXJsLC0tZGlzYWJsZS1saWJjdXJsLGN1cmwiCi1QQUNLQUdFQ09ORklHW29wZW5qcGVnXSA9ICItLWVuYWJsZS1saWJvcGVuanBlZz1vcGVuanBlZzIsLS1kaXNhYmxlLWxpYm9wZW5qcGVnLG9wZW5qcGVnIgotUEFDS0FHRUNPTkZJR1txdDVdID0gIi0tZW5hYmxlLXBvcHBsZXItcXQ1IC0td2l0aC1tb2MtcXQ1PSR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9xdDUvbW9jLC0tZGlzYWJsZS1wb3BwbGVyLXF0NSxxdGJhc2UgcXR0b29scy1uYXRpdmUiCi1QQUNLQUdFQ09ORklHW3F0NGVdID0gIi0tZW5hYmxlLXBvcHBsZXItcXQ0IC0td2l0aC1tb2MtcXQ0PSR7U1RBR0lOR19CSU5ESVJfTkFUSVZFfS9tb2M0LC0tZGlzYWJsZS1wb3BwbGVyLXF0NCxxdDQtZW1iZWRkZWQiCi1QQUNLQUdFQ09ORklHW25zc10gPSAiLS1lbmFibGUtbGlibnNzLC0tZGlzYWJsZS1saWJuc3MsbnNzIgotCi1TRUNVUklUWV9DRkxBR1MgPSAiJHtTRUNVUklUWV9OT19QSUVfQ0ZMQUdTfSIKLQotRVhUUkFfT0VDT05GID0gIlwKLSAgICAtLWVuYWJsZS14cGRmLWhlYWRlcnMgXAotICAgIC0tZGlzYWJsZS1ndGstdGVzdCBcCi0gICAgLS1lbmFibGUtemxpYiBcCi0iCi0KLWRvX2NvbXBpbGVfcHJlcGVuZCgpIHsKLSAgICBleHBvcnQgR0lSX0VYVFJBX0xJQlNfUEFUSD0iJHtCfS9wb3BwbGVyLy5saWJzIgotfQotCi0jIEFkanVzdCBsaWJyYXJ5IG5hbWVzIHdoZW4gYnVpbGRpbmcgZm9yIFFUNGUKLVFUNEVfUEFUQ0hFUyA9ICIke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdxdDRlJywgJ2ZpbGU6Ly9maXgtcXQ0ZS1saWJyYXJ5LWRlcGVuZGVuY2llcy5wYXRjaCcsICcnLCBkKX0iCi1TUkNfVVJJX2FwcGVuZCA9ICIke1FUNEVfUEFUQ0hFU30iCi0KLSMgY2hlY2sgZm9yIFRBUkdFVF9GUFU9c29mdCBhbmQgaW5mb3JtIGNvbmZpZ3VyZSBvZiB0aGUgcmVzdWx0IHNvIGl0IGNhbiBkaXNhYmxlIHNvbWUgZmxvYXRpbmcgcG9pbnRzCi1kZWYgZ2V0X3BvcHBsZXJfZnB1X3NldHRpbmcoYmIsIGQpOgotICAgIGlmIGQuZ2V0VmFyKCdUQVJHRVRfRlBVJykgaW4gWyAnc29mdCcgXToKLSAgICAgICAgcmV0dXJuICItLWVuYWJsZS1maXhlZHBvaW50IgotICAgIHJldHVybiAiIgotCi1FWFRSQV9PRUNPTkYgKz0gIiR7QGdldF9wb3BwbGVyX2ZwdV9zZXR0aW5nKGJiLCBkKX0iCi0KLVBBQ0tBR0VTID0rICJsaWJwb3BwbGVyIGxpYnBvcHBsZXItZ2xpYiIKLUZJTEVTX2xpYnBvcHBsZXIgPSAiJHtsaWJkaXJ9L2xpYnBvcHBsZXIuc28uKiIKLUZJTEVTX2xpYnBvcHBsZXItZ2xpYiA9ICIke2xpYmRpcn0vbGlicG9wcGxlci1nbGliLnNvLioiCi0KLVJERVBFTkRTX2xpYnBvcHBsZXIgPSAicG9wcGxlci1kYXRhIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXJfMC42My4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3BwbGVyL3BvcHBsZXJfMC42My4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhY2IzNTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3BvcHBsZXIvcG9wcGxlcl8wLjYzLjAuYmIKQEAgLTAsMCArMSw1NiBAQAorU1VNTUFSWSA9ICJQb3BwbGVyIGlzIGEgUERGIHJlbmRlcmluZyBsaWJyYXJ5IGJhc2VkIG9uIHRoZSB4cGRmLTMuMCBjb2RlIGJhc2UiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzUxNDE5MjYwYWE5NTQ0OTlmN2FiYWFiYWE4ODJiYmUiCisKK1NSQ19VUkkgPSAiIFwKKyAgICBodHRwOi8vcG9wcGxlci5mcmVlZGVza3RvcC5vcmcvJHtCUH0udGFyLnh6IFwKKyAgICBmaWxlOi8vMDAwMS1Eby1ub3Qtb3ZlcndyaXRlLWFsbC1vdXItYnVpbGQtZmxhZ3MucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAyLUNhaXJvT3V0cHV0RGV2LmNjLWZpeC1idWlsZC1lcnJvci13aGVuLXVzaW5nLWZpeGVkcG8ucGF0Y2ggXAorIgorU1JDX1VSSVttZDVzdW1dID0gIjY2YTU0ZGE0ODk2YjE0MDg2MTE2OTlmZWRhNWMxODIxIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjI3Y2M4YWRkYWZjNzkxZTFhMjZjZTZhY2MyYjQ5MDkyNmVhNzNhNGY4OTE5NmRkOGE3NzQyY2ZmN2NmOGExMTEiCisKK0RFUEVORFMgPSAiZm9udGNvbmZpZyB6bGliIGNhaXJvIGxjbXMiCisKK2luaGVyaXQgY21ha2UgcGtnY29uZmlnIGdvYmplY3QtaW50cm9zcGVjdGlvbgorCitQQUNLQUdFQ09ORklHID8/PSAianBlZyBvcGVuanBlZyBwbmcgdGlmZiBuc3MgJHtAYmIudXRpbHMuY29udGFpbnMoJ0JCRklMRV9DT0xMRUNUSU9OUycsICdxdDUtbGF5ZXInLCAncXQ1JywgJycsIGQpfSIKK1BBQ0tBR0VDT05GSUdbanBlZ10gPSAiLURXSVRIX0pQRUc9T04gLURFTkFCTEVfRENUREVDT0RFUj1saWJqcGVnLC1EV0lUSF9KUEVHPU9GRiAtREVOQUJMRV9EQ1RERUNPREVSPW5vbmUsanBlZyIKK1BBQ0tBR0VDT05GSUdbcG5nXSA9ICItRFdJVEhfUE5HPU9OLC1EV0lUSF9QTkc9T0ZGLGxpYnBuZyIKK1BBQ0tBR0VDT05GSUdbdGlmZl0gPSAiLURXSVRIX1RJRkY9T04sLURXSVRIX1RJRkY9T0ZGLHRpZmYiCitQQUNLQUdFQ09ORklHW2N1cmxdID0gIi1ERU5BQkxFX0xJQkNVUkw9T04sLURFTkFCTEVfTElCQ1VSTD1PRkYsY3VybCIKK1BBQ0tBR0VDT05GSUdbb3BlbmpwZWddID0gIi1ERU5BQkxFX0xJQk9QRU5KUEVHPW9wZW5qcGVnMiwtREVOQUJMRV9MSUJPUEVOSlBFRz1ub25lLG9wZW5qcGVnIgorUEFDS0FHRUNPTkZJR1txdDVdID0gIi1ERU5BQkxFX1FUNT1PTiwtREVOQUJMRV9RVDU9T0ZGLHF0YmFzZSBxdHRvb2xzLW5hdGl2ZSIKK1BBQ0tBR0VDT05GSUdbbnNzXSA9ICItRFdJVEhfTlNTMz1PTiwtRFdJVEhfTlNTMz1PRkYsbnNzIgorCisjIHN1cnByaXNlIC0gZGlkIG5vdCBleHBlY3QgdGhpcyB0byB3b3JrIDopCitpbmhlcml0ICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3F0NScsICdjbWFrZV9xdDUnLCAnJywgZCl9CisKK1NFQ1VSSVRZX0NGTEFHUyA9ICIke1NFQ1VSSVRZX05PX1BJRV9DRkxBR1N9IgorCitFWFRSQV9PRUNNQUtFICs9ICIgXAorICAgIC1ERU5BQkxFX1hQREZfSEVBREVSUz1PTiBcCisgICAgLURCVUlMRF9HVEtfVEVTVFM9T0ZGIFwKKyAgICAtREVOQUJMRV9aTElCPU9OIFwKKyIKKworZG9fY29uZmlndXJlX2FwcGVuZCgpIHsKKyAgICAjIHBvcHBsZXIgbWFjcm8gdXNlcyBwa2ctY29uZmlnIHRvIGNoZWNrIGZvciBnLWlyIHJ1bnRpbWVzLiBTb21ldGhpbmcKKyAgICAjIG1ha2VzIHRoZW0gcG9pbnQgdG8gL3Vzci9iaW4uIEFsaWduIHRoZW0gdG8gc3lzcm9vdCAtIHRoYXQncyB3aGVyZSB0aGUKKyAgICAjIGdpdC13cmFwcGVycyBhcmU6CisgICAgc2VkIC1pICdzOiAke2JpbmRpcn0vZy1pcjogJHtTVEFHSU5HX0JJTkRJUn0vZy1pcjonICR7Qn0vYnVpbGQubmluamEKK30KKworIyBjaGVjayBmb3IgVEFSR0VUX0ZQVT1zb2Z0IGFuZCBpbmZvcm0gY29uZmlndXJlIG9mIHRoZSByZXN1bHQgc28gaXQgY2FuIGRpc2FibGUgc29tZSBmbG9hdGluZyBwb2ludHMKK2RlZiBnZXRfcG9wcGxlcl9mcHVfc2V0dGluZyhiYiwgZCk6CisgICAgaWYgZC5nZXRWYXIoJ1RBUkdFVF9GUFUnKSBpbiBbICdzb2Z0JyBdOgorICAgICAgICByZXR1cm4gIi1EVVNFX0ZJWEVEUE9JTlQ9T04iCisgICAgcmV0dXJuICIiCisKK0VYVFJBX09FQ01BS0UgKz0gIiR7QGdldF9wb3BwbGVyX2ZwdV9zZXR0aW5nKGJiLCBkKX0iCisKK1BBQ0tBR0VTID0rICJsaWJwb3BwbGVyIGxpYnBvcHBsZXItZ2xpYiIKK0ZJTEVTX2xpYnBvcHBsZXIgPSAiJHtsaWJkaXJ9L2xpYnBvcHBsZXIuc28uKiIKK0ZJTEVTX2xpYnBvcHBsZXItZ2xpYiA9ICIke2xpYmRpcn0vbGlicG9wcGxlci1nbGliLnNvLioiCisKK1JERVBFTkRTX2xpYnBvcHBsZXIgPSAicG9wcGxlci1kYXRhIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzLzAwMDEtVXNlLXBrZy1jb25maWctZm9yLWxpYnhtbDItZGV0ZWN0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzLzAwMDEtVXNlLXBrZy1jb25maWctZm9yLWxpYnhtbDItZGV0ZWN0aW9uLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDhlYzZhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9maWxlcy8wMDAxLVVzZS1wa2ctY29uZmlnLWZvci1saWJ4bWwyLWRldGVjdGlvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLUZyb20gZDUyZTMzMGJlODk1YmI4YzVmMGZiM2UyODg0NzY2YWNiZDk0MmE4NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBoaWxpcCBCYWxpc3RlciA8cGhpbGlwQGJhbGlzdGVyLm9yZz4KLURhdGU6IFR1ZSwgMSBKdWwgMjAxNCAwOTo0MDo0NCAtMDQwMAotU3ViamVjdDogW1BBVENIXSBVc2UgcGtnLWNvbmZpZyBmb3IgbGlieG1sMiBkZXRlY3Rpb24uCi0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLQoteG1sMi1jb25maWcgZG9lcyBub3Qgd29yay4gVXNlIHBrZ2NvbmZpZyB0byBzZXQgQ1BQRkxBR1MgYW5kIExJQlMuCi0KLVNpZ25lZC1vZmYtYnk6IFBoaWxpcCBCYWxpc3RlciA8cGhpbGlwQGJhbGlzdGVyLm9yZz4KLS0tLQotIGNvbmZpZ3VyZS5pbiB8IDE1ICsrLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCi1pbmRleCBmOGJmNDY2Li4xZjRmYWJmIDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmluCi0rKysgYi9jb25maWd1cmUuaW4KLUBAIC03MzQsMTkgKzczNCw4IEBAIFBHQUNfQVJHX0JPT0wod2l0aCwgbGlieG1sLCBubywgW2J1aWxkIHdpdGggWE1MIHN1cHBvcnRdLAotICAgICAgICAgICAgICAgW0FDX0RFRklORShbVVNFX0xJQlhNTF0sIDEsIFtEZWZpbmUgdG8gMSB0byBidWlsZCB3aXRoIFhNTCBzdXBwb3J0LiAoLS13aXRoLWxpYnhtbCldKV0pCi0gCi0gaWYgdGVzdCAiJHdpdGhfbGlieG1sIiA9IHllcyA7IHRoZW4KLS0gIEFDX0NIRUNLX1BST0dTKFhNTDJfQ09ORklHLCB4bWwyLWNvbmZpZykKLS0gIGlmIHRlc3QgLW4gIiRYTUwyX0NPTkZJRyI7IHRoZW4KLS0gICAgZm9yIHBnYWNfb3B0aW9uIGluIGAkWE1MMl9DT05GSUcgLS1jZmxhZ3NgOyBkbwotLSAgICAgIGNhc2UgJHBnYWNfb3B0aW9uIGluCi0tICAgICAgICAtSSp8LUQqKSBDUFBGTEFHUz0iJENQUEZMQUdTICRwZ2FjX29wdGlvbiI7OwotLSAgICAgIGVzYWMKLS0gICAgZG9uZQotLSAgICBmb3IgcGdhY19vcHRpb24gaW4gYCRYTUwyX0NPTkZJRyAtLWxpYnNgOyBkbwotLSAgICAgIGNhc2UgJHBnYWNfb3B0aW9uIGluCi0tICAgICAgICAtTCopIExERkxBR1M9IiRMREZMQUdTICRwZ2FjX29wdGlvbiI7OwotLSAgICAgIGVzYWMKLS0gICAgZG9uZQotLSAgZmkKLSsgIENQUEZMQUdTPSIkQ1BQRkxBR1MgYHBrZy1jb25maWcgLS1zaG9ydC1lcnJvcnMgLS1wcmludC1lcnJvcnMgLS1jZmxhZ3MgImxpYnhtbC0yLjAiIDI+JjFgIgotKyAgTElCUz0iYHBrZy1jb25maWcgLS1zaG9ydC1lcnJvcnMgLS1wcmludC1lcnJvcnMgLS1saWJzICJsaWJ4bWwtMi4wIiAyPiYxYCAkTElCUyIKLSBmaQotIAotIEFDX1NVQlNUKHdpdGhfbGlieG1sKQotLS0gCi0xLjguMy4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9maWxlcy9ub3QtY2hlY2stbGlicGVybC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9maWxlcy9ub3QtY2hlY2stbGlicGVybC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTE5OWYzOS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Bvc3RncmVzcWwvZmlsZXMvbm90LWNoZWNrLWxpYnBlcmwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1bUEFUQ0hdIG5vdCBjaGVjayBsaWJwZXJsIHVuZGVyIGNyb3NzIGNvbXBpbGluZwotCi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCi0KLWxpYnBlcmwgbGRmbGFncyByZXR1cm5lZCBieSBQR0FDX0NIRUNLX1BFUkxfRU1CRURfTERGTEFHUyBhcmUgbmF0aXZlLAotY2FuIG5vdCBiZSB1c2VkIHRvIGNoZWNrIHRhcmdldCBsaWJyYXJ5LgotCi1wb3N0cHJlc3FsIGhhcyB0aGUgZGVwZW5kZW5jeSBvbiBwZXJsLCBzbyBub3QgbmVlZCB0byBjaGVjayBsaWJwZXJsCi1hZ2FpbiwgbGlrZSBpbiBwb3N0Z3Jlc3FsLTkuMi40IAotCi1TaWduZWQtb2ZmLWJ5OiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBjb25maWd1cmUuaW4gfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KLWluZGV4IGFlMWE1YTAuLjlhMDk3MGQgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuaW4KLSsrKyBiL2NvbmZpZ3VyZS5pbgotQEAgLTE4NzcsNyArMTg3Nyw3IEBAIGlmIHRlc3QgIiR3aXRoX3RjbCIgPSB5ZXM7IHRoZW4KLSBmaQotIAotICMgY2hlY2sgZm9yIDxwZXJsLmg+Ci0taWYgdGVzdCAiJHdpdGhfcGVybCIgPSB5ZXM7IHRoZW4KLStpZiB0ZXN0ICIkd2l0aF9wZXJsIiA9IHllcyAmJiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IG5vOyB0aGVuCi0gICBhY19zYXZlX0NQUEZMQUdTPSRDUFBGTEFHUwotICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRwZXJsX2FyY2hsaWJleHAvQ09SRSIKLSAgIEFDX0NIRUNLX0hFQURFUihwZXJsLmgsIFtdLCBbQUNfTVNHX0VSUk9SKFtoZWFkZXIgZmlsZSA8cGVybC5oPiBpcyByZXF1aXJlZCBmb3IgUGVybF0pXSwKLS0tIAotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL3JlbW92ZS5hdXRvY29uZi52ZXJzaW9uLmNoZWNrLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL2ZpbGVzL3JlbW92ZS5hdXRvY29uZi52ZXJzaW9uLmNoZWNrLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTIzZmQ0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9maWxlcy9yZW1vdmUuYXV0b2NvbmYudmVyc2lvbi5jaGVjay5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLUluZGV4OiBwb3N0Z3Jlc3FsLTkuMi40L2NvbmZpZ3VyZS5pbgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHBvc3RncmVzcWwtOS4yLjQub3JpZy9jb25maWd1cmUuaW4KLSsrKyBwb3N0Z3Jlc3FsLTkuMi40L2NvbmZpZ3VyZS5pbgotQEAgLTE5LDEwICsxOSw2IEBAIG00X3BhdHRlcm5fZm9yYmlkKF5QR0FDXylkbmwgdG8gY2F0Y2ggdW4KLSAKLSBBQ19JTklUKFtQb3N0Z3JlU1FMXSwgWzkuNC4yXSwgW3Bnc3FsLWJ1Z3NAcG9zdGdyZXNxbC5vcmddKQotIAotLW00X2lmKG00X2RlZm4oW200X1BBQ0tBR0VfVkVSU0lPTl0pLCBbMi42OV0sIFtdLCBbbTRfZmF0YWwoW0F1dG9jb25mIHZlcnNpb24gMi42OSBpcyByZXF1aXJlZC4KLS1VbnRlc3RlZCBjb21iaW5hdGlvbnMgb2YgJ2F1dG9jb25mJyBhbmQgUG9zdGdyZVNRTCB2ZXJzaW9ucyBhcmUgbm90Ci0tcmVjb21tZW5kZWQuICBZb3UgY2FuIHJlbW92ZSB0aGUgY2hlY2sgZnJvbSAnY29uZmlndXJlLmluJyBidXQgaXQgaXMgdGhlbgotLXlvdXIgcmVzcG9uc2liaWxpdHkgd2hldGhlciB0aGUgcmVzdWx0IHdvcmtzIG9yIG5vdC5dKV0pCi0gQUNfQ09QWVJJR0hUKFtDb3B5cmlnaHQgKGMpIDE5OTYtMjAxNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXBdKQotIEFDX0NPTkZJR19TUkNESVIoW3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vaGVhcHR1cGxlLmNdKQotIEFDX0NPTkZJR19BVVhfRElSKGNvbmZpZykKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL3Bvc3RncmVzcWxfOS40LjE1LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9wb3N0Z3Jlc3FsL3Bvc3RncmVzcWxfOS40LjE1LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZWMwOTlhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvcG9zdGdyZXNxbC9wb3N0Z3Jlc3FsXzkuNC4xNS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLXJlcXVpcmUgcG9zdGdyZXNxbC5pbmMKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWVJJR0hUO21kNT04MWI2OWRkYjMxYThiZTY2YmFhZmQxNGE5MDE0NmVlMiIKLQotU1JDX1VSSSArPSAiXAotICAgIGZpbGU6Ly9yZW1vdmUuYXV0b2NvbmYudmVyc2lvbi5jaGVjay5wYXRjaCBcCi0gICAgZmlsZTovL25vdC1jaGVjay1saWJwZXJsLnBhdGNoIFwKLSIKLQotZG9fY29tcGlsZV9wcmVwZW5kX2xpYmMtbXVzbCgpIHsKLSAgICBzZWQgLWkgLWUgJ3MvXC1sbnNsLy9nJyAke0J9L3NyYy9NYWtlZmlsZS5nbG9iYWwKLX0KLQotU1JDX1VSSVttZDVzdW1dID0gIjBhYWRhMDgzM2E5MjA4YWU1ZmFiOTY2YzczYzM5Mzc5IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjEyYmZiM2M3ZThlNDU1MTVlZjkyMWFkMzY1ZTEyMjY4MmE1YzQ5MzVkY2MwMDMyNjQ0NDMzYWYyZGUzMWFjYzQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3NvY2kvc29jaV8zLjIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc29jaS9zb2NpXzMuMi4yLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZjVhNDg1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc29jaS9zb2NpXzMuMi4yLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTUgS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLSMgUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIChzZWUgQ09QWUlORy5NSVQgZm9yIHRoZSB0ZXJtcykKLQotREVTQ1JJUFRJT04gPSAiVGhlIEMrKyBEYXRhYmFzZSBBY2Nlc3MgTGlicmFyeSIKLUhPTUVQQUdFID0gImh0dHA6Ly9zb2NpLnNvdXJjZWZvcmdlLm5ldCIKLUxJQ0VOU0UgPSAiQlNMLTEuMCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0VfMV8wLnR4dDttZDU9ZTQyMjRjY2FlY2IxNGQ5NDJjNzFkMzFiZWYyMGQ3OGMiCi1TRUNUSU9OID0gImxpYnMiCi1ERVBFTkRTID0gImJvb3N0IgotCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3Byb2plY3QvJHtCUE59LyR7QlBOfS8ke0JQfS8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vc29jaV9saWJkaXIucGF0Y2ggXAotICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICJiYzNjMzVmNmNkM2Y4MGExYmUxOWZlMzBiM2MxMTFiZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIzMGVhMmY0ZDI2NjM5ZWY1YjVjZGMyNGZiMzAwYjM4OTY3NDYyNDNkYmI3N2I3NDM1ODJkZTJmZjQ0M2NjYjFjIgotCi1URVNUQ09ORklHID0gJy1EU09DSV9URVNUX0VNUFRZX0NPTk5TVFI9ImR1bW15IiAtRFNPQ0lfVEVTVF9TUUxJVEUzX0NPTk5TVFI9InRlc3QuZGIiIFwKLSAgICAgICAgICAgICAgLURTT0NJX1RFU1RfUE9TVEdSRVNRTF9DT05OU1RSOlNUUklORz0iZGJuYW1lPXNvY2lfdGVzdCIgXAotICAgICAgICAgICAgICAtRFNPQ0lfVEVTVF9NWVNRTF9DT05OU1RSOlNUUklORz0iZGI9c29jaV90ZXN0IHVzZXI9b2UgcGFzc3dvcmQ9b2UiJwotCi1PQkFTRURJUiA/PSAiL29wdC9vcmFjbGUiCi1PSU5DRElSID0gInJkYm1zL3B1YmxpYyIKLU9MSUJESVIgPSAibGliIgotCi1QQUNLQUdFQ09ORklHW3NxbGl0ZTNdID0gIi1EU09DSV9TUUxJVEUzPU9OLC1EU09DSV9TUUxJVEUzPU9GRixzcWxpdGUzLCIKLVBBQ0tBR0VDT05GSUdbbXlzcWxdID0gIi1EU09DSV9NWVNRTD1PTiwtRFNPQ0lfTVlTUUw9T0ZGLG1hcmlhZGIsIgotUEFDS0FHRUNPTkZJR1twb3N0Z3Jlc3FsXSA9ICItRFNPQ0lfUE9TVEdSRVNRTD1PTiwtRFNPQ0lfUE9TVEdSRVNRTD1PRkYscG9zdGdyZXNxbCwiCi1QQUNLQUdFQ09ORklHW29kYmNdID0gIi1EU09DSV9PREJDPU9OLC1EU09DSV9PREJDPU9GRiwsIgotUEFDS0FHRUNPTkZJR1tlbXB0eV0gPSAiLURTT0NJX0VNUFRZPU9OLC1EU09DSV9FTVBUWT1PRkYsLCIKLVBBQ0tBR0VDT05GSUdbb3JhY2xlXSA9ICItRFdJVEhfT1JBQ0xFPU9OIC0td2l0aC1vcmFjbGUtaW5jbHVkZT0ke09JTkNESVJ9IC0td2l0aC1vcmFjbGUtbGliPSR7T0xJQkRJUn0sLURXSVRIX09SQUNMRT1PRkYsLCIKLVBBQ0tBR0VDT05GSUdbcHRlc3RdID0gIiR7VEVTVENPTkZJR30sLCwiCi0KLSMgZW5hYmxlIHlvdXIgYmFja2VuZCBieSBkZWZhdWx0IHdlIGVuYWJsZSAnZW1wdHknCi1QQUNLQUdFQ09ORklHID8/PSAiZW1wdHkiCi0KLSMgVGFrZSB0aGUgZmxhZ3MgYWRkZWQgYnkgUEFDS0FHRUNPTkZJRyBhbmQgcGFzcyB0aGVtIHRvIGNtYWtlLgotRVhUUkFfT0VDTUFLRSA9ICIke0VYVFJBX09FQ09ORn0gLURTT0NJX0xJQkRJUj0ke2xpYmRpcn0iCi1ESVNBQkxFX1NUQVRJQyA9ICIiCi0KLWluaGVyaXQgY21ha2UKLQotUEFDS0FHRVMgKz0gIiR7UE59LXNxbGl0ZTMgJHtQTn0tbXlzcWwgJHtQTn0tcG9zdGdyZXNxbCAke1BOfS1vZGJjICR7UE59LW9yYWNsZSIKLQotRklMRVNfJHtQTn0tc3FsaXRlMyA9ICIke2xpYmRpcn0vbGliJHtCUE59X3NxbGl0ZTMuc28uKiIKLUZJTEVTXyR7UE59LW15c3FsID0gIiR7bGliZGlyfS9saWIke0JQTn1fbXlzcWwuc28uKiIKLUZJTEVTXyR7UE59LXBvc3RncmVzcWwgPSAiJHtsaWJkaXJ9L2xpYiR7QlBOfV9wb3N0Z3Jlc3FsLnNvLioiCi1GSUxFU18ke1BOfS1vZGJjID0gIiR7bGliZGlyfS9saWIke0JQTn1fb2RiYy5zby4qIgotRklMRVNfJHtQTn0tb3JhY2xlID0gIiR7bGliZGlyfS9saWIke0JQTn1fb3JhY2xlLnNvLioiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3NwaXRvb2xzL3NwaXRvb2xzX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3BpdG9vbHMvc3BpdG9vbHNfZ2l0LmJiCmluZGV4IGY4MDgxMjUuLjNmNmNkYzYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3BpdG9vbHMvc3BpdG9vbHNfZ2l0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3BpdG9vbHMvc3BpdG9vbHNfZ2l0LmJiCkBAIC00LDExICs0LDE2IEBACiBMSUNFTlNFPSJHUEx2MiIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PThjMTY2NjZhZTZjMTU5ODc2YTBiYTYzMDk5NjE0MzgxIgogCitQUiA9ICJyMCIKKworQlBWID0gIjAuOC4xIgorUFYgPSAiJHtCUFZ9IgorU1JDUkVWID0gIjMxOGJjYWU1MjQ5NzIyODczYmY1OGIyN2FmZGQyMDQ3M2M3MDQ3Y2MiCisKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKIFNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9jcGItL3NwaS10b29scy5naXQ7cHJvdG9jb2w9Z2l0IgogCi1TUkNSRVYgPSAiMDM0MDVhYjQ1ODg0ZTQyNjRkZmEwMzcxYzAzMmIyYmFhZWVhYWE5OCIKIAogaW5oZXJpdCBhdXRvdG9vbHMKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zeXNsb2ctbmcvZmlsZXMvRml4LXRoZS1tZW1vcnktbGVhay1wcm9ibGVtLXdoZW4tSEFWRV9FTlZJUk9OLWRlZmluZWQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9maWxlcy9GaXgtdGhlLW1lbW9yeS1sZWFrLXByb2JsZW0td2hlbi1IQVZFX0VOVklST04tZGVmaW5lZC5wYXRjaAppbmRleCAyYWM5YzBiLi41ZDQ4MWYyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9maWxlcy9GaXgtdGhlLW1lbW9yeS1sZWFrLXByb2JsZW0td2hlbi1IQVZFX0VOVklST04tZGVmaW5lZC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9maWxlcy9GaXgtdGhlLW1lbW9yeS1sZWFrLXByb2JsZW0td2hlbi1IQVZFX0VOVklST04tZGVmaW5lZC5wYXRjaApAQCAtNCw5ICs0LDExIEBACiAKIFNpZ25lZC1vZmYtYnk6IFh1ZmVuZyBaaGFuZyA8eHVmZW5nLnpoYW5nQHdpbmRyaXZlci5jb20+CiAtLS0KLS0tLSBhL2xpYi9ncHJvY2Vzcy5jCi0rKysgYi9saWIvZ3Byb2Nlc3MuYwotQEAgLTE0MjEsNiArMTQyMSwxOCBAQAorSW5kZXg6IHN5c2xvZy1uZy0zLjguMS9saWIvZ3Byb2Nlc3MuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHN5c2xvZy1uZy0zLjguMS5vcmlnL2xpYi9ncHJvY2Vzcy5jCisrKysgc3lzbG9nLW5nLTMuOC4xL2xpYi9ncHJvY2Vzcy5jCitAQCAtMTQzMiw2ICsxNDMyLDE4IEBAIGdfcHJvY2Vzc19zdGFydHVwX29rKHZvaWQpCiAgdm9pZAogIGdfcHJvY2Vzc19maW5pc2godm9pZCkKICB7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9maWxlcy9jb25maWd1cmUuYWMtYWRkLW9wdGlvbi1lbmFibGUtdGhyZWFkLXRscy10by1tYW5hZ2UtLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zeXNsb2ctbmcvZmlsZXMvY29uZmlndXJlLmFjLWFkZC1vcHRpb24tZW5hYmxlLXRocmVhZC10bHMtdG8tbWFuYWdlLS5wYXRjaAppbmRleCBjYzhkMTEwLi5jMTcyZTRlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9maWxlcy9jb25maWd1cmUuYWMtYWRkLW9wdGlvbi1lbmFibGUtdGhyZWFkLXRscy10by1tYW5hZ2UtLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3lzbG9nLW5nL2ZpbGVzL2NvbmZpZ3VyZS5hYy1hZGQtb3B0aW9uLWVuYWJsZS10aHJlYWQtdGxzLXRvLW1hbmFnZS0ucGF0Y2gKQEAgLTEwLDEzICsxMCwxMyBAQAogIGNvbmZpZ3VyZS5hYyB8IDE3ICsrKysrKysrKysrLS0tLS0tCiAgMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCiAKLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDQ3NGUwOTQuLmNlZGNhNTQgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTEyMCw2ICsxMjAsOSBAQCBBQ19BUkdfRU5BQkxFKG1lbXRyYWNlLAotIEFDX0FSR19FTkFCTEUoc3NsLAotICAgICAgICAgICAgICAgWyAgLS1lbmFibGUtc3NsICAgICAgICBFbmFibGUgU1NMIHN1cHBvcnQuXSwsZW5hYmxlX3NzbD0iYXV0byIpCitJbmRleDogc3lzbG9nLW5nLTMuOC4xL2NvbmZpZ3VyZS5hYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHN5c2xvZy1uZy0zLjguMS5vcmlnL2NvbmZpZ3VyZS5hYworKysrIHN5c2xvZy1uZy0zLjguMS9jb25maWd1cmUuYWMKK0BAIC0xNDcsNiArMTQ3LDkgQEAgQUNfQVJHX0VOQUJMRShncHJvZiwKKyBBQ19BUkdfRU5BQkxFKG1lbXRyYWNlLAorICAgICAgICAgICAgICAgWyAgLS1lbmFibGUtbWVtdHJhY2UgICBFbmFibGUgYWx0ZXJuYXRpdmUgbGVhayBkZWJ1Z2dpbmcgY29kZS5dKQogIAogK0FDX0FSR19FTkFCTEUodGhyZWFkLXRscywKICsgICAgICAgICAgICAgIFsgIC0tZW5hYmxlLXRocmVhZC10bHMgICAgICAgIEVuYWJsZSBUaHJlYWQgVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IHN1cHBvcnQuXSwsZW5hYmxlX3RocmVhZF90bHM9Im5vIikKQEAgLTI0LDcgKzI0LDcgQEAKICBBQ19BUkdfRU5BQkxFKGR5bmFtaWMtbGlua2luZywKICAgICAgICAgICAgICAgIFsgIC0tZW5hYmxlLWR5bmFtaWMtbGlua2luZyAgICAgICAgTGluayBldmVyeXRoaW5nIGR5bmFtaWNhbGx5Ll0sLGVuYWJsZV9keW5hbWljX2xpbmtpbmc9ImF1dG8iKQogIAotQEAgLTM4MSwxMiArMzg0LDE0IEBAIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKK0BAIC00ODYsMTIgKzQ4OSwxNCBAQCBkbmwgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgZG5sIElzIHRoZSBfX3RocmVhZCBrZXl3b3JkIGF2YWlsYWJsZT8KICBkbmwgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgCkBAIC00NSw2ICs0NSwzIEBACiAgCiAgZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogIGRubCBIb3cgdG8gZG8gc3RhdGljIGxpbmtpbmc/Ci0tLSAKLTEuOS4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3lzbG9nLW5nL2ZpbGVzL2ZpeC1jb25maWctbGlibmV0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zeXNsb2ctbmcvZmlsZXMvZml4LWNvbmZpZy1saWJuZXQucGF0Y2gKaW5kZXggNzU1ODAzYy4uNTUzZjRhNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zeXNsb2ctbmcvZmlsZXMvZml4LWNvbmZpZy1saWJuZXQucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zeXNsb2ctbmcvZmlsZXMvZml4LWNvbmZpZy1saWJuZXQucGF0Y2gKQEAgLTEwLDExICsxMCwxMSBAQAogIGNvbmZpZ3VyZS5hYyB8ICAgMjcgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiAgMSBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggYjFlMThiNC4uOGUxMzAyNSAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNzMsNiArNzMsOSBAQCBBQ19DT05GSUdfSEVBREVSUyhjb25maWcuaCkKK0luZGV4OiBzeXNsb2ctbmctMy44LjEvY29uZmlndXJlLmFjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gc3lzbG9nLW5nLTMuOC4xLm9yaWcvY29uZmlndXJlLmFjCisrKysgc3lzbG9nLW5nLTMuOC4xL2NvbmZpZ3VyZS5hYworQEAgLTEwNCw2ICsxMDQsOSBAQCBBQ19DT05GSUdfSEVBREVSUyhjb25maWcuaCkKICBkbmwgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgZG5sIEFyZ3VtZW50cwogIApAQCAtMjQsNyArMjQsNyBAQAogIEFDX0FSR19XSVRIKGxpYm5ldCwKICAgICBbICAtLXdpdGgtbGlibmV0PXBhdGggICAgICB1c2UgcGF0aCB0byBsaWJuZXQtY29uZmlnIHNjcmlwdF0sCiAgICAgLAotQEAgLTc2OCwyMiArNzcxLDI2IEBAIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKK0BAIC04OTMsMjIgKzg5NiwyNiBAQCBkbmwgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgZG5sIGxpYm5ldCBoZWFkZXJzL2xpYnJhcmllcwogIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIExJQk5FVCkKQEAgLTYxLDYgKzYxLDMgQEAKICBpZiB0ZXN0ICJ4JGVuYWJsZV9zcG9vZl9zb3VyY2UiID0gInhhdXRvIjsgdGhlbgogIAlBQ19NU0dfQ0hFQ0tJTkcod2hldGhlciB0byBlbmFibGUgc3Bvb2Ygc291cmNlIHN1cHBvcnQpCiAgICAgICAgICBpZiB0ZXN0ICJ4JExJQk5FVF9MSUJTIiAhPSAieCI7IHRoZW4KLS0tIAotMS43LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zeXNsb2ctbmcvZmlsZXMvZml4LWludmFsaWQtb3duZXJzaGlwLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zeXNsb2ctbmcvZmlsZXMvZml4LWludmFsaWQtb3duZXJzaGlwLnBhdGNoCmluZGV4IGZhZjk2NzIuLjU0ZWNjZTUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3lzbG9nLW5nL2ZpbGVzL2ZpeC1pbnZhbGlkLW93bmVyc2hpcC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9maWxlcy9maXgtaW52YWxpZC1vd25lcnNoaXAucGF0Y2gKQEAgLTEwLDExICsxMCwxMSBAQAogIHNjbC9NYWtlZmlsZS5hbSB8ICAgIDIgKy0KICAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL3NjbC9NYWtlZmlsZS5hbSBiL3NjbC9NYWtlZmlsZS5hbQotaW5kZXggNTdmYWQ1ZC4uMmEyOWNhNSAxMDA2NDQKLS0tLSBhL3NjbC9NYWtlZmlsZS5hbQotKysrIGIvc2NsL01ha2VmaWxlLmFtCi1AQCAtMTQsNyArMTQsNyBAQCBzY2wtaW5zdGFsbC1kYXRhLWxvY2FsOgorSW5kZXg6IHN5c2xvZy1uZy0zLjguMS9zY2wvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBzeXNsb2ctbmctMy44LjEub3JpZy9zY2wvTWFrZWZpbGUuYW0KKysrKyBzeXNsb2ctbmctMy44LjEvc2NsL01ha2VmaWxlLmFtCitAQCAtMjcsNyArMjcsNyBAQCBzY2wtaW5zdGFsbC1kYXRhLWxvY2FsOgogIAkJZmk7IFwKICAJZG9uZQogIAkkKG1raW5zdGFsbGRpcnMpICQoREVTVERJUikvJChzY2xkaXIpCkBAIC0yMyw2ICsyMywzIEBACiAgCWNobW9kIC1SIHUrcndYICQoREVTVERJUikvJChzY2xkaXIpCiAgCiAgc2NsLXVuaW5zdGFsbC1sb2NhbDoKLS0tIAotMS43LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zeXNsb2ctbmcvc3lzbG9nLW5nLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvc3lzbG9nLW5nL3N5c2xvZy1uZy5pbmMKaW5kZXggZjFiZjliMC4uNzcxY2RiMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9zeXNsb2ctbmcvc3lzbG9nLW5nLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3N5c2xvZy1uZy9zeXNsb2ctbmcuaW5jCkBAIC00MSw3ICs0MSw3IEBACiAiCiAKIENPTkZJR19UTFMgPSAiLS1lbmFibGUtdGhyZWFkLXRscyIKLUNPTkZJR19UTFNfYXJtID0gIiR7QGJhc2VfY29uZGl0aW9uYWwoICJERUJVR19CVUlMRCIsICIxIiwgIiAtLWRpc2FibGUtdGhyZWFkLXRscyIsICIgLS1lbmFibGUtdGhyZWFkLXRscyIsIGQgKX0iCitDT05GSUdfVExTX2FybSA9ICIke0BvZS51dGlscy5jb25kaXRpb25hbCggIkRFQlVHX0JVSUxEIiwgIjEiLCAiIC0tZGlzYWJsZS10aHJlYWQtdGxzIiwgIiAtLWVuYWJsZS10aHJlYWQtdGxzIiwgZCApfSIKIAogUEFDS0FHRUNPTkZJRyA/Pz0gIiBcCiAgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnaXB2NiBzeXN0ZW1kJywgZCl9IFwKQEAgLTEwMSw3ICsxMDEsNyBAQAogCiAjIHN5c2xvZyBpbml0c2NyaXB0IGlzIGhhbmRsZWQgZXhwbGljaXRseSBiZWNhdXNlIG9yZGVyIG9mCiAjIHVwZGF0ZS1yYy5kIGFuZCB1cGRhdGUtYWx0ZXJuYXRpdmVzIGlzIGltcG9ydGFudAotUkRFUEVORFNfJHtQTn0gKz0gIiAke0BiYXNlX2NvbmRpdGlvbmFsKCJPTkxJTkVfUEFDS0FHRV9NQU5BR0VNRU5UIiwgIm5vbmUiLCAiIiwgInVwZGF0ZS1yYy5kIiwgZCl9IgorUkRFUEVORFNfJHtQTn0gKz0gIiAke0BvZS51dGlscy5jb25kaXRpb25hbCgiT05MSU5FX1BBQ0tBR0VfTUFOQUdFTUVOVCIsICJub25lIiwgIiIsICJ1cGRhdGUtcmMuZCIsIGQpfSIKIAogUkNPTkZMSUNUU18ke1BOfSA9ICJidXN5Ym94LXN5c2xvZyBzeXNrbG9nZCByc3lzbG9nIgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3RvbW95by10b29scy90b21veW8tdG9vbHNfMi41LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3RvbW95by10b29scy90b21veW8tdG9vbHNfMi41LjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhMWI0Y2UuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC90b21veW8tdG9vbHMvdG9tb3lvLXRvb2xzXzIuNS4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotU1VNTUFSWSA9ICJUT01PWU8gTGludXggdG9vbHMiCi1ERVNDUklQVElPTiA9ICJUT01PWU8gTGludXggaXMgYSBNYW5kYXRvcnkgQWNjZXNzIENvbnRyb2wgKE1BQykgaW1wbGVtZW50YXRpb24gXAotZm9yIExpbnV4IHRoYXQgY2FuIGJlIHVzZWQgdG8gaW5jcmVhc2UgdGhlIHNlY3VyaXR5IG9mIGEgc3lzdGVtLCB3aGlsZSBhbHNvIFwKLWJlaW5nIHVzZWZ1bCBwdXJlbHkgYXMgYSBzeXN0ZW0gYW5hbHlzaXMgdG9vbC4iCi1IT01FUEFHRSA9ICJodHRwOi8vdG9tb3lvLnNvdXJjZWZvcmdlLmpwLyIKLVNFQ1RJT04gPSAiU3lzdGVtIEVudmlyb25tZW50L0tlcm5lbCIKLQotU1JDX1VSSSA9ICJodHRwOi8vamFpc3QuZGwuc291cmNlZm9yZ2UuanAvdG9tb3lvLzUzMzU3LyR7QlB9LTIwMTQwNjAxLnRhci5neiIKLVNSQ19VUklbbWQ1c3VtXSA9ICI4ODg4NjliNzkzMTI3ZjAwZDY0MzlhMzI0NjU5OGI4MyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIxMThlZjZiYTFmYmY3YzBiODMwMThjM2EwZDRkNTQ4NWRmYjliNWI3ZjY0N2YzN2NlOWY2Mzg0MWEzMTMzYzJhIgotCi1TID0gIiR7V09SS0RJUn0vJHtCUE59IgotCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORy50b21veW87bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIgotCi1GSUxFU18ke1BOfSAgICAgKz0gIiR7bGliZGlyfS90b21veW8iCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS90b21veW8vLmRlYnVnIgotCi1ERVBFTkRTID0gImxpbnV4LWxpYmMtaGVhZGVycyBuY3Vyc2VzIgotCi1FWFRSQV9PRU1BS0UgPSAiLWUgVVNSTElCRElSPSR7bGliZGlyfSIKLQotZG9fY29tcGlsZSAoKSB7Ci0gICAgb2VfcnVubWFrZSAnQ0M9JHtDQ30nCi19Ci0KLWRvX2luc3RhbGwoKSB7Ci0gICAgb2VfcnVubWFrZSBpbnN0YWxsIElOU1RBTExESVI9JHtEfQotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC90b3Njb3Rlcm0vdG9zY290ZXJtX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdG9zY290ZXJtL3Rvc2NvdGVybV9naXQuYmIKaW5kZXggYWEwMzFmZS4uODc5YjY3YiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC90b3Njb3Rlcm0vdG9zY290ZXJtX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Rvc2NvdGVybS90b3Njb3Rlcm1fZ2l0LmJiCkBAIC0xMSw3ICsxMSw5IEBACiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCiAKLWluaGVyaXQgZ2l0cGtndiBwa2djb25maWcKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrIGdpdHBrZ3YgcGtnY29uZmlnCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKIGRvX2NvbXBpbGUoKSB7CiAgICAgb2VfcnVubWFrZSBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VkaXNrcy91ZGlza3MvMDAwMS1NYWtlLXVkZXYtcnVsZXMtZGlyZWN0b3J5LWNvbmZpZ3VyYWJsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrcy8wMDAxLU1ha2UtdWRldi1ydWxlcy1kaXJlY3RvcnktY29uZmlndXJhYmxlLnBhdGNoCmluZGV4IDNjYzA0MDAuLjI4MjNjNTQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrcy8wMDAxLU1ha2UtdWRldi1ydWxlcy1kaXJlY3RvcnktY29uZmlndXJhYmxlLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrcy8wMDAxLU1ha2UtdWRldi1ydWxlcy1kaXJlY3RvcnktY29uZmlndXJhYmxlLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSAzMjI3ODI5NzE3MGZmYjQ5MTE2YjU3ODllNGEwNTg4Yjk5ZDAyYmQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBhNmVhYjQxM2YyNzQzNzZjZjcwM2E2MDhlMjg2NjExODI5MWE2MTg1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQW1hcm5hdGggVmFsbHVyaSA8YW1hcm5hdGgudmFsbHVyaUBpbnRlbC5jb20+CiBEYXRlOiBUaHUsIDkgRmViIDIwMTcgMTE6MDI6NTMgKzAyMDAKIFN1YmplY3Q6IFtQQVRDSF0gTWFrZSB1ZGV2IHJ1bGVzIGRpcmVjdG9yeSBjb25maWd1cmFibGUuCkBAIC05LDYgKzksNyBAQAogVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlW0VtYmVkZGVkIHNwZWNpZmljXQogCiBTaWduZWQtb2ZmLWJ5OiBBbWFybmF0aCBWYWxsdXJpIDxhbWFybmF0aC52YWxsdXJpQGludGVsLmNvbT4KKwogLS0tCiAgY29uZmlndXJlLmFjICAgICAgICAgICAgfCAxNCArKystLS0tLS0tLS0tLQogIGRhdGEvTWFrZWZpbGUuYW0gICAgICAgIHwgIDEgLQpAQCAtNDksMTEgKzUwLDExIEBACiAgCiAgICAgICAgICBjb21waWxlcjogICAgICAgICAgICAgICAgICAgJHtDQ30KIGRpZmYgLS1naXQgYS9kYXRhL01ha2VmaWxlLmFtIGIvZGF0YS9NYWtlZmlsZS5hbQotaW5kZXggNDExZWEwZi4uNDgzNDk2MCAxMDA2NDQKK2luZGV4IDA4YWY1ZjQuLjkzMjkxODYgMTAwNjQ0CiAtLS0gYS9kYXRhL01ha2VmaWxlLmFtCiArKysgYi9kYXRhL01ha2VmaWxlLmFtCiBAQCAtMzQsNyArMzQsNiBAQCAkKHN5c3RlbWRzZXJ2aWNlX0RBVEEpOiAkKHN5c3RlbWRzZXJ2aWNlX2luX2ZpbGVzKSBNYWtlZmlsZQotIAlAc2VkIC1lICJzfFxAbGliZXhlY2RpclxAfCQocHJlZml4KS9saWIvdWRpc2tzfCIgJDwgPiAkQAorIAlAc2VkIC1lICJzfFxAbGliZXhlY2RpclxAfCQobGliZXhlY2Rpcil8IiAkPCA+ICRACiAgZW5kaWYKICAKIC11ZGV2cnVsZXNkaXIgPSAkKHNsYXNobGliZGlyKS91ZGV2L3J1bGVzLmQKQEAgLTg2LDYgKzg3LDMgQEAKICAKICB1bW91bnRfdWRpc2tzX1NPVVJDRVMgPSB1bW91bnQtdWRpc2tzLmMKICB1bW91bnRfdWRpc2tzX0xEQUREID0gJChEQlVTX0dMSUJfTElCUykgJChQT0xLSVRfREJVU19MSUJTKQotLS0gCi0yLjcuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VkaXNrcy91ZGlza3MvMDAwMS1maXgtYnVpbGQtd2l0aC1uZXdlci1nbGliYy12ZXJzaW9ucy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrcy8wMDAxLWZpeC1idWlsZC13aXRoLW5ld2VyLWdsaWJjLXZlcnNpb25zLnBhdGNoCmluZGV4IDUyMDY1NWEuLjhiNGY0NDEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrcy8wMDAxLWZpeC1idWlsZC13aXRoLW5ld2VyLWdsaWJjLXZlcnNpb25zLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrcy8wMDAxLWZpeC1idWlsZC13aXRoLW5ld2VyLWdsaWJjLXZlcnNpb25zLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA5ODI5MTUyYjEyYTg5MjRkMmUwOTFhMDAxMzNlZDFhM2E3YmE3NWMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAwNTRhZDZhMDZjZmFjN2MzZDE3MmQ1M2NkOTAxMjA0MDc5YTUzZWMzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQWxleGFuZHJlIFJvc3RvdnRzZXYgPHRldHJvbWlub0BnZW50b28ub3JnPgogRGF0ZTogRnJpLCAyOSBNYXkgMjAxNSAyMTowOTozOSAtMDQwMAogU3ViamVjdDogW1BBVENIXSBmaXggYnVpbGQgd2l0aCBuZXdlciBnbGliYyB2ZXJzaW9ucwpAQCAtOCw2ICs4LDcgQEAKIFVwc3RyZWFtLVN0YXR1czogQXBwbGllZCBbMV0KIAogWzFdIGh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy91ZGlza3MvY29tbWl0Lz9oPXVkaXNrczEmaWQ9OTgyOTE1MmIxMmE4OTI0ZDJlMDkxYTAwMTMzZWQxYTNhN2JhNzVjMAorCiAtLS0KICBzcmMvaGVscGVycy9qb2ItZHJpdmUtZGV0YWNoLmMgfCAxICsKICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKQEAgLTI0LDYgKzI1LDMgQEAKICAjaW5jbHVkZSA8c3RkaW8uaD4KICAjaW5jbHVkZSA8c3RyaW5nLmg+CiAgI2luY2x1ZGUgPGVycm5vLmg+Ci0tLSAKLTIuMS4wCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrcy9vcHRpb25hbC1kZXBlbmRzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzL29wdGlvbmFsLWRlcGVuZHMucGF0Y2gKaW5kZXggNjEzMTcwMS4uYTg5MDk1NCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzL29wdGlvbmFsLWRlcGVuZHMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzL29wdGlvbmFsLWRlcGVuZHMucGF0Y2gKQEAgLTEsMTIgKzEsMjkgQEAKLUZyb20gMWI3MGI3YTc5OGVlZWVjNTU0YWI1YWE5ZmNmZmY5NmEyMmU5MTc3NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gZThiM2ZiZmEzZDZhMTFlZWUyNWRiMmRjMGYzMWY0MzlhYWYwYjY1YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEd1c3Rhdm8gU3Zlcnp1dCBCYXJiaWVyaSA8YmFyYmllcmlAcHJvZnVzaW9uLm1vYmk+CiBEYXRlOiBUaHUsIDI2IE1heSAyMDExIDE3OjMwOjA0IC0wMzAwCiBTdWJqZWN0OiBbUEFUQ0hdIEFsbG93IGRpc2FibGluZyBhdGFzbWFydCwgbHZtMiBhbmQgZGV2aWNlbWFwcGVyIHN1cHBvcnQuCiAKIGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NjQ3CiAKKy0tLQorIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgIHwgNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQorIHNyYy9hZGFwdGVyLXByaXZhdGUuaCAgIHwgIDEgLQorIHNyYy9hZGFwdGVyLmMgICAgICAgICAgIHwgIDEgLQorIHNyYy9kYWVtb24uYyAgICAgICAgICAgIHwgIDQgKysrKworIHNyYy9kZXZpY2UtcHJpdmF0ZS5jICAgIHwgIDIgKy0KKyBzcmMvZGV2aWNlLXByaXZhdGUuaCAgICB8ICA1ICsrLS0tCisgc3JjL2RldmljZS5jICAgICAgICAgICAgfCAyMyArKysrKysrKysrKysrKysrKy0tLS0KKyBzcmMvZXhwYW5kZXItcHJpdmF0ZS5oICB8ICAxIC0KKyBzcmMvZXhwYW5kZXIuYyAgICAgICAgICB8ICAxIC0KKyBzcmMvaGVscGVycy9NYWtlZmlsZS5hbSB8IDIwICsrKysrKysrKysrKystLS0tLS0KKyBzcmMvaGVscGVycy9wYXJ0dXRpbC5jICB8ICAzICsrLQorIHNyYy9wb3J0LXByaXZhdGUuaCAgICAgIHwgIDEgLQorIHNyYy9wcm9iZXJzL01ha2VmaWxlLmFtIHwgIDggKysrKysrLS0KKyB0b29scy91ZGlza3MuYyAgICAgICAgICB8IDEwICsrKysrKysrLS0KKyAxNCBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKKwogZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggNjJjYzM1ZC4uYjY2NDEzNSAxMDA2NDQKK2luZGV4IDk0NTQ0MjMuLjhjNGU0YzIgMTAwNjQ0CiAtLS0gYS9jb25maWd1cmUuYWMKICsrKyBiL2NvbmZpZ3VyZS5hYwogQEAgLTE1NSwxMyArMTU1LDMzIEBAIFBLR19DSEVDS19NT0RVTEVTKFBPTEtJVF9HT0JKRUNUXzEsIFtwb2xraXQtZ29iamVjdC0xID49IDAuOTddKQpAQCAtNDksOCArNjYsOCBAQAogK0FNX0NPTkRJVElPTkFMKEhBVkVfREVWTUFQUEVSLCBbdGVzdCAiJGhhdmVfZGV2bWFwcGVyIiA9ICJ5ZXMiXSkKICAKICBoYXZlX2x2bTI9bm8KLSBBQ19BUkdfRU5BQkxFKGx2bTIsIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtbHZtMl0sIFtkaXNhYmxlIExWTTIgc3VwcG9ydF0pKQotQEAgLTE4NSw5ICsyMDUsMTkgQEAgaWYgdGVzdCAieCRlbmFibGVfZG1tcCIgIT0gInhubyI7IHRoZW4KKyBBQ19BUkdfRU5BQkxFKGx2bTIsIEFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1sdm0yXSwgW2VuYWJsZSBMVk0yIHN1cHBvcnRdKSkKK0BAIC0xODUsOSArMjA1LDE5IEBAIGlmIHRlc3QgIngkZW5hYmxlX2RtbXAiID0gInh5ZXMiOyB0aGVuCiAgZmkKICBBTV9DT05ESVRJT05BTChIQVZFX0RNTVAsIFt0ZXN0ICIkaGF2ZV9kbW1wIiA9ICJ5ZXMiXSkKICAKQEAgLTczLDcgKzkwLDcgQEAKICAKICBQS0dfQ0hFQ0tfTU9EVUxFUyhMSUJVREVWLCBbbGlidWRldiA+PSAxNDNdKQogIEFDX1NVQlNUKExJQlVERVZfQ0ZMQUdTKQotQEAgLTI2Nyw5ICsyOTcsMTIgQEAgZWNobyAiCitAQCAtMjc4LDkgKzMwOCwxMiBAQCBlY2hvICIKICAgICAgICAgIGNwcGZsYWdzOiAgICAgICAgICAgICAgICAgICAke0NQUEZMQUdTfQogICAgICAgICAgeHNsdHByb2M6ICAgICAgICAgICAgICAgICAgICR7WFNMVFBST0N9CiAgCkBAIC05OSw3ICsxMTYsNyBAQAogICNpbmNsdWRlICJ0eXBlcy5oIgogIAogZGlmZiAtLWdpdCBhL3NyYy9hZGFwdGVyLmMgYi9zcmMvYWRhcHRlci5jCi1pbmRleCBiODVhMGVmLi44MDI0MjBiIDEwMDY0NAoraW5kZXggNjVlMDViMC4uNDVkYjhjOCAxMDA2NDQKIC0tLSBhL3NyYy9hZGFwdGVyLmMKICsrKyBiL3NyYy9hZGFwdGVyLmMKIEBAIC0zMCw3ICszMCw2IEBACkBAIC0xMTEsMTAgKzEyOCwxMCBAQAogICNpbmNsdWRlICJkYWVtb24uaCIKICAjaW5jbHVkZSAiYWRhcHRlci5oIgogZGlmZiAtLWdpdCBhL3NyYy9kYWVtb24uYyBiL3NyYy9kYWVtb24uYwotaW5kZXggNjA3MjUwMi4uZDA0M2NiMCAxMDA2NDQKK2luZGV4IGZhZmNmOWEuLjE0ZTk1MmYgMTAwNjQ0CiAtLS0gYS9zcmMvZGFlbW9uLmMKICsrKyBiL3NyYy9kYWVtb24uYwotQEAgLTE3NDUsNiArMTc0NSw3IEBAIG1kc3RhdF9jaGFuZ2VkX2V2ZW50IChHSU9DaGFubmVsICpjaGFubmVsLAorQEAgLTE3NDgsNiArMTc0OCw3IEBAIG1kc3RhdF9jaGFuZ2VkX2V2ZW50IChHSU9DaGFubmVsICpjaGFubmVsLAogICAgcmV0dXJuIFRSVUU7CiAgfQogIApAQCAtMTIyLDcgKzEzOSw3IEBACiAgc3RhdGljIGdib29sZWFuCiAgcmVmcmVzaF9hdGFfc21hcnRfZGF0YSAoRGFlbW9uICpkYWVtb24pCiAgewotQEAgLTE3NzMsNiArMTc3NCw3IEBAIHJlZnJlc2hfYXRhX3NtYXJ0X2RhdGEgKERhZW1vbiAqZGFlbW9uKQorQEAgLTE3NzYsNiArMTc3Nyw3IEBAIHJlZnJlc2hfYXRhX3NtYXJ0X2RhdGEgKERhZW1vbiAqZGFlbW9uKQogIAogICAgcmV0dXJuIEZBTFNFOwogIH0KQEAgLTEzMCw3ICsxNDcsNyBAQAogIAogIHN0YXRpYyBnYm9vbGVhbgogIHJlZ2lzdGVyX2Rpc2tzX2RhZW1vbiAoRGFlbW9uICpkYWVtb24pCi1AQCAtMTk4NCwxMiArMTk4NiwxNCBAQCBkYWVtb25fbmV3ICh2b2lkKQorQEAgLTE5ODcsMTIgKzE5ODksMTQgQEAgZGFlbW9uX25ldyAodm9pZCkKICAgIG1vdW50X2ZpbGVfY2xlYW5fc3RhbGUgKGwpOwogICAgZ19saXN0X2ZyZWUgKGwpOwogIApAQCAtMTQ2LDEwICsxNjMsMTAgQEAKICAgIFBST0ZJTEUgKCJkYWVtb25fbmV3KCk6IGVuZCIpOwogICAgcmV0dXJuIGRhZW1vbjsKIGRpZmYgLS1naXQgYS9zcmMvZGV2aWNlLXByaXZhdGUuYyBiL3NyYy9kZXZpY2UtcHJpdmF0ZS5jCi1pbmRleCAyMmEwZDM1Li5mYjk2NTI1IDEwMDY0NAoraW5kZXggNDU0MThjZS4uZmIxZDk1OSAxMDA2NDQKIC0tLSBhL3NyYy9kZXZpY2UtcHJpdmF0ZS5jCiArKysgYi9zcmMvZGV2aWNlLXByaXZhdGUuYwotQEAgLTEzNzgsNyArMTM3OCw3IEBAIGRldmljZV9zZXRfZHJpdmVfYXRhX3NtYXJ0X3RpbWVfY29sbGVjdGVkIChEZXZpY2UgKmRldmljZSwKK0BAIC0xMzkwLDcgKzEzOTAsNyBAQCBkZXZpY2Vfc2V0X2RyaXZlX2F0YV9zbWFydF90aW1lX2NvbGxlY3RlZCAoRGV2aWNlICpkZXZpY2UsCiAgCiAgdm9pZAogIGRldmljZV9zZXRfZHJpdmVfYXRhX3NtYXJ0X3N0YXR1cyAoRGV2aWNlICpkZXZpY2UsCkBAIC0xNTksNyArMTc2LDcgQEAKICAgIGlmIChHX1VOTElLRUxZIChkZXZpY2UtPnByaXYtPmRyaXZlX2F0YV9zbWFydF9zdGF0dXMgIT0gdmFsdWUpKQogICAgICB7CiBkaWZmIC0tZ2l0IGEvc3JjL2RldmljZS1wcml2YXRlLmggYi9zcmMvZGV2aWNlLXByaXZhdGUuaAotaW5kZXggYTZkYjdmMi4uNzE0NzNhNiAxMDA2NDQKK2luZGV4IDMyYTliZDAuLjhjNTdjMTMgMTAwNjQ0CiAtLS0gYS9zcmMvZGV2aWNlLXByaXZhdGUuaAogKysrIGIvc3JjL2RldmljZS1wcml2YXRlLmgKIEBAIC0yMyw3ICsyMyw2IEBACkBAIC0xNzAsNyArMTg3LDcgQEAKICAKICAjaW5jbHVkZSAidHlwZXMuaCIKICAKLUBAIC0yMjQsNyArMjIzLDcgQEAgc3RydWN0IERldmljZVByaXZhdGUKK0BAIC0yMjgsNyArMjI3LDcgQEAgc3RydWN0IERldmljZVByaXZhdGUKICAKICAgIGdib29sZWFuIGRyaXZlX2F0YV9zbWFydF9pc19hdmFpbGFibGU7CiAgICBndWludDY0IGRyaXZlX2F0YV9zbWFydF90aW1lX2NvbGxlY3RlZDsKQEAgLTE3OSw3ICsxOTYsNyBAQAogICAgdm9pZCAqZHJpdmVfYXRhX3NtYXJ0X2Jsb2I7CiAgICBnc2l6ZSBkcml2ZV9hdGFfc21hcnRfYmxvYl9zaXplOwogIAotQEAgLTM5MSw3ICszOTAsNyBAQCB2b2lkIGRldmljZV9zZXRfaG9sZGVyc19vYmpwYXRoIChEZXZpY2UgKmRldmljZSwgR1N0cnYgdmFsdWUpOworQEAgLTM5Niw3ICszOTUsNyBAQCB2b2lkIGRldmljZV9zZXRfaG9sZGVyc19vYmpwYXRoIChEZXZpY2UgKmRldmljZSwgR1N0cnYgdmFsdWUpOwogIAogIHZvaWQgZGV2aWNlX3NldF9kcml2ZV9hdGFfc21hcnRfaXNfYXZhaWxhYmxlIChEZXZpY2UgKmRldmljZSwgZ2Jvb2xlYW4gdmFsdWUpOwogIHZvaWQgZGV2aWNlX3NldF9kcml2ZV9hdGFfc21hcnRfdGltZV9jb2xsZWN0ZWQgKERldmljZSAqZGV2aWNlLCBndWludDY0IHZhbHVlKTsKQEAgLTE4OSw3ICsyMDYsNyBAQAogIAogIEdfRU5EX0RFQ0xTCiBkaWZmIC0tZ2l0IGEvc3JjL2RldmljZS5jIGIvc3JjL2RldmljZS5jCi1pbmRleCA2YTM0OTQwLi43YTVhNGE5IDEwMDY0NAoraW5kZXggMmFlN2YzOC4uZDczZjlkNiAxMDA2NDQKIC0tLSBhL3NyYy9kZXZpY2UuYwogKysrIGIvc3JjL2RldmljZS5jCiBAQCAtNTAsNyArNTAsOSBAQApAQCAtMjAyLDcgKzIxOSw3IEBACiAgCiAgI2luY2x1ZGUgImRhZW1vbi5oIgogICNpbmNsdWRlICJkZXZpY2UuaCIKLUBAIC02NTksMTAgKzY2MSwxNCBAQCBnZXRfcHJvcGVydHkgKEdPYmplY3QgKm9iamVjdCwKK0BAIC02NjQsMTAgKzY2NiwxNCBAQCBnZXRfcHJvcGVydHkgKEdPYmplY3QgKm9iamVjdCwKICAgICAgY2FzZSBQUk9QX0RSSVZFX0FUQV9TTUFSVF9TVEFUVVM6CiAgICAgICAgewogICAgICAgICAgY29uc3QgZ2NoYXIgKnN0YXR1czsKQEAgLTIxOCw3ICsyMzUsNyBAQAogICAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nICh2YWx1ZSwgc3RhdHVzKTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7Ci1AQCAtNTExNCw2ICs1MTIwLDcgQEAgZGV2aWNlX25ldyAoRGFlbW9uICpkYWVtb24sCitAQCAtNTE0NCw2ICs1MTUwLDcgQEAgZGV2aWNlX25ldyAoRGFlbW9uICpkYWVtb24sCiAgICAgICAgZ290byBvdXQ7CiAgICAgIH0KICAKQEAgLTIyNiw3ICsyNDMsNyBAQAogICAgLyogaWYganVzdCBhZGRlZCwgdXBkYXRlIHRoZSBzbWFydCBkYXRhIGlmIGFwcGxpY2FibGUgKi8KICAgIGlmIChkZXZpY2UtPnByaXYtPmRyaXZlX2F0YV9zbWFydF9pc19hdmFpbGFibGUpCiAgICAgIHsKLUBAIC01MTIxLDYgKzUxMjgsNyBAQCBkZXZpY2VfbmV3IChEYWVtb24gKmRhZW1vbiwKK0BAIC01MTUxLDYgKzUxNTgsNyBAQCBkZXZpY2VfbmV3IChEYWVtb24gKmRhZW1vbiwKICAgICAgICBnY2hhciAqYXRhX3NtYXJ0X3JlZnJlc2hfZGF0YV9vcHRpb25zW10gPSB7IE5VTEwgfTsKICAgICAgICBkZXZpY2VfZHJpdmVfYXRhX3NtYXJ0X3JlZnJlc2hfZGF0YSAoZGV2aWNlLCBhdGFfc21hcnRfcmVmcmVzaF9kYXRhX29wdGlvbnMsIE5VTEwpOwogICAgICB9CkBAIC0yMzQsNyArMjUxLDcgQEAKICAKICAgIFBST0ZJTEUgKCJkZXZpY2VfbmV3KG5hdGl2ZV9wYXRoPSVzKTogZW5kIiwgbmF0aXZlX3BhdGgpOwogICBvdXQ6Ci1AQCAtOTc5NCwxNiArOTgwMiwxOCBAQCBkcml2ZV9hdGFfc21hcnRfcmVmcmVzaF9kYXRhX2NvbXBsZXRlZF9jYiAoREJ1c0dNZXRob2RJbnZvY2F0aW9uICpjb250ZXh0LAorQEAgLTk4NDAsMTYgKzk4NDgsMTggQEAgZHJpdmVfYXRhX3NtYXJ0X3JlZnJlc2hfZGF0YV9jb21wbGV0ZWRfY2IgKERCdXNHTWV0aG9kSW52b2NhdGlvbiAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3Rkb3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEpCiAgewpAQCAtMjU2LDcgKzI3Myw3IEBACiAgICBibG9iID0gTlVMTDsKICAKICAgIGlmIChqb2Jfd2FzX2NhbmNlbGxlZCB8fCBzdGRvdXQgPT0gTlVMTCkKLUBAIC05OTA3LDYgKzk5MTcsMTEgQEAgZHJpdmVfYXRhX3NtYXJ0X3JlZnJlc2hfZGF0YV9jb21wbGV0ZWRfY2IgKERCdXNHTWV0aG9kSW52b2NhdGlvbiAqY29udGV4dCwKK0BAIC05OTUzLDYgKzk5NjMsMTEgQEAgZHJpdmVfYXRhX3NtYXJ0X3JlZnJlc2hfZGF0YV9jb21wbGV0ZWRfY2IgKERCdXNHTWV0aG9kSW52b2NhdGlvbiAqY29udGV4dCwKICAgIGdfZnJlZSAoYmxvYik7CiAgICBpZiAoZCAhPSBOVUxMKQogICAgICBza19kaXNrX2ZyZWUgKGQpOwpAQCAtNDMwLDcgKzQ0Nyw3IEBACiAgdWRpc2tzX3Byb2JlX3Nhc19leHBhbmRlcl9TT1VSQ0VTID0gdWRpc2tzLXByb2JlLXNhcy1leHBhbmRlci5jCiAgdWRpc2tzX3Byb2JlX3Nhc19leHBhbmRlcl9DUFBGTEFHUyA9ICQoQU1fQ1BQRkxBR1MpICQoR0xJQl9DRkxBR1MpCiBkaWZmIC0tZ2l0IGEvdG9vbHMvdWRpc2tzLmMgYi90b29scy91ZGlza3MuYwotaW5kZXggNmZiZDZhNi4uZTBjNGZiYiAxMDA2NDQKK2luZGV4IDk3ZTgwZDcuLmQzMDE1OWIgMTAwNjQ0CiAtLS0gYS90b29scy91ZGlza3MuYwogKysrIGIvdG9vbHMvdWRpc2tzLmMKIEBAIC00Myw3ICs0Myw5IEBACkBAIC00NDMsNyArNDYwLDcgQEAKICAKICAjaW5jbHVkZSAidWRpc2tzLWRhZW1vbi1nbHVlLmgiCiAgI2luY2x1ZGUgInVkaXNrcy1kZXZpY2UtZ2x1ZS5oIgotQEAgLTk3OSw2ICs5ODEsNyBAQCBlbmRfaGlnaGxpZ2h0ICh2b2lkKQorQEAgLTk4Myw2ICs5ODUsNyBAQCBlbmRfaGlnaGxpZ2h0ICh2b2lkKQogICAgICBnX3ByaW50ICgiXHgxQlswbSIpOwogIH0KICAKQEAgLTQ1MSw3ICs0NjgsNyBAQAogIHN0YXRpYyBjb25zdCBnY2hhciAqCiAgYXRhX3NtYXJ0X3N0YXR1c190b19kZXNjIChjb25zdCBnY2hhciAqc3RhdHVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gKm91dF9oaWdobGlnaHQpCi1AQCAtMTE1OSw2ICsxMTYyLDcgQEAgcHJpbnRfYXRhX3NtYXJ0X2F0dHIgKFNrRGlzayAqZCwKK0BAIC0xMTYzLDYgKzExNjYsNyBAQCBwcmludF9hdGFfc21hcnRfYXR0ciAoU2tEaXNrICpkLAogICAgZ19mcmVlICh0aHJlc2hvbGRfc3RyKTsKICAgIGdfZnJlZSAocHJldHR5KTsKICB9CkBAIC00NTksNyArNDc2LDcgQEAKICAKICBzdGF0aWMgdm9pZAogIGRvX3Nob3dfaW5mbyAoY29uc3QgY2hhciAqb2JqZWN0X3BhdGgpCi1AQCAtMTQ0MCw3ICsxNDQ0LDcgQEAgZG9fc2hvd19pbmZvIChjb25zdCBjaGFyICpvYmplY3RfcGF0aCkKK0BAIC0xNDQ1LDcgKzE0NDksNyBAQCBkb19zaG93X2luZm8gKGNvbnN0IGNoYXIgKm9iamVjdF9wYXRoKQogICAgICAgICAgZ19wcmludCAoIiAgICBpZiBzcGVlZDogICAgICAgICAgICAgICAgICAlIiBHX0dJTlQ2NF9GT1JNQVQgIiBiaXRzL3NcbiIsIHByb3BzLT5kcml2ZV9jb25uZWN0aW9uX3NwZWVkKTsKICAKICAgICAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCkBAIC00NjgsNyArNDg1LDcgQEAKICAgICAgICBpZiAoIXByb3BzLT5kcml2ZV9hdGFfc21hcnRfaXNfYXZhaWxhYmxlKQogICAgICAgICAgewogICAgICAgICAgICBnX3ByaW50ICgiICAgIEFUQSBTTUFSVDogICAgICAgICAgICAgICAgIG5vdCBhdmFpbGFibGVcbiIpOwotQEAgLTE0OTMsNyArMTQ5Nyw5IEBAIGRvX3Nob3dfaW5mbyAoY29uc3QgY2hhciAqb2JqZWN0X3BhdGgpCitAQCAtMTQ5OCw3ICsxNTAyLDkgQEAgZG9fc2hvd19pbmZvIChjb25zdCBjaGFyICpvYmplY3RfcGF0aCkKICAgICAgICAgICAgICB9CiAgCiAgICAgICAgICB9CkBAIC00NzksNiArNDk2LDMgQEAKICAgICAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAgCiAgICAgIH0KLS0tIAotMS43LjUucmMzCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrcy91ZGlza3MtMS4wLjUtZml4LXNlcnZpY2UtZmlsZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrcy91ZGlza3MtMS4wLjUtZml4LXNlcnZpY2UtZmlsZS5wYXRjaAppbmRleCBkNWU4NGQzLi5kNGVmYTkzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VkaXNrcy91ZGlza3MvdWRpc2tzLTEuMC41LWZpeC1zZXJ2aWNlLWZpbGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzL3VkaXNrcy0xLjAuNS1maXgtc2VydmljZS1maWxlLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA3ZDYxYWQwNDg4NTZlZTIzOTg3MGI5MTdkNjkzM2UzYWQ2M2YwNzg5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBhNGY2YWE1YmUzN2FlNmUyMTk0YzlkZWQyZWE4YzFkYTMzMGY1Njk0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogRGF2aWQgS2luZyA8YW1pZ2FkYXZlQGFtaWdhZGF2ZS5jb20+CiBEYXRlOiBUaHUsIDIgSnVsIDIwMTUgMTM6NDk6MjIgKzAxMDAKIFN1YmplY3Q6IFtQQVRDSF0gRml4IHN5c3RlbWQgc2VydmljZSBmaWxlCkBAIC0xMiw2ICsxMiw3IEBACiBbMV0gaHR0cDovL3BrZ3MuZmVkb3JhcHJvamVjdC5vcmcvY2dpdC91ZGlza3MuZ2l0L3RyZWUvdWRpc2tzLTEuMC41LWZpeC1zZXJ2aWNlLWZpbGUucGF0Y2gKIAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKIC0tLQogIGRhdGEvTWFrZWZpbGUuYW0gfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCkBAIC0yOSw1ICszMCwzIEBACiAgZW5kaWYKICAKICB1ZGV2cnVsZXNkaXIgPSAkKHNsYXNobGliZGlyKS91ZGV2L3J1bGVzLmQKLS0tIAotMi40LjUKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrczIvMDAwMS1kYXRhLWZpeC1vdXQtb2YtdHJlZS1idWlsZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrczIvMDAwMS1kYXRhLWZpeC1vdXQtb2YtdHJlZS1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2JkODc3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzMi8wMDAxLWRhdGEtZml4LW91dC1vZi10cmVlLWJ1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAKK0Zyb20gN2ZkZDRhY2RmNmRhZjk1YzVjYzc0ZTk2OGY0NzEwNTEzYzhkZGFlYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnbWFpbC5jb20+CitEYXRlOiBGcmksIDIzIE1hciAyMDE4IDE4OjMzOjUyICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIGRhdGE6IGZpeCBvdXQgb2YgdHJlZSBidWlsZAorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCit8IHNlZDogY2FuJ3QgcmVhZCB1ZGlza3MyLnNlcnZpY2UuaW46IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgWzFdCisKK1sxXSBodHRwczovL2dpdGh1Yi5jb20vc3RvcmFnZWQtcHJvamVjdC91ZGlza3MvcHVsbC81MTAKKworU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdtYWlsLmNvbT4KKy0tLQorIGRhdGEvTWFrZWZpbGUuYW0gfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9kYXRhL01ha2VmaWxlLmFtIGIvZGF0YS9NYWtlZmlsZS5hbQoraW5kZXggZGRmOWUzZDYuLmIzODkyOGM4IDEwMDY0NAorLS0tIGEvZGF0YS9NYWtlZmlsZS5hbQorKysrIGIvZGF0YS9NYWtlZmlsZS5hbQorQEAgLTIyLDcgKzIyLDcgQEAgc3lzdGVtZHNlcnZpY2VkaXIgICAgICAgPSAkKHN5c3RlbWRzeXN0ZW11bml0ZGlyKQorIHN5c3RlbWRzZXJ2aWNlX0RBVEEgICAgID0gJChzeXN0ZW1kc2VydmljZV9pbl9maWxlczouc2VydmljZS5pbj0uc2VydmljZSkKKyAKKyAkKHN5c3RlbWRzZXJ2aWNlX0RBVEEpOiB1ZGlza3MyLnNlcnZpY2UuaW4gTWFrZWZpbGUKKy0JQHNlZCAtZSAic3xcQHVkaXNrc2Rwcml2ZGlyXEB8JChsaWJleGVjZGlyKS91ZGlza3MyfCIgdWRpc2tzMi5zZXJ2aWNlLmluID4gdWRpc2tzMi5zZXJ2aWNlCisrCUBzZWQgLWUgInN8XEB1ZGlza3NkcHJpdmRpclxAfCQobGliZXhlY2RpcikvdWRpc2tzMnwiICQoc3JjZGlyKS91ZGlza3MyLnNlcnZpY2UuaW4gPiB1ZGlza3MyLnNlcnZpY2UKKyBlbmRpZgorIAorIHVkZXZydWxlc2RpciA9ICQodWRldmRpcikvcnVsZXMuZAorLS0gCisyLjE0LjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzMl8yLjEuOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrczJfMi4xLjguYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzZWZjNTEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzMl8yLjEuOC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLVNVTU1BUlkgPSAidWRpc2tzIHByb3ZpZGVzIGRidXMgaW50ZXJmYWNlcyBmb3IgZGlza3MgYW5kIHN0b3JhZ2UgZGV2aWNlcyIKLUxJQ0VOU0UgPSAiR1BMdjIrICYgTEdQTHYyKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWRkNzlmNmRiYmZmZGJjOGU4NmIwODZhOGYwYzBlZjQzIgotCi1ERVBFTkRTID0gImFjbCBsaWJhdGFzbWFydCBwb2xraXQgbGliZ3VkZXYgZGJ1cy1nbGliIGdsaWItMi4wIGludGx0b29sLW5hdGl2ZSBnbm9tZS1jb21tb24tbmF0aXZlIGxpYnhzbHQtbmF0aXZlIgotREVQRU5EUyArPSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsIGQpfSIKLQotUkRFUEVORFNfJHtQTn0gPSAiYWNsIgotCi1TUkNfVVJJID0gImh0dHA6Ly91ZGlza3MuZnJlZWRlc2t0b3Aub3JnL3JlbGVhc2VzL3VkaXNrcy0ke1BWfS50YXIuYnoyIFwKLSAgICAgICAgICAgZmlsZTovL25vbi1nbnUtbGliYy5wYXRjaCBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiNTAxZDExYzI0M2JkOGM2YzAwNjUwNDc0Y2QyYWZhYWIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZGE0MTY5MTQ4MTJhNzdlNWY0ZDgyYjgxZGViOGMyNTc5OWZkMzIyOGQyN2Q1MmY3YmY4OWE1MDFiMTg1N2RkYSIKLQotQ1ZFX1BST0RVQ1QgPSAidWRpc2tzIgotCi1pbmhlcml0IGF1dG90b29scyBzeXN0ZW1kIGd0ay1kb2MgZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0KLVMgPSAiJHtXT1JLRElSfS91ZGlza3MtJHtQVn0iCi0KLUVYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtbWFuIC0tZGlzYWJsZS1ndGstZG9jIgotCi1GSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L3BvbGtpdC0xL2V4dGVuc2lvbnMvKi5zbyBcCi0gICAgICAgICAgICAgICAgJHtkYXRhZGlyfS9kYnVzLTEvIFwKLSAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L3BvbGtpdC0xIFwKLSAgICAgICAgICAgICAgICAke25vbmFyY2hfYmFzZV9saWJkaXJ9L3VkZXYvKiBcCi0gICAgICAgICAgICAgICAgJHtleGVjX3ByZWZpeH0ke25vbmFyY2hfYmFzZV9saWJkaXJ9L3VkaXNrczIvKiBcCi0iCi0KLVBBQ0tBR0VTID0rICIke1BOfS1saWJzIgotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9iYXNoLWNvbXBsZXRpb24iCi1GSUxFU18ke1BOfS1saWJzID0gIiR7bGliZGlyfS9saWIqJHtTT0xJQlN9IgotCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7ZXhlY19wcmVmaXh9JHtub25hcmNoX2Jhc2VfbGliZGlyfS91ZGlza3MyLy5kZWJ1ZyIKLQotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gIiR7QlBOfS5zZXJ2aWNlIgotU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJkaXNhYmxlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91ZGlza3MvdWRpc2tzMl8yLjcuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrczJfMi43LjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQyMmFmZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWRpc2tzL3VkaXNrczJfMi43LjYuYmIKQEAgLTAsMCArMSw0OSBAQAorU1VNTUFSWSA9ICJ1ZGlza3MgcHJvdmlkZXMgZGJ1cyBpbnRlcmZhY2VzIGZvciBkaXNrcyBhbmQgc3RvcmFnZSBkZXZpY2VzIgorTElDRU5TRSA9ICJHUEx2MisgJiBMR1BMdjIrIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZGQ3OWY2ZGJiZmZkYmM4ZTg2YjA4NmE4ZjBjMGVmNDMiCisKK0RFUEVORFMgPSAiIFwKKyAgICBhY2wgXAorICAgIGxpYmF0YXNtYXJ0IFwKKyAgICBwb2xraXQgXAorICAgIGxpYmd1ZGV2IFwKKyAgICBkYnVzLWdsaWIgXAorICAgIGdsaWItMi4wIFwKKyAgICBsaWJibG9ja2RldiBcCisgICAgaW50bHRvb2wtbmF0aXZlIFwKKyAgICBnbm9tZS1jb21tb24tbmF0aXZlIFwKKyAgICBsaWJ4c2x0LW5hdGl2ZSBcCisiCitERVBFTkRTICs9ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgZCl9IgorCitSREVQRU5EU18ke1BOfSA9ICJhY2wiCisKK1NSQ19VUkkgPSAiIFwKKyAgICBnaXQ6Ly9naXRodWIuY29tL3N0b3JhZ2VkLXByb2plY3QvdWRpc2tzLmdpdCBcCisgICAgZmlsZTovLzAwMDEtZGF0YS1maXgtb3V0LW9mLXRyZWUtYnVpbGQucGF0Y2ggXAorICAgIGZpbGU6Ly9ub24tZ251LWxpYmMucGF0Y2ggXAorIgorU1JDUkVWID0gImI2NDcxZjJlOTlmNmFhMTEzM2FmMGRlNjU4ZjFmYTA1Yzc0ODkzMmMiCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitDVkVfUFJPRFVDVCA9ICJ1ZGlza3MiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHN5c3RlbWQgZ3RrLWRvYyBnb2JqZWN0LWludHJvc3BlY3Rpb24KKworRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1tYW4gLS1kaXNhYmxlLWd0ay1kb2MiCisKK0ZJTEVTXyR7UE59ICs9ICIgXAorICAgICR7ZGF0YWRpcn0vZGJ1cy0xLyBcCisgICAgJHtkYXRhZGlyfS9wb2xraXQtMSBcCisgICAgJHtkYXRhZGlyfS9iYXNoLWNvbXBsZXRpb24gXAorICAgICR7bGliZGlyfS9wb2xraXQtMS9leHRlbnNpb25zLyouc28gXAorICAgICR7bm9uYXJjaF9iYXNlX2xpYmRpcn0vdWRldi8qIFwKKyAgICAke2V4ZWNfcHJlZml4fSR7bm9uYXJjaF9iYXNlX2xpYmRpcn0vdWRpc2tzMi8qIFwKKyAgICAke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9IFwKKyIKKworUEFDS0FHRVMgPSsgIiR7UE59LWxpYnMiCitGSUxFU18ke1BOfS1saWJzID0gIiR7bGliZGlyfS9saWIqJHtTT0xJQlN9IgorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiJHtCUE59LnNlcnZpY2UiCitTWVNURU1EX0FVVE9fRU5BQkxFID0gImRpc2FibGUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VpbS91aW0vMDAwMS1BZGQtc3VwcG9ydC1mb3ItYWFyY2g2NC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWltL3VpbS8wMDAxLUFkZC1zdXBwb3J0LWZvci1hYXJjaDY0LnBhdGNoCmluZGV4IDRiMTI0OTQuLjM5MWIwZTYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWltL3VpbS8wMDAxLUFkZC1zdXBwb3J0LWZvci1hYXJjaDY0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWltL3VpbS8wMDAxLUFkZC1zdXBwb3J0LWZvci1hYXJjaDY0LnBhdGNoCkBAIC0xLDkgKzEsMTAgQEAKLUZyb20gMjRmZDUyY2M0NWY3YjVmZjQ1YWZlMDcyZjVmYmU2NjQ4NWRmOGM4ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gODJmNDRmNTNiOWE5NzY2YzJlYzgxNmYyMzc1MDZiZWI5NTNlYjMzMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IEFuZHJlYXMgU2Nod2FiIDxzY2h3YWJAc3VzZS5kZT4KIERhdGU6IFdlZCwgMjkgT2N0IDIwMTQgMTQ6MTg6MjggKzAxMDAKIFN1YmplY3Q6IFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIGFhcmNoNjQKIAogKiBpbmNsdWRlL3ByaXZhdGUvZ2Njb25maWcuaDogQWRkIHN1cHBvcnQgZm9yIGFhcmNoNjQuCisKIC0tLQogIHNpZ3NjaGVtZS9saWJnY3Jvb3RzL2luY2x1ZGUvcHJpdmF0ZS9nY2NvbmZpZy5oIHwgMzcgKysrKysrKysrKysrKysrKysrKysrKysrKwogIDEgZmlsZSBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspCkBAIC03Nyw2ICs3OCwzIEBACiAgIyBpZmRlZiBBUk0zMgogICMgICBkZWZpbmUgQ1BQX1dPUkRTWiAzMgogICMgICBkZWZpbmUgTUFDSF9UWVBFICJBUk0zMiIKLS0tIAotMi4xMy4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWltL3VpbS8wMDAxLWZpeC1idWctZm9yLWNyb3NzLWNvbXBpbGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VpbS91aW0vMDAwMS1maXgtYnVnLWZvci1jcm9zcy1jb21waWxlLnBhdGNoCmluZGV4IGRmODJiMDcuLjBjOGYwMmQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWltL3VpbS8wMDAxLWZpeC1idWctZm9yLWNyb3NzLWNvbXBpbGUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91aW0vdWltLzAwMDEtZml4LWJ1Zy1mb3ItY3Jvc3MtY29tcGlsZS5wYXRjaApAQCAtMSw5ICsxLDEwIEBACi1Gcm9tIDI5MTgxOTZiYTc4MmRmYTQ0MDFiZGNhOTE3YWQ0ZGUxOTEwNTA1ZTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDA4YjVlNTEyMjRlZDk1YjFlNzZlOTk4NzNiNWY5ZjU5ODQwYjBhNzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBMZWkgTWFvaHVpIDxsZWltYW9odWlAY24uZnVqaXRzdS5jb20+CiBEYXRlOiBGcmksIDIxIEF1ZyAyMDE1IDE1OjU4OjQyICswOTAwCiBTdWJqZWN0OiBbUEFUQ0hdIGZpeCBidWcgZm9yIGNyb3NzIGNvbXBpbGUKIAogU2lnbmVkLW9mZi1ieTogTGVpIE1hb2h1aSA8bGVpbWFvaHVpQGNuLmZ1aml0c3UuY29tPgorCiAtLS0KICBjb25maWd1cmUuYWMgfCA0ICsrLS0KICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQpAQCAtMjMsNiArMjQsMyBAQAogICAgICBBQ19DSEVDS19MSUIoY3Vyc2VzLCB0Z2V0ZW50LCBMSUJFRElUX0xJQlM9Ii1sY3Vyc2VzIiwKICAgICAgICAgIFtBQ19DSEVDS19MSUIobmN1cnNlcywgdGdldGVudCwgTElCRURJVF9MSUJTPSItbG5jdXJzZXMiLAogICAgICAgICAgICAgIEFDX01TR19XQVJOKCJsaWJlZGl0IG5lZWRzIGxpYmN1cnNlcyBvciBsaWJuY3Vyc2VzLiBkaXNhYmxlZC4uLiIpCi0tLSAKLTEuOC40LjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91aW0vdWltL3VpbS1tb2R1bGUtbWFuYWdlci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWltL3VpbS91aW0tbW9kdWxlLW1hbmFnZXIucGF0Y2gKaW5kZXggODU2OWJmMy4uMzA3OGFmMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91aW0vdWltL3VpbS1tb2R1bGUtbWFuYWdlci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VpbS91aW0vdWltLW1vZHVsZS1tYW5hZ2VyLnBhdGNoCkBAIC0xLDExICsxLDIxIEBACi0tLS0gdWltLTEuMS4wL3NjbS9NYWtlZmlsZS5hbX4JMjAwNi0wNi0wOSAxMDo0NjoxMi4wMDAwMDAwMDAgKzA5MDAKLSsrKyB1aW0tMS4xLjAvc2NtL01ha2VmaWxlLmFtCTIwMDYtMDYtMTkgMjM6MDA6MTUuNjIwMDAwMDAwICswOTAwCi1AQCAtNTgsNyArNTgsNyBAQAotICAgbW9kdWxlX25hbWVzICs9ICJzY2ltIgorRnJvbSBkNjE0OTVkM2ZiMDM5ODQyYjgyZGY0NDE4NGM2N2ViM2MxMjU2MTM2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmlhbiBOYWltZW5nIDxiaWFubm1AY24uZnVqaXRzdS5jb20+CitEYXRlOiBGcmksIDI2IEp1biAyMDE1IDEyOjU3OjQ4ICswOTAwCisKKy0tLQorIHNjbS9NYWtlZmlsZS5hbSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NjbS9NYWtlZmlsZS5hbSBiL3NjbS9NYWtlZmlsZS5hbQoraW5kZXggMTRkOTM5My4uZThhMTA4MyAxMDA2NDQKKy0tLSBhL3NjbS9NYWtlZmlsZS5hbQorKysrIGIvc2NtL01ha2VmaWxlLmFtCitAQCAtMTE5LDcgKzExOSw3IEBAIGlmIEVYUEFUCisgICBtb2R1bGVfbmFtZXMgKz0gInlhaG9vLWpwIgogIGVuZGlmCiAgCiAtVUlNX01PRFVMRV9NQU5BR0VSID0gJCh0b3BfYnVpbGRkaXIpL3VpbS91aW0tbW9kdWxlLW1hbmFnZXIKICtVSU1fTU9EVUxFX01BTkFHRVIgPSB1aW0tbW9kdWxlLW1hbmFnZXIKICBVSU1fTU9EVUxFX01BTkFHRVJfRU5WID0gXAorICAgICAgICAgTElCVUlNX1NZU1RFTV9TQ01fRklMRVM9JChhYnNfdG9wX3NyY2Rpcikvc2lnc2NoZW1lL2xpYiBcCiAgICAgICAgICBMSUJVSU1fU0NNX0ZJTEVTPSQoYWJzX3NyY2RpcikgXAotICAgICAgICAgTElCVUlNX1BMVUdJTl9MSUJfRElSPSQoYWJzX3RvcF9idWlsZGRpcikvdWltLy5saWJzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VpbS91aW1fMS44LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VpbS91aW1fMS44LjYuYmIKaW5kZXggMjcxNzE4ZS4uYWYyODg5NSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91aW0vdWltXzEuOC42LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdWltL3VpbV8xLjguNi5iYgpAQCAtMTcsMTEgKzE3LDE1IEBACiBERVBFTkRTX2FwcGVuZF9jbGFzcy10YXJnZXQgPSAiIGludGx0b29sLW5hdGl2ZSBndGsrIGd0ayszIHVpbS1uYXRpdmUgdGFrYW8tZm9udHMiCiAKIFJERVBFTkRTX3VpbSA9ICJsaWJ1aW0wIGxpYmVkaXQiCi1SREVQRU5EU191aW0tYW50aHkgPSAidGFrYW8tZm9udHMgYW50aHkgbGliYW50aHkwIGdsaWJjLXV0aWxzIGdsaWJjLWdjb252LWV1Yy1qcCIKK1JERVBFTkRTX3VpbS1hbnRoeSA9ICJ0YWthby1mb250cyBhbnRoeSBsaWJhbnRoeTAiCitSREVQRU5EU191aW0tYW50aHlfYXBwZW5kX2xpYmMtZ2xpYmMgPSAiIGdsaWJjLXV0aWxzIGdsaWJjLWdjb252LWV1Yy1qcCIKIAogTEVBRF9TT05BTUUgPSAibGlidWltLnNvLjEiCiAKLWluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnZXR0ZXh0IHFlbXUgZ3RrLWltbW9kdWxlcy1jYWNoZQoraW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnZXR0ZXh0IHFlbXUgZ3RrLWltbW9kdWxlcy1jYWNoZQorCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCiBHVEtJTU1PRFVMRVNfUEFDS0FHRVMgPSAidWltLWd0azIuMCB1aW0tZ3RrMyIKIAogRVhUUkFfT0VDT05GICs9ICItLWRpc2FibGUtZW1hY3MgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91bml4b2RiYy9maWxlcy9kby1ub3QtdXNlLWxpYmx0ZGwtc291cmNlLWRpcmVjdG9yeS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdW5peG9kYmMvZmlsZXMvZG8tbm90LXVzZS1saWJsdGRsLXNvdXJjZS1kaXJlY3RvcnkucGF0Y2gKaW5kZXggNjlkMjZhZC4uMjQ5OWNmZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91bml4b2RiYy9maWxlcy9kby1ub3QtdXNlLWxpYmx0ZGwtc291cmNlLWRpcmVjdG9yeS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VuaXhvZGJjL2ZpbGVzL2RvLW5vdC11c2UtbGlibHRkbC1zb3VyY2UtZGlyZWN0b3J5LnBhdGNoCkBAIC0xMywyMiArMTMsMjIgQEAKICAyIGZpbGVzIGNoYW5nZWQsIDMgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCi1pbmRleCBlODgxY2NhLi4xMzIxODAyIDEwMDY0NAoraW5kZXggNDYyODQwMS4uZTg5ODliZiAxMDA2NDQKIC0tLSBhL01ha2VmaWxlLmFtCiArKysgYi9NYWtlZmlsZS5hbQotQEAgLTUsNyArNSw2IEBAIFNVQkRJUlMgPSBcCitAQCAtMTEsNyArMTEsNiBAQCBTVUJESVJTID0gXAogIAlsb2cgXAogIAlsc3QgXAogIAlpbmkgXAotLSAgICBsaWJsdGRsIFwKKy0JbGlibHRkbCBcCiAgCW9kYmNpbnN0IFwKICAJRHJpdmVyTWFuYWdlciBcCiAgCWV4ZSBcCiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCAyMTg1MDJmLi5kNTBiN2FmIDEwMDY0NAoraW5kZXggZTRiY2RhZi4uNThhYTVjNSAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMTM2LDkgKzEzNiw3IEBAIGRubCBBQ19DT05GSUdfTUFDUk9fRElSKFtsaWJsdGRsL200XSkKK0BAIC0xNDQsOSArMTQ0LDcgQEAgZG5sIEFDX0NPTkZJR19NQUNST19ESVIoW2xpYmx0ZGwvbTRdKQogIGRubCBMVF9DT05GSUdfTFRETF9ESVIoW2xpYmx0ZGxdKQogIGRubCBMVERMX0lOSVQKICAKQEAgLTM5LDUgKzM5LDUgQEAKICBkbmwgU3Vic3RpdHV0ZSBJTkNMVERMIGFuZCBMSUJMVERMIGluIHRoZSBNYWtlZmlsZXMKICBBQ19TVUJTVChMVERMSU5DTCkKIC0tIAotMi44LjEKKzIuMTIuMwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VuaXhvZGJjL3VuaXhvZGJjXzIuMy40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91bml4b2RiYy91bml4b2RiY18yLjMuNC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY1N2YzNy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VuaXhvZGJjL3VuaXhvZGJjXzIuMy40LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotU1VNTUFSWSA9ICJBbiBPcGVuIFNvdXJjZSBPREJDIHN1Yi1zeXN0ZW0iCi1ERVNDUklQVElPTiA9ICJ1bml4T0RCQyBpcyBhbiBPcGVuIFNvdXJjZSBPREJDIHN1Yi1zeXN0ZW0gYW5kIGFuIE9EQkMgU0RLIFwKLWZvciBMaW51eCwgTWFjIE9TWCwgYW5kIFVOSVguIgotCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LnVuaXhvZGJjLm9yZy8iCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDdiMzdiZjgwYTNkZjVhNjViMzU1NDMzYWUzNmQyMDYiCi0KLURFUEVORFMgPSAibGlidG9vbCBteXNxbDUiCi0KLVNSQ19VUkkgPSAiZnRwOi8vZnRwLnVuaXhvZGJjLm9yZy9wdWIvdW5peE9EQkMvdW5peE9EQkMtJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL2RvLW5vdC11c2UtbGlibHRkbC1zb3VyY2UtZGlyZWN0b3J5LnBhdGNoIFwKLSIKLVNSQ19VUklbbWQ1c3VtXSA9ICJiZDI1ZDI2MWNhMTgwOGM5NDdjYjY4N2UyMDM0YmU4MSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIyZTE1MDlhOTZiYjE4ZDI0OGJmMDhlYWQwZDc0ODA0OTU3MzA0ZmY3YzZmOGIyZTU5NjUzMDljNjMyNDIxZTM5IgotCi1pbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAKLQotUyA9ICIke1dPUktESVJ9L3VuaXhPREJDLSR7UFZ9IgotCi1FWFRSQV9PRU1BS0UgKz0gIkxJQlM9LWxsdGRsIgotCi1kb19jb25maWd1cmVfcHJlcGVuZCgpIHsKLSAgICAjIG9sZCBtNCBmaWxlcyB3aWxsIGNhdXNlIGxpYnRvb2wgdmVyc2lvbiBkb24ndCBtYXRjaAotICAgIHJtIC1yZiBtNC8qCi0gICAgcm0gLWZyIGxpYmx0ZGwKLX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdW5peG9kYmMvdW5peG9kYmNfMi4zLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VuaXhvZGJjL3VuaXhvZGJjXzIuMy42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZDlkYjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VuaXhvZGJjL3VuaXhvZGJjXzIuMy42LmJiCkBAIC0wLDAgKzEsMjcgQEAKK1NVTU1BUlkgPSAiQW4gT3BlbiBTb3VyY2UgT0RCQyBzdWItc3lzdGVtIgorREVTQ1JJUFRJT04gPSAidW5peE9EQkMgaXMgYW4gT3BlbiBTb3VyY2UgT0RCQyBzdWItc3lzdGVtIGFuZCBhbiBPREJDIFNESyBcCitmb3IgTGludXgsIE1hYyBPU1gsIGFuZCBVTklYLiIKKworSE9NRVBBR0UgPSAiaHR0cDovL3d3dy51bml4b2RiYy5vcmcvIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQ3YjM3YmY4MGEzZGY1YTY1YjM1NTQzM2FlMzZkMjA2IgorCitERVBFTkRTID0gImxpYnRvb2wgbXlzcWw1IgorCitTUkNfVVJJID0gImZ0cDovL2Z0cC51bml4b2RiYy5vcmcvcHViL3VuaXhPREJDL3VuaXhPREJDLSR7UFZ9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9kby1ub3QtdXNlLWxpYmx0ZGwtc291cmNlLWRpcmVjdG9yeS5wYXRjaCBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiYTg2MjlmZDI5NTNiMDRiNDYzOWQwYTlkOGE1Y2Y5ZDEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiODhiNjM3ZjY0N2MwNTJlY2MzODYxYTNiYWEyNzVjM2I1MDNiMTkzYjZhNDlmZjhjMjhiMjU2ODY1NmQxNGQ2OSIKKworaW5oZXJpdCBhdXRvdG9vbHMtYnJva2Vuc2VwCisKK1MgPSAiJHtXT1JLRElSfS91bml4T0RCQy0ke1BWfSIKKworRVhUUkFfT0VNQUtFICs9ICJMSUJTPS1sbHRkbCIKKworZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7CisgICAgIyBvbGQgbTQgZmlsZXMgd2lsbCBjYXVzZSBsaWJ0b29sIHZlcnNpb24gZG9uJ3QgbWF0Y2gKKyAgICBybSAtcmYgbTQvKgorICAgIHJtIC1mciBsaWJsdGRsCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Vwb3dlci91cG93ZXJfMC45OS41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91cG93ZXIvdXBvd2VyXzAuOTkuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTMxNDUzNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Vwb3dlci91cG93ZXJfMC45OS41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiVVBvd2VyIGlzIGFuIGFic3RyYWN0aW9uIGZvciBlbnVtZXJhdGluZyBwb3dlciBkZXZpY2VzLCBsaXN0ZW5pbmcgdG8gZGV2aWNlIGV2ZW50cyBhbmQgcXVlcnlpbmcgaGlzdG9yeSBhbmQgc3RhdGlzdGljcy4gIgotTElDRU5TRSA9ICJHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0wZGU4ZmJmMWQ5N2ExNDBkMWQ5M2I5ZjE0ZGNmYmYwOCIKLQotREVQRU5EUyA9ICJpbnRsdG9vbC1uYXRpdmUgbGlidXNiMSBsaWJndWRldiBnbGliLTIuMCBkYnVzLWdsaWIgcG9sa2l0IgotCi1TUkNfVVJJID0gImh0dHA6Ly91cG93ZXIuZnJlZWRlc2t0b3Aub3JnL3JlbGVhc2VzLyR7QlBOfS0ke1BWfS50YXIueHoiCi1TUkNfVVJJW21kNXN1bV0gPSAiZWM1N2I0YjdiZjBhZjU2OGY5YTdhNTYwM2M5MjFkOTciCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNzg2MDU2NjRkMDI3Yzc4OGY2YWI2M2M1MDk1MGJlNmU4NmM2YmE1ZDAzMGM0Y2YzNWE2NjY0MzM3ZDg3ZjNiMiIKLQotaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGdldHRleHQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN5c3RlbWQKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCBkKX0iCi1QQUNLQUdFQ09ORklHW2lkZXZpY2VdID0gIi0td2l0aC1pZGV2aWNlLC0td2l0aG91dC1pZGV2aWNlLGxpYmltb2JpbGVkZXZpY2UgbGlicGxpc3QiCi1QQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIi0td2l0aC1zeXN0ZW1kdXRpbGRpcj0ke3N5c3RlbWRfdW5pdGRpcn0gLS13aXRoLXN5c3RlbWRzeXN0ZW11bml0ZGlyPSR7c3lzdGVtZF9zeXN0ZW1fdW5pdGRpcn0sIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLS13aXRob3V0LXN5c3RlbWR1dGlsZGlyIC0td2l0aG91dC1zeXN0ZW1kc3lzdGVtdW5pdGRpcixzeXN0ZW1kIgotCi1FWFRSQV9PRUNPTkYgPSAiIC0td2l0aC1iYWNrZW5kPWxpbnV4IgotCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAidXBvd2VyLnNlcnZpY2UiCi0jIGRvbid0IHN0YXJ0IG9uIGJvb3QgYnkgZGVmYXVsdCAtIGRidXMgZG9lcyB0aGF0IG9uIGRlbWFuZAotU1lTVEVNRF9BVVRPX0VOQUJMRSA9ICJkaXNhYmxlIgotCi1kb19jb25maWd1cmVfcHJlcGVuZCgpIHsKLSAgICBzZWQgLWkgLWUgczotbm9uZXQ6XDpnICR7U30vZG9jL21hbi9NYWtlZmlsZS5hbQotICAgIHNlZCAtaSAtZSAnczogZG9jIDogOmcnICR7U30vTWFrZWZpbGUuYW0KLX0KLQotUkRFUEVORFNfJHtQTn0gKz0gImRidXMiCi1SUkVDT01NRU5EU18ke1BOfSArPSAicG0tdXRpbHMiCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9kYnVzLTEvIFwKLSAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L3BvbGtpdC0xLyBcCi0gICAgICAgICAgICAgICAgJHtiYXNlX2xpYmRpcn0vdWRldi8qIFwKLSIKLQotRklMRVNfJHtQTn0tZGJnICs9ICIke2Jhc2VfbGliZGlyfS91ZGV2Ly5kZWJ1ZyIKLQotCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXBvd2VyL3Vwb3dlcl8wLjk5LjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Vwb3dlci91cG93ZXJfMC45OS43LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3M2ZiZTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Vwb3dlci91cG93ZXJfMC45OS43LmJiCkBAIC0wLDAgKzEsMzQgQEAKK0RFU0NSSVBUSU9OID0gIlVQb3dlciBpcyBhbiBhYnN0cmFjdGlvbiBmb3IgZW51bWVyYXRpbmcgcG93ZXIgZGV2aWNlcywgbGlzdGVuaW5nIHRvIGRldmljZSBldmVudHMgYW5kIHF1ZXJ5aW5nIGhpc3RvcnkgYW5kIHN0YXRpc3RpY3MuICIKK0xJQ0VOU0UgPSAiR1BMdjIrIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MGRlOGZiZjFkOTdhMTQwZDFkOTNiOWYxNGRjZmJmMDgiCisKK0RFUEVORFMgPSAiaW50bHRvb2wtbmF0aXZlIGxpYnVzYjEgbGliZ3VkZXYgZ2xpYi0yLjAgZGJ1cy1nbGliIHBvbGtpdCIKKworU1JDX1VSSSA9ICJodHRwOi8vdXBvd2VyLmZyZWVkZXNrdG9wLm9yZy9yZWxlYXNlcy8ke0JQTn0tJHtQVn0udGFyLnh6IgorU1JDX1VSSVttZDVzdW1dID0gIjIzNmJiNDM5ZDlmZjExNTE0NTBiM2Q4NTgyMzk5NTMyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjI0YmNjMmY2YWIyNWEyNTMzYmFjNzBiNTg3YmNiMDE5ZTU5MTI5MzA3NjkyMGY1YjVlMDRiZGVkYzE0MGE0MDEiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnZXR0ZXh0IGdvYmplY3QtaW50cm9zcGVjdGlvbiBzeXN0ZW1kCisKK1BBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgZCl9IgorUEFDS0FHRUNPTkZJR1tpZGV2aWNlXSA9ICItLXdpdGgtaWRldmljZSwtLXdpdGhvdXQtaWRldmljZSxsaWJpbW9iaWxlZGV2aWNlIGxpYnBsaXN0IgorUEFDS0FHRUNPTkZJR1tzeXN0ZW1kXSA9ICItLXdpdGgtc3lzdGVtZHV0aWxkaXI9JHtzeXN0ZW1kX3VuaXRkaXJ9IC0td2l0aC1zeXN0ZW1kc3lzdGVtdW5pdGRpcj0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9LCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIC0td2l0aG91dC1zeXN0ZW1kdXRpbGRpciAtLXdpdGhvdXQtc3lzdGVtZHN5c3RlbXVuaXRkaXIsc3lzdGVtZCIKKworRVhUUkFfT0VDT05GID0gIiAtLXdpdGgtYmFja2VuZD1saW51eCIKKworU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gInVwb3dlci5zZXJ2aWNlIgorIyBkb24ndCBzdGFydCBvbiBib290IGJ5IGRlZmF1bHQgLSBkYnVzIGRvZXMgdGhhdCBvbiBkZW1hbmQKK1NZU1RFTURfQVVUT19FTkFCTEUgPSAiZGlzYWJsZSIKKworZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7CisgICAgc2VkIC1pIC1lIHM6LW5vbmV0Olw6ZyAke1N9L2RvYy9tYW4vTWFrZWZpbGUuYW0KKyAgICBzZWQgLWkgLWUgJ3M6IGRvYyA6IDpnJyAke1N9L01ha2VmaWxlLmFtCit9CisKK1JERVBFTkRTXyR7UE59ICs9ICJkYnVzIgorUlJFQ09NTUVORFNfJHtQTn0gKz0gInBtLXV0aWxzIgorRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vZGJ1cy0xLyBcCisgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS9wb2xraXQtMS8gXAorICAgICAgICAgICAgICAgICR7YmFzZV9saWJkaXJ9L3VkZXYvKiBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VyaXBhcnNlci91cmlwYXJzZXJfMC44LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VyaXBhcnNlci91cmlwYXJzZXJfMC44LjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRiZTg1MwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXJpcGFyc2VyL3VyaXBhcnNlcl8wLjguNC5iYgpAQCAtMCwwICsxLDE0IEBACitTVU1NQVJZID0gIlJGQyAzOTg2IGNvbXBsaWFudCBVUkkgcGFyc2luZyBsaWJyYXJ5IgorSE9NRVBBR0UgPSAiaHR0cHM6Ly91cmlwYXJzZXIuZ2l0aHViLmlvIgorCitMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTcyYjBmOWM3NGFlOTZlZWFiOGNmMWJmM2VmZTA4ZGEyIgorCitTUkNfVVJJIDo9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vcHJvamVjdC91cmlwYXJzZXIvU291cmNlcy8ke1BWfS91cmlwYXJzZXItJHtQVn0udGFyLmJ6MiIKKworaW5oZXJpdCBhdXRvdG9vbHMKKworRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS10ZXN0IC0tZGlzYWJsZS1kb2MiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI5YWFiZGMzNjExNTQ2ZjU1M2Y0YWYzNzIxNjdkZTZkNiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjZTdjY2RhNDEzNjk3NDg4OTIzMWU4NDI2YTc4NWU3NTc4ZTY2YTYyODMwMDljZmQxM2YxYjI0YTVlNjU3YjIzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91c2ItbW9kZXN3aXRjaC91c2ItbW9kZXN3aXRjaF8yLjUuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdXNiLW1vZGVzd2l0Y2gvdXNiLW1vZGVzd2l0Y2hfMi41LjAuYmIKaW5kZXggZmY0MzlmMy4uYWMwZGY4YiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91c2ItbW9kZXN3aXRjaC91c2ItbW9kZXN3aXRjaF8yLjUuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3VzYi1tb2Rlc3dpdGNoL3VzYi1tb2Rlc3dpdGNoXzIuNS4wLmJiCkBAIC04LDcgKzgsOSBAQAogU1JDX1VSSVttZDVzdW1dID0gIjM4YWQ1YzlkNzBlMDYyMjdhMDAzNjFiZGMyYjFlNTY4IgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjMxYzBiZTI4MGQ0OWE5OWVjM2RjMGJlMzMyNWJlZjMyMGQ5YzA0YjUwNzE0ZWYwY2UxZTM2YTYxNGQ2ODc2MzMiCiAKLWluaGVyaXQgcGtnY29uZmlnCitpbmhlcml0IHBrZ2NvbmZpZyBzeXN0ZW1kCisKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJ1c2JfbW9kZXN3aXRjaEAuc2VydmljZSIKIAogRVhUUkFfT0VNQUtFID0gIlRDTD0ke2JpbmRpcn0vdGNsc2giCiAKQEAgLTE4LDQgKzIwLDggQEAKIAogZG9faW5zdGFsbCgpIHsKICAgICBvZV9ydW5tYWtlIERFU1RESVI9JHtEfSBpbnN0YWxsCisgICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsJ3N5c3RlbWQnLCd0cnVlJywnZmFsc2UnLGQpfTsgdGhlbgorICAgICAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgICAgICBpbnN0YWxsIC1tIDY0NCAke1N9L3VzYl9tb2Rlc3dpdGNoQC5zZXJ2aWNlICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIGZpCiB9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3V0aGFzaC91dGhhc2gvcnVuLXB0ZXN0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91dGhhc2gvdXRoYXNoL3J1bi1wdGVzdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNDA3MWE2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91dGhhc2gvdXRoYXNoL3J1bi1wdGVzdApAQCAtMCwwICsxLDEwIEBACisjIS9iaW4vc2gKKworY2QgdGVzdHMKK2ZvciBpIGluIHRlc3QqWzAtOV0gOyBkbworICAgIGlmIC4vJHtpfSB8IGNtcCAtcyAiJHtpfS5hbnMiIC0gOyB0aGVuCisgICAgICAgIGVjaG8gIlBBU1M6ICR7aX0iCisgICAgZWxzZQorICAgICAgICBlY2hvICJGQUlMOiAke2l9IgorICAgIGZpCitkb25lCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3V0aGFzaC91dGhhc2hfMS45LjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3V0aGFzaC91dGhhc2hfMS45LjcuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyYTlmMmEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91dGhhc2gvdXRoYXNoXzEuOS43LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotU1VNTUFSWSA9ICJIYXNoIHRhYmxlIGZvciBDIHN0cnVjdHVyZXMiCi1TRUNUSU9OID0gImJhc2UiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NTY0ZjljNDQ5MjdmNjI0N2RjODEwYmY1NTdlMmIyNDAiCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9LyR7QlBOfS8ke0JQfS50YXIuYnoyIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMWYxNGJiZWU3ZWU3M2VkMGNlYjM1NDlmOGNmMzc4YjQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOTU2ZjVjOTk3OTgzNDljNDEzMjc1ZmU0YzlmZjEyOGQ3MmUyODA2NTVkYWRiZTQzNjVmOGU5ZmJkYTkxMzkzZiIKLQotZG9faW5zdGFsbCAoKSB7Ci0gICAgaW5zdGFsbCAtZG03NTUgJHtEfSR7aW5jbHVkZWRpcn0KLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtTfS9zcmMvKi5oICR7RH0ke2luY2x1ZGVkaXJ9Ci19Ci0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91dGhhc2gvdXRoYXNoXzIuMC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC91dGhhc2gvdXRoYXNoXzIuMC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjZGQxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3V0aGFzaC91dGhhc2hfMi4wLjIuYmIKQEAgLTAsMCArMSw0NiBAQAorU1VNTUFSWSA9ICJIYXNoIHRhYmxlIGFuZCBsaW5rZWQgbGlzdCBmb3IgQyBzdHJ1Y3R1cmVzIgorREVTQ1JJUFRJT04gPSAiIHV0aGFzaC1kZXYgcHJvdmlkZXMgYSBoYXNoIHRhYmxlIGltcGxlbWVudGF0aW9uIHVzaW5nIEMgcHJlcHJvY2Vzc29yIG1hY3Jvcy5cblwKKyBUaGlzIHBhY2thZ2UgYWxzbyBpbmNsdWRlczpcblwKKyAgKiB1dGxpc3QuaCBwcm92aWRlcyBsaW5rZWQgbGlzdCBtYWNyb3MgZm9yIEMgc3RydWN0dXJlc1xuXAorICAqIHV0YXJyYXkuaCBpbXBsZW1lbnRzIGR5bmFtaWMgYXJyYXlzIHVzaW5nIG1hY3Jvc1xuXAorICAqIHV0c3RyaW5nLmggaW1wbGVtZW50cyBhIGJhc2ljIGR5bmFtaWMgc3RyaW5nXG5cCisiCitIT01FUEFHRSA9ICJodHRwczovL3Ryb3lkaGFuc29uLmdpdGh1Yi5pby91dGhhc2gvIgorU0VDVElPTiA9ICJiYXNlIgorTElDRU5TRSA9ICJCU0QtMS1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT01Y2MxZjFlNGM3MWYxOWY1ODA0NTg1ODY3NTZjMDJiNCIKKworU1JDX1VSSSA9ICJcCisgICAgaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lkaGFuc29uLyR7QlBOfS9hcmNoaXZlL3Yke1BWfS50YXIuZ3o7ZG93bmxvYWRmaWxlbmFtZT0ke0JQfS50YXIuZ3ogXAorICAgIGZpbGU6Ly9ydW4tcHRlc3QgXAorIgorVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHBzOi8vZ2l0aHViLmNvbS90cm95ZGhhbnNvbi8ke0JQTn0vcmVsZWFzZXMiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJkMDg2MzJhNTg2NzQyNzRjOWNkODdlMjkzMGY1Njk2YSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzNGEzMWQ1MWRkN2E4Mzk4MTljZWNkNmY0NjA0OWI0ZmZlMDMxZDdmMzE0N2Q5YTA0MmY1NTA0ZmRiMTM0OGQxIgorCitpbmhlcml0IHB0ZXN0CisKK2RvX2NvbXBpbGVbbm9leGVjXSA9ICIxIgorCitkb19jb21waWxlX3B0ZXN0KCkgeworICAgIG9lX3J1bm1ha2UgLUMgdGVzdHMgdGVzdHNfb25seSBURVNUX1RBUkdFVD0KK30KKworZG9faW5zdGFsbCAoKSB7CisgICAgaW5zdGFsbCAtZG03NTUgJHtEfSR7aW5jbHVkZWRpcn0KKyAgICBpbnN0YWxsIC1tMDY0NCBzcmMvKi5oICR7RH0ke2luY2x1ZGVkaXJ9Cit9CisKK2RvX2luc3RhbGxfcHRlc3QoKSB7CisgICAgaW5zdGFsbCAtZG03NTUgJHtEfSR7UFRFU1RfUEFUSH0vdGVzdHMKKyAgICBpbnN0YWxsIC1tMDc1NSB0ZXN0cy90ZXN0KlswLTldICR7RH0ke1BURVNUX1BBVEh9L3Rlc3RzCisgICAgaW5zdGFsbCAtbTA2NDQgdGVzdHMvdGVzdCpbMC05XS5hbnMgJHtEfSR7UFRFU1RfUEFUSH0vdGVzdHMKKyAgICBpbnN0YWxsIC1tMDY0NCB0ZXN0cy90ZXN0KlswLTldLmRhdCAke0R9JHtQVEVTVF9QQVRIfS90ZXN0cworfQorCisjIFRoZSBtYWluIHBhY2thZ2UgaXMgZW1wdHkgYW5kIG5vbi1leGlzdGVudCwgc28gLWRldgorIyBzaG91bGQgbm90IGRlcGVuZCBvbiBpdC4uLgorUkRFUEVORFNfJHtQTn0tZGV2ID0gIiIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Zib3hndWVzdGRyaXZlcnMvdmJveGd1ZXN0ZHJpdmVyc181LjEuMjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Zib3hndWVzdGRyaXZlcnMvdmJveGd1ZXN0ZHJpdmVyc181LjEuMjYuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkZWZlMDMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC92Ym94Z3Vlc3Rkcml2ZXJzL3Zib3hndWVzdGRyaXZlcnNfNS4xLjI2LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotU1VNTUFSWSA9ICJWaXJ0dWFsQm94IExpbnV4IEd1ZXN0IERyaXZlcnMiCi1TRUNUSU9OID0gImNvcmUiCi1MSUNFTlNFID0gIkdQTC0yLjAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8ke1dPUktESVJ9LyR7VkJPWF9OQU1FfS9DT1BZSU5HO21kNT1lMTk3ZDU2NDFiYjM1YjI5ZDQ2Y2E4YzRiZjdmMjY2MCIKLQotREVQRU5EUyA9ICJ2aXJ0dWFsL2tlcm5lbCIKLQotaW5oZXJpdCBtb2R1bGUga2VybmVsLW1vZHVsZS1zcGxpdAotCi1DT01QQVRJQkxFX01BQ0hJTkUgPSAiKHFlbXV4ODZ8cWVtdXg4Ni02NCkiCi0KLVZCT1hfTkFNRSA9ICJWaXJ0dWFsQm94LSR7UFZ9IgotCi1TUkNfVVJJID0gImh0dHA6Ly9kb3dubG9hZC52aXJ0dWFsYm94Lm9yZy92aXJ0dWFsYm94LyR7UFZ9LyR7VkJPWF9OQU1FfS50YXIuYnoyIFwKLSAgICAgICAgICAgZmlsZTovL01ha2VmaWxlLnV0aWxzIFwKLSIKLVNSQ19VUklbbWQ1c3VtXSA9ICJkM2FlYzgxOTBjNjQ5ZDdlMGQ5MmJhMzc0Nzc5ZGZlMyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJiNTcxNTAzNWU2ODFhMTFlZjE0NzVmODNmOTUwM2QzNGEwMGYwMjc2Yjg5YzU3MmVlYmVjMzYzZGRhODBjOGE5IgotCi1TID0gIiR7V09SS0RJUn0vdmJveF9tb2R1bGUiCi0KLWV4cG9ydCBCVUlMRF9UQVJHRVRfQVJDSD0iJHtBUkNIfSIKLWV4cG9ydCBCVUlMRF9UQVJHRVRfQVJDSF94ODYtNjQ9ImFtZDY0IgotZXhwb3J0IEtFUk5fRElSPSIke1NUQUdJTkdfS0VSTkVMX0RJUn0iCi0KLWFkZHRhc2sgZXhwb3J0X3NvdXJjZXMgYmVmb3JlIGRvX3BhdGNoIGFmdGVyIGRvX3VucGFjawotCi1kb19leHBvcnRfc291cmNlcygpIHsKLSAgICBta2RpciAtcCAiJHtTfSIKLSAgICAke1dPUktESVJ9LyR7VkJPWF9OQU1FfS9zcmMvVkJveC9BZGRpdGlvbnMvbGludXgvZXhwb3J0X21vZHVsZXMgJHtUfS92Ym94X21vZHVsZXMudGFyLmd6Ci0gICAgdGFyIC1DICIke1N9IiAteHpmICR7VH0vdmJveF9tb2R1bGVzLnRhci5negotCi0gICAgIyBhZGQgYSBtb3VudCB1dGlsaXR5IHRvIHVzZSBzaGFyZWQgZm9sZGVyIGZyb20gVkJveCBBZGRpdGlvbiBTb3VyY2UgQ29kZQotICAgIG1rZGlyIC1wICIke1N9L3V0aWxzIgotICAgIGluc3RhbGwgJHtXT1JLRElSfS8ke1ZCT1hfTkFNRX0vc3JjL1ZCb3gvQWRkaXRpb25zL2xpbnV4L3NoYXJlZGZvbGRlcnMvbW91bnQudmJveHNmLmMgJHtTfS91dGlscwotICAgIGluc3RhbGwgJHtXT1JLRElSfS8ke1ZCT1hfTkFNRX0vc3JjL1ZCb3gvQWRkaXRpb25zL2xpbnV4L3NoYXJlZGZvbGRlcnMvdmJzZm1vdW50LmMgJHtTfS91dGlscwotICAgIGluc3RhbGwgJHtTfS8uLi9NYWtlZmlsZS51dGlscyAke1N9L3V0aWxzL01ha2VmaWxlCi0KLX0KLQotIyBjb21waWxlIGFuZCBpbnN0YWxsIG1vdW50IHV0aWxpdHkKLWRvX2NvbXBpbGVfYXBwZW5kKCkgewotICAgIG9lX3J1bm1ha2UgJ0xEPSR7Q0N9JyAnTERGTEFHUz0ke0xERkxBR1N9JyAtQyAke1N9L3V0aWxzCi0gICAgaWYgISBbIC1lIHZib3hndWVzdC5rbyAtYSAtZSB2Ym94c2Yua28gLWEgLWUgdmJveHZpZGVvLmtvIF0gOyB0aGVuCi0gICAgICAgIGVjaG8gIkVSUk9SOiBPbmUgb2YgdmJveCoua28gbW9kdWxlcyB3YXNuJ3QgYnVpbHQiCi0gICAgICAgIGV4aXQgMQotICAgIGZpCi19Ci0KLW1vZHVsZV9kb19pbnN0YWxsKCkgewotICAgIE1PRFVMRV9ESVI9JHtEfSR7bm9uYXJjaF9iYXNlX2xpYmRpcn0vbW9kdWxlcy8ke0tFUk5FTF9WRVJTSU9OfS9rZXJuZWwvbWlzYwotICAgIGluc3RhbGwgLWQgJE1PRFVMRV9ESVIKLSAgICBpbnN0YWxsIC1tIDY0NCB2Ym94Z3Vlc3Qua28gJE1PRFVMRV9ESVIKLSAgICBpbnN0YWxsIC1tIDY0NCB2Ym94c2Yua28gJE1PRFVMRV9ESVIKLSAgICBpbnN0YWxsIC1tIDY0NCB2Ym94dmlkZW8ua28gJE1PRFVMRV9ESVIKLX0KLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtiYXNlX3NiaW5kaXJ9Ci0gICAgaW5zdGFsbCAtbSA3NTUgJHtTfS91dGlscy9tb3VudC52Ym94c2YgJHtEfSR7YmFzZV9zYmluZGlyfQotfQotCi1QQUNLQUdFUyArPSAia2VybmVsLW1vZHVsZS12Ym94Z3Vlc3Qga2VybmVsLW1vZHVsZS12Ym94c2Yga2VybmVsLW1vZHVsZS12Ym94dmlkZW8iCi1SUkVDT01NRU5EU18ke1BOfSArPSAia2VybmVsLW1vZHVsZS12Ym94Z3Vlc3Qga2VybmVsLW1vZHVsZS12Ym94c2Yga2VybmVsLW1vZHVsZS12Ym94dmlkZW8iCi0KLUZJTEVTXyR7UE59ID0gIiR7YmFzZV9zYmluZGlyfSIKLQotIyBhdXRvbG9hZCBpZiBpbnN0YWxsZWQKLUtFUk5FTF9NT0RVTEVfQVVUT0xPQUQgKz0gInZib3hndWVzdCB2Ym94c2YgdmJveHZpZGVvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC92Ym94Z3Vlc3Rkcml2ZXJzL3Zib3hndWVzdGRyaXZlcnNfNS4yLjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3Zib3hndWVzdGRyaXZlcnMvdmJveGd1ZXN0ZHJpdmVyc181LjIuOC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDBkYjRkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC92Ym94Z3Vlc3Rkcml2ZXJzL3Zib3hndWVzdGRyaXZlcnNfNS4yLjguYmIKQEAgLTAsMCArMSw3OCBAQAorU1VNTUFSWSA9ICJWaXJ0dWFsQm94IExpbnV4IEd1ZXN0IERyaXZlcnMiCitTRUNUSU9OID0gImNvcmUiCitMSUNFTlNFID0gIkdQTC0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8ke1dPUktESVJ9LyR7VkJPWF9OQU1FfS9DT1BZSU5HO21kNT1lMTk3ZDU2NDFiYjM1YjI5ZDQ2Y2E4YzRiZjdmMjY2MCIKKworREVQRU5EUyA9ICJ2aXJ0dWFsL2tlcm5lbCIKKworaW5oZXJpdCBtb2R1bGUga2VybmVsLW1vZHVsZS1zcGxpdAorCitDT01QQVRJQkxFX01BQ0hJTkUgPSAiKHFlbXV4ODZ8cWVtdXg4Ni02NCkiCisKK1ZCT1hfTkFNRSA9ICJWaXJ0dWFsQm94LSR7UFZ9IgorCitTUkNfVVJJID0gImh0dHA6Ly9kb3dubG9hZC52aXJ0dWFsYm94Lm9yZy92aXJ0dWFsYm94LyR7UFZ9LyR7VkJPWF9OQU1FfS50YXIuYnoyIFwKKyAgICBmaWxlOi8vTWFrZWZpbGUudXRpbHMgXAorIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZTczMWVhOWM1YzMxMDk2ZWM0YzJhM2JmYmEyNjY2NWMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZWUyNzU5ZDQ3YjBiNGFjODFiOGI2NzFjOTQ4NWM4N2ZiMmRiMTJjMDk3YjNlN2U2OWI5NGMxMjkxYTgwODRlOCIKKworUyA9ICIke1dPUktESVJ9L3Zib3hfbW9kdWxlIgorCitleHBvcnQgQlVJTERfVEFSR0VUX0FSQ0g9IiR7QVJDSH0iCitleHBvcnQgQlVJTERfVEFSR0VUX0FSQ0hfeDg2LTY0PSJhbWQ2NCIKKworRVhUUkFfT0VNQUtFICs9ICJLRVJOX0RJUj0nJHtXT1JLRElSfS8ke0tFUk5FTF9WRVJTSU9OfS9idWlsZCciCisKK2FkZHRhc2sgZXhwb3J0X3NvdXJjZXMgYmVmb3JlIGRvX3BhdGNoIGFmdGVyIGRvX3VucGFjaworCitkb19leHBvcnRfc291cmNlcygpIHsKKyAgICBta2RpciAtcCAiJHtTfSIKKyAgICAke1dPUktESVJ9LyR7VkJPWF9OQU1FfS9zcmMvVkJveC9BZGRpdGlvbnMvbGludXgvZXhwb3J0X21vZHVsZXMuc2ggJHtUfS92Ym94X21vZHVsZXMudGFyLmd6CisgICAgdGFyIC1DICIke1N9IiAteHpmICR7VH0vdmJveF9tb2R1bGVzLnRhci5negorCisgICAgIyBhZGQgYSBtb3VudCB1dGlsaXR5IHRvIHVzZSBzaGFyZWQgZm9sZGVyIGZyb20gVkJveCBBZGRpdGlvbiBTb3VyY2UgQ29kZQorICAgIG1rZGlyIC1wICIke1N9L3V0aWxzIgorICAgIGluc3RhbGwgJHtXT1JLRElSfS8ke1ZCT1hfTkFNRX0vc3JjL1ZCb3gvQWRkaXRpb25zL2xpbnV4L3NoYXJlZGZvbGRlcnMvbW91bnQudmJveHNmLmMgJHtTfS91dGlscworICAgIGluc3RhbGwgJHtXT1JLRElSfS8ke1ZCT1hfTkFNRX0vc3JjL1ZCb3gvQWRkaXRpb25zL2xpbnV4L3NoYXJlZGZvbGRlcnMvdmJzZm1vdW50LmMgJHtTfS91dGlscworICAgIGluc3RhbGwgJHtTfS8uLi9NYWtlZmlsZS51dGlscyAke1N9L3V0aWxzL01ha2VmaWxlCisKK30KKworZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7CisgICAgIyB2Ym94Z3Vlc3Rkcml2ZXJzLzUuMi42LXIwL3Zib3hfbW9kdWxlL3Zib3hndWVzdC9NYWtlZmlsZS5pbmNsdWRlLmhlYWRlcjo5OTogKioqIFRoZSB2YXJpYWJsZSBLRVJOX0RJUiBtdXN0IGJlIGEga2VybmVsIGJ1aWxkIGZvbGRlciBhbmQgZW5kIHdpdGggL2J1aWxkIHdpdGhvdXQgYSB0cmFpbGluZyBzbGFzaCwgb3IgS0VSTl9WRVIgbXVzdCBiZSBzZXQuICBTdG9wLgorICAgICMgdmJveGd1ZXN0ZHJpdmVycy81LjIuNi1yMC92Ym94X21vZHVsZS92Ym94Z3Vlc3QvTWFrZWZpbGUuaW5jbHVkZS5oZWFkZXI6MTA4OiAqKiogVGhlIGtlcm5lbCBidWlsZCBmb2xkZXIgcGF0aCBtdXN0IGVuZCBpbiA8dmVyc2lvbj4vYnVpbGQsIG9yIHRoZSB2YXJpYWJsZSBLRVJOX1ZFUiBtdXN0IGJlIHNldC4gIFN0b3AuCisgICAgbWtkaXIgLXAgJHtXT1JLRElSfS8ke0tFUk5FTF9WRVJTSU9OfQorICAgIGxuIC1zbmYgJHtTVEFHSU5HX0tFUk5FTF9ESVJ9ICR7V09SS0RJUn0vJHtLRVJORUxfVkVSU0lPTn0vYnVpbGQKK30KKworIyBjb21waWxlIGFuZCBpbnN0YWxsIG1vdW50IHV0aWxpdHkKK2RvX2NvbXBpbGVfYXBwZW5kKCkgeworICAgIG9lX3J1bm1ha2UgJ0xEPSR7Q0N9JyAnTERGTEFHUz0ke0xERkxBR1N9JyAtQyAke1N9L3V0aWxzCisgICAgaWYgISBbIC1lIHZib3hndWVzdC5rbyAtYSAtZSB2Ym94c2Yua28gLWEgLWUgdmJveHZpZGVvLmtvIF0gOyB0aGVuCisgICAgICAgIGVjaG8gIkVSUk9SOiBPbmUgb2YgdmJveCoua28gbW9kdWxlcyB3YXNuJ3QgYnVpbHQiCisgICAgICAgIGV4aXQgMQorICAgIGZpCit9CisKK21vZHVsZV9kb19pbnN0YWxsKCkgeworICAgIE1PRFVMRV9ESVI9JHtEfSR7bm9uYXJjaF9iYXNlX2xpYmRpcn0vbW9kdWxlcy8ke0tFUk5FTF9WRVJTSU9OfS9rZXJuZWwvbWlzYworICAgIGluc3RhbGwgLWQgJE1PRFVMRV9ESVIKKyAgICBpbnN0YWxsIC1tIDY0NCB2Ym94Z3Vlc3Qua28gJE1PRFVMRV9ESVIKKyAgICBpbnN0YWxsIC1tIDY0NCB2Ym94c2Yua28gJE1PRFVMRV9ESVIKKyAgICBpbnN0YWxsIC1tIDY0NCB2Ym94dmlkZW8ua28gJE1PRFVMRV9ESVIKK30KKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9JHtiYXNlX3NiaW5kaXJ9CisgICAgaW5zdGFsbCAtbSA3NTUgJHtTfS91dGlscy9tb3VudC52Ym94c2YgJHtEfSR7YmFzZV9zYmluZGlyfQorfQorCitQQUNLQUdFUyArPSAia2VybmVsLW1vZHVsZS12Ym94Z3Vlc3Qga2VybmVsLW1vZHVsZS12Ym94c2Yga2VybmVsLW1vZHVsZS12Ym94dmlkZW8iCitSUkVDT01NRU5EU18ke1BOfSArPSAia2VybmVsLW1vZHVsZS12Ym94Z3Vlc3Qga2VybmVsLW1vZHVsZS12Ym94c2Yga2VybmVsLW1vZHVsZS12Ym94dmlkZW8iCisKK0ZJTEVTXyR7UE59ID0gIiR7YmFzZV9zYmluZGlyfSIKKworIyBhdXRvbG9hZCBpZiBpbnN0YWxsZWQKK0tFUk5FTF9NT0RVTEVfQVVUT0xPQUQgKz0gInZib3hndWVzdCB2Ym94c2YgdmJveHZpZGVvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC92aW0vZmlsZXMvQ1ZFLTIwMTctMTcwODcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3ZpbS9maWxlcy9DVkUtMjAxNy0xNzA4Ny5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzdiOWJhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC92aW0vZmlsZXMvQ1ZFLTIwMTctMTcwODcucGF0Y2gKQEAgLTAsMCArMSw3MCBAQAorRnJvbSA5YzExZjgwMzM5MzcyYjdhYTJmNDMxNTNkNTc0ZjJiNWFiYjc5NzA4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTGkgWmhvdSA8bGkuemhvdUB3aW5kcml2ZXIuY29tPgorRGF0ZTogU3VuLCAxNyBEZWMgMjAxNyAyMzowOTozNSAtMDgwMAorU3ViamVjdDogW1BBVENIXSB2aW06IHBhdGNoIDguMC4xMjYzOiBvdGhlcnMgY2FuIHJlYWQgdGhlIHN3YXAgZmlsZSBpZiBhIHVzZXIKKyBpcyBjYXJlbGVzcworCitQcm9ibGVtOiAgICBPdGhlcnMgY2FuIHJlYWQgdGhlIHN3YXAgZmlsZSBpZiBhIHVzZXIgaXMgY2FyZWxlc3Mgd2l0aCBoaXMKKyAgICAgICAgICAgIHByaW1hcnkgZ3JvdXAuCitTb2x1dGlvbjogICBJZiB0aGUgZ3JvdXAgcGVybWlzc2lvbiBhbGxvd3MgZm9yIHJlYWRpbmcgYnV0IHRoZSB3b3JsZAorICAgICAgICAgICAgcGVybWlzc2lvbnMgZG9lc24ndCwgbWFrZSBzdXJlIHRoZSBncm91cCBpcyByaWdodC4KKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAorQ1ZFOiBDVkUtMjAxNy0xNzA4NworU2lnbmVkLW9mZi1ieTogTGkgWmhvdSA8bGkuemhvdUB3aW5kcml2ZXIuY29tPgorLS0tCisgc3JjL2ZpbGVpby5jICB8IDI0ICsrKysrKysrKysrKysrKysrKysrKysrLQorIHNyYy92ZXJzaW9uLmMgfCAgMiArKworIDIgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2ZpbGVpby5jIGIvc3JjL2ZpbGVpby5jCitpbmRleCBmNTRmYjg0NjUuLjJjNzc0MGFmOSAxMDA2NDQKKy0tLSBhL3NyYy9maWxlaW8uYworKysrIGIvc3JjL2ZpbGVpby5jCitAQCAtNzE2LDcgKzcxNiwyOSBAQCByZWFkZmlsZSgKKyAJLyogU2V0IHN3YXAgZmlsZSBwcm90ZWN0aW9uIGJpdHMgYWZ0ZXIgY3JlYXRpbmcgaXQuICovCisgCWlmIChzd2FwX21vZGUgPiAwICYmIGN1cmJ1Zi0+Yl9tbC5tbF9tZnAgIT0gTlVMTAorIAkJCSAgJiYgY3VyYnVmLT5iX21sLm1sX21mcC0+bWZfZm5hbWUgIT0gTlVMTCkKKy0JICAgICh2b2lkKW1jaF9zZXRwZXJtKGN1cmJ1Zi0+Yl9tbC5tbF9tZnAtPm1mX2ZuYW1lLCAobG9uZylzd2FwX21vZGUpOworKwl7CisrCSAgICBjaGFyX3UgKnN3YXBfZm5hbWUgPSBjdXJidWYtPmJfbWwubWxfbWZwLT5tZl9mbmFtZTsKKysKKysJICAgIC8qCisrCSAgICAgKiBJZiB0aGUgZ3JvdXAtcmVhZCBiaXQgaXMgc2V0IGJ1dCBub3QgdGhlIHdvcmxkLXJlYWQgYml0LCB0aGVuCisrCSAgICAgKiB0aGUgZ3JvdXAgbXVzdCBiZSBlcXVhbCB0byB0aGUgZ3JvdXAgb2YgdGhlIG9yaWdpbmFsIGZpbGUuICBJZgorKwkgICAgICogd2UgY2FuJ3QgbWFrZSB0aGF0IGhhcHBlbiB0aGVuIHJlc2V0IHRoZSBncm91cC1yZWFkIGJpdC4gIFRoaXMKKysJICAgICAqIGF2b2lkcyBtYWtpbmcgdGhlIHN3YXAgZmlsZSByZWFkYWJsZSB0byBtb3JlIHVzZXJzIHdoZW4gdGhlCisrCSAgICAgKiBwcmltYXJ5IGdyb3VwIG9mIHRoZSB1c2VyIGlzIHRvbyBwZXJtaXNzaXZlLgorKwkgICAgICovCisrCSAgICBpZiAoKHN3YXBfbW9kZSAmIDA0NCkgPT0gMDQwKQorKwkgICAgeworKwkJc3RhdF9UCXN3YXBfc3Q7CisrCisrCQlpZiAobWNoX3N0YXQoKGNoYXIgKilzd2FwX2ZuYW1lLCAmc3dhcF9zdCkgPj0gMAorKwkJCSYmIHN0LnN0X2dpZCAhPSBzd2FwX3N0LnN0X2dpZAorKwkJCSYmIGZjaG93bihjdXJidWYtPmJfbWwubWxfbWZwLT5tZl9mZCwgLTEsIHN0LnN0X2dpZCkKKysJCQkJCQkJCQkgPT0gLTEpCisrCQkgICAgc3dhcF9tb2RlICY9IDA2MDA7CisrCSAgICB9CisrCisrCSAgICAodm9pZCltY2hfc2V0cGVybShzd2FwX2ZuYW1lLCAobG9uZylzd2FwX21vZGUpOworKwl9CisgI2VuZGlmCisgICAgIH0KKyAKK2RpZmYgLS1naXQgYS9zcmMvdmVyc2lvbi5jIGIvc3JjL3ZlcnNpb24uYworaW5kZXggYTVjYjA3OGYwLi41YzBkZjQ3NWYgMTAwNjQ0CistLS0gYS9zcmMvdmVyc2lvbi5jCisrKysgYi9zcmMvdmVyc2lvbi5jCitAQCAtNzcwLDYgKzc3MCw4IEBAIHN0YXRpYyBjaGFyICooZmVhdHVyZXNbXSkgPQorIHN0YXRpYyBpbnQgaW5jbHVkZWRfcGF0Y2hlc1tdID0KKyB7ICAgLyogQWRkIG5ldyBwYXRjaCBudW1iZXIgYmVsb3cgdGhpcyBsaW5lICovCisgLyoqLworKyAgICAxMjYzLAorKy8qKi8KKyAgICAgOTgzLAorIC8qKi8KKyAgICAgOTgyLAorLS0gCisyLjExLjAKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC92aW0vdmltXzguMC4wOTgzLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC92aW0vdmltXzguMC4wOTgzLmJiCmluZGV4IDQwN2NlNWUuLjQ0Yzg2OGMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvdmltL3ZpbV84LjAuMDk4My5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3ZpbS92aW1fOC4wLjA5ODMuYmIKQEAgLTksNiArOSw3IEBACiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vdmltL3ZpbS5naXQgXAogICAgICAgICAgICBmaWxlOi8vZGlzYWJsZV9hY2xfaGVhZGVyX2NoZWNrLnBhdGNoO3BhdGNoZGlyPS4uIFwKICAgICAgICAgICAgZmlsZTovL3ZpbS1hZGQta25vYi13aGV0aGVyLWVsZi5oLWFyZS1jaGVja2VkLnBhdGNoO3BhdGNoZGlyPS4uIFwKKyAgICAgICAgICAgZmlsZTovL0NWRS0yMDE3LTE3MDg3LnBhdGNoO3BhdGNoZGlyPS4uIFwKICIKIFNSQ1JFViA9ICIzZjlhMWZmMTQxNDEyZTllODVmN2RmZjQ3ZDAyOTQ2Y2I5YmU5MjI4IgogCkBAIC0xNiw4ICsxNyw5IEBACiAKIFZJTURJUiA9ICJ2aW0ke0BkLmdldFZhcignUFYnKS5zcGxpdCgnLicpWzBdfSR7QGQuZ2V0VmFyKCdQVicpLnNwbGl0KCcuJylbMV19IgogCi1pbmhlcml0IGF1dG90b29scyB1cGRhdGUtYWx0ZXJuYXRpdmVzCi1pbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAKK2luaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCB1cGRhdGUtYWx0ZXJuYXRpdmVzCisKK0NMRUFOQlJPS0VOID0gIjEiCiAKICMgdmltIGNvbmZpZ3VyZS5pbiBjb250YWlucyBmdW5jdGlvbnMgd2hpY2ggZ290ICdkcm9wcGVkJyBieSBhdXRvdG9vbHMuYmJjbGFzcwogZG9fY29uZmlndXJlICgpIHsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvd2Vic29ja2V0cHAvd2Vic29ja2V0cHAtMC43LjAvMDAwMS1GaXgtaXNzdWUtNTk5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC93ZWJzb2NrZXRwcC93ZWJzb2NrZXRwcC0wLjcuMC8wMDAxLUZpeC1pc3N1ZS01OTkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE5ZWE3NAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvd2Vic29ja2V0cHAvd2Vic29ja2V0cHAtMC43LjAvMDAwMS1GaXgtaXNzdWUtNTk5LnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK0Zyb20gMWRkMDcxMTNmMmE3NDg5NDQ0YTg5OTBhOTViZTQyZTAzNWY4ZTlkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEt1cnQgUm9lY2t4IDxrcm9lY2t4QGRlYmlhbi5vcmc+CitEYXRlOiBUdWUsIDEgTm92IDIwMTYgMTI6NTc6MzUgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IGlzc3VlICM1OTkKK0ZvcndhcmRlZDogaHR0cHM6Ly9naXRodWIuY29tL3phcGhveWQvd2Vic29ja2V0cHAvcHVsbC82MDAKKworLS0tCisgd2Vic29ja2V0cHAvdHJhbnNwb3J0L2FzaW8vc2VjdXJpdHkvdGxzLmhwcCB8IDQgLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvd2Vic29ja2V0cHAvdHJhbnNwb3J0L2FzaW8vc2VjdXJpdHkvdGxzLmhwcCBiL3dlYnNvY2tldHBwL3RyYW5zcG9ydC9hc2lvL3NlY3VyaXR5L3Rscy5ocHAKK2luZGV4IDdiMzJkYjguLmE4YWFmZWMgMTAwNjQ0CistLS0gYS93ZWJzb2NrZXRwcC90cmFuc3BvcnQvYXNpby9zZWN1cml0eS90bHMuaHBwCisrKysgYi93ZWJzb2NrZXRwcC90cmFuc3BvcnQvYXNpby9zZWN1cml0eS90bHMuaHBwCitAQCAtMzU1LDEzICszNTUsOSBAQCBwcm90ZWN0ZWQ6CisgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBFcnJvckNvZGVUeXBlPgorICAgICBsaWI6OmVycm9yX2NvZGUgdHJhbnNsYXRlX2VjKEVycm9yQ29kZVR5cGUgZWMpIHsKKyAgICAgICAgIGlmIChlYy5jYXRlZ29yeSgpID09IGxpYjo6YXNpbzo6ZXJyb3I6OmdldF9zc2xfY2F0ZWdvcnkoKSkgeworLSAgICAgICAgICAgIGlmIChFUlJfR0VUX1JFQVNPTihlYy52YWx1ZSgpKSA9PSBTU0xfUl9TSE9SVF9SRUFEKSB7CistICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2Vycm9yX2NvZGUodHJhbnNwb3J0OjplcnJvcjo6dGxzX3Nob3J0X3JlYWQpOworLSAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgaXQgaXMgYSBUTFMgcmVsYXRlZCBlcnJvciwgYnV0IG90aGVyd2lzZSBkb24ndCBrbm93CisgICAgICAgICAgICAgICAgIC8vIG1vcmUuIFBhc3MgdGhyb3VnaCBhcyBUTFMgZ2VuZXJpYy4KKyAgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfZXJyb3JfY29kZSh0cmFuc3BvcnQ6OmVycm9yOjp0bHNfZXJyb3IpOworLSAgICAgICAgICAgIH0KKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgLy8gV2UgZG9uJ3Qga25vdyBhbnkgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGVycm9yIHNvIHBhc3MKKyAgICAgICAgICAgICAvLyB0aHJvdWdoCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvd2Vic29ja2V0cHAvd2Vic29ja2V0cHAtMC43LjAvNGNhYjVlNWMwYzVmMTlmY2VlN2QzN2I0YTM4YjE1NmQ2M2ExNTBkNC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvd2Vic29ja2V0cHAvd2Vic29ja2V0cHAtMC43LjAvNGNhYjVlNWMwYzVmMTlmY2VlN2QzN2I0YTM4YjE1NmQ2M2ExNTBkNC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzBjOTYwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC93ZWJzb2NrZXRwcC93ZWJzb2NrZXRwcC0wLjcuMC80Y2FiNWU1YzBjNWYxOWZjZWU3ZDM3YjRhMzhiMTU2ZDYzYTE1MGQ0LnBhdGNoCkBAIC0wLDAgKzEsMTU1IEBACitGcm9tIDRjYWI1ZTVjMGM1ZjE5ZmNlZTdkMzdiNGEzOGIxNTZkNjNhMTUwZDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQZXRlciBUaG9yc29uIDxnaXRAemFwaG95ZC5jb20+CitEYXRlOiBTdW4sIDExIEp1biAyMDE3IDE2OjEzOjI1IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIG1pbm9yIGFkanVzdG1lbnRzIHRvIHJlY2VudCBleHRlbnNpb24gbmVnb3RpYXRpb24gcmVsYXRlZAorIGZpeGVzLCByZWZhY3RvciBhIGJpdCBtb3JlIGV4dGVuc2lvbiBuZWdvdGlhdGlvbiBjb2RlIHRvIGJlIHNpbXBsZXIKKworLS0tCisgd2Vic29ja2V0cHAvaW1wbC9jb25uZWN0aW9uX2ltcGwuaHBwIHwgIDYgKy0tCisgd2Vic29ja2V0cHAvcHJvY2Vzc29ycy9oeWJpMTMuaHBwICAgIHwgOTIgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCA0OSBkZWxldGlvbnMoLSkKKworSW5kZXg6IHdlYnNvY2tldHBwLTAuNy4wL3dlYnNvY2tldHBwL2ltcGwvY29ubmVjdGlvbl9pbXBsLmhwcAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHdlYnNvY2tldHBwLTAuNy4wLm9yaWcvd2Vic29ja2V0cHAvaW1wbC9jb25uZWN0aW9uX2ltcGwuaHBwCisrKysgd2Vic29ja2V0cHAtMC43LjAvd2Vic29ja2V0cHAvaW1wbC9jb25uZWN0aW9uX2ltcGwuaHBwCitAQCAtMTIyMiwxNyArMTIyMiwxNyBAQAorICAgICBzdGQ6OnBhaXI8bGliOjplcnJvcl9jb2RlLHN0ZDo6c3RyaW5nPiBuZWdfcmVzdWx0czsKKyAgICAgbmVnX3Jlc3VsdHMgPSBtX3Byb2Nlc3Nvci0+bmVnb3RpYXRlX2V4dGVuc2lvbnMobV9yZXF1ZXN0KTsKKyAKKy0gICAgaWYgKG5lZ19yZXN1bHRzLmZpcnN0ID09IGVycm9yOjptYWtlX2Vycm9yX2NvZGUoZXJyb3I6OmV4dGVuc2lvbl9wYXJzZV9lcnJvcikpIHsKKysgICAgaWYgKG5lZ19yZXN1bHRzLmZpcnN0ID09IHByb2Nlc3Nvcjo6ZXJyb3I6Om1ha2VfZXJyb3JfY29kZShwcm9jZXNzb3I6OmVycm9yOjpleHRlbnNpb25fcGFyc2VfZXJyb3IpKSB7CisgICAgICAgICAvLyBUaGVyZSB3YXMgYSBmYXRhbCBlcnJvciBpbiBleHRlbnNpb24gcGFyc2luZyB0aGF0IHNob3VsZCByZXN1bHQgaW4KKyAgICAgICAgIC8vIGEgZmFpbGVkIGNvbm5lY3Rpb24gYXR0ZW1wdC4KKy0gICAgICAgIG1fYWxvZy53cml0ZShsb2c6OmFsZXZlbDo6aW5mbywgIkJhZCByZXF1ZXN0OiAiICsgbmVnX3Jlc3VsdHMuZmlyc3QubWVzc2FnZSgpKTsKKysgICAgICAgIG1fZWxvZy53cml0ZShsb2c6OmVsZXZlbDo6aW5mbywgIkJhZCByZXF1ZXN0OiAiICsgbmVnX3Jlc3VsdHMuZmlyc3QubWVzc2FnZSgpKTsKKyAgICAgICAgIG1fcmVzcG9uc2Uuc2V0X3N0YXR1cyhodHRwOjpzdGF0dXNfY29kZTo6YmFkX3JlcXVlc3QpOworICAgICAgICAgcmV0dXJuIG5lZ19yZXN1bHRzLmZpcnN0OworICAgICB9IGVsc2UgaWYgKG5lZ19yZXN1bHRzLmZpcnN0KSB7CisgICAgICAgICAvLyBUaGVyZSB3YXMgYSBmYXRhbCBlcnJvciBpbiBleHRlbnNpb24gcHJvY2Vzc2luZyB0aGF0IGlzIHByb2JhYmx5IG91cgorICAgICAgICAgLy8gZmF1bHQuIENvbnNpZGVyIGV4dGVuc2lvbiBuZWdvdGlhdGlvbiB0byBoYXZlIGZhaWxlZCBhbmQgY29udGludWUgYXMKKyAgICAgICAgIC8vIGlmIGV4dGVuc2lvbnMgd2VyZSBub3Qgc3VwcG9ydGVkCistICAgICAgICBtX2Fsb2cud3JpdGUobG9nOjphbGV2ZWw6OmluZm8sIAorKyAgICAgICAgbV9lbG9nLndyaXRlKGxvZzo6ZWxldmVsOjppbmZvLCAKKyAgICAgICAgICAgICAiRXh0ZW5zaW9uIG5lZ290aWF0aW9uIGZhaWxlZDogIiArIG5lZ19yZXN1bHRzLmZpcnN0Lm1lc3NhZ2UoKSk7CisgICAgIH0gZWxzZSB7CisgICAgICAgICAvLyBleHRlbnNpb24gbmVnb3RpYXRpb24gc3VjY2VlZGVkLCBzZXQgcmVzcG9uc2UgaGVhZGVyIGFjY29yZGluZ2x5CitJbmRleDogd2Vic29ja2V0cHAtMC43LjAvd2Vic29ja2V0cHAvcHJvY2Vzc29ycy9oeWJpMTMuaHBwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gd2Vic29ja2V0cHAtMC43LjAub3JpZy93ZWJzb2NrZXRwcC9wcm9jZXNzb3JzL2h5YmkxMy5ocHAKKysrKyB3ZWJzb2NrZXRwcC0wLjcuMC93ZWJzb2NrZXRwcC9wcm9jZXNzb3JzL2h5YmkxMy5ocHAKK0BAIC05NywxMSArOTcsNiBAQAorICAgICAvKioKKyAgICAgICogVGhpcyBleGlzdHMgbW9zdGx5IGJlY2F1c2UgdGhlIGNvZGUgZm9yIHJlcXVlc3RzIGFuZCByZXNwb25zZXMgaXMKKyAgICAgICogaWRlbnRpY2FsIGFuZCBJIGNhbid0IGhhdmUgdmlydHVhbCB0ZW1wbGF0ZSBtZXRob2RzLgorLSAgICAgKgorLSAgICAgKiBOT1RFOiB0aGlzIG1ldGhvZCBtYWtlcyBhc3N1bXB0aW9ucyB0aGF0IHRoZSBwZXJtZXNzYWdlLWRlZmxhdGUKKy0gICAgICogZXh0ZW5zaW9uIGlzIHRoZSBvbmx5IG9uZSBzdXBwb3J0ZWQuIElmIGFkZGl0aW9uYWwgZXh0ZW5zaW9ucyBhcmUKKy0gICAgICogZXZlciBzdXBwb3J0ZWQgaXQgc2hvdWxkIGJlIHJldmlld2VkIGNhcmVmdWxseS4gTW9zdCBjYXNlcyB3aGVyZQorLSAgICAgKiB0aGF0IGFzc3VtcHRpb24gaXMgbWFkZSBhcmUgZXhwbGljaXRseSBub3RlZC4KKyAgICAgICovCisgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBoZWFkZXJfdHlwZT4KKyAgICAgZXJyX3N0cl9wYWlyIG5lZ290aWF0ZV9leHRlbnNpb25zX2hlbHBlcihoZWFkZXJfdHlwZSBjb25zdCAmIGhlYWRlcikgeworQEAgLTEzMCw1NSArMTI1LDYwIEBACisgCisgICAgICAgICBodHRwOjpwYXJhbWV0ZXJfbGlzdDo6Y29uc3RfaXRlcmF0b3IgaXQ7CisgCisrICAgICAgICAvLyBsb29rIHRocm91Z2ggdGhlIGxpc3Qgb2YgZXh0ZW5zaW9uIHJlcXVlc3RzIHRvIGZpbmQgdGhlIGZpcnN0CisrICAgICAgICAvLyBvbmUgdGhhdCB3ZSBjYW4gYWNjZXB0LgorICAgICAgICAgaWYgKG1fcGVybWVzc2FnZV9kZWZsYXRlLmlzX2ltcGxlbWVudGVkKCkpIHsKKyAgICAgICAgICAgICBlcnJfc3RyX3BhaXIgbmVnX3JldDsKKyAgICAgICAgICAgICBmb3IgKGl0ID0gcC5iZWdpbigpOyBpdCAhPSBwLmVuZCgpOyArK2l0KSB7CistICAgICAgICAgICAgICAgIC8vIGxvb2sgdGhyb3VnaCBlYWNoIGV4dGVuc2lvbiwgaWYgdGhlIGtleSBpcyBwZXJtZXNzYWdlLWRlZmxhdGUKKy0gICAgICAgICAgICAgICAgaWYgKGl0LT5maXJzdCA9PSAicGVybWVzc2FnZS1kZWZsYXRlIikgeworLSAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBhbHJlYWR5IHN1Y2Nlc3NmdWxseSBuZWdvdGlhdGVkIHRoaXMgZXh0ZW5zaW9uCistICAgICAgICAgICAgICAgICAgICAvLyB0aGVuIHNraXAgYW55IG90aGVyIHJlcXVlc3RzIHRvIG5lZ290aWF0ZSB0aGUgc2FtZSBvbmUKKy0gICAgICAgICAgICAgICAgICAgIC8vIHdpdGggZGlmZmVyZW50IHBhcmFtZXRlcnMgCistICAgICAgICAgICAgICAgICAgICBpZiAobV9wZXJtZXNzYWdlX2RlZmxhdGUuaXNfZW5hYmxlZCgpKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAKKy0gICAgICAgICAgICAgICAgICAgIAorLSAgICAgICAgICAgICAgICAgICAgbmVnX3JldCA9IG1fcGVybWVzc2FnZV9kZWZsYXRlLm5lZ290aWF0ZShpdC0+c2Vjb25kKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIGlmIChuZWdfcmV0LmZpcnN0KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmlndXJlIG91dCBpZiB0aGlzIGlzIGFuIGVycm9yIHRoYXQgc2hvdWxkIGhhbHQgYWxsCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXh0ZW5zaW9uIG5lZ290aWF0aW9ucyBvciBzaW1wbHkgY2F1c2UgbmVnb3RpYXRpb24gb2YKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHNwZWNpZmljIGV4dGVuc2lvbiB0byBmYWlsLgorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vc3RkOjpjb3V0IDw8ICJwZXJtZXNzYWdlLWNvbXByZXNzIG5lZ290aWF0aW9uIGZhaWxlZDogIgorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgIDw8IG5lZ19yZXQuZmlyc3QubWVzc2FnZSgpIDw8IHN0ZDo6ZW5kbDsKKy0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogdGhpcyBsaXN0IHdpbGwgbmVlZCBjb21tYXMgaWYgV2ViU29ja2V0KysgZXZlcgorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1cHBvcnRzIG1vcmUgdGhhbiBvbmUgZXh0ZW5zaW9uCistICAgICAgICAgICAgICAgICAgICAgICAgCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWN0dWFsbHkgdHJ5IHRvIGluaXRpYWxpemUgdGhlIGV4dGVuc2lvbiBiZWZvcmUgd2UKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWVtIG5lZ290aWF0aW9uIGNvbXBsZXRlCistICAgICAgICAgICAgICAgICAgICAgICAgcmV0LmZpcnN0ID0gbV9wZXJtZXNzYWdlX2RlZmxhdGUuaW5pdChiYXNlOjptX3NlcnZlcik7CistICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXQuZmlyc3QpIHsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogc3VwcG9ydCBtdWx0aXBsZSBleHRlbnNpb25zLgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByaWdodCBub3csIGJlY2F1c2UgdGhlcmUgaXMgb25seSBvbmUgZXh0ZW5zaW9uIAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdXBwb3J0ZWQsIGl0IGZhaWxpbmcgdG8gbmVnb3RpYXRlIG1lYW5zIHdlIGFyZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkb25lIHdpdGggYWxsIG5lZ290aWF0aW5nLiBJbiB0aGUgZnV0dXJlIGlmIG1vcmUKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXh0ZW5zaW9ucyBhcmUgc3VwcG9ydGVkIGEgYmV0dGVyIHNvbHV0aW9uIHdpbGwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmUgbmVlZGVkIGhlcmUuCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldC5zZWNvbmQgKz0gbmVnX3JldC5zZWNvbmQ7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIGxvb2tpbmcgZm9yIG1vcmUgZXh0ZW5zaW9ucworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgCistICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIC8vIG5vdCBhIHBlcm1lc3NhZ2UtZGVmbGF0ZSBleHRlbnNpb24gcmVxdWVzdCwgaWdub3JlCisrICAgICAgICAgICAgICAgIGlmIChpdC0+Zmlyc3QgIT0gInBlcm1lc3NhZ2UtZGVmbGF0ZSIpIHsKKysgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworKyAgICAgICAgICAgICAgICB9CisrCisrICAgICAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgYWxyZWFkeSBzdWNjZXNzZnVsbHkgbmVnb3RpYXRlZCB0aGlzIGV4dGVuc2lvbgorKyAgICAgICAgICAgICAgICAvLyB0aGVuIHNraXAgYW55IG90aGVyIHJlcXVlc3RzIHRvIG5lZ290aWF0ZSB0aGUgc2FtZSBvbmUKKysgICAgICAgICAgICAgICAgLy8gd2l0aCBkaWZmZXJlbnQgcGFyYW1ldGVycyAKKysgICAgICAgICAgICAgICAgaWYgKG1fcGVybWVzc2FnZV9kZWZsYXRlLmlzX2VuYWJsZWQoKSkgeworKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisrICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgCisrICAgICAgICAgICAgICAgIC8vIGF0dGVtcHQgdG8gbmVnb3RpYXRlIHRoaXMgb2ZmZXIKKysgICAgICAgICAgICAgICAgbmVnX3JldCA9IG1fcGVybWVzc2FnZV9kZWZsYXRlLm5lZ290aWF0ZShpdC0+c2Vjb25kKTsKKysKKysgICAgICAgICAgICAgICAgaWYgKG5lZ19yZXQuZmlyc3QpIHsKKysgICAgICAgICAgICAgICAgICAgIC8vIG5lZ290aWF0aW9uIG9mZmVyIGZhaWxlZC4gRG8gbm90aGluZy4gV2Ugd2lsbCBjb250aW51ZQorKyAgICAgICAgICAgICAgICAgICAgLy8gc2VhcmNoaW5nIGZvciBhIHBlcm1lc3NhZ2UtZGVmbGF0ZSBjb25maWcgdGhhdCBzdWNjZWVkcworKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisrICAgICAgICAgICAgICAgIH0KKysKKysgICAgICAgICAgICAgICAgLy8gTmVnb3RpYXRpb24gdGVudGF0aXZlbHkgc3VjY2VlZGVkCisrCisrICAgICAgICAgICAgICAgIC8vIEFjdHVhbGx5IHRyeSB0byBpbml0aWFsaXplIHRoZSBleHRlbnNpb24gYmVmb3JlIHdlCisrICAgICAgICAgICAgICAgIC8vIGRlZW0gbmVnb3RpYXRpb24gY29tcGxldGUKKysgICAgICAgICAgICAgICAgbGliOjplcnJvcl9jb2RlIGVjID0gbV9wZXJtZXNzYWdlX2RlZmxhdGUuaW5pdChiYXNlOjptX3NlcnZlcik7CisrCisrICAgICAgICAgICAgICAgIGlmIChlYykgeworKyAgICAgICAgICAgICAgICAgICAgLy8gTmVnb3RpYXRpb24gc3VjY2VlZGVkIGJ1dCBpbml0aWFsaXphdGlvbiBmYWlsZWQgdGhpcyBpcyAKKysgICAgICAgICAgICAgICAgICAgIC8vIGFuIGVycm9yIHRoYXQgc2hvdWxkIHN0b3AgbmVnb3RpYXRpb24gb2YgcGVybWVzc2FnZSAKKysgICAgICAgICAgICAgICAgICAgIC8vIGRlZmxhdGUuIFJldHVybiB0aGUgcmVhc29uIGZvciB0aGUgaW5pdCBmYWlsdXJlCisrCisrICAgICAgICAgICAgICAgICAgICByZXQuZmlyc3QgPSBlYzsKKysgICAgICAgICAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgICAgICAgICAgLy8gU3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLCBwdXNoIHRoZSBuZWdvdGlhdGVkIHJlc3BvbnNlIGludG8KKysgICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZXBseSBhbmQgc3RvcCBsb29raW5nIGZvciBhZGRpdGlvbmFsIHBlcm1lc3NhZ2UtZGVmbGF0ZQorKyAgICAgICAgICAgICAgICAgICAgLy8gZXh0ZW5zaW9ucworKyAgICAgICAgICAgICAgICAgICAgcmV0LnNlY29uZCArPSBuZWdfcmV0LnNlY29uZDsKKysgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorIAorKyAgICAgICAgLy8gc3VwcG9ydCBmb3IgZnV0dXJlIGV4dGVuc2lvbnMgd291bGQgZ28gaGVyZS4gU2hvdWxkIGNoZWNrIHRoZSB2YWx1ZSBvZiAKKysgICAgICAgIC8vIHJldC5maXJzdCBiZWZvcmUgY29udGludWluZy4gTWlnaHQgbmVlZCB0byBjb25zaWRlciB3aGV0aGVyIGZhaWx1cmUgb2YKKysgICAgICAgIC8vIG5lZ290aWF0aW9uIG9mIGFuIGVhcmxpZXIgZXh0ZW5zaW9uIHNob3VsZCBzdG9wIG5lZ290aWF0aW9uIG9mIHN1YnNlcXVlbnQKKysgICAgICAgIC8vIG9uZXMKKysKKyAgICAgICAgIHJldHVybiByZXQ7CisgICAgIH0KKyAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvd2Vic29ja2V0cHAvd2Vic29ja2V0cHAtMC43LjAvOWRkYjMwMGQ4NzRhMzBkYjM1ZTNhZDU4ZjE4ODk0NGJlZjBiZjMxYi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvd2Vic29ja2V0cHAvd2Vic29ja2V0cHAtMC43LjAvOWRkYjMwMGQ4NzRhMzBkYjM1ZTNhZDU4ZjE4ODk0NGJlZjBiZjMxYi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGJmZWIyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC93ZWJzb2NrZXRwcC93ZWJzb2NrZXRwcC0wLjcuMC85ZGRiMzAwZDg3NGEzMGRiMzVlM2FkNThmMTg4OTQ0YmVmMGJmMzFiLnBhdGNoCkBAIC0wLDAgKzEsNjAwIEBACisjIyBEZXNjcmlwdGlvbjogYWRkIHNvbWUgZGVzY3JpcHRpb24KKyMjIE9yaWdpbi9BdXRob3I6IGFkZCBzb21lIG9yaWdpbiBvciBhdXRob3IKKyMjIEJ1ZzogYnVnIFVSTAorRnJvbSA5ZGRiMzAwZDg3NGEzMGRiMzVlM2FkNThmMTg4OTQ0YmVmMGJmMzFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGV0ZXIgVGhvcnNvbiA8Z2l0QHphcGhveWQuY29tPgorRGF0ZTogU3VuLCAxMSBKdW4gMjAxNyAxNToyNDo0MyAtMDUwMAorU3ViamVjdDogW1BBVENIXSBVcGRhdGUgcGVybWVzc2FnZS1kZWZsYXRlIHN1cHBvcnQgdG8gcmVmbGVjdCB0aGF0IHpsaWIKKyBkb2Vzbid0IHN1cHBvcnQgYSAyNTYgYml0IHdpbmRvdy4gSW1wcm92ZSBleHRlbnNpb24gbmVnb3RpYXRpb24gZXJyb3IKKyBjaGVja2luZyBhbmQgZG9jdW1lbnRhdGlvbi4gZml4ZXMgIzU5NiBmaXhlcyAjNjUzCisKKy0tLQorIGNoYW5nZWxvZy5tZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICsrCisgdGVzdC9leHRlbnNpb24vcGVybWVzc2FnZV9kZWZsYXRlLmNwcCAgICAgICAgICAgICAgfCAxNTMgKysrKysrKysrKysrKysrKystLS0tCisgLi4uL2V4dGVuc2lvbnMvcGVybWVzc2FnZV9kZWZsYXRlL2VuYWJsZWQuaHBwICAgICAgfCAgOTQgKysrKysrKysrKy0tLQorIHdlYnNvY2tldHBwL2ltcGwvY29ubmVjdGlvbl9pbXBsLmhwcCAgICAgICAgICAgICAgIHwgIDEwICstCisgd2Vic29ja2V0cHAvcHJvY2Vzc29ycy9oeWJpMTMuaHBwICAgICAgICAgICAgICAgICAgfCAgMjggKysrLQorIDUgZmlsZXMgY2hhbmdlZCwgMjQ3IGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY2hhbmdlbG9nLm1kIGIvY2hhbmdlbG9nLm1kCitpbmRleCBiYmE3NTNjYi4uZGU5OGVkZDIgMTAwNjQ0CisjLS0tIGEvY2hhbmdlbG9nLm1kCisjKysrIGIvY2hhbmdlbG9nLm1kCisjQEAgLTE3LDYgKzE3LDE0IEBAIEhFQUQKKyMgLSBDb21wYXRpYmlsaXR5OiBVcGRhdGUgYHRlbGVtZXRyeV9jbGllbnRgIHRvIHVzZSBhIHNsaWdodGx5IG1vcmUgY3Jvc3MgcGxhdGZvcm0KKyMgICBtZXRob2Qgb2Ygc2xlZXBpbmcuIFNob3VsZCB3b3JrIG9uIHdpbmRvd3Mgbm93LiBUaGFuayB5b3UgTWVpciBZYW5vdmljaCBmb3IKKyMgICByZXBvcnRpbmcuCisjKy0gQ29tcGF0aWJpbGl0eTogVXBkYXRlZCBwZXJtZXNzYWdlLWRlZmxhdGUgc3VwcG9ydCB0byByZWZsZWN0IHRoYXQgdGhlIHpsaWIKKyMrICBsaWJyYXJ5IGRvZXMgbm90IGFjdHVhbGx5IHN1cHBvcnQgYSBzbGlkaW5nIHdpbmRvdyBzaXplIG9mIDI1NiBiaXRzLiAKKyMrICBXZWJTb2NrZXQrKyB3aWxsIG5vIGxvbmdlciBuZWdvdGlhdGUgMjU2IGJpdCBkZWZsYXRlIHdpbmRvd3MuIElmIHRoZSB1c2VyCisjKyAgb2YgdGhlIGxpYnJhcnkgdHJpZXMgdG8gcmVxdWVzdCBhIDI1NiBiaXQgd2luZG93IGEgNTEyIGJpdCB3aW5kb3cgd2lsbCBiZQorIysgIHNwZWNpZmllZCBpbnN0ZWFkIChUaGlzIHdhcyB0aGUgcHJldmlvdXMgYmVoYXZpb3IpLiAjNTk2ICM2NTMgVGhhbmsgeW91IAorIysgIFZpbm5pZSBGYWxjbyBhbmQgR2lhbmZyYW5jbyBDb3N0YW1hZ25hIGZvciByZXBvcnRpbmcuCisjKy0gQ29tcGF0aWJpbGl0eTogQmV0dGVyIGVycm9yIGhhbmRsaW5nIGFuZCBsb2dnaW5nIGluIGNhc2VzIHdoZXJlIGV4dGVuc2lvbgorIysgIHJlcXVlc3RzIHBhcnNlIGNvcnJlY3RseSBidXQgbmVnb3RpYXRpb24gZmFpbHMuIAorIyAtIEJ1ZzogU3RvcmUgbG9nZ2VycyBpbiBzaGFyZWQgcG9pbnRlcnMgdG8gYXZvaWQgY3Jhc2hlcyByZWxhdGVkIHRvIGNvbm5lY3Rpb25zCisjICAgdHJ5aW5nIHRvIHdyaXRlIGxvZ3MgZW50cmllcyBhZnRlciB0aGVpciByZXNwZWN0aXZlIGVuZHBvaW50IGhhcyBiZWVuCisjICAgZGVhbGxvY2F0ZWQuIFRoYW5rIHlvdSBUaGFsaGFtbWVyIGZvciByZXBvcnRpbmcgYW5kIEp1cHAgTcO8bGxlciBmb3IgdGhlIAorZGlmZiAtLWdpdCBhL3Rlc3QvZXh0ZW5zaW9uL3Blcm1lc3NhZ2VfZGVmbGF0ZS5jcHAgYi90ZXN0L2V4dGVuc2lvbi9wZXJtZXNzYWdlX2RlZmxhdGUuY3BwCitpbmRleCA0Y2QzZTdiNi4uODA1YWZjYzMgMTAwNjQ0CistLS0gYS90ZXN0L2V4dGVuc2lvbi9wZXJtZXNzYWdlX2RlZmxhdGUuY3BwCisrKysgYi90ZXN0L2V4dGVuc2lvbi9wZXJtZXNzYWdlX2RlZmxhdGUuY3BwCitAQCAtMTg2LDE1ICsxODYsMjIgQEAgQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX2ludmFsaWQgKSB7CisgCisgQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX3ZhbGlkICkgeworICAgICBleHRfdmFycyB2OworKyAgICAKKysgICAgLy8gY29uZmlybSB0aGF0IGEgcmVxdWVzdCBmb3IgYSB2YWx1ZSBvZiA4IGlzIGludGVycHJldGVkIGFzIDkKKyAgICAgdi5hdHRyWyJzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIl0gPSAiOCI7CisrICAgIHYuZXNwID0gdi5leHRzLm5lZ290aWF0ZSh2LmF0dHIpOworKyAgICBCT09TVF9DSEVDSyggdi5leHRzLmlzX2VuYWJsZWQoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTkiKTsKKyAKKysgICAgdi5hdHRyWyJzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIl0gPSAiOSI7CisgICAgIHYuZXNwID0gdi5leHRzLm5lZ290aWF0ZSh2LmF0dHIpOworICAgICBCT09TVF9DSEVDSyggdi5leHRzLmlzX2VuYWJsZWQoKSApOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworLSAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTgiKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz05Iik7CisgCistICAgIHYuYXR0clsic2VydmVyX21heF93aW5kb3dfYml0cyJdID0gIjE1IjsKKyAKKysgICAgdi5hdHRyWyJzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIl0gPSAiMTUiOworICAgICB2LmVzcCA9IHYuZXh0cy5uZWdvdGlhdGUodi5hdHRyKTsKKyAgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKyAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLmZpcnN0LCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKK0BAIC0yMTMsNyArMjIwLDcgQEAgQk9PU1RfQVVUT19URVNUX0NBU0UoIGludmFsaWRfc2V0X3NlcnZlcl9tYXhfd2luZG93X2JpdHMgKSB7CisgCisgQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX2RlY2xpbmUgKSB7CisgICAgIGV4dF92YXJzIHY7CistICAgIHYuYXR0clsic2VydmVyX21heF93aW5kb3dfYml0cyJdID0gIjgiOworKyAgICB2LmF0dHJbInNlcnZlcl9tYXhfd2luZG93X2JpdHMiXSA9ICI5IjsKKyAKKyAgICAgdi5lYyA9IHYuZXh0cy5zZXRfc2VydmVyX21heF93aW5kb3dfYml0cygxNSxwbWRfbW9kZTo6ZGVjbGluZSk7CisgICAgIHYuZXNwID0gdi5leHRzLm5lZ290aWF0ZSh2LmF0dHIpOworQEAgLTIyMyw3ICsyMzAsNyBAQCBCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX3NlcnZlcl9tYXhfd2luZG93X2JpdHNfZGVjbGluZSApIHsKKyAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZSIpOworIH0KKyAKKy1CT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX3NlcnZlcl9tYXhfd2luZG93X2JpdHNfYWNjZXB0ICkgeworK0JPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfc2VydmVyX21heF93aW5kb3dfYml0c19hY2NlcHRfOCApIHsKKyAgICAgZXh0X3ZhcnMgdjsKKyAgICAgdi5hdHRyWyJzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIl0gPSAiOCI7CisgCitAQCAtMjMyLDEwICsyMzksMjIgQEAgQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX2FjY2VwdCApIHsKKyAgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKyAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworLSAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTgiKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz05Iik7CisgfQorIAorLUJPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfc2VydmVyX21heF93aW5kb3dfYml0c19sYXJnZXN0ICkgeworK0JPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfc2VydmVyX21heF93aW5kb3dfYml0c19hY2NlcHQgKSB7CisrICAgIGV4dF92YXJzIHY7CisrICAgIHYuYXR0clsic2VydmVyX21heF93aW5kb3dfYml0cyJdID0gIjkiOworKworKyAgICB2LmVjID0gdi5leHRzLnNldF9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzKDE1LHBtZF9tb2RlOjphY2NlcHQpOworKyAgICB2LmVzcCA9IHYuZXh0cy5uZWdvdGlhdGUodi5hdHRyKTsKKysgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTkiKTsKKyt9CisrCisrQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX2xhcmdlc3RfOCApIHsKKyAgICAgZXh0X3ZhcnMgdjsKKyAgICAgdi5hdHRyWyJzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIl0gPSAiOCI7CisgCitAQCAtMjQ0LDEwICsyNjMsMjIgQEAgQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX2xhcmdlc3QgKSB7CisgICAgIEJPT1NUX0NIRUNLKCB2LmV4dHMuaXNfZW5hYmxlZCgpICk7CisgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVjLCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKyAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLmZpcnN0LCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKy0gICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz04Iik7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5zZWNvbmQsICJwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9OSIpOworIH0KKyAKKy1CT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX3NlcnZlcl9tYXhfd2luZG93X2JpdHNfc21hbGxlc3QgKSB7CisrQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzX2xhcmdlc3QgKSB7CisrICAgIGV4dF92YXJzIHY7CisrICAgIHYuYXR0clsic2VydmVyX21heF93aW5kb3dfYml0cyJdID0gIjkiOworKworKyAgICB2LmVjID0gdi5leHRzLnNldF9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzKDE1LHBtZF9tb2RlOjpsYXJnZXN0KTsKKysgICAgdi5lc3AgPSB2LmV4dHMubmVnb3RpYXRlKHYuYXR0cik7CisrICAgIEJPT1NUX0NIRUNLKCB2LmV4dHMuaXNfZW5hYmxlZCgpICk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVjLCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLmZpcnN0LCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz05Iik7CisrfQorKworK0JPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfc2VydmVyX21heF93aW5kb3dfYml0c19zbWFsbGVzdF84ICkgeworICAgICBleHRfdmFycyB2OworICAgICB2LmF0dHJbInNlcnZlcl9tYXhfd2luZG93X2JpdHMiXSA9ICI4IjsKKyAKK0BAIC0yNTYsNyArMjg3LDE5IEBAIEJPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfc2VydmVyX21heF93aW5kb3dfYml0c19zbWFsbGVzdCApIHsKKyAgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKyAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworLSAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTgiKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz05Iik7CisrfQorKworK0JPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfc2VydmVyX21heF93aW5kb3dfYml0c19zbWFsbGVzdCApIHsKKysgICAgZXh0X3ZhcnMgdjsKKysgICAgdi5hdHRyWyJzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIl0gPSAiOSI7CisrCisrICAgIHYuZWMgPSB2LmV4dHMuc2V0X3NlcnZlcl9tYXhfd2luZG93X2JpdHMoMTUscG1kX21vZGU6OnNtYWxsZXN0KTsKKysgICAgdi5lc3AgPSB2LmV4dHMubmVnb3RpYXRlKHYuYXR0cik7CisrICAgIEJPT1NUX0NIRUNLKCB2LmV4dHMuaXNfZW5hYmxlZCgpICk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVjLCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLmZpcnN0LCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz05Iik7CisgfQorIAorIC8vIE5lZ290aWF0ZSBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzCitAQCAtMjkyLDcgKzMzNSwxMyBAQCBCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX2NsaWVudF9tYXhfd2luZG93X2JpdHNfdmFsaWQgKSB7CisgICAgIHYuZXNwID0gdi5leHRzLm5lZ290aWF0ZSh2LmF0dHIpOworICAgICBCT09TVF9DSEVDSyggdi5leHRzLmlzX2VuYWJsZWQoKSApOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworLSAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBjbGllbnRfbWF4X3dpbmRvd19iaXRzPTgiKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgY2xpZW50X21heF93aW5kb3dfYml0cz05Iik7CisrCisrICAgIHYuYXR0clsiY2xpZW50X21heF93aW5kb3dfYml0cyJdID0gIjkiOworKyAgICB2LmVzcCA9IHYuZXh0cy5uZWdvdGlhdGUodi5hdHRyKTsKKysgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLmZpcnN0LCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgY2xpZW50X21heF93aW5kb3dfYml0cz05Iik7CisgCisgICAgIHYuYXR0clsiY2xpZW50X21heF93aW5kb3dfYml0cyJdID0gIjE1IjsKKyAgICAgdi5lc3AgPSB2LmV4dHMubmVnb3RpYXRlKHYuYXR0cik7CitAQCAtMzExLDcgKzM2MCw3IEBAIEJPT1NUX0FVVE9fVEVTVF9DQVNFKCBpbnZhbGlkX3NldF9jbGllbnRfbWF4X3dpbmRvd19iaXRzICkgeworICAgICBCT09TVF9DSEVDS19FUVVBTCh2LmVjLHBtZGU6Om1ha2VfZXJyb3JfY29kZShwbWRlOjppbnZhbGlkX21heF93aW5kb3dfYml0cykpOworIH0KKyAKKy1CT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX2NsaWVudF9tYXhfd2luZG93X2JpdHNfZGVjbGluZSApIHsKKytCT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX2NsaWVudF9tYXhfd2luZG93X2JpdHNfZGVjbGluZV84ICkgeworICAgICBleHRfdmFycyB2OworICAgICB2LmF0dHJbImNsaWVudF9tYXhfd2luZG93X2JpdHMiXSA9ICI4IjsKKyAKK0BAIC0zMjMsNyArMzcyLDE5IEBAIEJPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfY2xpZW50X21heF93aW5kb3dfYml0c19kZWNsaW5lICkgeworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlIik7CisgfQorIAorLUJPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfY2xpZW50X21heF93aW5kb3dfYml0c19hY2NlcHQgKSB7CisrQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX2RlY2xpbmUgKSB7CisrICAgIGV4dF92YXJzIHY7CisrICAgIHYuYXR0clsiY2xpZW50X21heF93aW5kb3dfYml0cyJdID0gIjkiOworKworKyAgICB2LmVjID0gdi5leHRzLnNldF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKDkscG1kX21vZGU6OmRlY2xpbmUpOworKyAgICB2LmVzcCA9IHYuZXh0cy5uZWdvdGlhdGUodi5hdHRyKTsKKysgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlIik7CisrfQorKworK0JPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfY2xpZW50X21heF93aW5kb3dfYml0c19hY2NlcHRfOCApIHsKKyAgICAgZXh0X3ZhcnMgdjsKKyAgICAgdi5hdHRyWyJjbGllbnRfbWF4X3dpbmRvd19iaXRzIl0gPSAiOCI7CisgCitAQCAtMzMyLDEwICszOTMsMjIgQEAgQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX2FjY2VwdCApIHsKKyAgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKyAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworLSAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBjbGllbnRfbWF4X3dpbmRvd19iaXRzPTgiKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgY2xpZW50X21heF93aW5kb3dfYml0cz05Iik7CisgfQorIAorLUJPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfY2xpZW50X21heF93aW5kb3dfYml0c19sYXJnZXN0ICkgeworK0JPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfY2xpZW50X21heF93aW5kb3dfYml0c19hY2NlcHQgKSB7CisrICAgIGV4dF92YXJzIHY7CisrICAgIHYuYXR0clsiY2xpZW50X21heF93aW5kb3dfYml0cyJdID0gIjkiOworKworKyAgICB2LmVjID0gdi5leHRzLnNldF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKDE1LHBtZF9tb2RlOjphY2NlcHQpOworKyAgICB2LmVzcCA9IHYuZXh0cy5uZWdvdGlhdGUodi5hdHRyKTsKKysgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworKyAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBjbGllbnRfbWF4X3dpbmRvd19iaXRzPTkiKTsKKyt9CisrCisrQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX2xhcmdlc3RfOCApIHsKKyAgICAgZXh0X3ZhcnMgdjsKKyAgICAgdi5hdHRyWyJjbGllbnRfbWF4X3dpbmRvd19iaXRzIl0gPSAiOCI7CisgCitAQCAtMzQ0LDEwICs0MTcsMjIgQEAgQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX2xhcmdlc3QgKSB7CisgICAgIEJPT1NUX0NIRUNLKCB2LmV4dHMuaXNfZW5hYmxlZCgpICk7CisgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVjLCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKyAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLmZpcnN0LCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKy0gICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgY2xpZW50X21heF93aW5kb3dfYml0cz04Iik7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVzcC5zZWNvbmQsICJwZXJtZXNzYWdlLWRlZmxhdGU7IGNsaWVudF9tYXhfd2luZG93X2JpdHM9OSIpOworIH0KKyAKKy1CT09TVF9BVVRPX1RFU1RfQ0FTRSggbmVnb3RpYXRlX2NsaWVudF9tYXhfd2luZG93X2JpdHNfc21hbGxlc3QgKSB7CisrQk9PU1RfQVVUT19URVNUX0NBU0UoIG5lZ290aWF0ZV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX2xhcmdlc3QgKSB7CisrICAgIGV4dF92YXJzIHY7CisrICAgIHYuYXR0clsiY2xpZW50X21heF93aW5kb3dfYml0cyJdID0gIjkiOworKworKyAgICB2LmVjID0gdi5leHRzLnNldF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKDE1LHBtZF9tb2RlOjpsYXJnZXN0KTsKKysgICAgdi5lc3AgPSB2LmV4dHMubmVnb3RpYXRlKHYuYXR0cik7CisrICAgIEJPT1NUX0NIRUNLKCB2LmV4dHMuaXNfZW5hYmxlZCgpICk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVjLCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLmZpcnN0LCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgY2xpZW50X21heF93aW5kb3dfYml0cz05Iik7CisrfQorKworK0JPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfY2xpZW50X21heF93aW5kb3dfYml0c19zbWFsbGVzdF84ICkgeworICAgICBleHRfdmFycyB2OworICAgICB2LmF0dHJbImNsaWVudF9tYXhfd2luZG93X2JpdHMiXSA9ICI4IjsKKyAKK0BAIC0zNTYsNyArNDQxLDE5IEBAIEJPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfY2xpZW50X21heF93aW5kb3dfYml0c19zbWFsbGVzdCApIHsKKyAgICAgQk9PU1RfQ0hFQ0soIHYuZXh0cy5pc19lbmFibGVkKCkgKTsKKyAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3AuZmlyc3QsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworLSAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lc3Auc2Vjb25kLCAicGVybWVzc2FnZS1kZWZsYXRlOyBjbGllbnRfbWF4X3dpbmRvd19iaXRzPTgiKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgY2xpZW50X21heF93aW5kb3dfYml0cz05Iik7CisrfQorKworK0JPT1NUX0FVVE9fVEVTVF9DQVNFKCBuZWdvdGlhdGVfY2xpZW50X21heF93aW5kb3dfYml0c19zbWFsbGVzdCApIHsKKysgICAgZXh0X3ZhcnMgdjsKKysgICAgdi5hdHRyWyJjbGllbnRfbWF4X3dpbmRvd19iaXRzIl0gPSAiOSI7CisrCisrICAgIHYuZWMgPSB2LmV4dHMuc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoMTUscG1kX21vZGU6OnNtYWxsZXN0KTsKKysgICAgdi5lc3AgPSB2LmV4dHMubmVnb3RpYXRlKHYuYXR0cik7CisrICAgIEJPT1NUX0NIRUNLKCB2LmV4dHMuaXNfZW5hYmxlZCgpICk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVjLCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLmZpcnN0LCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZXNwLnNlY29uZCwgInBlcm1lc3NhZ2UtZGVmbGF0ZTsgY2xpZW50X21heF93aW5kb3dfYml0cz05Iik7CisgfQorIAorIAorQEAgLTUwNyw3ICs2MDQsOCBAQCBCT09TVF9BVVRPX1RFU1RfQ0FTRSggY29tcHJlc3NfZGF0YSApIHsKKyAgICAgc3RkOjpzdHJpbmcgY29tcHJlc3Nfb3V0OworICAgICBzdGQ6OnN0cmluZyBkZWNvbXByZXNzX291dDsKKyAKKy0gICAgdi5leHRzLmluaXQodHJ1ZSk7CisrICAgIHYuZWMgPSB2LmV4dHMuaW5pdCh0cnVlKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworIAorICAgICB2LmVjID0gdi5leHRzLmNvbXByZXNzKGNvbXByZXNzX2luLGNvbXByZXNzX291dCk7CisgICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVjLCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKK0BAIC01MjAsNyArNjE4LDggQEAgQk9PU1RfQVVUT19URVNUX0NBU0UoIGNvbXByZXNzX2RhdGEgKSB7CisgQk9PU1RfQVVUT19URVNUX0NBU0UoIGNvbXByZXNzX2RhdGFfbXVsdGlwbGUgKSB7CisgICAgIGV4dF92YXJzIHY7CisgCistICAgIHYuZXh0cy5pbml0KHRydWUpOworKyAgICB2LmVjID0gdi5leHRzLmluaXQodHJ1ZSk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVjLCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKyAKKyAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgIHN0ZDo6c3RyaW5nIGNvbXByZXNzX2luID0gIkhlbGxvIjsKK0BAIC01NDUsMTEgKzY0NCwxMiBAQCBCT09TVF9BVVRPX1RFU1RfQ0FTRSggY29tcHJlc3NfZGF0YV9sYXJnZSApIHsKKyAKKyAgICAgd2Vic29ja2V0cHA6Omh0dHA6OmF0dHJpYnV0ZV9saXN0IGFsaXN0OworIAorLSAgICBhbGlzdFsic2VydmVyX21heF93aW5kb3dfYml0cyJdID0gIjgiOworLSAgICB2LmV4dHMuc2V0X3NlcnZlcl9tYXhfd2luZG93X2JpdHMoOCx3ZWJzb2NrZXRwcDo6ZXh0ZW5zaW9uczo6cGVybWVzc2FnZV9kZWZsYXRlOjptb2RlOjpzbWFsbGVzdCk7CisrICAgIGFsaXN0WyJzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIl0gPSAiOSI7CisrICAgIHYuZXh0cy5zZXRfc2VydmVyX21heF93aW5kb3dfYml0cyg5LHdlYnNvY2tldHBwOjpleHRlbnNpb25zOjpwZXJtZXNzYWdlX2RlZmxhdGU6Om1vZGU6OnNtYWxsZXN0KTsKKyAKKyAgICAgdi5leHRzLm5lZ290aWF0ZShhbGlzdCk7CistICAgIHYuZXh0cy5pbml0KHRydWUpOworKyAgICB2LmVjID0gdi5leHRzLmluaXQodHJ1ZSk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVjLCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKyAKKyAgICAgdi5lYyA9IHYuZXh0cy5jb21wcmVzcyhjb21wcmVzc19pbixjb21wcmVzc19vdXQpOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lYywgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CitAQCAtNTczLDcgKzY3Myw4IEBAIEJPT1NUX0FVVE9fVEVTVF9DQVNFKCBjb21wcmVzc19kYXRhX25vX2NvbnRleHRfdGFrZW92ZXIgKSB7CisgICAgIHYuZXh0cy5lbmFibGVfc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIoKTsKKyAKKyAgICAgdi5leHRzLm5lZ290aWF0ZShhbGlzdCk7CistICAgIHYuZXh0cy5pbml0KHRydWUpOworKyAgICB2LmVjID0gdi5leHRzLmluaXQodHJ1ZSk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVjLCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKyAKKyAgICAgdi5lYyA9IHYuZXh0cy5jb21wcmVzcyhjb21wcmVzc19pbixjb21wcmVzc19vdXQxKTsKKyAgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworQEAgLTYwOSw3ICs3MTAsOCBAQCBCT09TVF9BVVRPX1RFU1RfQ0FTRSggY29tcHJlc3NfZW1wdHkgKSB7CisgICAgIHN0ZDo6c3RyaW5nIGNvbXByZXNzX291dDsKKyAgICAgc3RkOjpzdHJpbmcgZGVjb21wcmVzc19vdXQ7CisgCistICAgIHYuZXh0cy5pbml0KHRydWUpOworKyAgICB2LmVjID0gdi5leHRzLmluaXQodHJ1ZSk7CisrICAgIEJPT1NUX0NIRUNLX0VRVUFMKCB2LmVjLCB3ZWJzb2NrZXRwcDo6bGliOjplcnJvcl9jb2RlKCkgKTsKKyAKKyAgICAgdi5lYyA9IHYuZXh0cy5jb21wcmVzcyhjb21wcmVzc19pbixjb21wcmVzc19vdXQpOworICAgICBCT09TVF9DSEVDS19FUVVBTCggdi5lYywgd2Vic29ja2V0cHA6OmxpYjo6ZXJyb3JfY29kZSgpICk7CitAQCAtNjQwLDcgKzc0Miw4IEBAIEJPT1NUX0FVVE9fVEVTVF9DQVNFKCBkZWNvbXByZXNzX2RhdGEgKSB7CisgICAgIHN0ZDo6c3RyaW5nIG91dDsKKyAgICAgc3RkOjpzdHJpbmcgcmVmZXJlbmNlID0gIkhlbGxvIjsKKyAKKy0gICAgdi5leHRzLmluaXQodHJ1ZSk7CisrICAgIHYuZWMgPSB2LmV4dHMuaW5pdCh0cnVlKTsKKysgICAgQk9PU1RfQ0hFQ0tfRVFVQUwoIHYuZWMsIHdlYnNvY2tldHBwOjpsaWI6OmVycm9yX2NvZGUoKSApOworIAorICAgICB2LmVjID0gdi5leHRzLmRlY29tcHJlc3MoaW4sMTEsb3V0KTsKKyAKK2RpZmYgLS1naXQgYS93ZWJzb2NrZXRwcC9leHRlbnNpb25zL3Blcm1lc3NhZ2VfZGVmbGF0ZS9lbmFibGVkLmhwcCBiL3dlYnNvY2tldHBwL2V4dGVuc2lvbnMvcGVybWVzc2FnZV9kZWZsYXRlL2VuYWJsZWQuaHBwCitpbmRleCAxNTgxZjE0Yy4uZjIwYTFiMWQgMTAwNjQ0CistLS0gYS93ZWJzb2NrZXRwcC9leHRlbnNpb25zL3Blcm1lc3NhZ2VfZGVmbGF0ZS9lbmFibGVkLmhwcAorKysrIGIvd2Vic29ja2V0cHAvZXh0ZW5zaW9ucy9wZXJtZXNzYWdlX2RlZmxhdGUvZW5hYmxlZC5ocHAKK0BAIC00Niw3ICs0Niw3IEBACisgbmFtZXNwYWNlIHdlYnNvY2tldHBwIHsKKyBuYW1lc3BhY2UgZXh0ZW5zaW9ucyB7CisgCistLy8vIEltcGxlbWVudGF0aW9uIG9mIHRoZSBkcmFmdCBwZXJtZXNzYWdlLWRlZmxhdGUgV2ViU29ja2V0IGV4dGVuc2lvbgorKy8vLyBJbXBsZW1lbnRhdGlvbiBvZiBSRkMgNzY5MiwgdGhlIHBlcm1lc3NhZ2UtZGVmbGF0ZSBXZWJTb2NrZXQgZXh0ZW5zaW9uCisgLyoqCisgICogIyMjIHBlcm1lc3NhZ2UtZGVmbGF0ZSBpbnRlcmZhY2UKKyAgKgorQEAgLTE3NCwxOCArMTc0LDMwIEBAIG5hbWVzcGFjZSB3ZWJzb2NrZXRwcCB7CisgbmFtZXNwYWNlIGV4dGVuc2lvbnMgeworIG5hbWVzcGFjZSBwZXJtZXNzYWdlX2RlZmxhdGUgeworIAorLS8vLyBEZWZhdWx0IHZhbHVlIGZvciBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIGFzIGRlZmluZWQgYnkgZHJhZnQgMTcKKysvLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2VydmVyX21heF93aW5kb3dfYml0cyBhcyBkZWZpbmVkIGJ5IFJGQyA3NjkyCisgc3RhdGljIHVpbnQ4X3QgY29uc3QgZGVmYXVsdF9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID0gMTU7CistLy8vIE1pbmltdW0gdmFsdWUgZm9yIHNlcnZlcl9tYXhfd2luZG93X2JpdHMgYXMgZGVmaW5lZCBieSBkcmFmdCAxNworKy8vLyBNaW5pbXVtIHZhbHVlIGZvciBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIGFzIGRlZmluZWQgYnkgUkZDIDc2OTIKKysvKioKKysgKiBOT1RFOiBBIHZhbHVlIG9mIDggaXMgbm90IGFjdHVhbGx5IHN1cHBvcnRlZCBieSB6bGliLCB0aGUgZGVmbGF0ZQorKyAqIGxpYnJhcnkgdGhhdCBXZWJTb2NrZXQrKyB1c2VzLiBUbyBwcmVzZXJ2ZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQorKyAqIHdpdGggUkZDIDc2OTIgYW5kIHByZXZpb3VzIHZlcnNpb25zIG9mIHRoZSBsaWJyYXJ5IGEgdmFsdWUgb2YgOAorKyAqIGlzIGFjY2VwdGVkIGJ5IHRoZSBsaWJyYXJ5IGJ1dCB3aWxsIGFsd2F5cyBiZSBuZWdvdGlhdGVkIGFzIDkuCisrICovCisgc3RhdGljIHVpbnQ4X3QgY29uc3QgbWluX3NlcnZlcl9tYXhfd2luZG93X2JpdHMgPSA4OworLS8vLyBNYXhpbXVtIHZhbHVlIGZvciBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIGFzIGRlZmluZWQgYnkgZHJhZnQgMTcKKysvLy8gTWF4aW11bSB2YWx1ZSBmb3Igc2VydmVyX21heF93aW5kb3dfYml0cyBhcyBkZWZpbmVkIGJ5IFJGQyA3NjkyCisgc3RhdGljIHVpbnQ4X3QgY29uc3QgbWF4X3NlcnZlcl9tYXhfd2luZG93X2JpdHMgPSAxNTsKKyAKKy0vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgY2xpZW50X21heF93aW5kb3dfYml0cyBhcyBkZWZpbmVkIGJ5IGRyYWZ0IDE3CisrLy8vIERlZmF1bHQgdmFsdWUgZm9yIGNsaWVudF9tYXhfd2luZG93X2JpdHMgYXMgZGVmaW5lZCBieSBSRkMgNzY5MgorIHN0YXRpYyB1aW50OF90IGNvbnN0IGRlZmF1bHRfY2xpZW50X21heF93aW5kb3dfYml0cyA9IDE1OworLS8vLyBNaW5pbXVtIHZhbHVlIGZvciBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGFzIGRlZmluZWQgYnkgZHJhZnQgMTcKKysvLy8gTWluaW11bSB2YWx1ZSBmb3IgY2xpZW50X21heF93aW5kb3dfYml0cyBhcyBkZWZpbmVkIGJ5IFJGQyA3NjkyCisrLyoqCisrICogTk9URTogQSB2YWx1ZSBvZiA4IGlzIG5vdCBhY3R1YWxseSBzdXBwb3J0ZWQgYnkgemxpYiwgdGhlIGRlZmxhdGUKKysgKiBsaWJyYXJ5IHRoYXQgV2ViU29ja2V0KysgdXNlcy4gVG8gcHJlc2VydmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKKysgKiB3aXRoIFJGQyA3NjkyIGFuZCBwcmV2aW91cyB2ZXJzaW9ucyBvZiB0aGUgbGlicmFyeSBhIHZhbHVlIG9mIDgKKysgKiBpcyBhY2NlcHRlZCBieSB0aGUgbGlicmFyeSBidXQgd2lsbCBhbHdheXMgYmUgbmVnb3RpYXRlZCBhcyA5LgorKyAqLworIHN0YXRpYyB1aW50OF90IGNvbnN0IG1pbl9jbGllbnRfbWF4X3dpbmRvd19iaXRzID0gODsKKy0vLy8gTWF4aW11bSB2YWx1ZSBmb3IgY2xpZW50X21heF93aW5kb3dfYml0cyBhcyBkZWZpbmVkIGJ5IGRyYWZ0IDE3CisrLy8vIE1heGltdW0gdmFsdWUgZm9yIGNsaWVudF9tYXhfd2luZG93X2JpdHMgYXMgZGVmaW5lZCBieSBSRkMgNzY5MgorIHN0YXRpYyB1aW50OF90IGNvbnN0IG1heF9jbGllbnRfbWF4X3dpbmRvd19iaXRzID0gMTU7CisgCisgbmFtZXNwYWNlIG1vZGUgeworQEAgLTM3Miw3ICszODQsNyBAQCBjbGFzcyBlbmFibGVkIHsKKyAgICAgLyoqCisgICAgICAqIFRoZSBiaXRzIHNldHRpbmcgaXMgdGhlIGJhc2UgMiBsb2dhcml0aG0gb2YgdGhlIG1heGltdW0gd2luZG93IHNpemUgdGhhdAorICAgICAgKiB0aGUgc2VydmVyIG11c3QgdXNlIHRvIGNvbXByZXNzIG91dGdvaW5nIG1lc3NhZ2VzLiBUaGUgcGVybWl0dGVkIHJhbmdlCistICAgICAqIGlzIDggdG8gMTUgaW5jbHVzaXZlLiA4IHJlcHJlc2VudHMgYSAyNTYgYnl0ZSB3aW5kb3cgYW5kIDE1IGEgMzJLaUIKKysgICAgICogaXMgOSB0byAxNSBpbmNsdXNpdmUuIDkgcmVwcmVzZW50cyBhIDUxMiBieXRlIHdpbmRvdyBhbmQgMTUgYSAzMktpQgorICAgICAgKiB3aW5kb3cuIFRoZSBkZWZhdWx0IHNldHRpbmcgaXMgMTUuCisgICAgICAqCisgICAgICAqIE1vZGUgT3B0aW9uczoKK0BAIC0zODYsNiArMzk4LDE0IEBAIGNsYXNzIGVuYWJsZWQgeworICAgICAgKiBhZGp1c3RlZCBieSB0aGUgc2VydmVyLiBBIHNlcnZlciBtYXkgdW5pbGF0ZXJhbGx5IHNldCB0aGlzIHZhbHVlIHdpdGhvdXQKKyAgICAgICogY2xpZW50IHN1cHBvcnQuCisgICAgICAqCisrICAgICAqIE5PVEU6IFRoZSBwZXJtZXNzYWdlLWRlZmxhdGUgc3BlYyBzcGVjaWZpZXMgdGhhdCBhIHZhbHVlIG9mIDggaXMgYWxsb3dlZC4KKysgICAgICogUHJpb3IgdG8gdmVyc2lvbiAwLjguMCBhIHZhbHVlIG9mIDggd2FzIGFsc28gYWxsb3dlZCBieSB0aGlzIGxpYnJhcnkuCisrICAgICAqIHpsaWIsIHRoZSBkZWZsYXRlIGNvbXByZXNzaW9uIGxpYnJhcnkgdGhhdCBXZWJTb2NrZXQrKyB1c2VzIGhhcyBhbHdheXMKKysgICAgICogc2lsZW50bHkgYWRqdXN0ZWQgYSB2YWx1ZSBvZiA4IHRvIDkuIEluIHJlY2VudCB2ZXJzaW9ucyBvZiB6bGliICgxLjIuOSAKKysgICAgICogYW5kIGdyZWF0ZXIpIGEgdmFsdWUgb2YgOCBpcyBub3cgZXhwbGljaXRseSByZWplY3RlZC4gV2ViU29ja2V0KysgMC44LjAKKysgICAgICogY29udGludWVzIHRvIHBlcmZvcm0gdGhlIDgtPjkgY29udmVyc2lvbiBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKKysgICAgICogcHVycG9zZXMgYnV0IHRoaXMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5LgorKyAgICAgKgorICAgICAgKiBAcGFyYW0gYml0cyBUaGUgc2l6ZSB0byByZXF1ZXN0IGZvciB0aGUgb3V0Z29pbmcgd2luZG93IHNpemUKKyAgICAgICogQHBhcmFtIG1vZGUgVGhlIG1vZGUgdG8gdXNlIGZvciBuZWdvdGlhdGluZyB0aGlzIHBhcmFtZXRlcgorICAgICAgKiBAcmV0dXJuIEEgc3RhdHVzIGNvZGUKK0BAIC0zOTQsNiArNDE0LDEyIEBAIGNsYXNzIGVuYWJsZWQgeworICAgICAgICAgaWYgKGJpdHMgPCBtaW5fc2VydmVyX21heF93aW5kb3dfYml0cyB8fCBiaXRzID4gbWF4X3NlcnZlcl9tYXhfd2luZG93X2JpdHMpIHsKKyAgICAgICAgICAgICByZXR1cm4gZXJyb3I6Om1ha2VfZXJyb3JfY29kZShlcnJvcjo6aW52YWxpZF9tYXhfd2luZG93X2JpdHMpOworICAgICAgICAgfQorKworKyAgICAgICAgLy8gU2VlIG5vdGUgaW4gZG9jIGNvbW1lbnQgYWJvdmUgYWJvdXQgd2hhdCBpcyBoYXBwZW5pbmcgaGVyZQorKyAgICAgICAgaWYgKGJpdHMgPT0gOCkgeworKyAgICAgICAgICAgIGJpdHMgPSA5OworKyAgICAgICAgfQorKworICAgICAgICAgbV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID0gYml0czsKKyAgICAgICAgIG1fc2VydmVyX21heF93aW5kb3dfYml0c19tb2RlID0gbW9kZTsKKyAKK0BAIC00MDMsOCArNDI5LDggQEAgY2xhc3MgZW5hYmxlZCB7CisgICAgIC8vLyBMaW1pdCBjbGllbnQgTFo3NyBzbGlkaW5nIHdpbmRvdyBzaXplCisgICAgIC8qKgorICAgICAgKiBUaGUgYml0cyBzZXR0aW5nIGlzIHRoZSBiYXNlIDIgbG9nYXJpdGhtIG9mIHRoZSB3aW5kb3cgc2l6ZSB0aGF0IHRoZQorLSAgICAgKiBjbGllbnQgbXVzdCB1c2UgdG8gY29tcHJlc3Mgb3V0Z29pbmcgbWVzc2FnZXMuIFRoZSBwZXJtaXR0ZWQgcmFuZ2UgaXMgOAorLSAgICAgKiB0byAxNSBpbmNsdXNpdmUuIDggcmVwcmVzZW50cyBhIDI1NiBieXRlIHdpbmRvdyBhbmQgMTUgYSAzMktpQiB3aW5kb3cuCisrICAgICAqIGNsaWVudCBtdXN0IHVzZSB0byBjb21wcmVzcyBvdXRnb2luZyBtZXNzYWdlcy4gVGhlIHBlcm1pdHRlZCByYW5nZSBpcyA5CisrICAgICAqIHRvIDE1IGluY2x1c2l2ZS4gOSByZXByZXNlbnRzIGEgNTEyIGJ5dGUgd2luZG93IGFuZCAxNSBhIDMyS2lCIHdpbmRvdy4KKyAgICAgICogVGhlIGRlZmF1bHQgc2V0dGluZyBpcyAxNS4KKyAgICAgICoKKyAgICAgICogTW9kZSBPcHRpb25zOgorQEAgLTQxNyw2ICs0NDMsMTQgQEAgY2xhc3MgZW5hYmxlZCB7CisgICAgICAqIG91dGdvaW5nIHdpbmRvdyBzaXplIHVuaWxhdGVyYWxseS4gQSBzZXJ2ZXIgbWF5IG9ubHkgbGltaXQgdGhlIGNsaWVudCdzCisgICAgICAqIHdpbmRvdyBzaXplIGlmIHRoZSByZW1vdGUgY2xpZW50IHN1cHBvcnRzIHRoYXQgZmVhdHVyZS4KKyAgICAgICoKKysgICAgICogTk9URTogVGhlIHBlcm1lc3NhZ2UtZGVmbGF0ZSBzcGVjIHNwZWNpZmllcyB0aGF0IGEgdmFsdWUgb2YgOCBpcyBhbGxvd2VkLgorKyAgICAgKiBQcmlvciB0byB2ZXJzaW9uIDAuOC4wIGEgdmFsdWUgb2YgOCB3YXMgYWxzbyBhbGxvd2VkIGJ5IHRoaXMgbGlicmFyeS4KKysgICAgICogemxpYiwgdGhlIGRlZmxhdGUgY29tcHJlc3Npb24gbGlicmFyeSB0aGF0IFdlYlNvY2tldCsrIHVzZXMgaGFzIGFsd2F5cworKyAgICAgKiBzaWxlbnRseSBhZGp1c3RlZCBhIHZhbHVlIG9mIDggdG8gOS4gSW4gcmVjZW50IHZlcnNpb25zIG9mIHpsaWIgKDEuMi45IAorKyAgICAgKiBhbmQgZ3JlYXRlcikgYSB2YWx1ZSBvZiA4IGlzIG5vdyBleHBsaWNpdGx5IHJlamVjdGVkLiBXZWJTb2NrZXQrKyAwLjguMAorKyAgICAgKiBjb250aW51ZXMgdG8gcGVyZm9ybSB0aGUgOC0+OSBjb252ZXJzaW9uIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQorKyAgICAgKiBwdXJwb3NlcyBidXQgdGhpcyBzaG91bGQgYmUgY29uc2lkZXJlZCBkZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkuCisrICAgICAqCisgICAgICAqIEBwYXJhbSBiaXRzIFRoZSBzaXplIHRvIHJlcXVlc3QgZm9yIHRoZSBvdXRnb2luZyB3aW5kb3cgc2l6ZQorICAgICAgKiBAcGFyYW0gbW9kZSBUaGUgbW9kZSB0byB1c2UgZm9yIG5lZ290aWF0aW5nIHRoaXMgcGFyYW1ldGVyCisgICAgICAqIEByZXR1cm4gQSBzdGF0dXMgY29kZQorQEAgLTQyNSw2ICs0NTksMTIgQEAgY2xhc3MgZW5hYmxlZCB7CisgICAgICAgICBpZiAoYml0cyA8IG1pbl9jbGllbnRfbWF4X3dpbmRvd19iaXRzIHx8IGJpdHMgPiBtYXhfY2xpZW50X21heF93aW5kb3dfYml0cykgeworICAgICAgICAgICAgIHJldHVybiBlcnJvcjo6bWFrZV9lcnJvcl9jb2RlKGVycm9yOjppbnZhbGlkX21heF93aW5kb3dfYml0cyk7CisgICAgICAgICB9CisrCisrICAgICAgICAvLyBTZWUgbm90ZSBpbiBkb2MgY29tbWVudCBhYm92ZSBhYm91dCB3aGF0IGlzIGhhcHBlbmluZyBoZXJlCisrICAgICAgICBpZiAoYml0cyA9PSA4KSB7CisrICAgICAgICAgICAgYml0cyA9IDk7CisrICAgICAgICB9CisrCisgICAgICAgICBtX2NsaWVudF9tYXhfd2luZG93X2JpdHMgPSBiaXRzOworICAgICAgICAgbV9jbGllbnRfbWF4X3dpbmRvd19iaXRzX21vZGUgPSBtb2RlOworIAorQEAgLTY0MiwxMSArNjgyLDE3IEBAIGNsYXNzIGVuYWJsZWQgeworICAgICAgKiBjbGllbnQgcmVxdWVzdGVkIHRoYXQgd2UgdXNlLgorICAgICAgKgorICAgICAgKiBvcHRpb25zOgorLSAgICAgKiAtIGRlY2xpbmUgKHJlZnVzZSB0byB1c2UgdGhlIGF0dHJpYnV0ZSkKKy0gICAgICogLSBhY2NlcHQgKHVzZSB3aGF0ZXZlciB0aGUgY2xpZW50IHNheXMpCistICAgICAqIC0gbGFyZ2VzdCAodXNlIGxhcmdlc3QgcG9zc2libGUgdmFsdWUpCisrICAgICAqIC0gZGVjbGluZSAoaWdub3JlIHZhbHVlLCBvZmZlciBvdXIgZGVmYXVsdCBpbnN0ZWFkKQorKyAgICAgKiAtIGFjY2VwdCAodXNlIHRoZSB2YWx1ZSByZXF1ZXN0ZWQgYnkgdGhlIGNsaWVudCkKKysgICAgICogLSBsYXJnZXN0ICh1c2UgbGFyZ2VzdCB2YWx1ZSBhY2NlcHRhYmxlIHRvIGJvdGgpCisgICAgICAqIC0gc21hbGxlc3QgKHVzZSBzbWFsbGVzdCBwb3NzaWJsZSB2YWx1ZSkKKyAgICAgICoKKysgICAgICogTk9URTogQXMgYSB2YWx1ZSBvZiA4IGlzIG5vIGxvbmdlciBleHBsaWNpdGx5IHN1cHBvcnRlZCBieSB6bGliIGJ1dCBtaWdodAorKyAgICAgKiBiZSByZXF1ZXN0ZWQgZm9yIG5lZ290aWF0aW9uIGJ5IGFuIG9sZGVyIGNsaWVudC9zZXJ2ZXIsIGlmIHRoZSByZXN1bHQgb2YKKysgICAgICogdGhlIG5lZ290aWF0aW9uIHdvdWxkIGJlIHRvIHNlbmQgYSB2YWx1ZSBvZiA4LCBhIHZhbHVlIG9mIDkgaXMgb2ZmZXJlZAorKyAgICAgKiBpbnN0ZWFkLiBUaGlzIGVuc3VyZXMgdGhhdCBXZWJTb2NrZXQrKyB3aWxsIG9ubHkgZXZlciBuZWdvdGlhdGUgY29ubmVjdGlvbnMKKysgICAgICogd2l0aCBjb21wcmVzc2lvbiBzZXR0aW5ncyBleHBsaWNpdGx5IHN1cHBvcnRlZCBieSB6bGliLgorKyAgICAgKgorICAgICAgKiBAcGFyYW0gW2luXSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSBmcm9tIHRoZSBvZmZlcgorICAgICAgKiBAcGFyYW0gW291dF0gZWMgQSByZWZlcmVuY2UgdG8gdGhlIGVycm9yIGNvZGUgdG8gcmV0dXJuIGVycm9ycyB2aWEKKyAgICAgICovCitAQCAtNjc4LDYgKzcyNCwxMSBAQCBjbGFzcyBlbmFibGVkIHsKKyAgICAgICAgICAgICAgICAgZWMgPSBtYWtlX2Vycm9yX2NvZGUoZXJyb3I6OmludmFsaWRfbW9kZSk7CisgICAgICAgICAgICAgICAgIG1fc2VydmVyX21heF93aW5kb3dfYml0cyA9IGRlZmF1bHRfc2VydmVyX21heF93aW5kb3dfYml0czsKKyAgICAgICAgIH0KKysKKysgICAgICAgIC8vIFNlZSBub3RlIGluIGRvYyBjb21tZW50CisrICAgICAgICBpZiAobV9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID09IDgpIHsKKysgICAgICAgICAgICBtX3NlcnZlcl9tYXhfd2luZG93X2JpdHMgPSA5OworKyAgICAgICAgfQorICAgICB9CisgCisgICAgIC8vLyBOZWdvdGlhdGUgY2xpZW50X21heF93aW5kb3dfYml0cyBhdHRyaWJ1dGUKK0BAIC02ODcsMTEgKzczOCwxNyBAQCBjbGFzcyBlbmFibGVkIHsKKyAgICAgICogbmVnb3RpYXRpb24gbW9kZS4KKyAgICAgICoKKyAgICAgICogb3B0aW9uczoKKy0gICAgICogLSBkZWNsaW5lIChyZWZ1c2UgdG8gdXNlIHRoZSBhdHRyaWJ1dGUpCistICAgICAqIC0gYWNjZXB0ICh1c2Ugd2hhdGV2ZXIgdGhlIGNsaWVudCBzYXlzKQorLSAgICAgKiAtIGxhcmdlc3QgKHVzZSBsYXJnZXN0IHBvc3NpYmxlIHZhbHVlKQorKyAgICAgKiAtIGRlY2xpbmUgKGlnbm9yZSB2YWx1ZSwgb2ZmZXIgb3VyIGRlZmF1bHQgaW5zdGVhZCkKKysgICAgICogLSBhY2NlcHQgKHVzZSB0aGUgdmFsdWUgcmVxdWVzdGVkIGJ5IHRoZSBjbGllbnQpCisrICAgICAqIC0gbGFyZ2VzdCAodXNlIGxhcmdlc3QgdmFsdWUgYWNjZXB0YWJsZSB0byBib3RoKQorICAgICAgKiAtIHNtYWxsZXN0ICh1c2Ugc21hbGxlc3QgcG9zc2libGUgdmFsdWUpCisgICAgICAqCisrICAgICAqIE5PVEU6IEFzIGEgdmFsdWUgb2YgOCBpcyBubyBsb25nZXIgZXhwbGljaXRseSBzdXBwb3J0ZWQgYnkgemxpYiBidXQgbWlnaHQKKysgICAgICogYmUgcmVxdWVzdGVkIGZvciBuZWdvdGlhdGlvbiBieSBhbiBvbGRlciBjbGllbnQvc2VydmVyLCBpZiB0aGUgcmVzdWx0IG9mCisrICAgICAqIHRoZSBuZWdvdGlhdGlvbiB3b3VsZCBiZSB0byBzZW5kIGEgdmFsdWUgb2YgOCwgYSB2YWx1ZSBvZiA5IGlzIG9mZmVyZWQKKysgICAgICogaW5zdGVhZC4gVGhpcyBlbnN1cmVzIHRoYXQgV2ViU29ja2V0Kysgd2lsbCBvbmx5IGV2ZXIgbmVnb3RpYXRlIGNvbm5lY3Rpb25zCisrICAgICAqIHdpdGggY29tcHJlc3Npb24gc2V0dGluZ3MgZXhwbGljaXRseSBzdXBwb3J0ZWQgYnkgemxpYi4KKysgICAgICoKKyAgICAgICogQHBhcmFtIFtpbl0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgZnJvbSB0aGUgb2ZmZXIKKyAgICAgICogQHBhcmFtIFtvdXRdIGVjIEEgcmVmZXJlbmNlIHRvIHRoZSBlcnJvciBjb2RlIHRvIHJldHVybiBlcnJvcnMgdmlhCisgICAgICAqLworQEAgLTcyNyw2ICs3ODQsMTEgQEAgY2xhc3MgZW5hYmxlZCB7CisgICAgICAgICAgICAgICAgIGVjID0gbWFrZV9lcnJvcl9jb2RlKGVycm9yOjppbnZhbGlkX21vZGUpOworICAgICAgICAgICAgICAgICBtX2NsaWVudF9tYXhfd2luZG93X2JpdHMgPSBkZWZhdWx0X2NsaWVudF9tYXhfd2luZG93X2JpdHM7CisgICAgICAgICB9CisrCisrICAgICAgICAvLyBTZWUgbm90ZSBpbiBkb2MgY29tbWVudAorKyAgICAgICAgaWYgKG1fY2xpZW50X21heF93aW5kb3dfYml0cyA9PSA4KSB7CisrICAgICAgICAgICAgbV9jbGllbnRfbWF4X3dpbmRvd19iaXRzID0gOTsKKysgICAgICAgIH0KKyAgICAgfQorIAorICAgICBib29sIG1fZW5hYmxlZDsKK2RpZmYgLS1naXQgYS93ZWJzb2NrZXRwcC9pbXBsL2Nvbm5lY3Rpb25faW1wbC5ocHAgYi93ZWJzb2NrZXRwcC9pbXBsL2Nvbm5lY3Rpb25faW1wbC5ocHAKK2luZGV4IDEwNTkxMWRiLi5hZTU1YzMzOCAxMDA2NDQKKy0tLSBhL3dlYnNvY2tldHBwL2ltcGwvY29ubmVjdGlvbl9pbXBsLmhwcAorKysrIGIvd2Vic29ja2V0cHAvaW1wbC9jb25uZWN0aW9uX2ltcGwuaHBwCitAQCAtMTIyMiwxMiArMTIyMiwxOCBAQCBsaWI6OmVycm9yX2NvZGUgY29ubmVjdGlvbjxjb25maWc+Ojpwcm9jZXNzX2hhbmRzaGFrZV9yZXF1ZXN0KCkgeworICAgICBzdGQ6OnBhaXI8bGliOjplcnJvcl9jb2RlLHN0ZDo6c3RyaW5nPiBuZWdfcmVzdWx0czsKKyAgICAgbmVnX3Jlc3VsdHMgPSBtX3Byb2Nlc3Nvci0+bmVnb3RpYXRlX2V4dGVuc2lvbnMobV9yZXF1ZXN0KTsKKyAKKy0gICAgaWYgKG5lZ19yZXN1bHRzLmZpcnN0KSB7CisrICAgIGlmIChuZWdfcmVzdWx0cy5maXJzdCA9PSBlcnJvcjo6bWFrZV9lcnJvcl9jb2RlKGVycm9yOjpleHRlbnNpb25fcGFyc2VfZXJyb3IpKSB7CisgICAgICAgICAvLyBUaGVyZSB3YXMgYSBmYXRhbCBlcnJvciBpbiBleHRlbnNpb24gcGFyc2luZyB0aGF0IHNob3VsZCByZXN1bHQgaW4KKyAgICAgICAgIC8vIGEgZmFpbGVkIGNvbm5lY3Rpb24gYXR0ZW1wdC4KKy0gICAgICAgIG1fYWxvZy53cml0ZShsb2c6OmFsZXZlbDo6ZGV2ZWwsICJCYWQgcmVxdWVzdDogIiArIG5lZ19yZXN1bHRzLmZpcnN0Lm1lc3NhZ2UoKSk7CisrICAgICAgICBtX2Fsb2cud3JpdGUobG9nOjphbGV2ZWw6OmluZm8sICJCYWQgcmVxdWVzdDogIiArIG5lZ19yZXN1bHRzLmZpcnN0Lm1lc3NhZ2UoKSk7CisgICAgICAgICBtX3Jlc3BvbnNlLnNldF9zdGF0dXMoaHR0cDo6c3RhdHVzX2NvZGU6OmJhZF9yZXF1ZXN0KTsKKyAgICAgICAgIHJldHVybiBuZWdfcmVzdWx0cy5maXJzdDsKKysgICAgfSBlbHNlIGlmIChuZWdfcmVzdWx0cy5maXJzdCkgeworKyAgICAgICAgLy8gVGhlcmUgd2FzIGEgZmF0YWwgZXJyb3IgaW4gZXh0ZW5zaW9uIHByb2Nlc3NpbmcgdGhhdCBpcyBwcm9iYWJseSBvdXIKKysgICAgICAgIC8vIGZhdWx0LiBDb25zaWRlciBleHRlbnNpb24gbmVnb3RpYXRpb24gdG8gaGF2ZSBmYWlsZWQgYW5kIGNvbnRpbnVlIGFzCisrICAgICAgICAvLyBpZiBleHRlbnNpb25zIHdlcmUgbm90IHN1cHBvcnRlZAorKyAgICAgICAgbV9hbG9nLndyaXRlKGxvZzo6YWxldmVsOjppbmZvLCAKKysgICAgICAgICAgICAiRXh0ZW5zaW9uIG5lZ290aWF0aW9uIGZhaWxlZDogIiArIG5lZ19yZXN1bHRzLmZpcnN0Lm1lc3NhZ2UoKSk7CisgICAgIH0gZWxzZSB7CisgICAgICAgICAvLyBleHRlbnNpb24gbmVnb3RpYXRpb24gc3VjY2VlZGVkLCBzZXQgcmVzcG9uc2UgaGVhZGVyIGFjY29yZGluZ2x5CisgICAgICAgICAvLyB3ZSBkb24ndCBzZW5kIGFuIGVtcHR5IGV4dGVuc2lvbnMgaGVhZGVyIGJlY2F1c2UgaXQgYnJlYWtzIG1hbnkKK2RpZmYgLS1naXQgYS93ZWJzb2NrZXRwcC9wcm9jZXNzb3JzL2h5YmkxMy5ocHAgYi93ZWJzb2NrZXRwcC9wcm9jZXNzb3JzL2h5YmkxMy5ocHAKK2luZGV4IDc5NDg2NjU0Li5hOTViYzY0OSAxMDA2NDQKKy0tLSBhL3dlYnNvY2tldHBwL3Byb2Nlc3NvcnMvaHliaTEzLmhwcAorKysrIGIvd2Vic29ja2V0cHAvcHJvY2Vzc29ycy9oeWJpMTMuaHBwCitAQCAtOTcsNiArOTcsMTEgQEAgY2xhc3MgaHliaTEzIDogcHVibGljIHByb2Nlc3Nvcjxjb25maWc+IHsKKyAgICAgLyoqCisgICAgICAqIFRoaXMgZXhpc3RzIG1vc3RseSBiZWNhdXNlIHRoZSBjb2RlIGZvciByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzIGlzCisgICAgICAqIGlkZW50aWNhbCBhbmQgSSBjYW4ndCBoYXZlIHZpcnR1YWwgdGVtcGxhdGUgbWV0aG9kcy4KKysgICAgICoKKysgICAgICogTk9URTogdGhpcyBtZXRob2QgbWFrZXMgYXNzdW1wdGlvbnMgdGhhdCB0aGUgcGVybWVzc2FnZS1kZWZsYXRlCisrICAgICAqIGV4dGVuc2lvbiBpcyB0aGUgb25seSBvbmUgc3VwcG9ydGVkLiBJZiBhZGRpdGlvbmFsIGV4dGVuc2lvbnMgYXJlCisrICAgICAqIGV2ZXIgc3VwcG9ydGVkIGl0IHNob3VsZCBiZSByZXZpZXdlZCBjYXJlZnVsbHkuIE1vc3QgY2FzZXMgd2hlcmUKKysgICAgICogdGhhdCBhc3N1bXB0aW9uIGlzIG1hZGUgYXJlIGV4cGxpY2l0bHkgbm90ZWQuCisgICAgICAqLworICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgaGVhZGVyX3R5cGU+CisgICAgIGVycl9zdHJfcGFpciBuZWdvdGlhdGVfZXh0ZW5zaW9uc19oZWxwZXIoaGVhZGVyX3R5cGUgY29uc3QgJiBoZWFkZXIpIHsKK0BAIC0xNDksOSArMTU0LDI2IEBAIGNsYXNzIGh5YmkxMyA6IHB1YmxpYyBwcm9jZXNzb3I8Y29uZmlnPiB7CisgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6IHRoaXMgbGlzdCB3aWxsIG5lZWQgY29tbWFzIGlmIFdlYlNvY2tldCsrIGV2ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdXBwb3J0cyBtb3JlIHRoYW4gb25lIGV4dGVuc2lvbgorLSAgICAgICAgICAgICAgICAgICAgICAgIHJldC5zZWNvbmQgKz0gbmVnX3JldC5zZWNvbmQ7CistICAgICAgICAgICAgICAgICAgICAgICAgbV9wZXJtZXNzYWdlX2RlZmxhdGUuaW5pdChiYXNlOjptX3NlcnZlcik7CistICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisrICAgICAgICAgICAgICAgICAgICAgICAgCisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWN0dWFsbHkgdHJ5IHRvIGluaXRpYWxpemUgdGhlIGV4dGVuc2lvbiBiZWZvcmUgd2UKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWVtIG5lZ290aWF0aW9uIGNvbXBsZXRlCisrICAgICAgICAgICAgICAgICAgICAgICAgcmV0LmZpcnN0ID0gbV9wZXJtZXNzYWdlX2RlZmxhdGUuaW5pdChiYXNlOjptX3NlcnZlcik7CisrICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXQuZmlyc3QpIHsKKysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogc3VwcG9ydCBtdWx0aXBsZSBleHRlbnNpb25zLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByaWdodCBub3csIGJlY2F1c2UgdGhlcmUgaXMgb25seSBvbmUgZXh0ZW5zaW9uIAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdXBwb3J0ZWQsIGl0IGZhaWxpbmcgdG8gbmVnb3RpYXRlIG1lYW5zIHdlIGFyZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkb25lIHdpdGggYWxsIG5lZ290aWF0aW5nLiBJbiB0aGUgZnV0dXJlIGlmIG1vcmUKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXh0ZW5zaW9ucyBhcmUgc3VwcG9ydGVkIGEgYmV0dGVyIHNvbHV0aW9uIHdpbGwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmUgbmVlZGVkIGhlcmUuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldC5zZWNvbmQgKz0gbmVnX3JldC5zZWNvbmQ7CisrCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIGxvb2tpbmcgZm9yIG1vcmUgZXh0ZW5zaW9ucworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3dlYnNvY2tldHBwL3dlYnNvY2tldHBwLTAuNy4wL2Rpc2FibGUtdGVzdHMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3dlYnNvY2tldHBwL3dlYnNvY2tldHBwLTAuNy4wL2Rpc2FibGUtdGVzdHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQyOTgxZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvd2Vic29ja2V0cHAvd2Vic29ja2V0cHAtMC43LjAvZGlzYWJsZS10ZXN0cy5wYXRjaApAQCAtMCwwICsxLDUxIEBACitEZXNjcmlwdGlvbjogRGlzYWJsZSBmYWlsaW5nIHRlc3RfdHJhbnNwb3J0X2FzaW9fdGltZXJzLgorQmVjYXVzZSBvZiAiYWRkcmVzcyBhbHJlYWR5IGluIHVzZSIgZXJyb3IKKy/Cq1BLR0JVSUxERElSwrsvdGVzdC90cmFuc3BvcnQvYXNpby90aW1lcnMuY3BwKDEyOSk6IGVycm9yIGluICJ0bHNfaGFuZHNoYWtlX3RpbWVvdXQiOiBjaGVjayBlYyA9PSBtYWtlX2Vycm9yX2NvZGUodGxzX2hhbmRzaGFrZV90aW1lb3V0KSBmYWlsZWQgW3dlYnNvY2tldHBwLnRyYW5zcG9ydC5hc2lvLnNvY2tldDo4ICE9IHdlYnNvY2tldHBwLnRyYW5zcG9ydC5hc2lvLnNvY2tldDo1XQorQXV0aG9yOiBHaWFuZnJhbmNvIENvc3RhbWFnbmEgPGxvY3V0dXNvZmJvcmdAZGViaWFuLm9yZz4KKworLS0tIHdlYnNvY2tldHBwLTAuNy4wLm9yaWcvdGVzdC90cmFuc3BvcnQvQ01ha2VMaXN0cy50eHQKKysrKyB3ZWJzb2NrZXRwcC0wLjcuMC90ZXN0L3RyYW5zcG9ydC9DTWFrZUxpc3RzLnR4dAorQEAgLTEsMjQgKzEsMjQgQEAKKyBpZiAoT1BFTlNTTF9GT1VORCkKKyAKKy0jIFRlc3QgdHJhbnNwb3J0IGludGVncmF0aW9uCistZmlsZSAoR0xPQiBTT1VSQ0UgaW50ZWdyYXRpb24uY3BwKQorLQorLWluaXRfdGFyZ2V0ICh0ZXN0X3RyYW5zcG9ydCkKKy1idWlsZF90ZXN0ICgke1RBUkdFVF9OQU1FfSAke1NPVVJDRX0pCistbGlua19ib29zdCAoKQorLWxpbmtfb3BlbnNzbCgpCistZmluYWxfdGFyZ2V0ICgpCistc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7VEFSR0VUX05BTUV9IFBST1BFUlRJRVMgRk9MREVSICJ0ZXN0IikKKy0KKy0jIFRlc3QgdHJhbnNwb3J0IGFzaW8gdGltZXJzCistZmlsZSAoR0xPQiBTT1VSQ0UgYXNpby90aW1lcnMuY3BwKQorLQorLWluaXRfdGFyZ2V0ICh0ZXN0X3RyYW5zcG9ydF9hc2lvX3RpbWVycykKKy1idWlsZF90ZXN0ICgke1RBUkdFVF9OQU1FfSAke1NPVVJDRX0pCistbGlua19ib29zdCAoKQorLWxpbmtfb3BlbnNzbCgpCistZmluYWxfdGFyZ2V0ICgpCistc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7VEFSR0VUX05BTUV9IFBST1BFUlRJRVMgRk9MREVSICJ0ZXN0IikKKysjIyBUZXN0IHRyYW5zcG9ydCBpbnRlZ3JhdGlvbgorKyNmaWxlIChHTE9CIFNPVVJDRSBpbnRlZ3JhdGlvbi5jcHApCisrIworKyNpbml0X3RhcmdldCAodGVzdF90cmFuc3BvcnQpCisrI2J1aWxkX3Rlc3QgKCR7VEFSR0VUX05BTUV9ICR7U09VUkNFfSkKKysjbGlua19ib29zdCAoKQorKyNsaW5rX29wZW5zc2woKQorKyNmaW5hbF90YXJnZXQgKCkKKysjc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7VEFSR0VUX05BTUV9IFBST1BFUlRJRVMgRk9MREVSICJ0ZXN0IikKKysjCisrIyMgVGVzdCB0cmFuc3BvcnQgYXNpbyB0aW1lcnMKKysjZmlsZSAoR0xPQiBTT1VSQ0UgYXNpby90aW1lcnMuY3BwKQorKyMKKysjaW5pdF90YXJnZXQgKHRlc3RfdHJhbnNwb3J0X2FzaW9fdGltZXJzKQorKyNidWlsZF90ZXN0ICgke1RBUkdFVF9OQU1FfSAke1NPVVJDRX0pCisrI2xpbmtfYm9vc3QgKCkKKysjbGlua19vcGVuc3NsKCkKKysjZmluYWxfdGFyZ2V0ICgpCisrI3NldF90YXJnZXRfcHJvcGVydGllcygke1RBUkdFVF9OQU1FfSBQUk9QRVJUSUVTIEZPTERFUiAidGVzdCIpCisgCisgIyBUZXN0IHRyYW5zcG9ydCBhc2lvIHNlY3VyaXR5CisgZmlsZSAoR0xPQiBTT1VSQ0UgYXNpby9zZWN1cml0eS5jcHApCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3dlYnNvY2tldHBwL3dlYnNvY2tldHBwXzAuNy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC93ZWJzb2NrZXRwcC93ZWJzb2NrZXRwcF8wLjcuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWZjOTc0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC93ZWJzb2NrZXRwcC93ZWJzb2NrZXRwcF8wLjcuMC5iYgpAQCAtMCwwICsxLDIxIEBACitTVU1NQVJZID0gIkMrKy9Cb29zdCBBc2lvIGJhc2VkIHdlYnNvY2tldCBjbGllbnQvc2VydmVyIGxpYnJhcnkuIgorU0VDVElPTiA9ICJsaWJzL25ldHdvcmsiCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vemFwaG95ZC93ZWJzb2NrZXRwcCIKK0xJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vJHtTfS9DT1BZSU5HO21kNT00ZDE2OGQ3NjNjMTExZjRmZmM2MjI0OTg3MGU0ZTBlYSIKK0RFUEVORFMgPSAib3BlbnNzbCBib29zdCB6bGliIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vemFwaG95ZC93ZWJzb2NrZXRwcC5naXQ7cHJvdG9jb2w9aHR0cHM7YnJhbmNoPW1hc3RlciIKKworIyB0YWcgMC43LjAKK1NSQ1JFVj0gIjM3ODQzN2FlY2RjYjFkZmU2MjA5NmZmZDVkOTQ0YmYxZjY0MGNjYzMiCisKK1NSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLUZpeC1pc3N1ZS01OTkucGF0Y2ggXAorICAgICAgICAgICAgZmlsZTovLzlkZGIzMDBkODc0YTMwZGIzNWUzYWQ1OGYxODg5NDRiZWYwYmYzMWIucGF0Y2ggXAorICAgICAgICAgICAgZmlsZTovLzRjYWI1ZTVjMGM1ZjE5ZmNlZTdkMzdiNGEzOGIxNTZkNjNhMTUwZDQucGF0Y2ggXAorICAgICAgICAgICAgZmlsZTovL2Rpc2FibGUtdGVzdHMucGF0Y2ggXAorICIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBjbWFrZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94ZGctdXNlci1kaXJzL2ZpbGVzLzAwMDEtZXhwbGljaXRseS1kaXNhYmxlLW1hbi1nZW5lcmF0aW9uLWRpc2FibGUtZG9jdW1lbnRhdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveGRnLXVzZXItZGlycy9maWxlcy8wMDAxLWV4cGxpY2l0bHktZGlzYWJsZS1tYW4tZ2VuZXJhdGlvbi1kaXNhYmxlLWRvY3VtZW50YXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyYjBlNDkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94ZGctdXNlci1kaXJzL2ZpbGVzLzAwMDEtZXhwbGljaXRseS1kaXNhYmxlLW1hbi1nZW5lcmF0aW9uLWRpc2FibGUtZG9jdW1lbnRhdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLUZyb20gNDEwOTNkOTYzNGJmZWRkY2FlYzg2Njc0NWQ4ZDQwMjJmNGM2ZjhjMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IFN1biwgMTkgRmViIDIwMTcgMjE6MDE6MzkgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gZXhwbGljaXRseSBkaXNhYmxlIG1hbiBnZW5lcmF0aW9uIC0tZGlzYWJsZS1kb2N1bWVudGF0aW9uIGlzCi0gbm90IGVub3VnaAotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotLS0tCi0gTWFrZWZpbGUuYW0gfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCi1pbmRleCBjMDFjNTRmLi5kY2RmN2EyIDEwMDY0NAotLS0tIGEvTWFrZWZpbGUuYW0KLSsrKyBiL01ha2VmaWxlLmFtCi1AQCAtMSw2ICsxLDYgQEAKLSBOVUxMID0KLSAKLS1TVUJESVJTPXBvIG1hbgotK1NVQkRJUlM9cG8KLSAKLSBJTkNMVURFUyA9CQkJCQlcCi0gCS1JJCh0b3Bfc3JjZGlyKQkJCQlcCi0tLSAKLTIuOS4zCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveGRnLXVzZXItZGlycy9maWxlcy94ZGctdXNlci1kaXJzLmRlc2t0b3AgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hkZy11c2VyLWRpcnMvZmlsZXMveGRnLXVzZXItZGlycy5kZXNrdG9wCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOWEyMmQzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveGRnLXVzZXItZGlycy9maWxlcy94ZGctdXNlci1kaXJzLmRlc2t0b3AKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLVtEZXNrdG9wIEVudHJ5XQotVHlwZT1BcHBsaWNhdGlvbgotTmFtZT1Vc2VyIGZvbGRlcnMgdXBkYXRlCi1FeGVjPXhkZy11c2VyLWRpcnMtdXBkYXRlCi1TdGFydHVwTm90aWZ5PWZhbHNlCi1Ob0Rpc3BsYXk9dHJ1ZQotWC1HTk9NRS1BdXRvc3RhcnQtUGhhc2U9SW5pdGlhbGl6YXRpb24KLVgtS0RFLWF1dG9zdGFydC1waGFzZT0xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveGRnLXVzZXItZGlycy94ZGctdXNlci1kaXJzXzAuMTUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hkZy11c2VyLWRpcnMveGRnLXVzZXItZGlyc18wLjE1LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDU2NzU5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveGRnLXVzZXItZGlycy94ZGctdXNlci1kaXJzXzAuMTUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1ERVNDUklQVElPTiA9ICJ4ZGctdXNlci1kaXJzIGlzIGEgdG9vbCB0byBoZWxwIG1hbmFnZSB1c2VyIGRpcmVjdG9yaWVzIGxpa2UgdGhlIGRlc2t0b3AgZm9sZGVyIGFuZCB0aGUgbXVzaWMgZm9sZGVyIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIgotCi1TUkNfVVJJID0gIiBcCi0gICAgaHR0cDovL3VzZXItZGlycy5mcmVlZGVza3RvcC5vcmcvcmVsZWFzZXMvJHtCUE59LSR7UFZ9LnRhci5neiBcCi0gICAgZmlsZTovLzAwMDEtZXhwbGljaXRseS1kaXNhYmxlLW1hbi1nZW5lcmF0aW9uLWRpc2FibGUtZG9jdW1lbnRhdC5wYXRjaCBcCi0gICAgZmlsZTovL3hkZy11c2VyLWRpcnMuZGVza3RvcCBcCi0iCi1TUkNfVVJJW21kNXN1bV0gPSAiZjVhYWY1Njg2YWQ3ZDg4MDlhNjY0YmZiNDU2NmE1NGQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjBiNGE3NTFmNDFkMDU1NGJjZTNlMGNlNWU4ZDkzNGJlOThjYzYyZDQ4ZjBiOTBhODk0YzNlMTkxNjU1Mjc4NiIKLQotaW5oZXJpdCBhdXRvdG9vbHMgZ2V0dGV4dAotCi1FWFRSQV9PRUNPTkYgPSAiLS1kaXNhYmxlLWRvY3VtZW50YXRpb24iCi0KLWRvX2luc3RhbGxfYXBwZW5kICgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3hkZy9hdXRvc3RhcnQKLSAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L3hkZy11c2VyLWRpcnMuZGVza3RvcCAke0R9JHtzeXNjb25mZGlyfS94ZGcvYXV0b3N0YXJ0Ci19Ci0KLUNPTkZGSUxFU18ke1BOfSArPSAiIFwKLSAgICAke3N5c2NvbmZkaXJ9L3hkZy91c2VyLWRpcnMuY29uZiBcCi0gICAgJHtzeXNjb25mZGlyfS94ZGcvdXNlci1kaXJzLmRlZmF1bHRzIFwKLSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveGRnLXVzZXItZGlycy94ZGctdXNlci1kaXJzXzAuMTcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hkZy11c2VyLWRpcnMveGRnLXVzZXItZGlyc18wLjE3LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzY2U5MjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hkZy11c2VyLWRpcnMveGRnLXVzZXItZGlyc18wLjE3LmJiCkBAIC0wLDAgKzEsMTYgQEAKK0RFU0NSSVBUSU9OID0gInhkZy11c2VyLWRpcnMgaXMgYSB0b29sIHRvIGhlbHAgbWFuYWdlIHVzZXIgZGlyZWN0b3JpZXMgbGlrZSB0aGUgZGVza3RvcCBmb2xkZXIgYW5kIHRoZSBtdXNpYyBmb2xkZXIiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYiCisKK1NSQ19VUkkgPSAiaHR0cDovL3VzZXItZGlycy5mcmVlZGVza3RvcC5vcmcvcmVsZWFzZXMvJHtCUE59LSR7UFZ9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJlMDU2NGVjNmQ4MzhlNmU0MTg2NGQ4NzJhMjliMzU3NSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIyYTA3MDUyODIzNzg4ZTg2MTQ5MjVjNWExOWVmNWI5NjhkOGRiNzM0ZmRlZTY1NjY5OWVhNGY5N2QxMzI0MThjIgorCitpbmhlcml0IGF1dG90b29scyBnZXR0ZXh0CisKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtZG9jdW1lbnRhdGlvbiIKKworQ09ORkZJTEVTXyR7UE59ICs9ICIgXAorICAgICR7c3lzY29uZmRpcn0veGRnL3VzZXItZGlycy5jb25mIFwKKyAgICAke3N5c2NvbmZkaXJ9L3hkZy91c2VyLWRpcnMuZGVmYXVsdHMgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94b3JnLXhyZHAveG9yZ3hyZHBfMC4yLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hvcmcteHJkcC94b3JneHJkcF8wLjIuNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmRhZmRmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94b3JnLXhyZHAveG9yZ3hyZHBfMC4yLjUuYmIKQEAgLTAsMCArMSwyMyBAQAorU1VNTUFSWSA9ICJYb3JnIGRyaXZlcnMgZm9yIHhyZHAuIgorCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWEyNTIzNjYwMzI5ZmRjYTNkOTU0YzBhODczOTBlMDA3IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgCisKK0RFUEVORFMgPSAidmlydHVhbC9saWJ4MTEgeHNlcnZlci14b3JnIHhyZHAgbmFzbS1uYXRpdmUiCisKK2luaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIHBhbSIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL25ldXRyaW5vbGFicy94b3JneHJkcC5naXQiCisKK1NSQ1JFViA9ICJjMTIyNTQ0ZjE4NGQ0MDMxYmJhZTFhZDgwZmJhYjU1NGMzNGE5NDI3IgorCitQViA9ICIwLjIuNSIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS94b3JnL21vZHVsZXMvKiIKKworSU5TQU5FX1NLSVBfJHtQTn0gKz0gInhvcmctZHJpdmVyLWFiaSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveHJkcC94cmRwLzAwMDEtQWRkZWQtcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZS1pbi1ldGMteHJkcC1vcGVuc3NsLmNvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveHJkcC94cmRwLzAwMDEtQWRkZWQtcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZS1pbi1ldGMteHJkcC1vcGVuc3NsLmNvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTdmY2EwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94cmRwL3hyZHAvMDAwMS1BZGRlZC1yZXFfZGlzdGluZ3Vpc2hlZF9uYW1lLWluLWV0Yy14cmRwLW9wZW5zc2wuY29uLnBhdGNoCkBAIC0wLDAgKzEsMzMgQEAKK0Zyb20gZDcwNWIxZDY2NmNiODcxM2Q4NmVhNmZiMmZjNDVjNDI0MTI4Mjg1YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IExlaSBNYW9odWkgPGxlaW1hb2h1aUBjbi5mdWppdHN1LmNvbT4KK0RhdGU6IEZyaSwgMSBEZWMgMjAxNyAxMDoyNDo1MCArMDkwMAorU3ViamVjdDogW1BBVENIXSBBZGRlZCAgcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZSBpbiAvZXRjL3hyZHAvb3BlbnNzbC5jb25mLAorIG90aGVyd2lzZSwgY2VydC5wZW0gY2FuJ3QgYmUgY3JlYXRlZC4KKworU2lnbmVkLW9mZi1ieTogTGVpIE1hb2h1aSA8bGVpbWFvaHVpQGNuLmZ1aml0c3UuY29tPgorLS0tCisga2V5Z2VuL29wZW5zc2wuY29uZiB8IDggKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9rZXlnZW4vb3BlbnNzbC5jb25mIGIva2V5Z2VuL29wZW5zc2wuY29uZgoraW5kZXggMDlkYjZjMi4uZjA3N2Q3MiAxMDA2NDQKKy0tLSBhL2tleWdlbi9vcGVuc3NsLmNvbmYKKysrKyBiL2tleWdlbi9vcGVuc3NsLmNvbmYKK0BAIC00LDYgKzQsMTQgQEAgZGlzdGluZ3Vpc2hlZF9uYW1lID0gcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZQorIHg1MDlfZXh0ZW5zaW9ucyA9IHYzX2NhCisgCisgW3JlcV9kaXN0aW5ndWlzaGVkX25hbWVdCisrIyBDZXJ0aWZpY2F0ZSBzdWJqZWN0CisrI2NvdW50cnlOYW1lID0gVVMKKysjc3RhdGVPclByb3ZpbmNlTmFtZSA9IENBCisrI2xvY2FsaXR5TmFtZSA9IFN1bm55dmFsZQorKyNvcmdhbml6YXRpb25OYW1lID0geHJkcAorKyNvcmdhbml6YXRpb25hbFVuaXROYW1lID0KKytjb21tb25OYW1lID0gWFJEUAorKyNlbWFpbEFkZHJlc3MgPQorIAorIFt2M19jYV0KKyAjIEV4dGVuc2lvbnMgZm9yIGEgdHlwaWNhbCBDQSAtIFBLSVggcmVjb21tZW5kYXRpb24uCistLSAKKzEuOC40LjIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94cmRwL3hyZHAvMDAwMS1GaXgtb2YtQ1ZFLTIwMTctMTY5MjcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hyZHAveHJkcC8wMDAxLUZpeC1vZi1DVkUtMjAxNy0xNjkyNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzkzNjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94cmRwL3hyZHAvMDAwMS1GaXgtb2YtQ1ZFLTIwMTctMTY5MjcucGF0Y2gKQEAgLTAsMCArMSwxNDggQEAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IENWRS0yMDE3LTE2OTI3CisKK3Nlc21hbjogc2NwdjAsIGFjY2VwdCB2YXJpYWJsZSBsZW5ndGggZGF0YSBmaWVsZHMKKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCAKKworLS0tCisgc2VzbWFuL2xpYnNjcC9saWJzY3BfdjAuYyB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zZXNtYW4vbGlic2NwL2xpYnNjcF92MC5jIGIvc2VzbWFuL2xpYnNjcC9saWJzY3BfdjAuYworaW5kZXggNWEwYzhiZi4uNTY5MzQwNyAxMDA2NDQKKy0tLSBhL3Nlc21hbi9saWJzY3AvbGlic2NwX3YwLmMKKysrKyBiL3Nlc21hbi9saWJzY3AvbGlic2NwX3YwLmMKK0BAIC0xNjEsNyArMTYxLDcgQEAgc2NwX3Ywc19hY2NlcHQoc3RydWN0IFNDUF9DT05ORUNUSU9OICpjLCBzdHJ1Y3QgU0NQX1NFU1NJT04gKipzLCBpbnQgc2tpcFZjaGspCisgICAgIHN0cnVjdCBTQ1BfU0VTU0lPTiAqc2Vzc2lvbiA9IDA7CisgICAgIHR1aTE2IHN6OworICAgICB0dWkzMiBjb2RlID0gMDsKKy0gICAgY2hhciBidWZbMjU3XTsKKysgICAgY2hhciAqYnVmID0gMDsKKyAKKyAgICAgaWYgKCFza2lwVmNoaykKKyAgICAgeworQEAgLTIyNiwyNyArMjI2LDMxIEBAIHNjcF92MHNfYWNjZXB0KHN0cnVjdCBTQ1BfQ09OTkVDVElPTiAqYywgc3RydWN0IFNDUF9TRVNTSU9OICoqcywgaW50IHNraXBWY2hrKQorIAorICAgICAgICAgLyogcmVhZGluZyB1c2VybmFtZSAqLworICAgICAgICAgaW5fdWludDE2X2JlKGMtPmluX3MsIHN6KTsKKy0gICAgICAgIGJ1Zltzel0gPSAnXDAnOworKyAgICAgICAgYnVmID0gZ19uZXcwKGNoYXIsIHN6KTsKKyAgICAgICAgIGluX3VpbnQ4YShjLT5pbl9zLCBidWYsIHN6KTsKKy0KKysgICAgICAgIGJ1Zltzel0gPSAnXDAnOworICAgICAgICAgaWYgKDAgIT0gc2NwX3Nlc3Npb25fc2V0X3VzZXJuYW1lKHNlc3Npb24sIGJ1ZikpCisgICAgICAgICB7CisgICAgICAgICAgICAgc2NwX3Nlc3Npb25fZGVzdHJveShzZXNzaW9uKTsKKyAgICAgICAgICAgICBsb2dfbWVzc2FnZShMT0dfTEVWRUxfV0FSTklORywgIlt2MDolZF0gY29ubmVjdGlvbiBhYm9ydGVkOiBlcnJvciBzZXR0aW5nIHVzZXJuYW1lIiwgX19MSU5FX18pOworKyAgICAgICAgICAgIGdfZnJlZShidWYpOworICAgICAgICAgICAgIHJldHVybiBTQ1BfU0VSVkVSX1NUQVRFX0lOVEVSTkFMX0VSUjsKKyAgICAgICAgIH0KKysgICAgICAgIGdfZnJlZShidWYpOworIAorICAgICAgICAgLyogcmVhZGluZyBwYXNzd29yZCAqLworICAgICAgICAgaW5fdWludDE2X2JlKGMtPmluX3MsIHN6KTsKKy0gICAgICAgIGJ1Zltzel0gPSAnXDAnOworKyAgICAgICAgYnVmID0gZ19uZXcwKGNoYXIsIHN6KTsKKyAgICAgICAgIGluX3VpbnQ4YShjLT5pbl9zLCBidWYsIHN6KTsKKy0KKysgICAgICAgIGJ1Zltzel0gPSAnXDAnOworICAgICAgICAgaWYgKDAgIT0gc2NwX3Nlc3Npb25fc2V0X3Bhc3N3b3JkKHNlc3Npb24sIGJ1ZikpCisgICAgICAgICB7CisgICAgICAgICAgICAgc2NwX3Nlc3Npb25fZGVzdHJveShzZXNzaW9uKTsKKyAgICAgICAgICAgICBsb2dfbWVzc2FnZShMT0dfTEVWRUxfV0FSTklORywgIlt2MDolZF0gY29ubmVjdGlvbiBhYm9ydGVkOiBlcnJvciBzZXR0aW5nIHBhc3N3b3JkIiwgX19MSU5FX18pOworKyAgICAgICAgICAgIGdfZnJlZShidWYpOworICAgICAgICAgICAgIHJldHVybiBTQ1BfU0VSVkVSX1NUQVRFX0lOVEVSTkFMX0VSUjsKKyAgICAgICAgIH0KKysgICAgICAgIGdfZnJlZShidWYpOworIAorICAgICAgICAgLyogd2lkdGggKi8KKyAgICAgICAgIGluX3VpbnQxNl9iZShjLT5pbl9zLCBzeik7CitAQCAtMjcyLDkgKzI3NiwxMSBAQCBzY3BfdjBzX2FjY2VwdChzdHJ1Y3QgU0NQX0NPTk5FQ1RJT04gKmMsIHN0cnVjdCBTQ1BfU0VTU0lPTiAqKnMsIGludCBza2lwVmNoaykKKyAKKyAgICAgICAgICAgICBpZiAoc3ogPiAwKQorICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgYnVmID0gZ19uZXcwKGNoYXIsIHN6KTsKKyAgICAgICAgICAgICAgICAgaW5fdWludDhhKGMtPmluX3MsIGJ1Ziwgc3opOworICAgICAgICAgICAgICAgICBidWZbc3pdID0gJ1wwJzsKKyAgICAgICAgICAgICAgICAgc2NwX3Nlc3Npb25fc2V0X2RvbWFpbihzZXNzaW9uLCBidWYpOworKyAgICAgICAgICAgICAgICBnX2ZyZWUoYnVmKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgCitAQCAtMjg1LDkgKzI5MSwxMSBAQCBzY3BfdjBzX2FjY2VwdChzdHJ1Y3QgU0NQX0NPTk5FQ1RJT04gKmMsIHN0cnVjdCBTQ1BfU0VTU0lPTiAqKnMsIGludCBza2lwVmNoaykKKyAKKyAgICAgICAgICAgICBpZiAoc3ogPiAwKQorICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgYnVmID0gZ19uZXcwKGNoYXIsIHN6KTsKKyAgICAgICAgICAgICAgICAgaW5fdWludDhhKGMtPmluX3MsIGJ1Ziwgc3opOworICAgICAgICAgICAgICAgICBidWZbc3pdID0gJ1wwJzsKKyAgICAgICAgICAgICAgICAgc2NwX3Nlc3Npb25fc2V0X3Byb2dyYW0oc2Vzc2lvbiwgYnVmKTsKKysgICAgICAgICAgICAgICAgZ19mcmVlKGJ1Zik7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorIAorQEAgLTI5OCw5ICszMDYsMTEgQEAgc2NwX3Ywc19hY2NlcHQoc3RydWN0IFNDUF9DT05ORUNUSU9OICpjLCBzdHJ1Y3QgU0NQX1NFU1NJT04gKipzLCBpbnQgc2tpcFZjaGspCisgCisgICAgICAgICAgICAgaWYgKHN6ID4gMCkKKyAgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgIGJ1ZiA9IGdfbmV3MChjaGFyLCBzeik7CisgICAgICAgICAgICAgICAgIGluX3VpbnQ4YShjLT5pbl9zLCBidWYsIHN6KTsKKyAgICAgICAgICAgICAgICAgYnVmW3N6XSA9ICdcMCc7CisgICAgICAgICAgICAgICAgIHNjcF9zZXNzaW9uX3NldF9kaXJlY3Rvcnkoc2Vzc2lvbiwgYnVmKTsKKysgICAgICAgICAgICAgICAgZ19mcmVlKGJ1Zik7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorIAorQEAgLTMxMSw5ICszMjEsMTEgQEAgc2NwX3Ywc19hY2NlcHQoc3RydWN0IFNDUF9DT05ORUNUSU9OICpjLCBzdHJ1Y3QgU0NQX1NFU1NJT04gKipzLCBpbnQgc2tpcFZjaGspCisgCisgICAgICAgICAgICAgaWYgKHN6ID4gMCkKKyAgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgIGJ1ZiA9IGdfbmV3MChjaGFyLCBzeik7CisgICAgICAgICAgICAgICAgIGluX3VpbnQ4YShjLT5pbl9zLCBidWYsIHN6KTsKKyAgICAgICAgICAgICAgICAgYnVmW3N6XSA9ICdcMCc7CisgICAgICAgICAgICAgICAgIHNjcF9zZXNzaW9uX3NldF9jbGllbnRfaXAoc2Vzc2lvbiwgYnVmKTsKKysgICAgICAgICAgICAgICAgZ19mcmVlKGJ1Zik7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICB9CitAQCAtMzMyLDI5ICszNDQsMzUgQEAgc2NwX3Ywc19hY2NlcHQoc3RydWN0IFNDUF9DT05ORUNUSU9OICpjLCBzdHJ1Y3QgU0NQX1NFU1NJT04gKipzLCBpbnQgc2tpcFZjaGspCisgICAgICAgICBzY3Bfc2Vzc2lvbl9zZXRfdHlwZShzZXNzaW9uLCBTQ1BfR1dfQVVUSEVOVElDQVRJT04pOworICAgICAgICAgLyogcmVhZGluZyB1c2VybmFtZSAqLworICAgICAgICAgaW5fdWludDE2X2JlKGMtPmluX3MsIHN6KTsKKy0gICAgICAgIGJ1Zltzel0gPSAnXDAnOworKyAgICAgICAgYnVmID0gZ19uZXcwKGNoYXIsIHN6KTsKKyAgICAgICAgIGluX3VpbnQ4YShjLT5pbl9zLCBidWYsIHN6KTsKKysgICAgICAgIGJ1Zltzel0gPSAnXDAnOworIAorICAgICAgICAgLyogZ193cml0ZWxuKCJSZWNlaXZlZCB1c2VyIG5hbWU6ICVzIixidWYpOyAqLworICAgICAgICAgaWYgKDAgIT0gc2NwX3Nlc3Npb25fc2V0X3VzZXJuYW1lKHNlc3Npb24sIGJ1ZikpCisgICAgICAgICB7CisgICAgICAgICAgICAgc2NwX3Nlc3Npb25fZGVzdHJveShzZXNzaW9uKTsKKyAgICAgICAgICAgICAvKiB1bnRpbCBzeXNsb2cgbWVyZ2UgbG9nX21lc3NhZ2Uoc19sb2csIExPR19MRVZFTF9XQVJOSU5HLCAiW3YwOiVkXSBjb25uZWN0aW9uIGFib3J0ZWQ6IGVycm9yIHNldHRpbmcgICAgICAgIHVzZXJuYW1lIiwgX19MSU5FX18pOyovCisrICAgICAgICAgICAgZ19mcmVlKGJ1Zik7CisgICAgICAgICAgICAgcmV0dXJuIFNDUF9TRVJWRVJfU1RBVEVfSU5URVJOQUxfRVJSOworICAgICAgICAgfQorKyAgICAgICAgZ19mcmVlKGJ1Zik7CisgCisgICAgICAgICAvKiByZWFkaW5nIHBhc3N3b3JkICovCisgICAgICAgICBpbl91aW50MTZfYmUoYy0+aW5fcywgc3opOworLSAgICAgICAgYnVmW3N6XSA9ICdcMCc7CisrICAgICAgICBidWYgPSBnX25ldzAoY2hhciwgc3opOworICAgICAgICAgaW5fdWludDhhKGMtPmluX3MsIGJ1Ziwgc3opOworKyAgICAgICAgYnVmW3N6XSA9ICdcMCc7CisgCisgICAgICAgICAvKiBnX3dyaXRlbG4oIlJlY2VpdmVkIHBhc3N3b3JkOiAlcyIsYnVmKTsgKi8KKyAgICAgICAgIGlmICgwICE9IHNjcF9zZXNzaW9uX3NldF9wYXNzd29yZChzZXNzaW9uLCBidWYpKQorICAgICAgICAgeworICAgICAgICAgICAgIHNjcF9zZXNzaW9uX2Rlc3Ryb3koc2Vzc2lvbik7CisgICAgICAgICAgICAgLyogdW50aWwgc3lzbG9nIG1lcmdlIGxvZ19tZXNzYWdlKHNfbG9nLCBMT0dfTEVWRUxfV0FSTklORywgIlt2MDolZF0gY29ubmVjdGlvbiBhYm9ydGVkOiBlcnJvciBzZXR0aW5nIHBhc3N3b3JkIiwgX19MSU5FX18pOyAqLworKyAgICAgICAgICAgIGdfZnJlZShidWYpOworICAgICAgICAgICAgIHJldHVybiBTQ1BfU0VSVkVSX1NUQVRFX0lOVEVSTkFMX0VSUjsKKyAgICAgICAgIH0KKysgICAgICAgIGdfZnJlZShidWYpOworICAgICB9CisgICAgIGVsc2UKKyAgICAgeworLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hyZHAveHJkcC8wMDAxLUZpeC1zZXNtYW4uaW5pLWFuZC14cmRwLmluaS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveHJkcC94cmRwLzAwMDEtRml4LXNlc21hbi5pbmktYW5kLXhyZHAuaW5pLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlYWFkZGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hyZHAveHJkcC8wMDAxLUZpeC1zZXNtYW4uaW5pLWFuZC14cmRwLmluaS5wYXRjaApAQCAtMCwwICsxLDc1IEBACitGcm9tIGE5YzQ2MGYxNThkNjhjMWIzZGU2YTMxY2U4NTNkZTUzNzk5Nzc2OTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMZWkgTWFvaHVpIDxsZWltYW9odWlAY24uZnVqaXRzdS5jb20+CitEYXRlOiBUaHUsIDMwIE5vdiAyMDE3IDExOjEwOjA0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBzZXNtYW4uaW5pIGFuZCB4cmRwLmluaQorCitTaWduZWQtb2ZmLWJ5OiBMZWkgTWFvaHVpIDxsZWltYW9odWlAY24uZnVqaXRzdS5jb20+CistLS0KKyBzZXNtYW4vc2VzbWFuLmluaSB8IDIwICsrKysrKy0tLS0tLS0tLS0tLS0tCisgeHJkcC94cmRwLmluaSAgICAgfCAxMCAtLS0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc2VzbWFuL3Nlc21hbi5pbmkgYi9zZXNtYW4vc2VzbWFuLmluaQoraW5kZXggODIyNWVlNC4uYzA5MTg5ZSAxMDA2NDQKKy0tLSBhL3Nlc21hbi9zZXNtYW4uaW5pCisrKysgYi9zZXNtYW4vc2VzbWFuLmluaQorQEAgLTU0LDEyICs1NCwxNCBAQCBMb2dMZXZlbD1ERUJVRworIEVuYWJsZVN5c2xvZz0xCisgU3lzbG9nTGV2ZWw9REVCVUcKKyAKKy1bWDExcmRwXQorLXBhcmFtPVgxMXJkcAorLXBhcmFtPS1icworK1tYb3JnXQorK3BhcmFtPVhvcmcKKytwYXJhbT0tY29uZmlnCisrcGFyYW09eHJkcC94b3JnLmNvbmYKKytwYXJhbT0tbm9yZXNldAorIHBhcmFtPS1ub2xpc3RlbgorIHBhcmFtPXRjcAorLXBhcmFtPS11ZHMKKysKKyAKKyBbWHZuY10KKyBwYXJhbT1Ydm5jCitAQCAtNzAsMTYgKzcyLDYgQEAgcGFyYW09LWxvY2FsaG9zdAorIHBhcmFtPS1kcGkKKyBwYXJhbT05NgorIAorLVtYb3JnXQorLXBhcmFtPVhvcmcKKy1wYXJhbT0tY29uZmlnCistcGFyYW09eHJkcC94b3JnLmNvbmYKKy1wYXJhbT0tbm9yZXNldAorLXBhcmFtPS1ub2xpc3RlbgorLXBhcmFtPXRjcAorLXBhcmFtPS1sb2dmaWxlCistcGFyYW09Lnhvcmd4cmRwLiVzLmxvZworLQorIFtDaGFuc3J2XQorIDsgZHJpdmUgcmVkaXJlY3Rpb24sIGRlZmF1bHRzIHRvIHhyZHBfY2xpZW50IGlmIG5vdCBzZXQKKyBGdXNlTW91bnROYW1lPXRoaW5jbGllbnRfZHJpdmVzCitkaWZmIC0tZ2l0IGEveHJkcC94cmRwLmluaSBiL3hyZHAveHJkcC5pbmkKK2luZGV4IGNiNmQ3YzMuLjlmNjNhNjkgMTAwNjQ0CistLS0gYS94cmRwL3hyZHAuaW5pCisrKysgYi94cmRwL3hyZHAuaW5pCitAQCAtMTU3LDE2ICsxNTcsNiBAQCBpcD0xMjcuMC4wLjEKKyBwb3J0PS0xCisgY29kZT0yMAorIAorLVtYMTFyZHBdCistbmFtZT1YMTFyZHAKKy1saWI9bGlieHVwLnNvCistdXNlcm5hbWU9YXNrCistcGFzc3dvcmQ9YXNrCistaXA9MTI3LjAuMC4xCistcG9ydD0tMQorLXhzZXJ2ZXJicHA9MjQKKy1jb2RlPTEwCistCisgW1h2bmNdCisgbmFtZT1Ydm5jCisgbGliPWxpYnZuYy5zbworLS0gCisxLjguNC4yCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveHJkcC94cmRwLzAwMDEtRml4LXRoZS1jb21waWxlLWVycm9yLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94cmRwL3hyZHAvMDAwMS1GaXgtdGhlLWNvbXBpbGUtZXJyb3IucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJiMjc5MAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveHJkcC94cmRwLzAwMDEtRml4LXRoZS1jb21waWxlLWVycm9yLnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IHRoZSBtYWtlIGVycm9yCisKK0ZpeCB0aGUgY29tcGlsZSBlcnJvcjoKKyAqKiogTm8gcnVsZSB0byBtYWtlIHRhcmdldCAnLi4vbGlicmZ4Y29kZWMvc3JjLy5saWJzL2xpYnJmeGVuY29kZS5hJywgbmVlZGVkIGJ5ICd4cmRwJy4gIFN0b3AuLgorCitTaWduZWQtb2ZmLWJ5OiBaaGVuZyBSdW9xaW4gPHpoZW5ncnEuZm5zdEBjbi5mdWppdHN1LmNvbT4KKy0tLQorIHhyZHAvTWFrZWZpbGUuYW0gfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEveHJkcC9NYWtlZmlsZS5hbSBiL3hyZHAvTWFrZWZpbGUuYW0KK2luZGV4IGEyNTllZjMuLmQ1NTA1YjIgMTAwNjQ0CistLS0gYS94cmRwL01ha2VmaWxlLmFtCisrKysgYi94cmRwL01ha2VmaWxlLmFtCitAQCAtMjMsNyArMjMsNyBAQCBlbmRpZgorIGlmIFhSRFBfUkZYQ09ERUMKKyBBTV9DUFBGTEFHUyArPSAtRFhSRFBfUkZYQ09ERUMKKyBBTV9DUFBGTEFHUyArPSAtSSQodG9wX3NyY2RpcikvbGlicmZ4Y29kZWMvaW5jbHVkZQorLVhSRFBfRVhUUkFfTElCUyArPSAkKHRvcF9idWlsZGRpcikvbGlicmZ4Y29kZWMvc3JjLy5saWJzL2xpYnJmeGVuY29kZS5hCisrWFJEUF9FWFRSQV9MSUJTICs9ICQodG9wX2J1aWxkZGlyKS9saWJyZnhjb2RlYy9zcmMvLmxpYnMvbGlicmZ4ZW5jb2RlLmxhCisgZW5kaWYKKyAKKyBpZiBYUkRQX1BJWE1BTgorQEAgLTM1LDcgKzM1LDcgQEAgZW5kaWYKKyBpZiBYUkRQX1BBSU5URVIKKyBBTV9DUFBGTEFHUyArPSAtRFhSRFBfUEFJTlRFUgorIEFNX0NQUEZMQUdTICs9IC1JJCh0b3Bfc3JjZGlyKS9saWJwYWludGVyL2luY2x1ZGUKKy1YUkRQX0VYVFJBX0xJQlMgKz0gJCh0b3BfYnVpbGRkaXIpL2xpYnBhaW50ZXIvc3JjLy5saWJzL2xpYnBhaW50ZXIuYQorK1hSRFBfRVhUUkFfTElCUyArPSAkKHRvcF9idWlsZGRpcikvbGlicGFpbnRlci9zcmMvLmxpYnMvbGlicGFpbnRlci5sYQorIGVuZGlmCisgCisgc2Jpbl9QUk9HUkFNUyA9IFwKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94cmRwL3hyZHAveHJkcC5zeXNjb25maWcgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hyZHAveHJkcC94cmRwLnN5c2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWY1MDBhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC94cmRwL3hyZHAveHJkcC5zeXNjb25maWcKQEAgLTAsMCArMSw0IEBACisjIHB1dCBzb21lIG9wdGlvbnMgaGVyZQorCitYUkRQX09QVElPTlM9IiIKK1NFU01BTl9PUFRJT05TPSIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hyZHAveHJkcF8wLjkuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQveHJkcC94cmRwXzAuOS40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlZjdjOTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3hyZHAveHJkcF8wLjkuNC5iYgpAQCAtMCwwICsxLDk5IEBACitTVU1NQVJZID0gIkFuIG9wZW4gc291cmNlIHJlbW90ZSBkZXNrdG9wIHByb3RvY29sKHJkcCkgc2VydmVyLiIKKworTElDRU5TRSA9ICJBcGFjaGUtMi4wIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzJjZmJlNGU3YmQzM2EwYTFkZTk2MzBjOTExOTVjMjEgXAorIgorCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjayBhdXRvdG9vbHMgcGtnY29uZmlnIHVzZXJhZGQgc3lzdGVtZAorCitERVBFTkRTID0gIm9wZW5zc2wgdmlydHVhbC9saWJ4MTEgbGlieGZpeGVzIGxpYnhyYW5kciBsaWJwYW0gbmFzbS1uYXRpdmUiCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEgcGFtIgorCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbmV1dHJpbm9sYWJzL3hyZHAuZ2l0IFwKKyAgICAgICAgICAgZmlsZTovL3hyZHAuc3lzY29uZmlnIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtRml4LXNlc21hbi5pbmktYW5kLXhyZHAuaW5pLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtQWRkZWQtcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZS1pbi1ldGMteHJkcC1vcGVuc3NsLmNvbi5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLUZpeC10aGUtY29tcGlsZS1lcnJvci5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLUZpeC1vZi1DVkUtMjAxNy0xNjkyNy5wYXRjaCBcCisgICAgICAgICAgICIKKworU1JDUkVWID0gImMyOTVkZDYxYjg4MmU4YjU2Njc3Y2YxMjc5MWY0MzYzNGY5MTkwYjUiCisKK1BWID0gIjAuOS40K2dpdCR7U1JDUFZ9IgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitQQUNLQUdFQ09ORklHID8/PSAiIgorUEFDS0FHRUNPTkZJR1tmdXNlXSA9ICIgLS1lbmFibGUtZnVzZSwgLS1kaXNhYmxlLWZ1c2UsIGZ1c2UiCisKK1VTRVJBRERfUEFDS0FHRVMgPSAiJHtQTn0iCitHUk9VUEFERF9QQVJBTV8ke1BOfSA9ICItLXN5c3RlbSB4cmRwIgorVVNFUkFERF9QQVJBTV8ke1BOfSAgPSAiLS1zeXN0ZW0gLS1ob21lIC92YXIvcnVuL3hyZHAgLWcgeHJkcCBcCisgICAgICAgICAgICAgICAgICAgICAgICAtLW5vLWNyZWF0ZS1ob21lIC0tc2hlbGwgL2Jpbi9mYWxzZSB4cmRwIgorCitGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9kYnVzLTEvc2VydmljZXMvKi5zZXJ2aWNlIFwKKyAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L2RidXMtMS9hY2Nlc3NpYmlsaXR5LXNlcnZpY2VzLyouc2VydmljZSAiCisKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L3hyZHAvbGliY29tbW9uLnNvIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3hyZHAvbGlieHJkcC5zbyBcCisgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS94cmRwL2xpYnNjcC5zbyBcCisgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS94cmRwL2xpYnhyZHBhcGkuc28gIgorCitFWFRSQV9PRUNPTkYgPSAiLS1lbmFibGUtcGFtLWNvbmZpZz1zdXNlIgorCitkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKKyAgICBjZCAke1N9CisgICAgLi9ib290c3RyYXAKKyAgICBjZCAtCit9CisKK2RvX2NvbXBpbGVfcHJlcGVuZCgpIHsKKyAgICBzZWQgLWkgJ3MvKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtLyhNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtL2cnICR7U30va2V5Z2VuL01ha2VmaWxlLmluCit9CisKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisJaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfSAKKwlpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3hyZHAKKwlpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3hyZHAvcGFtLmQKKwlpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3N5c2NvbmZpZy94cmRwCisgICAKKwkjIGRlYWwgd2l0aCBzeXN0ZW1kIHVuaXQgZmlsZXMKKwlpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisJaW5zdGFsbCAtbSAwNjQ0ICR7U30vaW5zdGZpbGVzL3hyZHAuc2VydmljZS5pbiAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS94cmRwLnNlcnZpY2UKKwlpbnN0YWxsIC1tIDA2NDQgJHtTfS9pbnN0ZmlsZXMveHJkcC1zZXNtYW4uc2VydmljZS5pbiAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS94cmRwLXNlc21hbi5zZXJ2aWNlIAorCXNlZCAtaSAtZSAncyxAbG9jYWxzdGF0ZWRpckAsJHtsb2NhbHN0YXRlZGlyfSxnJyAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS94cmRwLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0veHJkcC1zZXNtYW4uc2VydmljZQorCXNlZCAtaSAtZSAncyxAc3lzY29uZmRpckAsJHtzeXNjb25mZGlyfSxnJyAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS94cmRwLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0veHJkcC1zZXNtYW4uc2VydmljZQorCXNlZCAtaSAtZSAncyxAc2JpbmRpckAsJHtzYmluZGlyfSxnJyAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbS94cmRwLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0veHJkcC1zZXNtYW4uc2VydmljZQorCisJaW5zdGFsbCAtbSAwNjQ0ICR7U30vaW5zdGZpbGVzLyouaW5pICR7RH0ke3N5c2NvbmZkaXJ9L3hyZHAvCisJaW5zdGFsbCAtbSAwNjQ0ICR7U30vc2VzbWFuL3Nlc21hbi5pbmkgJHtEfSR7c3lzY29uZmRpcn0veHJkcC8KKwlpbnN0YWxsIC1tIDA2NDQgJHtTfS9zZXNtYW4vc3RhcnR3bS5zaCAke0R9JHtzeXNjb25mZGlyfS94cmRwLworCWluc3RhbGwgLW0gMDY0NCAke1N9L3hyZHAveHJkcC5pbmkgJHtEfSR7c3lzY29uZmRpcn0veHJkcC8KKwlpbnN0YWxsIC1tIDA2NDQgJHtTfS94cmRwL3hyZHBfa2V5Ym9hcmQuaW5pICR7RH0ke3N5c2NvbmZkaXJ9L3hyZHAvCisJaW5zdGFsbCAtbSAwNjQ0ICR7U30vaW5zdGZpbGVzL3hyZHAuc2ggJHtEfSR7c3lzY29uZmRpcn0veHJkcC8KKwlpbnN0YWxsIC1tIDA2NDQgJHtTfS9rZXlnZW4vb3BlbnNzbC5jb25mICR7RH0ke3N5c2NvbmZkaXJ9L3hyZHAvCisJaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0veHJkcC5zeXNjb25maWcgJHtEfSR7c3lzY29uZmRpcn0vc3lzY29uZmlnL3hyZHAvCisJY2hvd24geHJkcDp4cmRwICR7RH0ke3N5c2NvbmZkaXJ9L3hyZHAKK30KKworU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gInhyZHAuc2VydmljZSB4cmRwLXNlc21hbi5zZXJ2aWNlIgorCitwa2dfcG9zdGluc3RfJHtQTn0oKSB7CisJaWYgdGVzdCAteiAiJEQiCisJdGhlbgorCQlpZiB0ZXN0IC14ICR7YmluZGlyfS94cmRwLWtleWdlbgorCQl0aGVuCisJCQkke2JpbmRpcn0veHJkcC1rZXlnZW4geHJkcCAke3N5c2NvbmZkaXJ9L3hyZHAvcnNha2V5cy5pbmkgPi9kZXYvbnVsbAorICAgICAgICAgICAgICAgIGZpCisJCWlmIHRlc3QgISAtcyAke3N5c2NvbmZkaXJ9L3hyZHAvY2VydC5wZW0KKwkJdGhlbgorCQkJb3BlbnNzbCByZXEgLXg1MDkgLW5ld2tleSByc2E6MjA0OCAtc2hhMjU2IC1ub2RlcyAtZGF5cyAzNjUyIFwKKwkJCS1rZXlvdXQgJHtzeXNjb25mZGlyfS94cmRwL2tleS5wZW0gXAorCQkJLW91dCAke3N5c2NvbmZkaXJ9L3hyZHAvY2VydC5wZW0gXAorCQkJLWNvbmZpZyAke3N5c2NvbmZkaXJ9L3hyZHAvb3BlbnNzbC5jb25mID4vZGV2L251bGwgMj4mMQorCQkJY2htb2QgNDAwICR7c3lzY29uZmRpcn0veHJkcC9rZXkucGVtCisJCWZpCQkJCisgICAgICAgIGZpCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3ppbGUvemlsZV8yLjQuMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L3ppbGUvemlsZV8yLjQuMTEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2NjNmNDRiLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvemlsZS96aWxlXzIuNC4xMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLVNVTU1BUlkgPSAiWmlsZSBpcyBsb3NzeSBFbWFjcyIKLUhPTUVQQUdFID0gImh0dHA6Ly96aWxlLnNvdXJjZWZvcmdlLm5ldC8iCi1ERVBFTkRTID0gIm5jdXJzZXMgYmR3Z2MiCi0KLUxJQ0VOU0UgPSAiR1BMdjMiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKLQotU1JDX1VSSSA9ICJodHRwOi8vZnRwLmdudS5vcmcvZ251L3ppbGUvJHtCUH0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL3JlbW92ZS1oZWxwMm1hbi5wYXRjaCBcCi0iCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI3YTQ2MGNjZWM2NGUzYmVjMjgzNTY5N2IyZWFlNTMzYyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIxZmQyN2JiZGRjNjE0OTFiMWZiYjI5YTM0NWQwZDM0NDczNGFhOWU4MGNmYTA3YjAyODkyZWVkZjgzMWZhOWNjIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcKLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgcm0gLXJmICR7RH0ke2xpYmRpcn0vY2hhcnNldC5hbGlhcwotICAgIHJtZGlyIC0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5ICR7RH0ke2xpYmRpcn0gfHwgdHJ1ZQotfQotCi1QQUNLQUdFQ09ORklHID8/PSAiIgotUEFDS0FHRUNPTkZJRyArPSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnYWNsJywgZCl9IgotCi1QQUNLQUdFQ09ORklHW2FjbF0gPSAiLS1lbmFibGUtYWNsLC0tZGlzYWJsZS1hY2wsYWNsLCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvemlsZS96aWxlXzIuNC4xNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXN1cHBvcnQvemlsZS96aWxlXzIuNC4xNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTVjZjQxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC96aWxlL3ppbGVfMi40LjE0LmJiCkBAIC0wLDAgKzEsMjUgQEAKK1NVTU1BUlkgPSAiWmlsZSBpcyBsb3NzeSBFbWFjcyIKK0hPTUVQQUdFID0gImh0dHA6Ly96aWxlLnNvdXJjZWZvcmdlLm5ldC8iCitERVBFTkRTID0gIm5jdXJzZXMgYmR3Z2MiCisKK0xJQ0VOU0UgPSAiR1BMdjMiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0xZWJiZDNlMzQyMzdhZjI2ZGE1ZGMwOGE0ZTQ0MDQ2NCIKKworU1JDX1VSSSA9ICJodHRwOi8vZnRwLmdudS5vcmcvZ251L3ppbGUvJHtCUH0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL3JlbW92ZS1oZWxwMm1hbi5wYXRjaCBcCisiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJjN2Q3ZWVjOTMyMzFjNjg3OGYyNTU5NzhkOTc0N2E3MyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3YTc4NzQyNzk1Y2EzMjQ4MGYyYmFiNjk3ZmQ1ZTMyODYxOGQ5OTk3ZDZmNDE3Y2YxYjE0ZTlkYTlhZjI2Yjc0IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgcm0gLXJmICR7RH0ke2xpYmRpcn0vY2hhcnNldC5hbGlhcworICAgIHJtZGlyIC0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5ICR7RH0ke2xpYmRpcn0gfHwgdHJ1ZQorfQorCitQQUNLQUdFQ09ORklHID8/PSAiIgorUEFDS0FHRUNPTkZJRyArPSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnYWNsJywgZCl9IgorCitQQUNLQUdFQ09ORklHW2FjbF0gPSAiLS1lbmFibGUtYWNsLC0tZGlzYWJsZS1hY2wsYWNsLCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2NwcHVuaXQvY3BwdW5pdF8xLjEzLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2NwcHVuaXQvY3BwdW5pdF8xLjEzLjIuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWRldnRvb2xzL2NwcHVuaXQvY3BwdW5pdF8xLjEzLjIuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvY3BwdW5pdC9jcHB1bml0XzEuMTMuMi5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvY3BwdW5pdC9maWxlcy8wMDAxLWRvYy1NYWtlZmlsZS5hbS1kby1ub3QtcHJlc2VydmUtZmlsZS1mbGFncy13aGVuLWNvcHkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2NwcHVuaXQvZmlsZXMvMDAwMS1kb2MtTWFrZWZpbGUuYW0tZG8tbm90LXByZXNlcnZlLWZpbGUtZmxhZ3Mtd2hlbi1jb3B5LnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jcHB1bml0L2ZpbGVzLzAwMDEtZG9jLU1ha2VmaWxlLmFtLWRvLW5vdC1wcmVzZXJ2ZS1maWxlLWZsYWdzLXdoZW4tY29weS5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9jcHB1bml0L2ZpbGVzLzAwMDEtZG9jLU1ha2VmaWxlLmFtLWRvLW5vdC1wcmVzZXJ2ZS1maWxlLWZsYWdzLXdoZW4tY29weS5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvY3VuaXQvY3VuaXRfMi4xLTMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2N1bml0L2N1bml0XzIuMS0zLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jdW5pdC9jdW5pdF8yLjEtMy5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9jdW5pdC9jdW5pdF8yLjEtMy5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvY3VuaXQvZmlsZXMvZml4dXAtaW5zdGFsbC1kb2NkaXIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2N1bml0L2ZpbGVzL2ZpeHVwLWluc3RhbGwtZG9jZGlyLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9jdW5pdC9maWxlcy9maXh1cC1pbnN0YWxsLWRvY2Rpci5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9jdW5pdC9maWxlcy9maXh1cC1pbnN0YWxsLWRvY2Rpci5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvY3h4dGVzdC9jeHh0ZXN0XzQuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvY3h4dGVzdC9jeHh0ZXN0XzQuMy5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvY3h4dGVzdC9jeHh0ZXN0XzQuMy5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9jeHh0ZXN0L2N4eHRlc3RfNC4zLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1zdXBwb3J0L2V2dGVzdC9ldnRlc3RfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9ldnRlc3QvZXZ0ZXN0X2dpdC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9ldnRlc3QvZXZ0ZXN0X2dpdC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9ldnRlc3QvZXZ0ZXN0X2dpdC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mYnRlc3QvZmItdGVzdF9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2ZidGVzdC9mYi10ZXN0X2dpdC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtc3VwcG9ydC9mYnRlc3QvZmItdGVzdF9naXQuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvZmJ0ZXN0L2ZiLXRlc3RfZ2l0LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2d0ZXN0L2d0ZXN0XzEuOC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9ndGVzdC9ndGVzdF8xLjguMC5iYgppbmRleCA0ODNkYzFmLi40OGNmNGUwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L2d0ZXN0L2d0ZXN0XzEuOC4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvZ3Rlc3QvZ3Rlc3RfMS44LjAuYmIKQEAgLTcsMTYgKzcsMTMgQEAKIAogUFJPVklERVMgKz0gImdtb2NrIgogCitTID0gIiR7V09SS0RJUn0vZ2l0IgorU1JDUkVWID0gImVjNDRjNmMxNjc1YzI1Yjk4MjdhYWNkMDhjMDI0MzNjY2NkZTc3ODAiCiBTUkNfVVJJID0gIlwKLSAgICBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYXJjaGl2ZS9yZWxlYXNlLSR7UFZ9LnRhci5neiBcCisgICAgZ2l0Oi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC5naXQ7cHJvdG9jb2w9aHR0cHM7IFwKICAgICBmaWxlOi8vQWRkLXBrZy1jb25maWctc3VwcG9ydC5wYXRjaCBcCiAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIxNjg3NzA5ODgyMzQwMWQxYmYyZWQ3ODkxZDdkY2UzNiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI1OGE2ZjQyNzdjYTJiYzg1NjUyMjJiM2JiZDU4YTE3NzYwOWU5YzQ4OGU4YTcyNjQ5MzU5YmE1MTQ1MGRiN2Q4IgotCi1TID0gIiR7V09SS0RJUn0vZ29vZ2xldGVzdC1yZWxlYXNlLSR7UFZ9IgotCiBpbmhlcml0IGNtYWtlCiAKIEFMTE9XX0VNUFRZXyR7UE59ID0gIjEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1kZXZ0b29scy9wbS1xYS9wbS1xYV9naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L3BtLXFhL3BtLXFhX2dpdC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZGV2dG9vbHMvcG0tcWEvcG0tcWFfZ2l0LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L3BtLXFhL3BtLXFhX2dpdC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9zdHJlc3Mtbmcvc3RyZXNzLW5nLzAwMDEtU2V2ZXJhbC1jaGFuZ2VzLXRvLWZpeC1tdXNsLWJ1aWxkLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9zdHJlc3Mtbmcvc3RyZXNzLW5nLzAwMDEtU2V2ZXJhbC1jaGFuZ2VzLXRvLWZpeC1tdXNsLWJ1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2MDRmODYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L3N0cmVzcy1uZy9zdHJlc3MtbmcvMDAwMS1TZXZlcmFsLWNoYW5nZXMtdG8tZml4LW11c2wtYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxNDEgQEAKK0Zyb20gNzg0ZGNkMDlkM2YyNjZlMjcxZDAwN2Y0ZmQyNTdlODUwMzY4NzJjYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9Bbj1DMz1BRGJhbD0yMExpbT1DMz1CM24/PSA8YW5pYmFsLmxpbW9uQGxpbmFyby5vcmc+CitEYXRlOiBUdWUsIDE3IE9jdCAyMDE3IDEwOjEzOjIwIC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIFNldmVyYWwgY2hhbmdlcyB0byBmaXggbXVzbCBidWlsZAorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitzdHJlc3Mte2NvbnRleHQsIHN0YWNrbW1hcH0uYzogU2V0IHRlc3RzIHRvIG5vbi1pbXBsZW1lbnRlZCBiZWNhdXNlIHVzZXMKK3N3YXBjb250ZXh0LCBtdXNsIHByb3ZpZGUgdGhlIGRlZmluaXRpb24gYnV0IG5vdCB0aGUgaW1wbGVtZW50YXRpb24gZHVlCisgIHRvIHRoYXQgZnVuY3Rpb25zIGFyZSBwcmUtUE9TSVggYW5kIHNldCB0byBiZSBkZXByZWNhdGVkLgorICBzdHJlc3Mte3Jlc291cmNlcywgcHR5fS5jOiBEb2Vzbid0IGluY2x1ZGUgdGVybWlvLmggYW5kIHJlbW92ZSBzdHJlc3MKKyAgb3BlcmF0aW9ucyB0aGF0IHVzZXMgc3RydWN0IHRlcm1pbywgbXVzbCBkb2Vzbid0IHByb3ZpZGUgdGhhdCBzdHJ1Y3QuCitzdHJlc3MtbWFsbG9jLmM6IENoZWNrIGZvciBkZWZpbml0aW9uIG9mIE1fTU1BUF9USFJFU0hPTEQgbXVzbCBkb2Vzbid0CisgIHB0b3ZpZGUgdGhhdCBjb25zdGFudC4KK3N0cmVzcy1tYWR2aXNlLmM6IEFkZCBzdGF0aWMgcG9pc2lvbl9jb3VudCBpbnRlZ2VyLCBkZWZpbml0aW9uIG9mCisgIE1BRFZfU09GVF9PRkZMSU5FIGRvZXNuJ3QgZ3JhdW50ZWUgTUFEVl9IV1BPSVNPTiB0byBiZSBkZWZpbmVkLgorY2FjaGUuYzogRGVmaW5lIEdMT0JfT05MWURJUiBub3QgYXZhaWxhYmxlIG9uIE1VU0wuCisKK1NpZ25lZC1vZmYtYnk6IEFuw61iYWwgTGltw7NuIDxhbmliYWwubGltb25AbGluYXJvLm9yZz4KK1NpZ25lZC1vZmYtYnk6IFRpbSBPcmxpbmcgPHRpbW90aHkudC5vcmxpbmdAbGludXguaW50ZWwuY29tPgorCitVcHN0cmVhbS1zdGF0dXM6IFBlbmRpbmcKKworLS0tCisgY2FjaGUuYyAgICAgICAgICAgIHwgIDQgKysrKworIHN0cmVzcy1tYWR2aXNlLmMgICB8ICAxICsKKyBzdHJlc3MtbWFsbG9jLmMgICAgfCAgMiArLQorIHN0cmVzcy1wdHkuYyAgICAgICB8IDE4IC0tLS0tLS0tLS0tLS0tLS0tLQorIHN0cmVzcy1yZXNvdXJjZXMuYyB8ICAxIC0KKyBzdHJlc3Mtc3RhY2ttbWFwLmMgfCAgMiArLQorIDYgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NhY2hlLmMgYi9jYWNoZS5jCitpbmRleCBmYmY3Njc0Li45MzZjMWZmIDEwMDY0NAorLS0tIGEvY2FjaGUuYworKysrIGIvY2FjaGUuYworQEAgLTI4LDYgKzI4LDEwIEBAIHR5cGVkZWYgc3RydWN0IHsKKyAKKyAjaW5jbHVkZSA8Z2xvYi5oPgorIAorKyNpZm5kZWYgR0xPQl9PTkxZRElSCisrI2RlZmluZSBHTE9CX09OTFlESVIgICAgMHgxMDAKKysjZW5kaWYKKysKKyAjaWYgZGVmaW5lZChfX2xpbnV4X18pCisgI2RlZmluZSBTWVNfQ1BVX1BSRUZJWCAgICAgICAgICAgICAgICIvc3lzL2RldmljZXMvc3lzdGVtL2NwdSIKKyAjZGVmaW5lIEdMT0JfUEFUVEVSTiBTWVNfQ1BVX1BSRUZJWCAgIi9jcHVbMC05XSoiCitkaWZmIC0tZ2l0IGEvc3RyZXNzLW1hZHZpc2UuYyBiL3N0cmVzcy1tYWR2aXNlLmMKK2luZGV4IDllNzFlMTEuLmRkZjhkMmQgMTAwNjQ0CistLS0gYS9zdHJlc3MtbWFkdmlzZS5jCisrKysgYi9zdHJlc3MtbWFkdmlzZS5jCitAQCAtMTQ3LDYgKzE0Nyw3IEBAIHN0YXRpYyBpbnQgc3RyZXNzX3JhbmRvbV9hZHZpc2UoY29uc3QgYXJnc190ICphcmdzKQorICNpZiBkZWZpbmVkKE1BRFZfU09GVF9PRkZMSU5FKQorIAlpZiAoYWR2aXNlID09IE1BRFZfU09GVF9PRkZMSU5FKSB7CisgCQlzdGF0aWMgaW50IHNvZnRfb2ZmbGluZV9jb3VudDsKKysJCXN0YXRpYyBpbnQgcG9pc29uX2NvdW50OworIAorIAkJLyogLi5hbmQgbWluaW1pemUgbnVtYmVyIG9mIHNvZnQgb2ZmbGluZSBwYWdlcyAqLworIAkJaWYgKChzb2Z0X29mZmxpbmVfY291bnQgPj0gTlVNX1NPRlRfT0ZGTElORV9NQVgpIHx8CitkaWZmIC0tZ2l0IGEvc3RyZXNzLW1hbGxvYy5jIGIvc3RyZXNzLW1hbGxvYy5jCitpbmRleCBhNDZiOGM2Li40Mjc4MjdhIDEwMDY0NAorLS0tIGEvc3RyZXNzLW1hbGxvYy5jCisrKysgYi9zdHJlc3MtbWFsbG9jLmMKK0BAIC05OSw3ICs5OSw3IEBAIGludCBzdHJlc3NfbWFsbG9jKGNvbnN0IGFyZ3NfdCAqYXJncykKKyAJCQltYWxsb2NfbWF4ID0gTUlOX01BTExPQ19NQVg7CisgCX0KKyAKKy0jaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgZGVmaW5lZChfX2xpbnV4X18pCisrI2lmIGRlZmluZWQoX19HTlVDX18pICYmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKE1fTU1BUF9USFJFU0hPTEQpCisgCWlmIChnZXRfc2V0dGluZygibWFsbG9jLXRocmVzaG9sZCIsICZtYWxsb2NfdGhyZXNob2xkKSkKKyAJCSh2b2lkKW1hbGxvcHQoTV9NTUFQX1RIUkVTSE9MRCwgKGludCltYWxsb2NfdGhyZXNob2xkKTsKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9zdHJlc3MtcHR5LmMgYi9zdHJlc3MtcHR5LmMKK2luZGV4IDFiZDFmYmQuLmIxZmU1NzMgMTAwNjQ0CistLS0gYS9zdHJlc3MtcHR5LmMKKysrKyBiL3N0cmVzcy1wdHkuYworQEAgLTI2LDcgKzI2LDYgQEAKKyAKKyAjaWYgZGVmaW5lZChfX2xpbnV4X18pCisgCistI2luY2x1ZGUgPHRlcm1pby5oPgorICNpbmNsdWRlIDx0ZXJtaW9zLmg+CisgCisgdHlwZWRlZiBzdHJ1Y3QgeworQEAgLTEwOCw3ICsxMDcsNiBAQCBpbnQgc3RyZXNzX3B0eShjb25zdCBhcmdzX3QgKmFyZ3MpCisgCQkgKi8KKyAJCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKKyAJCQlzdHJ1Y3QgdGVybWlvcyBpb3M7CistCQkJc3RydWN0IHRlcm1pbyBpbzsKKyAJCQlzdHJ1Y3Qgd2luc2l6ZSB3czsKKyAJCQlpbnQgYXJnOworIAorQEAgLTEzMCwyMiArMTI4LDYgQEAgaW50IHN0cmVzc19wdHkoY29uc3QgYXJnc190ICphcmdzKQorIAkJCWlmIChpb2N0bChwdHlzW2ldLnNsYXZlLCBUQ1NFVFNGLCAmaW9zKSA8IDApCisgCQkJCXByX2ZhaWxfZXJyKCJpb2N0bCBUQ1NFVFNGIG9uIHNsYXZlIHB0eSIpOworICNlbmRpZgorLSNpZiBkZWZpbmVkKFRDR0VUQSkKKy0JCQlpZiAoaW9jdGwocHR5c1tpXS5zbGF2ZSwgVENHRVRBLCAmaW8pIDwgMCkKKy0JCQkJcHJfZmFpbF9lcnIoImlvY3RsIFRDR0VUQSBvbiBzbGF2ZSBwdHkiKTsKKy0jZW5kaWYKKy0jaWYgZGVmaW5lZChUQ1NFVEEpCistCQkJaWYgKGlvY3RsKHB0eXNbaV0uc2xhdmUsIFRDU0VUQSwgJmlvKSA8IDApCistCQkJCXByX2ZhaWxfZXJyKCJpb2N0bCBUQ1NFVEEgb24gc2xhdmUgcHR5Iik7CistI2VuZGlmCistI2lmIGRlZmluZWQoVENTRVRBVykKKy0JCQlpZiAoaW9jdGwocHR5c1tpXS5zbGF2ZSwgVENTRVRBVywgJmlvKSA8IDApCistCQkJCXByX2ZhaWxfZXJyKCJpb2N0bCBUQ1NFVEFXIG9uIHNsYXZlIHB0eSIpOworLSNlbmRpZgorLSNpZiBkZWZpbmVkKFRDU0VUQUYpCistCQkJaWYgKGlvY3RsKHB0eXNbaV0uc2xhdmUsIFRDU0VUQUYsICZpbykgPCAwKQorLQkJCQlwcl9mYWlsX2VycigiaW9jdGwgVENTRVRBRiBvbiBzbGF2ZSBwdHkiKTsKKy0jZW5kaWYKKyAjaWYgZGVmaW5lZChUSU9DR0xDS1RSTUlPUykKKyAJCQlpZiAoaW9jdGwocHR5c1tpXS5zbGF2ZSwgVElPQ0dMQ0tUUk1JT1MsICZpb3MpIDwgMCkKKyAJCQkJcHJfZmFpbF9lcnIoImlvY3RsIFRJT0NHTENLVFJNSU9TIG9uIHNsYXZlIHB0eSIpOworZGlmZiAtLWdpdCBhL3N0cmVzcy1yZXNvdXJjZXMuYyBiL3N0cmVzcy1yZXNvdXJjZXMuYworaW5kZXggOTU4Yzk5YS4uYWY3OWFiZCAxMDA2NDQKKy0tLSBhL3N0cmVzcy1yZXNvdXJjZXMuYworKysrIGIvc3RyZXNzLXJlc291cmNlcy5jCitAQCAtMzEsNyArMzEsNiBAQAorICNpbmNsdWRlIDxzeXMvaW5vdGlmeS5oPgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9fbGludXhfXykKKy0jaW5jbHVkZSA8dGVybWlvLmg+CisgI2luY2x1ZGUgPHRlcm1pb3MuaD4KKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChIQVZFX0xJQl9QVEhSRUFEKSAmJiBkZWZpbmVkKF9fbGludXhfXykKK2RpZmYgLS1naXQgYS9zdHJlc3Mtc3RhY2ttbWFwLmMgYi9zdHJlc3Mtc3RhY2ttbWFwLmMKK2luZGV4IDljODNhNjkuLjI5ODRmMDkgMTAwNjQ0CistLS0gYS9zdHJlc3Mtc3RhY2ttbWFwLmMKKysrKyBiL3N0cmVzcy1zdGFja21tYXAuYworQEAgLTI0LDcgKzI0LDcgQEAKKyAgKi8KKyAjaW5jbHVkZSAic3RyZXNzLW5nLmgiCisgCistI2lmIGRlZmluZWQoX19saW51eF9fKQorKyNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgRmFsc2UKKyAKKyAjaW5jbHVkZSA8dWNvbnRleHQuaD4KKyAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3Qvc3RyZXNzLW5nL3N0cmVzcy1uZy8wMDAyLXN0cmVzcy1mY250bC1maXgtYnVpbGQtZm9yLW11c2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L3N0cmVzcy1uZy9zdHJlc3MtbmcvMDAwMi1zdHJlc3MtZmNudGwtZml4LWJ1aWxkLWZvci1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMzI4N2UKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L3N0cmVzcy1uZy9zdHJlc3MtbmcvMDAwMi1zdHJlc3MtZmNudGwtZml4LWJ1aWxkLWZvci1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK0Zyb20gZmFhZGJjMTQ3Mzk0Y2VhOTI3OGJjMjQ5NGYzM2UzNTIxZDg4ZTc0MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRpbSBPcmxpbmcgPHRpbW90aHkudC5vcmxpbmdAbGludXguaW50ZWwuY29tPgorRGF0ZTogVHVlLCA5IEphbiAyMDE4IDE4OjM4OjQ1IC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIHN0cmVzcy1mY250bDogZml4IGJ1aWxkIGZvciBtdXNsCisKK1NpZ25lZC1vZmYtYnk6IFRpbSBPcmxpbmcgPHRpbW90aHkudC5vcmxpbmdAbGludXguaW50ZWwuY29tPgorCitVcHN0cmVhbS1zdGF0dXM6IFBlbmRpbmcKKworLS0tCisgc3RyZXNzLWZjbnRsLmMgfCAxICsKKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKworZGlmZiAtLWdpdCBhL3N0cmVzcy1mY250bC5jIGIvc3RyZXNzLWZjbnRsLmMKK2luZGV4IDJlYTg2N2IuLmU5MWIzNDUgMTAwNjQ0CistLS0gYS9zdHJlc3MtZmNudGwuYworKysrIGIvc3RyZXNzLWZjbnRsLmMKK0BAIC00MTUsNiArNDE1LDcgQEAgb2ZkX2xvY2tfYWJvcnQ6CXsgLyogTm93dCAqLyB9CisgI2lmIChkZWZpbmVkKEZfR0VUX0ZJTEVfUldfSElOVCkgJiYgZGVmaW5lZChGX1NFVF9GSUxFX1JXX0hJTlQpKSB8IFwKKyAgICAgKGRlZmluZWQoRl9HRVRfUldfSElOVCkgJiYgZGVmaW5lZChGX1NFVF9SV19ISU5UKSkKKyAJeworKwkJaW50IHJldDsKKyAJCXNpemVfdCBpOworIAkJdW5zaWduZWQgbG9uZyBoaW50OworIAkJc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgaGludHNbXSA9IHsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3Qvc3RyZXNzLW5nL3N0cmVzcy1uZ18wLjA5LjE0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC9zdHJlc3Mtbmcvc3RyZXNzLW5nXzAuMDkuMTQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZhYjQzMAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3Qvc3RyZXNzLW5nL3N0cmVzcy1uZ18wLjA5LjE0LmJiCkBAIC0wLDAgKzEsMjUgQEAKK1NVTU1BUlkgPSAiQSB0b29sIHRvIGxvYWQgYW5kIHN0cmVzcyBhIGNvbXB1dGVyIHN5c3RlbSIKK0hPTUVQQUdFID0gImh0dHA6Ly9rZXJuZWwudWJ1bnR1LmNvbS9+Y2tpbmcvc3RyZXNzLW5nLyIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKKworREVQRU5EUyA9ICJ6bGliIGxpYmFpbyIKKworU1JDX1VSSSA9ICJodHRwOi8va2VybmVsLnVidW50dS5jb20vfmNraW5nL3RhcmJhbGxzLyR7QlBOfS8ke0JQfS50YXIueHogXAorICAgICAgICAgICBmaWxlOi8vMDAwMi1zdHJlc3MtZmNudGwtZml4LWJ1aWxkLWZvci1tdXNsLnBhdGNoIFwKKyAgICAgICAgICAiCitTUkNfVVJJX2FwcGVuZF9saWJjLW11c2wgPSAiIFwKKyAgICBmaWxlOi8vMDAwMS1TZXZlcmFsLWNoYW5nZXMtdG8tZml4LW11c2wtYnVpbGQucGF0Y2ggXAorICAgICIKK1NSQ19VUklbbWQ1c3VtXSA9ICIxZjhiNmMyYzI4MzA3MDRkMmEyODE0YzE2MDgyZDQ4ZSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwMmNhYzM0YTVjYjA0MTE5N2FmNjBjMTg2Nzg0NGM2Y2JiMDg5YTZkMTBhMzhjZGNmN2I4ZjI3YmZhYTZlZjhmIgorCitVUFNUUkVBTV9DSEVDS19VUkkgPz0gImh0dHA6Ly9rZXJuZWwudWJ1bnR1LmNvbS9+Y2tpbmcvdGFyYmFsbHMvJHtCUE59LyIKK1VQU1RSRUFNX0NIRUNLX1JFR0VYID89ICIoP1A8cHZlcj5cZCsoXC5cZCspKylcLnRhciIKKworQ0ZMQUdTICs9ICItV2FsbCAtV2V4dHJhIC1EVkVSU0lPTj0nIiQoVkVSU0lPTikiJyIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9JHtiaW5kaXJ9CisgICAgaW5zdGFsbCAtbSA3NTUgJHtTfS9zdHJlc3MtbmcgJHtEfSR7YmluZGlyfS9zdHJlc3MtbmcKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWV4dGVuZGVkL3Rlc3RmbG9hdC9maWxlcy8wMDAxLU1ha2VmaWxlLWZvci1jcm9zcy1jb21waWxlLVNvZnRGbG9hdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvdGVzdGZsb2F0L2ZpbGVzLzAwMDEtTWFrZWZpbGUtZm9yLWNyb3NzLWNvbXBpbGUtU29mdEZsb2F0LnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90ZXN0ZmxvYXQvZmlsZXMvMDAwMS1NYWtlZmlsZS1mb3ItY3Jvc3MtY29tcGlsZS1Tb2Z0RmxvYXQucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvdGVzdGZsb2F0L2ZpbGVzLzAwMDEtTWFrZWZpbGUtZm9yLWNyb3NzLWNvbXBpbGUtU29mdEZsb2F0LnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1leHRlbmRlZC90ZXN0ZmxvYXQvZmlsZXMvMDAwMi1NYWtlZmlsZS1mb3ItY3Jvc3MtY29tcGlsZS1UZXN0RmxvYXQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L3Rlc3RmbG9hdC9maWxlcy8wMDAyLU1ha2VmaWxlLWZvci1jcm9zcy1jb21waWxlLVRlc3RGbG9hdC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGVzdGZsb2F0L2ZpbGVzLzAwMDItTWFrZWZpbGUtZm9yLWNyb3NzLWNvbXBpbGUtVGVzdEZsb2F0LnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy10ZXN0L3Rlc3RmbG9hdC9maWxlcy8wMDAyLU1ha2VmaWxlLWZvci1jcm9zcy1jb21waWxlLVRlc3RGbG9hdC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGVzdGZsb2F0L3Rlc3RmbG9hdF8zYS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLXRlc3QvdGVzdGZsb2F0L3Rlc3RmbG9hdF8zYS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZXh0ZW5kZWQvdGVzdGZsb2F0L3Rlc3RmbG9hdF8zYS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtdGVzdC90ZXN0ZmxvYXQvdGVzdGZsb2F0XzNhLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9SRUFETUUgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9SRUFETUUKaW5kZXggY2M5NjVhZi4uNjdmMjkxMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvUkVBRE1FCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL1JFQURNRQpAQCAtNTIsNyArNTIsNyBAQAogVGhpcyBsYXllciBkZXBlbmRzIG9uOgogCiAgIFVSSTogZ2l0Oi8vZ2l0Lm9wZW5lbWJlZGRlZC5vcmcvb3BlbmVtYmVkZGVkLWNvcmUKLSAgYnJhbmNoOiByb2NrbyAKKyAgYnJhbmNoOiBtYXN0ZXIKICAgcmV2aXNpb246IEhFQUQKICAgcHJpbzogZGVmYXVsdAogCkBAIC03NSwxMyArNzUsMTQgQEAKIC0tLS0tLS0tLS0tCiAKIFNlbmQgcGF0Y2hlcyAvIHB1bGwgcmVxdWVzdHMgdG8gb3BlbmVtYmVkZGVkLWRldmVsQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcgd2l0aAotJ1ttZXRhLXBlcmxdW3JvY2tvXScgaW4gdGhlIHN1YmplY3QuCisnW21ldGEtcGVybF0nIGluIHRoZSBzdWJqZWN0LgogCiBXaGVuIHNlbmRpbmcgc2luZ2xlIHBhdGNoZXMsIHBsZWFzZSB1c2luZyBzb21ldGhpbmcgbGlrZToKLSdnaXQgc2VuZC1lbWFpbCAtTSAtMSAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIC0tc3ViamVjdC1wcmVmaXg9bWV0YS1wZXJsXVtyb2Nrb11bUEFUQ0gnCisnZ2l0IHNlbmQtZW1haWwgLU0gLTEgLS10byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyAtLXN1YmplY3QtcHJlZml4PW1ldGEtcGVybF1bUEFUQ0gnCiAKLXJvY2tvIEJyYW5jaCBNYWludGFpbmVyOgotQXJtaW4gS3VzdGVyIDxha3VzdGVyODA4QGdtYWlsLmNvbT4KK0xheWVyIG1haW50YWluZXJzOgorICAgIEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KKyAgICBUaW0gIm1vdG8tdGltbyIgT3JsaW5nIDx0aWNvdGltb0BnbWFpbC5jb20+CiAKIExpY2Vuc2UKIC0tLS0tLS0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL2NvbmYvbGF5ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL2NvbmYvbGF5ZXIuY29uZgppbmRleCBhODYxYzNlLi5lY2U2ZGQwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9jb25mL2xheWVyLmNvbmYKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvY29uZi9sYXllci5jb25mCkBAIC0xNCwzICsxNCw1IEBACiBMQVlFUlZFUlNJT05fcGVybC1sYXllciA9ICIxIgogCiBMQVlFUkRFUEVORFNfcGVybC1sYXllciA9ICJjb3JlIG9wZW5lbWJlZGRlZC1sYXllciIKKworTEFZRVJTRVJJRVNfQ09NUEFUX3BlcmwtbGF5ZXIgPSAic3VtbyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJjZ2kvbGliY2dpLXBlcmxfNC4zNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJjZ2kvbGliY2dpLXBlcmxfNC4zNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGYyNmFiMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliY2dpL2xpYmNnaS1wZXJsXzQuMzYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1ERVNDUklQVElPTiA9ICJDR0kucG0gaXMgYSBzdGFibGUsIGNvbXBsZXRlIGFuZCBtYXR1cmUgc29sdXRpb24gZm9yIHByb2Nlc3NpbmcgYW5kIHByZXBhcmluZyBcCi1IVFRQIHJlcXVlc3RzIGFuZCByZXNwb25zZXMuIE1ham9yIGZlYXR1cmVzIGluY2x1ZGluZyBwcm9jZXNzaW5nIGZvcm0gXAotc3VibWlzc2lvbnMsIGZpbGUgdXBsb2FkcywgcmVhZGluZyBhbmQgd3JpdGluZyBjb29raWVzLCBxdWVyeSBzdHJpbmcgZ2VuZXJhdGlvbiBcCi1hbmQgbWFuaXB1bGF0aW9uLCBhbmQgcHJvY2Vzc2luZyBhbmQgcHJlcGFyaW5nIEhUVFAgaGVhZGVycy4iCi1IT01FUEFHRSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL35sZWVqby9DR0ktNC4yOC9saWIvQ0dJLnBvZCIKLVNFQ1RJT04gPSAibGlicyIKLUxJQ0VOU0UgPSAiQXJ0aXN0aWMtMi4wIHwgR1BMLTIuMCIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MmU5NzY5ZjBhMjYxM2E5OGJjN2ZjZTE1ZGVlMGM1MzMiCi0KLVNSQ19VUkkgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9DUEFOL2F1dGhvcnMvaWQvTC9MRS9MRUVKTy9DR0ktJHtQVn0udGFyLmd6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNDg1NjZkODFmNDMwYTdmNzU1YmI0ZDhmNDI2Y2UzNWQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZmVmZTg0ZDRmMjQ2MWU4NjdmOWJlODBmM2Y5ODhlMTdiY2JiY2I0ZTMwNjk1MmNmMmZkMWRlYTdlNDUxNTQ5MCIKLQotUyA9ICIke1dPUktESVJ9L0NHSS0ke1BWfSIKLQotaW5oZXJpdCBjcGFuCi0KLVJQUk9WSURFU18ke1BOfSArPSAicGVybC1tb2R1bGUtY2dpIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmNnaS9saWJjZ2ktcGVybF80LjM4LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmNnaS9saWJjZ2ktcGVybF80LjM4LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiMTZkODMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliY2dpL2xpYmNnaS1wZXJsXzQuMzguYmIKQEAgLTAsMCArMSwyNSBAQAorREVTQ1JJUFRJT04gPSAiQ0dJLnBtIGlzIGEgc3RhYmxlLCBjb21wbGV0ZSBhbmQgbWF0dXJlIHNvbHV0aW9uIGZvciBwcm9jZXNzaW5nIGFuZCBwcmVwYXJpbmcgXAorSFRUUCByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzLiBNYWpvciBmZWF0dXJlcyBpbmNsdWRpbmcgcHJvY2Vzc2luZyBmb3JtIFwKK3N1Ym1pc3Npb25zLCBmaWxlIHVwbG9hZHMsIHJlYWRpbmcgYW5kIHdyaXRpbmcgY29va2llcywgcXVlcnkgc3RyaW5nIGdlbmVyYXRpb24gXAorYW5kIG1hbmlwdWxhdGlvbiwgYW5kIHByb2Nlc3NpbmcgYW5kIHByZXBhcmluZyBIVFRQIGhlYWRlcnMuIgorSE9NRVBBR0UgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9+bGVlam8vQ0dJLTQuMjgvbGliL0NHSS5wb2QiCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkFydGlzdGljLTIuMCB8IEdQTC0yLjAiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTJlOTc2OWYwYTI2MTNhOThiYzdmY2UxNWRlZTBjNTMzIgorCitTUkNfVVJJID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvQ1BBTi9hdXRob3JzL2lkL0wvTEUvTEVFSk8vQ0dJLSR7UFZ9LnRhci5neiIKKworU1JDX1VSSVttZDVzdW1dID0gIjBhZWI4NTYzZDUzM2U3ZjgzNzI0ZWQwNjhiNWJmYzM3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjhjNThmNGE1MjliYjkyYTkxNGIyMmI3ZTY0YzVlMzExODVjOTg1NGE0MDcwYTZkZmFkNDRmZTVjYzI0OGU3ZDQiCisKK1MgPSAiJHtXT1JLRElSfS9DR0ktJHtQVn0iCisKK2luaGVyaXQgY3BhbgorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgIHBlcmwtbW9kdWxlLWRlcHJlY2F0ZSBcCisgICAgcGVybC1tb2R1bGUtaWYgXAorIgorCitSUFJPVklERVNfJHtQTn0gKz0gInBlcmwtbW9kdWxlLWNnaSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJkYi9saWJkYmQtc3FsaXRlLXBlcmxfMS41NC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJkYi9saWJkYmQtc3FsaXRlLXBlcmxfMS41NC5iYgppbmRleCAwYjI3YjVjLi5jNzJlNTM2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliZGIvbGliZGJkLXNxbGl0ZS1wZXJsXzEuNTQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmRiL2xpYmRiZC1zcWxpdGUtcGVybF8xLjU0LmJiCkBAIC0yNSw2ICsyNSw4IEBACiBTUkNfVVJJW21kNXN1bV0gPSAiOGY4MzVkZGFjYjlhNGE5MmE1MmJiZTJkMjRkMThhOGUiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzkyOWE2ZGJkOGQ3MTYzMGYwY2I1N2Y4NWRjZWY5NTg4Y2Q3YWM0YzlmYTEyZGI3OWRmNzdiOWQzYTRkNzI2OSIKIAorVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPSAiREJEXC1TUUxpdGVcLSg/UDxwdmVyPihcZCtcLlxkKykpKD8hX1xkKykudGFyIgorCiBTID0gIiR7V09SS0RJUn0vREJELVNRTGl0ZS0ke1BWfSIKIAogaW5oZXJpdCBjcGFuCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliZW5jb2RlL2xpYmVuY29kZS1wZXJsXzIuODMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliZW5jb2RlL2xpYmVuY29kZS1wZXJsXzIuODMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlOGM2N2QuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmVuY29kZS9saWJlbmNvZGUtcGVybF8yLjgzLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotU1VNTUFSWSA9ICJFbmNvZGUgLSBjaGFyYWN0ZXIgZW5jb2RpbmdzIgotREVTQ1JJUFRJT04gPSAiVGhlIFwiRW5jb2RlXCIgbW9kdWxlIHByb3ZpZGVzIHRoZSBpbnRlcmZhY2VzIGJldHdlZW4gXAotUGVybCdzIHN0cmluZ3MgYW5kIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0uICBQZXJsIHN0cmluZ3MgYXJlIHNlcXVlbmNlcyBcCi1vZiBjaGFyYWN0ZXJzLiIKLQotQVVUSE9SID0gIkRhbiBLb2dhaSA8ZGFua29nYWkrY3BhbkBnbWFpbC5jb20+IgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcmVsZWFzZS9FbmNvZGUiCi1TRUNUSU9OID0gImxpYiIKLUxJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wIHwgR1BMLTEuMCsiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9NRVRBLmpzb247bWQ1PWZkYmViYzgyZTkyNWQ4YWNiY2U0MmNmYWQxMzFjNGQxIgotCi1TUkNfVVJJID0gIiR7Q1BBTl9NSVJST1J9L2F1dGhvcnMvaWQvRC9EQS9EQU5LT0dBSS9FbmNvZGUtJHtQVn0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gIjBkM2Y1OWU4ZWE3MDQ0OTc2NDdlZGVkNjY1OTE5MDUzIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVkM2E5MGUzMGFhYmU3OGRmY2Y1ZTgxNmZmYjFkYTFlMzM0NzU4OTJkYmQwMDc1MzIwMzE1Y2RjZTU2ODI5ODgiCi0KLVMgPSAiJHtXT1JLRElSfS9FbmNvZGUtJHtQVn0iCi0KLWluaGVyaXQgY3BhbgotCi1SREVQRU5EU18ke1BOfSArPSAiIHBlcmwtbW9kdWxlLWJ5dGVzIFwKLSAgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtY29uc3RhbnQgXAotICAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS14c2xvYWRlciBcCi0iCi0KLVJQUk9WSURFU18ke1BOfSArPSAibGliZW5jb2RlLWFsaWFzLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtYnl0ZS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWNqa2NvbnN0YW50cy1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWNuLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtY24taHotcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1jb25maWctcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1lYmNkaWMtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1lbmNvZGVyLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtZW5jb2RpbmctcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1nc20wMzM4LXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtZ3Vlc3MtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1qcC1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWpwLWgyei1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWpwLWppczctcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1rci1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWtyLTIwMjJfa3ItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1taW1lLWhlYWRlci1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLW1pbWUtbmFtZS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLXN5bWJvbC1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLXR3LXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtdW5pY29kZS0tcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS11bmljb2RlLXV0ZjctcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kaW5nLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtaW50ZXJuYWwtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1taW1lLWhlYWRlci1pc29fMjAyMl9qcC1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLXV0ZjgtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS11dGZfZWJjZGljLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICAiCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmVuY29kZS9saWJlbmNvZGUtcGVybF8yLjk0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmVuY29kZS9saWJlbmNvZGUtcGVybF8yLjk0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4NjFjNTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliZW5jb2RlL2xpYmVuY29kZS1wZXJsXzIuOTQuYmIKQEAgLTAsMCArMSw2OCBAQAorIyBOT1RFOgorIyAgICBZb3Ugc2hvdWxkIHVzZSBwZXJsLW1vZHVsZS1lbmNvZGUgcmF0aGVyIHRoYW4gdGhpcyBwYWNrYWdlCisjICAgIHVubGVzcyB5b3Ugc3BlY2lmaWNhbGx5IG5lZWQgYSB2ZXJzaW9uIG5ld2VyIHRoYW4gd2hhdCBpcworIyAgICBwcm92aWRlZCBieSBwZXJsLgorCitTVU1NQVJZID0gIkVuY29kZSAtIGNoYXJhY3RlciBlbmNvZGluZ3MiCitERVNDUklQVElPTiA9ICJUaGUgXCJFbmNvZGVcIiBtb2R1bGUgcHJvdmlkZXMgdGhlIGludGVyZmFjZXMgYmV0d2VlbiBcCitQZXJsJ3Mgc3RyaW5ncyBhbmQgdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbS4gIFBlcmwgc3RyaW5ncyBhcmUgc2VxdWVuY2VzIFwKK29mIGNoYXJhY3RlcnMuIgorCitBVVRIT1IgPSAiRGFuIEtvZ2FpIDxkYW5rb2dhaStjcGFuQGdtYWlsLmNvbT4iCitIT01FUEFHRSA9ICJodHRwczovL21ldGFjcGFuLm9yZy9yZWxlYXNlL0VuY29kZSIKK1NFQ1RJT04gPSAibGliIgorTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL01FVEEuanNvbjttZDU9ZDhlOTA5NDQ3Yjk4MzUzMmIyYjQ2MGM4MzBlN2E3ZTQiCisKK1NSQ19VUkkgPSAiJHtDUEFOX01JUlJPUn0vYXV0aG9ycy9pZC9EL0RBL0RBTktPR0FJL0VuY29kZS0ke1BWfS50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiZjk5NWUwZWI5ZTUyZDAxZWQ1N2FiZTgzNWJmM2NjYjYiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYWNiM2E0YWY1ZTNlZTM4Zjk0ZGU4YmFhNzQ1NGUwYjgzNmEwNjQ5ZTdhYzQxODBmMjhkZmNhNDM5YWQ2MGNmZiIKKworVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPSAiRW5jb2RlXC0oP1A8cHZlcj4oXGQrXC5cZCspKSg/IV9cZCspLnRhciIKKworUyA9ICIke1dPUktESVJ9L0VuY29kZS0ke1BWfSIKKworaW5oZXJpdCBjcGFuCisKKyMgIGZpbGUgL3Vzci9iaW4vZW5jMnhzIGZyb20gaW5zdGFsbCBvZiBwZXJsLW1pc2MtNS4yNC4xLXIwLmk1ODYgY29uZmxpY3RzIHdpdGggZmlsZSBmcm9tIHBhY2thZ2UgbGliZW5jb2RlLXBlcmwtMi45NC1yMC5pNTg2CisjICBmaWxlIC91c3IvYmluL2VuY2d1ZXNzIGZyb20gaW5zdGFsbCBvZiBwZXJsLW1pc2MtNS4yNC4xLXIwLmk1ODYgY29uZmxpY3RzIHdpdGggZmlsZSBmcm9tIHBhY2thZ2UgbGliZW5jb2RlLXBlcmwtMi45NC1yMC5pNTg2CisjICBmaWxlIC91c3IvYmluL3BpY29udiBmcm9tIGluc3RhbGwgb2YgcGVybC1taXNjLTUuMjQuMS1yMC5pNTg2IGNvbmZsaWN0cyB3aXRoIGZpbGUgZnJvbSBwYWNrYWdlIGxpYmVuY29kZS1wZXJsLTIuOTQtcjAuaTU4NgorUkNPTkZMSUNUU18ke1BOfSA9ICJwZXJsLW1pc2MiCisKK1JERVBFTkRTXyR7UE59ICs9ICIgcGVybC1tb2R1bGUtYnl0ZXMgXAorICAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1jb25zdGFudCBcCisgICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLXBhcmVudCBcCisgICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLXN0b3JhYmxlIFwKKyAgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUteHNsb2FkZXIgXAorIgorCitSUFJPVklERVNfJHtQTn0gKz0gImxpYmVuY29kZS1hbGlhcy1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWJ5dGUtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1jamtjb25zdGFudHMtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1jbi1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWNuLWh6LXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtY29uZmlnLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtZWJjZGljLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtZW5jb2Rlci1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWVuY29kaW5nLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtZ3NtMDMzOC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLWd1ZXNzLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtanAtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1qcC1oMnotcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1qcC1qaXM3LXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUta3ItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1rci0yMDIyX2tyLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtbWltZS1oZWFkZXItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1taW1lLW5hbWUtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1zeW1ib2wtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS10dy1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLXVuaWNvZGUtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS11bmljb2RlLXV0ZjctcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kaW5nLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJlbmNvZGUtaW50ZXJuYWwtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS1taW1lLWhlYWRlci1pc29fMjAyMl9qcC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliZW5jb2RlLXV0ZjgtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYmVuY29kZS11dGZfZWJjZGljLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICAiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmV4dHV0aWxzL2xpYmV4dHV0aWxzLWNwcGd1ZXNzLXBlcmxfMC4wOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJleHR1dGlscy9saWJleHR1dGlscy1jcHBndWVzcy1wZXJsXzAuMDkuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxM2NiMDMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYmV4dHV0aWxzL2xpYmV4dHV0aWxzLWNwcGd1ZXNzLXBlcmxfMC4wOS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLVNVTU1BUlkgPSAiRXh0VXRpbHM6OkNwcEd1ZXNzIC0gZ3Vlc3MgQysrIGNvbXBpbGVyIGFuZCBmbGFncyIKLURFU0NSSVBUSU9OID0gIkV4dFV0aWxzOjpDcHBHdWVzcyBhdHRlbXB0cyB0byBndWVzcyB0aGUgc3lzdGVtJ3MgQysrIFwKLWNvbXBpbGVyIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBDIGNvbXBpbGVyIHRoYXQgeW91ciBwZXJsIHdhcyBidWlsdCBcCi13aXRoLiBcCi1JdCBjYW4gZ2VuZXJhdGUgdGhlIG5lY2Vzc2FyeSBvcHRpb25zIHRvIHRoZSBNb2R1bGU6OkJ1aWxkIGNvbnN0cnVjdG9yIG9yIFwKLXRvIEV4dFV0aWxzOjpNYWtlTWFrZXIncyBXcml0ZU1ha2VmaWxlIGZ1bmN0aW9uLiIKLVNFQ1RJT04gPSAibGlicyIKLQotSE9NRVBBR0UgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9+c211ZWxsZXIvRXh0VXRpbHMtQ3BwR3Vlc3MvIgotCi1MSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FO2JlZ2lubGluZT04MTtlbmRsaW5lPTg0O21kNT04NGMwMzkwYjkwZWE4YzY3MDJjZTY1OWI2N2JlZDY5OSIKLQotU1JDX1VSSSA9ICIke0NQQU5fTUlSUk9SfS9hdXRob3JzL2lkL0UvRVQvRVRKL0V4dFV0aWxzLUNwcEd1ZXNzLSR7UFZ9LnRhci5neiIKLVNSQ19VUklbbWQ1c3VtXSA9ICJmOGFkYTM4ZWU0YWQ4NmE0ZjFlMjBkODUyNWNlMGM5OSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI0ODYyNTE5NWE4OGMwZjJkZGMzN2JiZDdhMDYzNDZhYTY4ZmZiNjk0OGJhNzhkYTNhZWE0N2MwZGIyNTQwZjY1IgotCi1TID0gIiR7V09SS0RJUn0vRXh0VXRpbHMtQ3BwR3Vlc3MtJHtQVn0iCi0KLWluaGVyaXQgY3BhbgotCi1kb19pbnN0YWxsICgpIHsKLSAgICAgICAgY3Bhbl9kb19pbnN0YWxsCi19Ci0KLVJERVBFTkRTXyR7UE59ID0gIiBsaWJjYXB0dXJlLXRpbnktcGVybCBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtc2NhbGFyLXV0aWwgXAotICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWlvLWZpbGUgXAotICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWV4dHV0aWxzLW1ha2VtYWtlciBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtZmlsZS1zcGVjIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1leHBvcnRlciBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtY2FycCBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtZmlsZS10ZW1wIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1saWIgXAotIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJleHR1dGlscy9saWJleHR1dGlscy1jcHBndWVzcy1wZXJsXzAuMTIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliZXh0dXRpbHMvbGliZXh0dXRpbHMtY3BwZ3Vlc3MtcGVybF8wLjEyLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5ZGY2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliZXh0dXRpbHMvbGliZXh0dXRpbHMtY3BwZ3Vlc3MtcGVybF8wLjEyLmJiCkBAIC0wLDAgKzEsMzcgQEAKK1NVTU1BUlkgPSAiRXh0VXRpbHM6OkNwcEd1ZXNzIC0gZ3Vlc3MgQysrIGNvbXBpbGVyIGFuZCBmbGFncyIKK0RFU0NSSVBUSU9OID0gIkV4dFV0aWxzOjpDcHBHdWVzcyBhdHRlbXB0cyB0byBndWVzcyB0aGUgc3lzdGVtJ3MgQysrIFwKK2NvbXBpbGVyIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBDIGNvbXBpbGVyIHRoYXQgeW91ciBwZXJsIHdhcyBidWlsdCBcCit3aXRoLiBcCitJdCBjYW4gZ2VuZXJhdGUgdGhlIG5lY2Vzc2FyeSBvcHRpb25zIHRvIHRoZSBNb2R1bGU6OkJ1aWxkIGNvbnN0cnVjdG9yIG9yIFwKK3RvIEV4dFV0aWxzOjpNYWtlTWFrZXIncyBXcml0ZU1ha2VmaWxlIGZ1bmN0aW9uLiIKK1NFQ1RJT04gPSAibGlicyIKKworSE9NRVBBR0UgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9+c211ZWxsZXIvRXh0VXRpbHMtQ3BwR3Vlc3MvIgorCitMSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FO2JlZ2lubGluZT04MTtlbmRsaW5lPTg0O21kNT04NGMwMzkwYjkwZWE4YzY3MDJjZTY1OWI2N2JlZDY5OSIKKworU1JDX1VSSSA9ICIke0NQQU5fTUlSUk9SfS9hdXRob3JzL2lkL0UvRVQvRVRKL0V4dFV0aWxzLUNwcEd1ZXNzLSR7UFZ9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICIyOGJlNDkwNzI1ODViMjVkZjg3ZTU0MTgwZjc0MWE0ZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzMWM0N2I1YjE1ZTNlOWZkNWFlN2IzNTg4MWEwZmZmZDI2YTI5ODNiMjQxZTdlM2ExYmMzNDBkNmQ0NDYxODZiIgorCitTID0gIiR7V09SS0RJUn0vRXh0VXRpbHMtQ3BwR3Vlc3MtJHtQVn0iCisKK2luaGVyaXQgY3BhbgorCitkb19pbnN0YWxsICgpIHsKKyAgICAgICAgY3Bhbl9kb19pbnN0YWxsCit9CisKK1JERVBFTkRTXyR7UE59ID0gIiBsaWJjYXB0dXJlLXRpbnktcGVybCBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtc2NhbGFyLXV0aWwgXAorICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWlvLWZpbGUgXAorICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWV4dHV0aWxzLW1ha2VtYWtlciBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtZmlsZS1zcGVjIFwKKyAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1leHBvcnRlciBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtY2FycCBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtZmlsZS10ZW1wIFwKKyAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1saWIgXAorIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJpby9saWJpby1zb2NrZXQtc3NsLXBlcmxfMS45OTcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliaW8vbGliaW8tc29ja2V0LXNzbC1wZXJsXzEuOTk3LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTU3ODhhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJpby9saWJpby1zb2NrZXQtc3NsLXBlcmxfMS45OTcuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi1TVU1NQVJZID0gIlBlcmwgbGlicmFyeSBmb3IgdHJhbnNwYXJlbnQgU1NMIgotREVTQ1JJUFRJT04gPSAiVGhpcyBtb2R1bGUgaXMgYSB0cnVlIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIElPOjpTb2NrZXQ6OklORVQgdGhhdCBcCi11c2VzIFNTTCB0byBlbmNyeXB0IGRhdGEgYmVmb3JlIGl0IGlzIHRyYW5zZmVycmVkIHRvIGEgcmVtb3RlIHNlcnZlciBcCi1vciBjbGllbnQuIElPOjpTb2NrZXQ6OlNTTCBzdXBwb3J0cyBhbGwgdGhlIGV4dHJhIGZlYXR1cmVzIHRoYXQgb25lIFwKLW5lZWRzIHRvIHdyaXRlIGEgZnVsbC1mZWF0dXJlZCBTU0wgY2xpZW50IG9yIHNlcnZlciBhcHBsaWNhdGlvbjogXAotbXVsdGlwbGUgU1NMIGNvbnRleHRzLCBjaXBoZXIgc2VsZWN0aW9uLCBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24sIGFuZCBcCi1TU0wgdmVyc2lvbiBzZWxlY3Rpb24uIEFzIGFuIGV4dHJhIGJvbnVzLCBpdCB3b3JrcyBwZXJmZWN0bHkgd2l0aCBcCi1tb2RfcGVybC4iCi1IT01FUEFHRSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL2Rpc3QvSU8tU29ja2V0LVNTTC8iCi1TRUNUSU9OID0gImxpYnMiCi0KLUxJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wfEdQTHYxKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL01FVEEueW1sO2JlZ2lubGluZT0xMTtlbmRsaW5lPTExO21kNT05NjNjZTI4MjI4MzQ3ODc1YWNlNjgyZGU1NmVlZjhlOCIKLQotUkRFUEVORFNfJHtQTn0gKz0gInBlcmwtbW9kdWxlLXNjYWxhci11dGlsIGxpYm5ldC1zc2xlYXktcGVybCIKLQotU1JDX1VSSSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL0NQQU4vYXV0aG9ycy9pZC9TL1NVL1NVTExSL0lPLVNvY2tldC1TU0wtJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCBcCi0gICAgICAgICAgIgotU1JDX1VSSVttZDVzdW1dID0gIjJhNjI2OGJiNDJkYTgxZTY5ZDFjMWZlYjJmY2IwZWVhIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImFjZGI2N2I1YjYzYWVhNWI3ZTcwYzNlNGM3MGExNjEyODgxMDMyOTU5MmI2Mzc1M2EzOGM3OTRhZmY3NmExZGQiCi0KLVMgPSAiJHtXT1JLRElSfS9JTy1Tb2NrZXQtU1NMLSR7UFZ9IgotCi1pbmhlcml0IGNwYW4gcHRlc3QKLQotZG9faW5zdGFsbF9hcHBlbmQgKCkgewotICAgIG1rZGlyIC1wICR7RH0ke2RvY2Rpcn0vJHtQTn0vCi0gICAgY3AgJHtTfS9CVUdTICR7RH0ke2RvY2Rpcn0vJHtQTn0vCi0gICAgY3AgJHtTfS9DaGFuZ2VzICR7RH0ke2RvY2Rpcn0vJHtQTn0vCi0gICAgY3AgJHtTfS9SRUFETUUgJHtEfSR7ZG9jZGlyfS8ke1BOfS8KLSAgICBjcCAtcFJQICR7U30vZG9jcyAke0R9JHtkb2NkaXJ9LyR7UE59LwotICAgIGNwIC1wUlAgJHtTfS9jZXJ0cyAke0R9JHtkb2NkaXJ9LyR7UE59LwotICAgIGNwIC1wUlAgJHtTfS9leGFtcGxlICR7RH0ke2RvY2Rpcn0vJHtQTn0vCi0gICAgY3AgLXBSUCAke1N9L3V0aWwgJHtEfSR7ZG9jZGlyfS8ke1BOfS8KLX0KLQotZG9faW5zdGFsbF9wdGVzdCAoKSB7Ci0gICAgY3AgLXIgJHtCfS90ICR7RH0ke1BURVNUX1BBVEh9Ci0gICAgY3AgLXIgJHtCfS9jZXJ0cyAke0R9JHtQVEVTVF9QQVRIfQotfQotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJpby9saWJpby1zb2NrZXQtc3NsLXBlcmxfMi4wNTQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliaW8vbGliaW8tc29ja2V0LXNzbC1wZXJsXzIuMDU0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhNzhiYzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGliaW8vbGliaW8tc29ja2V0LXNzbC1wZXJsXzIuMDU0LmJiCkBAIC0wLDAgKzEsNDcgQEAKK1NVTU1BUlkgPSAiUGVybCBsaWJyYXJ5IGZvciB0cmFuc3BhcmVudCBTU0wiCitERVNDUklQVElPTiA9ICJUaGlzIG1vZHVsZSBpcyBhIHRydWUgZHJvcC1pbiByZXBsYWNlbWVudCBmb3IgSU86OlNvY2tldDo6SU5FVCB0aGF0IFwKK3VzZXMgU1NMIHRvIGVuY3J5cHQgZGF0YSBiZWZvcmUgaXQgaXMgdHJhbnNmZXJyZWQgdG8gYSByZW1vdGUgc2VydmVyIFwKK29yIGNsaWVudC4gSU86OlNvY2tldDo6U1NMIHN1cHBvcnRzIGFsbCB0aGUgZXh0cmEgZmVhdHVyZXMgdGhhdCBvbmUgXAorbmVlZHMgdG8gd3JpdGUgYSBmdWxsLWZlYXR1cmVkIFNTTCBjbGllbnQgb3Igc2VydmVyIGFwcGxpY2F0aW9uOiBcCittdWx0aXBsZSBTU0wgY29udGV4dHMsIGNpcGhlciBzZWxlY3Rpb24sIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiwgYW5kIFwKK1NTTCB2ZXJzaW9uIHNlbGVjdGlvbi4gQXMgYW4gZXh0cmEgYm9udXMsIGl0IHdvcmtzIHBlcmZlY3RseSB3aXRoIFwKK21vZF9wZXJsLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvZGlzdC9JTy1Tb2NrZXQtU1NMLyIKK1NFQ1RJT04gPSAibGlicyIKKworTElDRU5TRSA9ICJBcnRpc3RpYy0xLjB8R1BMdjErIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTUVUQS55bWw7YmVnaW5saW5lPTExO2VuZGxpbmU9MTE7bWQ1PTk2M2NlMjgyMjgzNDc4NzVhY2U2ODJkZTU2ZWVmOGU4IgorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgIGxpYm5ldC1zc2xlYXktcGVybCBcCisgICAgcGVybC1tb2R1bGUtYXV0b2xvYWRlciBcCisgICAgcGVybC1tb2R1bGUtc2NhbGFyLXV0aWwgXAorICAgIHBlcmwtbW9kdWxlLWlvLXNvY2tldCBcCisiCisKK1NSQ19VUkkgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9DUEFOL2F1dGhvcnMvaWQvUy9TVS9TVUxMUi9JTy1Tb2NrZXQtU1NMLSR7UFZ9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9ydW4tcHRlc3QgXAorICAgICAgICAgICIKK1NSQ19VUklbbWQ1c3VtXSA9ICJlMWI0MTJlMjhkMTA3YzcxNmU3Y2E2MzdlMmI3ZjhiZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwMmVhMDRlOWEzMzZhN2QzY2E5YWE2MDRjMGM1YjVhYWYzZWZhNTEzY2VmZWNmYzczY2M3OWNlZWI1MTMxZTRiIgorCitTID0gIiR7V09SS0RJUn0vSU8tU29ja2V0LVNTTC0ke1BWfSIKKworaW5oZXJpdCBjcGFuIHB0ZXN0CisKK2RvX2luc3RhbGxfYXBwZW5kICgpIHsKKyAgICBta2RpciAtcCAke0R9JHtkb2NkaXJ9LyR7UE59LworICAgIGNwICR7U30vQlVHUyAke0R9JHtkb2NkaXJ9LyR7UE59LworICAgIGNwICR7U30vQ2hhbmdlcyAke0R9JHtkb2NkaXJ9LyR7UE59LworICAgIGNwICR7U30vUkVBRE1FICR7RH0ke2RvY2Rpcn0vJHtQTn0vCisgICAgY3AgLXBSUCAke1N9L2RvY3MgJHtEfSR7ZG9jZGlyfS8ke1BOfS8KKyAgICBjcCAtcFJQICR7U30vY2VydHMgJHtEfSR7ZG9jZGlyfS8ke1BOfS8KKyAgICBjcCAtcFJQICR7U30vZXhhbXBsZSAke0R9JHtkb2NkaXJ9LyR7UE59LworfQorCitkb19pbnN0YWxsX3B0ZXN0ICgpIHsKKyAgICBjcCAtciAke0J9L3QgJHtEfSR7UFRFU1RfUEFUSH0KKyAgICBjcCAtciAke0J9L2NlcnRzICR7RH0ke1BURVNUX1BBVEh9Cit9CisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm1pbWUvbGlibWltZS10eXBlcy1wZXJsXzIuMTMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibWltZS9saWJtaW1lLXR5cGVzLXBlcmxfMi4xMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQ1MWMxNi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibWltZS9saWJtaW1lLXR5cGVzLXBlcmxfMi4xMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVNVTU1BUlkgPSAiTUlNRTo6VHlwZXMgLSBEZWZpbml0aW9uIG9mIE1JTUUgdHlwZXMiCi1ERVNDUklQVElPTiA9ICJNSU1FIHR5cGVzIGFyZSB1c2VkIGluIE1JTUUgY29tcGxpYW50IGxpbmVzLCBmb3IgaW5zdGFuY2UgXAotYXMgcGFydCBvZiBlLW1haWwgYW5kIEhUVFAgdHJhZmZpYywgdG8gaW5kaWNhdGUgdGhlIHR5cGUgb2YgY29udGVudCB3aGljaCBcCi1pcyB0cmFuc21pdHRlZC4gU29tZXRpbWVzIHJlYWwga25vd2xlZGdlIGFib3V0IGEgbWltZS10eXBlIGlzIG5lZWQuXAotXG5cCi1UaGlzIG1vZHVsZSBtYWludGFpbnMgYSBzZXQgb2YgTUlNRTo6VHlwZSBvYmplY3RzLCB3aGljaCBlYWNoIGRlc2NyaWJlIFwKLW9uZSBrbm93biBtaW1lIHR5cGUuIgotSE9NRVBBR0UgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9+bWFya292L01JTUUtVHlwZXMtJHtQVn0iCi1TRUNUSU9OID0gImxpYnJhcmllcyIKLQotTElDRU5TRSA9ICJBcnRpc3RpYy0xLjB8R1BMdjErIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTUVUQS55bWw7YmVnaW5saW5lPTExO2VuZGxpbmU9MTE7bWQ1PTk2M2NlMjgyMjgzNDc4NzVhY2U2ODJkZTU2ZWVmOGU4IgotCi1TUkNfVVJJID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvQ1BBTi9hdXRob3JzL2lkL00vTUEvTUFSS09WL01JTUUtVHlwZXMtJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCBcCi0gICAgICAgICAgIgotU1JDX1VSSVttZDVzdW1dID0gImYyODkyYWU5ZTZlYTY2MGE1ODc0NjY5OWMzOTI0ODE3IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjk5YzMzNzYzNTdiYmUyMmNjOGI2Yzc4ZjU2MGFhMThkODE2MjEyODc2OTVjZDYyOTAwOGE2YzRlNjZiNzdiZjgiCi0KLVMgPSAiJHtXT1JLRElSfS9NSU1FLVR5cGVzLSR7UFZ9IgotCi1pbmhlcml0IGNwYW4gcHRlc3QKLQotZG9faW5zdGFsbF9wdGVzdCAoKSB7Ci0gICAgY3AgLXIgJHtCfS90ICR7RH0ke1BURVNUX1BBVEh9Ci19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibWltZS9saWJtaW1lLXR5cGVzLXBlcmxfMi4xNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtaW1lL2xpYm1pbWUtdHlwZXMtcGVybF8yLjE3LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxNDc1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibWltZS9saWJtaW1lLXR5cGVzLXBlcmxfMi4xNy5iYgpAQCAtMCwwICsxLDQyIEBACitTVU1NQVJZID0gIk1JTUU6OlR5cGVzIC0gRGVmaW5pdGlvbiBvZiBNSU1FIHR5cGVzIgorREVTQ1JJUFRJT04gPSAiTUlNRSB0eXBlcyBhcmUgdXNlZCBpbiBNSU1FIGNvbXBsaWFudCBsaW5lcywgZm9yIGluc3RhbmNlIFwKK2FzIHBhcnQgb2YgZS1tYWlsIGFuZCBIVFRQIHRyYWZmaWMsIHRvIGluZGljYXRlIHRoZSB0eXBlIG9mIGNvbnRlbnQgd2hpY2ggXAoraXMgdHJhbnNtaXR0ZWQuIFNvbWV0aW1lcyByZWFsIGtub3dsZWRnZSBhYm91dCBhIG1pbWUtdHlwZSBpcyBuZWVkLlwKK1xuXAorVGhpcyBtb2R1bGUgbWFpbnRhaW5zIGEgc2V0IG9mIE1JTUU6OlR5cGUgb2JqZWN0cywgd2hpY2ggZWFjaCBkZXNjcmliZSBcCitvbmUga25vd24gbWltZSB0eXBlLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvfm1hcmtvdi9NSU1FLVR5cGVzLSR7UFZ9IgorU0VDVElPTiA9ICJsaWJyYXJpZXMiCisKK0xJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wfEdQTHYxKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL01FVEEueW1sO2JlZ2lubGluZT0xMTtlbmRsaW5lPTExO21kNT05NjNjZTI4MjI4MzQ3ODc1YWNlNjgyZGU1NmVlZjhlOCIKKworU1JDX1VSSSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL0NQQU4vYXV0aG9ycy9pZC9NL01BL01BUktPVi9NSU1FLVR5cGVzLSR7UFZ9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9ydW4tcHRlc3QgXAorICAgICAgICAgICIKK1NSQ19VUklbbWQ1c3VtXSA9ICI2ZjE0NDFhZGRhYjk0NzEzN2JhYzkyYzM3OWE0N2JhMyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlMDRlZDdkNDJmMWZmMzE1MGEzMDM4MDVmMjY4OWMyOGY4MGI5MmM1MTE3ODRkNDY0MWNiN2YwNDBkM2U4ZmY2IgorCitTID0gIiR7V09SS0RJUn0vTUlNRS1UeXBlcy0ke1BWfSIKKworaW5oZXJpdCBjcGFuIHB0ZXN0CisKK1JERVBFTkRTXyR7UE59ID0gIlwKKyAgICBwZXJsLW1vZHVsZS1iYXNlIFwKKyAgICBwZXJsLW1vZHVsZS1maWxlLWJhc2VuYW1lIFwKKyAgICBwZXJsLW1vZHVsZS1maWxlLXNwZWMgXAorICAgIHBlcmwtbW9kdWxlLW92ZXJsb2FkIFwKKyIKKworUkRFUEVORFNfJHtQTn0tcHRlc3QgPSAicGVybC1tb2R1bGUtbGliIHBlcmwtbW9kdWxlLXRlc3QtbW9yZSIKKyNSU1VHR0VTVFNfJHtQTn0tcHRlc3QgPSAibGlibW9qby1iYXNlLXBlcmwiCisKK2RvX2luc3RhbGwgKCkgeworICAgIGNwYW5fZG9faW5zdGFsbAorICAgIGluc3RhbGwgLWQgJHtEfSR7YmluZGlyfQorICAgIGluc3RhbGwgLW0gNzU1ICR7U30vYmluL2NvbGxlY3QtdHlwZXMgJHtEfSR7YmluZGlyfS9jb2xsZWN0LXR5cGVzCit9CisKK2RvX2luc3RhbGxfcHRlc3QgKCkgeworICAgIGNwIC1yICR7Qn0vdCAke0R9JHtQVEVTVF9QQVRIfQorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm1vZHVsZS9saWJtb2R1bGUtcGx1Z2dhYmxlLXBlcmxfNS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm1vZHVsZS9saWJtb2R1bGUtcGx1Z2dhYmxlLXBlcmxfNS4yLmJiCmluZGV4IGM3M2ExNWEuLmFlZDY1ZDMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtb2R1bGUvbGlibW9kdWxlLXBsdWdnYWJsZS1wZXJsXzUuMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibW9kdWxlL2xpYm1vZHVsZS1wbHVnZ2FibGUtcGVybF81LjIuYmIKQEAgLTE3LDkgKzE3LDE0IEBACiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUU7YmVnaW5saW5lPTMyMjtlbmRsaW5lPTMyNTttZDU9MDg2NDUwY2UwMTBmNmZkYTI1ZGIwYjM4ZmNjNDEwODYiCiAKIFNSQ05BTUUgPSAiTW9kdWxlLVBsdWdnYWJsZSIKLVNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL21vdG8tdGltby8ke1NSQ05BTUV9L2FyY2hpdmUvJHtQVn0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gImUzMjQ3NWQ2ZmY1ODQzZjczOGNlZGFjZDNiN2EyY2RiIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU4YzYyMjkyZWVhNmQwNjk1OWViYTFiOTc1OTg2NTA4MTMyMTEyNjU0MDMyNDJkNTdlZmIyZjYwNWM5NjA1OWYiCitTUkNfVVJJID0gIiR7Q1BBTl9NSVJST1J9L2F1dGhvcnMvaWQvUy9TSS9TSU1PTlcvJHtTUkNOQU1FfS0ke1BWfS50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiODdjZTI5NzE2NjJlZmQwYjY5YTgxYmI0ZGM5ZWE3NmMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjNmMmFkNDVlNGZkMTBiM2ZiOTBkOTEyZDc4ZDhiNzk1YWIyOTU0ODBkYjU2ZGM2NGU4NmI5ZmE3NWM1YTZkZiIKKworUFIgPSAicjEiCisKK1VQU1RSRUFNX0NIRUNLX1JFR0VYID0gIk1vZHVsZVwtUGx1Z2dhYmxlXC0oP1A8cHZlcj4oXGQrXC5cZCspKSIKK1VQU1RSRUFNX0NIRUNLX1VSSSA9ICJodHRwczovL21ldGFjcGFuLm9yZy9yZWxlYXNlLyR7U1JDTkFNRX0iCiAKIFMgPSAiJHtXT1JLRElSfS8ke1NSQ05BTUV9LSR7UFZ9IgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibW9kdWxlL2xpYm1vZHVsZS1ydW50aW1lLXBlcmxfMC4wMTUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibW9kdWxlL2xpYm1vZHVsZS1ydW50aW1lLXBlcmxfMC4wMTUuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5Mjg0MmMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm1vZHVsZS9saWJtb2R1bGUtcnVudGltZS1wZXJsXzAuMDE1LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotU1VNTUFSWSA9ICJNb2R1bGU6OlJ1bnRpbWUgLSBydW50aW1lIG1vZHVsZSBoYW5kbGluZyIKLURFU0NSSVBUSU9OID0gIlRoZSBmdW5jdGlvbnMgZXhwb3J0ZWQgYnkgdGhpcyBtb2R1bGUgZGVhbCB3aXRoIHJ1bnRpbWUgXAotaGFuZGxpbmcgb2YgUGVybCBtb2R1bGVzLCB3aGljaCBhcmUgbm9ybWFsbHkgaGFuZGxlZCBhdCBjb21waWxlIHRpbWUuIFRoaXMgXAotbW9kdWxlIGF2b2lkcyB1c2luZyBhbnkgb3RoZXIgbW9kdWxlcywgc28gdGhhdCBpdCBjYW4gYmUgdXNlZCBpbiBsb3ctbGV2ZWwgXAotaW5mcmFzdHJ1Y3R1cmUuIFwKLVRoZSBwYXJ0cyBvZiB0aGlzIG1vZHVsZSB0aGF0IHdvcmsgd2l0aCBtb2R1bGUgbmFtZXMgYXBwbHkgdGhlIHNhbWUgc3ludGF4IFwKLXRoYXQgaXMgdXNlZCBmb3IgYmFyZXdvcmRzIGluIFBlcmwgc291cmNlLiBJbiBwcmluY2lwbGUgdGhpcyBzeW50YXggY2FuIHZhcnkgXAotYmV0d2VlbiB2ZXJzaW9ucyBvZiBQZXJsLCBhbmQgdGhpcyBtb2R1bGUgYXBwbGllcyB0aGUgc3ludGF4IG9mIHRoZSBQZXJsIG9uIFwKLXdoaWNoIGl0IGlzIHJ1bm5pbmcuIEluIHByYWN0aWNlIHRoZSB1c2FibGUgc3ludGF4IGhhc24ndCBjaGFuZ2VkIHlldCwgYnV0IFwKLXRoZXJlJ3MgYSBnb29kIGNoYW5jZSBvZiBpdCBjaGFuZ2luZyBpbiBQZXJsIDUuMTguIFwKLVRoZSBmdW5jdGlvbnMgb2YgdGhpcyBtb2R1bGUgd2hvc2UgcHVycG9zZSBpcyB0byBsb2FkIG1vZHVsZXMgaW5jbHVkZSBcCi13b3JrYXJvdW5kcyBmb3IgdGhyZWUgb2xkIFBlcmwgY29yZSBidWdzIHJlZ2FyZGluZyByZXF1aXJlLiBUaGVzZSB3b3JrYXJvdW5kcyBcCi1hcmUgYXBwbGllZCBvbiBhbnkgUGVybCB2ZXJzaW9uIHdoZXJlIHRoZSBidWdzIGV4aXN0LCBleGNlcHQgZm9yIGEgY2FzZSB3aGVyZSBcCi1vbmUgb2YgdGhlIGJ1Z3MgY2Fubm90IGJlIGFkZXF1YXRlbHkgd29ya2VkIGFyb3VuZCBpbiBwdXJlIFBlcmwuIgotU0VDVElPTiA9ICJsaWJzIgotCi1IT01FUEFHRSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL356ZWZyYW0vTW9kdWxlLVJ1bnRpbWUvIgotCi1MSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FO2JlZ2lubGluZT00NTtlbmRsaW5lPTQ2O21kNT02MmUyNGE5MzM0MmZlZGU3MjIxZDY2MzM1YzcxNmYzNCIKLQotU1JDTkFNRSA9ICJtb2R1bGUtcnVudGltZSIKLVNSQ19VUkkgPSAiaHR0cHM6Ly9naXRodWIuY29tL21vdG8tdGltby8ke1NSQ05BTUV9L2FyY2hpdmUvJHtQVn0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gImFkNmNhMTc5Yzk3OGFhMDJhYzhhYTI5MjQ0ZWY5YmViIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU5ZWZmYTgyYjNmNjk4NmQyOGRlNjE1NGE4ZjI0MjgxNTc2OTEwMDRkOTUxZjkzNmE4MWU4NTFmNGRiY2IwNDUiCi0KLVMgPSAiJHtXT1JLRElSfS8ke1NSQ05BTUV9LSR7UFZ9IgotCi1pbmhlcml0IGNwYW4KLQotUkRFUEVORFNfJHtQTn0gPSAiIHBlcmwtbW9kdWxlLXRlc3QtbW9yZSBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtc3RyaWN0IFwKLSIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibW9kdWxlL2xpYm1vZHVsZS1ydW50aW1lLXBlcmxfMC4wMTYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibW9kdWxlL2xpYm1vZHVsZS1ydW50aW1lLXBlcmxfMC4wMTYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODlmMGY3MAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtb2R1bGUvbGlibW9kdWxlLXJ1bnRpbWUtcGVybF8wLjAxNi5iYgpAQCAtMCwwICsxLDM3IEBACitTVU1NQVJZID0gIk1vZHVsZTo6UnVudGltZSAtIHJ1bnRpbWUgbW9kdWxlIGhhbmRsaW5nIgorREVTQ1JJUFRJT04gPSAiVGhlIGZ1bmN0aW9ucyBleHBvcnRlZCBieSB0aGlzIG1vZHVsZSBkZWFsIHdpdGggcnVudGltZSBcCitoYW5kbGluZyBvZiBQZXJsIG1vZHVsZXMsIHdoaWNoIGFyZSBub3JtYWxseSBoYW5kbGVkIGF0IGNvbXBpbGUgdGltZS4gVGhpcyBcCittb2R1bGUgYXZvaWRzIHVzaW5nIGFueSBvdGhlciBtb2R1bGVzLCBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluIGxvdy1sZXZlbCBcCitpbmZyYXN0cnVjdHVyZS4gXAorVGhlIHBhcnRzIG9mIHRoaXMgbW9kdWxlIHRoYXQgd29yayB3aXRoIG1vZHVsZSBuYW1lcyBhcHBseSB0aGUgc2FtZSBzeW50YXggXAordGhhdCBpcyB1c2VkIGZvciBiYXJld29yZHMgaW4gUGVybCBzb3VyY2UuIEluIHByaW5jaXBsZSB0aGlzIHN5bnRheCBjYW4gdmFyeSBcCitiZXR3ZWVuIHZlcnNpb25zIG9mIFBlcmwsIGFuZCB0aGlzIG1vZHVsZSBhcHBsaWVzIHRoZSBzeW50YXggb2YgdGhlIFBlcmwgb24gXAord2hpY2ggaXQgaXMgcnVubmluZy4gSW4gcHJhY3RpY2UgdGhlIHVzYWJsZSBzeW50YXggaGFzbid0IGNoYW5nZWQgeWV0LCBidXQgXAordGhlcmUncyBhIGdvb2QgY2hhbmNlIG9mIGl0IGNoYW5naW5nIGluIFBlcmwgNS4xOC4gXAorVGhlIGZ1bmN0aW9ucyBvZiB0aGlzIG1vZHVsZSB3aG9zZSBwdXJwb3NlIGlzIHRvIGxvYWQgbW9kdWxlcyBpbmNsdWRlIFwKK3dvcmthcm91bmRzIGZvciB0aHJlZSBvbGQgUGVybCBjb3JlIGJ1Z3MgcmVnYXJkaW5nIHJlcXVpcmUuIFRoZXNlIHdvcmthcm91bmRzIFwKK2FyZSBhcHBsaWVkIG9uIGFueSBQZXJsIHZlcnNpb24gd2hlcmUgdGhlIGJ1Z3MgZXhpc3QsIGV4Y2VwdCBmb3IgYSBjYXNlIHdoZXJlIFwKK29uZSBvZiB0aGUgYnVncyBjYW5ub3QgYmUgYWRlcXVhdGVseSB3b3JrZWQgYXJvdW5kIGluIHB1cmUgUGVybC4iCitTRUNUSU9OID0gImxpYnMiCisKK0hPTUVQQUdFID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvfnplZnJhbS9Nb2R1bGUtUnVudGltZS8iCisKK0xJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wIHwgR1BMLTEuMCsiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUU7YmVnaW5saW5lPTM2O2VuZGxpbmU9NDQ7bWQ1PTk0MTY0MzQ2NzJhNTc4NTNkNjE4MWYzZGE5MDk0OTYzIgorCitTUkNOQU1FID0gIk1vZHVsZS1SdW50aW1lIgorU1JDX1VSSSA9ICIke0NQQU5fTUlSUk9SfS9hdXRob3JzL2lkL1ovWkUvWkVGUkFNLyR7U1JDTkFNRX0tJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gImQzZDQ3MjIyZmEyZTNkZmNiNDUyNmY2Y2M4NDM3YjIwIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjY4MzAyZWM2NDY4MzM1NDdkNDEwYmUyOGUwOTY3NmRiNzUwMDZmNGFhNThhMTFmM2JkYjQ0ZmZlOTlmMGYwMjQiCisKK1VQU1RSRUFNX0NIRUNLX1JFR0VYID0gIk1vZHVsZVwtUnVudGltZVwtKD9QPHB2ZXI+KFxkK1wuXGQrKSkudGFyIgorCitTID0gIiR7V09SS0RJUn0vJHtTUkNOQU1FfS0ke1BWfSIKKworaW5oZXJpdCBjcGFuCisKK1JERVBFTkRTXyR7UE59ID0gIiBwZXJsLW1vZHVsZS10ZXN0LW1vcmUgXAorICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLXN0cmljdCBcCisiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm1vby9saWJtb28tcGVybF8yLjAwMzAwMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtb28vbGlibW9vLXBlcmxfMi4wMDMwMDIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwZmU0OTIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm1vby9saWJtb28tcGVybF8yLjAwMzAwMi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLVNVTU1BUlkgPSAiTW9vIC0gTWluaW1hbGlzdCBPYmplY3QgT3JpZW50YXRpb24gKHdpdGggTW9vc2UgY29tcGF0aWJpbGl0eSkiCi1ERVNDUklQVElPTiA9ICJUaGlzIG1vZHVsZSB1cyBhbiBleHRyZW1lbHkgbGlnaHQtd2VpZ2h0IHN1YnNldCBvZiBcIk1vb3NlXCIgXAotb3B0aW1pc2VkIGZvciByYXBpZCBzdGFydHVwIGFuZCBcInBheSBvbmx5IGZvciB3aGF0IHlvdSB1c2VcIi4iCi0KLVNFQ1RJT04gPSAibGlicyIKLQotSE9NRVBBR0UgPSAiaHR0cDovL21ldGFwYW4ub3JnL3JlbGVhc2UvTW9vLyIKLQotTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRTtiZWdpbmxpbmU9NzMxO2VuZGxpbmU9Nzc2O21kNT0yN2VmZWRkMTc1ZWVhZGRiZDE4ZjRlMzU3MmJkNzJhOCIKLQotU1JDX1VSSSA9ICIke0NQQU5fTUlSUk9SfS9hdXRob3JzL2lkL0gvSEEvSEFBUkcvTW9vLSR7UFZ9LnRhci5neiIKLVNSQ19VUklbbWQ1c3VtXSA9ICJlOWYxZjMxNTk1NTVlY2ViY2QwNjJlOTk4ZjI5N2E5NCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJmM2U5NzQxZTc5YmFhNjNlODlmNWEwODcwNmNkODBkMThjMGE1YTM3ZTNkODk4ODQ3ZTAwMjMxMGUwNjU4MmYxIgotCi1TID0gIiR7V09SS0RJUn0vTW9vLSR7UFZ9IgotCi1pbmhlcml0IGNwYW4KLQotUkRFUEVORFNfJHtQTn0gPSAiIGxpYmNsYXNzLW1ldGhvZC1tb2RpZmllcnMtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgbGliZGV2ZWwtZ2xvYmFsZGVzdHJ1Y3Rpb24tcGVybCBcCi0gICAgICAgICAgICAgICAgICAgbGlibW9kdWxlLXJ1bnRpbWUtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgbGlicm9sZS10aW55LXBlcmwgXAotICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWNvbnN0YW50IFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1leHBvcnRlciBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtbXJvIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1zY2FsYXItdXRpbCBcCi0iCi0KLVJQUk9WSURFU18ke1BOfSA9ICIgbGlibWV0aG9kLWlubGluZXItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYm1ldGhvZC1nZW5lcmF0ZS1hY2Nlc3Nvci1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlibWV0aG9kLWdlbmVyYXRlLWJ1aWxkYWxsLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJtZXRob2QtZ2VuZXJhdGUtY29uc3RydWN0b3ItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYm1ldGhvZC1nZW5lcmF0ZS1kZW1vbGlzaGFsbC1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlibW9vLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJtb28taGFuZGxlbW9vc2UtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYm1vby1oYW5kbGVtb29zZS1mYWtlbWV0YWNsYXNzLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJtb28tb2JqZWN0LXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJtb28tcm9sZS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlic3ViLWRlZmVyLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJzdWItcXVvdGUtcGVybCBcCi0iCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm1vby9saWJtb28tcGVybF8yLjAwMzAwNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtb28vbGlibW9vLXBlcmxfMi4wMDMwMDQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTI2MGFiOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJtb28vbGlibW9vLXBlcmxfMi4wMDMwMDQuYmIKQEAgLTAsMCArMSw0NCBAQAorU1VNTUFSWSA9ICJNb28gLSBNaW5pbWFsaXN0IE9iamVjdCBPcmllbnRhdGlvbiAod2l0aCBNb29zZSBjb21wYXRpYmlsaXR5KSIKK0RFU0NSSVBUSU9OID0gIlRoaXMgbW9kdWxlIHVzIGFuIGV4dHJlbWVseSBsaWdodC13ZWlnaHQgc3Vic2V0IG9mIFwiTW9vc2VcIiBcCitvcHRpbWlzZWQgZm9yIHJhcGlkIHN0YXJ0dXAgYW5kIFwicGF5IG9ubHkgZm9yIHdoYXQgeW91IHVzZVwiLiIKKworU0VDVElPTiA9ICJsaWJzIgorCitIT01FUEFHRSA9ICJodHRwOi8vbWV0YXBhbi5vcmcvcmVsZWFzZS9Nb28vIgorCitMSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FO2JlZ2lubGluZT03MzE7ZW5kbGluZT03NzY7bWQ1PTI3ZWZlZGQxNzVlZWFkZGJkMThmNGUzNTcyYmQ3MmE4IgorCitTUkNfVVJJID0gIiR7Q1BBTl9NSVJST1J9L2F1dGhvcnMvaWQvSC9IQS9IQUFSRy9Nb28tJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gImQ0ZmNkMGYyNDAwMzMxOTg1NzFmY2M4MWNlN2M1ZjE1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImY4YmJiNjI1ZjhlOTYzZWFiZTA1Y2ZmOTA0OGZkZDcyYmRkMjY3Nzc0MDRmZjJjNDBiYzY5MGY1NThiZTkxZTEiCisKK1MgPSAiJHtXT1JLRElSfS9Nb28tJHtQVn0iCisKK2luaGVyaXQgY3BhbgorCitSREVQRU5EU18ke1BOfSA9ICIgbGliY2xhc3MtbWV0aG9kLW1vZGlmaWVycy1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICBsaWJkZXZlbC1nbG9iYWxkZXN0cnVjdGlvbi1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICBsaWJtb2R1bGUtcnVudGltZS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICBsaWJyb2xlLXRpbnktcGVybCBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtY29uc3RhbnQgXAorICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLWV4cG9ydGVyIFwKKyAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1tcm8gXAorICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLXNjYWxhci11dGlsIFwKKyIKKworUlBST1ZJREVTXyR7UE59ID0gIiBsaWJtZXRob2QtaW5saW5lci1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlibWV0aG9kLWdlbmVyYXRlLWFjY2Vzc29yLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJtZXRob2QtZ2VuZXJhdGUtYnVpbGRhbGwtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYm1ldGhvZC1nZW5lcmF0ZS1jb25zdHJ1Y3Rvci1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlibWV0aG9kLWdlbmVyYXRlLWRlbW9saXNoYWxsLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJtb28tcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYm1vby1oYW5kbGVtb29zZS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlibW9vLWhhbmRsZW1vb3NlLWZha2VtZXRhY2xhc3MtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYm1vby1vYmplY3QtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYm1vby1yb2xlLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJzdWItZGVmZXItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnN1Yi1xdW90ZS1wZXJsIFwKKyIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibmV0L2xpYm5ldC1kbnMtcGVybF8xLjEwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm5ldC9saWJuZXQtZG5zLXBlcmxfMS4xMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQ4OTg0NC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibmV0L2xpYm5ldC1kbnMtcGVybF8xLjEwLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBETlMucG0gbW9kdWxlIHdpdGggZnJpZW5kcy4iCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3Lm5ldC1kbnMub3JnLyIKLVNFQ1RJT04gPSAibGlicyIKLUxJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wIHwgR1BMLTEuMCsiCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRTttZDU9OTJkOTNkOGM1YmYyMmRlNzc1Nzg1MzFlMjgzZGQyMTkiCi0KLURFUEVORFMgKz0gInBlcmwiCi0KLVNSQ19VUkkgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9DUEFOL2F1dGhvcnMvaWQvTi9OTC9OTE5FVExBQlMvTmV0LUROUy0ke1BWfS50YXIuZ3oiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI0ZmE0NWIwZGZlNzk2Njc0NTNjMTU1M2UxNmU1MmMyYSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJlYmU1M2U3ZjQzMzEzOGZiOWE3ODQ1YjRlZGFlNmI4ZjRkYzIyN2RhOTdlYWY2YjM0NzU4NDgxNmVjNjNhNTI1IgotCi1TID0gIiR7V09SS0RJUn0vTmV0LUROUy0ke1BWfSIKLQotRVhUUkFfQ1BBTkZMQUdTID0gIkVYUEFUTElCUEFUSD0ke1NUQUdJTkdfTElCRElSfSBFWFBBVElOQ1BBVEg9JHtTVEFHSU5HX0lOQ0RJUn0iCi0KLWluaGVyaXQgY3BhbgotCi1kb19jb21waWxlKCkgewotICAgIGV4cG9ydCBMSUJDPSIkKGZpbmQgJHtTVEFHSU5HX0RJUl9UQVJHRVR9LyR7YmFzZV9saWJkaXJ9LyAtbmFtZSAnbGliYy0qLnNvJykiCi0gICAgY3Bhbl9kb19jb21waWxlCi19Ci1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJuZXQvbGlibmV0LWRucy1wZXJsXzEuMTQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibmV0L2xpYm5ldC1kbnMtcGVybF8xLjE0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYWE3ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibmV0L2xpYm5ldC1kbnMtcGVybF8xLjE0LmJiCkBAIC0wLDAgKzEsMjcgQEAKK0RFU0NSSVBUSU9OID0gIlRoaXMgcGFja2FnZSBjb250YWlucyB0aGUgRE5TLnBtIG1vZHVsZSB3aXRoIGZyaWVuZHMuIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5uZXQtZG5zLm9yZy8iCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUU7bWQ1PTkyZDkzZDhjNWJmMjJkZTc3NTc4NTMxZTI4M2RkMjE5IgorCitERVBFTkRTICs9ICJwZXJsIgorCitTUkNfVVJJID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvQ1BBTi9hdXRob3JzL2lkL04vTkwvTkxORVRMQUJTL05ldC1ETlMtJHtQVn0udGFyLmd6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiMGRhMTA5OWMwYTM1NDhkMzZlYTllMzFkNWJiOWUxMjIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiODNjMzhhNTk0ZWViMmM4NWQ2NmU2MDA0N2EwZjViNDAzZjM0YmQ5MmE1ZDEzNjA2ZjAyZTgyOGQ0NTAyOTlmYyIKKworUyA9ICIke1dPUktESVJ9L05ldC1ETlMtJHtQVn0iCisKK0VYVFJBX0NQQU5GTEFHUyA9ICJFWFBBVExJQlBBVEg9JHtTVEFHSU5HX0xJQkRJUn0gRVhQQVRJTkNQQVRIPSR7U1RBR0lOR19JTkNESVJ9IgorCitpbmhlcml0IGNwYW4KKworUkRFUEVORFNfJHtQTn0gPSAicGVybC1tb2R1bGUtaW50ZWdlciIKKworZG9fY29tcGlsZSgpIHsKKyAgICBleHBvcnQgTElCQz0iJChmaW5kICR7U1RBR0lOR19ESVJfVEFSR0VUfS8ke2Jhc2VfbGliZGlyfS8gLW5hbWUgJ2xpYmMtKi5zbycpIgorICAgIGNwYW5fZG9fY29tcGlsZQorfQorQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibmV0L2xpYm5ldC1zc2xlYXktcGVybF8xLjgxLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYm5ldC9saWJuZXQtc3NsZWF5LXBlcmxfMS44MS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTg2MWI2OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibmV0L2xpYm5ldC1zc2xlYXktcGVybF8xLjgxLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotU1VNTUFSWSA9ICJOZXQ6OlNTTGVheSAtIFBlcmwgZXh0ZW5zaW9uIGZvciB1c2luZyBPcGVuU1NMIgotREVTQ1JJUFRJT04gPSAiVGhpcyBtb2R1bGUgb2ZmZXJzIHNvbWUgaGlnaCBsZXZlbCBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIGFjY2Vzc2luZyBcCi13ZWIgcGFnZXMgb24gU1NMIHNlcnZlcnMgKGZvciBzeW1tZXRyeSwgc2FtZSBBUEkgaXMgb2ZmZXJlZCBmb3IgXAotYWNjZXNzaW5nIGh0dHAgc2VydmVycywgdG9vKSwgYSBzc2xjYXQoKSBmdW5jdGlvbiBmb3Igd3JpdGluZyB5b3VyIG93biBcCi1jbGllbnRzLCBhbmQgZmluYWxseSBhY2Nlc3MgdG8gdGhlIFNTTCBhcGkgb2YgU1NMZWF5L09wZW5TU0wgcGFja2FnZSBcCi1zbyB5b3UgY2FuIHdyaXRlIHNlcnZlcnMgb3IgY2xpZW50cyBmb3IgbW9yZSBjb21wbGljYXRlZCBhcHBsaWNhdGlvbnMuIgotSE9NRVBBR0UgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9kaXN0L05ldC1TU0xlYXkvIgotU0VDVElPTiA9ICJsaWJzIgotCi1MSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FO2JlZ2lubGluZT0yNzQ7ZW5kbGluZT0yOTQ7bWQ1PTY3ZDY3MDk1ZDgzZTMzOWRhNTM4YTA4MmZhZDVmMzhlIgotCi1ERVBFTkRTID0gIm9wZW5zc2wgemxpYiBvcGVuc3NsLW5hdGl2ZSIKLVJERVBFTkRTXyR7UE59ICs9ICJwZXJsLW1vZHVsZS1jYXJwIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1lcnJubyBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtZXh0dXRpbHMtbWFrZW1ha2VyIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1taW1lLWJhc2U2NCBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtc29ja2V0IFwKLSAgICAgICAgICAgICAgICAgICIKLQotU1JDX1VSSSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL0NQQU4vYXV0aG9ycy9pZC9NL01JL01JS0VNL05ldC1TU0xlYXktJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCBcCi0gICAgICAgICAgIgotU1JDX1VSSVttZDVzdW1dID0gIjcxOTMyY2UzNGQ0ZGI0NGRlOGQwMDM5OWMzNDA1NzkyIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjAwY2JiNjE3NGU2MjhiNDIxNzhlMTQ0NWM5ZmQ1YTNjNWFlMmNmZDZhNWE0M2UwMzYxMGJhMTQ3ODZmMjFiN2QiCi0KLVMgPSAiJHtXT1JLRElSfS9OZXQtU1NMZWF5LSR7UFZ9IgotCi1pbmhlcml0IGNwYW4gcHRlc3QKLQotRVhUUkFfQ1BBTkZMQUdTID0gIkxJQlM9Jy1MPSR7U1RBR0lOR19MSUJESVJ9IC1MPSR7U1RBR0lOR19CQVNFTElCRElSfScgXAotICAgICAgICAgICAgICAgICAgIElOQz0tST0ke1NUQUdJTkdfSU5DRElSfSBcCi0gICAgICAgICAgICAgICAgICAgJy1sc3NsIC1sY3J5cHRvIC1seicgXAotICAgICAgICAgICAgICAgICAgIgotCi1kb19pbnN0YWxsX3B0ZXN0KCkgewotICAgIGNwIC1yICR7Qn0vdCAke0R9JHtQVEVTVF9QQVRIfQotfQotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKLQotRklMRVNfJHtQTn0tZGJnID0rICIke2xpYmRpcn0vcGVybC92ZW5kb3JfcGVybC8qL2F1dG8vTmV0L1NTTGVheS8uZGVidWcvIgotCi1SREVQRU5EU18ke1BOfS1wdGVzdCA9ICIgcGVybCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJuZXQvbGlibmV0LXNzbGVheS1wZXJsXzEuODQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibmV0L2xpYm5ldC1zc2xlYXktcGVybF8xLjg0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmZWNlZjkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlibmV0L2xpYm5ldC1zc2xlYXktcGVybF8xLjg0LmJiCkBAIC0wLDAgKzEsNDcgQEAKK1NVTU1BUlkgPSAiTmV0OjpTU0xlYXkgLSBQZXJsIGV4dGVuc2lvbiBmb3IgdXNpbmcgT3BlblNTTCIKK0RFU0NSSVBUSU9OID0gIlRoaXMgbW9kdWxlIG9mZmVycyBzb21lIGhpZ2ggbGV2ZWwgY29udmVuaWVuY2UgZnVuY3Rpb25zIGZvciBhY2Nlc3NpbmcgXAord2ViIHBhZ2VzIG9uIFNTTCBzZXJ2ZXJzIChmb3Igc3ltbWV0cnksIHNhbWUgQVBJIGlzIG9mZmVyZWQgZm9yIFwKK2FjY2Vzc2luZyBodHRwIHNlcnZlcnMsIHRvbyksIGEgc3NsY2F0KCkgZnVuY3Rpb24gZm9yIHdyaXRpbmcgeW91ciBvd24gXAorY2xpZW50cywgYW5kIGZpbmFsbHkgYWNjZXNzIHRvIHRoZSBTU0wgYXBpIG9mIFNTTGVheS9PcGVuU1NMIHBhY2thZ2UgXAorc28geW91IGNhbiB3cml0ZSBzZXJ2ZXJzIG9yIGNsaWVudHMgZm9yIG1vcmUgY29tcGxpY2F0ZWQgYXBwbGljYXRpb25zLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvZGlzdC9OZXQtU1NMZWF5LyIKK1NFQ1RJT04gPSAibGlicyIKKworTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRTtiZWdpbmxpbmU9Mjc0O2VuZGxpbmU9Mjk0O21kNT02N2Q2NzA5NWQ4M2UzMzlkYTUzOGEwODJmYWQ1ZjM4ZSIKKworREVQRU5EUyA9ICJvcGVuc3NsIHpsaWIgb3BlbnNzbC1uYXRpdmUiCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgIGxpYnNzbCBcCisgICAgbGliY3J5cHRvIFwKKyAgICBwZXJsLW1vZHVsZS1jYXJwIFwKKyAgICBwZXJsLW1vZHVsZS1lcnJubyBcCisgICAgcGVybC1tb2R1bGUtZXh0dXRpbHMtbWFrZW1ha2VyIFwKKyAgICBwZXJsLW1vZHVsZS1taW1lLWJhc2U2NCBcCisgICAgcGVybC1tb2R1bGUtc29ja2V0IFwKKyAgICB6bGliIFwKKyIKKworU1JDX1VSSSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL0NQQU4vYXV0aG9ycy9pZC9NL01JL01JS0VNL05ldC1TU0xlYXktJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCBcCisgICAgICAgICAgIgorU1JDX1VSSVttZDVzdW1dID0gImNmYmU5Njg0ODcxNDk2MjY5NzhmNDI3Y2M5ZmI4Yzc3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjgyM2VjM2NiYjQyODMwOWQ2YTllNTZmMzYyYTkzMDA2OTNjZTMyMTViN2ZlZGUxMDlhZGI3YmUzNjFmZmYxNzciCisKK1MgPSAiJHtXT1JLRElSfS9OZXQtU1NMZWF5LSR7UFZ9IgorCitpbmhlcml0IGNwYW4gcHRlc3QKKworZXhwb3J0IE9QRU5TU0xfUFJFRklYPSIke1NUQUdJTkdfTElCRElSfSIKKworRVhUUkFfQ1BBTkZMQUdTID0gIklOQz0tSSR7U1RBR0lOR19JTkNESVJ9IExJQlM9Jy1MJHtTVEFHSU5HX0xJQkRJUn0gLWxjcnlwdG8gLWxzc2wgLUwke1NUQUdJTkdfQkFTRUxJQkRJUn0gLWx6JyIKKworZG9faW5zdGFsbF9wdGVzdCgpIHsKKyAgICBjcCAtciAke0J9L3QgJHtEfSR7UFRFU1RfUEFUSH0KK30KKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCisKK0ZJTEVTXyR7UE59LWRiZyA9KyAiJHtsaWJkaXJ9L3BlcmwvdmVuZG9yX3BlcmwvKi9hdXRvL05ldC9TU0xlYXkvLmRlYnVnLyIKKworUkRFUEVORFNfJHtQTn0tcHRlc3QgPSAiIHBlcmwiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlicm9sZS9saWJyb2xlLXRpbnktcGVybF8yLjAwMDAwNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJyb2xlL2xpYnJvbGUtdGlueS1wZXJsXzIuMDAwMDA1LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNjg0ZjY4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJyb2xlL2xpYnJvbGUtdGlueS1wZXJsXzIuMDAwMDA1LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotU1VNTUFSWSA9ICJSb2xlOjpUaW55IC0gUm9sZXMuIExpa2UgYSBub3V2ZWxsZSBjb3VzaW5lIHBvcnRpb24gc2l6ZSBvZiBNb29zZS4iCi1ERVNDUklQVElPTiA9ICJcIlJvbGU6OlRpbnlcIiBpcyBhIG1pbmltYWxpc3Qgcm9sZSBjb21wb3NpdGlvbiB0b29sLiIKLQotU0VDVElPTiA9ICJsaWJzIgotCi1IT01FUEFHRSA9ICJodHRwczovL21ldGFjcGFuLm9yZy9wb2QvUm9sZTo6VGlueSIKLQotTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRTtiZWdpbmxpbmU9MTc3O2VuZGxpbmU9MjE0O21kNT0yNmRmN2U3YzIwNTUxZmIxOTA2ZTIyODY2MjRmMGI3MSIKLQotU1JDX1VSSSA9ICIke0NQQU5fTUlSUk9SfS9hdXRob3JzL2lkL0gvSEEvSEFBUkcvUm9sZS1UaW55LSR7UFZ9LnRhci5neiIKLVNSQ19VUklbbWQ1c3VtXSA9ICJjOGM1Y2YxZTAyZDJlMGExZWQyMjUzMGI1NWI2N2Q2NiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI1OTNhMjliNjIxZTAyOWJmMDIxOGQwMTU0ZDVkZmRmNmVjNTAyYWZjNDlhZGVlYWRhZTZhZmQwYzcwMDYzMTE1IgotCi1TID0gIiR7V09SS0RJUn0vUm9sZS1UaW55LSR7UFZ9IgotCi1pbmhlcml0IGNwYW4KLQotUkRFUEVORFNfJHtQTn0gPSAiIHBlcmwtbW9kdWxlLWV4cG9ydGVyIFwKLSAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1zdHJpY3QgXAotICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLXRlc3QtbW9yZSBcCi0gICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtd2FybmluZ3MgXAotIgotCi1SUFJPVklERVNfJHtQTn0gPSAiIGxpYnJvbGUtdGlueS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlicm9sZS10aW55LXdpdGgtcGVybCBcCi0iCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnJvbGUvbGlicm9sZS10aW55LXBlcmxfMi4wMDAwMDYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlicm9sZS9saWJyb2xlLXRpbnktcGVybF8yLjAwMDAwNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjc1NWVhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnJvbGUvbGlicm9sZS10aW55LXBlcmxfMi4wMDAwMDYuYmIKQEAgLTAsMCArMSwyOSBAQAorU1VNTUFSWSA9ICJSb2xlOjpUaW55IC0gUm9sZXMuIExpa2UgYSBub3V2ZWxsZSBjb3VzaW5lIHBvcnRpb24gc2l6ZSBvZiBNb29zZS4iCitERVNDUklQVElPTiA9ICJcIlJvbGU6OlRpbnlcIiBpcyBhIG1pbmltYWxpc3Qgcm9sZSBjb21wb3NpdGlvbiB0b29sLiIKKworU0VDVElPTiA9ICJsaWJzIgorCitIT01FUEFHRSA9ICJodHRwczovL21ldGFjcGFuLm9yZy9wb2QvUm9sZTo6VGlueSIKKworTElDRU5TRSA9ICJBcnRpc3RpYy0xLjAgfCBHUEwtMS4wKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRTtiZWdpbmxpbmU9MTc3O2VuZGxpbmU9MjE0O21kNT0yNmRmN2U3YzIwNTUxZmIxOTA2ZTIyODY2MjRmMGI3MSIKKworU1JDX1VSSSA9ICIke0NQQU5fTUlSUk9SfS9hdXRob3JzL2lkL0gvSEEvSEFBUkcvUm9sZS1UaW55LSR7UFZ9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICI3YzI3NzcyOGE3ZTA5MGY2NGI0OTU4NTdjYWRmZWQwOCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjYzczNDE4YzkwNGEwMjg2ZWNkODkxNWVhYzExZjViZTJhOGQxZTE3ZWE5Y2I1NGM5MTE2YjAzNDBjZDNlMzgyIgorCitTID0gIiR7V09SS0RJUn0vUm9sZS1UaW55LSR7UFZ9IgorCitpbmhlcml0IGNwYW4KKworUkRFUEVORFNfJHtQTn0gPSAiIHBlcmwtbW9kdWxlLWV4cG9ydGVyIFwKKyAgICAgICAgICAgICAgICAgICBwZXJsLW1vZHVsZS1zdHJpY3QgXAorICAgICAgICAgICAgICAgICAgIHBlcmwtbW9kdWxlLXRlc3QtbW9yZSBcCisgICAgICAgICAgICAgICAgICAgcGVybC1tb2R1bGUtd2FybmluZ3MgXAorIgorCitSUFJPVklERVNfJHtQTn0gPSAiIGxpYnJvbGUtdGlueS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlicm9sZS10aW55LXdpdGgtcGVybCBcCisiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnRlc3QvbGlidGVzdC1oYXJuZXNzLXBlcmxfMy4zNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJ0ZXN0L2xpYnRlc3QtaGFybmVzcy1wZXJsXzMuMzYuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhZWQ1ZTAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnRlc3QvbGlidGVzdC1oYXJuZXNzLXBlcmxfMy4zNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLVNVTU1BUlkgPSAiVGVzdDo6SGFybmVzcyAtIFJ1biBQZXJsIHN0YW5kYXJkIHRlc3Qgc2NyaXB0cyB3aXRoIHN0YXRpc3RpY3MiCi1ERVNDUklQVElPTiA9ICJBbHRob3VnaCwgZm9yIGhpc3RvcmljYWwgcmVhc29ucywgdGhlIFRlc3Q6Okhhcm5lc3MgXAotZGlzdHJpYnV0aW9uIHRha2VzIGl0cyBuYW1lIGZyb20gdGhpcyBtb2R1bGUgaXQgbm93IGV4aXN0cyBvbmx5IHRvIHByb3ZpZGUgXAotVEFQOjpIYXJuZXNzIHdpdGggYW4gaW50ZXJmYWNlIHRoYXQgaXMgc29tZXdoYXQgYmFja3dhcmRzIGNvbXBhdGlibGUgXAotd2l0aCBUZXN0OjpIYXJuZXNzIDIueHguIElmIHlvdSdyZSB3cml0aW5nIG5ldyBjb2RlIGNvbnNpZGVyIHVzaW5nIFwKLVRBUDo6SGFybmVzcyBkaXJlY3RseSBpbnN0ZWFkLiBcCi1cCi1FbXVsYXRpb24gaXMgcHJvdmlkZWQgZm9yIHJ1bnRlc3RzIGFuZCBleGVjdXRlX3Rlc3RzIGJ1dCB0aGUgXAotcGx1Z2dhYmxlICdTdHJhcHMnIGludGVyZmFjZSB0aGF0IHByZXZpb3VzIHZlcnNpb25zIG9mIFRlc3Q6Okhhcm5lc3MgXAotc3VwcG9ydGVkIGlzIG5vdCByZXByb2R1Y2VkIGhlcmUuIFN0cmFwcyBpcyBub3cgYXZhaWxhYmxlIGFzIGEgc3RhbmQgXAotYWxvbmUgbW9kdWxlOiBUZXN0OjpIYXJuZXNzOjpTdHJhcHMuIFwKLVwKLVNlZSBUQVA6OlBhcnNlciwgVEFQOjpIYXJuZXNzIGZvciB0aGUgbWFpbiBkb2N1bWVudGF0aW9uIGZvciB0aGlzIFwKLWRpc3RyaWJ1dGlvbi4iCi0KLVNFQ1RJT04gPSAibGlicyIKLQotSE9NRVBBR0UgPSAiaHR0cDovL3Rlc3Rhbnl0aGluZy5vcmciCi0KLUxJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wIHwgR1BMLTEuMCsiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUU7YmVnaW5saW5lPTI5O2VuZGxpbmU9MzA7bWQ1PWIwOGRiNDM2MGVlYzExOWU4NzVkZGRkN2NiOGE1ZGRkIgotCi1TUkNfVVJJID0gIiR7Q1BBTl9NSVJST1J9L2F1dGhvcnMvaWQvTC9MRS9MRU9OVC9UZXN0LUhhcm5lc3MtJHtQVn0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gIjRjOGQ5Yzc3ZThlMDZjYTk2YzczODNjMDVjOGYzNjE2IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImU3NTY2ZjEzYjA0MWQwMjhiNTZmMTg0Yjc3ZWMyNTQ1ZWM2ZjBiYjVhMGY4ZjUzNjhmN2U0YTA4YjQ5NmI2M2UiCi0KLVMgPSAiJHtXT1JLRElSfS9UZXN0LUhhcm5lc3MtJHtQVn0iCi0KLWluaGVyaXQgY3BhbgotCi1SUFJPVklERVNfJHtQTn0gKz0gImxpYmFwcC1wcm92ZS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGliYXBwLXByb3ZlLXN0YXRlLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJhcHAtcHJvdmUtc3RhdGUtcmVzdWx0LXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJhcHAtcHJvdmUtc3RhdGUtcmVzdWx0LXRlc3QtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1iYXNlLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtZm9ybWF0dGVyLWJhc2UtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1mb3JtYXR0ZXItY29sb3ItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1mb3JtYXR0ZXItY29uc29sZS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1jb25zb2xlLXBhcmFsbGVsc2Vzc2lvbi1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1jb25zb2xlLXNlc3Npb24tcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1mb3JtYXR0ZXItZmlsZS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1maWxlLXNlc3Npb24tcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1mb3JtYXR0ZXItc2Vzc2lvbi1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLWhhcm5lc3MtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1oYXJuZXNzLWVudi1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLW9iamVjdC1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1hZ2dyZWdhdG9yLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLWdyYW1tYXItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItaXRlcmF0b3ItcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItaXRlcmF0b3ItYXJyYXktcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItaXRlcmF0b3ItcHJvY2Vzcy1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1pdGVyYXRvci1zdHJlYW0tcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItaXRlcmF0b3JmYWN0b3J5LXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLW11bHRpcGxleGVyLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXJlc3VsdC1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNzZXItcmVzdWx0LWJhaWxvdXQtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItcmVzdWx0LWNvbW1lbnQtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItcmVzdWx0LXBsYW4tcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItcmVzdWx0LXByYWdtYS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQtdGVzdC1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQtdW5rbm93bi1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQtdmVyc2lvbi1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQteWFtbC1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHRmYWN0b3J5LXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNjaGVkdWxlci1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1zY2hlZHVsZXItam9iLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNjaGVkdWxlci1zcGlubmVyLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNvdXJjZS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1zb3VyY2VoYW5kbGVyLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNvdXJjZWhhbmRsZXItZXhlY3V0YWJsZS1wZXJsIFwKLSAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1zb3VyY2VoYW5kbGVyLWZpbGUtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc291cmNlaGFuZGxlci1oYW5kbGUtcGVybCBcCi0gICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc291cmNlaGFuZGxlci1wZXJsLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNvdXJjZWhhbmRsZXItcmF3dGFwLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXlhbWxpc2gtcmVhZGVyLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXlhbWxpc2gtd3JpdGVyLXBlcmwgXAotICAgICAgICAgICAgICAgICAgICAiCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnRlc3QvbGlidGVzdC1oYXJuZXNzLXBlcmxfMy40Mi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJ0ZXN0L2xpYnRlc3QtaGFybmVzcy1wZXJsXzMuNDIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzliYTU5NAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJ0ZXN0L2xpYnRlc3QtaGFybmVzcy1wZXJsXzMuNDIuYmIKQEAgLTAsMCArMSwxMjAgQEAKKyMgTk9URToKKyMgICAgIFlvdSBzaG91bGQgdXNlIHBlcmwtbW9kdWxlLXRlc3QtaGFybmVzcyBpbnN0ZWFkIG9mIHRoaXMgcGFja2FnZSwKKyMgICAgIHVubGVzcyB5b3Ugc3BlY2lmaWNhbGx5IG5lZWQgYSBuZXdlciB2ZXJzaW9uIHRoYW4gd2hhdCBpcyBwcm92aWRlZAorIyAgICAgYnkgcGVybCBpbiBvZS1jb3JlLgorCitTVU1NQVJZID0gIlRlc3Q6Okhhcm5lc3MgLSBSdW4gUGVybCBzdGFuZGFyZCB0ZXN0IHNjcmlwdHMgd2l0aCBzdGF0aXN0aWNzIgorREVTQ1JJUFRJT04gPSAiQWx0aG91Z2gsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIHRoZSBUZXN0OjpIYXJuZXNzIFwKK2Rpc3RyaWJ1dGlvbiB0YWtlcyBpdHMgbmFtZSBmcm9tIHRoaXMgbW9kdWxlIGl0IG5vdyBleGlzdHMgb25seSB0byBwcm92aWRlIFwKK1RBUDo6SGFybmVzcyB3aXRoIGFuIGludGVyZmFjZSB0aGF0IGlzIHNvbWV3aGF0IGJhY2t3YXJkcyBjb21wYXRpYmxlIFwKK3dpdGggVGVzdDo6SGFybmVzcyAyLnh4LiBJZiB5b3UncmUgd3JpdGluZyBuZXcgY29kZSBjb25zaWRlciB1c2luZyBcCitUQVA6Okhhcm5lc3MgZGlyZWN0bHkgaW5zdGVhZC4gXAorXAorRW11bGF0aW9uIGlzIHByb3ZpZGVkIGZvciBydW50ZXN0cyBhbmQgZXhlY3V0ZV90ZXN0cyBidXQgdGhlIFwKK3BsdWdnYWJsZSAnU3RyYXBzJyBpbnRlcmZhY2UgdGhhdCBwcmV2aW91cyB2ZXJzaW9ucyBvZiBUZXN0OjpIYXJuZXNzIFwKK3N1cHBvcnRlZCBpcyBub3QgcmVwcm9kdWNlZCBoZXJlLiBTdHJhcHMgaXMgbm93IGF2YWlsYWJsZSBhcyBhIHN0YW5kIFwKK2Fsb25lIG1vZHVsZTogVGVzdDo6SGFybmVzczo6U3RyYXBzLiBcCitcCitTZWUgVEFQOjpQYXJzZXIsIFRBUDo6SGFybmVzcyBmb3IgdGhlIG1haW4gZG9jdW1lbnRhdGlvbiBmb3IgdGhpcyBcCitkaXN0cmlidXRpb24uIgorCitTRUNUSU9OID0gImxpYnMiCisKK0hPTUVQQUdFID0gImh0dHA6Ly90ZXN0YW55dGhpbmcub3JnIgorCitMSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FO2JlZ2lubGluZT0yOTtlbmRsaW5lPTMwO21kNT1iMDhkYjQzNjBlZWMxMTllODc1ZGRkZDdjYjhhNWRkZCIKKworU1JDX1VSSSA9ICIke0NQQU5fTUlSUk9SfS9hdXRob3JzL2lkL0wvTEUvTEVPTlQvVGVzdC1IYXJuZXNzLSR7UFZ9LnRhci5neiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJjNzk0OTA2NDczZjg4ZDZiNzQxOTRlMmQ1NmYxNmJkNiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwZmQ5MGQ0ZWZlYTgyZDZlMjYyZTY5MzM3NTllODVkMjdjYmNmYTQwOTFiMTRiZjQwNDJhZTIwYmFiNTI4ZTUzIgorCitVUFNUUkVBTV9DSEVDS19SRUdFWCA9ICJUZXN0XC1IYXJuZXNzXC0oP1A8cHZlcj4oXGQrXC5cZCspKSg/IV9cZCspLnRhciIKKworUyA9ICIke1dPUktESVJ9L1Rlc3QtSGFybmVzcy0ke1BWfSIKKworaW5oZXJpdCBjcGFuIHB0ZXN0LXBlcmwKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICBwZXJsLW1vZHVsZS1iZW5jaG1hcmsgXAorIgorCitSUFJPVklERVNfJHtQTn0gKz0gImxpYmFwcC1wcm92ZS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGliYXBwLXByb3ZlLXN0YXRlLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJhcHAtcHJvdmUtc3RhdGUtcmVzdWx0LXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJhcHAtcHJvdmUtc3RhdGUtcmVzdWx0LXRlc3QtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1iYXNlLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtZm9ybWF0dGVyLWJhc2UtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1mb3JtYXR0ZXItY29sb3ItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1mb3JtYXR0ZXItY29uc29sZS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1jb25zb2xlLXBhcmFsbGVsc2Vzc2lvbi1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1jb25zb2xlLXNlc3Npb24tcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1mb3JtYXR0ZXItZmlsZS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLWZvcm1hdHRlci1maWxlLXNlc3Npb24tcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1mb3JtYXR0ZXItc2Vzc2lvbi1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLWhhcm5lc3MtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1oYXJuZXNzLWVudi1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLW9iamVjdC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1hZ2dyZWdhdG9yLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLWdyYW1tYXItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItaXRlcmF0b3ItcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItaXRlcmF0b3ItYXJyYXktcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItaXRlcmF0b3ItcHJvY2Vzcy1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1pdGVyYXRvci1zdHJlYW0tcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItaXRlcmF0b3JmYWN0b3J5LXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLW11bHRpcGxleGVyLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXJlc3VsdC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNzZXItcmVzdWx0LWJhaWxvdXQtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItcmVzdWx0LWNvbW1lbnQtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItcmVzdWx0LXBsYW4tcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItcmVzdWx0LXByYWdtYS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQtdGVzdC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQtdW5rbm93bi1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQtdmVyc2lvbi1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHQteWFtbC1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1yZXN1bHRmYWN0b3J5LXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNjaGVkdWxlci1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1zY2hlZHVsZXItam9iLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNjaGVkdWxlci1zcGlubmVyLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNvdXJjZS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1zb3VyY2VoYW5kbGVyLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNvdXJjZWhhbmRsZXItZXhlY3V0YWJsZS1wZXJsIFwKKyAgICAgICAgICAgICAgICAgICAgbGlidGFwLXBhcnNlci1zb3VyY2VoYW5kbGVyLWZpbGUtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc291cmNlaGFuZGxlci1oYW5kbGUtcGVybCBcCisgICAgICAgICAgICAgICAgICAgIGxpYnRhcC1wYXJzZXItc291cmNlaGFuZGxlci1wZXJsLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXNvdXJjZWhhbmRsZXItcmF3dGFwLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXlhbWxpc2gtcmVhZGVyLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICBsaWJ0YXAtcGFyc2VyLXlhbWxpc2gtd3JpdGVyLXBlcmwgXAorICAgICAgICAgICAgICAgICAgICAiCisKK2RvX2luc3RhbGxfcHJlcGVuZCgpIHsKKwkjIHRoZXNlIHRlc3RzIGFyZSBpbmFwcHJvcHJpYXRlIG9uIHRhcmdldAorCXJtIC1yZiAke0J9L3QvMDAwLWxvYWQudAorCXJtIC1yZiAke0J9L3Qvc3RhdGUudAorCSMgdGhlc2UgdGVzdHMgcmVxdWlyZSAiLVQiICh0YWludCkgb3B0aW9uIG9uIGNvbW1hbmQgbGluZQorCXJtIC1yZiAke0J9L3QvYWdncmVnYXRvci50CisJcm0gLXJmICR7Qn0vdC9iYWlsb3V0LnQKKwlybSAtcmYgJHtCfS90L2Jhc2UudAorCXJtIC1yZiAke0J9L3QvY2FsbGJhY2tzLnQKKwlybSAtcmYgJHtCfS90L2Vycm9ycy50CisJcm0gLXJmICR7Qn0vdC9uZXN0ZWQudAorCXJtIC1yZiAke0J9L3Qvb2JqZWN0LnQKKwlybSAtcmYgJHtCfS90L3ByZW1hdHVyZS1iYWlsb3V0LnQKKwlybSAtcmYgJHtCfS90L3Jlc3VsdHMudAorCXJtIC1yZiAke0J9L3Qvc3RyZWFtcy50CisJcm0gLXJmICR7Qn0vdC95YW1saXNoLW91dHB1dC50CisJcm0gLXJmICR7Qn0vdC9jb21wYXQvdmVyc2lvbi50Cit9CisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworCWluc3RhbGwgLWQgJHtEfS91c3IvbG9jYWwvYmluCisJIyBkbyBub3QgY2xvYmJlciBwZXJsLW1pc2MgL3Vzci9iaW4vcHJvdmUKKwlpbnN0YWxsIC1tIDA3NTUgJHtCfS9iaW4vcHJvdmUgJHtEfS91c3IvbG9jYWwvYmluLworCXJtIC1yZiAke0R9JHtiaW5kaXJ9L3Byb3ZlCisJcm0gLXJmICR7RH0ke2JpbmRpcn0KK30KKworRklMRVNfJHtQTn0gKz0gIi91c3IvbG9jYWwvYmluL3Byb3ZlIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJ4bWwvbGlieG1sLWxpYnhtbC1wZXJsXzIuMDEyOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJ4bWwvbGlieG1sLWxpYnhtbC1wZXJsXzIuMDEyOS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYThjYzI2OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcGVybC9yZWNpcGVzLXBlcmwvbGlieG1sL2xpYnhtbC1saWJ4bWwtcGVybF8yLjAxMjkuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi1TVU1NQVJZID0gIlBlcmwgaW50ZXJmYWNlIHRvIHRoZSBsaWJ4bWwyIGxpYnJhcnkiCi1ERVNDUklQVElPTiA9ICJUaGlzIG1vZHVsZSBpcyBhbiBpbnRlcmZhY2UgdG8gbGlieG1sMiwgcHJvdmlkaW5nIFhNTCBhbmQgSFRNTCBwYXJzZXJzIFwKLXdpdGggRE9NLCBTQVggYW5kIFhNTFJlYWRlciBpbnRlcmZhY2VzLCBhIGxhcmdlIHN1YnNldCBvZiBET00gTGF5ZXIgMyBcCi1pbnRlcmZhY2UgYW5kIGEgWE1MOjpYUGF0aC1saWtlIGludGVyZmFjZSB0byBYUGF0aCBBUEkgb2YgbGlieG1sMi4gXAotVGhlIG1vZHVsZSBpcyBzcGxpdCBpbnRvIHNldmVyYWwgcGFja2FnZXMgd2hpY2ggYXJlIG5vdCBkZXNjcmliZWQgaW4gdGhpcyBcCi1zZWN0aW9uOyB1bmxlc3Mgc3RhdGVkIG90aGVyd2lzZSwgeW91IG9ubHkgbmVlZCB0byB1c2UgWE1MOjpMaWJYTUw7IGluIFwKLXlvdXIgcHJvZ3JhbXMuIgotCi1IT01FUEFHRSA9ICJodHRwOi8vc2VhcmNoLmNwYW4ub3JnL2Rpc3QvWE1MLUxpYlhNTC0xLjk5LyIKLVNFQ1RJT04gPSAibGlicyIKLUxJQ0VOU0UgPSAiQXJ0aXN0aWMtMS4wfEdQTHYxKyIKLURFUEVORFMgKz0gImxpYnhtbDIgXAotICAgICAgICBsaWJ4bWwtc2F4LXBlcmwtbmF0aXZlIFwKLSAgICAgICAgemxpYiBcCi0iCi1SREVQRU5EU18ke1BOfSArPSAibGlieG1sMiBcCi0gICAgICAgIGxpYnhtbC1zYXgtcGVybCBcCi0gICAgICAgIGxpYnhtbC1zYXgtYmFzZS1wZXJsIFwKLSAgICAgICAgemxpYiBcCi0iCi0KLVNSQ19VUkkgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9DUEFOL2F1dGhvcnMvaWQvUy9TSC9TSExPTUlGL1hNTC1MaWJYTUwtJHtQVn0udGFyLmd6O25hbWU9bGlieG1sIFwKLSAgICBmaWxlOi8vZGlzYWJsZS1saWJ4bWwyLWNoZWNrLnBhdGNoIFwKLSAgICBmaWxlOi8vZml4LUNBVEFMT0ctY29uZGl0aW9uYWwtY29tcGlsZS5wYXRjaCBcCi0gICAgZmlsZTovL3VzaW5nLURPQ0ItY29uZGl0aW9uYWwucGF0Y2ggXAotIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vZGViaWFuL2NvcHlyaWdodDttZDU9NjRlZGExYmMxMzVmMGVjZTFkMTE4N2YyYThhYzgyYzEgXAotICAgIGZpbGU6Ly9MSUNFTlNFO21kNT05Nzg3MWJkZTE1MGRhZWI1ZTYxYWQ5NTEzN2ZmMjQ0NiBcCi0iCi1TUkNfVVJJW2xpYnhtbC5tZDVzdW1dID0gIjU4MDZiNjlkNTRhMmQ3ODg0YjhkMjJiMzk1ODg4NDM2IgotU1JDX1VSSVtsaWJ4bWwuc2hhMjU2c3VtXSA9ICI1Y2EwMjY5YmEwNjgwMGM4NDA2MWE3ZjMzMzNjODVmYWI1NTg0ZDY5Y2Q3YjRlMDY0MTk2M2RhN2ZkMzZiMzY2IgotCi1TID0gIiR7V09SS0RJUn0vWE1MLUxpYlhNTC0ke1BWfSIKLQotaW5oZXJpdCBjcGFuCi0KLUVYVFJBX0NQQU5GTEFHUyA9ICJJTkM9LUkke1NUQUdJTkdfSU5DRElSfS9saWJ4bWwyIExJQlM9LUwke1NUQUdJTkdfTElCRElSfSIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCi0KLUNGTEFHUyArPSAiIC1EX0dOVV9TT1VSQ0UgIgotQlVJTERfQ0ZMQUdTICs9ICIgLURfR05VX1NPVVJDRSAiCi0KLUZJTEVTXyR7UE59LWRiZyA9KyAiJHtsaWJkaXJ9L3BlcmwvdmVuZG9yX3BlcmwvKi9hdXRvL1hNTC9MaWJYTUwvLmRlYnVnLyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJ4bWwvbGlieG1sLWxpYnhtbC1wZXJsXzIuMDEzMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1wZXJsL3JlY2lwZXMtcGVybC9saWJ4bWwvbGlieG1sLWxpYnhtbC1wZXJsXzIuMDEzMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjE4NDAxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXBlcmwvcmVjaXBlcy1wZXJsL2xpYnhtbC9saWJ4bWwtbGlieG1sLXBlcmxfMi4wMTMyLmJiCkBAIC0wLDAgKzEsNDcgQEAKK1NVTU1BUlkgPSAiUGVybCBpbnRlcmZhY2UgdG8gdGhlIGxpYnhtbDIgbGlicmFyeSIKK0RFU0NSSVBUSU9OID0gIlRoaXMgbW9kdWxlIGlzIGFuIGludGVyZmFjZSB0byBsaWJ4bWwyLCBwcm92aWRpbmcgWE1MIGFuZCBIVE1MIHBhcnNlcnMgXAord2l0aCBET00sIFNBWCBhbmQgWE1MUmVhZGVyIGludGVyZmFjZXMsIGEgbGFyZ2Ugc3Vic2V0IG9mIERPTSBMYXllciAzIFwKK2ludGVyZmFjZSBhbmQgYSBYTUw6OlhQYXRoLWxpa2UgaW50ZXJmYWNlIHRvIFhQYXRoIEFQSSBvZiBsaWJ4bWwyLiBcCitUaGUgbW9kdWxlIGlzIHNwbGl0IGludG8gc2V2ZXJhbCBwYWNrYWdlcyB3aGljaCBhcmUgbm90IGRlc2NyaWJlZCBpbiB0aGlzIFwKK3NlY3Rpb247IHVubGVzcyBzdGF0ZWQgb3RoZXJ3aXNlLCB5b3Ugb25seSBuZWVkIHRvIHVzZSBYTUw6OkxpYlhNTDsgaW4gXAoreW91ciBwcm9ncmFtcy4iCisKK0hPTUVQQUdFID0gImh0dHA6Ly9zZWFyY2guY3Bhbi5vcmcvZGlzdC9YTUwtTGliWE1MLTEuOTkvIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJBcnRpc3RpYy0xLjB8R1BMdjErIgorREVQRU5EUyArPSAibGlieG1sMiBcCisgICAgICAgIGxpYnhtbC1zYXgtcGVybC1uYXRpdmUgXAorICAgICAgICB6bGliIFwKKyIKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgbGlieG1sMiBcCisgICAgbGlieG1sLXNheC1wZXJsIFwKKyAgICBsaWJ4bWwtc2F4LWJhc2UtcGVybCBcCisgICAgcGVybC1tb2R1bGUtZW5jb2RlIFwKKyAgICBwZXJsLW1vZHVsZS1kYXRhLWR1bXBlciBcCisgICAgemxpYiBcCisiCisKK1NSQ19VUkkgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9DUEFOL2F1dGhvcnMvaWQvUy9TSC9TSExPTUlGL1hNTC1MaWJYTUwtJHtQVn0udGFyLmd6O25hbWU9bGlieG1sIFwKKyAgICBmaWxlOi8vZGlzYWJsZS1saWJ4bWwyLWNoZWNrLnBhdGNoIFwKKyAgICBmaWxlOi8vZml4LUNBVEFMT0ctY29uZGl0aW9uYWwtY29tcGlsZS5wYXRjaCBcCisgICAgZmlsZTovL3VzaW5nLURPQ0ItY29uZGl0aW9uYWwucGF0Y2ggXAorIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vZGViaWFuL2NvcHlyaWdodDttZDU9NjRlZGExYmMxMzVmMGVjZTFkMTE4N2YyYThhYzgyYzEgXAorICAgIGZpbGU6Ly9MSUNFTlNFO21kNT05Nzg3MWJkZTE1MGRhZWI1ZTYxYWQ5NTEzN2ZmMjQ0NiBcCisiCitTUkNfVVJJW2xpYnhtbC5tZDVzdW1dID0gIjQzNTQ2ZmQ5YTM5NzRmMTkzMjNmOWZiMDQ4NjFlY2U5IgorU1JDX1VSSVtsaWJ4bWwuc2hhMjU2c3VtXSA9ICI3MjE0NTJlMzEwM2NhMTg4ZjU5NjhhYjA2ZDViYTI5ZmU4ZTAwZTQ5ZjQ3Njc3OTA4ODIwOTUwNTAzMTJkNDc2IgorCitTID0gIiR7V09SS0RJUn0vWE1MLUxpYlhNTC0ke1BWfSIKKworaW5oZXJpdCBjcGFuCisKK0VYVFJBX0NQQU5GTEFHUyA9ICJJTkM9LUkke1NUQUdJTkdfSU5DRElSfS9saWJ4bWwyIExJQlM9LUwke1NUQUdJTkdfTElCRElSfSIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCisKK0NGTEFHUyArPSAiIC1EX0dOVV9TT1VSQ0UgIgorQlVJTERfQ0ZMQUdTICs9ICIgLURfR05VX1NPVVJDRSAiCisKK0ZJTEVTXyR7UE59LWRiZyA9KyAiJHtsaWJkaXJ9L3BlcmwvdmVuZG9yX3BlcmwvKi9hdXRvL1hNTC9MaWJYTUwvLmRlYnVnLyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vUkVBRE1FIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9SRUFETUUKaW5kZXggNDM3NDBmNi4uMDU2NmU0OSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9SRUFETUUKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9SRUFETUUKQEAgLTE3LDEyICsxNywxMiBAQAogCiAJVVJJOiBnaXQ6Ly9naXQub3BlbmVtYmVkZGVkLm9yZy9vcGVuZW1iZWRkZWQtY29yZQogCWxheWVyczogbWV0YQotCWJyYW5jaDogcm9ja28gCisJYnJhbmNoOiBtYXN0ZXIKIAlyZXZpc2lvbjogSEVBRAogCiAJVVJJOiBnaXQ6Ly9naXQub3BlbmVtYmVkZGVkLm9yZy9tZXRhLW9wZW5lbWJlZGRlZAogCWxheWVyczogbWV0YS1vZQotCWJyYW5jaDogIHJvY2tvCisJYnJhbmNoOiBtYXN0ZXIKIAlyZXZpc2lvbjogSEVBRAogCiBQbGVhc2UgZm9sbG93IHRoZSByZWNvbW1lbmRlZCBzZXR1cCBwcm9jZWR1cmVzIG9mIHlvdXIgT0UgZGlzdHJpYnV0aW9uLgpAQCAtNDcsOCArNDcsNyBAQAogTWFpbnRlbmFuY2UKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotTWFpbnRhaW5lcnM6CitMYXllciBNYWludGFpbmVyczoKICAgICAgICAgVGltICJtb3RvLXRpbW8iIE9ybGluZyA8VGljb1RpbW9AZ21haWwuY29tPgotICAgICAgICBQYXVsICJibHVlbGlnaHRuaW5nIiBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+CiAgICAgICAgIERlcmVrIFN0cmFrYSA8ZGVyZWtAYXN0ZXJpdXMuaW8+CiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vY2xhc3Nlcy9weXBpLmJiY2xhc3MgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL2NsYXNzZXMvcHlwaS5iYmNsYXNzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNWQ3YWIzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vY2xhc3Nlcy9weXBpLmJiY2xhc3MKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1kZWYgcHlwaV9wYWNrYWdlKGQpOgotICAgIGJwbiA9IGQuZ2V0VmFyKCdCUE4nKQotICAgIGlmIGJwbi5zdGFydHN3aXRoKCdweXRob24tJyk6Ci0gICAgICAgIHJldHVybiBicG5bNzpdCi0gICAgZWxpZiBicG4uc3RhcnRzd2l0aCgncHl0aG9uMy0nKToKLSAgICAgICAgcmV0dXJuIGJwbls4Ol0KLSAgICByZXR1cm4gYnBuCi0KLVBZUElfUEFDS0FHRSA/PSAiJHtAcHlwaV9wYWNrYWdlKGQpfSIKLVBZUElfUEFDS0FHRV9FWFQgPz0gInRhci5neiIKLQotZGVmIHB5cGlfc3JjX3VyaShkKToKLSAgICBwYWNrYWdlID0gZC5nZXRWYXIoJ1BZUElfUEFDS0FHRScpCi0gICAgcGFja2FnZV9leHQgPSBkLmdldFZhcignUFlQSV9QQUNLQUdFX0VYVCcpCi0gICAgcHYgPSBkLmdldFZhcignUFYnKQotICAgIHJldHVybiAnaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzL3NvdXJjZS8lcy8lcy8lcy0lcy4lcycgJSAocGFja2FnZVswXSwgcGFja2FnZSwgcGFja2FnZSwgcHYsIHBhY2thZ2VfZXh0KQotCi1QWVBJX1NSQ19VUkkgPz0gIiR7QHB5cGlfc3JjX3VyaShkKX0iCi0KLUhPTUVQQUdFID89ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpLyR7UFlQSV9QQUNLQUdFfS8iCi1TRUNUSU9OID0gImRldmVsL3B5dGhvbiIKLVNSQ19VUkkgKz0gIiR7UFlQSV9TUkNfVVJJfSIKLVMgPSAiJHtXT1JLRElSfS8ke1BZUElfUEFDS0FHRX0tJHtQVn0iCi0KLVVQU1RSRUFNX0NIRUNLX1VSSSA/PSAiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS8ke1BZUElfUEFDS0FHRX0vIgotVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPz0gIi8ke1BZUElfUEFDS0FHRX0vKD9QPHB2ZXI+KFxkK1tcLlwtX10qKSspIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9jb25mL2xheWVyLmNvbmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL2NvbmYvbGF5ZXIuY29uZgppbmRleCBkNTM2NzdmLi43MDg5MDcxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL2NvbmYvbGF5ZXIuY29uZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL2NvbmYvbGF5ZXIuY29uZgpAQCAtMTQsNCArMTQsNiBAQAogCiBMQVlFUkRFUEVORFNfbWV0YS1weXRob24gPSAiY29yZSBvcGVuZW1iZWRkZWQtbGF5ZXIiCiAKK0xBWUVSU0VSSUVTX0NPTVBBVF9tZXRhLXB5dGhvbiA9ICJzdW1vIgorCiBMSUNFTlNFX1BBVEggKz0gIiR7TEFZRVJESVJ9L2xpY2Vuc2VzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9nYXRlb25lL2dhdGVvbmVfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9nYXRlb25lL2dhdGVvbmVfZ2l0LmJiCmluZGV4IDhiMmExOTIuLjQ1Nzc4NzMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvZ2F0ZW9uZS9nYXRlb25lX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L2dhdGVvbmUvZ2F0ZW9uZV9naXQuYmIKQEAgLTY5LDcgKzY5LDYgQEAKICAgICAgICAgICAgICAgICAgIHB5dGhvbi1wa2d1dGlsIFwKICAgICAgICAgICAgICAgICAgIHB5dGhvbi1weW9wZW5zc2wgXAogICAgICAgICAgICAgICAgICAgcHl0aG9uLXJlIFwKLSAgICAgICAgICAgICAgICAgIHB5dGhvbi1yZWFkbGluZSBcCiAgICAgICAgICAgICAgICAgICBweXRob24tc2V0dXB0b29scyBcCiAgICAgICAgICAgICAgICAgICBweXRob24tc2hlbGwgXAogICAgICAgICAgICAgICAgICAgcHl0aG9uLXNpbXBsZWpzb24gXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tbXBycGMvcHl0aG9uLW1wcnBjLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLW1wcnBjL3B5dGhvbi1tcHJwYy5pbmMKaW5kZXggYjk1MzVmYy4uMDVmYmFlNCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tbXBycGMvcHl0aG9uLW1wcnBjLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi1tcHJwYy9weXRob24tbXBycGMuaW5jCkBAIC03LDcgKzcsNyBAQAogREVQRU5EUyArPSAiJHtQWVRIT05fUE59LWdldmVudCIKIFJERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tZ2V2ZW50ICR7UFlUSE9OX1BOfS1tc2dwYWNrICR7UFlUSE9OX1BOfS1nc29ja2V0cG9vbCIKIAotU1JDX1VSSVttZDVzdW1dID0gIjY2ZTZjZjM2N2VhNzFjZmVkODkzOGEyN2U5YzE4M2MzIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVjY2FkYTY1MjZkNDhhYzRkOTVhN2JiZGMwOTM1ODY2NjM4NDE1NjAzMzcwMzJhNTAzZjU3Y2NmYWU2OWQ3YmYiCitTUkNfVVJJW21kNXN1bV0gPSAiYWNkZTFmMzQ2NDExOTk3ZDc2YWI4OTc5MGEzNTY4MjMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZThkZGQ0N2U3YTJmYjJkM2IyMDNmY2M1MjI0NDNlZTViZTU2YzhmN2UyYzZkOTE1YzA0NzQ0NTk1MWNlZjFmYiIKIAogaW5oZXJpdCBweXBpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi1tcHJwYy9weXRob24tbXBycGNfMC4xLjE0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tbXBycGMvcHl0aG9uLW1wcnBjXzAuMS4xNi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tbXBycGMvcHl0aG9uLW1wcnBjXzAuMS4xNC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tbXBycGMvcHl0aG9uLW1wcnBjXzAuMS4xNi5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tbXBycGMvcHl0aG9uMy1tcHJwY18wLjEuMTQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi1tcHJwYy9weXRob24zLW1wcnBjXzAuMS4xNi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tbXBycGMvcHl0aG9uMy1tcHJwY18wLjEuMTQuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLW1wcnBjL3B5dGhvbjMtbXBycGNfMC4xLjE2LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi1weXJvNC9weXRob24tcHlybzRfNC42Mi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLXB5cm80L3B5dGhvbi1weXJvNF80LjYyLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDFjNGZmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLXB5cm80L3B5dGhvbi1weXJvNF80LjYyLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotU1VNTUFSWSA9ICJQeXRob24gUmVtb3RlIE9iamVjdHMiCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTM3OGFjZWYzNzVlMTdhM2JmZjAzYmQwZjc4YzUzMjIwIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNmUyZmVmM2RjOGIyOTc3M2E4N2FiYmFhOGU5YWJlMTUiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTMwMWVkZmIyYmM0Nzc2OGI3MjIyYTY4Y2FlOGRlOGJlNzk2ZDFkOWY2MWNkYmQxYWY5MDM5OTg1ZWQ1MDA5YyIKLQotUFlQSV9QQUNLQUdFID0gIlB5cm80IgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1SREVQRU5EU18ke1BOfSArPSAiIFwKLSAgICAke1BZVEhPTl9QTn0tbG9nZ2luZyBcCi0gICAgJHtQWVRIT05fUE59LXNlbGVjdG9yczM0IFwKLSAgICAke1BZVEhPTl9QTn0tc2VycGVudCBcCi0gICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCi0gICAgJHtQWVRIT05fUE59LXpsaWIgXAotICAgICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLXB5cm80L3B5dGhvbi1weXJvNF80LjYzLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tcHlybzQvcHl0aG9uLXB5cm80XzQuNjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY2ODNlMwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLXB5cm80L3B5dGhvbi1weXJvNF80LjYzLmJiCkBAIC0wLDAgKzEsMTggQEAKK1NVTU1BUlkgPSAiUHl0aG9uIFJlbW90ZSBPYmplY3RzIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zNzhhY2VmMzc1ZTE3YTNiZmYwM2JkMGY3OGM1MzIyMCIKKworU1JDX1VSSVttZDVzdW1dID0gImUxZDc3MmI2N2JmN2M2Zjc1ZmEzMTc0YmM5NWM4ODM5IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjY3ZDJiMzQxNTY2MTliYTM3ZTkyMTAwYWY5NWFhZGU4MTI5ZGQyYjczMjdlYjA1ODIxZDQzODg3NDUxZjdkN2IiCisKK1BZUElfUEFDS0FHRSA9ICJQeXJvNCIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAorICAgICR7UFlUSE9OX1BOfS1zZWxlY3RvcnMzNCBcCisgICAgJHtQWVRIT05fUE59LXNlcnBlbnQgXAorICAgICR7UFlUSE9OX1BOfS10aHJlYWRpbmcgXAorICAgICR7UFlUSE9OX1BOfS16bGliIFwKKyAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi10aHJpZnQvcHl0aG9uLXRocmlmdF8wLjEwLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi10aHJpZnQvcHl0aG9uLXRocmlmdF8wLjEwLjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2ZjYxYmQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWNvbm5lY3Rpdml0eS9weXRob24tdGhyaWZ0L3B5dGhvbi10aHJpZnRfMC4xMC4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotU1VNTUFSWSA9ICJQeXRob24gYmluZGluZ3MgZm9yIHRoZSBBcGFjaGUgVGhyaWZ0IFJQQyBzeXN0ZW0iCi1MSUNFTlNFID0gIkFwYWNoZS0yLjAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTzttZDU9MjZhMjAwOWRkY2I3YzQxNjJmOGJhZmQ1ZWY3M2M2NzAiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI3NmJiNzY4YTIxMDI1N2RkMjAzOTIzMTEwMDQyZTU2MCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJiN2Y2YzA5MTU1MzIxMTY5YWYwM2Y5ZmIyMGRjMTVhNGEwYzc0ODFlN2MzMzRhNWJhOGY3ZjBkODY0NjMzMjA5IgotCi1QWVBJX1BBQ0tBR0VfRVhUID0gInppcCIKLQotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotUkRFUEVORFNfJHtQTn0gKz0gIlwKLSAgICAke1BZVEhPTl9QTn0tbG9nZ2luZyBcCi0gICAgJHtQWVRIT05fUE59LXNpeCBcCi0gICAgJHtQWVRIT05fUE59LXN0cmluZ29sZCBcCi0gICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi10aHJpZnQvcHl0aG9uLXRocmlmdF8wLjExLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtY29ubmVjdGl2aXR5L3B5dGhvbi10aHJpZnQvcHl0aG9uLXRocmlmdF8wLjExLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA0N2VjNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1jb25uZWN0aXZpdHkvcHl0aG9uLXRocmlmdC9weXRob24tdGhyaWZ0XzAuMTEuMC5iYgpAQCAtMCwwICsxLDE1IEBACitTVU1NQVJZID0gIlB5dGhvbiBiaW5kaW5ncyBmb3IgdGhlIEFwYWNoZSBUaHJpZnQgUlBDIHN5c3RlbSIKK0xJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT1lMzY0MWFlMWEyNmNmNWMxMmEzYTcxYmQzMDMwYWIwZSIKKworU1JDX1VSSVttZDVzdW1dID0gIjM2MTY1ZDVjODBlNmIxMDFkYmU5ZmNmN2VmNTI0ZDUxIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjdkNTlhYzRmZGNiMmM1ODAzN2ViZDRhOWRhNWY5YTQ5ZTNlMDM0YmY3NWIzZjI2ZDlmZTQ4YmEzZDg4MDZlNmIiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAorICAgICR7UFlUSE9OX1BOfS1zaXggXAorICAgICR7UFlUSE9OX1BOfS1zdHJpbmdvbGQgXAorICAgICR7UFlUSE9OX1BOfS10aHJlYWRpbmcgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXJ0bV8wLjQuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHlydG1fMC40LjIuYmIKaW5kZXggNzJmMDkyMS4uOWQ4NTFhYiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXJ0bV8wLjQuMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5cnRtXzAuNC4yLmJiCkBAIC0xMCw3ICsxMCwyNyBAQAogCiBpbmhlcml0IHB5cGkgc2V0dXB0b29scwogCitQQUNLQUdFUyA9KyAiJHtQTn0tdGVzdHMgJHtQTn0tc2FtcGxlcyIKKworRklMRVNfJHtQTn0tc2FtcGxlcyArPSAiIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9ydG0vc2FtcGxlcyBcCisiCisKK0ZJTEVTXyR7UE59LXRlc3RzICs9ICIgXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3J0bS90ZXN0cyBcCisiCisKIFJERVBFTkRTXyR7UE59ICs9ICJcCiAgICAgJHtQWVRIT05fUE59LWpzb24gXAorICAgICR7UFlUSE9OX1BOfS1sb2dnaW5nIFwKICAgICAke1BZVEhPTl9QTn0tbmV0Y2xpZW50IFwKLSAgICAiCisiCisKK1JERVBFTkRTXyR7UE59LXNhbXBsZXMgKz0gIiBcCisgICAgJHtQTn0gXAorIgorCitSREVQRU5EU18ke1BOfS10ZXN0cyArPSAiIFwKKyAgICAke1BOfSBcCisgICAgJHtQWVRIT05fUE59LXVuaXR0ZXN0IFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFsZW1iaWMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYWxlbWJpYy5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFhNjQxMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFsZW1iaWMuaW5jCkBAIC0wLDAgKzEsMTUgQEAKK0RFU0NSSVBUSU9OID0gIkEgZGF0YWJhc2UgbWlncmF0aW9uIHRvb2wgZm9yIFNRTEFsY2hlbXkiCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWM1ZjEzNjEyOTY4MzVmZjk0YmRhNzNkYjdkZDMxMmE2IgorCitTUkNfVVJJW21kNXN1bV0gPSAiNWNmZWY1ODY0MWM5YTk0ZDRhNWQ1NDdlOTUxYTdkZGEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTNiODYxMTc4OGFjZjBkN2I2MTc3NzVkYjVjMmFlMjY1NTRhNmQ0MjYzYzU5MGVmNjI4ZDQ0OGZkMDVhZWY1NiIKKworUFlQSV9QQUNLQUdFID0gImFsZW1iaWMiCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWRhdGV1dGlsIFwKKyAgICAke1BZVEhPTl9QTn0tZWRpdG9yIFwKKyAgICAke1BZVEhPTl9QTn0tbWFrbyBcCisgICAgJHtQWVRIT05fUE59LXNxbGFsY2hlbXkgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYWxlbWJpY18wLjkuOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFsZW1iaWNfMC45LjguYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZjYjJiMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFsZW1iaWNfMC45LjguYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tYWxlbWJpYy5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFzbjFjcnlwdG8uaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXNuMWNyeXB0by5pbmMKaW5kZXggNDFiNzM0Mi4uNWMzNzk5NSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXNuMWNyeXB0by5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXNuMWNyeXB0by5pbmMKQEAgLTYsOCArNiwxOCBAQAogCiBQWVBJX1BBQ0tBR0UgPSAiYXNuMWNyeXB0byIKIAotU1JDX1VSSVttZDVzdW1dID0gIjk3ZDU0NjY1YzM5N2I3MmIxNjU3NjgzOThkZmRkODc2IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjA4NzQ5ODEzMjljZmViYjM2NmQ2NTg0YzNkMTZlOTEzZjJhMGViMDI2Yzk0NjNlZmNjNGFhZjQyYTlkOTRkNzAiCitTUkNfVVJJW21kNXN1bV0gPSAiZGUzNTIwNDI2ZTgxYTY1ODEzNTJkNDM2NmYzMTBlYjEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOWQ1YzIwNDQxYmFmMGNiNjBhNGFjMzRjYzQ0N2M2YzE4OTAyNGI2YjRjNmNkNzg3NzAzNGY0OTY1YzQ2NGU0OSIKIAogaW5oZXJpdCBweXBpCisKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tY29kZWNzIFwKKyAgICAke1BZVEhPTl9QTn0tY3J5cHQgXAorICAgICR7UFlUSE9OX1BOfS1jdHlwZXMgXAorICAgICR7UFlUSE9OX1BOfS1kYXRldGltZSBcCisgICAgJHtQWVRIT05fUE59LWlvIFwKKyAgICAke1BZVEhPTl9QTn0tbmV0Y2xpZW50IFwKKyIKKwogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc24xY3J5cHRvXzAuMjMuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFzbjFjcnlwdG9fMC4yMy4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YWY2MGMyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFzbjFjcnlwdG9fMC4yMy4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1pbmhlcml0IHNldHVwdG9vbHMKLXJlcXVpcmUgcHl0aG9uLWFzbjFjcnlwdG8uaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc24xY3J5cHRvXzAuMjQuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFzbjFjcnlwdG9fMC4yNC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2YWFjZTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc24xY3J5cHRvXzAuMjQuMC5iYgpAQCAtMCwwICsxLDcgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tYXNuMWNyeXB0by5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorICAgICR7UFlUSE9OX1BOfS10ZXh0dXRpbHMgXCAKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFzdHJvaWQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXN0cm9pZC5pbmMKaW5kZXggNGNiMWEzYy4uZWFkMmI2ZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXN0cm9pZC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXN0cm9pZC5pbmMKQEAgLTQsMTcgKzQsMjggQEAKIExJQ0VOU0UgPSAiTEdQTC0yLjEiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKIAotU1JDX1VSSVttZDVzdW1dID0gIjZmNjVlNGVhODI5MGVjMDMyMzIwNDYwOTA1YWZiODI4IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ5MmMyYTIwNDRhZGJmNmE4NGE2NzFiNzUyMmU5Mjk1YWQyZjZhN2M3ODFiODk5MDE0MzA4ZGIyNTMxMmRkMzUiCitTUkNfVVJJW21kNXN1bV0gPSAiN2Q3ZGMwMDBiMjVmMGNiZmNjYTIwY2I5YThkYzAzMTAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzVjZmFlNDdhYWMxOWM3YjQwN2I3MDk1NDEwZTg5NWU4MzZmMjI4NWNjZjEyMjAzMzZhZmJhNzQ0Y2M0YzVmMiIKIAogaW5oZXJpdCBweXBpCiAKK1BBQ0tBR0VTID0rICIke1BOfS10ZXN0cyIKKworRklMRVNfJHtQTn0tdGVzdHMgKz0gIiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vYXN0cm9pZC90ZXN0KiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vYXN0cm9pZC9fX3B5Y2FjaGVfXy90ZXN0KiBcCisiCisKIFJERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiXAogICAgICR7UFlUSE9OX1BOfS1kaXN0dXRpbHMgXAogICAgICR7UFlUSE9OX1BOfS1sYXp5LW9iamVjdC1wcm94eSBcCisgICAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAogICAgICR7UFlUSE9OX1BOfS1zaXggXAotICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKICAgICAke1BZVEhPTl9QTn0td3JhcHQgXAotICAgICR7UFlUSE9OX1BOfS1yZSBcCiAgICAgJHtQWVRIT05fUE59LXNldHVwdG9vbHMgXAogIgorCitSREVQRU5EU18ke1BOfS10ZXN0c19jbGFzcy10YXJnZXQgKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tdW5pdHRlc3QgXAorICAgICR7UFlUSE9OX1BOfS14bWwgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXN0cm9pZF8xLjUuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWFzdHJvaWRfMS41LjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3YTBhNWUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXN0cm9pZF8xLjUuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotaW5oZXJpdCBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1hc3Ryb2lkLmluYwotCi1SREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIiR7UFlUSE9OX1BOfS1lbnVtMzQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0taW1wb3J0bGliIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LXNpbmdsZWRpc3BhdGNoIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hc3Ryb2lkXzEuNi4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXN0cm9pZF8xLjYuMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODczOTRkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXN0cm9pZF8xLjYuMy5iYgpAQCAtMCwwICsxLDEwIEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWFzdHJvaWQuaW5jCisKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tZW51bTM0IFwKKyAgICAke1BZVEhPTl9QTn0tYmFja3BvcnRzLWZ1bmN0b29scy1scnUtY2FjaGUgXAorICAgICR7UFlUSE9OX1BOfS1yZSBcCisgICAgJHtQWVRIT05fUE59LXNpbmdsZWRpc3BhdGNoIFwKKyAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hdHRyLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHIuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkOTNkZDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hdHRyLmluYwpAQCAtMCwwICsxLDkgQEAKK0RFU0NSSVBUSU9OID0gIlNpbXBsZSBkZWNvcmF0b3IgdG8gc2V0IGF0dHJpYnV0ZXMgb2YgdGFyZ2V0IGZ1bmN0aW9uIG9yIGNsYXNzIGluIGEgRFJZIHdheSIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9kZW5pcy1yeXpoa292L2F0dHIiCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT01OTgwNWEwMjg1ZjRkMmI2YWJkZWRhZTczZGI0ZjVjMSIKKworU1JDX1VSSVttZDVzdW1dID0gIjY4YjlhNTAzOTkxMjQxZmIyZGYyODQ4ODY4NmIwZTFlIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjkwOTE1NDgwNThkMTdmMTMyNTk2ZTYxZmE3NTE4ZTUwNGY3NmI5YTRjNjFjYTdkODZlMWY5NmRiZjdkNDc3NWQiCisKK2luaGVyaXQgcHlwaQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXR0cl8wLjMuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHJfMC4zLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc5ZDZjYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHJfMC4zLjEuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWF0dHIuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hdHRycy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hdHRycy5pbmMKaW5kZXggZWRkZTc5ZS4uYzI5ZjA1OCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXR0cnMuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHJzLmluYwpAQCAtMyw3ICszLDEyIEBACiBMSUNFTlNFID0gIk1JVCIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWQ0YWIyNTk0OWE3M2ZlN2Q0ZmRlZTkzYmNiZGJmOGZmIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNDMxNGY3ODRjYTMxNzRkOTE5NTZkYTk4MjgyNDg5NjAiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzc4ZjUzZTMyZDdjZjM2ZDg1OTdjOGEyYzdlM2MwYWQyMTBmOTdiOTUwOWUxNTJlNGMzN2ZhODA4NjlmODIzYyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkN2E4OTA2M2IyZTBmZDM2YmQ4MjM4OWM0ZDgyODIxZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIxYzc5NjBjY2ZkNmEwMDVjZDlmN2JhODg0ZTYzMTZiNWU0MzBhM2YxYTZjMzdjNWY4N2Q4YjQzZjgzYjU0ZWM5IgogCiBpbmhlcml0IHB5cGkKKworUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1jcnlwdG9ncmFwaHkgXAorICAgICR7UFlUSE9OX1BOfS1jdHlwZXMgXAorIiAgICAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHJzXzE3LjMuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHJzXzE3LjMuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTZmZGYxNS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hdHRyc18xNy4zLjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWluaGVyaXQgc2V0dXB0b29scwotcmVxdWlyZSBweXRob24tYXR0cnMuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hdHRyc18xNy40LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hdHRyc18xNy40LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNiZWMwZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF0dHJzXzE3LjQuMC5iYgpAQCAtMCwwICsxLDYgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tYXR0cnMuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXV0b21hdC8wMDAxLXNldHVwLnB5LXJlbW92ZS10aGUtZGVwZW5kZW5jeS1vbi1tMnIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hdXRvbWF0LzAwMDEtc2V0dXAucHktcmVtb3ZlLXRoZS1kZXBlbmRlbmN5LW9uLW0yci5wYXRjaAppbmRleCAwZWJiMjIwLi5kNmRlZjk4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hdXRvbWF0LzAwMDEtc2V0dXAucHktcmVtb3ZlLXRoZS1kZXBlbmRlbmN5LW9uLW0yci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hdXRvbWF0LzAwMDEtc2V0dXAucHktcmVtb3ZlLXRoZS1kZXBlbmRlbmN5LW9uLW0yci5wYXRjaApAQCAtMTUsMTAgKzE1LDEwIEBACiAgc2V0dXAucHkgfCAxMCAtLS0tLS0tLS0tCiAgMSBmaWxlIGNoYW5nZWQsIDEwIGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvc2V0dXAucHkgYi9zZXR1cC5weQotaW5kZXggZDM2MGM2NC4uN2I0MTgwYSAxMDA2NDQKLS0tLSBhL3NldHVwLnB5Ci0rKysgYi9zZXR1cC5weQorSW5kZXg6IEF1dG9tYXQtMC42LjAvc2V0dXAucHkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBBdXRvbWF0LTAuNi4wLm9yaWcvc2V0dXAucHkKKysrKyBBdXRvbWF0LTAuNi4wL3NldHVwLnB5CiBAQCAtNCwxNCArNCw2IEBAIFNldHVwIGZpbGUgZm9yIGF1dG9tYXQKICAKICBmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwLCBmaW5kX3BhY2thZ2VzCkBAIC00Niw3ICs0Niw0IEBACiAtICAgICAgICAnbTJyJywKICAgICAgXSwKICAgICAgaW5zdGFsbF9yZXF1aXJlcz1bCi0gICAgICAgICAiYXR0cnM+PTE2LjEuMCIsCi0tLSAKLTIuNy40Ci0KKyAgICAgICAgICJhdHRycyIsCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1hd3MtaW90LWRldmljZS1zZGstcHl0aG9uLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF3cy1pb3QtZGV2aWNlLXNkay1weXRob24uaW5jCmluZGV4IGVhZWIwMjAuLmEzMjk5ZTQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF3cy1pb3QtZGV2aWNlLXNkay1weXRob24uaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF3cy1pb3QtZGV2aWNlLXNkay1weXRob24uaW5jCkBAIC0xLDE4ICsxLDQxIEBACiBERVNDUklQVElPTiA9ICJTREsgZm9yIGNvbm5lY3RpbmcgdG8gQVdTIElvVCB1c2luZyBQeXRob24uIgogSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtaW90LWRldmljZS1zZGstcHl0aG9uIgotTElDRU5TRSA9ICJBcGFjaGUtMi4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTlhYzQ5OTAxYjgzM2U3NjljN2Q2ZjIxZThkYmQ3YjMwIgorTElDRU5TRSA9ICJBcGFjaGUtMi4wICYgKEVQTC0xLjAgfCBFREwtMS4wKSIKK0xJQ0VOU0VfJHtQTn0tZXhhbXBsZXMgPSAiQXBhY2hlLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiXAorICAgIGZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9OWFjNDk5MDFiODMzZTc2OWM3ZDZmMjFlOGRiZDdiMzAgXAorICAgIGZpbGU6Ly9BV1NJb1RQeXRob25TREsvY29yZS9wcm90b2NvbC9wYWhvL2NsaWVudC5weTtlbmRsaW5lPTE0O21kNT01YTNjOGExYTRiYjcxYmQ5MzRmNDUwZWNmZjk3MmFkOSBcCisiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJlNjc4MWY2YzQyYmJjNTQ3ZDUwOGQ2ZmE2NzIwYWM4ZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI2YjI4NjVkNGY1MTg3OTRiOTZhODM0ZmM4MWI1Njg0MjhkYWEwZWY5MjAzN2RhMmU5Mjg4YjRhZjVkOGRkNzM2IgorU1JDX1VSSVttZDVzdW1dID0gIjk3ZThjZjBkNDBlZjM3NjVkOTc5YzE5YjUzNGE3MTZkIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImQ2OGNiZmYzOTYxNDNlODM3YjRjMjNiNjYyMWQzYjdhZTM3NDI4MWFmYzc1ZWVkOGU1MWEyODYyNWQ5MTI1YmEiCiAKIGluaGVyaXQgcHlwaQogCiBQWVBJX1BBQ0tBR0UgPSAiQVdTSW9UUHl0aG9uU0RLIgogCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICAgICAgaW5zdGFsbCAtZCAtbTA3NTUgJHtEfSR7ZGF0YWRpcn0vJHtCUE59L2V4YW1wbGVzCisgICAgICAgIGNwIC0tcHJlc2VydmU9bW9kZSx0aW1lc3RhbXBzIC1SICR7U30vc2FtcGxlcy8qICR7RH0ke2RhdGFkaXJ9LyR7QlBOfS9leGFtcGxlcworICAgICAgICAjIHRoaXMgcmVxdWlyZXMgdGhlIGZ1bGwgYmxvd24gQVdTIFB5dGhvbiBTREsKKyAgICAgICAgcm0gLXIgJHtEfSR7ZGF0YWRpcn0vJHtCUE59L2V4YW1wbGVzL2Jhc2ljUHViU3ViCit9CisKK1BBQ0tBR0VTID0rICIke1BOfS1leGFtcGxlcyIKKwogUkRFUEVORFNfJHtQTn0gKz0gIiBcCi0gICAgJHtQWVRIT05fUE59LXB5b3BlbnNzbCBcCisgICAgJHtQWVRIT05fUE59LWNyeXB0IFwKKyAgICAke1BZVEhPTl9QTn0tZGF0ZXRpbWUgXAorICAgICR7UFlUSE9OX1BOfS1pbyBcCiAgICAgJHtQWVRIT05fUE59LWpzb24gXAorICAgICR7UFlUSE9OX1BOfS1sb2dnaW5nIFwKKyAgICAke1BZVEhPTl9QTn0tbWF0aCBcCisgICAgJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCisgICAgJHtQWVRIT05fUE59LW51bWJlcnMgXAorICAgICR7UFlUSE9OX1BOfS10aHJlYWRpbmcgXAogIgorUkRFUEVORFNfJHtQTn0tZXhhbXBsZXMgKz0gIiR7UE59IgorCitGSUxFU18ke1BOfS1leGFtcGxlcyA9ICIke2RhdGFkaXJ9LyR7QlBOfS9leGFtcGxlcyIKIAogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXdzLWlvdC1kZXZpY2Utc2RrLXB5dGhvbl8xLjIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF3cy1pb3QtZGV2aWNlLXNkay1weXRob25fMS4yLjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyYWU5NzguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXdzLWlvdC1kZXZpY2Utc2RrLXB5dGhvbl8xLjIuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotaW5oZXJpdCBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1hd3MtaW90LWRldmljZS1zZGstcHl0aG9uLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYXdzLWlvdC1kZXZpY2Utc2RrLXB5dGhvbl8xLjMuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF3cy1pb3QtZGV2aWNlLXNkay1weXRob25fMS4zLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkwZTk3MwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWF3cy1pb3QtZGV2aWNlLXNkay1weXRob25fMS4zLjEuYmIKQEAgLTAsMCArMSw0IEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWF3cy1pb3QtZGV2aWNlLXNkay1weXRob24uaW5jCisKK1JERVBFTkRTXyR7UE59LWV4YW1wbGVzICs9ICIke1BZVEhPTl9QTn0tYXJncGFyc2UiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iYWJlbC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iYWJlbC5pbmMKaW5kZXggNWU2Y2EzZC4uNGRjYjI1NSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmFiZWwuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJhYmVsLmluYwpAQCAtMyw4ICszLDggQEAKIExJQ0VOU0UgPSAiQlNEIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZTZlZWFhYmM5MmNmYzJkMDNmNTNlNzg5MzI0ZDcyOTIiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI2MDIyOGIzY2U5M2EyMDMzNTcxNThiOTA5YWZlOGFlMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI2MDA3ZGFmNzE0ZDBjZDU1MjRiYmU0MzZlMmQ0MmIzYzIwZTY4ZGE2NjI4OTU1OTM0MWU0OGQyY2Q2ZDI1ODExIgorU1JDX1VSSVttZDVzdW1dID0gIjE1MmE2YjE3ZmU0MTEwYjk1Njc1YWNlYjlhZjlmYWIyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjhjZTRjYjZmZGQ0MzkzZWRkMzIzMjI3Y2JhM2EwNzdiY2ViMmE2Y2U1MjAxYzkwMmM2NWU3MzAwNDZmNDFmMTQiCiAKIFBZUElfUEFDS0FHRSA9ICJCYWJlbCIKIApAQCAtMTMsOCArMTMsMTMgQEAKIENMRUFOQlJPS0VOID0gIjEiCiAKIFJERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1jb2RlY3MgXAorICAgICR7UFlUSE9OX1BOfS1kaWZmbGliIFwKKyAgICAke1BZVEhPTl9QTn0tZGlzdHV0aWxzIFwKKyAgICAke1BZVEhPTl9QTn0tbmV0c2VydmVyIFwKICAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCiAgICAgJHtQWVRIT05fUE59LXBpY2tsZSBcCiAgICAgJHtQWVRIT05fUE59LXB5dHogXAorICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCiAgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCiAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iYWJlbF8yLjUuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJhYmVsXzIuNS4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMGVhZGNkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJhYmVsXzIuNS4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1pbmhlcml0IHNldHVwdG9vbHMKLXJlcXVpcmUgcHl0aG9uLWJhYmVsLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmFiZWxfMi41LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iYWJlbF8yLjUuMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2MxNjZlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmFiZWxfMi41LjMuYmIKQEAgLTAsMCArMSw2IEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWJhYmVsLmluYworCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iY3J5cHQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmNyeXB0LmluYwppbmRleCA2NjdhM2ZiLi40NDkwOTY5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iY3J5cHQuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJjcnlwdC5pbmMKQEAgLTQsMTIgKzQsMTQgQEAKIAogREVQRU5EUyArPSAiJHtQWVRIT05fUE59LWNmZmktbmF0aXZlIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiMjBkYThiNDA3OTBjYWFkOTljNDA4NmRiYTUzMzE1NGIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjY0NWM4ZDBhZDg0NTMwOGRlM2ViOWJlOThiNmZkMjJhNDZlYzU0MTJiZmM2NjRhNDIzZTQxMWNkZDhmNTQ4OCIKK1NSQ19VUklbbWQ1c3VtXSA9ICI4NDA4YWJjOTc0NDQ2ZTY0ODYyYTk3NDIxMDRlOTdiNiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2N2VkMWEzNzRjOTE1NWVjMDg0MDIxNGNlODA0NjE2ZGU0OWMzZGY5YzViYzY2NzQwNjg3YzFjOWIxY2Q5ZThkIgogCiBpbmhlcml0IHB5cGkKIAogUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICJcCiAgICAgJHtQWVRIT05fUE59LWNmZmkgXAorICAgICR7UFlUSE9OX1BOfS1jdHlwZXMgXAorICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCiAgICAgJHtQWVRIT05fUE59LXNpeCBcCiAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iY3J5cHRfMy4xLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iY3J5cHRfMy4xLjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0MzMzNTQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmNyeXB0XzMuMS4zLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1pbmhlcml0IHNldHVwdG9vbHMKLXJlcXVpcmUgcHl0aG9uLWJjcnlwdC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJjcnlwdF8zLjEuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJjcnlwdF8zLjEuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTM2YWE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmNyeXB0XzMuMS40LmJiCkBAIC0wLDAgKzEsNiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1iY3J5cHQuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmVoYXZlXzEuMi41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmVoYXZlXzEuMi41LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDFhNzlkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJlaGF2ZV8xLjIuNS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVNVTU1BUlkgPSAiQSBiZWhhdmlvci1kcml2ZW4gZGV2ZWxvcG1lbnQgZnJhbWV3b3JrLCBQeXRob24gc3R5bGUiCi1MSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWQ5NTA0MzllOGVhNmVkMjMzZTQyODhmNWUxYTQ5YzA2IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiM2FmNGJjMjg4NmQyYmU5ODJlNDFiZmFiYTYxZGEzYmMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiODFiNzMxYWM1MTg3ZTMxZTRhYWQyNTk0OTQ0ZmE5MTQ5NDM2ODNhOTgxODMyMDg0NmQwMzdjNWViZDZkNWQwYiIKLQotUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbi1kaWZmbGliIHB5dGhvbi1zZXR1cHRvb2xzIHB5dGhvbi1wa2d1dGlsIHB5dGhvbi1taXNjIHB5dGhvbi1hcmdwYXJzZSBweXRob24teG1sIHB5dGhvbi1pbXBvcnRsaWIgcHl0aG9uLWVudW0zNCBweXRob24tcGFyc2UgcHl0aG9uLXBhcnNlLXR5cGUgcHl0aG9uLXNpeCIKLQotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJlaGF2ZV8xLjIuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJlaGF2ZV8xLjIuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Nzk3MzAyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmVoYXZlXzEuMi42LmJiCkBAIC0wLDAgKzEsMTAgQEAKK1NVTU1BUlkgPSAiQSBiZWhhdmlvci1kcml2ZW4gZGV2ZWxvcG1lbnQgZnJhbWV3b3JrLCBQeXRob24gc3R5bGUiCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWQ5NTA0MzllOGVhNmVkMjMzZTQyODhmNWUxYTQ5YzA2IgorCitTUkNfVVJJW21kNXN1bV0gPSAiM2YwNWM4NTlhMWM0NWY1ZWQzM2U5MjU4MTdhZDg4N2QiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjk2NjIzMjdhYTUzMjk0YzEzNTFiMGE5YzM2OTA5M2NjZWMxZDIxMDI2ZjA1MGMzYmQ5YjNlNWNjY2Y4MWE4NiIKKworUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbi1kaWZmbGliIHB5dGhvbi1zZXR1cHRvb2xzIHB5dGhvbi1wa2d1dGlsIHB5dGhvbi1taXNjIHB5dGhvbi1hcmdwYXJzZSBweXRob24teG1sIHB5dGhvbi1lbnVtMzQgcHl0aG9uLXBhcnNlIHB5dGhvbi1wYXJzZS10eXBlIHB5dGhvbi1zaXgiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iaXRhcnJheS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1iaXRhcnJheS5pbmMKaW5kZXggN2I2ZTBkMS4uMzhhMjJmNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYml0YXJyYXkuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJpdGFycmF5LmluYwpAQCAtOCw0ICs4LDQgQEAKIAogaW5oZXJpdCBweXBpCiAKLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlc2RrIgorQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmxpbmtlci5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ibGlua2VyLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWYzOTA4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmxpbmtlci5pbmMKQEAgLTAsMCArMSw3IEBACitERVNDUklQVElPTiA9ICJGYXN0LCBzaW1wbGUgb2JqZWN0LXRvLW9iamVjdCBhbmQgYnJvYWRjYXN0IHNpZ25hbGluZy4iCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT05NDZkN2U4OWFmNmY3NzMzYWVhZWJlZDU2MzVkMjY4MiIKKworU1JDX1VSSVttZDVzdW1dID0gIjhiMzcyMjM4MWY4M2MyODEzYzUyZGUzMDE2YjY4ZDMzIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ3MWFlZTI1ZjM5OTJiZDMyNWFmYTM3NzJmMTA2M2RiZGJiY2E5NDdhMDQxYjhiODk0NjZkYzAwZDYwNmY4YjYiCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWJsaW5rZXJfMS40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmxpbmtlcl8xLjQuYmIKaW5kZXggMGNlMTQxZi4uYmM0MTY0ZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmxpbmtlcl8xLjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tYmxpbmtlcl8xLjQuYmIKQEAgLTEsOCArMSwyIEBACi1ERVNDUklQVElPTiA9ICJGYXN0LCBzaW1wbGUgb2JqZWN0LXRvLW9iamVjdCBhbmQgYnJvYWRjYXN0IHNpZ25hbGluZy4iCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT05NDZkN2U4OWFmNmY3NzMzYWVhZWJlZDU2MzVkMjY4MiIKLQotU1JDX1VSSVttZDVzdW1dID0gIjhiMzcyMjM4MWY4M2MyODEzYzUyZGUzMDE2YjY4ZDMzIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ3MWFlZTI1ZjM5OTJiZDMyNWFmYTM3NzJmMTA2M2RiZGJiY2E5NDdhMDQxYjhiODk0NjZkYzAwZDYwNmY4YjYiCi0KIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1ibGlua2VyLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2FuLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNhbi5pbmMKaW5kZXggMWRiYzgwOS4uYTcxYzQ3YiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2FuLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYW4uaW5jCkBAIC0zLDcgKzMsMTUgQEAKIExJQ0VOU0UgPSAiTEdQTHYzIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTM4MTM4YmFhMTAwZDcyNTk5MzQ1OTA4NTBiYzA0MDZlIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiYjJhMTY0ODg3YzFjNmEyYTI0OTBiNWFmYjM2ZTM2ZGIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjk2MWI2Y2U3NWE3ZjA4YjU4NmY0ZDJjYWU4Y2RjNDA5ODgxNzMxYjg1MWZjNDA1ZmEyMWNiMTZiYWQwMGQ4NyIKK1NSQ19VUklbbWQ1c3VtXSA9ICIzMzEwZjBhYTJhODQ5MmQwZmY2MTRlY2Y2MzZlYzhhOCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI0YTVjMDFkZDY3ZmVlZGEzNWY4OGU2YzEyZWExNGFjOGNhYmQ0MjZiOWJlMGNjNWY5ZmQwODNmZTkwYTlkYmZjIgogCiBQWVBJX1BBQ0tBR0U9InB5dGhvbi1jYW4iCisKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiXAorICAgICR7UFlUSE9OX1BOfS1jdHlwZXMgXAorICAgICR7UFlUSE9OX1BOfS1sb2dnaW5nIFwKKyAgICAke1BZVEhPTl9QTn0tbWlzYyBcCisgICAgJHtQWVRIT05fUE59LW5ldHNlcnZlciBcCisgICAgJHtQWVRIT05fUE59LXNxbGl0ZTMgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2FuXzIuMC4wYjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYW5fMi4wLjBiMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM4MWE5ZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYW5fMi4wLjBiMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotcmVxdWlyZSBweXRob24tY2FuLmluYwotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbi1zcWxpdGUzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2FuXzIuMS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2FuXzIuMS4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwZWRiNjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYW5fMi4xLjAuYmIKQEAgLTAsMCArMSw4IEBACityZXF1aXJlIHB5dGhvbi1jYW4uaW5jCitpbmhlcml0IHB5cGkgc2V0dXB0b29scworCitSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tYXJncGFyc2UgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyAgICAke1BZVEhPTl9QTn0temxpYiBcCisiICAgIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2Fzc2FuZHJhLWRyaXZlci5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYXNzYW5kcmEtZHJpdmVyLmluYwppbmRleCBhNTIyZTY3Li4xNjQ4ZDNlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYXNzYW5kcmEtZHJpdmVyLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jYXNzYW5kcmEtZHJpdmVyLmluYwpAQCAtOCw4ICs4LDggQEAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTJlZTQxMTEyYTQ0ZmU3MDE0ZGNlMzNlMjY0NjhiYTkzIgogU1JDTkFNRSA9ICJjYXNzYW5kcmEtZHJpdmVyIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiMTY1OWIwNzRlMTBjNjEzZTViYTFjZGY5Mjk3NGE1N2EiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjQzYmVkMGZhYzA4ZWU5MTYzMGYwZjM1NTU2YmI2MmMzYjRiMDA3YzIwZDRlNmU4ZDM0OWY3NjllYTY0ODE1MCIKK1NSQ19VUklbbWQ1c3VtXSA9ICI1YzhiNGEzYWRmYzQ4MTgwZThlYzM4YjhjNGU5OTZmZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2MWI2NzBmYjJiYTk1ZDUxZDkxZmE3YjU4OWFhZTM2NjZkZjQ5NDcxM2Y1ZDFlZDc4YmI1YzUxMDc3OGQ3N2YwIgogCiBESVNUVVRJTFNfQlVJTERfQVJHUyArPSAiIFwKICAgICAtLW5vLWxpYmV2IFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNlcnRpZmkuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2VydGlmaS5pbmMKaW5kZXggZTU1MGY3ZS4uMjZkZjVjMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2VydGlmaS5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2VydGlmaS5pbmMKQEAgLTcsNyArNyw3IEBACiBMSUNFTlNFID0gIklTQyIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWY3N2Y2MWQxNGVlNmZlYWM0MjI4ZDNlYmQyNmNjMWYxIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNDhlODM3MGRhOGIzNzBhMTZlMjIzZWU5YzdiNmIwNjMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDA1MjNkMmVmYjYwNTIzZTExM2I0NDYwMjI5OGYwOTYwZTkwMDM4OGNmM2JiNjA0M2Y2NDVjZjU3ZWE5ZTNmNSIKK1NSQ19VUklbbWQ1c3VtXSA9ICIwNjhmZDVjM2M2OTBhZTQ3NTA0YjNlMGJmNGU1NmM0YyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlZGJjM2YyMDM0MjdlZWY1NzFmNzlhNzY5MmJiMTYwYTJiMGY3Y2NhYTMxOTUzZTk5YmQxN2UzMDdjZjYzZjdkIgogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jZXJ0aWZpXzIwMTcuNy4yNy4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2VydGlmaV8yMDE4LjEuMTguYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNlcnRpZmlfMjAxNy43LjI3LjEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNlcnRpZmlfMjAxOC4xLjE4LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jZmZpLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNmZmkuaW5jCmluZGV4IDhkY2RiNjMuLmU2MDcxZWUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNmZmkuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNmZmkuaW5jCkBAIC00LDExICs0LDEzIEBACiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT01Njc3ZTJmZGJmN2NkZGE2MWQ2ZGQyYjU3ZGY1NDdiZiIKIERFUEVORFMgKz0gImxpYmZmaSAke1BZVEhPTl9QTn0tcHljcGFyc2VyIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiYTczMTQ4NzMyNGI1MDFjODI5NTIyMWI2MjlkM2Y1ZjMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYWI4N2RkOTFjMGM0MDczNzU4ZDA3MzM0YzFlNWY3MTJjZThmZTQ4ZjAwN2I4NmY4MjM4NzczOTYzZWU3MDBhNiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJhYzg0OTJmNGFkOTUyMzYwNzM3NDEzZTgyZDY2MTkwOCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlOTBmMTc5ODBlNmFiMGYzYzJmMzczMGU1NmQxZmU5YmNiYTE4OTFlZWVhNTg5NjZlODlkMzUyNDkyY2M3NGY0IgogCiBSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tY3R5cGVzIFwKICAgICAke1BZVEhPTl9QTn0taW8gXAorICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCiAiCiAKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNmZmlfMS4xMS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2ZmaV8xLjExLjIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjZDYyZDEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2ZmaV8xLjExLjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLXJlcXVpcmUgcHl0aG9uLWNmZmkuaW5jCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2ZmaV8xLjExLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jZmZpXzEuMTEuNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzY2N2I4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2ZmaV8xLjExLjUuYmIKQEAgLTAsMCArMSw2IEBACityZXF1aXJlIHB5dGhvbi1jZmZpLmluYworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2hhcmRldC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jaGFyZGV0LmluYwppbmRleCA2MDM1NDg4Li42MzA1Mjk5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jaGFyZGV0LmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jaGFyZGV0LmluYwpAQCAtMTEsMyArMTEsMTMgQEAKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICI4NGFiOTJlZDFjNGQ0ZjE2OTE2ZTA1OTA2YjZiNzVhNmMwZmI1ZGI4MjFjYzY1ZTcwY2JkNjRhM2UyYTVlYWFlIgogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCisKK1BBQ0tBR0VTID0rICIke1BOfS1jbGkiCitSREVQRU5EU18ke1BOfS1jbGkgPSAiJHtQTn0gIgorRklMRVNfJHtQTn0tY2xpICs9ICIgXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L2NoYXJkZXQvY2xpIFwKKyIKKworUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1sb2dnaW5nIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNoYXJkZXRfMy4wLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jaGFyZGV0XzMuMC40LmJiCmluZGV4IGI3YTQ2ZTkuLjNiNmZlZWUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNoYXJkZXRfMy4wLjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY2hhcmRldF8zLjAuNC5iYgpAQCAtMSwyICsxLDQgQEAKIGluaGVyaXQgc2V0dXB0b29scwogcmVxdWlyZSBweXRob24tY2hhcmRldC5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1hcmdwYXJzZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNtZDJfMC43LjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jbWQyXzAuNy43LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTFlZjVmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNtZDJfMC43LjcuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1TVU1NQVJZID0gIkV4dHJhIGZlYXR1cmVzIGZvciBzdGFuZGFyZCBsaWJyYXJ5J3MgY21kIG1vZHVsZSIKLUhPTUVQQUdFID0gImh0dHA6Ly9wYWNrYWdlcy5weXRob24ub3JnL2NtZDIvIgotTElDRU5TRSA9ICJNSVQiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9zZXR1cC5weTtiZWdpbmxpbmU9NDk7ZW5kbGluZT00OTttZDU9MGYxM2M5Y2ZjNzUyODgyMjNjZjdlZGQyZjNiOTg1YTIiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI1NzZiNzhhZGQ2ZDY1MmI0OGRjZjkzNjJjZWNlODhlZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJiNGUyZmI5ZmM2NTZhZGNjYzRkMDFkZmQ1NWFiNWE5YjA1ODkwZTk2MTk1MDU0M2Y2OTJlNzg4NTcyNWMyZDcyIgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1SREVQRU5EU18ke1BOfSArPSAiXAotICAgICR7UFlUSE9OX1BOfS1kb2N0ZXN0IFwKLSAgICAke1BZVEhPTl9QTn0tcHlwYXJzaW5nIFwKLSAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAotICAgICR7UFlUSE9OX1BOfS1zaXggXAotICAgICR7UFlUSE9OX1BOfS1zdHJpbmdvbGQgXAotICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKLSAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKLSAgICAke1BZVEhPTl9QTn0tdGV4dHV0aWxzIFwKLSAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jbWQyXzAuOC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY21kMl8wLjguMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDVhYjk4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY21kMl8wLjguMS5iYgpAQCAtMCwwICsxLDIxIEBACitTVU1NQVJZID0gIkV4dHJhIGZlYXR1cmVzIGZvciBzdGFuZGFyZCBsaWJyYXJ5J3MgY21kIG1vZHVsZSIKK0hPTUVQQUdFID0gImh0dHA6Ly9wYWNrYWdlcy5weXRob24ub3JnL2NtZDIvIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9zZXR1cC5weTtiZWdpbmxpbmU9NTE7ZW5kbGluZT01MTttZDU9MGYxM2M5Y2ZjNzUyODgyMjNjZjdlZGQyZjNiOTg1YTIiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI3MDFiOTE2ZmZhYzk5MTM3YmVhNDEzMjA1MTA2Zjk5MyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkMDk5NzZmOWFkMjMyNzg4M2MyZDA3YjVhY2I0MmU2NmFkNTJiMTdlMzUyODczYzIyMDQxZWQxMjRiZmU4YWJhIgorCitpbmhlcml0IHB5cGkgc2V0dXB0b29scworCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1kb2N0ZXN0IFwKKyAgICAke1BZVEhPTl9QTn0tcHlwYXJzaW5nIFwKKyAgICAke1BZVEhPTl9QTn0tcHlwZXJjbGlwIFwKKyAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAorICAgICR7UFlUSE9OX1BOfS1zaXggXAorICAgICR7UFlUSE9OX1BOfS1zdHJpbmdvbGQgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKKyAgICAke1BZVEhPTl9QTn0tdGV4dHV0aWxzIFwKKyAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jb25maWdwYXJzZXIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY29uZmlncGFyc2VyLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWZiODU4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY29uZmlncGFyc2VyLmluYwpAQCAtMCwwICsxLDExIEBACitTVU1NQVJZID0gIlRoaXMgbW9kdWxlIHByb3ZpZGVzIHRoZSBDb25maWdQYXJzZXIgY2xhc3Mgd2hpY2ggaW1wbGVtZW50cyBhIGJhc2ljIGNvbmZpZ3VyYXRpb24gbGFuZ3VhZ2Ugd2hpY2ggcHJvdmlkZXMgYSBzdHJ1Y3R1cmUgc2ltaWxhciB0byB3aGF04oCZcyBmb3VuZCBpbiBNaWNyb3NvZnQgV2luZG93cyBJTkkgZmlsZXMuIgorU0VDVElPTiA9ICJkZXZlbC9weXRob24iCitIT01FUEFHRSA9ICJodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvY29uZmlncGFyc2VyLmh0bWwiCitMSUNFTlNFID0gIk1JVCIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87YmVnaW5saW5lPTg7ZW5kbGluZT04O21kNT04MjI3MTgwMTI2Nzk3YTAxNDhmOTRmNDgzZjNlMTQ4OSIKKworU1JDX1VSSVttZDVzdW1dID0gImNmZGQ5MTVhNWI3YTZjMDk5MTdhNjRhNTczMTQwNTM4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjUzMDhiNDcwMjFiYzIzNDA5NjVjMzcxZjBmMDU4Y2M2OTcxYTA0NTAyNjM4ZDQyNDQyMjVjNDlkODBkYjI3M2EiCisKK2luaGVyaXQgcHlwaQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY29uZmlncGFyc2VyXzMuNS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY29uZmlncGFyc2VyXzMuNS4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5ZjA0NWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jb25maWdwYXJzZXJfMy41LjAuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWNvbmZpZ3BhcnNlci5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNyeXB0b2dyYXBoeS12ZWN0b3JzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNyeXB0b2dyYXBoeS12ZWN0b3JzLmluYwppbmRleCBlOWU0MDE5Li4wMGJiODdiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jcnlwdG9ncmFwaHktdmVjdG9ycy5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5LXZlY3RvcnMuaW5jCkBAIC04LDggKzgsOCBAQAogICAgICR7UFlUSE9OX1BOfS1jcnlwdG9ncmFwaHkgXAogIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiMWRiNGMwOTA2MmEzYThlMWUyZDFmNWUzZTRkNzUyZDciCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiYmViODMxYWE3MzY2M2EyMjRmNGQ3NTIwNDgzZWQwMmRhNTQ0NTMzYmIwM2IyNmVjMDdhNWY5YTBkZDA5NDFlMSIKK1NSQ19VUklbbWQ1c3VtXSA9ICJlZjExNWI4NzBjYzhkOGI5ZjBmNDE4OWI1MTJiYzE3MCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3OGM0YjRmM2Y4NDg1M2VhNWQwMzhlMmY1M2QzNTUyMjlkZDgxMTlmZTljZjk0OWMzZTQ5N2M4NWM3NjBhNWNhIgogCiBQWVBJX1BBQ0tBR0UgPSAiY3J5cHRvZ3JhcGh5X3ZlY3RvcnMiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNyeXB0b2dyYXBoeS12ZWN0b3JzXzIuMC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5LXZlY3RvcnNfMi4xLjQuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNyeXB0b2dyYXBoeS12ZWN0b3JzXzIuMC4zLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jcnlwdG9ncmFwaHktdmVjdG9yc18yLjEuNC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNyeXB0b2dyYXBoeS5pbmMKaW5kZXggNGJhM2UzMi4uNGJlNzkwNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5LmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jcnlwdG9ncmFwaHkuaW5jCkBAIC0xMCw4ICsxMCw4IEBACiAgICAgJHtQWVRIT05fUE59LXNpeCBcCiAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIyNGNiZGFiM2ZkYTIyYmUzMWRkM2FlZjI4MDhmNWQyZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkMDRiYjI0MjUwODZjM2ZlODZmN2JjNDg5MTUyOTBiMTNlNzk4NDk3ODM5ZmJiMThhYjdmNmRmZmNmOThjYzNhIgorU1JDX1VSSVttZDVzdW1dID0gIjlmMzlkNGQ4ZjJiMDVmMjk1ZmEwZmY1MjQ3NWVjNGYyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImU0ZDk2NzM3MWM1YjZiMmU2Nzg1NTA2NjQ3MWQ4NDRjNWQ1MmQyMTBjMzZjMjhkNDlhODUwN2I5NmUyYzUyOTEiCiAKIFJERVBFTkRTXyR7UE59ICs9ICIgXAogICAgICR7UFlUSE9OX1BOfS1jZmZpIFwKQEAgLTI4LDcgKzI4LDYgQEAKICAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCiAgICAgJHtQWVRIT05fUE59LWFzbjFjcnlwdG8gXAogICAgICR7UFlUSE9OX1BOfS1weWNwYXJzZXIgXAotICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKICAgICAke1BZVEhPTl9QTn0tc2V0dXB0b29scyBcCiAgICAgJHtQWVRIT05fUE59LXNpeCBcCiAgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCkBAIC01NSw2ICs1NCw0IEBACiAgICAgJHtsaWJkaXJ9LyR7UFlUSE9OX1BOfTIuNy9zaXRlLXBhY2thZ2VzLyR7U1JDTkFNRX0vaGF6bWF0L2JpbmRpbmdzLy5kZWJ1ZyBcCiAiCiAKLUxERkxBR1NfYXBwZW5kID0gIiAtcHRocmVhZCIKLQogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5XzIuMC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5XzIuMC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNWIxZTBiLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWNyeXB0b2dyYXBoeV8yLjAuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1jcnlwdG9ncmFwaHkuaW5jCi0KLVNSQ19VUkkgKz0gIiBcCi0gICAgZmlsZTovL3J1bi1wdGVzdCBcCi0iCi0KLURFUEVORFMgKz0gIiBcCi0gICAgJHtQWVRIT05fUE59LWVudW0zNCBcCi0iCi0KLVJERVBFTkRTXyR7UE59ICs9ICIgXAotICAgICR7UFlUSE9OX1BOfS1lbnVtMzQgXAotICAgICR7UFlUSE9OX1BOfS1pcGFkZHJlc3MgXAotIgotCi1SREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIiBcCi0gICAgJHtQWVRIT05fUE59LWVudW0zNCBcCi0gICAgJHtQWVRIT05fUE59LWlwYWRkcmVzcyBcCi0gICAgJHtQWVRIT05fUE59LWNvbnRleHRsaWIgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5XzIuMS40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3J5cHRvZ3JhcGh5XzIuMS40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljMmY4ODQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jcnlwdG9ncmFwaHlfMi4xLjQuYmIKQEAgLTAsMCArMSwyMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWNyeXB0b2dyYXBoeS5pbmMKKworU1JDX1VSSSArPSAiIFwKKyAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKKyIKKworREVQRU5EUyArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tZW51bTM0IFwKKyIKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWVudW0zNCBcCisgICAgJHtQWVRIT05fUE59LWlwYWRkcmVzcyBcCisiCisKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tZW51bTM0IFwKKyAgICAke1BZVEhPTl9QTn0taXBhZGRyZXNzIFwKKyAgICAke1BZVEhPTl9QTn0tY29udGV4dGxpYiBcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3l0aG9uLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWN5dGhvbi5pbmMKaW5kZXggNTcyY2I5Ni4uNWQzYjlkNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3l0aG9uLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jeXRob24uaW5jCkBAIC01LDE3ICs1LDMxIEBACiBMSUNFTlNFID0gIkFwYWNoZS0yLjAiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9ZTIzZmFkZDZjZWVmOGM2MThmYzFjNjUxOTFkODQ2ZmEiCiBQWVBJX1BBQ0tBR0UgPSAiQ3l0aG9uIgotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJiOTM3NTBiMzQzODJiMDI1ZDY3OGJlYTgxOWI3NDkxYiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJlNjg0MGEyYmEyNzA0ZjRmZmI0MGU0NTRjMzZmNzNhZWI0NDBhNDAwNTQ1M2VlOGQ3ZmY2YTAwZDgxMmJhMTc2IgorU1JDX1VSSVttZDVzdW1dID0gIjBlMDU2OGQ2YmVkNGIwOWFkMDFhZmUwYTM4ODA1MzA1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjYzNGUyZjEwZmM4ZDAyNmM2MzNjZmZhY2I0NWNkOGY0NTgyMTQ5ZmE2OGUxNDI4MTI0ZTc2MmRiYzU2NmU2OGEiCiAKIGluaGVyaXQgcHlwaQogCiBSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tbWlzYyBcCiAgICAgJHtQWVRIT05fUE59LW5ldHNlcnZlciBcCi0gICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorICAgICR7UFlUSE9OX1BOfS1wa2d1dGlsIFwKKyAgICAke1BZVEhPTl9QTn0tcHlwYXJzaW5nIFwKKyAgICAke1BZVEhPTl9QTn0tc2V0dXB0b29scyBcCiAgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKKyAgICAke1BZVEhPTl9QTn0teG1sIFwKKyIKKworUkRFUEVORFNfJHtQTn1fY2xhc3MtbmF0aXZlc2RrICs9ICJcCisgICAgbmF0aXZlc2RrLSR7UFlUSE9OX1BOfS1taXNjIFwKKyAgICBuYXRpdmVzZGstJHtQWVRIT05fUE59LW5ldHNlcnZlciBcCisgICAgbmF0aXZlc2RrLSR7UFlUSE9OX1BOfS1wa2d1dGlsIFwKKyAgICBuYXRpdmVzZGstJHtQWVRIT05fUE59LXB5cGFyc2luZyBcCisgICAgbmF0aXZlc2RrLSR7UFlUSE9OX1BOfS1zZXR1cHRvb2xzIFwKKyAgICBuYXRpdmVzZGstJHtQWVRIT05fUE59LXNoZWxsIFwKKyAgICBuYXRpdmVzZGstJHtQWVRIT05fUE59LXhtbCBcCiAiCiAKIGRvX2luc3RhbGxfYXBwZW5kKCkgewpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3l0aG9uXzAuMjcuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWN5dGhvbl8wLjI3LjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkZjk0OTAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3l0aG9uXzAuMjcuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotaW5oZXJpdCBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1jeXRob24uaW5jCi0KLVVQU1RSRUFNX0NIRUNLX1VSSSA9ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL0N5dGhvbi8iCi1VUFNUUkVBTV9DSEVDS19SRUdFWCA9ICIvQ3l0aG9uLyg/UDxwdmVyPihcZCtbXC5cLV9dKikrKSIKLQotUkRFUEVORFNfJHtQTn0gKz0gIlwKLSAgICBweXRob24tZGlzdHJpYnV0ZSBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1jeXRob25fMC4yOC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3l0aG9uXzAuMjguMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODAzYTZlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tY3l0aG9uXzAuMjguMi5iYgpAQCAtMCwwICsxLDEwIEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWN5dGhvbi5pbmMKKworVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvQ3l0aG9uLyIKK1VQU1RSRUFNX0NIRUNLX1JFR0VYID0gIi9DeXRob24vKD9QPHB2ZXI+KFxkK1tcLlwtX10qKSspIgorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1kaXN0cmlidXRlIFwKKyAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYXRldXRpbC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYXRldXRpbC5pbmMKaW5kZXggY2E1MTA1OS4uMzMzYjVlMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGF0ZXV0aWwuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRhdGV1dGlsLmluYwpAQCAtMSwxMSArMSwxMSBAQAogU1VNTUFSWSA9ICJFeHRlbnNpb25zIHRvIHRoZSBzdGFuZGFyZCBQeXRob24gZGF0ZXRpbWUgbW9kdWxlIgogREVTQ1JJUFRJT04gPSAiVGhlIGRhdGV1dGlsIG1vZHVsZSBwcm92aWRlcyBwb3dlcmZ1bCBleHRlbnNpb25zIHRvIHRoZSBkYXRldGltZSBtb2R1bGUgYXZhaWxhYmxlIGluIHRoZSBQeXRob24gc3RhbmRhcmQgbGlicmFyeS4iCiBIT01FUEFHRSA9ICJodHRwczovL2RhdGV1dGlsLnJlYWR0aGVkb2NzLm9yZyIKLUxJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MzFmNzJkNGNhZDM2NzVmYjA5MTUzN2I5YjJmMzJkZTAiCitMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSAmIEFwYWNoZS0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1lMzE1NWM3YmRjNzFmNjZlMDI2Nzg0MTFkMmFiZjk5NiIKIAotU1JDX1VSSVttZDVzdW1dID0gImRiMzhmNmI0NTExY2VmZDc2MDE0NzQ1YmIwY2M0NWE0IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjg5MWMzOGIyYTAyZjViYjFiZTNlNDc5Mzg2NmM4ZGY0OWM3ZDE5YmFhYmY5YzFiYWQ2MjU0N2UwYjQ4NjZhY2EiCitTUkNfVVJJW21kNXN1bV0gPSAiMDNhMDhjOGJjZjBhMmIyOWYxY2QyMWI5ZGU0ZDEyZmIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOWQ4MDc0YmU0Yzk5M2ZiZTQ5NDc4NzhjZTU5MzA1MmY3MWRhYzgyOTMyYTY3N2Q0OTE5NGQ4Y2U5Nzc4MDAyZSIKIAogUFlQSV9QQUNLQUdFID0gInB5dGhvbi1kYXRldXRpbCIKIGluaGVyaXQgcHlwaQpAQCAtMTQsNyArMTQsOCBAQAogRklMRVNfJHtQTn0tem9uZWluZm8gPSAiJHtsaWJkaXJ9LyR7UFlUSE9OX0RJUn0vc2l0ZS1wYWNrYWdlcy9kYXRldXRpbC96b25laW5mbyIKIAogUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ID0gIlwKLSAgICAke1BZVEhPTl9QTn0tY29yZSBcCiAgICAgJHtQWVRIT05fUE59LWRhdGV0aW1lIFwKKyAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCiAgICAgJHtQWVRIT05fUE59LXNpeCBcCi0gICAgIgorICAgICR7UFlUSE9OX1BOfS1zdHJpbmdvbGQgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGF0ZXV0aWxfMi42LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYXRldXRpbF8yLjcuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGF0ZXV0aWxfMi42LjEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRhdGV1dGlsXzIuNy4yLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYnVzXzEuMi40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGJ1c18xLjIuNC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjcxYjU1OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYnVzXzEuMi40LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotU1VNTUFSWSA9ICJQeXRob24gYmluZGluZ3MgZm9yIHRoZSBEQnVzIGludGVyLXByb2Nlc3MgY29tbXVuaWNhdGlvbiBzeXN0ZW0iCi1TRUNUSU9OID0gImRldmVsL3B5dGhvbiIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL1NvZnR3YXJlL2RidXMiCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTBiODMwNDdjZTllOTQ4YjY3YzBmYWNjNWYyMzM0NzZhIgotREVQRU5EUyA9ICJleHBhdCBkYnVzIGRidXMtZ2xpYiB2aXJ0dWFsL2xpYmludGwgcHl0aG9uLXB5cmV4LW5hdGl2ZSIKLQotU1JDX1VSSSA9ICJodHRwOi8vZGJ1cy5mcmVlZGVza3RvcC5vcmcvcmVsZWFzZXMvZGJ1cy1weXRob24vZGJ1cy1weXRob24tJHtQVn0udGFyLmd6IFwKLSIKLQotU1JDX1VSSVttZDVzdW1dID0gIjczNzJhNTg4YzgzYTcyMzJiNGUwODE1OWJmZDQ4ZmU1IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImUyZjFkNjg3MWY3NGZiYTIzNjUyZTUxZDEwODczZTU0ZjcxYWRhYjA1MjU4MzNjMTliYWQ5ZTk5YjFiMmY5Y2MiCi1TID0gIiR7V09SS0RJUn0vZGJ1cy1weXRob24tJHtQVn0iCi0KLWluaGVyaXQgZGlzdHV0aWxzLWJhc2UgYXV0b3Rvb2xzIHBrZ2NvbmZpZwotCi1QQUNLQUdFQ09ORklHID89ICIiCi1QQUNLQUdFQ09ORklHW2RvY3NdID0gIi0tZW5hYmxlLWh0bWwtZG9jcywtLWRpc2FibGUtaHRtbC1kb2NzLHB5dGhvbjMtZG9jdXRpbHMtbmF0aXZlIgotUEFDS0FHRUNPTkZJR1thcGktZG9jc10gPSAiLS1lbmFibGUtYXBpLWRvY3MsLS1kaXNhYmxlLWFwaS1kb2NzLHB5dGhvbjMtZG9jdXRpbHMtbmF0aXZlIHB5dGhvbjMtZXB5ZG9jLW5hdGl2ZSIKLQotZXhwb3J0IFNUQUdJTkdfTElCRElSCi1leHBvcnQgU1RBR0lOR19JTkNESVIKLQotUkRFUEVORFNfJHtQTn0gPSAicHl0aG9uLWlvIHB5dGhvbi1sb2dnaW5nIHB5dGhvbi1zdHJpbmdvbGQgcHl0aG9uLXRocmVhZGluZyBweXRob24teG1sIgotCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9wa2djb25maWciCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgICMgUmVtb3ZlIGZpbGVzIHRoYXQgY2xhc2ggd2l0aCBweXRob24zLWRidXM7IHRoZWlyIGNvbnRlbnQgaXMgc2FtZQotICAgIHJtICR7RH0ke2luY2x1ZGVkaXJ9L2RidXMtMS4wL2RidXMvZGJ1cy1weXRob24uaCAke0R9JHtsaWJkaXJ9L3BrZ2NvbmZpZy9kYnVzLXB5dGhvbi5wYwotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGJ1c18xLjIuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRidXNfMS4yLjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGYxOGNjYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRidXNfMS4yLjYuYmIKQEAgLTAsMCArMSwzMiBAQAorU1VNTUFSWSA9ICJQeXRob24gYmluZGluZ3MgZm9yIHRoZSBEQnVzIGludGVyLXByb2Nlc3MgY29tbXVuaWNhdGlvbiBzeXN0ZW0iCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL1NvZnR3YXJlL2RidXMiCitMSUNFTlNFID0gIk1JVCAmIEFGTC0yLjEgfCBHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIwMzI0MDUxODk5NGRmNmQ4Yzk3NDY3NTY3NWU1Y2E0IFwKKwkJICAgIGZpbGU6Ly9kYnVzLWdtYWluL0NPUFlJTkc7bWQ1PTA1YzNlYWNkNTBmNjliYjFkNThhZmVjNDYwYmFhZDU3ICIKK0RFUEVORFMgPSAiZXhwYXQgZGJ1cyBkYnVzLWdsaWIgdmlydHVhbC9saWJpbnRsIHB5dGhvbi1weXJleC1uYXRpdmUiCisKK1NSQ19VUkkgPSAiaHR0cDovL2RidXMuZnJlZWRlc2t0b3Aub3JnL3JlbGVhc2VzL2RidXMtcHl0aG9uL2RidXMtcHl0aG9uLSR7UFZ9LnRhci5neiBcCisiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIxY2UxZGRmMjU4MjA2MGY4Zjk3MTY1MmVhNTRjYzE3ZSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzMmYyOWMxNzE3MmNkYjljYjYxYzY4YjFmMWE3MWRmZTczNTE1MDZmYzgzMDg2OTAyOWM0NzQ0OWJkMDRmYWViIgorUyA9ICIke1dPUktESVJ9L2RidXMtcHl0aG9uLSR7UFZ9IgorCitpbmhlcml0IGRpc3R1dGlscy1iYXNlIGF1dG90b29scyBwa2djb25maWcKKworUEFDS0FHRUNPTkZJRyA/PSAiIgorUEFDS0FHRUNPTkZJR1tkb2NzXSA9ICItLWVuYWJsZS1odG1sLWRvY3MsLS1kaXNhYmxlLWh0bWwtZG9jcyxweXRob24zLWRvY3V0aWxzLW5hdGl2ZSIKK1BBQ0tBR0VDT05GSUdbYXBpLWRvY3NdID0gIi0tZW5hYmxlLWFwaS1kb2NzLC0tZGlzYWJsZS1hcGktZG9jcyxweXRob24zLWRvY3V0aWxzLW5hdGl2ZSBweXRob24zLWVweWRvYy1uYXRpdmUiCisKK2V4cG9ydCBTVEFHSU5HX0xJQkRJUgorZXhwb3J0IFNUQUdJTkdfSU5DRElSCisKK1JERVBFTkRTXyR7UE59ID0gInB5dGhvbi1pbyBweXRob24tbG9nZ2luZyBweXRob24tc3RyaW5nb2xkIHB5dGhvbi10aHJlYWRpbmcgcHl0aG9uLXhtbCIKKworRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vcGtnY29uZmlnIgorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICAjIFJlbW92ZSBmaWxlcyB0aGF0IGNsYXNoIHdpdGggcHl0aG9uMy1kYnVzOyB0aGVpciBjb250ZW50IGlzIHNhbWUKKyAgICBybSAke0R9JHtpbmNsdWRlZGlyfS9kYnVzLTEuMC9kYnVzL2RidXMtcHl0aG9uLmggJHtEfSR7bGliZGlyfS9wa2djb25maWcvZGJ1cy1weXRob24ucGMKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRidXNtb2NrLzAwMDEtQWRkLWZ1bmN0aW9uYWxpdHktdG8tYWRkLW93bi1vYmplY3RzLXRvLWludGVybmFsLW9iai5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRidXNtb2NrLzAwMDEtQWRkLWZ1bmN0aW9uYWxpdHktdG8tYWRkLW93bi1vYmplY3RzLXRvLWludGVybmFsLW9iai5wYXRjaAppbmRleCBmZGQwMGI2Li5jNGQ4MTc4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYnVzbW9jay8wMDAxLUFkZC1mdW5jdGlvbmFsaXR5LXRvLWFkZC1vd24tb2JqZWN0cy10by1pbnRlcm5hbC1vYmoucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGJ1c21vY2svMDAwMS1BZGQtZnVuY3Rpb25hbGl0eS10by1hZGQtb3duLW9iamVjdHMtdG8taW50ZXJuYWwtb2JqLnBhdGNoCkBAIC0xLDcgKzEsOCBAQAotRnJvbSBlZWJlMGY2NjQzNWM0ZDgyMWIwZjVmOTNmNjllZmUxN2I0YTM4NGMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBjNDQzNmZkNDJmMjkzNmU1ZmIwZjk1NDM0ZDA2ZTQ1YWE5OTU5Y2EwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogU2ltb24gQnVzY2ggPHNpbW9uLmJ1c2NoQGxnZS5jb20+CiBEYXRlOiBXZWQsIDkgQXByIDIwMTQgMTM6MTg6MzMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAxLzJdIEFkZCBmdW5jdGlvbmFsaXR5IHRvIGFkZCBvd24gb2JqZWN0cyB0byBpbnRlcm5hbCBvYmplY3QKK1N1YmplY3Q6IFtQQVRDSF0gQWRkIGZ1bmN0aW9uYWxpdHkgdG8gYWRkIG93biBvYmplY3RzIHRvIGludGVybmFsIG9iamVjdAorCiAgbGlzdAogCiBJbiBzb21lIGNhc2UgdGhlIHRlc3RzIG1pZ2h0IHdhbnQgdG8gY3JlYXRlIGR5bmFtaWNhbGx5IGRidXMgb2JqZWN0cyB3aGljaCBleHRlbmRlZApAQCAtOSwxNyArMTAsMTggQEAKIHJlZ2lzdGVyIHRob3NlIG9iamVjdHMgd2l0aCB0aGUgaW50ZXJuYWwgb2JqZWN0IG1hbmFnZXIgb2YgZGJ1c21vY2suCiAKIFNpZ25lZC1vZmYtYnk6IFNpbW9uIEJ1c2NoIDxzaW1vbi5idXNjaEBsZ2UuY29tPgorCiAtLS0KLSBkYnVzbW9jay9fX2luaXRfXy5weSAgIHwgICAgNCArKy0tCi0gZGJ1c21vY2svbW9ja29iamVjdC5weSB8ICAgIDggKysrKysrKysKKyBkYnVzbW9jay9fX2luaXRfXy5weSAgIHwgNCArKy0tCisgZGJ1c21vY2svbW9ja29iamVjdC5weSB8IDggKysrKysrKysKICAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9kYnVzbW9jay9fX2luaXRfXy5weSBiL2RidXNtb2NrL19faW5pdF9fLnB5Ci1pbmRleCBmNzk5Y2M3Li42NzE4YzA2IDEwMDY0NAoraW5kZXggOGE0ODJhYi4uM2Q1ZDcxYSAxMDA2NDQKIC0tLSBhL2RidXNtb2NrL19faW5pdF9fLnB5CiArKysgYi9kYnVzbW9jay9fX2luaXRfXy5weQogQEAgLTE0LDggKzE0LDggQEAgX19saWNlbnNlX18gPSAnTEdQTCAzKycKLSBfX3ZlcnNpb25fXyA9ICcwLjEwLjEnCisgX192ZXJzaW9uX18gPSAnMC4xNi43JwogIAogIGZyb20gZGJ1c21vY2subW9ja29iamVjdCBpbXBvcnQgKERCdXNNb2NrT2JqZWN0LCBNT0NLX0lGQUNFLAogLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9CSkVDVF9NQU5BR0VSX0lGQUNFLCBnZXRfb2JqZWN0LCBnZXRfb2JqZWN0cykKQEAgLTMwLDEwICszMiwxMCBAQAogLSAgICAgICAgICAgJ0RCdXNUZXN0Q2FzZScsICdnZXRfb2JqZWN0JywgJ2dldF9vYmplY3RzJ10KICsgICAgICAgICAgICdEQnVzVGVzdENhc2UnLCAnZ2V0X29iamVjdCcsICdnZXRfb2JqZWN0cycsICdhZGRfb2JqZWN0J10KIGRpZmYgLS1naXQgYS9kYnVzbW9jay9tb2Nrb2JqZWN0LnB5IGIvZGJ1c21vY2svbW9ja29iamVjdC5weQotaW5kZXggOTdiNzljZS4uYTk4ZTAzZCAxMDA2NDQKK2luZGV4IDU4NmRiYWQuLmU0ZjEzMGYgMTAwNjQ0CiAtLS0gYS9kYnVzbW9jay9tb2Nrb2JqZWN0LnB5CiArKysgYi9kYnVzbW9jay9tb2Nrb2JqZWN0LnB5Ci1AQCAtNjgyLDYgKzY4MiwxNCBAQCBkYnVzLnNlcnZpY2UuX21ldGhvZF9sb29rdXAgPSBfZGJ1c21vY2tfbWV0aG9kX2xvb2t1cAorQEAgLTY4OCw2ICs2ODgsMTQgQEAgZGJ1cy5zZXJ2aWNlLl9tZXRob2RfbG9va3VwID0gX2RidXNtb2NrX21ldGhvZF9sb29rdXAKICAjIEhlbHBlciBBUEkgZm9yIHRlbXBsYXRlcwogICMKICAKQEAgLTQ4LDYgKzUwLDMgQEAKICAKICBkZWYgZ2V0X29iamVjdHMoKToKICAgICAgJycnUmV0dXJuIGFsbCBleGlzdGluZyBvYmplY3QgcGF0aHMnJycKLS0tIAotMS43LjkuNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYnVzbW9jay8wMDAyLUFkZC1wb3NzaWJpbGl0eS10by1pbXBvcnQtdGVtcGxhdGVzLWZyb20tcGFja2FnZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYnVzbW9jay8wMDAyLUFkZC1wb3NzaWJpbGl0eS10by1pbXBvcnQtdGVtcGxhdGVzLWZyb20tcGFja2FnZXMucGF0Y2gKaW5kZXggOTgxNjk0Zi4uMDZhYjFmMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGJ1c21vY2svMDAwMi1BZGQtcG9zc2liaWxpdHktdG8taW1wb3J0LXRlbXBsYXRlcy1mcm9tLXBhY2thZ2VzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRidXNtb2NrLzAwMDItQWRkLXBvc3NpYmlsaXR5LXRvLWltcG9ydC10ZW1wbGF0ZXMtZnJvbS1wYWNrYWdlcy5wYXRjaApAQCAtMSwyMiArMSwyMyBAQAotRnJvbSBmZjFkZmZkNTY3M2JjZDJjYmQ5NTU0YWQ2MjQ3NmQxMDhkYmMxOGFmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAwM2JkNWNiNzdjNTQwMzM4NTc4MTBiYjE3NTYyODU5ZWVmYTQxMjIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogU2ltb24gQnVzY2ggPHNpbW9uLmJ1c2NoQGxnZS5jb20+CiBEYXRlOiBXZWQsIDkgQXByIDIwMTQgMTM6MjA6MzMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAyLzJdIEFkZCBwb3NzaWJpbGl0eSB0byBpbXBvcnQgdGVtcGxhdGVzIGZyb20gcGFja2FnZXMKK1N1YmplY3Q6IFtQQVRDSF0gQWRkIHBvc3NpYmlsaXR5IHRvIGltcG9ydCB0ZW1wbGF0ZXMgZnJvbSBwYWNrYWdlcwogCiBEb2VzIG5vdCBoYXZlIGFueSB1bml0IHRlc3RzIHlldC4KIAogU2lnbmVkLW9mZi1ieTogU2ltb24gQnVzY2ggPHNpbW9uLmJ1c2NoQGxnZS5jb20+CisKIC0tLQotIGRidXNtb2NrL21vY2tvYmplY3QucHkgfCAgICAzICsrKworIGRidXNtb2NrL21vY2tvYmplY3QucHkgfCAzICsrKwogIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKIAogZGlmZiAtLWdpdCBhL2RidXNtb2NrL21vY2tvYmplY3QucHkgYi9kYnVzbW9jay9tb2Nrb2JqZWN0LnB5Ci1pbmRleCBhOThlMDNkLi45NTMwYzJhIDEwMDY0NAoraW5kZXggZTRmMTMwZi4uMzg5ZGY3MCAxMDA2NDQKIC0tLSBhL2RidXNtb2NrL21vY2tvYmplY3QucHkKICsrKyBiL2RidXNtb2NrL21vY2tvYmplY3QucHkKLUBAIC00OSw2ICs0OSw5IEBAIGRlZiBsb2FkX21vZHVsZShuYW1lKToKLSAKLSAgICAgICAgIHJldHVybiBtb2R1bGUKK0BAIC00Niw2ICs0Niw5IEBAIGRlZiBsb2FkX21vZHVsZShuYW1lKToKKyAgICAgICAgICAgICBleGVjKGYucmVhZCgpLCBtb2QuX19kaWN0X18sIG1vZC5fX2RpY3RfXykKKyAgICAgICAgIHJldHVybiBtb2QKICAKICsgICAgaWYgJy4nIGluIG5hbWU6CiArICAgICAgICByZXR1cm4gaW1wb3J0bGliLmltcG9ydF9tb2R1bGUobmFtZSkKQEAgLTI0LDYgKzI1LDMgQEAKICAgICAgcmV0dXJuIGltcG9ydGxpYi5pbXBvcnRfbW9kdWxlKCdkYnVzbW9jay50ZW1wbGF0ZXMuJyArIG5hbWUpCiAgCiAgCi0tLSAKLTEuNy45LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGJ1c21vY2tfMC4xNi43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGJ1c21vY2tfMC4xNi43LmJiCmluZGV4IGZiOGMwYWEuLmVjOGM1NGEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRidXNtb2NrXzAuMTYuNy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kYnVzbW9ja18wLjE2LjcuYmIKQEAgLTIwLDcgKzIwLDYgQEAKIAogUkRFUEVORFNfJHtQTn0gKz0gIlwKICAgICAke1BZVEhPTl9QTn0tZGJ1cyBcCi0gICAgJHtQWVRIT05fUE59LWltcG9ydGxpYiBcCiAgICAgJHtQWVRIT05fUE59LXB5Z29iamVjdCBcCiAgICAgJHtQWVRIT05fUE59LXhtbCBcCiAgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGVjb3JhdG9yLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRlY29yYXRvci5pbmMKaW5kZXggODU5Zjk3Mi4uNDRlZGI4YSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGVjb3JhdG9yLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kZWNvcmF0b3IuaW5jCkBAIC05LDggKzksOCBAQAogTElDRU5TRSA9ICJCU0QiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9ODkzZjg5NjQxMzgyNjA5NmNlNTI3MGM3MDBhNDk4ZmQiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJhMGY3ZjRmZTAwYWUyZGRlOTM0OTRkOTBjMTkyY2Y4YyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI3Y2I2NGQzOGNiODAwMjk3MTcxMGM4ODk5ZmJkZmI4NTlhMjNhMzY0YjdjOTlkYWIxOWQxZjcxOWMyYmExNmI1IgorU1JDX1VSSVttZDVzdW1dID0gIjI0OWU3Mjk5YjliNGJjZWQwYzM4MjM0M2Y4NGViMWMwIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImMzOWVmYTEzZmJkZWI0NTA2YzQ3NmM5YjNiYWJmNmE3MThkYTk0M2RhYjc4MTFjMjA2MDA1YTRhOTU2YzA4MGMiCiAKIGluaGVyaXQgcHlwaQogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kZWNvcmF0b3JfNC4xLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kZWNvcmF0b3JfNC4zLjAuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRlY29yYXRvcl80LjEuMi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGVjb3JhdG9yXzQuMy4wLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ28tc291dGguaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGphbmdvLXNvdXRoLmluYwppbmRleCBjZTkwNGI2Li5lNGYwM2I5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ28tc291dGguaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRqYW5nby1zb3V0aC5pbmMKQEAgLTEwLDcgKzEwLDcgQEAKIFBZUElfUEFDS0FHRSA9ICJTb3V0aCIKIGluaGVyaXQgcHlwaQogCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZXNkayIKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKIAogUkRFUEVORFNfJHtQTn0gKz0gIlwKICAgICAke1BZVEhPTl9QTn0tZGphbmdvIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRqYW5nby5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ28uaW5jCmluZGV4IDU4ZmQ3MGEuLjRlZjJkN2YgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRqYW5nby5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGphbmdvLmluYwpAQCAtMywyMiArMywzMCBAQAogTElDRU5TRSA9ICJCU0QtMy1DbGF1c2UiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1mMDllYjQ3MjA2NjE0YTQ5NTRjNTFkYjhhOTQ4NDBmYSIKIAotU1JDX1VSSVttZDVzdW1dID0gIjhjZWYwZDQyYWFiYWNiYzQxNGVjNGZiYmI2MDU2ZjNjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjE4MzY4NzgxNjJkZmRmODY1NDkyYmFjZmRmZjAzMjFlNGVlOGYxZTdkNTFkOTMxOTI1NDYwMDBiNTQ5ODJiMjkiCitTUkNfVVJJW21kNXN1bV0gPSAiZjMwNjAxNWUxNmE4ZDUwMjRkYmFjOTIzYWMzNGZmZmIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjIzODM1NjczODVhOWM0MDZkOGE1Y2UwODBhMjY5NGM4MmM2YjczM2UxNTc5MjIxOTdlOGIzOTNiYjNhYWNkOSIKIAogUFlQSV9QQUNLQUdFID0gIkRqYW5nbyIKIGluaGVyaXQgcHlwaQogCiBGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9kamFuZ28iCiAKLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlc2RrIgorQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgogCiBSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1jb21wcmVzc2lvbiBcCisgICAgJHtQWVRIT05fUE59LWN0eXBlcyBcCiAgICAgJHtQWVRIT05fUE59LWRhdGV0aW1lIFwKLSAgICAke1BZVEhPTl9QTn0taW1wb3J0bGliIFwKKyAgICAke1BZVEhPTl9QTn0tZW1haWwgXAorICAgICR7UFlUSE9OX1BOfS1odG1sIFwKKyAgICAke1BZVEhPTl9QTn0tanNvbiBcCisgICAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAorICAgICR7UFlUSE9OX1BOfS1tdWx0aXByb2Nlc3NpbmcgXAorICAgICR7UFlUSE9OX1BOfS1uZXRzZXJ2ZXIgXAogICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKLSAgICAke1BZVEhPTl9QTn0tcGlwIFwKICAgICAke1BZVEhPTl9QTn0tcGtndXRpbCBcCi0gICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorICAgICR7UFlUSE9OX1BOfS1weXR6IFwKICAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKLSAgICAiCisgICAgJHtQWVRIT05fUE59LXVuaXhhZG1pbiBcCisgICAgJHtQWVRIT05fUE59LXhtbCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ29fMS4xMS4xMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRqYW5nb18xLjExLjEwLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyMzQ3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ29fMS4xMS4xMC5iYgpAQCAtMCwwICsxLDggQEAKK3JlcXVpcmUgcHl0aG9uLWRqYW5nby5pbmMKK2luaGVyaXQgc2V0dXB0b29scworCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tYXJncGFyc2UgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyAgICAke1BZVEhPTl9QTn0temxpYiBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ29fMS4xMS41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZGphbmdvXzEuMTEuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2NkNzcxNC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kamFuZ29fMS4xMS41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1yZXF1aXJlIHB5dGhvbi1kamFuZ28uaW5jCi1pbmhlcml0IHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRvbWluYXRlLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRvbWluYXRlLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2Y3NGEwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZG9taW5hdGUuaW5jCkBAIC0wLDAgKzEsMTEgQEAKK1NVTU1BUlkgPSAiRG9taW5hdGUgaXMgYSBQeXRob24gbGlicmFyeSBmb3IgY3JlYXRpbmcgYW5kIG1hbmlwdWxhdGluZyBIVE1MIGRvY3VtZW50cyB1c2luZyBhbiBlbGVnYW50IERPTSBBUEkuIgorTElDRU5TRSA9ICJMR1BMdjMiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9YjUyZjJkNTdkMTBjNGY3ZWU2N2E3ZWI5NjE1ZDVkMjQiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI0NWJkOTdlNmY3ODg4YWFjMjRhZTg2MDEzYzU3NjM4ZSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI0YjhjZTZmMzM2MzNjOWRkOTE3NWIyMjhkMjFjMDBjODAxYjZiZDAzMjc3NDdjZDVlMTdmYzJkYTkzNGMzYTY5IgorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKKyAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKKyAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1kb21pbmF0ZV8yLjMuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRvbWluYXRlXzIuMy4xLmJiCmluZGV4IDEzZWJmOTIuLmMxOTQ0NWUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRvbWluYXRlXzIuMy4xLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWRvbWluYXRlXzIuMy4xLmJiCkBAIC0xLDEzICsxLDIgQEAKLVNVTU1BUlkgPSAiRG9taW5hdGUgaXMgYSBQeXRob24gbGlicmFyeSBmb3IgY3JlYXRpbmcgYW5kIG1hbmlwdWxhdGluZyBIVE1MIGRvY3VtZW50cyB1c2luZyBhbiBlbGVnYW50IERPTSBBUEkuIgotTElDRU5TRSA9ICJMR1BMdjMiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9YjUyZjJkNTdkMTBjNGY3ZWU2N2E3ZWI5NjE1ZDVkMjQiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI0NWJkOTdlNmY3ODg4YWFjMjRhZTg2MDEzYzU3NjM4ZSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI0YjhjZTZmMzM2MzNjOWRkOTE3NWIyMjhkMjFjMDBjODAxYjZiZDAzMjc3NDdjZDVlMTdmYzJkYTkzNGMzYTY5IgotCiBpbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1SREVQRU5EU18ke1BOfSArPSAiXAotICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKLSAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKLSAgICAiCityZXF1aXJlIHB5dGhvbi1kb21pbmF0ZS5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWVkaXRvci5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1lZGl0b3IuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwNjUwYmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1lZGl0b3IuaW5jCkBAIC0wLDAgKzEsOSBAQAorREVTQ1JJUFRJT04gPSAiUHJvZ3JhbW1hdGljYWxseSBvcGVuIGFuZCBlZGl0b3IsIGNhcHR1cmUgdGhlIHJlc3VsdCIKK0xJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWQyNzk0YzBkZjViOTA3ZmRhY2UyMzVhNjE5ZDgwMzE0IgorCitTUkNfVVJJW21kNXN1bV0gPSAiMGFjYTVmMmVmMTc2Y2U2OGU5OGE1YjdlMzEzNzI4MzUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYTNjMDY2YWNlZTIyYTFjOTRmNjM5MzgzNDFkNGZiMzc0ZTNmZGQ2OTM2NmVkNjYwM2Q3YjI0YmVkMWVmYzU2NSIKKworUFlQSV9QQUNLQUdFID0gInB5dGhvbi1lZGl0b3IiCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWVkaXRvcl8xLjAuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWVkaXRvcl8xLjAuMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2E5YThjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZWRpdG9yXzEuMC4zLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWVkaXRvci5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWV2ZGV2LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWV2ZGV2LmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTM4ODRhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZXZkZXYuaW5jCkBAIC0wLDAgKzEsMjEgQEAKK1NVTU1BUlkgPSAiUHl0aG9uIGV2ZGV2IGxpYiIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9ndmFsa292L3B5dGhvbi1ldmRldiIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MThkZWJkZGJiM2Y1MmM2NjFhMTI5NzI0YTg4M2E4ZTIiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJjN2U4NTVhZTlmOTdmODY5YTU5ZTc1YjI5ZjA1Y2U3NCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1N2VkYWZjNDY5YTQxNGY1OGI1MWFmMWJmYjllZTJiYWJiOWY2MjZkZDJkZjUzMGQ3MWMxMTc2ODcxODUwYWExIgorCitkb19jb21waWxlX3ByZXBlbmQoKSB7CisgICAgcm0gLXJmICR7U30vZXZkZXYvZWNvZGVzLmMKK30KKworRElTVFVUSUxTX0JVSUxEX0FSR1MgPSAiYnVpbGRfZWNvZGVzIC0tZXZkZXYtaGVhZGVycyAke1NUQUdJTkdfRElSX1RBUkdFVH0vdXNyL2luY2x1ZGUvbGludXgvaW5wdXQuaDoke1NUQUdJTkdfRElSX1RBUkdFVH0vdXNyL2luY2x1ZGUvbGludXgvaW5wdXQtZXZlbnQtY29kZXMuaCIKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tY3R5cGVzIFwKKyAgICAke1BZVEhPTl9QTn0tZmNudGwgXAorICAgICR7UFlUSE9OX1BOfS1pbyBcCisgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKKyAgICAke1BZVEhPTl9QTn0tc3RyaW5nb2xkIFwKKyAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ldmRldl8wLjcuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWV2ZGV2XzAuNy4wLmJiCmluZGV4IDA4NzVkYTQuLjYzNTQxMzYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWV2ZGV2XzAuNy4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWV2ZGV2XzAuNy4wLmJiCkBAIC0xLDE3ICsxLDIgQEAKLVNVTU1BUlkgPSAiUHl0aG9uIGV2ZGV2IGxpYiIKLUhPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9ndmFsa292L3B5dGhvbi1ldmRldiIKLUxJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MThkZWJkZGJiM2Y1MmM2NjFhMTI5NzI0YTg4M2E4ZTIiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJjN2U4NTVhZTlmOTdmODY5YTU5ZTc1YjI5ZjA1Y2U3NCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI1N2VkYWZjNDY5YTQxNGY1OGI1MWFmMWJmYjllZTJiYWJiOWY2MjZkZDJkZjUzMGQ3MWMxMTc2ODcxODUwYWExIgotCiBpbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1SREVQRU5EU18ke1BOfSArPSAiXAotICAgICR7UFlUSE9OX1BOfS1jdHlwZXMgXAotICAgICR7UFlUSE9OX1BOfS1mY250bCBcCi0gICAgJHtQWVRIT05fUE59LWlvIFwKLSAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAotICAgICR7UFlUSE9OX1BOfS1zdHJpbmdvbGQgXAotICAgICIKK3JlcXVpcmUgcHl0aG9uLWV2ZGV2LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stYmFiZWwuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stYmFiZWwuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2MGVlMTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1iYWJlbC5pbmMKQEAgLTAsMCArMSwxNiBAQAorREVTQ1JJUFRJT04gPSAiaTE4biBhbmQgbDEwbiBzdXBwb3J0IGZvciBGbGFzayBiYXNlZCBvbiBiYWJlbCBhbmQgcHl0eiIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NTE5MTdmM2U4ZTg1OGY1YWUyOTVhN2QwZTJlYjNjYzkiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIwNzgwMzQ1Mzc0M2YxMzkzMDkwMjE1NzJhNzk5YzZiMyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjMGQ3NTcxMGJkNGIwZmU4NjZmOWYyMzQ3ZGU2ZTE5MjA4NzEyZjljZWMwMDY0MzZiNGMxYzE1ZDRjYjBjOTM5IgorCitQWVBJX1BBQ0tBR0UgPSAiRmxhc2stQmFiZWwiCisKK2luaGVyaXQgcHlwaQorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1zcGVha2xhdGVyIFwKKyAgICAke1BZVEhPTl9QTn0tYmFiZWwgXAorICAgICR7UFlUSE9OX1BOfS1mbGFzayBcCisgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stYmFiZWxfMC4xMS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stYmFiZWxfMC4xMS4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ZTc4YzcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1iYWJlbF8wLjExLjIuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tZmxhc2stYmFiZWwuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1ib290c3RyYXAuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stYm9vdHN0cmFwLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzIzYjk3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stYm9vdHN0cmFwLmluYwpAQCAtMCwwICsxLDE0IEBACitERVNDUklQVElPTiA9ICJBbiBleHRlbnNpb24gdGhhdCBpbmNsdWRlcyBCb290c3RyYXAgaW4geW91ciBwcm9qZWN0LCB3aXRob3V0IGFueSBib2lsZXJwbGF0ZSBjb2RlLiIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87bWQ1PWEwMzc0OTcwOWYwNjExOGExNzM0OWRlYjVhMjEwNjE5IgorCitTUkNfVVJJW21kNXN1bV0gPSAiZTQwZDUwZjVjNWI2NDM4YzFjNjIwMGE2ZjI4NzFmODEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiY2IwOGVkOTQwMTgzZjYzNDNhNjRlNDY1ZTgzYjNhM2YxM2M1M2UxYmFhYmI4ZDcyYjVkYTQ1NDVlZjEyM2FjOCIKKworUFlQSV9QQUNLQUdFID0gIkZsYXNrLUJvb3RzdHJhcCIKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tZG9taW5hdGUgXAorICAgICR7UFlUSE9OX1BOfS1mbGFzayBcCisgICAgJHtQWVRIT05fUE59LXZpc2l0b3IgXAorICAgICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWJvb3RzdHJhcF8zLjMuNy4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stYm9vdHN0cmFwXzMuMy43LjEuYmIKaW5kZXggMmIyYTZmOS4uZWVhYWRlOSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stYm9vdHN0cmFwXzMuMy43LjEuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stYm9vdHN0cmFwXzMuMy43LjEuYmIKQEAgLTEsMTYgKzEsMiBAQAotREVTQ1JJUFRJT04gPSAiQW4gZXh0ZW5zaW9uIHRoYXQgaW5jbHVkZXMgQm9vdHN0cmFwIGluIHlvdXIgcHJvamVjdCwgd2l0aG91dCBhbnkgYm9pbGVycGxhdGUgY29kZS4iCi1MSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT1hMDM3NDk3MDlmMDYxMThhMTczNDlkZWI1YTIxMDYxOSIKLQotU1JDX1VSSVttZDVzdW1dID0gImU0MGQ1MGY1YzViNjQzOGMxYzYyMDBhNmYyODcxZjgxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImNiMDhlZDk0MDE4M2Y2MzQzYTY0ZTQ2NWU4M2IzYTNmMTNjNTNlMWJhYWJiOGQ3MmI1ZGE0NTQ1ZWYxMjNhYzgiCi0KLVBZUElfUEFDS0FHRSA9ICJGbGFzay1Cb290c3RyYXAiCi0KIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVJERVBFTkRTXyR7UE59ICs9ICJcCi0gICAgJHtQWVRIT05fUE59LWRvbWluYXRlIFwKLSAgICAke1BZVEhPTl9QTn0tZmxhc2sgXAotICAgICR7UFlUSE9OX1BOfS12aXNpdG9yIFwKLSAgICAiCityZXF1aXJlIHB5dGhvbi1mbGFzay1ib290c3RyYXAuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1sb2dpbi5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1sb2dpbi5pbmMKaW5kZXggN2RkZGJhMC4uNTllYjY0ZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbG9naW4uaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWxvZ2luLmluYwpAQCAtNiw4ICs2LDggQEAKIExJQ0VOU0UgPSAiTUlUIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9OGFhODdhMWNkOWZhNDFkOTY5YWQzMmNmZGFjMmM1OTYiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJlMDUwZWZhYTJjNGRiYzJkOTdmNDgwYTcwZjRkNDRhYSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkMjVlMzU2YjE0YTU5ZjUyZGEwYWIzMGMzMWMyYWQyODVmYTIzYTg0MGYwZjY5NzFkZjdlZDI0N2M3NzA4MmE3IgorU1JDX1VSSVttZDVzdW1dID0gIjI1YjM0Yzc0YmQ1MDk3OTJmMjkxYzE2ZTE4NDIyNWRmIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImM4MTVjMWFjN2IzZTM1ZTIwODE2ODVlMzg5YTY2NWYyYzc0ZDdlMDc3Y2I5M2NlY2FiYWVhMzUyZGE0NzUyZWMiCiAKIFBZUElfUEFDS0FHRSA9ICJGbGFzay1Mb2dpbiIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbG9naW5fMC40LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1sb2dpbl8wLjQuMS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbG9naW5fMC40LjAuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLWxvZ2luXzAuNC4xLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1tYWlsLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLW1haWwuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMDg3MDMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1tYWlsLmluYwpAQCAtMCwwICsxLDEyIEBACitTVU1NQVJZID0gIkZsYXNrIGV4dGVuc2lvbiBmb3Igc2VuZGluZyBlbWFpbCIKK0RFU0NSSVBUSU9OID0gIkEgRmxhc2sgZXh0ZW5zaW9uIGZvciBzZW5kaW5nIGVtYWlsIgorSE9NRVBBR0UgPSAiIGh0dHBzOi8vZ2l0aHViLmNvbS9yZHVwbGFpbi9mbGFzay1lbWFpbCIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NWIxNmRmYTZkM2YyNzVhY2U1OTg1YmI5Mjk0OWY3NzAiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIwNGIzNWE0MmE0NGVjN2FhNzI0ZWM4Y2U1NWUyZTA4ZSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIyMmU1ZWI5YTk0MGJmNDA3YmNmMzA0MTBlY2MzNzA4ZjNjNTZjYzQ0YjI5YzM0ZTE3MjZmZTg1MDA2OTM1ZjQxIgorCitQWVBJX1BBQ0tBR0UgPSAiRmxhc2stTWFpbCIKKworUkRFUEVORFNfJHtQTn0gPSAiJHtQWVRIT05fUE59LWZsYXNrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbWFpbF8wLjkuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLW1haWxfMC45LjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODMyNGRhOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLW1haWxfMC45LjEuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tZmxhc2stbWFpbC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLW1pZ3JhdGUuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbWlncmF0ZS5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FmNGZlMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLW1pZ3JhdGUuaW5jCkBAIC0wLDAgKzEsMTQgQEAKK0RFU0NSSVBUSU9OID0gIlNRTEFsY2hlbXkgZGF0YWJhc2UgbWlncmF0aW9ucyBmb3IgRmxhc2sgYXBwbGljYXRpb25zIHVzaW5nIEFsZW1iaWMiCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTNiNjkzNzdmNzlmM2Y0OGM2NjE3MDEyMzZkNWE2YTg1IgorCitTUkNfVVJJW21kNXN1bV0gPSAiZGVmNDEwNmM4MDg5N2I3ZmFkMmFmYjNiYzA1MzYwZTQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjcwOWNhODY0MjU1OWMzYzVhODFhMzNhYjEwODM5ZmEwNTIxNzdhY2NkNWJhODIxMDQ3YTk5ZGI2MzUyNTVlZCIKKworUFlQSV9QQUNLQUdFID0gIkZsYXNrLU1pZ3JhdGUiCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWZsYXNrLXNxbGFsY2hlbXkgXAorICAgICR7UFlUSE9OX1BOfS1hbGVtYmljIFwKKyAgICAke1BZVEhPTl9QTn0tZmxhc2sgXAorICAgICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLW1pZ3JhdGVfMi4xLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1taWdyYXRlXzIuMS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZTUxNmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1taWdyYXRlXzIuMS4xLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLW1pZ3JhdGUuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1uYXYuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbmF2LmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzJjY2RmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbmF2LmluYwpAQCAtMCwwICsxLDEzIEBACitERVNDUklQVElPTiA9ICJFYXNpbHkgY3JlYXRlIG5hdmlnYXRpb24gZm9yIEZsYXNrIGFwcGxpY2F0aW9ucy4iCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT0yNzI5ZWU4MjI1OWQ2MDFkOTBkMjhiMDU3NGQxMjQxNiIKKworU1JDX1VSSVttZDVzdW1dID0gIjRkNTFjZmQwNmQ1OGY4ZDBmZTg1Nzc1YTY2OTZjMGU1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ0ZTQwYjc1NTM4MGExZTY4YWI1MjFhMmY5MTc0ZGUyNTlhMmM5NGRkY2RhYWJmMzZiM2FjYTJlMTEwYTMzZjQiCisKK1BZUElfUEFDS0FHRSA9ICJmbGFzay1uYXYiCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWJsaW5rZXIgXAorICAgICR7UFlUSE9OX1BOfS1mbGFzayBcCisgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stbmF2XzAuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLW5hdl8wLjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBiNWIzYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLW5hdl8wLjYuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tZmxhc2stbmF2LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stcHltb25nby5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1weW1vbmdvLmluYwppbmRleCBlMTEyODNlLi5mYjJkNmVkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1weW1vbmdvLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1weW1vbmdvLmluYwpAQCAtMyw3ICszLDcgQEAKIEhPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9taXRzdWhpa28vZmxhc2svIgogU0VDVElPTiA9ICJkZXZlbC9weXRob24iCiBMSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL2ZsYXNrX3B5bW9uZ28vd3JhcHBlcnMucHk7c3RhcnRsaW5lPTE7ZW5kbGluZT0yNDttZDU9NDI0YzRlMTA0N2QyOGUwMWI0ZTQ2MzRhMDY5YzAxOWQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9mbGFza19weW1vbmdvL3dyYXBwZXJzLnB5O2JlZ2lubGluZT0xO2VuZGxpbmU9MjQ7bWQ1PTQyNGM0ZTEwNDdkMjhlMDFiNGU0NjM0YTA2OWMwMTlkIgogCiBTUkNfVVJJW21kNXN1bV0gPSAiZDdhMWI3MTdmMjcxNTRlMWYzYTM1NWY4ZWMyNDY3ZDYiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMmJhYWEyYmE1MTA3ZDcyYjNhOGJkNGI1YzBjODg4MTMxNmUzNTM0MGFkMWFlOTc5Y2MxM2YxZjNjODg0M2IzZCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXJlc3RmdWwuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stcmVzdGZ1bC5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ4NWY4NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXJlc3RmdWwuaW5jCkBAIC0wLDAgKzEsMTYgQEAKK1NVTU1BUlkgPSAiU2ltcGxlIGZyYW1ld29yayBmb3IgY3JlYXRpbmcgUkVTVCBBUElzIgorREVTQ1JJUFRJT04gPSAiXAorRmxhc2stUkVTVGZ1bCBpcyBhbiBleHRlbnNpb24gZm9yIEZsYXNrIHRoYXQgYWRkcyBzdXBwb3J0IGZvciBxdWlja2x5IGJ1aWxkaW5nIFwKK1JFU1QgQVBJcyIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9mbGFzay1yZXN0ZnVsL2ZsYXNrLXJlc3RmdWwiCitMSUNFTlNFID0gIkJTRC0zLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTY4NWJiNTVlZDk5YTM2NmJiNDMxOTk1ZjVlZWYyNzgzIgorCitTUkNfVVJJW21kNXN1bV0gPSAiODI0M2NhMTAxMTg1YjEzMGQ4ZmE1MjljYmRiZGJkZGQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTc5NTUxOTUwMTM0N2UxMDhjNDM2YjY5M2ZmOWE0ZDdiMzczYTNhYzkwNjk2MjdkNjRlNDAwMWMwNWRkMzQwNyIKKworaW5oZXJpdCBweXBpCisKK1BZUElfUEFDS0FHRSA9ICJGbGFzay1SRVNUZnVsIgorCitSREVQRU5EU18ke1BOfSA9ICIke1BZVEhPTl9QTn0tZmxhc2siCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1yZXN0ZnVsXzAuMy42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stcmVzdGZ1bF8wLjMuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTY4ZDFkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stcmVzdGZ1bF8wLjMuNi5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tZmxhc2stcmVzdGZ1bC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXNjcmlwdC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1zY3JpcHQuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjYTc3N2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1zY3JpcHQuaW5jCkBAIC0wLDAgKzEsMTIgQEAKK0RFU0NSSVBUSU9OID0gIlNjcmlwdGluZyBzdXBwb3J0IGZvciBmbGFzayIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZTY4NjA0OGFkYjY5MzQxZmM4YTA4Y2FlZGE1MjhiNDEiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIzZmJkOTFmZTEzY2ViZWRmYjI0MzEzMzFmNmVhYmI2OCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2NDI1OTYzZDkxMDU0Y2ZjYzE4NTgwNzE0MWM3MzE0YTljNWFkNDYzMjU5MTFiZDI0ZGNiNDg5YmQwMTYxYzY1IgorCitQWVBJX1BBQ0tBR0UgPSAiRmxhc2stU2NyaXB0IgorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1mbGFzayBcCisgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stc2NyaXB0XzIuMC42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stc2NyaXB0XzIuMC42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3ZDU1YWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1zY3JpcHRfMi4wLjYuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tZmxhc2stc2NyaXB0LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stc3FsYWxjaGVteS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1zcWxhbGNoZW15LmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMGVmYmM2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stc3FsYWxjaGVteS5pbmMKQEAgLTAsMCArMSwxMCBAQAorREVTQ1JJUFRJT04gPSAiQWRkcyBTUUxBbGNoZW15IHN1cHBvcnQgdG8geW91ciBGbGFzayBhcHBsaWNhdGlvbi4iCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTVlZDFiOGNjNzQxNTE1YTgzNWE3ZjZiZjJmNjJlZjRhIgorCitTUkNfVVJJW21kNXN1bV0gPSAiMzczY2U2MWRmZDAzYjU5M2FkMmVhYmE2OGM5ZmVlMzUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTk3MWI5ODUyYjU4ODg2NTVmMTFkYjYzNGU4NzcyNWE5MDMxZTE3MGYzN2MwY2U3ODUxY2Y4MzQ5N2Y1NmU1MyIKKworUFlQSV9QQUNLQUdFID0gIkZsYXNrLVNRTEFsY2hlbXkiCisKK1JERVBFTkRTXyR7UE59ID0gIiR7UFlUSE9OX1BOfS1zcWxhbGNoZW15ICR7UFlUSE9OX1BOfS1mbGFzayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXNxbGFsY2hlbXlfMi4zLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay1zcWxhbGNoZW15XzIuMy4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Nzk5NzY3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXNxbGFsY2hlbXlfMi4zLjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1ERVNDUklQVElPTiA9ICJBZGRzIFNRTEFsY2hlbXkgc3VwcG9ydCB0byB5b3VyIEZsYXNrIGFwcGxpY2F0aW9uLiIKLUxJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NWVkMWI4Y2M3NDE1MTVhODM1YTdmNmJmMmY2MmVmNGEiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJjODY0NDlmNDRlOTBlOTk2MTQyODcyYWM0Yjk3ZjdlZSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkYTE5ZmY2MmUzMWY4MjgyNWI1NDY3ODExYzc2ZTJhMWM2MGJiYTkyN2UxNzVmZTA5MWE2ZjczOTA2M2RkODI5IgotCi1QWVBJX1BBQ0tBR0UgPSAiRmxhc2stU1FMQWxjaGVteSIKLQotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotUkRFUEVORFNfJHtQTn0gPSAiJHtQWVRIT05fUE59LXNxbGFsY2hlbXkgJHtQWVRIT05fUE59LWZsYXNrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stc3FsYWxjaGVteV8yLjMuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXNxbGFsY2hlbXlfMi4zLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RjMzU1YwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXNxbGFsY2hlbXlfMi4zLjIuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tZmxhc2stc3FsYWxjaGVteS5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXVwbG9hZHMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stdXBsb2Fkcy5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Q3YWMxYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXVwbG9hZHMuaW5jCkBAIC0wLDAgKzEsMTIgQEAKK0RFU0NSSVBUSU9OID0gIkZsZXhpYmxlIGFuZCBlZmZpY2llbnQgdXBsb2FkIGhhbmRsaW5nIGZvciBGbGFzayIKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87bWQ1PWI3MTJhYzYzNGIzOTQ2OTY2MGM5YmRmYjhkMDM0MjFjIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZTVlZWUzNGFhOTJiNjRhNGQyMjg0NzY3MmIzODU4YTEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTNlY2JkNjAzMzY2N2Q1MGFlMDJiNjNhZGViYmFhMzNjN2ZjNTZjMDllNTI5MzAyNTgxMGNmOWQ4NDFlY2IwMiIKKworUFlQSV9QQUNLQUdFID0gIkZsYXNrLVVwbG9hZHMiCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWZsYXNrIFwKKyAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay11cGxvYWRzXzAuMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stdXBsb2Fkc18wLjIuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzliMDdmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stdXBsb2Fkc18wLjIuMS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1mbGFzay11cGxvYWRzLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stdXNlci5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay11c2VyLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMmI3MTgyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2stdXNlci5pbmMKQEAgLTAsMCArMSwxNyBAQAorU1VNTUFSWSA9ICJDdXN0b21pemFibGUgdXNlciBhY2NvdW50IG1hbmFnZW1lbnQgZm9yIEZsYXNrIgorREVTQ1JJUFRJT04gPSAiQ3VzdG9taXphYmxlIFVzZXIgQWNjb3VudCBNYW5hZ2VtZW50IGZvciBGbGFzazsgUmVnaXN0ZXIgXAorQ29uZmlybSBlbWFpbCwgTG9naW4sIENoYW5nZSB1c2VybmFtZSwgQ2hhbmdlIHBhc3N3b3JkLCBGb3Jnb3QgUGFzc3dvcmQgXAorYW5kIG1vcmUuIgorSE9NRVBBR0UgPSAiIGh0dHBzOi8vZ2l0aHViLmNvbS9saW5ndGhpby9GbGFzay1Vc2VyIgorTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9OTdkZTk3Y2Q5ZDZlMjNjODgxMjlkODg0NTg4Y2U3MWEiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJmNzk2NWU2NmNhMTM5Yzg0MzY4OTZkYTA3ZTY2YzIxZiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2MDFhYmNjMDM0M2RmYmFlMGM1NjI3M2Q5ODM2MmQ1Y2RjMjY2YWM4NGQyMGIzZjY1YTIxMmU0YTJjODNiMzAyIgorCitQWVBJX1BBQ0tBR0UgPSAiRmxhc2stVXNlciIKKworUkRFUEVORFNfJHtQTn0gPSAiJHtQWVRIT05fUE59LWZsYXNrIFwKKyAgICAke1BZVEhPTl9QTn0tZmxhc2stbG9naW4gXAorICAgICR7UFlUSE9OX1BOfS1mbGFzay1tYWlsIFwKKyAgICAke1BZVEhPTl9QTn0tYmFiZWwiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay11c2VyXzAuNi4xOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXVzZXJfMC42LjE5LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1NGQzNzcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay11c2VyXzAuNi4xOS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1mbGFzay11c2VyLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2std3RmLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXd0Zi5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5MDY1NgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXd0Zi5pbmMKQEAgLTAsMCArMSwxNSBAQAorREVTQ1JJUFRJT04gPSAiU2ltcGxlIGludGVncmF0aW9uIG9mIEZsYXNrIGFuZCBXVEZvcm1zLiIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9M2NhNmJiMzE2NzA0OTJmNzkxZTZhOWYyZmI5ZjhhODAiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI1ODZmNTBmMjMzOTI2Y2FkZTQyZTNkNzQ0YWNhM2U4ZiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1ZDE0ZDU1Y2ZkMzVmNjEzZDk5ZWU3Y2JhMGZjM2ZiYmU2M2JhMDJmNTQ0ZDM0OTE1OGMxNGNhMTU1NjFjYzM2IgorCitQWVBJX1BBQ0tBR0UgPSAiRmxhc2stV1RGIgorCitSREVQRU5EU18ke1BOfSA9ICJcCisgICAgJHtQWVRIT05fUE59LWZsYXNrIFwKKyAgICAke1BZVEhPTl9QTn0taXRzZGFuZ2Vyb3VzIFwKKyAgICAke1BZVEhPTl9QTn0tanNvbiBcCisgICAgJHtQWVRIT05fUE59LXd0Zm9ybXMgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2std3RmL2ltcG9ydC1zaW1wbGVqc29uLWFzLWpzb24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay13dGYvaW1wb3J0LXNpbXBsZWpzb24tYXMtanNvbi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjc4ZjcwNi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay13dGYvaW1wb3J0LXNpbXBsZWpzb24tYXMtanNvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KLQotU3ViamVjdDogW1BBVENIXSBpbXBvcnQgc2ltcGxlanNvbiBhcyBqc29uCi0KLUF0IHJ1bnRpbWUgcHl0aG9uLUZsYXNrLVdURiB0cmllcyB0byBpbXBvcnQganNvbiwgYnV0IHRoZSBtb2R1bGUgaXMgbm90IAotYXZhaWxhYmxlLCBpbXBvcnQgc2ltcGxlanNvbiBhcyBqc29uIHNvbHZlIHRoZSBpc3N1ZS4KLQotU2lnbmVkLW9mZi1ieTogRmFiaW8gQmVydG9uIDxmYWJpby5iZXJ0b25Ab3NzeXN0ZW1zLmNvbS5icj4KLS0tLQotIGZsYXNrX3d0Zi9yZWNhcHRjaGEvdmFsaWRhdG9ycy5weSB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2ZsYXNrX3d0Zi9yZWNhcHRjaGEvdmFsaWRhdG9ycy5weSBiL2ZsYXNrX3d0Zi9yZWNhcHRjaGEvdmFsaWRhdG9ycy5weQotaW5kZXggYmNmZjIzZC4uNGEyNDRiYiAxMDA2NDQKLS0tLSBhL2ZsYXNrX3d0Zi9yZWNhcHRjaGEvdmFsaWRhdG9ycy5weQotKysrIGIvZmxhc2tfd3RmL3JlY2FwdGNoYS92YWxpZGF0b3JzLnB5Ci1AQCAtOCw3ICs4LDcgQEAgZnJvbSBmbGFzayBpbXBvcnQgcmVxdWVzdCwgY3VycmVudF9hcHAKLSBmcm9tIHd0Zm9ybXMgaW1wb3J0IFZhbGlkYXRpb25FcnJvcgotIGZyb20gd2Vya3pldWcgaW1wb3J0IHVybF9lbmNvZGUKLSBmcm9tIC4uX2NvbXBhdCBpbXBvcnQgdG9fYnl0ZXMsIHRvX3VuaWNvZGUKLS1pbXBvcnQganNvbgotK2ltcG9ydCBzaW1wbGVqc29uIGFzIGpzb24KLSAKLSBSRUNBUFRDSEFfVkVSSUZZX1NFUlZFUiA9ICdodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkvc2l0ZXZlcmlmeScKLSBSRUNBUFRDSEFfRVJST1JfQ09ERVMgPSB7Ci0tLSAKLTIuMS40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXd0Zl8wLjEyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2std3RmXzAuMTIuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5YWZhZjYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2std3RmXzAuMTIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1ERVNDUklQVElPTiA9ICJTaW1wbGUgaW50ZWdyYXRpb24gb2YgRmxhc2sgYW5kIFdURm9ybXMuIgotTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT01MDdlODYzNWYyNWEwNmRjNGYwNDFhM2ExYjMzNTliMyIKLQotU1JDX1VSSVttZDVzdW1dID0gImM1M2E3NGU4YmE0ODFiZjUzNDA1ZmQ1ZWZkZjAzMzllIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImJkOTkzMTZjOTdlZDFkMWNiOTBiOGYwYzI0MmM4NjQyMGE4OTFhNmEyMDU4ZjIwNzE3ZTQyNGJmNWIwYmI4MGUiCi0KLVNSQ19VUkkgKz0gIiBmaWxlOi8vaW1wb3J0LXNpbXBsZWpzb24tYXMtanNvbi5wYXRjaCIKLQotUFlQSV9QQUNLQUdFID0gIkZsYXNrLVdURiIKLQotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotUkRFUEVORFNfJHtQTn0gPSAiXAotICAgIHB5dGhvbi13dGZvcm1zIFwKLSAgICBweXRob24tc2ltcGxlanNvbiBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay13dGZfMC4xNC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2std3RmXzAuMTQuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmYwOTFiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2std3RmXzAuMTQuMi5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1mbGFzay13dGYuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay14c3RhdGljLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXhzdGF0aWMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExZmUxNGUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay14c3RhdGljLmluYwpAQCAtMCwwICsxLDE2IEBACitERVNDUklQVElPTiA9ICJYU3RhdGljIHN1cHBvcnQgZm9yIGZsYXNrIgorTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT02NTk5NjhmNmViZDRiNzBiNmMzMTkwZDIwYjRhOTI0YyIKKworU1JDX1VSSVttZDVzdW1dID0gIjJmNTYwMjNlMTQ0NGM4YmQxZmVjNDFhZmU5M2RlNzQzIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjIyNmVhOGU5NzA2NWE5NDg4YjU5YmZlNWM5NGFmNGM2ZTJlYTcwYTI1MDUyZTMwMWZiMjMxYTEzODE0OTAxMzMiCisKK0ZJTEVTRVhUUkFQQVRIU19wcmVwZW5kIDo9ICIke1RISVNESVJ9L3B5dGhvbi1mbGFzay14c3RhdGljOiIKK1NSQ19VUkkgKz0gImZpbGU6Ly9yZW1vdmUtcGlwLXJlcXVpcmVzLnBhdGNoIgorCitQWVBJX1BBQ0tBR0UgPSAiRmxhc2stWFN0YXRpYyIKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tZmxhc2sgXAorICAgICR7UFlUSE9OX1BOfS14c3RhdGljIFwKKyAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay14c3RhdGljL3JlbW92ZS1waXAtcmVxdWlyZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay14c3RhdGljL3JlbW92ZS1waXAtcmVxdWlyZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTJkNjIwYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXhzdGF0aWMvcmVtb3ZlLXBpcC1yZXF1aXJlcy5wYXRjaApAQCAtMCwwICsxLDcgQEAKKy0tLSBGbGFzay1YU3RhdGljLTAuMC4xL3NldHVwLnB5Lm9yaWcJMjAxNS0wMS0zMCAwODowMTo1Ni4wMDAwMDAwMDAgLTA4MDAKKysrKyBGbGFzay1YU3RhdGljLTAuMC4xL3NldHVwLnB5CTIwMTctMDQtMTcgMjE6NDA6MzIuNTcwMTgxNjI2IC0wNzAwCitAQCAtMSw0ICsxLDMgQEAKKy1mcm9tIHBpcC5yZXEgaW1wb3J0IHBhcnNlX3JlcXVpcmVtZW50cworIGltcG9ydCBzZXR1cHRvb2xzCisgCisgd2l0aCBvcGVuKCdSRUFETUUucnN0JykgYXMgZjoKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLXhzdGF0aWNfMC4wLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay14c3RhdGljXzAuMC4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmZjE0YTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay14c3RhdGljXzAuMC4xLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLXhzdGF0aWMuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1mbGFzay5pbmMKaW5kZXggNzZiNWZiYS4uZWNmNTYxOSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZmxhc2suaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZsYXNrLmluYwpAQCAtMTMsNCArMTMsNCBAQAogCiBQWVBJX1BBQ0tBR0UgPSAiRmxhc2siCiAKLVJERVBFTkRTXyR7UE59ID0gIiR7UFlUSE9OX1BOfS13ZXJremV1ZyAke1BZVEhPTl9QTn0tamluamEyICR7UFlUSE9OX1BOfS1pdHNkYW5nZXJvdXMgJHtQWVRIT05fUE59LWNsaWNrIgorUkRFUEVORFNfJHtQTn0gPSAiJHtQWVRIT05fUE59LXdlcmt6ZXVnICR7UFlUSE9OX1BOfS13ZXJremV1Zy10ZXN0cyAke1BZVEhPTl9QTn0tamluamEyICR7UFlUSE9OX1BOfS1pdHNkYW5nZXJvdXMgJHtQWVRIT05fUE59LWNsaWNrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZnV0dXJlXzAuMTYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZ1dHVyZV8wLjE2LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZmN2ZlNQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWZ1dHVyZV8wLjE2LjAuYmIKQEAgLTAsMCArMSwxMyBAQAorREVTQ1JJUFRJT04gPSAiQ2xlYW4gc2luZ2xlLXNvdXJjZSBzdXBwb3J0IGZvciBQeXRob24gMyBhbmQgMiIKK0hPTUVQQUdFID0gImh0dHBzOi8vcHl0aG9uLWZ1dHVyZS5vcmciCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT0zZjQ1NzUzOGIyOTdiZDBlZjg2NTY0YjhhYzIxNmFkNyIKKworU1JDX1VSSVttZDVzdW1dID0gIjNlOGU4OGEyYmRhNDhkNTRiMWRhNzYzNGQwNDc2MGQ3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImUzOWNlZDFhYjc2N2I1OTM2NjQ2Y2VkYmE4YmNjZTU4MjM5ODIzM2Q2YTYyNzA2N2Q0YzZhNDU0YzkwY2ZlZGIiCisKK1BZUElfUEFDS0FHRV9IQVNIID0gIjk5YWJkZTgxNTg0MmJjNmU5N2Q1YTc4MDZhZDUxMjM2NjMwZGExNGNhMmYzYjFmY2U5NGMwYmI5NGQzZCIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1nZXZlbnQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ2V2ZW50LmluYwppbmRleCA4ODg5Y2ZiLi4xMzUxM2YyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1nZXZlbnQuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdldmVudC5pbmMKQEAgLTExLDcgKzExLDYgQEAKIFJERVBFTkRTXyR7UE59ID0gIiR7UFlUSE9OX1BOfS1ncmVlbmxldCBcCiAJCSAgJHtQWVRIT05fUE59LW1pbWUgXAogCQkgICR7UFlUSE9OX1BOfS1wcHJpbnQgXAotCQkgICR7UFlUSE9OX1BOfS1yZSBcCiAJCSAiCiAKIEZJTEVTRVhUUkFQQVRIU19wcmVwZW5kIDo9ICIke1RISVNESVJ9L3B5dGhvbi1nZXZlbnQ6IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ2V2ZW50XzEuMi4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ2V2ZW50XzEuMi4yLmJiCmluZGV4IGYzNTdjOTUuLmYxM2JmZDcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdldmVudF8xLjIuMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1nZXZlbnRfMS4yLjIuYmIKQEAgLTEsMyArMSw0IEBACiByZXF1aXJlIHB5dGhvbi1nZXZlbnQuaW5jCiBpbmhlcml0IHNldHVwdG9vbHMKIAorUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1yZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdyZWVubGV0LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdyZWVubGV0LmluYwppbmRleCAzNTgyMGRiLi43YTQyMjQwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncmVlbmxldC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JlZW5sZXQuaW5jCkBAIC0zLDcgKzMsNyBAQAogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MDMxNDNkN2ExYTlmNWQ4YTBmZWU4MjVmMjRjYTljMzYgXAogICAgICAgICAgICAgICAgICAgICBmaWxlOi8vTElDRU5TRS5QU0Y7bWQ1PWMxMDY5MzFkOTQyOWVkYTA0OTI2MTdmMDM3YjhmNjlhIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiZTg2Mzc2NDdkNThhMjZjNGExZjUxY2EzOTNlNTNjMDAiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTRjOTljNjAxMGE1ZDE1M2Q0ODFmZGFmNjNiOGEwNzgyODI1YzA3MjE1MDZkODgwNDAzYTNiOWI4MmFlMzQ3ZSIKK1NSQ19VUklbbWQ1c3VtXSA9ICI2ZTBiOWRkNTM4NWY4MWQ0Nzg0NTFlYzhlZDFkNjJiMyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwZmVmODNkNDNiZjg3YTUxOTZjOTFlNzNjYjk3NzJmOTQ1YTRjYWFmZjkxMjQyNzY2YzU5MTZkMWRkMTM4MWU0IgogCiBpbmhlcml0IHB5cGkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdyZWVubGV0XzAuNC4xMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdyZWVubGV0XzAuNC4xMy5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JlZW5sZXRfMC40LjEyLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncmVlbmxldF8wLjQuMTMuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdycGNpby10b29sc18xLjYuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdycGNpby10b29sc18xLjYuMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGZiMTM2Yi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncnBjaW8tdG9vbHNfMS42LjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1ERVNDUklQVElPTiA9ICJHb29nbGUgZ1JQQyB0b29scyIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuZ3JwYy5pby8iCi1TRUNUSU9OID0gImRldmVsL3B5dGhvbiIKLQotREVQRU5EUyA9ICJweXRob24tZ3JwY2lvIgotUkRFUEVORFNfJHtQTn0gPSAicHl0aG9uLWdycGNpbyIKLQotTElDRU5TRSA9ICJCU0QtMy1DbGF1c2UiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8ke0NPTU1PTl9MSUNFTlNFX0RJUn0vQlNELTMtQ2xhdXNlO21kNT01NTA3OTQ0NjViYTBlYzUzMTJkNjkxOWUyMDNhNTVmOSIKLQotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotU1JDX1VSSVttZDVzdW1dID0gIjgzNWYxOTE0MmUyNmNiN2FkNjhjZWMzYTA4M2VjZGEyIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU3YjMxMTBjZWQ1MGExOGYxYjJiZjdkYTU4ZWQwMTFmNTcyNzhiNDgwODRlZDgwMTNjNjdhMzRkNDJhNWNhMzciCi0KLSMgRm9yIHVzYWdlIGluIG90aGVyIHJlY2lwaWVzIHdoZW4gY29tcGlsaW5nIHByb3RvYnVmIGZpbGVzIChlLmcuIGJ5IGdycGNpby10b29scykKLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JwY2lvLXRvb2xzXzEuOC40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JwY2lvLXRvb2xzXzEuOC40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZTBjYzEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncnBjaW8tdG9vbHNfMS44LjQuYmIKQEAgLTAsMCArMSwxNyBAQAorREVTQ1JJUFRJT04gPSAiR29vZ2xlIGdSUEMgdG9vbHMiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmdycGMuaW8vIgorU0VDVElPTiA9ICJkZXZlbC9weXRob24iCisKK0RFUEVORFMgPSAicHl0aG9uLWdycGNpbyIKK1JERVBFTkRTXyR7UE59ID0gInB5dGhvbi1ncnBjaW8iCisKK0xJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vJHtDT01NT05fTElDRU5TRV9ESVJ9L0JTRC0zLUNsYXVzZTttZDU9NTUwNzk0NDY1YmEwZWM1MzEyZDY5MTllMjAzYTU1ZjkiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJlMDRlNjVhZmU2MDQxMGNmMTc4ZmYyNjk4ZjA1MmE3YyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlZGM4NGMwOTAzOWQzYTAxMDEyY2NkOTc0NTBhYmQwNmVlNmI5ODA3MTBmNmQ5ZjE5MWI1MGRlYjY3NzRhNzVjIgorCisjIEZvciB1c2FnZSBpbiBvdGhlciByZWNpcGllcyB3aGVuIGNvbXBpbGluZyBwcm90b2J1ZiBmaWxlcyAoZS5nLiBieSBncnBjaW8tdG9vbHMpCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdycGNpby8wMDAxLXNldHVwLnB5LURvLW5vdC1taXgtQy1hbmQtQy1jb21waWxlci1vcHRpb25zLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JwY2lvLzAwMDEtc2V0dXAucHktRG8tbm90LW1peC1DLWFuZC1DLWNvbXBpbGVyLW9wdGlvbnMucGF0Y2gKaW5kZXggM2FiYmM2ZC4uMGMxZDk2NCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JwY2lvLzAwMDEtc2V0dXAucHktRG8tbm90LW1peC1DLWFuZC1DLWNvbXBpbGVyLW9wdGlvbnMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JwY2lvLzAwMDEtc2V0dXAucHktRG8tbm90LW1peC1DLWFuZC1DLWNvbXBpbGVyLW9wdGlvbnMucGF0Y2gKQEAgLTE4LDE5ICsxOCwxNiBAQAogIHNldHVwLnB5IHwgMiArLQogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQogCi1kaWZmIC0tZ2l0IGEvc2V0dXAucHkgYi9zZXR1cC5weQotaW5kZXggY2I4NTI3My4uZjc5ODc4ZCAxMDA2NDQKLS0tLSBhL3NldHVwLnB5Ci0rKysgYi9zZXR1cC5weQotQEAgLTExNiw3ICsxMTYsNyBAQCBpZiBFWFRSQV9FTlZfQ09NUElMRV9BUkdTIGlzIE5vbmU6Ci0gICBlbGlmICd3aW4zMicgaW4gc3lzLnBsYXRmb3JtOgotICAgICBFWFRSQV9FTlZfQ09NUElMRV9BUkdTICs9ICcgLURfUFlUSE9OX01TVkMnCitJbmRleDogZ3JwY2lvLTEuOC40L3NldHVwLnB5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ3JwY2lvLTEuOC40Lm9yaWcvc2V0dXAucHkKKysrKyBncnBjaW8tMS44LjQvc2V0dXAucHkKK0BAIC0xMTUsNyArMTE1LDcgQEAgaWYgRVhUUkFfRU5WX0NPTVBJTEVfQVJHUyBpcyBOb25lOgorICAgICBlbHNlOgorICAgICAgIEVYVFJBX0VOVl9DT01QSUxFX0FSR1MgKz0gJyAtRF9mdGltZT1fZnRpbWU2NCAtRF90aW1lYj1fX3RpbWViNjQnCiAgICBlbGlmICJsaW51eCIgaW4gc3lzLnBsYXRmb3JtOgogLSAgICBFWFRSQV9FTlZfQ09NUElMRV9BUkdTICs9ICcgLXN0ZD1jKysxMSAtc3RkPWdudTk5IC1mdmlzaWJpbGl0eT1oaWRkZW4gLWZuby13cmFwdiAtZm5vLWV4Y2VwdGlvbnMnCiArICAgIEVYVFJBX0VOVl9DT01QSUxFX0FSR1MgKz0gJyAtZnZpc2liaWxpdHk9aGlkZGVuIC1mbm8td3JhcHYgLWZuby1leGNlcHRpb25zJwogICAgZWxpZiAiZGFyd2luIiBpbiBzeXMucGxhdGZvcm06Ci0gICAgIEVYVFJBX0VOVl9DT01QSUxFX0FSR1MgKz0gJyAtZnZpc2liaWxpdHk9aGlkZGVuIC1mbm8td3JhcHYnCisgICAgIEVYVFJBX0VOVl9DT01QSUxFX0FSR1MgKz0gJyAtZnZpc2liaWxpdHk9aGlkZGVuIC1mbm8td3JhcHYgLWZuby1leGNlcHRpb25zJwogIAotLS0gCi0yLjEzLjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JwY2lvXzEuNi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tZ3JwY2lvXzEuNi4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTU1ZjQyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdycGNpb18xLjYuMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLURFU0NSSVBUSU9OID0gIkdvb2dsZSBnUlBDIgotSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5ncnBjLmlvLyIKLVNFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgotCi1ERVBFTkRTID0gInB5dGhvbi1wcm90b2J1ZiIKLQotU1JDX1VSSSArPSAiZmlsZTovLzAwMDEtc2V0dXAucHktRG8tbm90LW1peC1DLWFuZC1DLWNvbXBpbGVyLW9wdGlvbnMucGF0Y2ggXAotICAgICAgICAgICAiCi1SREVQRU5EU18ke1BOfSA9ICJweXRob24tZW51bTM0IFwKLSAgICAgICAgICAgICAgICAgIHB5dGhvbi1mdXR1cmVzIFwKLSAgICAgICAgICAgICAgICAgIHB5dGhvbi1wcm90b2J1ZiBcCi0gICAgICAgICAgICAgICAgICBweXRob24tc2V0dXB0b29scyBcCi0gICAgICAgICAgICAgICAgICBweXRob24tc2l4IFwKLSIKLQotTElDRU5TRSA9ICJCU0QtMy1DbGF1c2UiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8ke0NPTU1PTl9MSUNFTlNFX0RJUn0vQlNELTMtQ2xhdXNlO21kNT01NTA3OTQ0NjViYTBlYzUzMTJkNjkxOWUyMDNhNTVmOSIKLQotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotU1JDX1VSSVttZDVzdW1dID0gImM5MWI4YzEwNWZmNDE2M2I0MTc5MGYzYjYzZGI5MmUxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjZjZDc5M2Q1MTVlYzUzNTg3YTg5NjhmMmE1MzY0N2YxNDQ5NzYzYWQwNmJlMGQyODdlM2MxZTQ3NDE4ZTFlNTAiCi0KLSMgRm9yIHVzYWdlIGluIG90aGVyIHJlY2lwZXMgd2hlbiBjb21waWxpbmcgcHJvdG9idWYgZmlsZXMgKGUuZy4gYnkgZ3JwY2lvLXRvb2xzKQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncnBjaW9fMS44LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1ncnBjaW9fMS44LjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVjOWQ4NAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWdycGNpb18xLjguNC5iYgpAQCAtMCwwICsxLDI1IEBACitERVNDUklQVElPTiA9ICJHb29nbGUgZ1JQQyIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuZ3JwYy5pby8iCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKKworREVQRU5EUyA9ICJweXRob24tcHJvdG9idWYiCisKK1NSQ19VUklfYXBwZW5kX2NsYXNzLXRhcmdldCA9ICIgZmlsZTovLzAwMDEtc2V0dXAucHktRG8tbm90LW1peC1DLWFuZC1DLWNvbXBpbGVyLW9wdGlvbnMucGF0Y2ggIgorCitSREVQRU5EU18ke1BOfSA9ICJweXRob24tZW51bTM0IFwKKyAgICAgICAgICAgICAgICAgIHB5dGhvbi1mdXR1cmVzIFwKKyAgICAgICAgICAgICAgICAgIHB5dGhvbi1wcm90b2J1ZiBcCisgICAgICAgICAgICAgICAgICBweXRob24tc2V0dXB0b29scyBcCisgICAgICAgICAgICAgICAgICBweXRob24tc2l4IFwKKyIKKworTElDRU5TRSA9ICJCU0QtMy1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly8ke0NPTU1PTl9MSUNFTlNFX0RJUn0vQlNELTMtQ2xhdXNlO21kNT01NTA3OTQ0NjViYTBlYzUzMTJkNjkxOWUyMDNhNTVmOSIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworU1JDX1VSSVttZDVzdW1dID0gIjc4NjBmN2M2MWRlMzg5MDMyMzY3MGI3YjFmZjYzZTU2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjg4ZDg3YWFiOWM3ODg5YjNhYjI5ZGQ3NGFhYzFhNTQ5M2VkNzhiOWJmNWFmYmExYzA2OWM5ZGQ1NTMxZjk1MWQiCisKKyMgRm9yIHVzYWdlIGluIG90aGVyIHJlY2lwZXMgd2hlbiBjb21waWxpbmcgcHJvdG9idWYgZmlsZXMgKGUuZy4gYnkgZ3JwY2lvLXRvb2xzKQorQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1odG1sNWxpYi5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1odG1sNWxpYi5pbmMKaW5kZXggOWM1OWUwZC4uMGViOGJmMyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taHRtbDVsaWIuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWh0bWw1bGliLmluYwpAQCAtMiwxMyArMiwxNCBAQAogTElDRU5TRSA9ICJNSVQiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0xYmE1YWRhOWU2ZmVhZDFmZGMzMmY0M2M5ZjEwYmE3YyIKIAotU1JDX1VSSVttZDVzdW1dID0gIjg1NzhlNGUzYTM0MTQzNmNiOTc0M2E5ZTRhMjk5MjM5IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImVlNzQ3YzBmZmQzMDI4ZDI3MjIwNjE5MzZiNWM2NWVlNGZlMTNjOGU0NjEzNTE5YjQ0NDcxMjNmYzQ1NDYyOTgiCitTUkNfVVJJW21kNXN1bV0gPSAiOTQyYTA2ODhkNmJkZjIwZDA4N2M5ODA1YzQwMTgyYWQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjZjYjBkY2ZkYmJjNGY5YzNiYTFhNjNmZGI1MTFmZmRiZDRmNTEzYjJiNmQ4MWI4MGNkMjZjZTZiM2ZiMzczNiIKIAogaW5oZXJpdCBweXBpCiAKIFJERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWx4bWwgXAogICAgICR7UFlUSE9OX1BOfS1zaXggXAogICAgICR7UFlUSE9OX1BOfS13ZWJlbmNvZGluZ3MgXAogICAgICR7UFlUSE9OX1BOfS14bWwgXAotICAgICIKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWh0bWw1bGliXzAuOTk5OTk5OTk5LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taHRtbDVsaWJfMS4wLjEuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWh0bWw1bGliXzAuOTk5OTk5OTk5LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1odG1sNWxpYl8xLjAuMS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taHVtYW5pemUuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taHVtYW5pemUuaW5jCmluZGV4IGQ5ZmFjMDkuLjE3YTM0NDkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWh1bWFuaXplLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1odW1hbml6ZS5pbmMKQEAgLTcsNCArNyw4IEBACiBTUkNfVVJJW21kNXN1bV0gPSAiZTg0NzNkOWRjMWIyMjA5MTFjYWMyZWRkNTNiMWQ5NzMiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYTQzZjU3MTE1ODMxYWM3YzcwZGUwOThlNmFjNDZhYzEzYmUwMGQ2OWFiYmY2MGJkY2FjMjUxMzQ0Nzg1YmIxOSIKIAorUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tZGF0ZXRpbWUgXAorIgorCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pbmNyZW1lbnRhbC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pbmNyZW1lbnRhbC5pbmMKaW5kZXggMzY3NTQ1OC4uYjYzZmFjOSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taW5jcmVtZW50YWwuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWluY3JlbWVudGFsLmluYwpAQCAtMTIsMyArMTIsOSBAQAogICAgICR7UFlUSE9OX1BOfS10d2lzdGVkIFwKICAgICAke1BZVEhPTl9QTn0tY2xpY2sgXAogIgorCisjIC1uYXRpdmUgaXMgbmVlZGVkIHRvIGJ1aWxkIHB5dGhvblszXS10d2lzdGVkLCBob3dldmVyLCB3ZSBuZWVkIHRvIHRha2Ugc3RlcHMgdG8KKyMgcHJldmVudCBhIGNpcmN1bGFyIGRlcGVuZGVuY3kuIFRoZSBidWlsZCBhcHBhcmVudGx5IGRvZXMgbm90IHVzZSB0aGUgcGFydCBvZgorIyBweXRob24taW5jcmVtZW50YWwgd2hpY2ggdXNlcyBweXRob24tdHdpc3RlZCwgc28gdGhpcyBoYWNrIGlzIE9LLgorUkRFUEVORFNfJHtQWVRIT05fUE59LWluY3JlbWVudGFsLW5hdGl2ZV9yZW1vdmUgPSAiJHtQWVRIT05fUE59LXR3aXN0ZWQtbmF0aXZlIgorQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXBhZGRyZXNzXzEuMC4xOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWlwYWRkcmVzc18xLjAuMTguYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjNGY1ODkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXBhZGRyZXNzXzEuMC4xOC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLVNVTU1BUlkgPSAiUHl0aG9uIDMuMysncyBpcGFkZHJlc3MgZm9yIFB5dGhvbiAyLjYsIDIuNywgMy4yLiIKLUhPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9waGloYWcvaXBhZGRyZXNzIgotTElDRU5TRSA9ICJQeXRob24tMi4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9N2Y1Mzg1ODRjYzM0MDdiZjc2MDQyZGVmNzE2ODU0OGEiCi0KLURFUEVORFMgKz0gInB5dGhvbi1waXAiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIzMTBjMmRmZDY0ZWI2ZjBkZjQ0YWE4YzU5ZjIzMzRhNyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI1ZDg1MzRjOGUxODVmMmQ4YTFmZGExZWY3M2YyYzhmNGIyMzI2NGU4ZTMwMDYzZmVlYjk1MTFkNDkyYTQxM2UxIgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pcGFkZHJlc3NfMS4wLjE5LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXBhZGRyZXNzXzEuMC4xOS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzUwYjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXBhZGRyZXNzXzEuMC4xOS5iYgpAQCAtMCwwICsxLDEzIEBACitTVU1NQVJZID0gIlB5dGhvbiAzLjMrJ3MgaXBhZGRyZXNzIGZvciBQeXRob24gMi42LCAyLjcsIDMuMi4iCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vcGhpaGFnL2lwYWRkcmVzcyIKK0xJQ0VOU0UgPSAiUHl0aG9uLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTdmNTM4NTg0Y2MzNDA3YmY3NjA0MmRlZjcxNjg1NDhhIgorCitERVBFTkRTICs9ICJweXRob24tcGlwIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZDA2ODdlZmFmOTNhMzI0NzZkODFlOTBiYTA2MDljNTciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjAwZDg2ODYwMTFkNDcwYjVlNGRlMjA3ZDgwMzQ0NWRlZWU0Mjc0NTVjZDBjYjdjOTgyYjY4Y2Y4MjUyNGY4MSIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXNvODYwMS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pc284NjAxLmluYwppbmRleCA0NWRhNzVmLi42MWU5YWJiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pc284NjAxLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pc284NjAxLmluYwpAQCAtNiw0ICs2LDggQEAKIFNSQ19VUklbbWQ1c3VtXSA9ICI0ZGU5NDBmNjkxYzVlYTc1OWZiMjU0Mzg0YzhkZGNmNiIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICI0OWM0YjIwZTFmMzhhYTVjZjEwOWRkY2QzOTY0N2FjNDE5ZjkyODUxMmM4NjlkYzAxZDVjNzA5OGVkZGVkZTgyIgogCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1kYXRldGltZSBcCisiCisKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWlzb3J0LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWlzb3J0LmluYwppbmRleCA5ODg0YzQ0Li42ZDEzZTVmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pc29ydC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXNvcnQuaW5jCkBAIC00LDcgKzQsMTIgQEAKIFNFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87YmVnaW5saW5lPTg7ZW5kbGluZT04O21kNT04MjI3MTgwMTI2Nzk3YTAxNDhmOTRmNDgzZjNlMTQ4OSIKIAotU1JDX1VSSVttZDVzdW1dID0gIjM0OTE1YTJjZTYwZTZmZTNkYmNiZjU5ODJkZWVmOWI0IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjc5ZjQ2MTcyZDNhNGUyZTUzZTcwMTZlNjYzY2M3YThiNTM4YmVjNTI1YzM2Njc1ZmNmZDI3NjdkZjMwYjM5ODMiCitTUkNfVVJJW21kNXN1bV0gPSAiZmI1NTRlOWM4ZjlhYTc2ZTMzM2EwM2Q0NzBhNWNmNTIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjljNDBlOTc1MGYzZDc3ZTZlNGQ0NDFkOGIwMjY2Y2Y1NTVlN2NkYWJkY2ZmMzNjNGZkMDYzNjZjYTc2MWVmOCIKIAogaW5oZXJpdCBweXBpCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWRhdGV0aW1lIFwKKyAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXNvcnRfNC4yLjE1LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXNvcnRfNC4zLjQuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWlzb3J0XzQuMi4xNS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXNvcnRfNC4zLjQuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWl0c2Rhbmdlcm91cy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pdHNkYW5nZXJvdXMuaW5jCmluZGV4IDczOTUxZmEuLjg0ZjllNzcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWl0c2Rhbmdlcm91cy5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24taXRzZGFuZ2Vyb3VzLmluYwpAQCAtNywzICs3LDggQEAKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICJjYmIzZmNmOGQzZTMzZGY4NjE3MDllY2FmODlkOWU2NjI5Y2ZmMGEyMTdiYzI4NDhmMWI0MWNkMzBkMzYwNTE5IgogCiBDTEVBTkJST0tFTiA9ICIxIgorCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tc2ltcGxlanNvbiBcCisgICAgJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1pdHNkYW5nZXJvdXNfMC4yNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWl0c2Rhbmdlcm91c18wLjI0LmJiCmluZGV4IDBlMTU2YmUuLjhjOTljYjQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWl0c2Rhbmdlcm91c18wLjI0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWl0c2Rhbmdlcm91c18wLjI0LmJiCkBAIC0xLDIgKzEsNiBAQAogaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKIHJlcXVpcmUgcHl0aG9uLWl0c2Rhbmdlcm91cy5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXpsaWIgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tamF2YW9iai1weTMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tamF2YW9iai1weTMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwZTgwMmMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qYXZhb2JqLXB5My5pbmMKQEAgLTAsMCArMSwxNSBAQAorU1VNTUFSWSA9ICJNb2R1bGUgZm9yIHNlcmlhbGl6aW5nIGFuZCBkZS1zZXJpYWxpemluZyBKYXZhIG9iamVjdHMuIgorREVTQ1JJUFRJT04gPSAicHl0aG9uLWphdmFvYmogaXMgYSBweXRob24gbGlicmFyeSB0aGF0IHByb3ZpZGVzIGZ1bmN0aW9uc1wKKyBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyAod3JpdGluZyBpcyBXSVAgY3VycmVudGx5KSBKYXZhIG9iamVjdHMgc2VyaWFsaXplZFwKKyBvciB3aWxsIGJlIGRlc2VyaWFsaXplZCBieSBPYmplY3RPdXRwdXRTdHJlYW0uIFRoaXMgZm9ybSBvZiBvYmplY3RcCisgcmVwcmVzZW50YXRpb24gaXMgYSBzdGFuZGFyZCBkYXRhIGludGVyY2hhbmdlIGZvcm1hdCBpbiBKYXZhIHdvcmxkLiIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS90Y2FsbWFudC9weXRob24tamF2YW9iaiIKK0xJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL2phdmFvYmoucHk7YmVnaW5saW5lPTIxO2VuZGxpbmU9MzM7bWQ1PThiNTA0NDE5Y2U3OGY4MTMzYjIxYjRkNGE4OWVmN2U5IgorCitTUkNfVVJJW21kNXN1bV0gPSAiZjY2OWJiODA5OTM4MGUzZGQ4NGRiM2Q1NDJhYTViNjgiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYjhiMGQzMTBmZDk3ZTFjNzkxNGQ3OTExZWU5ZDNmNGIzZDg0ZDJhNjc0YWE5NWE0YjBkYTNkOGYxNTVmYzFiYiIKKworaW5oZXJpdCBweXBpCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWphdmFvYmotcHkzXzAuMi40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tamF2YW9iai1weTNfMC4yLjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQzNDc0MAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWphdmFvYmotcHkzXzAuMi40LmJiCkBAIC0wLDAgKzEsMiBAQAorcmVxdWlyZSBweXRob24tamF2YW9iai1weTMuaW5jCitpbmhlcml0IHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWppbmphMi5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qaW5qYTIuaW5jCmluZGV4IDM1Y2JiMGIuLjBjMGJmMGQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWppbmphMi5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tamluamEyLmluYwpAQCAtNCwxMiArNCwxMiBAQAogCiBQWVBJX1BBQ0tBR0UgPSAiSmluamEyIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNjQxMTUzNzMyNGI0ZGJhMDk1NmFhYTgxMDlmM2M3N2IiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZGRhYTAxYTIxMmNkNmQ2NDE0MDFjYjAxYjYwNWY0YTRkOWYzN2JmYzkzMDQzZDdmNzYwZWM3MGZiOTlmZjlmZiIKK1NSQ19VUklbbWQ1c3VtXSA9ICI2MWVmMTExN2Y5NDU0ODY0NzI4NTA4MTliOGQxZWIzZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJmODRiZTFiYjAwNDBjYWNhNGNlYTcyMWZjYmJiYmQ2MWY5YmU5NDY0Y2EyMzYzODcxNThiMGZlZWEwMTkxNGE0IgogCiBSREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWlvICR7UFlUSE9OX1BOfS1waWNrbGUgJHtQWVRIT05fUE59LWNyeXB0IFwKLSAgICAke1BZVEhPTl9QTn0tbWF0aCAke1BZVEhPTl9QTn0tbmV0Y2xpZW50ICR7UFlUSE9OX1BOfS1yZSAke1BZVEhPTl9QTn0tdGV4dHV0aWxzIFwKLSAgICAke1BZVEhPTl9QTn0tbGFuZyAke1BZVEhPTl9QTn0tcHByaW50ICR7UFlUSE9OX1BOfS1zaGVsbCAke1BZVEhPTl9QTn0tbWFya3Vwc2FmZSBcCisgICAgJHtQWVRIT05fUE59LW1hdGggJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCisgICAgJHtQWVRIT05fUE59LXBwcmludCAke1BZVEhPTl9QTn0tc2hlbGwgJHtQWVRIT05fUE59LW1hcmt1cHNhZmUgXAogICAgICR7UFlUSE9OX1BOfS1qc29uICR7UFlUSE9OX1BOfS10aHJlYWRpbmcgJHtQWVRIT05fUE59LW51bWJlcnMiCiAKIENMRUFOQlJPS0VOID0gIjEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qaW5qYTJfMi4xMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWppbmphMl8yLjEwLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMzNjZjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qaW5qYTJfMi4xMC5iYgpAQCAtMCwwICsxLDggQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1qaW5qYTIuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1sYW5nIFwKKyAgICAke1BZVEhPTl9QTn0tcmUgXAorICAgICR7UFlUSE9OX1BOfS10ZXh0dXRpbHMgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tamluamEyXzIuOS42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tamluamEyXzIuOS42LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYzhlN2VkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWppbmphMl8yLjkuNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLXJlcXVpcmUgcHl0aG9uLWppbmphMi5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25wYXRjaC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucGF0Y2guaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwOWMwOWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucGF0Y2guaW5jCkBAIC0wLDAgKzEsMTIgQEAKK1NVTU1BUlkgID0gIkFwcGxpbmcgSlNPTiBwYXRjaGVzIGluIFB5dGhvbiAyLjYrIGFuZCAzLngiCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vc3RlZmFua29lZ2wvcHl0aG9uLWpzb24tcGF0Y2giCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTMyYjE1Yzg0M2I3YTMyOTEzMGY0ZTI2NmEyODFlYmIzIgorCitpbmhlcml0IHB5cGkKKworU1JDX1VSSVttZDVzdW1dID0gIjgzYzRjOWZhY2NiNGEyZmY4YzFkYjgwY2JkZGM1OTBkIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ5ZjI5Y2FiNzBlOTA2OGRiM2IxZGM2YjY1NmNiZTJlZTRlZGY3ZGZlOWJmNWEwMDU1ZjE3YTRiNjgwNGE0YjkiCisKK1JERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tanNvbiAke1BZVEhPTl9QTn0tanNvbnBvaW50ZXIgJHtQWVRIT05fUE59LW5ldGNsaWVudCAke1BZVEhPTl9QTn0tc3RyaW5nb2xkIgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucGF0Y2hfMS4xNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25wYXRjaF8xLjE2LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYmM2MWE0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25wYXRjaF8xLjE2LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotU1VNTUFSWSAgPSAiQXBwbGluZyBKU09OIHBhdGNoZXMgaW4gUHl0aG9uIDIuNisgYW5kIDMueCIKLUhPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9zdGVmYW5rb2VnbC9weXRob24tanNvbi1wYXRjaCIKLUxJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MzJiMTVjODQzYjdhMzI5MTMwZjRlMjY2YTI4MWViYjMiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI4ZWYxY2ViMDBkY2Y5OTJjOWU0MzYxMWY2OThmOTI3OSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJmMDI1YzI4YTA4Y2U3NDc0MjllZTc0NmJiMjE3OTZjM2I2NDE3ZWM4MjI4OGY4ZmU2NTE0ZGI3Mzk4ZjJhZjhhIgotCi1SREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWpzb24gJHtQWVRIT05fUE59LWpzb25wb2ludGVyICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgJHtQWVRIT05fUE59LXJlICR7UFlUSE9OX1BOfS1zdHJpbmdvbGQiCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25wYXRjaF8xLjIzLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnBhdGNoXzEuMjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTBjZDMxOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25wYXRjaF8xLjIzLmJiCkBAIC0wLDAgKzEsNCBAQAoraW5oZXJpdCBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1qc29ucGF0Y2guaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tcmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucG9pbnRlci5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucG9pbnRlci5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVkMDFlZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25wb2ludGVyLmluYwpAQCAtMCwwICsxLDEzIEBACitTVU1NQVJZID0gIlJlc29sdmUgSlNPTiBQb2ludGVycyBpbiBQeXRob24iCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vc3RlZmFua29lZ2wvcHl0aG9uLWpzb24tcG9pbnRlciIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTMyYjE1Yzg0M2I3YTMyOTEzMGY0ZTI2NmEyODFlYmIzIgorCitpbmhlcml0IHB5cGkKKworU1JDX1VSSVttZDVzdW1dID0gIjc0MWI5OGQwZTY5M2IwOGI1ZTQ0ZTBhOWRhNWE3YmI3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImMxOTJiYTg2NjQ4ZTA1ZmRhZTRmMDhhMTdlYzI1MTgwYTlhZWY1MDA4ZDk3MzQwN2I1ODE3OThhODM5NzUzNjIiCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1qc29uIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25wb2ludGVyXzEuMTIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucG9pbnRlcl8xLjEyLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNWMxYWE4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25wb2ludGVyXzEuMTIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1TVU1NQVJZID0gIlJlc29sdmUgSlNPTiBQb2ludGVycyBpbiBQeXRob24iCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vc3RlZmFua29lZ2wvcHl0aG9uLWpzb24tcG9pbnRlciIKLUxJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MzJiMTVjODQzYjdhMzI5MTMwZjRlMjY2YTI4MWViYjMiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJlYWFhZDc5ZTk4M2Q1OGVjYmVlNWI0YTMyNjcyMzc3NyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4MTliNmRkNGZkMGExOGFjMjE5ZTAyYTAxMTdmMjRiMmQzMTI5NmIwYzQ3NWMzMzg2MmNmYTlhMTYxNmQ2MmMzIgotCi1SREVQRU5EU18ke1BOfSArPSAicHl0aG9uLXJlIHB5dGhvbi1qc29uIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnBvaW50ZXJfMi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnBvaW50ZXJfMi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxM2E3NzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29ucG9pbnRlcl8yLjAuYmIKQEAgLTAsMCArMSw0IEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLWpzb25wb2ludGVyLmluYworCitSREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LXJlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnNjaGVtYS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29uc2NoZW1hLmluYwppbmRleCBkYjU3YzY5Li42ZmRjMDI0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29uc2NoZW1hLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29uc2NoZW1hLmluYwpAQCAtMTEsMTcgKzExLDEzIEBACiAgICAgJHtQWVRIT05fUE59LWNvcmUgXAogICAgICR7UFlUSE9OX1BOfS1pbyBcCiAgICAgJHtQWVRIT05fUE59LWpzb24gXAotICAgICR7UFlUSE9OX1BOfS1sYW5nIFwKICAgICAke1BZVEhPTl9QTn0tbmV0Y2xpZW50IFwKICAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCiAgICAgJHtQWVRIT05fUE59LXBrZ3V0aWwgXAogICAgICR7UFlUSE9OX1BOfS1wcHJpbnQgXAotICAgICR7UFlUSE9OX1BOfS1yZSBcCiAgICAgJHtQWVRIT05fUE59LXJmYzM5ODcgXAogICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCiAgICAgJHtQWVRIT05fUE59LXN0cmljdC1yZmMzMzM5IFwKLSAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCi0gICAgJHtQWVRIT05fUE59LXRleHR1dGlscyBcCiAgICAgJHtQWVRIT05fUE59LXVuaXR0ZXN0IFwKICIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnNjaGVtYV8yLjYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWpzb25zY2hlbWFfMi42LjAuYmIKaW5kZXggM2JiNTIyMC4uYjY3N2M2NCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tanNvbnNjaGVtYV8yLjYuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1qc29uc2NoZW1hXzIuNi4wLmJiCkBAIC01LDQgKzUsOCBAQAogICAgICR7UFlUSE9OX1BOfS1hcmdwYXJzZSBcCiAgICAgJHtQWVRIT05fUE59LWNvbnRleHRsaWIgXAogICAgICR7UFlUSE9OX1BOfS1mdW5jdG9vbHMzMiBcCisgICAgJHtQWVRIT05fUE59LWxhbmcgXAorICAgICR7UFlUSE9OX1BOfS1yZSBcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorICAgICR7UFlUSE9OX1BOfS10ZXh0dXRpbHMgXCAKICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWxvY2tmaWxlXzAuMTIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWxvY2tmaWxlXzAuMTIuMi5iYgppbmRleCBjZDE1NzYwLi45YWQ4NjVkIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1sb2NrZmlsZV8wLjEyLjIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbG9ja2ZpbGVfMC4xMi4yLmJiCkBAIC0xMSwzICsxMSw5IEBACiAKIFNSQ19VUklbbWQ1c3VtXSA9ICJhNmExYTgyOTU3YTIzYWZkZjQ0Y2ZkZDAzOWI2NWZmOSIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICI2YWVkMDJkZTAzY2JhMjRlZmFiY2Q2MDBiMzA1NDAxNDA2MzRmYzA2Y2ZhNjAzODIyZDUwOGQ1MzYxZTlmNzk5IgorCisjIFNhdGlzZnkgc2V0dXAucHkgJ3NldHVwX3JlcXVpcmVzJworREVQRU5EUyArPSAiIFwKKyAgICAgICAgcHl0aG9uLXBici1uYXRpdmUgXAorICAgICAgICAiCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWx4bWwuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbHhtbC5pbmMKaW5kZXggN2MwYTdkNy4uM2YzYTFlMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbHhtbC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbHhtbC5pbmMKQEAgLTExLDE1ICsxMSwxNSBAQAogICAgICAgICAgICAgICAgICAgICBmaWxlOi8vZG9jL2xpY2Vuc2VzL2VsZW1lbnR0cmVlLnR4dDttZDU9ZWIzNGQwMzZhNmUzZDU2MzE0ZWU0OWE2ODUyYWM4OTEgXAogICAgICAgICAgICAgICAgICAgICBmaWxlOi8vZG9jL2xpY2Vuc2VzL0JTRC50eHQ7bWQ1PTcwMGExZmMxN2Y0Nzk3ZDRmMmQzNDk3MGM4ZWU2OTRiIFwKICAgICAgICAgICAgICAgICAgICAgZmlsZTovL2RvYy9saWNlbnNlcy9HUEwudHh0O21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvbHhtbC9pc29zY2hlbWF0cm9uL3Jlc291cmNlcy9ybmcvaXNvLXNjaGVtYXRyb24ucm5nO3N0YXJ0bGluZT0yO2VuZGxpbmU9NzttZDU9YTI5MTRkMTJhY2M3MDY2YjNmNWI2MGU4Zjk0YTAxMmUgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vc3JjL2x4bWwvaXNvc2NoZW1hdHJvbi9yZXNvdXJjZXMveHNsL2lzby1zY2hlbWF0cm9uLXhzbHQxL2lzb19zY2hlbWF0cm9uX21lc3NhZ2UueHNsO3N0YXJ0bGluZT0yO2VuZGxpbmU9MjQ7bWQ1PTk2OTc2ZGNjNjYyNDljNTFlODAyNmIxNTljYTVlNzU1IFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL3NyYy9seG1sL2lzb3NjaGVtYXRyb24vcmVzb3VyY2VzL3hzbC9STkcyU2NodHJuLnhzbDtzdGFydGxpbmU9MjtlbmRsaW5lPTc7bWQ1PTVjYWM0YWQ0YjVlMTMxYTEwZTlhZjc1NWIxMGZiYmI3IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3NyYy9seG1sL2lzb3NjaGVtYXRyb24vcmVzb3VyY2VzL3JuZy9pc28tc2NoZW1hdHJvbi5ybmc7YmVnaW5saW5lPTI7ZW5kbGluZT03O21kNT05MzllNzQzMGNlODVlMTI0MmZmNTBjNGVlOTQzMDc1MiBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvbHhtbC9pc29zY2hlbWF0cm9uL3Jlc291cmNlcy94c2wvaXNvLXNjaGVtYXRyb24teHNsdDEvaXNvX3NjaGVtYXRyb25fbWVzc2FnZS54c2w7YmVnaW5saW5lPTI7ZW5kbGluZT0yNDttZDU9Y2M4NmI3YjJiYmM2NzhlMTNmNThlYTQwM2ViOTkyOWIgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vc3JjL2x4bWwvaXNvc2NoZW1hdHJvbi9yZXNvdXJjZXMveHNsL1JORzJTY2h0cm4ueHNsO2JlZ2lubGluZT0yO2VuZGxpbmU9NzttZDU9NWIwMzIzNmQyOTNkYzM3ODQyMDU1NDJiNDA5ZDJmNTMgXAogICAgICAgICAgICAgICAgICAgICAiCiAKIERFUEVORFMgKz0gImxpYnhtbDIgbGlieHNsdCIKIAotU1JDX1VSSVttZDVzdW1dID0gIjI0NzU4MGJkNWQ5NDI4NzJiZDk3MmFkMDA4NmU1Y2JmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImJlM2FhZWI1ZjQ2OGE0OWY1MjNmMTY3MzZjY2ZmN2Q4MmFmMmI0YjMwMzI5MmJhM2QwNTJiNWIyOGYzZmJlNDciCitTUkNfVVJJW21kNXN1bV0gPSAiYzI2NmQ5MDYyZTIzYjA4ZjY2NDI2OTc5YTJiMzZmNTEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTI2MjljZGJjYWQ4MmI4MzkyMmEzNDg4OTM3NjMyYTQ5ODNlY2MwZmVkM2U1Y2ZiZjQzMGQwNjkzODJlZWI5YiIKIAogRElTVFVUSUxTX0JVSUxEX0FSR1MgKz0gIiBcCiAgICAgICAgICAgICAgICAgICAgICAtLXdpdGgteHNsdC1jb25maWc9J3BrZy1jb25maWcgbGlieHNsdCcgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbHhtbF80LjEuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWx4bWxfNC4yLjEuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWx4bWxfNC4xLjAuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLWx4bWxfNC4yLjEuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW0yY3J5cHRvLzAwMDEtc2V0dXAucHktbGluay1pbi1zeXNyb290LW5vdC1pbi1ob3N0LWRpcmVjdG9yaWVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbTJjcnlwdG8vMDAwMS1zZXR1cC5weS1saW5rLWluLXN5c3Jvb3Qtbm90LWluLWhvc3QtZGlyZWN0b3JpZXMucGF0Y2gKaW5kZXggODE5YzhlNS4uYzcxYjE2ZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbTJjcnlwdG8vMDAwMS1zZXR1cC5weS1saW5rLWluLXN5c3Jvb3Qtbm90LWluLWhvc3QtZGlyZWN0b3JpZXMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbTJjcnlwdG8vMDAwMS1zZXR1cC5weS1saW5rLWluLXN5c3Jvb3Qtbm90LWluLWhvc3QtZGlyZWN0b3JpZXMucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIGYxMWI5YzcxMDgwNTEzZjliODY3YmE4ZjQwNjEzYmEyZWJjNmU5NjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGRmYjgzYTQxYWFlYWUzMjZlOWI2ZjAyYjIzM2FmMzc1YmM3Yjg4MTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBLb2VuIEtvb2kgPGtvZW5AZG9taW5pb24udGhydWhlcmUubmV0PgogRGF0ZTogRnJpLCAyOSBNYXIgMjAxMyAxNToxNzoxNyArMDEwMAogU3ViamVjdDogW1BBVENIXSBzZXR1cC5weTogbGluayBpbiBzeXNyb290LCBub3QgaW4gaG9zdCBkaXJlY3RvcmllcwpAQCAtMTAsMTIgKzEwLDEyIEBACiAgc2V0dXAucHkgfCA2ICsrKy0tLQogIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiAKLUluZGV4OiBNMkNyeXB0by0wLjIzLjAvc2V0dXAucHkKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBNMkNyeXB0by0wLjIzLjAub3JpZy9zZXR1cC5weQotKysrIE0yQ3J5cHRvLTAuMjMuMC9zZXR1cC5weQotQEAgLTYyLDcgKzYyLDcgQEAgY2xhc3MgX00yQ3J5cHRvQnVpbGRFeHQoYnVpbGRfZXh0LmJ1aWxkXwotICAgICAgICAgICAgIHNlbGYub3BlbnNzbCA9ICdjOlxccGtnJworZGlmZiAtLWdpdCBhL3NldHVwLnB5IGIvc2V0dXAucHkKK2luZGV4IDM0MDdjODIuLjE1ZWQ3Y2QgMTAwNjQ0CistLS0gYS9zZXR1cC5weQorKysrIGIvc2V0dXAucHkKK0BAIC0xMjcsNyArMTI3LDcgQEAgY2xhc3MgX00yQ3J5cHRvQnVpbGRFeHQoYnVpbGRfZXh0LmJ1aWxkX2V4dCk6CisgICAgICAgICAgICAgICAgIHNlbGYub3BlbnNzbCA9IG9zLnBhdGguam9pbihzZWxmLm9wZW5zc2wsICdPcGVuU1NMJykKICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgc2VsZi5saWJyYXJpZXMgPSBbJ3NzbCcsICdjcnlwdG8nXQogLSAgICAgICAgICAgIHNlbGYub3BlbnNzbCA9ICcvdXNyJwpAQCAtMjMsNyArMjMsNyBAQAogIAogICAgICBkZWYgZmluYWxpemVfb3B0aW9ucyhzZWxmKToKICAgICAgICAgICcnJ092ZXJsb2FkZWQgYnVpbGRfZXh0IGltcGxlbWVudGF0aW9uIHRvIGFwcGVuZCBjdXN0b20gb3BlbnNzbAotQEAgLTc1LDggKzc1LDggQEAgY2xhc3MgX00yQ3J5cHRvQnVpbGRFeHQoYnVpbGRfZXh0LmJ1aWxkXworQEAgLTE0Myw4ICsxNDMsOCBAQCBjbGFzcyBfTTJDcnlwdG9CdWlsZEV4dChidWlsZF9leHQuYnVpbGRfZXh0KToKICAgICAgICAgIGlmIF9vcGVuc3NsIGFuZCBvcy5wYXRoLmlzZGlyKF9vcGVuc3NsKToKICAgICAgICAgICAgICBzZWxmLm9wZW5zc2wgPSBfb3BlbnNzbAogIApAQCAtMzQsMyArMzQsNiBAQAogIAogICAgICAgICAgaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gIkxpbnV4IjoKICAgICAgICAgICAgICBpZiBfbXVsdGlhcmNoOiAgIyBvbiBGZWRvcmEvUkhFTCBpdCBpcyBhbiBlbXB0eSBzdHJpbmcKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbWFrby5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tYWtvLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWZhNTU2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbWFrby5pbmMKQEAgLTAsMCArMSwyMSBAQAorU1VNTUFSWSA9ICJBIHN1cGVyLWZhc3QgdGVtcGxhdGluZyBsYW5ndWFnZSB0aGF0IGJvcnJvd3MgdGhlIGJlc3QgaWRlYXMgZnJvbSB0aGUgZXhpc3RpbmcgdGVtcGxhdGluZyBsYW5ndWFnZXMiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3Lm1ha290ZW1wbGF0ZXMub3JnLyIKK1NFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0xYmIyMWZhMmQyZjdhNTM0Yzg4NGI5OTA0MzBhNjg2MyIKKworUFlQSV9QQUNLQUdFID0gIk1ha28iCisKK2luaGVyaXQgcHlwaQorCitTUkNfVVJJW21kNXN1bV0gPSAiNTgzNmNjOTk3YjFiNzczZWYzODliZjY2MjljMzBlNjUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGUwMmZkZTU3YmQ0YWJiNWVjNDAwMTgxZTRjMzE0ZjU2YWMzZTQ5YmE0ZmI4YjBkNTBiYmExOGNiMjdkMjVhZSIKKworUkRFUEVORFNfJHtQTn0gPSAiIFwKKyAgICAke1BZVEhPTl9QTn0taHRtbCBcCisgICAgJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCisgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKKyAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKKyIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbWFrb18xLjAuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1ha29fMS4wLjcuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM3MmVlYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1ha29fMS4wLjcuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLW1ha28uaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tYXJrdXBzYWZlLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1hcmt1cHNhZmUuaW5jCmluZGV4IGU1MGY4Y2UuLjkyN2Y4NDQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1hcmt1cHNhZmUuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1hcmt1cHNhZmUuaW5jCkBAIC05LDQgKzksNCBAQAogUFlQSV9QQUNLQUdFID0gIk1hcmt1cFNhZmUiCiBpbmhlcml0IHB5cGkKIAotUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1yZSAke1BZVEhPTl9QTn0tc3RyaW5nb2xkIgorUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1zdHJpbmdvbGQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tYXJrdXBzYWZlXzEuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1hcmt1cHNhZmVfMS4wLmJiCmluZGV4IDVjOTg4NGIuLjA1YmJlOGEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1hcmt1cHNhZmVfMS4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1hcmt1cHNhZmVfMS4wLmJiCkBAIC0xLDQgKzEsNiBAQAogaW5oZXJpdCBzZXR1cHRvb2xzCiByZXF1aXJlIHB5dGhvbi1tYXJrdXBzYWZlLmluYwogCitSREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LXJlIgorCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1vbm90b25pY18xLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tb25vdG9uaWNfMS4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTkxZDE4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1vbm90b25pY18xLjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1TVU1NQVJZID0gIkFuIGltcGxlbWVudGF0aW9uIG9mIHRpbWUubW9ub3RvbmljKCkgZm9yIFB5dGhvbiAyLjAgdGhyb3VnaCAzLjIiCi1MSUNFTlNFID0gIkFwYWNoZS0yLjAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1kMjc5NGMwZGY1YjkwN2ZkYWNlMjM1YTYxOWQ4MDMxNCIKLQotU1JDX1VSSVttZDVzdW1dID0gIjM0MzUxMjUxZDFhNjc2NjdhMjVjZDc2NzNkMmU0NGJmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjJiNDY5ZTJkN2RkNDAzZjdmN2Y3OTIyN2ZlNWFkNTUxZWUxZTc2ZjhiYjMwMGFlOTM1MjA5ODg0YjkzYzdjMWIiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVJERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tY3R5cGVzICR7UFlUSE9OX1BOfS1pbyAke1BZVEhPTl9QTn0tcmUgJHtQWVRIT05fUE59LXRocmVhZGluZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW1vbm90b25pY18xLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tb25vdG9uaWNfMS40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNWQ4YWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tb25vdG9uaWNfMS40LmJiCkBAIC0wLDAgKzEsMTAgQEAKK1NVTU1BUlkgPSAiQW4gaW1wbGVtZW50YXRpb24gb2YgdGltZS5tb25vdG9uaWMoKSBmb3IgUHl0aG9uIDIuMCB0aHJvdWdoIDMuMiIKK0xJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWQyNzk0YzBkZjViOTA3ZmRhY2UyMzVhNjE5ZDgwMzE0IgorCitTUkNfVVJJW21kNXN1bV0gPSAiMjkzMDJjZDZiMTAxM2IzYWIwZDFlZDc4ZTIwZDIyZjIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYTAyNjExZDViNTE4Y2Q0MDUxYmYyMmQyMWJkMGFlNTViM2EwM2YyZDI5OTNhMTliNmM5MGQ5ZDE2ODY5MWY4NCIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1jdHlwZXMgJHtQWVRIT05fUE59LWlvICR7UFlUSE9OX1BOfS1yZSAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbXNncGFjay5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tc2dwYWNrLmluYwppbmRleCAyMjhjZTU5Li5mZGM4OTI2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tc2dwYWNrLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tc2dwYWNrLmluYwpAQCAtMiw4ICsyLDEyIEBACiBMSUNFTlNFID0gIkFwYWNoZS0yLjAiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1jZDk1MjMxODFkOWQ0ZmJmN2ZmY2E1MmVhYTJhNTc1MSIKIAotU1JDX1VSSVttZDVzdW1dID0gImRjZDg1NGZiNDFlZTc1ODRlYmJmMzVlMDQ5ZTZiZTk4IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjFhMmIxOWRmMGYwMzUxOWVjN2YxOWY4MjZhZmI5MzViMjAyZDg5NzliMDg1NmM2ZmIzZGMyODk1NTc5OWY4ODYiCitTUkNfVVJJW21kNXN1bV0gPSAiNmQ2NDRjMDZhODdhNWExMTFiYmJmNWIzNGI0YmU0NDAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzc4Y2M4YTZkMzU0NWI1MzJkZmQxNDlkYTcxNWFiYWU0ZmRhMmEzYWRiNmQ3NGU1MjVkMGQ1ZTUxZjQ2OTA5YiIKIAogUFlQSV9QQUNLQUdFID0gIm1zZ3BhY2stcHl0aG9uIgogaW5oZXJpdCBweXBpCisKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiXAorICAgICR7UFlUSE9OX1BOfS1pbyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1tc2dwYWNrXzAuNC44LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbXNncGFja18wLjUuNi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbXNncGFja18wLjQuOC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbXNncGFja18wLjUuNi5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmRnLWh0dHBzY2xpZW50LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5kZy1odHRwc2NsaWVudC5pbmMKaW5kZXggMTMzY2FiMS4uZDc0MzAyMyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmRnLWh0dHBzY2xpZW50LmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1uZGctaHR0cHNjbGllbnQuaW5jCkBAIC0zLDggKzMsOCBAQAogTElDRU5TRSA9ICJCU0QiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9NQU5JRkVTVC5pbjttZDU9Y2UyMmMwY2Q5ODZkMmRlM2Y3MDczY2Q2YjU1MjNhZTAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI1OWEyZjBhNWIzYjYwZTZjNTIwYTljYzdiZTlhZmY4NyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI3YmZkOGM1Y2ZjYmMyNDFhOTNjYTZhNGU0NWY5NTI2NTBmNWM3ZWNmN2M0OWIxZGJjZjVmNGQzOTAyNDBiZTBiIgorU1JDX1VSSVttZDVzdW1dID0gImEwZDM0OWNmOTUzMGUzMzE2OTdhNmU1YWIxZjQwZGU2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImZiYTRkNDc5OGRjYWMyOTY1ODc0ZjI0YWZiNjYzMWI0MzI2YmFhNGJkMDI1MDU3NDRkMzRmNjkwYzM1NDg1NmEiCiAKIFBZUElfUEFDS0FHRSA9ICJuZGdfaHR0cHNjbGllbnQiCiAKQEAgLTEzLDYgKzEzLDEzIEBACiAgICAgJHtQWVRIT05fUE59LXB5YXNuMSBcCiAiCiAKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1kYXRldGltZSBcCisgICAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAorICAgICR7UFlUSE9OX1BOfS1weW9wZW5zc2wgXAorICAgICR7UFlUSE9OX1BOfS1weWFzbjEgXAorIgorCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCiAKIFVQU1RSRUFNX0NIRUNLX1JFR0VYID0gIiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5kZy1odHRwc2NsaWVudF8wLjQuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5kZy1odHRwc2NsaWVudF8wLjQuNC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmRnLWh0dHBzY2xpZW50XzAuNC4zLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1uZGctaHR0cHNjbGllbnRfMC40LjQuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW5ldGFkZHIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmV0YWRkci5pbmMKaW5kZXggMjZiMGYxZS4uNWI2ZDRkZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmV0YWRkci5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmV0YWRkci5pbmMKQEAgLTYsMyArNiw4IEBACiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzhhZWVjN2NkZDAzNTA4MWQzYTRjMzA2Mzk0YjE5ZDY3NzYyM2JmNzZmYTA5MTNmNjY5NTEyN2M3NzUzYWVmZCIKIAogaW5oZXJpdCBweXBpCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1wcHJpbnQgXAorICAgICR7UFlUSE9OX1BOfS14bWwgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmV0YWRkcl8wLjcuMTkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1uZXRhZGRyXzAuNy4xOS5iYgppbmRleCA1ZTA4OWE5Li5jYTVhNzlhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1uZXRhZGRyXzAuNy4xOS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1uZXRhZGRyXzAuNy4xOS5iYgpAQCAtMSwyICsxLDYgQEAKIHJlcXVpcmUgcHl0aG9uLW5ldGFkZHIuaW5jCiBpbmhlcml0IHNldHVwdG9vbHMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXRleHR1dGlscyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1uZXR3b3JreF8xLjExLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmV0d29ya3hfMS4xMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmRhOGFlMy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1uZXR3b3JreF8xLjExLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiUHl0aG9uIHBhY2thZ2UgZm9yIGNyZWF0aW5nIGFuZCBtYW5pcHVsYXRpbmcgZ3JhcGhzIGFuZCBuZXR3b3JrcyIKLUxJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTkyNTU4NmVhNTg4ZWI5OTBkZTg0MGRjNzFlYTM3NTJmIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNmVmNTg0YTg3OWU5MTYzMDEzZTlhNzYyZTFjZjdjZDEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMGQwZTcwZTEwZGZiNDc2MDFjYmIzNDI1YTAwZTAzZTJhMmU5NzQ3N2JlNmY4MDYzOGZlZjkxZDU0ZGQxZTRiOCIKLQotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbi0ydG8zIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmV0d29ya3hfMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tbmV0d29ya3hfMi4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjMGM2ODYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1uZXR3b3JreF8yLjEuYmIKQEAgLTAsMCArMSwxMiBAQAorREVTQ1JJUFRJT04gPSAiUHl0aG9uIHBhY2thZ2UgZm9yIGNyZWF0aW5nIGFuZCBtYW5pcHVsYXRpbmcgZ3JhcGhzIGFuZCBuZXR3b3JrcyIKK0xJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTMzNzZmZjdjOWM1ODA0OGM2MmQ5MTQzMWY3ZjA4Y2RlIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNGEyYzJhNjJkZmM0NmJhN2Q1OTRkYWNhN2M4MzQ5OTUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjQyNzJjYTQxODk3MmI3MGExOTZjYjE1ZDljODVhNWE2MDQxZjA5YTJmMzJlMGQzMGMwMjU1ZjI1ZDQ1OGJiMSIKKworUFlQSV9QQUNLQUdFX0VYVCA9ICJ6aXAiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCisKK1JERVBFTkRTXyR7UE59ICs9ICJweXRob24tMnRvMyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW9hdXRobGliLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLW9hdXRobGliLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWRlOGEwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tb2F1dGhsaWIuaW5jCkBAIC0wLDAgKzEsMjUgQEAKK1NVTU1BUlkgPSAiQSBnZW5lcmljLCBzcGVjLWNvbXBsaWFudCwgdGhvcm91Z2ggaW1wbGVtZW50YXRpb24gb2YgdGhlIE9BdXRoIHJlcXVlc3Qtc2lnbmluZyBsb2dpYyIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9pZGFuL29hdXRobGliIgorCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTViYTljZTQxNDYzNjE1ZTA4MjYwOTgwNjI1NWJjZTFiIgorCitTUkNfVVJJID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL2E1LzhhLzIxMmU5YjQ3ZmI1NGJlMTA5ZjNmZjA2ODQxNjViYjM4YzUxMTE3ZjM0ZTE3NWMzNzlmY2U1YzdkZjc1NC9vYXV0aGxpYi0ke1BWfS50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiMjc3YTlhOTY2Y2M4YzcyZTQ5MmI0ZWViNDEzMzI0NDUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiY2U1N2I1MDFlOTA2ZmY0ZjYxNGU3MWMzNmEzYWI5ZWFjYmI5NmQzNWMyNGQxOTcwZDI1MzliYmMzZWM3MGNlMSIKKworUyA9ICIke1dPUktESVJ9L29hdXRobGliLSR7UFZ9IgorCisjIFRoZSBmb2xsb3dpbmcgY29uZmlncyAmIGRlcGVuZGVuY2llcyBhcmUgZnJvbSBzZXR1cHRvb2xzIGV4dHJhc19yZXF1aXJlLgorIyBUaGVzZSBkZXBlbmRlbmNpZXMgYXJlIG9wdGlvbmFsLCBoZW5jZSBjYW4gYmUgY29udHJvbGxlZCB2aWEgUEFDS0FHRUNPTkZJRy4KKyMgVGhlIHVwc3RyZWFtIG5hbWVzIG1heSBub3QgY29ycmVzcG9uZCBleGFjdGx5IHRvIGJpdGJha2UgcGFja2FnZSBuYW1lcy4KKyMKKyMgVW5jb21tZW50IHRoaXMgbGluZSB0byBlbmFibGUgYWxsIHRoZSBvcHRpb25hbCBmZWF0dXJlcy4KKyNQQUNLQUdFQ09ORklHID89ICJ0ZXN0IHNpZ25lZHRva2VuIHNpZ25hbHMgcnNhIgorUEFDS0FHRUNPTkZJR1t0ZXN0XSA9ICIsLCwke1BZVEhPTl9QTn0tYmxpbmtlciAke1BZVEhPTl9QTn0tY3J5cHRvZ3JhcGh5ICR7UFlUSE9OX1BOfS1ub3NlICR7UFlUSE9OX1BOfS1weWp3dCIKK1BBQ0tBR0VDT05GSUdbc2lnbmVkdG9rZW5dID0gIiwsLCR7UFlUSE9OX1BOfS1jcnlwdG9ncmFwaHkgJHtQWVRIT05fUE59LXB5and0IgorUEFDS0FHRUNPTkZJR1tzaWduYWxzXSA9ICIsLCwke1BZVEhPTl9QTn0tYmxpbmtlciIKK1BBQ0tBR0VDT05GSUdbcnNhXSA9ICIsLCwke1BZVEhPTl9QTn0tY3J5cHRvZ3JhcGh5IgorCitSREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWNvcmUgJHtQWVRIT05fUE59LWNyeXB0ICR7UFlUSE9OX1BOfS1kYXRldGltZSAke1BZVEhPTl9QTn0tanNvbiAke1BZVEhPTl9QTn0tbG9nZ2luZyAke1BZVEhPTl9QTn0tbWF0aCAke1BZVEhPTl9QTn0tbmV0Y2xpZW50ICR7UFlUSE9OX1BOfS11bml0dGVzdCIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tb2F1dGhsaWJfMi4wLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1vYXV0aGxpYl8yLjAuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzI5ZDIxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tb2F1dGhsaWJfMi4wLjYuYmIKQEAgLTAsMCArMSw0IEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLW9hdXRobGliLmluYworCitSREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LXJlICR7UFlUSE9OX1BOfS1sYW5nIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFoby1tcXR0LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhaG8tbXF0dC5pbmMKaW5kZXggYWQxY2U2YS4uZjgzNGU2ZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFoby1tcXR0LmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYWhvLW1xdHQuaW5jCkBAIC03LDEzICs3LDE1IEBACiBTUkNOQU1FID0gInBhaG8tbXF0dCIKIAogaW5oZXJpdCBweXBpCi1TUkNfVVJJW21kNXN1bV0gPSAiYjkzMzgyMzZlMjgzNmU4NTc5ZWYxNDA5NTYxODljYzQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMmM5ZWY1NDk0Y2ZjMWU0MWE5ZmZmNjU0NGM1YTJjZDU5ZWE1ZDQwMWQ5MTE5YTA2ZWNmN2ZhZDZhMmZmZWI5MyIKK1NSQ19VUklbbWQ1c3VtXSA9ICIyY2MyN2Q4YjM2OTcwMGIxZmM5OTMyNWFkZDBkYWRkMiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzMTkxMWY2MDMxZGUzMDZjMjdlZDc5ZGM3N2I2OTBkN2M1NWIwZGNiMGYwNDM0Y2EzNGVjNjM2MWQwMzcxMTIyIgogCiBERVBFTkRTICs9ICIke1BZVEhPTl9QTn0tcHl0ZXN0LXJ1bm5lci1uYXRpdmUiCiAKIFJERVBFTkRTXyR7UE59ID0gIlwKLSAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1tYXRoIFwKLSAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1pbyBcCi0gICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKKyAgICAke1BZVEhPTl9QTn0taW8gXAorICAgICR7UFlUSE9OX1BOfS1sb2dnaW5nIFwKKyAgICAke1BZVEhPTl9QTn0tbWF0aCBcCisgICAgJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCisgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCiAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYWhvLW1xdHRfMS4zLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYWhvLW1xdHRfMS4zLjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzNjliMmUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFoby1tcXR0XzEuMy4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1pbmhlcml0IHNldHVwdG9vbHMKLXJlcXVpcmUgcHl0aG9uLXBhaG8tbXF0dC5pbmMKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFoby1tcXR0XzEuMy4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFoby1tcXR0XzEuMy4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExMDMxMTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYWhvLW1xdHRfMS4zLjEuYmIKQEAgLTAsMCArMSw2IEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXBhaG8tbXF0dC5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFtXzEuOC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFtXzEuOC4yLmJiCmluZGV4IDA1YmRkZDUuLjYwYTNiNDMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhbV8xLjguMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYW1fMS44LjIuYmIKQEAgLTEwLDMgKzEwLDYgQEAKIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCiAKIFJERVBFTkRTXyR7UE59ID0gImxpYnBhbSIKKworaW5oZXJpdCBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJwYW0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYW5kYXMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFuZGFzLmluYwppbmRleCBkMWYzNzA3Li5iOWY4NGE2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYW5kYXMuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhbmRhcy5pbmMKQEAgLTMsMTMgKzMsMTIgQEAKIGhpZ2gtcGVyZm9ybWFuY2UsIGVhc3ktdG8tdXNlIGRhdGEgc3RydWN0dXJlcyBhbmQgZGF0YSBhbmFseXNpcyB0b29scyBmb3IgXAogdGhlIFB5dGhvbiBwcm9ncmFtbWluZyBsYW5ndWFnZS4iCiBIT01FUEFHRSA9ICJodHRwOi8vcGFuZGFzLnB5ZGF0YS5vcmcvIgotTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT02NjAxN2QzMTM0MzQ5MDE3NDA5Mzg2YmU4NTE3NjE0NSIKK0xJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZWUwNDcwZjJkZTMzNmMzNzBhNzFjMmY4ZDVlODFjMTEiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI0ZGY4NThmMjhiNGJmNGZhMDdkOWZiYjdmMjU2ODE3MyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJhNzc3ZTA3NjMzZDgzZDU0NmM1NTcwNjQyMDE3OTU1MWM4ZTAxMDc1YjUzYzQ5N2RjZjhhZTQwMzY3NjZiYzY2IgorU1JDX1VSSVttZDVzdW1dID0gImM3YTI3NTdiNjA3NzQ4MjU1ZjMyNzAyMjFhYzYxZDU5IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQ0YTk0MDkxZGQ3MWYwNTkyMmVlYzY2MTYzOGVjMWEzNWYyNmQ1NzNjMTE5YWEyZmFkOTY0ZjEwYTI4ODBlNmMiCiAKLVBZUElfUEFDS0FHRSA9ICJwYW5kYXMiCiBpbmhlcml0IHB5cGkKIAogREVQRU5EUyArPSAiIFwKQEAgLTE3LDYgKzE2LDcgQEAKICIKIAogUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWpzb24gXAogICAgICR7UFlUSE9OX1BOfS1udW1weSBcCiAgICAgJHtQWVRIT05fUE59LWRhdGV1dGlsIFwKICAgICAke1BZVEhPTl9QTn0tcHl0eiBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYW5kYXNfMC4yMC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFuZGFzXzAuMjAuMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjA5NzNjOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYW5kYXNfMC4yMC4zLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1pbmhlcml0IHNldHVwdG9vbHMKLXJlcXVpcmUgcHl0aG9uLXBhbmRhcy5pbmMKLQotUkRFUEVORFNfJHtQTn0gKz0gIiBcCi0gICAgJHtQWVRIT05fUE59LWpzb24gXAotICAgICR7UFlUSE9OX1BOfS1pbXBvcnRsaWIgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFuZGFzXzAuMjIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhbmRhc18wLjIyLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjNiZmFiOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhbmRhc18wLjIyLjAuYmIKQEAgLTAsMCArMSw3IEBACitpbmhlcml0IHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXBhbmRhcy5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWZ1dHVyZSBcCisgICAgJHtQWVRIT05fUE59LWpzb24gXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFyc2VfMS44LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYXJzZV8xLjguMi5iYgppbmRleCAwMzcyMjFhLi44ZTE2MzcyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYXJzZV8xLjguMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wYXJzZV8xLjguMi5iYgpAQCAtMSw2ICsxLDYgQEAKIFNVTU1BUlkgPSAiUGFyc2Ugc3RyaW5ncyB1c2luZyBhIHNwZWNpZmljYXRpb24gYmFzZWQgb24gdGhlIFB5dGhvbiBmb3JtYXQoKSBzeW50YXgiCiBMSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL3BhcnNlLnB5O21kNT1hODRiNDk0NTYzYmJhNDY2YTJmMDJiMDVmMmU2YWQ0YTtzdGFydGxpbmU9MTE5MTtlbmRsaW5lPTEyMTAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9wYXJzZS5weTtiZWdpbmxpbmU9MTE5MTtlbmRsaW5lPTEyMDk7bWQ1PTUxNDdhZmRkOWIzNjE1MjkwYWQ4NzMzZjAxMzdhMWExIgogCiBTUkNfVVJJW21kNXN1bV0gPSAiNDIwMDIzMzg1NTFiZGZhMGYwMWJiZTRlNjc5YTE3ZGQiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiODA0OGRkZTNmNWNhMDdhZDdhYzczNTA0NjA5NTJkODNiNjNlYWFjZWNkYWMxYjM3ZjQ1ZmQ3NDg3MGQ4NDlkMiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBhc3NsaWIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFzc2xpYi5pbmMKaW5kZXggZjI4OWMwZS4uOWU0NzdlYyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFzc2xpYi5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGFzc2xpYi5pbmMKQEAgLTExLDMgKzExLDkgQEAKIAogU1JDX1VSSVttZDVzdW1dID0gIjI1NDg2OWRhZTNmZDlmMDlmMDc0NmEzY2IyOWEwYjE1IgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjNkOTQ4ZjY0MTM4YzI1NjMzNjEzZjMwM2JjYzQ3MTEyNmVhZTY3YzA0ZDVlM2Y2YjdiOGNlNjI0MmY4NjUzZTAiCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LWNyeXB0IFwKKyAgICAke1BZVEhPTl9QTn0tbG9nZ2luZyBcCisgICAgJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wZXA4XzEuNy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGVwOF8xLjcuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjYyYjg2Mi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wZXA4XzEuNy4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotU1VNTUFSWSA9ICJQeXRob24gc3R5bGUgZ3VpZGUgY2hlY2tlciIKLUhPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9kcmVhbWhvc3QvY2xpZmYiCi1MSUNFTlNFID0gIkFwYWNoZS0yLjAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUUucnN0O21kNT1kOGViYmJlODMxMjU5Y2UwMTAxNzlkMmYzMTBiMGYzZSIKLQotU1JDX1VSSVttZDVzdW1dID0gIjJiMDMxMDliMDYxOGFmZTNiMDRiM2U2M2IzMzRhYzlkIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImExMTNkNWY1YWQ3YTdhYmFjZWY5ZGY1ZWMzZjJhZjIzYTIwYTI4MDA1OTIxNTc3YjE1ZGQ1ODRkMDk5ZDU5MDAiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVJERVBFTkRTXyR7UE59ICs9ICIgXAotICAgIHB5dGhvbi1wcmV0dHl0YWJsZSBcCi0gICAgcHl0aG9uLWNtZDIgXAotICAgIHB5dGhvbi1weXBhcnNpbmciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wZXA4XzEuNy4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGVwOF8xLjcuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTJkNzJkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGVwOF8xLjcuMS5iYgpAQCAtMCwwICsxLDE0IEBACitTVU1NQVJZID0gIlB5dGhvbiBzdHlsZSBndWlkZSBjaGVja2VyIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL2RyZWFtaG9zdC9jbGlmZiIKK0xJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRS5yc3Q7bWQ1PWQ4ZWJiYmU4MzEyNTljZTAxMDE3OWQyZjMxMGIwZjNlIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNjAzODIxZDA2ZGI5NDVjNzFkODExYjVhOGQ3ODQyM2MiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZmUyNDliNTJlMjA0OThlNTllMGI1YzUyNTZhYTUyZWU5OWZjMjk1YjI2ZWM5ZWFhODU3NzZmZmRiOWZlNjM3NCIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgcHl0aG9uLXByZXR0eXRhYmxlIFwKKyAgICBweXRob24tY21kMiBcCisgICAgcHl0aG9uLXB5cGFyc2luZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBleHBlY3QuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGV4cGVjdC5pbmMKaW5kZXggNDdkMDk3OS4uZmE4YWQwMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGV4cGVjdC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGV4cGVjdC5pbmMKQEAgLTQsMTUgKzQsMTEgQEAKIExJQ0VOU0UgPSAiSVNDIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MWM3YTcyNTI1MTg4MGFmOGM2YTE0ODE4MTY2NTM4NWIiCiAKLVNSQ05BTUUgPSAicGV4cGVjdCIKLQotU1JDX1VSSVttZDVzdW1dID0gIjM2OTQ0MTAwMDFhOTlkZmY4M2YwYjUwMGExY2ExYzk1IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjNkMTMyNDY1YTc1YjU3YWE4MTgzNDFjNjUyMTM5MmEwNmNjNjYwZmViMzk4OGQ3ZjEwNzRmMzliZDIzYzlhOTIiCitTUkNfVVJJW21kNXN1bV0gPSAiOTEzZmMwYTY4YTkxNWNkZjZhZDQyNTA0OTNjOTRjZjciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOWY4ZWIzMjc3NzE2YTAxZmFhZmFiYTU1M2Q2MjlkM2Q2MGExYTYyNGM3Y2Y0NWRhYTYwMGQyMTQ4YzMwMDIwYyIKIAogVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcGV4cGVjdCIKIAotUyA9ICIke1dPUktESVJ9LyR7U1JDTkFNRX0tJHtQVn0iCi0KIFJERVBFTkRTXyR7UE59ID0gIlwKICAgICAke1BZVEhPTl9QTn0tY29yZSBcCiAgICAgJHtQWVRIT05fUE59LWlvIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBleHBlY3RfNC4yLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wZXhwZWN0XzQuNS4wLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wZXhwZWN0XzQuMi4xLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wZXhwZWN0XzQuNS4wLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1waXBfOS4wLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1waXBfOS4wLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkZGQ4ZDUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGlwXzkuMC4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotU1VNTUFSWSA9ICJQSVAgaXMgYSB0b29sIGZvciBpbnN0YWxsaW5nIGFuZCBtYW5hZ2luZyBQeXRob24gcGFja2FnZXMiCi1IT01FUEFHRSA9ICJodHRwczovL3BpcC5weXBhLmlvLyIKLUxJQ0VOU0UgPSAiTUlUICYgTEdQTC0yLjEiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9MjVmYmE0NTEwOTU2NWY4N2RlMjBiYWU4NWJjMzk0NTIiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIzNWYwMWRhMzMwMDk3MTk0OTdmMDFhNGJhNjlkNjNjOSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIwOWYyNDNlMWE3YjQ2MWY2NTRjMjZhNzI1ZmEzNzMyMTFiYjdmZjE3YTkzMDAwNThiMjA1YzYxNjU4Y2E5NDBkIgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi0jIFNpbmNlIFBJUCBpcyBsaWtlIENQQU4gZm9yIFBFUkwgd2UgbmVlZCB0byBkcmFnIGluIGFsbCBweXRob24gbW9kdWxlcyB0byBlbnN1cmUgZXZlcnl0aGluZyB3b3JrcwotUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ID0gInB5dGhvbi1tb2R1bGVzIHB5dGhvbi1kaXN0cmlidXRlIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1waXBfOS4wLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1waXBfOS4wLjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNmYzZiYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBpcF85LjAuMy5iYgpAQCAtMCwwICsxLDE0IEBACitTVU1NQVJZID0gIlBJUCBpcyBhIHRvb2wgZm9yIGluc3RhbGxpbmcgYW5kIG1hbmFnaW5nIFB5dGhvbiBwYWNrYWdlcyIKK0hPTUVQQUdFID0gImh0dHBzOi8vcGlwLnB5cGEuaW8vIgorTElDRU5TRSA9ICJNSVQgJiBMR1BMLTIuMSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT0yNWZiYTQ1MTA5NTY1Zjg3ZGUyMGJhZTg1YmMzOTQ1MiIKKworU1JDX1VSSVttZDVzdW1dID0gImIxNWIzM2Y5YWFkNjFmODhkMGY4Yzg2NmQxNmM1NWQ4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjdiZjQ4ZjlhNjkzYmUxZDU4ZjQ5ZjdhZjdlMGFlOWZlMjlmZDY3MWNkZThhNTVlNmVkY2EzNTgxYzRlZjU3OTYiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCisKKyMgU2luY2UgUElQIGlzIGxpa2UgQ1BBTiBmb3IgUEVSTCB3ZSBuZWVkIHRvIGRyYWcgaW4gYWxsIHB5dGhvbiBtb2R1bGVzIHRvIGVuc3VyZSBldmVyeXRoaW5nIHdvcmtzCitSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgPSAicHl0aG9uLW1vZHVsZXMgcHl0aG9uLWRpc3RyaWJ1dGUgcHl0aG9uLW1pc2MiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBsdWdneS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wbHVnZ3kuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyMDM1OWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wbHVnZ3kuaW5jCkBAIC0wLDAgKzEsOSBAQAorU1VNTUFSWSA9ICJQbHVnaW4gYW5kIGhvb2sgY2FsbGluZyBtZWNoYW5pc21zIGZvciBweXRob24iCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kiCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTMzOGRhZDgwN2VkOTMzN2JmYWViOTk3OWMzYmZlMjBmIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZmZkZGU3YzNhNWJhOWE0NDA0MDQ1NzAzNjZmZmI2ZDUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiN2Y4YWU3ZjViZGY3NTY3MWE3MThkMmRhZjBhNjRiNzg4NWY3NDUxMGJjZDk4YjFhMGJiNDIwZWI5YTlkMGNmZiIKKworaW5oZXJpdCBweXBpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wbHVnZ3lfMC42LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wbHVnZ3lfMC42LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRjZDRmNQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBsdWdneV8wLjYuMC5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tcGx1Z2d5LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGx5LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBseS5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc0NDk1MAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBseS5pbmMKQEAgLTAsMCArMSwxOCBAQAorU1VNTUFSWSA9ICJQeXRob24gTGV4IGFuZCBZYWNjIgorREVTQ1JJUFRJT04gPSAiUHl0aG9uIHBseTogUExZIGlzIHlldCBhbm90aGVyIGltcGxlbWVudGF0aW9uIG9mIGxleCBhbmQgeWFjYyBmb3IgUHl0aG9uIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9wbHkiCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FLm1kO2JlZ2lubGluZT01O2VuZGxpbmU9MzI7bWQ1PWY1ZWU1YzM1NWMwZTY3MTljNzg3YTcxYjhmMGZhOTZjIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNjQ2NWY2MDJlNjU2NDU1YWZmY2Q3YzU3MzRjNjM4ZjgiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDBjN2MxYWFhODgzNThiOWM3NjViNmQzMDAwYzZlZWMwYmE0MmFiY2E1MzUxYjA5NTMyMWFlZjQ0NjA4MWRhMyIKKworaW5oZXJpdCBweXBpCisKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiXAorICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAorICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCisiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcGx5XzMuMTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wbHlfMy4xMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU2MWVmYS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wbHlfMy4xMC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVNVTU1BUlkgPSAiUHl0aG9uIExleCBhbmQgWWFjYyIKLURFU0NSSVBUSU9OID0gIlB5dGhvbiBwbHk6IFBMWSBpcyB5ZXQgYW5vdGhlciBpbXBsZW1lbnRhdGlvbiBvZiBsZXggYW5kIHlhY2MgZm9yIFB5dGhvbiIKLUhPTUVQQUdFID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcGx5IgotU0VDVElPTiA9ICJkZXZlbC9weXRob24iCi1MSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRS5tZDtiZWdpbmxpbmU9MztlbmRsaW5lPTMwO21kNT1mY2IwNGJjMmY3NjVlNDZhYjcwODRkNmFiNmU0NTJiYiIKLQotU1JDTkFNRSA9ICJwbHkiCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzL3NvdXJjZS9wLyR7U1JDTkFNRX0vJHtTUkNOQU1FfS0ke1BWfS50YXIuZ3oiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIxZDYzYzE2NmFiMjUwYmFiODdkOGRjYzQyZGNjYTcwZSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI5NmU5NGFmN2RkNzAzMWQ4ZDZkZDZlMmE4ZTBkZTU5M2I1MTFjMjExYTg2ZTI4YTljOTYyMWMyNzVhYzhiYWNiIgotCi1TID0gIiR7V09SS0RJUn0vJHtTUkNOQU1FfS0ke1BWfSIKLQotaW5oZXJpdCBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wbHlfMy4xMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBseV8zLjExLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiNjE2NWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wbHlfMy4xMS5iYgpAQCAtMCwwICsxLDIgQEAKK3JlcXVpcmUgcHl0aG9uLXBseS5pbmMKK2luaGVyaXQgc2V0dXB0b29scwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJldGVuZC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcmV0ZW5kLmluYwppbmRleCA3OGI2NzE3Li5iMzQyYWVmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcmV0ZW5kLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcmV0ZW5kLmluYwpAQCAtMyw3ICszLDcgQEAKIExJQ0VOU0UgPSAiQlNEIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS5yc3Q7bWQ1PTQxMTc4MGMwYjdmYTc1Njc1M2U5NGFmZmVlZTViYzk5IgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNzE0NzA1MGE5NWM5ZjQ5NDI0ODU1N2I0MmI1OGFkNzkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOTMwZjJjMWUxODUwM2U4ZjhjNDAzYWJlMmUwMjE2NmM0YTg4MTk0MTc0NTE0N2U3MTJjZGQ0ZjQ5ZjNmYjk2NCIKK1NSQ19VUklbbWQ1c3VtXSA9ICJhZDUzODgzZWRlNDhhZWFjN2FlNTg0ZjBkZTAyNDBlOCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjOTBlYjgxMGNkZThlYmIwNmRhZmNiODc5NmY5YTk1MjI4Y2U3OTY1MzFiYzgwNmU3OTRjMmY0NjQ5YWExYjEwIgogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcmV0ZW5kXzEuMC44LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJldGVuZF8xLjAuOS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJldGVuZF8xLjAuOC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJldGVuZF8xLjAuOS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJvbXB0LXRvb2xraXQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJvbXB0LXRvb2xraXQuaW5jCmluZGV4IGY1ZWQzNDkuLmNjNDA5YTQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByb21wdC10b29sa2l0LmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcm9tcHQtdG9vbGtpdC5pbmMKQEAgLTEwLDcgKzEwLDYgQEAKIFJERVBFTkRTXyR7UE59ICs9ICIgXAogICAgICR7UFlUSE9OX1BOfS1jb3JlIFwKICAgICAke1BZVEhPTl9QTn0tc2l4IFwKLSAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCiAgICAgJHtQWVRIT05fUE59LXRlcm1pbmFsIFwKICAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKICAgICAke1BZVEhPTl9QTn0td2N3aWR0aCBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcm9tcHQtdG9vbGtpdF8xLjAuMTUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcm9tcHQtdG9vbGtpdF8xLjAuMTUuYmIKaW5kZXggNzZlODQxMC4uNTI3YzkwNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJvbXB0LXRvb2xraXRfMS4wLjE1LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByb21wdC10b29sa2l0XzEuMC4xNS5iYgpAQCAtMSwyICsxLDYgQEAKIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCiByZXF1aXJlIHB5dGhvbi1wcm9tcHQtdG9vbGtpdC5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJvdG9idWYuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJvdG9idWYuaW5jCmluZGV4IDJmNTllZjkuLmI4NDk4M2QgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByb3RvYnVmLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcm90b2J1Zi5pbmMKQEAgLTIsMTUgKzIsMjQgQEAKIEhPTUVQQUdFID0gImh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvIgogU0VDVElPTiA9ICJkZXZlbC9weXRob24iCiAKLVJERVBFTkRTXyR7UE59ID0gInB5dGhvbi1zaXgiCi0KIExJQ0VOU0UgPSAiQlNELTMtQ2xhdXNlIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vJHtDT01NT05fTElDRU5TRV9ESVJ9L0JTRC0zLUNsYXVzZTttZDU9NTUwNzk0NDY1YmEwZWM1MzEyZDY5MTllMjAzYTU1ZjkiCiAKIGluaGVyaXQgcHlwaQogCi1TUkNfVVJJW21kNXN1bV0gPSAiYmZjMGM2MWMxNTZhOTk1ZTkwOTUyMTY5N2U3NTU3ODAiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZWYwMjYwOWVmNDQ1OTg3OTc2YTNhMjZiZmY3NzExOWM1MThlMDkxNWM5NjY2MWMzYTNiMTc4NTZkMGVmNjM3NCIKK1NSQ19VUklbbWQ1c3VtXSA9ICIzOTNhNTM0ODMyMjRjYjMzOGRmNWM2NDM2NDZjMDMwMCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwOTg3OWEyOTVmZDcyMzRlNTIzYjYyMDY2MjIzYjEyOGM1YThhODhmNjgyZTNhZmY2MmZiMTE1ZTRhMGQ4YmUwIgorCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tZGF0ZXRpbWUgXAorICAgICR7UFlUSE9OX1BOfS1qc29uIFwKKyAgICAke1BZVEhPTl9QTn0tbG9nZ2luZyBcCisgICAgJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCisgICAgJHtQWVRIT05fUE59LW51bWJlcnMgXAorICAgICR7UFlUSE9OX1BOfS1wa2d1dGlsIFwKKyAgICAke1BZVEhPTl9QTn0tc2l4IFwKKyAgICAke1BZVEhPTl9QTn0tdW5pdHRlc3QgXAorIgogCiAjIEZvciB1c2FnZSBpbiBvdGhlciByZWNpcGllcyB3aGVuIGNvbXBpbGluZyBwcm90b2J1ZiBmaWxlcyAoZS5nLiBieSBncnBjaW8tdG9vbHMpCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByb3RvYnVmXzMuNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHJvdG9idWZfMy41LjIuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXByb3RvYnVmXzMuNC4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wcm90b2J1Zl8zLjUuMi5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHN1dGlsLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBzdXRpbC5pbmMKaW5kZXggYzlhN2Y2ZC4uNWQ4ZTYxZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHN1dGlsLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wc3V0aWwuaW5jCkBAIC0yLDExICsyLDE5IEBACiBMSUNFTlNFID0gIkJTRCIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTBmMDJlOTlmN2YzYzlhN2ZlOGVjZmM1ZDQ0YzJiZTYyIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNTI5MjQ0YWVhNWQzMmZiMGMyZWE0NmQ4MGNlNTRhYmMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTJkZDljOGFiYmFkMTVmMDU1ZTk1NzkxMzAwMzViMzg2MTcwMjBjZTE3NmY0YTQ5OGI3ODcwZTYzMjFmZmE2NyIKK1NSQ19VUklbbWQ1c3VtXSA9ICIzYjI5MTgzM2RiZWE2MzFkYjlkMjcxYWE2MDJhMTY5YSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlMjQ2N2U5MzEyYzJmYTE5MTY4N2I4OWZmNGJjMmFkODg0M2JlNGFmNmZiNGRjOTVhN2NjNWY3ZDdhMzI3YjE4IgorCitQQUNLQUdFUyA9KyAiJHtQTn0tdGVzdHMiCisKK0ZJTEVTXyR7UE59LXRlc3RzICs9ICIgXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3BzdXRpbC90ZXN0KiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vcHN1dGlsL19fcHljYWNoZV9fL3Rlc3QqIFwKKyIKKwogCiBSREVQRU5EU18ke1BOfSArPSAiIFwKICAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAotICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKICAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKKyAgICAke1BZVEhPTl9QTn0teG1sIFwKICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBzdXRpbF81LjMuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBzdXRpbF81LjMuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmY0MDJhYS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wc3V0aWxfNS4zLjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1wc3V0aWwuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wc3V0aWxfNS40LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1wc3V0aWxfNS40LjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFhYmZiMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXBzdXRpbF81LjQuMy5iYgpAQCAtMCwwICsxLDYgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1wc3V0aWwuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5LmluYwppbmRleCAxYWVmMGU3Li5jN2Q2NzI3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weS5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHkuaW5jCkBAIC0xLDkgKzEsOSBAQAogU1VNTUFSWSA9ICJMaWJyYXJ5IHdpdGggY3Jvc3MtcHl0aG9uIHBhdGgsIGluaS1wYXJzaW5nLCBpbywgY29kZSwgbG9nIGZhY2lsaXRpZXMiCiBIT01FUEFHRSA9ICJodHRwOi8vcHkucmVhZHRoZWRvY3MuaW8vIgogTElDRU5TRSA9ICJNSVQiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1iNTA2ZjNkZjI4NzcwOGIyZjk5NTg4YjVjYzM1MTA5MSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWE2YmIwMzIwYjA0YTBhNTAzZjEyZjY5ZmVhNDc5ZGU5IgogCi1TUkNfVVJJW21kNXN1bV0gPSAiZDljM2Q4ZjczNGIwODE5ZmY0OGUzNTVkNzdiZjE3MzAiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMGYyZDU4NWQyMjA1MGU5MGM3ZDI5M2I2NDUxYzgzZGIwOTdkZjc3ODcxOTc0ZDkwZWZkNWEzMGRjMTJmY2RlMyIKK1NSQ19VUklbbWQ1c3VtXSA9ICIyNzljYTY5YzYzMjA2OWUxYjcxZTExYjE0NjQxY2EyOCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjYTE4OTQzZTI4MjM1NDE3NzU2MzE2YmZhZGE2Y2Q5NmIyM2NlNjBkZDUzMjY0MjY5MGRjZmRhYmE5ODhhNzZkIgogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weV8xLjQuMzQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weV8xLjUuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlfMS40LjM0LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weV8xLjUuMi5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlhc24xLW1vZHVsZXMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlhc24xLW1vZHVsZXMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmYTU0Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWFzbjEtbW9kdWxlcy5pbmMKQEAgLTAsMCArMSwxNiBAQAorU1VNTUFSWSA9ICJBIGNvbGxlY3Rpb24gb2YgQVNOLjEtYmFzZWQgcHJvdG9jb2xzIG1vZHVsZXMuIgorREVTQ1JJUFRJT04gPSAiQSBjb2xsZWN0aW9uIG9mIEFTTi4xIG1vZHVsZXMgZXhwcmVzc2VkIGluIGZvcm0gb2YgcHlhc24xXAorIGNsYXNzZXMuIEluY2x1ZGVzIHByb3RvY29scyBQRFVzIGRlZmluaXRpb24gKFNOTVAsIExEQVAgZXRjLikgYW5kIHZhcmlvdXNcCisgZGF0YSBzdHJ1Y3R1cmVzIChYLjUwOSwgUEtDUyBldGMuKS4iCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vZXRpbmdvZi9weWFzbjEtbW9kdWxlcyIKK0xJQ0VOU0UgPSAiQlNELTItQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTI4MDYwNmQ5YzE4ZjIwMGUwM2UwYzI0N2FjNjE0NzVhIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZmY5Mzg2OTg1OTBmMzE0ZmY5YjNkNWM0ODczN2Q4OTkiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYWYwMGVhOGYyMDIyYjYyODdkYzM3NWIyYzcwZjMxYWI1YWY4Mzk4OWZjNmZlOWVhY2Q0OTc2Y2UyNmNkN2NjYyIKKworaW5oZXJpdCBweXBpCisKK1JERVBFTkRTXyR7UE59ID0gIiR7UFlUSE9OX1BOfS1weWFzbjEiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMS1tb2R1bGVzXzAuMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlhc24xLW1vZHVsZXNfMC4yLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI3ODg4NAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMS1tb2R1bGVzXzAuMi4xLmJiCkBAIC0wLDAgKzEsMiBAQAorcmVxdWlyZSBweXRob24tcHlhc24xLW1vZHVsZXMuaW5jCitpbmhlcml0IHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWFzbjEuaW5jCmluZGV4IGRlZGIxOTEuLmYzYzMyZTAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMS5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlhc24xLmluYwpAQCAtMywxMiArMywxMSBAQAogTElDRU5TRSA9ICJCU0QtMi1DbGF1c2UiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnJzdDttZDU9MjgwNjA2ZDljMThmMjAwZTAzZTBjMjQ3YWM2MTQ3NWEiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJhMmQwMWM1NjFkNDk5NjA1NTY0MWJiYmI3NGVkYTU4ZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJmMDM4MGVhOTdkYjBlZGUwOTVhMGRkODdjZTMwMDNkNDZjMTk3MTkxZjkyNDIwNmU0M2Y3NzZmYzc3ZTUxZjA5IgorU1JDX1VSSVttZDVzdW1dID0gImNiNTg4M2RkYzZhOWY0MDU2MDA0MjlmMzdjZjA3NTljIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImQyNThiMGE3MTk5NGY3NzcwNTk5ODM1MjQ5Y2VjZTFjYWVmM2M3MGRlZjg2OGM0OTE1ZTZlNWNhNDliNjdkMTUiCiAKIFJERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiIFwKICAgICAke1BZVEhPTl9QTn0tY29kZWNzIFwKLSAgICAke1BZVEhPTl9QTn0tbGFuZyBcCiAgICAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAogICAgICR7UFlUSE9OX1BOfS1tYXRoIFwKICAgICAke1BZVEhPTl9QTn0tc2hlbGwgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlhc24xXzAuMy42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlhc24xXzAuMy42LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDYxOTE4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMV8wLjMuNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLXJlcXVpcmUgcHl0aG9uLXB5YXNuMS5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMV8wLjQuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YXNuMV8wLjQuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTNjNzRkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlhc24xXzAuNC4yLmJiCkBAIC0wLDAgKzEsNiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXB5YXNuMS5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tbGFuZyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWJpbmQxMS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWJpbmQxMS5pbmMKaW5kZXggZTI3M2E4ZC4uZTQ0MWRjNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHliaW5kMTEuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YmluZDExLmluYwpAQCAtMSw3ICsxLDcgQEAKIFNVTU1BUlkgPSAiU2VhbWxlc3Mgb3BlcmFiaWxpdHkgYmV0d2VlbiBDKysxMSBhbmQgUHl0aG9uIgogSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3dqYWtvYi9weWJpbmQxMSIKIExJQ0VOU0UgPSAiQlNELTItQ2xhdXNlIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9OWIyN2ZhYzdlOTM3MzIzZTNkZTljYTNhN2RiMzhlMzciCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1iZWI4NzExN2FmNjlmZDEwZmJmOWZiMTRjMjJhMmU2MiIKIAotU1JDX1VSSVttZDVzdW1dID0gImY0NTRkODk5MWY0N2JlZmU1NmQ0MTI2ZGY4NjFmYzk2IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImE5NmE5MjRmYWU2ZTI3MjFlZmJmMjRmNDc1NjEyODRmZDFlYTBiNjU1NjE5YTg2MjFjNDQyMzAzNjE4M2I4MjQiCitTUkNfVVJJW21kNXN1bV0gPSAiMmM2NTFhNzVhMjBkYWJiYWExOGE4YjAyM2ZmZDU0YzAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiY2JiMDM2YThhYWQ1OWExOTlhZDY3MmY5ODgxM2Y4NWM2NzI2NDJjNmE2N2I0ZmYzODY4YjFkNmFiYzVmYWUzZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YmluZDExXzIuMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHliaW5kMTFfMi4yLjIuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5YmluZDExXzIuMi4xLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWJpbmQxMV8yLjIuMi5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlibHVlei5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWJsdWV6LmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTlmZTU3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlibHVlei5pbmMKQEAgLTAsMCArMSwyMSBAQAorREVTQ1JJUFRJT04gPSAiQmx1ZXRvb3RoIFB5dGhvbiBleHRlbnNpb24gbW9kdWxlIgorSE9NRVBBR0UgPSAiaHR0cDovL2thcnVsaXMuZ2l0aHViLmlvL3B5Ymx1ZXovIgorU0VDVElPTiA9ICJkZXZlbC9weXRob24iCisKK0RFUEVORFMgPSAiYmx1ZXo1IgorCitMSUNFTlNFID0gIkdQTC0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT04YTcxZDA0NzVkMDhlZWU3NmQ4YjZkMGM2ZGJlYzU0MyIKKworaW5oZXJpdCBweXBpCisKK1NSQ19VUkkgPSAiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvYzEvOTgvMzE0OTQ4MWQ1MDhiZWUxNzQzMzViZTY3MjU4ODBmMDBkMjk3YWZlYmU3NWMxNWU5MTdhZjhmNmZlMTY5L1B5Qmx1ZXotMC4yMi56aXAiCitTUkNfVVJJW21kNXN1bV0gPSAiNDlkYWI5ZDVhOGYwYjc5OGM4MTI1YzdmNjQ5YmUzY2QiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGNlMDA2NzE2YTU0ZDlkMThlODE4NmEzZjFjOGIxMmE4ZTZiZWZlY2ZmZThmZDU4MjhhMjkxZmI2OTRjZTQ5ZCIKKworUyA9ICIke1dPUktESVJ9L1B5Qmx1ZXotJHtQVn0iCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgYmx1ZXo1IFwKKyAgICAke1BZVEhPTl9QTn0tZmNudGwgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlibHVlel8wLjIyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlibHVlel8wLjIyLmJiCmluZGV4IGVhYjljNTQuLjMxNThmNGIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Ymx1ZXpfMC4yMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWJsdWV6XzAuMjIuYmIKQEAgLTEsMTcgKzEsMiBAQAotREVTQ1JJUFRJT04gPSAiQmx1ZXRvb3RoIFB5dGhvbiBleHRlbnNpb24gbW9kdWxlIgotSE9NRVBBR0UgPSAiaHR0cDovL2thcnVsaXMuZ2l0aHViLmlvL3B5Ymx1ZXovIgotU0VDVElPTiA9ICJkZXZlbC9weXRob24iCi0KLVJERVBFTkRTXyR7UE59ID0gImJsdWV6NSIKLURFUEVORFMgPSAiYmx1ZXo1IgotCi1MSUNFTlNFID0gIkdQTC0yLjAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT04YTcxZDA0NzVkMDhlZWU3NmQ4YjZkMGM2ZGJlYzU0MyIKLQotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLQotU1JDX1VSSSA9ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9jMS85OC8zMTQ5NDgxZDUwOGJlZTE3NDMzNWJlNjcyNTg4MGYwMGQyOTdhZmViZTc1YzE1ZTkxN2FmOGY2ZmUxNjkvUHlCbHVlei0wLjIyLnppcCIKLVNSQ19VUklbbWQ1c3VtXSA9ICI0OWRhYjlkNWE4ZjBiNzk4YzgxMjVjN2Y2NDliZTNjZCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI0Y2UwMDY3MTZhNTRkOWQxOGU4MTg2YTNmMWM4YjEyYThlNmJlZmVjZmZlOGZkNTgyOGEyOTFmYjY5NGNlNDlkIgotCi1TID0gIiR7V09SS0RJUn0vUHlCbHVlei0ke1BWfSIKK3JlcXVpcmUgcHl0aG9uLXB5Ymx1ZXouaW5jCitpbmhlcml0IHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3BhcnNlci5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNwYXJzZXIuaW5jCmluZGV4IDZiMDU0ODIuLmQxMTJkOWYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3BhcnNlci5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHljcGFyc2VyLmluYwpAQCAtOSw3ICs5LDggQEAKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKIAogUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICJcCi0gICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorICAgICR7UFlUSE9OX1BOfS1wbHkgXAorICAgICR7UFlUSE9OX1BOfS1wcHJpbnQgXAogICAgIGNwcCBcCiAgICAgY3BwLXN5bWxpbmtzIFwKICAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNwYXJzZXJfMi4xOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3BhcnNlcl8yLjE4LmJiCmluZGV4IGFkYmMxYTguLjk4NzQyNzMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3BhcnNlcl8yLjE4LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3BhcnNlcl8yLjE4LmJiCkBAIC0xLDIgKzEsNiBAQAogaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKIHJlcXVpcmUgcHl0aG9uLXB5Y3BhcnNlci5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHljcnlwdG8uaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHljcnlwdG8uaW5jCmluZGV4IGZiMmMxN2QuLjIzMmNkYjcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3J5cHRvLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNyeXB0by5pbmMKQEAgLTMsMTIgKzMsMTYgQEAKIExJQ0VOU0UgPSAiUFNGdjIiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZUklHSFQ7bWQ1PTM1ZjM1NGQxOTllOGNiNzY2N2IwNTlhMjM1NzhlNjNkIgogCi1GSUxFU0VYVFJBUEFUSFNfcHJlcGVuZCA6PSAiJHtUSElTRElSfS8ke1BOfToiCitGSUxFU0VYVFJBUEFUSFNfcHJlcGVuZCA6PSAiJHtUSElTRElSfS9weXRob24tcHljcnlwdG86IgogCiBERVBFTkRTICs9ICIgZ21wIgogCiBpbmhlcml0IHB5cGkgYXV0b3Rvb2xzLWJyb2tlbnNlcAogCitTUkNfVVJJICs9ICJmaWxlOi8vY3Jvc3MtY29tcGlsaW5nLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly9DVkUtMjAxMy03NDU5LnBhdGNoIFwKKyAgICAgICAgICAgIgorCiBTUkNfVVJJW21kNXN1bV0gPSAiNTVhNjFhMDU0YWE2NjgxMmRhZjUxNjFhMGQ1ZDdlZGEiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjJjZTFlOTg5YjI3MmNmY2I2Nzc2MTY3NjNlMGEyZTdlYzY1OWVmZmE2N2E4OGFhOTJiM2E2NTUyOGY2MGEzYyIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHljcnlwdG9fMi42LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNyeXB0b18yLjYuMS5iYgppbmRleCA5MTlmOTFlLi5lMTNkYjAxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNyeXB0b18yLjYuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWNyeXB0b18yLjYuMS5iYgpAQCAtMSwxMCArMSw2IEBACiBpbmhlcml0IGRpc3R1dGlscwogcmVxdWlyZSBweXRob24tcHljcnlwdG8uaW5jCiAKLVNSQ19VUkkgKz0gImZpbGU6Ly9jcm9zcy1jb21waWxpbmcucGF0Y2ggXAotICAgICAgICAgICAgZmlsZTovL0NWRS0yMDEzLTc0NTkucGF0Y2ggXAotICAgICAgICAgICAiCi0KICMgV2UgZXhwbGljaXRseSBjYWxsIGRpc3R1dGlsc19kb19pbnN0YWxsLCBzaW5jZSB3ZSB3YW50IGl0IHRvIHJ1biwgYnV0CiAjICpkb24ndCogd2FudCB0aGUgYXV0b3Rvb2xzIGluc3RhbGwgdG8gcnVuLCBzaW5jZSB0aGlzIHBhY2thZ2UgZG9lc24ndAogIyBwcm92aWRlIGEgIm1ha2UgaW5zdGFsbCIgdGFyZ2V0LgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHljcnlwdG9kb21lLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3J5cHRvZG9tZS5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ5NjlmOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3J5cHRvZG9tZS5pbmMKQEAgLTAsMCArMSwyOSBAQAorU1VNTUFSWSA9ICJDcnlwdG9ncmFwaGljIGxpYnJhcnkgZm9yIFB5dGhvbiIKK0RFU0NSSVBUSU9OID0gIlB5Q3J5cHRvZG9tZSBpcyBhIHNlbGYtY29udGFpbmVkIFB5dGhvbiBwYWNrYWdlIG9mIGxvdy1sZXZlbFwKKyBjcnlwdG9ncmFwaGljIHByaW1pdGl2ZXMuIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5weWNyeXB0b2RvbWUub3JnIgorTElDRU5TRSA9ICJQRCAmIEJTRC0yLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UucnN0O21kNT03NzVmZTc3ODMxYzAzYmY4MmYzNWFiYzBlMjMwZDRjMSIKKworU1JDX1VSSVttZDVzdW1dID0gImEyNTg3YjYzODFiMGVmNGViOTYwY2VhMWU3NTA3ZDA0IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImM1ZGQyOWU5ZjFiNzMzZTc0MzExYmY5NWQwZTU0NGU5MWJkMWQxNGJjMDM2NmU4ZjQ0MzU2MmQ4ZDk5MjBiN2QiCisKK2luaGVyaXQgcHlwaQorCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0taW8gXAorICAgICR7UFlUSE9OX1BOfS1tYXRoIFwKKyIKKworUkRFUEVORFNfJHtQTn0tdGVzdHMgKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXVuaXR0ZXN0IFwKKyIKKworUEFDS0FHRVMgPSsgIiR7UE59LXRlc3RzIgorCitGSUxFU18ke1BOfS10ZXN0cyArPSAiIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9DcnlwdG8vU2VsZlRlc3QvIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9DcnlwdG8vU2VsZlRlc3QvX19weWNhY2hlX18vIFwKKyIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHljcnlwdG9kb21lXzMuNC4xMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3J5cHRvZG9tZV8zLjQuMTEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc3MDFlYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Y3J5cHRvZG9tZV8zLjQuMTEuYmIKQEAgLTAsMCArMSwyIEBACityZXF1aXJlIHB5dGhvbi1weWNyeXB0b2RvbWUuaW5jCitpbmhlcml0IHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5ZGJ1cy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWRidXMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3NzNiN2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWRidXMuaW5jCkBAIC0wLDAgKzEsMTEgQEAKK0RFU0NSSVBUSU9OID0gIlB5dGhvbmljIERCdXMgbGlicmFyeSIKK0hPTUVQQUdFID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHlkYnVzLyIKK0xJQ0VOU0UgPSAiTEdQTHYyLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1hOTE2NDY3YjkxMDc2ZTYzMWRkOGVkYjc0MjQ3NjljNyIKKworU1JDX1VSSVttZDVzdW1dID0gImM2YWJkNDQ4NjIzMjI2NzliZDRlOTA3YmViYzNlMGQwIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQyMDcxNjJlZmY1NDIyMzgyMmMxODVkYTA2YzFiYThhMzQxMzdhOTYwMmYzZGE1YTUyOGVlZGYzZjc4ZDBmMmMiCisKK1MgPSAiJHtXT1JLRElSfS9weWRidXMtJHtQVn0iCisKK1JERVBFTkRTXyR7UE59ID0gIiR7UFlUSE9OX1BOfS1weWdvYmplY3QiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWRidXNfMC42LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWRidXNfMC42LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTcyMmE4MAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5ZGJ1c18wLjYuMC5iYgpAQCAtMCwwICsxLDIgQEAKK3JlcXVpcmUgcHl0aG9uLXB5ZGJ1cy5pbmMKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWV4cGVjdC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWV4cGVjdC5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDJkNDFkNQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5ZXhwZWN0LmluYwpAQCAtMCwwICsxLDExIEBACitTVU1NQVJZID0gIlB5dGhvbiBleHBlY3RhdG9uIGxpYnJhcnkiCitERVNDUklQVElPTiA9ICJNaW5pbWFsIGJ1dCB2ZXJ5IGZsZXhpYmxlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBleHBlY3QgcGF0dGVybiIKK1NFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgorSE9NRVBBR0UgPSAiIGh0dHBzOi8vYml0YnVja2V0Lm9yZy9kd3QvcHlleHBlY3QiCitMSUNFTlNFID0gIklTQyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRS5tZDttZDU9NTAwYjg4NGU5ZGNkNWY2NzdhNTNjYmJlZThhY2U5MzkiCisKK2luaGVyaXQgcHlwaQorCitTUkNfVVJJW21kNXN1bV0gPSAiYzcxMzA3ZDZjNzA5NmZkYmRlMDgxMzAxOGRmYTAwOTIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZDY1NmVmN2UwN2E4YWE1MzljZTBhNDg4M2E2ODMzNDEwMzdiNmZjMWMzMjliZjU1YjYzYmZmYmYyY2NlOTU4MiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5ZXhwZWN0XzEuMC4xNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5ZXhwZWN0XzEuMC4xNy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjZiZWI3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlleHBlY3RfMS4wLjE3LmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1weWV4cGVjdC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Zmxha2VzXzEuMi4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlmbGFrZXNfMS4yLjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1ZTM0MTMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlmbGFrZXNfMS4yLjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1TVU1NQVJZID0gInBhc3NpdmUgY2hlY2tlciBvZiBQeXRob24gcHJvZ3JhbXMiCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vZHJlYW1ob3N0L2NsaWZmIgotTElDRU5TRSA9ICJBcGFjaGUtMi4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUkVBRE1FLnJzdDttZDU9ZWI0ODkxNjg3MDMwNmVmMzRhMDYxY2VjNzI3Y2NhZTUiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI5OTU3NDc1ODllOTdjNzUwNTVjZjViNGUxZTAzMWUwYiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIyZTRhMWI2MzZkODgwOWQ4ZjBhNjlmMzQxYWNmMTViMmU0MDFhMzIyMWVkZTExYmU0Mzk5MTFkMjNjZTIxMzllIgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29scwotCi1SREVQRU5EU18ke1BOfSArPSAiIFwKLSAgICBweXRob24tcHJldHR5dGFibGUgXAotICAgIHB5dGhvbi1jbWQyIFwKLSAgICBweXRob24tcHlwYXJzaW5nIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlmbGFrZXNfMS42LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWZsYWtlc18xLjYuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDQ0ODU5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlmbGFrZXNfMS42LjAuYmIKQEAgLTAsMCArMSwxNCBAQAorU1VNTUFSWSA9ICJwYXNzaXZlIGNoZWNrZXIgb2YgUHl0aG9uIHByb2dyYW1zIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL2RyZWFtaG9zdC9jbGlmZiIKK0xJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRS5yc3Q7bWQ1PTAyOWNlMWJlYjAyM2YyYzRjYTlmNDE3ZTQ5ODRhODY1IgorCitTUkNfVVJJW21kNXN1bV0gPSAiYjM4NWIwZTRjZDQwYTUyMjU1M2U5N2NkMmQ4MzU3M2UiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOGQ2MTZhMzgyZjI0M2RiZjE5YjU0NzQzZjI4MGI4MDE5OGJlMGJjYTNhNTM5NmYxZDJlMWZjYTYyMjNlODgwNSIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXByZXR0eXRhYmxlIFwKKyAgICAke1BZVEhPTl9QTn0tY21kMiBcCisgICAgJHtQWVRIT05fUE59LXB5cGFyc2luZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z3BnbWUvMDAwMS1yZWZsZWN0LTIuMS1yZXBvcnRpbmctZm9yLWtleS1pbXBvcnRzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlncGdtZS8wMDAxLXJlZmxlY3QtMi4xLXJlcG9ydGluZy1mb3Ita2V5LWltcG9ydHMucGF0Y2gKaW5kZXggZjU4NzAzNy4uMWYzMWNiOCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlncGdtZS8wMDAxLXJlZmxlY3QtMi4xLXJlcG9ydGluZy1mb3Ita2V5LWltcG9ydHMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlncGdtZS8wMDAxLXJlZmxlY3QtMi4xLXJlcG9ydGluZy1mb3Ita2V5LWltcG9ydHMucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1Gcm9tIDFjMTgxMmRlZjcxMTgwMzM4MmNjMjhjYWVhMWYzNWZiN2VmNzc0YjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGVkNDQ0NzRjMTFmNTc3YzE2NDQ5MTA5NjRhOTE3YTRjZjcwMWJiMGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBEYW5pZWwgS2FobiBHaWxsbW9yIDxka2dAZmlmdGhob3JzZW1hbi5uZXQ+CiBEYXRlOiBUdWUsIDI2IEphbiAyMDE2IDE0OjI0OjI2IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0ggMS81XSByZWZsZWN0IDIuMSByZXBvcnRpbmcgZm9yIGtleSBpbXBvcnRzCitTdWJqZWN0OiBbUEFUQ0hdIHJlZmxlY3QgMi4xIHJlcG9ydGluZyBmb3Iga2V5IGltcG9ydHMKIAogR251UEcgMi4xIGNoYW5nZXMgaG93IGl0IHJlcG9ydHMga2V5IGltcG9ydHMuICBUaGVzZSBjaGFuZ2VzIHNob3VsZAogbWFrZSB0aGUgcHlncGdtZSB0ZXN0IHN1aXRlIGNvbXBhdGlibGUgd2l0aCBHbnVQRyAyLjEuCkBAIC0xMiw2ICsxMiw3IEBACiBVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CiAKIFNpZ25lZC1vZmYtYnk6IENhdGFsaW4gRW5hY2hlIDxjYXRhbGluLmVuYWNoZUB3aW5kcml2ZXIuY29tPgorCiAtLS0KICB0ZXN0cy90ZXN0X2ltcG9ydC5weSB8IDIyICsrKysrKysrKysrLS0tLS0tLS0tLS0KICAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCkBAIC04NiwzICs4Nyw0IEBACiArICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLCBncGdtZS5JTVBPUlRfTkVXIHwgZ3BnbWUuSU1QT1JUX1NFQ1JFVCkpCiAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdC5pbXBvcnRzWzNdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoJzkzQzIyNDBENkI4QUExMEFCMjhGNzAxRDJDRjQ2QjdGQzk3RTZCMEYnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwgZ3BnbWUuSU1QT1JUX05FVykpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWdwZ21lLzAwMDItcGFzc3BocmFzZV9jYi1pcy1kZXByZWNhdGVkLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlncGdtZS8wMDAyLXBhc3NwaHJhc2VfY2ItaXMtZGVwcmVjYXRlZC5wYXRjaAppbmRleCBjY2Q5NDFmLi5jMThjZjNmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWdwZ21lLzAwMDItcGFzc3BocmFzZV9jYi1pcy1kZXByZWNhdGVkLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5Z3BnbWUvMDAwMi1wYXNzcGhyYXNlX2NiLWlzLWRlcHJlY2F0ZWQucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1Gcm9tIGRjNzU0ODJhZjA5NWQ2NjdhNGE5MjY1NWM0ZTdlYjMxMmU4MGM0MmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGJhMGRjODI3M2U0ZjgzYmNkMmQ0M2JhYTU5MTBhYWUzNGI5MzA0OGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBEYW5pZWwgS2FobiBHaWxsbW9yIDxka2dAZmlmdGhob3JzZW1hbi5uZXQ+CiBEYXRlOiBNb24sIDEgRmViIDIwMTYgMTk6MjU6MTIgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSCAyLzVdIHBhc3NwaHJhc2VfY2IgaXMgZGVwcmVjYXRlZAorU3ViamVjdDogW1BBVENIXSBwYXNzcGhyYXNlX2NiIGlzIGRlcHJlY2F0ZWQKIAogaHR0cHM6Ly9idWdzLmdudXBnLm9yZy9nbnVwZy9pc3N1ZTc2NyBpbmRpY2F0ZXMgdGhhdAogZ3BnbWVfc2V0X3Bhc3NwaHJhc2VfY2IgaXMgYSBkZXByZWNhdGVkIGNvcm5lciBvZiB0aGUgQVBJIGFuZCB0aGF0CkBAIC0xOSw2ICsxOSw3IEBACiBVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CiAKIFNpZ25lZC1vZmYtYnk6IENhdGFsaW4gRW5hY2hlIDxjYXRhbGluLmVuYWNoZUB3aW5kcml2ZXIuY29tPgorCiAtLS0KICB0ZXN0cy91dGlsLnB5IHwgOCArKysrKysrLQogIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKQEAgLTQ4LDMgKzQ5LDQgQEAKICsKICAgICAgICAgICMgaW1wb3J0IHJlcXVlc3RlZCBrZXlzIGludG8gdGhlIGtleXJpbmcKICAgICAgICAgIGN0eCA9IGdwZ21lLkNvbnRleHQoKQorICAgICAgICAgZm9yIGtleSBpbiBzZWxmLmltcG9ydF9rZXlzOgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlncGdtZS8wMDAzLWhhbmRsZS1nZW5lcmljLWVycm9yLXdoZW4tbm8tcGFzc3BocmFzZS1jYWxsYmFjay1wcmUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWdwZ21lLzAwMDMtaGFuZGxlLWdlbmVyaWMtZXJyb3Itd2hlbi1uby1wYXNzcGhyYXNlLWNhbGxiYWNrLXByZS5wYXRjaAppbmRleCA0NjJmNDQyLi42YWNiNjhiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWdwZ21lLzAwMDMtaGFuZGxlLWdlbmVyaWMtZXJyb3Itd2hlbi1uby1wYXNzcGhyYXNlLWNhbGxiYWNrLXByZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWdwZ21lLzAwMDMtaGFuZGxlLWdlbmVyaWMtZXJyb3Itd2hlbi1uby1wYXNzcGhyYXNlLWNhbGxiYWNrLXByZS5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUZyb20gMDI0ZmUyMTk1ODIxNDMwMTdiMmYwMmJjOTI0YzBlZDEwN2I2MzYxOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb20gNTc5YjU5MzBlMTVkZTg4NTViZjYzYjNjMjBiNmMzYWFmODk0YzNlYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IERhbmllbCBLYWhuIEdpbGxtb3IgPGRrZ0BmaWZ0aGhvcnNlbWFuLm5ldD4KIERhdGU6IE1vbiwgMSBGZWIgMjAxNiAxOToyNzo1OSAtMDUwMAotU3ViamVjdDogW1BBVENIIDMvNV0gaGFuZGxlIGdlbmVyaWMgZXJyb3Igd2hlbiBubyBwYXNzcGhyYXNlIGNhbGxiYWNrIHByZXNlbnQKK1N1YmplY3Q6IFtQQVRDSF0gaGFuZGxlIGdlbmVyaWMgZXJyb3Igd2hlbiBubyBwYXNzcGhyYXNlIGNhbGxiYWNrIHByZXNlbnQKIAogYXBwYXJlbnRseSBncGcgMi4xIHJldHVybnMgRVJSX0dFTkVSQUwgcmlnaHQgbm93IGlmIHRoZSBwaW5lbnRyeSB3YXMKIGluIGxvb3BiYWNrIG1vZGUgYW5kIG5vIHBhc3NwaHJhc2UgY2FsbGJhY2sgd2FzIHN1cHBsaWVkLiAgRWFybGllcgpAQCAtMTAsNiArMTAsNyBAQAogVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAogCiBTaWduZWQtb2ZmLWJ5OiBDYXRhbGluIEVuYWNoZSA8Y2F0YWxpbi5lbmFjaGVAd2luZHJpdmVyLmNvbT4KKwogLS0tCiAgdGVzdHMvdGVzdF9wYXNzcGhyYXNlLnB5IHwgMiArLQogIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQpAQCAtMjYsMyArMjcsNCBAQAogKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhjLmFyZ3NbMV0sIGdwZ21lLkVSUl9HRU5FUkFMKQogICAgICAgICAgZWxzZToKICAgICAgICAgICAgICBzZWxmLmZhaWwoJ2dwZ21lLkdwZ21lRXJyb3Igbm90IHJhaXNlZCcpCisgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWlmYWNlLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5aWZhY2UuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyMGIyNDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWlmYWNlLmluYwpAQCAtMCwwICsxLDExIEBACitTVU1NQVJZID0gIlB5aWZhY2UgaXMgYSBwYWNrYWdlIHRoYXQgZXhwb3NlcyB0aGUgbmV0d29yayBpbnRlcmZhY2VzIG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGluIGEgZWFzeSB0byB1c2UgYW5kIHRyYW5zcGFyZW50IHdheSIKK1NFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weWlmYWNlLyIKK0xJQ0VOU0UgPSAiR1BMdjMrIgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9NGZlODY5ZWU5ODdhMzQwMTk4ZmIwZDU0YzU1YzQ3ZjEiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIwNmMzYzcxZmU1MWRmNzQwZGFlNmE4OGExM2FmYjVlMCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI0YmI3OTEwMGNiY2Y3MzQ0YTFjY2FkZGM1NzhjZDY0NTVkYTQ3ZDhlYWM2ZWIxYmY5MDNlYzMyZTA0M2FmOTI0IgorCitpbmhlcml0IHB5cGkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5aWZhY2VfMC4wLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWlmYWNlXzAuMC41LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NGNiMzAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWlmYWNlXzAuMC41LmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1weWlmYWNlLmluYwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5aW5vdGlmeS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWlub3RpZnkuaW5jCmluZGV4IDAxNjhmMWEuLjk3NWYxMWMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5aW5vdGlmeS5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlpbm90aWZ5LmluYwpAQCAtMiw3ICsyLDEyIEBACiBMSUNFTlNFID0gIk1JVCIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWFiMTczY2FkZTc5NjViNDExNTI4NDY0NTg5YTA4MzgyIgogCi1SREVQRU5EU18ke1BOfSArPSAicHl0aG9uLXRocmVhZGluZyBweXRob24taW8gcHl0aG9uLXN1YnByb2Nlc3MgcHl0aG9uLW1pc2MgcHl0aG9uLXNoZWxsIgorUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKKyAgICAke1BZVEhPTl9QTn0taW8gXAorICAgICR7UFlUSE9OX1BOfS1taXNjIFwKKyAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAorIgogCiBTUkNfVVJJW21kNXN1bV0gPSAiOGU1ODBmYTFmZjM5NzFmOTRhNmY4MTY3MmI3NmM0MDYiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOWM5OThhNWQ3NjA2Y2E4MzUwNjVjZGFiYzAxM2FlNmM2NmViOWVhNzZhMDBhMWUzYmM2ZTBjZmUyYjRmNzFmNCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5aW5vdGlmeV8wLjkuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5aW5vdGlmeV8wLjkuNi5iYgppbmRleCBkMWY4NGMzLi4wYzlhMmM3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWlub3RpZnlfMC45LjYuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlpbm90aWZ5XzAuOS42LmJiCkBAIC0xLDIgKzEsNiBAQAogaW5oZXJpdCBzZXR1cHRvb2xzCiByZXF1aXJlIHB5dGhvbi1weWlub3RpZnkuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICJcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlqa3MuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlqa3MuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4NjZjNTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWprcy5pbmMKQEAgLTAsMCArMSwyMiBAQAorU1VNTUFSWSA9ICJQdXJlLVB5dGhvbiBKYXZhIEtleXN0b3JlIChKS1MpIGxpYnJhcnkiCitERVNDUklQVElPTiA9ICJQeUpLUyBlbmFibGVzIFB5dGhvbiBwcm9qZWN0cyB0byBsb2FkIGFuZCBtYW5pcHVsYXRlXAorIEphdmEgS2V5U3RvcmUgKEpLUykgZGF0YSB3aXRob3V0IGEgSlZNIGRlcGVuZGVuY3kuIFB5SktTIHN1cHBvcnRzIEpLUyxcCisgSkNFS1MsIEJLUyBhbmQgVUJFUiAoQm91bmN5Q2FzdGxlKSBrZXlzdG9yZXMuIgorSE9NRVBBR0UgPSAiaHR0cDovL2dpdGh1Yi5jb20va3VydGJyb3NlL3B5amtzIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT05Njk0ZDZjYzcyNGNhZjdmNzM4NmJlODhhNGE4MTk1OCIKKworU1JDX1VSSVttZDVzdW1dID0gImQ1MzUwMWU3YzgwZDQ2NTk2OTc0MmJjNmJlZTkxZDQ5IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjcwOWM0NGEzMDNkZDZiMjQ2NDA3OGViZWI2Nzc0MTdlNzE3ODE4ZDRiM2RjMzg0NGE0NjJiZWY5ZDIxNWRjYzgiCisKK2luaGVyaXQgcHlwaQorCitSREVQRU5EU18ke1BOfSA9ICJcCisgICAgJHtQWVRIT05fUE59LWphdmFvYmotcHkzIFwKKyAgICAke1BZVEhPTl9QTn0tcHlhc24xIFwKKyAgICAke1BZVEhPTl9QTn0tcHlhc24xLW1vZHVsZXMgXAorICAgICR7UFlUSE9OX1BOfS1weWNyeXB0b2RvbWUgXAorICAgICR7UFlUSE9OX1BOfS10d29maXNoXAorIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWprc18xNy4xLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWprc18xNy4xLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U5OWYyOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5amtzXzE3LjEuMS5iYgpAQCAtMCwwICsxLDIgQEAKK3JlcXVpcmUgcHl0aG9uLXB5amtzLmluYworaW5oZXJpdCBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWp3dC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWp3dC5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY5MjgyZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5and0LmluYwpAQCAtMCwwICsxLDE3IEBACitTVU1NQVJZID0gIkpTT04gV2ViIFRva2VuIGltcGxlbWVudGF0aW9uIGluIFB5dGhvbiIKK1NVTU1BUlkgPSAiSlNPTiBXZWIgVG9rZW4gaW1wbGVtZW50YXRpb24gaW4gUHl0aG9uIgorREVTQ1JJUFRJT04gPSAiQSBQeXRob24gaW1wbGVtZW50YXRpb24gb2YgSlNPTiBXZWIgVG9rZW4gZHJhZnQgMzIuXAorIE9yaWdpbmFsIGltcGxlbWVudGF0aW9uIHdhcyB3cml0dGVuIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9ncml1bSIKK0hPTUVQQUdFID0gImh0dHA6Ly9naXRodWIuY29tL2pwYWRpbGxhL3B5and0IgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT02ODYyNjcwNWE3YjUxM2NhOGQ1ZjQ0YTNlMjAwZWQwYyIKKworU1JDX1VSSVttZDVzdW1dID0gImY3ZGJlMGQ2MmYyMDg3YTc2MDU5NDZhZWVjYTAyNTQxIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImRhY2JhNTc4NmZlM2JmMWEwYWU4NjczODc0ZTI5ZjlhYzQ5Nzg2MDk1NWM1MDEyODljNjNiMTVkM2RhYWU2M2EiCisKK1BZUElfUEFDS0FHRSA9ICJQeUpXVCIKK2luaGVyaXQgcHlwaQorCitSREVQRU5EU18ke1BOfSA9ICIke1BZVEhPTl9QTn0tY3J5cHRvZ3JhcGh5IgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWp3dF8xLjYuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5and0XzEuNi4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwYTc3YjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWp3dF8xLjYuMS5iYgpAQCAtMCwwICsxLDIgQEAKK3JlcXVpcmUgcHl0aG9uLXB5and0LmluYworaW5oZXJpdCBzZXR1cHRvb2xzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWxpbnQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlsaW50LmluYwppbmRleCBjNTViY2U2Li5iYTg1Yjk4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWxpbnQuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bGludC5pbmMKQEAgLTMsMjMgKzMsMTMgQEAKIExJQ0VOU0UgPSAiR1BMdjIiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT00MzI1YWZkMzk2ZmViY2I2NTljMzZiNDk1MzMxMzVkNCIKIAotU1JDX1VSSVttZDVzdW1dID0gIjk4YTFlZTk4NWEzZWJjODc2YTIwZWI3NTc3ZGJhYjY4IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjFmNjViMzgxNWMzYmY3NTI0Yjg0NTcxMWQ1NGM0MjQyZTQwNTdkZDkzODI2NTg2NjIwMjM5ZWNkZmU1OTFmYjEiCitTUkNfVVJJW21kNXN1bV0gPSAiMmViNWYzY2I4ZmU1NjdlYWY1NDIwZGQ0MTUwMTIyMDIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzc3MzExODU5ZTBjMmQ3OTMyMDk1ZjMwZDJiMWJmZGM0YjZmZTExMWY1MzQ0NTBiYTcyN2E1MmVhZTMzMGVmMiIKIAogaW5oZXJpdCBweXBpCiAKIERFUEVORFMgKz0gIiR7UFlUSE9OX1BOfS1weXRlc3QtcnVubmVyLW5hdGl2ZSIKIAotUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1hc3Ryb2lkIFwKLSAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0taXNvcnQgXAotICAgICAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKLSAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAotICAgICAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1qc29uIFwKLSAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tcGtndXRpbCBcCi0gICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LWRpZmZsaWIgXAotICAgICAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1uZXRzZXJ2ZXIgXAotICAgICAgICAgICAgICAgICAgIgotCiBkb19pbnN0YWxsX2FwcGVuZCgpewogICAgIHJtICR7RH0ke2JpbmRpcn0vcHlsaW50CiAgICAgY2F0ID4+ICR7RH0ke2JpbmRpcn0vcHlsaW50IDw8RU9GCkBAIC0zMCwzICsyMCwxOSBAQAogICAgIGNobW9kIDc1NSAke0R9JHtiaW5kaXJ9L3B5bGludAogICAgIHNlZCAtaSAtZSAnczpeIyEvdXNyL2Jpbi9weXRob246IyEvdXNyL2Jpbi9lbnZcICR7UFlUSE9OX1BOfTpnJyAke0R9LyR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3B5bGludC90ZXN0L2RhdGEvYXNjcmlwdAogfQorCitQQUNLQUdFUyA9KyAiJHtQTn0tdGVzdHMiCitGSUxFU18ke1BOfS10ZXN0cys9ICIgXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3B5bGludC90ZXN0LyBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vcHlsaW50L3Rlc3R1dGlscy5weSBcCisiCisKK1JERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tYXN0cm9pZCBcCisgICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LWlzb3J0IFwKKyAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tbnVtYmVycyBcCisgICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKKyAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tanNvbiBcCisgICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LXBrZ3V0aWwgXAorICAgICAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1kaWZmbGliIFwKKyAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tbmV0c2VydmVyIFwKKyAgICAgICAgICAgICAgICAgICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bGludF8xLjcuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bGludF8xLjguMy5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlsaW50XzEuNy40LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weWxpbnRfMS44LjMuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bWlzcC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW1pc3AuaW5jCmluZGV4IDIxYmE3YmIuLjc3NjVjYzUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bWlzcC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHltaXNwLmluYwpAQCAtMyw3ICszLDEzIEBACiBMSUNFTlNFID0gIkJTRC0yLUNsYXVzZSIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWEzNjM5Y2Y1NzgwZjcxYjEyNWQzZTlkMWRjMTI3YzIwIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiMjAyNGJhYmQ5N2FiNTdjYTAzNjAzOTRlZGMzN2YyYjYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNzQ4MGFjYWRhOGNiYTk0NzJhODUwNzBjNTdiYWFkODlhZTlkZWVkODI2YTc1MTVhNGMxNDlhYzQ4OTIwYzI3MyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkNGZlZTJhYmIyZDc0NjgwMTBiN2ZlOWViYzY4YjBjYiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzMDRmYmQ4ODYyZGZkZTI3ZDc2N2MwOTNkZTg3ZmVjNDJmYzYzYzcwZDgzOTM2NDNkMWEzYjRmNzY1YWFlNzhmIgogCi1SREVQRU5EU18ke1BOfSArPSAiICR7UFlUSE9OX1BOfS1yZXF1ZXN0cyAke1BZVEhPTl9QTn0tanNvbiAke1BZVEhPTl9QTn0tanNvbnNjaGVtYSIKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1kYXRldXRpbCBcCisgICAgJHtQWVRIT05fUE59LWpzb24gXAorICAgICR7UFlUSE9OX1BOfS1qc29uc2NoZW1hIFwKKyAgICAke1BZVEhPTl9QTn0tcmVxdWVzdHMgXAorICAgICR7UFlUSE9OX1BOfS1zaXggXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHltaXNwXzIuNC44MC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bWlzcF8yLjQuODkuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bWlzcF8yLjQuODAuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bWlzcF8yLjQuODkuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bW9uZ28uaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHltb25nby5pbmMKaW5kZXggN2YxOTliNC4uYmFmM2RkNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHltb25nby5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHltb25nby5pbmMKQEAgLTYsMTAgKzYsMTAgQEAKIE1vbmdvREIuIFRoZSBncmlkZnMgcGFja2FnZSBpcyBhIGdyaWRmcyBpbXBsZW1lbnRhdGlvbiBvbiB0b3Agb2YgcHltb25nby4iCiBIT01FUEFHRSA9ICJodHRwOi8vZ2l0aHViLmNvbS9tb25nb2RiL21vbmdvLXB5dGhvbi1kcml2ZXIiCiBMSUNFTlNFID0gIkFwYWNoZS0yLjAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0yYTk0NDk0MmUxNDk2YWYxODg2OTAzZDI3NGRlZGIxMyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTg2ZDNmM2E5NWMzMjRjOTQ3OWJkODk4Njk2OGY0MzI3IgogCi1TUkNfVVJJW21kNXN1bV0gPSAiMzVhZTUzMDczYTI1NjAzNTkxZTA4NWIxOGJjNWEwZWMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTgyMGQ5MzQxNGYzYmVjMWZhNDU2Yzg0YWZiZDRhZjFiNDNmZjQxMzY2MzIxNjE5ZGI3NGU2YmMwNjVkNjkyNCIKK1NSQ19VUklbbWQ1c3VtXSA9ICIwZDcyYzg3ZmI5M2NlYTA3NTk1MjliZWZhZmVmY2U1NCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJmN2ViY2I4NDY5NjJlZTQwMzc0ZGIyZDkwMTRhODliZWE5Yzk4M2FlNjNjMTg3Nzk1N2MzYTBhNzU2OTc0Nzk2IgogCiBQQUNLQUdFUyA9KyAiJHtQWVRIT05fUE59LWJzb24iCiAKQEAgLTE3LDYgKzE3LDcgQEAKIAogUkRFUEVORFNfJHtQWVRIT05fUE59LWJzb24gKz0gIiBcCiAgICAgICR7UFlUSE9OX1BOfS1kYXRldGltZSBcCisgICAgICR7UFlUSE9OX1BOfS1qc29uIFwKICAgICAgJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCiAgICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKICAgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCkBAIC0yNCw0ICsyNSw1IEBACiAKIFJERVBFTkRTXyR7UE59ICs9ICIgXAogICAgICR7UFlUSE9OX1BOfS1ic29uIFwKKyAgICAke1BZVEhPTl9QTn0tcHByaW50IFwKICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bW9uZ29fMy41LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW1vbmdvXzMuNi4xLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW1vbmdvXzMuNS4xLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW1vbmdvXzMuNi4xLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW5ldGxpbnV4LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bmV0bGludXguaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhMzk4OTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW5ldGxpbnV4LmluYwpAQCAtMCwwICsxLDExIEBACitTVU1NQVJZID0gIkxpbnV4IG5ldHdvcmsgY29uZmlndXJhdGlvbiBsaWJyYXJ5IGZvciBQeXRob24iCitERVNDUklQVElPTiA9ICJUaGlzIGxpYnJhcnkgY29udGFpbnMgUHl0aG9uIGJpbmRpbmdzIHRvIGlvY3RsIGNhbGxzIgorU0VDVElPTiA9ICJkZXZlbC9weXRob24iCitIT01FUEFHRSA9ICJodHRwOi8vZ2l0aHViLmNvbS9ybGlzYWdvci9weW5ldGxpbnV4IgorTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9NzRlMTg2MTczNmVlOTU5ODI0ZmU3NTQyMzIzYzEyZTkiCisKK2luaGVyaXQgcHlwaQorCitTUkNfVVJJW21kNXN1bV0gPSAiMzMzNmU1ZDRhNDc4YWNjYTRlMzViZjMxMjViNGY4ODMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGFkMDgyOThjOWY1YmExNWExMWNkZGM2MzliYTg3NzhjYWJkZmM0MDJiNTEwNjZkOWUwYTMyNWU1YTViMzkxYyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bmV0bGludXhfMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHluZXRsaW51eF8xLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ1YWQ2YQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5bmV0bGludXhfMS4xLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1weW5ldGxpbnV4LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlvcGVuc3NsLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5b3BlbnNzbC5pbmMKaW5kZXggMWJmODMyNC4uNzcyMmU4ZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlvcGVuc3NsLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW9wZW5zc2wuaW5jCkBAIC01LDggKzUsOCBAQAogCiBERVBFTkRTICs9ICJvcGVuc3NsICR7UFlUSE9OX1BOfS1jcnlwdG9ncmFwaHkiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIwOWRjZDMwN2I4ZDIwNjhmOWRkNWFhYTNhM2E4ODk5MiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIyOTYzMGI5MDY0YTgyZTA0ZDgyNDJlYTAxZDdjOTNkNzBlYzMyMGY1ZTNlZDQ4ZTk1ZmNhYmM2YjFkMGY2Yzc2IgorU1JDX1VSSVttZDVzdW1dID0gImQ5YzUxMzRkYjhiZjMxODM1NzNiNzg0MDk1NGNhYzk0IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjJjMTBjZmJhNDZhNTJjMGIwOTUwMTE4OTgxZDYxZTcyYzFlNWIxYWFjNDUxY2ExYmM3N2RlMWE2Nzk0NTY3NzMiCiAKIFBZUElfUEFDS0FHRSA9ICJweU9wZW5TU0wiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5b3BlbnNzbF8xNy4zLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW9wZW5zc2xfMTcuNS4wLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW9wZW5zc2xfMTcuMy4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weW9wZW5zc2xfMTcuNS4wLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXBhcnNpbmcuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlwYXJzaW5nLmluYwppbmRleCAxOWY2ZDU1Li5lMzA4MzlmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXBhcnNpbmcuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cGFyc2luZy5pbmMKQEAgLTE4LDQgKzE4LDQgQEAKICAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKICIKIAotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXBlcmNsaXAuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlwZXJjbGlwLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDVkZTY3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlwZXJjbGlwLmluYwpAQCAtMCwwICsxLDEyIEBACitERVNDUklQVElPTiA9ICJBIGNyb3NzLXBsYXRmb3JtIGNsaXBib2FyZCBtb2R1bGUgZm9yIFB5dGhvbi4gKG9ubHkgaGFuZGxlcyBwbGFpbiB0ZXh0IGZvciBub3cpIgorTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTzttZDU9MWVkOTIxMTVjOGY5NmIxOWVjMzRlZDA5ZGY1ODZlNTEiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJkMmY2YTMxMjljZDZmMjUxOGI1MmJiMGI4ZGVlZWRhNyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjZTgyOTQzM2E5YWY2NDBlMDhlZTg5YjIwZjdjNjIxMzI3MTRiY2M1ZDc3ZGYxMTQwNDRkMGZjY2I4YzNiM2I4IgorCitpbmhlcml0IHB5cGkKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWN0eXBlcyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXBlcmNsaXBfMS42LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXBlcmNsaXBfMS42LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM5ZmNiZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cGVyY2xpcF8xLjYuMC5iYgpAQCAtMCwwICsxLDcgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tcHlwZXJjbGlwLmluYworCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tY29udGV4dGxpYiBcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlyb3V0ZTIuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlyb3V0ZTIuaW5jCmluZGV4IGRhMWQ0Y2QuLjllYzk4NjYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cm91dGUyLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXJvdXRlMi5pbmMKQEAgLTEsMjYgKzEsMjUgQEAKIFNVTU1BUlkgPSAiQSBwdXJlIFB5dGhvbiBuZXRsaW5rIGFuZCBMaW51eCBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gbGlicmFyeSIKIExJQ0VOU0UgPSAiR1BMdjIgJiBBcGFjaGUtMi4wIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS5HUEwudjI7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0xJQ0VOU0UuQXBhY2hlLnYyO21kNT0zYjgzZWY5NjM4N2YxNDY1NWZjODU0ZGRjM2M2YmQ1NyIKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0xJQ0VOU0UuQXBhY2hlLnYyO21kNT0zNDI4MWUzMTIxNjVmODQzYTJiN2QxZjExNGZlNjVjZSIKIAotU1JDX1VSSVttZDVzdW1dID0gIjczM2FkYjM2MmI2NjAzYzcyNjljMGIzZGYzMDQ1YTU1IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVjZGY0NDY1NmNmNjIzMzY5ZjBjYmYxODNkOWQxNGExYTUwZWJkZmZiZDUwZDRlMzBmZmRhNjJjMGEwNWQ3YjMiCi0KLVNSQ19VUkkgKz0gImZpbGU6Ly9pbXBvcnQtc2ltcGxlanNvbi1hcy1qc29uLnBhdGNoIgorU1JDX1VSSVttZDVzdW1dID0gIjljMjUxNTQzYzQyODJhMmY4YjFhOGQ2YWE4YWZjNjg4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjdhZmFkMjhlZTBhMGYzZTdjMzRhZGFhOWY5NTNkMDA1NjBlZDk5MTAyMDNlOTNmMTA3ODMzYjZlOGQxNTExNzEiCiAKIEZJTEVTRVhUUkFQQVRIU19wcmVwZW5kIDo9ICIke1RISVNESVJ9L3B5dGhvbi1weXJvdXRlMjoiCiAKIGluaGVyaXQgcHlwaQogCi1SREVQRU5EU18ke1BOfSArPSAiXAotICAke1BZVEhPTl9QTn0tZGlzdHV0aWxzIFwKLSAgJHtQWVRIT05fUE59LXNpbXBsZWpzb24gXAotICAke1BZVEhPTl9QTn0tbXVsdGlwcm9jZXNzaW5nIFwKLSAgJHtQWVRIT05fUE59LWlvICR7UFlUSE9OX1BOfS1wcHJpbnQgXAotICAke1BZVEhPTl9QTn0tcGlja2xlIFwKLSAgJHtQWVRIT05fUE59LWxvZ2dpbmcgXAotICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKLSAgJHtQWVRIT05fUE59LXRleHR1dGlscyBcCi0gICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKLSAgJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tY3R5cGVzIFwKKyAgICAke1BZVEhPTl9QTn0tZGlzdHV0aWxzIFwKKyAgICAke1BZVEhPTl9QTn0taW8gXAorICAgICR7UFlUSE9OX1BOfS1qc29uIFwKKyAgICAke1BZVEhPTl9QTn0tbG9nZ2luZyBcCisgICAgJHtQWVRIT05fUE59LW11bHRpcHJvY2Vzc2luZyBcCisgICAgJHtQWVRIT05fUE59LXBpY2tsZSBcCisgICAgJHtQWVRIT05fUE59LXBrZ3V0aWwgXAorICAgICR7UFlUSE9OX1BOfS1wcHJpbnQgXAorICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCisgICAgJHtQWVRIT05fUE59LXVuaXhhZG1pbiBcCiAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXJvdXRlMi9pbXBvcnQtc2ltcGxlanNvbi1hcy1qc29uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlyb3V0ZTIvaW1wb3J0LXNpbXBsZWpzb24tYXMtanNvbi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDczZGEwNy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXJvdXRlMi9pbXBvcnQtc2ltcGxlanNvbi1hcy1qc29uLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFt3cm9uZyBkZXBlbmRlbmN5XQotCi1TdWJqZWN0OiBbUEFUQ0hdIGltcG9ydCBzaW1wbGVqc29uIGFzIGpzb24KLQotQXQgcnVudGltZSBweXRob24tcHlyb3V0ZTIgdHJpZXMgdG8gaW1wb3J0IGpzb24sIGJ1dCB0aGUgbW9kdWxlIGlzIG5vdCAKLWF2YWlsYWJsZSwgaW1wb3J0IHNpbXBsZWpzb24gYXMganNvbiBzb2x2ZSB0aGUgaXNzdWUuCi0KLVNpZ25lZC1vZmYtYnk6IEZhYmlvIEJlcnRvbiA8ZmFiaW8uYmVydG9uQG9zc3lzdGVtcy5jb20uYnI+Ci0tLS0KLSBweXJvdXRlMi9uZXRsaW5rL3J0bmwvaWZpbmZtc2cucHkgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9weXJvdXRlMi9uZXRsaW5rL3J0bmwvaWZpbmZtc2cucHkgYi9weXJvdXRlMi9uZXRsaW5rL3J0bmwvaWZpbmZtc2cucHkKLWluZGV4IDRmMTRmMjUuLjU1NjQzZWIgMTAwNjQ0Ci0tLS0gYS9weXJvdXRlMi9uZXRsaW5rL3J0bmwvaWZpbmZtc2cucHkKLSsrKyBiL3B5cm91dGUyL25ldGxpbmsvcnRubC9pZmluZm1zZy5weQotQEAgLTEsNSArMSw1IEBACi0gaW1wb3J0IG9zCi0taW1wb3J0IGpzb24KLStpbXBvcnQgc2ltcGxlanNvbiBhcyBqc29uCi0gaW1wb3J0IGVycm5vCi0gaW1wb3J0IHNlbGVjdAotIGltcG9ydCBzdHJ1Y3QKLS0tIAotMi4xLjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlyb3V0ZTJfMC4zLjIyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlyb3V0ZTJfMC4zLjIyLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjljOGUwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cm91dGUyXzAuMy4yMi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotcmVxdWlyZSBweXRob24tcHlyb3V0ZTIuaW5jCi1pbmhlcml0IHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cm91dGUyXzAuNC4yMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5cm91dGUyXzAuNC4yMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjVmMWI0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlyb3V0ZTJfMC40LjIxLmJiCkBAIC0wLDAgKzEsNiBAQAorcmVxdWlyZSBweXRob24tcHlyb3V0ZTIuaW5jCitpbmhlcml0IHNldHVwdG9vbHMKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNlcmlhbC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNlcmlhbC5pbmMKaW5kZXggOTljNmZjNC4uNTJhN2UwNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzZXJpYWwuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c2VyaWFsLmluYwpAQCAtMiwyNiArMiw0MSBAQAogTElDRU5TRSA9ICJCU0QiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9ZDQ3NmQ5NDkyNmRiNmUwMDA4YTViMzg2MGQxZjVjMGQiCiAKLSMgRklYTUUgbWlnaHQgc3RvcCBwYWNrYWdpbmcgc2VyaWFsd2luMzIgYW5kIHNlcmlhbGphdmEgZmlsZXMKK1NSQ19VUklbbWQ1c3VtXSA9ICJlZDYxODNiMTU1MTlhMGFlOTY2NzVlOWMzMzMwYzY5YiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2ZTJkNDAxZmRlZTBlYWI5OTZjZjczNGU2Nzc3M2EwMTQzYjkzMjc3MmNhOGI0MjQ1MTQ0MGNmZWQ5NDJjNjI3IgorCitpbmhlcml0IHB5cGkKKworUEFDS0FHRVMgPSsgIiR7UE59LWphdmEgJHtQTn0tb3N4ICR7UE59LXdpbjMyICR7UE59LXRvb2xzIgorCitGSUxFU18ke1BOfS1qYXZhID0gIiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vc2VyaWFsLypqYXZhKiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vc2VyaWFsL19fcHljYWNoZV9fLypqYXZhKiBcCisiCisKK0ZJTEVTXyR7UE59LW9zeCA9ICIgXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3NlcmlhbC90b29scy8qb3N4KiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vc2VyaWFsL3Rvb2xzL19fcHljYWNoZV9fLypvc3gqIFwKKyIKKworRklMRVNfJHtQTn0td2luMzIgPSAiIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9zZXJpYWwvKnNlcmlhbGNsaSogXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3NlcmlhbC9fX3B5Y2FjaGVfXy8qc2VyaWFsY2xpKiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vc2VyaWFsLyp3aW4zMiogXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3NlcmlhbC9fX3B5Y2FjaGVfXy8qd2luMzIqIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9zZXJpYWwvdG9vbHMvbWluaXRlcm0qIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9zZXJpYWwvdG9vbHMvX19weWNhY2hlX18vbWluaXRlcm0qIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9zZXJpYWwvdG9vbHMvKndpbmRvd3MqIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9zZXJpYWwvdG9vbHMvX19weWNhY2hlX18vKndpbmRvd3MqIFwKKyIKIAogUkRFUEVORFNfJHtQTn0gPSAiXAogICAgICR7UFlUSE9OX1BOfS1mY250bCBcCiAgICAgJHtQWVRIT05fUE59LWlvIFwKICAgICAke1BZVEhPTl9QTn0tbG9nZ2luZyBcCiAgICAgJHtQWVRIT05fUE59LW5ldGNsaWVudCBcCisgICAgJHtQWVRIT05fUE59LW51bWJlcnMgXAorICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCiAgICAgJHtQWVRIT05fUE59LXN0cmluZ29sZCBcCiAgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCiAiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJlZDYxODNiMTU1MTlhMGFlOTY2NzVlOWMzMzMwYzY5YiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI2ZTJkNDAxZmRlZTBlYWI5OTZjZjczNGU2Nzc3M2EwMTQzYjkzMjc3MmNhOGI0MjQ1MTQ0MGNmZWQ5NDJjNjI3IgotCi1pbmhlcml0IHB5cGkKLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0JIyBXZSBkb24ndCBzdXBwb3J0IGpweXRob24gbm93LgotCWlmIFsgLWUgJHtEfSR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3NlcmlhbC9zZXJpYWxqYXZhLnB5IF07IHRoZW4KLQkJcm0gLWYgJHtEfSR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3NlcmlhbC9zZXJpYWxqYXZhLnB5Ci0JCXJtIC1mICR7RH0ke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9zZXJpYWwvc2VyaWFsamF2YS5weWMKLQlmaQotfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzZXJpYWxfMy40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzZXJpYWxfMy40LmJiCmluZGV4IDkxYTBmMjYuLmZkODUyYTIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c2VyaWFsXzMuNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNlcmlhbF8zLjQuYmIKQEAgLTEsNCArMSw0IEBACiBpbmhlcml0IHNldHVwdG9vbHMKIHJlcXVpcmUgcHl0aG9uLXB5c2VyaWFsLmluYwogCi1SREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWltcG9ydGxpYiIKK1JERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tYXJncGFyc2UiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNtaV8wLjEuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c21pXzAuMS4yLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYTIzNGRkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c21pXzAuMS4yLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotU1VNTUFSWSA9ICJTTk1QIFNNSS9NSUIgUGFyc2VyIgotREVTQ1JJUFRJT04gPSAiQSBwdXJlLVB5dGhvbiBpbXBsZW1lbnRhdGlvbiBvZiBTTk1QL1NNSSBNSUIgXAotICBwYXJzaW5nIGFuZCBjb252ZXJzaW9uIGxpYnJhcnkuIENhbiBwcm9kdWNlIFB5U05NUCBNSUIgbW9kdWxlcy4gXAotIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weXNtaSIKLVNFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgotCi1MSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UucnN0O21kNT1kOGIxYmJhZGQ2MzVmMTg3ZGVlNzRkOTk5YThjNjdiOCIKLQotU1JDTkFNRSA9ICJweXNtaSIKLQotU1JDX1VSSSA9ICJodHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvc291cmNlL3AvJHtTUkNOQU1FfS8ke1NSQ05BTUV9LSR7UFZ9LnRhci5neiIKLQotU1JDX1VSSVttZDVzdW1dID0gImY4NzU0ZTllZDc1Njk4Y2MxNmI0MGYxMjVkZjg1YjEyIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImUwOTEyMTgwZmM2ZmFhOWMyNjRkZjc4Zjk3ZTdjNDUxZjc3Zjg0ZjViZDg0MDA5OGQyY2U3YjFiZjcwMDgyYmMiCi0KLVMgPSAiJHtXT1JLRElSfS8ke1NSQ05BTUV9LSR7UFZ9IgotCi1pbmhlcml0IHNldHVwdG9vbHMKLQotUkRFUEVORFNfJHtQTn0gPSAicHl0aG9uLXBseSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c21pXzAuMi4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzbWlfMC4yLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQ3NTliNQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5c21pXzAuMi4yLmJiCkBAIC0wLDAgKzEsMTYgQEAKK1NVTU1BUlkgPSAiU05NUCBTTUkvTUlCIFBhcnNlciIKK0RFU0NSSVBUSU9OID0gIkEgcHVyZS1QeXRob24gaW1wbGVtZW50YXRpb24gb2YgU05NUC9TTUkgTUlCIFwKKyAgcGFyc2luZyBhbmQgY29udmVyc2lvbiBsaWJyYXJ5LiBDYW4gcHJvZHVjZSBQeVNOTVAgTUlCIG1vZHVsZXMuIFwKKyIKK0hPTUVQQUdFID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHlzbWkiCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKKworTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnJzdDttZDU9ZDhiMWJiYWRkNjM1ZjE4N2RlZTc0ZDk5OWE4YzY3YjgiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIzYjBmNzFlNGU5ZjczMGQyMTFmMDlkOGVmNTM3MTE0MCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIyYTMxNWNjM2U1NTZiMzQyODM3MmI2OWRhNjYzYTI0ZDJmMGRmOWU5YWIwNzViMDIyY2IxMzM4NTVmMjVhZWY3IgorCitpbmhlcml0IHB5cGkgc2V0dXB0b29scworCitSREVQRU5EU18ke1BOfSA9ICJweXRob24tcGx5IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzb2Nrcy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNvY2tzLmluYwppbmRleCBjZjk1MDlhLi41M2VjMWI3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNvY2tzLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNvY2tzLmluYwpAQCAtMywxMyArMywxNiBAQAogTElDRU5TRSA9ICJCU0QiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0xZDQ1N2JjZmZiOTY2MWI0NWY3OTlkNGVmZWU3MmYxNiIKIAotU1JDX1VSSVttZDVzdW1dID0gIjA3MDA3ZWM3ZWQ0NjI5MmRhYjA2MDEzZjJlM2FmMzY1IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImQwMDMyOWYyN2VmYTE1N2RiN2VmZTNjYTI2ZmNkNjkwMzNjZDYxZjgzODIyNDYxZWUzZjhhMzUzYjQ4ZTMzY2YiCitTUkNfVVJJW21kNXN1bV0gPSAiNDQxYzRlM2JmNWIwNDJmN2U3MDYxM2NkODcxZGYyNmMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiM2ZlNTJjNTU4OTBhMjQ4Njc2ZmQ2OWRjOWUzYzRlODExNzE4Yjc3NzgzNGJjYWFiN2E4MTI1Y2Y5ZGVhYzY3MiIKIAogUFlQSV9QQUNLQUdFID0gIlB5U29ja3MiCiAKIFJERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiXAorICAgICR7UFlUSE9OX1BOfS1lbWFpbCBcCiAgICAgJHtQWVRIT05fUE59LWlvIFwKKyAgICAke1BZVEhPTl9QTn0tbmV0Y2xpZW50IFwKKyAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAogIgogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXNvY2tzXzEuNi43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzb2Nrc18xLjYuOC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzb2Nrc18xLjYuNy5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzb2Nrc18xLjYuOC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzdGFjaGUuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzdGFjaGUuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkYmM5OWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXN0YWNoZS5pbmMKQEAgLTAsMCArMSwxMyBAQAorU1VNTUFSWSA9ICJQeXRob24gaW1wbGVtZW50YXRpb24gb2YgTXVzdGFjaGUiCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vZGVmdW5rdC9weXN0YWNoZSIKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZWI0NDE3ODAyYzU2Mzg0YWFjNzFiMzQ1MDU1MjhhNjAiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI0ODU4ODVlNjdhMGY2NDExZDUyNTJlNjliMjBhMzVjYSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJmN2JiYzI2NWZiOTU3YjRkNmM3YzA0MmIzMzY1NjMxNzk0NDRhYjMxM2ZiOTNhNzE5NzU5MTExZWFiZDNiODVhIgorCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tbmV0c2VydmVyIFwKKyIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzdGFjaGVfMC41LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXN0YWNoZV8wLjUuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDU1MDEyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHlzdGFjaGVfMC41LjQuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tcHlzdGFjaGUuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QtcnVubmVyLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdC1ydW5uZXIuaW5jCmluZGV4IGMxNzNhMTguLjc1NDY3NDMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdC1ydW5uZXIuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdC1ydW5uZXIuaW5jCkBAIC0xLDE2ICsxLDE2IEBACiBTVU1NQVJZID0gIkludm9rZSBweS50ZXN0IGFzIGRpc3R1dGlscyBjb21tYW5kIHdpdGggZGVwZW5kZW5jeSByZXNvbHV0aW9uIgogTElDRU5TRSA9ICJNSVQiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1lMzhiOTcxYzJiNGMzM2I5NzhkMWI5YzllY2U5YWU2MyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWEzM2YzOGJiZjQ3ZDQ4YzcwZmUwZDQwZTVmNzc0OThlIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiYThkZDU3YzgwY2RlMzdhNTg3ZGQ4YzM3NzQwYzFhYjEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWM5MDkzZTdhMTg3ODA0MDlkOWEzODlmMjAzNjZmMmZkMzlhY2ZiMWRiNjE1NDVmZGIyZTkwY2RiZDBiY2FlNCIKK1NSQ19VUklbbWQ1c3VtXSA9ICI4ZjgzNjNhNTJiYmFiYzRjZWRkNWUyMzliZWIyYmExMSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwZjdjM2EzY2Y1YWVhZDEzZjU0YmFhYTAxY2ViNDllNWFlOTJhYmE1ZDNmZjE5MjhlODFlMTg5YzQwYmM2NzAzIgogCiBpbmhlcml0IHB5cGkKIAogREVQRU5EUyArPSAiIFwKICAgICAke1BZVEhPTl9QTn0tc2V0dXB0b29scy1zY20tbmF0aXZlIgogCi1SREVQRU5EU18ke1BOfSA9ICIke1BZVEhPTl9QTn0tcHkgJHtQWVRIT05fUE59LXNldHVwdG9vbHMgJHtQWVRIT05fUE59LWFyZ3BhcnNlICR7UFlUSE9OX1BOfS1kZWJ1Z2dlciAke1BZVEhPTl9QTn0tanNvbiBcCitSREVQRU5EU18ke1BOfSA9ICIke1BZVEhPTl9QTn0tcHkgJHtQWVRIT05fUE59LXNldHVwdG9vbHMgJHtQWVRIT05fUE59LWRlYnVnZ2VyICR7UFlUSE9OX1BOfS1qc29uIFwKICAgICAgICAgICAgICAgICAgICR7UFlUSE9OX1BOfS1pbyIKIAogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0LXJ1bm5lcl8yLjEyLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QtcnVubmVyXzIuMTIuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE1MDU1Yy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QtcnVubmVyXzIuMTIuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotaW5oZXJpdCBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1weXRlc3QtcnVubmVyLmluYwotCi0jIERlcGVuZGVuY3kgb25seSBleGlzdHMgZm9yIHB5dGhvbjIKLVJERVBFTkRTXyR7UE59ICs9ICJweXRob24tY29tcGlsZXIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QtcnVubmVyXzMuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdC1ydW5uZXJfMy4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NjVhNzMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QtcnVubmVyXzMuMC5iYgpAQCAtMCwwICsxLDUgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tcHl0ZXN0LXJ1bm5lci5pbmMKKworIyBEZXBlbmRlbmN5IG9ubHkgZXhpc3RzIGZvciBweXRob24yCitSREVQRU5EU18ke1BOfSArPSAicHl0aG9uLWFyZ3BhcnNlIHB5dGhvbi1jb21waWxlciIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QuaW5jCmluZGV4IDYxNDAyNTAuLjRmZWI5YTAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0LmluYwpAQCAtMywxOCArMywyMSBAQAogTElDRU5TRSA9ICJNSVQiCiBMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1jMzliMjQ5NjVmNGFlZjY0MjIyY2IzNWRlOWQ0N2NjNCIKIAotU1JDX1VSSVttZDVzdW1dID0gIjQwMWMwMDViZDU3ZjcxZTYzYmEwMTVhYjA4NmZlNjdkIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImY0NmU0OWUwMzQwYTUzMjc2NDk5MWM0OTgyNDRhNjBlM2EzN2Q3NDI0YTUzMmIzZmYxYTZhNzY1M2YxYTQwM2EiCitTUkNfVVJJW21kNXN1bV0gPSAiMWI4M2EyNWQ0NWZhZDg5M2Y0MzBmYzUwMzE2NTNjNTYiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTE3YmFkMzZjMWE3ODdlMWE4YTY1OWRmMzVkZTUzYmEwNWY5ZjMzOThmYjllNGFjMTdlODBhZDU5MDNlYjhjNSIKIAogU1JDX1VSSV9hcHBlbmQgPSAiIGZpbGU6Ly8wMDAxLXNldHVwLnB5LXJlbW92ZS10aGUtc2V0dXBfcmVxdWlyZXMtZm9yLXNldHVwdG9vbHMtc2NtLnBhdGNoIFwKICAgICAgICAgICAgICAgICAgICBmaWxlOi8vcHl0ZXN0X3ZlcnNpb25fZml4LnBhdGNoICIKIAogUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICIgXAotICAgICR7UFlUSE9OX1BOfS1hcmdwYXJzZSBcCisgICAgJHtQWVRIT05fUE59LWF0dHJzIFwKICAgICAke1BZVEhPTl9QTn0tZGVidWdnZXIgXAorICAgICR7UFlUSE9OX1BOfS1kb2N0ZXN0IFwKICAgICAke1BZVEhPTl9QTn0tanNvbiBcCisgICAgJHtQWVRIT05fUE59LXBsdWdneSBcCiAgICAgJHtQWVRIT05fUE59LXB5IFwKICAgICAke1BZVEhPTl9QTn0tc2V0dXB0b29scyBcCisgICAgJHtQWVRIT05fUE59LXNpeCBcCiAiCiAKIEZJTEVTRVhUUkFQQVRIU19wcmVwZW5kIDo9ICIke1RISVNESVJ9L3B5dGhvbi1weXRlc3Q6IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0LzAwMDEtc2V0dXAucHktcmVtb3ZlLXRoZS1zZXR1cF9yZXF1aXJlcy1mb3Itc2V0dXB0b29scy1zY20ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QvMDAwMS1zZXR1cC5weS1yZW1vdmUtdGhlLXNldHVwX3JlcXVpcmVzLWZvci1zZXR1cHRvb2xzLXNjbS5wYXRjaAppbmRleCBlMjgzYjE3Li4wNmRmY2RmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QvMDAwMS1zZXR1cC5weS1yZW1vdmUtdGhlLXNldHVwX3JlcXVpcmVzLWZvci1zZXR1cHRvb2xzLXNjbS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QvMDAwMS1zZXR1cC5weS1yZW1vdmUtdGhlLXNldHVwX3JlcXVpcmVzLWZvci1zZXR1cHRvb2xzLXNjbS5wYXRjaApAQCAtMSwyOSArMSwzMiBAQAotRnJvbSBlMmQ4MTAwOWM3OTBiNGViZWNlZDg0MDhiNmJhZTc4MDYwY2FiY2FmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSAyNGE5MDFmZDE3OTI2ZThlMDViZTRlZDJlMDFiMDExM2EyZTNhODUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogRGVyZWsgU3RyYWthIDxkZXJla0Bhc3Rlcml1cy5pbz4KLURhdGU6IFdlZCwgNSBKdWwgMjAxNyAwOTozNTo1MSAtMDQwMAotU3ViamVjdDogW1BBVENIIDEvMV0gc2V0dXAucHk6IHJlbW92ZSB0aGUgc2V0dXBfcmVxdWlyZXMgZm9yIHNldHVwdG9vbHMtc2NtCitEYXRlOiBUdWUsIDE5IERlYyAyMDE3IDExOjM2OjM5IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIFtQQVRDSCAxLzFdIHNldHVwLnB5OiByZW1vdmUgdGhlIHNldHVwX3JlcXVpcmVzIGZvcgorIHNldHVwdG9vbHMtc2NtCiAKIFRoZSBzZXR1cF9yZXF1aXJlcyBhcmd1bWVudCBmb3JjZXMgdGhlIGRvd25sb2FkIG9mIHRoZSBlZ2cgZmlsZSBmb3Igc2V0dXB0b29scy1zY20KIGR1cmluZyB0aGUgZG9fY29tcGlsZSBwaGFzZS4gIFRoaXMgZG93bmxvYWQgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIHR5cGljYWwgZmV0Y2gKIGFuZCBtaXJyb3Igc3RydWN0dXJlLiAgVGhlIG9ubHkgdXNhZ2Ugb2Ygc2NtIGlzIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBfdmVyc2lvbi5weQogZmlsZSBhbmQgaW4gdGhlIHJlbGVhc2UgdGFyYmFsbCBpdCBpcyBhbHJlYWR5IGNvcnJlY3RseSBjcmVhdGVkCiAKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbb2Ugc3BlY2lmaWNdCisKIFNpZ25lZC1vZmYtYnk6IERlcmVrIFN0cmFrYSA8ZGVyZWtAYXN0ZXJpdXMuaW8+CiAtLS0KICBzZXR1cC5weSB8IDEgLQogIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQgYS9zZXR1cC5weSBiL3NldHVwLnB5Ci1pbmRleCA3NTE4NjhjLi5lZjZlYmYxIDEwMDY0NAoraW5kZXggM2ViMzhlZi4uMTE2MzIwMiAxMDA2NDQKIC0tLSBhL3NldHVwLnB5CiArKysgYi9zZXR1cC5weQotQEAgLTcxLDcgKzcxLDYgQEAgZGVmIG1haW4oKToKK0BAIC04Miw3ICs4Miw2IEBAIGRlZiBtYWluKCk6CiAgICAgICAgICBrZXl3b3Jkcz0idGVzdCB1bml0dGVzdCIsCiAgICAgICAgICBjbWRjbGFzcz17J3Rlc3QnOiBQeVRlc3R9LAogICAgICAgICAgIyB0aGUgZm9sbG93aW5nIHNob3VsZCBiZSBlbmFibGVkIGZvciByZWxlYXNlCiAtICAgICAgICBzZXR1cF9yZXF1aXJlcz1bJ3NldHVwdG9vbHMtc2NtJ10sCisgICAgICAgICBweXRob25fcmVxdWlyZXM9Jz49Mi43LCAhPTMuMC4qLCAhPTMuMS4qLCAhPTMuMi4qLCAhPTMuMy4qJywKICAgICAgICAgIGluc3RhbGxfcmVxdWlyZXM9aW5zdGFsbF9yZXF1aXJlcywKICAgICAgICAgIGV4dHJhc19yZXF1aXJlPWV4dHJhc19yZXF1aXJlLAotICAgICAgICAgcGFja2FnZXM9WydfcHl0ZXN0JywgJ19weXRlc3QuYXNzZXJ0aW9uJywgJ19weXRlc3QuX2NvZGUnLCAnX3B5dGVzdC52ZW5kb3JlZF9wYWNrYWdlcyddLAogLS0gCiAyLjcuNApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0L3B5dGVzdF92ZXJzaW9uX2ZpeC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdC9weXRlc3RfdmVyc2lvbl9maXgucGF0Y2gKaW5kZXggOTA4Zjg2Mi4uYjM3M2Q5MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ZXN0L3B5dGVzdF92ZXJzaW9uX2ZpeC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3QvcHl0ZXN0X3ZlcnNpb25fZml4LnBhdGNoCkBAIC0zNiw3ICszNiw3IEBACiArICAgICAgICByZXR1cm4gdmVyc2lvbl9tYXRjaC5ncm91cCgxKQogKyAgICByYWlzZSBSdW50aW1lRXJyb3IoIlVuYWJsZSB0byBmaW5kIHZlcnNpb24gc3RyaW5nLiIpCiAgCi0gZGVmIGhhc19lbnZpcm9ubWVudF9tYXJrZXJfc3VwcG9ydCgpOgorIGRlZiBnZXRfZW52aXJvbm1lbnRfbWFya2VyX3N1cHBvcnRfbGV2ZWwoKToKICAgICAgIiIiCiBAQCAtNTksOSArNzIsNyBAQCBkZWYgbWFpbigpOgogICAgICAgICAgbmFtZT0ncHl0ZXN0JywKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdF8zLjIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdF8zLjIuMi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDMyMmYwOS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3RfMy4yLjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi1weXRlc3QuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3RfMy40LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXRlc3RfMy40LjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAxYWIwNQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dGVzdF8zLjQuMi5iYgpAQCAtMCwwICsxLDggQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1weXRlc3QuaW5jCisKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tYXJncGFyc2UgXAorICAgICR7UFlUSE9OX1BOfS1jb21waWxlciBcCisgICAgJHtQWVRIT05fUE59LWZ1bmNzaWdzIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dHouaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ei5pbmMKaW5kZXggMWM2NTY0Yi4uNTE5NDg3ZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ei5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0ei5pbmMKQEAgLTEsMTcgKzEsMTkgQEAKIFNVTU1BUlkgPSAiV29ybGQgdGltZXpvbmUgZGVmaW5pdGlvbnMsIG1vZGVybiBhbmQgaGlzdG9yaWNhbCIKIEhPTUVQQUdFID0gImh0dHA6Ly9weXRob25ob3N0ZWQub3JnL3B5dHoiCiBMSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT0zOWVhOTI3NTJhMzVjZjY3ZDhhODg1ZDhlM2FmM2M2OSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT00ODc4YTkxNTcwOTIyNWJjZWFiNzM5YmRjMmExOGU4ZCIKIAogaW5oZXJpdCBweXBpCi1QWVBJX1BBQ0tBR0VfRVhUID0gInppcCIKIAotU1JDX1VSSVttZDVzdW1dID0gImY4OWJkZThhODExYzhhMWE1YmFjMTdlYWFhOTQzODNjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImY1YzA1NmU4ZjYyZDQ1YmE4MjE1ZTVjYjhmNTBkZmNjYjE5OGI0YjlmYmVhODUwMDY3NGYzNDQzZTQ2ODk1ODkiCitTUkNfVVJJW21kNXN1bV0gPSAiZjA1NDQzNzkyMGM4OTVkZDE0YTQ1MDlmYWJhZmUwMjkiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzA2NDI1MzAyZjJjZjY2OGYxYmJhN2EwYTAzZjNjMWQzNGQ0ZWJlZWYyYzcyMDAzZGEzMDhiMzk0N2M3Zjc0OSIKIAogUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICJcCiAgICAgJHtQWVRIT05fUE59LWRhdGV0aW1lIFwKKyAgICAke1BZVEhPTl9QTn0tZG9jdGVzdCBcCiAgICAgJHtQWVRIT05fUE59LWlvIFwKKyAgICAke1BZVEhPTl9QTn0tcGlja2xlIFwKKyAgICAke1BZVEhPTl9QTn0tcHByaW50IFwKICAgICAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKICIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0el8yMDE3LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXR6XzIwMTguNC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl0el8yMDE3LjIuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dHpfMjAxOC40LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXVkZXYuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl1ZGV2LmluYwppbmRleCBhYjRjNWZkLi5jYjkwNmM5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXVkZXYuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dWRldi5pbmMKQEAgLTE0LDYgKzE0LDUgQEAKICAgICAke1BZVEhPTl9QTn0tY3R5cGVzIFwKICAgICAke1BZVEhPTl9QTn0tbWlzYyBcCiAgICAgJHtQWVRIT05fUE59LXNpeCBcCi0gICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAogICAgICR7UFlUSE9OX1BOfS10aHJlYWRpbmcgXAogIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl1ZGV2XzAuMjEuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dWRldl8wLjIxLjAuYmIKaW5kZXggMzI1NzNiNy4uYTNlMTUwMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl1ZGV2XzAuMjEuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXVkZXZfMC4yMS4wLmJiCkBAIC0yLDYgKzIsNyBAQAogCiBSREVQRU5EU18ke1BOfSA9ICJcCiAgICAgJHtQWVRIT05fUE59LWNvbnRleHRsaWIgXAorICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKICIKIAogaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dXNiLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dXNiLmluYwppbmRleCBhZjIwMTA5Li4zMGJiZTg1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXVzYi5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl1c2IuaW5jCkBAIC0xLDEwICsxLDEwIEBACiBTVU1NQVJZID0gIlB5VVNCIHByb3ZpZGVzIFVTQiBhY2Nlc3Mgb24gdGhlIFB5dGhvbiBsYW5ndWFnZSIKIEhPTUVQQUdFID0gImh0dHA6Ly9weXVzYi5zb3VyY2Vmb3JnZS5uZXQvIgogTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT01MGQ0NmJkYTYyNDhhMGI0YTQ2YTZkNTlhNjZlZTA4ZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTUxNjkxZWQxMWNjMmM3YWU5M2UzODNmNjBlZDQ5YjBmIgogREVQRU5EUyArPSAibGlidXNiMSIKIAotU1JDX1VSSVttZDVzdW1dID0gImJjMTJlODNmZjNlZjEwNDVkNDMwNmQxM2E5OTU1ZmMxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjE0ZWM2NjA3N2JkY2Q2ZjFhYTllODkyYTBhMzVhNTRiYjNjMWVjNTZhYTc0MGVhZDY0MzQ5YzE4ZjAxODZkMTkiCitTUkNfVVJJW21kNXN1bV0gPSAiODYyYjU2NDUyYzY0OTQ4Yzc4N2FkOGVmOTQ5ODU5MGIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGU5YjcyY2M0YTQyMDVjYTY0ZmJmMWYzZmZmMzlhMzM1NTEyMTY2YzE1MWFkMTAzZTU1YzgyMjNhYzE0NzM2MiIKIAogaW5oZXJpdCBweXBpCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXVzYl8xLjAuMGIyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl1c2JfMS4wLjBiMi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI3M2Q5Zi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXVzYl8xLjAuMGIyLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1pbmhlcml0IGRpc3R1dGlscwotcmVxdWlyZSBweXRob24tcHl1c2IuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXVzYl8xLjAuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5dXNiXzEuMC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5YTc5NWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXVzYl8xLjAuMi5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tcHl1c2IuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXlhbWwuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcHl5YW1sLmluYwppbmRleCBhM2NmNjc3Li4zZmVmMGNhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1weXlhbWwuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXB5eWFtbC5pbmMKQEAgLTExLDQgKzExLDggQEAKIFNSQ19VUklbbWQ1c3VtXSA9ICI0YzEyOTc2MWI2NjFkMTgxZWJmN2ZmNGViMmQ3OTk1MCIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICI1OTI3NjZjNjMwMzIwN2EyMGVmYzQ0NTU4Nzc3ODMyMmQ3ZjczYjE2MWJkOTk0ZjIyN2FkYWEzNDFiYTIxMmFiIgogCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1kYXRldGltZSBcCisiCisKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXJlZGlzLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXJlZGlzLmluYwppbmRleCA1NzFiYjA4Li4xYTY1ZDczIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1yZWRpcy5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcmVkaXMuaW5jCkBAIC02LDMgKzYsNyBAQAogCiBTUkNfVVJJW21kNXN1bV0gPSAiMDQ4MzQ4ZDhjZmUwYjVkMGJiYTJmNGQ4MzUwMDVjM2IiCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYTIyY2E5OTNjZWEyOTYyZGJiNTg4ZjlmMzBkMDAxNWFjNGFmY2M0NWJlZTI3ZDM5NzhjMGRiZTllOTdjNmMwZiIKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tZGF0ZXRpbWUgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcm9ib3RmcmFtZXdvcmsuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tcm9ib3RmcmFtZXdvcmsuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4YmJiYzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1yb2JvdGZyYW1ld29yay5pbmMKQEAgLTAsMCArMSwyNiBAQAorU1VNTUFSWSA9ICJBIFB5dGhvbiBnZW5lcmljIHRlc3QgYXV0b21hdGlvbiBmcmFtZXdvcmsiCitERVNDUklQVElPTiA9ICJHZW5lcmljIG9wZW4gc291cmNlIHRlc3QgYXRvbWF0aW9uIGZyYW1ld29yayBmb3IgYWNjZXB0YW5jZVwKK3Rlc3RpbmcgYW5kIGFjY2VwdGFuY2UgdGVzdC1kcml2ZW4gZGV2ZWxvcG1lbnQgKEFUREQpLiBJdCBoYXMgZWFzeS10by11c2VcCit0YWJ1bGFyIHRlc3QgZGF0YSBzeW50YXggYW5kIGl0IHV0aWxpemVzIHRoZSBrZXl3b3JkLWRyaXZlbiB0ZXN0aW5nIGFwcHJvYWNoLlwKK0l0cyB0ZXN0aW5nIGNhcGFiaWxpdGllcyBjYW4gYmUgZXh0ZW5kZWQgYnkgdGVzdCBsaWJyYXJpZXMgaW1wbGVtZW50ZWQgZWl0aGVyXAord2l0aCBQeXRob24gb3IgSmF2YSwgYW5kIHVzZXJzIGNhbiBjcmVhdGUgbmV3IGhpZ2hlci1sZXZlbCBrZXl3b3JkcyBmcm9tXAorZXhpc3Rpbmcgb25lcyB1c2luZyB0aGUgc2FtZSBzeW50YXggdGhhdCBpcyB1c2VkIGZvciBjcmVhdGluZyB0ZXN0IGNhc2VzLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9yb2JvdGZyYW1ld29yay5vcmciCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9M2I4M2VmOTYzODdmMTQ2NTVmYzg1NGRkYzNjNmJkNTciCisKK2luaGVyaXQgcHlwaQorCitTUkNfVVJJW21kNXN1bV0gPSAiZWE0OWE1NGI5ZDdlMzgzMDI3MTIxOTRlODVjMzdlYWEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjAxOGYyMzM1NjgyMjdmOWFmOGMzNjZmOTNlMjQzYTE1N2I3NDJmM2JhZjViNjQ5ZWNjOTc1MGFjMGVlMWZmNyIKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXNoZWxsIFwKKyAgICAke1BZVEhPTl9QTn0tcHByaW50IFwKKyAgICAke1BZVEhPTl9QTn0teG1sIFwKKyAgICAke1BZVEhPTl9QTn0tZGlmZmxpYiBcCisgICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCisgICAgJHtQWVRIT05fUE59LWh0bWwgXAorICAgICR7UFlUSE9OX1BOfS1kb2N1dGlscyBcCisgICAgJHtQWVRIT05fUE59LWN0eXBlcyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1yb2JvdGZyYW1ld29ya18zLjAuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXJvYm90ZnJhbWV3b3JrXzMuMC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmN2RlZGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1yb2JvdGZyYW1ld29ya18zLjAuMi5iYgpAQCAtMCwwICsxLDYgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tcm9ib3RmcmFtZXdvcmsuaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS16bGliIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNjcnlwdC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zY3J5cHQuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4M2QwNWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zY3J5cHQuaW5jCkBAIC0wLDAgKzEsMTYgQEAKK0RFU0NSSVBUSU9OID0gIkJpbmRpbmdzIGZvciB0aGUgc2NyeXB0IGtleSBkZXJpdmF0aW9uIGZ1bmN0aW9uIGxpYnJhcnkiCitMSUNFTlNFID0gIkJTRC0yLUNsYXVzZSIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLyR7Q09NTU9OX0xJQ0VOU0VfRElSfS9CU0QtMi1DbGF1c2U7bWQ1PThiZWY4ZTY3MTJiMWJlNWFhNzZhZjFlYmRlOWQ2Mzc4IgorSE9NRVBBR0U9Imh0dHBzOi8vYml0YnVja2V0Lm9yZy9taGFsbGluL3B5LXNjcnlwdC9vdmVydmlldyIKKworRklMRVNFWFRSQVBBVEhTX3ByZXBlbmQgOj0gIiR7VEhJU0RJUn0vcHl0aG9uLXNjcnlwdDoiCisKK1NSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLXB5LXNjcnlwdC1yZW1vdmUtdGhlLWhhcmQtY29kZWQtaW5jbHVkZS1wYXRocy5wYXRjaCIKKworU1JDX1VSSVttZDVzdW1dID0gImFlOGUzMjYzYWEzMWIwNDBjMWY5YzdmMWUxODQzYTU2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImY4MjM5YjJkNDdmYTFkNDBiYzI3ZWZkMjMxZGM3MDgzNjk1ZDEwYzFjMmFjNTFhOTkzODAzNjA3NDFlMDM2MmQiCisKK2luaGVyaXQgcHlwaQorCitSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIlwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNjcnlwdC8wMDAxLXB5LXNjcnlwdC1yZW1vdmUtdGhlLWhhcmQtY29kZWQtaW5jbHVkZS1wYXRocy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNjcnlwdC8wMDAxLXB5LXNjcnlwdC1yZW1vdmUtdGhlLWhhcmQtY29kZWQtaW5jbHVkZS1wYXRocy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTM1ZTQzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2NyeXB0LzAwMDEtcHktc2NyeXB0LXJlbW92ZS10aGUtaGFyZC1jb2RlZC1pbmNsdWRlLXBhdGhzLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKK0Zyb20gZDhkYjQ3M2NlOTM0NmNkNjI1NGM5MGUxM2FjNDViM2JiZGU0OTRjNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERlcmVrIFN0cmFrYSA8ZGVyZWtAYXN0ZXJpdXMuaW8+CitEYXRlOiBTdW4sIDExIE1hciAyMDE4IDE5OjU1OjM4IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0hdIHB5LXNjcnlwdDogcmVtb3ZlIHRoZSBoYXJkIGNvZGVkIGluY2x1ZGUgcGF0aHMKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IERlcmVrIFN0cmFrYSA8ZGVyZWtAYXN0ZXJpdXMuaW8+CistLS0KKyBzZXR1cC5weSB8IDEgLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zZXR1cC5weSBiL3NldHVwLnB5CitpbmRleCBlMzZhZGM0Li4yZWJmYmYxIDEwMDY0NAorLS0tIGEvc2V0dXAucHkKKysrKyBiL3NldHVwLnB5CitAQCAtMjQsNyArMjQsNiBAQCBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnbGludXgnKToKKyAgICAgICAgICAgICAgICAgICAgICAoJ0hBVkVfU1lTX1NZU0lORk9fSCcsICcxJyksCisgICAgICAgICAgICAgICAgICAgICAgKCdfRklMRV9PRkZTRVRfQklUUycsICc2NCcpXQorICAgICBsaWJyYXJpZXMgPSBbJ2NyeXB0bycsICdydCddCistICAgIGluY2x1ZGVzID0gWycvdXNyL2xvY2FsL2luY2x1ZGUnLCAnL3Vzci9pbmNsdWRlJ10KKyAgICAgQ0ZMQUdTLmFwcGVuZCgnLU8yJykKKyBlbGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4zMicpOgorICAgICBkZWZpbmVfbWFjcm9zID0gWygnaW5saW5lJywgJ19faW5saW5lJyldCistLSAKKzIuNy40CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zY3J5cHRfMC44LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zY3J5cHRfMC44LjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZiZDAwZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNjcnlwdF8wLjguNi5iYgpAQCAtMCwwICsxLDMgQEAKK2luaGVyaXQgc2V0dXB0b29scyBweXRob24tZGlyCityZXF1aXJlIHB5dGhvbi1zY3J5cHQuaW5jCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNlcnBlbnQuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2VycGVudC5pbmMKaW5kZXggNjQ1NGVlMC4uM2Y1MWJjMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2VycGVudC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2VycGVudC5pbmMKQEAgLTEsOSArMSw5IEBACiBTVU1NQVJZID0gIlNlcmlhbGl6YXRpb24gYmFzZWQgb24gYXN0LmxpdGVyYWxfZXZhbCIKIExJQ0VOU0UgPSAiTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87bWQ1PTlmNjExZDRjOWUyODE2ZDM4N2JhYjY0YzQwZDkzMjk0IgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87bWQ1PWFjZGVhNjhmMGU1YTg5ZWI2Y2JmZGY1NGUzOGMzNTZlIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiZDlkNmFmYTUxZjI1NjBjZjU5MzNkY2RmZDk0NzAxMWQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiODQ4MGNlM2Q4ODY0Yjg5NzRkOWZlMzk2OTk4YzZhN2RhZTk2ZWRiNjhlZGY5MDViZmQzMmVhOWExMTg1M2JhNSIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkMGM1MGYxOTQzZmY4NmQ4MzBlYjNmZTQwZjZkYzFlMyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJiNjg1NTQ4M2Q5NWEwM2I2YWVlMzU4MzYzNjg0Y2QzOGEzYTY3MDI0MGRhNWJjNmRhNDI1MzA3OWNiMDdiOGRmIgogCiBpbmhlcml0IHB5cGkKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2VycGVudF8xLjIzLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2VycGVudF8xLjI0LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zZXJwZW50XzEuMjMuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNlcnBlbnRfMS4yNC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2V0dXB0b29scy1zY20uaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2V0dXB0b29scy1zY20uaW5jCmluZGV4IDgxYmJmMzMuLmViNjY1ODAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNldHVwdG9vbHMtc2NtLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zZXR1cHRvb2xzLXNjbS5pbmMKQEAgLTEsMTQgKzEsMTQgQEAKIFNVTU1BUlkgPSAidGhlIGJsZXNzZWQgcGFja2FnZSB0byBtYW5hZ2UgeW91ciB2ZXJzaW9ucyBieSBzY20gdGFncyIKIExJQ0VOU0UgPSAiTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ODM4YzM2NmY2OWI3MmM1ZGYwNWM5NmRmZjc5YjM1ZjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTztiZWdpbmxpbmU9ODtlbmRsaW5lPTg7bWQ1PTgyMjcxODAxMjY3OTdhMDE0OGY5NGY0ODNmM2UxNDg5IgogCi1TUkNfVVJJW21kNXN1bV0gPSAiZjE3NDkzZDUzZjBkODQyYmIwMTUyZjIxNDc3NTY0MGIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDlhYjQ2ODU1ODk5ODZhNDJkYTg1NzA2YjMzMTFhMmY3NGYxYWY1NjdkMzlmZWU2Y2IxZTA4OGQ3YTc1ZmI1ZiIKK1NSQ19VUklbbWQ1c3VtXSA9ICIxYjU1ZjljZWRkZTRhMzNhYjVkMjg2YzVmMzBlODZkYiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlMTYzZThhMTJkMjEyMWY3NzU3NTc3M2NmYzJiNTk4ODI3NWRjMWYxZDI1NDFmZGY3ODAxMjdjMjlkYmJlYTljIgogCiBQWVBJX1BBQ0tBR0UgPSAic2V0dXB0b29sc19zY20iCiBpbmhlcml0IHB5cGkKIAotUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ID0gIiR7UFlUSE9OX1BOfS1weSAke1BZVEhPTl9QTn0tc2V0dXB0b29scyAke1BZVEhPTl9QTn0tYXJncGFyc2UgJHtQWVRIT05fUE59LWRlYnVnZ2VyICR7UFlUSE9OX1BOfS1qc29uIgorUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ID0gIiR7UFlUSE9OX1BOfS1weSAke1BZVEhPTl9QTn0tc2V0dXB0b29scyAke1BZVEhPTl9QTn0tZGVidWdnZXIgJHtQWVRIT05fUE59LWpzb24iCiBSREVQRU5EU18ke1BOfV9jbGFzcy1uYXRpdmUgPSAiJHtQWVRIT05fUE59LXNldHVwdG9vbHMtbmF0aXZlIgogCiBCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNldHVwdG9vbHMtc2NtXzEuMTUuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNldHVwdG9vbHMtc2NtXzEuMTUuNi5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY5YmIwYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zZXR1cHRvb2xzLXNjbV8xLjE1LjYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWluaGVyaXQgc2V0dXB0b29scwotcmVxdWlyZSBweXRob24tc2V0dXB0b29scy1zY20uaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zZXR1cHRvb2xzLXNjbV8xLjE1LjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zZXR1cHRvb2xzLXNjbV8xLjE1LjcuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRiMzZlMwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNldHVwdG9vbHMtc2NtXzEuMTUuNy5iYgpAQCAtMCwwICsxLDQgQEAKK2luaGVyaXQgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tc2V0dXB0b29scy1zY20uaW5jCisKK1JERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tYXJncGFyc2UiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zaW1wbGVqc29uLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNpbXBsZWpzb24uaW5jCmluZGV4IDEzYzA0NTYuLmUyOGQ1MTggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNpbXBsZWpzb24uaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNpbXBsZWpzb24uaW5jCkBAIC00LDE0ICs0LDIwIEBACiBMSUNFTlNFID0gIk1JVCIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT1jNjMzOGQ3YWJkMzIxYzBiNTBhMmE1NDdlNDQxYzUyZSIKIAotU1JDX1VSSVttZDVzdW1dID0gIjZlMmYxYmQ1ZmIwYTkyNmZhY2Y1ZDg5ZDIxN2E3MTgzIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjAxYTIyZDQ5ZGRkOWExNjhiMTM2ZjI2Y2FjODdkOWEzMzU2NjBjZTA3YWE1YzYzMGI4ZTM2MDdkNmY0MzI1ZTciCitTUkNfVVJJW21kNXN1bV0gPSAiODcwYmY2MjU3NDY1Y2UyZWU4Y2FkMTRlMjM5NGY3ZWIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGM0ZWNmMjBlMDU0NzE2Y2MxZTVhODFjYWRjNDRkM2Y0MDI3MTA4ZDhkZDA4NjFkOGIxZTNiZDdhMzJkNGYwYSIKIAogaW5oZXJpdCBweXBpCiAKIFJERVBFTkRTXyR7UE59ICs9ICJcCi0gICAgJHtQWVRIT05fUE59LXJlIFwKICAgICAke1BZVEhPTl9QTn0taW8gXAogICAgICR7UFlUSE9OX1BOfS1uZXRzZXJ2ZXIgXAogICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKICIKKworUEFDS0FHRVMgPSsgIiR7UE59LXRlc3RzIgorUkRFUEVORFNfJHtQTn0tdGVzdHMgPSAiJHtQTn0gJHtQWVRIT05fUE59LXVuaXR0ZXN0IgorRklMRVNfJHtQTn0tdGVzdHMrPSAiIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9zaW1wbGVqc29uL3Rlc3RzIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS9zaW1wbGVqc29uL3Rvb2wucHkqIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNpbXBsZWpzb25fMy4xMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2ltcGxlanNvbl8zLjExLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzM2VkZmUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2ltcGxlanNvbl8zLjExLjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWluaGVyaXQgc2V0dXB0b29scwotcmVxdWlyZSBweXRob24tc2ltcGxlanNvbi5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNpbXBsZWpzb25fMy4xMy4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc2ltcGxlanNvbl8zLjEzLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRhZDlhOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNpbXBsZWpzb25fMy4xMy4yLmJiCkBAIC0wLDAgKzEsNCBAQAoraW5oZXJpdCBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi1zaW1wbGVqc29uLmluYworCitSREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LXJlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc21idXMuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc21idXMuaW5jCmluZGV4IGRlZDMwY2UuLmY0NzJhNTcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNtYnVzLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zbWJ1cy5pbmMKQEAgLTEsMTggKzEsMTIgQEAKIFNVTU1BUlkgPSAiU2V0IG9mIGkyYyB0b29scyBmb3IgbGludXggLSBQeXRob24gbW9kdWxlIgogTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL3NtYnVzbW9kdWxlLmM7c3RhcnRsaW5lPTE7ZW5kbGluZT0xNzttZDU9ZmEyNGRmMzIxYTUyMGZmOGUxMGYyMDM0MjVhYjlmYTgiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9zbWJ1c21vZHVsZS5jO2JlZ2lubGluZT0xO2VuZGxpbmU9MTc7bWQ1PWZhMjRkZjMyMWE1MjBmZjhlMTBmMjAzNDI1YWI5ZmE4IgorUFIgPSAicjEiCiAKLVNSQ19VUkkgPSAiaHR0cDovL2Rvd25sb2Fkcy55b2N0b3Byb2plY3Qub3JnL21pcnJvci9zb3VyY2VzL2kyYy10b29scy0ke1BWfS50YXIuYnoyIFwKLSIKLVNSQ19VUklbbWQ1c3VtXSA9ICI3MTA0YTEwNDNkMTFhNWUyYzdiMTMxNjE0ZWIxYjk2MiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkYjVlNjlmMmUyYTZlM2FhMmVjZGZlNmE1ZjQ5MGIxNDljNTA0NDY4NzcwZjU4OTIxYzhjNWI4YTc4NjBhNDQxIgorU1JDX1VSSSA9ICIke0tFUk5FTE9SR19NSVJST1J9L3NvZnR3YXJlL3V0aWxzL2kyYy10b29scy9pMmMtdG9vbHMtJHtQVn0udGFyLmd6ICIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkOTJhMjg4ZDcwZjMwNmQzODk1ZTNhN2U5YzE0YzlhYSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1YjYwZGFmNmYwMTFkZTBhY2I2MWRlNTdkYmE2MmYyMDU0YmIzOWYxOTk2MWQ2N2UwYzkxNjEwZjA3MWNhNDAzIgogCiBERVBFTkRTICs9ICJpMmMtdG9vbHMiCiAKIFMgPSAiJHtXT1JLRElSfS9pMmMtdG9vbHMtJHtQVn0vcHktc21idXMvIgotCi1kb19jb25maWd1cmVfcHJlcGVuZCgpIHsKLSAgICAjIEFkanVzdCBmb3IgT0UgaGVhZGVyIHJlbmFtZQotICAgIHNlZCAtaSBzOmxpbnV4L2kyYy1kZXYuaDpsaW51eC9pMmMtZGV2LXVzZXIuaDogTW9kdWxlLm1rCi0gICAgc2VkIC1pIHM6bGludXgvaTJjLWRldi5oOmxpbnV4L2kyYy1kZXYtdXNlci5oOiBzbWJ1c21vZHVsZS5jCi19CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zbWJ1c18zLjEuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNtYnVzXzQuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc21idXNfMy4xLjIuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNtYnVzXzQuMC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc25pbXB5XzAuOC4xMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNuaW1weV8wLjguMTEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiZGM2YmQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc25pbXB5XzAuOC4xMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVNVTU1BUlkgPSAiSW50ZXJhY3RpdmUgU05NUCB0b29sIgotREVTQ1JJUFRJT04gPSAiU25pbXB5IGlzIGEgUHl0aG9uLWJhc2VkIHRvb2wgcHJvdmlkaW5nIGEgc2ltcGxlIGludGVyZmFjZSB0byBidWlsZCBTTk1QIHF1ZXJ5IgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zbmltcHkiCi1TRUNUSU9OID0gImRldmVsL3B5dGhvbiIKLQotREVQRU5EUyA9ICJsaWJzbWkgcHl0aG9uLWNmZmktbmF0aXZlIHB5dGhvbi12Y3ZlcnNpb25lci1uYXRpdmUiCi0KLUxJQ0VOU0UgPSAiSVNDIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vZG9jcy9saWNlbnNlLnJzdDttZDU9N2M1M2FiMmQxMjQwODI4NjI1YzNlMDkzZDA0OWQ0ZjQiCi0KLVNSQ05BTUUgPSAic25pbXB5IgotCi1TUkNfVVJJID0gImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2Uvcy8ke1NSQ05BTUV9LyR7U1JDTkFNRX0tJHtQVn0udGFyLmd6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiN2Y2MjcwY2UyZTcyMDZkZjE2NTYwMmU2NmQ1Y2ViOTYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTA0MTA2MTRjN2JmZjEwNTNjYTY1YmQ3NjBjZTkxOWYxYTA3NGY0OTg4Yjg1N2RmNGM1N2NmMzU4NDc5MjJiMCIKLQotUyA9ICIke1dPUktESVJ9LyR7U1JDTkFNRX0tJHtQVn0iCi0KLWluaGVyaXQgc2V0dXB0b29scwotCi1SREVQRU5EU18ke1BOfSA9ICJweXRob24tY2ZmaSBcCi0gICAgICAgICAgICAgICAgICBweXRob24tcHljcGFyc2VyIFwKLSAgICAgICAgICAgICAgICAgIHB5dGhvbi1weXNubXAgXAotICAgICAgICAgICAgICAgICAgcHl0aG9uLXNldHVwdG9vbHMgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc25pbXB5XzAuOC4xMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNuaW1weV8wLjguMTIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzVhZjQ4ZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNuaW1weV8wLjguMTIuYmIKQEAgLTAsMCArMSwyMCBAQAorU1VNTUFSWSA9ICJJbnRlcmFjdGl2ZSBTTk1QIHRvb2wiCitERVNDUklQVElPTiA9ICJTbmltcHkgaXMgYSBQeXRob24tYmFzZWQgdG9vbCBwcm92aWRpbmcgYSBzaW1wbGUgaW50ZXJmYWNlIHRvIGJ1aWxkIFNOTVAgcXVlcnkiCitIT01FUEFHRSA9ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3NuaW1weSIKK1NFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgorCitERVBFTkRTICs9ICJsaWJzbWkgcHl0aG9uLWNmZmktbmF0aXZlIHB5dGhvbi12Y3ZlcnNpb25lci1uYXRpdmUiCisKK0xJQ0VOU0UgPSAiSVNDIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vZG9jcy9saWNlbnNlLnJzdDttZDU9N2M1M2FiMmQxMjQwODI4NjI1YzNlMDkzZDA0OWQ0ZjQiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI2ZDAxNmI2MzU2ZGI0MzJlNmE4N2FkNzA4ZWI4ZmNiNiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwNGVmY2ZiYTg2N2ZmYjBlMTBjYzhkN2Y5M2E1NTNjZWI2YmRmMmVlMzRlNDk3NjI3NDkwMjhhMmM3NjA5NmMxIgorCitpbmhlcml0IHB5cGkgc2V0dXB0b29scworCitSREVQRU5EU18ke1BOfSA9ICJweXRob24tY2ZmaSBcCisgICAgICAgICAgICAgICAgICBweXRob24tcHljcGFyc2VyIFwKKyAgICAgICAgICAgICAgICAgIHB5dGhvbi1weXNubXAgXAorICAgICAgICAgICAgICAgICAgcHl0aG9uLXNldHVwdG9vbHMgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3BlYWtsYXRlci5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zcGVha2xhdGVyLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGZhOGE2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3BlYWtsYXRlci5pbmMKQEAgLTAsMCArMSw5IEBACitERVNDUklQVElPTiA9ICJNZWRpYSBhc3NldCBtYW5hZ2VtZW50IGZvciBQeXRob24sIHdpdGggZ2x1ZSBjb2RlIGZvciB2YXJpb3VzIGZyYW1ld29ya3MiCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWI4MTA3NzAwNzVhMjliZjQ0Yjk2NjA3NDQwZTdjODAxIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZThkNWRiZTM2ZTUzZDVhMzVjZmYyMjdlNzk1ZThiYmYiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTlmZWEzMzZkMGVlZDM4YzFmMGJmMzE4MWVlMTIyMmQwZWY0NWYzYTlkZDM0ZWJlNjVlNmJmZmZkZDZhNjVhOSIKKworUFlQSV9QQUNLQUdFID0gInNwZWFrbGF0ZXIiCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNwZWFrbGF0ZXJfMS4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3BlYWtsYXRlcl8xLjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTZmZDU1NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNwZWFrbGF0ZXJfMS4zLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXNwZWFrbGF0ZXIuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zcWxhbGNoZW15LmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNxbGFsY2hlbXkuaW5jCmluZGV4IGNjOGU4MmYuLjBjMTkxYWUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNxbGFsY2hlbXkuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNxbGFsY2hlbXkuaW5jCkBAIC0yLDEzICsyLDEzIEBACiBhcHBsaWNhdGlvbiBkZXZlbG9wZXJzIHRoZSBmdWxsIHBvd2VyIGFuZCBmbGV4aWJpbGl0eSBvZiBTUUwiCiBIT01FUEFHRSA9ICJodHRwOi8vd3d3LnNxbGFsY2hlbXkub3JnLyIKIExJQ0VOU0UgPSAiTUlUIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NDUyZjRiOGFkYjBmZWJhNDJlNWJlNWYxZmJmYmY1MzgiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1iMWM0MTJjOWQ4ZDFjZTAxOGY3YTkzNzQ0MDdjMjJiYiIKIAogUFlQSV9QQUNLQUdFID0gIlNRTEFsY2hlbXkiCiBpbmhlcml0IHB5cGkKIAotU1JDX1VSSVttZDVzdW1dID0gImIzMjY2OWQ1M2U5MDNiMzUxMjA2NTAyNjU1MmYzYmZmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImYxMTkxZTI5ZTM1YjZmZTFhZWY3MTc1YTA5YjE3MDdlYmI3YmQwOGQwYjE3Y2IwZmVhZGE3NmM0OWU1YTJkMWUiCitTUkNfVVJJW21kNXN1bV0gPSAiMDNkYjFjOGY4YWU5MTE5NzdjMGJmMzk1MGE0YzljMjEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNmI1NWVjMzc5YzExYWQ2OTZmOTM3MWNlOGUwZGU5M2M3ZjIxMTM0MzIzZjU2YTU2YTFiMGQ4ZmJlZjE3MDEzYyIKIAogUkRFUEVORFNfJHtQTn0gKz0gIiBcCiAgICAgJHtQWVRIT05fUE59LWpzb24gXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3FsYWxjaGVteV8xLjEuMTQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zcWxhbGNoZW15XzEuMS4xNy5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3FsYWxjaGVteV8xLjEuMTQuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXNxbGFsY2hlbXlfMS4xLjE3LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zeXN0ZW1kLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXN5c3RlbWQuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViZTVkZTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi1zeXN0ZW1kLmluYwpAQCAtMCwwICsxLDE4IEBACitTVU1NQVJZID0gIlB5dGhvbiBpbnRlcmZhY2UgZm9yIGxpYnN5c3RlbWQiCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vc3lzdGVtZC9weXRob24tc3lzdGVtZCIKK0xJQ0VOU0UgPSAiTEdQTHYyLjErIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS50eHQ7bWQ1PTRmYmQ2NTM4MGNkZDI1NTk1MTA3OTAwOGIzNjQ1MTZjIgorCitQWVBJX1BBQ0tBR0UgPSAic3lzdGVtZC1weXRob24iCitERVBFTkRTICs9ICJzeXN0ZW1kICg8PTIzNCkiCitSREVQRU5EU18ke1BOfSArPSAic3lzdGVtZCAke1BZVEhPTl9QTn0tc3lzbG9nICR7UFlUSE9OX1BOfS1sb2dnaW5nIgorUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gInN5c3RlbWQiCitpbmhlcml0IHB5cGkgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI1MDcxZWE1YmNiOTc2MTg2ZTkyYTNmNWU3NWRmMjIxZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJmZDBlNDRiZjcwZWFkYWU0NWFhZGMyOTJjYjBhN2ViNWIwYjYzNzJjZDFiMzkxMjI4MDQ3ZDMzODk1ZGI4M2U3IgorCisjIGFsbG93IGZvciBjb21tb24gcGF0Y2hlcyBmb3IgcHl0aG9uLSBhbmQgcHl0aG9uMy1zeXN0ZW1kCitGSUxFU0VYVFJBUEFUSFNfcHJlcGVuZCA6PSAiJHtUSElTRElSfS9weXRob24tc3lzdGVtZDoiCisKK1NSQ19VUklfYXBwZW5kX2xpYmMtbXVzbCA9ICIgZmlsZTovLzAwMDEtUHJvdmlkZS1pbXBsZW1lbnRhdGlvbi1vZi1zdHJuZHVwYS1mb3ItbXVzbC5wYXRjaCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXN5c3RlbWQvMDAwMS1Qcm92aWRlLWltcGxlbWVudGF0aW9uLW9mLXN0cm5kdXBhLWZvci1tdXNsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3lzdGVtZC8wMDAxLVByb3ZpZGUtaW1wbGVtZW50YXRpb24tb2Ytc3RybmR1cGEtZm9yLW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDcwODVhOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXN5c3RlbWQvMDAwMS1Qcm92aWRlLWltcGxlbWVudGF0aW9uLW9mLXN0cm5kdXBhLWZvci1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsNDIgQEAKK0Zyb20gOGI2MzlmOWZhZjYxOTllNDdiOWVhZTA2OThkMDFhMjI5MTdiNmFiZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRpbSBPcmxpbmcgPHRpbW90aHkudC5vcmxpbmdAbGludXguaW50ZWwuY29tPgorRGF0ZTogRnJpLCAyOSBEZWMgMjAxNyAwOToxNzoxNyAtMDgwMAorU3ViamVjdDogW1BBVENIXSBQcm92aWRlIGltcGxlbWVudGF0aW9uIG9mIHN0cm5kdXBhIGZvciBtdXNsCisKK1JldXNlIHRoZSBhcHByb2FjaCBmcm9tIG9lLWNvcmU6CisvbWV0YS9yZWNpcGVzLWNvcmUvc3lzdGVtZC9zeXN0ZW1kLzAwMDItc3JjLWJhc2ljLW1pc3NpbmcuaC1jaGVjay1mb3ItbWlzc2luZy1zdHJuZHVwYS5wYXRjaAorCitPcmlnaW5hbCBwYXRjaCBhdXRob3I6IEVtaWwgUmVubmVyIEJlcnRoaW5nIDxzeXN0ZW1kQGVzbWlsLmRrPgorCitTaWduZWQtb2ZmLWJ5OiBUaW0gT3JsaW5nIDx0aW1vdGh5LnQub3JsaW5nQGxpbnV4LmludGVsLmNvbQorLS0tCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworIHN5c3RlbWQvdXRpbC5jIHwgMTEgKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3lzdGVtZC91dGlsLmMgYi9zeXN0ZW1kL3V0aWwuYworaW5kZXggZTAyYzgyNS4uMjc3ZTYxMSAxMDA2NDQKKy0tLSBhL3N5c3RlbWQvdXRpbC5jCisrKysgYi9zeXN0ZW1kL3V0aWwuYworQEAgLTM0LDYgKzM0LDE3IEBACisgCisgI2luY2x1ZGUgInV0aWwuaCIKKyAKKysjaWYgIUhBVkVfREVDTF9TVFJORFVQQQorKyNkZWZpbmUgc3RybmR1cGEocywgbikgXAorKyAgKHsgXAorKyAgICBjb25zdCBjaGFyICpfX29sZCA9IChzKTsgXAorKyAgICBzaXplX3QgX19sZW4gPSBzdHJubGVuKF9fb2xkLCAobikpOyBcCisrICAgIGNoYXIgKl9fbmV3ID0gKGNoYXIgKilhbGxvY2EoX19sZW4gKyAxKTsgXAorKyAgICBfX25ld1tfX2xlbl0gPSAnXDAnOyBcCisrICAgIChjaGFyICopbWVtY3B5KF9fbmV3LCBfX29sZCwgX19sZW4pOyBcCisrICB9KQorKyNlbmRpZgorKworIGludCBzYWZlX2F0b3UoY29uc3QgY2hhciAqcywgdW5zaWduZWQgKnJldF91KSB7CisgICAgICAgICBjaGFyICp4ID0gTlVMTDsKKyAgICAgICAgIHVuc2lnbmVkIGxvbmcgbDsKKy0tIAorMi4xMy42CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXN5c3RlbWRfMjM0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3lzdGVtZF8yMzQuYmIKaW5kZXggZWYxMTgzMS4uODBmMjkwMCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3lzdGVtZF8yMzQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tc3lzdGVtZF8yMzQuYmIKQEAgLTEsMTMgKzEsMiBAQAotU1VNTUFSWSA9ICJQeXRob24gaW50ZXJmYWNlIGZvciBsaWJzeXN0ZW1kIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3N5c3RlbWQvcHl0aG9uLXN5c3RlbWQiCi1MSUNFTlNFID0gIkxHUEx2Mi4xKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT00ZmJkNjUzODBjZGQyNTU5NTEwNzkwMDhiMzY0NTE2YyIKLQotUFlQSV9QQUNLQUdFID0gInN5c3RlbWQtcHl0aG9uIgotREVQRU5EUyArPSAic3lzdGVtZCAoPD0yMzQpIgotUkRFUEVORFNfJHtQTn0gKz0gInN5c3RlbWQiCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAic3lzdGVtZCIKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzIGRpc3Ryb19mZWF0dXJlc19jaGVjawotCi1TUkNfVVJJW21kNXN1bV0gPSAiNTA3MWVhNWJjYjk3NjE4NmU5MmEzZjVlNzVkZjIyMWQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZmQwZTQ0YmY3MGVhZGFlNDVhYWRjMjkyY2IwYTdlYjViMGI2MzcyY2QxYjM5MTIyODA0N2QzMzg5NWRiODNlNyIKK3JlcXVpcmUgcHl0aG9uLXN5c3RlbWQuaW5jCitpbmhlcml0IHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXRvcm5hZG8uaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdG9ybmFkby5pbmMKaW5kZXggMmM1ODY1NS4uMjlkMTBkYSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdG9ybmFkby5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdG9ybmFkby5pbmMKQEAgLTQsMTMgKzQsMTQgQEAKIHBvbGxpbmcsIFdlYlNvY2tldHMsIGFuZCBvdGhlciBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIGEgbG9uZy1saXZlZCBjb25uZWN0aW9uIHRvIGVhY2ggdXNlci4iCiBIT01FUEFHRSA9ICJodHRwOi8vd3d3LnRvcm5hZG93ZWIub3JnL2VuL3N0YWJsZS8iCiBMSUNFTlNFID0gIkFwYWNoZS0yLjAiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9zZXR1cC5weTtzdGFydGxpbmU9MjtlbmRsaW5lPTE1O21kNT01YWI3NTcxYTc5YWQ2MmQwY2E3YWVhMzA4YmFjNzU2MCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL3NldHVwLnB5O2JlZ2lubGluZT0zO2VuZGxpbmU9MTU7bWQ1PThkNDYzZmM2NmZmOGYyNzUzNTRmZmU4OGQxODk2ZTEyIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiYWI0MWY2NzY1ZDU4MDg5ZjMwYmE1MWU4ZWMwODRhN2IiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMWZiOGU0OTRjZDQ2YzY3NGQ4NmZhYzU4ODVhM2ZmODdiMGUyODM5MzdhNDdkNzRlYjNjMDJhNDhjOWU4OWFkMCIKK1NSQ19VUklbbWQ1c3VtXSA9ICJhNWZjN2ZkNGFlYTk0ODY3NjA5YTQ5MWNlNjU3ODZmMSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2ZDE0ZTQ3ZWFiMGUxNTc5OWNmM2NkY2M4NmIwYjk4Mjc5ZGE2ODUyMmNhYWNlMmJkN2NlNjQ0Mjg3Njg1ZjBhIgogCi1SREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWNvbXByZXNzaW9uICR7UFlUSE9OX1BOfS1udW1iZXJzICR7UFlUSE9OX1BOfS1lbWFpbCAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCi0gICAgICAgICAgICAgICAgICAgJHtQWVRIT05fUE59LXBrZ3V0aWwgJHtQWVRIT05fUE59LWh0bWwgJHtQWVRIT05fUE59LWpzb24gJHtQWVRIT05fUE59LWNlcnRpZmkgJHtQWVRIT05fUE59LXRocmVhZGluZyIKK1JERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tY29tcHJlc3Npb24gJHtQWVRIT05fUE59LW51bWJlcnMgJHtQWVRIT05fUE59LWVtYWlsIFwKKyAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tcGtndXRpbCAke1BZVEhPTl9QTn0taHRtbCAke1BZVEhPTl9QTn0tanNvbiAke1BZVEhPTl9QTn0tY2VydGlmaSAke1BZVEhPTl9QTn0tdGhyZWFkaW5nIFwKKyAgICAgICAgICAgICAgICAgICAke1BZVEhPTl9QTn0tY3R5cGVzIgogCiBSREVQRU5EU18ke1BOfS10ZXN0ICs9ICIke1BOfSAke1BZVEhPTl9QTn0tdW5pdHRlc3QiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXRvcm5hZG9fNC41LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10b3JuYWRvXzQuNS4yLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDExNDc1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXRvcm5hZG9fNC41LjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi1yZXF1aXJlIHB5dGhvbi10b3JuYWRvLmluYwotUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1iYWNrcG9ydHMtc3NsICR7UFlUSE9OX1BOfS1iYWNrcG9ydHMtYWJjICR7UFlUSE9OX1BOfS1zaW5nbGVkaXNwYXRjaCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXRvcm5hZG9fNC41LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10b3JuYWRvXzQuNS4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5M2E0ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10b3JuYWRvXzQuNS4zLmJiCkBAIC0wLDAgKzEsOCBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXRvcm5hZG8uaW5jCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tYmFja3BvcnRzLWFiYyBcCisgICAgJHtQWVRIT05fUE59LWJhY2twb3J0cy1zc2wgXAorICAgICR7UFlUSE9OX1BOfS1zaW5nbGVkaXNwYXRjaCBcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHdpc3RlZC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10d2lzdGVkLmluYwppbmRleCAwZGQ1ODRmLi42NDgwYWQ1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10d2lzdGVkLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10d2lzdGVkLmluYwpAQCAtMzksNiArMzksMTAgQEAKICAgICAke1BOfS1iaW4gXAogIgogCitERVBFTkRTICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1pbmNyZW1lbnRhbC1uYXRpdmUgXAorIgorCiBSREVQRU5EU18ke1BOfSA9ICJcCiAgICAgJHtQTn0tYmluIFwKICAgICAke1BOfS1jb3JlIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR3aXN0ZWRfMTcuOS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHdpc3RlZF8xNy45LjAuYmIKaW5kZXggN2ZjOGM2NS4uMmJlMTcwOSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHdpc3RlZF8xNy45LjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHdpc3RlZF8xNy45LjAuYmIKQEAgLTIsOSArMiwzIEBACiByZXF1aXJlIHB5dGhvbi10d2lzdGVkLmluYwogCiBSREVQRU5EU18ke1BOfS1jb3JlICs9ICIke1BZVEhPTl9QTn0tY29udGV4dGxpYiIKLQotIyBOb3QgeWV0IHBvcnRlZCB0byBweTMgeWV0IGF2YWlsYWJsZSBpbiBweTIKLSMgU2VlIHNyYy90d2lzdGVkL3B5dGhvbi9fc2V0dXAucHkgLS0gbm90UG9ydGVkTW9kdWxlcwotUkRFUEVORFNfJHtQTn0gKz0gIlwKLSAgICAke1BOfS1uZXdzIFwKLSAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10d29maXNoLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR3b2Zpc2guaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5YWIyODUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10d29maXNoLmluYwpAQCAtMCwwICsxLDEzIEBACitTVU1NQVJZID0gIkJpbmRpbmdzIGZvciB0aGUgVHdvZmlzaCBpbXBsZW1lbnRhdGlvbiBieSBOaWVscyBGZXJndXNvbiIKK0RFU0NSSVBUSU9OID0gIkJpbmRpbmdzIGZvciB0aGUgVHdvZmlzaCBpbXBsZW1lbnRhdGlvbiBieSBOaWVscyBGZXJndXNvblwKKyBsaWJ0d29maXNoLWRldi4iCitIT01FUEFHRSA9ICJodHRwOi8vZ2l0aHViLmNvbS9rZXliYXNlL3B5dGhvbi10d29maXNoIgorTElDRU5TRSA9ICJCU0QtMy1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zM2E2M2FiZjZkNzU2N2IxNjg5ZDhjZTY5ZjAwZTQzYiIKKworU1JDX1VSSVttZDVzdW1dID0gImQ3ZDIyZjE2ZGM0ZmZhMGUzYWUyMjAwNjU0MDMzYWJlIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImIwOWQ4YmI1MGQzM2IyM2ZmMzRjYWZiMWY5MjA5Zjg1OGY3NTI5MzVjNmE1YzkwMWVmYjkyYTQxYWNiODMwZmEiCisKK2luaGVyaXQgcHlwaQorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10d29maXNoXzAuMy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHdvZmlzaF8wLjMuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWIwMjE1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHdvZmlzaF8wLjMuMC5iYgpAQCAtMCwwICsxLDIgQEAKK3JlcXVpcmUgcHl0aG9uLXR3b2Zpc2guaW5jCitpbmhlcml0IHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR5cGluZy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10eXBpbmcuaW5jCmluZGV4IDQ2YmU0N2MuLmEwZWU2YjIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR5cGluZy5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHlwaW5nLmluYwpAQCAtMyw3ICszLDcgQEAKIExJQ0VOU0UgPSAiUFNGIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NjRmYzJiMzBiNjdkMGE4NDIzYzI1MGUwMzg2ZWQ3MmYiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIxNDNhZjBiZjNhZmQxODg3NjIyNzcxZjJmMWZmZThlMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkNTE0YmQ4NGIyODRkZDNlODQ0ZjAzMDVhYzA3NTExZjA5N2UzMjUxNzFmNmNjNGEyMDg3OGQxMWFkNzcxODQ5IgorU1JDX1VSSVttZDVzdW1dID0gIjViMmFkZTA4ZDgzYmU0ODhmMTdiNWZlNTg3YzI3Yzc0IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImQ0MDBhOTM0NDI1NDgwM2EyMzY4NTMzZTQ1MzNhNDIwMGQyMWViN2I2YjcyOWMxNzNiYzM4MjAxYTc0ZGIzZjIiCiAKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR5cGluZ18zLjYuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXR5cGluZ18zLjYuNC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdHlwaW5nXzMuNi4yLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi10eXBpbmdfMy42LjQuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXVqc29uLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXVqc29uLmluYwppbmRleCA5NjU0ZDVhLi5jM2QwYmZlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi11anNvbi5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdWpzb24uaW5jCkBAIC0yLDcgKzIsNyBAQAogREVTQ1JJUFRJT04gPSAiVWx0cmFKU09OIGlzIGFuIHVsdHJhIGZhc3QgSlNPTiBlbmNvZGVyIGFuZCBkZWNvZGVyIHdyaXR0ZW4gaW4gcHVyZSBDIHdpdGggYmluZGluZ3MgZm9yIFB5dGhvbiAyLjUrIGFuZCAzLiIKIAogTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTztzdGFydGxpbmU9ODtlbmRsaW5lPTk7bWQ1PTRmMzY5YjNjM2MyOTBiNGFlZGU4Nzk2YTQwNjVlNWFiIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87YmVnaW5saW5lPTg7ZW5kbGluZT04O21kNT04OGRmOGU3OGI5ZWRmZDc0NDk1Mzg2MjE3OWYyZDE0ZSIKIAogU1JDX1VSSVttZDVzdW1dID0gIjQyZjc3YjBjY2U2ODZkZmE0ZGEyZTY4NDgwYjFkZDI0IgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImY2NjA3M2U1NTA2ZTkxZDIwNGFiMGM2MTRhMTQ4ZDVhYTkzOGJkYmYxMDQ3NTFiZTY2ZjhhZDdhMjIyZjVmODYiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi11bmlkaWZmLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXVuaWRpZmYuaW5jCmluZGV4IDA0MDI1NTAuLmZjMTIwNjIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXVuaWRpZmYuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXVuaWRpZmYuaW5jCkBAIC0zLDcgKzMsMTIgQEAKIExJQ0VOU0UgPSAiTUlUIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9NGM0MzRiMDhlZjQyZmVhMjM1YmIwMTliNWU1YTk3YjMiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJjODA5OWVkZjg5ZDJlM2JhYzE2MTIzNzY2NjI1YTM4YiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJhN2JhZjcxODQ2YTY4YzUzMDVhN2Q2MDA1ZGZiNWVjYTg3OThmMTM4NjExNzYzNTVhMjg1Y2JkYTMyMDY4MjRkIgorU1JDX1VSSVttZDVzdW1dID0gIjQ3ZjY2OWQ3MjczNTQxZmVjNDVlNGNjMGZiYThkOGU5IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjljOWFiNWZiOTZiNjk4OGI0Y2Q1ZGVmNmIyNzU0OTI0NDJjMDRhNTcwOTAwZDMzYWE2MzczMTA1NzgwMDI1YmMiCiAKIGluaGVyaXQgcHlwaQorCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tY29kZWNzIFwKKyAgICAke1BZVEhPTl9QTn0taW8gXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdW5pZGlmZl8wLjUuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXVuaWRpZmZfMC41LjUuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXVuaWRpZmZfMC41LjQuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXVuaWRpZmZfMC41LjUuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXZpc2l0b3IuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdmlzaXRvci5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMyMjg4YwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXZpc2l0b3IuaW5jCkBAIC0wLDAgKzEsNiBAQAorU1VNTUFSWSA9ICJBIHRpbnkgcHl0aG9uaWMgdmlzaXRvciBpbXBsZW1lbnRhdGlvbi4iCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO2JlZ2lubGluZT04O2VuZGxpbmU9ODttZDU9ODIyNzE4MDEyNjc5N2EwMTQ4Zjk0ZjQ4M2YzZTE0ODkiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI5NGEwMjRlZDBlYzFiMDJiNDQ5N2MxNTI2N2QzMTljYSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIyYzczNzkwM2IyYjY4NjRlYmM2MTY3ZWVmN2NmM2I5OTcxMjZmMWFhOTRiZGY1OTBmOTBmMTQzNmQyM2U0ODBhIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdmlzaXRvcl8wLjEuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXZpc2l0b3JfMC4xLjMuYmIKaW5kZXggMTIzNjUwNi4uZWVlMjVhNSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tdmlzaXRvcl8wLjEuMy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi12aXNpdG9yXzAuMS4zLmJiCkBAIC0xLDggKzEsMiBAQAotU1VNTUFSWSA9ICJBIHRpbnkgcHl0aG9uaWMgdmlzaXRvciBpbXBsZW1lbnRhdGlvbi4iCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO2JlZ2lubGluZT04O2VuZGxpbmU9ODttZDU9ODIyNzE4MDEyNjc5N2EwMTQ4Zjk0ZjQ4M2YzZTE0ODkiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI5NGEwMjRlZDBlYzFiMDJiNDQ5N2MxNTI2N2QzMTljYSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIyYzczNzkwM2IyYjY4NjRlYmM2MTY3ZWVmN2NmM2I5OTcxMjZmMWFhOTRiZGY1OTBmOTBmMTQzNmQyM2U0ODBhIgotCiBpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24tdmlzaXRvci5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlYmNvbG9ycy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZWJjb2xvcnMuaW5jCmluZGV4IGZlMWFiOTUuLmEwMmJiYmIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlYmNvbG9ycy5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2ViY29sb3JzLmluYwpAQCAtMSw5ICsxLDkgQEAKIFNVTU1BUlkgPSAiU2ltcGxlIFB5dGhvbiBtb2R1bGUgZm9yIHdvcmtpbmcgd2l0aCBIVE1ML0NTUyBjb2xvciBkZWZpbml0aW9ucy4iCiBMSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTM1OGRmN2U5ZWI2NWUxODQzZGJiMzZhYmQ0NzZjNWMwIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MTk3YWRkMDE2MDg3ZTY4ODRhMDEyYjBmMTg1ZDQ0YWQiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI0NzMzZmExMDc3ZjY4MGJiZGQ5MThjZGVmMWUzMmMxMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJlNDdlNjg2NDRkNDFjMGIxZjFlNGQ5MzljZmU0MDM5YmRmMWFiMzEyMzRkZjYzYzdhNGY1OWQ0NzY2NDg3MjA2IgorU1JDX1VSSVttZDVzdW1dID0gIjQwODkwZGIzOGIyYTg1NmU1MjZhNTY4ODY0MDI1ZmU2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjAzMDU2MmY2MjQ0NjdhOTkwMWYwYjQ1NWZlZjA1NDg2YTg4Y2ZiNWRhYTFlMzU2YmQ0YWFjZWEwNDM4NTBiNTkiCiAKIFJERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCA9ICJcCiAgICAgJHtQWVRIT05fUE59LXN0cmluZ29sZCBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZWJjb2xvcnNfMS43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2ViY29sb3JzXzEuOC4xLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZWJjb2xvcnNfMS43LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZWJjb2xvcnNfMS44LjEuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlYmVuY29kaW5ncy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZWJlbmNvZGluZ3MuaW5jCmluZGV4IGVkNTdjNTIuLjM0Y2E3MDYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlYmVuY29kaW5ncy5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2ViZW5jb2RpbmdzLmluYwpAQCAtMSwxMCArMSwxMyBAQAogU1VNTUFSWSA9ICJDaGFyYWN0ZXIgZW5jb2RpbmcgYWxpYXNlcyBmb3IgbGVnYWN5IHdlYiBjb250ZW50IgogTElDRU5TRSA9ICJCU0QiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTztzdGFydGxpbmU9ODtlbmRsaW5lPTk7bWQ1PWFmNWM4MWJmZTk4ODU1YTU2ZDM2YjZiYTVkZTI5MDZmIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87YmVnaW5saW5lPTg7ZW5kbGluZT04O21kNT1lOTEwYjM1YjBlZjRlMWY2NjViOWE3NWQ2YWZiNzcwOSIKIAogU1JDX1VSSVttZDVzdW1dID0gIjMyZjZlMjYxZDUyZTU3YmY3ZTFjNGQ0MTU0NmQxNWI4IgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImIzNmExYzI0NWYyZDMwNDk2NWViNGUwYTgyODQ4Mzc5MjQxZGMwNGI4NjVhZmNjNGFhYjE2NzQ4NTg3ZTE5MjMiCiAKIGluaGVyaXQgcHlwaQogCi1SREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWNvZGVjcyIKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1jb2RlY3MgXAorICAgICR7UFlUSE9OX1BOfS1qc29uIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlcmt6ZXVnLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlcmt6ZXVnLmluYwppbmRleCBiMjk0OWEzLi5jMDRhNGUwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZXJremV1Zy5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2Vya3pldWcuaW5jCkBAIC04LDE1ICs4LDIzIEBACiBvZiBjb21tdW5pdHkgY29udHJpYnV0ZWQgYWRkb24gbW9kdWxlcy4iCiBIT01FUEFHRSA9ICJodHRwOi8vd2Vya3pldWcucG9jb28ub3JnLyIKIExJQ0VOU0UgPSAiQlNEIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YTY4ZjUzNjFhMmIyY2E5ZmRmMjZiMzhhYWVjYjZmYWEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1lZDlhMGI3YzAyNTQ2MTZkNzJkYWRiOThiMjkzZWYxYiIKIAotU1JDX1VSSVttZDVzdW1dID0gImUzODViMmM1YTcxOTNjZmYyNGM2ODliMzFlMTEyNGRjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjkwM2E3Yjg3Yjc0NjM1MjQ0NTQ4YjMwZDMwZGI0Yzg5NDdmZTY0YzUxOThmNTg4OTlkZGNkM2ExM2MyM2JiMjYiCitTUkNfVVJJW21kNXN1bV0gPSAiNmQyMGI1YmUyZDI0NWJlNGFjNzcwNmNjMzkwZDEzMGMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzNmZDdhN2Q0MTk3NmQ5ZjQ0ZGIzMjcyNjBlMjYzMTMyNDY2ODM2Y2VmNmY5MTUxMjg4OWVkNjBhZDI2NTU3YyIKIAogUFlQSV9QQUNLQUdFID0gIldlcmt6ZXVnIgogCiBDTEVBTkJST0tFTiA9ICIxIgogCitQQUNLQUdFUyA9KyAiJHtQTn0tdGVzdHMiCitGSUxFU18ke1BOfS10ZXN0cys9ICIgXAorICAgICR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3dlcmt6ZXVnL3Rlc3QqIFwKKyAgICAke1BZVEhPTl9TSVRFUEFDS0FHRVNfRElSfS93ZXJremV1Zy9fX3B5Y2FjaGVfXy90ZXN0KiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vd2Vya3pldWcvY29udHJpYi90ZXN0KiBcCisgICAgJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vd2Vya3pldWcvY29udHJpYi9fX3B5Y2FjaGVfXy90ZXN0KiBcCisiCisKIFJERVBFTkRTXyR7UE59ICs9ICIgXAogICAgICR7UFlUSE9OX1BOfS1kYXRldGltZSBcCiAgICAgJHtQWVRIT05fUE59LWRpZmZsaWIgXApAQCAtMjQsMTEgKzMyLDE2IEBACiAgICAgJHtQWVRIT05fUE59LWh0bWwgXAogICAgICR7UFlUSE9OX1BOfS1pbyBcCiAgICAgJHtQWVRIT05fUE59LWpzb24gXAorICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAogICAgICR7UFlUSE9OX1BOfS1uZXRzZXJ2ZXIgXAogICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKICAgICAke1BZVEhPTl9QTn0tcGtndXRpbCBcCiAgICAgJHtQWVRIT05fUE59LXBwcmludCBcCi0gICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAogICAgICR7UFlUSE9OX1BOfS10aHJlYWRpbmcgXAogICAgICR7UFlUSE9OX1BOfS11bml4YWRtaW4gXAogIgorCitSREVQRU5EU18ke1BOfS10ZXN0cyA9ICIgXAorICAgICR7UE59IFwKKyAgICAke1BZVEhPTl9QTn0tdW5pdHRlc3QgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2Vya3pldWdfMC4xMi4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2Vya3pldWdfMC4xMi4yLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODkyZjEzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlcmt6ZXVnXzAuMTIuMi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKLXJlcXVpcmUgcHl0aG9uLXdlcmt6ZXVnLmluYwotCi1SREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LXpsaWIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZXJremV1Z18wLjE0LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13ZXJremV1Z18wLjE0LjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI0MTE2MQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdlcmt6ZXVnXzAuMTQuMS5iYgpAQCAtMCwwICsxLDcgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzCityZXF1aXJlIHB5dGhvbi13ZXJremV1Zy5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAorICAgICR7UFlUSE9OX1BOfS16bGliIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdob29zaC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13aG9vc2guaW5jCmluZGV4IDBhMmNmM2IuLmE0Y2E1ZGMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdob29zaC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2hvb3NoLmluYwpAQCAtMTIsMyArMTIsMTMgQEAKIAogUFlQSV9QQUNLQUdFID0gIldob29zaCIKIFBZUElfUEFDS0FHRV9FWFQgPSAiemlwIgorCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tZW1haWwgXAorICAgICR7UFlUSE9OX1BOfS1tdWx0aXByb2Nlc3NpbmcgXAorICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAorICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKKyAgICAke1BZVEhPTl9QTn0tcGlja2xlIFwKKyAgICAke1BZVEhPTl9QTn0tc2hlbGwgXAorICAgICR7UFlUSE9OX1BOfS1zdHJpbmdvbGQgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2hvb3NoXzIuNy40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24td2hvb3NoXzIuNy40LmJiCmluZGV4IDQ4ZGYzNjAuLjNiNDI5MWYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXdob29zaF8yLjcuNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13aG9vc2hfMi43LjQuYmIKQEAgLTEsMiArMSw2IEBACiBpbmhlcml0IHB5cGkgc2V0dXB0b29scwogcmVxdWlyZSBweXRob24td2hvb3NoLmluYworCitSREVQRU5EU18ke1BOfSArPSAiIFwKKyAgICAke1BZVEhPTl9QTn0tc3VicHJvY2VzcyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13dGZvcm1zLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXd0Zm9ybXMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxNjY5N2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13dGZvcm1zLmluYwpAQCAtMCwwICsxLDE2IEBACitERVNDUklQVElPTiA9ICJBIGZsZXhpYmxlIGZvcm1zIHZhbGlkYXRpb24gYW5kIHJlbmRlcmluZyBsaWJyYXJ5IGZvciBweXRob24gd2ViIGRldmVsb3BtZW50LiIKK0hPTUVQQUdFID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvV1RGb3JtcyIKK1NFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgorTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTzttZDU9YzQ1OWFjY2M5MGM2ZWQ2YTk0ODc4YzhmZTA1MzViZTIiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI2OTM4YTU0MWZhZmQxYTFhZTJmNmI5Yjg4NTg4ZWVmMiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJmZmRmMTBiZDFmYTU2NWI4MjMzMzgwY2I3N2EzMDRjZDM2ZmQ1NWM3MzAyM2U5MWQ0YjgwM2M5NmJjMTFkNDZmIgorCitQWVBJX1BBQ0tBR0UgPSAiV1RGb3JtcyIKK1BZUElfUEFDS0FHRV9FWFQgPSAiemlwIgorCitSREVQRU5EU18ke1BOfSArPSAiXAorICAgICR7UFlUSE9OX1BOfS1uZXRzZXJ2ZXIgXAorICAgICR7UFlUSE9OX1BOfS1udW1iZXJzIFwKKyAgICAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi13dGZvcm1zXzIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXd0Zm9ybXNfMi4xLmJiCmluZGV4IDVkZGNiNDguLmZkYjAxNWUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXd0Zm9ybXNfMi4xLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXd0Zm9ybXNfMi4xLmJiCkBAIC0xLDE4ICsxLDIgQEAKLURFU0NSSVBUSU9OID0gIkEgZmxleGlibGUgZm9ybXMgdmFsaWRhdGlvbiBhbmQgcmVuZGVyaW5nIGxpYnJhcnkgZm9yIHB5dGhvbiB3ZWIgZGV2ZWxvcG1lbnQuIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9XVEZvcm1zIgotU0VDVElPTiA9ICJkZXZlbC9weXRob24iCi1MSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT1jNDU5YWNjYzkwYzZlZDZhOTQ4NzhjOGZlMDUzNWJlMiIKLQotU1JDX1VSSVttZDVzdW1dID0gIjY5MzhhNTQxZmFmZDFhMWFlMmY2YjliODg1ODhlZWYyIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImZmZGYxMGJkMWZhNTY1YjgyMzMzODBjYjc3YTMwNGNkMzZmZDU1YzczMDIzZTkxZDRiODAzYzk2YmMxMWQ0NmYiCi0KLVBZUElfUEFDS0FHRSA9ICJXVEZvcm1zIgotUFlQSV9QQUNLQUdFX0VYVCA9ICJ6aXAiCi0KIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVJERVBFTkRTXyR7UE59ICs9ICJcCi0gICAgJHtQWVRIT05fUE59LW5ldHNlcnZlciBcCi0gICAgJHtQWVRIT05fUE59LW51bWJlcnMgXAotICAgICIKK3JlcXVpcmUgcHl0aG9uLXd0Zm9ybXMuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi14c3RhdGljLWZvbnQtYXdlc29tZS5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi14c3RhdGljLWZvbnQtYXdlc29tZS5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDEzY2I4MwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXhzdGF0aWMtZm9udC1hd2Vzb21lLmluYwpAQCAtMCwwICsxLDE3IEBACitERVNDUklQVElPTiA9ICJGb250IEF3ZXNvbWUgaWNvbnMgcGFja2FnZWQgZm9yIHNldHVwdG9vbHMgKGVhc3lfaW5zdGFsbCkgLyBwaXAuIgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9YU3RhdGljLUZvbnQtQXdlc29tZSIKK1NFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgorTElDRU5TRSA9ICJBcGFjaGUtMiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT0zMTNkMDIxODk4Njk0Y2QyYjBlYTY1MDhiZGZlNTFhMiIKKworUFlQSV9QQUNLQUdFID0gIlhTdGF0aWMtRm9udC1Bd2Vzb21lIgorCitpbmhlcml0IHB5cGkKKworU1JDX1VSSVttZDVzdW1dID0gIjE0MWEwZTlhN2UyMWU4MmY5MjI1NzNhMDBhZTBjMTY2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImUwMWZiNDgwY2FhYTdjNzk2M2RjYjMzMjhhNDcwMGU2MzFiZWY2MDcwZGIwZThiNjg1ODE2ZDIyMGU2ODVmNmMiCisKK0RFUEVORFMgKz0gIiBcCisgICAgICAgICR7UFlUSE9OX1BOfS14c3RhdGljIFwKKyAgICAgICAgJHtQWVRIT05fUE59LXBpcCBcCisgICAgICAgICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXhzdGF0aWMtZm9udC1hd2Vzb21lXzQuNy4wLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi14c3RhdGljLWZvbnQtYXdlc29tZV80LjcuMC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxZTg1ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi14c3RhdGljLWZvbnQtYXdlc29tZV80LjcuMC4wLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMKK3JlcXVpcmUgcHl0aG9uLXhzdGF0aWMtZm9udC1hd2Vzb21lLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24teHN0YXRpYy5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi14c3RhdGljLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2M3ZGI5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24teHN0YXRpYy5pbmMKQEAgLTAsMCArMSwxNCBAQAorREVTQ1JJUFRJT04gPSAiWFN0YXRpYyBiYXNlIHBhY2thZ2Ugd2l0aCBtaW5pbWFsIHN1cHBvcnQgY29kZSIKK0hPTUVQQUdFID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvWFN0YXRpYyIKK1NFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgorTElDRU5TRSA9ICJNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUUudHh0O21kNT0zNmExZTdlYWE3MWUxYmQwN2I4ZDIyNDc4MzlmMjI4ZSIKKworUFlQSV9QQUNLQUdFID0gIlhTdGF0aWMiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI3MDY0YjVlYTdmZDFlZTk5MGUwYWUwNTM4MzAxZDliYyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwZWM5M2Q3YzY2ZWJiOWUwZDMxYjY2NDc1MzQzN2RjODYzNGNiNjZlMTMzMTBjYjQ3YzllYjFlMGJjNjZkNzI2IgorCitERVBFTkRTICs9ICIgXAorICAgICAgICAke1BZVEhPTl9QTn0tcGlwIFwKKyAgICAgICAgIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24teHN0YXRpY18xLjAuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXhzdGF0aWNfMS4wLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA3MzAzNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXhzdGF0aWNfMS4wLjEuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29scworcmVxdWlyZSBweXRob24teHN0YXRpYy5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXlhcHBpLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXlhcHBpLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTFjZTc3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24teWFwcGkuaW5jCkBAIC0wLDAgKzEsMTYgQEAKK1NVTU1BUlkgID0gIllldCBBbm90aGVyIFB5dGhvbiBQcm9maWxlciIKK0hPTUVQQUdFID0gImh0dHA6Ly95YXBwaS5nb29nbGVjb2RlLmNvbS8iCisKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vUEtHLUlORk87bWQ1PTZiMTMxYzMwNDE2MzdmNmE1MTc1YTQzMTEyZGRlMDVjIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZGM1NjI0MDU3NWM5OTkzOGE5MjRlYWViN2MwZDhiZWIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWY2NTcxMjllMWI5Yjk1MjM3OWZmYmMwMDkzNTdkMGRjZGI1OGM1MGYzYmZlODhmZmJiOTkyZTRiMjdiMjYzYyIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMKKworUkRFUEVORFNfJHtQTn0gKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tZGF0ZXRpbWUgXAorICAgICR7UFlUSE9OX1BOfS1waWNrbGUgXAorICAgICR7UFlUSE9OX1BOfS10aHJlYWRpbmcgXAorICAgICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXlhcHBpXzAuOTguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbi15YXBwaV8wLjk4LmJiCmluZGV4IDUxMzA4YzguLmEzYmRkZTUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXlhcHBpXzAuOTguYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24teWFwcGlfMC45OC5iYgpAQCAtMSwxNSArMSwyIEBACi1TVU1NQVJZICA9ICJZZXQgQW5vdGhlciBQeXRob24gUHJvZmlsZXIiCi1IT01FUEFHRSA9ICJodHRwOi8veWFwcGkuZ29vZ2xlY29kZS5jb20vIgotCi1MSUNFTlNFID0gIk1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1BLRy1JTkZPO21kNT02YjEzMWMzMDQxNjM3ZjZhNTE3NWE0MzExMmRkZTA1YyIKLQotU1JDX1VSSVttZDVzdW1dID0gImRjNTYyNDA1NzVjOTk5MzhhOTI0ZWFlYjdjMGQ4YmViIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVmNjU3MTI5ZTFiOWI5NTIzNzlmZmJjMDA5MzU3ZDBkY2RiNThjNTBmM2JmZTg4ZmZiYjk5MmU0YjI3YjI2M2MiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzCi0KLVJERVBFTkRTXyR7UE59ICs9ICJcCi0gICAgJHtQWVRIT05fUE59LXBpY2tsZSBcCi0gICAgJHtQWVRIT05fUE59LXRocmVhZGluZyBcCi0gICAgIgorcmVxdWlyZSBweXRob24teWFwcGkuaW5jCitpbmhlcml0IHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uLXpvcGVpbnRlcmZhY2UuaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tem9wZWludGVyZmFjZS5pbmMKaW5kZXggNGIzOGFlYS4uMWZhYjJjYyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tem9wZWludGVyZmFjZS5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24tem9wZWludGVyZmFjZS5pbmMKQEAgLTExLDYgKzExLDggQEAKIAogUlBST1ZJREVTXyR7UE59ICs9ICJ6b3BlLWludGVyZmFjZXMiCiAKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiJHtQWVRIT05fUE59LWRhdGV0aW1lIgorCiBGSUxFU18ke1BOfS1kYmcgKz0gIiR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9LyouZWdnLyovKi8uZGVidWciCiBGSUxFU18ke1BOfS1kZXYgKz0gIiR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9L3pvcGUvaW50ZXJmYWNlLyouYyIKIEZJTEVTXyR7UE59LWRvYyArPSAiJHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vem9wZS9pbnRlcmZhY2UvKi50eHQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYWxlbWJpY18wLjkuOC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hbGVtYmljXzAuOS44LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNDhmZTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYWxlbWJpY18wLjkuOC5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tYWxlbWJpYy5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hc24xY3J5cHRvXzAuMjQuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hc24xY3J5cHRvXzAuMjQuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmJlNTc1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWFzbjFjcnlwdG9fMC4yNC4wLmJiCkBAIC0wLDAgKzEsNiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tYXNuMWNyeXB0by5pbmMKKworUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXN0cm9pZF8xLjUuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hc3Ryb2lkXzEuNi4zLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXN0cm9pZF8xLjUuMy5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWFzdHJvaWRfMS42LjMuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hdHRyXzAuMy4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWF0dHJfMC4zLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTgwNjQ4YwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hdHRyXzAuMy4xLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tYXR0ci5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hdHRyc18xNy4zLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXR0cnNfMTcuNC4wLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXR0cnNfMTcuMy4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXR0cnNfMTcuNC4wLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXV0b21hdF8wLjYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hdXRvbWF0XzAuNi4wLmJiCmluZGV4IDA0NjllNjEuLjJjNzQ3NjQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hdXRvbWF0XzAuNi4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hdXRvbWF0XzAuNi4wLmJiCkBAIC0xLDQgKzEsMiBAQAogaW5oZXJpdCBzZXR1cHRvb2xzMwogcmVxdWlyZSBweXRob24tYXV0b21hdC5pbmMKLQotUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1lbnVtICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hd3MtaW90LWRldmljZS1zZGstcHl0aG9uXzEuMi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWF3cy1pb3QtZGV2aWNlLXNkay1weXRob25fMS4zLjEuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1hd3MtaW90LWRldmljZS1zZGstcHl0aG9uXzEuMi4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYXdzLWlvdC1kZXZpY2Utc2RrLXB5dGhvbl8xLjMuMS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWJhYmVsXzIuNS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWJhYmVsXzIuNS4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTA4NGFjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1iYWJlbF8yLjUuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotaW5oZXJpdCBzZXR1cHRvb2xzMwotcmVxdWlyZSBweXRob24tYmFiZWwuaW5jCi0KLSMgUmVxdWlyZXMgX3B5ZGVjaW1hbC5weSB3aGljaCBpcyBpbiBtaXNjCi1SREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LW1pc2MiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYmFiZWxfMi41LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtYmFiZWxfMi41LjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcxNWQ1OQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1iYWJlbF8yLjUuMy5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWJhYmVsLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWJjcnlwdF8zLjEuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1iY3J5cHRfMy4xLjQuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1iY3J5cHRfMy4xLjMuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1iY3J5cHRfMy4xLjQuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1ibGlua2VyXzEuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1ibGlua2VyXzEuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjRiM2NmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWJsaW5rZXJfMS40LmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1ibGlua2VyLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNhbl8yLjAuMGIxLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNhbl8yLjAuMGIxLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWQ0NWI4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jYW5fMi4wLjBiMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotcmVxdWlyZSBweXRob24tY2FuLmluYwotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCi0KLVJERVBFTkRTXyR7UE59ICs9ICJweXRob24zLXNxbGl0ZTMiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY2FuXzIuMS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNhbl8yLjEuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWE5ZTgxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNhbl8yLjEuMC5iYgpAQCAtMCwwICsxLDcgQEAKK3JlcXVpcmUgcHl0aG9uLWNhbi5pbmMKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworCitSREVQRU5EU18ke1BOfV9jbGFzcy10YXJnZXQgKz0gIlwKKyAgICAke1BZVEhPTl9QTn0tY29kZWNzIFwKKyAgICAke1BZVEhPTl9QTn0tY29tcHJlc3Npb24gXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNhc3NhbmRyYS1kcml2ZXJfMy4xMS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNhc3NhbmRyYS1kcml2ZXJfMy4xMy4wLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY2Fzc2FuZHJhLWRyaXZlcl8zLjExLjAuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jYXNzYW5kcmEtZHJpdmVyXzMuMTMuMC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNlcnRpZmlfMjAxNy43LjI3LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY2VydGlmaV8yMDE4LjEuMTguYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jZXJ0aWZpXzIwMTcuNy4yNy4xLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY2VydGlmaV8yMDE4LjEuMTguYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jZmZpXzEuMTEuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jZmZpXzEuMTEuNS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNmZmlfMS4xMS4yLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY2ZmaV8xLjExLjUuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jbGlja182LjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY2xpY2tfNi43LmJiCmluZGV4IGVjZDE1MTQuLjE5MjA2NDQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jbGlja182LjcuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNsaWNrXzYuNy5iYgpAQCAtMSw0ICsxLDIgQEAKIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzMwogcmVxdWlyZSBweXRob24tY2xpY2suaW5jCi0KLVJERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tZW51bSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jb25maWdwYXJzZXJfMy41LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY29uZmlncGFyc2VyXzMuNS4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3MGNiYTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY29uZmlncGFyc2VyXzMuNS4wLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tY29uZmlncGFyc2VyLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNvdmVyYWdlXzQuNC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNvdmVyYWdlXzQuNC4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YWE1YzU5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jb3ZlcmFnZV80LjQuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVNVTU1BUlkgPSAiQ29kZSBjb3ZlcmFnZSBtZWFzdXJlbWVudCBmb3IgUHl0aG9uIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9jb3ZlcmFnZS5yZWFkdGhlZG9jcy5pbyIKLUxJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT0yZWU0MTExMmE0NGZlNzAxNGRjZTMzZTI2NDY4YmE5MyIKLQotU1JDX1VSSVttZDVzdW1dID0gIjRjNGQ5OTdjYjMyYmU0NzAzZjFmZGU1NGU2Y2QxYjFjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjdhOWM0NDQwMGVlMGYzYjQ1NDYwNjZlMDcxMGUxMjUwZmQ3NTgzMWFkYzAyYWI5OWRkYTE3NmFkODcyNmY0MjQiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY292ZXJhZ2VfNC40LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY292ZXJhZ2VfNC40LjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk4M2UwYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jb3ZlcmFnZV80LjQuMi5iYgpAQCAtMCwwICsxLDEwIEBACitTVU1NQVJZID0gIkNvZGUgY292ZXJhZ2UgbWVhc3VyZW1lbnQgZm9yIFB5dGhvbiIKK0hPTUVQQUdFID0gImh0dHBzOi8vY292ZXJhZ2UucmVhZHRoZWRvY3MuaW8iCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9MmVlNDExMTJhNDRmZTcwMTRkY2UzM2UyNjQ2OGJhOTMiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIyOWE5ZmU4NTM3N2UwZjczMjdjZjVkYjFlMzM1NDgzZiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzMDlkOTFiZDdhMzUwNjNlYzdhMGU0ZDc1NjQ1NDg4YmZhYjNmMGI2NjM3M2U3NzIyZjIzZGE3ZjViMGYzNGNjIgorCitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNyeXB0b2dyYXBoeS12ZWN0b3JzXzIuMC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNyeXB0b2dyYXBoeS12ZWN0b3JzXzIuMS40LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY3J5cHRvZ3JhcGh5LXZlY3RvcnNfMi4wLjMuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jcnlwdG9ncmFwaHktdmVjdG9yc18yLjEuNC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNyeXB0b2dyYXBoeV8yLjAuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jcnlwdG9ncmFwaHlfMi4wLjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4MDcwNDIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNyeXB0b2dyYXBoeV8yLjAuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzMwotcmVxdWlyZSBweXRob24tY3J5cHRvZ3JhcGh5LmluYwotCi1TUkNfVVJJICs9ICIgXAotICAgIGZpbGU6Ly9ydW4tcHRlc3QgXAotIgotCi1SREVQRU5EU18ke1BOfSArPSAiIFwKLSAgICAke1BZVEhPTl9QTn0tbGFuZyBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY3J5cHRvZ3JhcGh5XzIuMS40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNyeXB0b2dyYXBoeV8yLjEuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTU5MjMzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWNyeXB0b2dyYXBoeV8yLjEuNC5iYgpAQCAtMCwwICsxLDggQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tY3J5cHRvZ3JhcGh5LmluYworCitMRFNIQVJFRCArPSAiLXB0aHJlYWQiCisKK1NSQ19VUkkgKz0gIiBcCisgICAgZmlsZTovL3J1bi1wdGVzdCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY3l0aG9uXzAuMjcuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1jeXRob25fMC4yOC4yLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtY3l0aG9uXzAuMjcuMS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWN5dGhvbl8wLjI4LjIuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1kYXRldXRpbF8yLjYuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1kYXRldXRpbF8yLjcuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRhdGV1dGlsXzIuNi4xLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZGF0ZXV0aWxfMi43LjIuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1kZWNvcmF0b3JfNC4xLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZGVjb3JhdG9yXzQuMS4yLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODQwYjIwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1kZWNvcmF0b3JfNC4xLjIuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLWluaGVyaXQgc2V0dXB0b29sczMKLXJlcXVpcmUgcHl0aG9uLWRlY29yYXRvci5pbmMKLQotUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICJcCi0gICAgJHtQWVRIT05fUE59LWVudW0gXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRlY29yYXRvcl80LjMuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1kZWNvcmF0b3JfNC4zLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ0Y2JkYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1kZWNvcmF0b3JfNC4zLjAuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1kZWNvcmF0b3IuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZGphbmdvXzEuMTEuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1kamFuZ29fMS4xMS4xMC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRqYW5nb18xLjExLjUuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1kamFuZ29fMS4xMS4xMC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWRuc3B5dGhvbl8xLjE1LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZG5zcHl0aG9uXzEuMTUuMC5iYgppbmRleCAyNjAyNGM2Li5jZTRkZmRjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZG5zcHl0aG9uXzEuMTUuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZG5zcHl0aG9uXzEuMTUuMC5iYgpAQCAtMSw5ICsxLDIgQEAKIGluaGVyaXQgc2V0dXB0b29sczMKIHJlcXVpcmUgcHl0aG9uLWRuc3B5dGhvbi5pbmMKLQotIyBSZXF1aXJlcyBfcHlkZWNpbWFsLnB5IHdoaWNoIGlzIGluIG1pc2MKLVJERVBFTkRTXyR7UE59ICs9ICIgXAotICAgICR7UFlUSE9OX1BOfS1lbnVtIFwKLSAgICAke1BZVEhPTl9QTn0tbWlzYyBcCi0gICAgJHtQWVRIT05fUE59LXNlbGVjdG9ycyBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZG9taW5hdGVfMi4zLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZG9taW5hdGVfMi4zLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTMwNGNjYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1kb21pbmF0ZV8yLjMuMS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tZG9taW5hdGUuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZWRpdG9yXzEuMC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWVkaXRvcl8xLjAuMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YWQyYjg2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWVkaXRvcl8xLjAuMy5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tZWRpdG9yLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWV2ZGV2XzAuNy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWV2ZGV2XzAuNy4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhOTJiNmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZXZkZXZfMC43LjAuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWV2ZGV2LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLWJhYmVsXzAuMTEuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1iYWJlbF8wLjExLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA0ZTdjMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1iYWJlbF8wLjExLjIuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLWJhYmVsLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLWJvb3RzdHJhcF8zLjMuNy4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLWJvb3RzdHJhcF8zLjMuNy4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3N2M3NTQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stYm9vdHN0cmFwXzMuMy43LjEuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLWJvb3RzdHJhcC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1sb2dpbl8wLjQuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1sb2dpbl8wLjQuMS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLWxvZ2luXzAuNC4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stbG9naW5fMC40LjEuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1tYWlsXzAuOS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLW1haWxfMC45LjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI5NjNiZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1tYWlsXzAuOS4xLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1mbGFzay1tYWlsLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLW1pZ3JhdGVfMi4xLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stbWlncmF0ZV8yLjEuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOThjYmZkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLW1pZ3JhdGVfMi4xLjEuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLW1pZ3JhdGUuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stbmF2XzAuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1uYXZfMC42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyNTExNTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stbmF2XzAuNi5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tZmxhc2stbmF2LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLXJlc3RmdWxfMC4zLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stcmVzdGZ1bF8wLjMuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmZmNTlhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLXJlc3RmdWxfMC4zLjYuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1mbGFzay1yZXN0ZnVsLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLXNjcmlwdF8yLjAuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1zY3JpcHRfMi4wLjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY4ODUxOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1zY3JpcHRfMi4wLjYuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLXNjcmlwdC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1zcWxhbGNoZW15XzIuMy4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLXNxbGFsY2hlbXlfMi4zLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdmNDViYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay1zcWxhbGNoZW15XzIuMy4yLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1mbGFzay1zcWxhbGNoZW15LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLXVwbG9hZHNfMC4yLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stdXBsb2Fkc18wLjIuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NThjMmFjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLXVwbG9hZHNfMC4yLjEuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWZsYXNrLXVwbG9hZHMuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stdXNlcl8wLjYuMTkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2stdXNlcl8wLjYuMTkuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUxMDE3ZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay11c2VyXzAuNi4xOS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tZmxhc2stdXNlci5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay13dGZfMC4xNC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWZsYXNrLXd0Zl8wLjE0LjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIzNjJhOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay13dGZfMC4xNC4yLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1mbGFzay13dGYuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2steHN0YXRpY18wLjAuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1mbGFzay14c3RhdGljXzAuMC4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0MTJiZWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZmxhc2steHN0YXRpY18wLjAuMS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tZmxhc2steHN0YXRpYy5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1ncmVlbmxldF8wLjQuMTIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZ3JlZW5sZXRfMC40LjEzLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZ3JlZW5sZXRfMC40LjEyLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtZ3JlZW5sZXRfMC40LjEzLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtaHRtbDVsaWJfMC45OTk5OTk5OTkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtaHRtbDVsaWJfMS4wLjEuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1odG1sNWxpYl8wLjk5OTk5OTk5OS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWh0bWw1bGliXzEuMC4xLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtaHlwZXJsaW5rXzE3LjMuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1oeXBlcmxpbmtfMTcuMy4xLmJiCmluZGV4IDNkMzBhZjIuLjcwODEzYmYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1oeXBlcmxpbmtfMTcuMy4xLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1oeXBlcmxpbmtfMTcuMy4xLmJiCkBAIC0xLDQgKzEsMiBAQAogaW5oZXJpdCBzZXR1cHRvb2xzMwogcmVxdWlyZSBweXRob24taHlwZXJsaW5rLmluYwotCi1SREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LXNlbGVjdG9ycyAke1BZVEhPTl9QTn0tZW51bSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1pc29ydF80LjIuMTUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtaXNvcnRfNC4zLjQuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1pc29ydF80LjIuMTUuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1pc29ydF80LjMuNC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWl0c2Rhbmdlcm91c18wLjI0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWl0c2Rhbmdlcm91c18wLjI0LmJiCmluZGV4IGNkMzA4MjUuLmE3MWMyMGYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1pdHNkYW5nZXJvdXNfMC4yNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtaXRzZGFuZ2Vyb3VzXzAuMjQuYmIKQEAgLTEsMiArMSw2IEBACiBpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKIHJlcXVpcmUgcHl0aG9uLWl0c2Rhbmdlcm91cy5pbmMKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgJHtQWVRIT05fUE59LWNvbXByZXNzaW9uIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1qYXZhb2JqLXB5M18wLjIuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1qYXZhb2JqLXB5M18wLjIuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWMyM2JhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWphdmFvYmotcHkzXzAuMi40LmJiCkBAIC0wLDAgKzEsMiBAQAorcmVxdWlyZSBweXRob24tamF2YW9iai1weTMuaW5jCitpbmhlcml0IHNldHVwdG9vbHMzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtamluamEyXzIuMTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtamluamEyXzIuMTAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjExNTZiNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1qaW5qYTJfMi4xMC5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tamluamEyLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWppbmphMl8yLjkuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1qaW5qYTJfMi45LjYuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzNzVmOGMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWppbmphMl8yLjkuNi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotaW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCi1yZXF1aXJlIHB5dGhvbi1qaW5qYTIuaW5jCi0KLSMgUmVxdWlyZXMgX3B5ZGVjaW1hbCB3aGljaCBpcyBpbiBtaXNjCi1SREVQRU5EU18ke1BOfSArPSAiIFwKLSAgICAke1BZVEhPTl9QTn0tbWlzYyBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtanNvbnBhdGNoXzEuMjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtanNvbnBhdGNoXzEuMjMuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNlZmNlZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1qc29ucGF0Y2hfMS4yMy5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLWpzb25wYXRjaC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1qc29ucG9pbnRlcl8yLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtanNvbnBvaW50ZXJfMi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkMGEwOWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtanNvbnBvaW50ZXJfMi4wLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tanNvbnBvaW50ZXIuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtanNvbnNjaGVtYV8yLjYuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1qc29uc2NoZW1hXzIuNi4wLmJiCmluZGV4IDVhYWVlNjguLjkyNjk5MDcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1qc29uc2NoZW1hXzIuNi4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1qc29uc2NoZW1hXzIuNi4wLmJiCkBAIC0xLDYgKzEsMiBAQAogaW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCiByZXF1aXJlIHB5dGhvbi1qc29uc2NoZW1hLmluYwotCi1SREVQRU5EU18ke1BOfSArPSAiIFwKLSAgICAke1BZVEhPTl9QTn0tbWlzYyBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbGFuZ3RhYmxlXzAuMC4zNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1sYW5ndGFibGVfMC4wLjM3LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjJjYTFhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1sYW5ndGFibGVfMC4wLjM3LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAibGFuZ3RhYmxlIGlzIHVzZWQgdG8gZ3Vlc3MgcmVhc29uYWJsZSBkZWZhdWx0cyBmb3IgbG9jYWxlLFwKLWtleWJvYXJkLCB0ZXJyaXRvcnkiCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vbWlrZS1mYWJpYW4vbGFuZ3RhYmxlLyIKLUxJQ0VOU0UgPSAiR1BMdjMrIgotU0VDVElPTiA9ICJkZXZlbC9weXRob24iCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgotCi1TID0gIiR7V09SS0RJUn0vZ2l0IgotQiA9ICIke1N9IgotCi1TUkNSRVYgPSAiM2YwMDFlZWYwMjdiYTY5ZWYyZmRiMzVjNjcwYjdkYTI2Yjc5YjVlMiIKLVBWID0gIjAuMC4zNytnaXQke1NSQ1BWfSIKLVNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9taWtlLWZhYmlhbi9sYW5ndGFibGUuZ2l0O2JyYW5jaD1tYXN0ZXIgXAotIgotCi1pbmhlcml0IHNldHVwdG9vbHMzIHB5dGhvbjNuYXRpdmUKLQotRElTVFVUSUxTX0lOU1RBTExfQVJHUyA9ICItLXByZWZpeD0ke0R9LyR7cHJlZml4fSBcCi0gICAgLS1pbnN0YWxsLWRhdGE9JHtEfS8ke2RhdGFkaXJ9L2xhbmd0YWJsZSIKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vKiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1sYW5ndGFibGVfMC4wLjM4LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWxhbmd0YWJsZV8wLjAuMzguYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNhNThjNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1sYW5ndGFibGVfMC4wLjM4LmJiCkBAIC0wLDAgKzEsMjkgQEAKK0RFU0NSSVBUSU9OID0gImxhbmd0YWJsZSBpcyB1c2VkIHRvIGd1ZXNzIHJlYXNvbmFibGUgZGVmYXVsdHMgZm9yIGxvY2FsZSxcCitrZXlib2FyZCwgdGVycml0b3J5IgorSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL21pa2UtZmFiaWFuL2xhbmd0YWJsZS8iCitMSUNFTlNFID0gIkdQTHYzKyIKK1NFQ1RJT04gPSAiZGV2ZWwvcHl0aG9uIgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKK0IgPSAiJHtTfSIKKworU1JDUkVWID0gIjM1Njg3Y2E5NTdiNzQ2ZjE1M2E2ODcyMTM5NDYyYjE0NDNmOGNhZDEiCitQViA9ICIwLjAuMzgrZ2l0JHtTUkNQVn0iCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbWlrZS1mYWJpYW4vbGFuZ3RhYmxlLmdpdDticmFuY2g9bWFzdGVyIFwKKyIKKworaW5oZXJpdCBzZXR1cHRvb2xzMyBweXRob24zbmF0aXZlCisKK0RJU1RVVElMU19JTlNUQUxMX0FSR1MgPSAiLS1wcmVmaXg9JHtEfS8ke3ByZWZpeH0gXAorICAgIC0taW5zdGFsbC1kYXRhPSR7RH0vJHtkYXRhZGlyfS9sYW5ndGFibGUiCisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9LyoiCisKK1JERVBFTkRTXyR7UE59ICs9ICIgXAorICAgICR7UFlUSE9OX1BOfS1jb21wcmVzc2lvbiBcCisgICAgJHtQWVRIT05fUE59LWRvY3Rlc3QgXAorICAgICR7UFlUSE9OX1BOfS1sb2dnaW5nIFwKKyAgICAke1BZVEhPTl9QTn0teG1sIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1seG1sXzQuMS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLWx4bWxfNC4yLjEuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1seG1sXzQuMS4wLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbHhtbF80LjIuMS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW1zZ3BhY2tfMC40LjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbXNncGFja18wLjUuNi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW1zZ3BhY2tfMC40LjguYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1tc2dwYWNrXzAuNS42LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbXVsdGlkaWN0XzMuMi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW11bHRpZGljdF8zLjIuMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY1NTZiMy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbXVsdGlkaWN0XzMuMi4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1TVU1NQVJZID0gIk11bHRpZGljdHMgYXJlIHVzZWZ1bCBmb3Igd29ya2luZyB3aXRoIEhUVFAgaGVhZGVycywgVVJMIHF1ZXJ5IGFyZ3MgZXRjLiIKLUhPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9haW8tbGlicy9tdWx0aWRpY3QvIgotTElDRU5TRSA9ICJBcGFjaGUtMi4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZTc0Yzk4YWJlMGRlOGY3OThjYTYwOTEzN2Y5Y2VmNGEiCi0KLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzMwotCi1TUkNfVVJJW21kNXN1bV0gPSAiYTAxZGEzMWNhMTg1NTU1N2ExYjJlMDUzYzkzM2FmMmYiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTI3YTdhOTUzMTczNzFjMTVlY2RhNzIwNmY2ZThjMTQ0ZjEwYTMzN2JiMmMzZTYxYjUxNzZkZWFmYmI4OGNiMiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1tdWx0aWRpY3RfMy4zLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbXVsdGlkaWN0XzMuMy4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmOWNkNTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbXVsdGlkaWN0XzMuMy4yLmJiCkBAIC0wLDAgKzEsOSBAQAorU1VNTUFSWSA9ICJNdWx0aWRpY3RzIGFyZSB1c2VmdWwgZm9yIHdvcmtpbmcgd2l0aCBIVFRQIGhlYWRlcnMsIFVSTCBxdWVyeSBhcmdzIGV0Yy4iCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vYWlvLWxpYnMvbXVsdGlkaWN0LyIKK0xJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWU3NGM5OGFiZTBkZThmNzk4Y2E2MDkxMzdmOWNlZjRhIgorCitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKKworU1JDX1VSSVttZDVzdW1dID0gIjA2Y2E5MWQ5OTNkZTJkMDRjN2VlNmRmMGNiYjQ0ZWEyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImY4MmU2MWM3NDA4ZWQwZGNlMTg2MjEwMGRiNTU1OTU0ODE5MTFmMTU5ZDZkZGVjMGIzNzVkMzViNjQ0OTUwOWIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbmRnLWh0dHBzY2xpZW50XzAuNC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW5kZy1odHRwc2NsaWVudF8wLjQuNC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW5kZy1odHRwc2NsaWVudF8wLjQuMy5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW5kZy1odHRwc2NsaWVudF8wLjQuNC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW50cGxpYl8wLjMuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1udHBsaWJfMC4zLjMuYmIKaW5kZXggMzU0NDBiYy4uOTNkZjgzYSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW50cGxpYl8wLjMuMy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtbnRwbGliXzAuMy4zLmJiCkBAIC0xMCwzICsxMCw1IEBACiBTID0gIiR7V09SS0RJUn0vJHtTUkNOQU1FfS0ke1BWfSIKIAogaW5oZXJpdCBzZXR1cHRvb2xzMyBweXRob24zbmF0aXZlIHB5cGkKKworUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1kYXRldGltZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1vYXV0aGxpYl8yLjAuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1vYXV0aGxpYl8yLjAuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTEzYjU1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLW9hdXRobGliXzIuMC42LmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tb2F1dGhsaWIuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGFoby1tcXR0XzEuMy4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBhaG8tbXF0dF8xLjMuMS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBhaG8tbXF0dF8xLjMuMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBhaG8tbXF0dF8xLjMuMS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBhbmRhc18wLjIwLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGFuZGFzXzAuMjIuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBhbmRhc18wLjIwLjMuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wYW5kYXNfMC4yMi4wLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGV4cGVjdF80LjIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wZXhwZWN0XzQuNS4wLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGV4cGVjdF80LjIuMS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBleHBlY3RfNC41LjAuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1waWRfMi4xLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGlkXzIuMS4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODhkOWEwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1waWRfMi4xLjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1TVU1NQVJZID0gIlBpZGZpbGUgZmVhdHVyaW5nIHN0YWxlIGRldGVjdGlvbiBhbmQgZmlsZS1sb2NraW5nLCBjYW4gYWxzbyBcCi1iZSB1c2VkIGFzIGNvbnRleHQtbWFuYWdlciBvciBkZWNvcmF0b3IiCi1IT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vdHJicy9waWQvIgotTElDRU5TRSA9ICJBcGFjaGUtMi4wIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ODNkNTNjYmQzMTA1MDYzZjIwMzA1YmMzMTM0NjRlMjkiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI5NjM0YjFlM2Q1NDU1NDRhOWQ0OTZlMjVlNDUzMGQxNCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJiNDQzMTY5ZDNkYzIxMzk3Njk1YjRhODIwMTZmYWRiNGNmZGIwZWQ4YjJkZGI0YWFhNDI4ZTE3MDFiYjM0ZTFmIgotCi1pbmhlcml0IHB5cGkgc2V0dXB0b29sczMKLQotU1JDX1VSSSArPSAiIFwKLSAgICBmaWxlOi8vMDAwMS1yZW1vdmUtcmVxdWlyZW1lbnQtb2Ytbm9zZS5wYXRjaCBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGlkXzIuMi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBpZF8yLjIuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDM4MzE5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBpZF8yLjIuMC5iYgpAQCAtMCwwICsxLDE0IEBACitTVU1NQVJZID0gIlBpZGZpbGUgZmVhdHVyaW5nIHN0YWxlIGRldGVjdGlvbiBhbmQgZmlsZS1sb2NraW5nLCBjYW4gYWxzbyBcCitiZSB1c2VkIGFzIGNvbnRleHQtbWFuYWdlciBvciBkZWNvcmF0b3IiCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vdHJicy9waWQvIgorTElDRU5TRSA9ICJBcGFjaGUtMi4wIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ODNkNTNjYmQzMTA1MDYzZjIwMzA1YmMzMTM0NjRlMjkiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIwNGQzMDMwODAxM2QxNmFhODgyYjM4MDZmZWRhOGFiMiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkOGJiMmNlZWMyMWE0YWU4NGJlNmU5ZDMyMGRiMWY1NjkzNGIzMGU2NzZlMzFjNmYwOThjYTcyMThiM2Q2N2Q0IgorCitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKKworU1JDX1VSSSArPSAiIFwKKyAgICBmaWxlOi8vMDAwMS1yZW1vdmUtcmVxdWlyZW1lbnQtb2Ytbm9zZS5wYXRjaCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcGx1Z2d5XzAuNi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBsdWdneV8wLjYuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDFlOGUzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBsdWdneV8wLjYuMC5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLXBsdWdneS5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wbHlfMy4xMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wbHlfMy4xMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjQxMGJhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBseV8zLjExLmJiCkBAIC0wLDAgKzEsMiBAQAorcmVxdWlyZSBweXRob24tcGx5LmluYworaW5oZXJpdCBzZXR1cHRvb2xzMwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXByZXRlbmRfMS4wLjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHJldGVuZF8xLjAuOS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXByZXRlbmRfMS4wLjguYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wcmV0ZW5kXzEuMC45LmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHJvbXB0LXRvb2xraXRfMS4wLjE1LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXByb21wdC10b29sa2l0XzEuMC4xNS5iYgppbmRleCBkOGY2Mzg5Li4wZTk5OTE3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHJvbXB0LXRvb2xraXRfMS4wLjE1LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wcm9tcHQtdG9vbGtpdF8xLjAuMTUuYmIKQEAgLTMsNyArMyw1IEBACiAKIFJERVBFTkRTXyR7UE59ICs9ICIgXAogICAgICR7UFlUSE9OX1BOfS1kYXRldGltZSBcCi0gICAgJHtQWVRIT05fUE59LWVudW0gXAogICAgICR7UFlUSE9OX1BOfS1zaGVsbCBcCi0gICAgJHtQWVRIT05fUE59LXRleHR1dGlscyBcCiAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHJvdG9idWZfMy40LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHJvdG9idWZfMy41LjIuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1wcm90b2J1Zl8zLjQuMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXByb3RvYnVmXzMuNS4yLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHN1dGlsXzUuMy4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBzdXRpbF81LjQuMy5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBzdXRpbF81LjMuMS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXBzdXRpbF81LjQuMy5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5XzEuNC4zNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weV8xLjUuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5XzEuNC4zNC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5XzEuNS4yLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlhc24xLW1vZHVsZXNfMC4yLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlhc24xLW1vZHVsZXNfMC4yLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2IxMTg2ZgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWFzbjEtbW9kdWxlc18wLjIuMS5iYgpAQCAtMCwwICsxLDIgQEAKK3JlcXVpcmUgcHl0aG9uLXB5YXNuMS1tb2R1bGVzLmluYworaW5oZXJpdCBzZXR1cHRvb2xzMwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5YXNuMV8wLjMuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWFzbjFfMC40LjIuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWFzbjFfMC4zLjYuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWFzbjFfMC40LjIuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWJpbmQxMV8yLjIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWJpbmQxMV8yLjIuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5YmluZDExXzIuMi4xLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHliaW5kMTFfMi4yLjIuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWJsdWV6XzAuMjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlibHVlel8wLjIyLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3MTJhNzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlibHVlel8wLjIyLmJiCkBAIC0wLDAgKzEsMiBAQAorcmVxdWlyZSBweXRob24tcHlibHVlei5pbmMKK2luaGVyaXQgc2V0dXB0b29sczMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWNyeXB0b18yLjYuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWNyeXB0b18yLjYuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmQ2MzRjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5Y3J5cHRvXzIuNi4xLmJiCkBAIC0wLDAgKzEsOSBAQAoraW5oZXJpdCBkaXN0dXRpbHMzCityZXF1aXJlIHB5dGhvbi1weWNyeXB0by5pbmMKKworIyBXZSBleHBsaWNpdGx5IGNhbGwgZGlzdHV0aWxzX2RvX2luc3RhbGwsIHNpbmNlIHdlIHdhbnQgaXQgdG8gcnVuLCBidXQKKyMgKmRvbid0KiB3YW50IHRoZSBhdXRvdG9vbHMgaW5zdGFsbCB0byBydW4sIHNpbmNlIHRoaXMgcGFja2FnZSBkb2Vzbid0CisjIHByb3ZpZGUgYSAibWFrZSBpbnN0YWxsIiB0YXJnZXQuCitkb19pbnN0YWxsKCkgeworICAgICAgIGRpc3R1dGlsczNfZG9faW5zdGFsbAorfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5Y3J5cHRvZG9tZV8zLjQuMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHljcnlwdG9kb21lXzMuNC4xMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzA2MmRkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5Y3J5cHRvZG9tZV8zLjQuMTEuYmIKQEAgLTAsMCArMSwyIEBACityZXF1aXJlIHB5dGhvbi1weWNyeXB0b2RvbWUuaW5jCitpbmhlcml0IHNldHVwdG9vbHMzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlkYnVzXzAuNi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5ZGJ1c18wLjYuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWQxYzYzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5ZGJ1c18wLjYuMC5iYgpAQCAtMCwwICsxLDIgQEAKK3JlcXVpcmUgcHl0aG9uLXB5ZGJ1cy5pbmMKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5ZXhwZWN0XzEuMC4xNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWV4cGVjdF8xLjAuMTcuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmZkNTg0MAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWV4cGVjdF8xLjAuMTcuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1weWV4cGVjdC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWlmYWNlXzAuMC41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5aWZhY2VfMC4wLjUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIxZTdiMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWlmYWNlXzAuMC41LmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tcHlpZmFjZS5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWprc18xNy4xLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlqa3NfMTcuMS4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ODJmY2UKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlqa3NfMTcuMS4xLmJiCkBAIC0wLDAgKzEsMiBAQAorcmVxdWlyZSBweXRob24tcHlqa3MuaW5jCitpbmhlcml0IHNldHVwdG9vbHMzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlqd3RfMS42LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlqd3RfMS42LjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMxNmQyMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWp3dF8xLjYuMS5iYgpAQCAtMCwwICsxLDIgQEAKK3JlcXVpcmUgcHl0aG9uLXB5and0LmluYworaW5oZXJpdCBzZXR1cHRvb2xzMwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5bGludF8xLjcuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWxpbnRfMS44LjMuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWxpbnRfMS43LjQuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weWxpbnRfMS44LjMuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weW1pc3BfMi40LjgwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5bWlzcF8yLjQuODkuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weW1pc3BfMi40LjgwLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHltaXNwXzIuNC44OS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5bW9uZ29fMy41LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHltb25nb18zLjUuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWYwMmNhYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHltb25nb18zLjUuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzMwotcmVxdWlyZSBweXRob24tcHltb25nby5pbmMKLQotIyBSZXF1aXJlcyBfcHlkZWNpbWFsIHdoaWNoIGlzIGluIG1pc2MKLVJERVBFTkRTXyR7UFlUSE9OX1BOfS1ic29uICs9ICIgXAotICAgICR7UFlUSE9OX1BOfS1lbnVtIFwKLSAgICAke1BZVEhPTl9QTn0tbWlzYyBcCi0gICAgJHtQWVRIT05fUE59LXNlbGVjdG9ycyBcCi0gICAgJHtQWVRIT05fUE59LXN1YnByb2Nlc3MgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5bW9uZ29fMy42LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHltb25nb18zLjYuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTY0YjE4Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5bW9uZ29fMy42LjEuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLXB5bW9uZ28uaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHluZXRsaW51eF8xLjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHluZXRsaW51eF8xLjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZkOWUzYwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weW5ldGxpbnV4XzEuMS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLXB5bmV0bGludXguaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlvcGVuc3NsXzE3LjMuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weW9wZW5zc2xfMTcuNS4wLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlvcGVuc3NsXzE3LjMuMC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5b3BlbnNzbF8xNy41LjAuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXBlcmNsaXBfMS42LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlwZXJjbGlwXzEuNi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlNmY4OGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlwZXJjbGlwXzEuNi4wLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tcHlwZXJjbGlwLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5cm91dGUyXzAuMy4yMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXJvdXRlMl8wLjQuMjEuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXJvdXRlMl8wLjMuMjIuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXJvdXRlMl8wLjQuMjEuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXNlcmlhbF8zLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlzZXJpYWxfMy40LmJiCmluZGV4IDQ0YzEzNjguLjE3ZWQzZjggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXNlcmlhbF8zLjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5c2VyaWFsXzMuNC5iYgpAQCAtNSw1ICs1LDMgQEAKICAgICBybSAtZiAke0R9JHtiaW5kaXJ9L21pbml0ZXJtLnB5CiAgICAgcm1kaXIgJHtEfSR7YmluZGlyfQogfQotCi1SREVQRU5EU18ke1BOfSArPSAiJHtQWVRIT05fUE59LWVudW0gJHtQWVRIT05fUE59LXNlbGVjdG9ycyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXNvY2tzXzEuNi43LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5c29ja3NfMS42LjcuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4YWEwMWIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5c29ja3NfMS42LjcuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzMwotcmVxdWlyZSBweXRob24tcHlzb2Nrcy5pbmMKLQotUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICJcCi0gICAgJHtQWVRIT05fUE59LWVudW0gXAotICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAotICAgICR7UFlUSE9OX1BOfS1zZWxlY3RvcnMgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5c29ja3NfMS42LjguYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHlzb2Nrc18xLjYuOC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmRhMDVhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5c29ja3NfMS42LjguYmIKQEAgLTAsMCArMSw2IEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLXB5c29ja3MuaW5jCisKK1JERVBFTkRTXyR7UE59X2NsYXNzLXRhcmdldCArPSAiXAorICAgICR7UFlUSE9OX1BOfS1uZXRjbGllbnQgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dGVzdC1ydW5uZXJfMi4xMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dGVzdC1ydW5uZXJfMy4wLmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHl0ZXN0LXJ1bm5lcl8yLjEyLjEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXRlc3QtcnVubmVyXzMuMC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dGVzdF8zLjIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXRlc3RfMy40LjIuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXRlc3RfMy4yLjIuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXRlc3RfMy40LjIuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXR6XzIwMTcuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXR6XzIwMTguNC5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dHpfMjAxNy4yLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHl0el8yMDE4LjQuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXVkZXZfMC4yMS4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dWRldl8wLjIxLjAuYmIKaW5kZXggMDI5MjU1NS4uYTYyZDk0NCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dWRldl8wLjIxLjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dWRldl8wLjIxLjAuYmIKQEAgLTEsOCArMSwyIEBACiByZXF1aXJlIHB5dGhvbi1weXVkZXYuaW5jCi0KLVJERVBFTkRTXyR7UE59ID0gIlwKLSAgICAke1BZVEhPTl9QTn0tbGFuZyBcCi0iCi0KIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzMwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHl1c2JfMS4wLjBiMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXVzYl8xLjAuMGIyLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MTNlNmYwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1weXVzYl8xLjAuMGIyLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1pbmhlcml0IGRpc3R1dGlsczMKLXJlcXVpcmUgcHl0aG9uLXB5dXNiLmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dXNiXzEuMC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXB5dXNiXzEuMC4yLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlY2VkZTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcHl1c2JfMS4wLjIuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1weXVzYi5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1yZXF1ZXN0c18yLjE4LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtcmVxdWVzdHNfMi4xOC40LmJiCmluZGV4IGQ5MWQ5OTMuLjBhMjQxMGYgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1yZXF1ZXN0c18yLjE4LjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXJlcXVlc3RzXzIuMTguNC5iYgpAQCAtMSw1ICsxLDIgQEAKIGluaGVyaXQgc2V0dXB0b29sczMKIHJlcXVpcmUgcHl0aG9uLXJlcXVlc3RzLmluYwotCi0jIEFkZCB0aGUgcnVudGltZSBkZXBlbmRzIGZvciBzZWxlY3RvcnMucHkKLVJERVBFTkRTXyR7UE59ICs9ICIke1BZVEhPTl9QTn0tbWlzYyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1yb2JvdGZyYW1ld29ya18zLjAuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1yb2JvdGZyYW1ld29ya18zLjAuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjYxM2MzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXJvYm90ZnJhbWV3b3JrXzMuMC4yLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tcm9ib3RmcmFtZXdvcmsuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2NhcHlfMC4yMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zY2FweV8wLjIzLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlN2JhZjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2NhcHlfMC4yMy5iYgpAQCAtMCwwICsxLDEzIEBACitERVNDUklQVElPTiA9ICJQYWNrZXQgY3JhZnRpbmcvc2VuZGluZy9zbmlmZmluZywgUENBUCBwcm9jZXNzaW5nIHRvb2wsXAorYmFzZWQgb24gc2NhcHkgd2l0aCBweXRob24zIGNvbXBhdGliaWxpdHkiCitTRUNUSU9OID0gImRldmVsL3B5dGhvbiIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9waGFldGhvbi9zY2FweSIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9QS0ctSU5GTzttZDU9OTVlYTZlY2ZjMzYwZWI0N2ZlNmY0NzBhZDczNmQ3Y2QiCisKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworCitQWVBJX1BBQ0tBR0UgPSAic2NhcHktcHl0aG9uMyIKKworU1JDX1VSSVttZDVzdW1dID0gIjg2NDJkMDljYTcyN2U3ZTJiNDU1MjIzYWU5NDA1OWI3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjg3NjA5OTFhNjcxNjJmNDNhZjRkOWU2NDgyOGJjZWZjMTAwYmE4ODg1OWI3NTE3N2FlOWY3YWNlNTZlNTgxODYiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2NyeXB0XzAuOC42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNjcnlwdF8wLjguNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDk2NjUzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNjcnlwdF8wLjguNi5iYgpAQCAtMCwwICsxLDMgQEAKK2luaGVyaXQgc2V0dXB0b29sczMgcHl0aG9uMy1kaXIKK3JlcXVpcmUgcHl0aG9uLXNjcnlwdC5pbmMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNlcnBlbnRfMS4yMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zZXJwZW50XzEuMjMuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5OWRjZmEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNlcnBlbnRfMS4yMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotaW5oZXJpdCBzZXR1cHRvb2xzMwotcmVxdWlyZSBweXRob24tc2VycGVudC5pbmMKLQotIyBSZXF1aXJlcyBfcHlkZWNpbWFsIHdoaWNoIGlzIGluIG1pc2MKLVJERVBFTkRTXyR7UE59ICs9ICIgXAotICAgICR7UFlUSE9OX1BOfS1lbnVtIFwKLSAgICAke1BZVEhPTl9QTn0tbWlzYyBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2VycGVudF8xLjI0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNlcnBlbnRfMS4yNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTA0ZGVmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNlcnBlbnRfMS4yNC5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLXNlcnBlbnQuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc2V0dXB0b29scy1zY21fMS4xNS42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNldHVwdG9vbHMtc2NtXzEuMTUuNy5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNldHVwdG9vbHMtc2NtXzEuMTUuNi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNldHVwdG9vbHMtc2NtXzEuMTUuNy5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNpbXBsZWpzb25fMy4xMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNpbXBsZWpzb25fMy4xMS4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDRiYzE1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zaW1wbGVqc29uXzMuMTEuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotaW5oZXJpdCBzZXR1cHRvb2xzMwotcmVxdWlyZSBweXRob24tc2ltcGxlanNvbi5pbmMKLQotIyBSZXF1aXJlcyBfcHlkZWNpbWFsIHdoaWNoIGlzIGluIG1pc2MKLVJERVBFTkRTXyR7UE59ICs9ICIgXAotICAgICR7UFlUSE9OX1BOfS1taXNjIFwKLSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zaW1wbGVqc29uXzMuMTMuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zaW1wbGVqc29uXzMuMTMuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGY0MDZjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNpbXBsZWpzb25fMy4xMy4yLmJiCkBAIC0wLDAgKzEsMiBAQAoraW5oZXJpdCBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24tc2ltcGxlanNvbi5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zbWJ1c18zLjEuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zbWJ1c180LjAuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zbWJ1c18zLjEuMi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNtYnVzXzQuMC5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNwZWFrbGF0ZXJfMS4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNwZWFrbGF0ZXJfMS4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNGY2OTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc3BlYWtsYXRlcl8xLjMuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLXNwZWFrbGF0ZXIuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc3FsYWxjaGVteV8xLjEuMTQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc3FsYWxjaGVteV8xLjEuMTQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxZjFlOTcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNxbGFsY2hlbXlfMS4xLjE0LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1pbmhlcml0IHNldHVwdG9vbHMzCi1yZXF1aXJlIHB5dGhvbi1zcWxhbGNoZW15LmluYwotCi0jIFJlcXVpcmVzIF9weWRlY2ltYWwucHkgd2hpY2ggaXMgaW4gbWlzYwotUkRFUEVORFNfJHtQTn0gKz0gIiR7UFlUSE9OX1BOfS1lbnVtICR7UFlUSE9OX1BOfS1taXNjIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNxbGFsY2hlbXlfMS4xLjE3LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXNxbGFsY2hlbXlfMS4xLjE3LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2Y2Y5ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc3FsYWxjaGVteV8xLjEuMTcuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHNldHVwdG9vbHMzCityZXF1aXJlIHB5dGhvbi1zcWxhbGNoZW15LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXN5c3RlbWRfMjM0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXN5c3RlbWRfMjM0LmJiCmluZGV4IDg0NWI3ZDkuLjU4MGQ5OTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy1zeXN0ZW1kXzIzNC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtc3lzdGVtZF8yMzQuYmIKQEAgLTEsMTMgKzEsMiBAQAotU1VNTUFSWSA9ICJQeXRob24gaW50ZXJmYWNlIGZvciBsaWJzeXN0ZW1kIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3N5c3RlbWQvcHl0aG9uLXN5c3RlbWQiCi1MSUNFTlNFID0gIkxHUEx2Mi4xKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT00ZmJkNjUzODBjZGQyNTU5NTEwNzkwMDhiMzY0NTE2YyIKLQotUFlQSV9QQUNLQUdFID0gInN5c3RlbWQtcHl0aG9uIgotREVQRU5EUyArPSAic3lzdGVtZCAoPD0yMzQpIgotUkRFUEVORFNfJHtQTn0gKz0gInN5c3RlbWQiCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAic3lzdGVtZCIKLWluaGVyaXQgcHlwaSBzZXR1cHRvb2xzMyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKLQotU1JDX1VSSVttZDVzdW1dID0gIjUwNzFlYTViY2I5NzYxODZlOTJhM2Y1ZTc1ZGYyMjFkIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImZkMGU0NGJmNzBlYWRhZTQ1YWFkYzI5MmNiMGE3ZWI1YjBiNjM3MmNkMWIzOTEyMjgwNDdkMzM4OTVkYjgzZTciCityZXF1aXJlIHB5dGhvbi1zeXN0ZW1kLmluYworaW5oZXJpdCBzZXR1cHRvb2xzMwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXRvcm5hZG9fNC41LjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdG9ybmFkb180LjUuMy5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXRvcm5hZG9fNC41LjIuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy10b3JuYWRvXzQuNS4zLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdHdpc3RlZF8xNy45LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdHdpc3RlZF8xNy45LjAuYmIKaW5kZXggZDc1MzNkOC4uNmJkOGM1MiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXR3aXN0ZWRfMTcuOS4wLmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy10d2lzdGVkXzE3LjkuMC5iYgpAQCAtMSw3ICsxLDcgQEAKIGluaGVyaXQgcHlwaSBzZXR1cHRvb2xzMwogcmVxdWlyZSBweXRob24tdHdpc3RlZC5pbmMKIAotUkRFUEVORFNfJHtQTn0tY29yZSArPSAicHl0aG9uMy1sYW5nIgorUEFDS0FHRVNfcmVtb3ZlID0gIiR7UE59LXNyYyIKIAogRklMRVNfJHtQTn0tY29yZV9hcHBlbmQgKz0gIiBcCiAgICR7bGliZGlyfS8ke1BZVEhPTl9ESVJ9L3NpdGUtcGFja2FnZXMvdHdpc3RlZC9fX3B5Y2FjaGVfXyBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdHdvZmlzaF8wLjMuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy10d29maXNoXzAuMy4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1OTNmNmYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdHdvZmlzaF8wLjMuMC5iYgpAQCAtMCwwICsxLDIgQEAKK3JlcXVpcmUgcHl0aG9uLXR3b2Zpc2guaW5jCitpbmhlcml0IHNldHVwdG9vbHMzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdW5pZGlmZl8wLjUuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy11bmlkaWZmXzAuNS41LmJiCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdW5pZGlmZl8wLjUuNC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXVuaWRpZmZfMC41LjUuYmIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy12Y3ZlcnNpb25lcl8yLjE2LjAuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy12Y3ZlcnNpb25lcl8yLjE2LjAuMC5iYgppbmRleCAxODlhNjVhLi5mNjM3MmM4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdmN2ZXJzaW9uZXJfMi4xNi4wLjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXZjdmVyc2lvbmVyXzIuMTYuMC4wLmJiCkBAIC0xNyw4ICsxNyw0IEBACiAgICAgaW5zdGFsbCAtbSAwNjQ0ICR7U30vdmN2ZXJzaW9uZXIqLmVnZyAke0R9LyR7UFlUSE9OX1NJVEVQQUNLQUdFU19ESVJ9LwogfQogCi1SREVQRU5EU18ke1BOfSArPSAiXAotICAgICR7UFlUSE9OX1BOfS1zdWJwcm9jZXNzIFwKLSAgICAiCi0KIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXZpc2l0b3JfMC4xLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtdmlzaXRvcl8wLjEuMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWJjNTFkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXZpc2l0b3JfMC4xLjMuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLXZpc2l0b3IuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtd2ViY29sb3JzXzEuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy13ZWJjb2xvcnNfMS44LjEuYmIKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy13ZWJjb2xvcnNfMS43LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtd2ViY29sb3JzXzEuOC4xLmJiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtd2Vic29ja2V0c180LjAuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy13ZWJzb2NrZXRzXzQuMC4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxNDEyOWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtd2Vic29ja2V0c180LjAuMS5iYgpAQCAtMCwwICsxLDE2IEBACitTVU1NQVJZID0gIkFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBXZWJTb2NrZXQgUHJvdG9jb2wgKFJGQyA2NDU1KSIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9hYXVndXN0aW4vd2Vic29ja2V0cyIKKworTElDRU5TRSA9ICJCU0QtMy1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT01MDcwMjU2NzM4YzA2ZDJlNTlhZGJlYzFmNDA1N2RhYyIKKworaW5oZXJpdCBweXBpIHNldHVwdG9vbHMzCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI5ZThjNmIzYzcwZGVmNDE0NmQ3NWZiYjBmNTJiZGZjNyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkYTRkNGZiZTA1OWIwNDUzZTcyNmQ2ZDk5Mzc2MDA2NWQ2OWI4MjNhMjdlZmMzMDQwNDAyYTZmY2ZlNmExZWQ5IgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCisKK1JERVBFTkRTXyR7UE59ID0gIlwKKyAgICAke1BZVEhPTl9QTn0tYXN5bmNpbyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtd2Vya3pldWdfMC4xMi4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXdlcmt6ZXVnXzAuMTQuMS5iYgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXdlcmt6ZXVnXzAuMTIuMi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXdlcmt6ZXVnXzAuMTQuMS5iYgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXd0Zm9ybXNfMi4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXd0Zm9ybXNfMi4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkZDU5Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMtd3Rmb3Jtc18yLjEuYmIKQEAgLTAsMCArMSwyIEBACitpbmhlcml0IHB5cGkgc2V0dXB0b29sczMKK3JlcXVpcmUgcHl0aG9uLXd0Zm9ybXMuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMteHN0YXRpYy1mb250LWF3ZXNvbWVfNC43LjAuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy14c3RhdGljLWZvbnQtYXdlc29tZV80LjcuMC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzOWY4MGQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMteHN0YXRpYy1mb250LWF3ZXNvbWVfNC43LjAuMC5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24teHN0YXRpYy1mb250LWF3ZXNvbWUuaW5jCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMteHN0YXRpY18xLjAuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy14c3RhdGljXzEuMC4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2Y2I3MDIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZGV2dG9vbHMvcHl0aG9uL3B5dGhvbjMteHN0YXRpY18xLjAuMS5iYgpAQCAtMCwwICsxLDIgQEAKK2luaGVyaXQgcHlwaSBzZXR1cHRvb2xzMworcmVxdWlyZSBweXRob24teHN0YXRpYy5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy15YXBwaV8wLjk4LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWRldnRvb2xzL3B5dGhvbi9weXRob24zLXlhcHBpXzAuOTguYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdkYTViNgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1kZXZ0b29scy9weXRob24vcHl0aG9uMy15YXBwaV8wLjk4LmJiCkBAIC0wLDAgKzEsMiBAQAorcmVxdWlyZSBweXRob24teWFwcGkuaW5jCitpbmhlcml0IHNldHVwdG9vbHMzCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLWJsaXZldC9weXRob24zLWJsaXZldC8wMDE0LWludm9raW5nLWRkLXdpdGgtaW5maW5pdGUtdGltZW91dC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tYmxpdmV0L3B5dGhvbjMtYmxpdmV0LzAwMTQtaW52b2tpbmctZGQtd2l0aC1pbmZpbml0ZS10aW1lb3V0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyYTllNGYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLWJsaXZldC9weXRob24zLWJsaXZldC8wMDE0LWludm9raW5nLWRkLXdpdGgtaW5maW5pdGUtdGltZW91dC5wYXRjaApAQCAtMCwwICsxLDMxIEBACitGcm9tIDkyZmU3ZGZkMDExMzFjOTNhOWIyMDEzY2FiZjc3ZDVmNDY5MDBmYWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+CitEYXRlOiBUdWUsIDYgTWFyIDIwMTggMTc6Mjg6NTYgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gaW52b2tpbmcgZGQgd2l0aCBpbmZpbml0ZSB0aW1lb3V0CisKK1RoaXMgbGFyZ2UgdGltZW91dCBpcyBuZWVkZWQgd2hlbiBydW5uaW5nIG9uIG1hY2hpbmVzIHdpdGgKK2xvdHMgb2YgZGlza3MsIG9yIHdpdGggc2xvdyBkaXNrcy4KKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEhvbmd4dSBKaWEgPGhvbmd4dS5qaWFAd2luZHJpdmVyLmNvbT4KKy0tLQorIGJsaXZldC9kZXZpY2VzL3BhcnRpdGlvbi5weSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2JsaXZldC9kZXZpY2VzL3BhcnRpdGlvbi5weSBiL2JsaXZldC9kZXZpY2VzL3BhcnRpdGlvbi5weQoraW5kZXggYTczNzJmYi4uODk0NzQ3MiAxMDA2NDQKKy0tLSBhL2JsaXZldC9kZXZpY2VzL3BhcnRpdGlvbi5weQorKysrIGIvYmxpdmV0L2RldmljZXMvcGFydGl0aW9uLnB5CitAQCAtNTk0LDcgKzU5NCw3IEBAIGNsYXNzIFBhcnRpdGlvbkRldmljZShTdG9yYWdlRGV2aWNlKToKKyAgICAgICAgIGNtZCA9IFsiZGQiLCAiaWY9L2Rldi96ZXJvIiwgIm9mPSVzIiAlIGRldmljZSwgImJzPSVkIiAlIGJzLAorICAgICAgICAgICAgICAgICJzZWVrPSVkIiAlIHN0YXJ0LCAiY291bnQ9JWQiICUgY291bnRdCisgICAgICAgICB0cnk6CistICAgICAgICAgICAgdXRpbC5ydW5fcHJvZ3JhbShjbWQpCisrICAgICAgICAgICAgdXRpbC5ydW5fcHJvZ3JhbShjbWQsIHRpbWVvdXQ9LTEpCisgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgIGxvZy5lcnJvcihzdHIoZSkpCisgICAgICAgICBmaW5hbGx5OgorLS0gCisxLjguMy4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tYmxpdmV0L3B5dGhvbjMtYmxpdmV0XzIuMi4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1ibGl2ZXQvcHl0aG9uMy1ibGl2ZXRfMi4yLjAuYmIKaW5kZXggY2FjY2E2Ny4uNDZkYzMyZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1ibGl2ZXQvcHl0aG9uMy1ibGl2ZXRfMi4yLjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1ibGl2ZXQvcHl0aG9uMy1ibGl2ZXRfMi4yLjAuYmIKQEAgLTIzLDYgKzIzLDcgQEAKICAgICAgICAgICAgZmlsZTovLzAwMTEtaW52b2tpbmctZnNjay13aXRoLWluZmluaXRlLXRpbWVvdXQucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAxMi1pbnZva2luZy1ta2ZzLXdpdGgtaW5maW5pdGUtdGltZW91dC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDEzLVJldmVydC1BZGFwdC10by1sb2dnaW5nLW1vZHVsZS1uYW1lLWNoYW5nZS5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDE0LWludm9raW5nLWRkLXdpdGgtaW5maW5pdGUtdGltZW91dC5wYXRjaCBcCiAiCiAKIGluaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLWJsaXZldC9weXRob24zLWJsaXZldGd1aV8yLjEuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tYmxpdmV0L3B5dGhvbjMtYmxpdmV0Z3VpXzIuMS41LmJiCmluZGV4IGFjNTA3Y2EuLjI4YzI1NjUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tYmxpdmV0L3B5dGhvbjMtYmxpdmV0Z3VpXzIuMS41LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tYmxpdmV0L3B5dGhvbjMtYmxpdmV0Z3VpXzIuMS41LmJiCkBAIC0xMyw3ICsxMyw3IEBACiAiCiAKIGluaGVyaXQgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAic3lzdGVtZCIKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEgc3lzdGVtZCIKIAogaW5oZXJpdCBzZXR1cHRvb2xzMyBweXRob24zbmF0aXZlCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tbWVoL3B5dGhvbjMtbWVoXzAuNDUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLW1laC9weXRob24zLW1laF8wLjQ1LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YWNlNDk3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tbWVoL3B5dGhvbjMtbWVoXzAuNDUuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1TVU1NQVJZID0gIkEgcHl0aG9uIGxpYnJhcnkgZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMiCi1ERVNDUklQVElPTiA9ICJUaGUgcHl0aG9uLW1laCBwYWNrYWdlIGlzIGEgcHl0aG9uIGxpYnJhcnkgZm9yIGhhbmRsaW5nLCBzYXZpbmcsIGFuZCByZXBvcnRpbmcgXAotZXhjZXB0aW9ucy4iCi1IT01FUEFHRSA9ICJodHRwOi8vZ2l0LmZlZG9yYWhvc3RlZC5vcmcvZ2l0Lz9wPXB5dGhvbi1tZWguZ2l0IgotTElDRU5TRSA9ICJHUEx2MisiCi0KLWluaGVyaXQgc2V0dXB0b29sczMKLQotUyA9ICIke1dPUktESVJ9L2dpdCIKLQotU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3JoaW5zdGFsbGVyL3B5dGhvbi1tZWguZ2l0O3Byb3RvY29sPWh0dHBzO2JyYW5jaD1tYXN0ZXIgXAotIgotU1JDUkVWID0gIjJiZmM3NTFmZDY4MDUxNWQ0NGY3MDk2OTQ1YTFlMjgyYTFmN2Q2YWEiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vKiIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1tZWgvcHl0aG9uMy1tZWhfMC40Ni5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tbWVoL3B5dGhvbjMtbWVoXzAuNDYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBlMmNiZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tbWVoL3B5dGhvbjMtbWVoXzAuNDYuYmIKQEAgLTAsMCArMSwxNyBAQAorU1VNTUFSWSA9ICJBIHB5dGhvbiBsaWJyYXJ5IGZvciBoYW5kbGluZyBleGNlcHRpb25zIgorREVTQ1JJUFRJT04gPSAiVGhlIHB5dGhvbi1tZWggcGFja2FnZSBpcyBhIHB5dGhvbiBsaWJyYXJ5IGZvciBoYW5kbGluZywgc2F2aW5nLCBhbmQgcmVwb3J0aW5nIFwKK2V4Y2VwdGlvbnMuIgorSE9NRVBBR0UgPSAiaHR0cDovL2dpdC5mZWRvcmFob3N0ZWQub3JnL2dpdC8/cD1weXRob24tbWVoLmdpdCIKK0xJQ0VOU0UgPSAiR1BMdjIrIgorCitpbmhlcml0IHNldHVwdG9vbHMzCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9yaGluc3RhbGxlci9weXRob24tbWVoLmdpdDtwcm90b2NvbD1odHRwczticmFuY2g9bWFzdGVyIFwKKyIKK1NSQ1JFViA9ICJiYjExNTY3MjhhNGY3NmU1ZTM2MzhhYjIwYjk0NTRhMTU2OGE5OWRiIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMiCisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9LyoiCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tcHlwYXJ0ZWQvcHl0aG9uLXB5cGFydGVkLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tcHlwYXJ0ZWQvcHl0aG9uLXB5cGFydGVkLmluYwppbmRleCA2NWY4Y2ExLi5hMGVjMDI4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLXB5cGFydGVkL3B5dGhvbi1weXBhcnRlZC5pbmMKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24tcHlwYXJ0ZWQuaW5jCkBAIC02LDE2ICs2LDE3IEBACiBMSUNFTlNFID0gIkdQTC0yLjArIgogTElDX0ZJTEVTX0NIS1NVTSA9ICJcCiAgICAgZmlsZTovL0NPUFlJTkc7bWQ1PThjYTQzY2JjODQyYzIzMzZlODM1OTI2YzIxNjZjMjhiIFwKLSAgICBmaWxlOi8vc3JjL19wZWRtb2R1bGUuYztzdGFydGxpbmU9MTA7ZW5kbGluZT0yMjttZDU9ZWJjYjI1ZGRlMWFjOWM0NmU5ODZkZWM3OWI0MDRlN2UgXAorICAgIGZpbGU6Ly9zcmMvX3BlZG1vZHVsZS5jO2JlZ2lubGluZT0xMDtlbmRsaW5lPTIyO21kNT05ZTUzMzA0ZGI4MTJiODBkMDkzOWUxMWJiNjlkY2FiMiBcCiAiCiBERVBFTkRTICs9ICJwYXJ0ZWQiCiAKICMgdXBzdHJlYW0gb25seSBwdWJsaXNoZXMgcmVsZWFzZXMgaW4gZ2l0aHViIGFyY2hpdmVzIHdoaWNoIGFyZSBkaXNjb3VyYWdlZAotU1JDUkVWID0gIjY5YzRhNDc4ZTQzZDNlZmY2YWUzYTAxMTZmYTM4ZGEwNjc3NmQ1ZjUiCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vcmhpbnN0YWxsZXIvcHlwYXJ0ZWQuZ2l0O3Byb3RvY29sPWh0dHBzIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtZml4LXZlcnNpb24tZmxvYXQtY2hlY2sucGF0Y2ggXAotIgorU1JDUkVWID0gIjFmZGIxNTEyMGYzNWY1ZGExZGM3ZWMxMTY1MjJmMGM3OTZhODM3NmEiCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vcmhpbnN0YWxsZXIvcHlwYXJ0ZWQuZ2l0O3Byb3RvY29sPWh0dHBzIgorCiBTID0gIiR7V09SS0RJUn0vZ2l0IgogCi1SREVQRU5EU18ke1BOfSArPSAicGFydGVkICg+PSAyLjMpIgorUkRFUEVORFNfJHtQTn1fY2xhc3MtdGFyZ2V0ICs9ICIgXAorICAgIHBhcnRlZCAoPj0gMi4zKSBcCisiCiBSREVQRU5EU18ke1BOfV9jbGFzcy1uYXRpdmUgPSAiIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24tcHlwYXJ0ZWQvMDAwMS1maXgtdmVyc2lvbi1mbG9hdC1jaGVjay5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tcHlwYXJ0ZWQvcHl0aG9uLXB5cGFydGVkLzAwMDEtZml4LXZlcnNpb24tZmxvYXQtY2hlY2sucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiM2FiOWYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24tcHlwYXJ0ZWQvMDAwMS1maXgtdmVyc2lvbi1mbG9hdC1jaGVjay5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLWNoZWNrX21vZF92ZXJzaW9uIGJyZWFrcyBpZiBtb2R1bGUgdmVyc2lvbiBpcyBvZiB4LnkueiBmb3JtCi11c2UgYSByZWdleCB0byBoZWxwIGNhc3QgeC55LnogdmVyc2lvbiB0byBhIGZsb2F0Ci0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1JbmRleDogZ2l0L3NldHVwLnB5Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2l0Lm9yaWcvc2V0dXAucHkKLSsrKyBnaXQvc2V0dXAucHkKLUBAIC0yNSw2ICsyNSw3IEBAIGltcG9ydCBnbG9iCi0gaW1wb3J0IG9zCi0gaW1wb3J0IHBsYXRmb3JtCi0gaW1wb3J0IHN5cwotK2ltcG9ydCByZQotIGZyb20gZGlzdHV0aWxzLmNjb21waWxlciBpbXBvcnQgbmV3X2NvbXBpbGVyCi0gZnJvbSBkaXN0dXRpbHMuZXJyb3JzIGltcG9ydCBDb21waWxlRXJyb3IKLSBmcm9tIGRpc3R1dGlscy5lcnJvcnMgaW1wb3J0IExpbmtFcnJvcgotQEAgLTUxLDYgKzUyLDggQEAgZGVmIHBrZ2NvbmZpZygqcGFja2FnZXMsICoqa3dhcmdzKToKLSAKLSBkZWYgY2hlY2tfbW9kX3ZlcnNpb24obW9kdWxlLCB2ZXJzaW9uKToKLSAgICAgbW9kdmVyc2lvbiA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KFsicGtnLWNvbmZpZyIsICItLW1vZHZlcnNpb24iLCBtb2R1bGVdKQotKyAgICBtYXRjaCA9IHJlLnNlYXJjaCgnKFswLTldK1wuWzAtOV0rKScsIG1vZHZlcnNpb24pCi0rICAgIG1vZHZlcnNpb24gPSBtYXRjaC5ncm91cCgwKQotICAgICBpZiBub3QgZmxvYXQobW9kdmVyc2lvbikgPj0gZmxvYXQodmVyc2lvbik6Ci0gICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCIqKiogTWluaW11bSByZXF1aXJlZCAlcyB2ZXJzaW9uOiAlcywgZm91bmQ6ICVzXG4iICUgKG1vZHVsZSwgdmVyc2lvbiwgbW9kdmVyc2lvbiwpKQotICAgICAgICAgc3lzLmV4aXQoMSkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tcHlwYXJ0ZWQvcHl0aG9uLXB5cGFydGVkXzMuMTAuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tcHlwYXJ0ZWQvcHl0aG9uLXB5cGFydGVkXzMuMTAuNy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGExNWE4OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLXB5cGFydGVkL3B5dGhvbi1weXBhcnRlZF8zLjEwLjcuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1yZXF1aXJlIHB5dGhvbi1weXBhcnRlZC5pbmMKLQotREVQRU5EUyArPSAicHl0aG9uLXJlIgotCi1QViA9ICIzLjEwLjcrZ2l0JHtTUkNQVn0iCi0KLWluaGVyaXQgZGlzdHV0aWxzCi0KLVJERVBFTkRTXyR7UE59ICs9ICJweXRob24tc3RyaW5nb2xkIHB5dGhvbi1jb2RlY3MgcHl0aG9uLW1hdGgiCi1SREVQRU5EU18ke1BOfV9jbGFzcy1uYXRpdmUgPSAiIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tcHlwYXJ0ZWQvcHl0aG9uLXB5cGFydGVkXzMuMTEuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tcHlwYXJ0ZWQvcHl0aG9uLXB5cGFydGVkXzMuMTEuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDAwZmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24tcHlwYXJ0ZWRfMy4xMS4xLmJiCkBAIC0wLDAgKzEsMTAgQEAKK3JlcXVpcmUgcHl0aG9uLXB5cGFydGVkLmluYworCitQViA9ICIzLjEwLjcrZ2l0JHtTUkNQVn0iCisKK2luaGVyaXQgZGlzdHV0aWxzCisKK1JERVBFTkRTXyR7UE59ICs9ICJweXRob24tc3RyaW5nb2xkIHB5dGhvbi1jb2RlY3MgcHl0aG9uLW1hdGggcHl0aG9uLXN1YnByb2Nlc3MiCitSREVQRU5EU18ke1BOfV9jbGFzcy1uYXRpdmUgPSAiIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tcHlwYXJ0ZWQvcHl0aG9uMy1weXBhcnRlZC8wMDAxLWZpeC12ZXJzaW9uLWZsb2F0LWNoZWNrLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24zLXB5cGFydGVkLzAwMDEtZml4LXZlcnNpb24tZmxvYXQtY2hlY2sucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0ZmIwYmIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24zLXB5cGFydGVkLzAwMDEtZml4LXZlcnNpb24tZmxvYXQtY2hlY2sucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1jaGVja19tb2RfdmVyc2lvbiBicmVha3MgaWYgbW9kdWxlIHZlcnNpb24gaXMgb2YgeC55LnogZm9ybQotdXNlIGEgcmVnZXggdG8gaGVscCBjYXN0IHgueS56IHZlcnNpb24gdG8gYSBmbG9hdAotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotSW5kZXg6IGdpdC9zZXR1cC5weQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdpdC5vcmlnL3NldHVwLnB5Ci0rKysgZ2l0L3NldHVwLnB5Ci1AQCAtMjUsNiArMjUsNyBAQCBpbXBvcnQgZ2xvYgotIGltcG9ydCBvcwotIGltcG9ydCBwbGF0Zm9ybQotIGltcG9ydCBzeXMKLStpbXBvcnQgcmUKLSBmcm9tIGRpc3R1dGlscy5jY29tcGlsZXIgaW1wb3J0IG5ld19jb21waWxlcgotIGZyb20gZGlzdHV0aWxzLmVycm9ycyBpbXBvcnQgQ29tcGlsZUVycm9yCi0gZnJvbSBkaXN0dXRpbHMuZXJyb3JzIGltcG9ydCBMaW5rRXJyb3IKLUBAIC01MSw2ICs1Miw4IEBAIGRlZiBwa2djb25maWcoKnBhY2thZ2VzLCAqKmt3YXJncyk6Ci0gCi0gZGVmIGNoZWNrX21vZF92ZXJzaW9uKG1vZHVsZSwgdmVyc2lvbik6Ci0gICAgIG1vZHZlcnNpb24gPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChbInBrZy1jb25maWciLCAiLS1tb2R2ZXJzaW9uIiwgbW9kdWxlXSkKLSsgICAgbWF0Y2ggPSByZS5zZWFyY2goYicoWzAtOV0rXC5bMC05XSspJywgbW9kdmVyc2lvbikKLSsgICAgbW9kdmVyc2lvbiA9IG1hdGNoLmdyb3VwKDApCi0gICAgIGlmIG5vdCBmbG9hdChtb2R2ZXJzaW9uKSA+PSBmbG9hdCh2ZXJzaW9uKToKLSAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIioqKiBNaW5pbXVtIHJlcXVpcmVkICVzIHZlcnNpb246ICVzLCBmb3VuZDogJXNcbiIgJSAobW9kdWxlLCB2ZXJzaW9uLCBtb2R2ZXJzaW9uLCkpCi0gICAgICAgICBzeXMuZXhpdCgxKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24zLXB5cGFydGVkXzMuMTAuNy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1weXRob24vcmVjaXBlcy1leHRlbmRlZC9weXRob24tcHlwYXJ0ZWQvcHl0aG9uMy1weXBhcnRlZF8zLjEwLjcuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmNzJjMmEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24zLXB5cGFydGVkXzMuMTAuNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLXJlcXVpcmUgcHl0aG9uLXB5cGFydGVkLmluYwotCi1ERVBFTkRTICs9ICJweXRob24zLXJlIgotCi1QViA9ICIzLjEwLjcrZ2l0JHtTUkNQVn0iCi0KLWluaGVyaXQgZGlzdHV0aWxzMwotCi1SREVQRU5EU18ke1BOfSArPSAicHl0aG9uMy1zdHJpbmdvbGQgcHl0aG9uMy1jb2RlY3MgcHl0aG9uMy1tYXRoIgotUkRFUEVORFNfJHtQTn1fY2xhc3MtbmF0aXZlID0gIiIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtcHl0aG9uL3JlY2lwZXMtZXh0ZW5kZWQvcHl0aG9uLXB5cGFydGVkL3B5dGhvbjMtcHlwYXJ0ZWRfMy4xMS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24zLXB5cGFydGVkXzMuMTEuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDZmOTdiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXB5dGhvbi9yZWNpcGVzLWV4dGVuZGVkL3B5dGhvbi1weXBhcnRlZC9weXRob24zLXB5cGFydGVkXzMuMTEuMS5iYgpAQCAtMCwwICsxLDEwIEBACityZXF1aXJlIHB5dGhvbi1weXBhcnRlZC5pbmMKKworUFYgPSAiMy4xMC43K2dpdCR7U1JDUFZ9IgorCitpbmhlcml0IGRpc3R1dGlsczMKKworUkRFUEVORFNfJHtQTn0gKz0gInB5dGhvbjMtc3RyaW5nb2xkIHB5dGhvbjMtY29kZWNzIHB5dGhvbjMtbWF0aCIKK1JERVBFTkRTXyR7UE59X2NsYXNzLW5hdGl2ZSA9ICIiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9SRUFETUUgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL1JFQURNRQppbmRleCBmMjkyOGFiLi43YjYwNjMwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL1JFQURNRQorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL1JFQURNRQpAQCAtMTMsMTQgKzEzLDE0IEBACiAKIFVSSTogZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuZW1iZWRkZWQvb2UtY29yZS5naXQKIHN1YmRpcmVjdG9yeTogbWV0YQotYnJhbmNoOiByb2NrbyAKK2JyYW5jaDogbWFzdGVyCiByZXZpc2lvbjogSEVBRAogCiBGb3Igc29tZSByZWNpcGVzLCB0aGUgbWV0YS1vZSBsYXllciBpcyByZXF1aXJlZDoKIAogVVJJOiBnaXQ6Ly9naXRodWIuY29tL29wZW5lbWJlZGRlZC9tZXRhLW9lLmdpdAogc3ViZGlyZWN0b3J5OiBtZXRhLW9lCi1icmFuY2g6IHJvY2tvIAorYnJhbmNoOiBtYXN0ZXIKIHJldmlzaW9uOiBIRUFECiAKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9jb25mL2xheWVyLmNvbmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL2NvbmYvbGF5ZXIuY29uZgppbmRleCA4NGZkZDgxLi5mMjA1ZWYyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL2NvbmYvbGF5ZXIuY29uZgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL2NvbmYvbGF5ZXIuY29uZgpAQCAtMTcsNiArMTcsOCBAQAogCiBMQVlFUkRFUEVORFNfd2Vic2VydmVyID0gImNvcmUgb3BlbmVtYmVkZGVkLWxheWVyIgogCitMQVlFUlNFUklFU19DT01QQVRfd2Vic2VydmVyID0gInN1bW8iCisKIExJQ0VOU0VfUEFUSCArPSAiJHtMQVlFUkRJUn0vbGljZW5zZXMiCiAKIFNJR0dFTl9FWENMVURFX1NBRkVfUkVDSVBFX0RFUFMgKz0gIiBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyLW5hdGl2ZV8yLjQuMjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyLW5hdGl2ZV8yLjQuMjcuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlODkzZGIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi1uYXRpdmVfMi40LjI3LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiVGhlIEFwYWNoZSBIVFRQIFNlcnZlciBpcyBhIHBvd2VyZnVsLCBlZmZpY2llbnQsIGFuZCBcCi1leHRlbnNpYmxlIHdlYiBzZXJ2ZXIuIgotU1VNTUFSWSA9ICJBcGFjaGUgSFRUUCBTZXJ2ZXIiCi1IT01FUEFHRSA9ICJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iCi1ERVBFTkRTID0gImV4cGF0LW5hdGl2ZSBwY3JlLW5hdGl2ZSBhcHItbmF0aXZlIGFwci11dGlsLW5hdGl2ZSIKLVNFQ1RJT04gPSAibmV0IgotTElDRU5TRSA9ICJBcGFjaGUtMi4wIgotCi1pbmhlcml0IGF1dG90b29scyBwa2djb25maWcgbmF0aXZlCi0KLVNSQ19VUkkgPSAiJHtBUEFDSEVfTUlSUk9SfS9odHRwZC9odHRwZC0ke1BWfS50YXIuYnoyIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLXVzZS1wa2ctY29uZmlnLWZvci1QQ1JFLWRldGVjdGlvbi5wYXRjaCBcCi0gICAgICAgICAgIgotCi1TID0gIiR7V09SS0RJUn0vaHR0cGQtJHtQVn0iCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWRiZmY1YTJiNTQyZmE1ODg1NDQ1NWJmMWEwYjk0YjgzIgotU1JDX1VSSVttZDVzdW1dID0gIjk3YjZiYmZhODNjODY2ZGJlMjBlZjMxN2UzYWZkMTA4IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjcxZmNjMTI4MjM4YTY5MDUxNWJkODE3NGQ1MzMwYTUzMDkxNjFlZjMxNGEzMjZhZTQ1YzdjMTVlZDEzOWMxM2EiCi0KLUVYVFJBX09FQ09ORiA9ICItLXdpdGgtYXByPSR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9L2Fwci0xLWNvbmZpZyBcCi0gICAgICAgICAgICAgICAgLS13aXRoLWFwci11dGlsPSR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9L2FwdS0xLWNvbmZpZyBcCi0gICAgICAgICAgICAgICAgLS1wcmVmaXg9JHtwcmVmaXh9IC0tZGF0YWRpcj0ke2RhdGFkaXJ9L2FwYWNoZTIgXAotICAgICAgICAgICAgICAgIgotCi1kb19pbnN0YWxsICgpIHsKLSAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0gJHtEfSR7bGliZGlyfQotICAgIGNwIHNlcnZlci9nZW5fdGVzdF9jaGFyICR7RH0ke2JpbmRpcn0KLSAgICBpbnN0YWxsIC1tIDc1NSBzdXBwb3J0L2FweHMgJHtEfSR7YmluZGlyfS8KLSAgICBpbnN0YWxsIC1tIDc1NSBodHRwZCAke0R9JHtiaW5kaXJ9LwotICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vYXBhY2hlMi9idWlsZAotICAgIGNwICR7U30vYnVpbGQvKi5tayAke0R9JHtkYXRhZGlyfS9hcGFjaGUyL2J1aWxkCi0gICAgY3AgYnVpbGQvKi5tayAke0R9JHtkYXRhZGlyfS9hcGFjaGUyL2J1aWxkCi0gICAgY3AgJHtTfS9idWlsZC9pbnN0ZHNvLnNoICR7RH0ke2RhdGFkaXJ9L2FwYWNoZTIvYnVpbGQKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7aW5jbHVkZWRpcn0vYXBhY2hlMgotICAgIGNwICR7U30vaW5jbHVkZS8qICR7RH0ke2luY2x1ZGVkaXJ9L2FwYWNoZTIKLSAgICBjcCBpbmNsdWRlLyogJHtEfSR7aW5jbHVkZWRpcn0vYXBhY2hlMgotICAgIGNwICR7U30vb3MvdW5peC9vcy5oICR7RH0ke2luY2x1ZGVkaXJ9L2FwYWNoZTIKLSAgICBjcCAke1N9L29zL3VuaXgvdW5peGQuaCAke0R9JHtpbmNsdWRlZGlyfS9hcGFjaGUyCi0KLSAgICBjcCBzdXBwb3J0L2VudnZhcnMtc3RkICR7RH0ke2JpbmRpcn0vZW52dmFycwotICAgIGNobW9kIDc1NSAke0R9JHtiaW5kaXJ9L2VudnZhcnMKLX0KLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi1uYXRpdmVfMi40LjI5LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi1uYXRpdmVfMi40LjI5LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2ZjA3M2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyLW5hdGl2ZV8yLjQuMjkuYmIKQEAgLTAsMCArMSw0NSBAQAorREVTQ1JJUFRJT04gPSAiVGhlIEFwYWNoZSBIVFRQIFNlcnZlciBpcyBhIHBvd2VyZnVsLCBlZmZpY2llbnQsIGFuZCBcCitleHRlbnNpYmxlIHdlYiBzZXJ2ZXIuIgorU1VNTUFSWSA9ICJBcGFjaGUgSFRUUCBTZXJ2ZXIiCitIT01FUEFHRSA9ICJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iCitERVBFTkRTID0gImV4cGF0LW5hdGl2ZSBwY3JlLW5hdGl2ZSBhcHItbmF0aXZlIGFwci11dGlsLW5hdGl2ZSIKK1NFQ1RJT04gPSAibmV0IgorTElDRU5TRSA9ICJBcGFjaGUtMi4wIgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgbmF0aXZlCisKK1NSQ19VUkkgPSAiJHtBUEFDSEVfTUlSUk9SfS9odHRwZC9odHRwZC0ke1BWfS50YXIuYnoyIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLXVzZS1wa2ctY29uZmlnLWZvci1QQ1JFLWRldGVjdGlvbi5wYXRjaCBcCisgICAgICAgICAgIgorCitTID0gIiR7V09SS0RJUn0vaHR0cGQtJHtQVn0iCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWE2MmIwYzc2MjM4MjZmZjk5NzY2ZmYxM2ZiOTAwN2Y4IgorU1JDX1VSSVttZDVzdW1dID0gIjBjNTk5NDA0ZWY2YjY5ZWVlOTViY2Q5ZmNkMDk0NDA3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjc3Nzc1M2E1YTI1NTY4YTJhMjc0MjhiMjIxNDk4MDU2NGJjMWMzOGMxYWJmOWNjYzc2MzBiNjM5OTkxZjdmMDAiCisKK0VYVFJBX09FQ09ORiA9ICItLXdpdGgtYXByPSR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9L2Fwci0xLWNvbmZpZyBcCisgICAgICAgICAgICAgICAgLS13aXRoLWFwci11dGlsPSR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9L2FwdS0xLWNvbmZpZyBcCisgICAgICAgICAgICAgICAgLS1wcmVmaXg9JHtwcmVmaXh9IC0tZGF0YWRpcj0ke2RhdGFkaXJ9L2FwYWNoZTIgXAorICAgICAgICAgICAgICAgIgorCitkb19pbnN0YWxsICgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0gJHtEfSR7bGliZGlyfQorICAgIGNwIHNlcnZlci9nZW5fdGVzdF9jaGFyICR7RH0ke2JpbmRpcn0KKyAgICBpbnN0YWxsIC1tIDc1NSBzdXBwb3J0L2FweHMgJHtEfSR7YmluZGlyfS8KKyAgICBpbnN0YWxsIC1tIDc1NSBodHRwZCAke0R9JHtiaW5kaXJ9LworICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vYXBhY2hlMi9idWlsZAorICAgIGNwICR7U30vYnVpbGQvKi5tayAke0R9JHtkYXRhZGlyfS9hcGFjaGUyL2J1aWxkCisgICAgY3AgYnVpbGQvKi5tayAke0R9JHtkYXRhZGlyfS9hcGFjaGUyL2J1aWxkCisgICAgY3AgJHtTfS9idWlsZC9pbnN0ZHNvLnNoICR7RH0ke2RhdGFkaXJ9L2FwYWNoZTIvYnVpbGQKKworICAgIGluc3RhbGwgLWQgJHtEfSR7aW5jbHVkZWRpcn0vYXBhY2hlMgorICAgIGNwICR7U30vaW5jbHVkZS8qICR7RH0ke2luY2x1ZGVkaXJ9L2FwYWNoZTIKKyAgICBjcCBpbmNsdWRlLyogJHtEfSR7aW5jbHVkZWRpcn0vYXBhY2hlMgorICAgIGNwICR7U30vb3MvdW5peC9vcy5oICR7RH0ke2luY2x1ZGVkaXJ9L2FwYWNoZTIKKyAgICBjcCAke1N9L29zL3VuaXgvdW5peGQuaCAke0R9JHtpbmNsdWRlZGlyfS9hcGFjaGUyCisKKyAgICBjcCBzdXBwb3J0L2VudnZhcnMtc3RkICR7RH0ke2JpbmRpcn0vZW52dmFycworICAgIGNobW9kIDc1NSAke0R9JHtiaW5kaXJ9L2VudnZhcnMKK30KKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9hcGFjaGUtY29uZmlndXJlX3BlcmxiaW4ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL2FwYWNoZS1jb25maWd1cmVfcGVybGJpbi5wYXRjaAppbmRleCBjOTAyNzlkLi45MmM1M2YzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL2FwYWNoZS1jb25maWd1cmVfcGVybGJpbi5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL2FwYWNoZS1jb25maWd1cmVfcGVybGJpbi5wYXRjaApAQCAtNCwxMSArNCwxMyBAQAogIwogIyBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCiAKLS0tLSBhL2NvbmZpZ3VyZS5pbgotKysrIGIvY29uZmlndXJlLmluCi1AQCAtNjM4LDEwICs2MzgsNyBAQAotIEFDX0RFRklORV9VTlFVT1RFRChBUEFDSEVfTVBNX0RJUiwgIiRNUE1fRElSIiwKLSAJW0xvY2F0aW9uIG9mIHRoZSBzb3VyY2UgZm9yIHRoZSBjdXJyZW50IE1QTV0pCitJbmRleDogaHR0cGQtMi40LjI5L2NvbmZpZ3VyZS5pbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGh0dHBkLTIuNC4yOS5vcmlnL2NvbmZpZ3VyZS5pbgorKysrIGh0dHBkLTIuNC4yOS9jb25maWd1cmUuaW4KK0BAIC04NTUsMTAgKzg1NSw3IEBAIEFDX0RFRklORV9VTlFVT1RFRChTRVJWRVJfQ09ORklHX0ZJTEUsICIKKyBBQ19ERUZJTkVfVU5RVU9URUQoQVBfVFlQRVNfQ09ORklHX0ZJTEUsICIke3JlbF9zeXNjb25mZGlyfS9taW1lLnR5cGVzIiwKKyAJW0xvY2F0aW9uIG9mIHRoZSBNSU1FIHR5cGVzIGNvbmZpZyBmaWxlLCByZWxhdGl2ZSB0byB0aGUgQXBhY2hlIHJvb3QgZGlyZWN0b3J5XSkKICAKIC1wZXJsYmluPWAkYWNfYXV4X2Rpci9QcmludFBhdGggcGVybGAKIC1pZiB0ZXN0ICJ4JHBlcmxiaW4iID0gIngiOyB0aGVuCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL2FwYWNoZS1zc2wtbHRtYWluLXJwYXRoLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9hcGFjaGUtc3NsLWx0bWFpbi1ycGF0aC5wYXRjaAppbmRleCA0MTNkYzUzLi5mMTNkYTkxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL2FwYWNoZS1zc2wtbHRtYWluLXJwYXRoLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvYXBhY2hlLXNzbC1sdG1haW4tcnBhdGgucGF0Y2gKQEAgLTEsMTEgKzEsMTEgQEAKICBidWlsZC9sdG1haW4uc2ggfCAzMiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogIDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvYnVpbGQvbHRtYWluLnNoIGIvYnVpbGQvbHRtYWluLnNoCi1pbmRleCA1ZWNhNGFlLi44MDViNDYxIDEwMDY0NAotLS0tIGEvYnVpbGQvbHRtYWluLnNoCi0rKysgYi9idWlsZC9sdG1haW4uc2gKLUBAIC02OTQ0LDcgKzY5NDQsNyBAQCBmdW5jX21vZGVfbGluayAoKQorSW5kZXg6IGh0dHBkLTIuNC4yOS9idWlsZC9sdG1haW4uc2gKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBodHRwZC0yLjQuMjkub3JpZy9idWlsZC9sdG1haW4uc2gKKysrKyBodHRwZC0yLjQuMjkvYnVpbGQvbHRtYWluLnNoCitAQCAtNjk2OSw3ICs2OTY5LDcgQEAgZnVuY19tb2RlX2xpbmsgKCkKICAJZGlyPSRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQKICAJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCiAgCWNhc2UgJGRpciBpbgpAQCAtMTQsNyArMTQsNyBAQAogIAkqKQogIAkgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKICAJICB0ZXN0IC16ICIkYWJzZGlyIiAmJiBcCi1AQCAtODEzNyw3ICs4MTM3LDcgQEAgZnVuY19tb2RlX2xpbmsgKCkKK0BAIC04MTY3LDcgKzgxNjcsNyBAQCBmdW5jX21vZGVfbGluayAoKQogIAkgICAgJEVDSE8gIioqKiAkbGlua2xpYiBpcyBub3QgcG9ydGFibGUhIgogIAkgIGZpCiAgCSAgaWYgdGVzdCBsaWIgPSAiJGxpbmttb2RlIiAmJgpAQCAtMjMsNyArMjMsNyBAQAogIAkgICAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoLgogIAkgICAgIyBTa2lwIGRpcmVjdG9yaWVzIHRoYXQgYXJlIGluIHRoZSBzeXN0ZW0gZGVmYXVsdCBydW4tdGltZQogIAkgICAgIyBzZWFyY2ggcGF0aC4KLUBAIC04NDA0LDcgKzg0MDQsNyBAQCBmdW5jX21vZGVfbGluayAoKQorQEAgLTg0MzQsNyArODQzNCw3IEBAIGZ1bmNfbW9kZV9saW5rICgpCiAgCiAgCWlmIHRlc3QgbGliID0gIiRsaW5rbW9kZSI7IHRoZW4KICAJICBpZiB0ZXN0IC1uICIkZGVwZW5kZW5jeV9saWJzIiAmJgpAQCAtMzIsNyArMzIsNyBAQAogIAkgICAgICAgdGVzdCB5ZXMgPSAiJGJ1aWxkX29sZF9saWJzIiB8fAogIAkgICAgICAgdGVzdCB5ZXMgPSAiJGxpbmtfc3RhdGljIjsgfTsgdGhlbgogIAkgICAgIyBFeHRyYWN0IC1SIGZyb20gZGVwZW5kZW5jeV9saWJzCi1AQCAtOTAyNSw3ICs5MDI1LDggQEAgZnVuY19tb2RlX2xpbmsgKCkKK0BAIC05MDg2LDcgKzkwODYsOCBAQCBmdW5jX21vZGVfbGluayAoKQogIAkgICopIGZ1bmNfYXBwZW5kIGZpbmFsaXplX3JwYXRoICIgJGxpYmRpciIgOzsKICAJICBlc2FjCiAgCWRvbmUKQEAgLTQyLDcgKzQyLDcgQEAKICAJICBkZXBlbmRlbmN5X2xpYnM9IiR0ZW1wX3hycGF0aCAkZGVwZW5kZW5jeV9saWJzIgogIAlmaQogICAgICAgIGZpCi1AQCAtOTQ3Myw3ICs5NDc0LDcgQEAgRU9GCitAQCAtOTUzNCw3ICs5NTM1LDcgQEAgRU9GCiAgCWNhc2UgJGFyY2hpdmVfY21kcyBpbgogIAkgICpcJExEXCAqKSB3bD0gOzsKICAgICAgICAgIGVzYWMKQEAgLTUxLDcgKzUxLDcgQEAKICAJICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGhzCiAgCSAgaGFyZGNvZGVfbGliZGlycz0KICAJICBkZXBfcnBhdGg9Ci1AQCAtMTAyMTEsNiArMTAyMTIsMjcgQEAgRU9GCitAQCAtMTAyNzIsNiArMTAyNzMsMjcgQEAgRU9GCiAgICAgICAgIyBOb3cgaGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aHMKICAgICAgICBycGF0aD0KICAgICAgICBoYXJkY29kZV9saWJkaXJzPQpAQCAtNzksNiArNzksMyBAQAogICAgICAgIGZvciBsaWJkaXIgaW4gJGNvbXBpbGVfcnBhdGggJGZpbmFsaXplX3JwYXRoOyBkbwogIAlpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KICAJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4KLS0tIAotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9yZXBsYWNlLWx5bngtdG8tY3VybC1pbi1hcGFjaGVjdGwtc2NyaXB0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9yZXBsYWNlLWx5bngtdG8tY3VybC1pbi1hcGFjaGVjdGwtc2NyaXB0LnBhdGNoCmluZGV4IDU4NGRkYzguLmU0ZTAxYjIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvcmVwbGFjZS1seW54LXRvLWN1cmwtaW4tYXBhY2hlY3RsLXNjcmlwdC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL3JlcGxhY2UtbHlueC10by1jdXJsLWluLWFwYWNoZWN0bC1zY3JpcHQucGF0Y2gKQEAgLTEwLDExICsxMCwxMSBAQAogIHN1cHBvcnQvYXBhY2hlY3RsLmluIHwgICAxNCArKysrKysrKysrLS0tLQogIDEgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL3N1cHBvcnQvYXBhY2hlY3RsLmluIGIvc3VwcG9ydC9hcGFjaGVjdGwuaW4KLWluZGV4IGQ0ZGZmMzguLjEwOWVhMTMgMTAwNjQ0Ci0tLS0gYS9zdXBwb3J0L2FwYWNoZWN0bC5pbgotKysrIGIvc3VwcG9ydC9hcGFjaGVjdGwuaW4KLUBAIC01MSwxMSArNTEsMTEgQEAgZmkKK0luZGV4OiBodHRwZC0yLjQuMjkvc3VwcG9ydC9hcGFjaGVjdGwuaW4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBodHRwZC0yLjQuMjkub3JpZy9zdXBwb3J0L2FwYWNoZWN0bC5pbgorKysrIGh0dHBkLTIuNC4yOS9zdXBwb3J0L2FwYWNoZWN0bC5pbgorQEAgLTUyLDExICs1MiwxMSBAQCBmaQogICMgYSBjb21tYW5kIHRoYXQgb3V0cHV0cyBhIGZvcm1hdHRlZCB0ZXh0IHZlcnNpb24gb2YgdGhlIEhUTUwgYXQgdGhlCiAgIyB1cmwgZ2l2ZW4gb24gdGhlIGNvbW1hbmQgbGluZS4gIERlc2lnbmVkIGZvciBseW54LCBob3dldmVyIG90aGVyCiAgIyBwcm9ncmFtcyBtYXkgd29yay4gIApAQCAtMjgsNyArMjgsNyBAQAogICMKICAjIFNldCB0aGlzIHZhcmlhYmxlIHRvIGEgY29tbWFuZCB0aGF0IGluY3JlYXNlcyB0aGUgbWF4aW11bQogICMgbnVtYmVyIG9mIGZpbGUgZGVzY3JpcHRvcnMgYWxsb3dlZCBwZXIgY2hpbGQgcHJvY2Vzcy4gVGhpcyBpcwotQEAgLTkxLDEwICs5MSwxNiBAQCBjb25maWd0ZXN0KQorQEAgLTkyLDEwICs5MiwxNiBAQCBjb25maWd0ZXN0KQogICAgICBFUlJPUj0kPwogICAgICA7OwogIHN0YXR1cykKQEAgLTQ2LDcgKzQ2LDQgQEAKICsgICAgZmkKICAgICAgOzsKICAqKQotICAgICAkSFRUUEQgJEFSR1YKLS0tIAotMS42LjQKLQorICAgICAkSFRUUEQgIiRAIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMl8yLjQuMjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyXzIuNC4yNy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTg4MDg2Ny4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyXzIuNC4yNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE5NCArMCwwIEBACi1ERVNDUklQVElPTiA9ICJUaGUgQXBhY2hlIEhUVFAgU2VydmVyIGlzIGEgcG93ZXJmdWwsIGVmZmljaWVudCwgYW5kIFwKLWV4dGVuc2libGUgd2ViIHNlcnZlci4iCi1TVU1NQVJZID0gIkFwYWNoZSBIVFRQIFNlcnZlciIKLUhPTUVQQUdFID0gImh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyIKLURFUEVORFMgPSAibGlidG9vbC1uYXRpdmUgYXBhY2hlMi1uYXRpdmUgb3BlbnNzbCBleHBhdCBwY3JlIGFwciBhcHItdXRpbCIKLVNFQ1RJT04gPSAibmV0IgotTElDRU5TRSA9ICJBcGFjaGUtMi4wIgotCi1TUkNfVVJJID0gIiR7QVBBQ0hFX01JUlJPUn0vaHR0cGQvaHR0cGQtJHtQVn0udGFyLmJ6MiBcCi0gICAgICAgICAgIGZpbGU6Ly9zZXJ2ZXItbWFrZWZpbGUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vaHR0cGQtMi40LjEtY29yZWxpbWl0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2h0dHBkLTIuNC40LWV4cG9ydC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9odHRwZC0yLjQuMS1zZWxpbnV4LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2FwYWNoZS1jb25maWd1cmVfcGVybGJpbi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9yZXBsYWNlLWx5bngtdG8tY3VybC1pbi1hcGFjaGVjdGwtc2NyaXB0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2FwYWNoZS1zc2wtbHRtYWluLXJwYXRoLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL2h0dHBkLTIuNC4zLWZpeC1yYWNlLWlzc3VlLW9mLWRpci1pbnN0YWxsLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLXVzZS1wa2ctY29uZmlnLWZvci1QQ1JFLWRldGVjdGlvbi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9jb25maWd1cmUtYWxsb3ctdG8tZGlzYWJsZS1zZWxpbnV4LXN1cHBvcnQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vaW5pdCBcCi0gICAgICAgICAgIGZpbGU6Ly9hcGFjaGUyLXZvbGF0aWxlLmNvbmYgXAotICAgICAgICAgICBmaWxlOi8vYXBhY2hlMi5zZXJ2aWNlIFwKLSAgICAgICAgICAgZmlsZTovL3ZvbGF0aWxlcy4wNF9hcGFjaGUyIFwKLSAgICAgICAgICAiCi0KLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWRiZmY1YTJiNTQyZmE1ODg1NDQ1NWJmMWEwYjk0YjgzIgotU1JDX1VSSVttZDVzdW1dID0gIjk3YjZiYmZhODNjODY2ZGJlMjBlZjMxN2UzYWZkMTA4IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjcxZmNjMTI4MjM4YTY5MDUxNWJkODE3NGQ1MzMwYTUzMDkxNjFlZjMxNGEzMjZhZTQ1YzdjMTVlZDEzOWMxM2EiCi0KLVMgPSAiJHtXT1JLRElSfS9odHRwZC0ke1BWfSIKLQotaW5oZXJpdCBhdXRvdG9vbHMgdXBkYXRlLXJjLmQgcGtnY29uZmlnIHN5c3RlbWQKLQotU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImFwYWNoZTIuc2VydmljZSIKLVNZU1RFTURfQVVUT19FTkFCTEVfJHtQTn0gPSAiZGlzYWJsZSIKLQotU1NUQVRFX1NDQU5fRklMRVMgKz0gImFweHMgY29uZmlnX3ZhcnMubWsgY29uZmlnLm5pY2UiCi0KLUNGTEFHU19hcHBlbmQgPSAiIC1EUEFUSF9NQVg9NDA5NiIKLUNGTEFHU19wcmVwZW5kID0gIi1JJHtTVEFHSU5HX0lOQ0RJUn0vb3BlbnNzbCAiCi1FWFRSQV9PRUNPTkYgPSAiLS1lbmFibGUtc3NsIFwKLSAgICAtLXdpdGgtc3NsPSR7U1RBR0lOR19MSUJESVJ9Ly4uIFwKLSAgICAtLXdpdGgtZXhwYXQ9JHtTVEFHSU5HX0xJQkRJUn0vLi4gXAotICAgIC0td2l0aC1hcHI9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vYXByLTEtY29uZmlnIFwKLSAgICAtLXdpdGgtYXByLXV0aWw9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vYXB1LTEtY29uZmlnIFwKLSAgICAtLWVuYWJsZS1pbmZvIFwKLSAgICAtLWVuYWJsZS1yZXdyaXRlIFwKLSAgICAtLXdpdGgtZGJtPXNkYm0gXAotICAgIC0td2l0aC1iZXJrZWxleS1kYj1ubyBcCi0gICAgLS1sb2NhbHN0YXRlZGlyPS92YXIvJHtCUE59IFwKLSAgICAtLXdpdGgtZ2RibT1ubyBcCi0gICAgLS13aXRoLW5kYm09bm8gXAotICAgIC0taW5jbHVkZWRpcj0ke2luY2x1ZGVkaXJ9LyR7QlBOfSBcCi0gICAgLS1kYXRhZGlyPSR7ZGF0YWRpcn0vJHtCUE59IFwKLSAgICAtLXN5c2NvbmZkaXI9JHtzeXNjb25mZGlyfS8ke0JQTn0gXAotICAgIC0tbGliZXhlY2Rpcj0ke2xpYmRpcn0vJHtCUE59L21vZHVsZXMgXAotICAgIGFwX2N2X3ZvaWRfcHRyX2x0X2xvbmc9bm8gXAotICAgIC0tZW5hYmxlLW1wbXMtc2hhcmVkIFwKLSAgICBhY19jdl9oYXZlX3RocmVhZHNhZmVfcG9sbHNldD1ubyIKLQotUEFDS0FHRUNPTkZJRyA/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnc2VsaW51eCcsIGQpfSIKLVBBQ0tBR0VDT05GSUdbc2VsaW51eF0gPSAiLS1lbmFibGUtc2VsaW51eCAtLWVuYWJsZS1sYXlvdXQ9RGViaWFuIC0tcHJlZml4PSR7YmFzZV9wcmVmaXh9LywtLWRpc2FibGUtc2VsaW51eCxsaWJzZWxpbnV4LGxpYnNlbGludXgiCi1QQUNLQUdFQ09ORklHW29wZW5sZGFwXSA9ICItLWVuYWJsZS1sZGFwIC0tZW5hYmxlLWF1dGhuei1sZGFwLC0tZGlzYWJsZS1sZGFwIC0tZGlzYWJsZS1hdXRobnotbGRhcCxvcGVubGRhcCIKLQotZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7Ci0gICAgICAgIHNlZCAtaSAtZSAnczokJyd7cHJlZml4fS91c3IvbGliL2NnaS1iaW46JCcne2xpYmRpcn0vY2dpLWJpbjpnJyAke1N9L2NvbmZpZy5sYXlvdXQKLX0KLQotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kCi0gICAgY2F0ICR7V09SS0RJUn0vaW5pdCB8IFwKLSAgICAgICAgc2VkIC1lICdzLC91c3Ivc2Jpbi8sJHtzYmluZGlyfS8sZycgXAotICAgICAgICAgICAgLWUgJ3MsL3Vzci9iaW4vLCR7YmluZGlyfS8sZycgXAotICAgICAgICAgICAgLWUgJ3MsL3Vzci9saWIsJHtsaWJkaXJ9LyxnJyBcCi0gICAgICAgICAgICAtZSAncywvZXRjLywke3N5c2NvbmZkaXJ9LyxnJyBcCi0gICAgICAgICAgICAtZSAncywvdXNyLywke3ByZWZpeH0vLGcnID4gJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZC8ke0JQTn0KLSAgICBjaG1vZCA3NTUgJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZC8ke0JQTn0KLSAgICAjIHJlbW92ZSB0aGUgZ29vZnkgb3JpZ2luYWwgZmlsZXMuLi4KLSAgICBybSAtcmYgJHtEfS8ke3N5c2NvbmZkaXJ9LyR7QlBOfS9vcmlnaW5hbAotICAgICMgRXhwYXQgc2hvdWxkIGJlIGZvdW5kIGluIHRoZSBzdGFnaW5nIGFyZWEgdmlhIERFUEVORFMuLi4KLSAgICBybSAtZiAke0R9LyR7bGliZGlyfS9saWJleHBhdC4qCi0KLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9LyR7QlBOfS9jb25mLmQKLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9LyR7QlBOfS9tb2R1bGVzLmQKLQotICAgICMgRW5zdXJlIGNvbmZpZ3VyYXRpb24gZmlsZSBwdWxscyBpbiBjb25mLmQgYW5kIG1vZHVsZXMuZAotICAgIHByaW50ZiAiXG5JbmNsdWRlT3B0aW9uYWwgJHtzeXNjb25mZGlyfS8ke0JQTn0vY29uZi5kLyouY29uZiIgPj4gJHtEfS8ke3N5c2NvbmZkaXJ9LyR7QlBOfS9odHRwZC5jb25mCi0gICAgcHJpbnRmICJcbkluY2x1ZGVPcHRpb25hbCAke3N5c2NvbmZkaXJ9LyR7QlBOfS9tb2R1bGVzLmQvKi5sb2FkIiA+PiAke0R9LyR7c3lzY29uZmRpcn0vJHtCUE59L2h0dHBkLmNvbmYKLSAgICBwcmludGYgIlxuSW5jbHVkZU9wdGlvbmFsICR7c3lzY29uZmRpcn0vJHtCUE59L21vZHVsZXMuZC8qLmNvbmZcblxuIiA+PiAke0R9LyR7c3lzY29uZmRpcn0vJHtCUE59L2h0dHBkLmNvbmYKLSAgICAjIG1hdGNoIHdpdGggdGhhdCBpcyBpbiBpbml0IHNjcmlwdAotICAgIHByaW50ZiAiXG5QaWRGaWxlIC9ydW4vaHR0cGQucGlkIiA+PiAke0R9LyR7c3lzY29uZmRpcn0vJHtCUE59L2h0dHBkLmNvbmYKLSAgICAjIFNldCAnU2VydmVyTmFtZScgdG8gZml4IGVycm9yIG1lc3NhZ2VzIHdoZW4gcmVzdGFydCBhcGFjaGUgc2VydmljZQotICAgIHNlZCAtaSAncy9eI1NlcnZlck5hbWUgd3d3LmV4YW1wbGUuY29tL1NlcnZlck5hbWUgbG9jYWxob3N0LycgJHtEfS8ke3N5c2NvbmZkaXJ9LyR7QlBOfS9odHRwZC5jb25mCi0KLSAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAndHJ1ZScsICdmYWxzZScsIGQpfTsgdGhlbgotICAgICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvCi0gICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2FwYWNoZTItdm9sYXRpbGUuY29uZiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kLwotICAgIGVsaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN2aW5pdCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCi0gICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMKLSAgICAgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vdm9sYXRpbGVzLjA0X2FwYWNoZTIgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMvMDRfYXBhY2hlMgotICAgIGZpCi0KLSAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vYXBhY2hlMi5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCi0gICAgc2VkIC1pIC1lICdzLEBTQklORElSQCwke3NiaW5kaXJ9LGcnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2FwYWNoZTIuc2VydmljZQotICAgIHNlZCAtaSAtZSAncyxAQkFTRV9CSU5ESVJALCR7YmFzZV9iaW5kaXJ9LGcnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2FwYWNoZTIuc2VydmljZQotCi0gICAgY2hvd24gLVIgcm9vdDpyb290ICR7RH0KLX0KLQotZG9faW5zdGFsbF9hcHBlbmRfY2xhc3MtdGFyZ2V0KCkgewotICAgIHNlZCAtaSAtZSAncywke1NUQUdJTkdfRElSX0hPU1R9LCxnJyBcCi0gICAgICAgICAgIC1lICdzLEFQVV9JTkNMVURFRElSID0gLiosQVBVX0lOQ0xVREVESVIgPSAsZycgXAotICAgICAgICAgICAtZSAncyxBUFVfQ09ORklHID0gLiosQVBVX0NPTkZJRyA9ICxnJyAke0R9JHtkYXRhZGlyfS9hcGFjaGUyL2J1aWxkL2NvbmZpZ192YXJzLm1rCi0KLSAgICBzZWQgLWkgLWUgJ3MsJHtTVEFHSU5HX0RJUl9IT1NUfSwsZycgXAotICAgICAgICAgICAtZSAncywiLiovY29uZmlndXJlIiwiY29uZmlndXJlIixnJyAke0R9JHtkYXRhZGlyfS9hcGFjaGUyL2J1aWxkL2NvbmZpZy5uaWNlCi0gICAgcm0gLXJmICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3J1bgotfQotCi1TWVNST09UX1BSRVBST0NFU1NfRlVOQ1MgKz0gImFwYWNoZV9zeXNyb290X3ByZXByb2Nlc3MiCi0KLWFwYWNoZV9zeXNyb290X3ByZXByb2Nlc3MgKCkgewotICAgIGluc3RhbGwgLWQgJHtTWVNST09UX0RFU1RESVJ9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS8KLSAgICBpbnN0YWxsIC1tIDc1NSAke0R9JHtiaW5kaXJ9L2FweHMgJHtTWVNST09UX0RFU1RESVJ9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS8KLSAgICBpbnN0YWxsIC1kICR7U1lTUk9PVF9ERVNURElSfSR7c2JpbmRpcn0vCi0gICAgaW5zdGFsbCAtbSA3NTUgJHtEfSR7c2JpbmRpcn0vYXBhY2hlY3RsICR7U1lTUk9PVF9ERVNURElSfSR7c2JpbmRpcn0vCi0gICAgc2VkIC1pICdzIW15ICRpbnN0YWxsYnVpbGRkaXIgPSAuKiFteSAkaW5zdGFsbGJ1aWxkZGlyID0gIiR7U1RBR0lOR19ESVJfSE9TVH0vJHtkYXRhZGlyfS8ke0JQTn0vYnVpbGQiOyEnICR7U1lTUk9PVF9ERVNURElSfSR7YmluZGlyX2Nyb3Nzc2NyaXB0c30vYXB4cwotICAgIHNlZCAtaSAncyFteSAkbGlidG9vbCA9IC4qIW15ICRsaWJ0b29sID0gIiR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9LyR7SE9TVF9TWVN9LWxpYnRvb2wiOyEnICR7U1lTUk9PVF9ERVNURElSfSR7YmluZGlyX2Nyb3Nzc2NyaXB0c30vYXB4cwotCi0gICAgc2VkIC1pICdzIV5BUFJfQ09ORklHID0gLiohQVBSX0NPTkZJRyA9ICR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9L2Fwci0xLWNvbmZpZyEnICR7U1lTUk9PVF9ERVNURElSfSR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkL2NvbmZpZ192YXJzLm1rCi0gICAgc2VkIC1pICdzIV5BUFVfQ09ORklHID0gLiohQVBVX0NPTkZJRyA9ICR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9L2FwdS0xLWNvbmZpZyEnICR7U1lTUk9PVF9ERVNURElSfSR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkL2NvbmZpZ192YXJzLm1rCi0gICAgc2VkIC1pICdzIV5pbmNsdWRlZGlyID0gLiohaW5jbHVkZWRpciA9ICR7U1RBR0lOR19JTkNESVJ9L2FwYWNoZTIhJyAke1NZU1JPT1RfREVTVERJUn0ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZC9jb25maWdfdmFycy5tawotICAgIHNlZCAtaSAncyFeQ0ZMQUdTID0gLUlbXiBdKiFDRkxBR1MgPSAtSSR7U1RBR0lOR19JTkNESVJ9L29wZW5zc2whJyAke1NZU1JPT1RfREVTVERJUn0ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZC9jb25maWdfdmFycy5tawotICAgIHNlZCAtaSAncyFeRVhUUkFfTERGTEFHUyA9IC4qIUVYVFJBX0xERkxBR1MgPSAtTCR7U1RBR0lOR19MSUJESVJ9IScgJHtTWVNST09UX0RFU1RESVJ9JHtkYXRhZGlyfS8ke0JQTn0vYnVpbGQvY29uZmlnX3ZhcnMubWsKLSAgICBzZWQgLWkgJ3MhXkVYVFJBX0lOQ0xVREVTID0gLiohRVhUUkFfSU5DTFVERVMgPSAtSSQoaW5jbHVkZWRpcikgLUkuIC1JJHtTVEFHSU5HX0lOQ0RJUn0hJyAke1NZU1JPT1RfREVTVERJUn0ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZC9jb25maWdfdmFycy5tawotICAgIHNlZCAtaSAncyEtLXN5c3Jvb3Q9W14gXSohLS1zeXNyb290PSR7U1RBR0lOR19ESVJfSE9TVH0hJyAke1NZU1JPT1RfREVTVERJUn0ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZC9jb25maWdfdmFycy5tawotfQotCi0jCi0jIGltcGxpY2F0aW9ucyAtIHVzZWQgYnkgdXBkYXRlLXJjLmQgc2NyaXB0cwotIwotSU5JVFNDUklQVF9OQU1FID0gImFwYWNoZTIiCi1JTklUU0NSSVBUX1BBUkFNUyA9ICJkZWZhdWx0cyA5MSAyMCIKLUxFQURfU09OQU1FID0gImxpYmFwci0xLnNvLjAiCi0KLVBBQ0tBR0VTID0gIiR7UE59LXNjcmlwdHMgJHtQTn0tZG9jICR7UE59LWRldiAke1BOfS1kYmcgJHtQTn0iCi0KLUNPTkZGSUxFU18ke1BOfSA9ICIke3N5c2NvbmZkaXJ9LyR7QlBOfS9odHRwZC5jb25mIFwKLSAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9LyR7QlBOfS9tYWdpYyBcCi0gICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS8ke0JQTn0vbWltZS50eXBlcyBcCi0gICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9pbml0LmQvJHtCUE59ICIKLQotIyB3ZSBvdmVycmlkZSBoZXJlIHJhdGhlciB0aGFuIGFwcGVuZCBzbyB0aGF0IC5zbyBsaW5rcyBhcmUKLSMgaW5jbHVkZWQgaW4gdGhlIHJ1bnRpbWUgcGFja2FnZSByYXRoZXIgdGhhbiBoZXJlICgtZGV2KQotIyBhbmQgdG8gZ2V0IGJ1aWxkLCBpY29ucywgZXJyb3IgaW50byB0aGUgLWRldiBwYWNrYWdlCi1GSUxFU18ke1BOfS1kZXYgPSAiJHtkYXRhZGlyfS8ke0JQTn0vYnVpbGQgXAotICAgICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vJHtCUE59L2ljb25zIFwKLSAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9LyR7QlBOfS9lcnJvciBcCi0gICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L2Fwci1jb25maWcgJHtiaW5kaXJ9L2FwdS1jb25maWcgXAotICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9hcHIqLmV4cCBcCi0gICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS8ke0JQTn0gXAotICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS8qLmxhIFwKLSAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vKi5hIFwKLSAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vYXB4cyBcCi0gICAgICAgICAgICAgICAgIgotCi0KLSMgbWFudWFsIHRvIG1hbnVhbAotRklMRVNfJHtQTn0tZG9jICs9ICIgJHtkYXRhZGlyfS8ke0JQTn0vbWFudWFsIgotCi1GSUxFU18ke1BOfS1zY3JpcHRzICs9ICIke2JpbmRpcn0vZGJtbWFuYWdlIgotCi0jCi0jIG92ZXJyaWRlIHRoaXMgdG9vIC0gaGVyZSBpcyB0aGUgZGVmYXVsdCwgbGVzcyBkYXRhZGlyCi0jCi1GSUxFU18ke1BOfSA9ICAiJHtiaW5kaXJ9ICR7c2JpbmRpcn0gJHtsaWJleGVjZGlyfSAke2xpYmRpcn0vbGliKi5zby4qICR7c3lzY29uZmRpcn0gXAotICAgICAgICAgICAgICAgICR7c2hhcmVkc3RhdGVkaXJ9ICR7bG9jYWxzdGF0ZWRpcn0gL2JpbiAvc2JpbiAvbGliLyouc28qIFwKLSAgICAgICAgICAgICAgICAke2xpYmRpcn0vJHtCUE59IgotCi0jIHdlIHdhbnQgaHRkb2NzIGFuZCBjZ2ktYmluIHRvIGdvIHdpdGggdGhlIGJpbmFyeQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vJHtCUE59L2h0ZG9jcyAke2RhdGFkaXJ9LyR7QlBOfS9jZ2ktYmluIgotCi0jbWFrZSBzdXJlIHRoZSBsb25lIC5zbyBsaW5rcyBhbHNvIGdldCB3cmFwcGVkIGluIHRoZSBiYXNlIHBhY2thZ2UKLUZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vbGliKi5zbyAke2xpYmRpcn0vcGtnY29uZmlnLyoiCi0KLUZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9LyR7QlBOfS9tb2R1bGVzLy5kZWJ1ZyIKLQotUkRFUEVORFNfJHtQTn0gKz0gIm9wZW5zc2wgbGliZ2NjIgotUkRFUEVORFNfJHtQTn0tc2NyaXB0cyArPSAicGVybCAke1BOfSIKLVJERVBFTkRTXyR7UE59LWRldiA9ICJwZXJsIgotCi1GSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L2NnaS1iaW4iCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS8ke0JQTn0vIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMl8yLjQuMjkuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyXzIuNC4yOS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDI5OGI5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMl8yLjQuMjkuYmIKQEAgLTAsMCArMSwxOTQgQEAKK0RFU0NSSVBUSU9OID0gIlRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgaXMgYSBwb3dlcmZ1bCwgZWZmaWNpZW50LCBhbmQgXAorZXh0ZW5zaWJsZSB3ZWIgc2VydmVyLiIKK1NVTU1BUlkgPSAiQXBhY2hlIEhUVFAgU2VydmVyIgorSE9NRVBBR0UgPSAiaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIgorREVQRU5EUyA9ICJsaWJ0b29sLW5hdGl2ZSBhcGFjaGUyLW5hdGl2ZSBvcGVuc3NsIGV4cGF0IHBjcmUgYXByIGFwci11dGlsIgorU0VDVElPTiA9ICJuZXQiCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCisKK1NSQ19VUkkgPSAiJHtBUEFDSEVfTUlSUk9SfS9odHRwZC9odHRwZC0ke1BWfS50YXIuYnoyIFwKKyAgICAgICAgICAgZmlsZTovL3NlcnZlci1tYWtlZmlsZS5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9odHRwZC0yLjQuMS1jb3JlbGltaXQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vaHR0cGQtMi40LjQtZXhwb3J0LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2h0dHBkLTIuNC4xLXNlbGludXgucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vYXBhY2hlLWNvbmZpZ3VyZV9wZXJsYmluLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3JlcGxhY2UtbHlueC10by1jdXJsLWluLWFwYWNoZWN0bC1zY3JpcHQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vYXBhY2hlLXNzbC1sdG1haW4tcnBhdGgucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vaHR0cGQtMi40LjMtZml4LXJhY2UtaXNzdWUtb2YtZGlyLWluc3RhbGwucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1jb25maWd1cmUtdXNlLXBrZy1jb25maWctZm9yLVBDUkUtZGV0ZWN0aW9uLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2NvbmZpZ3VyZS1hbGxvdy10by1kaXNhYmxlLXNlbGludXgtc3VwcG9ydC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9pbml0IFwKKyAgICAgICAgICAgZmlsZTovL2FwYWNoZTItdm9sYXRpbGUuY29uZiBcCisgICAgICAgICAgIGZpbGU6Ly9hcGFjaGUyLnNlcnZpY2UgXAorICAgICAgICAgICBmaWxlOi8vdm9sYXRpbGVzLjA0X2FwYWNoZTIgXAorICAgICAgICAgICIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YTYyYjBjNzYyMzgyNmZmOTk3NjZmZjEzZmI5MDA3ZjgiCitTUkNfVVJJW21kNXN1bV0gPSAiMGM1OTk0MDRlZjZiNjllZWU5NWJjZDlmY2QwOTQ0MDciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNzc3NzUzYTVhMjU1NjhhMmEyNzQyOGIyMjE0OTgwNTY0YmMxYzM4YzFhYmY5Y2NjNzYzMGI2Mzk5OTFmN2YwMCIKKworUyA9ICIke1dPUktESVJ9L2h0dHBkLSR7UFZ9IgorCitpbmhlcml0IGF1dG90b29scyB1cGRhdGUtcmMuZCBwa2djb25maWcgc3lzdGVtZAorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiYXBhY2hlMi5zZXJ2aWNlIgorU1lTVEVNRF9BVVRPX0VOQUJMRV8ke1BOfSA9ICJkaXNhYmxlIgorCitTU1RBVEVfU0NBTl9GSUxFUyArPSAiYXB4cyBjb25maWdfdmFycy5tayBjb25maWcubmljZSIKKworQ0ZMQUdTX2FwcGVuZCA9ICIgLURQQVRIX01BWD00MDk2IgorQ0ZMQUdTX3ByZXBlbmQgPSAiLUkke1NUQUdJTkdfSU5DRElSfS9vcGVuc3NsICIKK0VYVFJBX09FQ09ORiA9ICItLWVuYWJsZS1zc2wgXAorICAgIC0td2l0aC1zc2w9JHtTVEFHSU5HX0xJQkRJUn0vLi4gXAorICAgIC0td2l0aC1leHBhdD0ke1NUQUdJTkdfTElCRElSfS8uLiBcCisgICAgLS13aXRoLWFwcj0ke1NUQUdJTkdfQklORElSX0NST1NTfS9hcHItMS1jb25maWcgXAorICAgIC0td2l0aC1hcHItdXRpbD0ke1NUQUdJTkdfQklORElSX0NST1NTfS9hcHUtMS1jb25maWcgXAorICAgIC0tZW5hYmxlLWluZm8gXAorICAgIC0tZW5hYmxlLXJld3JpdGUgXAorICAgIC0td2l0aC1kYm09c2RibSBcCisgICAgLS13aXRoLWJlcmtlbGV5LWRiPW5vIFwKKyAgICAtLWxvY2Fsc3RhdGVkaXI9L3Zhci8ke0JQTn0gXAorICAgIC0td2l0aC1nZGJtPW5vIFwKKyAgICAtLXdpdGgtbmRibT1ubyBcCisgICAgLS1pbmNsdWRlZGlyPSR7aW5jbHVkZWRpcn0vJHtCUE59IFwKKyAgICAtLWRhdGFkaXI9JHtkYXRhZGlyfS8ke0JQTn0gXAorICAgIC0tc3lzY29uZmRpcj0ke3N5c2NvbmZkaXJ9LyR7QlBOfSBcCisgICAgLS1saWJleGVjZGlyPSR7bGliZGlyfS8ke0JQTn0vbW9kdWxlcyBcCisgICAgYXBfY3Zfdm9pZF9wdHJfbHRfbG9uZz1ubyBcCisgICAgLS1lbmFibGUtbXBtcy1zaGFyZWQgXAorICAgIGFjX2N2X2hhdmVfdGhyZWFkc2FmZV9wb2xsc2V0PW5vIgorCitQQUNLQUdFQ09ORklHID89ICIke0BiYi51dGlscy5maWx0ZXIoJ0RJU1RST19GRUFUVVJFUycsICdzZWxpbnV4JywgZCl9IgorUEFDS0FHRUNPTkZJR1tzZWxpbnV4XSA9ICItLWVuYWJsZS1zZWxpbnV4IC0tZW5hYmxlLWxheW91dD1EZWJpYW4gLS1wcmVmaXg9JHtiYXNlX3ByZWZpeH0vLC0tZGlzYWJsZS1zZWxpbnV4LGxpYnNlbGludXgsbGlic2VsaW51eCIKK1BBQ0tBR0VDT05GSUdbb3BlbmxkYXBdID0gIi0tZW5hYmxlLWxkYXAgLS1lbmFibGUtYXV0aG56LWxkYXAsLS1kaXNhYmxlLWxkYXAgLS1kaXNhYmxlLWF1dGhuei1sZGFwLG9wZW5sZGFwIgorCitkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKKyAgICAgICAgc2VkIC1pIC1lICdzOiQnJ3twcmVmaXh9L3Vzci9saWIvY2dpLWJpbjokJyd7bGliZGlyfS9jZ2ktYmluOmcnICR7U30vY29uZmlnLmxheW91dAorfQorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICBjYXQgJHtXT1JLRElSfS9pbml0IHwgXAorICAgICAgICBzZWQgLWUgJ3MsL3Vzci9zYmluLywke3NiaW5kaXJ9LyxnJyBcCisgICAgICAgICAgICAtZSAncywvdXNyL2Jpbi8sJHtiaW5kaXJ9LyxnJyBcCisgICAgICAgICAgICAtZSAncywvdXNyL2xpYiwke2xpYmRpcn0vLGcnIFwKKyAgICAgICAgICAgIC1lICdzLC9ldGMvLCR7c3lzY29uZmRpcn0vLGcnIFwKKyAgICAgICAgICAgIC1lICdzLC91c3IvLCR7cHJlZml4fS8sZycgPiAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kLyR7QlBOfQorICAgIGNobW9kIDc1NSAke0R9LyR7c3lzY29uZmRpcn0vaW5pdC5kLyR7QlBOfQorICAgICMgcmVtb3ZlIHRoZSBnb29meSBvcmlnaW5hbCBmaWxlcy4uLgorICAgIHJtIC1yZiAke0R9LyR7c3lzY29uZmRpcn0vJHtCUE59L29yaWdpbmFsCisgICAgIyBFeHBhdCBzaG91bGQgYmUgZm91bmQgaW4gdGhlIHN0YWdpbmcgYXJlYSB2aWEgREVQRU5EUy4uLgorICAgIHJtIC1mICR7RH0vJHtsaWJkaXJ9L2xpYmV4cGF0LioKKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vJHtCUE59L2NvbmYuZAorICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vJHtCUE59L21vZHVsZXMuZAorCisgICAgIyBFbnN1cmUgY29uZmlndXJhdGlvbiBmaWxlIHB1bGxzIGluIGNvbmYuZCBhbmQgbW9kdWxlcy5kCisgICAgcHJpbnRmICJcbkluY2x1ZGVPcHRpb25hbCAke3N5c2NvbmZkaXJ9LyR7QlBOfS9jb25mLmQvKi5jb25mIiA+PiAke0R9LyR7c3lzY29uZmRpcn0vJHtCUE59L2h0dHBkLmNvbmYKKyAgICBwcmludGYgIlxuSW5jbHVkZU9wdGlvbmFsICR7c3lzY29uZmRpcn0vJHtCUE59L21vZHVsZXMuZC8qLmxvYWQiID4+ICR7RH0vJHtzeXNjb25mZGlyfS8ke0JQTn0vaHR0cGQuY29uZgorICAgIHByaW50ZiAiXG5JbmNsdWRlT3B0aW9uYWwgJHtzeXNjb25mZGlyfS8ke0JQTn0vbW9kdWxlcy5kLyouY29uZlxuXG4iID4+ICR7RH0vJHtzeXNjb25mZGlyfS8ke0JQTn0vaHR0cGQuY29uZgorICAgICMgbWF0Y2ggd2l0aCB0aGF0IGlzIGluIGluaXQgc2NyaXB0CisgICAgcHJpbnRmICJcblBpZEZpbGUgL3J1bi9odHRwZC5waWQiID4+ICR7RH0vJHtzeXNjb25mZGlyfS8ke0JQTn0vaHR0cGQuY29uZgorICAgICMgU2V0ICdTZXJ2ZXJOYW1lJyB0byBmaXggZXJyb3IgbWVzc2FnZXMgd2hlbiByZXN0YXJ0IGFwYWNoZSBzZXJ2aWNlCisgICAgc2VkIC1pICdzL14jU2VydmVyTmFtZSB3d3cuZXhhbXBsZS5jb20vU2VydmVyTmFtZSBsb2NhbGhvc3QvJyAke0R9LyR7c3lzY29uZmRpcn0vJHtCUE59L2h0dHBkLmNvbmYKKworICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuCisgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vdG1wZmlsZXMuZC8KKyAgICAgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vYXBhY2hlMi12b2xhdGlsZS5jb25mICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvCisgICAgZWxpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3Zpbml0JywgJ3RydWUnLCAnZmFsc2UnLCBkKX07IHRoZW4KKyAgICAgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcworICAgICAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS92b2xhdGlsZXMuMDRfYXBhY2hlMiAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcy8wNF9hcGFjaGUyCisgICAgZmkKKworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9hcGFjaGUyLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICBzZWQgLWkgLWUgJ3MsQFNCSU5ESVJALCR7c2JpbmRpcn0sZycgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vYXBhY2hlMi5zZXJ2aWNlCisgICAgc2VkIC1pIC1lICdzLEBCQVNFX0JJTkRJUkAsJHtiYXNlX2JpbmRpcn0sZycgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vYXBhY2hlMi5zZXJ2aWNlCisKKyAgICBjaG93biAtUiByb290OnJvb3QgJHtEfQorfQorCitkb19pbnN0YWxsX2FwcGVuZF9jbGFzcy10YXJnZXQoKSB7CisgICAgc2VkIC1pIC1lICdzLCR7U1RBR0lOR19ESVJfSE9TVH0sLGcnIFwKKyAgICAgICAgICAgLWUgJ3MsQVBVX0lOQ0xVREVESVIgPSAuKixBUFVfSU5DTFVERURJUiA9ICxnJyBcCisgICAgICAgICAgIC1lICdzLEFQVV9DT05GSUcgPSAuKixBUFVfQ09ORklHID0gLGcnICR7RH0ke2RhdGFkaXJ9L2FwYWNoZTIvYnVpbGQvY29uZmlnX3ZhcnMubWsKKworICAgIHNlZCAtaSAtZSAncywke1NUQUdJTkdfRElSX0hPU1R9LCxnJyBcCisgICAgICAgICAgIC1lICdzLCIuKi9jb25maWd1cmUiLCJjb25maWd1cmUiLGcnICR7RH0ke2RhdGFkaXJ9L2FwYWNoZTIvYnVpbGQvY29uZmlnLm5pY2UKKyAgICBybSAtcmYgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vcnVuCit9CisKK1NZU1JPT1RfUFJFUFJPQ0VTU19GVU5DUyArPSAiYXBhY2hlX3N5c3Jvb3RfcHJlcHJvY2VzcyIKKworYXBhY2hlX3N5c3Jvb3RfcHJlcHJvY2VzcyAoKSB7CisgICAgaW5zdGFsbCAtZCAke1NZU1JPT1RfREVTVERJUn0ke2JpbmRpcl9jcm9zc3NjcmlwdHN9LworICAgIGluc3RhbGwgLW0gNzU1ICR7RH0ke2JpbmRpcn0vYXB4cyAke1NZU1JPT1RfREVTVERJUn0ke2JpbmRpcl9jcm9zc3NjcmlwdHN9LworICAgIGluc3RhbGwgLWQgJHtTWVNST09UX0RFU1RESVJ9JHtzYmluZGlyfS8KKyAgICBpbnN0YWxsIC1tIDc1NSAke0R9JHtzYmluZGlyfS9hcGFjaGVjdGwgJHtTWVNST09UX0RFU1RESVJ9JHtzYmluZGlyfS8KKyAgICBzZWQgLWkgJ3MhbXkgJGluc3RhbGxidWlsZGRpciA9IC4qIW15ICRpbnN0YWxsYnVpbGRkaXIgPSAiJHtTVEFHSU5HX0RJUl9IT1NUfS8ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZCI7IScgJHtTWVNST09UX0RFU1RESVJ9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS9hcHhzCisgICAgc2VkIC1pICdzIW15ICRsaWJ0b29sID0gLiohbXkgJGxpYnRvb2wgPSAiJHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vJHtIT1NUX1NZU30tbGlidG9vbCI7IScgJHtTWVNST09UX0RFU1RESVJ9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS9hcHhzCisKKyAgICBzZWQgLWkgJ3MhXkFQUl9DT05GSUcgPSAuKiFBUFJfQ09ORklHID0gJHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vYXByLTEtY29uZmlnIScgJHtTWVNST09UX0RFU1RESVJ9JHtkYXRhZGlyfS8ke0JQTn0vYnVpbGQvY29uZmlnX3ZhcnMubWsKKyAgICBzZWQgLWkgJ3MhXkFQVV9DT05GSUcgPSAuKiFBUFVfQ09ORklHID0gJHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vYXB1LTEtY29uZmlnIScgJHtTWVNST09UX0RFU1RESVJ9JHtkYXRhZGlyfS8ke0JQTn0vYnVpbGQvY29uZmlnX3ZhcnMubWsKKyAgICBzZWQgLWkgJ3MhXmluY2x1ZGVkaXIgPSAuKiFpbmNsdWRlZGlyID0gJHtTVEFHSU5HX0lOQ0RJUn0vYXBhY2hlMiEnICR7U1lTUk9PVF9ERVNURElSfSR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkL2NvbmZpZ192YXJzLm1rCisgICAgc2VkIC1pICdzIV5DRkxBR1MgPSAtSVteIF0qIUNGTEFHUyA9IC1JJHtTVEFHSU5HX0lOQ0RJUn0vb3BlbnNzbCEnICR7U1lTUk9PVF9ERVNURElSfSR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkL2NvbmZpZ192YXJzLm1rCisgICAgc2VkIC1pICdzIV5FWFRSQV9MREZMQUdTID0gLiohRVhUUkFfTERGTEFHUyA9IC1MJHtTVEFHSU5HX0xJQkRJUn0hJyAke1NZU1JPT1RfREVTVERJUn0ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZC9jb25maWdfdmFycy5taworICAgIHNlZCAtaSAncyFeRVhUUkFfSU5DTFVERVMgPSAuKiFFWFRSQV9JTkNMVURFUyA9IC1JJChpbmNsdWRlZGlyKSAtSS4gLUkke1NUQUdJTkdfSU5DRElSfSEnICR7U1lTUk9PVF9ERVNURElSfSR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkL2NvbmZpZ192YXJzLm1rCisgICAgc2VkIC1pICdzIS0tc3lzcm9vdD1bXiBdKiEtLXN5c3Jvb3Q9JHtTVEFHSU5HX0RJUl9IT1NUfSEnICR7U1lTUk9PVF9ERVNURElSfSR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkL2NvbmZpZ192YXJzLm1rCit9CisKKyMKKyMgaW1wbGljYXRpb25zIC0gdXNlZCBieSB1cGRhdGUtcmMuZCBzY3JpcHRzCisjCitJTklUU0NSSVBUX05BTUUgPSAiYXBhY2hlMiIKK0lOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIDkxIDIwIgorTEVBRF9TT05BTUUgPSAibGliYXByLTEuc28uMCIKKworUEFDS0FHRVMgPSAiJHtQTn0tc2NyaXB0cyAke1BOfS1kb2MgJHtQTn0tZGV2ICR7UE59LWRiZyAke1BOfSIKKworQ09ORkZJTEVTXyR7UE59ID0gIiR7c3lzY29uZmRpcn0vJHtCUE59L2h0dHBkLmNvbmYgXAorICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vJHtCUE59L21hZ2ljIFwKKyAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9LyR7QlBOfS9taW1lLnR5cGVzIFwKKyAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2luaXQuZC8ke0JQTn0gIgorCisjIHdlIG92ZXJyaWRlIGhlcmUgcmF0aGVyIHRoYW4gYXBwZW5kIHNvIHRoYXQgLnNvIGxpbmtzIGFyZQorIyBpbmNsdWRlZCBpbiB0aGUgcnVudGltZSBwYWNrYWdlIHJhdGhlciB0aGFuIGhlcmUgKC1kZXYpCisjIGFuZCB0byBnZXQgYnVpbGQsIGljb25zLCBlcnJvciBpbnRvIHRoZSAtZGV2IHBhY2thZ2UKK0ZJTEVTXyR7UE59LWRldiA9ICIke2RhdGFkaXJ9LyR7QlBOfS9idWlsZCBcCisgICAgICAgICAgICAgICAgICAgJHtkYXRhZGlyfS8ke0JQTn0vaWNvbnMgXAorICAgICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vJHtCUE59L2Vycm9yIFwKKyAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vYXByLWNvbmZpZyAke2JpbmRpcn0vYXB1LWNvbmZpZyBcCisgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L2FwciouZXhwIFwKKyAgICAgICAgICAgICAgICAgICAke2luY2x1ZGVkaXJ9LyR7QlBOfSBcCisgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9LyoubGEgXAorICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS8qLmEgXAorICAgICAgICAgICAgICAgICAgICR7YmluZGlyfS9hcHhzIFwKKyAgICAgICAgICAgICAgICAiCisKKworIyBtYW51YWwgdG8gbWFudWFsCitGSUxFU18ke1BOfS1kb2MgKz0gIiAke2RhdGFkaXJ9LyR7QlBOfS9tYW51YWwiCisKK0ZJTEVTXyR7UE59LXNjcmlwdHMgKz0gIiR7YmluZGlyfS9kYm1tYW5hZ2UiCisKKyMKKyMgb3ZlcnJpZGUgdGhpcyB0b28gLSBoZXJlIGlzIHRoZSBkZWZhdWx0LCBsZXNzIGRhdGFkaXIKKyMKK0ZJTEVTXyR7UE59ID0gICIke2JpbmRpcn0gJHtzYmluZGlyfSAke2xpYmV4ZWNkaXJ9ICR7bGliZGlyfS9saWIqLnNvLiogJHtzeXNjb25mZGlyfSBcCisgICAgICAgICAgICAgICAgJHtzaGFyZWRzdGF0ZWRpcn0gJHtsb2NhbHN0YXRlZGlyfSAvYmluIC9zYmluIC9saWIvKi5zbyogXAorICAgICAgICAgICAgICAgICR7bGliZGlyfS8ke0JQTn0iCisKKyMgd2Ugd2FudCBodGRvY3MgYW5kIGNnaS1iaW4gdG8gZ28gd2l0aCB0aGUgYmluYXJ5CitGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS8ke0JQTn0vaHRkb2NzICR7ZGF0YWRpcn0vJHtCUE59L2NnaS1iaW4iCisKKyNtYWtlIHN1cmUgdGhlIGxvbmUgLnNvIGxpbmtzIGFsc28gZ2V0IHdyYXBwZWQgaW4gdGhlIGJhc2UgcGFja2FnZQorRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9saWIqLnNvICR7bGliZGlyfS9wa2djb25maWcvKiIKKworRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vJHtCUE59L21vZHVsZXMvLmRlYnVnIgorCitSREVQRU5EU18ke1BOfSArPSAib3BlbnNzbCBsaWJnY2MiCitSREVQRU5EU18ke1BOfS1zY3JpcHRzICs9ICJwZXJsICR7UE59IgorUkRFUEVORFNfJHtQTn0tZGV2ID0gInBlcmwiCisKK0ZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vY2dpLWJpbiIKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9LyR7QlBOfS8iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvaGlhd2F0aGEvaGlhd2F0aGFfMTAuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9oaWF3YXRoYS9oaWF3YXRoYV8xMC4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjZhYjI2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9oaWF3YXRoYS9oaWF3YXRoYV8xMC4zLmJiCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotU1VNTUFSWSA9ICJMaWdodHdlaWdodCBzZWN1cmUgd2ViIHNlcnZlciIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuaGlhd2F0aGEtd2Vic2VydmVyLm9yZyIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKLURFUEVORFMgPSAibGlieG1sMiBsaWJ4c2x0IgotCi1TRUNUSU9OID0gIm5ldCIKLQotU1JDX1VSSSA9ICJodHRwOi8vaGlhd2F0aGEtd2Vic2VydmVyLm9yZy9maWxlcy8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vaGlhd2F0aGEtaW5pdCBcCi0gICAgICAgICAgIGZpbGU6Ly9oaWF3YXRoYS5zZXJ2aWNlICIKLQotU1JDX1VSSVttZDVzdW1dID0gIjMxNTY3ZGZjMThkNDM1YmQ0MTliZTI3OWY3OTcwMDE5IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjk5ZDE4NWZiMTZiYjFhYjcwNjcyNDQ5NGQzY2FjODY0NjRmMTQ4NWVkNGIwZmZmMDlhMTkyZWNhNmRhNWZmOGUiCi0KLUlOSVRTQ1JJUFRfTkFNRSA9ICJoaWF3YXRoYSIKLUlOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIDcwIgotCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiaGlhd2F0aGEuc2VydmljZSIKLQotaW5oZXJpdCBjbWFrZSB1cGRhdGUtcmMuZCBzeXN0ZW1kCi0KLUVYVFJBX09FQ01BS0UgPSAiIC1ERU5BQkxFX0lQVjY9T0ZGIFwKLSAgICAgICAgICAgICAgICAgIC1ERU5BQkxFX0NBQ0hFPU9GRiBcCi0gICAgICAgICAgICAgICAgICAtREVOQUJMRV9ERUJVRz1PRkYgXAotICAgICAgICAgICAgICAgICAgLURFTkFCTEVfU1NMPU9GRiBcCi0gICAgICAgICAgICAgICAgICAtREVOQUJMRV9UT09MS0lUPU9GRiBcCi0gICAgICAgICAgICAgICAgICAtREVOQUJMRV9DSFJPT1Q9T0ZGIFwKLSAgICAgICAgICAgICAgICAgIC1ERU5BQkxFX1hTTFQ9T04gXAotICAgICAgICAgICAgICAgICAgLURFTkFCTEVfVE9NQUhBV0s9T0ZGIFwKLSAgICAgICAgICAgICAgICAgIC1EQ01BS0VfSU5TVEFMTF9NQU5ESVI9JHttYW5kaXJ9IFwKLSAgICAgICAgICAgICAgICAgIC1EQ01BS0VfSU5TVEFMTF9CSU5ESVI9JHtiaW5kaXJ9IFwKLSAgICAgICAgICAgICAgICAgIC1EQ01BS0VfSU5TVEFMTF9TQklORElSPSR7c2JpbmRpcn0gXAotICAgICAgICAgICAgICAgICAgLURDTUFLRV9JTlNUQUxMX1NZU0NPTkZESVI9JHtzeXNjb25mZGlyfSBcCi0gICAgICAgICAgICAgICAgICAtRENNQUtFX0lOU1RBTExfTElCRElSPSR7bGliZGlyfSBcCi0gICAgICAgICAgICAgICAgICAtRENNQUtFX0lOU1RBTExfRlVMTF9MT0NBTFNUQVRFRElSPSR7bG9jYWxzdGF0ZWRpcn0iCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgICMgQ29weSBvdmVyIGluaXQgc2NyaXB0IGFuZCBzZWQgaW4gdGhlIGNvcnJlY3Qgc2JpbiBwYXRoCi0gICAgc2VkIC1pICdzLHNlZF9zYmluX3BhdGgsJHtzYmluZGlyfSwnICR7V09SS0RJUn0vaGlhd2F0aGEtaW5pdAotICAgIG1rZGlyIC1wICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZAotICAgIGluc3RhbGwgLW0gMDc1NSAke1dPUktESVJ9L2hpYXdhdGhhLWluaXQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL2hpYXdhdGhhCi0KLSAgICAjIGNvbmZpZ3VyZSBwaHAtZmNnaSB0byBoYXZlIGEgd29ya2luZyBjb25maWd1cmF0aW9uCi0gICAgIyBieSBkZWZhdWx0IGlmIHBocCBpcyBpbnN0YWxsZWQKLSAgICBlY2hvICJTZXJ2ZXIgPSAke2JpbmRpcn0vcGhwLWNnaSA7IDIgOyAxMjcuMC4wLjE6MjAwNSA7IG5vYm9keTpub2JvZHkgOyAke3N5c2NvbmZkaXJ9L3BocC9oaWF3YXRoYS1waHA1L3BocC5pbmkiID4+ICR7RH0ke3N5c2NvbmZkaXJ9L2hpYXdhdGhhL3BocC1mY2dpLmNvbmYKLQotICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCdzeXN0ZW1kJywndHJ1ZScsJ2ZhbHNlJyxkKX07IHRoZW4KLSAgICAgICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KLSAgICAgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9oaWF3YXRoYS5zZXJ2aWNlICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQotICAgIGZpCi0KLSAgICBybWRpciAtLWlnbm9yZS1mYWlsLW9uLW5vbi1lbXB0eSAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0iICIke0R9JHtsb2NhbHN0YXRlZGlyfS9ydW4iCi19Ci0KLUNPTkZGSUxFU18ke1BOfSA9ICIgXAotICAgICR7c3lzY29uZmRpcn0vaGlhd2F0aGEvY2dpLXdyYXBwZXIuY29uZiBcCi0gICAgJHtzeXNjb25mZGlyfS9oaWF3YXRoYS9oaWF3YXRoYS5jb25mIFwKLSAgICAke3N5c2NvbmZkaXJ9L2hpYXdhdGhhL2luZGV4LnhzbHQgXAotICAgICR7c3lzY29uZmRpcn0vaGlhd2F0aGEvbWltZXR5cGUuY29uZiBcCi0gICAgJHtzeXNjb25mZGlyfS9oaWF3YXRoYS9waHAtZmNnaS5jb25mIFwKLSIKLQotRklMRVNfJHtQTn0tZGV2ID0gIiR7bGliZGlyfS9oaWF3YXRoYS8qJHtTT0xJQlNERVZ9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2hpYXdhdGhhL2hpYXdhdGhhXzEwLjcuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvaGlhd2F0aGEvaGlhd2F0aGFfMTAuNy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzNjYTU1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2hpYXdhdGhhL2hpYXdhdGhhXzEwLjcuYmIKQEAgLTAsMCArMSw2NCBAQAorU1VNTUFSWSA9ICJMaWdodHdlaWdodCBzZWN1cmUgd2ViIHNlcnZlciIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuaGlhd2F0aGEtd2Vic2VydmVyLm9yZyIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT03NTE0MTkyNjBhYTk1NDQ5OWY3YWJhYWJhYTg4MmJiZSIKK0RFUEVORFMgPSAibGlieG1sMiBsaWJ4c2x0IgorCitTRUNUSU9OID0gIm5ldCIKKworU1JDX1VSSSA9ICJodHRwOi8vaGlhd2F0aGEtd2Vic2VydmVyLm9yZy9maWxlcy8ke0JQfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vaGlhd2F0aGEtaW5pdCBcCisgICAgICAgICAgIGZpbGU6Ly9oaWF3YXRoYS5zZXJ2aWNlICIKKworU1JDX1VSSVttZDVzdW1dID0gIjU4MWFhNzFjODMxMTcyYmEwNjkxMGRlZGE3MTczMDJmIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjM2M2U5OWQ4NGE4NWRhZmJiNzRiY2MzMGIzZTMwMjg2MDUzZWMyYWJiYzdhZmUwOGNkODcxOTM2MTE3MzVmNzQiCisKK0lOSVRTQ1JJUFRfTkFNRSA9ICJoaWF3YXRoYSIKK0lOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIDcwIgorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiaGlhd2F0aGEuc2VydmljZSIKKworaW5oZXJpdCBjbWFrZSB1cGRhdGUtcmMuZCBzeXN0ZW1kCisKK0VYVFJBX09FQ01BS0UgPSAiIC1ERU5BQkxFX0lQVjY9T0ZGIFwKKyAgICAgICAgICAgICAgICAgIC1ERU5BQkxFX0NBQ0hFPU9GRiBcCisgICAgICAgICAgICAgICAgICAtREVOQUJMRV9ERUJVRz1PRkYgXAorICAgICAgICAgICAgICAgICAgLURFTkFCTEVfU1NMPU9GRiBcCisgICAgICAgICAgICAgICAgICAtREVOQUJMRV9UT09MS0lUPU9GRiBcCisgICAgICAgICAgICAgICAgICAtREVOQUJMRV9DSFJPT1Q9T0ZGIFwKKyAgICAgICAgICAgICAgICAgIC1ERU5BQkxFX1hTTFQ9T04gXAorICAgICAgICAgICAgICAgICAgLURFTkFCTEVfVE9NQUhBV0s9T0ZGIFwKKyAgICAgICAgICAgICAgICAgIC1EQ01BS0VfSU5TVEFMTF9NQU5ESVI9JHttYW5kaXJ9IFwKKyAgICAgICAgICAgICAgICAgIC1EQ01BS0VfSU5TVEFMTF9CSU5ESVI9JHtiaW5kaXJ9IFwKKyAgICAgICAgICAgICAgICAgIC1EQ01BS0VfSU5TVEFMTF9TQklORElSPSR7c2JpbmRpcn0gXAorICAgICAgICAgICAgICAgICAgLURDTUFLRV9JTlNUQUxMX1NZU0NPTkZESVI9JHtzeXNjb25mZGlyfSBcCisgICAgICAgICAgICAgICAgICAtRENNQUtFX0lOU1RBTExfTElCRElSPSR7bGliZGlyfSBcCisgICAgICAgICAgICAgICAgICAtRENNQUtFX0lOU1RBTExfRlVMTF9MT0NBTFNUQVRFRElSPSR7bG9jYWxzdGF0ZWRpcn0iCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgICMgQ29weSBvdmVyIGluaXQgc2NyaXB0IGFuZCBzZWQgaW4gdGhlIGNvcnJlY3Qgc2JpbiBwYXRoCisgICAgc2VkIC1pICdzLHNlZF9zYmluX3BhdGgsJHtzYmluZGlyfSwnICR7V09SS0RJUn0vaGlhd2F0aGEtaW5pdAorICAgIG1rZGlyIC1wICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZAorICAgIGluc3RhbGwgLW0gMDc1NSAke1dPUktESVJ9L2hpYXdhdGhhLWluaXQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL2hpYXdhdGhhCisKKyAgICAjIGNvbmZpZ3VyZSBwaHAtZmNnaSB0byBoYXZlIGEgd29ya2luZyBjb25maWd1cmF0aW9uCisgICAgIyBieSBkZWZhdWx0IGlmIHBocCBpcyBpbnN0YWxsZWQKKyAgICBlY2hvICJTZXJ2ZXIgPSAke2JpbmRpcn0vcGhwLWNnaSA7IDIgOyAxMjcuMC4wLjE6MjAwNSA7IG5vYm9keTpub2JvZHkgOyAke3N5c2NvbmZkaXJ9L3BocC9oaWF3YXRoYS1waHA1L3BocC5pbmkiID4+ICR7RH0ke3N5c2NvbmZkaXJ9L2hpYXdhdGhhL3BocC1mY2dpLmNvbmYKKworICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCdzeXN0ZW1kJywndHJ1ZScsJ2ZhbHNlJyxkKX07IHRoZW4KKyAgICAgICAgaW5zdGFsbCAtZCAke0R9LyR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICAgICAgaW5zdGFsbCAtbSA2NDQgJHtXT1JLRElSfS9oaWF3YXRoYS5zZXJ2aWNlICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIGZpCisKKyAgICBybWRpciAtLWlnbm9yZS1mYWlsLW9uLW5vbi1lbXB0eSAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0iICIke0R9JHtsb2NhbHN0YXRlZGlyfS9ydW4iCit9CisKK0NPTkZGSUxFU18ke1BOfSA9ICIgXAorICAgICR7c3lzY29uZmRpcn0vaGlhd2F0aGEvY2dpLXdyYXBwZXIuY29uZiBcCisgICAgJHtzeXNjb25mZGlyfS9oaWF3YXRoYS9oaWF3YXRoYS5jb25mIFwKKyAgICAke3N5c2NvbmZkaXJ9L2hpYXdhdGhhL2luZGV4LnhzbHQgXAorICAgICR7c3lzY29uZmRpcn0vaGlhd2F0aGEvbWltZXR5cGUuY29uZiBcCisgICAgJHtzeXNjb25mZGlyfS9oaWF3YXRoYS9waHAtZmNnaS5jb25mIFwKKyIKKworRklMRVNfJHtQTn0tZGV2ID0gIiR7bGliZGlyfS9oaWF3YXRoYS8qJHtTT0xJQlNERVZ9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL21vbmtleS9tb25rZXlfMS41LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbW9ua2V5L21vbmtleV8xLjUuNi5iYgppbmRleCA5N2RjMjc2Li41NTlkMjUxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbW9ua2V5L21vbmtleV8xLjUuNi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbW9ua2V5L21vbmtleV8xLjUuNi5iYgpAQCAtMTcsNiArMTcsOSBAQAogU1JDX1VSSVttZDVzdW1dID0gIjk2OTllNGM5ZWE2Y2U2Yjk4OTkwN2MyNTJhZTgwMjU0IgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjdjM2Q4NDUzMDZhYTc0ZWU2ZWZmZDdhYjYxNjlkMTZhYzRlNjQ1MGU1NjQ5NTRkMGQwYmFhMmQxZTliZTFhMjIiCiAKK1VQU1RSRUFNX0NIRUNLX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vbW9ua2V5L21vbmtleS9yZWxlYXNlcyIKK1VQU1RSRUFNX0NIRUNLX1JFR0VYID0gInYoP1A8cHZlcj5cZCsoXC5cZCspKykudGFyLmd6IgorCiBFWFRSQV9PRUNPTkYgPSAiLS1wbHVnZGlyPSR7bGliZGlyfS9tb25rZXkvIFwKICAgICAgICAgICAgICAgICAtLWxvZ2Rpcj0ke2xvY2Fsc3RhdGVkaXJ9L2xvZy9tb25rZXkvIFwKICAgICAgICAgICAgICAgICAtLXBpZGZpbGU9JHtsb2NhbHN0YXRlZGlyfS9ydW4vbW9ua2V5LnBpZCBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvZmlsZXMvMDAwMS1BbGxvdy10aGUtb3ZlcnJpZGluZy1vZi10aGUtZW5kaWFubmVzcy12aWEtdGhlLWNvbmZpLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L2ZpbGVzLzAwMDEtQWxsb3ctdGhlLW92ZXJyaWRpbmctb2YtdGhlLWVuZGlhbm5lc3MtdmlhLXRoZS1jb25maS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmQ1ZWUzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L2ZpbGVzLzAwMDEtQWxsb3ctdGhlLW92ZXJyaWRpbmctb2YtdGhlLWVuZGlhbm5lc3MtdmlhLXRoZS1jb25maS5wYXRjaApAQCAtMCwwICsxLDgwIEBACitGcm9tIGJlOTk3MGFhMTZjNTE0MmVmODE0NTMxZDc0YTA3OTkwYThlOWViMTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEZXJlayBTdHJha2EgPGRlcmVrQGFzdGVyaXVzLmlvPgorRGF0ZTogRnJpLCAxIERlYyAyMDE3IDEwOjMyOjI5IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIEFsbG93IHRoZSBvdmVycmlkaW5nIG9mIHRoZSBlbmRpYW5uZXNzIHZpYSB0aGUgY29uZmlndXJlIGZsYWcKKyAtLXdpdGgtZW5kaWFuCisKK1RoZSBleGlzdGluZyBjb25maWd1cmUgb3B0aW9ucyBjb250YWluIHRoZSAtLXdpdGgtZW5kaWFuOyBob3dldmVyLCB0aGUgY29tbWFuZAorbGluZSBmbGFnIGRvZXMgbm90IGFjdHVhbGx5IGZ1bmN0aW9uLiAgSXQgZG9lcyBub3Qgc2V0IHRoZSBlbmRpYW5uZXNzIGFuZCBpdAorYXBwZWFycyB0byBkbyBub3RoaW5nLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogRGVyZWsgU3RyYWthIDxkZXJla0Bhc3Rlcml1cy5pbz4KKworZGlmZiAtLWdpdCBhL2F1dG8vZW5kaWFubmVzcyBiL2F1dG8vZW5kaWFubmVzcworaW5kZXggMWI1NTJiNi4uYmU4NDQ4NyAxMDA2NDQKKy0tLSBhL2F1dG8vZW5kaWFubmVzcworKysrIGIvYXV0by9lbmRpYW5uZXNzCitAQCAtMTMsNyArMTMsMTMgQEAgY2hlY2tpbmcgZm9yIHN5c3RlbSBieXRlIG9yZGVyaW5nCisgRU5ECisgCisgCistY2F0IDw8IEVORCA+ICROR1hfQVVUT1RFU1QuYworK2lmIFsgIi4kTkdYX1dJVEhfRU5ESUFOIiA9ICIubGl0dGxlIiBdOyB0aGVuCisrICAgIGVjaG8gIiBsaXR0bGUgZW5kaWFuIgorKyAgICBoYXZlPU5HWF9IQVZFX0xJVFRMRV9FTkRJQU4gLiBhdXRvL2hhdmUKKytlbGlmIFsgIi4kTkdYX1dJVEhfRU5ESUFOIiA9ICIuYmlnIiBdOyB0aGVuCisrICAgIGVjaG8gIiBiaWcgZW5kaWFuIgorK2Vsc2UKKysgICAgY2F0IDw8IEVORCA+ICROR1hfQVVUT1RFU1QuYworIAorIGludCBtYWluKHZvaWQpIHsKKyAgICAgaW50IGkgPSAweDExMjIzMzQ0OworQEAgLTI2LDI1ICszMiwyNiBAQCBpbnQgbWFpbih2b2lkKSB7CisgCisgRU5ECisgCistbmd4X3Rlc3Q9IiRDQyAkQ0NfVEVTVF9GTEFHUyAkQ0NfQVVYX0ZMQUdTIFwKKy0gICAgICAgICAgLW8gJE5HWF9BVVRPVEVTVCAkTkdYX0FVVE9URVNULmMgJE5HWF9MRF9PUFQgJG5neF9mZWF0dXJlX2xpYnMiCisrICAgIG5neF90ZXN0PSIkQ0MgJENDX1RFU1RfRkxBR1MgJENDX0FVWF9GTEFHUyBcCisrICAgICAgICAgICAgICAtbyAkTkdYX0FVVE9URVNUICROR1hfQVVUT1RFU1QuYyAkTkdYX0xEX09QVCAkbmd4X2ZlYXR1cmVfbGlicyIKKyAKKy1ldmFsICIkbmd4X3Rlc3QgPj4gJE5HWF9BVVRPQ09ORl9FUlIgMj4mMSIKKysgICAgZXZhbCAiJG5neF90ZXN0ID4+ICROR1hfQVVUT0NPTkZfRVJSIDI+JjEiCisgCistaWYgWyAteCAkTkdYX0FVVE9URVNUIF07IHRoZW4KKy0gICAgaWYgJE5HWF9BVVRPVEVTVCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKy0gICAgICAgIGVjaG8gIiBsaXR0bGUgZW5kaWFuIgorLSAgICAgICAgaGF2ZT1OR1hfSEFWRV9MSVRUTEVfRU5ESUFOIC4gYXV0by9oYXZlCistICAgIGVsc2UKKy0gICAgICAgIGVjaG8gIiBiaWcgZW5kaWFuIgorLSAgICBmaQorKyAgICBpZiBbIC14ICROR1hfQVVUT1RFU1QgXTsgdGhlbgorKyAgICAgICAgaWYgJE5HWF9BVVRPVEVTVCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgICAgICAgICBlY2hvICIgbGl0dGxlIGVuZGlhbiIKKysgICAgICAgICAgICBoYXZlPU5HWF9IQVZFX0xJVFRMRV9FTkRJQU4gLiBhdXRvL2hhdmUKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBlY2hvICIgYmlnIGVuZGlhbiIKKysgICAgICAgIGZpCisgCistICAgIHJtIC1yZiAkTkdYX0FVVE9URVNUKgorKyAgICAgICAgcm0gLXJmICROR1hfQVVUT1RFU1QqCisgCistZWxzZQorLSAgICBybSAtcmYgJE5HWF9BVVRPVEVTVCoKKysgICAgZWxzZQorKyAgICAgICAgcm0gLXJmICROR1hfQVVUT1RFU1QqCisgCistICAgIGVjaG8KKy0gICAgZWNobyAiJDA6IGVycm9yOiBjYW5ub3QgZGV0ZWN0IHN5c3RlbSBieXRlIG9yZGVyaW5nIgorLSAgICBleGl0IDEKKysgICAgICAgIGVjaG8KKysgICAgICAgIGVjaG8gIiQwOiBlcnJvcjogY2Fubm90IGRldGVjdCBzeXN0ZW0gYnl0ZSBvcmRlcmluZyIKKysgICAgICAgIGV4aXQgMQorKyAgICBmaQorIGZpCistLSAKKzIuNy40CisKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L2ZpbGVzL25naW54LWNyb3NzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L2ZpbGVzL25naW54LWNyb3NzLnBhdGNoCmluZGV4IDVlOTY2NDQuLjBhMThiY2QgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9maWxlcy9uZ2lueC1jcm9zcy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvZmlsZXMvbmdpbngtY3Jvc3MucGF0Y2gKQEAgLTMsMTAgKzMsMTEgQEAKIFVwc3RyZWFtLVN0YXR1czogUGVuZGluZwogCiAKLWRpZmYgLXVyYU4gbmdpbngtMS4wLjExLm9yaWcvYXV0by9mZWF0dXJlIG5naW54LTEuMC4xMS9hdXRvL2ZlYXR1cmUKLS0tLSBuZ2lueC0xLjAuMTEub3JpZy9hdXRvL2ZlYXR1cmUJMjAxMS0wNS0xMSAwNjo1MDoxOS4wMDAwMDAwMDAgLTA1MDAKLSsrKyBuZ2lueC0xLjAuMTEvYXV0by9mZWF0dXJlCTIwMTEtMTItMjcgMTM6NTY6NDIuMzIzMzcwMDQwIC0wNjAwCi1AQCAtNDksMTIgKzQ5LDIwIEBACitJbmRleDogbmdpbngtMS4xMi4yL2F1dG8vZmVhdHVyZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5naW54LTEuMTIuMi5vcmlnL2F1dG8vZmVhdHVyZQorKysrIG5naW54LTEuMTIuMi9hdXRvL2ZlYXR1cmUKK0BAIC00OSwxMiArNDksMjAgQEAgZXZhbCAiL2Jpbi9zaCAtYyBcIiRuZ3hfdGVzdFwiID4+ICROR1hfQQogIAogIGlmIFsgLXggJE5HWF9BVVRPVEVTVCBdOyB0aGVuCiAgCkBAIC0yOSw3ICszMCw3IEBACiAgICAgICAgICAgICAgICAgIG5neF9mb3VuZD15ZXMKICAKICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJG5neF9mZWF0dXJlX25hbWUiOyB0aGVuCi1AQCAtNjgsMTcgKzc1LDI3IEBACitAQCAtNjgsMTcgKzc2LDI3IEBAIGlmIFsgLXggJE5HWF9BVVRPVEVTVCBdOyB0aGVuCiAgCiAgICAgICAgICB2YWx1ZSkKICAgICAgICAgICAgICAjIC9iaW4vc2ggaXMgdXNlZCB0byBpbnRlcmNlcHQgIktpbGxlZCIgb3IgIkFib3J0IHRyYXAiIG1lc3NhZ2VzCkBAIC02MSw3ICs2Miw3IEBACiAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICBlY2hvICIgZm91bmQgYnV0IGlzIG5vdCB3b3JraW5nIgogICAgICAgICAgICAgIGZpCi1AQCAtODYsNyArMTA1LDcgQEAKK0BAIC04Niw3ICsxMDQsNyBAQCBFTkQKICAKICAgICAgICAgIGJ1ZykKICAgICAgICAgICAgICAjIC9iaW4vc2ggaXMgdXNlZCB0byBpbnRlcmNlcHQgIktpbGxlZCIgb3IgIkFib3J0IHRyYXAiIG1lc3NhZ2VzCkBAIC03MCwxMCArNzEsMTEgQEAKICAgICAgICAgICAgICAgICAgZWNobyAiIG5vdCBmb3VuZCIKICAKICAgICAgICAgICAgICBlbHNlCi1kaWZmIC11cmFOIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vb3B0aW9ucyBuZ2lueC0xLjAuMTEvYXV0by9vcHRpb25zCi0tLS0gbmdpbngtMS4wLjExLm9yaWcvYXV0by9vcHRpb25zCTIwMTEtMTItMTQgMDc6MzQ6MTYuMDAwMDAwMDAwIC0wNjAwCi0rKysgbmdpbngtMS4wLjExL2F1dG8vb3B0aW9ucwkyMDExLTEyLTI3IDEzOjU2OjQyLjMyMzM3MDA0MCAtMDYwMAotQEAgLTM1Myw2ICszNTMsMTggQEAKK0luZGV4OiBuZ2lueC0xLjEyLjIvYXV0by9vcHRpb25zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmdpbngtMS4xMi4yLm9yaWcvYXV0by9vcHRpb25zCisrKysgbmdpbngtMS4xMi4yL2F1dG8vb3B0aW9ucworQEAgLTM4Niw2ICszODYsMTggQEAgJDA6IHdhcm5pbmc6IHRoZSBcIi0td2l0aC1zaGExLWFzbVwiIG9wdAogICAgICAgICAgLS10ZXN0LWJ1aWxkLWVwb2xsKSAgICAgICAgICAgICAgTkdYX1RFU1RfQlVJTERfRVBPTEw9WUVTICAgOzsKICAgICAgICAgIC0tdGVzdC1idWlsZC1zb2xhcmlzLXNlbmRmaWxldikgIE5HWF9URVNUX0JVSUxEX1NPTEFSSVNfU0VOREZJTEVWPVlFUyA7OwogIApAQCAtOTIsNyArOTQsNyBAQAogICAgICAgICAgKikKICAgICAgICAgICAgICBlY2hvICIkMDogZXJyb3I6IGludmFsaWQgb3B0aW9uIFwiJG9wdGlvblwiIgogICAgICAgICAgICAgIGV4aXQgMQotQEAgLTUzMyw2ICs0NDUsMTcgQEAKK0BAIC01NjgsNiArNTgwLDE3IEBAIGNhdCA8PCBFTkQKICAKICAgIC0td2l0aC1kZWJ1ZyAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlIGRlYnVnIGxvZ2dpbmcKICAKQEAgLTExMCw3ICsxMTIsNyBAQAogIEVORAogIAogICAgICBleGl0IDEKLUBAIC01NTQsNiArNTc3LDggQEAKK0BAIC01NzYsNiArNTk5LDggQEAgZmkKICAKICBpZiBbICIuJE5HWF9QTEFURk9STSIgPSAiLndpbjMyIiBdOyB0aGVuCiAgICAgIE5HWF9XSU5FPSRXSU5FCkBAIC0xMTksMTAgKzEyMSwxMSBAQAogIGZpCiAgCiAgCi1kaWZmIC11cmFOIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vdHlwZXMvc2l6ZW9mIG5naW54LTEuMC4xMS9hdXRvL3R5cGVzL3NpemVvZgotLS0tIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vdHlwZXMvc2l6ZW9mCTIwMDYtMDYtMjggMTE6MDA6MjYuMDAwMDAwMDAwIC0wNTAwCi0rKysgbmdpbngtMS4wLjExL2F1dG8vdHlwZXMvc2l6ZW9mCTIwMTEtMTItMjcgMTM6NTY6NDIuMzIzMzcwMDQwIC0wNjAwCi1AQCAtMTIsOSArMTIsMTIgQEAKK0luZGV4OiBuZ2lueC0xLjEyLjIvYXV0by90eXBlcy9zaXplb2YKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBuZ2lueC0xLjEyLjIub3JpZy9hdXRvL3R5cGVzL3NpemVvZgorKysrIG5naW54LTEuMTIuMi9hdXRvL3R5cGVzL3NpemVvZgorQEAgLTEyLDkgKzEyLDEyIEBAIGNoZWNraW5nIGZvciAkbmd4X3R5cGUgc2l6ZQogIAogIEVORAogIApAQCAtMTM3LDcgKzE0MCw3IEBACiAgCiAgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogICNpbmNsdWRlIDxzeXMvdGltZS5oPgotQEAgLTMzLDE1ICszNiwxNiBAQAorQEAgLTMzLDE1ICszNiwxNiBAQCBpbnQgbWFpbih2b2lkKSB7CiAgRU5ECiAgCiAgCkBAIC0xNjAsMTAgKzE2MywxMSBAQAogIGZpCiAgCiAgCi1kaWZmIC11cmFOIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vdW5peCBuZ2lueC0xLjAuMTEvYXV0by91bml4Ci0tLS0gbmdpbngtMS4wLjExLm9yaWcvYXV0by91bml4CTIwMTEtMTItMTQgMDc6MzQ6MTYuMDAwMDAwMDAwIC0wNjAwCi0rKysgbmdpbngtMS4wLjExL2F1dG8vdW5peAkyMDExLTEyLTI3IDEzOjU2OjQyLjMyNzM3MDA2MCAtMDYwMAotQEAgLTM5MywxMyArMzkzLDEzIEBACitJbmRleDogbmdpbngtMS4xMi4yL2F1dG8vdW5peAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5naW54LTEuMTIuMi5vcmlnL2F1dG8vdW5peAorKysrIG5naW54LTEuMTIuMi9hdXRvL3VuaXgKK0BAIC01ODcsMTMgKzU4NywxMyBAQCBuZ3hfZmVhdHVyZV9saWJzPQogIAogICMgQyB0eXBlcwogIApAQCAtMTgxLDggKzE4NSw4IEBACiAgbmd4X3BhcmFtPU5HWF9QVFJfU0laRTsgbmd4X3ZhbHVlPSRuZ3hfc2l6ZTsgLiBhdXRvL3R5cGVzL3ZhbHVlCiAgCiAgCi1AQCAtNDE2LDcgKzQxNiw3IEBACi0gCitAQCAtNjA0LDcgKzYwNCw3IEBAIE5HWF9JTkNMVURFX0FVVE9fQ09ORklHX0g9IiNpbmNsdWRlIFwibmcKKyBuZ3hfdHlwZT0idWludDMyX3QiOyBuZ3hfdHlwZXM9InVfaW50MzJfdCI7IC4gYXV0by90eXBlcy90eXBlZGVmCiAgbmd4X3R5cGU9InVpbnQ2NF90Ijsgbmd4X3R5cGVzPSJ1X2ludDY0X3QiOyAuIGF1dG8vdHlwZXMvdHlwZWRlZgogIAogLW5neF90eXBlPSJzaWdfYXRvbWljX3QiOyBuZ3hfdHlwZXM9ImludCI7IC4gYXV0by90eXBlcy90eXBlZGVmCkBAIC0xOTAsOSArMTk0LDkgQEAKICAuIGF1dG8vdHlwZXMvc2l6ZW9mCiAgbmd4X3BhcmFtPU5HWF9TSUdfQVRPTUlDX1RfU0laRTsgbmd4X3ZhbHVlPSRuZ3hfc2l6ZTsgLiBhdXRvL3R5cGVzL3ZhbHVlCiAgCi1AQCAtNDMyLDE1ICs0MzIsMTUgQEAKK0BAIC02MjAsMTUgKzYyMCwxNSBAQCBuZ3hfdHlwZT0icmxpbV90Ijsgbmd4X3R5cGVzPSJpbnQiOyAuIGF1CiAgCi0gLiBhdXRvL2VuZGlhbmVzcworIC4gYXV0by9lbmRpYW5uZXNzCiAgCiAtbmd4X3R5cGU9InNpemVfdCI7IC4gYXV0by90eXBlcy9zaXplb2YKICtuZ3hfdHlwZT0ic2l6ZV90Ijsgbmd4X3BhcmFtPSJTSVpFX1QiOyAuIGF1dG8vdHlwZXMvc2l6ZW9mCkBAIC0yMDgsNCArMjEyLDQgQEAKICtuZ3hfdHlwZT0idGltZV90Ijsgbmd4X3BhcmFtPSJUSU1FX1QiOyAuIGF1dG8vdHlwZXMvc2l6ZW9mCiAgbmd4X3BhcmFtPU5HWF9USU1FX1RfU0laRTsgbmd4X3ZhbHVlPSRuZ3hfc2l6ZTsgLiBhdXRvL3R5cGVzL3ZhbHVlCiAgbmd4X3BhcmFtPU5HWF9USU1FX1RfTEVOOyBuZ3hfdmFsdWU9JG5neF9tYXhfbGVuOyAuIGF1dG8vdHlwZXMvdmFsdWUKLSAKKyBuZ3hfcGFyYW09TkdYX01BWF9USU1FX1RfVkFMVUU7IG5neF92YWx1ZT0kbmd4X21heF92YWx1ZTsgLiBhdXRvL3R5cGVzL3ZhbHVlCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnguaW5jIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54LmluYwppbmRleCA0YTk3ZTI2Li5lNmFlNTJhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnguaW5jCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9uZ2lueC5pbmMKQEAgLTE0LDEzICsxNCwxNCBAQAogU1JDX1VSSSA9ICIgXAogICAgIGh0dHA6Ly9uZ2lueC5vcmcvZG93bmxvYWQvbmdpbngtJHtQVn0udGFyLmd6IFwKICAgICBmaWxlOi8vbmdpbngtY3Jvc3MucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAxLUFsbG93LXRoZS1vdmVycmlkaW5nLW9mLXRoZS1lbmRpYW5uZXNzLXZpYS10aGUtY29uZmkucGF0Y2ggXAogICAgIGZpbGU6Ly9uZ2lueC5jb25mIFwKICAgICBmaWxlOi8vbmdpbnguaW5pdCBcCiAgICAgZmlsZTovL25naW54LXZvbGF0aWxlLmNvbmYgXAogICAgIGZpbGU6Ly9uZ2lueC5zZXJ2aWNlIFwKICIKIAotaW5oZXJpdCB1cGRhdGUtcmMuZCB1c2VyYWRkIHN5c3RlbWQKK2luaGVyaXQgc2l0ZWluZm8gdXBkYXRlLXJjLmQgdXNlcmFkZCBzeXN0ZW1kCiAKIFNZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJuZ2lueC5zZXJ2aWNlIgogCkBAIC01MCw3ICs1MSw3IEBACiAKICAgICAuL2NvbmZpZ3VyZSBcCiAgICAgLS1jcm9zc2J1aWxkPUxpbnV4OiR7VFVORV9BUkNIfSBcCi0gICAgLS13aXRoLWVuZGlhbj0ke0BiYXNlX2NvbmRpdGlvbmFsKCdTSVRFSU5GT19FTkRJQU5ORVNTJywgJ2xlJywgJ2xpdHRsZScsICdiaWcnLCBkKX0gXAorICAgIC0td2l0aC1lbmRpYW49JHtAb2UudXRpbHMuY29uZGl0aW9uYWwoJ1NJVEVJTkZPX0VORElBTk5FU1MnLCAnbGUnLCAnbGl0dGxlJywgJ2JpZycsIGQpfSBcCiAgICAgLS13aXRoLWludD00IFwKICAgICAtLXdpdGgtbG9uZz0ke1BUUlNJWkV9IFwKICAgICAtLXdpdGgtbG9uZy1sb25nPTggXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuMTIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9uZ2lueF8xLjEyLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmMGUzYWQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuMTIuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotcmVxdWlyZSBuZ2lueC5pbmMKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9OTAzNzUzZGU1Zjg2YTFlZTAzNDFmZDJmOTQ5MWIyODIiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJhMzA3ZTc0YWNhOTU0MDNlNWVlMDBmMTUzODA3Y2U1OCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI4NzkzYmY0MjY0ODVhMzBmOTEwMjFiNmI5NDVhOWZkOGE4NGQ4N2QxN2I1NjY1NjJjMzc5N2FiYThmYWM3NmZiIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuMTIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9uZ2lueF8xLjEyLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODVhZDI5YgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9uZ2lueF8xLjEyLjIuYmIKQEAgLTAsMCArMSw2IEBACityZXF1aXJlIG5naW54LmluYworCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT05MDM3NTNkZTVmODZhMWVlMDM0MWZkMmY5NDkxYjI4MiIKKworU1JDX1VSSVttZDVzdW1dID0gIjRkMmZjNzYyMTE0MzVmMDI5MjcxZjFjZjZkN2VlYWUzIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjMwNWYzNzlkYTFkNWZiNWFlZmE3OWU0NWM4Mjk4NTJjYTY5ODNjN2NkMmE3OTMyOGY4ZTA4NGEzMjRjZjA0MTYiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnhfMS4xMy41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuMTMuNS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWYyYzExNy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnhfMS4xMy41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotcmVxdWlyZSBuZ2lueC5pbmMKLQotIyAxLjEyLnggYnJhbmNoIGlzIHRoZSBjdXJyZW50IHN0YWJsZSBicmFuY2gsIHRoZSByZWNvbW1lbmRlZCBkZWZhdWx0Ci0jIDEuMTMueCBpcyB0aGUgY3VycmVudCBtYWlubGluZSBicmFuY2hlcyBjb250YWluaW5nIGFsbCBuZXcgZmVhdHVyZXMKLURFRkFVTFRfUFJFRkVSRU5DRSA9ICItMSIKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9OTAzNzUzZGU1Zjg2YTFlZTAzNDFmZDJmOTQ5MWIyODIiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJmMTkzNzIyMTU5YWRmYjFlYjgxMTdjMDQ5MWZkMTdlYyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIwZTc1Yjk0NDI5YjNmNzQ1Mzc3YWViYTNhZmY5N2RhNzdiZjJiMDNmY2I5ZmYxNWIzYmFkOWIwMzhkYjI5ZjJlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuMTMuOS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9uZ2lueF8xLjEzLjkuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIzNDc5NAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9uZ2lueF8xLjEzLjkuYmIKQEAgLTAsMCArMSwxMCBAQAorcmVxdWlyZSBuZ2lueC5pbmMKKworIyAxLjEyLnggYnJhbmNoIGlzIHRoZSBjdXJyZW50IHN0YWJsZSBicmFuY2gsIHRoZSByZWNvbW1lbmRlZCBkZWZhdWx0CisjIDEuMTMueCBpcyB0aGUgY3VycmVudCBtYWlubGluZSBicmFuY2hlcyBjb250YWluaW5nIGFsbCBuZXcgZmVhdHVyZXMKK0RFRkFVTFRfUFJFRkVSRU5DRSA9ICItMSIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MzY5MTQwMmNjNTRjZTA5ZjgwMGNhMzQ4NjM0YTJkZmUiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJkY2Q0ODJkZDk4ZDIwMjI2NTkyMTJmMTgzZThmZTgxYiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1ZmFlYTE4ODU3NTE2ZmU2OGQzMGJlMzljMzAzMmJkMjJlZDljZjg1ZTFhNmZkZjMyZTM3MjFkOTZmZjdmYTQyIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL3N0aHR0cGQvc3RodHRwZF8yLjI3LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvc3RodHRwZC9zdGh0dHBkXzIuMjcuMS5iYgppbmRleCBjOWZlNTViLi4zN2JkNzUzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvc3RodHRwZC9zdGh0dHBkXzIuMjcuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvc3RodHRwZC9zdGh0dHBkXzIuMjcuMS5iYgpAQCAtMTQsNiArMTQsOSBAQAogU1JDX1VSSVttZDVzdW1dID0gIjNjZGExYjZjOGM4NTQyYjE1MTBlYWRiOGU1NDBkOGI2IgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImExZWUyODA2NDMyZWFmNWI1ZGQyNjdhMDUyMzcwMWY5ZjFmYTAwZmVmZDQ5OWQ1YmVjNDIxNjVhNDFlMDU4NDYiCiAKK1VQU1RSRUFNX0NIRUNLX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vYmx1ZW5lc3Mvc3RodHRwZC9yZWxlYXNlcy8iCitVUFNUUkVBTV9DSEVDS19SRUdFWCA9ICJ2KD9QPHB2ZXI+XGQrKFwuXGQrKSspLnRhci5neiIKKwogUyA9ICIke1dPUktESVJ9L3N0aHR0cGQtJHtQVn0iCiAKIGluaGVyaXQgYXV0b3Rvb2xzIHVwZGF0ZS1yYy5kIHN5c3RlbWQKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1waHAvcGhwbXlhZG1pbi9waHBteWFkbWluXzQuNy42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW5fNC43LjYuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3MmRiNTguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW5fNC43LjYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1TVU1NQVJZID0gIldlYi1iYXNlZCBNeVNRTCBhZG1pbmlzdHJhdGlvbiBpbnRlcmZhY2UiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LnBocG15YWRtaW4ubmV0IgotIyBNYWluIGNvZGUgaXMgR1BMdjIsIHZlbmRvci90ZWNuaWNrY29tL3RjcGRmIGlzIHVuZGVyIExHUEx2MywganMvanF1ZXJ5IGlzIHVuZGVyIE1JVAotTElDRU5TRSA9ICJHUEx2MiAmIExHUEx2MyAmIE1JVCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL3ZlbmRvci90ZWNuaWNrY29tL3RjcGRmL0xJQ0VOU0UuVFhUO21kNT01Yzg3YjY2YTUzNThlYmNjNDk1YjAzZTBhZmNkMzQyYyBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9qcy9qcXVlcnkvTUlULUxJQ0VOU0UudHh0O21kNT1lNDNhYTQzN2E2YTFiYTQyMTY1M2JkNTAzNDMzM2JmOSBcCi0iCi0KLVNSQ19VUkkgPSAiaHR0cHM6Ly9maWxlcy5waHBteWFkbWluLm5ldC9waHBNeUFkbWluLyR7UFZ9L3BocE15QWRtaW4tJHtQVn0tYWxsLWxhbmd1YWdlcy50YXIueHogXAotICAgICAgICAgICBmaWxlOi8vYXBhY2hlLmNvbmYgXAotIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiYTlhZWMwNWQ0NGM2OGI0YWM1ZTQ5ODcxMThkNzBjZDciCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWZhYjZiOTIzMzYzODY2NDZiYmIxODlkNTU4MTc3OTk0ODdiNWMyN2IwNmNhYjBjZGZkY2FiM2M4OGY1OTg4ZiIKLQotUyA9ICIke1dPUktESVJ9L3BocE15QWRtaW4tJHtQVn0tYWxsLWxhbmd1YWdlcyIKLQotaW5oZXJpdCBhbGxhcmNoCi0KLWRvX2luc3RhbGwoKSB7Ci0gICAgaW5zdGFsbCAtZCAke0R9JHtkYXRhZGlyfS8ke0JQTn0KLSAgICBjcCAtUiAtLW5vLWRlcmVmZXJlbmNlIC0tcHJlc2VydmU9bW9kZSxsaW5rcyAtdiAqICR7RH0ke2RhdGFkaXJ9LyR7QlBOfQotICAgIGNob3duIC1SIHJvb3Q6cm9vdCAke0R9JHtkYXRhZGlyfS8ke0JQTn0KLSAgICAjIERvbid0IGluc3RhbGwgcGF0Y2hlcyB0byB0YXJnZXQKLSAgICBybSAtcmYgJHtEfSR7ZGF0YWRpcn0vJHtCUE59L3BhdGNoZXMKLQotICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vYXBhY2hlMi9jb25mLmQKLSAgICBpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9hcGFjaGUuY29uZiAke0R9JHtzeXNjb25mZGlyfS9hcGFjaGUyL2NvbmYuZC9waHBteWFkbWluLmNvbmYKLQotICAgICMgUmVtb3ZlIGEgZmV3IHNjcmlwdHMgdGhhdCBleHBsaWNpdGx5IHJlcXVpcmUgYmFzaCAoISkKLSAgICBybSAtZiAke0R9JHtkYXRhZGlyfS9waHBteWFkbWluL2xpYnJhcmllcy90cmFuc2Zvcm1hdGlvbnMvKi5zaAotfQotCi1GSUxFU18ke1BOfSA9ICIke2RhdGFkaXJ9LyR7QlBOfSBcCi0gICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2FwYWNoZTIvY29uZi5kIgotCi1SREVQRU5EU18ke1BOfSArPSAiYmFzaCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1waHAvcGhwbXlhZG1pbi9waHBteWFkbWluXzQuNy45LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW5fNC43LjkuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcxNTcyZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1waHAvcGhwbXlhZG1pbi9waHBteWFkbWluXzQuNy45LmJiCkBAIC0wLDAgKzEsNDEgQEAKK1NVTU1BUlkgPSAiV2ViLWJhc2VkIE15U1FMIGFkbWluaXN0cmF0aW9uIGludGVyZmFjZSIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cucGhwbXlhZG1pbi5uZXQiCisjIE1haW4gY29kZSBpcyBHUEx2MiwgdmVuZG9yL3RlY25pY2tjb20vdGNwZGYgaXMgdW5kZXIgTEdQTHYzLCBqcy9qcXVlcnkgaXMgdW5kZXIgTUlUCitMSUNFTlNFID0gIkdQTHYyICYgTEdQTHYzICYgTUlUIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vdmVuZG9yL3RlY25pY2tjb20vdGNwZGYvTElDRU5TRS5UWFQ7bWQ1PTVjODdiNjZhNTM1OGViY2M0OTViMDNlMGFmY2QzNDJjIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL2pzL2pxdWVyeS9NSVQtTElDRU5TRS50eHQ7bWQ1PWU0M2FhNDM3YTZhMWJhNDIxNjUzYmQ1MDM0MzMzYmY5IFwKKyIKKworU1JDX1VSSSA9ICJodHRwczovL2ZpbGVzLnBocG15YWRtaW4ubmV0L3BocE15QWRtaW4vJHtQVn0vcGhwTXlBZG1pbi0ke1BWfS1hbGwtbGFuZ3VhZ2VzLnRhci54eiBcCisgICAgICAgICAgIGZpbGU6Ly9hcGFjaGUuY29uZiBcCisiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICIwYTg2MmUzZmE1MmM4YjkwNzhlMDQ0MWVlODJiZTgzMSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJmMTliNTAzZjBhZmIwZGQzMzg5ZDRiYjExZGFiM2Y0MzhkMzZlODVlZWYxMWE1YzQwMGM1OTJmZDVmNTM5Mzk4IgorCitVUFNUUkVBTV9DSEVDS19VUkkgPSAiaHR0cHM6Ly93d3cucGhwbXlhZG1pbi5uZXQvZG93bmxvYWRzLyIKK1VQU1RSRUFNX0NIRUNLX1JFR0VYID0gInBocE15QWRtaW4tKD9QPHB2ZXI+XGQrKFwuXGQrKSspLWFsbC1sYW5ndWFnZXMudGFyLnh6IgorCitTID0gIiR7V09SS0RJUn0vcGhwTXlBZG1pbi0ke1BWfS1hbGwtbGFuZ3VhZ2VzIgorCitpbmhlcml0IGFsbGFyY2gKKworZG9faW5zdGFsbCgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0ke2RhdGFkaXJ9LyR7QlBOfQorICAgIGNwIC1SIC0tbm8tZGVyZWZlcmVuY2UgLS1wcmVzZXJ2ZT1tb2RlLGxpbmtzIC12ICogJHtEfSR7ZGF0YWRpcn0vJHtCUE59CisgICAgY2hvd24gLVIgcm9vdDpyb290ICR7RH0ke2RhdGFkaXJ9LyR7QlBOfQorICAgICMgRG9uJ3QgaW5zdGFsbCBwYXRjaGVzIHRvIHRhcmdldAorICAgIHJtIC1yZiAke0R9JHtkYXRhZGlyfS8ke0JQTn0vcGF0Y2hlcworCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9hcGFjaGUyL2NvbmYuZAorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2FwYWNoZS5jb25mICR7RH0ke3N5c2NvbmZkaXJ9L2FwYWNoZTIvY29uZi5kL3BocG15YWRtaW4uY29uZgorCisgICAgIyBSZW1vdmUgYSBmZXcgc2NyaXB0cyB0aGF0IGV4cGxpY2l0bHkgcmVxdWlyZSBiYXNoICghKQorICAgIHJtIC1mICR7RH0ke2RhdGFkaXJ9L3BocG15YWRtaW4vbGlicmFyaWVzL3RyYW5zZm9ybWF0aW9ucy8qLnNoCit9CisKK0ZJTEVTXyR7UE59ID0gIiR7ZGF0YWRpcn0vJHtCUE59IFwKKyAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vYXBhY2hlMi9jb25mLmQiCisKK1JERVBFTkRTXyR7UE59ICs9ICJiYXNoIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC94ZGVidWcveGRlYnVnXzIuNS4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC94ZGVidWcveGRlYnVnXzIuNS4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzQxMzc4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1waHAveGRlYnVnL3hkZWJ1Z18yLjUuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLVNVTU1BUlkgPSAiRGVidWdnaW5nIGFuZCBwcm9maWxpbmcgZXh0ZW5zaW9uIGZvciBQSFAiCi1MSUNFTlNFID0gIlhkZWJ1ZyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTM0ZGYzYTI3NGFhMTJiNzk1NDE3YzY1NjM0YzA3ZjE2IgotCi1ERVBFTkRTID0gInBocCIKLQotU1JDX1VSSSA9ICJodHRwOi8veGRlYnVnLm9yZy9maWxlcy94ZGVidWctJHtQVn0udGd6IgotCi1TUkNfVVJJW21kNXN1bV0gPSAiNjE2N2IxZTEwNGYxMTA4ZDc3ZjA4ZWI1NjFhMTJiMjIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiN2ZkYTkwMjBmZDVhMmM1NDlhZTVhNjkyZmNhYmJiMDBmNzRlMzlkZGE4MWQ1M2QyNWU2MjJiZGFiNDg4MGVjMiIKLQotaW5oZXJpdCBhdXRvdG9vbHMKLQotRVhUUkFfT0VDT05GICs9ICItLWVuYWJsZS14ZGVidWcgLXdpdGgtcGhwLWNvbmZpZz0ke1NUQUdJTkdfQklORElSX0NST1NTfS9waHAtY29uZmlnIgotCi1kb19jb25maWd1cmUoKSB7Ci0gICAgY2QgJHtTfQotICAgICR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9L3BocGl6ZQotICAgIGNkICR7Qn0KLQotICAgICMgUnVubmluZyBhdXRvcmVjb25mIGFzIGF1dG90b29sc19kb19jb25maWd1cmUgd291bGQgZG8gaGVyZQotICAgICMgYnJlYWtzIHRoZSBsaWJ0b29sIGNvbmZpZ3VyYXRpb24gcmVzdWx0aW5nIGluIGEgZmFpbHVyZSBsYXRlcgotICAgICMgaW4gZG9fY29tcGlsZS4gSXQncyBwb3NzaWJsZSB0aGlzIG1heSBiZSBmaXhhYmxlLCBob3dldmVyIHRoZQotICAgICMgZWFzaWVzdCBjb3Vyc2Ugb2YgYWN0aW9uIGZvciB0aGUgbW9tZW50IGlzIHRvIGF2b2lkIGRvaW5nIHRoYXQuCi0gICAgb2VfcnVuY29uZgotfQotCi1kb19pbnN0YWxsKCkgewotICAgIG9lX3J1bm1ha2UgaW5zdGFsbCBJTlNUQUxMX1JPT1Q9JHtEfQotfQotCi1GSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L3BocCovZXh0ZW5zaW9ucy8qLyouc28iCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9waHAqL2V4dGVuc2lvbnMvKi8uZGVidWciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtcGhwL3hkZWJ1Zy94ZGVidWdfMi42LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtcGhwL3hkZWJ1Zy94ZGVidWdfMi42LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUxNjk4OAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1waHAveGRlYnVnL3hkZWJ1Z18yLjYuMC5iYgpAQCAtMCwwICsxLDMzIEBACitTVU1NQVJZID0gIkRlYnVnZ2luZyBhbmQgcHJvZmlsaW5nIGV4dGVuc2lvbiBmb3IgUEhQIgorTElDRU5TRSA9ICJYZGVidWciCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zNGRmM2EyNzRhYTEyYjc5NTQxN2M2NTYzNGMwN2YxNiIKKworREVQRU5EUyA9ICJwaHAgcmUyYy1uYXRpdmUiCisKK1NSQ19VUkkgPSAiaHR0cDovL3hkZWJ1Zy5vcmcvZmlsZXMveGRlYnVnLSR7UFZ9LnRneiIKKworU1JDX1VSSVttZDVzdW1dID0gImVkMzU0NTg1MmU2ZjRhMDBmYjg3MzAzNjJkMDQzMWVlIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImI1MjY0Y2MwM2JmNjhmY2JiMDRiOTcyMjlmOTZkY2E1MDVkN2I4N2VjMmZiM2JkNDI0OTg5Njc4M2QyOWNiZGMiCisKK2luaGVyaXQgYXV0b3Rvb2xzCisKK0VYVFJBX09FQ09ORiArPSAiLS1lbmFibGUteGRlYnVnIC13aXRoLXBocC1jb25maWc9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vcGhwLWNvbmZpZyIKKworZG9fY29uZmlndXJlKCkgeworICAgIGNkICR7U30KKyAgICAke1NUQUdJTkdfQklORElSX0NST1NTfS9waHBpemUKKyAgICBjZCAke0J9CisKKyAgICAjIFJ1bm5pbmcgYXV0b3JlY29uZiBhcyBhdXRvdG9vbHNfZG9fY29uZmlndXJlIHdvdWxkIGRvIGhlcmUKKyAgICAjIGJyZWFrcyB0aGUgbGlidG9vbCBjb25maWd1cmF0aW9uIHJlc3VsdGluZyBpbiBhIGZhaWx1cmUgbGF0ZXIKKyAgICAjIGluIGRvX2NvbXBpbGUuIEl0J3MgcG9zc2libGUgdGhpcyBtYXkgYmUgZml4YWJsZSwgaG93ZXZlciB0aGUKKyAgICAjIGVhc2llc3QgY291cnNlIG9mIGFjdGlvbiBmb3IgdGhlIG1vbWVudCBpcyB0byBhdm9pZCBkb2luZyB0aGF0LgorICAgIG9lX3J1bmNvbmYKK30KKworZG9faW5zdGFsbCgpIHsKKyAgICBvZV9ydW5tYWtlIGluc3RhbGwgSU5TVEFMTF9ST09UPSR7RH0KK30KKworRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9waHAqL2V4dGVuc2lvbnMvKi8qLnNvIgorRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vcGhwKi9leHRlbnNpb25zLyovLmRlYnVnIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL25ldGRhdGEvbmV0ZGF0YS8wMDAxLW1ha2VmaWxlLURvLW5vdC1idWlsZC1jb250cmliLWRpci5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi9uZXRkYXRhL25ldGRhdGEvMDAwMS1tYWtlZmlsZS1Eby1ub3QtYnVpbGQtY29udHJpYi1kaXIucGF0Y2gKaW5kZXggOWEzYTRhNS4uNmEwZDc1ZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL25ldGRhdGEvbmV0ZGF0YS8wMDAxLW1ha2VmaWxlLURvLW5vdC1idWlsZC1jb250cmliLWRpci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vbmV0ZGF0YS9uZXRkYXRhLzAwMDEtbWFrZWZpbGUtRG8tbm90LWJ1aWxkLWNvbnRyaWItZGlyLnBhdGNoCkBAIC0xMSwxNyArMTEsMTcgQEAKICAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQogCiBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQotaW5kZXggM2NjZjgyZjguLmE4NTJlNTI5IDEwMDY0NAoraW5kZXggMmVhOWU0MC4uYWNiMWJkOCAxMDA2NDQKIC0tLSBhL01ha2VmaWxlLmFtCiArKysgYi9NYWtlZmlsZS5hbQotQEAgLTUyLDcgKzUyLDYgQEAgU1VCRElSUyA9IFwKK0BAIC01Niw3ICs1Niw2IEBAIFNVQkRJUlMgPSBcCiAgCXNyYyBcCiAgCXN5c3RlbSBcCiAgCXdlYiBcCiAtCWNvbnRyaWIgXAorIAl0ZXN0cyBcCiAgCSQoTlVMTCkKICAKLSBkaXN0X25vaW5zdF9EQVRBPSBcCiAtLSAKIDIuMTMuMgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vbmV0ZGF0YS9uZXRkYXRhX2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi9uZXRkYXRhL25ldGRhdGFfZ2l0LmJiCmluZGV4IDEwMDM2NjIuLmIwZjE2MDIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi9uZXRkYXRhL25ldGRhdGFfZ2l0LmJiCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi9uZXRkYXRhL25ldGRhdGFfZ2l0LmJiCkBAIC0xLDE1ICsxLDE1IEBACiBIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vZmlyZWhvbC9uZXRkYXRhLyIKIFNVTU1BUlkgPSAiUmVhbC10aW1lIHBlcmZvcm1hbmNlIG1vbml0b3JpbmciCiBMSUNFTlNFID0gIkdQTHYzIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS5tZDttZDU9YTRhM2I2NTBlYTNmNzQyNjljZGZkNDVhMzU1MGUyMTkgXAorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRS5tZDttZDU9OTViNDllOWVhOTc5YTMzNzU3OGYxM2MyYTNhYjk1MzUgXAogICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQgXAogICAgICAgICAgICAgICAgICAgICIKIAogU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2ZpcmVob2wvbmV0ZGF0YS5naXQ7cHJvdG9jb2w9aHR0cHMgXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1tYWtlZmlsZS1Eby1ub3QtYnVpbGQtY29udHJpYi1kaXIucGF0Y2ggXAogIgotU1JDUkVWID0gImY1ZmEzNDZhMTg4ZTkwNmE4ZjJjY2UzYzJjZjMyYTg4Y2U4MWM2NjYiCi1QViA9ICIxLjYuMCtnaXQke1NSQ1BWfSIKK1NSQ1JFViA9ICI4OWVkMzA5MjUyOTgxZGRkNTBmNjk3ZmRlNGZlOTMwMTljYjNlNjUyIgorUFYgPSAiMS44LjArZ2l0JHtTUkNQVn0iCiAKICMgcGF0Y2ggdG8gZGlzYWJsZSB0aW1lb3V0IGJlY2F1c2UgdGltZW91dCBhcmUgbm90IGF2YWlsYWJsZSB3aXRoIGFjdHVhbCB2ZXJzaW9uCiAjIG9mIGNvcmUtdXRpbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvZGlzYWJsZS12ZXJzaW9uLWNoZWNrLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9kaXNhYmxlLXZlcnNpb24tY2hlY2sucGF0Y2gKaW5kZXggMWNhMTQ4MC4uOWFhZDg5NCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9kaXNhYmxlLXZlcnNpb24tY2hlY2sucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9kaXNhYmxlLXZlcnNpb24tY2hlY2sucGF0Y2gKQEAgLTcsMTEgKzcsMTEgQEAKIAogU2lnbmVkLW9mZi1ieTogUGF1bCBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+CiAKLWRpZmYgLS1naXQgYS93ZWJtaW4vd2VibWluLWxpYi5wbCBiL3dlYm1pbi93ZWJtaW4tbGliLnBsCi1pbmRleCA1N2EzN2Y3Li44MzhiOTQ0IDEwMDc1NQotLS0tIGEvd2VibWluL3dlYm1pbi1saWIucGwKLSsrKyBiL3dlYm1pbi93ZWJtaW4tbGliLnBsCi1AQCAtMTA4NiwyOCArMTA4NiwyOCBAQAorSW5kZXg6IHdlYm1pbi0xLjg1MC93ZWJtaW4vd2VibWluLWxpYi5wbAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHdlYm1pbi0xLjg1MC5vcmlnL3dlYm1pbi93ZWJtaW4tbGliLnBsCisrKysgd2VibWluLTEuODUwL3dlYm1pbi93ZWJtaW4tbGliLnBsCitAQCAtMTExMiwyOCArMTExMiwyOCBAQCBteSAlbWluaXNlcnY7CiAgJmxvYWRfdGhlbWVfbGlicmFyeSgpOwkjIFNvIHRoYXQgVUkgZnVuY3Rpb25zIHdvcmsKICAKICAjIE5lZWQgT1MgdXBncmFkZQpAQCAtNjIsNCArNjIsMyBAQAogIAogICMgUGFzc3dvcmQgY2xvc2UgdG8gZXhwaXJ5CiAgbXkgJHdhcm5fZGF5cyA9ICRjb25maWd7J3dhcm5fZGF5cyd9OwotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL2V4cG9ydHMtbGliLnBsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9leHBvcnRzLWxpYi5wbC5wYXRjaAppbmRleCAxNzdkOGEzLi5kNWRmZWQ1IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL2V4cG9ydHMtbGliLnBsLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvZXhwb3J0cy1saWIucGwucGF0Y2gKQEAgLTE0LDExICsxNCwxMSBAQAogIGV4cG9ydHMvZXhwb3J0cy1saWIucGwgfCAgICAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKLWRpZmYgLS1naXQgYS9leHBvcnRzL2V4cG9ydHMtbGliLnBsIGIvZXhwb3J0cy9leHBvcnRzLWxpYi5wbAotaW5kZXggMjI4OTFjMC4uMWM2NzQ5NCAxMDA3NTUKLS0tLSBhL2V4cG9ydHMvZXhwb3J0cy1saWIucGwKLSsrKyBiL2V4cG9ydHMvZXhwb3J0cy1saWIucGwKLUBAIC0yNzMsNyArMjczLDcgQEAgcmV0dXJuICEmaGFzX2NvbW1hbmQoInJwYy5uZnNkIikgJiYgISZoYXNfY29tbWFuZCgibmZzZCIpICYmCitJbmRleDogd2VibWluLTEuODUwL2V4cG9ydHMvZXhwb3J0cy1saWIucGwKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB3ZWJtaW4tMS44NTAub3JpZy9leHBvcnRzL2V4cG9ydHMtbGliLnBsCisrKysgd2VibWluLTEuODUwL2V4cG9ydHMvZXhwb3J0cy1saWIucGwKK0BAIC0zMDEsNyArMzAxLDcgQEAgcmV0dXJuICEmaGFzX2NvbW1hbmQoInJwYy5uZnNkIikgJiYgISZoYQogIHN1YiByZXN0YXJ0X21vdW50ZAogIHsKICAjIFRyeSBleHBvcnRmcyAtciBmaXJzdApAQCAtMjcsNiArMjcsMyBAQAogIAlteSAkb3V0ID0gJmJhY2txdW90ZV9sb2dnZWQoIiRjb25maWd7J2FwcGx5X2NtZCd9IDI+JjEgPC9kZXYvbnVsbCIpOwogIAlpZiAoISQ/ICYmICRvdXQgIX4gL2ludmFsaWR8ZXJyb3J8ZmFpbGVkL2kpIHsKICAJCSMgTG9va3MgbGlrZSBpdCB3b3JrZWQhCi0tLSAKLTEuNy45LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9pbml0LWV4Y2x1ZGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL2luaXQtZXhjbHVkZS5wYXRjaAppbmRleCA1NTYzMjI3Li40MjEyOTE3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL2luaXQtZXhjbHVkZS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL2luaXQtZXhjbHVkZS5wYXRjaApAQCAtMTEsMTEgKzExLDExIEBACiAgaW5pdC9pbml0LWxpYi5wbCB8ICA1ICsrKy0tCiAgMiBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL2luaXQvaW5kZXguY2dpIGIvaW5pdC9pbmRleC5jZ2kKLWluZGV4IGQ0OGI3OTMuLjMwZGFmZDQgMTAwNzU1Ci0tLS0gYS9pbml0L2luZGV4LmNnaQotKysrIGIvaW5pdC9pbmRleC5jZ2kKLUBAIC00NSwxOSArNDUsMjAgQEAgZWxzaWYgKCRpbml0X21vZGUgZXEgImluaXQiICYmICRhY2Nlc3N7J2Jvb3R1cCd9KSB7CitJbmRleDogd2VibWluLTEuODUwL2luaXQvaW5kZXguY2dpCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gd2VibWluLTEuODUwLm9yaWcvaW5pdC9pbmRleC5jZ2kKKysrKyB3ZWJtaW4tMS44NTAvaW5pdC9pbmRleC5jZ2kKK0BAIC00NSwxOSArNDUsMjAgQEAgZWxzaWYgKCRpbml0X21vZGUgZXEgImluaXQiICYmICRhY2Nlc3N7JwogIAkJCQkJICAgICA6ICIkY29uZmlneydpbml0X2Rpcid9LyRhY1swXSIpOwogIAkJfQogIAlAcnVubGV2ZWxzID0gJmxpc3RfcnVubGV2ZWxzKCk7CkBAIC00OSwxMSArNDksMTEgQEAKICAKICAJIyBGb3IgZWFjaCBhY3Rpb24sIGxvb2sgYXQgL2V0Yy9yYyouZC8qIGZpbGVzIHRvIHNlZSBpZiBpdCBpcyAKICAJIyBzdGFydGVkIGF0IGJvb3QKLWRpZmYgLS1naXQgYS9pbml0L2luaXQtbGliLnBsIGIvaW5pdC9pbml0LWxpYi5wbAotaW5kZXggZWFkMjFlZC4uYjQxNzk0YiAxMDA3NTUKLS0tLSBhL2luaXQvaW5pdC1saWIucGwKLSsrKyBiL2luaXQvaW5pdC1saWIucGwKLUBAIC0xMTksOCArMTE5LDkgQEAgTGlzdCBib290IHRpbWUgYWN0aW9uIG5hbWVzIGZyb20gaW5pdC5kLCBzdWNoIGFzIGh0dHBkIGFuZCBjcm9uLgorSW5kZXg6IHdlYm1pbi0xLjg1MC9pbml0L2luaXQtbGliLnBsCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gd2VibWluLTEuODUwLm9yaWcvaW5pdC9pbml0LWxpYi5wbAorKysrIHdlYm1pbi0xLjg1MC9pbml0L2luaXQtbGliLnBsCitAQCAtMTI0LDggKzEyNCw5IEBAIExpc3QgYm9vdCB0aW1lIGFjdGlvbiBuYW1lcyBmcm9tIGluaXQuZCwKICA9Y3V0CiAgc3ViIGxpc3RfYWN0aW9ucwogIHsKQEAgLTY0LDcgKzY0LDcgQEAKICBvcGVuZGlyKERJUiwgJGRpcik7CiAgZm9yZWFjaCAkZiAoc29ydCB7IGxjKCRhKSBjbXAgbGMoJGIpIH0gcmVhZGRpcihESVIpKSB7CiAgCWlmICgkZiBlcSAiLiIgfHwgJGYgZXEgIi4uIiB8fCAkZiA9fiAvXC5iYWskLyB8fCAkZiBlcSAiZnVuY3Rpb25zIiB8fAotQEAgLTEyOCw3ICsxMjksNyBAQCBmb3JlYWNoICRmIChzb3J0IHsgbGMoJGEpIGNtcCBsYygkYikgfSByZWFkZGlyKERJUikpIHsKK0BAIC0xMzMsNyArMTM0LDcgQEAgZm9yZWFjaCAkZiAoc29ydCB7IGxjKCRhKSBjbXAgbGMoJGIpIH0gcgogIAkgICAgLWQgIiRkaXIvJGYiIHx8ICRmID1+IC9cLnN3cCQvIHx8ICRmIGVxICJza2VsZXRvbiIgfHwKICAJICAgICRmID1+IC9cLmxvY2skLyB8fCAkZiA9fiAvXC5kcGtnLShvbGR8ZGlzdCkkLyB8fAogIAkgICAgJGYgPX4gL15cLmRlcGVuZFwuLyB8fCAkZiBlcSAnLmxlZ2FjeS1ib290b3JkZXJpbmcnIHx8CkBAIC03Myw2ICs3MywzIEBACiAgCWlmIChAc3RidWYgPSBzdGF0KCIkZGlyLyRmIikpIHsKICAJCXB1c2goQHJ2LCAiJGYgJHN0YnVmWzFdIik7CiAgCQl9Ci0tLQotMi4wLjAKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9uZXQtZ2VuZXJpYy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvbmV0LWdlbmVyaWMucGF0Y2gKaW5kZXggN2QyMGFmZi4uNTU0OTM5MiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9uZXQtZ2VuZXJpYy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL25ldC1nZW5lcmljLnBhdGNoCkBAIC0zLDkgKzMsMTEgQEAKICMgVXBzdHJlYW0tc3RhdHVzOiBOb3QgYXBwcm9wcmlhdGUgW2NvbmZpZ10KICMKICMgU2lnbmVkLW9mZi1ieTogUGF1bCBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+Ci0tLS0gd2VibWluLTEuNTcwLm9yaWcvbmV0L21vZHVsZS5pbmZvCi0rKysgd2VibWluLTEuNTcwL25ldC9tb2R1bGUuaW5mbwotQEAgLTExLDcgKzExLDcgQEAgZGVzY19rb19LUi5VVEYtOD3rhKTtirjsm4ztgawg6rWs7ISxCitJbmRleDogd2VibWluLTEuODUwL25ldC9tb2R1bGUuaW5mbworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHdlYm1pbi0xLjg1MC5vcmlnL25ldC9tb2R1bGUuaW5mbworKysrIHdlYm1pbi0xLjg1MC9uZXQvbW9kdWxlLmluZm8KK0BAIC0xNCw3ICsxNCw3IEBAIGRlc2Nfa29fS1IuVVRGLTg964Sk7Yq47JuM7YGsIOq1rOyEsQogIG5hbWU9TmV0d29ya2luZwogIGRlc2NfdHI9QfAgWWFw/WxhbmT9cm1hc/0KICBkZXNjX2RlPU5ldHp3ZXJra29uZmlndXJhdGlvbgpAQCAtMTQsOCArMTYsMTAgQEAKICBkZXNjX3NrPUtvbmZpZ3Vy4WNpYSBzaWV0ZQogIGRlc2NfemhfQ049zfjC58Xk1sMKICByaXNrPWxvdyBtZWRpdW0gaGlnaAorSW5kZXg6IHdlYm1pbi0xLjg1MC9uZXQvZ2VuZXJpYy1saW51eC1saWIucGwKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwKLSsrKyB3ZWJtaW4tMS41NzAvbmV0L2dlbmVyaWMtbGludXgtbGliLnBsCisrKysgd2VibWluLTEuODUwL25ldC9nZW5lcmljLWxpbnV4LWxpYi5wbAogQEAgLTAsMCArMSwyIEBACiArZG8gJ2xpbnV4LWxpYi5wbCc7CiArCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL25mcy1leHBvcnQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL25mcy1leHBvcnQucGF0Y2gKaW5kZXggYzE3ZTNiMi4uNDI2ZDYzNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9uZnMtZXhwb3J0LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvbmZzLWV4cG9ydC5wYXRjaApAQCAtMTIsMTEgKzEyLDExIEBACiAKIFNpZ25lZC1vZmYtYnk6IFl1IEtlIDxrZS55dUBpbnRlbC5jb20+CiAKLWRpZmYgLS1naXQgYS9leHBvcnRzL3NhdmVfZXhwb3J0LmNnaSBiL2V4cG9ydHMvc2F2ZV9leHBvcnQuY2dpCi1pbmRleCAzYmMyZjk3Li4zZTYwMjk4IDEwMDc1NQotLS0tIGEvZXhwb3J0cy9zYXZlX2V4cG9ydC5jZ2kKLSsrKyBiL2V4cG9ydHMvc2F2ZV9leHBvcnQuY2dpCi1AQCAtNDAsNyArNDAsNyBAQCBlbHNlIHsKK0luZGV4OiB3ZWJtaW4tMS44NTAvZXhwb3J0cy9zYXZlX2V4cG9ydC5jZ2kKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB3ZWJtaW4tMS44NTAub3JpZy9leHBvcnRzL3NhdmVfZXhwb3J0LmNnaQorKysrIHdlYm1pbi0xLjg1MC9leHBvcnRzL3NhdmVfZXhwb3J0LmNnaQorQEAgLTUwLDcgKzUwLDcgQEAgZWxzZSB7CiAgCQkJJmVycm9yKCZ0ZXh0KCdzYXZlX2VuZXRtYXNrJywgJGlueyduZXRtYXNrJ30pKTsKICAJCSRleHB7J2hvc3QnfSA9ICRpbnsnbmV0d29yayd9LiIvIi4kaW57J25ldG1hc2snfTsKICAJCX0KQEAgLTI1LDkgKzI1LDkgQEAKICAJZWxzZSB7CiAgCQkkaW57J2hvc3QnfSA9fiAvXCovIHx8ICZ0b19pcGFkZHJlc3MoJGlueydob3N0J30pIHx8CiAgCQkJJmVycm9yKCZ0ZXh0KCdzYXZlX2Vob3N0JywgJGlueydob3N0J30pKTsKLUBAIC03MCw2ICs3MCwxMSBAQCBlbHNlIHsKLSAKLSAJZGVsZXRlKCRvcHRzeydub19zdWJ0cmVlX2NoZWNrJ30pOyBkZWxldGUoJG9wdHN7J3N1YnRyZWVfY2hlY2snfSk7CitAQCAtODcsNiArODcsMTEgQEAgZWxzZSB7CisgCWRlbGV0ZSgkb3B0c3snbm9fc3VidHJlZV9jaGVjayd9KTsKKyAJZGVsZXRlKCRvcHRzeydzdWJ0cmVlX2NoZWNrJ30pOwogIAkkb3B0c3snbm9fc3VidHJlZV9jaGVjayd9ID0gIiIgaWYgKCRpbnsnbm9fc3VidHJlZV9jaGVjayd9KTsKICsJaWYgKCRpbnsnbm9fc3VidHJlZV9jaGVjayd9KSB7CiArCQkkb3B0c3snbm9fc3VidHJlZV9jaGVjayd9ID0gIiI7CkBAIC0zNSw1ICszNSw1IEBACiArCQkkb3B0c3snc3VidHJlZV9jaGVjayd9ID0gIiI7CiArCX0KICAKLSAJZGVsZXRlKCRvcHRzeydub2hpZGUnfSk7IGRlbGV0ZSgkb3B0c3snaGlkZSd9KTsKLSAJJG9wdHN7J25vaGlkZSd9ID0gIiIgaWYgKCRpbnsnbm9oaWRlJ30pOworIAlkZWxldGUoJG9wdHN7J25vaGlkZSd9KTsKKyAJZGVsZXRlKCRvcHRzeydoaWRlJ30pOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi93ZWJtaW5fMS44NTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL3dlYm1pbl8xLjg1MC5iYgppbmRleCBhZTg4ZWI2Li5jZTliYzkyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL3dlYm1pbl8xLjg1MC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL3dlYm1pbl8xLjg1MC5iYgpAQCAtMjQsNiArMjQsOSBAQAogU1JDX1VSSVttZDVzdW1dID0gImNkNmVlOThmNzNmOTQxODU2MjE5NzY3NWI5NTJkODFiIgogU1JDX1VSSVtzaGEyNTZzdW1dID0gImM2NmNhYTllNGNiNTBkNTQ0N2JjOGFjZWI3OTg5ZDIyODRkZGUwNjAyNzhmNDA0YjEzZTE3MWM3Y2UxNjkwZTEiCiAKK1VQU1RSRUFNX0NIRUNLX1VSSSA9ICJodHRwOi8vd3d3LndlYm1pbi5jb20vZG93bmxvYWQuaHRtbCIKK1VQU1RSRUFNX0NIRUNLX1JFR0VYID0gIndlYm1pbi0oP1A8cHZlcj5cZCsoXC5cZCspKykudGFyLmd6IgorCiBpbmhlcml0IHBlcmxuYXRpdmUgdXBkYXRlLXJjLmQgc3lzdGVtZAogCiBkb19jb25maWd1cmUoKSB7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9SRUFETUUgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9SRUFETUUKaW5kZXggMzM2Nzc5Ny4uNzQzMWU4YiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvUkVBRE1FCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL1JFQURNRQpAQCAtMSwxMSArMSwxMSBAQAogVGhpcyBsYXllciBkZXBlbmRzIG9uOgogCiBVUkk6IGdpdDovL2dpdGh1Yi5jb20vb3BlbmVtYmVkZGVkL29lLWNvcmUuZ2l0Ci1icmFuY2g6IHJvY2tvCiticmFuY2g6IG1hc3RlcgogcmV2aXNpb246IEhFQUQKIAogVVJJOiBnaXQ6Ly9naXRodWIuY29tL29wZW5lbWJlZGRlZC9tZXRhLW9lLmdpdAotYnJhbmNoOiByb2NrbworYnJhbmNoOiBtYXN0ZXIKIHJldmlzaW9uOiBIRUFECiBtZXRhLXhmY2UgZGVwZW5kcyBvbiBtZXRhLW9lLCBtZXRhLWdub21lIGFuZCBtZXRhLW11bHRpbWVkaWEgaW4gdGhpcyByZXBvc2l0b3J5LgogCkBAIC0xNCwxMCArMTQsOSBAQAogCiBCQk1BU0sgPSAibWV0YS14ZmNlL3JlY2lwZXMtbXVsdGltZWRpYSIKIAotU2VuZCBwdWxsIHJlcXVlc3RzIHRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIHdpdGggJ1ttZXRhLXhmY2VdW3JvY2tvXScgaW4gdGhlIHN1YmplY3QnCitTZW5kIHB1bGwgcmVxdWVzdHMgdG8gb3BlbmVtYmVkZGVkLWRldmVsQGxpc3RzLm9wZW5lbWJlZGRlZC5vcmcgd2l0aCAnW21ldGEteGZjZV0nIGluIHRoZSBzdWJqZWN0JwogCiBXaGVuIHNlbmRpbmcgc2luZ2xlIHBhdGNoZXMsIHBsZWFzZSB1c2luZyBzb21ldGhpbmcgbGlrZToKLSdnaXQgc2VuZC1lbWFpbCAtTSAtMSAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIC0tc3ViamVjdC1wcmVmaXg9bWV0YS14ZmNlXVtyb2Nrb11bUEFUQ0gnCisnZ2l0IHNlbmQtZW1haWwgLU0gLTEgLS10byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyAtLXN1YmplY3QtcHJlZml4PW1ldGEteGZjZV1bUEFUQ0gnCiAKLXJvY2tvIEJyYW5jaCBNYWludGFpbmVyOgotQXJtaW4gS3VzdGVyIDxha3VzdGVyODA4QGdtYWlsLmNvbT4KK0xheWVyIG1haW50YWluZXI6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL2NvbmYvbGF5ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL2NvbmYvbGF5ZXIuY29uZgppbmRleCBhZDI1ZGNiLi5iZWU4ZTcwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9jb25mL2xheWVyLmNvbmYKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvY29uZi9sYXllci5jb25mCkBAIC0xOCw2ICsxOCw4IEBACiBMQVlFUkRFUEVORFNfeGZjZS1sYXllciArPSAibXVsdGltZWRpYS1sYXllciIKIExBWUVSREVQRU5EU194ZmNlLWxheWVyICs9ICJtZXRhLXB5dGhvbiIKIAorTEFZRVJTRVJJRVNfQ09NUEFUX3hmY2UtbGF5ZXIgPSAic3VtbyIKKwogU0lHR0VOX0VYQ0xVREVfU0FGRV9SRUNJUEVfREVQUyArPSAiIFwKICAgeGZjZTQtc2Vzc2lvbi0+bWFjaGluZS1ob3N0IFwKICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy9tZW51bGlicmUvZmlsZXMvMDAwMS1hZGRfbGF1bmNoZXItRXhpdC1lYXJseS1pZi1uby1yb3ctaXMtc2VsZWN0ZWQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMvbWVudWxpYnJlL2ZpbGVzLzAwMDEtYWRkX2xhdW5jaGVyLUV4aXQtZWFybHktaWYtbm8tcm93LWlzLXNlbGVjdGVkLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjJkZmM5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy9tZW51bGlicmUvZmlsZXMvMDAwMS1hZGRfbGF1bmNoZXItRXhpdC1lYXJseS1pZi1uby1yb3ctaXMtc2VsZWN0ZWQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1Gcm9tIDEwNjBlN2FjOGE2M2I5M2Q1NjAwNjcxOGYwZTliMWQ5MzgyYjIyMjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBNb24sIDMxIE9jdCAyMDE2IDA4OjMzOjE2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGFkZF9sYXVuY2hlcjogRXhpdCBlYXJseSBpZiBubyByb3cgaXMgc2VsZWN0ZWQKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotU3RvbGVuIGZyb20gWzFdCi0KLVsxXSBodHRwOi8vcGtncy5mZWRvcmFwcm9qZWN0Lm9yZy9jZ2l0L3JwbXMvbWVudWxpYnJlLmdpdC90cmVlL21lbnVsaWJyZS1hZGQtbGF1bmNoZXItbm9uZS1jaGVjay5wYXRjaAotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgotLS0tCi0gbWVudWxpYnJlL01lbnVsaWJyZUFwcGxpY2F0aW9uLnB5IHwgNCArKysrCi0gMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvbWVudWxpYnJlL01lbnVsaWJyZUFwcGxpY2F0aW9uLnB5IGIvbWVudWxpYnJlL01lbnVsaWJyZUFwcGxpY2F0aW9uLnB5Ci1pbmRleCBlMjM0ODAwLi5hYzczYjAzIDEwMDY0NAotLS0tIGEvbWVudWxpYnJlL01lbnVsaWJyZUFwcGxpY2F0aW9uLnB5Ci0rKysgYi9tZW51bGlicmUvTWVudWxpYnJlQXBwbGljYXRpb24ucHkKLUBAIC0xNDE4LDYgKzE0MTgsMTAgQEAgY2xhc3MgTWVudWxpYnJlV2luZG93KEd0ay5BcHBsaWNhdGlvbldpbmRvdyk6Ci0gICAgICAgICBtb2RlbCwgcGFyZW50X2RhdGEgPSBzZWxmLnRyZWV2aWV3LmdldF9wYXJlbnRfcm93X2RhdGEoKQotICAgICAgICAgbW9kZWwsIHJvd19kYXRhID0gc2VsZi50cmVldmlldy5nZXRfc2VsZWN0ZWRfcm93X2RhdGEoKQotIAotKyAgICAgICAgIyBFeGl0IGVhcmx5IGlmIG5vIHJvdyBpcyBzZWxlY3RlZAotKyAgICAgICAgaWYgbm90IHJvd19kYXRhOgotKyAgICAgICAgICAgIHJldHVybgotKwotICAgICAgICAgIyBDdXJyZW50bHkgc2VsZWN0ZWQgaXRlbSBpcyBhIGRpcmVjdG9yeSwgdGFrZSBpdHMgY2F0ZWdvcmllcy4KLSAgICAgICAgIGlmIHJvd19kYXRhWzJdID09IE1lbnVJdGVtVHlwZXMuRElSRUNUT1JZOgotICAgICAgICAgICAgIHNlbGYudHJlZXZpZXcuYWRkX2NoaWxkKG5ld19yb3dfZGF0YSkKLS0tIAotMi41LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL21lbnVsaWJyZS9maWxlcy8wMDAyLXNldHVwLnB5LWF2b2lkLXVzci1zaGFyZS1zaGFyZS1wYXRocy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy9tZW51bGlicmUvZmlsZXMvMDAwMi1zZXR1cC5weS1hdm9pZC11c3Itc2hhcmUtc2hhcmUtcGF0aHMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2M2Q0ZGMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL21lbnVsaWJyZS9maWxlcy8wMDAyLXNldHVwLnB5LWF2b2lkLXVzci1zaGFyZS1zaGFyZS1wYXRocy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLUZyb20gOTk3ODhiNDU1NzU0M2M0OTA0OTNjZTFiODI3NTM4YzQ5MTQyYzI1ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IE1vbiwgMzEgT2N0IDIwMTYgMDk6MDg6NTEgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gc2V0dXAucHk6IGF2b2lkIC91c3Ivc2hhcmUvc2hhcmUgcGF0aHMKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQotCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+Ci0tLS0KLSBzZXR1cC5weSB8IDQgKystLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zZXR1cC5weSBiL3NldHVwLnB5Ci1pbmRleCA1ZmMyMzdkLi5jNGZiZjdjIDEwMDY0NAotLS0tIGEvc2V0dXAucHkKLSsrKyBiL3NldHVwLnB5Ci1AQCAtMTQzLDcgKzE0Myw3IEBAIGNsYXNzIEluc3RhbGxBbmRVcGRhdGVEYXRhRGlyZWN0b3J5KERpc3RVdGlsc0V4dHJhLmF1dG8uaW5zdGFsbF9hdXRvKToKLSAKLSAgICAgICAgIGlmIHNlbGYucm9vdDoKLSAgICAgICAgICAgICB0YXJnZXRfZGF0YSA9IG9zLnBhdGgucmVscGF0aChzZWxmLmluc3RhbGxfZGF0YSwgc2VsZi5yb290KSArIG9zLnNlcAotLSAgICAgICAgICAgIHRhcmdldF9wa2dkYXRhID0gb3MucGF0aC5qb2luKHRhcmdldF9kYXRhLCAnc2hhcmUnLCAnbWVudWxpYnJlJywgJycpCi0rICAgICAgICAgICAgdGFyZ2V0X3BrZ2RhdGEgPSBvcy5wYXRoLmpvaW4odGFyZ2V0X2RhdGEsICdtZW51bGlicmUnLCAnJykKLSAgICAgICAgICAgICB0YXJnZXRfc2NyaXB0cyA9IG9zLnBhdGguam9pbihzZWxmLmluc3RhbGxfc2NyaXB0cywgJycpCi0gCi0gICAgICAgICAgICAgZGF0YV9kaXIgPSBvcy5wYXRoLmpvaW4oc2VsZi5wcmVmaXgsICdzaGFyZScsICdtZW51bGlicmUnLCAnJykKLUBAIC0xNTIsNyArMTUyLDcgQEAgY2xhc3MgSW5zdGFsbEFuZFVwZGF0ZURhdGFEaXJlY3RvcnkoRGlzdFV0aWxzRXh0cmEuYXV0by5pbnN0YWxsX2F1dG8pOgotICAgICAgICAgICAgICMgLS11c2VyIGluc3RhbGwKLSAgICAgICAgICAgICBzZWxmLnJvb3QgPSAnJwotICAgICAgICAgICAgIHRhcmdldF9kYXRhID0gb3MucGF0aC5yZWxwYXRoKHNlbGYuaW5zdGFsbF9kYXRhKSArIG9zLnNlcAotLSAgICAgICAgICAgIHRhcmdldF9wa2dkYXRhID0gb3MucGF0aC5qb2luKHRhcmdldF9kYXRhLCAnc2hhcmUnLCAnbWVudWxpYnJlJywgJycpCi0rICAgICAgICAgICAgdGFyZ2V0X3BrZ2RhdGEgPSBvcy5wYXRoLmpvaW4odGFyZ2V0X2RhdGEsICdtZW51bGlicmUnLCAnJykKLSAgICAgICAgICAgICB0YXJnZXRfc2NyaXB0cyA9IG9zLnBhdGguam9pbihzZWxmLmluc3RhbGxfc2NyaXB0cywgJycpCi0gCi0gICAgICAgICAgICAgIyBVc2UgYWJzb2x1dGUgcGF0aHMKLS0tIAotMi41LjUKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL21lbnVsaWJyZS9maWxlcy8wMDAzLU1lbnVsaWJyZVhkZy5weS1maXgtbG9hZGluZy1vZi1kZXNrdG9wLWZpbGVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL21lbnVsaWJyZS9maWxlcy8wMDAzLU1lbnVsaWJyZVhkZy5weS1maXgtbG9hZGluZy1vZi1kZXNrdG9wLWZpbGVzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTkyMDg4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy9tZW51bGlicmUvZmlsZXMvMDAwMy1NZW51bGlicmVYZGcucHktZml4LWxvYWRpbmctb2YtZGVza3RvcC1maWxlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLUZyb20gOTAwOThkODM1YjYyYjM4YWMzOTZkNTViODBhNjg0NzcwZGJhYWNkZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9BbmRyZWFzPTIwTT1DMz1CQ2xsZXI/PSA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IE1vbiwgMzEgT2N0IDIwMTYgMTU6NTA6NTIgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gTWVudWxpYnJlWGRnLnB5OiBmaXggbG9hZGluZyBvZiBkZXNrdG9wIGZpbGVzCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLWZpeGVzOgotfCBVbmljb2RlRGVjb2RlRXJyb3I6ICdhc2NpaScgY29kZWMgY2FuJ3QgZGVjb2RlIGJ5ZXQgMHhkOSBpbiBwb3NpdGlvbiAyMzU6IG9yZGluYWwgbm90IGluIHJhbmdlKDEyOCkKLQotYW5kIGluZm9ybWF0aW9uIGRpc3BsYXkgbm90IHByb3Blcmx5IGZpbGxlZC4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KLS0tLQotIG1lbnVsaWJyZS9NZW51bGlicmVYZGcucHkgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9tZW51bGlicmUvTWVudWxpYnJlWGRnLnB5IGIvbWVudWxpYnJlL01lbnVsaWJyZVhkZy5weQotaW5kZXggZTA0YzVlNi4uMTRiMjU5MyAxMDA2NDQKLS0tLSBhL21lbnVsaWJyZS9NZW51bGlicmVYZGcucHkKLSsrKyBiL21lbnVsaWJyZS9NZW51bGlicmVYZGcucHkKLUBAIC03NCw3ICs3NCw3IEBAIGNsYXNzIE1lbnVsaWJyZURlc2t0b3BFbnRyeToKLSAKLSAgICAgZGVmIGxvYWRfcHJvcGVydGllcyhzZWxmLCBmaWxlbmFtZSk6Ci0gICAgICAgICAiIiJMb2FkIHRoZSBwcm9wZXJ0aWVzLiIiIgotLSAgICAgICAgaW5wdXRfZmlsZSA9IG9wZW4oZmlsZW5hbWUpCi0rICAgICAgICBpbnB1dF9maWxlID0gb3BlbihmaWxlbmFtZSwgJ3J0JywgZW5jb2Rpbmc9J3V0Zi04JykKLSAgICAgICAgIHNlbGYubG9hZF9wcm9wZXJ0aWVzX2Zyb21fdGV4dChpbnB1dF9maWxlLnJlYWQoKSkKLSAgICAgICAgIGlucHV0X2ZpbGUuY2xvc2UoKQotIAotLS0gCi0yLjUuNQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMvbWVudWxpYnJlL21lbnVsaWJyZV8yLjEuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy9tZW51bGlicmUvbWVudWxpYnJlXzIuMS4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OWU1MmZlLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy9tZW51bGlicmUvbWVudWxpYnJlXzIuMS4zLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiQW4gYWR2YW5jZWQgbWVudSBlZGl0b3IiCi1IT01FUEFHRSA9ICJodHRwczovL2xhdW5jaHBhZC5uZXQvbWVudWxpYnJlIgotU0VDVElPTiA9ICJ4MTEvZ3JhcGhpY3MiCi1MSUNFTlNFID0gIkdQTHYzIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQiCi0KLURFUEVORFMgPSAicHl0aG9uMy1kaXN0dXRpbHMtZXh0cmEtbmF0aXZlIGludGx0b29sLW5hdGl2ZSIKLQotaW5oZXJpdCBkaXN0dXRpbHMzIGd0ay1pY29uLWNhY2hlCi0KLVNSQ19VUkkgPSAiIFwKLSAgICBodHRwczovL2xhdW5jaHBhZC5uZXQvbWVudWxpYnJlLzIuMS8ke1BWfS8rZG93bmxvYWQvJHtQTn0tJHtQVn0udGFyLmd6IFwKLSAgICBmaWxlOi8vMDAwMS1hZGRfbGF1bmNoZXItRXhpdC1lYXJseS1pZi1uby1yb3ctaXMtc2VsZWN0ZWQucGF0Y2ggXAotICAgIGZpbGU6Ly8wMDAyLXNldHVwLnB5LWF2b2lkLXVzci1zaGFyZS1zaGFyZS1wYXRocy5wYXRjaCBcCi0gICAgZmlsZTovLzAwMDMtTWVudWxpYnJlWGRnLnB5LWZpeC1sb2FkaW5nLW9mLWRlc2t0b3AtZmlsZXMucGF0Y2ggXAotIgotU1JDX1VSSVttZDVzdW1dID0gIjE5ZDlkMzMzNzMyMmViNTUxMzQ1NGJiOGNkZmI3MzliIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImJkZDY5NzQwMTE5OTAyZjFiMWY4Yzc4MzExNTVmNDQyODQwMzc5MmEwYTZjNDI4N2JjYmIzOTVjNGU3MWZiMzEiCi0KLWRvX2luc3RhbGxfYXBwZW5kKCkgewotICAgIHNlZCAtaSAnczoke0R9OjpnJyAke0R9JHtkYXRhZGlyfS9hcHBsaWNhdGlvbnMvbWVudWxpYnJlLmRlc2t0b3AKLX0KLQotRklMRVNfJHtQTn0gKz0gIiBcCi0gICAgJHtkYXRhZGlyfS9hcHBsaWNhdGlvbnMgXAotICAgICR7ZGF0YWRpcn0vbWVudWxpYnJlIFwKLSAgICAke2RhdGFkaXJ9L2ljb25zIFwKLSIKLQotUkRFUEVORFNfJHtQTn0gKz0gIiBcCi0gICAgZ3RrKzMgXAotICAgIHB5dGhvbjMtcHlnb2JqZWN0IFwKLSAgICBnbm9tZS1tZW51czMgXAotICAgIHB5dGhvbjMtdW5peGFkbWluIFwKLSAgICBweXRob24zLXBzdXRpbCBcCi0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMvbWVudWxpYnJlL21lbnVsaWJyZV8yLjEuNS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy9tZW51bGlicmUvbWVudWxpYnJlXzIuMS41LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxZjM0NzEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMvbWVudWxpYnJlL21lbnVsaWJyZV8yLjEuNS5iYgpAQCAtMCwwICsxLDQxIEBACitERVNDUklQVElPTiA9ICJBbiBhZHZhbmNlZCBtZW51IGVkaXRvciIKK0hPTUVQQUdFID0gImh0dHBzOi8vbGF1bmNocGFkLm5ldC9tZW51bGlicmUiCitTRUNUSU9OID0gIngxMS9ncmFwaGljcyIKK0xJQ0VOU0UgPSAiR1BMdjMiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKKworREVQRU5EUyA9ICIgXAorICAgIHB5dGhvbjMtZGlzdHV0aWxzLWV4dHJhLW5hdGl2ZSBcCisgICAgaW50bHRvb2wtbmF0aXZlIFwKKyIKKworaW5oZXJpdCBkaXN0dXRpbHMzIGd0ay1pY29uLWNhY2hlIGRpc3Ryb19mZWF0dXJlc19jaGVjaworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitTUkNfVVJJID0gImh0dHBzOi8vbGF1bmNocGFkLm5ldC9tZW51bGlicmUvMi4xLyR7UFZ9Lytkb3dubG9hZC8ke1BOfS0ke1BWfS50YXIuZ3oiCitTUkNfVVJJW21kNXN1bV0gPSAiZWZjN2VkYjQ5YmIwZTVmZWE0OWUxNThiNDA1NzMzMzQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZWYwNWIyNzIyYmFiMmFjYjcwNzBkNmM4ZWQwZTdiZDU4YmQ0YTQ1NDBiZjQ5OGFmOWU4ODk5NDRmOWRhMDhiNSIKKworZG9fY29tcGlsZSgpIHsKK30KKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgc2VkIC1pICdzOiR7RH06OmcnICR7RH0ke2RhdGFkaXJ9L2FwcGxpY2F0aW9ucy9tZW51bGlicmUuZGVza3RvcAorICAgIHNlZCAtaSAnczpzaGFyZS9zaGFyZTpzaGFyZTpnJyAke0R9JHtQWVRIT05fU0lURVBBQ0tBR0VTX0RJUn0vbWVudWxpYnJlX2xpYi9tZW51bGlicmVjb25maWcucHkKK30KKworRklMRVNfJHtQTn0gKz0gIiBcCisgICAgJHtkYXRhZGlyfS9hcHBsaWNhdGlvbnMgXAorICAgICR7ZGF0YWRpcn0vbWVudWxpYnJlIFwKKyAgICAke2RhdGFkaXJ9L2ljb25zIFwKKyIKKworUkRFUEVORFNfJHtQTn0gKz0gIiBcCisgICAgZ3RrKzMgXAorICAgIGd0a3NvdXJjZXZpZXczIFwKKyAgICBweXRob24zLXB5Z29iamVjdCBcCisgICAgZ25vbWUtbWVudXMzIFwKKyAgICBweXRob24zLXVuaXhhZG1pbiBcCisgICAgcHl0aG9uMy1wc3V0aWwgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hhcmNoaXZlci94YXJjaGl2ZXJfZ2l0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hhcmNoaXZlci94YXJjaGl2ZXJfZ2l0LmJiCmluZGV4IGUyNzVhZjAuLmEyN2M4ZjUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94YXJjaGl2ZXIveGFyY2hpdmVyX2dpdC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGFyY2hpdmVyL3hhcmNoaXZlcl9naXQuYmIKQEAgLTEyLDcgKzEyLDkgQEAKIFBWID0gIjAuNS4zIgogUyA9ICIke1dPUktESVJ9L2dpdCIKIAotaW5oZXJpdCB4ZmNlLWdpdCBnZXR0ZXh0IHBrZ2NvbmZpZyBhdXRvdG9vbHMgZ3RrLWljb24tY2FjaGUKK2luaGVyaXQgeGZjZS1naXQgZ2V0dGV4dCBwa2djb25maWcgYXV0b3Rvb2xzIGd0ay1pY29uLWNhY2hlIGRpc3Ryb19mZWF0dXJlc19jaGVjaworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgogCiAjIGluc3RhbGwgdGFwIGZpbGVzIGZvciB0aHVuYXItYXJjaGl2ZS1wbHVnaW4gaW4gJHtsaWJkaXJ9L3RodW5hci1hcmNoaXZlLXBsdWdpbgogRVhUUkFfT0VDT05GICs9ICItLWxpYmV4ZWNkaXI9JHtsaWJkaXJ9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hmY2UtcG9sa2l0L2ZpbGVzLzAwMDEtZml4LU5hbWUtQ29tbWVudC1maWVsZHMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGZjZS1wb2xraXQvZmlsZXMvMDAwMS1maXgtTmFtZS1Db21tZW50LWZpZWxkcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODcyMjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hmY2UtcG9sa2l0L2ZpbGVzLzAwMDEtZml4LU5hbWUtQ29tbWVudC1maWVsZHMucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAorRnJvbSBmYjFmODNjMDRkZDUyNjI4OTdiMDllNjBmYThiMzkwOTBkMGQ0NjE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUmV4IERpZXRlciA8cmRpZXRlckBtYXRoLnVubC5lZHU+CitEYXRlOiBUaHUsIDEyIE5vdiAyMDE1IDEzOjUzOjAzIC0wNjAwCitTdWJqZWN0OiBbUEFUQ0hdIGZpeCBOYW1lL0NvbW1lbnQgZmllbGRzCisKK1ZhbGlkYXRlIGFzIGEgdmFsaWQgLmRlc2t0b3AgZmlsZSBwZXIKK2h0dHA6Ly9zdGFuZGFyZHMuZnJlZWRlc2t0b3Aub3JnL2Rlc2t0b3AtZW50cnktc3BlYy9sYXRlc3QvCisKK1NlZSBhbHNvIGlzc3VlICMyCisKK1Vwc3RyZWFtLVN0YXR1czogQXBwbGllZCBbMV0KKworWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9uY29wYS94ZmNlLXBvbGtpdC9jb21taXQvZmIxZjgzYzA0ZGQ1MjYyODk3YjA5ZTYwZmE4YjM5MDkwZDBkNDYxOQorLS0tCisgeGZjZS1wb2xraXQuZGVza3RvcC5pbiB8IDQgKystLQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS94ZmNlLXBvbGtpdC5kZXNrdG9wLmluIGIveGZjZS1wb2xraXQuZGVza3RvcC5pbgoraW5kZXggODU3NTg5Ni4uZGQ5ZjA5YyAxMDA2NDQKKy0tLSBhL3hmY2UtcG9sa2l0LmRlc2t0b3AuaW4KKysrKyBiL3hmY2UtcG9sa2l0LmRlc2t0b3AuaW4KK0BAIC0xLDcgKzEsNyBAQAorIFtEZXNrdG9wIEVudHJ5XQorIFR5cGU9QXBwbGljYXRpb24KKy1fTmFtZT1YRkNFIFBvbEtpdAorLV9Db21tZW50PVBvbGljeWtpdCBBdXRoZW50aWNhdGlvbiBBZ2VudAorK05hbWU9WEZDRSBQb2xLaXQKKytDb21tZW50PVBvbGljeWtpdCBBdXRoZW50aWNhdGlvbiBBZ2VudAorIEV4ZWM9QHhmY2VfcG9sa2l0X2xpYmV4ZWNkaXJAL3hmY2UtcG9sa2l0CisgSWNvbj1ndGstZGlhbG9nLWF1dGhlbnRpY2F0aW9uCisgTm90U2hvd0luPUdOT01FO0tERTsKKy0tIAorMi4xNC4zCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94ZmNlLXBvbGtpdC94ZmNlLXBvbGtpdF8wLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGZjZS1wb2xraXQveGZjZS1wb2xraXRfMC4yLmJiCmluZGV4IDFmYjRhNWIuLjU0YmY3YzcgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94ZmNlLXBvbGtpdC94ZmNlLXBvbGtpdF8wLjIuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hmY2UtcG9sa2l0L3hmY2UtcG9sa2l0XzAuMi5iYgpAQCAtNiw2ICs2LDkgQEAKIAogaW5oZXJpdCB4ZmNlLWFwcAogCi1TUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbmNvcGEvJHtCUE59LmdpdCIKK1NSQ19VUkkgPSAiIFwKKyAgICBnaXQ6Ly9naXRodWIuY29tL25jb3BhLyR7QlBOfS5naXQgXAorICAgIGZpbGU6Ly8wMDAxLWZpeC1OYW1lLUNvbW1lbnQtZmllbGRzLnBhdGNoIFwKKyIKIFNSQ1JFViA9ICI2YWQxZWU4MzNjOWUyMmU0ZGQ3MmE4ZjdkNTQ1NjJkMDQ2OTY1MjgzIgogUyA9ICIke1dPUktESVJ9L2dpdCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94ZmNlNC1ub3RpZnlkL3hmY2U0LW5vdGlmeWRfMC4zLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGZjZTQtbm90aWZ5ZC94ZmNlNC1ub3RpZnlkXzAuMy42LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzIzNjBhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94ZmNlNC1ub3RpZnlkL3hmY2U0LW5vdGlmeWRfMC4zLjYuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1TVU1NQVJZID0gIkVhc2lseSB0aGVtYWJsZSBub3RpZmljYXRpb24gZGFlbW9uIHdpdGggdHJhbnNwYXJlbmN5IGVmZmVjdHMiCi1IT01FUEFHRSA9ICJodHRwOi8vZ29vZGllcy54ZmNlLm9yZy9wcm9qZWN0cy9hcHBsaWNhdGlvbnMveGZjZTQtbm90aWZ5ZCIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiIKLURFUEVORFMgPSAibGlieGZjZTR1dGlsIGxpYnhmY2U0dWkgeGZjb25mIGd0aysgZGJ1cyBkYnVzLWdsaWIgbGlibm90aWZ5IFwKLSAgICBkYnVzLWdsaWItbmF0aXZlIFwKLSIKLQotaW5oZXJpdCB4ZmNlLWFwcAotCi1TUkNfVVJJW21kNXN1bV0gPSAiMTllNjAyZmE1ZTMzYWZhZjc1NjNmMDY5MjYxYWUxZGIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZjRjYTdjMGRhZGQzZDRjZGY4Y2QzYzhhZTYwY2NlYTc3YjhjZjQwOWY4NTE3MTYxNzk2MzY0ZWIxZDc2NmNmOSIKLQotZG9fY29tcGlsZV9wcmVwZW5kKCkgewotICAgIG1rZGlyIC1wIHhmY2U0LW5vdGlmeWQKLX0KLQotRklMRVNfJHtQTn0gKz0gIiBcCi0gICAgJHtzeXN0ZW1kX3VzZXJfdW5pdGRpcn0gXAotICAgICR7bGliZGlyfS94ZmNlNC9ub3RpZnlkIFwKLSAgICAke2RhdGFkaXJ9L3RoZW1lcyBcCi0gICAgJHtkYXRhZGlyfS9kYnVzLTEgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hmY2U0LW5vdGlmeWQveGZjZTQtbm90aWZ5ZF8wLjQuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94ZmNlNC1ub3RpZnlkL3hmY2U0LW5vdGlmeWRfMC40LjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTVlYzUxYgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYXBwcy94ZmNlNC1ub3RpZnlkL3hmY2U0LW5vdGlmeWRfMC40LjIuYmIKQEAgLTAsMCArMSwzNSBAQAorU1VNTUFSWSA9ICJFYXNpbHkgdGhlbWFibGUgbm90aWZpY2F0aW9uIGRhZW1vbiB3aXRoIHRyYW5zcGFyZW5jeSBlZmZlY3RzIgorSE9NRVBBR0UgPSAiaHR0cDovL2dvb2RpZXMueGZjZS5vcmcvcHJvamVjdHMvYXBwbGljYXRpb25zL3hmY2U0LW5vdGlmeWQiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYiCitERVBFTkRTID0gIiBcCisgICAgZGJ1cyBcCisgICAgZGJ1cy1nbGliIFwKKyAgICBkYnVzLWdsaWItbmF0aXZlIFwKKyAgICBsaWJub3RpZnkgXAorICAgIGxpYnhmY2U0dXRpbCBcCisgICAgbGlieGZjZTR1aSBcCisgICAgeGZjb25mIFwKKyAgICB4ZmNlNC1wYW5lbCBcCisiCisKK2luaGVyaXQgeGZjZS1hcHAKKworU1JDX1VSSVttZDVzdW1dID0gImVjYjkzMGVmNmFlNmUxZjMxMGE1YWZlNWY2MzhlZmY4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImY2ZjI4YWY0N2ZkZmI0MWRiODRiZDAwM2YwZDc2ZjVmNGFiZjIxMzdkMWUyN2U5ZDM3OGYwNjNiYjhmODIzNTYiCisKKyMgQXZvaWQgdHJvdWJsZSB3aXRoIG90aGVyIGRlc2t0b3BzIGUuZyBLREUgd2hpY2ggYWxzbyBzaGlwcyBkYnVzIHNlcnZpY2UgbmFtZWQKKyMgb3JnLmZyZWVkZXNrdG9wLk5vdGlmaWNhdGlvbnMKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtZGJ1cy1zdGFydC1kYWVtb24iCisKK2RvX2NvbXBpbGVfcHJlcGVuZCgpIHsKKyAgICBta2RpciAtcCB4ZmNlNC1ub3RpZnlkIHhmY2U0LW5vdGlmeWQtY29uZmlnCit9CisKK0ZJTEVTXyR7UE59ICs9ICIgXAorICAgICR7c3lzdGVtZF91c2VyX3VuaXRkaXJ9IFwKKyAgICAke2RhdGFkaXJ9L3hmY2U0IFwKKyAgICAke2RhdGFkaXJ9L3RoZW1lcyBcCisgICAgJHtkYXRhZGlyfS9kYnVzLTEgXAorICAgICR7bGliZGlyfS94ZmNlNCBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGZjZTQtdGVybWluYWwveGZjZTQtdGVybWluYWxfMC44LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGZjZTQtdGVybWluYWwveGZjZTQtdGVybWluYWxfMC44LjYuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY0MmVkYjYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hmY2U0LXRlcm1pbmFsL3hmY2U0LXRlcm1pbmFsXzAuOC42LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotU1VNTUFSWSA9ICJUZXJtaW5hbCBlbXVsYXRvciBmb3IgdGhlIFhmY2UgZGVza3RvcCBlbnZpcm9ubWVudCIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKLURFUEVORFMgPSAiZ2xpYi0yLjAgZ3RrKzMgdnRlIGxpYnhmY2U0dWkiCi0KLWluaGVyaXQgeGZjZS1hcHAKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0veGZjZTQgXAotICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vZ25vbWUtY29udHJvbC1jZW50ZXIiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI5MmY1YTMzNjZlMzBmNWY4MjM4ZDgyNTBmNzMwYjZhZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJiYzJhNTYwNDA5YTBmMGI2NjZkMWM1NTdlOTkxNzQ4Yjk4NmVjMjc1NzJhNDVhZTg4YjBlZTVhNDgwZDg4MWQ3IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hmY2U0LXRlcm1pbmFsL3hmY2U0LXRlcm1pbmFsXzAuOC43LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWFwcHMveGZjZTQtdGVybWluYWwveGZjZTQtdGVybWluYWxfMC44LjcuMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjMwYWJjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1hcHBzL3hmY2U0LXRlcm1pbmFsL3hmY2U0LXRlcm1pbmFsXzAuOC43LjMuYmIKQEAgLTAsMCArMSwxMiBAQAorU1VNTUFSWSA9ICJUZXJtaW5hbCBlbXVsYXRvciBmb3IgdGhlIFhmY2UgZGVza3RvcCBlbnZpcm9ubWVudCIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKK0RFUEVORFMgPSAiZ2xpYi0yLjAgZ3RrKzMgdnRlIGxpYnhmY2U0dWkiCisKK2luaGVyaXQgeGZjZS1hcHAKKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0veGZjZTQgXAorICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vZ25vbWUtY29udHJvbC1jZW50ZXIiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJmMDE0ZDYxMzQzODg0OGI0NTJmMWY5ZWVjYmY3MDI3ZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJkYWZhMTU1MTc3OTM0ZmM3ZGNlMmQ0ZWZiMzM0MDJmNzRiMWE1OTNhMTdmZjE3ZDIxODdhNjQyOWY1OTlkZmQ2IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1iaW5kaW5ncy92YWxhL3hmY2U0LXZhbGFfNC4xMC4zLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1iaW5kaW5ncy92YWxhL3hmY2U0LXZhbGFfNC4xMC4zLmJiCmluZGV4IGQwYTA1OTguLjI4ZjljZGUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtYmluZGluZ3MvdmFsYS94ZmNlNC12YWxhXzQuMTAuMy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWJpbmRpbmdzL3ZhbGEveGZjZTQtdmFsYV80LjEwLjMuYmIKQEAgLTMsMTMgKzMsMTUgQEAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTI0M2I3MjVkNzFiYjVkZjRhMWU1OTIwYjM0NGI4NmFkIgogREVQRU5EUyA9ICJsaWJ4ZmNlNHV0aWwgZ2FyY29uIHhmY29uZiBsaWJ4ZmNlNHVpIHhmY2U0LXBhbmVsIGV4byB2YWxhIHhmY2U0LWRldi10b29scy1uYXRpdmUiCiAKLWluaGVyaXQgeGZjZQoraW5oZXJpdCB4ZmNlIHBrZ2NvbmZpZyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAogU1JDX1VSSSA9ICJodHRwOi8vYXJjaGl2ZS54ZmNlLm9yZy9zcmMvYmluZGluZ3MvJHtCUE59LyR7QHhmY2VfdmVyZGlyKCIke1BWfSIpfS8ke0JQTn0tJHtQVn0udGFyLmJ6MiIKIFNSQ19VUklbbWQ1c3VtXSA9ICIwYmJiMWQ2ZTQ3M2UwZmU5YjMzNWI3YjFiNDlkOGE3MSIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICIwN2E4ZjJiN2MwOWZjZGQzZDg2ZTBjNTJhZGVhM2M1OGNhMDExZDAxNDJhOTM5OTdhMDFiNGFmNzcyNjBhZTdiIgogCi1FWFRSQV9PRUNPTkYgPSAiLXdpdGgtdmFsYS1hcGk9MC4zNiIKK0VYVFJBX09FQ09ORiA9ICItd2l0aC12YWxhLWFwaT0wLjM4IgogCiBGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS92YWxhLSovdmFwaSIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9pbXNldHRpbmdzL2ltc2V0dGluZ3MvMDAwMS1SZW5hbWUtdXNlLW9mLXN0ZG91dC1hbmQtc3RkZXJyLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9pbXNldHRpbmdzL2ltc2V0dGluZ3MvMDAwMS1SZW5hbWUtdXNlLW9mLXN0ZG91dC1hbmQtc3RkZXJyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzdjZTRkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvaW1zZXR0aW5ncy9pbXNldHRpbmdzLzAwMDEtUmVuYW1lLXVzZS1vZi1zdGRvdXQtYW5kLXN0ZGVyci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLUZyb20gN2VlNjJlZjAwODM4NDRhYjJmZmZjZDEwNmUzZWUyZTVmMjliMmE5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDEyIEp1bCAyMDE3IDE4OjUzOjU2IC0wNzAwCi1TdWJqZWN0OiBbUEFUQ0hdIFJlbmFtZSB1c2Ugb2Ygc3Rkb3V0IGFuZCBzdGRlcnIKLQotU2luY2UgaXQgc2hhZG93IHRoZSBzdGFuZGFyZCBkZWZpbml0aW9ucyBlc3BlY2lhbGx5Ci1zZWVuIG9uIG11c2wgd2hlcmUgbGliYyBkZWZpbmVzIHRoZXNlIGFzIG1hY3JvcyB0aGV5Ci1jYXVzZSBhbGwgc2hvcnQgb2YgY29tcGlsYXRpb24gZXJyb3JzIG9uIG11c2wsIHVzaW5nCi1hIGxlYWRpbmcgdW5kZXJzY29yZSBtYWtlcyBpdCB1bmlxdWUKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIGltc2V0dGluZ3MtZGFlbW9uL2ltc2V0dGluZ3MtcHJvYy5jIHwgMjggKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2ltc2V0dGluZ3MtZGFlbW9uL2ltc2V0dGluZ3MtcHJvYy5jIGIvaW1zZXR0aW5ncy1kYWVtb24vaW1zZXR0aW5ncy1wcm9jLmMKLWluZGV4IDkxNWU3OGIuLmI3OGZjZmYgMTAwNjQ0Ci0tLS0gYS9pbXNldHRpbmdzLWRhZW1vbi9pbXNldHRpbmdzLXByb2MuYwotKysrIGIvaW1zZXR0aW5ncy1kYWVtb24vaW1zZXR0aW5ncy1wcm9jLmMKLUBAIC0zOSw4ICszOSw4IEBACi0gI2RlZmluZSBNQVhSRVNUQVJUIDMKLSAKLSB0eXBlZGVmIHN0cnVjdCBfSU1TZXR0aW5nc1Byb2NJbmZvIHsKLS0JR0lPQ2hhbm5lbCAgICAgKnN0ZG91dDsKLS0JR0lPQ2hhbm5lbCAgICAgKnN0ZGVycjsKLSsJR0lPQ2hhbm5lbCAgICAgKl9zdGRvdXQ7Ci0rCUdJT0NoYW5uZWwgICAgICpfc3RkZXJyOwotIAlHUGlkICAgICAgICAgICAgcGlkOwotIAlHVGltZVZhbCAgICAgICAgc3RhcnRlZF90aW1lOwotIAlndWludCAgICAgICAgICAgaWQ7Ci1AQCAtMzY4LDEyICszNjgsMTIgQEAgX3N0YXJ0X3Byb2Nlc3MoSU1TZXR0aW5nc1Byb2MgICAgICpwcm9jLAotIAkJCQkJICAgICAmb2ZkLCAmZWZkLAotIAkJCQkJICAgICBlcnJvcikpIHsKLSAJCQlwaW5mby0+cGlkID0gcGlkOwotLQkJCXBpbmZvLT5zdGRvdXQgPSBnX2lvX2NoYW5uZWxfdW5peF9uZXcob2ZkKTsKLS0JCQlwaW5mby0+c3RkZXJyID0gZ19pb19jaGFubmVsX3VuaXhfbmV3KGVmZCk7Ci0tCQkJZ19pb19jaGFubmVsX3NldF9jbG9zZV9vbl91bnJlZihwaW5mby0+c3Rkb3V0LCBUUlVFKTsKLS0JCQlnX2lvX2NoYW5uZWxfc2V0X2Nsb3NlX29uX3VucmVmKHBpbmZvLT5zdGRlcnIsIFRSVUUpOwotLQkJCXBpbmZvLT5vaWQgPSBnX2lvX2FkZF93YXRjaChwaW5mby0+c3Rkb3V0LCBHX0lPX0lOLCBfbG9nX3dyaXRlX2NiLCBwcm9jKTsKLS0JCQlwaW5mby0+ZWlkID0gZ19pb19hZGRfd2F0Y2gocGluZm8tPnN0ZGVyciwgR19JT19JTiwgX2xvZ193cml0ZV9jYiwgcHJvYyk7Ci0rCQkJcGluZm8tPl9zdGRvdXQgPSBnX2lvX2NoYW5uZWxfdW5peF9uZXcob2ZkKTsKLSsJCQlwaW5mby0+X3N0ZGVyciA9IGdfaW9fY2hhbm5lbF91bml4X25ldyhlZmQpOwotKwkJCWdfaW9fY2hhbm5lbF9zZXRfY2xvc2Vfb25fdW5yZWYocGluZm8tPl9zdGRvdXQsIFRSVUUpOwotKwkJCWdfaW9fY2hhbm5lbF9zZXRfY2xvc2Vfb25fdW5yZWYocGluZm8tPl9zdGRlcnIsIFRSVUUpOwotKwkJCXBpbmZvLT5vaWQgPSBnX2lvX2FkZF93YXRjaChwaW5mby0+X3N0ZG91dCwgR19JT19JTiwgX2xvZ193cml0ZV9jYiwgcHJvYyk7Ci0rCQkJcGluZm8tPmVpZCA9IGdfaW9fYWRkX3dhdGNoKHBpbmZvLT5fc3RkZXJyLCBHX0lPX0lOLCBfbG9nX3dyaXRlX2NiLCBwcm9jKTsKLSAJCQlnX2dldF9jdXJyZW50X3RpbWUoJnBpbmZvLT5zdGFydGVkX3RpbWUpOwotIAkJCXBpbmZvLT5pZCA9IGdfY2hpbGRfd2F0Y2hfYWRkKHBpZCwgX3dhdGNoX2ltX3N0YXR1c19jYiwgcHJvYyk7Ci0gCi1AQCAtNTIxLDEzICs1MjEsMTMgQEAgaW1zZXR0aW5nc19wcm9jX2dldF9wcm9wZXJ0eShHT2JqZWN0ICAgICpvYmplY3QsCi0gc3RhdGljIHZvaWQKLSBpbXNldHRpbmdzX3Byb2NfaW5mb19maW5hbGl6ZShJTVNldHRpbmdzUHJvY0luZm8gKnBpbmZvKQotIHsKLS0JaWYgKHBpbmZvLT5zdGRvdXQpIHsKLS0JCWdfaW9fY2hhbm5lbF91bnJlZihwaW5mby0+c3Rkb3V0KTsKLS0JCXBpbmZvLT5zdGRvdXQgPSBOVUxMOwotKwlpZiAocGluZm8tPl9zdGRvdXQpIHsKLSsJCWdfaW9fY2hhbm5lbF91bnJlZihwaW5mby0+X3N0ZG91dCk7Ci0rCQlwaW5mby0+X3N0ZG91dCA9IE5VTEw7Ci0gCX0KLS0JaWYgKHBpbmZvLT5zdGRlcnIpIHsKLS0JCWdfaW9fY2hhbm5lbF91bnJlZihwaW5mby0+c3RkZXJyKTsKLS0JCXBpbmZvLT5zdGRlcnIgPSBOVUxMOwotKwlpZiAocGluZm8tPl9zdGRlcnIpIHsKLSsJCWdfaW9fY2hhbm5lbF91bnJlZihwaW5mby0+X3N0ZGVycik7Ci0rCQlwaW5mby0+X3N0ZGVyciA9IE5VTEw7Ci0gCX0KLSAJaWYgKHBpbmZvLT5vaWQgPiAwKSB7Ci0gCQlnX3NvdXJjZV9yZW1vdmUocGluZm8tPm9pZCk7Ci0tLSAKLTIuMTMuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2ltc2V0dGluZ3MvaW1zZXR0aW5ncy9ndGstaXMtcmVxdWlyZWQtYnktbm90aWZ5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9pbXNldHRpbmdzL2ltc2V0dGluZ3MvZ3RrLWlzLXJlcXVpcmVkLWJ5LW5vdGlmeS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQyMzU4ZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2ltc2V0dGluZ3MvaW1zZXR0aW5ncy9ndGstaXMtcmVxdWlyZWQtYnktbm90aWZ5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotZ3RrKyBpcyByZXF1aXJlZCBieSBsaW5ub3RpZnkuIFNvIG1ha2Ugc3VyZSBndGsgYmUgbGlua2VkIGJlZm9yZSBsaWJub3RpZnkKLQotU2lnbmVkLW9mZi1ieTogQmlhbiBOYWltZW5nIDxiaWFubm1AY24uZnVqaXRzdS5jb20+Ci0KLWRpZmYgLU51cnAgaW1zZXR0aW5ncy0xLjYuNy5vcmlnL2NvbmZpZ3VyZS5hYyBpbXNldHRpbmdzLTEuNi43L2NvbmZpZ3VyZS5hYwotLS0tIGltc2V0dGluZ3MtMS42Ljcub3JpZy9jb25maWd1cmUuYWMJMjAxMy0xMS0yNiAxNjowOTowOS4wMDAwMDAwMDAgKzA4MDAKLSsrKyBpbXNldHRpbmdzLTEuNi43L2NvbmZpZ3VyZS5hYwkyMDE0LTEyLTMwIDExOjI3OjQ0LjM3MDAwMzIwOSArMDgwMAotQEAgLTkzLDggKzkzLDggQEAgUEtHX0NIRUNLX01PRFVMRVMoTElCTk9USUZZLCBsaWJub3RpZnksCi0gCQloYXNfb2xkX2xpYm5vdGlmeT15ZXMKLSAJCVBLR19DSEVDS19NT0RVTEVTKEdUSywgZ3RrKy0yLjAgPj0gJEdUS19SRVFVSVJFRCkKLSAJCUFDX0RFRklORShIQVNfT0xEX0xJQk5PVElGWSwsIFtVc2luZyBvbGRlciBsaWJub3RpZnldKQotLQkJSU1EQUVNT05fQ0ZMQUdTPSIkR1RLX0NGTEFHUyAkTElCTk9USUZZX09MRF9DRkxBR1MiCi0tCQlJTURBRU1PTl9MSUJTPSIkR1RLX0xJQlMgJExJQk5PVElGWV9PTERfTElCUyJdLFsKLSsJCUlNREFFTU9OX0NGTEFHUz0iJExJQk5PVElGWV9PTERfQ0ZMQUdTICRHVEtfQ0ZMQUdTIgotKwkJSU1EQUVNT05fTElCUz0iJExJQk5PVElGWV9PTERfTElCUyAkR1RLX0xJQlMiXSxbCi0gCQloYXNfb2xkX2xpYm5vdGlmeT1ubwotIAkJSU1EQUVNT05fQ0ZMQUdTPSIkTElCTk9USUZZX0NGTEFHUyIKLSAJCUlNREFFTU9OX0xJQlM9IiRMSUJOT1RJRllfTElCUyJdKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9pbXNldHRpbmdzL2ltc2V0dGluZ3MvbXVsdGktbGluZS1BQ0xPQ0FMX0FNRkxBR1MtaXNub3Qtc3VwcG9ydGVkLWJ5LWF1dG9yZWNvbmYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2ltc2V0dGluZ3MvaW1zZXR0aW5ncy9tdWx0aS1saW5lLUFDTE9DQUxfQU1GTEFHUy1pc25vdC1zdXBwb3J0ZWQtYnktYXV0b3JlY29uZi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDVhYzg3ZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2ltc2V0dGluZ3MvaW1zZXR0aW5ncy9tdWx0aS1saW5lLUFDTE9DQUxfQU1GTEFHUy1pc25vdC1zdXBwb3J0ZWQtYnktYXV0b3JlY29uZi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLW11bHRpLWxpbmUgQUNMT0NBTF9BTUZMQUdTIGlzbid0IHN1cHBvcnRlZCBieSBhdXRvcmVjb25mLgotSXQgd2lsbCBjYXVzZSBjb25maWd1cmUgZXJyb3IgYXMgZm9sbG93LgotCi0gIGFjbG9jYWw6IGVycm9yOiBub24tb3B0aW9uIGFyZ3VtZW50cyBhcmUgbm90IGFjY2VwdGVkOiAnXCcuCi0KLVNpZ25lZC1vZmYtYnk6IEJpYW4gTmFpbWVuZyA8Ymlhbm5tQGNuLmZ1aml0c3UuY29tPgotCi1kaWZmIC1OdXJwIGltc2V0dGluZ3MtMS43LjEub3JpZy9NYWtlZmlsZS5hbSBpbXNldHRpbmdzLTEuNy4xL01ha2VmaWxlLmFtCi0tLS0gaW1zZXR0aW5ncy0xLjcuMS5vcmlnL01ha2VmaWxlLmFtCTIwMTMtMDItMDggMTE6MzM6NTkuMDAwMDAwMDAwICswOTAwCi0rKysgaW1zZXR0aW5ncy0xLjcuMS9NYWtlZmlsZS5hbQkyMDE1LTA2LTI0IDE0OjE1OjMyLjA3MDAwMDAwNyArMDkwMAotQEAgLTEsNyArMSw3IEBACi0gTlVMTCA9Ci0gU1VCRElSUyA9IGRhdGEgaW1zZXR0aW5ncyBpbXNldHRpbmdzLWRhZW1vbiBiYWNrZW5kcyB1dGlscyBwbyB0ZXN0cyBkb2NzCi0gCi0tQUNMT0NBTF9BTUZMQUdTID0gLUltNG1hY3JvcwotK0FDTE9DQUxfQU1GTEFHUyA9IC1JIG00bWFjcm9zICQoTlVMTCkKLSAKLSBDT05GSUdVUkVfREVQRU5ERU5DSUVTID0JCVwKLSAJcmVxdWlyZXMJCQlcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2ltc2V0dGluZ3MvaW1zZXR0aW5nc18xLjcuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvaW1zZXR0aW5ncy9pbXNldHRpbmdzXzEuNy4yLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YTRjZTA1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvaW1zZXR0aW5ncy9pbXNldHRpbmdzXzEuNy4yLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotU1VNTUFSWSA9ICJEZWxpdmVyeSBmcmFtZXdvcmsgZm9yIGdlbmVyYWwgSW5wdXQgTWV0aG9kIGNvbmZpZ3VyYXRpb24iCi1ERVNDUklQVElPTiA9ICJJTVNldHRpbmdzIGlzIGEgZnJhbWV3b3JrIHRoYXQgZGVsaXZlcnMgSW5wdXQgTWV0aG9kIFwKLXNldHRpbmdzIGFuZCBhcHBsaWVzIHRoZSBjaGFuZ2VzIHNvIHRoZXkgdGFrZSBlZmZlY3QgXAotaW1tZWRpYXRlbHkgd2l0aG91dCBhbnkgbmVlZCB0byByZXN0YXJ0IGFwcGxpY2F0aW9ucyBcCi1vciB0aGUgZGVza3RvcC4gXAotVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBjb3JlIERCdXMgc2VydmljZXMgYW5kIHNvbWUgdXRpbGl0aWVzLiIKLUhPTUVQQUdFID0gImh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9pbXNldHRpbmdzLyIKLVNFQ1RJT04gPSAiQXBwbGljYXRpb25zL1N5c3RlbSIKLQotaW5oZXJpdCBhdXRvdG9vbHMgZ3RrLWRvYyBnb2JqZWN0LWludHJvc3BlY3Rpb24KLQotU1JDX1VSSSA9ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvdGFnb2gvaW1zZXR0aW5ncy9kb3dubG9hZHMvJHtCUE59LSR7UFZ9LnRhci5iejIgXAotICAgICAgICAgICBmaWxlOi8vZ3RrLWlzLXJlcXVpcmVkLWJ5LW5vdGlmeS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9tdWx0aS1saW5lLUFDTE9DQUxfQU1GTEFHUy1pc25vdC1zdXBwb3J0ZWQtYnktYXV0b3JlY29uZi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLVJlbmFtZS11c2Utb2Ytc3Rkb3V0LWFuZC1zdGRlcnIucGF0Y2ggXAotICAgICAgICAgICAiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICI4MTUzYjA1ODNhOWY0N2Q4YTYyYWYxZjkyZmI5ZDNiZiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI0MWFkZGYwNDU4Zjc2MDIxMmI2YjYxMDA4MzUwNjZlMTZkZWIzYThhNTBlYjAwNWEwZmMxN2ZiYWMwYTJhZTY2IgotCi1MSUNFTlNFID0gIkxHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0yZDUwMjVkNGFhMzQ5NWJlZmVmOGYxNzIwNmE1YjBhMSIKLQotRVhUUkFfT0VDT05GID0gIi0td2l0aC14aW5wdXRzaD01MC14aW5wdXQuc2ggXAotICAgICAgICAgICAgICAgIC0tZGlzYWJsZS1zdGF0aWMgXAotICAgICAgICAgICAgICAgIgotCi1ERVBFTkRTID0gImd0aysgZ2NvbmYgbGlibm90aWZ5IGRidXMtZ2xpYiBsaWJneGltIHhmY29uZiBpbnRsdG9vbC1uYXRpdmUiCi0KLVJERVBFTkRTXyR7UE59ICs9ICJiYXNoIgotCi1GSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9kYnVzLTEvKiAke2RhdGFkaXJ9L2dpci0xLjAvKiAke2xpYmRpcn0vZ2lyZXBvc2l0b3J5LTEuMC8qIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9pbXNldHRpbmdzL2ltc2V0dGluZ3NfMS43LjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2ltc2V0dGluZ3MvaW1zZXR0aW5nc18xLjcuMy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjYyMmJmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9pbXNldHRpbmdzL2ltc2V0dGluZ3NfMS43LjMuYmIKQEAgLTAsMCArMSwzMSBAQAorU1VNTUFSWSA9ICJEZWxpdmVyeSBmcmFtZXdvcmsgZm9yIGdlbmVyYWwgSW5wdXQgTWV0aG9kIGNvbmZpZ3VyYXRpb24iCitERVNDUklQVElPTiA9ICJJTVNldHRpbmdzIGlzIGEgZnJhbWV3b3JrIHRoYXQgZGVsaXZlcnMgSW5wdXQgTWV0aG9kIFwKK3NldHRpbmdzIGFuZCBhcHBsaWVzIHRoZSBjaGFuZ2VzIHNvIHRoZXkgdGFrZSBlZmZlY3QgXAoraW1tZWRpYXRlbHkgd2l0aG91dCBhbnkgbmVlZCB0byByZXN0YXJ0IGFwcGxpY2F0aW9ucyBcCitvciB0aGUgZGVza3RvcC4gXAorVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBjb3JlIERCdXMgc2VydmljZXMgYW5kIHNvbWUgdXRpbGl0aWVzLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9pbXNldHRpbmdzLyIKK1NFQ1RJT04gPSAiQXBwbGljYXRpb25zL1N5c3RlbSIKKworaW5oZXJpdCBhdXRvdG9vbHMgZ3RrLWRvYyBnb2JqZWN0LWludHJvc3BlY3Rpb24gZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK1NSQ19VUkkgPSAiaHR0cHM6Ly9iaXRidWNrZXQub3JnL3RhZ29oL2ltc2V0dGluZ3MvZG93bmxvYWRzLyR7QlBOfS0ke1BWfS50YXIuYnoyIFwKKyAgICAgICAgICAgIgorCitTUkNfVVJJW21kNXN1bV0gPSAiYzZjNjVhMmIyNjU0ZmU5ZGZlOWFiMmU4YjgwYzA3OWEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTk2ZDNhNzRjZWYyNTRmZjgxMmMzMjY4MmQxODE4ZDc0MGUzNmE2OGI5NzZmZWY5ZTk5NzQ4ZDIzYTcxYTcxYSIKKworTElDRU5TRSA9ICJMR1BMdjIrIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MmQ1MDI1ZDRhYTM0OTViZWZlZjhmMTcyMDZhNWIwYTEiCisKK0VYVFJBX09FQ09ORiA9ICItLXdpdGgteGlucHV0c2g9NTAteGlucHV0LnNoIFwKKyAgICAgICAgICAgICAgICAtLWRpc2FibGUtc3RhdGljIFwKKyAgICAgICAgICAgICAgICIKKworREVQRU5EUyA9ICJndGsrIGdjb25mIGxpYm5vdGlmeSBkYnVzLWdsaWIgbGliZ3hpbSB4ZmNvbmYgaW50bHRvb2wtbmF0aXZlIgorCitSREVQRU5EU18ke1BOfSArPSAiYmFzaCIKKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vZGJ1cy0xLyogJHtkYXRhZGlyfS9naXItMS4wLyogJHtsaWJkaXJ9L2dpcmVwb3NpdG9yeS0xLjAvKiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYnVuaXF1ZS9saWJ1bmlxdWUvMDAwMS1NYWtlZmlsZS5hbS11c2UtTElCVE9PTC1pbnN0ZWFkLW9mLWhhcmRjb2RlZC1saWJ0b29sLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9saWJ1bmlxdWUvbGlidW5pcXVlLzAwMDEtTWFrZWZpbGUuYW0tdXNlLUxJQlRPT0wtaW5zdGVhZC1vZi1oYXJkY29kZWQtbGlidG9vbC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGlidW5pcXVlL2xpYnVuaXF1ZS8wMDAxLU1ha2VmaWxlLmFtLXVzZS1MSUJUT09MLWluc3RlYWQtb2YtaGFyZGNvZGVkLWxpYnRvb2wucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvbGlidW5pcXVlL2xpYnVuaXF1ZS8wMDAxLU1ha2VmaWxlLmFtLXVzZS1MSUJUT09MLWluc3RlYWQtb2YtaGFyZGNvZGVkLWxpYnRvb2wucGF0Y2gKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYnVuaXF1ZS9saWJ1bmlxdWUvMDAwMS10ZXN0LXVuaXF1ZS1BZGQtZm9ybWF0LXF1YWxpZmllci1zLWZvci1zdHJpbmcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnVuaXF1ZS9saWJ1bmlxdWUvMDAwMS10ZXN0LXVuaXF1ZS1BZGQtZm9ybWF0LXF1YWxpZmllci1zLWZvci1zdHJpbmcucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYnVuaXF1ZS9saWJ1bmlxdWUvMDAwMS10ZXN0LXVuaXF1ZS1BZGQtZm9ybWF0LXF1YWxpZmllci1zLWZvci1zdHJpbmcucGF0Y2gKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvbGlidW5pcXVlL2xpYnVuaXF1ZS8wMDAxLXRlc3QtdW5pcXVlLUFkZC1mb3JtYXQtcXVhbGlmaWVyLXMtZm9yLXN0cmluZy5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGlidW5pcXVlL2xpYnVuaXF1ZS9idWlsZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvbGlidW5pcXVlL2xpYnVuaXF1ZS9idWlsZC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGlidW5pcXVlL2xpYnVuaXF1ZS9idWlsZC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9saWJ1bmlxdWUvbGlidW5pcXVlL2J1aWxkLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJ1bmlxdWUvbGlidW5pcXVlL2ZpeF9mb3JfY29tcGlsZV93aXRoX2djYy00LjYuMC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtZXh0ZW5kZWQvbGlidW5pcXVlL2xpYnVuaXF1ZS9maXhfZm9yX2NvbXBpbGVfd2l0aF9nY2MtNC42LjAucGF0Y2gKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS1vZS9yZWNpcGVzLWdub21lL2xpYnVuaXF1ZS9saWJ1bmlxdWUvZml4X2Zvcl9jb21waWxlX3dpdGhfZ2NjLTQuNi4wLnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnVuaXF1ZS9saWJ1bmlxdWUvZml4X2Zvcl9jb21waWxlX3dpdGhfZ2NjLTQuNi4wLnBhdGNoCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtb2UvcmVjaXBlcy1nbm9tZS9saWJ1bmlxdWUvbGlidW5pcXVlL25vY29uc3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnVuaXF1ZS9saWJ1bmlxdWUvbm9jb25zdC5wYXRjaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLW9lL3JlY2lwZXMtZ25vbWUvbGlidW5pcXVlL2xpYnVuaXF1ZS9ub2NvbnN0LnBhdGNoCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnVuaXF1ZS9saWJ1bmlxdWUvbm9jb25zdC5wYXRjaApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9saWJ1bmlxdWUvbGlidW5pcXVlXzEuMS42LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1leHRlbmRlZC9saWJ1bmlxdWUvbGlidW5pcXVlXzEuMS42LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5ZWQwN2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLWV4dGVuZGVkL2xpYnVuaXF1ZS9saWJ1bmlxdWVfMS4xLjYuYmIKQEAgLTAsMCArMSwzMCBAQAorU1VNTUFSWSA9ICJMaWJyYXJ5IGZvciBzdXBwb3J0aW5nIHNpbmdsZSBpbnN0YW5jZSBHVEsrIGFwcGxpY2F0aW9ucyIKK0RFU0NSSVBUSU9OID0gIlVuaXF1ZSBpcyBhIGxpYnJhcnkgZm9yIHdyaXRpbmcgc2luZ2xlIGluc3RhbmNlIEdUSysgYXBwbGljYXRpb25zLiBJZiB5b3UgbGF1bmNoIGEgc2luZ2xlIGluc3RhbmNlIGFwcGxpY2F0aW9uIHR3aWNlLCB0aGUgc2Vjb25kIGluc3RhbmNlIHdpbGwgZWl0aGVyIGp1c3QgcXVpdCBvciB3aWxsIHNlbmQgYSBtZXNzYWdlIHRvIHRoZSBydW5uaW5nIGluc3RhbmNlLiIKK0hPTUVQQUdFID0gImh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXR0aWMvTGliVW5pcXVlIgorQlVHVFJBQ0tFUiA9ICJodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9lbnRlcl9idWcuY2dpP3Byb2R1Y3Q9bGlidW5pcXVlIgorCitTUkNfVVJJID0gIiR7R05PTUVfTUlSUk9SfS9saWJ1bmlxdWUvMS4xL2xpYnVuaXF1ZS0ke1BWfS50YXIuYnoyIFwKKyAgICAgICAgICAgZmlsZTovL2ZpeF9mb3JfY29tcGlsZV93aXRoX2djYy00LjYuMC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9ub2NvbnN0LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2J1aWxkLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtTWFrZWZpbGUuYW0tdXNlLUxJQlRPT0wtaW5zdGVhZC1vZi1oYXJkY29kZWQtbGlidG9vbC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLXRlc3QtdW5pcXVlLUFkZC1mb3JtYXQtcXVhbGlmaWVyLXMtZm9yLXN0cmluZy5wYXRjaCBcCisgICAgICAgICAgICIKKworU1JDX1VSSVttZDVzdW1dID0gIjc5NTU3NjllZjMxZjFiYzRmODM0NDZkYmIzNjI1ZTZkIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImU1YzgwNDFjZWY4ZTMzYzU1NzMyZjA2YTI5MjM4MWNiMzQ1ZGI5NDZjZjc5MmE0YWUxOGFhNWM2NmNkZDRmYmIiCisKK1BSID0gInI3IgorCitERVBFTkRTID0gImRidXMtZ2xpYi1uYXRpdmUgZ2xpYi0yLjAgZ3RrKyIKKworUEFDS0FHRUNPTkZJRyA/Pz0gImRidXMiCitQQUNLQUdFQ09ORklHW2RidXNdID0gIi0tZW5hYmxlLWRidXMsLS1kaXNhYmxlLWRidXMsZGJ1cyBkYnVzLWdsaWIiCisKK0xJQ0VOU0UgPSAiTEdQTHYyLjEiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0yZDUwMjVkNGFhMzQ5NWJlZmVmOGYxNzIwNmE1YjBhMSIKKworCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGRpc3Ryb19mZWF0dXJlc19jaGVjayBndGstZG9jCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLW11bHRpbWVkaWEvcGFyb2xlL3Bhcm9sZV8wLjguMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtbXVsdGltZWRpYS9wYXJvbGUvcGFyb2xlXzAuOC4xLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjQ2MTFhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtbXVsdGltZWRpYS9wYXJvbGUvcGFyb2xlXzAuOC4xLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotREVTQ1JJUFRJT04gPSAiUGFyb2xlIGlzIGEgbW9kZXJuIHNpbXBsZSBtZWRpYSBwbGF5ZXIgYmFzZWQgb24gdGhlIEdTdHJlYW1lciBmcmFtZXdvcmsiCi1IT01FUEFHRSA9ICJodHRwOi8vZ29vZGllcy54ZmNlLm9yZy9wcm9qZWN0cy9hcHBsaWNhdGlvbnMvcGFyb2xlIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgotCi1pbmhlcml0IHhmY2UtYXBwIGd0ay1kb2MgbWltZQotCi1ERVBFTkRTICs9ICIgXAotICAgIGdsaWItMi4wIFwKLSAgICBkYnVzLWdsaWIgXAotICAgIGd0ayszIFwKLSAgICBcCi0gICAgeGZjZTQtZGV2LXRvb2xzLW5hdGl2ZSBcCi0gICAgbGlieGZjZTR1dGlsIFwKLSAgICBsaWJ4ZmNlNHVpIFwKLSAgICB4ZmNvbmYgXAotICAgIFwKLSAgICBnc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlIFwKLSAgICB0YWdsaWIgXAotIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMzYxZTMwNTlmMTI2M2M3NmEzNzExZGIyYzdjMWE5N2IiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGIyMTZmNTIwMDQ5MGY4ZDJhOWJmMWIzZmNkOWE4YjIwODM0Yzk1MjQ5YmYxM2I5MTcwYzgyZTFmY2JkODBmNCIKLQotUkRFUEVORFNfJHtQTn0gKz0gImdzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2QiCi0KLUVYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtZ3RrLWRvYyIKLQotUEFDS0FHRUNPTkZJRyA/Pz0gIm5vdGlmeSIKLVBBQ0tBR0VDT05GSUdbY2x1dHRlcl0gPSAiLS1lbmFibGUtY2x1dHRlciwgLS1kaXNhYmxlLWNsdXR0ZXIsIGNsdXR0ZXIiCi1QQUNLQUdFQ09ORklHW25vdGlmeV0gPSAiLS1lbmFibGUtbm90aWZ5LXBsdWdpbiwgLS1kaXNhYmxlLW5vdGlmeS1wbHVnaW4sIGxpYm5vdGlmeSIKLQotRklMRVNfJHtQTn0gKz0gIiBcCi0gICAgJHtkYXRhZGlyfS9hcHBkYXRhIFwKLSAgICAke2xpYmRpcn0vcGFyb2xlLTAvKi5zbyBcCi0iCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9wYXJvbGUtMC8uZGVidWciCi1GSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9wYXJvbGUtMC8qLmxhIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Bhcm9sZS9wYXJvbGVfMS4wLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLW11bHRpbWVkaWEvcGFyb2xlL3Bhcm9sZV8xLjAuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzlmMWE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1tdWx0aW1lZGlhL3Bhcm9sZS9wYXJvbGVfMS4wLjAuYmIKQEAgLTAsMCArMSwzOCBAQAorREVTQ1JJUFRJT04gPSAiUGFyb2xlIGlzIGEgbW9kZXJuIHNpbXBsZSBtZWRpYSBwbGF5ZXIgYmFzZWQgb24gdGhlIEdTdHJlYW1lciBmcmFtZXdvcmsiCitIT01FUEFHRSA9ICJodHRwOi8vZ29vZGllcy54ZmNlLm9yZy9wcm9qZWN0cy9hcHBsaWNhdGlvbnMvcGFyb2xlIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgorCitpbmhlcml0IHhmY2UtYXBwIGd0ay1kb2MgbWltZQorCitERVBFTkRTICs9ICIgXAorICAgIGdsaWItMi4wIFwKKyAgICBkYnVzLWdsaWIgXAorICAgIGd0ayszIFwKKyAgICBcCisgICAgeGZjZTQtZGV2LXRvb2xzLW5hdGl2ZSBcCisgICAgbGlieGZjZTR1dGlsIFwKKyAgICBsaWJ4ZmNlNHVpIFwKKyAgICB4ZmNvbmYgXAorICAgIFwKKyAgICBnc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlIFwKKyAgICB0YWdsaWIgXAorIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZDAwZDNjYTU3MTkwMDgyNmJmNWUxZjY5ODZlNDI5OTIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjY2NmIzMzVhZWI2OTBmYjUyN2Y3N2I2MmMzMjJiYWYzNDgzNGI1OTM2NTlmZGNkMjFkMjFlZDNmMWUxNDAxMCIKKworUkRFUEVORFNfJHtQTn0gKz0gImdzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2QiCisKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtZ3RrLWRvYyIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIm5vdGlmeSIKK1BBQ0tBR0VDT05GSUdbY2x1dHRlcl0gPSAiLS1lbmFibGUtY2x1dHRlciwgLS1kaXNhYmxlLWNsdXR0ZXIsIGNsdXR0ZXIiCitQQUNLQUdFQ09ORklHW25vdGlmeV0gPSAiLS1lbmFibGUtbm90aWZ5LXBsdWdpbiwgLS1kaXNhYmxlLW5vdGlmeS1wbHVnaW4sIGxpYm5vdGlmeSIKKworRklMRVNfJHtQTn0gKz0gIiBcCisgICAgJHtkYXRhZGlyfS9hcHBkYXRhIFwKKyAgICAke2xpYmRpcn0vcGFyb2xlLTAvKi5zbyBcCisiCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9wYXJvbGUtMC8uZGVidWciCitGSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9wYXJvbGUtMC8qLmxhIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3B1bHNlYXVkaW8veGZjZTQtcHVsc2VhdWRpby1wbHVnaW5fMC4yLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvcHVsc2VhdWRpby94ZmNlNC1wdWxzZWF1ZGlvLXBsdWdpbl8wLjIuNC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGM3Y2E3MC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvcHVsc2VhdWRpby94ZmNlNC1wdWxzZWF1ZGlvLXBsdWdpbl8wLjIuNC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVNVTU1BUlkgPSAiUHVsc2VhdWRpbyBtaXhlciBmb3IgdGhlIHhmY2UgcGFuZWwiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZjVlYWM2YmIwZDZlYzBkYzY1NWU0MTc3ODFkNDAxNWYiCi0KLWluaGVyaXQgeGZjZS1wYW5lbC1wbHVnaW4gZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCi0KLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJwdWxzZWF1ZGlvIHgxMSIKLQotREVQRU5EUyArPSAicHVsc2VhdWRpbyIKLQotU1JDX1VSSVttZDVzdW1dID0gImUwZmZkZTQxOWZhMDMwZjFmOWJkMGI1NmUzMjY0YTFjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjhkOTMzMGRkZjFkNDRhODY0YTM2ZDU2NmNjZTRiNzZkNGY4NTljNTk4NGJiYTc2NTNkN2RjMzlhYTI0ZDVjM2UiCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIiCi1QQUNLQUdFQ09ORklHW2xpYm5vdGlmeV0gPSAiLS1lbmFibGUtbGlibm90aWZ5LC0tZGlzYWJsZS1saWJub3RpZnksbGlibm90aWZ5IgotCi1SUkVDT01NRU5EU18ke1BOfSA9ICJwYXZ1Y29udHJvbCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy9wdWxzZWF1ZGlvL3hmY2U0LXB1bHNlYXVkaW8tcGx1Z2luXzAuNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3B1bHNlYXVkaW8veGZjZTQtcHVsc2VhdWRpby1wbHVnaW5fMC40LjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU0MTdhMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy9wdWxzZWF1ZGlvL3hmY2U0LXB1bHNlYXVkaW8tcGx1Z2luXzAuNC4wLmJiCkBAIC0wLDAgKzEsMTcgQEAKK1NVTU1BUlkgPSAiUHVsc2VhdWRpbyBtaXhlciBmb3IgdGhlIHhmY2UgcGFuZWwiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZjVlYWM2YmIwZDZlYzBkYzY1NWU0MTc3ODFkNDAxNWYiCisKK2luaGVyaXQgeGZjZS1wYW5lbC1wbHVnaW4gZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJwdWxzZWF1ZGlvIHgxMSIKKworREVQRU5EUyArPSAicHVsc2VhdWRpbyIKKworU1JDX1VSSVttZDVzdW1dID0gIjEyZjNkZDk3ZTAyYzYwNGUyMDIzYjViYWYzMGQ0YTZjIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImFlZjlhZDY4YTBiNjA0YTZhZWNhNGMwODE0NmYzZWI0MmJlZGI0ZmUxYzhiNjViODI2NzljZWMwZTJmYzFjYjMiCisKK1BBQ0tBR0VDT05GSUcgPz89ICIiCitQQUNLQUdFQ09ORklHW2xpYm5vdGlmeV0gPSAiLS1lbmFibGUtbGlibm90aWZ5LC0tZGlzYWJsZS1saWJub3RpZnksbGlibm90aWZ5IgorCitSUkVDT01NRU5EU18ke1BOfSA9ICJwYXZ1Y29udHJvbCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy90aW1lci94ZmNlNC10aW1lci1wbHVnaW4vMDAwMS1TcGVjaWZ5LXN0cmluZy1mb3JtYXQtZXhwbGljaXRseS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy90aW1lci94ZmNlNC10aW1lci1wbHVnaW4vMDAwMS1TcGVjaWZ5LXN0cmluZy1mb3JtYXQtZXhwbGljaXRseS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YwYmIwNS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvdGltZXIveGZjZTQtdGltZXItcGx1Z2luLzAwMDEtU3BlY2lmeS1zdHJpbmctZm9ybWF0LWV4cGxpY2l0bHkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1Gcm9tIDZiNzg2ZTFjMTYxMDI2YWI1NDg2YWMyMTg4OTFhODVkYjY1YmYzYmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogV2VkLCAyMiBNYXIgMjAxNyAxNToyODoyNCAtMDcwMAotU3ViamVjdDogW1BBVENIXSBTcGVjaWZ5IHN0cmluZyBmb3JtYXQgZXhwbGljaXRseQotCi1Bdm9pZHMgYmVsb3cgZXJyb3JzIHdoZW4gY29tcGlsaW5nIHdpdGggLVdmb3JtYXQtc2VjdXJpdHkKLQotZXJyb3I6IGZvcm1hdCBzdHJpbmcgaXMgbm90IGEgc3RyaW5nIGxpdGVyYWwgKHBvdGVudGlhbGx5IGluc2VjdXJlKQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotIHNyYy94ZmNldGltZXIuYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3NyYy94ZmNldGltZXIuYyBiL3NyYy94ZmNldGltZXIuYwotaW5kZXggNjAxNzcyZi4uNGI4OTY4MiAxMDA2NDQKLS0tLSBhL3NyYy94ZmNldGltZXIuYwotKysrIGIvc3JjL3hmY2V0aW1lci5jCi1AQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyBnYm9vbGVhbiB1cGRhdGVfZnVuY3Rpb24gKGdwb2ludGVyIGRhdGEpewotIAotICAgICBkaWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3IChOVUxMLCBHVEtfRElBTE9HX01PREFMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19NRVNTQUdFX1dBUk5JTkcsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX0JVVFRPTlNfTk9ORSwgZGlhbG9nX21lc3NhZ2UpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19CVVRUT05TX05PTkUsICIlcyIsIGRpYWxvZ19tZXNzYWdlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgZ3RrX3dpbmRvd19zZXRfdGl0bGUgKChHdGtXaW5kb3cgKikgZGlhbG9nLCBkaWFsb2dfdGl0bGUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAKLS0tIAotMi4xMi4wCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy90aW1lci94ZmNlNC10aW1lci1wbHVnaW5fMS42LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvdGltZXIveGZjZTQtdGltZXItcGx1Z2luXzEuNi4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjE1MTkyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy90aW1lci94ZmNlNC10aW1lci1wbHVnaW5fMS42LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1TVU1NQVJZID0gIlhGQ0UgcGFuZWwgcGx1Z2luIHRvIGdlbmVyYXRlIGFsYXJtIG1lc3NhZ2VzIgotREVTQ1JJUFRJT04gPSAiVGhpcyBpcyBhIHNpbXBsZSBwbHVnaW4gdGhhdCBsZXRzIHRoZSB1c2VyIHJ1biBhbiBhbGFybSBhdCBhIHNwZWNpZmllZCB0aW1lIG9yIGF0IHRoZSBlbmQgb2YgYSBzcGVjaWZpZWQgY291bnRkb3duIHBlcmlvZCIKLUhPTUVQQUdFID0gImh0dHA6Ly9nb29kaWVzLnhmY2Uub3JnL3Byb2plY3RzL3BhbmVsLXBsdWdpbnMveGZjZTQtdGltZXItcGx1Z2luIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWFlMzkyNzEyNjdmZDYzZWI3NjE5NDMyZmYyNGU3ZmYxIgotCi1pbmhlcml0IHhmY2UtcGFuZWwtcGx1Z2luCi0KLVNSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLVNwZWNpZnktc3RyaW5nLWZvcm1hdC1leHBsaWNpdGx5LnBhdGNoIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiM2JlMmE0Y2NmYjJhZjIwNDQxYjFkMjVjMmNlYTVmMjgiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzlkN2QyMWYwOTliYzQyMTlmNmE2MTU2MTQyZjBiYmI4Mzc0OTg2ZWUxOTcwYTljMGM4ZGMxMzhiODdmODY3YyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy90aW1lci94ZmNlNC10aW1lci1wbHVnaW5fMS43LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvdGltZXIveGZjZTQtdGltZXItcGx1Z2luXzEuNy4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkZGM2ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvdGltZXIveGZjZTQtdGltZXItcGx1Z2luXzEuNy4wLmJiCkBAIC0wLDAgKzEsMTAgQEAKK1NVTU1BUlkgPSAiWEZDRSBwYW5lbCBwbHVnaW4gdG8gZ2VuZXJhdGUgYWxhcm0gbWVzc2FnZXMiCitERVNDUklQVElPTiA9ICJUaGlzIGlzIGEgc2ltcGxlIHBsdWdpbiB0aGF0IGxldHMgdGhlIHVzZXIgcnVuIGFuIGFsYXJtIGF0IGEgc3BlY2lmaWVkIHRpbWUgb3IgYXQgdGhlIGVuZCBvZiBhIHNwZWNpZmllZCBjb3VudGRvd24gcGVyaW9kIgorSE9NRVBBR0UgPSAiaHR0cDovL2dvb2RpZXMueGZjZS5vcmcvcHJvamVjdHMvcGFuZWwtcGx1Z2lucy94ZmNlNC10aW1lci1wbHVnaW4iCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YWUzOTI3MTI2N2ZkNjNlYjc2MTk0MzJmZjI0ZTdmZjEiCisKK2luaGVyaXQgeGZjZS1wYW5lbC1wbHVnaW4KKworU1JDX1VSSVttZDVzdW1dID0gIjMyZTZhMTRlODBiZjlhOTNkYjJmMmIzYmZkN2RlOTIwIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjJlNGU1MzQzZTM5OTI2MjMwY2M5ODFkNWZlNTZjZDU4YTJmMzgxN2QyZTliNjA4OWI1NjczYTJlMzliZjdlOWIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvd2VhdGhlci94ZmNlNC13ZWF0aGVyLXBsdWdpbl8wLjguMTAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvd2VhdGhlci94ZmNlNC13ZWF0aGVyLXBsdWdpbl8wLjguMTAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ5ZWFhYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy93ZWF0aGVyL3hmY2U0LXdlYXRoZXItcGx1Z2luXzAuOC4xMC5iYgpAQCAtMCwwICsxLDEzIEBACitTVU1NQVJZID0gIlBhbmVsIHBsdWdpbiB0byBkaXNwbGF5IGN1cnJlbnQgdGVtcGVyYXR1cmUgYW5kIHdlYXRoZXIgY29uZGl0aW9uIgorSE9NRVBBR0UgPSAiaHR0cDovL2dvb2RpZXMueGZjZS5vcmcvcHJvamVjdHMvcGFuZWwtcGx1Z2lucy94ZmNlNC13ZWF0aGVyLXBsdWdpbiIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKKworaW5oZXJpdCB4ZmNlLXBhbmVsLXBsdWdpbgorCitERVBFTkRTICs9ICJsaWJzb3VwLTIuNCBkYnVzLWdsaWIgdXBvd2VyIgorCitTUkNfVVJJW21kNXN1bV0gPSAiYmJhN2Y3NTBiOTdjOGZjMzY1NjcxNTI2OGVkYWQ3OTIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZWU2ZDQzYzQ0NDkwNDYzMWMyNDA0NzBlMTVlOTYyMTVjMmNlNDUxMTU4YmZkYmYyMzRiY2U4OTJiZjYwZWFiOCIKKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0veGZjZTQvd2VhdGhlciIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy93ZWF0aGVyL3hmY2U0LXdlYXRoZXItcGx1Z2luXzAuOC45LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3dlYXRoZXIveGZjZTQtd2VhdGhlci1wbHVnaW5fMC44LjkuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5ZWQyY2UuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3dlYXRoZXIveGZjZTQtd2VhdGhlci1wbHVnaW5fMC44LjkuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1TVU1NQVJZID0gIlBhbmVsIHBsdWdpbiB0byBkaXNwbGF5IGN1cnJlbnQgdGVtcGVyYXR1cmUgYW5kIHdlYXRoZXIgY29uZGl0aW9uIgotSE9NRVBBR0UgPSAiaHR0cDovL2dvb2RpZXMueGZjZS5vcmcvcHJvamVjdHMvcGFuZWwtcGx1Z2lucy94ZmNlNC13ZWF0aGVyLXBsdWdpbiIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKLQotaW5oZXJpdCB4ZmNlLXBhbmVsLXBsdWdpbgotCi1ERVBFTkRTICs9ICJsaWJzb3VwLTIuNCBkYnVzLWdsaWIgdXBvd2VyIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMGM1NmMwNTdlMWMzNTRiMzA0MDliNzg3MWFiNmYzMTQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMGUxNWQxNGIzZTE4YzNkYTQ2YWQyM2VlMzE1OGEyNTIyMGYxNDc0YTQ4YjYxMWRlOTZlZGI1NjIyMWFlY2VlNSIKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0veGZjZTQvd2VhdGhlciIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy93aGlza2VybWVudS94ZmNlNC13aGlza2VybWVudS1wbHVnaW5fMi4xLjMuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMvd2hpc2tlcm1lbnUveGZjZTQtd2hpc2tlcm1lbnUtcGx1Z2luXzIuMS4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzY3YTJmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy93aGlza2VybWVudS94ZmNlNC13aGlza2VybWVudS1wbHVnaW5fMi4xLjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1TVU1NQVJZID0gIkFuIGFsdGVybmF0ZSBtZW51IGZvciB0aGUgWGZjZSBkZXNrdG9wIGVudmlyb25tZW50IgotSE9NRVBBR0UgPSAiaHR0cDovL2dvdHRjb2RlLm9yZy94ZmNlNC13aGlza2VybWVudS1wbHVnaW4vIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgotCi1pbmhlcml0IHhmY2UtcGFuZWwtcGx1Z2luIGNtYWtlCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIwMzJhMmJiMGEwZDRhMmUzYzhjMTM2OTEwYzhiNTUxZCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJlODkxOGMxMjU1ZjdhYjg2Yjk1MGViZDEzNTU1ZmU4NzA0NmMwMWExYTRjYjBiNWQ0NjAwMjRiNmVmYzAxNzY5IgotCi1SUkVDT01NRU5EU18ke1BOfSArPSAibWVudWxpYnJlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1wYW5lbC1wbHVnaW5zL3doaXNrZXJtZW51L3hmY2U0LXdoaXNrZXJtZW51LXBsdWdpbl8yLjEuNi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy93aGlza2VybWVudS94ZmNlNC13aGlza2VybWVudS1wbHVnaW5fMi4xLjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYyY2ZmMAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy93aGlza2VybWVudS94ZmNlNC13aGlza2VybWVudS1wbHVnaW5fMi4xLjYuYmIKQEAgLTAsMCArMSwxMSBAQAorU1VNTUFSWSA9ICJBbiBhbHRlcm5hdGUgbWVudSBmb3IgdGhlIFhmY2UgZGVza3RvcCBlbnZpcm9ubWVudCIKK0hPTUVQQUdFID0gImh0dHA6Ly9nb3R0Y29kZS5vcmcveGZjZTQtd2hpc2tlcm1lbnUtcGx1Z2luLyIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKKworaW5oZXJpdCB4ZmNlLXBhbmVsLXBsdWdpbiBjbWFrZQorCitTUkNfVVJJW21kNXN1bV0gPSAiYjJiMmJhY2M4ZDVmM2MzMTE5YTBmMzE3YjYwNzQyNzYiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOGIyYThlZTE0NDVkZjM5YTJjZGExMzllMzUzZjJlOWVjMzcyMGE3ODAyOTZkYzQxYjdkNGFlYmRlNTczNzFmYyIKKworUlJFQ09NTUVORFNfJHtQTn0gKz0gIm1lbnVsaWJyZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy94a2IveGZjZTQteGtiLXBsdWdpbl8wLjguMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy94a2IveGZjZTQteGtiLXBsdWdpbl8wLjguMC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWU2MmMwMy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMveGtiL3hmY2U0LXhrYi1wbHVnaW5fMC44LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1TVU1NQVJZID0gIlhLQiBsYXlvdXQgc3dpdGNoaW5nIHBhbmVsIHBsdWctaW4gZm9yIHRoZSBYZmNlIGRlc2t0b3AgZW52aXJvbm1lbnQiCi1IT01FUEFHRSA9ICJodHRwOi8vZ29vZGllcy54ZmNlLm9yZy9wcm9qZWN0cy9wYW5lbC1wbHVnaW5zL3hmY2U0LXhrYi1wbHVnaW4iCi1TRUNUSU9OID0gIngxMS9hcHBsaWNhdGlvbiIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT00OTZmMDlmMDg0YjBmN2U2ZjAyZjc2OWE4NDQ5MGM2YiIKLQotaW5oZXJpdCB4ZmNlLXBhbmVsLXBsdWdpbgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZTRlODk3NzQxZWJlMjgyNzE5Mjk3MWMyYWFhZDgzNWQiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiM2IwZDNiOWY0YjdjM2UzZTdiZTY2OGUyZjdjODQ1Yjg5YjE2ZTBlZDNkYjJiYWNiNTQ0YTE3MjcyNjgyY2VkMCIKLQotREVQRU5EUyArPSAibGlieGtsYXZpZXIgbGlid25jazMgbGlicnN2ZyBnYXJjb24iCi0KLUZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L3hmY2U0L3hrYiIKLQotUkRFUEVORFNfJHtQTn0gPSAieGZjZTQtc2V0dGluZ3MiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMveGtiL3hmY2U0LXhrYi1wbHVnaW5fMC44LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXBhbmVsLXBsdWdpbnMveGtiL3hmY2U0LXhrYi1wbHVnaW5fMC44LjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGVlMzc0MAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtcGFuZWwtcGx1Z2lucy94a2IveGZjZTQteGtiLXBsdWdpbl8wLjguMS5iYgpAQCAtMCwwICsxLDE2IEBACitTVU1NQVJZID0gIlhLQiBsYXlvdXQgc3dpdGNoaW5nIHBhbmVsIHBsdWctaW4gZm9yIHRoZSBYZmNlIGRlc2t0b3AgZW52aXJvbm1lbnQiCitIT01FUEFHRSA9ICJodHRwOi8vZ29vZGllcy54ZmNlLm9yZy9wcm9qZWN0cy9wYW5lbC1wbHVnaW5zL3hmY2U0LXhrYi1wbHVnaW4iCitTRUNUSU9OID0gIngxMS9hcHBsaWNhdGlvbiIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT00OTZmMDlmMDg0YjBmN2U2ZjAyZjc2OWE4NDQ5MGM2YiIKKworaW5oZXJpdCB4ZmNlLXBhbmVsLXBsdWdpbgorCitTUkNfVVJJW21kNXN1bV0gPSAiNzI1MzBiZjU5ZDdjZDkwMjMyNjQ2OWU1YTdhOTg5MmIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzE5ZWNmMTI2MjAxZGViNjE0ODc0MWM1MjExMjQ3NzFhZDM5NmFkYzg3NDQ3MTUxMmFiNWZmZTE5NDY1NjdhMSIKKworREVQRU5EUyArPSAibGlieGtsYXZpZXIgbGlid25jazMgbGlicnN2ZyBnYXJjb24iCisKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L3hmY2U0L3hrYiIKKworUkRFUEVORFNfJHtQTn0gPSAieGZjZTQtc2V0dGluZ3MiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXN1cHBvcnQvdmltL3ZpbV8lLmJiYXBwZW5kIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy1zdXBwb3J0L3ZpbS92aW1fJS5iYmFwcGVuZAppbmRleCAyNTQwM2U2Li43YjQ0OTYzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXN1cHBvcnQvdmltL3ZpbV8lLmJiYXBwZW5kCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtc3VwcG9ydC92aW0vdmltXyUuYmJhcHBlbmQKQEAgLTEsNiArMSBAQAotZG9faW5zdGFsbF9hcHBlbmQoKSB7Ci0JIyBUaGUgbW91c2UgYmVpbmcgYXV0b2VuYWJsZWQgaXMganVzdCBhbm5veWluZyBpbiB4ZmNlNC10ZXJtaW5hbCAobW91c2UKLQkjIGRyYWcgbWFrZSB2aW0gZ28gaW50byB2aXN1YWwgbW9kZSBhbmQgdGhlcmUgaXMgbm8gcmlnaHQgY2xpY2sgbWVudSksCi0JIyBkZWxldGUgdGhlIGJsb2NrLgotCXNlZCAtaSAnL3RoZSBtb3VzZSB3b3JrcyBqdXN0IGZpbmUvLCs0ZCcgJHtEfS8ke2RhdGFkaXJ9LyR7QlBOfS92aW1yYwotfQorcmVxdWlyZSAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3gxMScsICcke0JQTn1feGZjZS5pbmMnLCAnJywgZCl9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXN1cHBvcnQvdmltL3ZpbV94ZmNlLmluYyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMtc3VwcG9ydC92aW0vdmltX3hmY2UuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NDAzZTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXN1cHBvcnQvdmltL3ZpbV94ZmNlLmluYwpAQCAtMCwwICsxLDYgQEAKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworCSMgVGhlIG1vdXNlIGJlaW5nIGF1dG9lbmFibGVkIGlzIGp1c3QgYW5ub3lpbmcgaW4geGZjZTQtdGVybWluYWwgKG1vdXNlCisJIyBkcmFnIG1ha2UgdmltIGdvIGludG8gdmlzdWFsIG1vZGUgYW5kIHRoZXJlIGlzIG5vIHJpZ2h0IGNsaWNrIG1lbnUpLAorCSMgZGVsZXRlIHRoZSBibG9jay4KKwlzZWQgLWkgJy90aGUgbW91c2Ugd29ya3MganVzdCBmaW5lLywrNGQnICR7RH0vJHtkYXRhZGlyfS8ke0JQTn0vdmltcmMKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9leG8vZXhvL2NvbmZpZ3VyZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9leG8vZXhvL2NvbmZpZ3VyZS5wYXRjaAppbmRleCBlZjI3ZTQyLi44OWNjMWYzIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZXhvL2V4by9jb25maWd1cmUucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG8vY29uZmlndXJlLnBhdGNoCkBAIC0xLDYgKzEsMjAgQEAKLS0tLSBhL2NvbmZpZ3VyZS5hYwkyMDA3LTEyLTAyIDEwOjM3OjA2LjAwMDAwMDAwMCAtMDIwMAotKysrIGIvY29uZmlndXJlLmFjCTIwMDgtMDYtMDUgMTc6MjE6NDIuMDAwMDAwMDAwIC0wMzAwCi1AQCAtMTI3LDIyICsxMjcsMjQgQEAKK0Zyb20gMTNhNzQ1ODJmZmQ3ZjgxZGJkNjZhNzI5NmZjNzYwMDc3MThlOWQ0ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFuZHJlYXMgTXVlbGxlciA8c2Nobml0emVsdG9ueUBnbXguZGU+CitEYXRlOiBNb24sIDEgQXVnIDIwMTEgMTc6MTY6MjkgKzAyMDAKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtlbWJlZGRlZCBzcGVjaWZpY10KKworU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBNw7xsbGVyIDxzY2huaXR6ZWx0b255QGdvb2dsZW1haWwuY29tPgorCistLS0KKyBjb25maWd1cmUuYWMgfCAzNCArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCAwZGU1Y2ViLi4zZjkyZDFiIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0xNDMsMjIgKzE0MywyNCBAQCBBQ19GVU5DX01NQVAoKQogIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICBkbmwgKioqIENoZWNrIGZvciBzdHJmdGltZSgpIGV4dGVuc2lvbnMgKioqCiAgZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG8vZXhvLW5vLXRlc3RzLTAuOC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9leG8vZXhvL2V4by1uby10ZXN0cy0wLjgucGF0Y2gKaW5kZXggYWM4YmNhNS4uMzQ4ZTE0NyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG8vZXhvLW5vLXRlc3RzLTAuOC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZXhvL2V4by9leG8tbm8tdGVzdHMtMC44LnBhdGNoCkBAIC0xLDIyICsxLDI0IEBACi1Gcm9tIDVmMWUxOTg2MGQ4OTY0NzQ4OGJkZDMyYTAyZmIzMzJmNjk0MzQ0MDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDkyMzFhMmQ1YjljNTQwNmYzM2FlZjNhYjRkZTJkYmVjOWIwOGVkMTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiA9P1VURi04P3E/QW5kcmVhcz0yME09QzM9QkNsbGVyPz0gPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+CiBEYXRlOiBGcmksIDE4IE1heSAyMDEyIDIxOjEzOjAwICswMjAwCiBTdWJqZWN0OiBbUEFUQ0hdIERvIG5vdCBydW4gdGVzdHMgYXQgYnVpbGQgdGltZQogTUlNRS1WZXJzaW9uOiAxLjAKIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAogQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotVXBzdHJlYW0tU3RhdHVzOiBOb3QtQXBwbGljYWJsZQorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQogCiBTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIE3DvGxsZXIgPHNjaG5pdHplbHRvbnlAZ29vZ2xlbWFpbC5jb20+CisKIC0tLQotIE1ha2VmaWxlLmFtIHwgICAgMyArLS0KLSAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKyBNYWtlZmlsZS5hbSB8IDMgKy0tCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQotaW5kZXggMGFiMzg1My4uM2U3MjM5MSAxMDA2NDQKK2luZGV4IDIyNmU3OWQuLjYyYWQxOGQgMTAwNjQ0CiAtLS0gYS9NYWtlZmlsZS5hbQogKysrIGIvTWFrZWZpbGUuYW0KLUBAIC04LDggKzgsNyBAQCBTVUJESVJTID0JCQkJCQkJCVwKK0BAIC05LDggKzksNyBAQCBTVUJESVJTID0JCQkJCQkJCVwKICAJZG9jcwkJCQkJCQkJXAogIAlpY29ucwkJCQkJCQkJXAogIAlwaXhtYXBzCQkJCQkJCQlcCkBAIC0yNCw4ICsyNiw1IEBACiAtCXRlc3RzCiArCXBvCiAgCi0gQVVUT01BS0VfT1BUSU9OUyA9CQkJCQkJCVwKLSAJMS45CQkJCQkJCQlcCi0tLSAKLTEuNy40LjQKLQorIGRpc3RjbGVhbi1sb2NhbDoKKyAJcm0gLXJmICouY2FjaGUgKn4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9leG8vZXhvL3JlZHVjZS1idWlsZC10by1leG8tY3NvdXJjZS1vbmx5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG8vcmVkdWNlLWJ1aWxkLXRvLWV4by1jc291cmNlLW9ubHkucGF0Y2gKaW5kZXggOTkzMThkNS4uMDc2NDc3NSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG8vcmVkdWNlLWJ1aWxkLXRvLWV4by1jc291cmNlLW9ubHkucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG8vcmVkdWNlLWJ1aWxkLXRvLWV4by1jc291cmNlLW9ubHkucGF0Y2gKQEAgLTEwLDkgKzEwLDEwIEBACiBidWlsZGluZyB4ZmNlLXBhY2thZ2VzIGZyb20gZ2l0IGluc3RlYWQgb2YgdGFyYmFsbCB0aGlzIGV4by1jc291cmNlLW5hdGl2ZSBpcwogcmVxdWlyZWQuCiAKLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCiAKIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KKwogLS0tCiAgTWFrZWZpbGUuYW0gIHwgMTAgKy0tLS0tLS0tLQogIGNvbmZpZ3VyZS5hYyB8IDIyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQwLDcgKzQxLDcgQEAKICBkaXN0Y2xlYW4tbG9jYWw6CiAgCXJtIC1yZiAqLmNhY2hlICp+CiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCBiYTUzOTVkLi4yNjA1MDY3IDEwMDY0NAoraW5kZXggM2Y5MmQxYi4uMGQ0Y2MzOCAxMDA2NDQKIC0tLSBhL2NvbmZpZ3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCiBAQCAtMTE2LDE1ICsxMTYsNiBAQCBBQ19QUk9HX0NDKCkKQEAgLTY1LDkgKzY2LDkgQEAKICBYRFRfQ0hFQ0tfUEFDS0FHRShbR0xJQl0sIFtnbGliLTIuMF0sIFsyLjQyLjBdKQogLVhEVF9DSEVDS19QQUNLQUdFKFtHSU9dLCBbZ2lvLTIuMF0sIFsyLjQyLjBdKQogLVhEVF9DSEVDS19QQUNLQUdFKFtHVEtdLCBbZ3RrKy0yLjBdLCBbMi4yNC4wXSkKLS1YRFRfQ0hFQ0tfUEFDS0FHRShbR1RLM10sIFtndGsrLTMuMF0sIFszLjIwLjBdKQorLVhEVF9DSEVDS19QQUNLQUdFKFtHVEszXSwgW2d0aystMy4wXSwgWzMuMjIuMF0pCiAtWERUX0NIRUNLX1BBQ0tBR0UoW0dUSFJFQURdLCBbZ3RocmVhZC0yLjBdLCBbMi40Mi4wXSkKLS1YRFRfQ0hFQ0tfUEFDS0FHRShbTElCWEZDRTRVVElMXSwgW2xpYnhmY2U0dXRpbC0xLjBdLCBbNC4xMC4wXSkKKy1YRFRfQ0hFQ0tfUEFDS0FHRShbTElCWEZDRTRVVElMXSwgW2xpYnhmY2U0dXRpbC0xLjBdLCBbNC4xMi4wXSkKIC1YRFRfQ0hFQ0tfUEFDS0FHRShbTElCWEZDRTRVSV0sIFtsaWJ4ZmNlNHVpLTFdLCBbNC4xMi4wXSkKIC1YRFRfQ0hFQ0tfUEFDS0FHRShbTElCWEZDRTRVSTJdLCBbbGlieGZjZTR1aS0yXSwgWzQuMTIuMF0pCiAtWERUX0NIRUNLX09QVElPTkFMX1BBQ0tBR0UoW0dJT19VTklYXSwgW2dpby11bml4LTIuMF0sIFsyLjQyLjBdLCBbZ2lvLXVuaXhdLCBbR0lPLVVuaXggZmVhdHVyZXNdKQpAQCAtODAsNSArODEsNSBAQAogIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqCiAgZG5sICoqKiBDaGVjayBmb3IgZ3RrLWRvYyAqKioKIC0tIAotMi45LjQKKzIuMTQuMwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZXhvL2V4b18wLjExLjUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZXhvL2V4b18wLjExLjUuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1NTA4YzAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG9fMC4xMS41LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotREVTQ1JJUFRJT049IkFwcGxpY2F0aW9uIGxpYnJhcnkgZm9yIHRoZSBYZmNlIGRlc2t0b3AgZW52aXJvbm1lbnQiCi1TRUNUSU9OID0gIngxMSIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKLURFUEVORFMgPSAiZ3RrKyBsaWJ4ZmNlNHV0aWwgbGlieGZjZTR1aSB2aXJ0dWFsL2xpYngxMSBsaWJ1cmktcGVybC1uYXRpdmUgY2Fpcm8iCi1ERVBFTkRTX2NsYXNzLW5hdGl2ZSA9ICJnbGliLTIuMC1uYXRpdmUgeGZjZTQtZGV2LXRvb2xzLW5hdGl2ZSBpbnRsdG9vbC1uYXRpdmUiCi0KLWluaGVyaXQgeGZjZSBweXRob25uYXRpdmUgcGVybG5hdGl2ZSBndGstZG9jIGRpc3Ryb19mZWF0dXJlc19jaGVjawotCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgotUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTX2NsYXNzLW5hdGl2ZSA9ICIiCi0KLSMgU1JDX1VSSSBtdXN0IGZvbGxvdyBpbmhlcml0ZWQgb25lCi1TUkNfVVJJICs9ICIgXAotICAgIGZpbGU6Ly9leG8tbm8tdGVzdHMtMC44LnBhdGNoIFwKLSAgICBmaWxlOi8vY29uZmlndXJlLnBhdGNoIFwKLSIKLQotU1JDX1VSSV9hcHBlbmRfY2xhc3MtbmF0aXZlID0gIiBcCi0gICAgZmlsZTovL3JlZHVjZS1idWlsZC10by1leG8tY3NvdXJjZS1vbmx5LnBhdGNoIFwKLSIKLQotU1JDX1VSSVttZDVzdW1dID0gIjJlNTYwZWRmYThkZGY3N2UyMWM0Nzg3YTZmNjAwMTcxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjhlODYyOWYzMzc4M2ViYTFjZTZkMDkyYTQyYzI4MjE3NDU4YTBjYzNkMWFkNzQ3NDA5N2I5MTg3MDU0OTU1YzEiCi0KLVBBQ0tBR0VTID0rICJleG8tY3NvdXJjZSIKLQotIyBOb3RlOiBweXRob24gYmluZGluZ3MgZGlkIG5vdCB3b3JrIGluIG9lLWRldiBhbmQgYXJlIGFib3V0IHRvIGJlIG1vdmVkIHRvCi0jIHB5eGZjZSBzZWUgaHR0cDovL2NvbW1lbnRzLmdtYW5lLm9yZy9nbWFuZS5jb21wLmRlc2t0b3AueGZjZS5kZXZlbC52ZXJzaW9uNC8xOTU2MAotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0veGZjZTQvIFwKLSAgICAgICAgICAgICAgICAke2xpYmRpcn0veGZjZTQvZXhvLTEgXAotIgotCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9naW8vbW9kdWxlcy8uZGVidWcgXAotIgotCi1GSUxFU19leG8tY3NvdXJjZSArPSAiJHtiaW5kaXJ9L2V4by1jc291cmNlIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9leG8vZXhvXzAuMTIuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9leG8vZXhvXzAuMTIuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjU2YjU3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2V4by9leG9fMC4xMi4wLmJiCkBAIC0wLDAgKzEsMzkgQEAKK0RFU0NSSVBUSU9OPSJBcHBsaWNhdGlvbiBsaWJyYXJ5IGZvciB0aGUgWGZjZSBkZXNrdG9wIGVudmlyb25tZW50IgorU0VDVElPTiA9ICJ4MTEiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YjIzNGVlNGQ2OWY1ZmNlNDQ4NmE4MGZkYWY0YTQyNjMiCitERVBFTkRTID0gImd0aysgbGlieGZjZTR1dGlsIGxpYnhmY2U0dWkgdmlydHVhbC9saWJ4MTEgbGlidXJpLXBlcmwtbmF0aXZlIGNhaXJvIgorREVQRU5EU19jbGFzcy1uYXRpdmUgPSAiZ2xpYi0yLjAtbmF0aXZlIHhmY2U0LWRldi10b29scy1uYXRpdmUgaW50bHRvb2wtbmF0aXZlIgorCitpbmhlcml0IHhmY2UgcHl0aG9ubmF0aXZlIHBlcmxuYXRpdmUgZ3RrLWRvYyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFU19jbGFzcy1uYXRpdmUgPSAiIgorCisjIFNSQ19VUkkgbXVzdCBmb2xsb3cgaW5oZXJpdGVkIG9uZQorU1JDX1VSSSArPSAiIFwKKyAgICBmaWxlOi8vZXhvLW5vLXRlc3RzLTAuOC5wYXRjaCBcCisgICAgZmlsZTovL2NvbmZpZ3VyZS5wYXRjaCBcCisiCisKK1NSQ19VUklfYXBwZW5kX2NsYXNzLW5hdGl2ZSA9ICIgXAorICAgIGZpbGU6Ly9yZWR1Y2UtYnVpbGQtdG8tZXhvLWNzb3VyY2Utb25seS5wYXRjaCBcCisiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI3MjRhZmNjYTIyNGY1ZmIyMmI1MTA5MjZkMjc0MGU1MiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2NGI4ODI3MWEzN2QwZWM3ZGNhMDYyYzdiYzYxY2EzMjMxMTZmNzg1NTA5MmFjMzk2OThjNDIxYTJmMzBhMThmIgorCitQQUNLQUdFUyA9KyAiZXhvLWNzb3VyY2UiCisKKyMgTm90ZTogcHl0aG9uIGJpbmRpbmdzIGRpZCBub3Qgd29yayBpbiBvZS1kZXYgYW5kIGFyZSBhYm91dCB0byBiZSBtb3ZlZCB0bworIyBweXhmY2Ugc2VlIGh0dHA6Ly9jb21tZW50cy5nbWFuZS5vcmcvZ21hbmUuY29tcC5kZXNrdG9wLnhmY2UuZGV2ZWwudmVyc2lvbjQvMTk1NjAKK0ZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L3hmY2U0LyBcCisgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3hmY2U0L2V4by0xIFwKKyIKKworRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vZ2lvL21vZHVsZXMvLmRlYnVnIFwKKyIKKworRklMRVNfZXhvLWNzb3VyY2UgKz0gIiR7YmluZGlyfS9leG8tY3NvdXJjZSIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZ3RrLXhmY2UtZW5naW5lL2d0ay14ZmNlLWVuZ2luZS9nbGliLTIuNTQtZnRiZnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZ3RrLXhmY2UtZW5naW5lL2d0ay14ZmNlLWVuZ2luZS9nbGliLTIuNTQtZnRiZnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI4OTEwMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9ndGsteGZjZS1lbmdpbmUvZ3RrLXhmY2UtZW5naW5lL2dsaWItMi41NC1mdGJmcy5wYXRjaApAQCAtMCwwICsxLDIzIEBACitEZXNjcmlwdGlvbjogRml4IEZUQkZTIHdpdGggZ2xpYiAyLjU0CisgZ2xpYi1ta2VudW1zIG5vdyBleHBlY3RzIGlucHV0IGZpbGVzIHRvIGJlIFVURi04LAorIGZpeCB0aGUgZW5jb2Rpbmcgb2YgbGliZ25vbWV1aS9nbm9tZS1zY29yZXMuaAorQXV0aG9yOiBBZHJpYW4gQnVuayA8YnVua0BkZWJpYW4ub3JnPgorCitwb3J0ZWQgZnJvbTogaHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcvY2dpLWJpbi9idWdyZXBvcnQuY2dpP2J1Zz04NzA3MzgKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorCitJbmRleDogZ3RrLXhmY2UtZW5naW5lLTMuMi4wL2d0ay0zLjAveGZjZV9zdHlsZV90eXBlcy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ3RrLXhmY2UtZW5naW5lLTMuMi4wLm9yaWcvZ3RrLTMuMC94ZmNlX3N0eWxlX3R5cGVzLmgKKysrKyBndGsteGZjZS1lbmdpbmUtMy4yLjAvZ3RrLTMuMC94ZmNlX3N0eWxlX3R5cGVzLmgKK0BAIC0xOSw3ICsxOSw3IEBACisgICoKKyAgKiAgUG9ydGlvbnMgYmFzZWQgVGhpbmljZSBwb3J0IGJ5IAorICAqICAgICAgICAgICAgICAgICAgICAgICBUaW0gR2VybGEgPHRpbWdAcnJ2Lm5ldD4sCistICogICAgICAgICAgICAgICAgICAgICAgIFRvbWFzINZncmVuIDxzdHJpY0BpbmcudW11LnNlLAorKyAqICAgICAgICAgICAgICAgICAgICAgICBUb21hcyDDlmdyZW4gPHN0cmljQGluZy51bXUuc2U+LAorICAqICAgICAgICAgICAgICAgICAgICAgICBSaWNoYXJkIEh1bHQgPHJodWx0QGNvZGVmYWN0b3J5LnNlPgorICAqICBQb3J0aW9ucyBiYXNlZCBvbiBTbW9vdGggdGhlbWUgYnkKKyAgKiAgICAgICAgICAgICAgICAgICAgICAgQW5kcmV3IEpvaG5zb24gPGFqZ2VuaXVzQGFqZ2VuaXVzLnVzPgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2d0ay14ZmNlLWVuZ2luZS9ndGsteGZjZS1lbmdpbmVfMy4yLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZ3RrLXhmY2UtZW5naW5lL2d0ay14ZmNlLWVuZ2luZV8zLjIuMC5iYgppbmRleCBhZTdmOTlmLi5lZjRmNGJmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZ3RrLXhmY2UtZW5naW5lL2d0ay14ZmNlLWVuZ2luZV8zLjIuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvZ3RrLXhmY2UtZW5naW5lL2d0ay14ZmNlLWVuZ2luZV8zLjIuMC5iYgpAQCAtOCw2ICs4LDggQEAKIAogUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKIAorU1JDX1VSSSArPSAiZmlsZTovL2dsaWItMi41NC1mdGJmcy5wYXRjaCIKKwogU1JDX1VSSVttZDVzdW1dID0gIjM2M2Q2YzE2YTQ4YTAwZTI2ZDQ1YzQ1YzJlMWZkNzM5IgogU1JDX1VSSVtzaGEyNTZzdW1dID0gIjg3NWM5YzNiZGE5NmZhZjA1MGEyMjI0NjQ5Y2M0MjEyOWZmYjY2MmM0ZGUzM2FkZDhjMGZkMWZiODYwYjQ3ZWQiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9saWJ4ZmNlNHVpL2ZpbGVzLzAwMDEtbGlieGZjZTRrYmQtcHJpdmF0ZS14ZmNlNC1rZXlib2FyZC1zaG9ydGN1dHMueG1sLWZpeC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS9saWJ4ZmNlNHVpL2ZpbGVzLzAwMDEtbGlieGZjZTRrYmQtcHJpdmF0ZS14ZmNlNC1rZXlib2FyZC1zaG9ydGN1dHMueG1sLWZpeC5wYXRjaAppbmRleCBiOGM5MTc4Li42ZDEwN2IxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvbGlieGZjZTR1aS9maWxlcy8wMDAxLWxpYnhmY2U0a2JkLXByaXZhdGUteGZjZTQta2V5Ym9hcmQtc2hvcnRjdXRzLnhtbC1maXgucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL2xpYnhmY2U0dWkvZmlsZXMvMDAwMS1saWJ4ZmNlNGtiZC1wcml2YXRlLXhmY2U0LWtleWJvYXJkLXNob3J0Y3V0cy54bWwtZml4LnBhdGNoCkBAIC05LDYgKzksNyBAQAogCiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgTcO8bGxlciA8c2Nobml0emVsdG9ueUBnb29nbGVtYWlsLmNvbT4KKwogLS0tCiAgbGlieGZjZTRrYmQtcHJpdmF0ZS94ZmNlNC1rZXlib2FyZC1zaG9ydGN1dHMueG1sIHwgICAgNCArKysrCiAgMSBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCkBAIC0xNyw4ICsxOCw4IEBACiBpbmRleCA3MjNhMTBkLi5lNjUwMmYzIDEwMDY0NAogLS0tIGEvbGlieGZjZTRrYmQtcHJpdmF0ZS94ZmNlNC1rZXlib2FyZC1zaG9ydGN1dHMueG1sCiArKysgYi9saWJ4ZmNlNGtiZC1wcml2YXRlL3hmY2U0LWtleWJvYXJkLXNob3J0Y3V0cy54bWwKLUBAIC02Niw0ICs2Niw4IEBACi0gICAgICAgPHByb3BlcnR5IG5hbWU9IiZsdDtDb250cm9sJmd0O0YxMiIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0id29ya3NwYWNlXzEyX2tleSIvPgorQEAgLTc1LDQgKzc1LDggQEAKKyAgICAgICA8cHJvcGVydHkgbmFtZT0iJmx0O1ByaW1hcnkmZ3Q7RjEyIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJ3b3Jrc3BhY2VfMTJfa2V5Ii8+CiAgICAgIDwvcHJvcGVydHk+CiAgICA8L3Byb3BlcnR5PgogKyAgPHByb3BlcnR5IG5hbWU9InByb3ZpZGVycyIgdHlwZT0iYXJyYXkiPgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3BhY2thZ2Vncm91cHMvcGFja2FnZWdyb3VwLXhmY2UtZXh0ZW5kZWQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAteGZjZS1leHRlbmRlZC5iYgppbmRleCBjYzIzMWI0Li5iNzNjOWVlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAteGZjZS1leHRlbmRlZC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAteGZjZS1leHRlbmRlZC5iYgpAQCAtNSw3ICs1LDkgQEAKIAogUFIgPSAicjEwIgogCi1pbmhlcml0IHBhY2thZ2Vncm91cAoraW5oZXJpdCBwYWNrYWdlZ3JvdXAgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCiAKICMgbWFuZGF0b3J5CiBSREVQRU5EU18ke1BOfSA9ICIgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3RodW5hci90aHVuYXJfMS42LjEyLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3RodW5hci90aHVuYXJfMS42LjEyLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZjFiMjNlLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS90aHVuYXIvdGh1bmFyXzEuNi4xMi5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLVNVTU1BUlkgPSAiRmlsZSBtYW5hZ2VyIGZvciB0aGUgWGZjZSBEZXNrdG9wIEVudmlyb25tZW50IgotU0VDVElPTiA9ICJ4MTEiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYiCi1ERVBFTkRTID0gImV4byBnbGliLTIuMCBndGsrIGdkay1waXhidWYgbGlieGZjZTR1dGlsIGxpYnhmY2U0dWkgeGZjb25mIGxpYnNtIGRidXMtZ2xpYiBzdGFydHVwLW5vdGlmaWNhdGlvbiBsaWJub3RpZnkgeGZjZTQtcGFuZWwgdWRldiIKLQotaW5oZXJpdCB4ZmNlIGRpc3Ryb19mZWF0dXJlc19jaGVjawotCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgotCi1TUkNfVVJJID0gImh0dHA6Ly9hcmNoaXZlLnhmY2Uub3JnL3NyYy94ZmNlLyR7QlBOfS8ke0AnJHtQVn0nWzA6M119L1RodW5hci0ke1BWfS50YXIuYnoyIgotU1JDX1VSSVttZDVzdW1dID0gIjFiZGYzYzRhNTdmZjg4NmM1MTIzNDFmMjRiNWUwZTg4IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImZiMjIwOTFmMDdlYzZkZTJjOWQ5ZDg5YzYxMjg5ZDJiYzM0MzZiMzZjOGM1M2NjYmM5YzMyY2E4YTk5ZjIwODYiCi0KLVMgPSAiJHtXT1JLRElSfS9UaHVuYXItJHtQVn0vIgotCi1QQUNLQUdFQ09ORklHID8/PSAiIgotUEFDS0FHRUNPTkZJR1twY3JlXSA9ICItLWVuYWJsZS1wY3JlLC0tZGlzYWJsZS1wY3JlLGxpYnBjcmUiCi0KLUZJTEVTXyR7UE59ICs9ICIgXAotICAgICR7bGliZGlyfS90aHVuYXJ4LTIvKiBcCi0gICAgJHtsaWJkaXJ9L3hmY2U0L3BhbmVsL3BsdWdpbnMvKiBcCi0gICAgJHtsaWJkaXJ9L1RodW5hci9bVHRdaHVuYXIqIFwKLSAgICAke2RhdGFkaXJ9L2FwcGRhdGEgXAotICAgICR7ZGF0YWRpcn0vZGJ1cy0xIFwKLSAgICAke2RhdGFkaXJ9L3BvbGtpdC0xIFwKLSAgICAke2RhdGFkaXJ9L1RodW5hciBcCi0gICAgJHtkYXRhZGlyfS94ZmNlNC9wYW5lbC9wbHVnaW5zLyogXAotIgotCi1GSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS90aHVuYXJ4LTIvLmRlYnVnLyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS94ZmNlNC9wYW5lbC9wbHVnaW5zLy5kZWJ1Zy8gXAotICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vVGh1bmFyLy5kZWJ1Zy8iCi0KLVJSRUNPTU1FTkRTXyR7UE59ID0gImd2ZnMgZ3Zmc2QtdHJhc2giCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvdGh1bmFyL3RodW5hcl8xLjYuMTUuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvdGh1bmFyL3RodW5hcl8xLjYuMTUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTcwZTI1MAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS90aHVuYXIvdGh1bmFyXzEuNi4xNS5iYgpAQCAtMCwwICsxLDM1IEBACitTVU1NQVJZID0gIkZpbGUgbWFuYWdlciBmb3IgdGhlIFhmY2UgRGVza3RvcCBFbnZpcm9ubWVudCIKK1NFQ1RJT04gPSAieDExIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIgorREVQRU5EUyA9ICJleG8gZ2xpYi0yLjAgZ3RrKyBnZGstcGl4YnVmIGxpYnhmY2U0dXRpbCBsaWJ4ZmNlNHVpIHhmY29uZiBsaWJzbSBkYnVzLWdsaWIgc3RhcnR1cC1ub3RpZmljYXRpb24gbGlibm90aWZ5IHhmY2U0LXBhbmVsIHVkZXYiCisKK2luaGVyaXQgeGZjZSBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworU1JDX1VSSSA9ICJodHRwOi8vYXJjaGl2ZS54ZmNlLm9yZy9zcmMveGZjZS8ke0JQTn0vJHtAJyR7UFZ9J1swOjNdfS9UaHVuYXItJHtQVn0udGFyLmJ6MiIKK1NSQ19VUklbbWQ1c3VtXSA9ICI4ZmVhMmFmNjljM2FjYmIyNzNmZDFhMTc3ZDNkOGU0NyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJlODEyOTFhODUxOWY0OTVlMGEwNTlmZjFmMmQyOTYwOGJjNmQzN2MwYmU4M2IxZjM4ZjNjOWFhMjVmOGQyNTJkIgorCitTID0gIiR7V09SS0RJUn0vVGh1bmFyLSR7UFZ9LyIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiIKK1BBQ0tBR0VDT05GSUdbcGNyZV0gPSAiLS1lbmFibGUtcGNyZSwtLWRpc2FibGUtcGNyZSxsaWJwY3JlIgorCitGSUxFU18ke1BOfSArPSAiIFwKKyAgICAke2xpYmRpcn0vdGh1bmFyeC0yLyogXAorICAgICR7bGliZGlyfS94ZmNlNC9wYW5lbC9wbHVnaW5zLyogXAorICAgICR7bGliZGlyfS9UaHVuYXIvW1R0XWh1bmFyKiBcCisgICAgJHtkYXRhZGlyfS9hcHBkYXRhIFwKKyAgICAke2RhdGFkaXJ9L2RidXMtMSBcCisgICAgJHtkYXRhZGlyfS9wb2xraXQtMSBcCisgICAgJHtkYXRhZGlyfS9UaHVuYXIgXAorICAgICR7ZGF0YWRpcn0veGZjZTQvcGFuZWwvcGx1Z2lucy8qIFwKKyIKKworRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vdGh1bmFyeC0yLy5kZWJ1Zy8gXAorICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0veGZjZTQvcGFuZWwvcGx1Z2lucy8uZGVidWcvIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L1RodW5hci8uZGVidWcvIgorCitSUkVDT01NRU5EU18ke1BOfSA9ICJndmZzIGd2ZnNkLXRyYXNoIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3R1bWJsZXIvdHVtYmxlcl8wLjEuMzEuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvdHVtYmxlci90dW1ibGVyXzAuMS4zMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWY1NDE5YS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvdHVtYmxlci90dW1ibGVyXzAuMS4zMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLURFU0NSSVBUSU9OPSJUaHVtYm5haWwgc2VydmljZSBpbXBsZW1lbnRpbmcgdGhlIHRodW1ibmFpbCBtYW5hZ2VtZW50IEQtQnVzIHNwZWNpZmljYXRpb24iCi1TRUNUSU9OID0gIngxMS9saWJzIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgotREVQRU5EUyA9ICJkYnVzLWdsaWIgZGJ1cy1nbGliLW5hdGl2ZSBmcmVldHlwZSBnZGstcGl4YnVmIHBvcHBsZXIgY3VybCB4ZmNlNC1kZXYtdG9vbHMtbmF0aXZlIGxpYnhtbDIgbGliZ3NmIgotCi1pbmhlcml0IHhmY2UgZ3RrLWRvYwotCi1TUkNfVVJJW21kNXN1bV0gPSAiMDA2NzA1NGU2ZjFmOTBhMTNmOTBmYWFkZmNhMWU4OWUiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZDBmZDMyOTI3M2ZmNmFjOTg4ODVlYWRlNGMzZDhjODdhNGRkMDgxNmY3MTM2NDYxMzA4MDhiZmE5MGI4NzE3MyIKLVNSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS11c2UtcGtnLWNvbmZpZy1mb3ItZnJlZXR5cGUyLnBhdGNoIgotCi1JTlNBTkVfU0tJUF8ke1BOfSA9ICJkZXYtc28iCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIiCi1QQUNLQUdFQ09ORklHW2dzdHJlYW1lci10aHVtYm5haWxlcl0gPSAiLS1lbmFibGUtZ3N0cmVhbWVyLXRodW1ibmFpbGVyLC0tZGlzYWJsZS1nc3RyZWFtZXItdGh1bWJuYWlsZXIsZ3N0cmVhbWVyMS4wIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UiCi0KLUZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2RidXMtMS9zZXJ2aWNlcyBcCi0gICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3R1bWJsZXItMS90dW1ibGVyZCBcCi0gICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3R1bWJsZXItMS9wbHVnaW5zLyouc28gXAotICAgICAgICAgICAgICAgICR7bGliZGlyfS90dW1ibGVyLTEvcGx1Z2lucy9jYWNoZS8qLnNvIFwKLSIKLQotRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vdHVtYmxlci0xL3BsdWdpbnMvKi5sYSBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS90dW1ibGVyLTEvcGx1Z2lucy9jYWNoZS8qLmxhIgotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vdHVtYmxlci0xLy5kZWJ1ZyBcCi0gICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS90dW1ibGVyLTEvcGx1Z2lucy8uZGVidWcgXAotICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vdHVtYmxlci0xL3BsdWdpbnMvY2FjaGUvLmRlYnVnIFwKLSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS90dW1ibGVyL3R1bWJsZXJfMC4yLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvdHVtYmxlci90dW1ibGVyXzAuMi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlMGM1NTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UvdHVtYmxlci90dW1ibGVyXzAuMi4wLmJiCkBAIC0wLDAgKzEsMzUgQEAKK0RFU0NSSVBUSU9OPSJUaHVtYm5haWwgc2VydmljZSBpbXBsZW1lbnRpbmcgdGhlIHRodW1ibmFpbCBtYW5hZ2VtZW50IEQtQnVzIHNwZWNpZmljYXRpb24iCitTRUNUSU9OID0gIngxMS9saWJzIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIgorREVQRU5EUyA9ICJkYnVzLWdsaWIgZGJ1cy1nbGliLW5hdGl2ZSBmcmVldHlwZSBnZGstcGl4YnVmIHBvcHBsZXIgY3VybCB4ZmNlNC1kZXYtdG9vbHMtbmF0aXZlIGxpYnhtbDIgbGliZ3NmIgorCitpbmhlcml0IHhmY2UgZ3RrLWRvYworCitTUkNfVVJJW21kNXN1bV0gPSAiZGQ1ZjliYWU2YTI0NzBlYjVmZmYwZGM5ZWRkM2VhMDkiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNGUyN2E1OTY5NGIwYTVjYzY5ZWJjY2JkYjAwYzcyNGU2NzBiNWI3YzMwYmM0ZGMwYjQ2MWFhYzkzZjIzNGZhYyIKK1NSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS11c2UtcGtnLWNvbmZpZy1mb3ItZnJlZXR5cGUyLnBhdGNoIgorCitJTlNBTkVfU0tJUF8ke1BOfSA9ICJkZXYtc28iCisKK1BBQ0tBR0VDT05GSUcgPz89ICIiCitQQUNLQUdFQ09ORklHW2dzdHJlYW1lci10aHVtYm5haWxlcl0gPSAiLS1lbmFibGUtZ3N0cmVhbWVyLXRodW1ibmFpbGVyLC0tZGlzYWJsZS1nc3RyZWFtZXItdGh1bWJuYWlsZXIsZ3N0cmVhbWVyMS4wIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UiCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgICMgTWFrZWZpbGUgc2VlbXMgdG8gcmFjZSBvbiBjcmVhdGlvbiBvZiBzeW1saW5rLiBTbyBlbnN1cmUgY3JlYXRpb24gaGVyZQorICAgICMgdW50aWwgZml4ZWQgcHJvcGVybHkKKyAgICBsbiAtc2YgdHVtYmxlci14ZGctY2FjaGUuc28gJHtEfSR7bGliZGlyfS90dW1ibGVyLTEvcGx1Z2lucy9jYWNoZS90dW1ibGVyLWNhY2hlLXBsdWdpbi5zbworfQorCitGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9kYnVzLTEvc2VydmljZXMgXAorICAgICAgICAgICAgICAgICR7bGliZGlyfS90dW1ibGVyLTEvdHVtYmxlcmQgXAorICAgICAgICAgICAgICAgICR7bGliZGlyfS90dW1ibGVyLTEvcGx1Z2lucy8qLnNvIFwKKyAgICAgICAgICAgICAgICAke2xpYmRpcn0vdHVtYmxlci0xL3BsdWdpbnMvY2FjaGUvKi5zbyBcCisiCisKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L3R1bWJsZXItMS9wbHVnaW5zLyoubGEgXAorICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vdHVtYmxlci0xL3BsdWdpbnMvY2FjaGUvKi5sYSIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L3R1bWJsZXItMS8uZGVidWcgXAorICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vdHVtYmxlci0xL3BsdWdpbnMvLmRlYnVnIFwKKyAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3R1bWJsZXItMS9wbHVnaW5zL2NhY2hlLy5kZWJ1ZyBcCisiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZjZTQtYXBwZmluZGVyL3hmY2U0LWFwcGZpbmRlcl80LjEyLjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZjZTQtYXBwZmluZGVyL3hmY2U0LWFwcGZpbmRlcl80LjEyLjAuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3NWE4MjcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LWFwcGZpbmRlci94ZmNlNC1hcHBmaW5kZXJfNC4xMi4wLmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotREVTQ1JJUFRJT049IlhmY2U0IEFwcGxpY2F0aW9uIEZpbmRlciIKLVNFQ1RJT04gPSAieDExIgotTElDRU5TRSA9ICJHUEx2MiIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIgotREVQRU5EUz0iZ2xpYi0yLjAgZ3RrKyBsaWJ4ZmNlNHV0aWwgbGlieGZjZTR1aSBnYXJjb24gZGJ1cy1nbGliIHhmY29uZiIKLQotaW5oZXJpdCB4ZmNlIGRpc3Ryb19mZWF0dXJlc19jaGVjawotCi1SRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMGIyMzhiMzA2ODYzODhjNTA3YzExOWIxMjY2NGYxYTEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiMmFkNGE1ODAxOWE3NmE2YjY0YTgxNjA1MGRiMjVmOTY4NTQ5MTdjMmYyZTg5ZDZhOWRmNmMxOGU2Yzg0YzU2NyIKLQotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vYXBwZGF0YSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1hcHBmaW5kZXIveGZjZTQtYXBwZmluZGVyXzQuMTMuMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1hcHBmaW5kZXIveGZjZTQtYXBwZmluZGVyXzQuMTMuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTczOTExCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LWFwcGZpbmRlci94ZmNlNC1hcHBmaW5kZXJfNC4xMy4wLmJiCkBAIC0wLDAgKzEsMTQgQEAKK0RFU0NSSVBUSU9OPSJYZmNlNCBBcHBsaWNhdGlvbiBGaW5kZXIiCitTRUNUSU9OID0gIngxMSIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT05NGQ1NWQ1MTJhOWJhMzZjYWE5YjdkZjA3OWJhZTE5ZiIKK0RFUEVORFM9ImdsaWItMi4wIGd0ayszIGxpYnhmY2U0dXRpbCBsaWJ4ZmNlNHVpIGdhcmNvbiBkYnVzLWdsaWIgeGZjb25mIgorCitpbmhlcml0IHhmY2UgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI2YjZjZjA4MGM4OTFmNzk0NTk1M2Y4MDg0YTkwMTU1MiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjMGViM2IyOWViYTNjZmE5MTc1ZWQzNTE3NGU4M2EyMWZhYTJhMjQyM2RkYjc5NTAxZmU4ODQ2Y2M0MzBlM2FlIgorCitGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9hcHBkYXRhIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXBhbmVsL3hmY2U0LXBhbmVsXzQuMTIuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1wYW5lbC94ZmNlNC1wYW5lbF80LjEyLjEuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwMzMyY2UuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXBhbmVsL3hmY2U0LXBhbmVsXzQuMTIuMS5iYgorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLVNVTU1BUlkgPSAiWGZjZTQgUGFuZWwiCi1TRUNUSU9OID0gIngxMSIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0yNmE4YmQ3NWQ4Zjg0OThiZGJiZTY0YTI3NzkxZDRlZSIKLURFUEVORFMgPSAibGlieGZjZTR1dGlsIGdhcmNvbiBsaWJ4ZmNlNHVpIHhmY29uZiBleG8gZ3RrKyBndGsrMyBkYnVzIGNhaXJvIHZpcnR1YWwvbGlieDExIGxpYnhtbDIgbGlid25jayIKLQotaW5oZXJpdCB4ZmNlIGd0ay1kb2MgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCi0KLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIwYjk0M2YyZTcyYTM2OTNkZGRiMWFmNTU5ODI2Y2I2MiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI5M2Q1OGI4MGNjYTljOWViNThhZGIyODFiYzc1NDA0ZGY3Y2Y2Y2FlODlmN2Y5OGJiOWYzODY5MDAwOWFhMmU4IgotU1JDX1VSSSArPSAiIFwKLSAgICBmaWxlOi8vMDAwMS1jbG9jay10aW1lLW1ha2UtY2hhbmdlLW9mLXN5c3RlbS1zLXRpbWV6b25lLWNoYW5nZS10LnBhdGNoIFwKLSAgICBmaWxlOi8vMDAwMi13aW5kb3dtZW51LWRvLW5vdC1kaXNwbGF5LWRlc2t0b3AtaWNvbi13aGVuLW5vLXdpbmRvLnBhdGNoIFwKLSIKLQotRVhUUkFfT0VDT05GICs9ICItLWVuYWJsZS1ndGszIgotCi1weXRob24gcG9wdWxhdGVfcGFja2FnZXNfcHJlcGVuZCgpIHsKLSAgICBwbHVnaW5fZGlyID0gZC5leHBhbmQoJyR7bGliZGlyfS94ZmNlNC9wYW5lbC9wbHVnaW5zLycpCi0gICAgcGx1Z2luX25hbWUgPSBkLmV4cGFuZCgnJHtQTn0tcGx1Z2luLSVzJykKLSAgICBkb19zcGxpdF9wYWNrYWdlcyhkLCBwbHVnaW5fZGlyLCAnXmxpYiguKikuc28kJywgcGx1Z2luX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgJyR7UE59IHBsdWdpbiBmb3IgJXMnLCBleHRyYV9kZXBlbmRzPScnLCBwcmVwZW5kPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgYXV4X2ZpbGVzX3BhdHRlcm49Wycke2RhdGFkaXJ9L3hmY2U0L3BhbmVsL3BsdWdpbnMvJXMuZGVza3RvcCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcke3N5c2NvbmZkaXJ9L3hkZy94ZmNlL3BhbmVsLyVzLSonLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJHtkYXRhZGlyfS9pY29ucy9oaWNvbG9yLzQ4eDQ4L2FwcHMvKi0lcy5wbmcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJHtiaW5kaXJ9LyolcyonXSkKLX0KLQotUEFDS0FHRVNfRFlOQU1JQyArPSAiXiR7UE59LXBsdWdpbi0uKiIKLQotUEFDS0FHRVMgPSsgIiR7UE59LWd0azMiCi0KLUZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0veGZjZTQvcGFuZWwvbWlncmF0ZSBcCi0gICAgICAgICAgICAgICAgJHtsaWJkaXJ9L3hmY2U0L3BhbmVsL3dyYXBwZXItMS4wIgotCi1GSUxFU18ke1BOfS1ndGszID0gIiBcCi0gICAgJHtsaWJkaXJ9L2xpYnhmY2U0cGFuZWwtMi4wJHtTT0xJQlN9IFwKLSAgICAke2xpYmRpcn0veGZjZTQvcGFuZWwvd3JhcHBlci0yLjAgXAotIgotRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0veGZjZTQvcGFuZWwvcGx1Z2lucy8uZGVidWcgXAotIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXBhbmVsL3hmY2U0LXBhbmVsXzQuMTIuMi5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1wYW5lbC94ZmNlNC1wYW5lbF80LjEyLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNjOWE0YgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1wYW5lbC94ZmNlNC1wYW5lbF80LjEyLjIuYmIKQEAgLTAsMCArMSw0NCBAQAorU1VNTUFSWSA9ICJYZmNlNCBQYW5lbCIKK1NFQ1RJT04gPSAieDExIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTI2YThiZDc1ZDhmODQ5OGJkYmJlNjRhMjc3OTFkNGVlIgorREVQRU5EUyA9ICJsaWJ4ZmNlNHV0aWwgZ2FyY29uIGxpYnhmY2U0dWkgeGZjb25mIGV4byBndGsrIGd0ayszIGRidXMgY2Fpcm8gdmlydHVhbC9saWJ4MTEgbGlieG1sMiBsaWJ3bmNrIgorCitpbmhlcml0IHhmY2UgZ3RrLWRvYyBkaXN0cm9fZmVhdHVyZXNfY2hlY2sgZ3RrLWljb24tY2FjaGUKKworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKKworU1JDX1VSSVttZDVzdW1dID0gIjgwM2M5YWFiYzI5MjVkYzk3Zjk2ZGUxMjVjNTJiYTJlIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQyMDU4YWJiODFiOGY4NzY5MWQzOTk5NjI3NDQ3ZGU3MWMzMjg1YmNmMDU1ZjMwOGFhYjVjZWZhYjJkZTBjZTkiCitTUkNfVVJJICs9ICIgXAorICAgIGZpbGU6Ly8wMDAxLWNsb2NrLXRpbWUtbWFrZS1jaGFuZ2Utb2Ytc3lzdGVtLXMtdGltZXpvbmUtY2hhbmdlLXQucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAyLXdpbmRvd21lbnUtZG8tbm90LWRpc3BsYXktZGVza3RvcC1pY29uLXdoZW4tbm8td2luZG8ucGF0Y2ggXAorIgorCitFWFRSQV9PRUNPTkYgKz0gIi0tZW5hYmxlLWd0azMiCisKK3B5dGhvbiBwb3B1bGF0ZV9wYWNrYWdlc19wcmVwZW5kKCkgeworICAgIHBsdWdpbl9kaXIgPSBkLmV4cGFuZCgnJHtsaWJkaXJ9L3hmY2U0L3BhbmVsL3BsdWdpbnMvJykKKyAgICBwbHVnaW5fbmFtZSA9IGQuZXhwYW5kKCcke1BOfS1wbHVnaW4tJXMnKQorICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIHBsdWdpbl9kaXIsICdebGliKC4qKS5zbyQnLCBwbHVnaW5fbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAnJHtQTn0gcGx1Z2luIGZvciAlcycsIGV4dHJhX2RlcGVuZHM9JycsIHByZXBlbmQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICBhdXhfZmlsZXNfcGF0dGVybj1bJyR7ZGF0YWRpcn0veGZjZTQvcGFuZWwvcGx1Z2lucy8lcy5kZXNrdG9wJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyR7c3lzY29uZmRpcn0veGRnL3hmY2UvcGFuZWwvJXMtKicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcke2RhdGFkaXJ9L2ljb25zL2hpY29sb3IvNDh4NDgvYXBwcy8qLSVzLnBuZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcke2JpbmRpcn0vKiVzKiddKQorfQorCitQQUNLQUdFU19EWU5BTUlDICs9ICJeJHtQTn0tcGx1Z2luLS4qIgorCitQQUNLQUdFUyA9KyAiJHtQTn0tZ3RrMyIKKworRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS94ZmNlNC9wYW5lbC9taWdyYXRlIFwKKyAgICAgICAgICAgICAgICAke2xpYmRpcn0veGZjZTQvcGFuZWwvd3JhcHBlci0xLjAiCisKK0ZJTEVTXyR7UE59LWd0azMgPSAiIFwKKyAgICAke2xpYmRpcn0vbGlieGZjZTRwYW5lbC0yLjAke1NPTElCU30gXAorICAgICR7bGliZGlyfS94ZmNlNC9wYW5lbC93cmFwcGVyLTIuMCBcCisiCitGSUxFU18ke1BOfS1kYmcgKz0gIiBcCisgICAgJHtsaWJkaXJ9L3hmY2U0L3BhbmVsL3BsdWdpbnMvLmRlYnVnIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1wb3dlci1tYW5hZ2VyL3hmY2U0LXBvd2VyLW1hbmFnZXJfMS42LjAuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZjZTQtcG93ZXItbWFuYWdlci94ZmNlNC1wb3dlci1tYW5hZ2VyXzEuNi4wLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOGQwMGRmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1wb3dlci1tYW5hZ2VyL3hmY2U0LXBvd2VyLW1hbmFnZXJfMS42LjAuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi1TVU1NQVJZID0gIlBvd2VyIG1hbmFnZXIgZm9yIHRoZSBYZmNlIGRlc2t0b3AgZW52aXJvbm1lbnQiCi1IT01FUEFHRSA9ICJodHRwOi8vZ29vZGllcy54ZmNlLm9yZy9wcm9qZWN0cy9hcHBsaWNhdGlvbnMveGZjZTQtcG93ZXItbWFuYWdlciIKLVNFQ1RJT04gPSAieDExIgotCi1MSUNFTlNFID0gIkdQTHYyKyIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTU5NTMwYmRmMzM2NTliMjllNzNkNGFkYjlmOWY2NTUyIgotCi1pbmhlcml0IHhmY2UgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCi0KLVJFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCi0KLURFUEVORFMgKz0gImd0ayszIGdsaWItMi4wIGRidXMtZ2xpYiB4ZmNvbmYgbGlieGZjZTR1aSBsaWJ4ZmNlNHV0aWwgbGlibm90aWZ5IFwKLSAgICAgICAgICAgbGlieHJhbmRyIHZpcnR1YWwvbGlieDExIGxpYnhleHQgeGZjZTQtcGFuZWwgdXBvd2VyIGxpYnhzY3Juc2F2ZXIiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICIyZTJlMjRhMWEyMjkxMmQ2YTU2MWJhNjE1NTg4NzUwMyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJiZGUzMTU3ZTA2YWIzMWZmMjM2NDhkMTYzZDUzZWU1MDk1Zjc4MTk1NDRhOWY0OGQzYTk2ZDU3ODI5ODU3ZjJiIgotCi1FWFRSQV9PRUNPTkYgPSAiIFwKLSAgICAtLWVuYWJsZS1uZXR3b3JrLW1hbmFnZXIgXAotICAgIC0tZW5hYmxlLXBhbmVsLXBsdWdpbnMgXAotIgotCi1QQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsIGQpfSIKLVBBQ0tBR0VDT05GSUdbc3lzdGVtZF0gPSAiLS1lbmFibGUtcG9sa2l0LCAtLWRpc2FibGUtcG9sa2l0LCBwb2xraXQiCi0KLVBBQ0tBR0VTICs9ICJ4ZmNlNC1wb3dlcm1hbmFnZXItcGx1Z2luIgotCi1GSUxFU18ke1BOfSArPSAiIFwKLSAgICAke2RhdGFkaXJ9L3BvbGtpdC0xIFwKLSAgICAke2RhdGFkaXJ9L2FwcGRhdGEgXAotIgotCi1GSUxFU194ZmNlNC1wb3dlcm1hbmFnZXItcGx1Z2luID0gIiBcCi0gICAgJHtsaWJkaXJ9L3hmY2U0IFwKLSAgICAke2RhdGFkaXJ9L3hmY2U0IFwKLSIKLQotUkRFUEVORFNfeGZjZTQtcG93ZXJtYW5hZ2VyLXBsdWdpbiA9ICIke1BOfSIKLVJERVBFTkRTXyR7UE59ID0gIm5ldHdvcmttYW5hZ2VyICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCdzeXN0ZW1kJywnJywnY29uc29sZWtpdCcsZCl9IgotCi0jIHhmY2U0LWJyaWdodG5lc3MtcGx1Z2luIHdhcyByZXBsYWNlZCBieSB4ZmNlNC1wb3dlcm1hbmFnZXItcGx1Z2luCi1SUFJPVklERVNfeGZjZTQtcG93ZXJtYW5hZ2VyLXBsdWdpbiArPSAieGZjZTQtYnJpZ2h0bmVzcy1wbHVnaW4iCi1SUkVQTEFDRVNfeGZjZTQtcG93ZXJtYW5hZ2VyLXBsdWdpbiArPSAieGZjZTQtYnJpZ2h0bmVzcy1wbHVnaW4iCi1SQ09ORkxJQ1RTX3hmY2U0LXBvd2VybWFuYWdlci1wbHVnaW4gKz0gInhmY2U0LWJyaWdodG5lc3MtcGx1Z2luIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXBvd2VyLW1hbmFnZXIveGZjZTQtcG93ZXItbWFuYWdlcl8xLjYuMS5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1wb3dlci1tYW5hZ2VyL3hmY2U0LXBvd2VyLW1hbmFnZXJfMS42LjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQxMTdiMAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1wb3dlci1tYW5hZ2VyL3hmY2U0LXBvd2VyLW1hbmFnZXJfMS42LjEuYmIKQEAgLTAsMCArMSw0NCBAQAorU1VNTUFSWSA9ICJQb3dlciBtYW5hZ2VyIGZvciB0aGUgWGZjZSBkZXNrdG9wIGVudmlyb25tZW50IgorSE9NRVBBR0UgPSAiaHR0cDovL2dvb2RpZXMueGZjZS5vcmcvcHJvamVjdHMvYXBwbGljYXRpb25zL3hmY2U0LXBvd2VyLW1hbmFnZXIiCitTRUNUSU9OID0gIngxMSIKKworTElDRU5TRSA9ICJHUEx2MisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT01OTUzMGJkZjMzNjU5YjI5ZTczZDRhZGI5ZjlmNjU1MiIKKworaW5oZXJpdCB4ZmNlIGRpc3Ryb19mZWF0dXJlc19jaGVjaworCitSRVFVSVJFRF9ESVNUUk9fRkVBVFVSRVMgPSAieDExIgorCitERVBFTkRTICs9ICJndGsrMyBnbGliLTIuMCBkYnVzLWdsaWIgeGZjb25mIGxpYnhmY2U0dWkgbGlieGZjZTR1dGlsIGxpYm5vdGlmeSBcCisgICAgICAgICAgIGxpYnhyYW5kciB2aXJ0dWFsL2xpYngxMSBsaWJ4ZXh0IHhmY2U0LXBhbmVsIHVwb3dlciBsaWJ4c2NybnNhdmVyIgorCitTUkNfVVJJW21kNXN1bV0gPSAiMTdmMGU2NDY0YWQ2YjNiYzZhNjU3ZjU5NWJmOTE0MzAiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMWVhODI1NDUyMzQzYjg5NTU2NjA2ODAxOGI2ZDUwNzg2MDhmOGY0NmNlODA3NWJhNmJiYjRiODQ4ZjQ4NjU2YiIKKworRVhUUkFfT0VDT05GID0gIiBcCisgICAgLS1lbmFibGUtbmV0d29yay1tYW5hZ2VyIFwKKyAgICAtLWVuYWJsZS1wYW5lbC1wbHVnaW5zIFwKKyIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCBkKX0iCitQQUNLQUdFQ09ORklHW3N5c3RlbWRdID0gIi0tZW5hYmxlLXBvbGtpdCwgLS1kaXNhYmxlLXBvbGtpdCwgcG9sa2l0IgorCitQQUNLQUdFUyArPSAieGZjZTQtcG93ZXJtYW5hZ2VyLXBsdWdpbiIKKworRklMRVNfJHtQTn0gKz0gIiBcCisgICAgJHtkYXRhZGlyfS9wb2xraXQtMSBcCisgICAgJHtkYXRhZGlyfS9hcHBkYXRhIFwKKyIKKworRklMRVNfeGZjZTQtcG93ZXJtYW5hZ2VyLXBsdWdpbiA9ICIgXAorICAgICR7bGliZGlyfS94ZmNlNCBcCisgICAgJHtkYXRhZGlyfS94ZmNlNCBcCisiCisKK1JERVBFTkRTX3hmY2U0LXBvd2VybWFuYWdlci1wbHVnaW4gPSAiJHtQTn0iCitSREVQRU5EU18ke1BOfSA9ICJuZXR3b3JrbWFuYWdlciAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywnc3lzdGVtZCcsJycsJ2NvbnNvbGVraXQnLGQpfSIKKworIyB4ZmNlNC1icmlnaHRuZXNzLXBsdWdpbiB3YXMgcmVwbGFjZWQgYnkgeGZjZTQtcG93ZXJtYW5hZ2VyLXBsdWdpbgorUlBST1ZJREVTX3hmY2U0LXBvd2VybWFuYWdlci1wbHVnaW4gKz0gInhmY2U0LWJyaWdodG5lc3MtcGx1Z2luIgorUlJFUExBQ0VTX3hmY2U0LXBvd2VybWFuYWdlci1wbHVnaW4gKz0gInhmY2U0LWJyaWdodG5lc3MtcGx1Z2luIgorUkNPTkZMSUNUU194ZmNlNC1wb3dlcm1hbmFnZXItcGx1Z2luICs9ICJ4ZmNlNC1icmlnaHRuZXNzLXBsdWdpbiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1zZXR0aW5ncy94ZmNlNC1zZXR0aW5nc19naXQuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZjZTQtc2V0dGluZ3MveGZjZTQtc2V0dGluZ3NfZ2l0LmJiCmluZGV4IDc3MWRhMmMuLmJmOWJkMzEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmNlNC1zZXR0aW5ncy94ZmNlNC1zZXR0aW5nc19naXQuYmIKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmY2U0LXNldHRpbmdzL3hmY2U0LXNldHRpbmdzX2dpdC5iYgpAQCAtMTMsMTIgKzEzLDEyIEBACiAjICsgbWlub3IgYnVnZml4ZXMgLSBzZW50IG1haW5saW5lIGJ1dCBubyByZXNwb25zZQogIyArIG9wdGlvbiB0byBoaWRlIG1vdXNlcG9pbnRlciBmb3IgYSBzcGVjaWZpYyAodG91Y2gpIGlucHV0IGRldmljZSAtIHNlbnQgbWFpbmxpbmUgYnV0IG5vIHJlc3BvbnNlCiBTUkNfVVJJID0gIiBcCi0gICAgZ2l0Oi8vZ2l0aHViLmNvbS9zY2huaXR6ZWx0b255L3hmY2U0LXNldHRpbmdzLmdpdDtwcm90b2NvbD1naXQ7YnJhbmNoPWZvci1vZS00LjEyLjAtMSBcCisgICAgZ2l0Oi8vZ2l0aHViLmNvbS9zY2huaXR6ZWx0b255L3hmY2U0LXNldHRpbmdzLmdpdDtwcm90b2NvbD1naXQ7YnJhbmNoPWZvci1vZS00LjEyLjMgXAogICAgIGZpbGU6Ly8wMDAxLXhzZXR0aW5ncy54bWwtU2V0LWRlZmF1bHQtdGhlbWVzLnBhdGNoIFwKICIKLVNSQ1JFViA9ICJjNjY4M2NiMmNmZjQ4OWMxNmMyYzdiNWVhYjQwMTdiYjQ2MWYwN2YxIgorU1JDUkVWID0gImI3MDFhYzhiNjZiODNjMTc0NjlkZDUwMDlkYTUxZWViNTllYmE0NDIiCiBTID0gIiR7V09SS0RJUn0vZ2l0IgotUFYgPSAiNC4xMi4wK2dpdCR7U1JDUFZ9IgorUFYgPSAiNC4xMi4zK2dpdCR7U1JDUFZ9IgogCiBFWFRSQV9PRUNPTkYgKz0gIi0tZW5hYmxlLW1haW50YWluZXItbW9kZSAtLWRpc2FibGUtZGVidWciCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmRlc2t0b3AveGZkZXNrdG9wXzQuMTIuMy5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS14ZmNlL3JlY2lwZXMteGZjZS94ZmRlc2t0b3AveGZkZXNrdG9wXzQuMTIuMy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGFlY2Y4Mi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZkZXNrdG9wL3hmZGVza3RvcF80LjEyLjMuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1TVU1NQVJZID0gIlhmY2U0IERlc2t0b3AgTWFuYWdlciIKLVNFQ1RJT04gPSAieDExL2Jhc2UiCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYiCi1ERVBFTkRTID0gImdsaWItMi4wIGd0aysgbGlieGZjZTR1dGlsIGxpYnhmY2U0dWkgbGlid25jayB4ZmNvbmYgZGJ1cy1nbGliIGRidXMtZ2xpYi1uYXRpdmUgdGh1bmFyIGdhcmNvbiBleG8iCi0KLWluaGVyaXQgeGZjZSBkaXN0cm9fZmVhdHVyZXNfY2hlY2sKLQotUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gIngxMSIKLQotU1JDX1VSSVttZDVzdW1dID0gImNiMzRmNGYzMzNkN2QxMjJmMTY4OGQyZjE1NTIwMmM4IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImE4YThkOTM3NDRkODQyY2E2YWMxZjliZDJjODc4OWVlMTc4OTM3YmNhN2UxNzBlNTIzOWNiZGJlZjMwNTIwYWMiCi0KLVBBQ0tBR0VDT05GSUcgPz89ICIiCi1QQUNLQUdFQ09ORklHW25vdGlmeV0gPSAiLS1lbmFibGUtbm90aWZpY2F0aW9ucywtLWRpc2FibGUtbm90aWZpY2F0aW9ucyxsaWJub3RpZnkiCi0KLUZJTEVTXyR7UE59ICs9ICIke2RhdGFkaXJ9L2JhY2tncm91bmRzIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmZGVza3RvcC94ZmRlc2t0b3BfNC4xMi40LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXhmY2UvcmVjaXBlcy14ZmNlL3hmZGVza3RvcC94ZmRlc2t0b3BfNC4xMi40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5Y2JlNzEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEteGZjZS9yZWNpcGVzLXhmY2UveGZkZXNrdG9wL3hmZGVza3RvcF80LjEyLjQuYmIKQEAgLTAsMCArMSwxNyBAQAorU1VNTUFSWSA9ICJYZmNlNCBEZXNrdG9wIE1hbmFnZXIiCitTRUNUSU9OID0gIngxMS9iYXNlIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIgorREVQRU5EUyA9ICJnbGliLTIuMCBndGsrIGxpYnhmY2U0dXRpbCBsaWJ4ZmNlNHVpIGxpYnduY2sgeGZjb25mIGRidXMtZ2xpYiBkYnVzLWdsaWItbmF0aXZlIHRodW5hciBnYXJjb24gZXhvIgorCitpbmhlcml0IHhmY2UgZGlzdHJvX2ZlYXR1cmVzX2NoZWNrCisKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyA9ICJ4MTEiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI3NTcxODg5MzY4YmU3MmRmMTg1Y2UyZDQ3MGYzNzE5OCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwOThhMzU1MTA1NjI5MDdlMTQzMWQ1YWRiZmE4MzA3NDg0YTIzNWMxZGVjNmE0M2UyZDU4ZDJhYzQyNDFmMWNiIgorCitQQUNLQUdFQ09ORklHID8/PSAiIgorUEFDS0FHRUNPTkZJR1tub3RpZnldID0gIi0tZW5hYmxlLW5vdGlmaWNhdGlvbnMsLS1kaXNhYmxlLW5vdGlmaWNhdGlvbnMsbGlibm90aWZ5IgorCitGSUxFU18ke1BOfSArPSAiJHtkYXRhZGlyfS9iYWNrZ3JvdW5kcyIK