ZGlmZiAtLWdpdCBhL29zcGY2ZC9DaGFuZ2VMb2cgYi9vc3BmNmQvQ2hhbmdlTG9nCmluZGV4IDc3NzhjNTguLmVkMjNhMmIgMTAwNjQ0Ci0tLSBhL29zcGY2ZC9DaGFuZ2VMb2cKKysrIGIvb3NwZjZkL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDA0LTEwLTA2ICBZYXN1aGlybyBPaGFyYSAgPHlhc3VAc2ZjLndpZGUuYWQuanA+CisKKwkqIG9zcGY2X3NubXAuW2NoXSwgT1NQRlYzLU1JQi50eHQ6IHN0YXJ0IHN1cHBvcnRpbmcgU05NUC4KKwlpdCBmb2xsb3dzIGRyYWZ0LWlldGYtb3NwZi1vc3BmdjMtbWliLTA4LnR4dCwgYnV0IGNoYW5nZQorCU9TUEZ2MyB0cmVlIHRvIHtleHBlcmltZW50YWwgMTAyfSBiYXNlZCBvbgorCWh0dHA6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvc21pLW51bWJlcnM6CisJUHJlZml4OiBpc28ub3JnLmRvZC5pbnRlcm5ldC5leHBlcmltZW50YWwgKDEuMy42LjEuMy4pCisJICAgMTAyICAgT1NQRnYzICAgIE9TUEYgZm9yIElQdjYgICBbSm95YWxdCisKIDIwMDQtMTAtMDMgSGFzc28gVGVwcGVyIDxoYXNzbyBhdCBxdWFnZ2EubmV0PgogCiAJKiBvc3BmNl96ZWJyYS5jOiBVc2Ugcm91dGVyIGlkIGZyb20gemVicmEgZGFlbW9uIGlmIGl0IHdhc24ndCBzZXQgaW4KZGlmZiAtLWdpdCBhL29zcGY2ZC9NYWtlZmlsZS5hbSBiL29zcGY2ZC9NYWtlZmlsZS5hbQppbmRleCBiZDNmMDdmLi5kOGQyMmJhIDEwMDY0NAotLS0gYS9vc3BmNmQvTWFrZWZpbGUuYW0KKysrIGIvb3NwZjZkL01ha2VmaWxlLmFtCkBAIC0xMSwxMyArMTEsMTUgQEAKIAlvc3BmNl9uZXR3b3JrLmMgb3NwZjZfbWVzc2FnZS5jIG9zcGY2X2xzYS5jIG9zcGY2X2xzZGIuYyBcCiAJb3NwZjZfdG9wLmMgb3NwZjZfYXJlYS5jIG9zcGY2X2ludGVyZmFjZS5jIG9zcGY2X25laWdoYm9yLmMgXAogCW9zcGY2X2Zsb29kLmMgb3NwZjZfcm91dGUuYyBvc3BmNl9pbnRyYS5jIG9zcGY2X3plYnJhLmMgXAotCW9zcGY2X3NwZi5jIG9zcGY2X3Byb3RvLmMgb3NwZjZfYXNici5jIG9zcGY2X2Fici5jIG9zcGY2ZC5jCisJb3NwZjZfc3BmLmMgb3NwZjZfcHJvdG8uYyBvc3BmNl9hc2JyLmMgb3NwZjZfYWJyLmMgb3NwZjZfc25tcC5jIFwKKwlvc3BmNmQuYwogCiBub2luc3RfSEVBREVSUyA9IFwKIAlvc3BmNl9uZXR3b3JrLmggb3NwZjZfbWVzc2FnZS5oIG9zcGY2X2xzYS5oIG9zcGY2X2xzZGIuaCBcCiAJb3NwZjZfdG9wLmggb3NwZjZfYXJlYS5oIG9zcGY2X2ludGVyZmFjZS5oIG9zcGY2X25laWdoYm9yLmggXAogCW9zcGY2X2Zsb29kLmggb3NwZjZfcm91dGUuaCBvc3BmNl9pbnRyYS5oIG9zcGY2X3plYnJhLmggXAotCW9zcGY2X3NwZi5oIG9zcGY2X3Byb3RvLmggb3NwZjZfYXNici5oIG9zcGY2X2Fici5oIG9zcGY2ZC5oCisJb3NwZjZfc3BmLmggb3NwZjZfcHJvdG8uaCBvc3BmNl9hc2JyLmggb3NwZjZfYWJyLmggb3NwZjZfc25tcC5jIFwKKwlvc3BmNmQuaAogCiBvc3BmNmRfU09VUkNFUyA9IFwKIAlvc3BmNl9tYWluLmMgJChsaWJvc3BmNl9hX1NPVVJDRVMpCmRpZmYgLS1naXQgYS9vc3BmNmQvT1NQRlYzLU1JQi50eHQgYi9vc3BmNmQvT1NQRlYzLU1JQi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU2NmNmZgotLS0gL2Rldi9udWxsCisrKyBiL29zcGY2ZC9PU1BGVjMtTUlCLnR4dApAQCAtMCwwICsxLDI3NTggQEAKK09TUEZWMy1NSUIgREVGSU5JVElPTlMgOjo9IEJFR0lOIAorIAorSU1QT1JUUyAKKyAgICAgICAgTU9EVUxFLUlERU5USVRZLCBPQkpFQ1QtVFlQRSwgbWliLTIsIAorICAgICAgICBDb3VudGVyMzIsIEdhdWdlMzIsIEludGVnZXIzMiwgSXBBZGRyZXNzLCAKKyAgICAgICAgVW5zaWduZWQzMiAKKyAgICAgICAgICAgICAgICBGUk9NIFNOTVB2Mi1TTUkgCisgICAgICAgIFRFWFRVQUwtQ09OVkVOVElPTiwgVHJ1dGhWYWx1ZSwgU3RvcmFnZVR5cGUsIFJvd1N0YXR1cyAKKyAgICAgICAgICAgICAgICBGUk9NIFNOTVB2Mi1UQyAKKyAgICAgICAgTU9EVUxFLUNPTVBMSUFOQ0UsIE9CSkVDVC1HUk9VUCAKKyAgICAgICAgICAgICAgICBGUk9NIFNOTVB2Mi1DT05GIAorICAgICAgICBJbnRlcmZhY2VJbmRleCAKKyAgICAgICAgICAgICAgICBGUk9NIElGLU1JQiAKKyAgICAgICAgSW5ldEFkZHJlc3NUeXBlLCBJbmV0QWRkcmVzcywgSW5ldEFkZHJlc3NQcmVmaXhMZW5ndGggCisgICAgICAgICAgICAgICAgRlJPTSBJTkVULUFERFJFU1MtTUlCIAorICAgICAgICBBcmVhSUQsIFJvdXRlcklELCBNZXRyaWMsIEJpZ01ldHJpYywgU3RhdHVzLCAgCisgICAgICAgIEhlbGxvUmFuZ2UsIERlc2lnbmF0ZWRSb3V0ZXJQcmlvcml0eSAKKyAgICAgICAgICAgICAgICBGUk9NIE9TUEYtTUlCOyAKKworb3NwZnYzTUlCIE1PRFVMRS1JREVOVElUWSAKKyAgICAgICAgTEFTVC1VUERBVEVEICIyMDA0MDQwODEyMDBaIiAKKyAgICAgICAgT1JHQU5JWkFUSU9OICJJRVRGIE9TUEYgV29ya2luZyBHcm91cCIgCisgICAgICAgIENPTlRBQ1QtSU5GTyAKKyAgICAgICAgICAgICJXRyBFLU1haWw6IG9zcGZAcGVhY2guZWFzZS5sc29mdC5jb20gCisgICAgICAgICAgICAgV0cgQ2hhaXJzOiBKb2huLk1veUBzeWNhbW9yZW5ldC5jb20gICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjZWVAcmVkYmFjay5jb20gCisgICAgICAgICAgICAgICAgICAgICAgICByb2hpdEB4ZWJlby5jb20gCisgCisgICAgICAgICAgICAgRGFuIEpveWFsIAorICAgICAgICAgICAgIE5vcnRlbCBOZXR3b3JrcyAKKyAgICAgICAgICAgICA2MDAgVGVjaG5vbG9neSBQYXJrIERyaXZlIAorICAgICAgICAgICAgIEJpbGxlcmljYSwgTUEgIDAxODIxLCBVU0EgCisgICAgICAgICAgICAgZGpveWFsQG5vcnRlbG5ldHdvcmtzLmNvbSAKKyAKKyAgICAgICAgICAgICBWaXNod2FzIE1hbnJhbCAKKyAgICAgICAgICAgICBTaU5ldHQgQ29ycG9yYXRpb24gCisgICAgICAgICAgICAgMi8xLCBGaXJzdCBGbG9vciAKKyAgICAgICAgICAgICBFbWJhc3N5IEljb24gQW5uZXggCisgICAgICAgICAgICAgSW5mYW50cnkgUm9hZCAKKyAgICAgICAgICAgICBCYW5nYWxvcmUgNTYwMDAxIAorICAgICAgICAgICAgIHZpc2h3YXNAc2luZXR0LmNvbSIgCisgCisgICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICAiVGhlIE1JQiBtb2R1bGUgdG8gZGVzY3JpYmUgT1NQRiB2ZXJzaW9uIDMiIAorICAgICAgICAgUkVWSVNJT04gIjIwMDQwNDA4MTIwMFoiIAorICAgICAgICAgREVTQ1JJUFRJT04gLS0gUkZDIEVkaXRvciBhc3NpZ25zIFJGQyB4eHh4IAorICAgICAgICAgICAgICJJbml0aWFsIHZlcnNpb24sIHB1Ymxpc2hlZCBhcyBSRkMgeHh4eCIgCisgICAgICAgICA6Oj0geyBtaWItMiB4eCB9IC0tIElBTkEgYXNzaWducyB4eCAKKyAKKy0tIFRleHVhbCBjb252ZW50aW9ucyAKKyAKK1VwVG9SZWZyZXNoSW50ZXJ2YWwgOjo9IFRFWFRVQUwtQ09OVkVOVElPTiAKKyAgICAgICAgIFNUQVRVUyAgICAgICAgY3VycmVudCAKKyAgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSB2YWx1ZXMgb25lIG1pZ2h0IGJlIGFibGUgdG8gY29uZmlndXJlIGZvciAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgdmFyaWFibGVzIGJvdW5kZWQgYnkgdGhlIFJlZnJlc2ggSW50ZXJ2YWwiIAorICAgICAgICAgU1lOVEFYICAgICAgICBJbnRlZ2VyMzIgKDEuLjE4MDApIAorIAorUm91dGVyRGVhZFJhbmdlIDo6PSBURVhUVUFMLUNPTlZFTlRJT04gCisgICAgICAgICBTVEFUVVMgICAgICAgIGN1cnJlbnQgCisgICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgcmFuZ2Ugb2YgaW50ZXJ2YWxzIGluIHNlY29uZHMgdGhhdCBhIHJvdXRlcnMgaGVsbG8gCisgICAgICAgICAgICBtdXN0IGhhdmUgbm90IGJlZW4gc2VlbiBiZWZvcmUgYSBuZWlnaGJvciBkZWNsYXJlcyB0aGUgCisgICAgICAgICAgICByb3V0ZXIgZG93biIgCisgICAgICAgICBTWU5UQVggICAgICAgIEludGVnZXIzMiAoMS4uxkZGRkbGaCkgCisKKyAKKy0tIFRvcC1sZXZlbCBzdHJ1Y3R1cmUgb2YgTUlCIAorb3NwZnYzT2JqZWN0cyAgICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgb3NwZnYzTUlCIDEgfSAKK29zcGZ2M0NvbmZvcm1hbmNlICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG9zcGZ2M01JQiAyIH0gCisgCistLSBPU1BGdjMgR2VuZXJhbCBWYXJpYWJsZXMgCisgCistLSBUaGVzZSBwYXJhbWV0ZXJzIGFwcGx5IGdsb2JhbGx5IHRvIHRoZSBSb3V0ZXIncyAKKy0tIE9TUEZ2MyBQcm9jZXNzLiAKKyAKK29zcGZ2M0dlbmVyYWxHcm91cCBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBvc3BmdjNPYmplY3RzIDEgfSAKKyAKK29zcGZ2M1JvdXRlcklkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICBSb3V0ZXJJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgcmVhZC13cml0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSAgMzItYml0ICBpbnRlZ2VyICB1bmlxdWVseSAgaWRlbnRpZnlpbmcgIHRoZSAKKyAgICAgICAgICAgIHJvdXRlciBpbiB0aGUgQXV0b25vbW91cyBTeXN0ZW0uIAorICAgICAgICAgICAgVG8gIGVuc3VyZSAgdW5pcXVlbmVzcywgdGhpcyBtYXkgCisgICAgICAgICAgICBkZWZhdWx0ICB0byAgdGhlICB2YWx1ZSAgb2YgIG9uZSBvZiB0aGUgCisgICAgICAgICAgICByb3V0ZXIncyBJUHY0IGludGVyZmFjZSBhZGRyZXNzZXMgaWYgSVB2NCBpcyAKKyAgICAgICAgICAgIGNvbmZpZ3VyZWQgb24gdGhlIHJvdXRlci4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgMSB9IAorIAorb3NwZnYzQWRtaW5TdGF0IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgU3RhdHVzIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC13cml0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSAgYWRtaW5pc3RyYXRpdmUgIHN0YXR1cyAgb2YgIE9TUEZ2MyAgaW4gIHRoZSAKKyAgICAgICAgICAgIHJvdXRlci4gICBUaGUgIHZhbHVlICdlbmFibGVkJyBkZW5vdGVzIHRoYXQgdGhlIAorICAgICAgICAgICAgT1NQRnYzIFByb2Nlc3MgaXMgYWN0aXZlIG9uIGF0IGxlYXN0ICBvbmUgIGludGVyLSAKKyAgICAgICAgICAgIGZhY2U7ICAnZGlzYWJsZWQnICBkaXNhYmxlcyAgaXQgIG9uICBhbGwgaW50ZXItIAorICAgICAgICAgICAgZmFjZXMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR2VuZXJhbEdyb3VwIDIgfSAKKyAKK29zcGZ2M1ZlcnNpb25OdW1iZXIgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJTlRFR0VSIHsgdmVyc2lvbjMoMykgfSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSB2ZXJzaW9uIG51bWJlciBvZiBPU1BGIGZvciBJUHY2IGlzIDMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR2VuZXJhbEdyb3VwIDMgfSAKKyAKK29zcGZ2M0FyZWFCZHJSdHJTdGF0dXMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBUcnV0aFZhbHVlIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSBmbGFnIHRvIG5vdGUgd2hldGhlciB0aGlzIHJvdXRlciBpcyBhbiAgYXJlYSAKKyAgICAgICAgICAgIGJvcmRlciByb3V0ZXIuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBTZWN0aW9uIDMgU3BsaXR0aW5nIHRoZSBBUyBpbnRvIAorICAgICAgICAgICAgQXJlYXMiIAorICAgICAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgNCB9IAorIAorb3NwZnYzQVNCZHJSdHJTdGF0dXMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBUcnV0aFZhbHVlIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC13cml0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkEgZmxhZyB0byBub3RlIHdoZXRoZXIgdGhpcyByb3V0ZXIgaXMgIGNvbmZpZy0gCisgICAgICAgICAgICB1cmVkIGFzIGFuIEF1dG9ub21vdXMgU3lzdGVtIGJvcmRlciByb3V0ZXIuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBTZWN0aW9uIDMuMyAgQ2xhc3NpZmljYXRpb24gIG9mIAorICAgICAgICAgICAgcm91dGVycyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCA1IH0gCisgCitvc3BmdjNBc1Njb3BlTHNhQ291bnQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBHYXVnZTMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBBUy1TY29wZSAoZS5nLiBBUy1FeHRlcm5hbCkgbGluay1zdGF0ZSAKKyAgICAgICAgICAgIGFkdmVydGlzZW1lbnRzIGluIHRoZSBsaW5rLXN0YXRlIGRhdGFiYXNlLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCA2IH0gCisgCitvc3BmdjNBc1Njb3BlTHNhQ2tzdW1TdW0gT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlZ2VyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgMzItYml0IHVuc2lnbmVkIHN1bSBvZiB0aGUgTFMgY2hlY2tzdW1zIG9mIAorICAgICAgICAgICAgdGhlICBBUy1zY29wZWQgbGluay1zdGF0ZSBhZHZlcnRpc2VtZW50cyAgY29uLSAKKyAgICAgICAgICAgIHRhaW5lZCBpbiB0aGUgbGluay1zdGF0ZSBkYXRhYmFzZS4gVGhpcyBzdW0gCisgICAgICAgICAgICBjYW4gIGJlICB1c2VkICB0byBkZXRlcm1pbmUgaWYgdGhlcmUgaGFzIGJlZW4gYSAKKyAgICAgICAgICAgIGNoYW5nZSBpbiBhIHJvdXRlcidzIGxpbmsgc3RhdGUgIGRhdGFiYXNlLCAgYW5kIAorICAgICAgICAgICAgdG8gIGNvbXBhcmUgIHRoZSAgbGluay1zdGF0ZSAgZGF0YWJhc2UgIG9mICB0d28gCisgICAgICAgICAgICByb3V0ZXJzLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCA3IH0gCisgCitvc3BmdjNPcmlnaW5hdGVOZXdMc2FzIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQ291bnRlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiAgbmV3ICBsaW5rLXN0YXRlICBhZHZlcnRpc2VtZW50cyAKKyAgICAgICAgICAgIHRoYXQgIGhhdmUgYmVlbiBvcmlnaW5hdGVkLiAgVGhpcyBudW1iZXIgaXMgaW4tIAorICAgICAgICAgICAgY3JlbWVudGVkIGVhY2ggdGltZSB0aGUgcm91dGVyIG9yaWdpbmF0ZXMgYSBuZXcgCisgICAgICAgICAgICBMU0EuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR2VuZXJhbEdyb3VwIDggfSAKKyAKK29zcGZ2M1J4TmV3THNhcyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIENvdW50ZXIzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgIGxpbmstc3RhdGUgIGFkdmVydGlzZW1lbnRzICByZS0gCisgICAgICAgICAgICBjZWl2ZWQgIGRldGVybWluZWQgIHRvICBiZSAgbmV3IGluc3RhbnRpYXRpb25zLiAKKyAgICAgICAgICAgIFRoaXMgbnVtYmVyIGRvZXMgbm90IGluY2x1ZGUgIG5ld2VyICBpbnN0YW50aWEtIAorICAgICAgICAgICAgdGlvbnMgIG9mIHNlbGYtb3JpZ2luYXRlZCBsaW5rLXN0YXRlIGFkdmVydGlzZS0gCisgICAgICAgICAgICBtZW50cy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgOSB9IAorIAorb3NwZnYzRXh0THNhQ291bnQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBHYXVnZTMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBFeHRlcm5hbChMUyB0eXBlIDB4NDAwNSkgaW4gdGhlIGxpbmstCisgICAgICAgICAgICBzdGF0ZSBkYXRhYmFzZSIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCAxMCB9IAorIAorIAorb3NwZnYzRXh0QXJlYUxzZGJMaW1pdCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVnZXIzMiAoLTEuLic3RkZGRkZGRidoKSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtd3JpdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgIG1heGltdW0gICBudW1iZXIgICBvZiAgIG5vbi1kZWZhdWx0ICAgQVMtIAorICAgICAgICAgICAgZXh0ZXJuYWwtTFNBcyBlbnRyaWVzIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiB0aGUgCisgICAgICAgICAgICBsaW5rLXN0YXRlIGRhdGFiYXNlLiAgSWYgdGhlIHZhbHVlIGlzIC0xLCB0aGVuIAorICAgICAgICAgICAgdGhlcmUgaXMgbm8gbGltaXQuIAorIAorICAgICAgICAgICAgV2hlbiB0aGUgbnVtYmVyIG9mIG5vbi1kZWZhdWx0IEFTLWV4dGVybmFsLUxTQXMgCisgICAgICAgICAgICBpbiAgIGEgIHJvdXRlcidzICBsaW5rLXN0YXRlICBkYXRhYmFzZSAgcmVhY2hlcyAKKyAgICAgICAgICAgIG9zcGZ2M0V4dEFyZWFMc2RiTGltaXQsIHRoZSByb3V0ZXIgIGVudGVycyAgT3ZlcmZsb3ctIAorICAgICAgICAgICAgU3RhdGUuICAgVGhlICAgcm91dGVyICBuZXZlciAgaG9sZHMgIG1vcmUgIHRoYW4gCisgICAgICAgICAgICBvc3BmdjNFeHRBcmVhTHNkYkxpbWl0ICBub24tZGVmYXVsdCAgQVMtZXh0ZXJuYWwtTFNBcyAKKyAgICAgICAgICAgIGluICBpdHMgIGRhdGFiYXNlLiBPc3BmRXh0QXJlYUxzZGJMaW1pdCBNVVNUIGJlIHNldCAKKyAgICAgICAgICAgIGlkZW50aWNhbGx5IGluIGFsbCByb3V0ZXJzIGF0dGFjaGVkIHRvIHRoZSBPU1BGdjMgCisgICAgICAgICAgICBiYWNrYm9uZSAgYW5kL29yICBhbnkgcmVndWxhciBPU1BGdjMgYXJlYS4gKGkuZS4sIAorICAgICAgICAgICAgT1NQRnYzIHN0dWIgYXJlYXMgYW5kIE5TU0FzIGFyZSBleGNsdWRlZCkuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR2VuZXJhbEdyb3VwIDExIH0gCisgCitvc3BmdjNNdWx0aWNhc3RFeHRlbnNpb25zIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQklUUyB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50cmFBcmVhTXVsdGljYXN0KDApLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyQXJlYU11bHRpY2FzdCgxKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlckFzTXVsdGljYXN0KDIpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC13cml0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkEgQml0IE1hc2sgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSByb3V0ZXIgaXMgCisgICAgICAgICAgICBmb3J3YXJkaW5nIElQdjYgbXVsdGljYXN0IGRhdGFncmFtcyAKKyAgICAgICAgICAgIGJhc2VkIG9uIHRoZSBhbGdvcml0aG1zIGRlZmluZWQgaW4gdGhlICBNdWx0aS0gCisgICAgICAgICAgICBjYXN0IEV4dGVuc2lvbnMgdG8gT1NQRi4gCisgCisgICAgICAgICAgICBJZiBpbnRyYUFyZWFNdWx0aWNhc3Qgc2V0LCBpbmRpY2F0ZXMgdGhhdCB0aGUgcm91dGVyIAorICAgICAgICAgICAgY2FuIGZvcndhcmQgIElQdjYgbXVsdGljYXN0IGRhdGFncmFtcyBpbiB0aGUgcm91dGVyJ3MgCisgICAgICAgICAgICBkaXJlY3RseSBhdHRhY2hlZCBhcmVhcyAoY2FsbGVkIGludHJhLWFyZWEgbXVsLSAKKyAgICAgICAgICAgIHRpY2FzdCByb3V0aW5nKS4gCisgCisgICAgICAgICAgICBJZiBpbnRlckFyZWFNdWx0aWNhc3Qgc2V0LCBpbmRpY2F0ZXMgdGhhdCB0aGUgcm91dGVyIAorICAgICAgICAgICAgY2FuIGZvcndhcmQgSVB2NiBtdWx0aWNhc3QgZGF0YWdyYW1zIGJldHdlZW4gT1NQRnYzIAorICAgICAgICAgICAgYXJlYXMgKGNhbGxlZCBpbnRlci1hcmVhIG11bHRpY2FzdCByb3V0aW5nKS4gCisgCisgICAgICAgICAgICBJZiBpbnRlckFzTXVsdGljYXN0IHNldCwgaW5kaWNhdGVzIHRoYXQgdGhlIHJvdXRlciBjYW4gCisgICAgICAgICAgICBmb3J3YXJkICBJUHY2ICBtdWx0aWNhc3QgZGF0YWdyYW1zIGJldHdlZW4gQXV0by0gCisgICAgICAgICAgICBub21vdXMgU3lzdGVtcyAoY2FsbGVkIGludGVyLUFTIG11bHRpY2FzdCByb3V0LSAKKyAgICAgICAgICAgIGluZykuIAorIAorICAgICAgICAgICAgT25seSBjZXJ0YWluIGNvbWJpbmF0aW9ucyBvZiBiaXQgc2V0dGluZ3MgYXJlIAorICAgICAgICAgICAgYWxsb3dlZCwgbmFtZWx5OiAKKyAgICAgICAgICAgICAgICAgICAgLSBBbGwgYml0cyBjbGVhcmVkIChubyBtdWx0aWNhc3RpbmcpIAorICAgICAgICAgICAgICAgICAgICAtIGludHJhQXJlYU11bHRpY2FzdCBvbmx5LCAKKyAgICAgICAgICAgICAgICAgICAgLSBpbnRyYUFyZWFNdWx0aWNhc3QgYW5kIGludGVyQXJlYU11bHRpY2FzdCwgCisgICAgICAgICAgICAgICAgICAgIC0gaW50cmFBcmVhTXVsdGljYXN0IGFuZCBpbnRlckFzTXVsdGljYXN0IAorICAgICAgICAgICAgICAgICAgICAtIGludHJhQXJlYU11bHRpY2FzdCwgaW50ZXJBcmVhTXVsdGljYXN0IGFuZCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlckFzTXVsdGljYXN0IAorICAgICAgICAgICAgQnkgZGVmYXVsdCwgYWxsIGJpdHMgYXJlIGNsZWFyZWQuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR2VuZXJhbEdyb3VwIDEyIH0gCisgCitvc3BmdjNFeGl0T3ZlcmZsb3dJbnRlcnZhbCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFVuc2lnbmVkMzIgCisgICAgICAgIFVOSVRTICAgICAgICAgICAic2Vjb25kcyIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLXdyaXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiAgc2Vjb25kcyAgdGhhdCwgIGFmdGVyICBlbnRlcmluZyAKKyAgICAgICAgICAgIE92ZXJmbG93U3RhdGUsICBhICByb3V0ZXIgd2lsbCBhdHRlbXB0IHRvIGxlYXZlIAorICAgICAgICAgICAgT3ZlcmZsb3dTdGF0ZS4gVGhpcyBhbGxvd3MgdGhlIHJvdXRlciB0byAgYWdhaW4gCisgICAgICAgICAgICBvcmlnaW5hdGUgIG5vbi1kZWZhdWx0ICBBUy1FeHRlcm5hbC1MU0FzLiAgV2hlbiAKKyAgICAgICAgICAgIHNldCB0byAwLCB0aGUgcm91dGVyIHdpbGwgbm90ICBsZWF2ZSAgT3ZlcmZsb3ctIAorICAgICAgICAgICAgU3RhdGUgdW50aWwgcmVzdGFydGVkLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCAxMyB9IAorIAorb3NwZnYzRGVtYW5kRXh0ZW5zaW9ucyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgVHJ1dGhWYWx1ZSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgcmVhZC13cml0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHJvdXRlcidzIHN1cHBvcnQgZm9yIGRlbWFuZCByb3V0aW5nLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgQXBwZW5kaXggb24gRGVtYW5kIFJvdXRpbmciIAorICAgICAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgMTQgfSAKKyAKK29zcGZ2M1RyYWZmaWNFbmdpbmVlcmluZ1N1cHBvcnQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBUcnV0aFZhbHVlIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC13cml0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSByb3V0ZXIncyBzdXBwb3J0IGZvciB0cmFmZmljIGVuZ2luZWVyaW5nIAorICAgICAgICAgICAgZXh0ZW5zaW9ucy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgMTUgfSAKKyAKK29zcGZ2M1JlZmVyZW5jZUJhbmR3aWR0aCBPQkpFQ1QtVFlQRSAgCisgICAgICAgU1lOVEFYICAgICAgIFVuc2lnbmVkMzIgIAorICAgICAgIE1BWC1BQ0NFU1MgICByZWFkLXdyaXRlICAKKyAgICAgICBTVEFUVVMgICAgICAgY3VycmVudCAgCisgICAgICAgREVTQ1JJUFRJT04gIAorICAgICAgICAgICJSZWZlcmVuY2UgYmFuZHdpZHRoIGluIGtpbG9iaXRzL3NlY29uZCBmb3IgIAorICAgICAgICAgIGNhbGN1bGF0aW5nIGRlZmF1bHQgaW50ZXJmYWNlIG1ldHJpY3MuIFRoZSAgCisgICAgICAgICAgZGVmYXVsdCB2YWx1ZSBpcyAxMDAsMDAwIEtCUFMgKDEwMCBNQlBTKSIgIAorICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCAxNiB9IAorIAorb3NwZnYzUmVzdGFydFN1cHBvcnQgT0JKRUNULVRZUEUgIAorICAgICAgIFNZTlRBWCAgICAgICBJTlRFR0VSIHsgbm9uZSAoMSksICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW5uZWRPbmx5ICgyKSwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbm5lZEFuZFVucGxhbm5lZCAoMykgIAorICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgTUFYLUFDQ0VTUyAgIHJlYWQtd3JpdGUgIAorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50ICAKKyAgICAgICBERVNDUklQVElPTiAgCisgICAgICAgICAgIlRoZSByb3V0ZXIncyBzdXBwb3J0IGZvciBPU1BGIGhpdGxlc3MgcmVzdGFydC4gIAorICAgICAgICAgIE9wdGlvbnMgaW5jbHVkZTogbm8gcmVzdGFydCBzdXBwb3J0LCBvbmx5IHBsYW5uZWQgIAorICAgICAgICAgIHJlc3RhcnRzIG9yIGJvdGggcGxhbm5lZCBhbmQgdW5wbGFubmVkIHJlc3RhcnRzLiIgIAorICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCAxNyB9ICAKKyAgICAKK29zcGZ2M1Jlc3RhcnRJbnRlcnZhbCBPQkpFQ1QtVFlQRSAgCisgICAgICAgU1lOVEFYICAgICAgIFVwVG9SZWZyZXNoSW50ZXJ2YWwgCisgICAgICAgVU5JVFMgICAgICAgICJzZWNvbmRzIiAgCisgICAgICAgTUFYLUFDQ0VTUyAgIHJlYWQtd3JpdGUgIAorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50ICAKKyAgICAgICBERVNDUklQVElPTiAgCisgICAgICAgICAgIkNvbmZpZ3VyZWQgT1NQRiBoaXRsZXNzIHJlc3RhcnQgdGltZW91dCBpbnRlcnZhbC4iICAKKyAgICAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgMTggfSAgCisgICAgCitvc3BmdjNSZXN0YXJ0U3RhdHVzIE9CSkVDVC1UWVBFICAKKyAgICAgICBTWU5UQVggICAgICAgSU5URUdFUiB7IG5vdFJlc3RhcnRpbmcgKDEpLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFubmVkUmVzdGFydCAoMiksICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGxhbm5lZFJlc3RhcnQgKDMpICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAKKyAgICAgICBNQVgtQUNDRVNTICAgcmVhZC1vbmx5ICAKKyAgICAgICBTVEFUVVMgICAgICAgY3VycmVudCAgCisgICAgICAgREVTQ1JJUFRJT04gIAorICAgICAgICAgICJDdXJyZW50IHN0YXR1cyBvZiBPU1BGIGhpdGxlc3MgcmVzdGFydC4iICAKKyAgICAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgMTkgfSAgCisgICAgCitvc3BmdjNSZXN0YXJ0QWdlIE9CSkVDVC1UWVBFICAKKyAgICAgICBTWU5UQVggICAgICAgVXBUb1JlZnJlc2hJbnRlcnZhbCAKKyAgICAgICBVTklUUyAgICAgICAgInNlY29uZHMiICAKKyAgICAgICBNQVgtQUNDRVNTICAgcmVhZC1vbmx5ICAKKyAgICAgICBTVEFUVVMgICAgICAgY3VycmVudCAgCisgICAgICAgREVTQ1JJUFRJT04gIAorICAgICAgICAgICJSZW1haW5pbmcgdGltZSBpbiBjdXJyZW50IE9TUEYgaGl0bGVzcyByZXN0YXJ0ICAKKyAgICAgICAgICBpbnRlcnZhbC4iICAKKyAgICAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgMjAgfSAgCisgICAgCitvc3BmdjNSZXN0YXJ0RXhpdFJlYXNvbiBPQkpFQ1QtVFlQRSAgCisgICAgICAgU1lOVEFYICAgICAgIElOVEVHRVIgeyBub25lICgxKSwgICAgICAgICAgIC0tIG5vbmUgYXR0ZW1wdGVkICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluUHJvZ3Jlc3MgKDIpLCAgICAgLS0gcmVzdGFydCBpbiAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHByb2dyZXNzICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZCAoMyksICAgICAgLS0gc3VjY2Vzc2Z1bGx5ICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gY29tcGxldGVkICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVkT3V0ICg0KSwgICAgICAgLS0gdGltZWQgb3V0ICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcG9sb2d5Q2hhbmdlZCAoNSkgLS0gYWJvcnRlZCBkdWUgdG8gIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSB0b3BvbG9neWNoYW5nZS4gIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gIAorICAgICAgIE1BWC1BQ0NFU1MgICByZWFkLW9ubHkgIAorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50ICAKKyAgICAgICBERVNDUklQVElPTiAgCisgICAgICAgICAgIkRlc2NyaWJlcyB0aGUgb3V0Y29tZSBvZiB0aGUgbGFzdCBhdHRlbXB0IGF0IGEgIAorICAgICAgICAgIGhpdGxlc3MgcmVzdGFydC4gSWYgdGhlIHZhbHVlIGlzICdub25lJywgbm8gcmVzdGFydCAgCisgICAgICAgICAgIGhhcyB5ZXQgYmVlbiBhdHRlbXB0ZWQuIElmIHRoZSB2YWx1ZSBpcyAnaW5Qcm9ncmVzcycsICAKKyAgICAgICAgICBhIHJlc3RhcnQgYXR0ZW1wdCBpcyBjdXJyZW50bHkgdW5kZXJ3YXkuIiAgCisgICAgOjo9IHsgb3NwZnYzR2VuZXJhbEdyb3VwIDIxIH0gCisgCisgCistLSBUaGUgT1NQRnYzIEFyZWEgRGF0YSBTdHJ1Y3R1cmUgY29udGFpbnMgaW5mb3JtYXRpb24gCistLSByZWdhcmRpbmcgdGhlIHZhcmlvdXMgYXJlYXMuIFRoZSBpbnRlcmZhY2VzIGFuZCAKKy0tIHZpcnR1YWwgbGlua3MgYXJlIGNvbmZpZ3VyZWQgYXMgcGFydCBvZiB0aGVzZSBhcmVhcy4gCistLSBBcmVhIDAuMC4wLjAsIGJ5IGRlZmluaXRpb24sIGlzIHRoZSBCYWNrYm9uZSBBcmVhIAorIAorb3NwZnYzQXJlYVRhYmxlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgU0VRVUVOQ0UgT0YgT3NwZnYzQXJlYUVudHJ5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJJbmZvcm1hdGlvbiBkZXNjcmliaW5nIHRoZSBjb25maWd1cmVkICBwYXJhbWUtIAorICAgICAgICAgICAgdGVycyAgYW5kIGN1bXVsYXRpdmUgc3RhdGlzdGljcyBvZiB0aGUgcm91dGVyJ3MgCisgICAgICAgICAgICBhdHRhY2hlZCBhcmVhcy4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gNiBUaGUgQXJlYSBEYXRhIFN0cnVjLSAKKyAgICAgICAgICAgIHR1cmUiIAorICAgICAgICA6Oj0geyBvc3BmdjNPYmplY3RzIDIgfSAKKyAKK29zcGZ2M0FyZWFFbnRyeSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIE9zcGZ2M0FyZWFFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiSW5mb3JtYXRpb24gZGVzY3JpYmluZyB0aGUgY29uZmlndXJlZCBwYXJhbWUtIAorICAgICAgICAgICAgdGVycyBhbmQgY3VtdWxhdGl2ZSBzdGF0aXN0aWNzIG9mIG9uZSBvZiB0aGUgCisgICAgICAgICAgICByb3V0ZXIncyBhdHRhY2hlZCBhcmVhcy4iIAorICAgICAgICBJTkRFWCAgICAgICAgICAgeyBvc3BmdjNBcmVhSWQgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYVRhYmxlIDEgfSAKKyAKK09zcGZ2M0FyZWFFbnRyeSA6Oj0gU0VRVUVOQ0UgeyAKKyAgICAgICAgb3NwZnYzQXJlYUlkIAorICAgICAgICAgICAgICAgIEFyZWFJRCwgCisgICAgICAgIG9zcGZ2M0ltcG9ydEFzRXh0ZXJuIAorICAgICAgICAgICAgICAgIElOVEVHRVIsIAorICAgICAgICBvc3BmdjNBcmVhU3BmUnVucyAKKyAgICAgICAgICAgICAgICBDb3VudGVyMzIsIAorICAgICAgICBvc3BmdjNBcmVhQmRyUnRyQ291bnQgCisgICAgICAgICAgICAgICAgR2F1Z2UzMiwgCisgICAgICAgIG9zcGZ2M0FyZWFBc0JkclJ0ckNvdW50IAorICAgICAgICAgICAgICAgIEdhdWdlMzIsIAorICAgICAgICBvc3BmdjNBcmVhU2NvcGVMc2FDb3VudCAKKyAgICAgICAgICAgICAgICBHYXVnZTMyLCAKKyAgICAgICAgb3NwZnYzQXJlYVNjb3BlTHNhQ2tzdW1TdW0gCisgICAgICAgICAgICAgICAgSW50ZWdlcjMyLCAKKyAgICAgICAgb3NwZnYzQXJlYVN1bW1hcnkgCisgICAgICAgICAgICAgICAgSU5URUdFUiwgCisgICAgICAgIG9zcGZ2M0FyZWFTdGF0dXMgCisgICAgICAgICAgICAgICAgUm93U3RhdHVzLCAKKyAgICAgICAgb3NwZnYzU3R1Yk1ldHJpYyAKKyAgICAgICAgICAgICAgICBCaWdNZXRyaWMsIAorICAgICAgICBvc3BmdjNBcmVhTnNzYVRyYW5zbGF0b3JSb2xlIAorICAgICAgICAgICAgICAgIElOVEVHRVIsIAorICAgICAgICBvc3BmdjNBcmVhTnNzYVRyYW5zbGF0b3JTdGF0ZSAKKyAgICAgICAgICAgICAgICBJTlRFR0VSLCAKKyAgICAgICAgb3NwZnYzQXJlYU5zc2FUcmFuc2xhdG9yU3RhYmlsaXR5SW50ZXJ2YWwgCisgICAgICAgICAgICAgICAgVW5zaWduZWQzMiwgCisgICAgICAgIG9zcGZ2M0FyZWFOc3NhVHJhbnNsYXRvckV2ZW50cyAKKyAgICAgICAgICAgICAgICBDb3VudGVyMzIsIAorICAgICAgICBvc3BmdjNBcmVhU3R1Yk1ldHJpY1R5cGUgCisgICAgICAgICAgICAgICAgSU5URUdFUiAKKyAgICAgICAgfSAKKyAKK29zcGZ2M0FyZWFJZCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEFyZWFJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSAzMi1iaXQgaW50ZWdlciB1bmlxdWVseSBpZGVudGlmeWluZyBhbiBhcmVhLiAKKyAgICAgICAgICAgIEFyZWEgSUQgMC4wLjAuMCBpcyB1c2VkIGZvciB0aGUgT1NQRnYzIGJhY2tib25lLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgQXBwZW5kaXggQy4yIEFyZWEgcGFyYW1ldGVycyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFFbnRyeSAxIH0gCisgCitvc3BmdjNJbXBvcnRBc0V4dGVybiBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIElOVEVHRVIgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydEV4dGVybmFsKDEpLCAgIC0tIG5vcm1hbCBhcmVhIAorICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0Tm9FeHRlcm5hbCgyKSwgLS0gc3R1YiBhcmVhIAorICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0TnNzYSgzKSAgICAgICAgLS0gbm90LXNvLXN0dWJieS1hcmVhIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiSW5kaWNhdGVzIHdoZXRoZXIgYW4gYXJlYSBpcyBhIFN0dWIgYXJlYSwgTlNTQSwgb3IgCisgICAgICAgICAgICBzdGFuZGFyZCBhcmVhLiBBUy1zY29wZSBMU0FzIGFyZSBub3QgaW1wb3J0ZWQgaW50byBTdHViIAorICAgICAgICAgICAgQXJlYXMgb3IgTlNTQXMuIE5TU0FzIGltcG9ydCBBUy1FeHRlcm5hbCBkYXRhIGFzIFR5cGUtNyAKKyAgICAgICAgICAgIExTQXMgd2hpY2ggaGF2ZSBBcmVhLXNjb3BlIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBBcHBlbmRpeCBDLjIgQXJlYSBwYXJhbWV0ZXJzIiAKKyAgICAgICAgREVGVkFMIHsgaW1wb3J0RXh0ZXJuYWwgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUVudHJ5IDIgfSAKKyAKK29zcGZ2M0FyZWFTcGZSdW5zIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQ291bnRlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiB0aW1lcyB0aGF0IHRoZSBpbnRyYS1hcmVhICByb3V0ZSAKKyAgICAgICAgICAgIHRhYmxlICBoYXMgIGJlZW4gIGNhbGN1bGF0ZWQgIHVzaW5nIHRoaXMgYXJlYSdzIAorICAgICAgICAgICAgbGluay1zdGF0ZSBkYXRhYmFzZS4gIFRoaXMgIGlzICB0eXBpY2FsbHkgIGRvbmUgCisgICAgICAgICAgICB1c2luZyBEaWprc3RyYSdzIGFsZ29yaXRobS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhRW50cnkgMyB9IAorIAorb3NwZnYzQXJlYUJkclJ0ckNvdW50IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgR2F1Z2UzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgYXJlYSBib3JkZXIgcm91dGVycyByZWFjaC0gCisgICAgICAgICAgICBhYmxlIHdpdGhpbiB0aGlzIGFyZWEuICBUaGlzIGlzIGluaXRpYWxseSB6ZXJvLCAKKyAgICAgICAgICAgIGFuZCBpcyBjYWxjdWxhdGVkIGluIGVhY2ggU1BGIFBhc3MuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUVudHJ5IDQgfSAKKyAKK29zcGZ2M0FyZWFBc0JkclJ0ckNvdW50IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgR2F1Z2UzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgQXV0b25vbW91cyAgU3lzdGVtICBib3JkZXIgCisgICAgICAgICAgICByb3V0ZXJzICByZWFjaGFibGUgIHdpdGhpbiAgdGhpcyBhcmVhLiAgVGhpcyBpcyAKKyAgICAgICAgICAgIGluaXRpYWxseSB6ZXJvLCBhbmQgaXMgY2FsY3VsYXRlZCBpbiAgZWFjaCAgU1BGIAorICAgICAgICAgICAgUGFzcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhRW50cnkgNSB9IAorIAorb3NwZnYzQXJlYVNjb3BlTHNhQ291bnQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBHYXVnZTMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBBcmVhLVNjb3BlIGxpbmstc3RhdGUgIAorICAgICAgICAgICAgYWR2ZXJ0aXNlbWVudHMgaW4gIHRoaXMgIGFyZWEncyBsaW5rLXN0YXRlICAKKyAgICAgICAgICAgIGRhdGFiYXNlLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFFbnRyeSA2IH0gCisgCitvc3BmdjNBcmVhU2NvcGVMc2FDa3N1bVN1bSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVnZXIzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSAzMi1iaXQgdW5zaWduZWQgc3VtIG9mIHRoZSBBcmVhLVNjb3BlIGxpbmstc3RhdGUgCisgICAgICAgICAgICBhZHZlcnRpc2VtZW50cycgIExTICBjaGVja3N1bXMgIGNvbnRhaW5lZCBpbiB0aGlzIAorICAgICAgICAgICAgYXJlYSdzIGxpbmstc3RhdGUgZGF0YWJhc2UuICBUaGUgc3VtIGNhbiBiZSB1c2VkIAorICAgICAgICAgICAgdG8gZGV0ZXJtaW5lIGlmICB0aGVyZSAgaGFzIGJlZW4gIGEgIGNoYW5nZSAgaW4gYSAKKyAgICAgICAgICAgIHJvdXRlcidzIGxpbmsgc3RhdGUgZGF0YWJhc2UsIGFuZCB0byBjb21wYXJlIHRoZSAKKyAgICAgICAgICAgIGxpbmstc3RhdGUgZGF0YWJhc2Ugb2YgdHdvIHJvdXRlcnMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUVudHJ5IDcgfSAKKyAKK29zcGZ2M0FyZWFTdW1tYXJ5IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSU5URUdFUiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgbm9BcmVhU3VtbWFyeSgxKSwgCisgICAgICAgICAgICAgICAgICAgICAgICBzZW5kQXJlYVN1bW1hcnkoMikgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgdmFyaWFibGUgb3NwZnYzQXJlYVN1bW1hcnkgY29udHJvbHMgdGhlICBpbS0gCisgICAgICAgICAgICBwb3J0ICBvZiAgSW50ZXItQXJlYSBMU0FzIGludG8gc3R1YiBhcmVhcy4gIEl0IGhhcyAKKyAgICAgICAgICAgIG5vIGVmZmVjdCBvbiBvdGhlciBhcmVhcy4gCisgCisgICAgICAgICAgICBJZiBpdCBpcyBub0FyZWFTdW1tYXJ5LCB0aGUgcm91dGVyIHdpbGwgbmVpdGhlciAKKyAgICAgICAgICAgIG9yaWdpbmF0ZSAgbm9yICBwcm9wYWdhdGUgSW50ZXItQXJlYSBMU0FzIGludG8gdGhlIAorICAgICAgICAgICAgc3R1YiBhcmVhLiAgSXQgd2lsbCByZWx5IGVudGlyZWx5ICBvbiAgaXRzICBkZS0gCisgICAgICAgICAgICBmYXVsdCByb3V0ZS4gCisgCisgICAgICAgICAgICBJZiBpdCBpcyBzZW5kQXJlYVN1bW1hcnksIHRoZSByb3V0ZXIgd2lsbCAgYm90aCAKKyAgICAgICAgICAgIHN1bW1hcml6ZSBhbmQgcHJvcGFnYXRlIEludGVyLUFyZWEgTFNBcy4iIAorICAgICAgICBERUZWQUwgICB7IHNlbmRBcmVhU3VtbWFyeSB9IAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhRW50cnkgOCB9IAorIAorb3NwZnYzQXJlYVN0YXR1cyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFJvd1N0YXR1cyAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhpcyB2YXJpYWJsZSBjb250cm9scyB0aGUgc3RhdHVzIG9mICB0aGUgIGVuLSAKKyAgICAgICAgICAgIHRyeS4gVGhlIHVzZSBvZiBSb3dTdGF0dXMgaXMgY292ZXJlZCBpbiBtb3JlIGRldGFpbCAKKyAgICAgICAgICAgIGluIFs2XS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhRW50cnkgOSB9IAorIAorb3NwZnYzU3R1Yk1ldHJpYyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEJpZ01ldHJpYyAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG1ldHJpYyB2YWx1ZSBhZHZlcnRpc2VkIGZvciB0aGUgZGVmYXVsdCByb3V0ZSAKKyAgICAgICAgICAgICBpbnRvIFN0dWIgYW5kIE5TU0EgYXJlYXMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUVudHJ5IDEwIH0gCisgCitvc3BmdjNBcmVhTnNzYVRyYW5zbGF0b3JSb2xlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSU5URUdFUiB7IGFsd2F5cygxKSwgY2FuZGlkYXRlKDIpIH0gCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkluZGljYXRlcyBhbiBOU1NBIEJvcmRlciByb3V0ZXIncyBhYmlsaXR5IHRvIAorICAgICAgICAgICAgcGVyZm9ybSBOU1NBIHRyYW5zbGF0aW9uIG9mIHR5cGUtNyBMU0FzIGludG8gCisgICAgICAgICAgICB0eXBlLTUgTFNBcy4iIAorICAgICAgICBERUZWQUwgeyBjYW5kaWRhdGUgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUVudHJ5IDExIH0gCisgCitvc3BmdjNBcmVhTnNzYVRyYW5zbGF0b3JTdGF0ZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIElOVEVHRVIgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQoMSksIAorICAgICAgICAgICAgICAgICAgICAgICAgZWxlY3RlZCgyKSwgCisgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZCgzKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJJbmRpY2F0ZXMgaWYgYW5kIGhvdyBhbiBOU1NBIEJvcmRlciByb3V0ZXIgaXMgCisgICAgICAgICAgICAgcGVyZm9ybWluZyBOU1NBIHRyYW5zbGF0aW9uIG9mIHR5cGUtNyBMU0FzIGludG8gdHlwZS01IAorICAgICAgICAgICAgIExTQXMuIFdoZW4gdGhpcyBvYmplY3QgaXMgc2V0IHRvIGVuYWJsZWQsIHRoZSBOU1NBIAorICAgICAgICAgICAgIEJvcmRlciByb3V0ZXIncyBvc3BmdjNBcmVhTnNzVHJhbnNsYXRvclJvbGUgCisgICAgICAgICAgICAgaGFzIGJlZW4gc2V0IHRvIGFsd2F5cy4gV2hlbiB0aGlzIG9iamVjdCBpcyBzZXQgdG8gCisgICAgICAgICAgICAgZWxlY3RlZCwgYSBjYW5kaWRhdGUgTlNTQSBCb3JkZXIgcm91dGVyIGlzIHRyYW5zbGF0aW5nIAorICAgICAgICAgICAgIHR5cGUtNyBMU0FzIGludG8gdHlwZS01LiBXaGVuIHRoaXMgb2JqZWN0IGlzIHNldCB0byAKKyAgICAgICAgICAgICBkaXNhYmxlZCwgYSBjYW5kaWRhdGUgTlNTQSBCb3JkZXIgcm91dGVyIGlzIE5PVCAKKyAgICAgICAgICAgICB0cmFuc2xhdGluZyB0eXBlLTcgTFNBcyBpbnRvIHR5cGUtNS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhRW50cnkgMTIgfSAKKyAKK29zcGZ2M0FyZWFOc3NhVHJhbnNsYXRvclN0YWJpbGl0eUludGVydmFsIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgVW5zaWduZWQzMiAKKyAgICAgICAgVU5JVFMgICAgICAgICAgICJzZWNvbmRzIiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBzZWNvbmRzIGFmdGVyIGFuIGVsZWN0ZWQgdHJhbnNsYXRvciAKKyAgICAgICAgICAgIGRldGVybWluZXMgaXRzIHNlcnZpY2VzIGFyZSBubyBsb25nZXIgcmVxdWlyZWQsIHRoYXQgCisgICAgICAgICAgICBpdCBzaG91bGQgY29udGludWUgdG8gcGVyZm9ybSBpdHMgdHJhbnNsYXRpb24gZHV0aWVzLiIgCisgICAgICAgIERFRlZBTCB7IDQwIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFFbnRyeSAxMyB9IAorIAorb3NwZnYzQXJlYU5zc2FUcmFuc2xhdG9yRXZlbnRzIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQ291bnRlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiSW5kaWNhdGVzIHRoZSBudW1iZXIgb2YgVHJhbnNsYXRvciBTdGF0ZSBjaGFuZ2VzIAorICAgICAgICAgICAgdGhhdCBoYXZlIG9jY3VycmVkIHNpbmNlIHRoZSBsYXN0IGJvb3QtdXAuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUVudHJ5IDE0IH0gCisKK29zcGZ2M0FyZWFTdHViTWV0cmljVHlwZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgIElOVEVHRVIgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M01ldHJpYyAoMSksICAtLSBPU1BGIE1ldHJpYyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmFibGVDb3N0ICgyKSwgLS0gZXh0ZXJuYWwgdHlwZSAxIAorICAgICAgICAgICAgICAgICAgICAgICAgbm9uQ29tcGFyYWJsZSAgKDMpIC0tIGV4dGVybmFsIHR5cGUgMiAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIE1BWC1BQ0NFU1MgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAiVGhpcyB2YXJpYWJsZSBkaXNwbGF5cyB0aGUgdHlwZSBvZiBtZXRyaWMgYWQtIAorICAgICAgICAgICB2ZXJ0aXNlZCBhcyBhIGRlZmF1bHQgcm91dGUuIiAKKyAgICAgICAgREVGVkFMIHsgb3NwZnYzTWV0cmljIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFFbnRyeSAxNSB9IAorCistLSBPU1BGdjMgQVMtU2NvcGUgTGluayBTdGF0ZSBEYXRhYmFzZSAKKyAKKy0tIFRoZSBMaW5rIFN0YXRlIERhdGFiYXNlIGNvbnRhaW5zIHRoZSBBUy1TY29wZSBMaW5rIFN0YXRlIAorLS0gQWR2ZXJ0aXNlbWVudHMgZnJvbSB0aHJvdWdob3V0IHRoZSBhcmVhcyB0aGF0IHRoZSAKKy0tIGRldmljZSBpcyBhdHRhY2hlZCB0by4gCisgCitvc3BmdjNBc0xzZGJUYWJsZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFNFUVVFTkNFIE9GIE9zcGZ2M0FzTHNkYkVudHJ5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgT1NQRnYzIFByb2Nlc3MncyBBUy1TY29wZSBMaW5rIFN0YXRlIERhdGFiYXNlLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M09iamVjdHMgMyB9IAorIAorb3NwZnYzQXNMc2RiRW50cnkgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBPc3BmdjNBc0xzZGJFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSBzaW5nbGUgQVMtU2NvcGUgTGluayBTdGF0ZSBBZHZlcnRpc2VtZW50LiIgCisgICAgICAgIElOREVYICAgICAgICAgICB7IG9zcGZ2M0FzTHNkYlR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBc0xzZGJSb3V0ZXJJZCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FzTHNkYkxzaWQgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXNMc2RiVGFibGUgMSB9IAorIAorT3NwZnYzQXNMc2RiRW50cnkgOjo9IFNFUVVFTkNFIHsgCisgICAgICAgIG9zcGZ2M0FzTHNkYlR5cGUgCisgICAgICAgICAgICAgICAgVW5zaWduZWQzMiwgCisgICAgICAgIG9zcGZ2M0FzTHNkYlJvdXRlcklkIAorICAgICAgICAgICAgICAgIFJvdXRlcklELCAKKyAgICAgICAgb3NwZnYzQXNMc2RiTHNpZCAKKyAgICAgICAgICAgICAgICBJcEFkZHJlc3MsIAorICAgICAgICBvc3BmdjNBc0xzZGJTZXF1ZW5jZSAKKyAgICAgICAgICAgICAgICBJbnRlZ2VyMzIsIAorICAgICAgICBvc3BmdjNBc0xzZGJBZ2UgCisgICAgICAgICAgICAgICAgSW50ZWdlcjMyLCAKKyAgICAgICAgb3NwZnYzQXNMc2RiQ2hlY2tzdW0gCisgICAgICAgICAgICAgICAgSW50ZWdlcjMyLCAKKyAgICAgICAgb3NwZnYzQXNMc2RiQWR2ZXJ0aXNlbWVudCAKKyAgICAgICAgICAgICAgICBPQ1RFVCBTVFJJTkcsIAorICAgICAgICBvc3BmdjNBc0xzZGJUeXBlS25vd24gCisgICAgICAgICAgICAgICAgVHJ1dGhWYWx1ZSAKKyAgICAgICAgfSAKKyAKK29zcGZ2M0FzTHNkYlR5cGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBVbnNpZ25lZDMyKDAuLidGRkZGRkZGRidoKSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHR5cGUgb2YgdGhlIGxpbmsgc3RhdGUgYWR2ZXJ0aXNlbWVudC4gCisgICAgICAgICAgICBFYWNoIGxpbmsgc3RhdGUgdHlwZSBoYXMgYSBzZXBhcmF0ZSBhZHZlcnRpc2UtIAorICAgICAgICAgICAgbWVudCBmb3JtYXQuIEFTLVNjb3BlIExTQXMgbm90IHJlY29nbml6ZWQgYnkgCisgICAgICAgICAgICB0aGUgcm91dGVyIG1heSBiZSBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FzTHNkYkVudHJ5IDEgfSAKKyAKK29zcGZ2M0FzTHNkYlJvdXRlcklkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm91dGVySUQgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSAzMiBiaXQgbnVtYmVyIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgCisgICAgICAgICAgICBvcmlnaW5hdGluZyByb3V0ZXIgaW4gdGhlIEF1dG9ub21vdXMgU3lzdGVtLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgQXBwZW5kaXggQy4xIEdsb2JhbCBwYXJhbWV0ZXJzIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXNMc2RiRW50cnkgMiB9IAorIAorb3NwZnYzQXNMc2RiTHNpZCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIElwQWRkcmVzcyAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIExpbmsgU3RhdGUgSUQgaXMgYW4gTFMgVHlwZSBTcGVjaWZpYyBmaWVsZCAKKyAgICAgICAgICAgIGNvbnRhaW5pbmcgYSB1bmlxdWUgaWRlbnRpZmllcjsgCisgICAgICAgICAgICBpdCBpZGVudGlmaWVzIHRoZSBwaWVjZSBvZiB0aGUgIHJvdXRpbmcgIGRvbWFpbiAKKyAgICAgICAgICAgIHRoYXQgaXMgYmVpbmcgZGVzY3JpYmVkIGJ5IHRoZSBhZHZlcnRpc2VtZW50LiAKKyAgICAgICAgICAgIEluIGNvbnRyYXN0IHRvIE9TUEZ2MiwgdGhlIExTSUQgaGFzIG5vIAorICAgICAgICAgICAgYWRkcmVzc2luZyBzZW1hbnRpY3MuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXNMc2RiRW50cnkgMyB9IAorIAorLS0gTm90ZSB0aGF0IHRoZSBPU1BGIFNlcXVlbmNlIE51bWJlciBpcyBhIDMyIGJpdCBzaWduZWQgCistLSBpbnRlZ2VyLiAgSXQgc3RhcnRzIHdpdGggdGhlIHZhbHVlICc4MDAwMDAwMSdoLCAKKy0tIG9yIC0nN0ZGRkZGRkYnaCwgYW5kIGluY3JlbWVudHMgdW50aWwgJzdGRkZGRkZGJ2ggCistLSBUaHVzLCBhIHR5cGljYWwgc2VxdWVuY2UgbnVtYmVyIHdpbGwgYmUgdmVyeSBuZWdhdGl2ZS4gCisgCitvc3BmdjNBc0xzZGJTZXF1ZW5jZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVnZXIzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBzZXF1ZW5jZSBudW1iZXIgZmllbGQgaXMgYSAgc2lnbmVkICAzMi1iaXQgCisgICAgICAgICAgICBpbnRlZ2VyLiAgIEl0ICBpcyB1c2VkIHRvIGRldGVjdCBvbGQgYW5kIGR1cGxpLSAKKyAgICAgICAgICAgIGNhdGUgbGluayBzdGF0ZSBhZHZlcnRpc2VtZW50cy4gIFRoZSAgc3BhY2UgIG9mIAorICAgICAgICAgICAgc2VxdWVuY2UgIG51bWJlcnMgIGlzICBsaW5lYXJseSAgb3JkZXJlZC4gICBUaGUgCisgICAgICAgICAgICBsYXJnZXIgdGhlIHNlcXVlbmNlIG51bWJlciB0aGUgbW9yZSByZWNlbnQgIHRoZSAKKyAgICAgICAgICAgIGFkdmVydGlzZW1lbnQuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAgMiwgIFNlY3Rpb24gIDEyLjEuNiAgTFMgIHNlcXVlbmNlIAorICAgICAgICAgICAgbnVtYmVyIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXNMc2RiRW50cnkgNCB9IAorIAorb3NwZnYzQXNMc2RiQWdlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIC0tIFNob3VsZCBiZSAwLi5NYXhBZ2UgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gdW5sZXNzIERvTm90QWdlIGJpdCBpcyBzZXQgCisgICAgICAgIFVOSVRTICAgICAgICAgICAic2Vjb25kcyIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGlzIGZpZWxkIGlzIHRoZSBhZ2Ugb2YgdGhlIGxpbmsgc3RhdGUgYWR2ZXItIAorICAgICAgICAgICAgdGlzZW1lbnQgaW4gc2Vjb25kcy4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gMTIuMS4xIExTIGFnZSIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FzTHNkYkVudHJ5IDUgfSAKKyAKK29zcGZ2M0FzTHNkYkNoZWNrc3VtIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhpcyBmaWVsZCBpcyB0aGUgIGNoZWNrc3VtICBvZiAgdGhlICBjb21wbGV0ZSAKKyAgICAgICAgICAgIGNvbnRlbnRzICBvZiAgdGhlICBhZHZlcnRpc2VtZW50LCBleGNlcHRpbmcgdGhlIAorICAgICAgICAgICAgYWdlIGZpZWxkLiAgVGhlIGFnZSBmaWVsZCBpcyBleGNlcHRlZCAgc28gIHRoYXQgCisgICAgICAgICAgICBhbiAgIGFkdmVydGlzZW1lbnQncyAgYWdlICBjYW4gIGJlICBpbmNyZW1lbnRlZCAKKyAgICAgICAgICAgIHdpdGhvdXQgdXBkYXRpbmcgdGhlICBjaGVja3N1bS4gICBUaGUgIGNoZWNrc3VtIAorICAgICAgICAgICAgdXNlZCAgaXMgIHRoZSBzYW1lIHRoYXQgaXMgdXNlZCBmb3IgSVNPIGNvbm5lYy0gCisgICAgICAgICAgICB0aW9ubGVzcyBkYXRhZ3JhbXM7IGl0IGlzIGNvbW1vbmx5IHJlZmVycmVkICB0byAKKyAgICAgICAgICAgIGFzIHRoZSBGbGV0Y2hlciBjaGVja3N1bS4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gMTIuMS43IExTIGNoZWNrc3VtIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXNMc2RiRW50cnkgNiB9IAorIAorb3NwZnYzQXNMc2RiQWR2ZXJ0aXNlbWVudCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIE9DVEVUIFNUUklORyAoU0laRSAoMS4uNjU1MzUpKSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBlbnRpcmUgTGluayBTdGF0ZSBBZHZlcnRpc2VtZW50LCBpbmNsdWRpbmcgCisgICAgICAgICAgICBpdHMgaGVhZGVyLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FzTHNkYkVudHJ5IDcgfSAKKyAKK29zcGZ2M0FzTHNkYlR5cGVLbm93biBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFRydXRoVmFsdWUgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJJcyB0aGUgTFNBIHR5cGUgcmVjb2duaXplZCBieSB0aGlzIFJvdXRlcj8iIAorICAgICAgICA6Oj0geyBvc3BmdjNBc0xzZGJFbnRyeSA4IH0gCisgCisgCistLSBPU1BGdjMgQXJlYS1TY29wZSBMaW5rIFN0YXRlIERhdGFiYXNlIAorIAorLS0gVGhlIExpbmsgU3RhdGUgRGF0YWJhc2UgY29udGFpbnMgdGhlIEFyZWEtU2NvcGUgTGluayBTdGF0ZSAKKy0tIEFkdmVydGlzZW1lbnRzIGZyb20gdGhyb3VnaG91dCB0aGUgYXJlYSB0aGF0IHRoZSAKKy0tIGRldmljZSBpcyBhdHRhY2hlZCB0by4gCisgCitvc3BmdjNBcmVhTHNkYlRhYmxlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgU0VRVUVOQ0UgT0YgT3NwZnYzQXJlYUxzZGJFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIE9TUEZ2MyBQcm9jZXNzJ3MgQXJlYS1TY29wZSBMaW5rIFN0YXRlIERhdGFiYXNlLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M09iamVjdHMgNCB9IAorIAorb3NwZnYzQXJlYUxzZGJFbnRyeSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIE9zcGZ2M0FyZWFMc2RiRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkEgc2luZ2xlIEFyZWEtU2NvcGUgTGluayBTdGF0ZSBBZHZlcnRpc2VtZW50LiIgCisgICAgICAgIElOREVYICAgICAgICAgICB7IG9zcGZ2M0FyZWFMc2RiQXJlYUlkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUxzZGJUeXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUxzZGJSb3V0ZXJJZCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFMc2RiTHNpZCB9IAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhTHNkYlRhYmxlIDEgfSAKKyAKK09zcGZ2M0FyZWFMc2RiRW50cnkgOjo9IFNFUVVFTkNFIHsgCisgICAgICAgIG9zcGZ2M0FyZWFMc2RiQXJlYUlkIAorICAgICAgICAgICAgICAgIEFyZWFJRCwgCisgICAgICAgIG9zcGZ2M0FyZWFMc2RiVHlwZSAKKyAgICAgICAgICAgICAgICBVbnNpZ25lZDMyLCAKKyAgICAgICAgb3NwZnYzQXJlYUxzZGJSb3V0ZXJJZCAKKyAgICAgICAgICAgICAgICBSb3V0ZXJJRCwgCisgICAgICAgIG9zcGZ2M0FyZWFMc2RiTHNpZCAKKyAgICAgICAgICAgICAgICBJcEFkZHJlc3MsIAorICAgICAgICBvc3BmdjNBcmVhTHNkYlNlcXVlbmNlIAorICAgICAgICAgICAgICAgIEludGVnZXIzMiwgCisgICAgICAgIG9zcGZ2M0FyZWFMc2RiQWdlIAorICAgICAgICAgICAgICAgIEludGVnZXIzMiwgCisgICAgICAgIG9zcGZ2M0FyZWFMc2RiQ2hlY2tzdW0gCisgICAgICAgICAgICAgICAgSW50ZWdlcjMyLCAKKyAgICAgICAgb3NwZnYzQXJlYUxzZGJBZHZlcnRpc2VtZW50IAorICAgICAgICAgICAgICAgIE9DVEVUIFNUUklORywgCisgICAgICAgIG9zcGZ2M0FyZWFMc2RiVHlwZUtub3duIAorICAgICAgICAgICAgICAgIFRydXRoVmFsdWUgCisgICAgICAgIH0gCisgCitvc3BmdjNBcmVhTHNkYkFyZWFJZCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEFyZWFJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIDMyIGJpdCBpZGVudGlmaWVyIG9mIHRoZSBBcmVhIGZyb20gd2hpY2ggdGhlIAorICAgICAgICAgICAgTFNBIHdhcyByZWNlaXZlZC4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIEFwcGVuZGl4IEMuMiBBcmVhIHBhcmFtZXRlcnMiIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhTHNkYkVudHJ5IDEgfSAKKyAKK29zcGZ2M0FyZWFMc2RiVHlwZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFVuc2lnbmVkMzIoMC4uJ0ZGRkZGRkZGJ2gpIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgdHlwZSAgb2YgIHRoZSAgbGluayAgc3RhdGUgIGFkdmVydGlzZW1lbnQuIAorICAgICAgICAgICAgRWFjaCAgbGluayBzdGF0ZSB0eXBlIGhhcyBhIHNlcGFyYXRlIGFkdmVydGlzZS0gCisgICAgICAgICAgICBtZW50IGZvcm1hdC4gQXJlYS1TY29wZSBMU0FzIHVucmVjb2duaXplZCBieSB0aGUgCisgICAgICAgICAgICByb3V0ZXIgYXJlIGFsc28gc3RvcmVkIGluIHRoaXMgZGF0YWJhc2UuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUxzZGJFbnRyeSAyIH0gCisgCitvc3BmdjNBcmVhTHNkYlJvdXRlcklkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm91dGVySUQgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSAzMiBiaXQgbnVtYmVyIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgCisgICAgICAgICAgICBvcmlnaW5hdGluZyByb3V0ZXIgaW4gdGhlIEF1dG9ub21vdXMgU3lzdGVtLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgQXBwZW5kaXggQy4xIEdsb2JhbCBwYXJhbWV0ZXJzIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUxzZGJFbnRyeSAzIH0gCisgCitvc3BmdjNBcmVhTHNkYkxzaWQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJcEFkZHJlc3MgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBMaW5rIFN0YXRlIElEIGlzIGFuIExTIFR5cGUgU3BlY2lmaWMgZmllbGQgCisgICAgICAgICAgICBjb250YWluaW5nIGEgdW5pcXVlIGlkZW50aWZpZXI7IAorICAgICAgICAgICAgaXQgaWRlbnRpZmllcyB0aGUgcGllY2Ugb2YgdGhlICByb3V0aW5nICBkb21haW4gCisgICAgICAgICAgICB0aGF0IGlzIGJlaW5nIGRlc2NyaWJlZCBieSB0aGUgYWR2ZXJ0aXNlbWVudC4gCisgICAgICAgICAgICBJbiBjb250cmFzdCB0byBPU1BGdjIsIHRoZSBMU0lEIGhhcyBubyAKKyAgICAgICAgICAgIGFkZHJlc3Npbmcgc2VtYW50aWNzLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFMc2RiRW50cnkgNCB9IAorIAorLS0gTm90ZSB0aGF0IHRoZSBPU1BGIFNlcXVlbmNlIE51bWJlciBpcyBhIDMyIGJpdCBzaWduZWQgCistLSBpbnRlZ2VyLiAgSXQgc3RhcnRzIHdpdGggdGhlIHZhbHVlICc4MDAwMDAwMSdoLCAKKy0tIG9yIC0nN0ZGRkZGRkYnaCwgYW5kIGluY3JlbWVudHMgdW50aWwgJzdGRkZGRkZGJ2ggCistLSBUaHVzLCBhIHR5cGljYWwgc2VxdWVuY2UgbnVtYmVyIHdpbGwgYmUgdmVyeSBuZWdhdGl2ZS4gCisgCitvc3BmdjNBcmVhTHNkYlNlcXVlbmNlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHNlcXVlbmNlIG51bWJlciBmaWVsZCBpcyBhICBzaWduZWQgIDMyLWJpdCAKKyAgICAgICAgICAgIGludGVnZXIuICAgSXQgIGlzIHVzZWQgdG8gZGV0ZWN0IG9sZCBhbmQgZHVwbGktIAorICAgICAgICAgICAgY2F0ZSBsaW5rIHN0YXRlIGFkdmVydGlzZW1lbnRzLiAgVGhlICBzcGFjZSAgb2YgCisgICAgICAgICAgICBzZXF1ZW5jZSAgbnVtYmVycyAgaXMgIGxpbmVhcmx5ICBvcmRlcmVkLiAgIFRoZSAKKyAgICAgICAgICAgIGxhcmdlciB0aGUgc2VxdWVuY2UgbnVtYmVyIHRoZSBtb3JlIHJlY2VudCAgdGhlIAorICAgICAgICAgICAgYWR2ZXJ0aXNlbWVudC4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uICAyLCAgU2VjdGlvbiAgMTIuMS42ICBMUyAgc2VxdWVuY2UgCisgICAgICAgICAgICBudW1iZXIiIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhTHNkYkVudHJ5IDUgfSAKKyAKK29zcGZ2M0FyZWFMc2RiQWdlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIC0tIFNob3VsZCBiZSAwLi5NYXhBZ2UgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gdW5sZXNzIERvTm90QWdlIGJpdCBpcyBzZXQgCisgICAgICAgIFVOSVRTICAgICAgICAgICAic2Vjb25kcyIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGlzIGZpZWxkIGlzIHRoZSBhZ2Ugb2YgdGhlIGxpbmsgc3RhdGUgYWR2ZXItIAorICAgICAgICAgICAgdGlzZW1lbnQgaW4gc2Vjb25kcy4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gMTIuMS4xIExTIGFnZSIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFMc2RiRW50cnkgNiB9IAorIAorb3NwZnYzQXJlYUxzZGJDaGVja3N1bSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVnZXIzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoaXMgZmllbGQgaXMgdGhlICBjaGVja3N1bSAgb2YgIHRoZSAgY29tcGxldGUgCisgICAgICAgICAgICBjb250ZW50cyAgb2YgIHRoZSAgYWR2ZXJ0aXNlbWVudCwgZXhjZXB0aW5nIHRoZSAKKyAgICAgICAgICAgIGFnZSBmaWVsZC4gIFRoZSBhZ2UgZmllbGQgaXMgZXhjZXB0ZWQgIHNvICB0aGF0IAorICAgICAgICAgICAgYW4gICBhZHZlcnRpc2VtZW50J3MgIGFnZSAgY2FuICBiZSAgaW5jcmVtZW50ZWQgCisgICAgICAgICAgICB3aXRob3V0IHVwZGF0aW5nIHRoZSAgY2hlY2tzdW0uICAgVGhlICBjaGVja3N1bSAKKyAgICAgICAgICAgIHVzZWQgIGlzICB0aGUgc2FtZSB0aGF0IGlzIHVzZWQgZm9yIElTTyBjb25uZWMtIAorICAgICAgICAgICAgdGlvbmxlc3MgZGF0YWdyYW1zOyBpdCBpcyBjb21tb25seSByZWZlcnJlZCAgdG8gCisgICAgICAgICAgICBhcyB0aGUgRmxldGNoZXIgY2hlY2tzdW0uIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBTZWN0aW9uIDEyLjEuNyBMUyBjaGVja3N1bSIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFMc2RiRW50cnkgNyB9IAorIAorb3NwZnYzQXJlYUxzZGJBZHZlcnRpc2VtZW50IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgT0NURVQgU1RSSU5HIChTSVpFICgxLi42NTUzNSkpIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGVudGlyZSBMaW5rIFN0YXRlIEFkdmVydGlzZW1lbnQsIGluY2x1ZGluZyAKKyAgICAgICAgICAgIGl0cyBoZWFkZXIuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUxzZGJFbnRyeSA4IH0gCisgCitvc3BmdjNBcmVhTHNkYlR5cGVLbm93biBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFRydXRoVmFsdWUgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJJcyB0aGUgTFNBIHR5cGUgcmVjb2duaXplZCBieSB0aGlzIFJvdXRlcj8iIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhTHNkYkVudHJ5IDkgfSAKKyAKKy0tIE9TUEZ2MyBMaW5rLVNjb3BlIExpbmsgU3RhdGUgRGF0YWJhc2UgCisgCistLSBUaGUgTGluayBTdGF0ZSBEYXRhYmFzZSBjb250YWlucyB0aGUgTGluay1TY29wZSBMaW5rIFN0YXRlIAorLS0gQWR2ZXJ0aXNlbWVudHMgZnJvbSB0aGUgbGlua3MgdGhhdCB0aGUgCistLSBkZXZpY2UgaXMgYXR0YWNoZWQgdG8uIAorIAorb3NwZnYzTGlua0xzZGJUYWJsZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFNFUVVFTkNFIE9GIE9zcGZ2M0xpbmtMc2RiRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBPU1BGdjMgUHJvY2VzcydzIExpbmstU2NvcGUgTGluayBTdGF0ZSBEYXRhYmFzZS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNPYmplY3RzIDUgfSAKKyAKK29zcGZ2M0xpbmtMc2RiRW50cnkgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBPc3BmdjNMaW5rTHNkYkVudHJ5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJBIHNpbmdsZSBMaW5rLVNjb3BlIExpbmsgU3RhdGUgQWR2ZXJ0aXNlbWVudC4iIAorICAgICAgICBJTkRFWCAgICAgICAgICAgeyBvc3BmdjNMaW5rTHNkYklmSW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNMaW5rTHNkYlR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNMaW5rTHNkYlJvdXRlcklkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTGlua0xzZGJMc2lkIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0xpbmtMc2RiVGFibGUgMSB9IAorIAorT3NwZnYzTGlua0xzZGJFbnRyeSA6Oj0gU0VRVUVOQ0UgeyAKKyAgICAgICAgb3NwZnYzTGlua0xzZGJJZkluZGV4IAorICAgICAgICAgICAgICAgIEludGVyZmFjZUluZGV4LCAKKyAgICAgICAgb3NwZnYzTGlua0xzZGJUeXBlIAorICAgICAgICAgICAgICAgIFVuc2lnbmVkMzIsIAorICAgICAgICBvc3BmdjNMaW5rTHNkYlJvdXRlcklkIAorICAgICAgICAgICAgICAgIFJvdXRlcklELCAKKyAgICAgICAgb3NwZnYzTGlua0xzZGJMc2lkIAorICAgICAgICAgICAgICAgIElwQWRkcmVzcywgCisgICAgICAgIG9zcGZ2M0xpbmtMc2RiU2VxdWVuY2UgCisgICAgICAgICAgICAgICAgSW50ZWdlcjMyLCAKKyAgICAgICAgb3NwZnYzTGlua0xzZGJBZ2UgCisgICAgICAgICAgICAgICAgSW50ZWdlcjMyLCAKKyAgICAgICAgb3NwZnYzTGlua0xzZGJDaGVja3N1bSAKKyAgICAgICAgICAgICAgICBJbnRlZ2VyMzIsIAorICAgICAgICBvc3BmdjNMaW5rTHNkYkFkdmVydGlzZW1lbnQgCisgICAgICAgICAgICAgICAgT0NURVQgU1RSSU5HLCAKKyAgICAgICAgb3NwZnYzTGlua0xzZGJUeXBlS25vd24gCisgICAgICAgICAgICAgICAgVHJ1dGhWYWx1ZSAKKyAgICAgICAgfSAKKyAKK29zcGZ2M0xpbmtMc2RiSWZJbmRleCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgSW50ZXJmYWNlSW5kZXggCisgICAgICAgIE1BWC1BQ0NFU1MgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgaWRlbnRpZmllciBvZiB0aGUgbGluayBmcm9tIHdoaWNoIHRoZSBMU0EgCisgICAgICAgICAgICB3YXMgcmVjZWl2ZWQuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBBcHBlbmRpeCBDLjIgQXJlYSBwYXJhbWV0ZXJzIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTGlua0xzZGJFbnRyeSAxIH0gCisgCitvc3BmdjNMaW5rTHNkYlR5cGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBVbnNpZ25lZDMyKDAuLidGRkZGRkZGRidoKSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHR5cGUgb2YgdGhlIGxpbmsgc3RhdGUgYWR2ZXJ0aXNlbWVudC4gCisgICAgICAgICAgICBFYWNoIGxpbmsgc3RhdGUgdHlwZSBoYXMgYSBzZXBhcmF0ZSBhZHZlcnRpc2UtIAorICAgICAgICAgICAgbWVudCBmb3JtYXQuIExpbmstU2NvcGUgTFNBcyB1bnJlY29nbml6ZWQgYnkgdGhlIAorICAgICAgICAgICAgcm91dGVyIGFyZSBhbHNvIHN0b3JlZCBpbiB0aGlzIGRhdGFiYXNlLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0xpbmtMc2RiRW50cnkgMiB9IAorIAorb3NwZnYzTGlua0xzZGJSb3V0ZXJJZCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFJvdXRlcklEIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgMzIgYml0IG51bWJlciB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIAorICAgICAgICAgICAgb3JpZ2luYXRpbmcgcm91dGVyIGluIHRoZSBBdXRvbm9tb3VzIFN5c3RlbS4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIEFwcGVuZGl4IEMuMSBHbG9iYWwgcGFyYW1ldGVycyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0xpbmtMc2RiRW50cnkgMyB9IAorIAorb3NwZnYzTGlua0xzZGJMc2lkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgIElwQWRkcmVzcyAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgTGluayBTdGF0ZSBJRCBpcyBhbiBMUyBUeXBlIFNwZWNpZmljIGZpZWxkIAorICAgICAgICAgICAgY29udGFpbmluZyBhIHVuaXF1ZSBpZGVudGlmaWVyOyAKKyAgICAgICAgICAgIGl0IGlkZW50aWZpZXMgdGhlIHBpZWNlIG9mIHRoZSAgcm91dGluZyAgZG9tYWluIAorICAgICAgICAgICAgdGhhdCBpcyBiZWluZyBkZXNjcmliZWQgYnkgdGhlIGFkdmVydGlzZW1lbnQuIAorICAgICAgICAgICAgSW4gY29udHJhc3QgdG8gT1NQRnYyLCB0aGUgTFNJRCBoYXMgbm8gCisgICAgICAgICAgICBhZGRyZXNzaW5nIHNlbWFudGljcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNMaW5rTHNkYkVudHJ5IDQgfSAKKyAKKy0tIE5vdGUgdGhhdCB0aGUgT1NQRiBTZXF1ZW5jZSBOdW1iZXIgaXMgYSAzMiBiaXQgc2lnbmVkIAorLS0gaW50ZWdlci4gIEl0IHN0YXJ0cyB3aXRoIHRoZSB2YWx1ZSAnODAwMDAwMDEnaCwgCistLSBvciAtJzdGRkZGRkZGJ2gsIGFuZCBpbmNyZW1lbnRzIHVudGlsICc3RkZGRkZGRidoIAorLS0gVGh1cywgYSB0eXBpY2FsIHNlcXVlbmNlIG51bWJlciB3aWxsIGJlIHZlcnkgbmVnYXRpdmUuIAorIAorb3NwZnYzTGlua0xzZGJTZXF1ZW5jZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVnZXIzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBzZXF1ZW5jZSBudW1iZXIgZmllbGQgaXMgYSAgc2lnbmVkICAzMi1iaXQgCisgICAgICAgICAgICBpbnRlZ2VyLiAgIEl0ICBpcyB1c2VkIHRvIGRldGVjdCBvbGQgYW5kIGR1cGxpLSAKKyAgICAgICAgICAgIGNhdGUgbGluayBzdGF0ZSBhZHZlcnRpc2VtZW50cy4gIFRoZSAgc3BhY2UgIG9mIAorICAgICAgICAgICAgc2VxdWVuY2UgIG51bWJlcnMgIGlzICBsaW5lYXJseSAgb3JkZXJlZC4gICBUaGUgCisgICAgICAgICAgICBsYXJnZXIgdGhlIHNlcXVlbmNlIG51bWJlciB0aGUgbW9yZSByZWNlbnQgIHRoZSAKKyAgICAgICAgICAgIGFkdmVydGlzZW1lbnQuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAgMiwgIFNlY3Rpb24gIDEyLjEuNiAgTFMgIHNlcXVlbmNlIAorICAgICAgICAgICAgbnVtYmVyIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTGlua0xzZGJFbnRyeSA1IH0gCisgCitvc3BmdjNMaW5rTHNkYkFnZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVnZXIzMiAtLSBTaG91bGQgYmUgMC4uTWF4QWdlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHVubGVzcyBEb05vdEFnZSBiaXQgaXMgc2V0IAorICAgICAgICBVTklUUyAgICAgICAgICAgInNlY29uZHMiIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhpcyBmaWVsZCBpcyB0aGUgYWdlIG9mIHRoZSBsaW5rIHN0YXRlIAorICAgICAgICAgICAgYWR2ZXJ0aXNlbWVudCBpbiBzZWNvbmRzLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgU2VjdGlvbiAxMi4xLjEgTFMgYWdlIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTGlua0xzZGJFbnRyeSA2IH0gCisgCitvc3BmdjNMaW5rTHNkYkNoZWNrc3VtIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhpcyBmaWVsZCBpcyB0aGUgIGNoZWNrc3VtICBvZiAgdGhlICBjb21wbGV0ZSAKKyAgICAgICAgICAgIGNvbnRlbnRzICBvZiAgdGhlICBhZHZlcnRpc2VtZW50LCBleGNlcHRpbmcgdGhlIAorICAgICAgICAgICAgYWdlIGZpZWxkLiAgVGhlIGFnZSBmaWVsZCBpcyBleGNlcHRlZCAgc28gIHRoYXQgCisgICAgICAgICAgICBhbiAgIGFkdmVydGlzZW1lbnQncyAgYWdlICBjYW4gIGJlICBpbmNyZW1lbnRlZCAKKyAgICAgICAgICAgIHdpdGhvdXQgdXBkYXRpbmcgdGhlICBjaGVja3N1bS4gICBUaGUgIGNoZWNrc3VtIAorICAgICAgICAgICAgdXNlZCAgaXMgIHRoZSBzYW1lIHRoYXQgaXMgdXNlZCBmb3IgSVNPIGNvbm5lYy0gCisgICAgICAgICAgICB0aW9ubGVzcyBkYXRhZ3JhbXM7IGl0IGlzIGNvbW1vbmx5IHJlZmVycmVkICB0byAKKyAgICAgICAgICAgIGFzIHRoZSBGbGV0Y2hlciBjaGVja3N1bS4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gMTIuMS43IExTIGNoZWNrc3VtIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTGlua0xzZGJFbnRyeSA3IH0gCisgCitvc3BmdjNMaW5rTHNkYkFkdmVydGlzZW1lbnQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBPQ1RFVCBTVFJJTkcgKFNJWkUgKDEuLjY1NTM1KSkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgZW50aXJlIExpbmsgU3RhdGUgQWR2ZXJ0aXNlbWVudCwgaW5jbHVkaW5nIAorICAgICAgICAgICAgaXRzIGhlYWRlci4iIAorICAgICAgICA6Oj0geyBvc3BmdjNMaW5rTHNkYkVudHJ5IDggfSAKKyAKK29zcGZ2M0xpbmtMc2RiVHlwZUtub3duIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgVHJ1dGhWYWx1ZSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkluZGljYXRlcyB3aGV0aGVyIHRoZSBMU0EgdHlwZSBpcyByZWNvZ25pemVkIGJ5IHRoaXMgCisgICAgICAgICAgICAgUm91dGVyLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0xpbmtMc2RiRW50cnkgOSB9IAorIAorIAorLS0gT1NQRiBIb3N0IFRhYmxlIAorIAorLS0gVGhlIEhvc3QvTWV0cmljIFRhYmxlIGluZGljYXRlcyB3aGF0IGhvc3RzIGFyZSBkaXJlY3RseSAKKy0tIGF0dGFjaGVkIHRvIHRoZSBSb3V0ZXIsIGFuZCB3aGF0IG1ldHJpY3MgYW5kIHR5cGVzIG9mIAorLS0gc2VydmljZSBzaG91bGQgYmUgYWR2ZXJ0aXNlZCBmb3IgdGhlbS4gCisgCitvc3BmdjNIb3N0VGFibGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBTRVFVRU5DRSBPRiBPc3BmdjNIb3N0RW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBsaXN0IG9mIEhvc3RzLCBhbmQgdGhlaXIgbWV0cmljcywgdGhhdCB0aGUgCisgICAgICAgICAgICByb3V0ZXIgd2lsbCBhZHZlcnRpc2UgYXMgaG9zdCByb3V0ZXMuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBBcHBlbmRpeCBDLjYgIEhvc3Qgcm91dGUgcGFyYW0tIAorICAgICAgICAgICAgZXRlcnMiIAorICAgICAgICA6Oj0geyBvc3BmdjNPYmplY3RzIDYgfSAKKyAKK29zcGZ2M0hvc3RFbnRyeSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIE9zcGZ2M0hvc3RFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSBtZXRyaWMgdG8gYmUgYWR2ZXJ0aXNlZCB3aGVuIGEgZ2l2ZW4gaG9zdCBpcyAKKyAgICAgICAgICAgIHJlYWNoYWJsZS4iIAorICAgICAgICBJTkRFWCAgICAgICAgICAgeyBvc3BmdjNIb3N0QWRkcmVzc1R5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNIb3N0QWRkcmVzcyB9IAorICAgICAgICA6Oj0geyBvc3BmdjNIb3N0VGFibGUgMSB9IAorIAorT3NwZnYzSG9zdEVudHJ5IDo6PSBTRVFVRU5DRSB7IAorICAgICAgICBvc3BmdjNIb3N0QWRkcmVzc1R5cGUgCisgICAgICAgICAgICAgICAgSW5ldEFkZHJlc3NUeXBlLCAKKyAgICAgICAgb3NwZnYzSG9zdEFkZHJlc3MgCisgICAgICAgICAgICAgICAgSW5ldEFkZHJlc3MsIAorICAgICAgICBvc3BmdjNIb3N0TWV0cmljIAorICAgICAgICAgICAgICAgIE1ldHJpYywgCisgICAgICAgIG9zcGZ2M0hvc3RTdGF0dXMgCisgICAgICAgICAgICAgICAgUm93U3RhdHVzLCAKKyAgICAgICAgb3NwZnYzSG9zdEFyZWFJRCAKKyAgICAgICAgICAgICAgICBBcmVhSUQgCisgICAgICAgIH0gCisgCitvc3BmdjNIb3N0QWRkcmVzc1R5cGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbmV0QWRkcmVzc1R5cGUgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBhZGRyZXNzIHR5cGUgb2Ygb3NwZnYzSG9zdEFkZHJlc3MuIE9ubHkgSVB2NiAKKyAgICAgICAgICAgIGFkZHJlc3NlcyB3aXRob3V0IHpvbmUgaW5kZXggYXJlIGV4cGVjdGVkLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgQXBwZW5kaXggQy42IEhvc3Qgcm91dGUgcGFyYW1lLSAKKyAgICAgICAgICAgIHRlcnMiIAorICAgICAgICA6Oj0geyBvc3BmdjNIb3N0RW50cnkgMSB9IAorIAorIAorb3NwZnYzSG9zdEFkZHJlc3MgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbmV0QWRkcmVzcyAoU0laRSAoMTYpKSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIElQdjYgQWRkcmVzcyBvZiB0aGUgSG9zdC4gTXVzdCBiZSBhIEdsb2JhbCAKKyAgICAgICAgICAgICBvciBTaXRlLWxvY2FsIGFkZHJlc3MuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBBcHBlbmRpeCBDLjYgSG9zdCByb3V0ZSBwYXJhbWUtIAorICAgICAgICAgICAgdGVycyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0hvc3RFbnRyeSAyIH0gCisgCitvc3BmdjNIb3N0TWV0cmljIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgTWV0cmljIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgTWV0cmljIHRvIGJlIGFkdmVydGlzZWQuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBBcHBlbmRpeCBDLjYgSG9zdCByb3V0ZSBwYXJhbWUtIAorICAgICAgICAgICAgdGVycyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0hvc3RFbnRyeSAzIH0gCisgCitvc3BmdjNIb3N0U3RhdHVzIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm93U3RhdHVzIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGlzIHZhcmlhYmxlIGNvbnRyb2xzIHRoZSBzdGF0dXMgb2YgIHRoZSAgZW4tIAorICAgICAgICAgICAgdHJ5LiBUaGUgdXNlIG9mIFJvd1N0YXR1cyBpcyBjb3ZlcmVkIGluIG1vcmUgZGV0YWlsIAorICAgICAgICAgICAgaW4gWzZdLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0hvc3RFbnRyeSA0IH0gCisgCitvc3BmdjNIb3N0QXJlYUlEIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQXJlYUlEIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgQXJlYSB0aGUgSG9zdCBFbnRyeSBpcyB0byBiZSBmb3VuZCB3aXRoaW4uIAorICAgICAgICAgICAgQnkgIGRlZmF1bHQsIHRoZSBhcmVhIHRoYXQgYSBzdWJzdW1pbmcgT1NQRnYzIGluLSAKKyAgICAgICAgICAgIHRlcmZhY2UgaXMgaW4sIG9yIDAuMC4wLjAiIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIEFwcGVuZGl4IEMuMiBBcmVhIHBhcmFtZXRlcnMiIAorICAgICAgICA6Oj0geyBvc3BmdjNIb3N0RW50cnkgNSB9IAorIAorLS0gT1NQRnYzIEludGVyZmFjZSBUYWJsZSAKKyAKK29zcGZ2M0lmVGFibGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBTRVFVRU5DRSBPRiBPc3BmdjNJZkVudHJ5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgT1NQRnYzIEludGVyZmFjZSBUYWJsZSBkZXNjcmliZXMgdGhlICBpbnRlci0gCisgICAgICAgICAgICBmYWNlcyBmcm9tIHRoZSB2aWV3cG9pbnQgb2YgT1NQRnYzLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgQXBwZW5kaXggQy4zICBSb3V0ZXIgIGludGVyZmFjZSAKKyAgICAgICAgICAgIHBhcmFtZXRlcnMiIAorICAgICAgICA6Oj0geyBvc3BmdjNPYmplY3RzIDcgfSAKKyAKK29zcGZ2M0lmRW50cnkgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBPc3BmdjNJZkVudHJ5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgT1NQRnYzIEludGVyZmFjZSBFbnRyeSBkZXNjcmliZXMgb25lICBpbnRlci0gCisgICAgICAgICAgICBmYWNlIGZyb20gdGhlIHZpZXdwb2ludCBvZiBPU1BGdjMuIiAKKyAgICAgICAgSU5ERVggICAgICAgICAgIHsgb3NwZnYzSWZJbmRleCB9IAorICAgICAgICA6Oj0geyBvc3BmdjNJZlRhYmxlIDEgfSAKKyAKKyAKK09zcGZ2M0lmRW50cnkgOjo9IFNFUVVFTkNFIHsgCisgICAgICAgIG9zcGZ2M0lmSW5kZXggCisgICAgICAgICAgICAgICAgSW50ZXJmYWNlSW5kZXgsIAorICAgICAgICBvc3BmdjNJZkFyZWFJZCAKKyAgICAgICAgICAgICAgICBBcmVhSUQsIAorICAgICAgICBvc3BmdjNJZlR5cGUgCisgICAgICAgICAgICAgICAgSU5URUdFUiwgCisgICAgICAgIG9zcGZ2M0lmQWRtaW5TdGF0IAorICAgICAgICAgICAgICAgIFN0YXR1cywgCisgICAgICAgIG9zcGZ2M0lmUnRyUHJpb3JpdHkgCisgICAgICAgICAgICAgICAgRGVzaWduYXRlZFJvdXRlclByaW9yaXR5LCAKKyAgICAgICAgb3NwZnYzSWZUcmFuc2l0RGVsYXkgCisgICAgICAgICAgICAgICAgVXBUb1JlZnJlc2hJbnRlcnZhbCwgCisgICAgICAgIG9zcGZ2M0lmUmV0cmFuc0ludGVydmFsIAorICAgICAgICAgICAgICAgIFVwVG9SZWZyZXNoSW50ZXJ2YWwsIAorICAgICAgICBvc3BmdjNJZkhlbGxvSW50ZXJ2YWwgCisgICAgICAgICAgICAgICAgSGVsbG9SYW5nZSwgCisgICAgICAgIG9zcGZ2M0lmUnRyRGVhZEludGVydmFsIAorICAgICAgICAgICAgICAgICBSb3V0ZXJEZWFkUmFuZ2UsIAorICAgICAgICBvc3BmdjNJZlBvbGxJbnRlcnZhbCAKKyAgICAgICAgICAgICAgICBVbnNpZ25lZDMyLCAKKyAgICAgICAgb3NwZnYzSWZTdGF0ZSAKKyAgICAgICAgICAgICAgICBJTlRFR0VSLCAKKyAgICAgICAgb3NwZnYzSWZEZXNpZ25hdGVkUm91dGVyIAorICAgICAgICAgICAgICAgIFJvdXRlcklELCAKKyAgICAgICAgb3NwZnYzSWZCYWNrdXBEZXNpZ25hdGVkUm91dGVyIAorICAgICAgICAgICAgICAgIFJvdXRlcklELCAKKyAgICAgICAgb3NwZnYzSWZFdmVudHMgCisgICAgICAgICAgICAgICAgQ291bnRlcjMyLCAKKyAgICAgICAgb3NwZnYzSWZTdGF0dXMgCisgICAgICAgICAgICAgICAgUm93U3RhdHVzLCAKKyAgICAgICAgb3NwZnYzSWZNdWx0aWNhc3RGb3J3YXJkaW5nIAorICAgICAgICAgICAgICAgIElOVEVHRVIsIAorICAgICAgICBvc3BmdjNJZkRlbWFuZCAKKyAgICAgICAgICAgICAgICBUcnV0aFZhbHVlLCAKKyAgICAgICAgb3NwZnYzSWZNZXRyaWNWYWx1ZSAKKyAgICAgICAgICAgICAgICBNZXRyaWMsIAorICAgICAgICBvc3BmdjNJZkxpbmtTY29wZUxzYUNvdW50IAorICAgICAgICAgICAgICAgIEdhdWdlMzIsIAorICAgICAgICBvc3BmdjNJZkxpbmtMc2FDa3N1bVN1bSAKKyAgICAgICAgICAgICAgICBJbnRlZ2VyMzIsIAorICAgICAgICBvc3BmdjNJZkluc3RJZCAKKyAgICAgICAgICAgICAgICBJbnRlZ2VyMzIsIAorICAgICAgICBvc3BmdjNJZkRlbWFuZE5iclByb2JlIAorICAgICAgICAgICAgICAgIFRydXRoVmFsdWUsIAorICAgICAgICBvc3BmdjNJZkRlbWFuZE5iclByb2JlUmV0eExpbWl0ICAKKyAgICAgICAgICAgICAgICBVbnNpZ25lZDMyLCAKKyAgICAgICAgb3NwZnYzSWZEZW1hbmROYnJQcm9iZUludGVydmFsICAKKyAgICAgICAgICAgICAgICBVbnNpZ25lZDMyIAorICAgICAgICB9IAorIAorb3NwZnYzSWZJbmRleCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVyZmFjZUluZGV4IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgaW50ZXJmYWNlIGluZGV4IG9mIHRoaXMgT1NQRnYzIGludGVyZmFjZS4gCisgICAgICAgICAgICAgSXQgY29ycmVzcG9uZHMgdG8gdGhlIGludGVyZmFjZSBpbmRleCBvZiB0aGUgCisgICAgICAgICAgICAgSVB2NiBpbnRlcmZhY2Ugb24gd2hpY2ggT1NQRnYzIGlzIGNvbmZpZ3VyZWQuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSAxIH0gCisgCitvc3BmdjNJZkFyZWFJZCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEFyZWFJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSAzMi1iaXQgaW50ZWdlciB1bmlxdWVseSBpZGVudGlmeWluZyB0aGUgYXJlYSAKKyAgICAgICAgICAgIHRvICB3aGljaCAgdGhlICBpbnRlcmZhY2UgIGNvbm5lY3RzLiAgIEFyZWEgIElEIAorICAgICAgICAgICAgMC4wLjAuMCBpcyB1c2VkIGZvciB0aGUgT1NQRnYzIGJhY2tib25lLiIgCisgICAgICAgIERFRlZBTCAgICAgICAgICB7ICcwMDAwMDAwMCdIIH0gLS0gMC4wLjAuMCAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSAyIH0gCisgCitvc3BmdjNJZlR5cGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJTlRFR0VSIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBicm9hZGNhc3QoMSksIAorICAgICAgICAgICAgICAgICAgICAgICAgbmJtYSgyKSwgCisgICAgICAgICAgICAgICAgICAgICAgICBwb2ludFRvUG9pbnQoMyksIAorICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRUb011bHRpcG9pbnQoNSkgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgT1NQRnYzIGludGVyZmFjZSB0eXBlLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgMyB9IAorIAorb3NwZnYzSWZBZG1pblN0YXQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBTdGF0dXMgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBPU1BGdjMgaW50ZXJmYWNlJ3MgIGFkbWluaXN0cmF0aXZlICBzdGF0dXMuIAorICAgICAgICAgICAgVGhlICB2YWx1ZSBmb3JtZWQgb24gdGhlIGludGVyZmFjZSwgYW5kIHRoZSBpbi0gCisgICAgICAgICAgICB0ZXJmYWNlIHdpbGwgYmUgYWR2ZXJ0aXNlZCBhcyBhbiBpbnRlcm5hbCByb3V0ZSAKKyAgICAgICAgICAgIHRvICBzb21lICBhcmVhLiAgIFRoZSAgdmFsdWUgJ2Rpc2FibGVkJyBkZW5vdGVzIAorICAgICAgICAgICAgdGhhdCB0aGUgaW50ZXJmYWNlIGlzIGV4dGVybmFsIHRvIE9TUEZ2My4iIAorICAgICAgICBERUZWQUwgICAgICAgICAgeyBlbmFibGVkIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgNCB9IAorIAorb3NwZnYzSWZSdHJQcmlvcml0eSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIERlc2lnbmF0ZWRSb3V0ZXJQcmlvcml0eSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlICBwcmlvcml0eSAgb2YgIHRoaXMgIGludGVyZmFjZS4gICBVc2VkICBpbiAKKyAgICAgICAgICAgIG11bHRpLWFjY2VzcyAgbmV0d29ya3MsICB0aGlzICBmaWVsZCBpcyB1c2VkIGluIAorICAgICAgICAgICAgdGhlIGRlc2lnbmF0ZWQgcm91dGVyIGVsZWN0aW9uIGFsZ29yaXRobS4gICBUaGUgCisgICAgICAgICAgICB2YWx1ZSAwIHNpZ25pZmllcyB0aGF0IHRoZSByb3V0ZXIgaXMgbm90IGVsaWdpLSAKKyAgICAgICAgICAgIGJsZSB0byBiZWNvbWUgdGhlICBkZXNpZ25hdGVkICByb3V0ZXIgIG9uICB0aGlzIAorICAgICAgICAgICAgcGFydGljdWxhciAgbmV0d29yay4gICBJbiB0aGUgZXZlbnQgb2YgYSB0aWUgaW4gCisgICAgICAgICAgICB0aGlzIHZhbHVlLCByb3V0ZXJzIHdpbGwgdXNlIHRoZWlyIFJvdXRlciBJRCBhcyAKKyAgICAgICAgICAgIGEgdGllIGJyZWFrZXIuIiAKKyAgICAgICAgREVGVkFMICAgICAgICAgIHsgMSB9IAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDUgfSAKKyAKK29zcGZ2M0lmVHJhbnNpdERlbGF5IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgVXBUb1JlZnJlc2hJbnRlcnZhbCAKKyAgICAgICAgVU5JVFMgICAgICAgICAgICJzZWNvbmRzIiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGVzdGltYXRlZCBudW1iZXIgb2Ygc2Vjb25kcyAgaXQgIHRha2VzICB0byAKKyAgICAgICAgICAgIHRyYW5zbWl0ICBhICBsaW5rIHN0YXRlIHVwZGF0ZSBwYWNrZXQgb3ZlciB0aGlzIAorICAgICAgICAgICAgaW50ZXJmYWNlLiIgCisgICAgICAgIERFRlZBTCAgICAgICAgICB7IDEgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSA2IH0gCisgCitvc3BmdjNJZlJldHJhbnNJbnRlcnZhbCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFVwVG9SZWZyZXNoSW50ZXJ2YWwgCisgICAgICAgIFVOSVRTICAgICAgICAgICAic2Vjb25kcyIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZXR3ZWVuICBsaW5rLXN0YXRlICBhZC0gCisgICAgICAgICAgICB2ZXJ0aXNlbWVudCAgcmV0cmFuc21pc3Npb25zLCAgZm9yICBhZGphY2VuY2llcyAKKyAgICAgICAgICAgIGJlbG9uZ2luZyB0byB0aGlzICBpbnRlcmZhY2UuICAgVGhpcyAgdmFsdWUgIGlzIAorICAgICAgICAgICAgYWxzbyB1c2VkIHdoZW4gcmV0cmFuc21pdHRpbmcgZGF0YWJhc2UgZGVzY3JpcC0gCisgICAgICAgICAgICB0aW9uIGFuZCBsaW5rLXN0YXRlIHJlcXVlc3QgcGFja2V0cy4iIAorICAgICAgICBERUZWQUwgICAgICAgICAgeyA1IH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgNyB9IAorIAorb3NwZnYzSWZIZWxsb0ludGVydmFsIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSGVsbG9SYW5nZSAKKyAgICAgICAgVU5JVFMgICAgICAgICAgICJzZWNvbmRzIiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGxlbmd0aCBvZiB0aW1lLCBpbiAgc2Vjb25kcywgIGJldHdlZW4gIHRoZSAKKyAgICAgICAgICAgIEhlbGxvICBwYWNrZXRzIHRoYXQgdGhlIHJvdXRlciBzZW5kcyBvbiB0aGUgaW4tIAorICAgICAgICAgICAgdGVyZmFjZS4gIFRoaXMgdmFsdWUgbXVzdCBiZSB0aGUgc2FtZSAgZm9yICBhbGwgCisgICAgICAgICAgICByb3V0ZXJzIGF0dGFjaGVkIHRvIGEgY29tbW9uIG5ldHdvcmsuIiAKKyAgICAgICAgREVGVkFMICAgICAgICAgIHsgMTAgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSA4IH0gCisgCitvc3BmdjNJZlJ0ckRlYWRJbnRlcnZhbCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFJvdXRlckRlYWRSYW5nZSAKKyAgICAgICAgVU5JVFMgICAgICAgICAgICJzZWNvbmRzIiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBzZWNvbmRzIHRoYXQgIGEgIHJvdXRlcidzICBIZWxsbyAKKyAgICAgICAgICAgIHBhY2tldHMgIGhhdmUgIG5vdCBiZWVuIHNlZW4gYmVmb3JlIGl0J3MgbmVpZ2gtIAorICAgICAgICAgICAgYm9ycyBkZWNsYXJlIHRoZSByb3V0ZXIgZG93bi4gIFRoaXMgIHNob3VsZCAgYmUgCisgICAgICAgICAgICBzb21lICBtdWx0aXBsZSAgb2YgIHRoZSAgSGVsbG8gIGludGVydmFsLiAgVGhpcyAKKyAgICAgICAgICAgIHZhbHVlIG11c3QgYmUgdGhlIHNhbWUgZm9yIGFsbCByb3V0ZXJzIGF0dGFjaGVkIAorICAgICAgICAgICAgdG8gYSBjb21tb24gbmV0d29yay4iIAorICAgICAgICBERUZWQUwgICAgICAgICAgeyA0MCB9IAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDkgfSAKKyAKK29zcGZ2M0lmUG9sbEludGVydmFsIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgVW5zaWduZWQzMiAKKyAgICAgICAgVU5JVFMgICAgICAgICAgICJzZWNvbmRzIiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGxhcmdlciB0aW1lIGludGVydmFsLCBpbiBzZWNvbmRzLCAgYmV0d2VlbiAKKyAgICAgICAgICAgIHRoZSAgSGVsbG8gIHBhY2tldHMgIHNlbnQgIHRvICBhbiBpbmFjdGl2ZSBub24tIAorICAgICAgICAgICAgYnJvYWRjYXN0IG11bHRpLSBhY2Nlc3MgbmVpZ2hib3IuIiAKKyAgICAgICAgREVGVkFMICAgICAgICAgIHsgMTIwIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgMTAgfSAKKyAKK29zcGZ2M0lmU3RhdGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJTlRFR0VSIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBkb3duKDEpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BiYWNrKDIpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIHdhaXRpbmcoMyksIAorICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRUb1BvaW50KDQpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRSb3V0ZXIoNSksIAorICAgICAgICAgICAgICAgICAgICAgICAgYmFja3VwRGVzaWduYXRlZFJvdXRlcig2KSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvdGhlckRlc2lnbmF0ZWRSb3V0ZXIoNykgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIE9TUEZ2MyBJbnRlcmZhY2UgU3RhdGUuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSAxMSB9IAorIAorb3NwZnYzSWZEZXNpZ25hdGVkUm91dGVyIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm91dGVySUQgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgUm91dGVyIElEIG9mIHRoZSBEZXNpZ25hdGVkIFJvdXRlci4iIAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDEyIH0gCisgCitvc3BmdjNJZkJhY2t1cERlc2lnbmF0ZWRSb3V0ZXIgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBSb3V0ZXJJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSAgUm91dGVyIElEIG9mICB0aGUgIEJhY2t1cCAgIERlc2lnbmF0ZWQgCisgICAgICAgICAgICBSb3V0ZXIuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSAxNCB9IAorIAorb3NwZnYzSWZFdmVudHMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBDb3VudGVyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHRpbWVzIHRoaXMgIE9TUEYgIGludGVyZmFjZSAgaGFzIAorICAgICAgICAgICAgY2hhbmdlZCBpdHMgc3RhdGUsIG9yIGFuIGVycm9yIGhhcyBvY2N1cnJlZC4iIAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDE1IH0gCisgCisgb3NwZnYzSWZTdGF0dXMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBSb3dTdGF0dXMgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoaXMgdmFyaWFibGUgY29udHJvbHMgdGhlIHN0YXR1cyBvZiAgdGhlICBlbi0gCisgICAgICAgICAgICB0cnkuIFRoZSB1c2Ugb2YgUm93U3RhdHVzIGlzIGNvdmVyZWQgaW4gbW9yZSBkZXRhaWwgaW4gCisgICAgICAgICAgICBbNl0uIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSAxNyB9IAorIAorb3NwZnYzSWZNdWx0aWNhc3RGb3J3YXJkaW5nIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSU5URUdFUiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tlZCgxKSwgICAtLSBubyBtdWx0aWNhc3QgZm9yd2FyZGluZyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpY2FzdCgyKSwgLS0gdXNpbmcgbXVsdGljYXN0IGFkZHJlc3MgCisgICAgICAgICAgICAgICAgICAgICAgICB1bmljYXN0KDMpICAgIC0tIHRvIGVhY2ggT1NQRnYzIG5laWdoYm9yIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHdheSBtdWx0aWNhc3RzIHNob3VsZCAgZm9yd2FyZGVkICBvbiAgdGhpcyAKKyAgICAgICAgICAgIGludGVyZmFjZTsgIG5vdCAgZm9yd2FyZGVkLCAgZm9yd2FyZGVkICBhcyBkYXRhIAorICAgICAgICAgICAgbGluayBtdWx0aWNhc3RzLCBvciBmb3J3YXJkZWQgYXMgZGF0YSBsaW5rIHVuaS0gCisgICAgICAgICAgICBjYXN0cy4gICBEYXRhIGxpbmsgbXVsdGljYXN0aW5nIGlzIG5vdCBtZWFuaW5nLSAKKyAgICAgICAgICAgIGZ1bCBvbiBwb2ludCB0byBwb2ludCBhbmQgTkJNQSBpbnRlcmZhY2VzLCAgYW5kIAorICAgICAgICAgICAgc2V0dGluZyBvc3BmdjNNdWx0aWNhc3RGb3J3YXJkaW5nIHRvIDAgZWZmZWN0aXZlLSAKKyAgICAgICAgICAgIGx5IGRpc2FibGVzIGFsbCBtdWx0aWNhc3QgZm9yd2FyZGluZy4iIAorICAgICAgICBERUZWQUwgeyBibG9ja2VkIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgMTggfSAKKyAKK29zcGZ2M0lmRGVtYW5kIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgVHJ1dGhWYWx1ZSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiSW5kaWNhdGVzIHdoZXRoZXIgRGVtYW5kIE9TUEZ2MyBwcm9jZWR1cmVzIChoZWwtIAorICAgICAgICAgICAgbG8gc3VwcHJlc3Npb24gdG8gRlVMTCBuZWlnaGJvcnMgYW5kIHNldHRpbmcgdGhlIAorICAgICAgICAgICAgRG9Ob3RBZ2UgZmxhZyBvbiBwcm9wYWdhdGVkIExTQXMpIHNob3VsZCBiZSBwZXItIAorICAgICAgICAgICAgZm9ybWVkIG9uIHRoaXMgaW50ZXJmYWNlLiIgCisgICAgICAgIERFRlZBTCB7IGZhbHNlIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgMTkgfSAKKyAKK29zcGZ2M0lmTWV0cmljVmFsdWUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBNZXRyaWMgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBtZXRyaWMgYXNzaWduZWQgdG8gdGhpcyBpbnRlcmZhY2UuIAorICAgICAgICAgICAgIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBNZXRyaWMgaXMgCisgICAgICAgICAgICBSZWZlcmVuY2UgQmFuZHdpZHRoIC8gaWZTcGVlZC4gVGhlIHZhbHVlIG9mIHRoZSAgIAorICAgICAgICAgICAgcmVmZXJlbmNlIGJhbmR3aWR0aCBpcyBjb25maWd1cmVkIGJ5IHRoZSAKKyAgICAgICAgICAgIG9zcGZ2M1JlZmVyZW5jZUJhbmR3aWR0aCBvYmplY3QuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSAyMCB9IAorIAorIG9zcGZ2M0lmTGlua1Njb3BlTHNhQ291bnQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBHYXVnZTMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBMaW5rLVNjb3BlIGxpbmstc3RhdGUgCisgICAgICAgICAgICBhZHZlcnRpc2VtZW50cyBpbiAgdGhpcyAgbGluaydzIGxpbmstc3RhdGUgZGF0YWJhc2UuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSAyMSB9IAorIAorIG9zcGZ2M0lmTGlua0xzYUNrc3VtU3VtIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIDMyLWJpdCB1bnNpZ25lZCBzdW0gb2YgdGhlIExpbmstU2NvcGUgbGluay1zdGF0ZSAKKyAgICAgICAgICAgIGFkdmVydGlzZW1lbnRzJyAgTFMgIGNoZWNrc3VtcyAgY29udGFpbmVkIGluIHRoaXMgCisgICAgICAgICAgICBsaW5rJ3MgbGluay1zdGF0ZSBkYXRhYmFzZS4gIFRoZSBzdW0gY2FuIGJlIHVzZWQgCisgICAgICAgICAgICB0byBkZXRlcm1pbmUgaWYgIHRoZXJlICBoYXMgYmVlbiAgYSAgY2hhbmdlICBpbiBhIAorICAgICAgICAgICAgcm91dGVyJ3MgbGluayBzdGF0ZSBkYXRhYmFzZSwgYW5kIHRvIGNvbXBhcmUgdGhlIAorICAgICAgICAgICAgbGluay1zdGF0ZSBkYXRhYmFzZSBvZiB0d28gcm91dGVycy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDIyIH0gCisgCitvc3BmdjNJZkluc3RJZCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVnZXIzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiRW5hYmxlcyBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgT1NQRnYzIHRvIGJlIHJ1biBvdmVyIAorICAgICAgICAgICAgYSBzaW5nbGUgbGluay4gRWFjaCBwcm90b2NvbCBpbnN0YW5jZSB3b3VsZCBiZSBhc3NpZ25lZCAKKyAgICAgICAgICAgIGEgc2VwYXJhdGUgSUQuIFRoaXMgSUQgaGFzIGxvY2FsIGxpbmsgc2lnbmlmaWNhbmNlIAorICAgICAgICAgICAgb25seS4iIAorICAgICAgICBERUZWQUwgICAgICAgICAgeyAwIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgMjMgfSAKKyAKK29zcGZ2M0lmRGVtYW5kTmJyUHJvYmUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBUcnV0aFZhbHVlIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICAgICIgSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IG5laWdoYm9yIHByb2JpbmcgaXMgCisgICAgICAgICAgICAgICAgIGVuYWJsZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBuZWlnaGJvciAgCisgICAgICAgICAgICAgICAgIGlzIGluYWN0aXZlLiBOZWlnaGJvciBwcm9iaW5nIGlzIGRpc2FibGVkIGJ5ICAKKyAgICAgICAgICAgICAgICAgZGVmYXVsdC4iIAorICAgICAgICBERUZWQUwgeyBmYWxzZSB9IAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDI0IH0gCisgCisgICBvc3BmdjNJZkRlbWFuZE5iclByb2JlUmV0eExpbWl0IE9CSkVDVC1UWVBFICAKKyAgICAgICBTWU5UQVggICAgICAgVW5zaWduZWQzMiAgCisgICAgICAgVU5JVFMgICAgICAgICJzZWNvbmRzIiAgCisgICAgICAgTUFYLUFDQ0VTUyAgIHJlYWQtY3JlYXRlIAorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50ICAKKyAgICAgICBERVNDUklQVElPTiAgCisgICAgICAgICAgIiBUaGUgbnVtYmVyIG9mIGNvbnNlY3V0aXZlIExTQSByZXRyYW5zbWlzc2lvbnMgYmVmb3JlIAorICAgICAgICAgICAgdGhlIG5laWdoYm9yIGlzIGRlZW1lZCBpbmFjdGl2ZSBhbmQgdGhlIG5laWdoYm9yICAKKyAgICAgICAgICAgIGFkamFjZW5jeSBpcyBicm91Z2h0IGRvd24uIiAgCisgICAgICAgREVGVkFMICAgICAgICAgIHsgMTAgfSAKKyAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDI1IH0gIAorIAorIAorICAgb3NwZnYzSWZEZW1hbmROYnJQcm9iZUludGVydmFsIE9CSkVDVC1UWVBFICAKKyAgICAgICBTWU5UQVggICAgICAgVW5zaWduZWQzMiAgCisgICAgICAgVU5JVFMgICAgICAgICJzZWNvbmRzIiAgCisgICAgICAgTUFYLUFDQ0VTUyAgIHJlYWQtY3JlYXRlIAorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50ICAKKyAgICAgICBERVNDUklQVElPTiAgCisgICAgICAgICAgIiBEZWZpbmVzIGhvdyBvZnRlbiB0aGUgbmVpZ2hib3Igd2lsbCBiZSBwcm9iZWQuIiAgCisgICAgICAgREVGVkFMICAgICAgICAgIHsgMTIwIH0gCisgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSAyNiB9ICAKKyAKKyAKKy0tIE9TUEZ2MyBWaXJ0dWFsIEludGVyZmFjZSBUYWJsZSAKKyAKKy0tIFRoZSBWaXJ0dWFsIEludGVyZmFjZSBUYWJsZSBkZXNjcmliZXMgdGhlIHZpcnR1YWwgCistLSBsaW5rcyB0aGF0IHRoZSBPU1BGdjMgUHJvY2VzcyBpcyBjb25maWd1cmVkIHRvIAorLS0gY2Fycnkgb24uIAorIAorb3NwZnYzVmlydElmVGFibGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBTRVFVRU5DRSBPRiBPc3BmdjNWaXJ0SWZFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiSW5mb3JtYXRpb24gYWJvdXQgdGhpcyByb3V0ZXIncyB2aXJ0dWFsIGludGVyLSAKKyAgICAgICAgICAgIGZhY2VzLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gIDIsICBBcHBlbmRpeCAgQy40ICAgVmlydHVhbCAgbGluayAKKyAgICAgICAgICAgIHBhcmFtZXRlcnMiIAorICAgICAgICA6Oj0geyBvc3BmdjNPYmplY3RzIDggfSAKKyAKK29zcGZ2M1ZpcnRJZkVudHJ5IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgT3NwZnYzVmlydElmRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIFZpcnR1YWwgSW50ZXJmYWNlLiIgCisgICAgICAgIElOREVYICAgICAgICAgICB7IG9zcGZ2M1ZpcnRJZkFyZWFJZCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnRJZk5laWdoYm9yIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnRJZlRhYmxlIDEgfSAKKyAKK09zcGZ2M1ZpcnRJZkVudHJ5IDo6PSBTRVFVRU5DRSB7IAorICAgICAgICBvc3BmdjNWaXJ0SWZBcmVhSWQgCisgICAgICAgICAgICAgICAgQXJlYUlELCAKKyAgICAgICAgb3NwZnYzVmlydElmTmVpZ2hib3IgCisgICAgICAgICAgICAgICAgUm91dGVySUQsIAorICAgICAgICBvc3BmdjNWaXJ0SWZJbmRleCAKKyAgICAgICAgICAgICAgICBJbnRlcmZhY2VJbmRleCwgCisgICAgICAgIG9zcGZ2M1ZpcnRJZlRyYW5zaXREZWxheSAKKyAgICAgICAgICAgICAgICBVcFRvUmVmcmVzaEludGVydmFsLCAKKyAgICAgICAgb3NwZnYzVmlydElmUmV0cmFuc0ludGVydmFsIAorICAgICAgICAgICAgICAgIFVwVG9SZWZyZXNoSW50ZXJ2YWwsIAorICAgICAgICBvc3BmdjNWaXJ0SWZIZWxsb0ludGVydmFsIAorICAgICAgICAgICAgICAgIEhlbGxvUmFuZ2UsIAorICAgICAgICBvc3BmdjNWaXJ0SWZSdHJEZWFkSW50ZXJ2YWwgCisgICAgICAgICAgICAgICAgIFJvdXRlckRlYWRSYW5nZSwgCisgICAgICAgIG9zcGZ2M1ZpcnRJZlN0YXRlIAorICAgICAgICAgICAgICAgIElOVEVHRVIsIAorICAgICAgICBvc3BmdjNWaXJ0SWZFdmVudHMgCisgICAgICAgICAgICAgICAgQ291bnRlcjMyLCAKKyAgICAgICAgb3NwZnYzVmlydElmU3RhdHVzIAorICAgICAgICAgICAgICAgIFJvd1N0YXR1cywgCisgICAgICAgIG9zcGZ2M1ZpcnRJZkxpbmtTY29wZUxzYUNvdW50IAorICAgICAgICAgICAgICAgIEdhdWdlMzIsIAorICAgICAgICBvc3BmdjNWaXJ0SWZMaW5rTHNhQ2tzdW1TdW0gCisgICAgICAgICAgICAgICAgICAgSW50ZWdlcjMyIAorICAgICAgICB9IAorIAorb3NwZnYzVmlydElmQXJlYUlkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQXJlYUlEIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgIFRyYW5zaXQgIEFyZWEgIHRoYXQgIHRoZSAgIFZpcnR1YWwgICBMaW5rIAorICAgICAgICAgICAgdHJhdmVyc2VzLiAgQnkgZGVmaW5pdGlvbiwgdGhpcyBpcyBub3QgMC4wLjAuMCIgCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnRJZkVudHJ5IDEgfSAKKyAKK29zcGZ2M1ZpcnRJZk5laWdoYm9yIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm91dGVySUQgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBSb3V0ZXIgSUQgb2YgdGhlIFZpcnR1YWwgTmVpZ2hib3IuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydElmRW50cnkgMiB9IAorIAorb3NwZnYzVmlydElmSW5kZXggT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlcmZhY2VJbmRleCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGludGVyZmFjZSBJRCBhc3NpZ25lZCB0byB0aGlzIE9TUEZ2MyB2aXJ0dWFsIAorICAgICAgICAgICAgaW50ZXJmYWNlLiBJdCBpcyBhZHZlcnRpc2VkIGluIEhlbGxvJ3Mgc2VudCBvdmVyIAorICAgICAgICAgICAgdGhlIHZpcnRhbCBsaW5rIGFuZCBpbiB0aGUgcm91dGVyJ3Mgcm91dGVyLUxTQXMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydElmRW50cnkgMyB9IAorIAorb3NwZnYzVmlydElmVHJhbnNpdERlbGF5IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgVXBUb1JlZnJlc2hJbnRlcnZhbCAKKyAgICAgICAgVU5JVFMgICAgICAgICAgICJzZWNvbmRzIiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGVzdGltYXRlZCBudW1iZXIgb2Ygc2Vjb25kcyAgaXQgIHRha2VzICB0byAKKyAgICAgICAgICAgIHRyYW5zbWl0ICBhIGxpbmstIHN0YXRlIHVwZGF0ZSBwYWNrZXQgb3ZlciB0aGlzIAorICAgICAgICAgICAgaW50ZXJmYWNlLiIgCisgICAgICAgIERFRlZBTCAgICAgICAgICB7IDEgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydElmRW50cnkgNCB9IAorIAorb3NwZnYzVmlydElmUmV0cmFuc0ludGVydmFsIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgVXBUb1JlZnJlc2hJbnRlcnZhbCAKKyAgICAgICAgVU5JVFMgICAgICAgICAgICJzZWNvbmRzIiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBzZWNvbmRzIGJldHdlZW4gIGxpbmstc3RhdGUgIGFkLSAKKyAgICAgICAgICAgIHZlcnRpc2VtZW50ICByZXRyYW5zbWlzc2lvbnMsICBmb3IgIGFkamFjZW5jaWVzIAorICAgICAgICAgICAgYmVsb25naW5nIHRvIHRoaXMgIGludGVyZmFjZS4gICBUaGlzICB2YWx1ZSAgaXMgCisgICAgICAgICAgICBhbHNvIHVzZWQgd2hlbiByZXRyYW5zbWl0dGluZyBkYXRhYmFzZSBkZXNjcmlwLSAKKyAgICAgICAgICAgIHRpb24gIGFuZCAgbGluay1zdGF0ZSAgcmVxdWVzdCAgcGFja2V0cy4gICBUaGlzIAorICAgICAgICAgICAgdmFsdWUgIHNob3VsZCAgYmUgd2VsbCBvdmVyIHRoZSBleHBlY3RlZCByb3VuZC0gCisgICAgICAgICAgICB0cmlwIHRpbWUuIiAKKyAgICAgICAgREVGVkFMICAgICAgICAgIHsgNSB9IAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0SWZFbnRyeSA1IH0gCisgCitvc3BmdjNWaXJ0SWZIZWxsb0ludGVydmFsIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSGVsbG9SYW5nZSAKKyAgICAgICAgVU5JVFMgICAgICAgICAgICJzZWNvbmRzIiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGxlbmd0aCBvZiB0aW1lLCBpbiAgc2Vjb25kcywgIGJldHdlZW4gIHRoZSAKKyAgICAgICAgICAgIEhlbGxvICBwYWNrZXRzIHRoYXQgdGhlIHJvdXRlciBzZW5kcyBvbiB0aGUgaW4tIAorICAgICAgICAgICAgdGVyZmFjZS4gIFRoaXMgdmFsdWUgbXVzdCBiZSB0aGUgc2FtZSAgZm9yICB0aGUgCisgICAgICAgICAgICB2aXJ0dWFsIG5laWdoYm9yLiIgCisgICAgICAgIERFRlZBTCAgICAgICAgICB7IDEwIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnRJZkVudHJ5IDYgfSAKKyAKK29zcGZ2M1ZpcnRJZlJ0ckRlYWRJbnRlcnZhbCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFJvdXRlckRlYWRSYW5nZSAKKyAgICAgICAgVU5JVFMgICAgICAgICAgICJzZWNvbmRzIiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBzZWNvbmRzIHRoYXQgIGEgIHJvdXRlcidzICBIZWxsbyAKKyAgICAgICAgICAgIHBhY2tldHMgIGhhdmUgIG5vdCBiZWVuIHNlZW4gYmVmb3JlIGl0J3MgbmVpZ2gtIAorICAgICAgICAgICAgYm9ycyBkZWNsYXJlIHRoZSByb3V0ZXIgZG93bi4gIFRoaXMgIHNob3VsZCAgYmUgCisgICAgICAgICAgICBzb21lICBtdWx0aXBsZSAgb2YgIHRoZSAgSGVsbG8gIGludGVydmFsLiAgVGhpcyAKKyAgICAgICAgICAgIHZhbHVlIG11c3QgYmUgdGhlIHNhbWUgZm9yIHRoZSAgdmlydHVhbCAgbmVpZ2gtIAorICAgICAgICAgICAgYm9yLiIgCisgICAgICAgIERFRlZBTCAgICAgICAgICB7IDYwIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnRJZkVudHJ5IDcgfSAKKyAKK29zcGZ2M1ZpcnRJZlN0YXRlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSU5URUdFUiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgZG93bigxKSwgLS0gdGhlc2UgdXNlIHRoZSBzYW1lIGVuY29kaW5nIAorICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRUb1BvaW50KDQpIC0tIGFzIHRoZSBvc3BmdjNJZlRhYmxlIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIk9TUEYgdmlydHVhbCBpbnRlcmZhY2Ugc3RhdGVzLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnRJZkVudHJ5IDggfSAKKyAKK29zcGZ2M1ZpcnRJZkV2ZW50cyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIENvdW50ZXIzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2Ygc3RhdGUgY2hhbmdlcyBvciBlcnJvciBldmVudHMgb24gCisgICAgICAgICAgICB0aGlzIFZpcnR1YWwgTGluayIgCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnRJZkVudHJ5IDkgfSAKKyAKK29zcGZ2M1ZpcnRJZlN0YXR1cyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFJvd1N0YXR1cyAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhpcyB2YXJpYWJsZSBjb250cm9scyB0aGUgc3RhdHVzIG9mICB0aGUgIGVuLSAKKyAgICAgICAgICAgIHRyeS4gVGhlIHVzZSBvZiBSb3dTdGF0dXMgaXMgY292ZXJlZCBpbiBtb3JlIGRldGFpbCAKKyAgICAgICAgICAgIGluIFs2XS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0SWZFbnRyeSAxMCB9IAorIAorb3NwZnYzVmlydElmTGlua1Njb3BlTHNhQ291bnQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBHYXVnZTMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBMaW5rLVNjb3BlIGxpbmstc3RhdGUgCisgICAgICAgICAgICBhZHZlcnRpc2VtZW50cyBpbiAgdGhpcyAgdmlydHVhbCBsaW5rJ3MgbGluay1zdGF0ZSAKKyAgICAgICAgICAgIGRhdGFiYXNlLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnRJZkVudHJ5IDExIH0gCisgCitvc3BmdjNWaXJ0SWZMaW5rTHNhQ2tzdW1TdW0gT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlZ2VyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgMzItYml0IHVuc2lnbmVkIHN1bSBvZiB0aGUgTGluay1TY29wZSBsaW5rLXN0YXRlIAorICAgICAgICAgICAgYWR2ZXJ0aXNlbWVudHMnICBMUyAgY2hlY2tzdW1zICBjb250YWluZWQgaW4gdGhpcyAKKyAgICAgICAgICAgIHZpcnR1YWwgbGluaydzIGxpbmstc3RhdGUgZGF0YWJhc2UuICBUaGUgc3VtIGNhbiBiZSB1c2VkIAorICAgICAgICAgICAgdG8gZGV0ZXJtaW5lIGlmICB0aGVyZSAgaGFzIGJlZW4gIGEgIGNoYW5nZSAgaW4gYSAKKyAgICAgICAgICAgIHJvdXRlcidzIGxpbmsgc3RhdGUgZGF0YWJhc2UsIGFuZCB0byBjb21wYXJlIHRoZSAKKyAgICAgICAgICAgIGxpbmstc3RhdGUgZGF0YWJhc2Ugb2YgdHdvIHJvdXRlcnMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydElmRW50cnkgMTIgfSAKKyAKKyAKKy0tIE9TUEZ2MyBOZWlnaGJvciBUYWJsZSAKKyAKKy0tIFRoZSBPU1BGdjMgTmVpZ2hib3IgVGFibGUgZGVzY3JpYmVzIGFsbCBuZWlnaGJvcnMgaW4gCistLSB0aGUgbG9jYWxpdHkgb2YgdGhlIHN1YmplY3Qgcm91dGVyLiAKKyAKK29zcGZ2M05iclRhYmxlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgU0VRVUVOQ0UgT0YgT3NwZnYzTmJyRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkEgdGFibGUgb2Ygbm9uLXZpcnR1YWwgbmVpZ2hib3IgaW5mb3JtYXRpb24uIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBTZWN0aW9uIDEwICBUaGUgIE5laWdoYm9yICBEYXRhIAorICAgICAgICAgICAgU3RydWN0dXJlIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzT2JqZWN0cyA5IH0gCisgCitvc3BmdjNOYnJFbnRyeSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIE9zcGZ2M05ickVudHJ5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGEgc2luZ2xlIG5laWdoYm9yLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgU2VjdGlvbiAxMCAgVGhlICBOZWlnaGJvciAgRGF0YSAKKyAgICAgICAgICAgIFN0cnVjdHVyZSIgCisgICAgICAgIElOREVYICAgICAgICAgICB7IG9zcGZ2M05icklmSW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYnJSdHJJZCB9IAorICAgICAgICA6Oj0geyBvc3BmdjNOYnJUYWJsZSAxIH0gCisgCitPc3BmdjNOYnJFbnRyeSA6Oj0gU0VRVUVOQ0UgeyAKKyAgICAgICAgb3NwZnYzTmJySWZJbmRleCAKKyAgICAgICAgICAgICAgICBJbnRlcmZhY2VJbmRleCwgCisgICAgICAgIG9zcGZ2M05iclJ0cklkIAorICAgICAgICAgICAgICAgIFJvdXRlcklELCAKKyAgICAgICAgb3NwZnYzTmJyQWRkcmVzc1R5cGUgCisgICAgICAgICAgICAgICAgSW5ldEFkZHJlc3NUeXBlLCAKKyAgICAgICAgb3NwZnYzTmJyQWRkcmVzcyAKKyAgICAgICAgICAgICAgICBJbmV0QWRkcmVzcywgICAgICAgICAgICAgCisgICAgICAgIG9zcGZ2M05ick9wdGlvbnMgCisgICAgICAgICAgICAgICAgSW50ZWdlcjMyLCAKKyAgICAgICAgb3NwZnYzTmJyUHJpb3JpdHkgCisgICAgICAgICAgICAgICAgRGVzaWduYXRlZFJvdXRlclByaW9yaXR5LCAKKyAgICAgICAgb3NwZnYzTmJyU3RhdGUgCisgICAgICAgICAgICAgICAgSU5URUdFUiwgCisgICAgICAgIG9zcGZ2M05ickV2ZW50cyAKKyAgICAgICAgICAgICAgICBDb3VudGVyMzIsIAorICAgICAgICBvc3BmdjNOYnJMc1JldHJhbnNRTGVuIAorICAgICAgICAgICAgICAgIEdhdWdlMzIsIAorICAgICAgICBvc3BmdjNOYnJIZWxsb1N1cHByZXNzZWQgCisgICAgICAgICAgICAgICAgVHJ1dGhWYWx1ZSwgCisgICAgICAgIG9zcGZ2M05icklmSWQgCisgICAgICAgICAgICAgICAgSW50ZXJmYWNlSW5kZXgsIAorICAgICAgICBvc3BmdjNOYnJSZXN0YXJ0SGVscGVyU3RhdHVzICAKKyAgICAgICAgICAgICAgICBJTlRFR0VSLCAgCisgICAgICAgIG9zcGZ2M05iclJlc3RhcnRIZWxwZXJBZ2UgIAorICAgICAgICAgICAgICAgIFVwVG9SZWZyZXNoSW50ZXJ2YWwsICAKKyAgICAgICAgb3NwZnYzTmJyUmVzdGFydEhlbHBlckV4aXRSZWFzb24gIAorICAgICAgICAgICAgICAgIElOVEVHRVIgCisgICAgICAgIH0gCisgCitvc3BmdjNOYnJJZkluZGV4IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZXJmYWNlSW5kZXggCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBsb2NhbCBsaW5rIElEIG9mIHRoZSBsaW5rIG92ZXIgd2hpY2ggdGhlIAorICAgICAgICAgICAgIG5laWdoYm9yIGNhbiBiZSByZWFjaGVkLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M05ickVudHJ5IDEgfSAKKyAKK29zcGZ2M05iclJ0cklkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm91dGVySUQgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkEgMzItYml0IGludGVnZXIgKHJlcHJlc2VudGVkIGFzIGEgdHlwZSAgSXBBZC0gCisgICAgICAgICAgICBkcmVzcykgIHVuaXF1ZWx5ICBpZGVudGlmeWluZyAgdGhlICBuZWlnaGJvcmluZyAKKyAgICAgICAgICAgIHJvdXRlciBpbiB0aGUgQXV0b25vbW91cyBTeXN0ZW0uIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTmJyRW50cnkgMiB9IAorIAorb3NwZnYzTmJyQWRkcmVzc1R5cGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbmV0QWRkcmVzc1R5cGUgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgYWRkcmVzcyB0eXBlIG9mIG9zcGZ2M05ickFkZHJlc3MuIE9ubHkgSVB2NiAKKyAgICAgICAgICAgIGFkZHJlc3NlcyB3aXRob3V0IHpvbmUgaW5kZXggYXJlIGV4cGVjdGVkLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M05ickVudHJ5IDMgfSAKKyAKK29zcGZ2M05ickFkZHJlc3MgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbmV0QWRkcmVzcyAoU0laRSAoMTYpKSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBJUHY2IGFkZHJlc3Mgb2YgdGhlIG5laWdoYm9yIGFzc29jaWF0ZWQgd2l0aCAKKyAgICAgICAgICAgIHRoZSBsb2NhbCBsaW5rLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M05ickVudHJ5IDQgfSAKKyAKK29zcGZ2M05ick9wdGlvbnMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlZ2VyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJBIEJpdCBNYXNrIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5laWdoYm9yJ3Mgb3AtIAorICAgICAgICAgICAgdGlvbnMgZmllbGQuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAzLCBBcHBlbmRpeCBBLjIgdGhlIE9wdGlvbnMgZmllbGQiIAorICAgICAgICA6Oj0geyBvc3BmdjNOYnJFbnRyeSA1IH0gCisgCitvc3BmdjNOYnJQcmlvcml0eSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIERlc2lnbmF0ZWRSb3V0ZXJQcmlvcml0eSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBwcmlvcml0eSBvZiB0aGlzIG5laWdoYm9yIGluIHRoZSBkZXNpZ25hdC0gCisgICAgICAgICAgICBlZCByb3V0ZXIgZWxlY3Rpb24gYWxnb3JpdGhtLiAgVGhlIHZhbHVlIDAgc2lnLSAKKyAgICAgICAgICAgIG5pZmllcyB0aGF0IHRoZSBuZWlnaGJvciBpcyBub3QgZWxpZ2libGUgdG8gYmUtIAorICAgICAgICAgICAgY29tZSAgdGhlICBkZXNpZ25hdGVkIHJvdXRlciBvbiB0aGlzIHBhcnRpY3VsYXIgCisgICAgICAgICAgICBuZXR3b3JrLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M05ickVudHJ5IDYgfSAKKyAKK29zcGZ2M05iclN0YXRlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSU5URUdFUiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgZG93bigxKSwgCisgICAgICAgICAgICAgICAgICAgICAgICBhdHRlbXB0KDIpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGluaXQoMyksIAorICAgICAgICAgICAgICAgICAgICAgICAgdHdvV2F5KDQpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2hhbmdlU3RhcnQoNSksIAorICAgICAgICAgICAgICAgICAgICAgICAgZXhjaGFuZ2UoNiksIAorICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZyg3KSwgCisgICAgICAgICAgICAgICAgICAgICAgICBmdWxsKDgpIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBTdGF0ZSBvZiB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhpcyBOZWlnaC0gCisgICAgICAgICAgICBib3IuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBTZWN0aW9uIDEwLjEgTmVpZ2hib3IgU3RhdGVzIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTmJyRW50cnkgNyB9IAorIAorb3NwZnYzTmJyRXZlbnRzIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQ291bnRlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiB0aW1lcyB0aGlzIG5laWdoYm9yIHJlbGF0aW9uc2hpcCAKKyAgICAgICAgICAgIGhhcyBjaGFuZ2VkIHN0YXRlLCBvciBhbiBlcnJvciBoYXMgb2NjdXJyZWQuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTmJyRW50cnkgOCB9IAorIAorb3NwZnYzTmJyTHNSZXRyYW5zUUxlbiBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEdhdWdlMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgIGN1cnJlbnQgIGxlbmd0aCAgb2YgIHRoZSAgIHJldHJhbnNtaXNzaW9uIAorICAgICAgICAgICAgcXVldWUuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTmJyRW50cnkgOSB9IAorIAorb3NwZnYzTmJySGVsbG9TdXBwcmVzc2VkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgVHJ1dGhWYWx1ZSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkluZGljYXRlcyB3aGV0aGVyIEhlbGxvcyBhcmUgYmVpbmcgIHN1cHByZXNzZWQgCisgICAgICAgICAgICB0byB0aGUgbmVpZ2hib3IiIAorICAgICAgICA6Oj0geyBvc3BmdjNOYnJFbnRyeSAxMCB9IAorIAorb3NwZnYzTmJySWZJZCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVyZmFjZUluZGV4IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGludGVyZmFjZSBJRCB0aGF0IHRoZSBuZWlnaGJvciBhZHZlcnRpc2VzIAorICAgICAgICAgICAgaW4gaXRzIEhlbGxvIFBhY2tldHMgb24gdGhpcyBsaW5rLCB0aGF0IGlzLCB0aGUgCisgICAgICAgICAgICBuZWlnaGJvcidzIGxvY2FsIGludGVyZmFjZSBpbmRleC4iIAorICAgICAgICA6Oj0geyBvc3BmdjNOYnJFbnRyeSAxMSB9IAorIAorb3NwZnYzTmJyUmVzdGFydEhlbHBlclN0YXR1cyBPQkpFQ1QtVFlQRSAgCisgICAgICAgU1lOVEFYICAgICAgIElOVEVHRVIgeyBub3RIZWxwaW5nICgxKSwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscGluZyAoMikgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gIAorICAgICAgIE1BWC1BQ0NFU1MgICByZWFkLW9ubHkgIAorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50ICAKKyAgICAgICBERVNDUklQVElPTiAgCisgICAgICAgICAgIkluZGljYXRlcyB3aGV0aGVyIHRoZSByb3V0ZXIgaXMgYWN0aW5nICAKKyAgICAgICAgICBhcyBhIGhpdGxlc3MgcmVzdGFydCBoZWxwZXIgZm9yIHRoZSBuZWlnaGJvci4iICAKKyAgICAgICAgICA6Oj0geyBvc3BmdjNOYnJFbnRyeSAxMiB9ICAKKyAgICAKK29zcGZ2M05iclJlc3RhcnRIZWxwZXJBZ2UgT0JKRUNULVRZUEUgIAorICAgICAgIFNZTlRBWCAgICAgICBVcFRvUmVmcmVzaEludGVydmFsIAorICAgICAgIFVOSVRTICAgICAgICAic2Vjb25kcyIgIAorICAgICAgIE1BWC1BQ0NFU1MgICByZWFkLW9ubHkgIAorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50ICAKKyAgICAgICBERVNDUklQVElPTiAgCisgICAgICAgICAgIlJlbWFpbmluZyB0aW1lIGluIGN1cnJlbnQgT1NQRiBoaXRsZXNzIHJlc3RhcnQgIAorICAgICAgICAgIGludGVydmFsLCBpZiB0aGUgcm91dGVyIGlzIGFjdGluZyBhcyBhIHJlc3RhcnQgIAorICAgICAgICAgIGhlbHBlciBmb3IgdGhlIG5laWdoYm9yLiIgIAorICAgICAgIDo6PSB7IG9zcGZ2M05ickVudHJ5IDEzIH0gIAorICAgIAorb3NwZnYzTmJyUmVzdGFydEhlbHBlckV4aXRSZWFzb24gT0JKRUNULVRZUEUgIAorICAgICAgIFNZTlRBWCAgICAgICBJTlRFR0VSIHsgbm9uZSAoMSksICAgICAgICAgICAtLSBub3QgYXR0ZW1wdGVkICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluUHJvZ3Jlc3MgKDIpLCAgICAgLS0gcmVzdGFydCBpbiAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHByb2dyZXNzICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZCAoMyksICAgICAgLS0gc3VjY2Vzc2Z1bGx5ICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gY29tcGxldGVkICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVkT3V0ICg0KSwgICAgICAgLS0gdGltZWQgb3V0ICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcG9sb2d5Q2hhbmdlZCAoNSkgLS0gYWJvcnRlZCBkdWUgdG8gIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSB0b3BvbG9neSAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGNoYW5nZS4gIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gIAorICAgICAgIE1BWC1BQ0NFU1MgICByZWFkLW9ubHkgIAorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50ICAKKyAgICAgICBERVNDUklQVElPTiAgCisgICAgICAgICAgIkRlc2NyaWJlcyB0aGUgb3V0Y29tZSBvZiB0aGUgbGFzdCBhdHRlbXB0IGF0IGFjdGluZyAgCisgICAgICAgICAgIGFzIGEgaGl0bGVzcyByZXN0YXJ0IGhlbHBlciBmb3IgdGhlIG5laWdoYm9yLiIgIAorICAgIDo6PSB7IG9zcGZ2M05ickVudHJ5IDE0IH0gCisgCisgCistLSBPU1BGdjMgTkJNQSBOZWlnaGJvciBUYWJsZSAKKyAKKy0tIFRoZSBPU1BGdjMgTkJNQSBOZWlnaGJvciBUYWJsZSBkZXNjcmliZXMgYWxsIGNvbmZpZ3VyZWQgCistLSBOQk1BIG5laWdoYm9ycyBhbmQgbmVpZ2hib3JzIGR5bmFtaWNhbGx5IGRpc2NvdmVyZWQgYnkgCistLSBsb3dlci1sZXZlbCBwcm90b2NvbHMgc3VjaCBhcyBJbnZlcnNlIE5laWdoYm9yIERpc2NvdmVyeS4gCisgCitvc3BmdjNOYm1hTmJyVGFibGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBTRVFVRU5DRSBPRiBPc3BmdjNOYm1hTmJyRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkEgdGFibGUgb2YgY29uZmlndXJlZCBub24tdmlydHVhbCBuZWlnaGJvciAKKyAgICAgICAgICAgIGluZm9ybWF0aW9uIGFuZCBuZWlnaGJvcnMgZHluYW1pY2FsbHkgZGlzY292ZXJlZCAKKyAgICAgICAgICAgIGJ5IGxvd2VyLWxldmVsIHByb3RvY29scyBzdWNoIGFzIEludmVyc2UgTmVpZ2hib3IgCisgICAgICAgICAgICBEaXNjb3ZlcnkuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBTZWN0aW9uIDEwICBUaGUgIE5laWdoYm9yICBEYXRhIAorICAgICAgICAgICAgU3RydWN0dXJlIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzT2JqZWN0cyAxMCB9IAorIAorb3NwZnYzTmJtYU5ickVudHJ5IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgT3NwZnYzTmJtYU5ickVudHJ5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGEgc2luZ2xlIGNvbmZpZ3VyZWQgCisgICAgICAgICAgICBuZWlnaGJvciBvciBuZWlnaGJvciBkaXNjb3ZlcmVkIGJ5IGxvd2VyLWxldmVsIAorICAgICAgICAgICAgcHJvdG9jb2xzIHN1Y2ggYXMgSW52ZXJzZSBOZWlnaGJvciBEaXNjb3ZlcnkuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBTZWN0aW9uIDEwICBUaGUgIE5laWdoYm9yICBEYXRhIAorICAgICAgICAgICAgU3RydWN0dXJlIiAKKyAgICAgICAgSU5ERVggICAgICAgICAgIHsgb3NwZnYzTmJtYU5icklmSW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYm1hTmJyQWRkcmVzc1R5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYm1hTmJyQWRkcmVzcyB9IAorICAgICAgICA6Oj0geyBvc3BmdjNOYm1hTmJyVGFibGUgMSB9IAorIAorT3NwZnYzTmJtYU5ickVudHJ5IDo6PSBTRVFVRU5DRSB7IAorICAgICAgICBvc3BmdjNOYm1hTmJySWZJbmRleCAKKyAgICAgICAgICAgICAgICBJbnRlcmZhY2VJbmRleCwgCisgICAgICAgIG9zcGZ2M05ibWFOYnJBZGRyZXNzVHlwZSAKKyAgICAgICAgICAgICAgICBJbmV0QWRkcmVzc1R5cGUsIAorICAgICAgICBvc3BmdjNOYm1hTmJyQWRkcmVzcyAKKyAgICAgICAgICAgICAgICBJbmV0QWRkcmVzcywgCisgICAgICAgIG9zcGZ2M05ibWFOYnJQcmlvcml0eSAKKyAgICAgICAgICAgICAgICBEZXNpZ25hdGVkUm91dGVyUHJpb3JpdHksIAorICAgICAgICBvc3BmdjNOYm1hTmJyUnRySWQgCisgICAgICAgICAgICAgICAgUm91dGVySUQsIAorICAgICAgICBvc3BmdjNOYm1hTmJyU3RhdGUgCisgICAgICAgICAgICAgICAgSU5URUdFUiwgCisgICAgICAgIG9zcGZ2M05ibWFOYnJTdG9yYWdlVHlwZSAKKyAgICAgICAgICAgICAgICBTdG9yYWdlVHlwZSwgCisgICAgICAgIG9zcGZ2M05ibWFOYnJTdGF0dXMgCisgICAgICAgICAgICAgICAgUm93U3RhdHVzIAorICAgICAgICB9IAorIAorb3NwZnYzTmJtYU5icklmSW5kZXggT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlcmZhY2VJbmRleCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGxvY2FsIGxpbmsgSUQgb2YgdGhlIGxpbmsgb3ZlciB3aGljaCB0aGUgCisgICAgICAgICAgICAgbmVpZ2hib3IgY2FuIGJlIHJlYWNoZWQuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTmJtYU5ickVudHJ5IDEgfSAKKyAKK29zcGZ2M05ibWFOYnJBZGRyZXNzVHlwZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEluZXRBZGRyZXNzVHlwZSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGFkZHJlc3MgdHlwZSBvZiBvc3BmdjNOYnJBZGRyZXNzLiBPbmx5IElQdjYgCisgICAgICAgICAgICBhZGRyZXNzZXMgd2l0aG91dCB6b25lIGluZGV4IGFyZSBleHBlY3RlZC4iIAorICAgICAgICA6Oj0geyBvc3BmdjNOYm1hTmJyRW50cnkgMiB9IAorIAorb3NwZnYzTmJtYU5ickFkZHJlc3MgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbmV0QWRkcmVzcyAoU0laRSAoMTYpKSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIElQdjYgYWRkcmVzcyBvZiB0aGUgbmVpZ2hib3IgYXNzb2NpYXRlZCB3aXRoIAorICAgICAgICAgICAgdGhlIGxvY2FsIGxpbmsuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTmJtYU5ickVudHJ5IDMgfSAKKyAKK29zcGZ2M05ibWFOYnJQcmlvcml0eSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIERlc2lnbmF0ZWRSb3V0ZXJQcmlvcml0eSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHByaW9yaXR5IG9mIHRoaXMgbmVpZ2hib3IgaW4gdGhlIGRlc2lnbmF0LSAKKyAgICAgICAgICAgIGVkIHJvdXRlciBlbGVjdGlvbiBhbGdvcml0aG0uIFRoZSB2YWx1ZSAwIHNpZy0gCisgICAgICAgICAgICBuaWZpZXMgdGhhdCB0aGUgbmVpZ2hib3IgaXMgbm90IGVsaWdpYmxlIHRvIGJlLSAKKyAgICAgICAgICAgIGNvbWUgIHRoZSAgZGVzaWduYXRlZCByb3V0ZXIgb24gdGhpcyBwYXJ0aWN1bGFyIAorICAgICAgICAgICAgbmV0d29yay4iIAorICAgICAgICBERUZWQUwgICAgICAgICAgeyAxIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M05ibWFOYnJFbnRyeSA0IH0gCisgCitvc3BmdjNOYm1hTmJyUnRySWQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBSb3V0ZXJJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkEgMzItYml0IGludGVnZXIgKHJlcHJlc2VudGVkIGFzIGEgdHlwZSBJcEFkLSAKKyAgICAgICAgICAgIGRyZXNzKSB1bmlxdWVseSBpZGVudGlmeWluZyB0aGUgbmVpZ2hib3JpbmcgCisgICAgICAgICAgICByb3V0ZXIgaW4gdGhlIEF1dG9ub21vdXMgU3lzdGVtLiBBIHZhbHVlIG9mIAorICAgICAgICAgICAgMC4wLjAuMCBpcyByZXR1cm5lZCB1bnRpbCBhIEhlbGxvIGlzIHJlY2VpdmVkIAorICAgICAgICAgICAgZnJvbSB0aGUgY29uZmlndXJlZCBuZWlnaGJvci4iIAorICAgICAgICA6Oj0geyBvc3BmdjNOYm1hTmJyRW50cnkgNSB9IAorIAorb3NwZnYzTmJtYU5iclN0YXRlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSU5URUdFUiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgZG93bigxKSwgCisgICAgICAgICAgICAgICAgICAgICAgICBhdHRlbXB0KDIpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGluaXQoMyksIAorICAgICAgICAgICAgICAgICAgICAgICAgdHdvV2F5KDQpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2hhbmdlU3RhcnQoNSksIAorICAgICAgICAgICAgICAgICAgICAgICAgZXhjaGFuZ2UoNiksIAorICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZyg3KSwgCisgICAgICAgICAgICAgICAgICAgICAgICBmdWxsKDgpIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBTdGF0ZSBvZiB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhpcyBOZWlnaC0gCisgICAgICAgICAgICBib3IuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBTZWN0aW9uIDEwLjEgTmVpZ2hib3IgU3RhdGVzIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTmJtYU5ickVudHJ5IDYgfSAKKyAKK29zcGZ2M05ibWFOYnJTdG9yYWdlVHlwZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFN0b3JhZ2VUeXBlIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgc3RvcmFnZSB0eXBlIGZvciB0aGlzIGNvbmNlcHR1YWwgcm93LiAKKyAgICAgICAgICAgIENvbmNlcHR1YWwgcm93cyBoYXZpbmcgdGhlIHZhbHVlICdwZXJtYW5lbnQnIG5lZWQgbm90IAorICAgICAgICAgICAgYWxsb3cgd3JpdGUtYWNjZXNzIHRvIGFueSBjb2x1bW5hciBvYmplY3RzIGluIHRoZSByb3cuIAorICAgICAgICAgICAgTWFudWFsbHkgY29uZmlndXJlZCBlbnRyaWVzIHdpbGwgaGF2ZSBhIHN0b3JhZ2UgdHlwZSAKKyAgICAgICAgICAgIG9mIG5vblZvbGF0aWxlIHdoaWxlIGVudHJpZXMgZHluYW1pY2FsbHkgY3JlYXRlZCBhcyBhIAorICAgICAgICAgICAgcmVzdWx0IG9mIGEgbG93ZXItbGV2ZWwgcHJvdG9jb2wgc3VjaCBhcyBJbnZlcnNlIAorICAgICAgICAgICAgTmVpZ2hib3IgRGlzY292ZXJ5IHdpbGwgaGF2ZSBhIHN0b3JhZ2UgdHlwZSBvZiAKKyAgICAgICAgICAgIHZvbGF0aWxlLiIgCisgICAgICAgIERFRlZBTCAgICAgICAgICB7IG5vblZvbGF0aWxlIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M05ibWFOYnJFbnRyeSA3IH0gCisgCitvc3BmdjNOYm1hTmJyU3RhdHVzIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm93U3RhdHVzIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGlzIHZhcmlhYmxlIGNvbnRyb2xzIHRoZSBzdGF0dXMgb2YgdGhlIGVuLSAKKyAgICAgICAgICAgIHRyeS4gVGhlIHVzZSBvZiBSb3dTdGF0dXMgaXMgY292ZXJlZCBpbiBtb3JlIGRldGFpbCAKKyAgICAgICAgICAgIGluIFs2XS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNOYm1hTmJyRW50cnkgOCB9IAorIAorLS0gT1NQRnYzIFZpcnR1YWwgTmVpZ2hib3IgVGFibGUgCisgCistLSBUaGlzIHRhYmxlIGRlc2NyaWJlcyBhbGwgdmlydHVhbCBuZWlnaGJvcnMuIAorLS0gU2luY2UgVmlydHVhbCBMaW5rcyBhcmUgY29uZmlndXJlZCBpbiB0aGUgCistLSB2aXJ0dWFsIGludGVyZmFjZSB0YWJsZSwgdGhpcyB0YWJsZSBpcyByZWFkLW9ubHkuIAorIAorb3NwZnYzVmlydE5iclRhYmxlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgU0VRVUVOQ0UgT0YgT3NwZnYzVmlydE5ickVudHJ5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJBIHRhYmxlIG9mIHZpcnR1YWwgbmVpZ2hib3IgaW5mb3JtYXRpb24uIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBTZWN0aW9uIDE1IFZpcnR1YWwgTGlua3MiIAorICAgICAgICA6Oj0geyBvc3BmdjNPYmplY3RzIDExIH0gCisgCitvc3BmdjNWaXJ0TmJyRW50cnkgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBPc3BmdjNWaXJ0TmJyRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlZpcnR1YWwgbmVpZ2hib3IgaW5mb3JtYXRpb24uIiAKKyAgICAgICAgSU5ERVggICAgICAgICAgIHsgb3NwZnYzVmlydE5ickFyZWEsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0TmJyUnRySWQgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydE5iclRhYmxlIDEgfSAKKyAKK09zcGZ2M1ZpcnROYnJFbnRyeSA6Oj0gU0VRVUVOQ0UgeyAKKyAgICAgICAgb3NwZnYzVmlydE5ickFyZWEgCisgICAgICAgICAgICAgICAgQXJlYUlELCAKKyAgICAgICAgb3NwZnYzVmlydE5iclJ0cklkIAorICAgICAgICAgICAgICAgIFJvdXRlcklELCAKKyAgICAgICAgb3NwZnYzVmlydE5icklmSW5kZXggCisgICAgICAgICAgICAgICAgSW50ZXJmYWNlSW5kZXgsIAorICAgICAgICBvc3BmdjNWaXJ0TmJyQWRkcmVzc1R5cGUgCisgICAgICAgICAgICAgICAgSW5ldEFkZHJlc3NUeXBlLCAKKyAgICAgICAgb3NwZnYzVmlydE5ickFkZHJlc3MgCisgICAgICAgICAgICAgICAgSW5ldEFkZHJlc3MsIAorICAgICAgICBvc3BmdjNWaXJ0TmJyT3B0aW9ucyAKKyAgICAgICAgICAgICAgICBJbnRlZ2VyMzIsIAorICAgICAgICBvc3BmdjNWaXJ0TmJyU3RhdGUgCisgICAgICAgICAgICAgICAgSU5URUdFUiwgCisgICAgICAgIG9zcGZ2M1ZpcnROYnJFdmVudHMgCisgICAgICAgICAgICAgICAgQ291bnRlcjMyLCAKKyAgICAgICAgb3NwZnYzVmlydE5ickxzUmV0cmFuc1FMZW4gCisgICAgICAgICAgICAgICAgR2F1Z2UzMiwgCisgICAgICAgIG9zcGZ2M1ZpcnROYnJIZWxsb1N1cHByZXNzZWQgCisgICAgICAgICAgICAgICAgVHJ1dGhWYWx1ZSwgCisgICAgICAgIG9zcGZ2M1ZpcnROYnJJZklkIAorICAgICAgICAgICAgICAgIEludGVyZmFjZUluZGV4LCAKKyAgICAgICAgb3NwZnYzVmlydE5iclJlc3RhcnRIZWxwZXJTdGF0dXMgIAorICAgICAgICAgICAgICAgIElOVEVHRVIsICAKKyAgICAgICAgb3NwZnYzVmlydE5iclJlc3RhcnRIZWxwZXJBZ2UgIAorICAgICAgICAgICAgICAgIFVwVG9SZWZyZXNoSW50ZXJ2YWwsICAKKyAgICAgICAgb3NwZnYzVmlydE5iclJlc3RhcnRIZWxwZXJFeGl0UmVhc29uICAKKyAgICAgICAgICAgICAgICBJTlRFR0VSIAorICAgICAgICB9IAorIAorb3NwZnYzVmlydE5ickFyZWEgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBBcmVhSUQgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBUcmFuc2l0IEFyZWEgSWRlbnRpZmllci4iIAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0TmJyRW50cnkgMSB9IAorIAorb3NwZnYzVmlydE5iclJ0cklkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm91dGVySUQgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkEgIDMyLWJpdCAgaW50ZWdlciAgdW5pcXVlbHkgIGlkZW50aWZ5aW5nICB0aGUgCisgICAgICAgICAgICBuZWlnaGJvcmluZyByb3V0ZXIgaW4gdGhlIEF1dG9ub21vdXMgU3lzdGVtLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnROYnJFbnRyeSAyIH0gCisgCitvc3BmdjNWaXJ0TmJySWZJbmRleCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVyZmFjZUluZGV4IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGxvY2FsIGludGVyZmFjZSBJRCBmb3IgdGhlIHZpcnR1YWwgbGluayBvdmVyIAorICAgICAgICAgICAgd2hpY2ggdGhlIG5laWdoYm9yIGNhbiBiZSByZWFjaGVkLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnROYnJFbnRyeSAzIH0gCisgCitvc3BmdjNWaXJ0TmJyQWRkcmVzc1R5cGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbmV0QWRkcmVzc1R5cGUgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgYWRkcmVzcyB0eXBlIG9mIG9zcGZ2M1ZpcnROYnJBZGRyZXNzLiBPbmx5IElQdjYgCisgICAgICAgICAgICBhZGRyZXNzZXMgd2l0aG91dCB6b25lIGluZGV4IGFyZSBleHBlY3RlZC4iIAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0TmJyRW50cnkgNCB9IAorIAorb3NwZnYzVmlydE5ickFkZHJlc3MgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbmV0QWRkcmVzcyAoU0laRSAoMTYpKSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBJUHY2IGFkZHJlc3MgYWR2ZXJ0aXNlZCBieSB0aGlzIFZpcnR1YWwgTmVpZ2hib3IuIAorICAgICAgICAgICAgSXQgbXVzdCBiZSBhIFNpdGUtTG9jYWwgb3IgR2xvYmFsIHNjb3BlIGFkZHJlc3MuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydE5ickVudHJ5IDUgfSAKKyAKK29zcGZ2M1ZpcnROYnJPcHRpb25zIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSBCaXQgTWFzayBjb3JyZXNwb25kaW5nIHRvIHRoZSBuZWlnaGJvcidzIG9wLSAKKyAgICAgICAgICAgIHRpb25zIGZpZWxkLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMywgQXBwZW5kaXggQS4yIHRoZSBPcHRpb25zIGZpZWxkIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydE5ickVudHJ5IDYgfSAKKyAKK29zcGZ2M1ZpcnROYnJTdGF0ZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIElOVEVHRVIgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvd24oMSksIAorICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZW1wdCgyKSwgCisgICAgICAgICAgICAgICAgICAgICAgICBpbml0KDMpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIHR3b1dheSg0KSwgCisgICAgICAgICAgICAgICAgICAgICAgICBleGNoYW5nZVN0YXJ0KDUpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2hhbmdlKDYpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmcoNyksIAorICAgICAgICAgICAgICAgICAgICAgICAgZnVsbCg4KSAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgc3RhdGUgb2YgdGhlIFZpcnR1YWwgTmVpZ2hib3IgUmVsYXRpb24tIAorICAgICAgICAgICAgc2hpcC4iIAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0TmJyRW50cnkgNyB9IAorIAorb3NwZnYzVmlydE5ickV2ZW50cyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIENvdW50ZXIzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgIHRpbWVzICB0aGlzICB2aXJ0dWFsICBsaW5rICBoYXMgCisgICAgICAgICAgICBjaGFuZ2VkIGl0cyBzdGF0ZSwgb3IgYW4gZXJyb3IgaGFzIG9jY3VycmVkLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnROYnJFbnRyeSA4IH0gCisgCitvc3BmdjNWaXJ0TmJyTHNSZXRyYW5zUUxlbiBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEdhdWdlMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgIGN1cnJlbnQgIGxlbmd0aCAgb2YgIHRoZSAgIHJldHJhbnNtaXNzaW9uIAorICAgICAgICAgICAgcXVldWUuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydE5ickVudHJ5IDkgfSAKKyAKK29zcGZ2M1ZpcnROYnJIZWxsb1N1cHByZXNzZWQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBUcnV0aFZhbHVlIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiSW5kaWNhdGVzIHdoZXRoZXIgSGVsbG9zIGFyZSBiZWluZyAgc3VwcHJlc3NlZCAKKyAgICAgICAgICAgIHRvIHRoZSBuZWlnaGJvciIgCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnROYnJFbnRyeSAxMCB9IAorIAorb3NwZnYzVmlydE5icklmSWQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlcmZhY2VJbmRleCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBpbnRlcmZhY2UgSUQgdGhhdCB0aGUgbmVpZ2hib3IgYWR2ZXJ0aXNlcyAKKyAgICAgICAgICAgIGluIGl0cyBIZWxsbyBQYWNrZXRzIG9uIHRoaXMgdmlydHVhbCBsaW5rLCB0aGF0IGlzLCAKKyAgICAgICAgICAgIHRoZSBuZWlnaGJvcidzIGxvY2FsIGludGVyZmFjZSBJRC4iIAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0TmJyRW50cnkgMTEgfSAKKyAKKyAgIG9zcGZ2M1ZpcnROYnJSZXN0YXJ0SGVscGVyU3RhdHVzIE9CSkVDVC1UWVBFICAKKyAgICAgICBTWU5UQVggICAgICAgSU5URUdFUiB7IG5vdEhlbHBpbmcgKDEpLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwaW5nICgyKSAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgCisgICAgICAgTUFYLUFDQ0VTUyAgIHJlYWQtb25seSAgCisgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQgIAorICAgICAgIERFU0NSSVBUSU9OICAKKyAgICAgICAgICAiSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJvdXRlciBpcyBhY3RpbmcgIAorICAgICAgICAgIGFzIGEgaGl0bGVzcyByZXN0YXJ0IGhlbHBlciBmb3IgdGhlIG5laWdoYm9yLiIgIAorICAgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnROYnJFbnRyeSAxMiB9ICAKKyAgICAKK29zcGZ2M1ZpcnROYnJSZXN0YXJ0SGVscGVyQWdlIE9CSkVDVC1UWVBFICAKKyAgICAgICBTWU5UQVggICAgICAgVXBUb1JlZnJlc2hJbnRlcnZhbCAKKyAgICAgICBVTklUUyAgICAgICAgInNlY29uZHMiICAKKyAgICAgICBNQVgtQUNDRVNTICAgcmVhZC1vbmx5ICAKKyAgICAgICBTVEFUVVMgICAgICAgY3VycmVudCAgCisgICAgICAgREVTQ1JJUFRJT04gIAorICAgICAgICAgICJSZW1haW5pbmcgdGltZSBpbiBjdXJyZW50IE9TUEYgaGl0bGVzcyByZXN0YXJ0ICAKKyAgICAgICAgICBpbnRlcnZhbCwgaWYgdGhlIHJvdXRlciBpcyBhY3RpbmcgYXMgYSByZXN0YXJ0ICAKKyAgICAgICAgICBoZWxwZXIgZm9yIHRoZSBuZWlnaGJvci4iICAKKyAgICAgICA6Oj0geyBvc3BmdjNWaXJ0TmJyRW50cnkgMTMgfSAgCisgICAgCitvc3BmdjNWaXJ0TmJyUmVzdGFydEhlbHBlckV4aXRSZWFzb24gT0JKRUNULVRZUEUgIAorICAgICAgIFNZTlRBWCAgICAgICBJTlRFR0VSIHsgbm9uZSAoMSksICAgICAgICAgICAtLSBub3QgYXR0ZW1wdGVkICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluUHJvZ3Jlc3MgKDIpLCAgICAgLS0gcmVzdGFydCBpbiAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHByb2dyZXNzICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZCAoMyksICAgICAgLS0gc3VjY2Vzc2Z1bGx5ICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gY29tcGxldGVkICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVkT3V0ICg0KSwgICAgICAgLS0gdGltZWQgb3V0ICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcG9sb2d5Q2hhbmdlZCAoNSkgLS0gYWJvcnRlZCBkdWUgdG8gIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSB0b3BvbG9neSAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGNoYW5nZS4gIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gIAorICAgICAgIE1BWC1BQ0NFU1MgICByZWFkLW9ubHkgIAorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50ICAKKyAgICAgICBERVNDUklQVElPTiAgCisgICAgICAgICAgIkRlc2NyaWJlcyB0aGUgb3V0Y29tZSBvZiB0aGUgbGFzdCBhdHRlbXB0IGF0IGFjdGluZyAgCisgICAgICAgICAgIGFzIGEgaGl0bGVzcyByZXN0YXJ0IGhlbHBlciBmb3IgdGhlIG5laWdoYm9yLiIgIAorICAgIDo6PSB7IG9zcGZ2M1ZpcnROYnJFbnRyeSAxNCB9IAorIAorIAorLS0gCistLSBUaGUgT1NQRnYzIEFyZWEgQWdncmVnYXRlIFRhYmxlIAorLS0gCisgCitvc3BmdjNBcmVhQWdncmVnYXRlVGFibGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBTRVFVRU5DRSBPRiBPc3BmdjNBcmVhQWdncmVnYXRlRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkEgcmFuZ2Ugb2YgSVB2NiBwcmVmaXhlcyBzcGVjaWZpZWQgYnkgYSAKKyAgICAgICAgICAgIHByZWZpeC9wcmVmaXggbGVuZ3RoICBwYWlyLiBOb3RlIHRoYXQgaWYgCisgICAgICAgICAgICByYW5nZXMgYXJlIGNvbmZpZ3VyZWQgc3VjaCB0aGF0IG9uZSByYW5nZSBzdWItIAorICAgICAgICAgICAgc3VtZXMgIGFub3RoZXIgcmFuZ2UgdGhlIG1vc3Qgc3BlY2lmaWMgbWF0Y2ggaXMgCisgICAgICAgICAgICB0aGUgcHJlZmVycmVkIG9uZS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNPYmplY3RzIDEyIH0gCisgCitvc3BmdjNBcmVhQWdncmVnYXRlRW50cnkgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBPc3BmdjNBcmVhQWdncmVnYXRlRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkEgcmFuZ2Ugb2YgSVB2NiBwcmVmaXhlcyBzcGVjaWZpZWQgYnkgYSAKKyAgICAgICAgICAgIHByZWZpeC9wcmVmaXggbGVuZ3RoICBwYWlyLiBOb3RlIHRoYXQgaWYgCisgICAgICAgICAgICByYW5nZXMgYXJlIGNvbmZpZ3VyZWQgc3VjaCB0aGF0IG9uZSByYW5nZSBzdWItIAorICAgICAgICAgICAgc3VtZXMgIGFub3RoZXIgcmFuZ2UgdGhlIG1vc3Qgc3BlY2lmaWMgbWF0Y2ggaXMgCisgICAgICAgICAgICB0aGUgcHJlZmVycmVkIG9uZS4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIEFwcGVuZGl4IEMuMiAgQXJlYSBwYXJhbWV0ZXJzIiAKKyAgICAgICAgSU5ERVggICAgICAgICAgIHsgb3NwZnYzQXJlYUFnZ3JlZ2F0ZUFyZWFJRCwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhQWdncmVnYXRlQXJlYUxzZGJUeXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUFnZ3JlZ2F0ZVByZWZpeFR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhQWdncmVnYXRlUHJlZml4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUFnZ3JlZ2F0ZVByZWZpeExlbmd0aCB9IAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhQWdncmVnYXRlVGFibGUgMSB9IAorIAorT3NwZnYzQXJlYUFnZ3JlZ2F0ZUVudHJ5IDo6PSBTRVFVRU5DRSB7IAorICAgICAgICBvc3BmdjNBcmVhQWdncmVnYXRlQXJlYUlEIAorICAgICAgICAgICAgICAgIEFyZWFJRCwgCisgICAgICAgIG9zcGZ2M0FyZWFBZ2dyZWdhdGVBcmVhTHNkYlR5cGUgCisgICAgICAgICAgICAgICAgSU5URUdFUiwgCisgICAgICAgIG9zcGZ2M0FyZWFBZ2dyZWdhdGVQcmVmaXhUeXBlIAorICAgICAgICAgICAgICAgIEluZXRBZGRyZXNzVHlwZSwgCisgICAgICAgIG9zcGZ2M0FyZWFBZ2dyZWdhdGVQcmVmaXggCisgICAgICAgICAgICAgICAgSW5ldEFkZHJlc3MsIAorICAgICAgICBvc3BmdjNBcmVhQWdncmVnYXRlUHJlZml4TGVuZ3RoIAorICAgICAgICAgICAgICAgIEluZXRBZGRyZXNzUHJlZml4TGVuZ3RoLCAKKyAgICAgICAgb3NwZnYzQXJlYUFnZ3JlZ2F0ZVN0YXR1cyAKKyAgICAgICAgICAgICAgICBSb3dTdGF0dXMsIAorICAgICAgICBvc3BmdjNBcmVhQWdncmVnYXRlRWZmZWN0IAorICAgICAgICAgICAgICAgIElOVEVHRVIsIAorICAgICAgICBvc3BmdjNBcmVhQWdncmVnYXRlUm91dGVUYWcgCisgICAgICAgICAgICAgICAgSU5URUdFUiAKKyAgICAgICAgfSAKKyAKK29zcGZ2M0FyZWFBZ2dyZWdhdGVBcmVhSUQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBBcmVhSUQgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBBcmVhIHRoZSBBZGRyZXNzIEFnZ3JlZ2F0ZSBpcyB0byBiZSAgZm91bmQgCisgICAgICAgICAgICB3aXRoaW4uIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBBcHBlbmRpeCBDLjIgQXJlYSBwYXJhbWV0ZXJzIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUFnZ3JlZ2F0ZUVudHJ5IDEgfSAKKyAKK29zcGZ2M0FyZWFBZ2dyZWdhdGVBcmVhTHNkYlR5cGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJTlRFR0VSIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBpbnRlckFyZWFQcmVmaXhMc2EoODE5NSksIC0tIDB4MjAwMyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5zc2FFeHRlcm5hbExzYSg4MTk5KSAgICAgLS0gMHgyMDA3IAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHR5cGUgb2YgdGhlIEFkZHJlc3MgQWdncmVnYXRlLiAgVGhpcyBmaWVsZCAKKyAgICAgICAgICAgIHNwZWNpZmllcyAgdGhlICBBcmVhIExzZGIgdHlwZSB0aGF0IHRoaXMgQWRkcmVzcyBBZy0gCisgICAgICAgICAgICBncmVnYXRlIGFwcGxpZXMgdG8uIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBBcHBlbmRpeCBBLjQuMSBUaGUgIExpbmsgIFN0YXRlIAorICAgICAgICAgICAgQWR2ZXJ0aXNlbWVudCBoZWFkZXIiIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhQWdncmVnYXRlRW50cnkgMiB9IAorIAorb3NwZnYzQXJlYUFnZ3JlZ2F0ZVByZWZpeFR5cGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbmV0QWRkcmVzc1R5cGUgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBwcmVmaXggdHlwZSBvZiBvc3BmdjNBcmVhQWdncmVnYXRlUHJlZml4LiBPbmx5IAorICAgICAgICAgICAgSVB2NiBhZGRyZXNzZXMgYXJlIGV4cGVjdGVkLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFBZ2dyZWdhdGVFbnRyeSA0IH0gCisgCitvc3BmdjNBcmVhQWdncmVnYXRlUHJlZml4IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW5ldEFkZHJlc3MgKFNJWkUgKDAuLjE2KSkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBJUHY2IFByZWZpeC4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIEFwcGVuZGl4IEMuMiBBcmVhIHBhcmFtZXRlcnMiIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhQWdncmVnYXRlRW50cnkgNSB9IAorIAorb3NwZnYzQXJlYUFnZ3JlZ2F0ZVByZWZpeExlbmd0aCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEluZXRBZGRyZXNzUHJlZml4TGVuZ3RoICgzLi4xMjgpIAorICAgICAgICBVTklUUyAgICAgICAgICAgImJpdHMiIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbGVuZ3RoIG9mIHRoZSBwcmVmaXggKGluIGJpdHMpLiBBIHByZWZpeCBjYW4gCisgICAgICAgICAgICBub3QgYmUgc2hvcnRlciB0aGFuIDMgYml0cy4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIEFwcGVuZGl4IEMuMiBBcmVhIHBhcmFtZXRlcnMiIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhQWdncmVnYXRlRW50cnkgNiB9IAorIAorb3NwZnYzQXJlYUFnZ3JlZ2F0ZVN0YXR1cyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFJvd1N0YXR1cyAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhpcyB2YXJpYWJsZSBjb250cm9scyB0aGUgc3RhdHVzIG9mICB0aGUgIGVuLSAKKyAgICAgICAgICAgIHRyeS4gVGhlIHVzZSBvZiBSb3dTdGF0dXMgaXMgY292ZXJlZCBpbiBtb3JlIGRldGFpbCAKKyAgICAgICAgICAgIGluIFs2XS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhQWdncmVnYXRlRW50cnkgNyB9IAorIAorb3NwZnYzQXJlYUFnZ3JlZ2F0ZUVmZmVjdCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIElOVEVHRVIgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkdmVydGlzZU1hdGNoaW5nKDEpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvTm90QWR2ZXJ0aXNlTWF0Y2hpbmcoMikgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJQcmVmaXhlcyBzdWJzdW1lZCBieSByYW5nZXMgZWl0aGVyIHRyaWdnZXIgIHRoZSAKKyAgICAgICAgICAgIGFkdmVydGlzZW1lbnQgIG9mICB0aGUgaW5kaWNhdGVkIGFnZ3JlZ2F0ZSAoYWQtIAorICAgICAgICAgICAgdmVydGlzZU1hdGNoaW5nKSwgb3IgcmVzdWx0IGluIHRoZSBwcmVmaXggbm90IAorICAgICAgICAgICAgYmVpbmcgYWR2ZXJ0aXNlZCBhdCBhbGwgb3V0c2lkZSB0aGUgYXJlYS4iIAorICAgICAgICBERUZWQUwgICAgICAgICAgeyBhZHZlcnRpc2VNYXRjaGluZyB9IAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhQWdncmVnYXRlRW50cnkgOCB9IAorIAorb3NwZnYzQXJlYUFnZ3JlZ2F0ZVJvdXRlVGFnIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGlzIHRhZyBpcyBhZHZlcnRpc2VkIG9ubHkgaW4gdGhlIHN1bW1hcml6ZWQgCisgICAgICAgICAgICAgQXMtRXh0ZXJuYWwgTFNBIHdoZW4gc3VtbWFyaXppbmcgZnJvbSB0eXBlLTcgdG8gIAorICAgICAgICAgICAgIHR5cGUtNS4iIAorICAgICAgICBERUZWQUwgICAgICAgICB7IDAgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUFnZ3JlZ2F0ZUVudHJ5IDkgfSAKKyAgICAgICAgIAorCistLSBjb25mb3JtYW5jZSBpbmZvcm1hdGlvbiAKKyAKK29zcGZ2M0dyb3VwcyAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG9zcGZ2M0NvbmZvcm1hbmNlIDEgfSAKK29zcGZ2M0NvbXBsaWFuY2VzIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG9zcGZ2M0NvbmZvcm1hbmNlIDIgfSAKKyAKKy0tIGNvbXBsaWFuY2Ugc3RhdGVtZW50cyAKKyAKK29zcGZ2M0NvbXBsaWFuY2UgTU9EVUxFLUNPTVBMSUFOQ0UgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAgICAgIlRoZSBjb21wbGlhbmNlIHN0YXRlbWVudCAiIAorICAgICAgICBNT0RVTEUgICAgICAgICAgLS0gdGhpcyBtb2R1bGUgCisgICAgICAgIE1BTkRBVE9SWS1HUk9VUFMgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0Jhc2ljR3JvdXAsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUdyb3VwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmR3JvdXAsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydElmR3JvdXAsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJyR3JvdXAsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJtYU5ickdyb3VwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnROYnJHcm91cCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhQWdncmVnYXRlR3JvdXAgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorIAorICAgICAgICBHUk9VUCAgICAgICAgICAgb3NwZnYzQXNMc2RiR3JvdXAgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgcmVxdWlyZWQgZm9yIE9TUEZ2MyBzeXN0ZW1zIHRoYXQgCisgICAgICAgICAgICBkaXNwbGF5IHRoZWlyIEFTLXNjb3BlIGxpbmsgc3RhdGUgZGF0YWJhc2UuIiAKKyAKKyAgICAgICAgR1JPVVAgICAgICAgICAgIG9zcGZ2M0FyZWFMc2RiR3JvdXAgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgcmVxdWlyZWQgZm9yIE9TUEZ2MyBzeXN0ZW1zIHRoYXQgCisgICAgICAgICAgICBkaXNwbGF5IHRoZWlyIEFyZWEtc2NvcGUgbGluayBzdGF0ZSBkYXRhYmFzZS4iIAorIAorICAgICAgICBHUk9VUCAgICAgICAgICAgb3NwZnYzTGlua0xzZGJHcm91cCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhpcyBncm91cCBpcyByZXF1aXJlZCBmb3IgT1NQRnYzIHN5c3RlbXMgdGhhdCAKKyAgICAgICAgICAgIGRpc3BsYXkgdGhlaXIgTGluay1zY29wZSBsaW5rIHN0YXRlIGRhdGFiYXNlLiIgCisgCisgICAgICAgIEdST1VQICAgICAgICAgICBvc3BmdjNIb3N0R3JvdXAgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgcmVxdWlyZWQgZm9yIE9TUEZ2MyBzeXN0ZW1zIHRoYXQgCisgICAgICAgICAgICBzdXBwb3J0IGF0dGFjaGVkIGhvc3RzLiIgCisgCisgICAgICAgIE9CSkVDVCAgICAgICAgICBvc3BmdjNOYnJBZGRyZXNzVHlwZSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEluZXRBZGRyZXNzVHlwZSB7IGlwdjYoMikgfSAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQW4gaW1wbGVtZW50YXRpb24gaXMgb25seSByZXF1aXJlZCB0byBzdXBwb3J0IElQdjYgCisgICAgICAgICAgICBhZGRyZXNzIHdpdGhvdXQgem9uZSBpbmRleC4iIAorIAorICAgICAgICBPQkpFQ1QgICAgICAgICAgb3NwZnYzVmlydE5ickFkZHJlc3NUeXBlIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW5ldEFkZHJlc3NUeXBlIHsgaXB2NigyKSB9IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJBbiBpbXBsZW1lbnRhdGlvbiBpcyBvbmx5IHJlcXVpcmVkIHRvIHN1cHBvcnQgSVB2NiAKKyAgICAgICAgICAgIGFkZHJlc3Mgd2l0aG91dCB6b25lIGluZGV4LiIgCisgCisgICAgICAgIDo6PSB7IG9zcGZ2M0NvbXBsaWFuY2VzIDEgfSAKKyAKKy0tIHVuaXRzIG9mIGNvbmZvcm1hbmNlIAorIAorb3NwZnYzQmFzaWNHcm91cCBPQkpFQ1QtR1JPVVAgCisgICAgICAgIE9CSkVDVFMgICAgICAgICB7IAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzUm91dGVySWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQWRtaW5TdGF0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZlcnNpb25OdW1iZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUJkclJ0clN0YXR1cywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBU0JkclJ0clN0YXR1cywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBc1Njb3BlTHNhQ291bnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXNTY29wZUxzYUNrc3VtU3VtLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M09yaWdpbmF0ZU5ld0xzYXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzUnhOZXdMc2FzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0V4dExzYUNvdW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0V4dEFyZWFMc2RiTGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTXVsdGljYXN0RXh0ZW5zaW9ucywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNFeGl0T3ZlcmZsb3dJbnRlcnZhbCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNEZW1hbmRFeHRlbnNpb25zLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1RyYWZmaWNFbmdpbmVlcmluZ1N1cHBvcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzUmVmZXJlbmNlQmFuZHdpZHRoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1Jlc3RhcnRTdXBwb3J0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1Jlc3RhcnRJbnRlcnZhbCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNSZXN0YXJ0U3RhdHVzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1Jlc3RhcnRBZ2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzUmVzdGFydEV4aXRSZWFzb24gCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlc2Ugb2JqZWN0cyBhcmUgcmVxdWlyZWQgZm9yIE9TUEZ2MyBzeXN0ZW1zLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dyb3VwcyAxIH0gCisgCisgCitvc3BmdjNBcmVhR3JvdXAgT0JKRUNULUdST1VQIAorICAgICAgICBPQkpFQ1RTICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJbXBvcnRBc0V4dGVybiwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhU3BmUnVucywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhQmRyUnRyQ291bnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUFzQmRyUnRyQ291bnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYVNjb3BlTHNhQ291bnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYVNjb3BlTHNhQ2tzdW1TdW0sIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYVN1bW1hcnksIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYVN0YXR1cywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNTdHViTWV0cmljLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFOc3NhVHJhbnNsYXRvclJvbGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYU5zc2FUcmFuc2xhdG9yU3RhdGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYU5zc2FUcmFuc2xhdG9yU3RhYmlsaXR5SW50ZXJ2YWwsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYU5zc2FUcmFuc2xhdG9yRXZlbnRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFTdHViTWV0cmljVHlwZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGVzZSBvYmplY3RzIGFyZSByZXF1aXJlZCBmb3IgT1NQRnYzIHN5c3RlbXMgCisgICAgICAgICAgICBzdXBwb3J0aW5nIGFyZWFzLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dyb3VwcyAyIH0gCisgCitvc3BmdjNBc0xzZGJHcm91cCBPQkpFQ1QtR1JPVVAgCisgICAgICAgIE9CSkVDVFMgICAgICAgICB7IAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXNMc2RiU2VxdWVuY2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXNMc2RiQWdlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FzTHNkYkNoZWNrc3VtLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FzTHNkYkFkdmVydGlzZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXNMc2RiVHlwZUtub3duIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZXNlIG9iamVjdHMgYXJlIHJlcXVpcmVkIGZvciBPU1BGdjMgc3lzdGVtcyAKKyAgICAgICAgICAgIHRoYXQgZGlzcGxheSB0aGVpciBBUy1zY29wZSBsaW5rIHN0YXRlIGRhdGFiYXNlLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dyb3VwcyAzIH0gCisgCitvc3BmdjNBcmVhTHNkYkdyb3VwIE9CSkVDVC1HUk9VUCAKKyAgICAgICAgT0JKRUNUUyAgICAgICAgIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhTHNkYlNlcXVlbmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFMc2RiQWdlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFMc2RiQ2hlY2tzdW0sIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUxzZGJBZHZlcnRpc2VtZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFMc2RiVHlwZUtub3duIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZXNlIG9iamVjdHMgYXJlIHJlcXVpcmVkIGZvciBPU1BGdjMgc3lzdGVtcyAKKyAgICAgICAgICAgIHRoYXQgZGlzcGxheSB0aGVpciBBcmVhLXNjb3BlIGxpbmsgc3RhdGUgZGF0YWJhc2UuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR3JvdXBzIDQgfSAKKyAKK29zcGZ2M0xpbmtMc2RiR3JvdXAgT0JKRUNULUdST1VQIAorICAgICAgICBPQkpFQ1RTICAgICAgICAgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0xpbmtMc2RiU2VxdWVuY2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTGlua0xzZGJBZ2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTGlua0xzZGJDaGVja3N1bSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNMaW5rTHNkYkFkdmVydGlzZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTGlua0xzZGJUeXBlS25vd24gCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlc2Ugb2JqZWN0cyBhcmUgcmVxdWlyZWQgZm9yIE9TUEZ2MyAgc3lzdGVtcyAKKyAgICAgICAgICAgIHRoYXQgZGlzcGxheSB0aGVpciBMaW5rLXNjb3BlIGxpbmsgc3RhdGUgZGF0YWJhc2UuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR3JvdXBzIDUgfSAKKyAKK29zcGZ2M0hvc3RHcm91cCBPQkpFQ1QtR1JPVVAgCisgICAgICAgIE9CSkVDVFMgICAgICAgICB7IAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSG9zdE1ldHJpYywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNIb3N0U3RhdHVzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0hvc3RBcmVhSUQgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlc2Ugb2JqZWN0cyBhcmUgcmVxdWlyZWQgIGZvciAgT1NQRnYzICBzeXN0ZW1zIAorICAgICAgICAgICAgdGhhdCBzdXBwb3J0IGF0dGFjaGVkIGhvc3RzLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dyb3VwcyA2IH0gCisgCitvc3BmdjNJZkdyb3VwIE9CSkVDVC1HUk9VUCAKKyAgICAgICAgT0JKRUNUUyAgICAgICAgIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZkFyZWFJZCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZlR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZBZG1pblN0YXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZSdHJQcmlvcml0eSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZlRyYW5zaXREZWxheSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZlJldHJhbnNJbnRlcnZhbCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZkhlbGxvSW50ZXJ2YWwsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZSdHJEZWFkSW50ZXJ2YWwsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZQb2xsSW50ZXJ2YWwsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZTdGF0ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZkRlc2lnbmF0ZWRSb3V0ZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZCYWNrdXBEZXNpZ25hdGVkUm91dGVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmRXZlbnRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmU3RhdHVzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmTXVsdGljYXN0Rm9yd2FyZGluZywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZkRlbWFuZCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZk1ldHJpY1ZhbHVlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmTGlua1Njb3BlTHNhQ291bnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZMaW5rTHNhQ2tzdW1TdW0sIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZJbnN0SWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZEZW1hbmROYnJQcm9iZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZkRlbWFuZE5iclByb2JlUmV0eExpbWl0LCAgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZkRlbWFuZE5iclByb2JlSW50ZXJ2YWwgIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZXNlIGludGVyZmFjZSBvYmplY3RzIGFyZSByZXF1aXJlZCBmb3IgIAorICAgICAgICAgICAgT1NQRnYzIHN5c3RlbXMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR3JvdXBzIDcgfSAKKyAKK29zcGZ2M1ZpcnRJZkdyb3VwIE9CSkVDVC1HUk9VUCAKKyAgICAgICAgT0JKRUNUUyAgICAgICAgIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0SWZJbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0SWZUcmFuc2l0RGVsYXksIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydElmUmV0cmFuc0ludGVydmFsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnRJZkhlbGxvSW50ZXJ2YWwsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydElmUnRyRGVhZEludGVydmFsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnRJZlN0YXRlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnRJZkV2ZW50cywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0SWZTdGF0dXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydElmTGlua1Njb3BlTHNhQ291bnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydElmTGlua0xzYUNrc3VtU3VtICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGVzZSB2aXJ0dWFsIGludGVyZmFjZSBvYmplY3RzIGFyZSByZXF1aXJlZCBmb3IgIAorICAgICAgICAgICAgT1NQRnYzIHN5c3RlbXMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR3JvdXBzIDggfSAKKyAKK29zcGZ2M05ickdyb3VwIE9CSkVDVC1HUk9VUCAKKyAgICAgICAgT0JKRUNUUyAgICAgICAgIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYnJBZGRyZXNzVHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYnJBZGRyZXNzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M05ick9wdGlvbnMsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJyUHJpb3JpdHksIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJyU3RhdGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJyRXZlbnRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M05ickxzUmV0cmFuc1FMZW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJySGVsbG9TdXBwcmVzc2VkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M05icklmSWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJyUmVzdGFydEhlbHBlclN0YXR1cywgIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJyUmVzdGFydEhlbHBlckFnZSwgIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJyUmVzdGFydEhlbHBlckV4aXRSZWFzb24gCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlc2UgbmVpZ2hib3Igb2JqZWN0cyBhcmUgcmVxdWlyZWQgZm9yIAorICAgICAgICAgICAgT1NQRnYzIHN5c3RlbXMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR3JvdXBzIDkgfSAKKyAKK29zcGZ2M05ibWFOYnJHcm91cCBPQkpFQ1QtR1JPVVAgCisgICAgICAgIE9CSkVDVFMgICAgICAgICB7IAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJtYU5iclByaW9yaXR5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M05ibWFOYnJSdHJJZCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYm1hTmJyU3RhdGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJtYU5iclN0b3JhZ2VUeXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M05ibWFOYnJTdGF0dXMgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlc2UgTkJNQSBuZWlnaGJvciBvYmplY3RzIGFyZSByZXF1aXJlZCBmb3IgCisgICAgICAgICAgICBPU1BGdjMgc3lzdGVtcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHcm91cHMgMTAgfSAKKyAKK29zcGZ2M1ZpcnROYnJHcm91cCBPQkpFQ1QtR1JPVVAgCisgICAgICAgIE9CSkVDVFMgICAgICAgICB7IAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydE5icklmSW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydE5ickFkZHJlc3NUeXBlLCAgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0TmJyQWRkcmVzcywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0TmJyT3B0aW9ucywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0TmJyU3RhdGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydE5ickV2ZW50cywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0TmJyTHNSZXRyYW5zUUxlbiwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0TmJySGVsbG9TdXBwcmVzc2VkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnROYnJJZklkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnROYnJSZXN0YXJ0SGVscGVyU3RhdHVzLCAgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0TmJyUmVzdGFydEhlbHBlckFnZSwgIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydE5iclJlc3RhcnRIZWxwZXJFeGl0UmVhc29uIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZXNlIHZpcnR1YWwgbmVpZ2hib3Igb2JqZWN0cyBhcmUgcmVxdWlyZWQgZm9yIAorICAgICAgICAgICAgT1NQRnYzIHN5c3RlbXMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR3JvdXBzIDExIH0gCisgCitvc3BmdjNBcmVhQWdncmVnYXRlR3JvdXAgT0JKRUNULUdST1VQIAorICAgICAgICBPQkpFQ1RTICAgICAgICAgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFBZ2dyZWdhdGVTdGF0dXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUFnZ3JlZ2F0ZUVmZmVjdCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhQWdncmVnYXRlUm91dGVUYWcgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlc2UgYXJlYSBhZ2dyZWdhdGUgb2JqZWN0cyBhcmUgcmVxdWlyZWQgZm9yIAorICAgICAgICAgICAgT1NQRnYzIHN5c3RlbXMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR3JvdXBzIDEyIH0gCisgCitFTkQgCmRpZmYgLS1naXQgYS9vc3BmNmQvb3NwZjZfc25tcC5jIGIvb3NwZjZkL29zcGY2X3NubXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODZjOGUyCi0tLSAvZGV2L251bGwKKysrIGIvb3NwZjZkL29zcGY2X3NubXAuYwpAQCAtMCwwICsxLDMwNCBAQAorLyogT1NQRnYzIFNOTVAgc3VwcG9ydAorICogQ29weXJpZ2h0IChDKSAyMDA0IFlhc3VoaXJvIE9oYXJhCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIFplYnJhLgorICoKKyAqIEdOVSBaZWJyYSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKyAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKKyAqIGxhdGVyIHZlcnNpb24uCisgKgorICogR05VIFplYnJhIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCBHTlUgWmVicmE7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSB0byB0aGUgCisgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gIAorICovCisKKyNpbmNsdWRlIDx6ZWJyYS5oPgorCisjaWZkZWYgSEFWRV9TTk1QCisKKyNpZmRlZiBIQVZFX05FVFNOTVAKKyNpbmNsdWRlIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4KKyNlbmRpZiAvKkhBVkVfTkVUU05NUCovCisKKyNpbmNsdWRlIDxhc24xLmg+CisjaW5jbHVkZSA8c25tcC5oPgorI2luY2x1ZGUgPHNubXBfaW1wbC5oPgorCisjaW5jbHVkZSAibG9nLmgiCisjaW5jbHVkZSAidnR5LmgiCisjaW5jbHVkZSAibGlua2xpc3QuaCIKKyNpbmNsdWRlICJzbXV4LmgiCisKKyNpbmNsdWRlICJvc3BmNl9wcm90by5oIgorI2luY2x1ZGUgIm9zcGY2X2xzYS5oIgorI2luY2x1ZGUgIm9zcGY2X2xzZGIuaCIKKyNpbmNsdWRlICJvc3BmNl9yb3V0ZS5oIgorI2luY2x1ZGUgIm9zcGY2X3RvcC5oIgorI2luY2x1ZGUgIm9zcGY2X2FyZWEuaCIKKyNpbmNsdWRlICJvc3BmNl9pbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJvc3BmNl9tZXNzYWdlLmgiCisjaW5jbHVkZSAib3NwZjZfbmVpZ2hib3IuaCIKKyNpbmNsdWRlICJvc3BmNmQuaCIKKworLyogT1NQRnYzLU1JQiAqLworI2RlZmluZSBPU1BGdjNNSUIgMSwzLDYsMSwzLDEwMgorCisvKiBaZWJyYSBlbnRlcnByaXNlIG9zcGY2ZCBNSUIgKi8KKyNkZWZpbmUgT1NQRjZET0lEIDEsMyw2LDEsNCwxLDMzMTcsMSwyLDYKKworLyogT1NQRnYzIE1JQiBHZW5lcmFsIEdyb3VwIHZhbHVlcy4gKi8KKyNkZWZpbmUgT1NQRnYzUk9VVEVSSUQgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBPU1BGdjNBRE1JTlNUQVQgICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIE9TUEZ2M1ZFUlNJT05OVU1CRVIgICAgICAgICAgICAgIDMKKyNkZWZpbmUgT1NQRnYzQVJFQUJEUlJUUlNUQVRVUyAgICAgICAgICAgNAorI2RlZmluZSBPU1BGdjNBU0JEUlJUUlNUQVRVUyAgICAgICAgICAgICA1CisjZGVmaW5lIE9TUEZ2M0FTU0NPUEVMU0FDT1VOVCAgICAgICAgICAgIDYKKyNkZWZpbmUgT1NQRnYzQVNTQ09QRUxTQUNIRUNLU1VNU1VNICAgICAgNworI2RlZmluZSBPU1BGdjNPUklHSU5BVEVORVdMU0FTICAgICAgICAgICA4CisjZGVmaW5lIE9TUEZ2M1JYTkVXTFNBUyAgICAgICAgICAgICAgICAgIDkKKyNkZWZpbmUgT1NQRnYzRVhUTFNBQ09VTlQgICAgICAgICAgICAgICAxMAorI2RlZmluZSBPU1BGdjNFWFRBUkVBTFNEQkxJTUlUICAgICAgICAgIDExCisjZGVmaW5lIE9TUEZ2M01VTFRJQ0FTVEVYVEVOU0lPTlMgICAgICAgMTIKKyNkZWZpbmUgT1NQRnYzRVhJVE9WRVJGTE9XSU5URVJWQUwgICAgICAxMworI2RlZmluZSBPU1BGdjNERU1BTkRFWFRFTlNJT05TICAgICAgICAgIDE0CisjZGVmaW5lIE9TUEZ2M1RSQUZGSUNFTkdJTkVFUklOR1NVUFBPUlQgMTUKKyNkZWZpbmUgT1NQRnYzUkVGRVJFTkNFQkFORFdJRFRIICAgICAgICAxNgorI2RlZmluZSBPU1BGdjNSRVNUQVJUU1VQUE9SVCAgICAgICAgICAgIDE3CisjZGVmaW5lIE9TUEZ2M1JFU1RBUlRJTlRFUlZBTCAgICAgICAgICAgMTgKKyNkZWZpbmUgT1NQRnYzUkVTVEFSVFNUQVRVUyAgICAgICAgICAgICAxOQorI2RlZmluZSBPU1BGdjNSRVNUQVJUQUdFICAgICAgICAgICAgICAgIDIwCisjZGVmaW5lIE9TUEZ2M1JFU1RBUlRFWElUUkVBU09OICAgICAgICAgMjEKKworLyogT1NQRnYzIE1JQiBBcmVhIFRhYmxlIHZhbHVlcy4gKi8KKyNkZWZpbmUgT1NQRnYzQVJFQUlEICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBPU1BGdjNJTVBPUlRBU0VYVEVSTiAgICAgICAgICAgICAyCisKKy8qIFNZTlRBWCBTdGF0dXMgZnJvbSBPU1BGLU1JQi4gKi8KKyNkZWZpbmUgT1NQRl9TVEFUVVNfRU5BQkxFRCAgMQorI2RlZmluZSBPU1BGX1NUQVRVU19ESVNBQkxFRCAyCisKKy8qIFNOTVAgdmFsdWUgaGFjay4gKi8KKyNkZWZpbmUgQ09VTlRFUiAgICAgQVNOX0NPVU5URVIKKyNkZWZpbmUgSU5URUdFUiAgICAgQVNOX0lOVEVHRVIKKyNkZWZpbmUgR0FVR0UgICAgICAgQVNOX0dBVUdFCisjZGVmaW5lIFRJTUVUSUNLUyAgIEFTTl9USU1FVElDS1MKKyNkZWZpbmUgSVBBRERSRVNTICAgQVNOX0lQQUREUkVTUworI2RlZmluZSBTVFJJTkcgICAgICBBU05fT0NURVRfU1RSCisKKy8qIEZvciByZXR1cm4gdmFsdWVzIGUuZy4gU05NUF9JTlRFR0VSIG1hY3JvICovCitTTk1QX0xPQ0FMX1ZBUklBQkxFUworCitzdGF0aWMgc3RydWN0IGluX2FkZHIgdG1wOworI2RlZmluZSBJTlQzMl9JTkFERFIoeCkgXAorICAodG1wLnNfYWRkciA9ICh4KSwgdG1wKQorCisvKiBPU1BGdjMtTUlCIGluc3RhbmNlcy4gKi8KK29pZCBvc3BmdjNfb2lkIFtdID0geyBPU1BGdjNNSUIgfTsKK29pZCBvc3BmNmRfb2lkIFtdID0geyBPU1BGNkRPSUQgfTsKKworLyogZW1wdHkgSUQgMC4wLjAuMCBlLmcuIGVtcHR5IHJvdXRlci1pZCAqLworc3RhdGljIHN0cnVjdCBpbl9hZGRyIG9zcGY2X2VtcHR5X2lkID0gezB9OworCisvKiBIb29rIGZ1bmN0aW9ucy4gKi8KK3N0YXRpYyB1X2NoYXIgKm9zcGZ2M0dlbmVyYWxHcm91cCAoKTsKK3N0YXRpYyB1X2NoYXIgKm9zcGZ2M0FyZWFFbnRyeSAoKTsKKworc3RydWN0IHZhcmlhYmxlIG9zcGZ2M192YXJpYWJsZXNbXSA9Cit7CisgIC8qIE9TUEYgZ2VuZXJhbCB2YXJpYWJsZXMgKi8KKyAge09TUEZ2M1JPVVRFUklELCAgICAgICAgICAgICAgSVBBRERSRVNTLCBSV1JJVEUsIG9zcGZ2M0dlbmVyYWxHcm91cCwKKyAgIDMsIHsxLCAxLCAxfX0sCisgIHtPU1BGdjNBRE1JTlNUQVQsICAgICAgICAgICAgIElOVEVHRVIsICAgUldSSVRFLCBvc3BmdjNHZW5lcmFsR3JvdXAsCisgICAzLCB7MSwgMSwgMn19LAorICB7T1NQRnYzVkVSU0lPTk5VTUJFUiwgICAgICAgICBJTlRFR0VSLCAgIFJPTkxZLCAgb3NwZnYzR2VuZXJhbEdyb3VwLAorICAgMywgezEsIDEsIDN9fSwKKyAge09TUEZ2M0FSRUFCRFJSVFJTVEFUVVMsICAgICAgSU5URUdFUiwgICBST05MWSwgIG9zcGZ2M0dlbmVyYWxHcm91cCwKKyAgIDMsIHsxLCAxLCA0fX0sCisgIHtPU1BGdjNBU0JEUlJUUlNUQVRVUywgICAgICAgIElOVEVHRVIsICAgUldSSVRFLCBvc3BmdjNHZW5lcmFsR3JvdXAsCisgICAzLCB7MSwgMSwgNX19LAorICB7T1NQRnYzQVNTQ09QRUxTQUNPVU5ULCAgICAgICBHQVVHRSwgICAgIFJPTkxZLCAgb3NwZnYzR2VuZXJhbEdyb3VwLAorICAgMywgezEsIDEsIDZ9fSwKKyAge09TUEZ2M0FTU0NPUEVMU0FDSEVDS1NVTVNVTSwgSU5URUdFUiwgICBST05MWSwgIG9zcGZ2M0dlbmVyYWxHcm91cCwKKyAgIDMsIHsxLCAxLCA3fX0sCisgIHtPU1BGdjNPUklHSU5BVEVORVdMU0FTLCAgICAgIENPVU5URVIsICAgUk9OTFksICBvc3BmdjNHZW5lcmFsR3JvdXAsCisgICAzLCB7MSwgMSwgOH19LAorICB7T1NQRnYzUlhORVdMU0FTLCAgICAgICAgICAgICBDT1VOVEVSLCAgIFJPTkxZLCAgb3NwZnYzR2VuZXJhbEdyb3VwLAorICAgMywgezEsIDEsIDl9fSwKKyAge09TUEZ2M0VYVExTQUNPVU5ULCAgICAgICAgICAgR0FVR0UsICAgICBST05MWSwgIG9zcGZ2M0dlbmVyYWxHcm91cCwKKyAgIDMsIHsxLCAxLCAxMH19LAorICB7T1NQRnYzRVhUQVJFQUxTREJMSU1JVCwgICAgICBJTlRFR0VSLCAgIFJXUklURSwgb3NwZnYzR2VuZXJhbEdyb3VwLAorICAgMywgezEsIDEsIDExfX0sCisgIHtPU1BGdjNNVUxUSUNBU1RFWFRFTlNJT05TLCAgIElOVEVHRVIsICAgUldSSVRFLCBvc3BmdjNHZW5lcmFsR3JvdXAsCisgICAzLCB7MSwgMSwgMTJ9fSwKKyAge09TUEZ2M0VYSVRPVkVSRkxPV0lOVEVSVkFMLCAgSU5URUdFUiwgICBSV1JJVEUsIG9zcGZ2M0dlbmVyYWxHcm91cCwKKyAgIDMsIHsxLCAxLCAxM319LAorICB7T1NQRnYzREVNQU5ERVhURU5TSU9OUywgICAgICBJTlRFR0VSLCAgIFJXUklURSwgb3NwZnYzR2VuZXJhbEdyb3VwLAorICAgMywgezEsIDEsIDE0fX0sCisgIHtPU1BGdjNUUkFGRklDRU5HSU5FRVJJTkdTVVBQT1JULCBJTlRFR0VSLCBSV1JJVEUsIG9zcGZ2M0dlbmVyYWxHcm91cCwKKyAgIDMsIHsxLCAxLCAxNX19LAorICB7T1NQRnYzUkVGRVJFTkNFQkFORFdJRFRILCAgICBJTlRFR0VSLCBSV1JJVEUsIG9zcGZ2M0dlbmVyYWxHcm91cCwKKyAgIDMsIHsxLCAxLCAxNn19LAorICB7T1NQRnYzUkVTVEFSVFNVUFBPUlQsICAgICAgICBJTlRFR0VSLCBSV1JJVEUsIG9zcGZ2M0dlbmVyYWxHcm91cCwKKyAgIDMsIHsxLCAxLCAxN319LAorICB7T1NQRnYzUkVTVEFSVElOVEVSVkFMLCAgICAgICBJTlRFR0VSLCBSV1JJVEUsIG9zcGZ2M0dlbmVyYWxHcm91cCwKKyAgIDMsIHsxLCAxLCAxOH19LAorICB7T1NQRnYzUkVTVEFSVFNUQVRVUywgICAgICAgICBJTlRFR0VSLCBST05MWSwgIG9zcGZ2M0dlbmVyYWxHcm91cCwKKyAgIDMsIHsxLCAxLCAxOX19LAorICB7T1NQRnYzUkVTVEFSVEFHRSwgICAgICAgICAgICBJTlRFR0VSLCBST05MWSwgIG9zcGZ2M0dlbmVyYWxHcm91cCwKKyAgIDMsIHsxLCAxLCAyMH19LAorICB7T1NQRnYzUkVTVEFSVEVYSVRSRUFTT04sICAgICBJTlRFR0VSLCBST05MWSwgIG9zcGZ2M0dlbmVyYWxHcm91cCwKKyAgIDMsIHsxLCAxLCAyMX19LAorCisgIC8qIE9TUEZ2MyBBcmVhIERhdGEgU3RydWN0dXJlICovCisgIHtPU1BGdjNBUkVBSUQsICAgICAgICAgICAgICAgIElQQUREUkVTUywgUk9OTFksICBvc3BmdjNBcmVhRW50cnksCisgICA0LCB7MSwgMiwgMSwgMX19LAorICB7T1NQRnYzSU1QT1JUQVNFWFRFUk4sICAgICAgICBJTlRFR0VSLCAgIFJPTkxZLCAgb3NwZnYzQXJlYUVudHJ5LAorICAgNCwgezEsIDIsIDEsIDJ9fSwKK307CisKK3N0YXRpYyB1X2NoYXIgKgorb3NwZnYzR2VuZXJhbEdyb3VwIChzdHJ1Y3QgdmFyaWFibGUgKnYsIG9pZCAqbmFtZSwgc2l6ZV90ICpsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIGludCBleGFjdCwgc2l6ZV90ICp2YXJfbGVuLCBXcml0ZU1ldGhvZCAqKndyaXRlX21ldGhvZCkKK3sKKyAgLyogQ2hlY2sgd2hldGhlciB0aGUgaW5zdGFuY2UgaWRlbnRpZmllciBpcyB2YWxpZCAqLworICBpZiAoc211eF9oZWFkZXJfZ2VuZXJpYyAodiwgbmFtZSwgbGVuZ3RoLCBleGFjdCwgdmFyX2xlbiwgd3JpdGVfbWV0aG9kKQorICAgICAgPT0gTUFUQ0hfRkFJTEVEKQorICAgIHJldHVybiBOVUxMOworCisgIC8qIFJldHVybiB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgdmFyaWFibGUgKi8KKyAgc3dpdGNoICh2LT5tYWdpYykKKyAgICB7CisgICAgY2FzZSBPU1BGdjNST1VURVJJRDogICAgICAgICAgICAgICAgICAvKiAxKi8KKyAgICAgIC8qIFJvdXRlci1JRCBvZiB0aGlzIE9TUEYgaW5zdGFuY2UuICovCisgICAgICBpZiAob3NwZjYpCisJcmV0dXJuIFNOTVBfSVBBRERSRVNTIChJTlQzMl9JTkFERFIgKG9zcGY2LT5yb3V0ZXJfaWQpKTsKKyAgICAgIGVsc2UKKwlyZXR1cm4gU05NUF9JUEFERFJFU1MgKG9zcGY2X2VtcHR5X2lkKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgT1NQRnYzQURNSU5TVEFUOiAgICAgICAgICAgICAgICAgLyogMiovCisgICAgICBicmVhazsKKyAgICBjYXNlIE9TUEZ2M1ZFUlNJT05OVU1CRVI6ICAgICAgICAgICAgIC8qIDMqLworICAgICAgYnJlYWs7CisgICAgY2FzZSBPU1BGdjNBUkVBQkRSUlRSU1RBVFVTOiAgICAgICAgICAvKiA0Ki8KKyAgICAgIGJyZWFrOworICAgIGNhc2UgT1NQRnYzQVNCRFJSVFJTVEFUVVM6ICAgICAgICAgICAgLyogNSovCisgICAgICBicmVhazsKKyAgICBjYXNlIE9TUEZ2M0FTU0NPUEVMU0FDT1VOVDogICAgICAgICAgIC8qIDYqLworICAgICAgYnJlYWs7CisgICAgY2FzZSBPU1BGdjNBU1NDT1BFTFNBQ0hFQ0tTVU1TVU06ICAgICAvKiA3Ki8KKyAgICAgIGJyZWFrOworICAgIGNhc2UgT1NQRnYzT1JJR0lOQVRFTkVXTFNBUzogICAgICAgICAgLyogOCovCisgICAgICBicmVhazsKKyAgICBjYXNlIE9TUEZ2M1JYTkVXTFNBUzogICAgICAgICAgICAgICAgIC8qIDkqLworICAgICAgYnJlYWs7CisgICAgY2FzZSBPU1BGdjNFWFRMU0FDT1VOVDogICAgICAgICAgICAgICAvKjEwKi8KKyAgICAgIGJyZWFrOworICAgIGNhc2UgT1NQRnYzRVhUQVJFQUxTREJMSU1JVDogICAgICAgICAgLyoxMSovCisgICAgICBicmVhazsKKyAgICBjYXNlIE9TUEZ2M01VTFRJQ0FTVEVYVEVOU0lPTlM6ICAgICAgIC8qMTIqLworICAgICAgYnJlYWs7CisgICAgY2FzZSBPU1BGdjNFWElUT1ZFUkZMT1dJTlRFUlZBTDogICAgICAvKjEzKi8KKyAgICAgIGJyZWFrOworICAgIGNhc2UgT1NQRnYzREVNQU5ERVhURU5TSU9OUzogICAgICAgICAgLyoxNCovCisgICAgICBicmVhazsKKyAgICBjYXNlIE9TUEZ2M1RSQUZGSUNFTkdJTkVFUklOR1NVUFBPUlQ6IC8qMTUqLworICAgICAgYnJlYWs7CisgICAgY2FzZSBPU1BGdjNSRUZFUkVOQ0VCQU5EV0lEVEg6ICAgICAgICAvKjE2Ki8KKyAgICAgIGJyZWFrOworICAgIGNhc2UgT1NQRnYzUkVTVEFSVFNVUFBPUlQ6ICAgICAgICAgICAgLyoxNyovCisgICAgICBicmVhazsKKyAgICBjYXNlIE9TUEZ2M1JFU1RBUlRJTlRFUlZBTDogICAgICAgICAgIC8qMTgqLworICAgICAgYnJlYWs7CisgICAgY2FzZSBPU1BGdjNSRVNUQVJUU1RBVFVTOiAgICAgICAgICAgICAvKjE5Ki8KKyAgICAgIGJyZWFrOworICAgIGNhc2UgT1NQRnYzUkVTVEFSVEFHRTogICAgICAgICAgICAgICAgLyoyMCovCisgICAgICBicmVhazsKKyAgICBjYXNlIE9TUEZ2M1JFU1RBUlRFWElUUkVBU09OOiAgICAgICAgIC8qMjEqLworICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB1X2NoYXIgKgorb3NwZnYzQXJlYUVudHJ5IChzdHJ1Y3QgdmFyaWFibGUgKnYsIG9pZCAqbmFtZSwgc2l6ZV90ICpsZW5ndGgsCisgICAgICAgICAgICAgICAgIGludCBleGFjdCwgc2l6ZV90ICp2YXJfbGVuLCBXcml0ZU1ldGhvZCAqKndyaXRlX21ldGhvZCkKK3sKKyAgc3RydWN0IG9zcGY2X2FyZWEgKm9hLCAqYXJlYSA9IE5VTEw7CisgIHVfaW50MzJfdCBhcmVhX2lkID0gMDsKKyAgbGlzdG5vZGUgbm9kZTsKKyAgaW50IGxlbjsKKworICBpZiAob3NwZjYgPT0gTlVMTCkKKyAgICByZXR1cm4gTlVMTDsKKworICBsZW4gPSAqbGVuZ3RoIC0gdi0+bmFtZWxlbjsKKyAgbGVuID0gKGxlbiA+PSBzaXplb2YgKHVfaW50MzJfdCkgPyBzaXplb2YgKHVfaW50MzJfdCkgOiAwKTsKKyAgaWYgKGV4YWN0ICYmIGxlbiAhPSBzaXplb2YgKHVfaW50MzJfdCkpCisgICAgcmV0dXJuIE5VTEw7CisgIGlmIChsZW4pCisgICAgb2lkMmluX2FkZHIgKG5hbWUgKyB2LT5uYW1lbGVuLCBsZW4sIChzdHJ1Y3QgaW5fYWRkciAqKSAmYXJlYV9pZCk7CisKKyAgemxvZ19pbmZvICgiU05NUCBhY2Nlc3MgYnkgYXJlYTogJXMsIGV4YWN0PSVkIGxlbj0lZCBsZW5ndGg9JWQiLAorICAgICAgICAgICAgIGluZXRfbnRvYSAoKiAoc3RydWN0IGluX2FkZHIgKikgJmFyZWFfaWQpLAorICAgICAgICAgICAgIGV4YWN0LCBsZW4sICpsZW5ndGgpOworCisgIGZvciAobm9kZSA9IGxpc3RoZWFkIChvc3BmNi0+YXJlYV9saXN0KTsgbm9kZTsgbmV4dG5vZGUgKG5vZGUpKQorICAgIHsKKyAgICAgIG9hID0gKHN0cnVjdCBvc3BmNl9hcmVhICopIGdldGRhdGEgKG5vZGUpOworICAgICAgaWYgKGFyZWEgPT0gTlVMTCkKKyAgICAgICAgeworICAgICAgICAgIGlmIChsZW4gPT0gMCkgLyogcmV0dXJuIGZpcnN0IGFyZWEgZW50cnkgKi8KKyAgICAgICAgICAgIGFyZWEgPSBvYTsKKyAgICAgICAgICBlbHNlIGlmIChleGFjdCAmJiBudG9obCAob2EtPmFyZWFfaWQpID09IG50b2hsIChhcmVhX2lkKSkKKyAgICAgICAgICAgIGFyZWEgPSBvYTsKKyAgICAgICAgICBlbHNlIGlmIChudG9obCAob2EtPmFyZWFfaWQpID4gbnRvaGwgKGFyZWFfaWQpKQorICAgICAgICAgICAgYXJlYSA9IG9hOworICAgICAgICB9CisgICAgfQorCisgIGlmIChhcmVhID09IE5VTEwpCisgICAgcmV0dXJuIE5VTEw7CisKKyAgKmxlbmd0aCA9IHYtPm5hbWVsZW4gKyBzaXplb2YgKHVfaW50MzJfdCk7CisgIG9pZF9jb3B5X2FkZHIgKG5hbWUgKyB2LT5uYW1lbGVuLCAoc3RydWN0IGluX2FkZHIgKikgJmFyZWEtPmFyZWFfaWQsCisgICAgICAgICAgICAgICAgIHNpemVvZiAodV9pbnQzMl90KSk7CisKKyAgemxvZ19pbmZvICgiU05NUCBmb3VuZCBhcmVhOiAlcywgZXhhY3Q9JWQgbGVuPSVkIGxlbmd0aD0lZCIsCisgICAgICAgICAgICAgaW5ldF9udG9hICgqIChzdHJ1Y3QgaW5fYWRkciAqKSAmYXJlYS0+YXJlYV9pZCksCisgICAgICAgICAgICAgZXhhY3QsIGxlbiwgKmxlbmd0aCk7CisKKyAgc3dpdGNoICh2LT5tYWdpYykKKyAgICB7CisgICAgY2FzZSBPU1BGdjNBUkVBSUQ6ICAgICAgICAgICAgICAgICAgIC8qIDEqLworICAgICAgcmV0dXJuIFNOTVBfSVBBRERSRVNTIChJTlQzMl9JTkFERFIgKGFyZWEtPmFyZWFfaWQpKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgT1NQRnYzSU1QT1JUQVNFWFRFUk46ICAgICAgICAgICAvKiAyKi8KKyAgICAgIHJldHVybiBTTk1QX0lOVEVHRVIgKG9zcGY2LT5leHRlcm5hbF90YWJsZS0+Y291bnQpOworICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIHJldHVybiBOVUxMOworICAgICAgYnJlYWs7CisgICAgfQorICByZXR1cm4gTlVMTDsKK30KKworLyogUmVnaXN0ZXIgT1NQRnYzLU1JQi4gKi8KK3ZvaWQKK29zcGY2X3NubXBfaW5pdCAoKQoreworICBzbXV4X2luaXQgKG9zcGY2ZF9vaWQsIHNpemVvZiAob3NwZjZkX29pZCkgLyBzaXplb2YgKG9pZCkpOworICBSRUdJU1RFUl9NSUIgKCJPU1BGdjNNSUIiLCBvc3BmdjNfdmFyaWFibGVzLCB2YXJpYWJsZSwgb3NwZnYzX29pZCk7CisgIHNtdXhfc3RhcnQgKCk7Cit9CisKKyNlbmRpZiAvKiBIQVZFX1NOTVAgKi8KKwpkaWZmIC0tZ2l0IGEvb3NwZjZkL29zcGY2X3NubXAuaCBiL29zcGY2ZC9vc3BmNl9zbm1wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODljOGM0NwotLS0gL2Rldi9udWxsCisrKyBiL29zcGY2ZC9vc3BmNl9zbm1wLmgKQEAgLTAsMCArMSwyOSBAQAorLyogT1NQRnYzIFNOTVAgc3VwcG9ydAorICogQ29weXJpZ2h0IChDKSAyMDA0IFlhc3VoaXJvIE9oYXJhCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIFplYnJhLgorICoKKyAqIEdOVSBaZWJyYSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKyAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKKyAqIGxhdGVyIHZlcnNpb24uCisgKgorICogR05VIFplYnJhIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCBHTlUgWmVicmE7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSB0byB0aGUgCisgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gIAorICovCisKKyNpZm5kZWYgT1NQRjZfU05NUF9ICisjZGVmaW5lIE9TUEY2X1NOTVBfSAorCit2b2lkIG9zcGY2X3NubXBfaW5pdCAoKTsKKworI2VuZGlmIC8qT1NQRjZfU05NUF9IKi8KKworCmRpZmYgLS1naXQgYS9vc3BmNmQvb3NwZjZkLmMgYi9vc3BmNmQvb3NwZjZkLmMKaW5kZXggZTk0YTAzNi4uNjk1ZThlYyAxMDA2NDQKLS0tIGEvb3NwZjZkL29zcGY2ZC5jCisrKyBiL29zcGY2ZC9vc3BmNmQuYwpAQCAtNDQsNiArNDQsMTAgQEAKICNpbmNsdWRlICJvc3BmNl9mbG9vZC5oIgogI2luY2x1ZGUgIm9zcGY2ZC5oIgogCisjaWZkZWYgSEFWRV9TTk1QCisjaW5jbHVkZSAib3NwZjZfc25tcC5oIgorI2VuZGlmIC8qSEFWRV9TTk1QKi8KKwogY2hhciBvc3BmNl9kYWVtb25fdmVyc2lvbltdID0gT1NQRjZfREFFTU9OX1ZFUlNJT047CiAKIHZvaWQKQEAgLTE4MTIsNiArMTgxNiwxMCBAQAogICBvc3BmNl9hc2JyX2luaXQgKCk7CiAgIG9zcGY2X2Ficl9pbml0ICgpOwogCisjaWZkZWYgSEFWRV9TTk1QCisgIG9zcGY2X3NubXBfaW5pdCAoKTsKKyNlbmRpZiAvKkhBVkVfU05NUCovCisKICAgaW5zdGFsbF9ub2RlICgmZGVidWdfbm9kZSwgY29uZmlnX3dyaXRlX29zcGY2X2RlYnVnKTsKIAogICBpbnN0YWxsX2VsZW1lbnRfb3NwZjZfZGVidWdfbWVzc2FnZSAoKTsK