CiMKIyBDb3lvdGVDb25uZWN0b3IKIwoKY295b3RlQ29ubmVjdG9yLmFscmVhZHlJbml0aWFsaXplZD1MZSBjb25uZWN0ZXVyIGEgZOlq4CDpdOkgaW5pdGlhbGlz6Qpjb3lvdGVDb25uZWN0b3IuYWxyZWFkeVN0YXJ0ZWQ9TGUgY29ubmVjdGV1ciBhIGTpauAg6XTpIGTpbWFycukKY295b3RlQ29ubmVjdG9yLmNhbm5vdFJlZ2lzdGVyUHJvdG9jb2w9SW1wb3NzaWJsZSBkJydlbnJlZ2lzdHJlciBsZSBNQmVhbiBwb3VyIGxlIFByb3RvY29sCmNveW90ZUNvbm5lY3Rvci5ub3RTdGFydGVkPUxlIGNvbm5lY3RldXIgQ295b3RlIG4nJ2EgcGFzIOl06SBk6W1hcnLpCmNveW90ZUNvbm5lY3Rvci5wcm90b2NvbEhhbmRsZXJEZXN0cm95RmFpbGVkPUxhIGRlc3RydWN0aW9uIGR1IGdlc3Rpb25uYWlyZSBkZSBwcm90b2NvbGUgYSDpY2hvdellOiB7MH0KY295b3RlQ29ubmVjdG9yLnByb3RvY29sSGFuZGxlckluaXRpYWxpemF0aW9uRmFpbGVkPUwnJ2luaXRpYWxpc2F0aW9uIGR1IGdlc3Rpb25uYWlyZSBkZSBwcm90b2NvbGUgYSDpY2hvdek6IHswfQpjb3lvdGVDb25uZWN0b3IucHJvdG9jb2xIYW5kbGVySW5zdGFudGlhdGlvbkZhaWxlZD1MJydpbnN0YW50aWF0aW9uIGR1IGdlc3Rpb25uYWlyZSBkZSBwcm90b2NvbGUgYSDpY2hvdek6IHswfQpjb3lvdGVDb25uZWN0b3IucHJvdG9jb2xIYW5kbGVyU3RhcnRGYWlsZWQ9TGUgZOltYXJyYWdlIGR1IGdlc3Rpb25uYWlyZSBkZSBwcm90b2NvbGUgYSDpY2hvdek6IHswfQpjb3lvdGVDb25uZWN0b3IucHJvdG9jb2xSZWdpc3RyYXRpb25GYWlsZWQ9TCcnZW5yZWdpc3RyZW1lbnQgZHUgcHJvdG9jb2wgSk1YIGEg6WNob3XpCmNveW90ZUNvbm5lY3Rvci5wcm90b2NvbEhhbmRsZXJQYXVzZUZhaWxlZD1MYSBzdXNwZW5zaW9uIGR1IGdlc3Rpb25uYWlyZSBkZSBwcm90b2NvbGUgYSDpY2hvdellCmNveW90ZUNvbm5lY3Rvci5wcm90b2NvbEhhbmRsZXJSZXN1bWVGYWlsZWQ9TGUgcmVk6W1hcnJhZ2UgZHUgZ2VzdGlvbm5haXJlIGRlIHByb3RvY29sZSBhIOljaG916QoKIwojIENveW90ZUFkYXB0ZXIKIwoKY295b3RlQWRhcHRlci5zZXJ2aWNlPVVuZSBleGNlcHRpb24gb3UgdW5lIGVycmV1ciBzJydlc3QgcHJvZHVpdGUgZGFucyBsZSBjb250ZW5ldXIgZHVyYW50IGxlIHRyYWl0ZW1lbnQgZGUgbGEgcmVxdep0ZQoKIwojIENveW90ZVJlc3BvbnNlCiMKCmNveW90ZVJlc3BvbnNlLmdldE91dHB1dFN0cmVhbS5pc2U9ImdldFdyaXRlcigpIiBhIGTpauAg6XTpIGFwcGVs6SBwb3VyIGNldHRlIHLpcG9uc2UKY295b3RlUmVzcG9uc2UuZ2V0V3JpdGVyLmlzZT0iZ2V0T3V0cHV0U3RyZWFtKCkiIGEgZOlq4CDpdOkgYXBwZWzpIHBvdXIgY2V0dGUgculwb25zZQpjb3lvdGVSZXNwb25zZS5yZXNldEJ1ZmZlci5pc2U9SW1wb3NzaWJsZSBkZSByZW1ldHRyZSDgIHrpcm8gbGUgdGFtcG9uIGFwcuhzIHF1ZSBsYSBy6XBvbnNlIGFpdCDpdOkgZW52b3npZQpjb3lvdGVSZXNwb25zZS5zZW5kRXJyb3IuaXNlPUltcG9zc2libGUgZCcnYXBwZWxlciAic2VuZEVycm9yKCkiIGFwcuhzIHF1ZSBsYSBy6XBvbnNlIGFpdCDpdOkgZW52b3npZQpjb3lvdGVSZXNwb25zZS5zZW5kUmVkaXJlY3QuaXNlPUltcG9zc2libGUgZCcnYXBwZWxlciAic2VuZFJlZGlyZWN0KCkiIGFwcuhzIHF1ZSBsYSBy6XBvbnNlIGFpdCDpdOkgZW52b3npZQpjb3lvdGVSZXNwb25zZS5zZXRCdWZmZXJTaXplLmlzZT1JbXBvc3NpYmxlIGRlIGNoYW5nZXIgbGEgdGFpbGxlIGR1IHRhbXBvbiBhcHLocyBxdWUgbGVzIGRvbm7pZXMgYWllbnQg6XTpIOljcml0ZXMKCiMKIyBDb3lvdGVSZXF1ZXN0CiMKCmNveW90ZVJlcXVlc3QuZ2V0SW5wdXRTdHJlYW0uaXNlPSJnZXRSZWFkZXIoKSIgYSBk6WrgIOl06SBhcHBlbOkgcG91ciBjZXR0ZSByZXF16nRlCmNveW90ZVJlcXVlc3QuZ2V0UmVhZGVyLmlzZT0iZ2V0SW5wdXRTdHJlYW0oKSIgYSBk6WrgIOl06SBhcHBlbOkgcG91ciBjZXR0ZSByZXF16nRlCmNveW90ZVJlcXVlc3Quc2Vzc2lvbkNyZWF0ZUNvbW1pdHRlZD1JbXBvc3NpYmxlIGRlIGNy6WVyIHVuZSBzZXNzaW9uYXBy6HMgcXVlIGxhIHLpcG9uc2UgYWl0IOl06SBlbnZveellCmNveW90ZVJlcXVlc3Quc2V0QXR0cmlidXRlLm5hbWVudWxsPUltcG9zc2libGUgZCcnYXBwZWxlciAic2V0QXR0cmlidXRlIiBhdmVjIHVuIG5vbSBudWwKY295b3RlUmVxdWVzdC5saXN0ZW5lclN0YXJ0PVVuZSBleGNlcHRpb24gcycnZXN0IHByb2R1aXRlIGxvcnMgZGUgbCcnZW52b2kgZGUgbCcn6XbobmVtZW50IGNvbnRleHRlIGluaXRpYWxpc+kg4CBsJydpbnN0YW5jZSBkZSBjbGFzc2UgZCcn6WNvdXRlIHswfQpjb3lvdGVSZXF1ZXN0Lmxpc3RlbmVyU3RvcD1VbmUgZXhjZXB0aW9uIHMnJ2VzdCBwcm9kdWl0ZSBsb3JzIGRlIGwnJ2Vudm9pIGRlIGwnJ+l26G5lbWVudCBjb250ZXh0ZSBk6XRydWl0IOAgbCcnaW5zdGFuY2UgZGUgY2xhc3NlIGQnJ+ljb3V0ZSB7MH0KY295b3RlUmVxdWVzdC5hdHRyaWJ1dGVFdmVudD1VbmUgZXhjZXB0aW9uIGEg6XTpIGxhbmPpZSBwYXIgbCcnaW5zdGFuY2UgZCcn6WNvdXRlIHBvdXIgbCcn6XbobmVtZW50IGF0dHJpYnV0cyAoYXR0cmlidXRlcykKY295b3RlUmVxdWVzdC5wb3N0VG9vTGFyZ2U9TGVzIHBhcmFt6HRyZXMgbicnb250IHBhcyDpdOkg6XZhbHXpIGNhciBsYSB0YWlsbGUgZGVzIGRvbm7pZXMgcG9zdOllcyBlc3QgdHJvcCBpbXBvcnRhbnQuIFV0aWxpc2V6IGwnJ2F0dHJpYnV0IG1heFBvc3RTaXplIGR1IGNvbm5lY3RldXIgcG91ciBjb3JyaWdlciBjZSBwcm9ibOhtZSBzaSB2b3RyZSBhcHBsaWNhdGlvbiBkb2l0IGFjY2VwdGVyIGRlcyBQT1NUcyBpbXBvcnRhbnRzLgoKCiMKIyBNYXBwZXJMaXN0ZW5lcgojCgptYXBwZXJMaXN0ZW5lci5yZWdpc3RlckNvbnRleHQ9RW5yZWdpc3RyZW1lbnQgZHUgY29udGV4dGUgezB9Cm1hcHBlckxpc3RlbmVyLnVucmVnaXN0ZXJDb250ZXh0PUTpc2VucmVnaXN0cmVtZW50IGR1IGNvbnRleHRlIHswfQptYXBwZXJMaXN0ZW5lci5yZWdpc3RlcldyYXBwZXI9RW5yZWdpc3RyZW1lbnQgZGUgbCcnZW5yb2JldXIgKHdyYXBwZXIpIHswfSBkYW5zIGxlIGNvbnRleHRlIHsxfQoKCgo=