UEtJWDEgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOICBPUFRJV05BTCB9CiAgICAtLSBhdXRob3JpdHlDZXJ0SXNzdWVyIGFuZCBhdXRob3JpdHlDZXJ0U2VyaWFOdWJtbGVyIHNoYWxsIGJvdGgKICAgIC0tIGJlIHByZXNlbnQgb3IgYm90aCBiZSBhYnNnZW50CktleUlkZW50aWZpZXIgOjo9IE9DVEVUIFNUUklORwppZC1jZS1zdWJqZWN0S2V5SWRlbnRpZmllciBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMTQgfQpTdWJqZWN0S2V5SWRlbnRpZmllciA6Oj0gS2V5SWRlbnRpZmllcgppZC1jZS1rZXlVc2FnZSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMTUgfQpLZXlVc2FnZSA6Oj0gQklUIFNUUklORyB7CiAgICAgZGlnaXRhbFNpZ25hdHVyZSAgICAgICAgKDApLAogICAgIG5vblJlcHVkaWF0aW9uICAgICAgICAgICgxKSwKICBySW5mbyA6Oj0gU0VRVUVOQ0UgewogICAgICAgcG8saWN5UXVhbGlmaWVySWQgIFBvbGljeVF1YWxpZmllcklkLAogICAgICAgcXVhbGlmaWVyICAgICAgICBBTlkgREVGSU5FRCBCWSBwb2xpY3lRdWFsaWZpZXJJZCB9ClBvbGljeVF1YWxpZmllcklkIDo6PQogICAgT0JKRUNUIElERU5USUZJRVIgIC0tICggaWQtcXQtY3BzIHwgaWQtcXQtdW5vdGljZSApCkNQU3VyaSA6Oj0gSUE1U3RyaW5nClVzZXJOb3RpY2UgOjo9IFNFUVUyAAAAIHsKICAgICBub3RpY2VSZWYgICAgICAgIE5vdGljZVJlZmVyZW5jZSBPUFRJT05BTCwKICAgICBleHBsaWNpdFRleHQgICAgIERpc3BsYXlUZXh0IE9QVElPTkFMfQpOb3RpY2VSZWZlcmVuY2UgOjo9IFNFUVVFTkNFIHsKICAgICBvcmdhbml6YXRpb24gICAgIERpc3BsYXlUZXh0LAogICAgIG5vdGljZU51bWJlcnMgICAgU0VRVUVOQ0UgT0YgSU5URUdFUiB9CkRpc3BsYXlUZXh0IDo6PSBDSE9JQ0UgewogICAgIHZpc2libGVTdHJpbmcgICAgVmlzaWJsZVN0cmluZyAgKFNJWkUgKDEuLjIwMCkpLAogICAgIGJtcFN0cmluZyAgICAgICAgQk1QU3RyaW5nICAgICAgKFNJWkUgKDEuLjIwMCkpLAogICAgIHV0ZjhTdHJpbmcgICAgICAgVVRGOFN0cmluZyAgICAgKFNJWkUgKDEuLjIwMCkpIH0KaWQtY2UtcG9saWN5TWFwcGluZ3MgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDMzIH0KUG9saWN5TWFwcGluZ3MgOjo9IFNFUVVFTkNFIFNJWkUgKDAuLk1BWCkgT0YgU0VRVUVOQ0UgewogICAgIGlzc3VlckRvbWFpblBvbGljeSAgICAgIENlcnRQb2xpY3lJZCwKICAgICBzdWJqZWN0RG9tYWluUG9saWN5ICAgICBDZXJ0UG9saWN5SWQgfQpEaXJlY3RvcnlTdHJpbmcgOjo9IENIT0lDRSB7CiAgICAgIHRlbGV0ZXhTdHJpbmcgICAgICAgICAgICAgVGVsZXRleFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIHByaW50YWJsZVN0cmluZyAgICAgICAgICAgUHJpbnRhYmxlU3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgdW5pdmVyc2FsU3RyaW5nICAgICAgICAgICBVbml2ZXJzYWxTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICB1dGY4U3RyaW5nICAgICAgICAgICAgICBVVEY4U3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgYm1wU3RyaW5nICAgICAgICAgICAgICAgQk1QU3RyaW5nIChTSVpFKDEuLk1BWCkpZQogICAgICAtLSBJQTVTdHJpbmcgaXMgYUVSICAtLSAoIGlkLXF0LWNwcyB8IGlkLXF0LXVub3RpY2UgKQpDUFN1cmkgOjo9IElBNVN0cmluZwpVc2VyTm90aWNlIDo6PSBTRVFVRU5DRSB7CiAgICAgbm90aWNlUmVmICAgICAgICBOb3RpY2VSZWZlcmVuY2UgT1BUSU9OQUwsCiAgICAgZXhwbGljaXRUZXh0ICAgICBEaXNwbGF5VGV4dCBPUFRJT05BTH0KTm90aWNlUmVmZXJlbmNlIDo6PSBTRVFVRU5DRSB7CiAgICAgb3JnYW5pemF0aW9uICAgICBEaXNwbGF5VGV4dCwKICAgICBub3RpY2VOdW1iZXJzICAgIFNFUVVFTkNFIE9GIElOVEVHRVIgfQpEaXNwbGF5VGV4dCA6Oj0gQ0hPSUNFIHsKICAgICB2aXNpYmxlU3RyaW5nICAgIFZpc2libGVTdHJpbmcgIChTSVpFICgxLi4yMDApKSwKICAgICBibXBTdHJpbmcgICAgICAgIEJNUFN0cmluZyAgICAgIChTSVpFICgxLi4yMDApKSwKICAgICB1dGY4U3RyaW5nICAgICAgIFVURjhTdHJpbmcgICAgIChTSVpFICgxLi4yMDApKSB9CmlkLWNlLXBvbGljeU1hcHBpbmdzIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAzMyB9ClBvbGljeU1hcHBpbmdzIDo6PSBTRVFVRU5DRSBTSVpFICgxLi5NQVgpIE9GIFNFUVVFTkNFIHsKICAgICBpc3N1ZXJEb21haW5Qb2xpY3kgICAgICBDZXJ0UG9saWN5SWQsCiAgICAgc3ViamVjdERvbWFpblBvbGljeSAgICAgQ2VydFBvbGljeUlkIH0KRGlyZWN0b3J5U3RyaW5nIDo6PSBDSE9JQ0UgewogICAgICB0ZWxldGV4U3RyaW5nICAgICAgICAgICAgIFRlbGV0ZXhTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICBwcmludGFibGVTdHJpbmcgICAgICAgICAgIFByaW50YWJsZVN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIHVuaXZlcnNhbFN0cmluZyAgICAgICAgICAgVW5pdmVyc2FsU3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgdXRmOFN0cmluZyAgICAgICAgICAgICAgVVRGOFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIGJtcFN0cmluZyAgICAgICAgICAgICAgIEJNUFN0cmluZyAoU0laRSgxLi5NQVgpKSwKICAgICAgLS0gSUE1U3RyaW5nIGlzIGFkZGVkIGhlcmUgdG8gaGFuZGxlIG9sZCBVSUQgZW5jb2RlZCBhc/7/////////bmcgLS0KICAgICAgLS0gU2VlIHRlc3RzL3VzZXJpZC8gZm9yIG1vcmUgaW5mb3JtYXRpb24uICBJdCBzaG91bGRuJ3QgYmUgaGVyZSwgLS0KICAgICAgLS0gc28gaWYgaXQgY2F1c2VzIHByb2JsZW1zLCBjb25zaWRlcmluZyBkcm9wcGluZyBpdC4gLS0KICAgICAgaWE1U3RyaW5nICAgICAgICAgICAgIGAgSWcKaWQtYXQtY29tbW9uTmFtZSAgICAgICAgQXR0cmlidXRlVHlwZSAgIDo6PSAgICAge2lkLWF0IDN9Clg1MjBDb21tb25OYW1lICA6Oj0gICAgICBEaXJlY3RvcnlTdHJpbmcKaWQtYXQtbG9jYWxpdHlOYW1lICAgICAgQXR0cmlidXRlVHlwZSAgIDo6PSAgICAge2lkLWF0IDd9Clg1MjBMb2NhbGl0eU5hbWUgOjo9IERpcmVjdG9yeVN0cmluZwppZC1hdC1zdGF0ZU9yUHJvdmluY2VOYW1lICAgICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCA4fQpYNTIwU3RhdGVPclByb3Z+IH4gfmluY2VOYW1lICAgICAgICAgOjo9IERpcmVjdG9yeVN0cmluZwppZC1hdC1vcmdhbml6YXRpb25OYW1lICAgICAgICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCAxMH0KWDUyME9yZ2FuaXphdGlvbk5hbWUgOjo9IERpcmVjdG9yeVN0cmluZwppZC1hdC1vcmdhbml6YXRpb25hbFVuaXROYW1lICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCAxMX0KWDUyME9yZ2FuaXphdGlvbmFsVW5pdCZhbWUgOjo9IERpcmVjdG9yeVN0cmluZwppZC1hdC10aXRsZSAgICAgQXR0cmlidXRlVHlwZSAgIDo6PSAgICAge2lkLWF0IDEyfQpYNTIwVGl0bGUgOjo9ICAgRGlyZWN0b3J5U3RyaW5nCmlkLWF0LWRlc2NyaXB0aW9uICAgICBBdHRyaWJ1dGVUeXBlICAgOjo9ICAgICB7aWQtYXQgMTN9Clg1MjBEZXNjcmlwdGlvbiA6Oj0gICBEaXJlY3RvcnlTdHJpbmcKaWQtYXQtZG5RdWFsaWZpZXIgICAgICAgQXR0cmlidXRlVHlwZSAgIDo6PSAgICB7ZC1pIGF0IDQ2fQpYNTIwZG5RdWFsaWZpZXIgOjo9ICAgICBQcmludGFibGVTdHJpbmcKaWQtYXQtY291bnRyeU5hbWUgICAgICAgQXR0cmlidXRlVHlwZSAgIDo6PSAgICAge2lkLWF0IDZ9Clg1MjBjb3VudHJ5TmFtZSA6Oj0gICAgIFByaW50YWJsZVN0cmluZyAoU0laRSAoMikpIC0tIElTIDMxNjYgY29kZXMKaWQtYXQtc2VyaWFsTnVtYmVyICAgICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCA1fQpYNTIwc2VyaWFsTnVtYmVyIDo6PSAgICAgUHJpbnRhYmxlU3RyaW5nCmlkLWF0LXRlbGVwaG9uZU51bWJlciAgICAgICBBdHRyaWJ1dGVUeXBlICAgOjo9ICAgICB7aWQtYXQgMjB9Clg1MjB0ZWxlcGhvbmVOdW1iZXIgOjo9ICAgICBQcmludGFibGVTdHJpbmcKaWQtYXQtZmFjc2ltaWxlVGVsZXBob25lTnVtYmVyICAgICAgIEF0dHJpYnV0ZVR5cCB+IH5lICAgOjo9ICAgICB7aWQtYXQgMjN9Clg1MjBmYWNzaW1pbGVUZWxlcGhvbmVOdW1iZXIgOjo9ICAgICBQcmludGFibGVTdHJpbmcKaWQtYXQtcHNldWRvbnltCQl7aWQtYXQgNDF9Clg1MjBuYW1lIDo6PQlEaXJlY3RvcnlTdHJpbmcKaWQtYXQtc3RyZWV0QWRkcmVzcwlBdHRyaWJ1dGVUeXBlICAgOjo9ICAgICB7aWQtYXQgOX0KWDUyMHN0cmVldEFkZHJlc3MgOjo9CURpcmVjdG9yeVN0cmluZwppZC1hdC1wb3N0YWxBZGRyZXNzCUF0dHJpYnV0ZVR5cGUJOjo9CXtpZC1hdCAxNn0KWDUyMHBvc3RhbEFkZHJlc3MgOjo9IFBvc3RhbEFkZHJlc3MKUG9zdGFsQWRkcmVzcyA6Oj0gU0VRVUVOQ0UgT0YgRGlyZWN0b3J5U3RyaW5nCiAtLSBMZWdhY3kgYXR0cmlidXRlcwpwa2NzIE9CMSgwKSwgdjIoMSksIHYzKDIpICB9CkNlcnRpZmljYXRlU2VyaWFsTnVtYmVyICA6Oj0gIElOVEVHRVIKVmFsaWRpdHkgOjo9IFNFUVVFTkNFIA==