UNMAAAAgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDM1IH0KQXV0aG9yaXR5S2V5SWRlbnRpZmllciA6Oj0gU0VRVUVOQ0UgewogICAgICBrZXlJZGVudGlmaWVyICAgICAgICAgICAgIFswXSBLZXlJZGVudGlmaWVyICAgICAgICAgICAgT1BUSU9OQUwsCiAgICAgIGF1dGhvcml0eUNlcnRJc3N1ZXIgICAgICAgWzFdIEdlbmVyYWxOYW1lcyAgICAgICAgICAgICBPUFRJT05BTCwKICAgICAgYXV0aG9yaXR5Q2VydFNlcmlhbE51bWJlciBbMl0gQ2VydGlmaWNhdGVTZXJpYWxOdW1iZXIgIE9QVElPTkFMIH0KICAgIC0tIGF1dGhvcml0eUNlcnRJc3N1ZXIgYW5kIGF1dGhvcml0eUNlcnRTZXJpYWxOdW1iZXIgc2hhbGwgYm92aAogICAgLS0gYmUgcHJlc2VudCBvciBib3RoIGJlIGFic2dlbnQKS2V5SWRlbnRpZmllciA6Oj0gT0NURVQgU1RSSU5HCmlkLWNlLXN1YmplY3RLZXlJZGVydFBvbGljeUlkIDo6PSBPQkpFQ1QgSURFTlRJRklFUgpQb2xpY3lRdWFsaWZpZXJJbmZvIDo6PSBTRVFVRU5DRSB7CiAgICAgICBwb2xpY3lRdWFsaWZpZXJJZCAgUG9saWN5UXVhbGlmaWVySWQsCiAgICAgICBxdWFsaWZpZXIgICAgICAgIEFOWSBERUZJTkVEIEJZIHBvbGljeVF1YWxpZmllcklkIH0KUG9saWN5UXVhbGlmaWVySWQgOjo9CiAgICBPQkpFQ1QgSURFTlRJRklFUiAgLS0gKCBpZC1xdC1jcHMgfCBpZC1xdC11bm90aWNlICkKQ1BTdXJpIDo6PSBJQTVTdHJpbmcKVXNlck5vdGljZSA6Oj0gU0VRVUVOQ0UgewogICAgIG5vdGljZVJlZiAgICAgICAgTm90aWNlUmVmZXJlbmNlIE9QVElPTkFMLAogICAgIGV4cGxpYyAgSUE1U3RyaW5nIChTSVpFKDEuLk1BWCkpIH0KaWQtY2Utc3ViamVjdEFsdE5hbWUgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDE3IH0KU3ViamVjdEFsdE5hbWUgOjo9IEdlbmVyYWxOYW1lcwpHZW5lcmFsTmFtZXMgOjo9IFNFUVVFTkNFIFNJWkUgKDEuLk1BWCkgT0YgR2VuZXJhbE5hbWUKR2VuZXJhbE5hbWUgOjo9IENIT0lDRSB7CiAgICAgb3RoZXJOYW1lICAgICAgICAgICAgICAgICAgICAgICBbMF0gICAgIEFub3RoZXJOYW1lLAogICAgIHJmYzgyMk5hbWUgICAgICAgICAgICAgICAgICAgICAgWzFdICAgICBJQTVTdHJpbmcsCiAgICAgZE5TTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICBbMl0gICAgIElBNVN0cmluZywKICAgICB4NDAwQWRkcmVzcyAgICAgICAgICAgICAgICAgICAgIFszXSAgICAgT1JBZGRyZXNzLAogICAgIGRpcmVjdG9yeU5hbWUgICAgICAgICAgICAgICAgIHRQb2xpY3lJZCB9CkRpcmVjdG9yeVN0cmluZyA6Oj0gQ0hPSUNFIHsKICAgICAgdGVsZXRleFN0cmluZyAgICAgICAgICAgICBUZWxldGV4U3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgcHJpbnRhYmxlU3RyaW5nICAgICAgICAgICBQcmludGFibGVTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogbmcgICAgICAgICAgIFVuaXZlcnNhbFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIHV0ZjhTdHJpbmcgICAgICAgICAgICAgIFVURjhTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICBibXBTdHJpbmcgICAgICAgICAgICAgICBCTVBTdHJpbmcgKFNJWkUoMS4uTUFYKSksCiAgICAgIC0tIElBNVN0cmluZyBpcyBhZGRlZCBoZXJlIHRvIGhhbm9ibGVtcywgY29uc2lkZXJpbmcgZHJvcHBpbmcgaXQuIC0tCiAgICAgIGlhNVN0cmluZyAgICAgICAgICAgICAgIElBNVN0cmluZyAoU0laRSgxLi5NQVgpKSB9CmlkLWNlLXN1YmplY3RBbHROYW1lIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNyB9ClN1YmplY3RBbHROYW1lIDo6PSBHZW5lcmFsTmFtZXMKR2VuZXJhbE5hbWVzIDo6PSBTRVFVRU5DRSBTSVpFICgxLi5NQVgpIE9GIEdlbmVyYWxOYW1lCkdlbmVyYWxOYW1lIDo6PSBDSE9JQ0UgewogICAgIG90aCAgICAgICAgICAgICAgICAgICAgICBbMF0gICAgIEFub3RoZXJOYW1lLAogICAgIHJmYzgyMk5hbWUgICAgICAgICAgICAgICAgICAgICAgWzFdICAgICBJQTVTdHJpbmcsCiAgICAgZE5TTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICBbMl0gICAgIElBNVN0cmluZywKICAgICB4NDAwQWRkcmVzcyAgICAgICAgICAgICAgICAgICAgIFszXSAgICAgT1JBZGRyZXNzLAogICAgIGRpcmVjdG9yeU5hbWUgICAgICAgICAgICAgICAgIHRQb2xpY3lJZCB9CkRpcmVjdG9yeVN0cmluZyA6Oj0gQ0hPSUNFIHsKICAgICAgdGVsZXRleFN0cmluZyAgICAgICAgICAgICBUZWxldGV4U3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgcHJpbnRhYmxlU3RyaW5nICAgICAgICAgICBQcmludGFibGVTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICB1bml2ZXJzYWxTdHJpbmcgICAgICAgICAgIFVuaXZlcnNhbFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIHV0ZjhTdHJpbmcgICAgICAgICAgICAgIFVURjhTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICBibXBTdHJpbmcgICAgICAgICAgICAgICBCTVBTdHJpbmcgKFNJWkUoMS4uTUFYKSksCiAgICAgIC0tIElBNVN0cmluZyBpcyBhZGRlZCBoZXJlIHRvIGhhbmRsZSBvbGQgVUlEIGVuY29kZWQgYXMgaWE1U3RyaW5nIC0tCiAgICAgIC0tIFNlZSB0ZXN0cy91c2VyaWQvIGZvciBtb3JlIGluZm9ybWF0aW9uLiAgSXQgc2hvdWxkbid0IGJlIGhlcmUsIC0tCiAgICAgIC0tIHNvIGlmIGl0IGNhdXNlcyBwcm9ibGVtcywgY29uc2lkZXJpbmcgZHJvcHBpbmcgaXQuIC0tCiAgICAgIGlhNVN0cmluZyAgICAgICAgICAgICAgIElBNVN0cmluZyAoU0laRSgxLi5NQVgpKSB9ZSA6Oj0gR2VuZXJhbE5hbWVzCkdlbmVyYWxOYW1lcyA6Oj0gU0VRVUVOQ0UgU0laRSAoMS4uTUFYKSBPRiBHZW5lcmFsTmFtZQpHZW5lcmFsTmFtZSA6Oj0gQ0hPSUNFIHsKICAgICBvdGhlck5hbWUgICAgICAgICAgICAgICAgICAgICAgIFswXSAgICAgQW5vdGhlck5hbWUsCiAgICAgcmZjODIyTmFtZSAgICAgICAgICAgICAgICAgICAgICBbMV0gICAgIElBNVN0cmluZywKICAgICBkTlNOYW1lICAgICAgICAgICAgICAgICAgICAgICAgIFsyXSAgICAgSUE1U3RyaW5nLAogICAgIHg0MDBBZGRyZXNzICAgICAgICAgICAgICAgICAgICAgWzNdICAgICBPUkFkZHJlc3MsCiAgICAgZGlyZWN0b3J5TmFtZSAgICAgICAgICAgICAgICAgdFBvbGljeUlkIH0KRGlyZWN0b3J5U3RyaW5nIDo6PSBDSE9JQ0UgewogICAgICB0ZWxldGV4U3RyaW5nICAgICAgICAgICAgIFRlbGV0ZXhTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICBwcmludGFibGVTdHJpbmcgICAgICAgICAgIFByaW50YWJsZVN0cmluZyAoU0laRSAoMS4uTUFYKSksCiBuZyAgICAgICAgZW5lcmFsTmFtZXMgICAgICAgICAgICAgT1BUSU9OQUwsCiAgICAgIGF1dGhvcml0eUNlcnRTZXJpYWxOdW1iZXIgWzJdIENlcnRpZmljYXRlU2VyaWFsTnVtYmVyICBPUFRJT05BTCB9CiAgICAtLSBhdXRob3JpdHlDZXJ0SXNzdWVyIGFuZCBhdXRob3JpdHlDZXJ0U2VyaWFsTnVtYmVyIHNoYWxsIGJvdmgKICAgIC0tIGJlIHByZXNlbnQgb3IgYm90aCBiZSBhYnNnZW50CktleUlkZW50aWZpZXIgOjo9IE9DVEVUIFNUUklORwppZC1jZS1zdWJqZWN0S2V5SWRlcnRQb2xpY3lJZCA6Oj0gT0JKRUNUIElERU5USUZJRVIKUG9saWN5UXVhbGlmaWVySW5mbyA6Oj0gU0VRVUVOQ0UgewogICAgICAgcG9saWN5UXVhbGlmaWVySWQgIFBvbGljeVF1YWxpZmllcklkLAogICAgICAgcXVhbGlmaWVyICAgICAgICBBTlkgREVGSU5FRCBCWSBwb2xpY3lRdWFsaWZpZXJJZCB9ClBvbGljeVF1YWxpZmllcklkIDo6PQogICAgT0JKRUNUIElERU5USUZJRVIgIC0tICggaWQtcXQtY3BzIHwgaWQtcXQtdW5vdGljZSApCkNQU3VyaSA6Oj0gSUE1U3RyaW5nClVzZXJOb3RpY2UgOjo9IFNFUVVFTkNFIHsKICAgICBub3RpY2VSZWYgICAgICAgIE5vdGljZVJlZmVyZW5jZSBPUFRJT05BTCwKICAgICBleHBsaWMgIElBNVN0cmluZyAoU0laRSgxLi5NQVgpKSB9CmlkLWNlLXN1YmplY3RBbHROYW1lIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNyB9ClN1YmplY3RBbHROYW1lIDo6PSBHZW5lcmFsTmFtZXMKR2VuZXJhbE5hbWVzIDo6PSBTRVFVRU5DRSBTSVpFICgxLi5NQVgpIE9GIEdlbmVyYWxOYW1lCkdlbmVyYWxOYW1lIDo6PSBDSE9JQ0UgewogICAgIG90aGVyTmFtZSAgICAgICAgICAgICAgICAgICAgICAgWzBdICAgICBBbm90aGVyTmFtZSwKICAgICByZmM4MjJOYW1lICAgICAgICAgICAgICAgICAgICAgIFsxXSAgICAgSUE1U3RyaW5nLAogICAgIGROU05hbWUgICAgICAgICAgICAgICAgICAgICAgICAgWzJdICAgICBJQTVTdHJpbmcsCiAgICAgeDQwMEFkZHJlc3MgICAgICAgICAgICAgICAgICAgICBbM10gICAgIE9SQWRkcmVzcywKICAgICBkaXJlY3RvcnlOYW1lICAgICAgICAgICAgICAgICB0UG9saWN5SWQgfQpEaXJlY3RvcnlTdHJpbmcgOjo9IENIT0lDRSB7CiAgICAgIHRlbGV0ZXhTdHJpbmcgICAgICAgICAgICAgVGVsZXRleFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIHByaW50YWJsZVN0cmluZyAgICAgICAgICAgUHJpbnRhYmxlU3RyaW5nIChTSVpFICgxLi5NQVgpKSwKIG5nICAgICAgICAgICBVbml2ZXJzYWxTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICB1dGY4U3RyaW5nICAgICAgICAgICAgICBVVEY4U3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgYm1wU3RyaW5nICAgICAgICAgICAgICAgQk1QU3RyaW5nIChTSVpFKDEuLk1BWCkpLAogICAgICAtLSBJQTVTdHJpbmcgaXMgYWRkZWQgaGVyZSB0byBoYW5vYmxlbXMsIGNvbnNpZGVyaW5nIGRyb3BwaW5nIGl0LiAtLQogICAgICBpYTVTdHJpbmcgICAgICAgICAgICAgICBJQTVTdHJpbmcgKFNJWkUoMS4uTUFYKSkgfQppZC1jZS1zdWJqZWN0QWx0TmFtZSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMTcgfQpTdWJqZWN0QWx0TmFtZSA6Oj0gR2VuZXJhbE5hbWVzCkdlbmVyYWxOYW1lcyA6Oj0gU0VRVUVOQ0UgU0laRSAoMS4uTUFYKSBPRiBHZW5lcmFsTmFtZQpHZW5lcmFsTmFtZSA6Oj0gQ0hPSUNFIHsKICAgICBvdGggICAgICAgICAgICAgICAgICAgICAgWzBdICAgICBBbm90aGVyTmFtZSwKICAgICByZmM4MjJOYW1lICAgICAgICAgICAgICAgICAgICAgIFsxXSAgICAgSUE1U3RyaW5nLAogICAgIGROU05hbWUgICAgICAgICAgICAgICAgICAgICAgICAgWzJdICAgICBJQTVTdHJpbmcsCiAgICAgeDQwMEFkZHJlc3MgICAgICAgICAgICAgICAgICAgICBbM10gICAgIE9SQWRkcmVzcywKICAgICBkaXJlY3RvcnlOYW1lICAgICAgICAgICAgICAgICB0UG9saWN5SWQgfQpEaXJlY3RvcnlTdHJpbmcgOjo9IENIT0lDRSB7CiAgICAgIHRlbGV0ZXhTdHJpbmcgICAgICAgICAgICAgVGVsZXRleFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIHByaW50YWJsZVN0cmluZyAgICAgICAgICAgUHJpbnRhYmxlU3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgdW5pdmVyc2FsU3RyaW5nICAgICAgICAgICBVbml2ZXJzYWxTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICB1dGY4U3RyaW5nICAgICAgICAgICAgICBVVEY4U3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgYm1wU3RyaW5nICAgICAgICAgICAgICAgQk1QU3RyaW5nIChTSVpFKDEuLk1BWCkpLAogICAgICAtLSBJQTVTdHJpbmcgaXMgYWRkZWQgaGVyZSB0byBoYW5kbGUgb2xkIFVJRCBlbmNvZGVkIGFzIGlhNVN0cmluZyAtLQogICAgICAtLSBTZWUgdGVzdHMvdXNlcmlkLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gIEl0IHNob3VsZG4ndCBiZSBoZXJlLCAtLQogICAgICAtLSBzbyBpZiBpdCBjYXVzZXMgcHJvYmxlbXMsIGNvbnNpZGVyaW5nIGRyb3BwaW5nIGl0LiAtLQogICAgICBpYTVTdHJpbmcgICAgICAgICAgICAgICBJQTVTdHJpbmcgKFNJWkUoMS4uTUFYKSkgfWUgOjo9IEdlbmVyYWxOYW1lcwpHZW5lcmFsTmFtZXMgOjo9IFNFUVVFTkNFIFNJWkUgKDEuLk1BWCkgT0YgR2VuZXJhbE5hbWUKR2VuZXJhbE5hbWUgOjo9IENIT0lDRSB7CiAgICAgb3RoZXJOYW1lICAgICAgICAgICAgICAgICAgICAgICBbMF0gICAgIEFub3RoZXJOYW1lLAogICAgIHJmYzgyMk5hbWUgICAgICAgICAgICAgICAgICAgICAgWzFdICAgICBJQTVTdHJpbmcsCiAgICAgZE5TTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICBbMl0gICAgIElBNVN0cmluZywKICAgICB4NDAwQWRkcmVzcyAgICAgICAgICAgICAgICAgICAgIFszXSAgICAgT1JBZGRyZXNzLAogICAgIGRpcmVjdG9yeU5hbWUgICAgICAgICAgICAgICAgIHRQb2xpY3lJZCB9CkRpcmVjdG9yeVN0cmluZyA6Oj0gQ0hPSUNFIHsKICAgICAgdGVsZXRleFN0cmluZyAgICAgICAgICAgICBUZWxldGV4U3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgcHJpbnRhYmxlU3RyaW5nICAgICAgICAgICBQcmludGFibGVTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogbmcgICAgICAgICAgIFVuaXZlcnNhbFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIHV0ZjhTdHJpbmcgICAgICAgICAgICAgIFVURjhTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICBibXBTdHJpbmcgICAgICAgICAgICAgICBCTVBTdHJpbmcgKFNJWkUoMS4uTUFYKSksCiAgICAgIC0tIElBNVN0cmluZyBpcyBhZGRlZCBoZXJlIHRvIGhhbmRsZSBvbGQgVUlEIGVuY29kZWQgYXMgaWE1U3RyaW5nIC0tCiAgICAgIC0tIFNlZSB0ZXN0cy91c2VyaWQvIGZvciBtb3JlIGluZm9ybWF0aW9uLiAgSXQgc2hvdWxkbid0IGJlIGhlcmUsIC0tCiAgICAgIC0tIHNvIGlmIGl0IGNhdXNlcyBwcm9ibGVtcywgY29uc2lkZXJpbmcgZHJvcHBpbmcgaXQuIC0tCiAgICAgIGlhNVN0cmluZyAgICAgICAgICAgICAgIElBNVN0cmluZyAoU0laRSgxLi5NQVgpKSB9CmlkLWNlLXN1YmplY3RBbHROYW1lIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNyB9ClN1YmplY3RBbHROYW1lIDo6PSBHZW5lcmFsTmFtZXMKR2VuZXJhbE5hbWVzIDo6PSBTRVFVRU5DRSBTSVpFICgxLi5NQVgpIE9GIEdlbmVyYWxOYW1lCkdlbmVyYWxOYW1lIDo6PSBDSE9JQ0UgewogICAgIG90aGVyTmFtZSAgICAgICAgICAgICAgICAgICAgICAgWzBdICAgICBBbm90aGVyTmFtZSwKICAgICBmcmM4MjJOYW1lICAgICAgICAgICAgICAgICAgICAgIFsxXSAgICAgSUE1U3RyaW5nLAogICAgIGROU05hbWUgICAgICAgICAgICAgICAgICAgICAgICAgWzJdICAgICBJQTVTdHJpbmcsCiAgICAgeDQwMEFkZHJlc3MgICAgICAgICAgICAgICAgICAgICBbM10gICAgIE9SQWRkcmVzcywKICAgICBkaXJlY3RvcnlOYW1lICAgICAgICAgICAgICAgICB0UG9saWN5SWQgfQpEaXJlY3RvcnlTdHJpbmcgOjo9IENIT0lDRSB7CiAgICAgIHRlbGV0ZXhTdHJpbmcgICAgICAgICAgICAgVGVsZXRleFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIHByaW50YWJsZVN0cmluZyAgICAgICAgICAgUHJpbnRhYmxlU3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgdW5pdmVyc2FsU3RyaW5nICAgICAgICAgICBVbml2ZXJzYWxTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICB1dGY4U3RyaW5nICAgICAgICAgICAgICBVVEY4U3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgYm1wU3RyaW5nICAgICAgICAgIFVuaXZlcnNhbFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIHV0ZjhTdHJpbmcgICAgICAgICAgICAgIFVURjhTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICBibXBTdHJpbmcgICAgICAgICAgICAgICBCTVBTdHJpbmcgKFNJWkUoMS4uTUFYKSksCiAgICAgIC0tIElBNVN0cmluZyBpcyBhZGRlZCBoZXJlIHRvIGhhbmRsZSBvbGQgVUlEIGVuY29kZWQgYXMgaWE1U3RyaW5nIC0tCiAgICAgIC0tIFNlZSB0ZXN0cy91c2VyaWQvIGZvciBtb3JlIGluZm9ybWF0aW9uLiAgSXQgc2hvdWxkbid0IGJlIGhlcmUsIC0tCiAgICAgIC0tIHNvIGlmIGl0IGNhdXNlcyBwcm9ibGVtcywgY29uc2lkZXJpbmcgZHJvcHBpbmcgaXQuIC0tCiAgICAgIGlhNVN0cmluZyAgICAgICAgICAgICAgIElBNVN0cmluZyAoU0laRSgxLi5NQVgpKSB9CmlkLWNlLXN1YmplY3RBbHROYW1lIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNyB9ClN1YmplY3RBbHROYW1lIDo6PSBHZW5lcmFsTmFtZXMKR2VuZXJhbE5hbWVzIDo6PSBTRVFVRU5DRSBTSVpFICgxLi5NQVgpIE9GIEdlbmVyYWxOYW1lCkdlbmVyYWxOYW1lIDo6PSBDSE9JQ0UgewogICAgIG90aGVyTmFtZSAgICAgICAgICAgICAgICAgICAgICAgWzBdICAgICBBbm90aGVyTmFtZSwKICAgICBmcmM4MjJOYW1lICAgICAgICAgICAgICAgICAgICAgIFsxXSAgICAgSUE1U3RyaW5nLAogICAgIGROU05hbWUgICAgICAgICAgICAgICAgICAgICAgICAgWzJdICAgICBJQTVTdHJpbmcsCiAgICAgeDQwMEFkZHJlc3MgICAgICAgICAgICAgICAgICAgICBbM10gICAgIE9SQWRkcmVzcywKICAgICBkaXJlY3RvcnlOYW1lICAgICAgICAgICAgICAgICB0UG9saWN5SWQgfQpEaXJlY3RvcnlTdHJpbmcgOjo9IENIT0lDRSB7CiAgICAgIHRlbGV0ZXhTdHJpbmcgICAgICAgICAgICAgVGVsZXRleFN0cmluZyAoU0laRSAoMS4uTUFYKSksCiAgICAgIHByaW50YWJsZVN0cmluZyAgICAgICAgICAgUHJpbnRhYmxlU3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgdW5pdmVyc2FsU3RyaW5nICAgICAgICAgICBVbml2ZXJzYWxTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICB1dGY4U3RyaW5nICAgICAgICAgICAgICBVVEY4U3RyaW5nIChTSVpFICgxLi5NQVgpKSwKICAgICAgYm1wU3RyaW5nICAgICAgICAgICAgICAgQk1QU3RyaW5nIChTSVpFKDEuLk1BWCkpLAogICAgICAtLSBJQTVTdHJpbmcgaXMgYWRkZWQgaGVyZSB0byBoYW5kbGUgb2xkIFVJRCBlbmNvZGVkIGFzIGlhNVN0cmluZyAtLQogICAgICAtLSBTZWUgdGVzdHMvdXNlcmlkLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gIEl0IHNob3VsZG4ndCBiZSBoZXJlLCAtLQogICAgICAtLSBzbyBpZiBpdCBjYXVzZXMgcHJvYmxlbXMsIGNvbnNpZGVyaW5nIGRyb3BwaW5nIGl0LiAtLQogICAgICBpYTVTdHJpbmcgICAgICAgICAgICAgICBJQTVTdHJpbmcgKFNJWkUoMS4uTUFYKSkgfQppZC1jZS1zdWJqZWN0QWx0TmFtZSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMTcgfQpTdWJqZWN0QWx0TmFtZSA6Oj0gR2VuZXJhbE5hbWVzCkdlbmVyYWxOYW1lcyA6Oj0gU0VRVUVOQ0UgU0laRSAoMS4uTUFYKSBPRiBHZW5lcmFsTmFtZQohZW5lcmFsTmFtZSA6Oj0gQ0hPSUNFIHsKICAgICBvdGhlck5hbWUgICAgICAgICAgICAgICAgICAgICAgIFswXSAgICAgQW5vdGhlck5hbWUsCiAgICAgcmZjODIyTmFtZSAgICAgICAgICAgICAgICAgICAgICBbMV0gICAgIElBNVN0cmluZywKICAgICBkTlNOYW1lICAgICAgICAgICAgIFsyXSAgICAgSUE1U3RyaW5nLAogICAgIHg0MDBBZGRyZXNzICAgICAgICAgICAgICAgICAgICAgW0lQYXJ0eU5hbWUgOjo9IFNFUVVFTkNFIHsKICAgICBuYW1lQXNzaWduZXIgICAgICAgICAgICBbMF0gICAgIERpcmVjdG9yeVN0cmluZyBPUFRJT05BTCwKICAgICBwYXJ0eU5hbWUgICAgICAgICBTdHJpbmcgKFNJWkUgKDEuLk1BWCkpLAogICAgICB1blhQTElDSVQgR2VuZXJhbGl6ZWRUaW1lIE9QVElPTkFMLAogICBzaW5nbGVFeHRlbnNpb25zICAgICBbMV0gICAgIEVYUExJQ0lUIEV4dGVuc2lvbnMgT1BUSU9OQUwgfQpSZXZva2VkbnVtZXJhdGlvbgpFTkQK