IyAgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQ0KIyAgb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlDQojICBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbg0KIyAgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQ0KIyAgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQ0KIyAgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQ0KIyAgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KIw0KIyAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCiMNCiMgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywNCiMgIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuDQojICAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkNCiMgIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQ0KIyAgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucw0KIyAgdW5kZXIgdGhlIExpY2Vuc2UuDQoNCmFjdGl2YXRvcl91bmFibGVfZ2V0X3BsdWdpbl9wcm9wZXJ0aWVzPVVJbXBvc3NpYmxlIGRlIHJcdTAwRTljdXBcdTAwRTlyZXIgbGVzIHByb3ByaVx1MDBFOXRcdTAwRTlzIGR1IHBsdWdpbg0KDQpjb3B5X25fb2Zfcz1Db3BpZSB7MH1kZSB7MX0NCg0KZXZlbnRfX2FkZGVkX2F0dF90b19kbj1Bam91dCBkZSB7MH0gXHUwMEUwIHsxfQ0KZXZlbnRfX2RlbGV0ZWRfYXR0X2Zyb21fZG49U3VwcHJlc3Npb24gZGUgezB9IGRlIHsxfQ0KZXZlbnRfX2RuX2F0dHJpYnV0ZXNfaW5pdGlhbGl6ZWQ9ezB9OiBhdHRyaWJ1dHMgaW5pdGlhbGlzXHUwMEU5cw0KZXZlbnRfX2RuX2NoaWxkcmVuX2luaXRpYWxpemVkPXswfTogZmlscyBpbml0aWFsaXNcdTAwRTlzDQpldmVudF9fYnVsa19tb2RpZmljYXRpb249TW9kaWZpY2F0aW9ucyBtdWx0aXBsZXMNCmV2ZW50X19lbXB0eV92YWx1ZV9hZGRlZF90b19hdHRfYXRfZG49VmFsZXVyIHZpZGUgYWpvdXRcdTAwRTllIFx1MDBFMCB7MH0gZGUgezF9DQpldmVudF9fZW1wdHlfdmFsdWVfZGVsZXRlZF9mcm9tX2F0dF9hdF9kbj1WYWxldXIgdmlkZSBzdXBwcmltXHUwMEU5ZSBkZSB7MH0gZGUgezF9DQpldmVudF9fYWRkZWRfZG49QWpvdXQgZGUgezB9DQpldmVudF9fZGVsZXRlZF9kbj1TdXBwcmVzc2lvbiBkZSB7MH0NCmV2ZW50X19tb3ZlZF9vbGRyZG5fZnJvbV9vbGRwYXJlbnRfdG9fbmV3cGFyZW50PURcdTAwRTlwbGFjZW1lbnQgZGUgezB9IGRlcHVpcyB7MX0gdmVycyB7Mn0NCmV2ZW50X19yZW5hbWVkX29sZGRuX3RvX25ld2RuPVJlbm9tbWFnZSBkZSB7MH0gZW4gezF9DQpldmVudF9fYWRkZWRfdmFsX3RvX2F0dF9hdF9kbj1Bam91dCBkZSB7MH0gXHUwMEUwIHsxfSBkZSB7Mn0NCmV2ZW50X19kZWxldGVkX3ZhbF9mcm9tX2F0dF9hdF9kbj1TdXBwcmVzc2lvbiBkZSB7MH0gZGUgezF9IFx1MDBFMCB7Mn0NCmV2ZW50X19yZXBsYWNlZF9vbGR2YWxfYnlfbmV3dmFsX2F0X2F0dF9hdF9kbj1SZW1wbGFjZW1lbnQgZGUgezB9IHBhciB7MX0gZGUgezJ9IFx1MDBFMCB7M30NCmV2ZW50X19yZW5hbWVkX29sZHZhbF9ieV9uZXd2YWxfYXRfZG49UmVub21tYWdlIGRlIHswfSBlbiB7MX0gXHUwMEUwIHsyfQ0KDQoNCm1vZGVsX19lbXB0eV9jb25uZWN0aW9uPVVuZSBjb25uZXhpb24gdmlkZSBuJ2VzdCBwYXMgYXV0b3Jpc1x1MDBFOWUgXCENCm1vZGVsX19lbXB0eV9zdHJpbmdfdmFsdWU9PFZBTEVVUiBDSEFJTkUgREUgQ0FSQUNURVJFIFZJREU+DQptb2RlbF9fZW1wdHlfYmluYXJ5X3ZhbHVlPTxWQUxFVVIgQklOQUlSRSBWSURFPg0KbW9kZWxfX2VtcHR5X2VudHJ5PVVuZSBlbnRyXHUwMEU5ZSB2aWRlIG4nZXN0IHBhcyBhdXRvcmlzXHUwMEU5ZSBcIQ0KbW9kZWxfX2VtcHR5X2F0dHJpYnV0ZT1VbiBhdHRyaWJ1dCB2aWRlIG4nZXN0IHBhcyBhdXRvcmlzXHUwMEU5IFwhDQptb2RlbF9fZW1wdHlfdmFsdWU9VW5lIHZhbGV1ciB2aWRlIG4nZXN0IHBhcyBhdXRvcmlzXHUwMEU5ZSBcIQ0KbW9kZWxfX2VtcHR5X3VybD1VbmUgVVJMIHZpZGUgbidlc3QgcGFzIGF1dG9yaXNcdTAwRTllIFwhDQptb2RlbF9fZW1wdHlfZG49VW4gRE4gdmlkZSBuJ2VzdCBwYXMgYXV0b3Jpc1x1MDBFOSBcIQ0KbW9kZWxfX2VtcHR5X3Jkbj1VbiBSRE4gdmlkZSBuJ2VzdCBwYXMgYXV0b3Jpc1x1MDBFOSBcIQ0KbW9kZWxfX3VybF9ub19kbj1QYXMgZGUgRE4NCm1vZGVsX19lbXB0eV9wYXNzd29yZD1VbiBtb3QgZGUgcGFzc2UgdmlkZSBuJ2VzdCBwYXMgYXV0b3Jpc1x1MDBFOSBcIQ0KbW9kZWxfX2xvYWRpbmdfc2NoZW1hPUNoYXJnZW1lbnQgZHUgU2NoXHUwMEU5bWEuLi4NCm1vZGVsX19pbnZhbGlkX3JlY29yZD1MJydlbnJlZ2lzdHJlbWVudCBlc3QgaW52YWxpZGUgOiB7MH0NCm1vZGVsX19pbnZhbGlkX3Jkbj1SRE4gaW52YWxpZGUNCm1vZGVsX19pbnZhbGlkX3Byb3RvY29sPVByb3RvY29sIGludmFsaWRlDQptb2RlbF9faW52YWxpZF91cmw9VVJMIGludmFsaWRlDQptb2RlbF9fbG9hZGluZ19yb290ZHNlPUNoYXJnZW1lbnQgZGUgbGEgUm9vdCBEU0UuLi4NCm1vZGVsX19zZXR0aW5nX2Jhc2VfZG49TWlzZSBlbiBwbGFjZSBkdSBETiBkZSBiYXNlLi4uDQptb2RlbF9fbm9fc3VjaF9lbnRyeT1MJydlbnRyXHUwMEU5ZSAnJ3swfScnIG4nJ2V4aXN0ZSBwYXMgb3UgbicnYSBwYXMgXHUwMEU5dFx1MDBFOSByZXRvdXJuXHUwMEU5ZSBwYXIgbGUgc2VydmV1cg0KbW9kZWxfX2JpbmRpbmc9T3V2ZXJ0dXJlIGRlIHNlc3Npb24uLi4NCm1vZGVsX19jb25uZWN0aW5nPUNvbm5leGlvbi4uLg0KDQptb2RlbF9maWx0ZXJfbWlzc2luZ19jbG9zaW5nX3BhcmVudGhlc2lzPVBhcmVudGhcdTAwRThzZSBmZXJtYW50ZSAnKScgbWFucXVhbnRlDQptb2RlbF9maWx0ZXJfbWlzc2luZ19maWx0ZXJfZXhwcmVzc2lvbj1FeHByZXNzaW9uIGRlIGZpbHRyZSBtYW5xdWFudGUNCm1vZGVsX19hdHRyaWJ1dGVzX2VudHJ5X2lzX25vdF9teXNlbGY9TCdhdHRyaWJ1dCBkZSBsJ2VudHJcdTAwRTllIG4nZXN0IHBhcyBtb2ktbVx1MDBFQW1lDQptb2RlbF9fdmFsdWVzX2F0dHJpYnV0ZV9pc19ub3RfbXlzZWxmPUxhIHZhbGV1ciBkZSBsJ2F0dHJpYnV0IG4nZXN0IHBhcyBtb2ktbVx1MDBFQW1lDQoNCm1vZGVsX19ub19jb25uZWN0aW9uX3Byb3ZpZGVyPUF1Y3VuIGZvdXJuaXNzZXVyIGRlIGNvbm5leGlvbiBtaXMgZW4gcGxhY2UuDQptb2RlbF9fbm9fY29ubmVjdGlvbj1QYXMgZGUgY29ubmV4aW9uDQptb2RlbF9fbm9fYXV0aF9oYW5kbGVyPVBhcyBkZSBnZXN0aW9ubmFpcmUgZCdhdXRoZW50aWZpY2F0aW9uDQptb2RlbF9fbm9fY3JlZGVudGlhbHM9UGFzIGRlIG1vdCBkZSBwYXNzZQ0KbW9kZWxfX25vX3JlZmVycmFsX2hhbmRsZXI9UGFzIGRlIGdlc3Rpb25uYWlyZSBkZSByXHUwMEU5Zlx1MDBFOXJlbnQNCm1vZGVsX19ub19yZWZlcnJhbF9jb25uZWN0aW9uPVBhcyBkZSBjb25uZXhpb24gclx1MDBFOWZcdTAwRTlyZW50ZQ0KbW9kZWxfX3Vua25vd25faG9zdD1IXHUwMEY0dGUgaW5jb25udTogDQptb2RlbF9fdXJsX25vX2hvc3Q9UGFzIGQnaFx1MDBGNHRlDQptb2RlbF9fdXJsX25vX3BvcnQ9UGFzIGRlIHBvcnQNCm1vZGVsX191cmxfbm9fc2NvcGU9UGFzIGRlIHNjb3BlDQptb2RlbF9fdXJsX25vX2ZpbHRlcj1QYXMgZGUgZmlsdHJlDQptb2RlbF9fZXJyb3JfbG9hZGluZ19yb290ZHNlPVVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZHUgY2hhcmdlbWVudCBkZSBsYSBSb290IERTRQ0KbW9kZWxfX2Vycm9yX3NldHRpbmdfYmFzZV9kbj1JbXBvc3NpYmxlIGRlIG1ldHRyZSBlbiBwbGFjZSBsJ2VudHJcdTAwRTllIGRlIEROIGRlIGJhc2UNCm1vZGVsX19lcnJvcl9zZXR0aW5nX21ldGFkYXRhPUltcG9zc2libGUgZGUgbWV0dHJlIGVuIHBsYWNlIGxlcyBlbnRyXHUwMEU5ZXMgTWV0YWRhdGENCm1vZGVsX19ub19zY2hlbWFfaW5mb3JtYXRpb249QXVjdW5lIGluZm9ybWF0aW9uIGRlIHNjaFx1MDBFOW1hIHJldG91cm5cdTAwRTllIHBhciBsZSBzZXJ2ZXVyLCB1dGlsaXNhdGlvbiBkdSBzY2hcdTAwRTltYSBwYXIgZFx1MDBFOWZhdXQuDQptb2RlbF9fbWlzc2luZ19zY2hlbWFfbG9jYXRpb249RW1wbGFjZW1lbnQgZHUgc2NoXHUwMEU5bWEgbWFucXVhbnQgZGFucyBsYSBSb290IERTRSwgdXRpbGlzYXRpb24gZHUgc2NoXHUwMEU5bWEgcGFyIGRcdTAwRTlmYXV0Lg0KbW9kZWxfX2Vycm9yX2xvYWRpbmdfc2NoZW1hPVVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZHUgY2hhcmdlbWVudCBkdSBzY2hcdTAwRTltYSwgdXRpbGlzYXRpb24gZHUgc2NoXHUwMEU5bWEgcGFyIGRcdTAwRTlmYXV0DQptb2RlbF9fYXR0cmlidXRlX2RvZXNfbm90X2V4aXN0PUwnYXR0cmlidXQgbidleGlzdGUgcGFzIFwhDQptb2RlbF9fYXR0cmlidXRlX2FscmVhZHlfZXhpc3RzPUwnYXR0cmlidXQgZXhpc3RlIGRcdTAwRTlqXHUwMEUwIFwhDQptb2RlbF9fZXJyb3JfbG9nZ2luZ19tb2RpZmljYXRpb249VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkdSBsb2cgZGUgbGEgbW9kaWZpY2F0aW9uDQoNCm1vZGVsX19tb3ZlX2JldHdlZW5fZGlmZmVyZW50X2Nvbm5lY3Rpb25zX25vdF9zdXBwb3J0ZWQ9TGUgZFx1MDBFOXBsYWNlbWVudCBlbnRyZSBkZXMgY29ubmV4aW9ucyBkaWZmXHUwMEU5cmVudGVzIG4nZXN0IHBhcyBzdXBwb3J0XHUwMEU5IFwhDQptb2RlbF9fY29waWVkX25fZW50cmllcz17MH0gZW50clx1MDBFOWVzIGNvcGlcdTAwRTllcw0KbW9kZWxfX2RlbGV0ZWRfbl9lbnRyaWVzPXswfSBlbnRyXHUwMEU5ZXMgc3VwcHJpbVx1MDBFOWVzDQptb2RlbF9fcmV0cmlldmVkX25fZW50cmllcz17MH0gZW50clx1MDBFOWVzIHJcdTAwRTljdXBcdTAwRTlyXHUwMEU5ZXMNCm1vZGVsX19yZXRyaWV2ZWRfMV9lbnRyeT0xIGVudHJcdTAwRTllIHJcdTAwRTljdXBcdTAwRTlyXHUwMEU5ZQ0KDQoNCmxkaWZfX2ltcG9ydGVkX25fZW50cmllc19tX2Vycm9ycz17MH0gZW50clx1MDBFOWVzIGltcG9ydFx1MDBFOWVzLCB7MX0gZXJyZXVycw0KbGRpZl9fbl9lcnJvcnNfc2VlX2xvZ2ZpbGU9ezB9IGVycmV1cnMgc29udCBzdXJ2ZW51ZXMsIGNvbnN1bHRlciBsZSBmaWNoaWVyIGRlIGxvZyBwb3VyIGxlcyBkXHUwMEU5dGFpbHMNCmxkaWZfX2ltcG9ydGVkX2ludG9faG9zdF9wb3J0X29uX2RhdGU9IyBJbXBvcnRhdGlvbiBkYW5zIGxkYXA6Ly97MH06ezF9IGRlIHsyfQ0KbGRpZl9faW1wb3J0X2ludG9faG9zdF9wb3J0X2ZhaWxlZF9vbl9kYXRlPSMgTCcnaW1wb3J0YXRpb24gZGFucyBsZGFwOi8vezB9OnsxfSBhIFx1MDBFOWNob3VcdTAwRTkgXHUwMEUwIHsyfQ0KbGRpZl9fZXJyb3JfbXNnPSMgRVJSRVVSOiB7MH0NCg0KZHNtbF9fbl9lcnJvcnNfc2VlX3Jlc3BvbnNlZmlsZT17MH0gZXJyZXVycyBzb250IHN1cnZlbnVlcywgY29uc3VsdGVyIGxlIGZpY2hpZXIgZGUgclx1MDBFOXBvbnNlIHBvdXIgbGVzIGRcdTAwRTl0YWlscw0KZHNtbF9fa2luZF9yZXF1ZXN0X25vdF9zdXBwb3J0ZWQ9Q2UgdHlwZSBkZSByZXF16nRlIG4nZXN0IHBhcyBlbmNvcmUgc3VwcG9ydOkuDQpkc21sX19zaG91bGRfbm90X2JlX2VuY291bnRlcmluZ19yZXF1ZXN0PU9uIG5lIGRldnJhaXQgcGFzIHJlbmNvbnRyZXIgdW5lIHJlcXXqdGUgZGUgdHlwZSA6IA0KDQptb2RlbF9fdW5zdXBwb3J0ZWRfaGFzaD1NXHUwMEU5dGhvZGUgZGUgaGFoYWdlIG5vbiBzdXBwb3J0XHUwMEU5ZQ0KbW9kZWxfX2ludmFsaWRfaGFzaD1WYWxldXIgZGUgaGFzaGFnZSBpbnZhbGlkZQ0KbW9kZWxfX3VybF9ub19wcm90b2NvbD1QYXMgZGUgcHJvdG9jb2wNCm1vZGVsX191cmxfbm9fYXR0cmlidXRlcz1QYXMgZCdhdHRyaWJ1dHMNCm1vZGVsX191cmxfbm9fZXh0ZW5zaW9ucz1QYXMgZCdleHRlbnNpb25zDQptb2RlbF9fbm9faGFzaD1UZXh0ZSBicnV0DQptb2RlbF9fcXVpY2tfc2VhcmNoX25hbWU9QWZmaWNoZXIgbGEgcmVjaGVyY2hlIHJhcGlkZQ0KDQpqb2JzX19zZWFyY2hfbmFtZT1SZWNoZXJjaGVyDQpqb2JzX19zZWFyY2hfdGFzaz1FeFx1MDBFOWN1dGlvbiBkZSBsYSByZWNoZXJjaGUgezB9DQpqb2JzX19zZWFyY2hfZXJyb3JfMT1VbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGwnZXhcdTAwRTljdXRpb24gZGUgbGEgcmVjaGVyY2hlDQpqb2JzX19zZWFyY2hfZXJyb3Jfbj1VbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGwnZXhcdTAwRTljdXRpb24gZGVzIHJlY2hlcmNoZXMNCg0Kam9ic19fY2hlY2tfYmluZF9uYW1lPVZcdTAwRTlyaWZpZXIgbCdhdXRoZW50aWZpY2F0aW9uDQpqb2JzX19jaGVja19iaW5kX3Rhc2s9Vlx1MDBFOXJpZmljYXRpb24gZGUgbCdhdXRoZW50aWZpY2F0aW9uDQpqb2JzX19jaGVja19iaW5kX2Vycm9yPUwnYXV0aGVudGlmaWNhdGlvbiBhIFx1MDBFOWNob3VcdTAwRTkNCmpvYnNfX2NoZWNrX25ldHdvcmtfbmFtZT1WXHUwMEU5cmlmaWVyIGxlcyBwYXJhbVx1MDBFOHRyZXMgZGUgclx1MDBFOXNlYXUNCmpvYnNfX2NoZWNrX25ldHdvcmtfdGFzaz1WXHUwMEU5cmlmaWNhdGlvbiBkZXMgcGFyYW1cdTAwRTh0cmVzIGRlIHJcdTAwRTlzZWF1DQpqb2JzX19jaGVja19uZXR3b3JrX2Vycm9yPUxhIGNvbm5leGlvbiBhIFx1MDBFOWNob3VcdTAwRTllDQoNCmpvYnNfX2ZldGNoX2Jhc2VkbnNfbmFtZT1SXHUwMEU5Y3VwXHUwMEU5cmVyIGxlcyBETnMgZGUgYmFzZQ0Kam9ic19fZmV0Y2hfYmFzZWRuc190YXNrPVJcdTAwRTljdXBcdTAwRTlyYXRpb24gZGVzIEROcyBkZSBiYXNlDQpqb2JzX19mZXRjaF9iYXNlZG5zX2Vycm9yPVVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbGEgclx1MDBFOWN1cFx1MDBFOXJhdGlvbiBkZXMgRE5zIGRlIGJhc2UNCg0Kam9ic19fY29weV9lbnRyaWVzX25hbWVfMT1Db3BpZXIgbCdlbnRyXHUwMEU5ZQ0Kam9ic19fY29weV9lbnRyaWVzX25hbWVfbj1Db3BpZXIgbGVzIGVudHJcdTAwRTllcw0Kam9ic19fY29weV9lbnRyaWVzX3Rhc2tfMT0iQ29waWUgZGUgezB9IHZlcnMgezF9DQpqb2JzX19jb3B5X2VudHJpZXNfdGFza19uPUNvcGllIGRlIHswfSBlbnRyXHUwMEU5ZXMgdmVycyB7MX0NCmpvYnNfX2NvcHlfZW50cmllc19lcnJvcl8xPVVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbGEgY29waWUgZGUgbCdlbnRyXHUwMEU5ZQ0Kam9ic19fY29weV9lbnRyaWVzX2Vycm9yX249VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSBjb3BpZSBkZXMgZW50clx1MDBFOWVzDQoNCmpvYnNfX2NyZWF0ZV9lbnRyeV9uYW1lXzE9Q3JcdTAwRTllciBsJ2VudHJcdTAwRTllDQpqb2JzX19jcmVhdGVfZW50cnlfbmFtZV9uPUNyXHUwMEU5ZXIgbGVzIGVudHJcdTAwRTllcw0Kam9ic19fY3JlYXRlX2VudHJ5X3Rhc2tfMT1Dclx1MDBFOWF0aW9uIGRlIGwnJ2VudHJcdTAwRTllIHswfQ0Kam9ic19fY3JlYXRlX2VudHJ5X3Rhc2tfbj1Dclx1MDBFOWF0aW9uIGRlIHswfSBlbnRyXHUwMEU5ZXMNCmpvYnNfX2NyZWF0ZV9lbnRyeV9lcnJvcl8xPVVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbGEgY3JcdTAwRTlhdGlvbiBkZSBsJ2VudHJcdTAwRTllDQpqb2JzX19jcmVhdGVfZW50cnlfZXJyb3Jfbj1VbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGxhIGNyXHUwMEU5YXRpb24gZGVzIGVudHJcdTAwRTllcw0KDQpqb2JzX19leGVjdXRlX2xkaWZfbmFtZT1FeFx1MDBFOWN1dGVyIGR1IExESUYNCmpvYnNfX2V4ZWN1dGVfbGRpZl90YXNrPUV4XHUwMEU5Y3V0aW9uIGR1IExESUYNCmpvYnNfX2V4ZWN1dGVfbGRpZl9lcnJvcj1VbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGwnZXhcdTAwRTljdXRpb24gZHUgTERJRg0KDQpqb2JzX19jcmVhdGVfdmFsdWVzX25hbWVfMT1Dclx1MDBFOWVyIGxhIHZhbGV1cg0Kam9ic19fY3JlYXRlX3ZhbHVlc19uYW1lX249Q3JcdTAwRTllciBsZXMgdmFsZXVycw0Kam9ic19fY3JlYXRlX3ZhbHVlc190YXNrXzE9Q3JcdTAwRTlhdGlvbiBkZSBsYSB2YWxldXINCmpvYnNfX2NyZWF0ZV92YWx1ZXNfdGFza19uPUNyXHUwMEU5YXRpb24gZGVzIHZhbGV1cnMNCmpvYnNfX2NyZWF0ZV92YWx1ZXNfZXJyb3JfMT1VbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGxhIGNyXHUwMEU5YXRpb24gZGUgbGEgdmFsZXVyDQpqb2JzX19jcmVhdGVfdmFsdWVzX2Vycm9yX249VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSBjclx1MDBFOWF0aW9uIGRlcyB2YWxldXJzDQoNCmpvYnNfX2RlbGV0ZV9hdHRyaWJ1dGVzX25hbWVfMT1TdXBwcmltZXIgbCdhdHRyaWJ1dA0Kam9ic19fZGVsZXRlX2F0dHJpYnV0ZXNfbmFtZV9uPVN1cHByaW1lciBsZXMgYXR0cmlidXRzDQpqb2JzX19kZWxldGVfYXR0cmlidXRlc190YXNrXzE9U3VwcHJlc3Npb24gZGUgbCdhdHRyaWJ1dA0Kam9ic19fZGVsZXRlX2F0dHJpYnV0ZXNfdGFza19uPVN1cHByZXNzaW9uIGRlcyBhdHRyaWJ1dHMNCmpvYnNfX2RlbGV0ZV9hdHRyaWJ1dGVzX2Vycm9yXzE9VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSBzdXBwcmVzaW9uIGRlIGwnYXR0cmlidXQNCmpvYnNfX2RlbGV0ZV9hdHRyaWJ1dGVzX2Vycm9yX249VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSBzdXBwcmVzaW9uIGRlcyBhdHRyaWJ1dHMNCg0Kam9ic19fZGVsZXRlX2VudHJpZXNfbmFtZV8xPVN1cHByaW1lciBsJ2VudHJcdTAwRTllDQpqb2JzX19kZWxldGVfZW50cmllc19uYW1lX249U3VwcHJpbWVyIGxlcyBlbnRyXHUwMEU5ZXMNCmpvYnNfX2RlbGV0ZV9lbnRyaWVzX3Rhc2tfMT1TdXBwcmVzaW9uIGRlIGwnJ2VudHJcdTAwRTllIHswfQ0Kam9ic19fZGVsZXRlX2VudHJpZXNfdGFza19uPVN1cHByZXNzaW9uIGRlIHswfSBlbnRyXHUwMEU5ZXMNCmpvYnNfX2RlbGV0ZV9lbnRyaWVzX2Vycm9yXzE9VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSBzdXBwcmVzaW9uIGRlIGwnZW50clx1MDBFOWUNCmpvYnNfX2RlbGV0ZV9lbnRyaWVzX2Vycm9yX249VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSBzdXBwcmVzaW9uIGRlcyBlbnRyXHUwMEU5ZXMNCg0Kam9ic19fcmVsb2FkX3NjaGVtYXNfbmFtZV8xPVJlY2hhcmdlciBsZSBTY2hcdTAwRTltYQ0Kam9ic19fcmVsb2FkX3NjaGVtYXNfbmFtZV9uPVJlY2hhcmdlciBsZXMgU2Noc21hcw0Kam9ic19fcmVsb2FkX3NjaGVtYXNfdGFzaz1SZWNoYXJnZW1lbnQgZHUgc2NoXHUwMEU5bWEgZGUgezB9DQpqb2JzX19yZWxvYWRfc2NoZW1hc19lcnJvcl8xPVVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZHUgcmVjaGFyZ2VtZW50IGR1IHNjaFx1MDBFOW1hDQpqb2JzX19yZWxvYWRfc2NoZW1hc19lcnJvcl9uPVVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZHUgcmVjaGFyZ2VtZW50IGRlcyBzY2hcdTAwRTltYXMNCg0Kam9ic19fb3Blbl9jb25uZWN0aW9uc19uYW1lXzE9T3V2cmlyIGxhIGNvbm5leGlvbg0Kam9ic19fb3Blbl9jb25uZWN0aW9uc19uYW1lX249T3V2cmlyIGxlcyBjb25uZXhpb25zDQpqb2JzX19vcGVuX2Nvbm5lY3Rpb25zX3Rhc2s9T3V2ZXJ0dXJlIGRlIGxhIGNvbm5leGlvbiB7MH0NCmpvYnNfX29wZW5fY29ubmVjdGlvbnNfZXJyb3JfMT1VbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGwnb3V2ZXJ0dXJlIGRlIGxhIGNvbm5leGlvbg0Kam9ic19fb3Blbl9jb25uZWN0aW9uc19lcnJvcl9uPVVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbCdvdXZlcnR1cmUgZGVzIGNvbm5leGlvbnMNCg0Kam9ic19fZXhwb3J0X2xkaWZfbmFtZT1FeHBvcnQgTERJRg0Kam9ic19fZXhwb3J0X2xkaWZfdGFzaz1FeHBvcnRhdGlvbiBMRElGDQpqb2JzX19leHBvcnRfbGRpZl9lcnJvcj1VbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGwnZXhwb3J0IExESUYNCmpvYnNfX2V4cG9ydF9jdnNfZXJyb3I9VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsJ2V4cG9ydCBDU1YNCmpvYnNfX2V4cG9ydF9jc3ZfbmFtZT1FeHBvcnQgQ1NWDQpqb2JzX19leHBvcnRfY3N2X3Rhc2s9RXhwb3J0YXRpb24gQ1NWDQpqb2JzX19leHBvcnRfcHJvZ3Jlc3M9ezB9IGVudHJcdTAwRTllcyBleHBvcnRcdTAwRTllcw0Kam9ic19fZXhwb3J0X3hsc19uYW1lPUV4cG9ydCBYTFMNCmpvYnNfX2V4cG9ydF94bHNfdGFzaz1FeHBvcnRhdGlvbiBYTFMNCmpvYnNfX2V4cG9ydF94bHNfZXJyb3I9VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsJ2V4cG9ydCBYTFMNCmpvYnNfX2V4cG9ydF9vZGZfbmFtZT1FeHBvcnQgT0RGDQpqb2JzX19leHBvcnRfb2RmX3Rhc2s9RXhwb3J0YXRpb24gT0RGDQpqb2JzX19leHBvcnRfb2RmX2Vycm9yPVVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbCdleHBvcnQgT0RGDQpqb2JzX19leHBvcnRfZHNtbF9uYW1lPUV4cG9ydCBEU01MDQpqb2JzX19leHBvcnRfZHNtbF90YXNrPUV4cG9ydGF0aW9uIERTTUwNCmpvYnNfX2V4cG9ydF9kc21sX2Vycm9yPVVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbCdleHBvcnQgRFNNTA0KDQpqb2JzX19yZWFkX2VudHJ5X25hbWU9TGlyZSBsJ2VudHJcdTAwRTllDQpqb2JzX19yZWFkX2VudHJ5X3Rhc2s9TGVjdHVyZSBkZSBsJydlbnRyXHUwMEU5ZSB7MH0NCmpvYnNfX3JlYWRfZW50cnlfZXJyb3I9VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSBsZWN0dXJlIGRlIGwnZW50clx1MDBFOWUNCg0Kam9ic19fbW92ZV9lbnRyeV9uYW1lXzE9RFx1MDBFOXBsYWNlciBsJ2VudHJcdTAwRTllDQpqb2JzX19tb3ZlX2VudHJ5X25hbWVfbj1EXHUwMEU5cGxhY2VyIGxlcyBlbnRyXHUwMEU5ZXMNCmpvYnNfX21vdmVfZW50cnlfdGFza18xPURcdTAwRTlwbGFjZW1lbnQgZGUgbCdlbnRyXHUwMEU5ZQ0Kam9ic19fbW92ZV9lbnRyeV90YXNrX249RFx1MDBFOXBsYWNlbWVudCBkZXMgZW50clx1MDBFOWVzDQpqb2JzX19tb3ZlX2VudHJ5X2Vycm9yXzE9VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkdSBkXHUwMEU5cGxhY2VtZW50IGRlIGwnZW50clx1MDBFOWUNCmpvYnNfX21vdmVfZW50cnlfZXJyb3Jfbj1VbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGR1IGRcdTAwRTlwbGFjZW1lbnQgZGVzIGVudHJcdTAwRTllcw0KDQpqb2JzX19yZW5hbWVfZW50cnlfbmFtZT1SZW5vbW1lciBsJ2VudHJcdTAwRTllDQpqb2JzX19yZW5hbWVfZW50cnlfdGFzaz1SZW5vbW1hZ2UgZGUgbCcnZW50clx1MDBFOWUgezB9DQpqb2JzX19yZW5hbWVfZW50cnlfZXJyb3I9VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkdSByZW5vbW1hZ2UgZGUgbCdlbnRyXHUwMEU5ZQ0KDQpqb2JzX19yZW5hbWVfdmFsdWVfbmFtZV8xPVJlbm9tbWVyIGxhIHZhbGV1cg0Kam9ic19fcmVuYW1lX3ZhbHVlX25hbWVfbj1SZW5vbW1lciBsZXMgdmFsZXVycw0Kam9ic19fcmVuYW1lX3ZhbHVlX3Rhc2tfMT1SZW5vbW1hZ2UgZGUgbGEgdmFsZXVyDQpqb2JzX19yZW5hbWVfdmFsdWVfdGFza19uPVJlbm9tbWFnZSBkZXMgdmFsZXVycw0Kam9ic19fcmVuYW1lX3ZhbHVlX2Vycm9yXzE9VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkdSByZW5vbW1hZ2UgZGUgbGEgdmFsZXVyDQpqb2JzX19yZW5hbWVfdmFsdWVfZXJyb3Jfbj1VbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGR1IHJlbm9tbWFnZSBkZXMgdmFsZXVycw0KDQpqb2JzX19pbXBvcnRfbGRpZl9uYW1lPUltcG9ydCBMRElGDQpqb2JzX19pbXBvcnRfbGRpZl90YXNrPUltcG9ydGF0aW9uIExESUYNCmpvYnNfX2ltcG9ydF9sZGlmX2Vycm9yPVVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbCdpbXBvcnQgTERJRg0KDQpqb2JzX19pbXBvcnRfZHNtbF9uYW1lPUltcG9ydCBEU01MDQpqb2JzX19pbXBvcnRfZHNtbF90YXNrPUltcG9ydGF0aW9uIERTTUwNCmpvYnNfX2ltcG9ydF9kc21sX2Vycm9yPVVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbCdpbXBvcnQgRFNNTA0KDQpqb2JzX19pbml0X2VudHJpZXNfdGl0bGVfYXR0YW5kc3ViPUxpcmUgbGVzIGF0dHJpYnV0cyBldCBmaWxzDQpqb2JzX19pbml0X2VudHJpZXNfdGl0bGVfc3Vib25seT1MaXJlIGxlcyBmaWxzDQpqb2JzX19pbml0X2VudHJpZXNfdGl0bGVfYXR0b25seT1MaXJlIGxlcyBhdHRyaWJ1dHMNCmpvYnNfX2luaXRfZW50cmllc190aXRsZT1MaXJlIGxlcyBlbnRyXHUwMEU5ZXMNCmpvYnNfX2luaXRfZW50cmllc190YXNrPUxlY3R1cmUgZGVzIGVudHJcdTAwRTllcyB7MH0NCmpvYnNfX2luaXRfZW50cmllc19wcm9ncmVzc19hdHQ9TGVjdHVyZSBkZXMgYXR0cmlidXRzIGRlIHswfQ0Kam9ic19faW5pdF9lbnRyaWVzX3Byb2dyZXNzX3N1Yj1MZWN0dXJlIGRlcyBmaWxzIGRlIHswfQ0Kam9ic19faW5pdF9lbnRyaWVzX3Byb2dyZXNzX3N1YmNvdW50PXswfSBmaWxzIHJcdTAwRTljdXBcdTAwRTlyXHUwMEU5cyBkZSB7MX0sIHRyaSBlbiBjb3Vycy4uLg0Kam9ic19faW5pdF9lbnRyaWVzX2Vycm9yXzE9VW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSBsZWN0dXJlIGRlIGwnZW50clx1MDBFOWUNCmpvYnNfX2luaXRfZW50cmllc19lcnJvcl9uPVVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbGEgbGVjdHVyZSBkZXMgZW50clx1MDBFOWVzDQoNCmpvYnNfX21vZGlmeV92YWx1ZV9lcnJvcj1VbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGxhIG1vZGlmaWNhdGlvbiBkZSBsYSB2YWxldXINCmpvYnNfX21vZGlmeV92YWx1ZV9uYW1lPU1vZGlmaWVyIGxhIHZhbGV1cg0Kam9ic19fbW9kaWZ5X3ZhbHVlX3Rhc2s9TW9kaWZpY2F0aW9uIGRlIGxhIHZhbGV1cg0Kam9ic19fY29weV9lbnRyaWVzX3NvdXJjZV9hbmRfdGFyZ2V0X2FyZV9lcXVhbD1MZXMgZW50clx1MDBFOWVzIHNvdXJjZSBldCBkZSBkZXN0aW5hdGlvbiBzb250IGlkZW50aXF1ZXMgXCENCg0KQnJvd3NlckNvbm5lY3Rpb25JT19UaGVGaWxlRG9lc05vdFNlZW1Ub0JlVmFsaWQ9TGUgZmljaGllciBuZSBzZW1ibGUgcGFzIOp0cmUgdW4gZmljaGllciBCcm93c2VyQ29ubmVjdGlvbnMgdmFsaWRlLg0KQnJvd3NlckNvbm5lY3Rpb25JT19VbmFibGVUb1BhcnNlQWxpYXNlc0RlcmVmZXJlbmNpbmdNZXRob2Q9SW1wb3NzaWJsZSBkZSBwYXJzZXIgJydBbGlhc2VzIERlcmVmZXJlbmNpbmcgTWV0aG9kJycgZGUgbGEgcmVjaGVyY2hlICcnezB9JycgZW4gdGFudCBxdSdlbnRpZXIuIFZhbGV1ciBkZSBBbGlhc2VzIERlcmVmZXJlbmNpbmcgTWV0aG9kOiB7MX0NCkJyb3dzZXJDb25uZWN0aW9uSU9fVW5hYmxlVG9QYXJzZUNvbnRyb2w9SW1wb3NzaWJsZSBkZSBwYXJzZXIgJydDb250cm9sJycgZGUgbGEgcmVjaGVyY2hlICcnezB9JycuIFZhbHVlIGRlIENvbnRyb2wgdmFsdWU6IHsxfQ0KQnJvd3NlckNvbm5lY3Rpb25JT19VbmFibGVUb1BhcnNlQ291bnRMaW1pdD1JbXBvc3NpYmxlIGRlIHBhcnNlciAnJ0NvdW50IGxpbWl0JycgZGUgbGEgcmVjaGVyY2hlICcnezB9JycgZW4gdGFudCBxdSdlbnRpZXIuIFZhbGV1ciBkZSBDb3VudCBsaW1pdDogezF9DQpCcm93c2VyQ29ubmVjdGlvbklPX1VuYWJsZVRvUGFyc2VEbj1JbXBvc3NpYmxlIGRlIHBhcnNlciAnJ0RuJycgZHUgc2lnbmV0ICcnezB9Jyc6IHsxfQ0KQnJvd3NlckNvbm5lY3Rpb25JT19VbmFibGVUb1BhcnNlUmVmZXJyYWxzSGFuZGxpbmdNZXRob2Q9SW1wb3NzaWJsZSBkZSBwYXJzZXIgJydSZWZlcnJhbHMgSGFuZGxpbmcgTWV0aG9kJycgZGUgbGEgcmVjaGVyY2hlICcnezB9JycgZW4gdGFudCBxdSdlbnRpZXIuIFZhbGV1ciBkZSBSZWZlcnJhbHMgSGFuZGxpbmcgTWV0aG9kOiB7MX0NCkJyb3dzZXJDb25uZWN0aW9uSU9fVW5hYmxlVG9QYXJzZVNjb3BlPUltcG9zc2libGUgZGUgcGFyc2VyICcnU2NvcGUnJyBkZSBsYSByZWNoZXJjaGUgJyd7MH0nJyBlbiB0YW50IHF1J2VudGllci4gVmFsZXVyIGRlIFNjb3BlOiB7MX0NCkJyb3dzZXJDb25uZWN0aW9uSU9fVW5hYmxlVG9QYXJzZVNlYXJjaEJhc2U9SW1wb3NzaWJsZSBkZSBwYXJzZXIgJydTZWFyY2ggQmFzZScnIGRlIGxhIHJlY2hlcmNoZSAnJ3swfScnOiB7MX0NCkJyb3dzZXJDb25uZWN0aW9uSU9fVW5hYmxlVG9QYXJzZVRpbWVMaW1pdD1JbXBvc3NpYmxlIGRlIHBhcnNlciAnJ1RpbWUgbGltaXQnJyBkZSBsYSByZWNoZXJjaGUgJyd7MH0nJyBlbiB0YW50IHF1J2VudGllci4gVmFsZXVyIGRlIFRpbWUgbGltaXQ6IHsxfQ0K