MjAwMC0xMi0yOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogRml4IHNpZ24gb2Ygd2NoYXJfdHlwZV9ub2RlLgoKMjAwMC0xMi0yOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKHB1c2hjbGFzcyk6IFJlbW92ZSAjaWYgMCdkIGNvZGUuCgkqIGNwLXRyZWUuaCAob3ZlcmxvYWRfdGVtcGxhdGVfbmFtZSk6IFJlbW92ZS4KCSogZGVjbC5jIChzdG9yZV9iaW5kaW5ncyk6IFNpbXBsaWZ5LgoJKHBvcF9mcm9tX3RvcF9sZXZlbCk6IExpa2V3aXNlLgoJKiBwdC5jIChvdmVybG9hZF90ZW1wbGF0ZV9uYW1lKTogUmVtb3ZlLgoJKGluc3RhbnRpYXRlX2RlY2wpOiBEb24ndCBjYWxsIHB1c2hfdG9fdG9wX2xldmVsIGlmIGl0J3Mgbm90CgluZWVkZWQuCgoyMDAwLTEyLTI4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAocmVnaXN0ZXJfbG9jYWxfc3BlY2lhbGl6YXRpb24pOiBEb24ndCByZXR1cm4gYSB2YWx1ZS4KCShsb29rdXBfdGVtcGxhdGVfY2xhc3MpOiBVc2UgbW92ZS10by1mcm9udCBoZXVyaXN0aWMgd2hlbiBsb29raW5nCgl1cCB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9ucy4KCShpbnN0YW50aWF0ZV9kZWNsKTogT25seSBwdXNoX3RvX3RvcF9sZXZlbCB3aGVuIHdlJ3JlIGFjdHVhbGx5Cglnb2luZyB0byBpbnN0YW50aWF0ZSB0aGUgdGVtcGxhdGUuCgoyMDAwLTEyLTI5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBzZWFyY2guYyAoYmluZm9fZm9yX3Z0YWJsZSk6IFJldHVybiBsZWFzdCBkZXJpdmVkIGNsYXNzLCBub3QKCW1vc3QuICBIYW5kbGUgc2Vjb25kYXJ5IHZ0YWJsZXMuCgoyMDAwLTEyLTIyICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHB0LmMgKG1vcmVfc3BlY2lhbGl6ZWQpOiBEb24ndCBvcHRpbWl6ZSBsZW49PTAuCgkoZm5fdHlwZV91bmlmaWNhdGlvbik6IElmIHdlJ3JlIGFkZGluZyB0aGUgcmV0dXJuIHR5cGUsIGluY3JlYXNlIGxlbi4KCgkqIHR5cGVjay5jIChidWlsZF9iaW5hcnlfb3ApOiBGaXggcG1mIGNvbXBhcmlzb24gbG9naWMuCgoJKiBjYWxsLmMgKGpvdXN0KTogVXNlIERFQ0xfTk9OU1RBVElDX01FTUJFUl9GVU5DVElPTl9QLCBub3QKCURFQ0xfU1RBVElDX0ZVTkNUSU9OX1AuCgoJKiBzZW1hbnRpY3MuYyAoZ2VucnRsX2ZpbmlzaF9mdW5jdGlvbik6IERvbid0IHRyeSB0byBqdW1wIHRvCglyZXR1cm5fbGFiZWwgdW5sZXNzIGl0IGV4aXN0cy4KCglJbiBwYXJ0aWFsIG9yZGVyaW5nIGZvciBhIGNhbGwsIGlnbm9yZSBwYXJtcyBmb3Igd2hpY2ggd2UgZG9uJ3QgaGF2ZQoJYSByZWFsIGFyZ3VtZW50LgoJKiBjYWxsLmMgKGpvdXN0KTogUGFzcyBsZW4gdG8gbW9yZV9zcGVjaWFsaXplZC4KCShhZGRfdGVtcGxhdGVfY2FuZGlkYXRlX3JlYWwpOiBTdHJpcCAndGhpcycsIHBhc3MgbGVuLgoJKiBwdC5jIChtb3JlX3NwZWNpYWxpemVkKTogUGFzcyBsZW4gZG93bi4gIExvc2UgZXhwbGljaXRfYXJncyBwYXJtLgoJKGdldF9iaW5kaW5nc19vcmRlcik6IE5ldyBmbi4gIFBhc3MgbGVuIGRvd24uCgkoZ2V0X2JpbmRpbmdzX3JlYWwpOiBTdHJpcCAndGhpcycsIHBhc3MgbGVuLgoJKGZuX3R5cGVfdW5pZmljYXRpb24pOiBMaWtld2lzZS4KCSh0eXBlX3VuaWZpY2F0aW9uX3JlYWwpOiBTdWNjZWVkIGFmdGVyIGNoZWNraW5nICdsZW4nIGFyZ3MuCgkobW9zdF9zcGVjaWFsaXplZF9pbnN0YW50aWF0aW9uKTogTG9zZSBleHBsaWNpdF9hcmdzIHBhcm0uCgkqIGNsYXNzLmMgKHJlc29sdmVfYWRkcmVzc19vZl9vdmVybG9hZGVkX2Z1bmN0aW9uKTogU3RyaXAgJ3RoaXMnLAoJcGFzcyBsZW4uCgoyMDAwLTEyLTIxICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHB0LmMgKHRzdWJzdF9kZWNsKTogQSBGVU5DVElPTl9ERUNMIGhhcyBERUNMX1JFU1VMVCwgbm90CglERUNMX1RFTVBMQVRFX1JFU1VMVC4KCgkqIHNlYXJjaC5jIChsb29rdXBfZmllbGRfcik6IENhbGwgbG9va3VwX2ZuZmllbGRzXzEsIG5vdAoJbG9va3VwX2ZuZmllbGRzX2hlcmUuCgoJKiBwYXJzZS55ICh0eXBlbmFtZV9zdWIyKTogUmV0dXJuIHRoZSBUWVBFX0RFQ0wsIG5vdCB0aGUgdHlwZS4KCgkqIGNhbGwuYyAoYnVpbGRfb2JqZWN0X2NhbGwpOiBBbHNvIGFsbG93IGNvbnZlcnNpb25zIHRoYXQgcmV0dXJuCglyZWZlcmVuY2UgdG8gcG9pbnRlciB0byBmdW5jdGlvbi4KCShhZGRfY29udl9jYW5kaWRhdGUpOiBIYW5kbGUgdG90eXBlIGJlaW5nIHJlZiB0byBwdHIgdG8gZm4uCgkoYnVpbGRfZmllbGRfY2FsbCk6IEFsc28gYWxsb3cgbWVtYmVycyBvZiB0eXBlIHJlZmVyZW5jZSB0byBmdW5jdGlvbi4KCUxvc2Ugc3VwcG9ydCBmb3IgY2FsbGluZyBwb2ludGVyIHRvIE1FVEhPRF9UWVBFIGZpZWxkcy4KCgkqIGVycm9yLmMgKGR1bXBfZXhwcik6IEhhbmRsZSAqX0NBU1RfRVhQUi4KCgkqIHR5cGVjazIuYyAoYnVpbGRfc2NvcGVkX3JlZik6IEFsd2F5cyBjb252ZXJ0IHRvIHRoZSBuYW1pbmcgY2xhc3MuCgoJKiB0cmVlLmMgKGJyZWFrX291dF9jbGVhbnVwcyk6IExvc2UuCgkqIGNwLXRyZWUuaDogUmVtb3ZlIHByb3RvdHlwZS4KCSogdHlwZWNrLmMgKGJ1aWxkX2NvbXBvbmVudF9yZWYpOiBEb24ndCBicmVha19vdXRfY2xlYW51cHMuCgkoYnVpbGRfY29tcG91bmRfZXhwcik6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2V4cHJfc3RtdCk6IExpa2V3aXNlLgoKMjAwMC0xMi0yMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNwLXRyZWUuaDogVXBkYXRlIGRlY2xhcmF0aW9ucy4KCSogZGVjbC5jIChmaW5pc2hfY2FzZV9sYWJlbCk6IFJldHVybiB0aGUgbmV3IHN0bXQgbm9kZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9nb3RvX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfZXhwcl9zdG10LCBmaW5pc2hfcmV0dXJuX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfYnJlYWtfc3RtdCwgZmluaXNoX2NvbnRpbnVlX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfYXNtX3N0bXQpOiBMaWtld2lzZS4KCSogcGFyc2UueSAoYWxyZWFkeV9zY29wZWRfc3RtdCk6IFNldCBTVE1UX0xJTkVOTy4KCShjb21wc3RtdCwgaW1wbGljaXRseV9zY29wZWRfc3RtdCwgc3RtdCk6IExpa2V3aXNlLgoJKHNpbXBsZV9pZiwgc2ltcGxlX3N0bXQpOiBSZXR1cm4gdGhlIG5ldyBzdG10IG5vZGUuCgkoc2F2ZV9saW5lbm8pOiBOZXcuCgoyMDAwLTEyLTE4ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBjcC10cmVlLmg6IERvbid0IGRlY2xhcmUgd2Fybl9sb25nX2xvbmcuCgoyMDAwLTEyLTE1ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHRyZWUuYyAobm9fbGlua2FnZV9oZWxwZXIpOiBVc2UgQ0xBU1NfVFlQRV9QIGluc3RlYWQgb2YKCUlTX0FHR1JfVFlQRS4KCjIwMDAtMTItMTUgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcHQuYyAodW5pZnkpOiBIYW5kbGUgd2hlbiBib3RoIEFSRyBhbmQgUEFSTSBhcmUKCUJPVU5EX1RFTVBMQVRFX1RFTVBMQVRFX1BBUk0uCgoyMDAwLTEyLTE1ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHB0LmMgKHJlZHVjZV90ZW1wbGF0ZV9wYXJtX2xldmVsKTogU2V0IERFQ0xfQVJUSUZJQ0lBTCBhbmQKCURFQ0xfVEVNUExBVEVfUEFSTV9QLgoKMjAwMC0xMi0xNSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBpbml0LmMgKGJ1aWxkX25ld18xKTogUmVvcmdhbml6ZS4gIE5vdyB3aXRoIDEwMCUgZmV3ZXIgU0FWRV9FWFBScyEKCgkqIGluaXQuYyAoYnVpbGRfbmV3XzEpOiBEb24ndCBzdHJpcCBxdWFscyBmcm9tIHR5cGUuCgoJKiBkZWNsLmMgKHB1c2hkZWNsKTogRG9uJ3QgY2hlY2sgZm9yIGxpbmthZ2Ugb24gYSBub24tZGVjbC4KCgkqIGNhbGwuYyAoYnVpbGRfb3BfZGVsZXRlX2NhbGwpOiBTZWUgdGhyb3VnaCBBUlJBWV9UWVBFcy4KCgkqIGNhbGwuYyAoYnVpbGRfbmV3X2Z1bmN0aW9uX2NhbGwpOiBMb3NlIHNwYWNlIGJlZm9yZSBwYXJlbiBpbgoJZXJyb3IgbWVzc2FnZS4KCShidWlsZF9uZXdfbWV0aG9kX2NhbGwpOiBMaWtld2lzZS4KCgkqIHR5cGVjazIuYyAoYnVpbGRfbV9jb21wb25lbnRfcmVmKTogUHJvcGFnYXRlIHF1YWxzIGZyb20gZGF0dW0uCgoyMDAwLTEyLTE0ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHB0LmMgKGNoZWNrX2V4cGxpY2l0X3NwZWNpYWxpemF0aW9uKTogUHJvcGFnYXRlIGRlZmF1bHQKCWZ1bmN0aW9uIGFyZ3VtZW50cyB0byBleHBsaWNpdCBzcGVjaWFsaXphdGlvbnMuCgoyMDAwLTEyLTEzICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIHR5cGVjay5jIChidWlsZF9iaW5hcnlfb3ApOiBEbyBzaWduZWQvdW5zaWduZWQgd2FybmluZ3MgZm9yID4/CglhbmQgPD8gb3BlcmF0b3JzLgoKMjAwMC0xMi0wOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBlcnJvci5jIChkdW1wX2Z1bmN0aW9uX25hbWUpOiBEb24ndCBsZXQgdGhlIHVzZXIgc2VlIF9fY29tcF9jdG9yLgoKCUNsZWFuIHVwIGNvcHktaW5pdGlhbGl6YXRpb24gaW4gb3ZlcmxvYWRpbmcgY29kZS4KCSogY2FsbC5jIChidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xKTogRGllIGlmIHdlIGFyZSBhc2tlZCB0bwoJY29udmVydCB0byB0aGUgc2FtZSBvciBhIGJhc2UgdHlwZS4KCShpbXBsaWNpdF9jb252ZXJzaW9uKTogQXZvaWQgZG9pbmcgc28uICBMb3NlIHJlZmVyZW5jZSBiaW5kaW5nIGNvZGUuCgkoY29udmVydF9saWtlX3JlYWwpOiBUcmVhdCBCQVNFX0NPTlYgYW5kIFJWQUxVRV9DT05WIGFzIGltcGxpY2l0CglkaXJlY3QtaW5pdGlhbGl6YXRpb24uICBBbHNvIGRvIGRpcmVjdC1pbml0IHBhcnQgb2YgY29weS1pbml0LgoJKGJ1aWxkX3VzZXJfdHlwZV9jb252ZXJzaW9uKTogRG9uJ3QgcHJvdmlkZSBjb250ZXh0IHRvIGNvbnZlcnRfbGlrZS4KCSogY3Z0LmMgKG9jcF9jb252ZXJ0KTogYnVpbGRfdXNlcl90eXBlX2NvbnZlcnNpb24gd2lsbCBub3cgcHJvdmlkZQoJdGhlIGNvbnN0cnVjdG9yIGNhbGwgZm9yIGNvcHktaW5pdC4KCgkqIHB0LmMgKHRzdWJzdF9kZWNsKTogQ2FsbCBjbG9uZV9mdW5jdGlvbl9kZWNsIGhlcmUgaWYgdGhpcyBpcyBhbgoJaW5zdGFudGlhdGlvbiBvZiBhIG1lbWJlciB0ZW1wbGF0ZS4KCShkb19kZWNsX2luc3RhbnRpYXRpb24pOiBOb3QgaGVyZS4KCjIwMDAtMTItMDcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChjaGVja19maWVsZF9kZWNscyk6IERvbid0IHNwZWNpYWwgY2FzZSBhbm9ueW1vdXMKCWZpZWxkcyBpbiBlcnJvciBtZXNzYWdlcy4KCShub3RlX25hbWVfZGVjbGFyZWRfaW5fY2xhc3MpOiBVc2UgJUQgb24gZGlhZ25vc3RpYy4KCgkqIHRyZWUuYyAocG9kX3R5cGVfcCk6IFVzZSBzdHJpcF9hcnJheV90eXBlcy4KCShjcF92YWxpZF9sYW5nX2F0dHJpYnV0ZSk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoY3BfdHlwZV9xdWFscyk6IFN0cmlwIGFycmF5cyBzZXBhcmF0ZWx5LCB0byBhdm9pZAoJbXVsdGlwbGUgZXZhbHVhdGlvbnMuCgkoY3BfaGFzX211dGFibGVfcCk6IFVzZSBzdHJpcF9hcnJheV90eXBlcy4KCjIwMDAtMTItMDcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHN1ZmZpY2llbnRfcGFybXNfcCk6IERlY2xhcmUgbmV3IGZ1bmN0aW9uLgoJKiBjYWxsLmMgKHN1ZmZpY2llbnRfcGFybXNfcCk6IE5ldyBmdW5jdGlvbiwgYnJva2VuIG91dCBvZiAuLi4KCShhZGRfZnVuY3Rpb25fY2FuZGlkYXRlKTogLi4uIGhlcmUuIFVzZSBpdC4KCShhZGRfY29udl9jYW5kaWRhdGUpOiBVc2UgaXQuCgkqIGRlY2wuYyAoZ3Jva19jdG9yX3Byb3BlcnRpZXMpOiBVc2UgaXQuCgoyMDAwLTEyLTA3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIG9wdGltaXplLmMgKGNvcHlfYm9keV9yKTogU2V0IFNUTVRfSVNfRlVMTF9FWFBSX1Agb24gRVhQUl9TVE1ULgoKMjAwMC0xMi0wNyAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogSGFuZGxlIC1XZm9ybWF0LXNlY3VyaXR5LgoKMjAwMC0xMi0wNiAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwdC5jICh2ZXJpZnlfY2xhc3NfdW5pZmljYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkoZ2V0X2NsYXNzX2JpbmRpbmdzKTogVXNlIGl0LgoJKHRyeV9jbGFzc191bmlmaWNhdGlvbik6IFRpZHkuCgkodW5pZnkpOiBIYW5kbGUgd2hlbiBhcmd1bWVudCBvZiBhIHRlbXBsYXRlLWlkIGlzIG5vdAoJdGVtcGxhdGUgcGFyYW1ldGVyIGRlcGVuZGVudC4KCSh0ZW1wbGF0ZV9hcmdzX2VxdWFsKTogSGFuZGxlIHdoZW4gVFJFRV9DT0RFJ3MgZG8gbm90IG1hdGNoLgoKMjAwMC0xMi0wNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBsYW5nLXNwZWNzLmggKGMrKyk6IFdoZW4gaW52b2tpbmcgdGhlIHN0YW5kLWFsb25lIHByZXByb2Nlc3NvcgoJZm9yIC1zYXZlLXRlbXBzLCBwYXNzIGFsbCByZWxldmFudCAtRGVmaW5lcyB0byBpdCwgYW5kIHRoZW4gZG9uJ3QKCXBhc3MgdGhlbSB0byBjYzFwbHVzLgoKMjAwMC0xMi0wNSAgV2lsbCBDb2hlbiAgPHdjb2hlbkByZWRoYXQuY29tPgoKCSogZGVjbC5jIChmaW5pc2hfY2FzZV9sYWJlbCk6IENsZWFyZWQKCW1vcmVfY2xlYW51cHNfb2sgaW4gc3Vycm91bmRpbmcgZnVuY3Rpb24gc2NvcGVzLgoJKGRlZmluZV9sYWJlbCk6IExpa2V3aXNlLgoKMjAwMC0xMi0wNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoSURFTlRJRklFUl9WSVJUVUFMX1ApOiBEb2N1bWVudC4KCShnZXRfbWF0Y2hpbmdfdmlydHVhbCk6IFJlbW92ZS4KCShsb29rX2Zvcl9vdmVycmlkZXMpOiBEZWNsYXJlIG5ldyBmdW5jdGlvbi4KCSogZGVjbC5jIChncm9rZm5kZWNsKTogRG9uJ3Qgc2V0IElERU5USUZJRVJfVklSVFVBTF9QIG9yCglERUNMX1ZJTkRFWCBoZXJlLgoJKiBjbGFzcy5jIChjaGVja19mb3Jfb3ZlcnJpZGUpOiBNb3ZlIGJhc2UgY2xhc3MgaXRlcmF0aW9uIGNvZGUKCXRvIGxvb2tfZm9yX292ZXJyaWRlcy4KCSogc2VhcmNoLmMgKG5leHRfYmFzZWxpbmspOiBSZW1vdmUuCgkoZ2V0X3ZpcnR1YWxzX25hbWVkX3RoaXMpOiBSZW1vdmUuCgkoZ2V0X3ZpcnR1YWxfZGVzdHJ1Y3Rvcik6IFJlbW92ZS4KCSh0cmVlX2hhc19hbnlfZGVzdHJ1Y3RvcnNfcCk6IFJlbW92ZS4KCShzdHJ1Y3QgZ3ZudF9pbmZvKTogUmVtb3ZlLgoJKGNoZWNrX2ZpbmFsX292ZXJyaWRlcik6IFJlbW92ZSBgdmlydHVhbCcgZnJvbSBlcnJvciBtZXNzYWdlcy4KCShnZXRfbWF0Y2hpbmdfdmlydHVhbHMpOiBSZW1vdmUuIE1vdmUgZnVuY3Rpb25hbGl0eSB0byAuLi4KCShsb29rX2Zvcl9vdmVycmlkZXMpOiAuLi4gaGVyZSwgYW5kIC4uLgoJKGxvb2tfZm9yX292ZXJyaWRlc19yKTogLi4uIGhlcmUuIFNldCBERUNMX1ZJUlRVQUxfUCwgaWYgZm91bmQKCXRvIGJlIG92ZXJyaWRpbmcuCgoyMDAwLTEyLTA1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKGdldF9kZWx0YV9kaWZmZXJlbmNlKTogSWYgdmlhIGEgdmlydHVhbCBiYXNlLAoJcmV0dXJuIHplcm8uCgkqIGN2dC5jIChjcF9jb252ZXJ0X3RvX3BvaW50ZXIpOiBJZiB2aWEgYSB2aXJ0dWFsIGJhc2UsIGRvIG5vCglhZGp1c3RtZW50LgoKMjAwMC0xMi0wNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVycm9yLmMgKGR1bXBfdHJlZSk6IFVzZSBvdXRwdXRfYWRkX3N0cmluZyBub3QgT0JfUFVUUy4KCjIwMDAtMTItMDQgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogbWFuZ2xlLmMgKHdyaXRlX3R5cGUpOiBNYW5nbGUgVkVDVE9SX1RZUEUgd2l0aCAiVThfX3ZlY3RvciIuCgkod3JpdGVfYnVpbHRpbl90eXBlKTogUGFzcyBpbnRTSV90eXBlX25vZGUgYW5kIHRoZSBsaWtlIHRocm91Z2gKCXR5cGVfZm9yX21vZGUuCgkqIG1ldGhvZC5jIChwcm9jZXNzX292ZXJsb2FkX2l0ZW0pOiBNYW5nbGUgVkVDVE9SX1RZUEVzIHdpdGggJ28nLgoJUGFzcyBpbnRTSV90eXBlX25vZGUgYW5kIHRoZSBsaWtlIHRocm91Z2ggdHlwZV9mb3JfbW9kZS4KCSogZGVjbDIuYyAoYXJnX2Fzc29jX3R5cGUpOiBIYW5kbGUgVkVDVE9SX1RZUEUgbGlrZSBDT01QTEVYX1RZUEUuCgkqIHB0LmMgKHRzdWJzdCwgdW5pZnkpOiBMaWtld2lzZS4KCSogdHJlZS5jICh3YWxrX3RyZWUpOiBMaWtld2lzZS4KCSogZXJyb3IuYyAoZHVtcF90eXBlKTogTGlrZXdpc2UuCgkoZHVtcF90eXBlX3ByZWZpeCwgZHVtcF90eXBlX3N1ZmZpeCk6IERvbid0IGJvdGhlciB3aXRoIFZFQ1RPUl9UWVBFLgoKCSogTWFrZS1sYW5nLmluOiBUd2VhayB0b3AgY29tbWVudCBmb3IgZW1hY3MuCgkoY3AvVEFHUyk6IFJlc3RvcmUuCgoJKiBleGNlcHQuYyAoZXhwYW5kX3Rocm93KTogVXNlIHB1c2hfdGhyb3dfbGlicmFyeV9mbiBmb3IgX0p2X1Rocm93LgoKCSogY2xhc3MuYyAoY2xvbmVfZnVuY3Rpb25fZGVjbCk6IFJvYnVzdGlmeS4KCjIwMDAtMTItMDQgIE1pY2hhZWwgTWF0eiAgPG1hdHptaWNoQGNzLnR1LWJlcmxpbi5kZT4KCgkqIGRlY2wuYyAoc3RvcmVfYmluZGluZ3MpOiBPbmx5IHNlYXJjaCBpbiB0aGUgbm9uIG1vZGlmaWVkCglvbGRfYmluZGluZ3MgZm9yIGR1cGxpY2F0ZXMuCgoyMDAwLTEyLTA0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZXJyb3IuYyAoZHVtcF9mdW5jdGlvbl9kZWNsKTogVXNlIERFQ0xfVklSVFVBTF9QLCBub3QKCVRZUEVfUE9MWU1PUlBISUNfUC4KCgkqIHR5cGVjay5jIChidWlsZF9zdGF0aWNfY2FzdCk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgoyMDAwLTEyLTAxICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHB0LmM6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgoyMDAwLTEyLTAxICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBkZWNsMi5jICh3YXJuX2Zvcm1hdCk6IFJlbW92ZSBkZWZpbml0aW9uLgoJKGxhbmdfZGVjb2RlX29wdGlvbik6IEhhbmRsZSAtV2Zvcm1hdC1ub25saXRlcmFsLAoJLVduby1mb3JtYXQtZXh0cmEtYXJncyBhbmQgLVduby1mb3JtYXQteTJrLiAgVXNlIHNldF9XZm9ybWF0LgoKMjAwMC0xMi0wMSAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZGVjbC5jIChXSU5UX1RZUEUsIElOVE1BWF9UWVBFLCBVSU5UTUFYX1RZUEUpOiBEb24ndCBkZWZpbmUuCgkoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBEb24ndCBjcmVhdGUgc3RyaW5nX3R5cGVfbm9kZSwKCWNvbnN0X3N0cmluZ190eXBlX25vZGUsIHdpbnRfdHlwZV9ub2RlLCBpbnRtYXhfdHlwZV9ub2RlLAoJdWludG1heF90eXBlX25vZGUsIGRlZmF1bHRfZnVuY3Rpb25fdHlwZSwgcHRyZGlmZl90eXBlX25vZGUgYW5kCgl1bnNpZ25lZF9wdHJkaWZmX3R5cGVfbm9kZS4gIEFkanVzdCBwb3NpdGlvbiBvZiBjYWxsIHRvCgljX2NvbW1vbl9ub2Rlc19hbmRfYnVpbHRpbnMuCgkoaWRlbnRpZmllcl9nbG9iYWxfdmFsdWUpOiBOZXcgZnVuY3Rpb24uCgoyMDAwLTEyLTAxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChzdGFuZGFyZF9jb252ZXJzaW9uKTogUmVqZWN0IHBvaW50ZXIgdG8gbWVtYmVyCgljb252ZXJzaW9ucyBmcm9tIGFtYmlndW91cywgaW5hY2Nlc3NpYmxlIG9yIHZpcnR1YWwgYmFzZXMuCgkqIHR5cGVjay5jIChidWlsZF9zdGF0aWNfY2FzdCk6IERvbid0IGNoZWNrIHBvaW50ZXJzIHRvIG1lbWJlcnMKCXNwZWNpYWxseS4KCjIwMDAtMTEtMzAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtZXRob2QuYyAoZG9fYnVpbGRfY29weV9jb25zdHJ1Y3Rvcik6IFByZXNlcnZlIGN2CglxdWFsaWZpY2F0aW9ucyB3aGVuIGFjY2Vzc2luZyBzb3VyY2Ugb2JqZWN0IG1lbWJlcnMuCgkoZG9fYnVpbGRfYXNzaWduX3JlZik6IExpa2V3aXNlLiBSZW1vdmUgc2VwYXJhdGUgZGlhZ25vc3RpY3MgZm9yCgl1bm5hbWVkIGZpZWxkcy4KCjIwMDAtMTEtMzAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtZXRob2QuYyAoZG9fYnVpbGRfYXNzaWduX3JlZik6IENvbnN0cnVjdCBhcHByb3ByaWF0ZWx5CglDVi1xdWFsaWZpZWQgYmFzZSByZWZlcmVuY2UuIERvbid0IGFsbG93IGNvbnN0IGNhc3RzIGluIGJhc2UKCWNvbnZlcnNpb24uCgoyMDAwLTExLTMwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChidWlsZF9vdmVyX2NhbGwpOiBVc2UgVk9JRF9UWVBFX1AuIERvbid0IGRpZSBvbgoJaW5jb21wbGV0ZSByZXR1cm4gdHlwZS4KCjIwMDAtMTEtMjggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwYXJzZS55IChiYXNlX2NsYXNzLjEpOiBQcm9kdWNlIGEgX1RZUEUgbm90IGEgX0RFQ0wuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfYmFzZV9zcGVjaWZpZXIpOiBBY2NlcHQgYSBfVFlQRSBub3QgYQoJX0RFQ0wuCgoyMDAwLTExLTI4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogc3Bldy5jICh5eWVycm9yKTogQ29wZSBpZiB5eWx2YWwudHR5cGUgaXMgTlVMTC4KCjIwMDAtMTEtMjggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogRGlhZ25vc2UgdW5kZWZpbmVkIHRlbXBsYXRlIGNvbnRleHRzLgoKMjAwMC0xMS0yOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBEbyB0eXBlIGFjY2VzcyBjb250cm9sIG9uIGZyaWVuZAoJY2xhc3MuCgoyMDAwLTExLTI3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChncm9rZm5kZWNsKTogVW5kbyBDT01QT05FTlRfUkVGIGRhbWFnZSBjYXVzZWQgYnkKCWJpc29uIHBhcnNlciBpY2tpbmVzcy4KCSogcHQuYyAodHN1YnN0X2ZyaWVuZF9mdW5jdGlvbik6IEVudGVyIG5hbWVzcGFjZSBzY29wZSB3aGVuCgl0c3Vic3RpbmcgdGhlIGZ1bmN0aW9uIG5hbWUuCgkqIGNwLXRyZWUuaCAoREVDTF9USV9URU1QTEFURSk6IFVwZGF0ZSBjb21tZW50IHRvIHJlZmxlY3QgcmVhbGl0eS4KCjIwMDAtMTEtMjcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGJpbmZvX2Zyb21fdmJhc2UpOiBSZXR1cm4gdGhlIHZpcnR1YWwgYmFzZSdzIGJpbmZvLgoJKiBjdnQuYyAoY3BfY29udmVydF90b19wb2ludGVyKTogQWRkIGZvcmNlIHBhcmFtZXRlci4KCUFsbG93IGNvbnZlcnNpb25zIHZpYSB2aXJ0dWFsIGJhc2UgaWYgZm9yY2VkLgoJKGNvbnZlcnRfdG9fcG9pbnRlcl9mb3JjZSk6IEFkanVzdCBjYWxsIHRvIGNwX2NvbnZlcnRfdG9fcG9pbnRlci4KCShvY3BfY29udmVydCk6IExpa2V3aXNlLgoJKiBzZWFyY2guYyAoYmluZm9fZnJvbV92YmFzZSk6IFJldHVybiB0aGUgdmlydHVhbCBiYXNlJ3MgYmluZm8uCgkqIHR5cGVjay5jIChnZXRfZGVsdGFfZGlmZmVyZW5jZSk6IEFkanVzdCBoYW5kbGluZyBvZiB2aXJ0dWFsCgliYXNlcy4KCjIwMDAtMTEtMjYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlLmMgKHN0cnVjdCBsaXN0X2hhc2gpOiBSZW1vdmUuCgkobGlzdF9oYXNoX3RhYmxlKTogTWFrZSBpdCBiZSBhbiBodGFiLgoJKHN0cnVjdCBsaXN0X3Byb3h5KTogTmV3IHR5cGUuCgkobGlzdF9oYXNoX2VxKTogTmV3IGZ1bmN0aW9uLgoJKGxpc3RfaGFzaF9waWVjZXMpOiBSZW5hbWVkIGZyb20gLi4uCgkobGlzdF9oYXNoKTogLi4uIHRoaXMuCgkobGlzdF9oYXNoX2xvb2t1cCk6IFJlbW92ZS4KCShsaXN0X2hhc2hfYWRkKTogUmVtb3ZlLgoJKGhhc2hfdHJlZV9jb25zKTogVXNlIHRoZSBnZW5lcmljIGhhc2h0YWJsZS4KCShtYXJrX2xpc3RfaGFzaCk6IFJlbW92ZS4KCShpbml0X3RyZWUpOiBDcmVhdGUgdGhlIGhhc2h0YWJsZS4KCjIwMDAtMTEtMjUgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIG1ldGhvZC5jIChidWlsZF9tYW5nbGVkX0M5eF9uYW1lKTogUmVuYW1lIHRvCglidWlsZF9tYW5nbGVkX0M5OV9uYW1lLiAgQ2hhbmdlIEM5WCByZWZlcmVuY2VzIGluIGNvbW1lbnRzIHRvCglyZWZlciB0byBDOTkuCgoyMDAwLTExLTI0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcGFyc2UueSAodW5hcnlfZXhwcik6IE1vdmUgVkFfQVJHIGZyb20gaGVyZSAuLi4KCShwcmltYXJ5KTogLi4uIHRvIGhlcmUuCgoyMDAwLTExLTI0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogc2VtYW50aWNzLmMgKGZpbmlzaF9pZF9leHByKTogSWYgdHlwZSBpcyBlcnJvcl9tYXJrLCByZXR1cm4KCWVycm9yX21hcmsuCgoyMDAwLTExLTIzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAobG9va3VwX3RlbXBsYXRlX2NsYXNzKTogU2ltcGxpZnkgbG9vcCBleGl0IGNvbnN0cnVjdHMuCglDb3BlIHdoZW4gdGhlcmUgaXMgbm8gcGFydGlhbCBpbnN0YW50aWF0aW9uIG9mIGEgdGVtcGxhdGUKCXRlbXBsYXRlIG1lbWJlci4KCjIwMDAtMTEtMjMgIEoib3JuIFJlbm5lY2tlIDxhbXlsYWFyQHJlZGhhdC5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGcrK3NwZWMubywgY3h4bWFpbi5vKTogRGVwZW5kIG9uICQoQ09ORklHX0gpLgoKMjAwMC0xMS0yMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG1hbmdsZS5jIChtYW5nbGVfY29udl9vcF9uYW1lX2Zvcl90eXBlKTogRG9uJ3QgdXNlIGBfX29wJwoJcHJlZml4LgoKCSogcHQuYyAoZG9fZGVjbF9pbnN0YW50aWF0ZSk6IEV4cGxpY2l0bHkgY2xvbmUgY29uc3RydWN0b3JzIGFuZAoJZGVzdHJ1Y3RvcnMgdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiBjbG9uZWQuCgoyMDAwLTExLTIwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogcGFyc2UueSAoeXlwYXJzZV8xKTogUmVuYW1lIHRoZSBwYXJzZXIgZW50cnkgcG9pbnQuCgoyMDAwLTExLTIwICBBbGV4IFNhbXVlbCAgPHNhbXVlbEBjb2Rlc291cmNlcnkuY29tPgoKCSogbWFuZ2xlLmMgKHdyaXRlX25hbWUpOiBVc2UgPHVuc2NvcGVkLW5hbWU+IGZvciBuYW1lcyBkaXJlY3RseSBpbgoJZnVuY3Rpb24gc2NvcGUuCgkod3JpdGVfdW5zY29wZWRfbmFtZSk6IEFjY2VwdCBuYW1lcyBkaXJlY3RseSBpbiBmdW5jdGlvbiBzY29wZS4KCjIwMDAtMTEtMjAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBsZXguYyAocmlkX3RvX3l5LCBSSURfRVhQT1JUKTogTWFrZSB1bmlxdWUga2V5d29yZC4KCSogcGFyc2UueSAoZXh0ZGVmKTogQWRkIEVYUE9SVCByZWR1Y3Rpb24uCgkqIHNwZXcuYyAoeXlsZXgpOiBEb24ndCBza2lwIGV4cG9ydCBoZXJlLgoKMjAwMC0xMS0xOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBDb3JyZWN0IG5hbWUgb2YgcHVyZSB2aXJ0dWFsCglmdW5jdGlvbiB1bmRlciB0aGUgbmV3IEFCSS4KCSogcnR0aS5jICh0aHJvd19iYWRfY2FzdCk6IExpa2V3aXNlLCBmb3IgYmFkIGNhc3QgZnVuY3Rpb24uCgkodGhyb3dfYmFkX3R5cGVpZCk6IExpa2V3aXNlIGZvciBiYWQgdHlwZWlkIGZ1bmN0aW9uLgoKMjAwMC0xMS0xOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoZ3Jva3Bhcm1zKTogRG9uJ3QgZXZlbiBmdW5jdGlvbiB0eXBlcyBvZiBgdm9pZCcgdHlwZSwKCWVpdGhlci4KCSogbWFuZ2xlLmMgKHdyaXRlX3R5cGUpOiBEb24ndCBjcmFzaCB3aGVuIGNvbmZyb250ZWQgd2l0aCB0aGUKCWVycm9yX21hcmtfbm9kZS4KCgkqIGRlY2wuYyAoZ3Jva3Bhcm1zKTogRG9uJ3QgY3JlYXRlIHBhcmFtZXRlcnMgb2YgYHZvaWQnIHR5cGUuCgoyMDAwLTExLTE3ICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuc3RhbmZvcmQuZWR1PgoKCSogbGV4LmMgKG1hcmtfaW1wbF9maWxlX2NoYWluKTogRGVsZXRlLgoJKGluaXRfcGFyc2UpOiBSZW1vdmUgY2FsbCB0byBnZ2NfYWRkX3N0cmluZ19yb290LiAgTm8gbmVlZCB0bwoJZ2djX3N0cmR1cCBhIHN0cmluZyBjb25zdGFudC4gIERvIG5vdCBhZGQgaW1wbF9maWxlX2NoYWluIHRvIEdDCglyb290cy4KCShoYW5kbGVfcHJhZ21hX2ltcGxlbWVudGF0aW9uKTogTm8gbmVlZCB0byBnZ2Nfc3RyZHVwIG1haW5fZmlsZW5hbWUuCgoyMDAwLTExLTE3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAodHN1YnN0X2V4cHIsIERFQ0xfU1RNVCk6IEluc3RhbnRpYXRlIGRlY2wncyB0eXBlLgoKMjAwMC0xMS0xNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoUEFSTUxJU1RfRUxMSVBTSVNfUCk6IE5ldyBtYWNyby4KCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IERvbid0IHJlamVjdCB2b2lkIHBhcm1zIGhlcmUuCgkocmVxdWlyZV9jb21wbGV0ZV90eXBlc19mb3JfcGFybXMpOiBTaW1wbGlmeSwgdXNlCgljb21wbGV0ZV90eXBlX29yX2Vsc2UuCgkoZ3Jva3Bhcm1zKTogUmVtb3ZlIGJpdHJvdC4gUmVtb3ZlIGZ1bmNkZWYgcGFybS4KCURlYWwgd2l0aCBlbGxpcHNpcyBwYXJtIGxpc3RzIGhlcmUuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfcGFybWxpc3QpOiBEb24ndCBhcHBlbmQgdm9pZF9saXN0X25vZGUKCWhlcmUuIFNldCBQQVJNTElTVF9FTExJUFNJU19QLgoKMjAwMC0xMS0xNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHR5cGVjazIuYyAoaW5jb21wbGV0ZV90eXBlX2Vycm9yKTogUmVvcmdhbml6ZSB0byBhdm9pZAoJZXhjZXNzaXZlIGRpYWdub3N0aWNzLgoKMjAwMC0xMS0xNiAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LnN0YW5mb3JkLmVkdT4KCgkqIGxleC5jIChzdHJ1Y3QgaW1wbF9maWxlcywgaW50ZXJuYWxfZmlsZW5hbWUpOiBDb25zdGlmeSBhIGNoYXIgKi4KCjIwMDAtMTEtMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtYW5nbGUuYyAod3JpdGVfc3BlY2lhbF9uYW1lX2NvbnN0cnVjdG9yKTogRG9uJ3QgZ2VuZXJhdGUKCWFzc2VtYmxlciBqdW5rIHdoZW4gY29uZnJvbnRlZCB3aXRoIGFuIG9sZC1zdHlsZSBjb25zdHJ1Y3Rvci4KCSh3cml0ZV9zcGVjaWFsX25hbWVfZGVzdHJ1Y3Rvcik6IExpa2V3aXNlLgoJKG1hbmdsZV9kZWNsX3N0cmluZyk6IERvIGl0IGhlcmUgaW5zdGVhZC4KCjIwMDAtMTEtMTYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKG9wX2Vycm9yKTogTWFrZSBlcnJvciBtZXNzYWdlcyBjbGVhcmVyLgoKMjAwMC0xMS0xNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAod3JhcHVwX2dsb2JhbHNfZm9yX25hbWVzcGFjZSk6IERvbid0IG1hcmsgdGhpbmdzCglUUkVFX0FTTV9XUklUVEVOIHdoZW4gdGhleSdyZSBub3QuCgoyMDAwLTExLTE1ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHR5cGVjazIuYyAoZnJpZW5kbHlfYWJvcnQpOiBVbmNvdW50IHRoZSBlcnJvciBiZWZvcmUgaGFuZGluZwoJb2ZmIHRvIGZhbmN5X2Fib3J0LgoKMjAwMC0xMS0xNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHR5cGVjay5jIChsb29rdXBfYW5vbl9maWVsZCk6IENvcGUgd2l0aCBxdiBxdWFsaWZpZXJzLgoKMjAwMC0xMS0xNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBGaXggdHlwbyBpbiBjb21tZW50LgoJKiB0eXBlY2suYyAoZXhwcl9zaXplb2YpOiBEb24ndCBjcmFzaCBvbiBlcnJvcnMuCgoyMDAwLTExLTE0ICBKaW0gV2lsc29uICA8d2lsc29uQHJlZGhhdC5jb20+CgoJKiBsYW5nLXNwZWNzLmg6IEFkZCAlMiBhZnRlciAlKGNjMV9vcHRpb25zKS4KCjIwMDAtMTEtMTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0eXBlY2suYyAoY19zaXplb2YpOiBCZSBzdHJpY3QgYWJvdXQgY2FzdGluZyByZXN1bHQgdmFsdWUKCWJhY2sgdG8gY19zaXplX3R5cGVfbm9kZS4KCShleHByX3NpemVvZiwgY19zaXplb2Zfbm93YXJuLCBjX2FsaWdub2YpOiBMaWtld2lzZS4KCjIwMDAtMTEtMTMgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIHR5cGVjay5jIChidWlsZF91bmFyeV9vcCk6IFVzZSBib29sZWFuX2luY3JlbWVudCBmcm9tCgljLWNvbW1vbi5jLCBtb3ZpbmcgdGhlIHJlbGV2YW50IGNvZGUgdGhlcmUuCgoyMDAwLTExLTExICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHR5cGVjay5jIChtYXJrX2FkZHJlc3NhYmxlKTogRG9uJ3QgY2FsbCBwdXRfdmFyX2ludG9fc3RhY2suCgoJKiBkZWNsLmMgKG1heWJlX2NvbW1vbml6ZV92YXIpOiBTZXQgREVDTF9VTklOTElOQUJMRSBmb3Igc3RhdGljcwoJaW4gaW5saW5lcy4KCjIwMDAtMTEtMTAgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IsIHNhdmVfZnVuY3Rpb25fZGF0YSk6IFVzZSBtZW1jcHksIG5vdCBiY29weS4KCSogbGV4LmMgKGNvcHlfbGFuZ19kZWNsKTogTGlrZXdpc2UuCgoyMDAwLTExLTA5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZHVtcC5jIChjcF9kdW1wX3RyZWUpOiBEb24ndCBkdW1wIGZ1bmN0aW9uIGJvZGllcyBoZXJlLgoKCSogTWFrZS1sYW5nLmluIChDWFhfQ19PQkpTKTogQWRkIGMtZHVtcC5vLgoJKGR1bXAubyk6IFVwZGF0ZSBkZXBlbmRlbmN5IGxpc3QuCgkqIGNwLXRyZWUuaCAoREVDTF9NQVlCRV9URU1QTEFURSk6IFJlbW92ZS4KCShmbGFnX2R1bXBfdHJhbnNsYXRpb25fdW5pdCk6IExpa2V3aXNlLgoJKENQX1RZUEVfUVVBTFMpOiBBZGp1c3QgZGVmaW5pdGlvbi4KCShERUNMX0NfQklUX0ZJRUxEKTogUmVtb3ZlLgoJKFNFVF9ERUNMX0NfQklUX0ZJRUxEKTogTGlrZXdpc2UuCgkoQ0xFQVJfREVDTF9DX0JJVF9GSUVMRCk6IExpa2V3aXNlLgoJKGFkZF9tYXliZV90ZW1wbGF0ZSk6IExpa2V3aXNlLgoJKHN0cmlwX2FycmF5X3R5cGVzKTogTGlrZXdpc2UuCgkoZHVtcF9ub2RlX3RvX2ZpbGUpOiBMaWtld2lzZS4KCShjcF9kdW1wX3RyZWUpOiBOZXcgZnVuY3Rpb24uCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBTZXQgbGFuZ19kdW1wX3RyZWUuCgkqIGRlY2wyLmMgKGZsYWdfZHVtcF90cmFuc2xhdGlvbl91bml0KTogUmVtb3ZlLgoJKiBkdW1wLmM6IE1vdmUgbW9zdCBvZiBpdCB0byAuLi9jLWR1bXAuYy4KCShjcF9kdW1wX3RyZWUpOiBOZXcgZnVuY3Rpb24uCgkqIHB0LmMgKGFkZF9tYXliZV90ZW1wbGF0ZSk6IFJlbW92ZS4KCSogdHlwZWNrLmMgKHN0cmlwX2FycmF5X3R5cGVzKTogTGlrZXdpc2UuCgoyMDAwLTExLTA3ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBDaGFuZ2UgZGVmaW5pdGlvbiBvZgoJX193Y2hhcl90IHRvIHdjaGFyX3QuICBSZW1vdmUgYXJ0aWZpY2lhbCBkZWNsYXJhdGlvbiBvZgoJd2NoYXJfdC4KCSogbGV4LmM6IENoYW5nZSBpbnN0YW5jZXMgb2YgX193Y2hhcl90IHRvIHdjaGFyX3QuCgoyMDAwLTExLTA5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogbGV4LmMgKGRvX2lkZW50aWZpZXIpOiBEb24ndCBsb29rdXBfbmFtZSBmb3Igb3BlcmF0b3JzLgoJKiBwYXJzZS55IChvcGVyYXRvcik6IFNhdmUgbG9va2luZ19mb3JfdHlwZW5hbWUuCgkodW5vcGVyYXRvcik6IFJlc3RvcmUgaXQuCgkqIHNwZXcuYyAoZnJvYl9vcG5hbWUpOiBVc2UgbnRoX3Rva2VuIGZvciBsb29rYWhlYWQuCgoyMDAwLTExLTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChncm9rX29wX3Byb3BlcnRpZXMpOiBBbHdheXMgdXNlIGNvZXJjZV9uZXdfdHlwZSBhbmQKCWNvZXJjZV9kZWxldGVfdHlwZS4KCSogZGVjbDIuYyAoY29lcmNlX25ld190eXBlKTogVXNlIGNfc2l6ZV90eXBlX25vZGUuIFByZXNlcnZlCglleGNlcHRpb24gc3BlY2lmaWNhdGlvbi4gVGlkeSB1cC4KCShjb2VyY2VfZGVsZXRlX3R5cGUpOiBQcmVzZXJ2ZSBleGNlcHRpb24gc3BlY2lmaWNhdGlvbi4gVGlkeSB1cC4KCjIwMDAtMTEtMDcgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGNsYXNzLmMgKGR1cGxpY2F0ZV90YWdfZXJyb3IsIGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpLCBkZWNsLmMKCShwdXNoX2JpbmRpbmdfbGV2ZWwpLCBlcnJvci5jIChjcF90cmVlX3ByaW50ZXIpLCBwdC5jCgkocHJvY2Vzc19wYXJ0aWFsX3NwZWNpYWxpemF0aW9uLCB0c3Vic3RfdGVtcGxhdGVfYXJnX3ZlY3RvciksCglzZWFyY2guYyAobG9va3VwX21lbWJlcik6IFVzZSBtZW1zZXQgKCkgaW5zdGVhZCBvZiBiemVybyAoKS4KCjIwMDAtMTEtMDcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGJ1aWxkX3B0cm1lbWZ1bmNfdHlwZSk6IEFsbG93IGVycm9yX21hcmtfbm9kZS4KCjIwMDAtMTEtMDUgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIE1ha2UtbGFuZy5pbiAoYysrLmRpc3RkaXIpOiBSZW1vdmUuCgoyMDAwLTExLTA0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoZG9fbm9ubWVtYmVyX3VzaW5nX2RlY2wpOiBBbGxvdyBgZXh0ZXJuICJDIicKCWRlY2xhcmF0aW9ucyBmcm9tIGRpZmZlcmVudCBuYW1lc3BhY2VzIHRvIGJlIGNvbWJpbmVkLgoKMjAwMC0xMS0wMyAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LnN0YW5mb3JkLmVkdT4KCgkqIGRlY2wuYzogSW5jbHVkZSB0bV9wLmguCgoyMDAwLTExLTAzICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0cmVlLmMgKGNwX3RyZWVfZXF1YWwpOiBVc2UgbWVtY21wICgpIGluc3RlYWQgb2YgYmNtcCAoKS4KCjIwMDAtMTEtMDIgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCksIGxleC5jIChpbnRlcmZhY2Vfc3RyY21wKSwgbWV0aG9kLmMKCShidWlsZF9vdmVybG9hZF92YWx1ZSksIHJlcG8uYyAob3Blbl9yZXBvX2ZpbGUpLCB4cmVmLmMKCShvcGVuX3hyZWZfZmlsZSk6IFVzZSBzdHJjaHIgKCkgYW5kIHN0cnJjaHIgKCkgaW5zdGVhZCBvZiBpbmRleCAoKQoJYW5kIHJpbmRleCAoKS4KCjIwMDAtMTEtMDEgIEJlcm5kIFNjaG1pZHQgIDxiZXJuZHNAcmVkaGF0LmNvLnVrPgoKCSogY2FsbC5jIChidWlsZF9vdmVyX2NhbGwpOiBDYWxsIGZvbGQgb24gdGhlIENBTExfRVhQUi4KCjIwMDAtMTEtMDEgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmMgKGR1bXBfdGVtcGxhdGVfZGVjbCk6IFNlcGFyYXRlIHRlbXBsYXRlIGhlYXJkZXJzIHdpdGgKCXNwYWNlIG5vdCBjb21tYS4KCjIwMDAtMTAtMzEgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmM6IE1vdmUgVEZGXyBtYWNyb3MgaW50byBjcC10cmVlLmguICBUaHJvdWdob3V0LCByZXBsYWNlCglUU18qIGZsYWdzIHdpdGggY29ycmVzcG9uZGluZyBURkZfKi4gIEFkanVzdCBwcm90b3R5cGVzIG9mCglmdW5jdGlvbnMgKHdoaWNoIHVzZWQgdG8gdGFrZSBhIHRyZWVfc3RyaW5nX2ZsYWdzKSB0byB0YWtlIGFuIGludC4KCgkqIGNwLXRyZWUuaCAoZW51bSB0cmVlX3N0cmluZ19mbGFncyk6IFJlbW92ZQoJKFRGRl9QTEFJTl9JREVOVElGSUVSLCBURkZfTkFNRVNQQUNFX1NDT1BFLCBURkZfQ0xBU1NfU0NPUEUsCglURkZfQ0hBU0VfTkFNRVNQQUNFX0FMSUFTLCBURkZfQ0hBU0VfVFlQRURFRiwgVEZGX0RFQ0xfU1BFQ0lGSUVSUywKCVRGRl9DTEFTU19LRVlfT1JfRU5VTSwgVEZGX1JFVFVSTl9UWVBFLAoJVEZGX0ZVTkNUSU9OX0RFRkFVTFRfQVJHVU1FTlRTLCBURkZfRVhDRVBUSU9OX1NQRUNJRklDQVRJT04sCglURkZfVEVNUExBVEVfSEVBREVSLCBURkZfVEVNUExBVEVfREVGQVVMVF9BUkdVTUVOVFMsCglURkZfVEVNUExBVEVfTkFNRSwgVEZGX0VYUFJfSU5fUEFSRU5TLCBURkZfU0NPUEUpOiBOZXcgbWFjcm9zLgoJKHR5cGVfYXNfc3RyaW5nLCBkZWNsX2FzX3N0cmluZywgZXhwcl9hc19zdHJpbmcsCgljb250ZXh0X2FzX3N0cmluZyk6IEFkanVzdCBwcm90b3R5cGUuCgoJKiBjbGFzcy5jIChkdW1wX2NsYXNzX2hpZXJhcmNoeV9yKTogVXNlIFRGRl9QTEFJTl9JREVOVElGSUVSCglpbnN0ZWFkIG9mIFRTX1BMQUlOLgoKCSogcHQuYyAobWFuZ2xlX2NsYXNzX25hbWVfZm9yX3RlbXBsYXRlKTogVXNlIFRGRl9DSEFTRV9UWVBFREVGCglpbnN0ZWFkIG9mIFRGX0NIQVNFX1RZUEVERUZTLiBVc2UgVEZGX1BMQUlOX0lERU5USUZJRVIgaW5zdGVhZCBvZgoJcGxhaW4gYDAnLgoKMjAwMC0xMC0zMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoREVDTF9FWFRFUk5BTF9MSU5LQUdFX1ApOiBOZXcgbWFjcm8uCgkobGlua2FnZV9raW5kKTogTmV3IGVudW1lcmF0aW9uLgoJKGRlY2xfbGlua2FnZSk6IE5ldyBmdW5jdGlvbi4KCSogZGVjbDIuYyAoY29tZGF0X2xpbmthZ2UpOiBFeHRlbmQgY29tbWVudC4KCSogZXJyb3IuYyAoZHVtcF9mdW5jdGlvbl9kZWNsKTogUHJpbnQgdGhlIGFyZ3VtZW50cyB1c2VkIHRvCglpbnN0YW50aWF0ZSBhIHRlbXBsYXRlLCBldmVuIHdoZW4gbm90IHByaW50aW5nIHRoZSB0eXBlIG9mIHRoZQoJZnVuY3Rpb24uCgkqIHB0LmMgKGNvbnZlcnRfbm9udHlwZV9hcmd1bWVudCk6IFVzZSBERUNMX0VYVEVSTkFMX0xJTktBR0VfUCwKCW5vdCBUUkVFX1BVQkxJQywgdG8gdGVzdCBmb3IgZXh0ZXJuYWwgbGlua2FnZS4KCSogdHJlZS5jIChkZWNsX2xpbmthZ2UpOiBOZXcgZnVuY3Rpb24uCgoyMDAwLTEwLTI4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAoaW5zdGFudGlhdGVfZGVjbCk6IEFsd2F5cyBpbnN0YW50aWF0ZSBzdGF0aWMgZGF0YSBtZW1iZXJzCglpbml0aWFsaXplZCBpbi1jbGFzcy4KCjIwMDAtMTAtMjcgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5zdGFuZm9yZC5lZHU+CgoJKiBNYWtlLWxhbmcuaW46IE1vdmUgYWxsIGJ1aWxkIHJ1bGVzIGhlcmUgZnJvbSBNYWtlZmlsZS5pbiwKCWFkYXB0IHRvIG5ldyBjb250ZXh0LiAgV3JhcCBhbGwgcnVsZXMgdGhhdCBjaGFuZ2UgdGhlIGN1cnJlbnQKCWRpcmVjdG9yeSBpbiBwYXJlbnRoZXNlcy4gIEV4cHVuZ2UgYWxsIHJlZmVyZW5jZXMgdG8gJChQKS4KCVdoZW4gb25lIGNvbW1hbmQgZGVwZW5kcyBvbiBhbm90aGVyIGFuZCB0aGV5J3JlIHJ1biBhbGwgYXQKCW9uY2UsIHVzZSAmJiB0byBzZXBhcmF0ZSB0aGVtLCBub3QgOy4gIEFkZCBPVVRQVVRfT1BUSU9OIHRvCglhbGwgb2JqZWN0LWZpbGUgZ2VuZXJhdGlvbiBydWxlcy4gIERlbGV0ZSBvYnNvbGV0ZSB2YXJpYWJsZXMuCgoJKiBNYWtlZmlsZS5pbjogRGVsZXRlLgoJKiBjb25maWctbGFuZy5pbjogRGVsZXRlIG91dHB1dHM9IGxpbmUuCgoyMDAwLTEwLTI2ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlcnJvci5jIChkdW1wX2Z1bmN0aW9uX2RlY2wpOiBQcmludCBubyBzcGFjZSBiZXR3ZWVuCglgcHRyLW9wZXJhdG9yJyB0aGUgYHR5cGUtc3BlY2lmaWVyJyBvZiB0aGUgcmV0dXJuIHR5cGUuCgkoZHVtcF90eXBlX3ByZWZpeCk6IE1ha2Ugc3VyZSB3ZSBwdXQgc3BhY2UgYXQgdGhlIGFwcHJvcHJpYXRlCglwbGFjZS4KCjIwMDAtMTAtMjMgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogY2FsbC5jIChlcXVhbF9mdW5jdGlvbnMpOiBBbHNvIGNhbGwgZGVjbHNfbWF0Y2ggZm9yIGV4dGVybiAiQyIgZm5zLgoKMjAwMC0xMC0yMiAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBjYWxsLmMgKGJ1aWxkX2NvbmRpdGlvbmFsX2V4cHIpOiBVc2Ugb2NwX2NvbnZlcnQgdG8gZm9yY2UKCXJ2YWx1ZSBjb252ZXJzaW9uLgoKMjAwMC0xMC0yMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoc3RhbmRhcmRfY29udmVyc2lvbik6IFVzZSBSVkFMVUVfQ09OVnMgZm9yIGFsbAoJZXhwcmVzc2lvbnMgdGhhdCBzYXRpc2Z5IGx2YWx1ZV9wLCBub3QganVzdCB0aG9zZSB0aGF0IHNhdGlzZnkKCXJlYWxfbHZhbHVlX3AuCgoJKiBvcHRpbWl6ZS5jIChjb3B5X2JvZHlfcik6IERvbid0IHRyZWF0IENBTExfRVhQUnMgc3BlY2lhbGx5LgoKCSogdHlwZWNrLmMgKGNfc2l6ZW9mKTogUmV0dXJuIGFuIGV4cHJlc3Npb24gb2YgYHNpemVfdCcgdHlwZSwKCW5vdCBvbmUgd2l0aCBUWVBFX0lTX1NJWkVUWVBFIHNldC4KCShkdWJpb3VzX2NvbnZlcnNpb25fd2FybmluZ3MpOiBSZW1vdmUgc3BlY2lhbC1jYXNlIGNvZGUuCgoyMDAwLTEwLTIxICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiBkZWNsMi5jIChhcmdfYXNzb2NfdHlwZSk6IEhhbmRsZSBWRUNUT1JfVFlQRS4KCSogZXJyb3IuYyAoZHVtcF90eXBlKTogSGFuZGxlIFZFQ1RPUl9UWVBFIGxpa2UgUE9JTlRFUl9UWVBFLgoJKGR1bXBfdHlwZV9wcmVmaXgpOiBQcmludCB2ZWN0b3Itb2YtaW50IGFzICdpbnQgdmVjdG9yJy4KCShkdW1wX3R5cGVfc3VmZml4KTogSGFuZGxlIFZFQ1RPUl9UWVBFIGxpa2UgUE9JTlRFUl9UWVBFLgoJKiB0cmVlLmMgKHdhbGtfdHJlZSk6IEhhbmRsZSBWRUNUT1JfVFlQRS4KCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBDYWxsIE1EX0lOSVRfQlVJTFRJTlMuCgoyMDAwLTEwLTIxICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHBhcnNlLnkgKG9wZXJhdG9yKTogU2V0IGdvdF9vYmplY3QgZnJvbSBnb3Rfc2NvcGUuCglTZXQgbG9va2luZ19mb3JfdHlwZW5hbWUuCgkqIGRlY2wuYyAobG9va3VwX25hbWVfcmVhbCk6IENsZWFyIHZhbCBhZnRlciBzZXR0aW5nIGZyb21fb2JqLgoJUmVvcmdhbml6ZSBkaWFnbm9zdGljLgoKMjAwMC0xMC0yMCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiB0cmVlLmMgKHdhbGtfdHJlZSk6IERvbid0IHdhbGsgaW50byBkZWZhdWx0IGFyZ3MuCgoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBVc2UgaG9zdF9pbnRlZ2VycC4KCjIwMDAtMTAtMjAgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIHR5cGVjazIuYyAoYWJzdHJhY3RfdmlydHVhbHNfZXJyb3IpOiBVc2UgImJlY2F1c2UiIGluc3RlYWQgb2YKCSJzaW5jZSIgaW4gZXJyb3IgbWVzc2FnZS4KCjIwMDAtMTAtMjAgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiB0eXBlY2suYyAoZHViaW91c19jb252ZXJzaW9uX3dhcm5pbmcpOiBTdXBwcmVzcyBpZiBUWVBFX0lTX1NJWkVUWVBFLgoKMjAwMC0xMC0yMCAgSmVmZnJleSBPbGRoYW0gIDxvbGRoYW1AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAocmV2ZXJ0X3N0YXRpY19tZW1iZXJfZm4pOiBGaXhlZCB0eXBvLgoKMjAwMC0xMC0xOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKHN1Ym9iamVjdF9vZmZzZXRfZm4pOiBOZXcgdHlwZS4KCShkZnNfcmVjb3JkX2Jhc2Vfb2Zmc2V0cyk6IFJlbW92ZS4KCShyZWNvcmRfYmFzZV9vZmZzZXRzKTogTGlrZXdpc2UuCgkoZGZzX3NlYXJjaF9iYXNlX29mZnNldHMpOiBMaWtld2lzZS4KCShyZWNvcmRfc3Vib2JqZWN0X29mZnNldCk6IE5ldyBmdW5jdGlvbi4KCShjaGVja19zdWJvYmplY3Rfb2Zmc2V0KTogTGlrZXdpc2UuCgkod2Fsa19zdWJvYmplY3Rfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKHJlY29yZF9zdWJvYmplY3Rfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKGxheW91dF9jb25mbGljdF9wKTogUmVpbXBsZW1lbnQuCgkobGF5b3V0X25vbmVtcHR5X2Jhc2Vfb3JfZmllbGQpOiBDb3JyZWN0IGhhbmRsaW5nIG9mIHR5cGUKCWNvbmZsaWN0cyBkdXJpbmcgbGF5b3V0LgoJKGxheW91dF9lbXB0eV9iYXNlKTogTGlrZXdpc2UuCgkoYnVpbGRfYmFzZV9maWVsZCk6IEFkanVzdCB0byBoYW5kbGUgbmV3IHJlcHJlc2VudGF0aW9uIG9mIGVtcHR5CgliYXNlIG9mZnNldCB0YWJsZS4KCShidWlsZF9iYXNlX2ZpZWxkcyk6IExpa2V3aXNlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogTGlrZXdpc2UuCgkoc3BsYXlfdHJlZV9jb21wYXJlX2ludGVnZXJfY3N0cyk6IE5ldyBmdW5jdGlvbi4KCShsYXlvdXRfY2xhc3NfdHlwZSk6IFVzZSBhIHNwbGF5X3RyZWUsIHJhdGhlciB0aGFuIGEgdmFycmF5LCB0bwoJcmVwcmVzZW50IHRoZSBvZmZzZXRzIG9mIGVtcHR5IGJhc2VzLgoKCSogY3AtdHJlZS5oIChERUNMX0FOVElDSVBBVEVEKTogRG9uJ3QgcmVxdWlyZSBhIEZVTkNUSU9OX0RFQ0wuCgkqIGRlY2wuYyAoc2VsZWN0X2RlY2wpOiBEb24ndCByZXR1cm4gZGVjbGFyYXRpb25zIHRoYXQgYXJlCglERUNMX0FOVElDSVBBVEVELgoKMjAwMC0xMC0xOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoY3BfdHJlZV9pbmRleCk6IEFkZCBDUFRJX0ZBS0VfU1RELgoJKGZha2Vfc3RkX25vZGUpOiBOZXcgbWFjcm8uCgkqIGRlY2wuYyAoaW5fc3RkKTogUmVuYW1lIHRvIC4uLgoJKGluX2Zha2Vfc3RkKTogLi4uIHRoaXMuCgkoZmxhZ19ub19idWlsdGluKTogUmVtb3ZlLgoJKGZsYWdfbm9fbm9uYW5zaV9idWlsdGluKTogTGlrZXdpc2UuCgkod2Fsa19uYW1lc3BhY2VzX3IpOiBVc2UgZmFrZV9zdGRfbm9kZS4KCShwdXNoX25hbWVzcGFjZSk6IFVzZSBzdGRfaWRlbnRpZmllci4KCShwb3BfbmFtZXNwYWNlKTogVXNlIGluX2Zha2Vfc3RkLgoJKGxvb2t1cF9uYW1lX3JlYWwpOiBVc2UgZmFrZV9zdGRfbm9kZS4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFdoZW4gLWZob25vci1zdGQsIGNyZWF0ZSB0aGUgYHN0ZCcKCW5hbWVzcGFjZS4gIERvbid0IGNyZWF0ZSBhIGR1bW15IGZha2Vfc3RkX25vZGUgaW4gdGhhdCBjYXNlLgoJQWRqdXN0IGNhbGwgdG8gY19jb21tb25fbm9kZXNfYW5kX2J1aWx0aW5zLiAgVXNlIHN0ZF9pZGVudGlmaWVyLgoJKGJ1aWx0aW5fZnVuY3Rpb24pOiBQdXQgYnVpbHRpbnMgd2hvc2UgbmFtZXMgZG9uJ3QgYmVnaW4KCXdpdGggYF8nIGluIHRoZSBzdGQgbmFtZXNwYWNlLgoJKiBkZWNsMi5jIChmbGFnX25vX2J1aWx0aW4pOiBSZW1vdmUuCgkoZmxhZ19ub19ub25hbnNpX2J1aWx0aW4pOiBMaWtld2lzZS4KCShzZXRfZGVjbF9uYW1lc3BhY2UpOiBVc2UgZmFrZV9zdGRfbm9kZS4KCSh2YWxpZGF0ZV9ub25tZW1iZXJfdXNpbmdfZGVjbCk6IExpa2V3aXNlLgoJKGRvX3VzaW5nX2RpcmVjdGl2ZSk6IExpa2V3aXNlLgoJKGhhbmRsZV9jbGFzc19oZWFkKTogTGlrZXdpc2UuCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IExpa2V3aXNlLgoJKiBleGNlcHQuYyAoaW5pdF9leGNlcHRpb25fcHJvY2Vzc2luZyk6IFVzZSBzdGRfaWRlbnRpZmllci4KCSogaW5pdC5jIChidWlsZF9tZW1iZXJfY2FsbCk6IFVzZSBmYWtlX3N0ZF9ub2RlLgoJKiBydHRpLmMgKGluaXRfcnR0aV9wcm9jZXNzaW5nKTogVXNlIHN0ZF9pZGVudGlmaWVyLgoKMjAwMC0xMC0xNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoYmFja19lbmRfaG9vayk6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCSogZGVjbDIuYyAoYmFja19lbmRfaG9vayk6IFJlbW92ZSBkZWZpbml0aW9uLgoKCSogZHVtcC5jIChkZXF1ZXVlX2FuZF9kdW1wKTogRHVtcCBUUkVFX1VTRUQuCgoyMDAwLTEwLTE3ICBCcmFkIEx1Y2llciA8bHVjaWVyQG1hdGgucHVyZHVlLmVkdT4KCgkqIHNwZXcuYyAoc25hcmZfZGVmYXJnKTogQ2FzdCAybmQgYXJnIHRvIG9ic3RhY2tfYmxhbmsgdG8gKGludCkuCgoyMDAwLTEwLTE3ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBkZWNsLmMgKFdJTlRfVFlQRSk6IERlZmluZS4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IENyZWF0ZSB0eXBlcyB1bnNpZ25lZF9wdHJkaWZmX3R5cGVfbm9kZSwKCWNfc2l6ZV90eXBlX25vZGUsIHNpZ25lZF9zaXplX3R5cGVfbm9kZSBhbmQgd2ludF90eXBlX25vZGUuCgoyMDAwLTEwLTE3ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBkZWNsMi5jICh3YXJuX21pc3NpbmdfZm9ybWF0X2F0dHJpYnV0ZSk6IE5ldyB2YXJpYWJsZS4KCShsYW5nX2RlY29kZV9vcHRpb24pOiBEZWNvZGUgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUuCgoyMDAwLTEwLTE2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKHF1YWxpZnlfdHlwZSk6IFJlbW92ZS4KCShjb21wb3NpdGVfcG9pbnRlcl90eXBlKTogRml4IGhhbmRsaW5nIG9mIGNvbnZlcnNpb25zIHRvIGBjdiB2b2lkKicuCgoyMDAwLTEwLTE0ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBNYWtlZmlsZS5pbiAocGFyc2UuYywgcGFyc2UuaCk6IEZpeCB0aGluay1vIGluIGxhc3QgcGF0Y2guCgoyMDAwLTEwLTEzICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBNYWtlZmlsZS5pbiAocGFyc2UuYywgcGFyc2UuaCk6IENyZWF0ZSBhdG9taWNhbGx5LgoKMjAwMC0xMC0xMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGN1cnJlbnRfb2JzdGFjayk6IFJlbW92ZS4KCSogZGVjbC5jIChnZ2NfcCk6IFJlbW92ZS4KCShzdGFydF9kZWNsKTogRG9uJ3QgdXNlIGRlY2xfdHJlZV9jb25zLgoJKGdyb2tkZWNsYXJhdG9yKTogRG9uJ3QgdXNlIGJ1aWxkX2RlY2xfbGlzdC4KCShzdGFydF9mdW5jdGlvbik6IERvbid0IHVzZSBkZWNsX3RyZWVfY29ucy4KCShmaW5pc2hfZnVuY3Rpb24pOiBEb24ndCBtZXNzIHdpdGggb2JzdGFja3MuCgkqIGRlY2wyLmMgKGdyb2tfeF9jb21wb25lbnRzKTogRG9uJ3QgdXNlIGJ1aWxkX2RlY2xfbGlzdC4KCSogbGV4LmMgKG1ha2VfY2FsbF9kZWNsYXJhdG9yKTogRG9uJ3QgY2FsbCBkZWNsX3RyZWVfY29ucy4KCShpbXBsaWNpdGx5X2RlY2xhcmVfZm4pOiBEb24ndCBjYWxsIGJ1aWxkX2RlY2xfbGlzdC4KCSogcGFyc2UueSAoZnJvYl9zcGVjcyk6IERvbid0IGNhbGwgYnVpbGRfZGVjbF9saXN0IG9yCglkZWNsX3RyZWVfY29ucy4KCShleHByX29yX2RlY2xhcmF0b3JfaW50ZXJuKTogRG9uJ3QgY2FsbCBkZWNsX3RyZWVfY29ucy4KCShwcmltYXJ5KTogRG9uJ3QgY2FsbCBidWlsZF9kZWNsX2xpc3QuCgkoZmNhc3Rfb3JfYWJzZGNsKTogTGlrZXdpc2UuCgkodHlwZWRfZGVjbHNwZWNzKTogRG9uJ3QgY2FsbCBkZWNsX3RyZWVfY29ucy4KCShyZXNlcnZlZF9kZWNsc3BlY3MpOiBEb24ndCBjYWxsIGJ1aWxkX2RlY2xfbGlzdC4KCShkZWNsbW9kcyk6IExpa2V3aXNlLgoJKHJlc2VydmVkX3R5cGVzcGVjcXVhbHMpOiBMaWtld2lzZS4KCShhZ2dyKTogTGlrZXdpc2UuCgkobmV3X3R5cGVfaWQpOiBMaWtld2lzZS4KCShjdl9xdWFsaWZpZXJzKTogTGlrZXdpc2UuCgkoYWZ0ZXJfdHlwZV9kZWNsYXJhdG9yX2ludGVybik6IExpa2V3aXNlLgoJKG5vdHlwZV9kZWNsYXJhdG9yX2ludGVybik6IExpa2V3aXNlLgoJKGFic2RjbF9pbnRlcm4pOiBMaWtld2lzZS4KCShuYW1lZF9wYXJtKTogTGlrZXdpc2UuCgkqIHB0LmMgKG1vc3Rfc3BlY2lhbGl6ZWRfY2xhc3MpOiBMaWtld2lzZS4KCSogcmVwby5jICh0ZW1wb3Jhcnlfb2JzdGFjayk6IE1ha2UgaXQgYSBzdHJ1Y3R1cmUsIG5vdCBhIHBvaW50ZXIuCgkoaW5pdF9yZXBvKTogSW5pdGlhbGl6ZSBpdC4KCSogc2VhcmNoLmMgKGN1cnJlbnRfb2JzdGFjayk6IFJlbW92ZS4KCSogdHlwZWNrMi5jIChhZGRfZXhjZXB0aW9uX3NwZWNpZmllcik6IERvbid0IGNhbGwgYnVpbGRfZGVjbF9saXN0LgoKMjAwMC0xMC0wOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAY3lnbnVzLmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAoQ1hYX0VYVFJBX0hFQURFUlMpOiBSZW1vdmUuCgkoYysrIGxhbmd1YWdlIHN1cHBvcnQgYml0cyBmb3IgbGliZ2NjKTogUmVtb3ZlLgoJKGMrKy5jbGVhbik6IFJlbW92ZSBjcGxpYjIudHh0IGNsZWFudXAuCgkqIGNvbmZpZy1sYW5nLmluIChoZWFkZXJzLCBsaWIyZnVuY3MpOiBSZW1vdmUuCgoJKiBleGNlcHRpb24uY2MsIG5ldy5jYywgbmV3MS5jYywgbmV3Mi5jYzogUmVtb3ZlIGZpbGVzLgoJKiB0aW5mby5jYywgdGluZm8uaCwgdGluZm8yLmNjLCB2ZWMuY2M6IFJlbW92ZSBmaWxlcy4KCSogaW5jL2N4eGFiaS5oLCBpbmMvZXhjZXB0aW9uLCBpbmMvbmV3OiBSZW1vdmUgZmlsZXMuCgkqIGluYy9uZXcuaCwgaW5jL3R5cGVpbmZvOiBSZW1vdmUgZmlsZXMuCgoyMDAwLTEwLTA4ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBkZWNsLmMgKElOVE1BWF9UWVBFLCBVSU5UTUFYX1RZUEUpOiBEZWZpbmUgaWYgbm90IGFscmVhZHkKCWRlZmluZWQuCgkoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBJbml0aWFsaXplIGludG1heF90eXBlX25vZGUgYW5kCgl1aW50bWF4X3R5cGVfbm9kZS4KCjIwMDAtMTAtMDYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQGN5Z251cy5jb20+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBjcF9sYW5ndWFnZV9mdW5jdGlvbik6IFJlbW92ZSB4X3Jlc3VsdF9ydHguCgkob3JpZ2luYWxfcmVzdWx0X3J0eCk6IFJlbW92ZS4KCSogZGVjbC5jIChzYXZlX2Z1bmN0aW9uX2RhdGEpOiBEb24ndCBjbGVhciB4X3Jlc3VsdF9ydHguCgkobWFya19sYW5nX2Z1bmN0aW9uKTogRG9uJ3QgbWFyayBpdCBlaXRoZXIuCgkqIGV4cHIuYyAoZml4dXBfcmVzdWx0X2RlY2wpOiBSZW1vdmUuCgkqIHNlbWFudGljcy5jIChnZW5ydGxfbmFtZWRfcmV0dXJuX3ZhbHVlKTogRnJvYiB0aGUgcmV0dXJuIGRlY2wKCWJlZm9yZSBjYWxsaW5nIGVtaXRfbG9jYWxfdmFyLgoJKGdlbnJ0bF9maW5pc2hfZnVuY3Rpb24pOiBEb24ndCBjYWxsIGZpeHVwX3Jlc3VsdF9kZWNsLgoJQWx3YXlzIGVtaXQgdGhlIGp1bXAgdG8gcmV0dXJuX2xhYmVsLgoKMjAwMC0xMC0wNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IFNldCBjdXJyZW50IGFjY2VzcyBmb3IgZW51bS4KCSh0c3Vic3RfZW51bSk6IFNldCBmaWxlICYgbGluZSBmb3IgZW51bSBkZWNsLgoKCSogc3Bldy5jICh5eWxleCk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgoyMDAwLTEwLTA1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogc2VtYW50aWNzLmMgKGdlbnJ0bF9maW5pc2hfZnVuY3Rpb24pOiBEb24ndCBpbml0IG9yIGNoZWNrCgljYW5fcmVhY2hfZW5kOyByZW1vdmUgbm9yZXR1cm4gYW5kIHJldHVybiB2YWx1ZSBjaGVja3MuCgoyMDAwLTEwLTA1ICBUb20gVHJvbWV5ICA8dHJvbWV5QGN5Z251cy5jb20+CgoJKiBpbml0LmMgKGJ1aWxkX2phdmFfY2xhc3NfcmVmKTogVXNlIGBidWlsZF9zdGF0aWNfbmFtZScgd2l0aCBhCglzdWZmaXgsIG5vdCBhIHByZWZpeCwgdG8gYnVpbGQgdGhlIGNsYXNzIG9iamVjdCdzIG5hbWUuCgoyMDAwLTEwLTA1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChhY2Nlc3Nfa2luZCk6IEZpeCBjb21tZW50IHR5cG8uCgkqIGRlY2wyLmMgKGdyb2tmaWVsZCk6IEZpeCBkaWFnbm9zdGljIHR5cG8uCgkqIHNlbWFudGljcy5jIChmaW5pc2hfdGVtcGxhdGVfdHlwZSk6IEZpeCBjb21tZW50IHR5cG8uCgkoZmluaXNoX3F1YWxpZmllZF9vYmplY3RfY2FsbF9leHByKTogTGlrZXdpc2UuCgoyMDAwLTEwLTA1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAodHN1YnN0X2V4cHIsIERFQ0xfU1RNVCBjYXNlKTogRG9uJ3QgcHJvY2VzcyBpZgoJdHN1YnN0aW5nIGZhaWxzLgoKMjAwMC0xMC0wNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHNwZXcuYyAoZnJvYl9pZCk6IE5ldyBzdGF0aWMgZnVuY3Rpb24uCgkoZnJvYl9vcG5hbWUpOiBVc2UgaXQuCgkoeXlsZXgpOiBVc2UgaXQuCgoyMDAwLTEwLTAxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChsYW5nX21hcmtfZmFsc2VfbGFiZWxfc3RhY2spOiBSZW1vdmUuCgkqIGxleC5jIChjcF9tYW5nX2xhbmdfdHlwZSk6IFVzZSBnZ2NfYWxsb2NfY2xlYXJlZC4KCjIwMDAtMDktMzAgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGd4eGludC50ZXhpOiBVc2UgQGVtYWlsIGZvciBmb3JtYXR0aW5nIGVtYWlsIGFkZHJlc3Nlcy4KCjIwMDAtMDktMjkgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmM6IFJlbW92ZSBkaXJlY3Qgb2JzdGFjayBtYW5pcHVsYXRpb24uICBSZXBsYWNlIHdpdGgKCW91dHB1dF9idWZmZXItYmFzZWQgZm9ybWF0dGluZy4gIEFkanVzdCBjYWxscyB0byByZW1vdmVkIG1hY3Jvcy4KCShvYnN0YWNrX2NodW5rX2FsbG9jLCBvYnN0YWNrX2NodW5rX2ZyZWUpOiBSZW1vdmUuCgkoT0JfSU5JVCwgT0JfUFVUQywgT0JfUFVUQzIsIE9CX1BVVFMsIE9CX1BVVElELCBPQl9QVVRDUCwKCU9CX0ZJTklTSCwgT0JfUFVUSSwgT0JfRU5EX1RFTVBMQVRFKTogTGlrZXdpc2UuCgoyMDAwLTA5LTI0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogaXIudGV4aTogTW92ZSB0byAuLi9jLXRyZWUudGV4aS4KCjIwMDAtMDktMjAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZGVjbDIuYyAoZ2V0X2d1YXJkKTogQ2hlY2sgREVDTF9GVU5DVElPTl9TQ09QRV9QLgoKMjAwMC0wOS0yMSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZXJyZm4uYzogTW92ZSBkZWNsYXJhdGlvbiBvZiBjcF9wcmludGVyIGFuZCBjcF9wcmludGVycyB0byAuLi4KCSogY3AtdHJlZS5oOiAuLi4gaGVyZS4KCgkqIGVycm9yLmM6IFJlbW92ZSBkZWNsYXJhdGlvbiBvZiBjcF9wcmludGVyLgoKMjAwMC0wOS0yMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWUuYyAobWFya19sb2NhbF9mb3JfcmVtYXBfcik6IEhhbmRsZSBDQVNFX0xBQkVMcy4KCjIwMDAtMDktMjAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZXhjZXB0LmM6IERlbGV0ZSAjaWYgMDpkIEVYQ0VQVElPTl9TRUNUSU9OX0FTTV9PUC1kZWZhdWx0IGFuZAoJdXNlcnMuCgoyMDAwLTA5LTE4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChzdGFydF9mdW5jdGlvbik6IFJvYnVzdGlmeS4KCjIwMDAtMDktMTggIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGNwLXRyZWUuaCAoY2hlY2tfZnVuY3Rpb25fZm9ybWF0KTogQWNjZXB0IGEgYHN0YXR1cycgcGFyYW1ldGVyLgoKCSogY2FsbC5jLCB0eXBlY2suYzogVXBkYXRlcyBjYWxscyB0byBgY2hlY2tfZnVuY3Rpb25fZm9ybWF0Jy4KCjIwMDAtMDktMTcgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAY3lnbnVzLmNvbT4KCgkqIGRlY2wyLmMgKGhhbmRsZV9jbGFzc19oZWFkKTogQWx3YXlzIHB1c2ggc29tZSBzY29wZSBldmVuCglpbiB0aGUgZXJyb3IgY2FzZS4KCjIwMDAtMDktMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBjcF9sYW5ndWFnZV9mdW5jdGlvbik6IFJlbW92ZQoJeF9zY29wZV9zdG10X3N0YWNrIGFuZCBuYW1lX2RlY2xhcmVkLgoJKGN1cnJlbnRfc2NvcGVfc3RtdF9zdGFjayk6IFJlbW92ZS4KCShmdW5jdGlvbl9uYW1lX2RlY2xhcmVkX3ApOiBOZXcgbWFjcm8uCgkoc3RydWN0IGxhbmdfZGVjbF9mbGFncyk6IFVzZSBjX2xhbmdfZGVjbCBhcyBhIGJhc2UgY2xhc3MuCgkoY29udGV4dCk6IFJlbW92ZS4KCShzdHJ1Y3QgbGFuZ19kZWNsKTogUmVwbGFjZSBzYXZlZF90cmVlIHdpdGggY29udGV4dC4KCShERUNMX0ZSSUVORF9DT05URVhUKTogQWRqdXN0IGFjY29yZGluZ2x5LgoJKFNFVF9ERUNMX0ZSSUVORF9DT05URVhUKTogTGlrZXdpc2UuCgkoREVDTF9WSVJUVUFMX0NPTlRFWFQpOiBMaWtld2lzZS4KCShERUNMX1NBVkVEX1RSRUUpOiBSZW1vdmUuCgkoQ19ERUNMQVJFRF9MQUJFTF9GTEFHKTogTGlrZXdpc2UuCgkoY3BsdXNfZXhwYW5kX2V4cHJfc3RtdCk6IERvbid0IGRlY2xhcmUuCgkoYWRkX2RlY2xfc3RtdCk6IExpa2V3aXNlLgoJKGFkZF9zY29wZV9zdG10KTogTGlrZXdpc2UuCgkqIGRlY2wuYyAobWFya19zdG10X3RyZWUpOiBSZW1vdmUuCgkoY2FzZV9jb21wYXJlKTogTGlrZXdpc2UuCgkoZmluaXNoX2Nhc2VfbGFiZWwpOiBVc2UgY19hZGRfY2FzZV9sYWJlbC4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFNldCBtb3JlIGxhbmd1YWdlLXNwZWNpZmljIGhvb2tzLgoJKGJ1aWxkX2VudW1lcmF0b3IpOiBGaXggdHlwbyBpbiBjb21tZW50LgoJKGNwbHVzX2V4cGFuZF9leHByX3N0bXQpOiBSZW1vdmUuCgkobWFya19sYW5nX2Z1bmN0aW9uKTogVXNlIG1hcmtfY19sYW5ndWFnZV9mdW5jdGlvbi4KCShsYW5nX21hcmtfdHJlZSk6IFVzZSBjX21hcmtfbGFuZ19kZWNsLgoJKiBkZWNsMi5jOiBDaGFuZ2Ugb3JkZXIgb2YgaW5jbHVzaW9uLgoJKiBleGNlcHQuYzogTGlrZXdpc2UuCgkqIGV4cHIuYyAoY3BsdXNfZXhwYW5kX2V4cHIpOiBSZW1vdmUgaGFuZGxpbmcgb2YgU1RNVF9FWFBSLiAgRmFsbAoJYmFjayBvbiBjX2V4cGFuZF9leHByLgoJKiBmcmllbmQuYzogSW5jbHVkZSBleHByLmguCgkqIGluaXQuYzogQ2hhbmdlIG9yZGVyIG9mIGluY2x1c2lvbi4KCSogTWFrZWZpbGUuaW46IFVwZGF0ZSBkZXBlbmRlbmNpZXMuCgkqIGxleC5oIChmcmVlX2xhbmdfZGVjbF9jaGFpbik6IFJlbW92ZS4KCSogb3B0aW1pemUuYyAobWF5YmVfY2xvbmVfYm9keSk6IFVzZSBmdW5jdGlvbl9uYW1lX2RlY2xhcmVkX3AuCgkqIHB0LmMgKGJ1aWxkX3RlbXBsYXRlX2RlY2wpOiBEb24ndCBjb3B5IERFQ0xfVklSVFVBTF9DT05URVhUIGlmCglpdCBkb2Vzbid0IGV4aXN0LgoJKGluc3RhbnRpYXRlX2RlY2wpOiBVc2UgZnVuY3Rpb25fbmFtZV9kZWNsYXJlZF9wLgoJKiBzZW1hbnRpY3MuYyAobGFuZ19leHBhbmRfZXhwcl9zdG10KTogUmVtb3ZlLgoJKHNldF9jdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQpOiBMaWtld2lzZS4KCShjdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQpOiBMaWtld2lzZS4KCShiZWdpbl9jb21wb3VuZF9zdG10KTogVXNlIGZ1bmN0aW9uX25hbWVfZGVjbGFyZWRfcC4KCShhZGRfZGVjbF9zdG10KTogUmVtb3ZlLgoJKHNldHVwX3Z0YmxfcHRyKTogVXNlIGZ1bmN0aW9uX25hbWVfZGVjbGFyZWRfcC4KCShhZGRfc2NvcGVfc3RtdCk6IFJlbW92ZS4KCShjdXJyZW50X3Njb3BlX3N0bXRfc3RhY2spOiBOZXcgZnVuY3Rpb24uCgkoY3BfZXhwYW5kX3N0bXQpOiBEb24ndCBoYW5kbGUgU0NPUEVfU1RNVHMuCgkoZXhwYW5kX2JvZHkpOiBVc2UgZnVuY3Rpb25fbmFtZV9kZWNsYXJlZF9wLgoJKiB0cmVlLmMgKGNwX3N0YXRlbWVudF9jb2RlX3ApOiBEb24ndCBpbmNsdWRlIFNDT1BFX1NUTVQuCgkqIHR5cGVjay5jOiBDaGFuZ2Ugb3JkZXIgb2YgaW5jbHVkZXMuCgkoY29udmVydF9zZXF1ZW5jZSk6IFJlbW92ZS4KCjIwMDAtMDktMTQgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGxleC5jIChyZXN3b3Jkcyk6IEFkZCBfQ29tcGxleC4KCjIwMDAtMDktMTQgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiBNYWtlLWxhbmcuaW4gKGNwbGliMi50eHQpOiBEZXBlbmQgb24gY3AvTWFrZWZpbGUuCgoyMDAwLTA5LTEzICBKLiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGluaXQuYyAoYmVnaW5faW5pdF9zdG10cyk6IERvbid0IHVzZSAvLyBjb21tZW50cy4KCjIwMDAtMDktMTIgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZGVjbC5jIChtYXliZV9kZWR1Y2Vfc2l6ZV9mcm9tX2FycmF5X2luaXQpOiBTZXQgZG9fZGVmYXVsdCBmb3IKCWFsbCBub24tZXh0ZXJuIGFycmF5cy4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBDb21wbGFpbiBhYm91dCAnZnJpZW5kIFQnIGZvciBpbXBsaWNpdAoJdHlwZW5hbWVzLCB0b28uICBEb3duZ3JhZGUgY29tcGxhaW50IHRvIHBlZHdhcm4uCgkoeHJlZl90YWcpOiBXYXJuIGFib3V0IHN1cnByaXNpbmcgYmVoYXZpb3Igb2YgJ2ZyaWVuZCBzdHJ1Y3QgVCcuCgkqIGRlY2wyLmMgKGhhbmRsZV9jbGFzc19oZWFkKTogR2VuZXJhdGUgYSBUWVBFTkFNRV9UWVBFIGZvcgoJJ2NsYXNzIFRoaXM6OkluaGVyaXRlZCcuCgoyMDAwLTA5LTEyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChmaW5pc2hfY2FzZV9sYWJlbCk6IEdpdmVuIHRoZSBMQUJFTF9ERUNMIGEKCURFQ0xfQ09OVEVYVC4KCjIwMDAtMDktMTIgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmMgKFRGRl9QTEFJTl9JREVOVElGSUVSLCBURkZfTkFNRVNQQUNFX1NDT1BFLAoJVEZGX0NMQVNTX1NDT1BFLCBURkZfQ0hBU0VfTkFNRVNQQUNFX0FMSUFTLCBURkZfQ0hBU0VfVFlQREVGLAoJVEZGX0RFQ0xfU1BFQ0lGSUVSUywgVEZGX0NMQVNTX0tFWV9PUl9FTlVNLCBURkZfUkVUVVJOX1RZUEUsCglURkZfRlVOQ1RJT05fREVGQVVMVF9BUkdVTUVOVFMsIFRGRl9FWENFUFRJT05fU1BFQ0lGSUNBVElPTiwKCVRGRl9URU1QTEFURV9IRUFERVIsIFRGRl9URU1QTEFURV9ERUZBVUxUX0FSR1VNRU5UUywgVEZGX1NDT1BFKToKCU5ldyBtYWNyb3MuCgkoc29ycnlfZm9yX3Vuc3VwcG9ydGVkX3RyZWUsIHByaW50X3Njb3BlX29wZXJhdG9yLAoJcHJpbnRfbGVmdF9wYXJlbiwgcHJpbnRfcmlnaHRfcGFyZW4sIHByaW50X2xlZnRfYnJhY2tldCwKCXByaW50X3JpZ2h0X2JyYWNrZXQsIHByaW50X3doaXRlc3BhY2UpOiBMaWtld2lzZS4KCShhZ2dyX3ZhcmlldHkpOiBSZW5hbWUgdG8gY2xhc3Nfa2V5X29yX2VudW0uCgkocHJpbnRfdHlwZSk6IFJlbmFtZSB0byBwcmludF90eXBlX2lkLgoJKHByaW50X3R5cGVfc3BlY2lmaWVyX3NlcSwgcHJpbnRfc2ltcGxlX3R5cGVfc3BlY2lmaWVyLAoJcHJpbnRfZWxhYm9yYXRlZF90eXBlX3NwZWNpZmllciwKCXByaW50X3Jlc3Rfb2ZfYWJzdHJhY3RfZGVjbGFyYXRvciwKCXByaW50X3BhcmFtZXRlcl9kZWNsYXJhdGlvbl9jbGF1c2UsIHByaW50X2V4Y2VwdGlvbl9zcGVjaWZpY2F0aW9uLAoJcHJpbnRfbmVzdGVkX25hbWVfc3BlY2lmaWVyLCBwcmludF90ZW1wbGF0ZV9pZCwKCXR5cGVkZWZfb3JpZ2luYWxfbmFtZSwgIHByaW50X3RlbXBsYXRlX2FyZ3VtZW50X2xpc3Rfc3RhcnQsCglwcmludF90ZW1wbGF0ZV9hcmd1bWVudF9saXN0X2VuZCk6IE5ldyBmdW5jdGlvbnMuCgoyMDAwLTA5LTExICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpci50ZXhpOiBBZGQgbW9yZSBkb2N1bWVudGF0aW9uLgoKMjAwMC0wOS0xMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoc3RydWN0IHNhdmVkX3Njb3BlKTogUmVtb3ZlIHhfZnVuY3Rpb25fcGFybXMuCgkoY3VycmVudF9mdW5jdGlvbl9wYXJtcyk6IERvbid0IGRlZmluZS4KCShzdHJ1Y3QgY3BfbGFuZ3VhZ2VfZnVuY3Rpb24pOiBSZW1vdmUgcGFybXNfc3RvcmVkLgoJKGN1cnJlbnRfZnVuY3Rpb25fanVzdF9hc3NpZ25lZF90aGlzKTogRG9uJ3QgZGVmaW5lLgoJKGN1cnJlbnRfZnVuY3Rpb25fcGFybXNfc3RvcmVkKTogTGlrZXdpc2UuCgkoc3RhdGljX2N0b3JzKTogRGVjbGFyZS4KCShzdGF0aWNfZHRvcnMpOiBMaWtld2lzZS4KCShTRl9FWFBBTkQpOiBEb24ndCBkZWZpbmUuCgkoZXhwYW5kX3N0YXJ0X2Vhcmx5X3RyeV9zdG10cyk6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCShzdG9yZV9wYXJtX2RlY2xzKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoc3RhdGljX2N0b3JzKTogRG9uJ3QgZGVjbGFyZS4KCShzdGF0aWNfZHRvcnMpOiBMaWtld2lzZS4KCShzdHJ1Y3QgYmluZGluZ19sZXZlbCk6IFJlbW92ZSB0aGlzX2Jsb2NrLgoJKHBvcGxldmVsKTogUmVtb3ZlIGRlYWQgY29kZS4KCShzZXRfYmxvY2spOiBMaWtld2lzZS4KCShtYXJrX2JpbmRpbmdfbGV2ZWwpOiBEb24ndCBtYXJrIHRoaXNfYmxvY2suCgkobWFya19zYXZlZF9zY29wZSk6IERvbid0IG1hcmsgeF9mdW5jdGlvbl9wYXJtcy4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IERvbid0IGFkZCBjdXJyZW50X2Z1bmN0aW9uX3Bhcm1zIGFzIGEgR0MKCXJvb3QuCgkoY2hlY2tfZnVuY3Rpb25fdHlwZSk6IENoYW5nZSBwcm90b3R5cGUuCgkoc3RhcnRfZnVuY3Rpb24pOiBSZW1vdmUgUlRMLWdlbmVyYXRpb24gY29kZS4KCShleHBhbmRfc3RhcnRfZWFybHlfdHJ5X3N0bXRzKTogUmVtb3ZlLgoJKHN0b3JlX3Bhcm1fZGVjbHMpOiBHaXZlIGl0IGludGVybmFsIGxpbmthZ2UuICBSZW1vdmUKCVJUTC1nZW5lcmF0aW9uIGNvZGUuCgkoZmluaXNoX2Z1bmN0aW9uKTogUmVtb3ZlIFJUTC1nZW5lcmF0aW9uIGNvZGUuCgkqIGRlY2wyLmMgKHN0YXRpY19jdG9ycyk6IEZpeCBmb3JtYXR0aW5nLgoJKHN0YXRpY19kdG9ycyk6IExpa2V3aXNlLgoJKiBtZXRob2QuYyAodXNlX3RodW5rKTogRG9uJ3QgY2FsbCBzdG9yZV9wYXJtX2RlY2xzLgoJKHN5bnRoZXNpemVfbWV0aG9kKTogTGlrZXdpc2UuCgkqIG9wdGltaXplLmMgKG1heWJlX2Nsb25lX2JvZHkpOiBMaWtld2lzZS4KCSogcGFyc2UueSAoZm4uZGVmMik6IExpa2V3aXNlLgoJKC5zZXRfYmFzZV9pbml0KTogTGlrZXdpc2UuCgkobm9kZWNscyk6IExpa2V3aXNlLgoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoc3ludGhlc2l6ZV90aW5mb19mbik6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYyAoZ2VucnRsX3RyeV9ibG9jayk6IFNpbXBsaWZ5LgoJKGV4cGFuZF9ib2R5KTogVXNlIGdlbnJ0bF9zdGFydF9mdW5jdGlvbiBhbmQKCWdlbnJ0bF9maW5pc2hfZnVuY3Rpb24uCgkoZ2VucnRsX3N0YXJ0X2Z1bmN0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKGdlbnJ0bF9maW5pc2hfZnVuY3Rpb24pOiBMaWtld2lzZS4KCjIwMDAtMDktMTEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlcnJvci5jIChjcF90cmVlX3ByaW50ZXIsIGNhc2UgJ1AnKTogQXBwZW5kIGJyZWFrLgoKMjAwMC0wOS0xMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZnJvYl9vcG5hbWUpOiBEZWNsYXJlLgoJKiBwYXJzZS55IChzYXZlZF9zY29wZXMpOiBOZXcgc3RhdGljIHZhcmlhYmxlLgoJKGNwX3BhcnNlX2luaXQpOiBBZGp1c3QuCgkoZG9faWQpOiBJZiBsYXN0aWRkZWNsIGlzIE5VTEwsIGRvIGRvX2lkZW50aWZpZXIuCgkob3BlcmF0b3IpOiBTYXZlIHNjb3BlIGluZm9ybWF0aW9uLgoJKHVub3BlcmF0b3IpOiBOZXcgcmVkdWN0aW9uLiBSZXN0b3JlIHNjb3BlIGluZm9ybWF0aW9uLgoJKG9wZXJhdG9yX25hbWUpOiBBcHBlbmQgdW5vcGVyYXRvci4gQ2FsbCBmcm9iX29wbmFtZS4KCSogc3Bldy5jIChmcm9iX29wbmFtZSk6IERlZmluZS4KCjIwMDAtMDktMTAgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGRlY2wuYywgcnR0aS5jOiBJbmNsdWRlIGRlZmF1bHRzLmggaWYgbm90IGFscmVhZHkgaW5jbHVkZWQuCglEb24ndCBkZWZpbmUgdGhlICpfVFlQRV9TSVpFIG1hY3Jvcy4KCjIwMDAtMDktMDkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHB1c2hfc3dpdGNoKTogQ2hhbmdlIHByb3RvdHlwZS4KCShjaGVja19jcF9jYXNlX3ZhbHVlKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKGRlY2xfY29uc3RhbnRfdmFsdWUpOiBMaWtld2lzZS4KCSogZGVjbC5jIChzdHJ1Y3QgY3Bfc3dpdGNoKTogQWRkIHN3aXRjaF9zdG10IGFuZCBjYXNlcy4KCShjYXNlX2NvbXBhcmUpOiBOZXcgZnVuY3Rpb24uCgkocHVzaF9zd2l0Y2gpOiBTZXQgc3dpdGNoX3N0bXQuICBJbml0aWFsaXplIGNhc2VzLgoJKHBvcF9zd2l0Y2gpOiBDbGVhbiB1cCBjYXNlcy4KCShkZWZpbmVfY2FzZV9sYWJlbCk6IFJlbmFtZSB0byAuLi4KCShmaW5pc2hfY2FzZV9sYWJlbCk6IC4uLiB0aGlzLiAgRG8gc2VtYW50aWMgYW5hbHlzaXMgZm9yIGNhc2UKCWxhYmVscyBoZXJlLgoJKHN0YXJ0X2Z1bmN0aW9uKTogQ29ycmVjdCBjb21tZW50LgoJKiBkZWNsMi5jIChjaGVja19jcF9jYXNlX3ZhbHVlKTogUmVtb3ZlLgoJKiBleHByLmMgKGRvX2Nhc2UpOiBSZW1vdmUuCgkqIHB0LmMgKHRzdWJzdF9leHByKTogQWRqdXN0IGNhbGwgdG8gZmluaXNoX2Nhc2VfbGFiZWwuCgkqIHNlbWFudGljcy5jIChnZW5ydGxfZG9fcG9wbGV2ZWwpOiBSZW1vdmUgZGVjbGFyYXRpb24uCgkoUkVDSEFJTl9TVE1UUyk6IFJlbW92ZS4KCShmaW5pc2hfYnJlYWtfc3RtdCk6IFVzZSBidWlsZF9icmVha19zdG10LgoJKGZpbmlzaF9jb250aW51ZV9zdG10KTogVXNlIGJ1aWxkX2NvbnRpbnVlX3N0bXQuCgkoZmluaXNoX3N3aXRjaF9jb25kKTogQWRqdXN0IGNvbmRpdGlvbiBoZXJlLCByYXRlciB0aGFuIGluCgljX2V4cGFuZF9zdGFydF9jYXNlLgoJKGZpbmlzaF9jYXNlX2xhYmVsKTogUmVtb3ZlLgoJKiB0eXBlY2suYyAoY19leHBhbmRfcmV0dXJuKTogUmVtb3ZlLgoJKGNfZXhwYW5kX3N0YXJ0X2Nhc2UpOiBMaWtld2lzZS4KCjIwMDAtMDktMDcgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGlyLnRleGk6IERvY3VtZW50IHR5cGUgbm9kZXMuCgoyMDAwLTA5LTA2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChpbml0X2NwX3NlbWFudGljcyk6IERlY2xhcmUuCgkoZ2VucnRsX3RyeV9ibG9jayk6IERvbid0IGRlY2xhcmUuCgkoZ2VucnRsX2hhbmRsZXIpOiBMaWtld2lzZS4KCShnZW5ydGxfY2F0Y2hfYmxvY2spOiBMaWtld2lzZS4KCShnZW5ydGxfY3Rvcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3N1Ym9iamVjdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9kb19wb3BsZXZlbCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9uYW1lZF9yZXR1cm5fdmFsdWUpOiBMaWtld2lzZS4KCSogbGV4LmMgKGluaXRfcGFyc2UpOiBDYWxsIGluaXRfY3Bfc2VtYW50aWNzLgoJKiBzZW1hbnRpY3MuYyAoZ2VucnRsX3RyeV9ibG9jayk6IEdpdmUgaXQgaW50ZXJuYWwgbGlua2FnZS4KCShnZW5ydGxfaGFuZGxlcik6IExpa2V3aXNlLgoJKGdlbnJ0bF9jYXRjaF9ibG9jayk6IExpa2V3aXNlLgoJKGdlbnJ0bF9jdG9yX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfc3Vib2JqZWN0KTogTGlrZXdpc2UuCgkoZ2VucnRsX2RvX3BvcGxldmVsKTogTGlrZXdpc2UuCgkoZ2VucnRsX25hbWVkX3JldHVybl92YWx1ZSk6IExpa2V3aXNlLgoJKGxhbmdfZXhwYW5kX3N0bXQpOiBSZW5hbWUgdG8gLi4uCgkoY3BfZXhwYW5kX3N0bXQpOiAuLi4gdGhpcy4gIE9ubHkgaGFuZGxlIEMrKy1zcGVjaWZpYyBub2Rlcy4KCShpbml0X2NwX3NlbWFudGljcyk6IERlZmluZS4KCgkqIGRlY2wuYyAoaW5pdGlhbGl6ZV9sb2NhbF92YXIpOiBSZW1vdmUgUlRMLWdlbmVyYXRpbmcgY29kZS4KCSogc2VtYW50aWNzLmMgKGdlbnJ0bF90cnlfYmxvY2spOiBGaXggZm9ybWF0dGluZy4KCglNb3ZlIHN0YXRlbWVudC10cmVlIGZhY2lsaXRpZXMgZnJvbSBDKysgdG8gQyBmcm9udC1lbmQuCgkqIGNwLXRyZWUuaCAoY3BfdHJlZV9pbmRleCk6IFJlbW92ZSBDUFRJX1ZPSURfWkVSTy4KCSh2b2lkX3plcm9fbm9kZSk6IFJlbW92ZS4KCShzdG10X3RyZWUpOiBMaWtld2lzZS4KCShzY29wZV9jaGFpbik6IEFkanVzdC4KCShsYW5ndWFnZV9mdW5jdGlvbik6IFJlbmFtZSB0byBjcF9sYW5ndWFnZV9mdW5jdGlvbi4KCShjcF9mdW5jdGlvbl9jaGFpbik6IEFkanVzdC4KCShjdXJyZW50X3N0bXRfdHJlZSk6IFJlbW92ZS4KCShsYXN0X3RyZWUpOiBMaWtld2lzZS4KCShsYXN0X2V4cHJfdHlwZSk6IExpa2V3aXNlLgoJKHN0cnVjdCBsYW5nX2RlY2wpOiBBZGp1c3QuCgkoU1RNVF9JU19GVUxMX0VYUFJfUCk6IFJlbW92ZS4KCShhZGRfdHJlZSk6IFJlbW92ZS4KCShiZWdpbl9zdG10X3RyZWUpOiBMaWtld2lzZS4KCShmaW5pc2hfc3RtdF90cmVlKTogTGlrZXdpc2UuCgkod2Fsa190cmVlX2ZuKTogTGlrZXdpc2UuCgkod2Fsa19zdG10X3RyZWUpOiBMaWtld2lzZS4KCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdCk6IFJlcGxhY2UgdXNlIG9mIGFkZF90cmVlIHdpdGggYWRkX3N0bXQuCgkqIGRlY2wuYyAobWFya19zdG10X3RyZWUpOiBBZGp1c3QgdHlwZS4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IERvbid0IGJ1aWxkIHZvaWRfemVyb19ub2RlLgoJKGluaXRpYWxpemVfbG9jYWxfdmFyKTogQWRqdXN0IHVzYWdlIG9mIGN1cnJlbnRfc3RtdF90cmVlLgoJKGZpbmlzaF9lbnVtKTogVXNlIGFkZF9zdG10LCBub3QgYWRkX3RyZWUuCgkoc2F2ZV9mdW5jdGlvbl9kYXRhKTogQWRqdXN0IHVzZSBvZiBsYW5ndWFnZV9mdW5jdGlvbi4KCShmaW5pc2hfY29uc3RydWN0b3JfYm9keSk6IFVzZSBhZGRfc3RtdCwgbm90IGFkZF90cmVlLgoJKGZpbmlzaF9kZXN0cnVjdG9yX2JvZHkpOiBMaWtld2lzZS4KCShwdXNoX2NwX2Z1bmN0aW9uX2NvbnRleHQpOiBBZGp1c3QgdXNlIG9mIGxhbmd1YWdlX2Z1bmN0aW9uLgoJKHBvcF9jcF9mdW5jdGlvbl9jb250ZXh0KTogTGlrZXdpc2UuCgkobWFya19sYW5nX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkobWFya19jcF9mdW5jdGlvbl9jb250ZXh0KTogTGlrZXdpc2UuCgkqIGluaXQuYyAoYnVpbGRfYWdncl9pbml0KTogQWRqdXN0IHVzZSBvZiBjdXJyZW50X3N0bXRfdHJlZS4KCShidWlsZF92ZWNfaW5pdCk6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYyAoU0VUX0xBU1RfU1RNVCk6IFJlbW92ZS4KCShSRUNIQUlOX1NUTVRTKTogRG9uJ3QgdXNlIGl0LgoJKHN0bXRzX2FyZV9mdWxsX2V4cHJzX3ApOiBBZGp1c3QgdXNlIG9mIGN1cnJlbnRfc3RtdF90cmVlLgoJKGN1cnJlbnRfc3RtdF90cmVlKTogRGVmaW5lLgoJKGFkZF90cmVlKTogUmVtb3ZlLgoJKGZpbmlzaF9nb3RvX3N0bXQpOiBVc2UgYWRkX3N0bXQsIG5vdCBhZGRfdHJlZS4KCShmaW5pc2hfZXhwcl9zdG10KTogTGlrZXdpc2UuCgkoYmVnaW5faWZfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF90aGVuX2NsYXVzZSk6IExpa2V3aXNlLgoJKGJlZ2luX3doaWxlX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl9kb19zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX3JldHVybl9zdG10KTogTGlrZXdpc2UuCgkoYmVnaW5fZm9yX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfYnJlYWtfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9jb250aW51ZV9zdG10KTogTGlrZXdpc2UuCgkoYmVnaW5fc3dpdGNoX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfY2FzZV9sYWJlbCk6IExpa2V3aXNlLgoJKGJlZ2luX3RyeV9ibG9jayk6IExpa2V3aXNlLgoJKGJlZ2luX2Z1bmN0aW9uX3RyeV9ibG9jayk6IExpa2V3aXNlLgoJKGJlZ2luX2hhbmRsZXIpOiBMaWtld2lzZS4KCShiZWdpbl9jYXRjaF9ibG9jayk6IExpa2V3aXNlLgoJKGJlZ2luX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl9hc21fc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9hc21fc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9sYWJlbF9zdG10KTogTGlrZXdpc2UuCgkoYWRkX2RlY2xfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9zdWJvYmplY3QpOiBMaWtld2lzZS4KCShmaW5pc2hfZGVjbF9jbGVhbnVwKTogTGlrZXdpc2UuCgkoZmluaXNoX25hbWVkX3JldHVybl92YWx1ZSk6IExpa2V3aXNlLgoJKHNldHVwX3Z0YmxfcHRyKTogTGlrZXdpc2UuCgkoYWRkX3Njb3BlX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfc3RtdF9leHByKTogTGlrZXdpc2UuCgkocHJ1bmVfdW51c2VkX2RlY2xzKTogUmVtb3ZlLgoJKGJlZ2luX3N0bXRfdHJlZSk6IExpa2V3aXNlLgoJKGZpbmlzaF9zdG10X3RyZWUpOiBMaWtld2lzZS4KCShwcmVwX3N0bXQpOiBBZGp1c3QgdXNlIG9mIGN1cnJlbnRfc3RtdF90cmVlLgoJKGxhbmdfZXhwYW5kX3N0bXQpOiBMaWtld2lzZS4KCSogdHJlZS5jIChzdGF0ZW1lbnRfY29kZV9wKTogUmVtb3ZlLgoJKGNwX3N0YXRlbWVudF9jb2RlX3ApOiBOZXcgZnVuY3Rpb24uCgkod2Fsa19zdG10X3RyZWUpOiBSZW1vdmUuCgkoaW5pdF90cmVlKTogU2V0IGxhbmdfc3RhdGVtZW50X2NvZGVfcC4KCjIwMDAtMDktMDYgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCglJbnRlZ3JhdGVkIHByZXByb2Nlc3Nvci4KCgkqIE1ha2UtbGFuZy5pbiwgTWFrZWZpbGUuaW46IFJlbW92ZSBhbGwgcmVmZXJlbmNlcyB0byBpbnB1dC5jLAoJZ3h4LmdwZXJmLCBhbmQgaGFzaC5oLiAgQWRkIC4uL2MtbGV4Lm8gdG8gQ19PQkpTLgoJKiBneHguZ3BlcmYsIGhhc2guaCwgaW5wdXQuYzogRGVsZXRlLgoJKiBsYW5nLXNwZWNzLmg6IFBhc3MgLWxhbmctYysrIHRvIGNjMXBsdXMgc28gY3BwbGliIGlzCglpbml0aWFsaXplZCBwcm9wZXJseS4KCgkqIGNsYXNzLmMgKGZpeHVwX3BlbmRpbmdfaW5saW5lKTogVGFrZSBhIHRyZWUsIG5vdCBhCglzdHJ1Y3QgcGVuZGluZ19pbmxpbmUgKi4gIEFsbCBjYWxsZXJzIGNoYW5nZWQuCgkoaW5pdF9jbGFzc19wcm9jZXNzaW5nKTogU2V0IFJJRF9QVUJMSUMsIFJJRF9QUklWQVRFLAoJUklEX1BST1RFQ1RFRCBlbnRyaWVzIGluIHJpZHBvaW50ZXJzW10gYXJyYXkgaGVyZS4KCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBEbyBub3QgcmVmZXIgdG8gc3RydWN0CglwZW5kaW5nX2lubGluZS4KCShyZWNvcmRfYnVpbHRpbl90eXBlLCBpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFVzZSBSSURfTUFYIG5vdAoJQ1BfUklEX01BWC4KCShncm9rZGVjbGFyYXRvcik6IFVzZSBDX0lTX1JFU0VSVkVEX1dPUkQuCgkqIGRlY2wyLmMgKGxhbmdfZGVjb2RlX29wdGlvbik6IElnbm9yZSAtbGFuZy1jKysgZm9yIHNha2Ugb2YKCWNwcGxpYi4KCShncm9rX3hfY29tcG9uZW50cyk6IERvIG5vdCBpbnNwZWN0IHBlbmRpbmdfaW5saW5lcyBjaGFpbi4KCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmdfaWRlbnRpZmllcik6IEFkZCByaWRfY29kZSBlbnRyeS4KCShDX0lTX1JFU0VSVkVEX1dPUkQsIENfUklEX0NPREUsIENfUklEX1lZQ09ERSk6IE5ldy4KCShmbGFnX25vX2dudV9rZXl3b3JkcywgZmxhZ19vcGVyYXRvcl9uYW1lcywgcmlkX3RvX3l5KTogRGVjbGFyZS4KCShERUZBUkdfTEVOR1RILCBzdHJ1Y3QgcGVuZGluZ19pbmxpbmUsIFRJTUVfSURFTlRJRklFUl9USU1FLAoJVElNRV9JREVOVElGSUVSX0ZJTEVJTkZPKTogS2lsbC4KCVVwZGF0ZSBwcm90b3R5cGVzLgoJKiBsZXguaDogRXhwdW5nZSBjcF9yaWQuICBSZXdyaXRlIFJJREJJVCBtYWNyb3MgdG8gdXNlIGp1c3QgYQoJc2luZ2xlIDMyLWJpdCB3b3JkLgoJKiBwYXJzZS55OiBDYWxsIGRvX3BlbmRpbmdfaW5saW5lcyB1bmNvbmRpdGlvbmFsbHkuCglyZWluaXRfcGFyc2VfZm9yX21ldGhvZCBpcyBub3cgc25hcmZfbWV0aG9kLiAgZm4uZGVmcGVuIGlzIG5vCglsb25nZXIgbmVjZXNzYXJ5LiAgUmVtb3ZlIHVubmVjZXNzYXJ5IDxpdHlwZT4gYW5ub3RhdGlvbiBvbgoJU0NPUEUuICBEbyBub3QgcmVmZXIgdG8gZW5kX29mX2ZpbGUgb3Igc3RydWN0IHBlbmRpbmdfaW5saW5lLgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5faW5saW5lX2RlZmluaXRpb25zKTogQ2FsbAoJZG9fcGVuZGluZ19pbmxpbmVzIHVuY29uZGl0aW9uYWxseS4KCgkqIGxleC5jOiBSZW1vdmUgYWxsIGNvZGUgbm93IHNoYXJlZCB3aXRoIEMgZnJvbnQgZW5kLgoJSW5pdGlhbGl6ZSBjcHBsaWIgcHJvcGVybHkgaWYgVVNFX0NQUExJQi4gIFB1dCByZXNlcnZlZCB3b3JkcwoJaW50byB0aGUgZ2V0X2lkZW50aWZpZXIgdGFibGUuICBSZXdyaXRlIHByYWdtYSBoYW5kbGluZyB0bwoJd29yayB3aXRoIHRoZSByZWdpc3RyeS4gIE1vdmUgY29kZSB0byBzYXZlIHRva2VucyBmb3IgbGF0ZXIKCXByb2Nlc3NpbmcgdG8gc3Bldy5jLgoKCSogc3Bldy5jOiBSZXdyaXRlIGV2ZXJ5dGhpbmcgaW4gdGVybXMgb2YgdG9rZW4gc3RyZWFtcyBpbnN0ZWFkCglvZiB0ZXh0LiAgTW92ZSByb3V0aW5lcyBoZXJlIGZyb20gbGV4LmMgLyBpbnB1dC5jIGFzCglhcHByb3ByaWF0ZS4gIEdDLW1hcmsgdHJlZXMgaGFuZ2luZyBvZmYgdGhlIHBlbmRpbmcgaW5saW5lcwoJY2hhaW4uCgoyMDAwLTA5LTA2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTkVXUzogTWVudGlvbiB0aGF0IHRoZSBuYW1lZCByZXR1cm4gdmFsdWUgZXh0ZW5zaW9uIGhhcyBiZWVuCglkZXByZWNhdGVkLgoJKiBjcC10cmVlLmggKG9yaWdpbmFsX3Jlc3VsdF9ydHgpOiBEZWZpbmUuCgkoVFJFRV9SRUZFUkVOQ0VfRVhQUik6IFJlbW92ZS4KCShERUNMX1ZQQVJFTlQpOiBMaWtld2lzZS4KCShwdXNoZGVjbF9ub25jbGFzc19sZXZlbCk6IExpa2V3aXNlLgoJKHN0b3JlX3JldHVybl9pbml0KTogTGlrZXdpc2UuCgkocmVpbml0X2xhbmdfc3BlY2lmaWMpOiBMaWtld2lzZS4KCShnZW5ydGxfbmFtZWRfcmV0dXJuX3ZhbHVlKTogQ2hhbmdlIHByb3RvdHlwZS4KCSogZGVjbC5jIChvcmlnaW5hbF9yZXN1bHRfcnR4KTogUmVtb3ZlLgoJKGNwX2ZpbmlzaF9kZWNsKTogRG9uJ3QgYnVpbGQgREVDTF9TVE1UcyBmb3IgUkVTVUxUX0RFQ0xzLgoJRG8gbm90IGdlbmVyYXRlIFJUTCBmb3IgbG9jYWwgdmFyaWFibGVzIGhlcmUuCgkoc3RvcmVfcmV0dXJuX2luaXQpOiBSZW1vdmUuCgkqIHNlbWFudGljcy5jIChnZW5ydGxfbmFtZWRfcmV0dXJuX3ZhbHVlKTogU2ltcGxpZnkuICBGb2xkIGluCglzdG9yZV9yZXR1cm5faW5pdC4KCShmaW5pc2hfbmFtZWRfcmV0dXJuX3ZhbHVlKTogQWRqdXN0IGFjY29yZGluZ2x5LiAgV2FybiB0aGF0IHRoaXMKCWV4dGVuc2lvbiBpcyBkZXByZWNhdGVkLgoJKGxhbmdfZXhwYW5kX3N0bXQpOiBBZGp1c3QgY2FsbCB0byBnZW5ydGxfbmFtZWRfcmV0dXJuX3ZhbHVlLgoKMjAwMC0wOS0wNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKHR5cGVfdW5pZmljYXRpb25fcmVhbCk6IFJlcGxhY2Ugc3dpdGNoIHdpdGggaWYuCgkodW5pZnkpOiBUc3Vic3Qgbm9uLXR5cGUgcGFybXMgYmVmb3JlIGNvbXBhcmluZy4KCjIwMDAtMDktMDYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlcnJvci5jIChkdW1wX3R5cGVuYW1lKTogTmV3IGZ1bmN0aW9uLCBicm9rZW4gb3V0IG9mIC4uLgoJKGR1bXBfdHlwZSk6IC4uLiBoZXJlLiBVc2UgaXQuCgkqIHR5cGVjay5jIChzYW1lX3R5cGVfcCk6IFVzZSBjcF90cmVlX2VxdWFsIGZvciBUWVBFTkFNRV9UWVBFLgoKMjAwMC0wOS0wNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGluaXQuYyAoYnVpbGRfb2Zmc2V0X3JlZik6IERlYWwgd2l0aCBuYW1lc3BhY2Ugc2NvcGVkCglURU1QTEFURV9JRF9FWFBScy4KCjIwMDAtMDktMDYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChyZXNvbHZlX2FkZHJlc3Nfb2Zfb3ZlcmxvYWRlZF9mdW5jdGlvbik6IEFkZAoJZXhwbGFuYXRpb24gbWVzc2FnZS4KCSogZGVjbC5jIChkZWZpbmVfY2FzZV9sYWJlbCk6IFJlZm9ybWF0IGV4cGxhbmF0aW9uLgoJKiBkZWNsMi5jIChmaW5pc2hfc3RhdGljX2RhdGFfbWVtYmVyX2RlY2wpOiBMaWtld2lzZS4KCShncm9rZmllbGQpOiBMaWtld2lzZS4KCSogZnJpZW5kLmMgKGRvX2ZyaWVuZCk6IExpa2V3aXNlLgoKMjAwMC0wOS0wNSAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogdHJlZS5jICh3YWxrX3RyZWUpOiBFeHBvc2UgdGFpbCByZWN1cnNpb24uCgkod2Fsa19zdG10X3RyZWUpOiBOZXcgZnVuY3Rpb24uCgkqIGNwLXRyZWUuaDogUHJvdG90eXBlIHdhbGtfc3RtdF90cmVlLgoJKiBzZW1hbnRpY3MuYyAocHJ1bmVfdW51c2VkX2RlY2xzKTogT3BlcmF0ZSBvbiBTQ09QRV9TVE1UcyBub3QKCXRoZSBCTE9DS3MgZGlyZWN0bHkuICBJZiBhIEJMT0NLIGhhcyBubyB2YXJpYWJsZXMgYWZ0ZXIKCXBydW5pbmcsIGRpc2NhcmQgaXQuCgkoZmluaXNoX3N0bXRfdHJlZSk6IFVzZSB3YWxrX3N0bXRfdHJlZS4gIE5vIG5lZWQgdG8gc2F2ZSBhbmQKCXJlc3RvcmUgdGhlIGxpbmUgbnVtYmVyLgoKMjAwMC0wOS0wNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2VmaWxlLmluIChDWFhfVFJFRV9IKTogQWRkIGRlcGVuZGVuY3kgb24gSFRBQl9ILgoJKHB0Lm8pOiBSZW1vdmUgZGVwZW5kZW5jeSBvbiBIVEFCX0guCgkqIGNwLXRyZWUuaDogSW5jbHVkZSBoYXNodGFiLmguCgkod2Fsa190cmVlKTogQ2hhbmdlIHByb3RvdHlwZS4KCSh3YWxrX3RyZWVfd2l0aG91dF9kdXBsaWNhdGVzKTogTmV3IGZ1bmN0aW9uLgoJKiBkZWNsLmMgKGNoZWNrX2RlZmF1bHRfYXJndW1lbnQpOiBVc2UgaXQuCgkqIG9wdGltaXplLmMgKHJlbWFwX2RlY2wpOiBBZGp1c3QgY2FsbHMgdG8gd2Fsa190cmVlLgoJKGNvcHlfYm9keSk6IExpa2V3aXNlLgoJKGV4cGFuZF9jYWxsc19pbmxpbmUpOiBMaWtld2lzZS4KCShjYWxsc19zZXRqbXBfcCk6IFVzZSB3YWxrX3RyZWVfd2l0aG91dF9kdXBsaWNhdGVzLgoJKiBwdC5jOiBEb24ndCBpbmNsdWRlIGhhc2h0YWIuaC4KCShmb3JfZWFjaF90ZW1wbGF0ZV9wYXJtKTogVXNlIHdhbGtfdHJlZV93aXRob3V0X2R1cGxpY2F0ZXMuCgkqIHNlbWFudGljcy5jIChmaW5pc2gtc3RtdF90cmVlKTogTGlrZXdpc2UuCgkoZXhwYW5kX2JvZHkpOiBMaWtld2lzZS4KCSogdHJlZS5jICh3YWxrX3RyZWUpOiBBZGQgYWRkaXRpb25hbCBwYXJhbWV0ZXIuCgkod2Fsa190cmVlX3dpdGhvdXRfZHVwbGljYXRlcyk6IE5ldyBmdW5jdGlvbi4KCShjb3VudF90cmVlcyk6IFVzZSBpdC4KCSh2ZXJpZnlfc3RtdF90cmVlKTogQWRqdXN0IGNhbGwgdG8gd2Fsa190cmVlLgoJKGZpbmRfdHJlZSk6IFVzZSB3YWxrX3RyZWVfd2l0aG91dF9kdXBsaWNhdGVzLgoJKG5vX2xpbmthZ2VfY2hlY2spOiBMaWtld2lzZS4KCShicmVha19vdXRfdGFyZ2V0X2V4cHJzKTogQWRqdXN0IGNhbGwgdG8gd2Fsa190cmVlLgoJKGNwX3Vuc2F2ZSk6IExpa2V3aXNlLgoKMjAwMC0wOS0wNCAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjcC10cmVlLmRlZiAoQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTSk6IE5ldyB0cmVlIGNvZGUuCgkoVEVNUExBVEVfVEVNUExBVEVfUEFSTSk6IEFkanVzdCBjb21tZW50LgoJKiBjcC10cmVlLmggKFRZUEVfQklORk8pOiBBZGp1c3QgY29tbWVudC4KCShURU1QTEFURV9URU1QTEFURV9QQVJNX1RFTVBMQVRFX0lORk8pOiBMaWtld2lzZS4KCShURU1QTEFURV9UWVBFX1BBUk1fSU5ERVgpOiBMaWtld2lzZS4KCShJU19BR0dSX1RZUEUpOiBVc2UgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTSBpbnN0ZWFkLgoJKFRZUEVfVEVNUExBVEVfSU5GTyk6IExpa2V3aXNlLgoJKFRFTVBMQVRFX1RFTVBMQVRFX1BBUk1fVEVNUExBVEVfREVDTCk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChwdXNoX25lc3RlZF9jbGFzcyk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKGxvb2t1cF9uYW1lX3JlYWwpOiBMaWtld2lzZS4KCShncm9rZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJKGdyb2tfb3BfcHJvcGVydGllcyk6IExpa2V3aXNlLgoJKHhyZWZfdGFnKTogTGlrZXdpc2UuCgkoeHJlZl9iYXNldHlwZXMpOiBMaWtld2lzZS4KCSogZGVjbDIuYyAoY29uc3RydWN0b3JfbmFtZV9mdWxsKTogTGlrZXdpc2UuCgkoYXJnX2Fzc29jX3RlbXBsYXRlX2FyZyk6IEFkZCBURU1QTEFURV9URU1QTEFURV9QQVJNIGNhc2UuCgkoYXJnX2Fzc29jX3R5cGUpOiBVc2UgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTSBpbnN0ZWFkLgoJKiBlcnJvci5jIChkdW1wX3R5cGUpOiBTcGxpdCBURU1QTEFURV9URU1QTEFURV9QQVJNIGNhc2UuCgkoZHVtcF90eXBlX3ByZWZpeCk6IEFkZCBCT1VORF9URU1QTEFURV9URU1QTEFURV9QQVJNLgoJKGR1bXBfdHlwZV9zdWZmaXgpOiBMaWtld2lzZS4KCSogaW5pdC5jIChpc19hZ2dyX3R5cGUpOiBVc2UgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTQoJaW5zdGVhZC4KCShnZXRfYWdncl9mcm9tX3R5cGVkZWYpOiBMaWtld2lzZS4KCSogbWFuZ2xlLmMgKHdyaXRlX3R5cGUpOiBTcGxpdCBURU1QTEFURV9URU1QTEFURV9QQVJNIGNhc2UuCgkod3JpdGVfZXhwcmVzc2lvbik6IEFkZCBCT1VORF9URU1QTEFURV9URU1QTEFURV9QQVJNLgoJKHdyaXRlX3RlbXBsYXRlX3Bhcm0pOiBMaWtld2lzZS4KCSh3cml0ZV90ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJtKTogQ2hlY2sgdHJlZSBjb2RlIGluc3RlYWQgb2YKCXVzaW5nIFRFTVBMQVRFX1RFTVBMQVRFX1BBUk1fVEVNUExBVEVfSU5GTy4KCSogbWV0aG9kLmMgKGJ1aWxkX292ZXJsb2FkX25lc3RlZF9uYW1lKTogQWRkCglCT1VORF9URU1QTEFURV9URU1QTEFURV9QQVJNLgoJKHByb2Nlc3Nfb3ZlcmxvYWRfaXRlbSk6IFNwbGl0IFRFTVBMQVRFX1RFTVBMQVRFX1BBUk0gY2FzZS4KCSogcGFyc2UueSAoYmFkX3Bhcm0pOiBBZGQgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTS4KCSogcHQuYyAoY29udmVydF90ZW1wbGF0ZV9hcmd1bWVudCk6IENoZWNrIHRyZWUgY29kZSBpbnN0ZWFkIG9mCgl1c2luZyBURU1QTEFURV9URU1QTEFURV9QQVJNX1RFTVBMQVRFX0lORk8uCgkoZm9yX2VhY2hfdGVtcGxhdGVfcGFybV9yKTogU3BsaXQgVEVNUExBVEVfVEVNUExBVEVfUEFSTSBjYXNlLgoJKGZvcl9lYWNoX3RlbXBsYXRlX3Bhcm0pOiBBZGp1c3QgY29tbWVudC4KCSh0c3Vic3QpOiBBZGQgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTS4gIFJlb3JnYW5pemUuCgkodHN1YnN0X2NvcHkpOiBBZGQgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTS4KCSh1bmlmeSk6IEFkZCBCT1VORF9URU1QTEFURV9URU1QTEFURV9QQVJNLiAgUmVvcmdhbml6ZS4gIFVzZQoJdGVtcGxhdGVfYXJnc19lcXVhbCB0byBjb21wYXJlIHRlbXBsYXRlIHRlbXBsYXRlIHBhcmFtZXRlciBjYXNlcy4KCSogcHRyZWUuYyAocHJpbnRfbGFuZ190eXBlKTogQWRkIEJPVU5EX1RFTVBMQVRFX1RFTVBMQVRFX1BBUk0uCgkqIHNlYXJjaC5jIChsb29rdXBfZmllbGRfMSk6IFVzZSBCT1VORF9URU1QTEFURV9URU1QTEFURV9QQVJNCglpbnN0ZWFkLgoJKiB0cmVlLmMgKGNvcHlfdGVtcGxhdGVfdGVtcGxhdGVfcGFybSk6IERlY2lkZSB3aGV0aGVyIHRvIGNyZWF0ZQoJYSBURU1QTEFURV9URU1QTEFURV9QQVJNIG9yIEJPVU5EX1RFTVBMQVRFX1RFTVBMQVRFX1BBUk0gbm9kZS4KCSh3YWxrX3RyZWUpOiBBZGQgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTS4KCShjb3B5X3RyZWVfcik6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoY29tcHR5cGVzKTogTGlrZXdpc2UuICBDaGVjayB0cmVlIGNvZGUgaW5zdGVhZCBvZgoJdXNpbmcgVEVNUExBVEVfVEVNUExBVEVfUEFSTV9URU1QTEFURV9JTkZPLgoKMjAwMC0wOS0wNCAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0BiaWdmb290LmNvbT4KCgkqIGRlY2wuYyAoZmluaXNoX2Z1bmN0aW9uKTogTW92ZSB0aGUgY29kZSBmb3IgaGFuZGxpbmcgZnVuY3Rpb25zCgltYXJrZWQgd2l0aCB0aGUgY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IgYXR0cmlidXRlcyBpbnNpZGUgdGhlCglleHBhbmRfcCBibG9jay4KCjIwMDAtMDktMDQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbml0LmMgKHJlc29sdmVfb2Zmc2V0X3JlZik6IERlYWwgd2l0aCBURU1QTEFURV9JRF9FWFBSLgoKMjAwMC0wOS0wNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IFJlbW92ZSBhYm9ydC4KCSogdHJlZS5jIChnZXRfdHlwZV9kZWNsKTogQWxsb3cgZXJyb3JfbWFya19ub2RlLgoKMjAwMC0wOS0wNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmMgKGFyZ19hc3NvYyk6IERlYWwgd2l0aCBDT01QT05FTlRfUkVGcyBpbnNpZGUKCVRFTVBMQVRFX0lEX0VYUFJzLgoKMjAwMC0wOS0wMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG9wZXJhdG9ycy5kZWYgKEFMSUdOT0ZfRVhQUiwgTUFYX0VYUFIsIE1JTl9FWFBSKTogQ2hhbmdlCgluZXcgQUJJIG1hbmdsaW5nLgoKMjAwMC0wOS0wMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHBhcnNlLnkgKG5hbWVkX2NsYXNzX2hlYWQpOiBDaGVjayBmb3IgVFlQRU5BTUVfVFlQRS4gU2ltcGxpZnkKCXVuaW9uIHRhZyBtaXNtYXRjaCBlcnJvciByZXBvcnRpbmcuCgoyMDAwLTA5LTAxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChidWlsZF9zY29wZWRfbWV0aG9kX2NhbGwpOiBDaGVjayBpdCBpcyBub3QgYSBuYW1lc3BhY2UuCgoyMDAwLTA4LTMwICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGNwLXRyZWUuaCAoTE9DQUxfQ0xBU1NfUCk6IFVzZSBkZWNsX2Z1bmN0aW9uX2NvbnRleHQuCgoJKiB0cmVlLmMgKGJvdF9tYW5pcCk6IENoZWNrIFRSRUVfQ09OU1RBTlQgcmF0aGVyIHRoYW4KCSFUUkVFX1NJREVfRUZGRUNUUy4gIENhbGwgYnJlYWtfb3V0X3RhcmdldF9leHBycyBhbmQKCWJ1aWxkX3RhcmdldF9leHByX3dpdGhfdHlwZSBmb3IgdGhlIG5vbi1BR0dSX0lOSVRfRVhQUiBjYXNlLgoKCSogZGVjbC5jIChzdGFydF9mdW5jdGlvbik6IEFsd2F5cyBjYWxsIG1ha2VfZnVuY3Rpb25fcnRsLgoKMjAwMC0wOC0yOSAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogc2VtYW50aWNzLmMgKHBydW5lX3VudXNlZF9kZWNscyk6IE5ldyBmdW5jdGlvbi4KCShmaW5pc2hfc3RtdF90cmVlKTogQ2FsbCBpdCB2aWEgd2Fsa190cmVlLgoKMjAwMC0wOC0yOSAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogY2xhc3MuYyAoYnVpbGRfc2Vjb25kYXJ5X3Z0YWJsZSk6IENvbnN0aWZ5IGEgY2hhciAqLgoJKiBkZWNsLmMgKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogSW5pdGlhbGl6ZSBmdW5jdGlvbl9pZF9ub2RlLAoJcHJldHR5X2Z1bmN0aW9uX2lkX25vZGUsIGFuZCBmdW5jX2lkX25vZGUuCgkqIGlucHV0LmMgKHN0cnVjdCBpbnB1dF9zb3VyY2UpOiBDb25zdGlmeSAnc3RyJy4KCShmZWVkX2lucHV0KTogQ29uc3RpZnkgZmlyc3QgYXJndW1lbnQuCgkqIG1hbmdsZS5jICh3cml0ZV9pZGVudGlmaWVyKTogQ29uc3RpZnkgYXJndW1lbnQuCgkqIHB0LmMgKG1hbmdsZV9jbGFzc19uYW1lX2Zvcl90ZW1wbGF0ZSk6IENvbnN0aWZ5IGFyZ3VtZW50LgoKMjAwMC0wOC0yOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHR5cGVjay5jIChtYXJrX2FkZHJlc3NhYmxlKTogUmVtb3ZlIGNvZGUgdGhhdCBwb2tlcyBhcm91bmQgaW4KCVJUTC4KCjIwMDAtMDgtMjggIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogbGV4LmMgKGZpbGVfbmFtZV9ub25kaXJlY3RvcnkpOiBNb3ZlIHRvIHRvcGxldi5jLgoKCSogY3AtdHJlZS5oIChMT0NBTF9DTEFTU19QKTogTmV3IG1hY3JvLgoJKiBjbGFzcy5jIChmaW5pc2hfc3RydWN0XzEpOiBVc2UgaXQuCgoyMDAwLTA4LTI3ICBBbGV4IFNhbXVlbCAgPHNhbXVlbEBjb2Rlc291cmNlcnkuY29tPgoKCSogbWFuZ2xlLmMgKENMQVNTVFlQRV9URU1QTEFURV9JRF9QKTogUmVtb3ZlIHVuZXhwbGFpbmVkIHZvb2Rvby4KCSh3cml0ZV9lbmNvZGluZyk6IFBhc3MgYW5vdGhlciBhcmd1bWVudCB0byB3cml0ZV9uYW1lLgoJKHdyaXRlX25hbWUpOiBBZGQgaWdub3JlX2xvY2FsX3Njb3BlIHBhcmFtZXRlci4gIEZpeCBoYW5kbGluZyBvZgoJbG9jYWwgbmFtZXMuCgkod3JpdGVfbmVzdGVkX25hbWUpOiBVc2Ugd3JpdGVfdW5xdWFsaWZpZWRfbmFtZS4KCSh3cml0ZV9wcmVmaXgpOiBMaWtld2lzZS4gIFNraXAgb3V0IG9uIEZVTkNUSU9OX0RFQ0xzLgoJKHdyaXRlX3RlbXBsYXRlX3ByZWZpeCk6IFVzZSB3cml0ZV91bnF1YWxpZmllZF9uYW1lLgoJKHdyaXRlX2NvbXBvbmVudCk6IFJlbW92ZS4KCSh3cml0ZV9sb2NhbF9uYW1lKTogQWRkIHBhcmFtZXRlci4gIFVzZSBkaXJlY3QgbG9jYWwgZW50aXR5IHRvCglkaXNjcmltaW5hdG9yIGNhbGN1bGF0aW9uLgoJKHdyaXRlX2NsYXNzX2VudW1fdHlwZSk6IFBhc3MgYW5vdGhlciBhcmd1bWVudCB0byB3cml0ZV9uYW1lLgoJKHdyaXRlX3RlbXBsYXRlX3RlbXBsYXRlX2FyZyk6IExpa2V3aXNlLgoJKG1ha2VfZ3VhcmRfdmFyaWFibGUpOiBMaWtld2lzZS4KCjIwMDAtMDgtMjcgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZGVjbC5jIChwdXNoZGVjbCk6IE1hdGNoaW5nIGRlY2xzIGZvciBsb2NhbCBleHRlcm5zIGFyZSBmb3VuZCBpbgoJdGhlIGN1cnJlbnQgbGV2ZWwuICBQcm9wYWdhdGUgbGlua2FnZSBpbmZvcm1hdGlvbiBmcm9tIHByZXZpb3VzCglkZWNsYXJhdGlvbnMuCgoyMDAwLTA4LTI2ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpci50ZXhpIChFeHByZXNzaW9ucyk6IEZpeCB0eXBvLgoKMjAwMC0wOC0yNSAgR3JlZyBNY0dhcnkgIDxncmVnQG1jZ2FyeS5vcmc+CgoJKiB0cmVlLmMgKGluaXRfdHJlZSk6IFVzZSBBUlJBWV9TSVpFLgoKMjAwMC0wOC0yNSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZXJyb3IuYyAoY3BfdHJlZV9wcmludGVyKTogUmV3b3JrLgoKMjAwMC0wOC0yNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAoQ1hYX0xJQjJGVU5DUyk6IFJlbW92ZSBjcC1kZW1hbmdsZS5vIGFuZAoJZHluLXN0cmluZy5vLgoJKENYWF9MSUIyU1JDUyk6IFJlbW92ZSBjcC1kZW1hbmdsZS5jIGFuZCBkeW4tc3RyaW5nLmMuCgkoY3AtZGVtYW5nbGUubyk6IFJlbW92ZSB0YXJnZXQuCgkoZHluLXN0cmluZy5vKTogTGlrZXdpc2UuCgoJKiBkZWNsLmMgKGdyb2tmbmRlY2wpOiBSZXF1aXJlIHRoYXQgYG1haW4nIHJldHVybiBhbiBgaW50Jy4KCSogbWFuZ2xlLmMgKHdyaXRlX2VuY29kaW5nKTogRG9uJ3QgbWFuZ2xlIHJldHVybiB0eXBlcyBmb3IKCWNvbnZlcnNpb24gZnVuY3Rpb25zLgoKMjAwMC0wOC0yNSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZXJyb3IuYyAodHJlZV9mb3JtYXR0aW5nX2luZm8pOiBOZXcgZGF0YSB0eXBlLgoJKHRyZWVfYmVpbmdfZm9ybWF0dGVkKTogTmV3IG1hY3JvLgoJKHRyZWVfZm9ybWF0dGluZ19mbGFncyk6IExpa2V3aXNlLgoJKHB1dF93aGl0ZXNwYWNlKTogTGlrZXdpc2UuCgkocHJpbnRfdHJlZV9pZGVudGlmaWVyKTogTGlrZXdpc2UuCgkocHJpbnRfaWRlbnRpZmllcik6IExpa2V3aXNlLgoJKGNwX3RyZWVfcHJpbnRlciwgcHJpbnRfZnVuY3Rpb25fYXJndW1lbnRfbGlzdCwgcHJpbnRfZGVjbGFyYXRpb24sCglwcmludF9leHByZXNzaW9uLCBwcmludF9mdW5jdGlvbl9kZWNsYXJhdGlvbiwKCXByaW50X2Z1bmN0aW9uX3BhcmFtZXRlciwgcHJpbnRfdHlwZSwgcHJpbnRfY3ZfcXVhbGlmaWVyKTogTmV3CglmdW5jdGlvbnMuCgkoaW5pdF9lcnJvcik6IEluaXRpYWxpemUgbGFuZ19wcmludGVyLgoKMjAwMC0wOC0yNCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfcHRybWVtZnVuYyk6IEp1c3QgcmVpbnRlcnByZXQgaWYgdGhlcmUncyBubwoJYWRqdXN0bWVudCBuZWNlc3NhcnkuCgoyMDAwLTA4LTI0ICBHcmVnIE1jR2FyeSAgPGdyZWdAbWNnYXJ5Lm9yZz4KCgkqIGNwLXRyZWUuaCAoTUFJTl9OQU1FX1ApOiBSZW1vdmUgbWFjcm8uCgoyMDAwLTA4LTI0ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlcnJvci5jIChwcmludF9pbnN0YW50aWF0aW9uX2NvbnRleHQpOiBEb24ndCBmb3JnZXQgdG8gZmx1c2ggdGhlCglidWZmZXIuCgoyMDAwLTA4LTIzICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHR5cGVjay5jIChidWlsZF9wdHJtZW1mdW5jKTogU2F2ZSB0aGUgaW5wdXQgcG1mLgoKCSogbWV0aG9kLmMgKHByb2Nlc3NfbW9kaWZpZXJzKTogVXNlIHNhbWVfdHlwZV9wLgoKMjAwMC0wOC0yMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoREVDTF9DTE9ORURfRlVOQ1RJT05fUCk6IENoZWNrIERFQ0xfTEFOR19TUEVDSUZJQy4KCSogbWFuZ2xlLmMgKHdyaXRlX2Z1bmN0aW9uX3R5cGUpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKHdyaXRlX2VuY29kaW5nKTogRG9uJ3QgbWFuZ2xlIHJldHVybiB0eXBlcyBmb3IKCWNvbnN0cnVjdG9ycyBvciBkZXN0cnVjdG9ycy4KCSh3cml0ZV90eXBlKTogQWRqdXN0IGNhbGwgdG8gd3JpdGVfZnVuY3Rpb25fdHlwZS4KCSogcHQuYyAoaW5zdGFudGlhdGVfdGVtcGxhdGUpOiBJbnN0YW50aWF0ZSBhbHRlcm5hdGUgZW50cnkgcG9pbnRzCgl3aGVuIGluc3RhbnRpYXRpbmcgdGhlIG1haW4gZnVuY3Rpb24uCgoyMDAwLTA4LTIzICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlcnJvci5jIChjcF9wcmludF9lcnJvcl9mdW5jdGlvbik6IERvbid0IHVzZSBlbWJlZGRlZCAnXG4nIGluCglvdXRwdXRfcHJpbnRmLgoKMjAwMC0wOC0yMyAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFJlbW92ZSBib2d1cyBpbml0aWFsaXphdGlvbi4KCSogZXJyb3IuYyAobGFuZ19wcmludF9lcnJvcl9mdW5jdGlvbik6IFJlc3RvcmUgaGVyZS4KCShpbml0X2Vycm9yKTogSW5pdGlhbGl6ZSBwcmludF9lcnJvcl9mdW5jdGlvbi4KCjIwMDAtMDgtMjIgIFRoZW9kb3JlIFBhcGFkb3BvdWxvICA8VGhlb2RvcmUuUGFwYWRvcG91bG9Ac29waGlhLmlucmlhLmZyPgoKCSogZGVjbDIuYyAoYXJnX2Fzc29jKTogUmV2ZXJ0IG15IDIwMDAtMDgtMTEgY2hhbmdlLgoKMjAwMC0wOC0yMiAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuaW4gKGVycm9yLm8pOiBEZXBlbmRzIG9uIGRpYWdub3N0aWMuaAoKCSogY3AtdHJlZS5oIChwcm9ibGVtYXRpY19pbnN0YW50aWF0aW9uX2NoYW5nZWQsCglyZWNvcmRfbGFzdF9wcm9ibGVtYXRpY19pbnN0YW50aWF0aW9uLCBjdXJyZW50X2luc3RhbnRpYXRpb24sCglwcmludF9pbnN0YW50aWF0aW9uX2NvbnRleHQpOiBEZWNsYXJlLgoJKG1heWJlX3ByaW50X3RlbXBsYXRlX2NvbnRleHQpOiBSZW1vdmUuCgoJKiBkZWNsLmMgKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogU2V0IHByaW50X2Vycm9yX2Z1bmN0aW9uIHRvIE5VTEwuCgkobGFuZ19wcmludF9lcnJvcl9mdW5jdGlvbik6IFJlbW92ZSwgc2luY2Ugd2UncmUgdXNpbmcgYSBuZXcKCW1hY2hpbmVyeS4KCgkqIGVycm9yLmM6ICNpbmNsdWRlIGRpYWdub3N0aWMuaAoJKGZ1bmN0aW9uX2NhdGVnb3J5KTogTmV3IGZ1bmN0aW9uLgoJKGNwX2RpYWdub3N0aWNfc3RhcnRlcik6IExpa2V3aXNlLgoJKGNwX2RpYWdub3N0aWNfZmluYWxpemVyKTogTGlrZXdpc2UuCgkoY3BfcHJpbnRfZXJyb3JfZnVuY3Rpb24pOiBMaWtld2lzZS4KCShtYXliZV9wcmludF9pbnN0YW50aWF0aW9uX2NvbnRleHQpOiBMaWtld2lzZS4KCShwcmludF9pbnN0YW50aWF0aW9uX2Z1bGxfY29udGV4dCk6IExpa2V3aXNlLgoJKHByaW50X2luc3RhbnRpYXRpb25fcGFydGlhbF9jb250ZXh0KTogTGlrZXdpc2UuCgkocHJpbnRfaW5zdGFudGlhdGlvbl9jb250ZXh0KTogRGVmaW5lLgoJKGluaXRfZXJyb3IpOiBJbml0aWFsaXplIGRpYWdub3N0aWMgcGFnZXIgYW5kIGZpbmFsaXplci4KCgkqIHB0LmMgKHByb2JsZW1hdGljX2luc3RhbnRpYXRpb25fY2hhbmdlZCk6IERlZmluZS4KCShyZWNvcmRfbGFzdF9wcm9ibGVtYXRpY19pbnN0YW50aWF0aW9uKTogTGlrZXdpc2UuCgkoY3VycmVudF9pbnN0YW50aWF0aW9uKTogTGlrZXdpc2UuCgkobWF5YmVfcHJpbnRfdGVtcGxhdGVfY29udGV4dCk6IFJlbW92ZS4KCShwcmludF90ZW1wbGF0ZV9jb250ZXh0KTogTGlrZXdpc2UuCgkoY3VycmVudF90aW5zdF9sZXZlbCk6IE1ha2Ugc3RhdGljIHRvIHJlZmxlY3QgQnJlbmRhbiBLZWhvZSdzCgljaGFuZ2Ugb2YgMTk5NS0wNC0xMy4KCShwdXNoX3RpbnN0X2xldmVsKTogQ2FsbCBwcmludF9pbnN0YW50aWF0aW9uX2NvbnRleHQuCgoyMDAwLTA4LTIxICBOaXggIDxuaXhAZXNwZXJpLmRlbW9uLmNvLnVrPgoKCSogbGFuZy1zcGVjcy5oOiBEbyBub3QgcHJvY2VzcyAtbyBvciBydW4gdGhlIGFzc2VtYmxlciBpZgoJLWZzeW50YXgtb25seS4KCjIwMDAtMDgtMjEgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGRlY2wuYyAoZmxhZ19ob3N0ZWQsIGZsYWdfbm9uaXNvX2RlZmF1bHRfZm9ybWF0X2F0dHJpYnV0ZXMpOiBOZXcKCXZhcmlhYmxlcy4KCSogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogRGlzYWJsZSBnZXR0ZXh0IGF0dHJpYnV0ZXMgZm9yCgktYW5zaS4KCjIwMDAtMDgtMjEgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxleC5jIChsYW5nX2luaXRfb3B0aW9ucyk6IERlZmF1bHQgZGlhZ25vc3RpYyBtZXNzYWdlIG1heGltdW0KCWxlbmd0aCB0byA4MCwgd2hlbiBsaW5lLXdyYXBwaW5nLgoKMjAwMC0wOC0yMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBDbGVhciB0aGUgZW50aXJlCgl2dGJsX2luaXRfZGF0YS4gIFN0YXJ0IGtlZXBpbmcgdHJhY2sgb2YgdGhlIGZ1bmN0aW9ucyBmb3Igd2hpY2ggd2UKCWhhdmUgY3JlYXRlZCB2Y2FsbCBvZmZzZXRzIGhlcmUuCgkoZGZzX2J1aWxkX3ZjYWxsX29mZnNldF92dGJsX2VudHJpZXMpOiBSZW1vdmUuCgkoYnVpbGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IFJlaW1wbGVtZW50LgoJKGFkZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzX3IpOiBOZXcgZnVuY3Rpb24uCgkoYWRkX3ZjYWxsX29mZnNldF92dGJsX2VudHJpZXNfMSk6IExpa2V3aXNlLiAgVHdlYWsgbG9naWMgZm9yCgljb21wdXRpbmcgd2hlbiB2Y2FsbCBvZmZzZXRzIGFyZSBuZWNlc3NhcnkuCgoyMDAwLTA4LTE4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChtZW1iZXJfZnVuY3Rpb25fb3JfZWxzZSk6IFVzZSBjcF9lcnJvciAuLi4gJVQuCgkoZ3Jva2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCShzdGFydF9tZXRob2QpOiBMaWtld2lzZS4KCSogZnJpZW5kLmMgKG1ha2VfZnJpZW5kX2NsYXNzKTogVXNlIGNwX3BlZHdhcm4gLi4uICVULgoKMjAwMC0wOC0xOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmMgKGdyb2tmaWVsZCk6IFNldCBDTEFTU1RZUEVfR09UX1NFTUlDT0xPTiBvbiBjbGFzcwoJVFlQRV9ERUNMcy4KCjIwMDAtMDgtMTggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKFBUUk1FTV9PS19QKTogTmV3IG1hY3JvLgoJKGl0Zl9wdHJtZW1fb2spOiBOZXcgZW51bWVyYXRpb24gdmFsdWUuCgkqIGNsYXNzLmMgKHJlc29sdmVfYWRkcmVzc19vZl9vdmVybG9hZGVkX2Z1bmN0aW9uKTogQWRkIFBUUk1FTQoJYXJndW1lbnQuIERpYWdub3NlIGltcGxpY2l0IHBvaW50ZXIgdG8gbWVtYmVyLgoJKGluc3RhbnRpYXRlX3R5cGUpOiBEb24ndCBkaWFnbm9zZSBpbXBsaWNpdCBwb2ludGVyIHRvIG1lbWJlcgoJaGVyZS4gUGFzcyBpdGZfcHRybWVtX29rIGlmIG9rLiBBZGp1c3QgY2FsbHMgdG8KCXJlc29sdmVfYWRkcmVzc19vZl9vdmVybG9hZGVkX2Z1bmN0aW9uLgoJKiBpbml0LmMgKGJ1aWxkX29mZnNldF9yZWYpOiBTZXQgUFRSTUVNX09LX1AuCgkocmVzb2x2ZV9vZmZzZXRfcmVmKTogRG9uJ3QgZGlhZ25vc2UgaW1wbGljaXQgcG9pbnRlciB0byBtZW1iZXIgaGVyZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9wYXJlbnRoZXNpemVkX2V4cHIpOiBDbGVhciBPRkZTRVRfUkVGcyBoZXJlLgoJKiB0eXBlY2suYyAoYnVpbGRfeF91bmFyeV9vcCk6IENhbGN1bGF0ZSBQVFJNRU1fT0tfUC4KCShidWlsZF91bmFyeV9vcCk6IERlYWwgd2l0aCBzaW5nbGUgbm9uLXN0YXRpYyBtZW1iZXIgaW4KCW1pY3Jvc29mdC1sYW5kLgoKMjAwMC0wOC0xOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmMgKGFyZ19hc3NvY190eXBlKTogQ29wZSB3aXRoIFRZUEVOQU1FX1RZUEUuCgoyMDAwLTA4LTE4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChlbnVtX25hbWVfc3RyaW5nKTogUmVtb3ZlIHByb3RvdHlwZS4KCShyZXBvcnRfY2FzZV9lcnJvcik6IFJlbW92ZSBwcm90b3R5cGUuCgkqIGNwL3R5cGVjazIuYyAoZW51bV9uYW1lX3N0cmluZyk6IFJlbW92ZS4KCShyZXBvcnRfY2FzZV9lcnJvcik6IFJlbW92ZS4KCSogZXJyb3IuYyAoZHVtcF9leHByKTogRGVhbCB3aXRoIGVudW0gdmFsdWVzIGRpcmVjdGx5LgoJQ29ycmVjdGx5IG5lZ2F0ZSBpbnRlZ2VyIGNvbnN0YW50LgoKMjAwMC0wOC0xNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGluYy9jeHhhYmkuaCAoX19jeGFfdmVjX25ldzIsIF9fY3hhX3ZlY19uZXczKTogRGVjbGFyZS4KCShfX2N4YV92ZWNfZGVsZXRlMiwgX19jeGFfdmVjX2RlbGV0ZTMpOiBEZWNsYXJlLgoJKiB2ZWMuY2MgKF9fY3hhX3ZlY19uZXcyLCBfX2N4YV92ZWNfbmV3Myk6IEltcGxlbWVudC4KCShfX2N4YV92ZWNfZGVsZXRlMiwgX19jeGFfdmVjX2RlbGV0ZTMpOiBJbXBsZW1lbnQuCgkoX19jeGFfdmVjX25ldyk6IFVzZSBfX2N4YV92ZWNfbmV3Mi4KCShfX2N4YV92ZWNfZGVsZXRlKTogVXNlIF9fY3hhX3ZlY19kZWxldGUyLgoKMjAwMC0wOC0xNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHZlYy5jYyAoX19jeGFfdmVjX25ldyk6IFNldCAiQyIgbGlua2FnZS4KCShfX2N4YV92ZWNfY3Rvcik6IExpa2V3aXNlLgoJKF9fY3hhX3ZlY19jY3Rvcik6IExpa2V3aXNlLgoJKF9fY3hhX3ZlY19kdG9yKTogTGlrZXdpc2UuCgkoX19jeGFfdmVjX2RlbGV0ZSk6IExpa2V3aXNlLgoJKiBpbmMvY3h4YWJpLmggKF9fY3hhX3ZlY19uZXcpOiBTZXQgIkMiIGxpbmthZ2UuCgkoX19jeGFfdmVjX2N0b3IpOiBMaWtld2lzZS4KCShfX2N4YV92ZWNfY2N0b3IpOiBMaWtld2lzZS4KCShfX2N4YV92ZWNfZHRvcik6IExpa2V3aXNlLgoJKF9fY3hhX3ZlY19kZWxldGUpOiBMaWtld2lzZS4KCjIwMDAtMDgtMTcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChpbnN0YW50aWF0ZV90eXBlKTogUmVpbnN0YXRlIGxvY2FsIHZhcmlhYmxlCglkZWxldGVkIGluIHByZXZpb3VzIGNoYW5nZS4KCgkqIGN2dC5jIChjcF9jb252ZXJ0X3RvX3BvaW50ZXIpOiBQYXNzIGl0Zl9jb21wbGFpbiwgbm90CglpdGZfbm9fYXR0cmlidXRlcy4KCjIwMDAtMDgtMTcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGluc3RhbnRpYXRlX3R5cGVfZmxhZ3MpOiBOZXcgZW51bWVyYXRpb24uCgkoaW5zdGFudGlhdGVfdHlwZSk6IENoYW5nZSBwYXJhbWV0ZXIuCgkqIGNsYXNzLmMgKGluc3RhbnRpYXRlX3R5cGUpOiBBZGp1c3QgcHJvdG90eXBlLiBBZGp1c3QuCgkqIGNhbGwuYyAoc3RhbmRhcmRfY29udmVyc2lvbik6IEFkanVzdCBpbnN0YW50aWF0ZV90eXBlIGNhbGwuCgkocmVmZXJlbmNlX2JpbmRpbmcpOiBMaWtld2lzZS4KCShidWlsZF9vcF9kZWxldGVfY2FsbCk6IExpa2V3aXNlLgoJKGNvbnZlcnRfbGlrZV9yZWFsKTogTGlrZXdpc2UuCgkqIGN2dC5jIChjcF9jb252ZXJ0X3RvX3BvaW50ZXIpOiBMaWtld2lzZS4KCShjb252ZXJ0X3RvX3JlZmVyZW5jZSk6IExpa2V3aXNlLgoJKiBwdC5jIChjb252ZXJ0X25vbnR5cGVfYXJndW1lbnQpOiBMaWtld2lzZS4KCSogdHlwZWNrLmMgKGJ1aWxkX2JpbmFyeV9vcCk6IExpa2V3aXNlLgoJKGJ1aWxkX3B0cm1lbWZ1bmMpOiBMaWtld2lzZS4KCShjb252ZXJ0X2Zvcl9hc3NpZ25tZW50KTogTGlrZXdpc2UuCgoyMDAwLTA4LTE3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChDUFRSX0FHR1JfVEFHKTogTmV3IGdsb2JhbCB0cmVlIG5vZGUuCgkoY3VycmVudF9hZ2dyKTogRGVmaW5lLgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogTWFrZSBzdXJlIGEgZnJpZW5kIGNsYXNzIGlzIGFuCgllbGFib3JhdGVkIHR5cGUgc3BlY2lmaWVyLgoJKiBwYXJzZS55IChjdXJyZW50X2FnZ3IpOiBSZW1vdmUgc3RhdGljIGRlZmluaXRpb24uCgkoY3BfcGFyc2VfaW5pdCk6IEFkanVzdC4KCShzdHJ1Y3RzcCk6IENsZWFyIGFuZCByZXN0b3JlIGN1cnJlbnRfYWdnci4KCShjb21wb25lbnRfZGVjbF9saXN0KTogQ2xlYXIgY3VycmVudF9hZ2dyLgoKCSogZXJyb3IuYyAoZHVtcF90eXBlLCBjYXNlIFRZUEVOQU1FX1RZUEUpOiBEb24ndCBlbWl0IHRoZQoJYWdncmVnYXRlIHRhZyBvbiB0aGUgdHlwZW5hbWUncyBjb250ZXh0LgoKCSogcHQuYyAodHN1YnN0X2ZyaWVuZF9jbGFzcyk6IFJldHVybiBlcnJvcl9tYXJrX25vZGUsIGlmCglwYXJtcyBiZWNvbWVzIE5VTEwuCgkoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBJZ25vcmUgZXJyb3JfbWFya19ub2RlIGZyaWVuZCB0eXBlcy4KCjIwMDAtMDgtMTQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjdnQuYyAod2Fybl9yZWZfYmluZGluZyk6IE5ldyBzdGF0aWMgZnVuY3Rpb24sIGJyb2tlbiBvdXQgb2YgLi4uCgkoY29udmVydF90b19yZWZlcmVuY2UpOiAuLi4gaGVyZS4gVXNlIGl0LgoKMjAwMC0wOC0xMSAgS3JpYW5nIExlcmRzdXdhbmFraWogPGxlcmRzdXdhQHNjZi1mcy51c2MuZWR1PgoKCSogcGFyc2UueSAodGVtcGxhdGVfYXJnKTogQWRkIHJ1bGUgZm9yIHRlbXBsYXRlIHF1YWxpZmllZCB3aXRoCglnbG9iYWwgc2NvcGUuCgoyMDAwLTA4LTExICBUaGVvZG9yZSBQYXBhZG9wb3VsbyA8VGhlb2RvcmUuUGFwYWRvcG91bG9Ac29waGlhLmlucmlhLmZyPgoKCSogZGVjbDIuYyAoYWRkX2Z1bmN0aW9uKTogUmVvcmdhbml6ZS4KCShhcmdfYXNzb2MpOiBEbyBub3QgY29uc2lkZXIgZnVuY3Rpb24gdGVtcGxhdGUgZGVjbHMuCgoyMDAwLTA4LTExICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAobG9va3VwX25hbWVfcmVhbCk6IERvbid0IGZvcmdldCB0aGUgVFlQRU5BTUVfVFlQRSB3ZSdyZQoJbG9va2luZyBpbnNpZGUuCgoyMDAwLTA4LTExICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChyZXNvbHZlX3Njb3BlX3RvX25hbWUpOiBSZW1vdmUgdW51c2VkIHByb3RvdHlwZS4KCShsb29rdXBfbmVzdGVkX3RhZyk6IExpa2V3aXNlLgoKCSogZGVjbDIuYyAoZ3Jva2ZpZWxkKTogRml4IGNvbW1lbnQgdG8gcmVmbGVjdCBtYW55IHR5cGVzIG9mIF9ERUNMcwoJY2FuIGJlIHByb2R1Y2VkLgoKMjAwMC0wOC0xMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHBhcnNlLnkgKG5hbWVkX2NvbXBsZXhfY2xhc3NfaGVhZF9zYW5zX2Jhc2V0eXBlKTogUmVtb3ZlCglhbHdheXMgdHJ1ZSBpZi4KCjIwMDAtMDgtMTEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsMi5jIChidWlsZF9leHByX2Zyb21fdHJlZSwgY2FzZSBNRVRIT0RfQ0FMTF9FWFBSKTogQnVpbGQKCWV4cGxpY2l0IFRFTVBMQVRFX0lEX0VYUFIgYXJncy4KCShidWlsZF9leHByX2Zyb21fdHJlZSwgY2FzZSBDQUxMX0VYUFIpOiBMaWtld2lzZS4KCjIwMDAtMDgtMTEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGNoZWNrX3RhZ19kZWNsKTogRGlhZ25vc2UgdHlwZW5hbWUncyB3aGljaCBkb24ndAoJZGVjbGFyZSBhbnl0aGluZy4KCjIwMDAtMDgtMTAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbml0LmMgKGJ1aWxkX2FnZ3JfaW5pdCk6IFJlamVjdCBib2d1cyBhcnJheSBpbml0aWFsaXplcnMKCWVhcmx5LgoKMjAwMC0wOC0wOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHJ0dGkuYyAoYnVpbGRfZHluYW1pY19jYXN0XzEpOiBTZXQgIkMiIGxpbmthZ2UgZm9yIG5ldyBhYmkKCXJ1bnRpbWUuCgkqIGNwL3RpbmZvLmNjIChfX2R5bmFtaWNfY2FzdCk6IExpa2V3aXNlLgoJKiBjcC9pbmMvY3h4YWJpLmggKF9fZHluYW1pY19jYXN0KTogTGlrZXdpc2UuCgoyMDAwLTA4LTA5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3Z0LmMgKGNvbnZlcnRfdG9fcG9pbnRlcl9mb3JjZSk6IEZpeCBlcnJvciBtZXNzYWdlIHdoZW4KCWF0dGVtcHRpbmcgdG8gY2FzdCBmcm9tIGFtYmlndW91cyBiYXNlLgoKMjAwMC0wOC0wOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBwdC5jICh0c3Vic3RfYWdncl90eXBlKTogQmFpbCBpZiBjcmVhdGluZyB0aGUgYXJndmVjIGZhaWxzLgoJKHRzdWJzdF90ZW1wbGF0ZV9hcmdfdmVjdG9yKTogTGlrZXdpc2UuCgoJKiBkZWNsMi5jIChidWlsZF9hbm9uX3VuaW9uX3ZhcnMpOiBDaG9vc2UgdGhlIGxhcmdlc3QgZmllbGQ7IGRvbid0Cglhc3N1bWUgdGhhdCBvbmUgd2lsbCBiZSBhcyBsYXJnZSBhcyB0aGUgdW5pb24uCgoyMDAwLTA4LTA3ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGNwLXRyZWUuaCAoQ0xBU1NUWVBFX0hBU19QUklNQVJZX0JBU0VfUCk6IEZpeCBhIGNvbW1lbnQgdHlwby4KCSogZGVjbC5jIChwb3BfbGFiZWxzKTogTGlrZXdpc2UuCgoyMDAwLTA4LTA0ICBKZWZmcmV5IE9sZGhhbSAgPG9sZGhhbUBjb2Rlc291cmNlcnkuY29tPgoKCSogaW5jL2N4eGFiaS5oIChfX3BiYXNlX3R5cGVfaW5mbyk6IENoYW5nZWQgbWVtYmVyIG5hbWVzIHRvIG1hdGNoCglzcGVjaWZpY2F0aW9ucy4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fYmFzZV9jbGFzc19pbmZvKTogTGlrZXdpc2UuCgkoX19jbGFzc190eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKiB0aW5mby5jYyAoX19zaV9jbGFzc190eXBlX2luZm86Ol9fZG9fZmluZF9wdWJsaWNfc3JjKToKCUNoYW5nZWQgbWVtYmVyIG5hbWVzIHRvIG1hdGNoIHNwZWNpZmljYXRpb25zLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6X19kb19maW5kX3B1YmxpY19zcmMpOiBMaWtld2lzZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6X19kb19keW5jYXN0KTogTGlrZXdpc2UuCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpfX2RvX2R5bmNhc3QpOiBMaWtld2lzZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6X19kb191cGNhc3QpOiBMaWtld2lzZS4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86Ol9fZG9fdXBjYXN0KTogTGlrZXdpc2UuCgkqIHRpbmZvMi5jYyAoX19wYmFzZV90eXBlX2luZm86Ol9fZG9fY2F0Y2gpOiBMaWtld2lzZS4KCShfX3BiYXNlX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogTGlrZXdpc2UuCgkoX19wb2ludGVyX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogTGlrZXdpc2UuCgkoX19wb2ludGVyX3RvX21lbWJlcl90eXBlX2luZm86Ol9fcG9pbnRlcl9jYXRjaCk6IExpa2V3aXNlLgoKMjAwMC0wOC0wNCAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogTWFrZS1sYW5nLmluIChjYzFwbHVzKTogRGVwZW5kIG9uICQoQkFDS0VORCksIG5vdCBzdGFtcC1vYmpsaXN0LgoJKiBNYWtlZmlsZS5pbjogQWRkIENfT0JKUywgQkFDS0VORDsgZGVsZXRlIE9CSlMsIE9CSkRFUFMuCgkoY2MxcGx1cyk6IExpbmsgd2l0aCAkKEJBQ0tFTkQpIGFuZCAkKENfT0JKUykuCgoyMDAwLTA4LTA0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChhZGRfbWV0aG9kKTogQ2hhbmdlIHByb3RvdHlwZS4KCSogY2xhc3MuYyAoYWRkX21ldGhvZCk6IFJlbW92ZSBGSUVMRFMgcGFyYW1ldGVyLiAgQWRkIEVSUk9SX1AuCglEb24ndCBkb3VibGUgdGhlIHNpemUgb2YgdGhlIG1ldGhvZCB2ZWN0b3IgaW4gdGhlIGVycm9yIGNhc2UuCgkoaGFuZGxlX3VzaW5nX2RlY2wpOiBBZGp1c3QgY2FsbCB0byBhZGRfbWV0aG9kLgoJKGFkZF9pbXBsaWNpdGx5X2RlY2xhcmVkX21lbWJlcnMpOiBMaWtld2lzZS4KCShjbG9uZV9mdW5jdGlvbl9kZWNsKTogTGlrZXdpc2UuCgkqIGRlY2wyLmMgKGNoZWNrX2NsYXNzZm4pOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9tZW1iZXJfZGVjbGFyYXRpb24pOiBMaWtld2lzZS4KCjIwMDAtMDgtMDQgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGRlY2wuYyAoZmxhZ19pc29jOTQpOiBOZXcgdmFyaWFibGUuCgoyMDAwLTA4LTAyICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHB0LmMgKGRvX3R5cGVfaW5zdGFudGlhdGlvbik6IEFkZCBjb21wbGFpbiBwYXJtOyBkb24ndCBjb21wbGFpbgoJaWYgY2FsbGVkIHJlY3Vyc2l2ZWx5LgoJKiBjcC10cmVlLmgsIHBhcnNlLnk6IEFkanVzdC4KCjIwMDAtMDgtMDIgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGRlY2wyLmM6IFNpbGVudGx5IGlnbm9yZSAtV3N0cmljdC1wcm90b3R5cGVzOyB3YXJuIGFib3V0CgktV25vLXN0cmljdC1wcm90b3R5cGVzLgoKCSogZysrc3BlYy5jOiBBZGp1c3QgdHlwZSBvZiBzZWNvbmQgYXJndW1lbnQgdG8KCWxhbmdfc3BlY2lmaWNfZHJpdmVyLCBhbmQgdXBkYXRlIGNvZGUgYXMgbmVjZXNzYXJ5LgoKCSogY3AtdHJlZS5oOiBEb24ndCBwcm90b3R5cGUgbWluX3ByZWNpc2lvbiBoZXJlLgoJKG15X2ZyaWVuZGx5X2Fzc2VydCk6IENhc3QgZXhwcmVzc2lvbiB0byB2b2lkLgoJKiBzZW1hbnRpY3MuYyAoZG9fcG9wbGV2ZWwpOiBJbml0aWFsaXplIHNjb3BlX3N0bXRzLgoKMjAwMC0wOC0wMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoREVDTF9ORUVERURfUCk6IFR3ZWFrLgoKMjAwMC0wNy0yOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBsYW5nLXNwZWNzLmg6IFVzZSAlaSBpbiBydWxlIGZvciAuaWkgZmlsZXMuCgoyMDAwLTA3LTMxICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuY3VtYi5vcmc+CgoJKiBsYW5nLXNwZWNzLmg6IFJlbmFtZSBjcHAgdG8gY3BwMCBhbmQvb3IgdHJhZGNwcCB0byB0cmFkY3BwMC4KCjIwMDAtMDctMzAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJQWxsb3cgaW5kaXJlY3QgcHJpbWFyeSBiYXNlcy4KCSogY3AtdHJlZS5oIChzdHJ1Y3QgbGFuZ190eXBlKTogUmVtb3ZlIHZmaWVsZF9wYXJlbnQuICBBZGQKCXByaW1hcnlfYmFzZS4KCShDTEFTU1RZUEVfVkZJRUxEX1BBUkVOVCk6IFJlbW92ZS4KCShDTEFTU1RZUEVfUFJJTUFSWV9CSU5GTyk6IFJlaW1wbGVtZW50LgoJKEJJTkZPX1BSSU1BUllfQklORk8pOiBSZW1vdmUuCgkoQ0xBU1NUWVBFX0hBU19QUklNQVJZX0JBU0VfUCk6IFJlaW1wbGVtZW50LgoJKEJJTkZPX1ZCQVNFX1BSSU1BUllfUCk6IExpa2V3aXNlLgoJKEJJTkZPX1BSSU1BUllfQkFTRV9PRik6IE5ldyBtYWNyby4KCShCSU5GT19JTkRJUkVDVF9QUklNQVJZX1ApOiBMaWtld2lzZS4KCShnZXRfcHJpbWFyeV9iaW5mbyk6IE5ldyBmdW5jdGlvbi4KCSogZGVjbC5jIChsYW5nX21hcmtfdHJlZSk6IE1ha2UgbGFuZ190eXBlOjpwcmltYXJ5X2Jhc2UuCgkqIGNsYXNzLmMgKHZjYWxsX29mZnNldF9kYXRhX3MpOiBSZW5hbWUgdG8gLi4uCgkodnRibF9pbml0X2RhdGFfcyk6IC4uLiB0aGlzLiAgUmVuYW1lIHByaW1hcnlfcCB0byBwcmltYXJ5X3Z0YmxfcCwKCWFuZCBhZGQgY3Rvcl92dGJsX3AuCgkoZ2V0X2Rlcml2ZWRfb2Zmc2V0KTogVXNlIGdldF9wcmltYXJ5X2JpbmZvLgoJKGRmc19tYXJrX3ByaW1hcnlfYmFzZXMpOiBBZGp1c3QgaGFuZGxpbmcgb2YgdmlydHVhbCBwcmltYXJ5CgliYXNlcy4KCShtYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCShzZXRfcHJpbWFyeV9iYXNlKTogVGFrZSBhIGJpbmZvLCBub3QgYW4gaW50ZWdlciwgYXMgYQoJcmVwcmVzZW50YXRpb24gb2YgdGhlIHByaW1hcnkgYmFzZS4KCShpbmRpcmVjdF9wcmltYXJ5X2Jhc2VfcCk6IFJlbW92ZS4KCShkZXRlcm1pbmVfcHJpbWFyeV9iYXNlKTogQWRqdXN0IGZvciBpbmRpcmVjdCBwcmltYXJ5IGJhc2VzLgoJKGRmc19maW5kX2ZpbmFsX292ZXJyaWRlcik6IEZpeCB0eXBvIGluIGNvbWVudC4KCSh1cGRhdGVfdnRhYmxlX2VudHJ5X2Zvcl9mbik6IFVzZSBnZXRfcHJpbWFyeV9iaW5mby4KCShsYXlvdXRfbm9uZW1wdHlfYmFzZV9vcl9maWVsZCk6IFR3ZWFrLgoJKGJ1aWxkX2Jhc2VfZmllbGRzKTogQWRqdXN0IGZvciBuZXcgcHJpbWFyeSBiYXNlIHNlbWFudGljcy4KCShkZnNfcHJvcGFnYXRlX2JpbmZvX29mZnNldHMpOiBSZW1vdmUuCgkocHJvcGFnYXRlX2JpbmZvX29mZnNldHMpOiBSZXdyaXRlLgoJKGRmc19zZXRfb2Zmc2V0X2Zvcl9zaGFyZWRfdmJhc2VzKTogUmVtb3ZlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogRG9uJ3QgdXNlIGl0LgoJKGxheW91dF9jbGFzc190eXBlKTogU2V0IENMQVNTVFlQRV9TSVpFIGNvcnJlY3RseSB1bmRlciB0aGUgbmV3CglBQkkuCgkoZmluaXNoX3N0cnVjdF8xKTogU2V0IENMQVNTVFlQRV9QUklNQVJZX0JJTkZPLCBub3QKCUNMQVNTVFlQRV9WRklFTERfUEFSRU5ULgoJKGRmc19nZXRfcHJpbWFyeV9iaW5mbyk6IE5ldyBmdW5jdGlvbi4KCShnZXRfcHJpbWFyeV9iaW5mbyk6IExpa2V3aXNlLgoJKGR1bXBfY2xhc3NfaGllcmFyY2h5X3IpOiBUd2VhayBwcmludGluZyBvZiBwcmltYXJ5IGJhc2VzLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBGaXggdHlwbyBpbiBjb21tZW50cy4gIFVzZQoJdnRibF9pbml0X2RhdGEuCgkoYnVpbGRfdmNhbGxfYW5kX3ZiYXNlX3Z0YmxfZW50cmllcyk6IExpa2V3aXNlLgoJKGJ1aWxkX3ZiYWVzX29mZnNldF92dGJsX2VudHJpZXMpOiBMaWtld2lzZS4KCShkZnNfYnVpbGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IEFkanVzdCBzZXR0aW5nIG9mCglCVl9WQ0FMTF9JTkRFWCB0byBoYW5kbGUgaW5kaXJlY3QgcHJpbWFyeSBiYXNlcy4KCShidWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogVXNlIHZ0YmxfaW5pdF9kYXRhLgoJKGJ1aWxkX3J0dGlfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChnZXRfc2hhcmVkX3ZiYXNlX2lmX25vdF9wcmltYXJ5KTogVHdlYWsuCgkoZmluZF92YmFzZV9pbnN0YW5jZSk6IExpa2V3aXNlLgoJKGJpbmZvX2Zvcl92dGFibGUpOiBTaW1wbGlmeS4KCSogdHJlZS5jICh1bnNoYXJlX2Jhc2VfYmluZm9zKTogQ2xlYXIgQklORk9fUFJJTUFSWV9CQVNFX09GLgoJKG1ha2VfYmluZm8pOiBNYWtlIGl0IGhhdmUgMTEgZW50cmllcy4KCjIwMDAtMDctMzAgIEFsZXggU2FtdWVsICA8c2FtdWVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtYW5nbGUuYyAoREVDTF9URU1QTEFURV9JRF9QKTogUmVtb3ZlLgoJKENMQVNTVFlFUF9URU1QTEFURV9JRF9QKTogQ2hlY2sgdGVtcGxhdGUgaW5mbywgYW5kIGNvbnRleHQgd2hlbgoJYXNjZXJ0YWluaW5nIHByaW1hcnluZXNzLgoJKEcpOiBSZW1vdmUgdGVtcGxhdGVfYXJncy4KCShkZWNsX2lzX3RlbXBsYXRlX2lkKTogTmV3IGZ1bmN0aW9uLgoJKHdyaXRlX2VuY29kaW5nKTogVXNlIGRlY2xfaXNfdGVtcGxhdGVfaWQuCgkod3JpdGVfbmFtZSk6IExpa2V3aXNlLiAgSGFuZGxlIHR5cGVfZGVjbHMuICBHZXQgbWFpbiB2YXJpYW50IG9mCgl0eXBlIGRlY2xzLgoJKHdyaXRlX25lc3RlZF9uYW1lKTogTGlrZXdpc2UuCgkod3JpdGVfcHJlZml4KTogTGlrZXdpc2UuCgkod3JpdGVfdGVtcGxhdGVfcHJlZml4KTogTGlrZXdpc2UuCgkod3JpdGVfc3BlY2lhbF9uYW1lX2NvbnN0cnVjdG9yKTogUmVtb3ZlIGRlZnVuY3QgcHJvZHVjdGlvbiBmcm9tCgljb21tZW50LgoJKHdyaXRlX2JhcmVfZnVuY3Rpb25fdHlwZSk6IFJlbW92ZSBjb21tZW50IGFib3V0IGFic2VudCBwYXJhbWV0ZXIuCgkod3JpdGVfdGVtcGxhdGVfdGVtcGxhdGVfYXJnKTogQWRkIG1pc3NpbmcgZ3JhbW1hciBwcm9kdWN0aW9uIHRvCgljb21tZW50LgoKMjAwMC0wNy0yNyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IElmIGNvbW1vbl90eXBlIHByb2R1Y2VzIGEgbm9uLXR5cGVkZWYKCXR5cGUgZm9yIGEgdHlwZWRlZiwganVzdCB1c2UgdGhlIG9sZCB0eXBlLgoKMjAwMC0wNy0yNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZnVuY3Rpb25fZGVwdGgpOiBEZWNsYXJlLgoJKHZlcmlmeV9zdG10X3RyZWUpOiBMaWtld2lzZS4KCShmaW5kX3RyZWUpOiBMaWtld2lzZS4KCSogZGVjbC5jIChmdW5jdGlvbl9kZXB0aCk6IEdpdmUgaXQgZXh0ZXJuYWwgbGlua2FnZS4KCSogb3B0aW1pemUuYyAob3B0aW1pemVfZnVuY3Rpb24pOiBJbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBpdC4KCSogdHJlZS5jICh2ZXJpZnlfc3RtdF90cmVlX3IpOiBOZXcgZnVuY3Rpb24uCgkodmVyaWZ5X3N0bXRfdHJlZSk6IExpa2V3aXNlLgoJKGZpbmRfdHJlZV9yKTogTGlrZXdpc2UuCgkoZmluZF90cmVlKTogTGlrZXdpc2UuCgoyMDAwLTA3LTI3ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHB0LmMgKGZvcl9lYWNoX3RlbXBsYXRlX3Bhcm1fciwgY2FzZSBSRUNPUkRfVFlQRSk6IFVzZQoJVFlQRV9QVFJNRU1GVU5DX1AuCgkqIGNwLXRyZWUuaCAoVFlQRV9URU1QTEFURV9JTkZPKTogQ2hlY2sgZm9yIFRZUEVfTEFOR19TUEVDSUZJQy4KCjIwMDAtMDctMjYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKHN0YXJ0X2NsZWFudXBfZm4pOiBNYXJrIHRoZSBmdW5jdGlvbiBhcyBgaW5saW5lJy4KCSogZGVjbDIuYyAoZ2V0X2d1YXJkKTogQ2FsbCBjcF9maW5pc2hfZGVjbCwgbm90CglyZXN0X29mX2RlY2xfY29tcGlsYXRpb24sIGZvciBsb2NhbCBndWFyZHMuCgkqIGxleC5jIChkb19pZGVudGlmaWVyKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCjIwMDAtMDctMjYJTWFyYyBFc3BpZSA8ZXNwaWVAY3ZzLm9wZW5ic2Qub3JnPgoKCSogcGFyc2UueTogIEFkZCBtaXNzaW5nICc7Jy4KCjIwMDAtMDctMjYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwYXJzZS55IChlbXB0eV9wYXJtcyk6IFVzZSBgKCknLCBub3QgYCguLi4pJywgd2hlbiBpbiB0aGUgc2NvcGUKCW9mIGBleHRlcm4gIkMrKyInLgoKMjAwMC0wNy0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglLaWxsIHN0cmljdF9wcm90b3R5cGUuIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG9ubHkgZm9yCglub24gTk9fSU1QTElDSVRfRVhURVJOX0Mgc3lzdGVtcy4KCSogY3AtdHJlZS5oIChmbGFnX3N0cmljdF9wcm90b3R5cGUpOiBSZW1vdmUuCgkoc3RyaWN0X3Byb3RvdHlwZSk6IFJlbW92ZS4KCShzdHJpY3RfcHJvdG90eXBlc19sYW5nX2MsIHN0cmljdF9wcm90b3R5cGVzX2xhbmdfY3BsdXNwbHVzKTogUmVtb3ZlLgoJKiBkZWNsLmMgKG1heWJlX3B1c2hfdG9fdG9wX2xldmVsKTogQWRqdXN0LgoJKHBvcF9mcm9tX3RvcF9sZXZlbCk6IEFkanVzdC4KCShkZWNsc19tYXRjaCk6IE9ubHkgYWxsb3cgc2xvcHB5IHBhcm0gbWF0Y2hpbmcgZm9yIGFuY2llbnQKCXN5c3RlbSBoZWFkZXJzLgoJKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogQWRqdXN0LgoJKGdyb2tkZWNsYXJhdG9yKTogQWRqdXN0LgoJKiBkZWNsMi5jIChmbGFnX3N0cmljdF9wcm90b3R5cGUpOiBSZW1vdmUuCgkoc3RyaWN0X3Byb3RvdHlwZSk6IFJlbW92ZS4KCShzdHJpY3RfcHJvdG90eXBlc19sYW5nX2MsIHN0cmljdF9wcm90b3R5cGVzX2xhbmdfY3BsdXNwbHVzKTogUmVtb3ZlLgoJKGxhbmdfZl9vcHRpb25zKTogUmVtb3ZlICJzdHJpY3QtcHJvdG90eXBlIi4KCSh1bnN1cHBvcnRlZC1vcHRpb25zKTogQWRkICJzdHJpY3QtcHJvdG90eXBlIi4KCSogbGV4LmMgKGRvX2lkZW50aWZpZXIpOiBBZGp1c3QuCgkoZG9fc2NvcGVkX2lkKTogQWRqdXN0LgoJKiBwYXJzZS55IChlbXB0eV9wYXJtcyk6IEFkanVzdC4KCSogY2xhc3MuYyAocHVzaF9sYW5nX2NvbnRleHQpOiBBZGp1c3QuCgkocG9wX2xhbmdfY29udGV4dCk6IEFkanVzdC4KCSogdHlwZWNrLmMgKGNvbXBfdGFyZ2V0X3Bhcm1zKTogQWRqdXN0LgoKMjAwMC0wNy0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAocG9wbGV2ZWwpOiBEZWFsIHdpdGggYW5vbnltb3VzIHZhcmlhYmxlcyBhdCBmb3Igc2NvcGUuCgkobWF5YmVfaW5qZWN0X2Zvcl9zY29wZV92YXIpOiBMaWtld2lzZS4KCjIwMDAtMDctMjUgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGRlY2wuYzogUmVtb3ZlIGFsbCBzaWduYWwgaGFuZGxpbmcgY29kZSwgbm93IGRvbmUgaW4gdG9wbGV2LmMuCgoyMDAwLTA3LTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChtYWtlX3J0bF9mb3Jfbm9ubG9jYWxfZGVjbCk6IFJld29yay4KCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IEVuc3VyZSB0aGF0IFRZUEVfQ09OVEVYVCBpcyBzZXQKCWNvcnJlY3RseS4KCjIwMDAtMDctMjAgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGNwLXRyZWUuaDogVXNlIF9fRlVOQ1RJT05fXyBub3QgX19QUkVUVFlfRlVOQ1RJT05fXy4KCURlZmluZSBteV9mcmllbmRseV9hc3NlcnQgYW5kIG15X2ZyaWVuZGx5X2Fib3J0IGFzIG1hY3JvcwoJd2hpY2ggbWF5IGNhbGwgZnJpZW5kbHlfYWJvcnQuICBQcm90b3R5cGUgZnJpZW5kbHkgYWJvcnQsIG5vdAoJbXlfZnJpZW5kbHlfYWJvcnQgb3IgbXlfZnJpZW5kbHlfYXNzZXJ0LgoJKiBkZWNsLmMgKHNpZ25hbF9jYXRjaCk6IFJlcG9ydCB0aGUgc2lnbmFsIGNhdWdodCBpbiB0aGUgZXJyb3IKCW1lc3NhZ2UuICBDYWxsIGZhdGFsIGRpcmVjdGx5LgoJKiB0eXBlY2syLmMgKGFjaywgbXlfZnJpZW5kbHlfYXNzZXJ0KTogRGVsZXRlLgoJKG15X2ZyaWVuZGx5X2Fib3J0KTogUmVuYW1lIHRvIGZyaWVuZGx5X2Fib3J0LiAgRXhwZWN0IGZpbGUsCglsaW5lLCBhbmQgZnVuY3Rpb24gcGFyYW1ldGVycy4gIFJlcG9ydCB0aGUgYWJvcnQgY29kZSwgdGhlbgoJY2FsbCBmYW5jeV9hYm9ydC4gIERvIG5vdCBtYXNrIGFuIGFib3J0IGlmIGVycm9ycyBoYXZlCglhbHJlYWR5IG9jY3VycmVkLgoKMjAwMC0wNy0xOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHR5cGVjay5jIChjb21wX3RhcmdldF9wYXJtcyk6IFJlbW92ZSBvYnNvbGV0ZSBwYXJhbWV0ZXIuCgkoY29tcF90YXJnZXRfdHlwZXMpOiBBZGp1c3QuCgoyMDAwLTA3LTE3ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHR5cGVjay5jIChtYXJrX2FkZHJlc3NhYmxlKTogTmV2ZXIgc2V0IFRSRUVfVVNFRC4KCSogY2FsbC5jIChidWlsZF9jYWxsKTogRG9uJ3QgYWJvcnQgb24gY2FsbHMgdG8gbGlicmFyeSBmdW5jdGlvbnMKCXRoYXQgaGF2ZSBiZWVuIGRlY2xhcmVkIG5vcm1hbGx5LgoKCSogdHlwZWNrLmMgKGJ1aWxkX2JpbmFyeV9vcCk6IEZpeCBncmFtbWFyIGluIHdhcm5pbmcuCgoJKiBleGNlcHRpb24uY2MgKF9fZWhfZnJlZSk6IEZpeCBwcm90b3R5cGUuCgoJKiBkZWNsMi5jIChmaW5pc2hfZGVjbF9wYXJzaW5nKTogSGFuZGxlIFRFTVBMQVRFX0lEX0VYUFIuCgoJKiBkZWNsLmMgKHB1c2hkZWNsKTogSGFuZGxlIHNlZWluZyBhbiBPVkVSTE9BRCBpbgoJSURFTlRJRklFUl9OQU1FU1BBQ0VfVkFMVUUuCgoyMDAwLTA3LTE2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChUSFVOS19WQ0FMTF9PRkZTRVQpOiBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCSogbWV0aG9kLmMgKHVzZV90aHVuayk6IENvcnJlY3QgaGFuZGxpbmcgb2YgdmNhbGwgb2Zmc2V0cy4KCjIwMDAtMDctMTQgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIC5jdnNpZ25vcmU6IHBhcnNlLmggYW5kIHBhcnNlLmMgaGF2ZSBubyBjcC0gcHJlZml4LgoKMjAwMC0wNy0xMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIC5jdnNpZ25vcmU6IE5ldyBmaWxlLgoKMjAwMC0wNy0xMyAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogbGFuZy1zcGVjcy5oOiBVc2UgdGhlIG5ldyBuYW1lZCBzcGVjcy4gIFJlbW92ZSB1bm5lY2Vzc2FyeSBicmFjZXMuCgoyMDAwLTA3LTEyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuaW4gKCQoUEFSU0VfSCkpOiBEZXBlbmQgZGlyZWN0bHkgb24gcGFyc2UueS4KCSogcGFyc2UuYzogUmVtb3ZlLgoJKiBwYXJzZS5oOiBMaWtld2lzZS4KCjIwMDAtMDctMTEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChsYXlvdXRfY2xhc3NfdHlwZSk6IEFkZCBwb2ludGVycyB0byB2aXJ0dWFsIGJhc2VzIGFmdGVyCgliYXNlIGNsYXNzZXMgdW5kZXIgdGhlIG9sZCBBQkkuCgoyMDAwLTA3LTEwICBCZW5qYW1pbiBDaGVsZiAgPGNoZWxmQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2Zvcl9zdG10KTogUmVtb3ZlIGNhbGwgdG8gZW1pdF9saW5lX25vdGUuCgkoZmluaXNoX2NvbnRpbnVlX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl9mb3Jfc3RtdCk6IFJlbW92ZSBjYWxsIHRvIG5vdGVfbGV2ZWxfZm9yX2Zvci4KCShmaW5pc2hfZ290b19zdG10KTogQ2hhbmdlIGNhbGwgZnJvbSBidWlsZF9taW5fbnQKCXRvIGJ1aWxkX3N0bXQuCgkoZmluaXNoX2V4cHJfc3RtdCk6IExpa2V3aXNlLgoJKGJlZ2luX2lmX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl93aGlsZV9zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX3doaWxlX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfcmV0dXJuX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl9mb3Jfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9mb3Jfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9icmVha19zdG10KTogTGlrZXdpc2UuCgkoYmVnaW5fc3dpdGNoX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfY2FzZV9sYWJlbCk6IExpa2V3aXNlLgoJKGdlbnJ0bF90cnlfYmxvY2spOiBMaWtld2lzZS4KCShiZWdpbl90cnlfYmxvY2spOiBMaWtld2lzZS4KCShiZWdpbl9oYW5kbGVyKTogTGlrZXdpc2UuCgkoYmVnaW5fY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9hc21fc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9sYWJlbF9zdG10KTogTGlrZXdpc2UuCgkoYWRkX2RlY2xfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9zdWJvYmplY3QpOiBMaWtld2lzZS4KCShmaW5pc2hfZGVjbF9jbGVhbnVwKTogTGlrZXdpc2UuCgkoZmluaXNoX25hbWVkX3JldHVybl92YWx1ZSk6IExpa2V3aXNlLgoJKHNldHVwX3Z0YmxfcHRyKTogTGlrZXdpc2UuCgkoYWRkX3Njb3BlX3N0bXQpOiBMaWtld2lzZS4KCSogZGVjbC5jIChmaW5pc2hfY29uc3RydWN0b3JfYm9keSk6IExpa2V3aXNlLgoJKGZpbmlzaF9kZXN0cnVjdG9yX2JvZHkpOiBMaWtld2lzZS4KCSogb3B0aW1pemUuYyAoY29weV9ib2R5X3IpOiBMaWtld2lzZS4KCShpbml0aWFsaXplX2lubGluZWRfcGFyYW1ldGVycyk6IExpa2V3aXNlLgoJKGRlY2xhcmVfcmV0dXJuX3ZhcmlhYmxlKTogTGlrZXdpc2UuCgkoZXhwYW5kX2NhbGxfaW5saW5lKTogTGlrZXdpc2UuCgoyMDAwLTA3LTEwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHNlbWFudGljcy5jIChleHBhbmRfYm9keSk6IFN5bmMgaW50ZXJmYWNlIGluZm9ybWF0aW9uCglhdCB0aGUgZW5kIG9mIGZ1bmN0aW9uIGJvZHkgZXhwYW5zaW9uLgoKMjAwMC0wNy0wOSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBpbml0LmMgKGJ1aWxkX25ld18xKTogQmFpbCBlYXJseSBpZiB0aGUgY2FsbCB0byBuZXcgZmFpbHMuCgoJKiBkZWNsLmMgKGNvbXB1dGVfYXJyYXlfaW5kZXhfdHlwZSk6IENoZWNrIHNwZWNpZmljYWxseSBmb3IKCWFuIElOVEVHRVJfQ1NULCBub3QganVzdCBUUkVFX0NPTlNUQU5ULgoKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBEb24ndCBjYWxsIGR1cGxpY2F0ZV9kZWNscyBvbgoJdGhlIERFQ0xfVEVNUExBVEVfUkVTVUxULgoJKGRlY2xzX21hdGNoKTogUmV0dXJuIDAgaWYgdGhlIERFQ0xfVEVNUExBVEVfUkVTVUxUcyBoYXZlIGRpZmZlcmVudAoJY29kZXMuCgoJKiBlcnJvci5jIChkdW1wX3RlbXBsYXRlX2JpbmRpbmdzKTogRG9uJ3QgY3Jhc2ggaWYgd2UgaGFkIGFuCglpbnZhbGlkIGFyZ3VtZW50IGxpc3QuCgoJKiB0eXBlY2suYyAoY19leHBhbmRfc3RhcnRfY2FzZSk6IERvIG5hcnJvd2luZyBoZXJlLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX3N3aXRjaF9jb25kKTogTm90IGhlcmUuCgoyMDAwLTA3LTA5ICBIaWR2ZWdpIFpvbGkgIDxoem9saUBhdXN0aW4uaWJtLmNvbT4KCgkqIHBhcnNlLnkgKGFzbV9jbG9iYmVycyk6IERvIHN0cmluZyBjb25jYXRlbmF0aW9uLgoKMjAwMC0wNy0wOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAocHVzaHRhZyk6IERvbid0IHB1dCBsb2NhbCBjbGFzc2VzIGluIHRlbXBsYXRlIGZ1bmN0aW9ucwoJb24gdGhlIGxvY2FsX2NsYXNzZXMgbGlzdC4KCjIwMDAtMDctMDQgIFNjb3R0IFNueWRlciAgPHNueWRlckBmbmFsLmdvdj4KCgkqIGRlY2wyLmMgKGdldF9ndWFyZCk6IEFkZCBtaXNzaW5nIHJldHVybiBmb3Igb2xkIEFCSSBsb2NhbAoJdmFyaWFibGUgY2FzZS4KCjIwMDAtMDctMDkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGNoYXJfdHlwZV9wKTogTmV3IGZ1bmN0aW9uLgoJKiBkZWNsLmMgKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogRG9uJ3QgaW5pdGlhbGl6ZQoJc2lnbmVkX3djaGFyX3R5cGVfbm9kZSBvciB1bnNpZ25lZF93Y2hhcl90eXBlX25vZGUuCgkoY29tcGxldGVfYXJyYXlfdHlwZSk6IEhhbmRsZSBicmFjZS1lbmNsb3NlZCBzdHJpbmctY29uc3RhbnRzLgoJKiBydHRpLmMgKGVtaXRfc3VwcG9ydF90aW5mb3MpOiBSZW1vdmUgI2lmIDAnZCBjb2RlLgoJKiB0cmVlLmMgKGNoYXJfdHlwZV9wKTogTmV3IGZ1bmN0aW9uLgoJKiB0eXBlY2syLmMgKGRpZ2VzdF9pbml0KTogVXNlIGNoYXJfdHlwZV9wLgoKMjAwMC0wNy0wNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKHRzdWJzdCk6IERvbid0IGxheW91dCB0eXBlLCBpZiBpdCdzIGVycm9yX21hcmsuCgoyMDAwLTA3LTA2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAoaW5zdGFudGlhdGVfcGVuZGluZ190ZW1wbGF0ZXMpOiBSZXNldCB0ZW1wbGF0ZSBsZXZlbC4KCjIwMDAtMDctMDUgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogY2FsbC5jIChqb3VzdCk6IERvbid0IGNvbXBsYWluIGFib3V0IGBvcGVyYXRvciBjaGFyICooKScgYmVhdGluZwoJYG9wZXJhdG9yIGNvbnN0IGNoYXIgKigpIGNvbnN0Jy4KCjIwMDAtMDctMDQgIHNjb3R0IHNueWRlciAgPHNueWRlckBmbmFsLmdvdj4KCSAgICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHJlcG8uYyAocmVwb19nZXRfaWQpOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBjbGFzcyB3aXRoIHZpcnR1YWwKCWJhc2VzIGhhcyBhIG51bGwgVFlQRV9CSU5GT19WVEFCTEUuCgoyMDAwLTA3LTA0ICBLZXZpbiBCdWhyICA8YnVockBzdGF0Lndpc2MuZWR1PgoJICAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogcGFyc2UueSAobWVtYmVyX2luaXQpOiBKdXN0IHBhc3MgaW4gdGhlIHR5cGUuCgkqIGluaXQuYyAoZXhwYW5kX21lbWJlcl9pbml0KTogSGFuZGxlIGdldHRpbmcgYSB0eXBlLgoKMjAwMC0wNy0wNCAgTWFydGluIHYuIEz2d2lzICA8bG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlPgoJICAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZGVjbC5jIChmaW5pc2hfZnVuY3Rpb24pOiBXYXJuIGlmIGEgZnVuY3Rpb24gaGFzIG5vIHJldHVybgoJc3RhdGVtZW50LgoJU3VnZ2VzdGVkIGJ5IEFuZHJldyBLb2VuaWcuCgkqIHR5cGVjay5jIChjaGVja19yZXR1cm5fZXhwcik6IERvIHNldCBjdXJyZW50X2Z1bmN0aW9uX3JldHVybnNfdmFsdWUKCWlmIHdlIGdvdCBhbiBlcnJvcl9tYXJrX25vZGUuCgoyMDAwLTA3LTAzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAocHVzaF9kZWNsX25hbWVzcGFjZSk6IFB1c2ggdGhlIG9yaWdpbmFsIG5hbWVzcGFjZS4KCjIwMDAtMDctMDMgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwdC5jIChpbnN0YW50aWF0ZV9jbGFzc190ZW1wbGF0ZSk6IFNldCBDTEFTU1RZUEVfVkJBU0VDTEFTU0VTLgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5fY2xhc3NfZGVmaW5pdGlvbik6IENsZWFyIGl0LgoKMjAwMC0wNy0wMiAgQmVuamFtaW4gQ2hlbGYgIDxjaGVsZkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChnZW5ydGxfZ290b19zdG10KTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKGdlbnJ0bF9leHByX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZGVjbF9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2lmX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfd2hpbGVfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9kb19zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3JldHVybl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2Zvcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2JyZWFrX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfY29udGludWVfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9zY29wZV9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3N3aXRjaF9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2Nhc2VfbGFiZWwpOiBMaWtld2lzZS4KCShnZW5ydGxfYmVnaW5fY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9maW5pc2hfY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9jb21wb3VuZF9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2FzbV9zdG10KTogTGlrZXdpc2UuCgoJKiBpbml0LmMgKGJlZ2luX2luaXRfc3RtdHMpOiBSZW1vdmUgY2FsbCB0bwoJZ2VucnRsX2JlZ2luX2NvbXBvdW5kX3N0bXQuCgkoZmluaXNoX2luaXRfc3RtdHMpOiBSZW1vdmUgY2FsbCB0byBnZW5ydGxfZmluaXNoX2NvbXBvdW5kX3N0bXQuCgoJKiBzZW1hbnRpY3MuYyAobGFuZ19leHBhbmRfc3RtdCk6IENoYW5nZWQgY2FsbCB0bwoJZ2VucnRsX2NvbXBvdW5kX3N0bXQgdG8gaWdub3JlIHJldHVybiB2YWx1ZS4KCjIwMDAtMDctMDIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtYW5nbGUuYyAoY2Fub25pY2FsaXplX2Zvcl9zdWJzdGl0dXRpb24pOiBSZXR1cm4gdGhlIGNhbm9uaWNhbAoJdmFyaWFudCBvZiBhIHR5cGUuCgoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IFByZXNlcnZlIERFQ0xfT1JJR0lOQUxfVFlQRSBmb3IgYQoJVFlQRV9ERUNMLgoJKiB0eXBlY2suYyAoY29tbW9ucGFybXMpOiBSZW1vdmUgb2JzdGFjayBtYW5pcHVsYXRpb25zLgoKMjAwMC0wNy0wMSAgQmVuamFtaW4gQ2hlbGYgIDxjaGVsZkBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluIChjYzFwbHVzJChleGVleHQpKTogQWRkZWQgYy1zZW1hbnRpY3Muby4KCgkqIE1ha2VmaWxlLmluIChPQkpTKTogQWRkZWQgLi4vYy1zZW1hbnRpY3Muby4KCShPQkpERVBTKTogTGlrZXdpc2UuCgoJKiBjcC10cmVlLmggKFRSRUVfTEFOR19GTEFHXz8pOiBNb3ZlZCBjb21tb24gZG9jdW1lbnRhdGlvbiB0bwoJLi4vYy1jb21tb24uaC4KCShzdHJ1Y3Qgc3RtdF90cmVlKTogQWRkZWQgY29tbWVudC4KCShjdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQpOiBSZW1vdmVkLgoJKHN0bXRzX2FyZV9mdWxsX2V4cHJzX3ApOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fcHVzaGxldmVsKTogTGlrZXdpc2UuCgkoZ2VucnRsX2NsZWFyX291dF9ibG9jayk6IExpa2V3aXNlLgoJKENPTVBPVU5EX1NUTVRfTk9fU0NPUEUpOiBNb3ZlZCB0byAuLi9jLWNvbW1vbi5oLgoJKERFQ0xfQU5PTl9VTklPTl9FTEVNUyk6IExpa2V3aXNlLgoJKGVtaXRfbG9jYWxfdmFyKTogTGlrZXdpc2UuCgkobWFrZV9ydGxfZm9yX2xvY2FsX3N0YXRpYyk6IExpa2V3aXNlLgoJKGRvX2Nhc2UpOiBMaWtld2lzZS4KCShleHBhbmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9kZWNsX2NsZWFudXApOiBMaWtld2lzZS4KCShjX2V4cGFuZF9hc21fb3BlcmFuZHMpOiBMaWtld2lzZS4KCShjX2V4cGFuZF9yZXR1cm4pOiBMaWtld2lzZS4KCShjX2V4cGFuZF9zdGFydF9jYXNlKTogTGlrZXdpc2UuCgoJKiBkZWNsLmMgKG1ha2VfcnRsX2Zvcl9sb2NhbF9zdGF0aWMpOiBNb3ZlZCB0byBjLXNlbWFudGljcy5jLgoJKGVtaXRfbG9jYWxfdmFyKTogTGlrZXdpc2UuCgkoaW5pdGlhbGl6ZV9sb2NhbF92YXIpOiBDaGFuZ2UgcmVmZXJlbmNlIHRvCglzdG10c19hcmVfZnVsbF9leHByc19wIHRvIGNhbGwgdG8gc3RtdHNfYXJlX2Z1bGxfZXhwcnNfcCgpLgoJQ2hhbmdlIHJlZmVyZW5jZSB0byBzdG10c19hcmVfZnVsbF9leHByc19wIHRvCgljdXJyZW50X3N0bXRfdHJlZS0+c3RtdHNfYXJlX2Z1bGxfZXhwcnNfcC4KCShwdXNoX2NwX2Z1bmN0aW9uX2NvbnRleHQpOiBMaWtld2lzZS4KCgkqIGV4cGVjdC5jIChleHBhbmRfdGhyb3cpOiBDaGFuZ2UgcmVmZXJlbmNlIHRvCglzdG10c19hcmVfZnVsbF9leHByc19wLgoKCSogaW5pdC5jIChidWlsZF9hZ2dyX2luaXQpOiBDaGFuZ2UgcmVmZXJlbmNlIHRvCglzdG10c19hcmVfZnVsbF9leHByc19wLgoJKGJ1aWxkX3ZlY19pbml0KTogTGlrZXdpc2UuCgoJKiBvcHRpbWl6ZS5jIChtYXliZV9jbG9uZV9ib2R5KTogQ2hhbmdlIHJlZmVyZW5jZSB0bwoJY3VycmVudF9mdW5jdGlvbl9uYW1lX2RlY2xhcmVkIHRvCgljcF9mdW5jdGlvbl9jaGFpbi0+bmFtZV9kZWNsYXJlZC4KCgkqIHB0LmMgKGluc3RhbnRpYXRlX2RlY2wpOiBDaGFuZ2UgcmVmZXJlbmNlIHRvCgljdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQgdG8KCWNwX2Z1bmN0aW9uX2NoYWluLT5uYW1lX2RlY2xhcmVkLgoKCSogc2VtYW50aWNzLmMgKGV4cGFuZF9jb25kKTogTW92ZWQgZGVjbGFyYXRpb24gdG8gYy1jb21tb24uaC4KCShnZW5ydGxfZG9fcHVzaGxldmVsKTogTW92ZWQgdG8gYy1zZW1hbnRpY3MuYy4KCShnZW5ydGxfY2xlYXJfb3V0X2Jsb2NrKTogTGlrZXdpc2UuCgkoZ2VucnRsX2dvdG9fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9leHByX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZGVjbF9zdG10KTogTGlrZXdpc2UuCgkoZ2VybnRsX2lmX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfd2hpbGVfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9kb19zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3JldHVybl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2Zvcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2JyZWFrX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfY29udGludWVfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9zY29wZV9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3N3aXRjaF9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2Nhc2VfbGFiZWwpOiBMaWtld2lzZS4KCShnZW5ydGxfYmVnaW5fY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9maW5pc2hfY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9jb21wb3VuZF9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2FzbV9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2RlY2xfY2xlYW51cCk6IExpa2V3aXNlLgoJKGV4cGFuZF9jb25kKTogTGlrZXdpc2UuCgkoZXhwYW5kX3N0bXQpOiBSZW5hbWVkIHRvIC4uLgoJKGxhbmdfZXhwYW5kX3N0bXQpOiAuLi4gdGhpcy4KCShsYW5nX2V4cGFuZF9leHByX3N0bXQpOiBJbml0aWFsaXplLgoJKHNldF9jdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQpOiBMaWtld2lzZS4KCShzdG10c19hcmVfZnVsbF9leHByc19wKTogTGlrZXdpc2UuCgkoY3VycmVudF9mdW5jdGlvbl9uYW1lX2RlY2xhcmVkKTogTGlrZXdpc2UuCgkoYW5vbl9hZ2dyX3R5cGVfcCk6IExpa2V3aXNlLgoJKGRvX3BvcGxldmVsKTogQ2hhbmdlIHJlZmVyZW5jZSB0bwoJc3RtdHNfYXJlX2Z1bGxfZXhwcnNfcCB0byBjYWxsIHRvIHN0bXRzX2FyZV9mdWxsX2V4cHJzX3AoKS4KCUNoYW5nZSByZWZlcmVuY2UgdG8gc3RtdHNfYXJlX2Z1bGxfZXhwcnNfcCB0bwoJY3VycmVudF9zdG10X3RyZWUtPnN0bXRzX2FyZV9mdWxsX2V4cHJzX3AuCgkoYWRkX3RyZWUpOiBMaWtld2lzZS4KCShmaW5pc2hfZXhwcl9zdG10KTogTGlrZXdpc2UuCgkocHJlcF9zdG10KTogTGlrZXdpc2UuCgkobGFuZ19leHBhbmRfc3RtdCk6IExpa2V3aXNlLgoJKGJlZ2luX2NvbXBvdW5kX3N0bXQpOiBDaGFuZ2UgcmVmZXJlbmNlIHRvCgljdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQgdG8KCWNwX2Z1bmN0aW9uX2NoYWluLT5uYW1lX2RlY2xhcmVkIGFuZCBjYWxsIHRvCgljdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQoKS4KCShzZXR1cF92dGJsX3B0cik6IExpa2V3aXNlLgoJKGdlbnJ0bF9kb19wb3BsZXZlbCk6IFJlbW92ZWQuCgoyMDAwLTA2LTMwICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGluaXQuYyAoaW5pdF9pbml0X3Byb2Nlc3NpbmcpOiBHbyBiYWNrIHRvIGFsaWduaW5nIGxpa2UKCWRvdWJsZV90eXBlX25vZGUgZm9yIG9sZCBBQkkuCgkoZ2V0X2Nvb2tpZV9zaXplKTogTWFrZSBjb29raWUgbGFyZ2VyIGlmIHdlIGdldCBhIHR5cGUgdGhhdCBuZWVkcwoJbW9yZSBhbGlnbm1lbnQuCgkoYnVpbGRfdmVjX2RlbGV0ZSk6IENhbGwgaXQuCgoJKiB0eXBlY2suYyAocXVhbGlmeV90eXBlX3JlY3Vyc2l2ZSk6IE5ldyBmbi4KCShjb21wb3NpdGVfcG9pbnRlcl90eXBlKTogVXNlIGl0LgoJKGJ1aWxkX2JpbmFyeV9vcCk6IFVzZSBjb21wb3NpdGVfcG9pbnRlcl90eXBlLgoKMjAwMC0wNi0yNCAgQ2FybG9zIE8nUnlhbiAgPGNvcnlhbkBjcy53dXN0bC5lZHU+CgkgICAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiB0eXBlY2suYyAoY2hlY2tfcmV0dXJuX2V4cHIpOiBEb24ndCBjb21wbGFpbiBhYm91dCByZXR1cm5pbmcKCU5VTEwgZnJvbSBvcGVyYXRvciBuZXcgaWYgLWZjaGVjay1uZXcuCgkqIGNwLXRyZWUuaDogRGVjbGFyZSBmbGFnX2NoZWNrX25ldyBoZXJlLgoJKiBpbml0LmM6IE5vdCBoZXJlLgoKMjAwMC0wNi0yOCAgQWxleCBTYW11ZWwgIDxzYW11ZWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG1hbmdsZS5jIChmaW5kX3N1YnN0aXR1dGlvbik6IFVzZSBzYW1lX3R5cGVfcC4KCSh3cml0ZV9lbmNvZGluZyk6IERvbid0IGNoZWNrIGZvciBzdWJzdGl0dXRpb25zLgoKMjAwMC0wNi0zMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHBhcnNlLnkgKGV4cHJfbm9fY29tbWFfcmFuZ2xlKTogTmV3IG5vbi10ZXJtaW5hbC4KCSh0ZW1wbGF0ZV9wYXJtKTogVXNlIGl0IGZvciBkZWZhdWx0IHBhcmFtZXRlciBjYXNlLgoJKHRlbXBsYXRlX2FyZyk6IFVzZSBpdC4KCShleHByX25vX2NvbW1hcyk6IFJlbW92ZSBjb21tZW50ZWQgb3V0IHVuZGVmaW5lZCBleHRlbnNpb25zLgoJKiBNYWtlZmlsZS5pbiAoQ09ORkxJQ1RTKTogQWRqdXN0IHRvIDMzIHMvciAmIDQ4IHIvci4KCSogcGFyc2UuaCwgcGFyc2UuYzogUmVidWlsdC4KCjIwMDAtMDYtMzAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzZW1hbnRpY3MuYyAoZ2VucnRsX2FzbV9zdG10KTogRG9uJ3QgZGVjYXkgaW5wdXQgb3BlcmFuZHMgaGVyZS4KCShmaW5pc2hfYXNtX3N0bXQpOiBEbyBpdCBoZXJlLCBpbnN0ZWFkLgoKCSogY3AtdHJlZS5oIChyaWRwb2ludGVycyk6IERvbid0IGRlY2xhcmUuCgkqIGRlY2wuYyAocmVjb3JkX2J1aWx0aW5fdHlwZSk6IFVzZSBDUF9SSURfTUFYIGluc3RlYWQgb2YgUklEX01BWC4KCShyZWNvcmRfYnVpbHRpbl9qYXZhX3R5cGUpOiBMaWtld2lzZS4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IExpa2V3aXNlLgoJKiBsZXguYzogTW92ZSBpbmNsdXNpb24gb2YgbGV4LmguCgkocmlkcG9pbnRlcnMpOiBEb24ndCBkZWZpbmUuCgkoaW5pdF9wYXJzZSk6IEluaXRpYWxpemUgcmlwZG9pbnRlcnMuICBVc2UgQ1BfUklEX01BWCBpbnN0ZWFkIG9mCglSSURfTUFYLgoJKiBsZXguaCAoZW51bSByaWQpOiBSZW5hbWUgdG8gLi4uCgkoZW51bSBjcF9yaWQpOiAuLi4gdGhpcy4KCShyaWRwb2ludGVycyk6IERvbid0IGRlY2xhcmUuCgkqIHBhcnNlLnk6IE1vdmUgaW5jbHVzaW9uIG9mIGxleC5oLgoJKiBwYXJzZS5jOiBSZWdlbmVyYXRlZC4KCSogc3Bldy5jOiBNb3ZlIGluY2x1c2lvbiBvZiBsZXguaC4KCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmd1YWdlX2Z1bmN0aW9uKTogUmVtb3ZlIHRlbXBfbmFtZV9jb3VudGVyLgoJKHRlbXBfbmFtZV9jb3VudGVyKTogUmVtb3ZlLgoJKGdldF90ZW1wX25hbWUpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKGdldF9ndWFyZCk6IE5ldyBmdW5jdGlvbi4KCShnZXRfZ3VhcmRfY29uZCk6IExpa2V3aXNlLgoJKHNldF9ndWFyZCk6IExpa2V3aXNlLgoJKiBjdnQuYyAoYnVpbGRfdXBfcmVmZXJlbmNlKTogQWRqdXN0IGNhbGwgdG8gZ2V0X3RlbXBfbmFtZS4KCSogZGVjbC5jIChleHBhbmRfc3RhdGljX2luaXQpOiBVc2UgZ2V0X2d1YXJkIGFuZCBmcmllbmRzIHRvCglpbXBsZW1lbnQgZ3VhcmQgdmFyaWFibGVzLgoJKiBkZWNsMi5jIChnZXRfdGVtcF9uYW1lKTogQXNzdW1lIHRoYXQgdGhlIHZhcmlhYmxlcyBjcmVhdGVkIGFyZQoJYWx3YXlzIHN0YXRpYy4KCShnZXRfc2VudHJ5KTogUmVuYW1lIHRvIC4uLgoJKGdldF9ndWFyZCk6IC4uLiB0aGlzLiAgSW1wbGVtZW50IG5ldyBBQkkgZ3VhcmQJdmFyaWFibGVzLgoJKGdldF9ndWFyZF9iaXRzKTogTmV3IGZ1bmN0aW9uLgoJKGdldF9ndWFyZF9jb25kKTogTGlrZXdpc2UuCgkoc2V0X2d1YXJkKTogTGlrZXdpc2UuCgkoc3RhcnRfc3RhdGljX2luaXRpYWxpemF0aW9uX29yX2Rlc3RydWN0aW9uKTogVXNlIHRoZW0uCgkoZG9fc3RhdGljX2luaXRpYWxpemF0aW9uKTogUmVwbGFjZSBzZW50cnkgd2l0aCBndWFyZCB0aHJvdWdob3V0LgoJKGRvX3N0YXRpY19kZXN0cnVjdGlvbik6IExpa2V3aXNlLgoJKiBpbml0LmMgKGNyZWF0ZV90ZW1wb3JhcnlfdmFyKTogQWRkIGNvbW1lbnQuCgoyMDAwLTA2LTI4ICBBbGV4IFNhbXVlbCAgPHNhbXVlbEBjb2Rlc291cmNlcnkuY29tPgoKCSogbWFuZ2xlLmMgKGZpbmRfc3Vic3RpdHV0aW9uKTogVXNlIHNhbWVfdHlwZV9wLgoJKHdyaXRlX2VuY29kaW5nKTogRG9uJ3QgY2hlY2sgZm9yIHN1YnN0aXR1dGlvbnMuCgoyMDAwLTA2LTMwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcGFyc2UueSAoZXhwcl9ub19jb21tYV9yYW5nbGUpOiBOZXcgbm9uLXRlcm1pbmFsLgoJKHRlbXBsYXRlX3Bhcm0pOiBVc2UgaXQgZm9yIGRlZmF1bHQgcGFyYW1ldGVyIGNhc2UuCgkodGVtcGxhdGVfYXJnKTogVXNlIGl0LgoJKGV4cHJfbm9fY29tbWFzKTogUmVtb3ZlIGNvbW1lbnRlZCBvdXQgdW5kZWZpbmVkIGV4dGVuc2lvbnMuCgkqIE1ha2VmaWxlLmluIChDT05GTElDVFMpOiBBZGp1c3QgdG8gMzMgcy9yICYgNDggci9yLgoJKiBwYXJzZS5oLCBwYXJzZS5jOiBSZWJ1aWx0LgoKMjAwMC0wNi0yOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZmxhZ19jb25zdF9zdHJpbmdzKTogUmVtb3ZlLgoJKHdhcm5fcGFyZW50aGVzZXMpOiBMaWtld2lzZS4KCSh3YXJuX2Zvcm1hdCk6IExpa2V3aXNlLgoJKGNvbW1vbl90eXBlKTogTGlrZXdpc2UuCgkoZGVmYXVsdF9jb252ZXJzaW9uKTogTGlrZXdpc2UuCgkoYnVpbGRfYmluYXJ5X29wKTogTGlrZXdpc2UuCgkoY3BfYnVpbGRfYmluYXJ5X29wKTogTmV3IG1hY3JvLgoJKiBjYWxsLmMgKGJ1aWxkX25ld19vcCk6IFVzZSBjcF9idWlsZF9iaW5hcnlfb3AgaW5zdGVhZCBvZgoJYnVpbGRfYmluYXJ5X29wLgoJKiBjbGFzcy5jIChidWlsZF92dGFibGVfZW50cnlfcmVmKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoZXhwYW5kX3N0YXRpY19pbml0KTogTGlrZXdpc2UuCgkoY29tcHV0ZV9hcnJheV9pbmRleF90eXBlKTogTGlrZXdpc2UuCgkoYnVpbGRfZW51bWVyYXRvcik6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChkZWxldGVfc2FuaXR5KTogTGlrZXdpc2UuCgkoc3RhcnRfc3RhdGljX2luaXRpYWxpemF0aW9uX29yX2Rlc3RydWN0aW9uKTogTGlrZXdpc2UuCgkqIGVycm9yLmMgKGR1bXBfdHlwZV9zdWZmaXgpOiBMaWtld2lzZS4KCSogaW5pdC5jIChyZXNvbHZlX29mZnNldF9yZWYpOiBMaWtld2lzZS4KCShidWlsZF9uZXcpOiBMaWtld2lzZS4KCShidWlsZF9uZXdfMSk6IExpa2V3aXNlLgoJKGJ1aWxkX3ZlY19kZWxldGVfMSk6IExpa2V3aXNlLgoJKGJ1aWxkX3ZlY19pbml0KTogTGlrZXdpc2UuCgkoYnVpbGRfZGVsZXRlKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoc3ludGhlc2l6ZV90aW5mb19mbik6IExpa2V3aXNlLgoJKHN5bnRoZXNpemVfdGluZm9fdmFyKTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChleHBhbmRfdXBjYXN0X2ZpeHVwcyk6IExpa2V3aXNlLgoJKGZpeHVwX2FsbF92aXJ0dWFsX3VwY2FzdF9vZmZzZXRzKTogTGlrZXdpc2UuCgkqIHR5cGVjay5jIChidWlsZF9hcnJheV9yZWYpOiBMaWtld2lzZS4KCShnZXRfbWVtYmVyX2Z1bmN0aW9uX2Zyb21fcHRyZnVuYyk6IExpa2V3aXNlLgoJKGJ1aWxkX2JpbmFyeV9vcCk6IEFkZCBwYXJhbWV0ZXIuCgkocG9pbnRlcl9pbnRfc3VtKTogVXNlIGNwX2J1aWxkX2JpbmFyeV9vcC4KCShwb2ludGVyX2RpZmYpOiBMaWtld2lzZS4KCShidWlsZF9tb2RpZnlfZXhwcik6IExpa2V3aXNlLgoJKGdldF9kZWx0YV9kaWZmZXJlbmNlKTogTGlrZXdpc2UuCgkoYnVpbGRfcHRybWVtZnVuYyk6IExpa2V3aXNlLgoKMjAwMC0wNi0yOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoU0VUX0RFQ0xfQVJUSUZJQ0lBTCk6IFJlbW92ZS4KCSogZGVjbC5jIChjcmVhdGVfaW1wbGljaXRfdHlwZWRlZik6IEFkanVzdC4KCSogZGVjbDIuYyAoYnVpbGRfYXJ0aWZpY2lhbF9wYXJtKTogQWRqdXN0LgoJKiBtZXRob2QuYyAoaW1wbGljaXRseV9kZWNsYXJlX2ZuKTogQWRqdXN0LgoJKiBwdC5jIChwdXNoX2lubGluZV90ZW1wbGF0ZV9wYXJtc19yZWN1cnNpdmUpOiBBZGp1c3QuCgkocHJvY2Vzc190ZW1wbGF0ZV9wYXJtKTogQWRqdXN0LgoJKG92ZXJsb2FkZWRfdGVtcGxhdGVfbmFtZSk6IEFkanVzdC4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF90ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJtKTogQWRqdXN0LgoKMjAwMC0wNi0yOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQ0xFQVJfQklORk9fTkVXX1ZUQUJMRV9NQVJLRUQpOiBSZW1vdmUuCgkqIGNsYXNzLmMgKHVwZGF0ZV92dGFibGVfZW50cnlfZm9yX2ZuKTogQ29ycmVjdCBsb2dpYyBmb3IgZGVjaWRpbmcKCXdoZXJlIHRvIGVtaXQgdGh1bmtzLgoJKGJ1aWxkX3Z0dCk6IEFkanVzdCBjYWxsIHRvIGJ1aWxkX3Z0dF9pbml0cy4KCShidWlsZF92dHRfaW5pdHMpOiBBZGQgcGFyYW1ldGVyIHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90CglzdWItVlRUcyBmb3IgdmlydHVhbCBiYXNlcyBzaG91bGQgYmUgaW5jbHVkZWQuICBBZGp1c3QgaGFuZGxpbmcgb2YKCWNvbnN0cnVjdGlvbiB2dGFibGVzLgoJKGdldF9tYXRjaGluZ19iYXNlKTogTmV3IGZ1bmN0aW9uLgoJKGRmc19idWlsZF92dHRfaW5pdHMpOiBSZW5hbWUgdG8gLi4uCgkoZGZzX2J1aWxkX3NlY29uZGFyeV92cHRyX3Z0dF9pbml0cyk6IEFkanVzdCBoYW5kbGluZyBvZgoJY29uc3RydWN0aW9uIHZ0YWJsZXMuCgkoZGZzX2ZpeHVwX2JpbmZvX3Z0YmxzKTogTGlrZXdpc2UuCgkoYnVpbGRfY3Rvcl92dGJsX2dyb3Vwcyk6IEJ1aWxkIGNvbnN0cnVjdGlvbiB2dGFibGVzIGZvciB2aXJ0dWFsCgliYXNlcywgdG9vLgoJKGFjY3VtdWxhdGVfdnRibF9pbml0cyk6IFR3ZWFrIGxvZ2ljIGZvciBkZWNpZGluZyB3aGV0aGVyIG9yIG5vdAoJdG8gYnVpbGQgY29uc3RydWN0aW9uIHZ0YmxzLgoJKGRmc19hY2N1bXVsYXRlX3Z0YmxfaW5pdHMpOiBBZGp1c3QgaGFuZGxpbmcgb2YKCWNvbnN0cnVjdGlvbiB2dGFibGVzLgoKCSogcHQuYyAodHN1YnN0LCBjYXNlIFRFTVBMQVRFX1RFTVBMQVRFX1BBUk0pOiBIYW5kbGUgY3YtcXVhbGlmaWVkCgl0eXBlcyBjb3JyZWN0bHkuCgoyMDAwLTA2LTI3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChncm9rZm5kZWNsKTogU2V0IERFQ0xfQ09OVEVYVCBmb3Igc3RhdGljIGZ1bmN0aW9ucyB0b28uCgoyMDAwLTA2LTI2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogc2VhcmNoLmMgKGhpZGVzKTogUmVtb3ZlLgoJKGlzX3N1Ym9iamVjdF9vZl9wKTogQWRkIG1vc3RfZGVyaXZlZCBwYXJhbWV0ZXIuIFVzZQoJQ0FOT05JQ0FMX0JJTkZPLgoJKGxvb2t1cF9maWVsZF9xdWV1ZV9wKTogQWRqdXN0LgoJKGxvb2t1cF9maWVsZF9yKTogQWRqdXN0LgoKMjAwMC0wNi0yNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmMgKGhhbmRsZV9jbGFzc19oZWFkKTogQmFzaCB0eXBlZGVmcyB0byB0aGUgdHlwZSdzIG1haW4KCWRlY2wuCgoyMDAwLTA2LTI1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChnZW5ydGxfYmVnaW5fc3RtdF9leHByKTogUmVuYW1lIHRvIC4uLgoJKGJlZ2luX2dsb2JhbF9zdG10X2V4cHIpOiAuLi4gdGhpcy4KCShnZW5ydGxfZmluaXNoX3N0bXRfZXhwcik6IFJlbmFtZSB0byAuLi4KCShmaW5pc2hfZ2xvYmFsX3N0bXRfZXhwcik6IC4uLiB0aGlzLgoJKiBpbml0LmMgKGJlZ2luX2luaXRfc3RtdHMpOiBBZGp1c3QgY2FsbHMuCgkoZmluaXNoX2luaXRfc3RtdHMpOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGdlbnJ0bF9iZWdpbl9zdG10X2V4cHIpOiBSZW5hbWUgdG8gLi4uCgkoYmVnaW5fZ2xvYmFsX3N0bXRfZXhwcik6IC4uLiB0aGlzLgoJKGdlbnJ0bF9maW5pc2hfc3RtdF9leHByKTogUmVuYW1lIHRvIC4uLgoJKGZpbmlzaF9nbG9iYWxfc3RtdF9leHByKTogLi4uIHRoaXMuCgoyMDAwLTA2LTI1IFRoZW9kb3JlIFBhcGFkb3BvdWxvIDxUaGVvZG9yZS5QYXBhZG9wb3Vsb0Bzb3BoaWEuaW5yaWEuZnI+CgoJKiBzZWFyY2guYyAobG9va3VwX21lbWJlcik6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgoyMDAwLTA2LTI0ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAocHVzaGRlY2wpOiBEb24ndCBzZXQgREVDTF9DT05URVhUIGZyb20gY3VycmVudF9uYW1lc3BhY2UuCgkocHVzaF9uYW1lc3BhY2UpOiBTZXQgREVDTF9DT05URVhUIGZvciBhIG5ldyBOQU1FU1BBQ0VfREVDTC4KCjIwMDAtMDYtMjQgIE1hcnRpbiB2LiBM9ndpcyAgPGxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KCgkqIHBhcnNlLnkgKGNvbXBsZXhfZGlyZWN0X25vdHlwZV9kZWNsYXJhdG9yKTogU3VwcG9ydCBnbG9iYWxfc2NvcGUuCgkqIE1ha2VmaWxlLmluOiBBZGp1c3QgY29uZmxpY3QgY291bnQuCgoyMDAwLTA2LTIzICBLcmlhbmcgTGVyZHN1d2FuYWtpaiA8bGVyZHN1d2FAc2NmLnVzYy5lZHU+CgoJKiBwYXJzZS55ICh0ZW1wbGF0ZV9hcmcpOiBDb252ZXJ0IFRFTVBMQVRFX0RFQ0wKCXRoYXQgaXMgYSB0ZW1wbGF0ZSB0ZW1wbGF0ZSBwYXJhbWV0ZXIgdG8KCVRFTVBMQVRFX1RFTVBMQVRFX1BBUk0gaGVyZS4KCgkqIGNwLXRyZWUuZGVmIChURU1QTEFURV9URU1QTEFURV9QQVJNKTogQWRqdXN0IGNvbW1lbnQuCgkqIGNwLXRyZWUuaCAoVEVNUExBVEVfVEVNUExBVEVfUEFSTV9URU1QTEFURV9ERUNMKTogTmV3IG1hY3JvLgoJKGNvcHlfdGVtcGxhdGVfdGVtcGxhdGVfcGFybSk6IEFkanVzdCBwcm90b3R5cGUuCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBSZW1vdmUgZGVhZCBjb2RlLgoJKiBwdC5jIChwcm9jZXNzX3RlbXBsYXRlX3Bhcm0pOiBUaWR5LgoJKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IENvbnN0cnVjdCBub2RlcyBpbgoJY29weV90ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJtLgoJKHRzdWJzdCk6IFBhc3MgVEVNUExBVEVfREVDTCByYXRoZXIgdGhhbiBJREVOVElGSUVSX05PREUgdG8KCWxvb2t1cF90ZW1wbGF0ZV9jbGFzcy4gIFVzZSBUWVBFX1RJX1RFTVBMQVRFLgoJKiB0cmVlLmMgKGNvcHlfdGVtcGxhdGVfdGVtcGxhdGVfcGFybSk6IEFkZCBORVdBUkdTCglwYXJhbWV0ZXIuCgkobWFwY2FyKTogQWRqdXN0IGNhbGwgdG8gY29weV90ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJtLgoJKiB0eXBlY2suYyAoY29tcHR5cGVzKTogVXNlIFRFTVBMQVRFX1RFTVBMQVRFX1BBUk1fVEVNUExBVEVfREVDTC4KCSogbWV0aG9kLmMgKGJ1aWxkX3RlbXBsYXRlX3RlbXBsYXRlX3Bhcm1fbmFtZXMpOiBDaGFuZ2UgZXJyb3IKCWNvZGUgdG8gYXZvaWQgY29tcGlsYXRpb24gd2FybmluZy4KCgkqIGd4eGludC50ZXhpOiBEb2N1bWVudCB0ZW1wbGF0ZSB0ZW1wbGF0ZSBwYXJhbWV0ZXIKCW5hbWUgbWFuZ2xpbmcuCgoyMDAwLTA2LTIxICBBbGV4IFNhbXVlbCAgPHNhbXVlbEBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluIChDWFhfTElCMkZVTkNTKTogQWRkIGNwLWRlbWFuZ2xlLm8gYW5kIGR5bi1zdHJpbmcuby4KCShDWFhfTElCMlNSQ1MpOiBBZGQgY3AtZGVtYW5nbGUuYyBhbmQgZHluLXN0cmluZy5jLgoJKGNwLWRlbWFuZ2xlLm8pOiBOZXcgcnVsZS4KCShkeW4tc3RyaW5nLm8pOiBMaWtld2lzZS4KCSogaW5jL2N4eGFiaS5oIChfX2N4YV9kZW1hbmdsZSk6IE5ldyBkZWNsYXJhdGlvbi4KCjIwMDAtMDYtMjIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKEJWX1VTRV9WQ0FMTF9JTkRFWF9QKTogTmV3IG1hY3JvLgoJKEJWX0dFTkVSQVRFX1RIVU5LX1dJVEhfVlRBQkxFX1ApOiBMaWtld2lzZS4KCShsYW5nX2RlY2xfZmxhZ3MpOiBBZGQgZ2VuZXJhdGVfd2l0aF92dGFibGVfcC4gIE1ha2UgdmNhbGxfb2Zmc2V0CglhIHRyZWUsIG5vdCBhbiBpbnQuCgkoVEhVTktfR0VORVJBVEVfV0lUSF9WVEFCTEVfUCk6IE5ldyBtYWNyby4KCShtYWtlX3RodW5rKTogQ2hhbmdlIHByb3RvdHlwZS4KCShlbWl0X3RodW5rKTogUmVuYW1lIHRvIHVzZV90aHVuay4KCShtYW5nbGVfdGh1bmspOiBDaGFuZ2UgcHJvdG90eXBlLgoJKiBjbGFzcy5jIChnZXRfZGVyaXZlZF9vZmZzZXQpOiBTaW1wbGlmeS4KCShjb3B5X3ZpcnR1YWxzKTogQ2xlYXIgQlZfVVNFX1ZDQUxMX0lOREVYX1AgYW5kCglCVl9HRU5FUkFURV9USFVOS19XSVRIX1ZUQUJMRV9QLgoJKGJ1aWxkX3ByaW1hcnlfdnRhYmxlKTogU2ltcGxpZnkuCgkoYWRkX3ZpcnR1YWxfZnVuY3Rpb24pOiBVc2UgQlZfRk4sIHJhdGhlciB0aGFuIFRSRUVfVkFMVUUuCgkoZGZzX2ZpbmRfYmFzZSk6IFJlbW92ZS4KCSh1cGRhdGVfdnRhYmxlX2VudHJ5X2Zvcl9mbik6IENvcnJlY3QgYnVnIGluIGZpbmRpbmcgdGhlIGJhc2UKCXdoZXJlIGEgdmlydHVhbCBmdW5jdGlvbiB3YXMgZmlyc3QgZGVjbGFyZWQuICBGaWd1cmUgb3V0IHdoZXRoZXIKCW9yIG5vdCB0byBlbWl0IGEgdmNhbGwtdGh1bmsgd2l0aCB0aGUgdnRhYmxlcyBpbiB3aGljaCBpdCBhcHBlYXJzLgoJQ29ycmVjdCBsb2dpYyBmb3IgZGVjaWRpbmcgd2hldGhlciB0byB1c2UgYW4gb3JkaW5hcnkgdGh1bmssIG9yIGEKCXZjYWxsIHRodW5rLgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IFJlbW92ZSB1bm5lY3NzYXJ5IGNvZGUuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IFVzZSBzc2l6ZV9pbnQgZm9yIHRoZSBydW5uaW5nIGNvdW50ZXIgb2YKCW5lZ2F0aXZlIGluZGljZXMuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IE9ubHkgdXNlIHZjYWxsIHRodW5rcyB3aGVyZSBuZWNlc3NhcnkuCglNYXJrIHRodW5rcyBhcyBuZWVkaW5nIHRvIGJlIGVtaXR0ZWQgd2l0aCB0aGVpciB2dGFibGVzLCBvciBub3QuCgkoYnVpbGRfdmJhc2Vfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IEFkanVzdCBmb3IgdXNlIG9mIHNzaXplX2ludCBpbgoJaW5kaWNlcy4gIFVzZSBzaXplX2Jpbm9wLgoJKGRmc19idWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogRG9uJ3QgcmVseSBvbgoJQklORk9fUFJJTUFSWV9NQVJLRURfUCBoZXJlLiAgVXNlIEJWX0ZOIGNvbnNpc3RlbnRseS4gIFVzZQoJc2l6ZV9iaW5vcC4KCShidWlsZF9ydHRpX3Z0YmxfZW50cmllcyk6IEFkanVzdCBjYWxsIHRvIGJ1aWxkX3Z0YWJsZV9lbnRyeS4KCShidWlsZF92dGFibGVfZW50cnkpOiBNYXJrIHRodW5rcyBhcyBuZWVkaW5nIHRvIGJlIGVtaXR0ZWQgd2l0aAoJdGhlaXIgdnRhYmxlcywgb3Igbm90LgoJKiBkZWNsLmMgKGxhbmdfbWFya190cmVlKTogTWFyayB0aGUgdmNhbGxfb2Zmc2V0IGluIGEgdGh1bmsuCgkqIGRlY2wyLmMgKG1hcmtfdnRhYmxlX2VudHJpZXMpOiBVc2UgdXNlX3RodW5rIGluc3RlYWQgb2YKCWVtaXRfdGh1bmsuCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IFJlbW92ZSBkZWFkIGNvZGUuICBEdW1wIG5ldyB0aHVuawoJaW5mb3JtYXRpb24uCgkqIGVycm9yLmMgKGR1bXBfZXhwcik6IFVzZSBCVl9GTi4KCSogbWFuZ2xlLmMgKG1hbmdsZV90aHVuayk6IEFkanVzdCBub3cgdGhhdCB2Y2FsbF9vZmZzZXQgaXMgYSB0cmVlLAoJbm90IGFuIGludC4KCSogbWV0aG9kLmMgKG1ha2VfdGh1bmspOiBMaWtld2lzZS4KCShlbWl0X3RodW5rKTogUmVuYW1lIHRvIHVzZV90aHVuay4gIEFsbG93IGNhbGxlcnMgdG8gZGVjaWRlCgl3aGV0aGVyIG9yIG5vdCB0byBhY3R1YWxseSBlbWl0IHRoZSB0aHVuay4gIEFkanVzdCBmb3IgY2hhbmdlcyBpbgoJcmVwcmVzZW50YXRpb24gb2YgdmNhbGwgb2Zmc2V0cy4KCSogc2VhcmNoLmMgKGRmc19nZXRfcHVyZV92aXJ0dWFscyk6IFVzZSBCVl9GTi4KCSogc2VtYW50aWNzLmMgKGVtaXRfYXNzb2NpYXRlZF90aHVua3MpOiBOZXcgZnVuY3Rpb24uCgkoZXhwYW5kX2JvZHkpOiBVc2UgaXQuCgkqIGlyLnRleGk6IEFkanVzdCBkZXNjcmlwdGlvbnMgb2YgdGh1bmtzLgoKMjAwMC0wNi0yMiAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBwdC5jICh0c3Vic3RfZGVjbCwgY2FzZSBGVU5DVElPTl9ERUNMKTogQ2xlYXIgREVDTF9TQVZFRF9UUkVFLgoJKHRzdWJzdF9mcmllbmRfZnVuY3Rpb24pOiBDb3B5IGl0IGhlcmUuCgoJKiBkZWNsLmMgKGdyb2tfb3BfcHJvcGVydGllcyk6IEZpeCB0eXBvLgoKCSogZGVjbDIuYyAoZGVsZXRlX3Nhbml0eSk6IENsYXJpZnkgd2FybmluZywgYXZvaWQgZmFpbHVyZSBvbgoJZGVsZXRpbmcgdm9pZCouCgoJKiBwdC5jIChjaGVja19leHBsaWNpdF9zcGVjaWFsaXphdGlvbik6IENsYXJpZnkgZXJyb3IuCgoJKiBkZWNsLmMgKHB1c2hkZWNsKTogQWxzbyBwdWxsIG91dCBvbmUgb2YgdGhlIEZVTkNUSU9OX0RFQ0xzIGZyb20KCWFuIG9sZCBPVkVSTE9BRCB3aGVuIHdlJ3JlIGRlY2xhcmluZyBhIG5vbi1mdW5jdGlvbi4KCShwdXNoZGVjbCwgZGVzdHJveV9sb2NhbF92YXIpOiBDaGVjayBmb3IgZXJyb3JfbWFya19ub2RlLgoJKHdhcm5fZXh0ZXJuX3JlZGVjbGFyZWRfc3RhdGljKTogQWxzbyBiYWlsIGVhcmx5IGlmCgl3ZSdyZSBhIENPTlNUX0RFQ0wuCgkocHVzaF9vdmVybG9hZGVkX2RlY2wpOiBJZ25vcmUgYW4gb2xkIGVycm9yX21hcmtfbm9kZS4KCjIwMDAtMDYtMjIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGJ1aWxkX3hfdmFfYXJnKTogQ2hlY2sgaWYgaW4gYSB0ZW1wbGF0ZSBkZWNsLgoJKiBwdC5jICh0c3Vic3RfY29weSwgY2FzZSBWQV9BUkdfRVhQUik6IFVzZSBidWlsZF94X3ZhX2FyZy4KCjIwMDAtMDYtMjAgIEFsZXhhbmRyZSBQZXRpdC1CaWFuY28gIDxhcGJpYW5jb0BjeWdudXMuY29tPgoKCSogY2xhc3MuYyAocHVzaF9sYW5nX2NvbnRleHQpOiBUWVBFX05BTUUgZ2V0cyB5b3UgdG8gdGhlIEphdmEKCXR5cGVzIERFQ0xzLgoJKiBkZWNsLmMgKGNoZWNrX2dvdG8pOiBDb21wdXRlZCBnb3RvcyBhc3N1bWVkIE9LLgoKMjAwMC0wNi0yMCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBwdC5jICh0c3Vic3RfZGVjbCwgY2FzZSBUWVBFX0RFQ0wpOiBGaXggdGVzdCBmb3IgVFlQRV9ERUNMcwoJZm9yIHdoaWNoIHdlIGRvbid0IG5lZWQgdG8gbG9vayBmb3IgaW5zdGFudGlhdGlvbnMuCgoyMDAwLTA2LTIxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcGFyc2UueSAocHJvZ3JhbSk6IEFsd2F5cyBjYWxsIGZpbmlzaF90cmFuc2xhdGlvbl91bml0LgoJKiBwYXJzZS5jLCBwYXJzZS5oOiBSZWJ1aWx0LgoKMjAwMC0wNi0yMCAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogbWV0aG9kLmM6IERvbid0IGluY2x1ZGUgaGFyZC1yZWctc2V0LmguCgoyMDAwLTA2LTIwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcnR0aS5jIChnZXRfYmFzZV9vZmZzZXQpOiBDb3BlIHdoZW4gdmJhc2UgZmllbGQgaXMgaW4gYSBiYXNlLgoKMjAwMC0wNi0yMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoYnVpbGRfY29uZGl0aW9uYWxfZXhwcik6IFVzZSBWT0lEX1RZUEVfUC4KCSogY3Z0LmMgKGNwX2NvbnZlcnRfdG9fcG9pbnRlcik6IExpa2V3aXNlLgoJKGNvbnZlcnRfdG9fdm9pZCk6IExpa2V3aXNlLgoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBMaWtld2lzZS4KCSogZXhjZXB0LmMgKGNvbXBsZXRlX3B0cl9yZWZfb3Jfdm9pZF9wdHJfcCk6IExpa2V3aXNlLgoJKiBpbml0LmMgKGJ1aWxkX2RlbGV0ZSk6IExpa2V3aXNlLgoJKiBtZXRob2QuYyAoZW1pdF90aHVuayk6IExpa2V3aXNlLgoJKiBvcHRtaXplLmMgKGRlY2xhcmVfcmV0dXJuX3ZhcmlhYmxlKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoZ2V0X3RpbmZvX2RlY2xfZHluYW1pYyk6IExpa2V3aXNlLgoJKGdldF90eXBlaWQpOiBMaWtld2lzZS4KCShidWlsZF9keW5hbWljX2Nhc3RfMSk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoY29tcG9zaXRlX3BvaW50ZXJfdHlwZSk6IExpa2V3aXNlLgoJKGNvbW1vbl90eXBlKTogTGlrZXdpc2UuCgkoYnVpbGRfaW5kaXJlY3RfcmVmKTogTGlrZXdpc2UuCgkoYnVpbGRfYmluYXJ5X29wKTogTGlrZXdpc2UuCgkoYnVpbGRfeF9jb21wb3VuZF9leHByKTogTGlrZXdpc2UuCgkoY2hlY2tfcmV0dXJuX2V4cHIpOiBMaWtld2lzZS4KCSogdHlwZWNrMi5jIChhZGRfZXhjZXB0aW9uX3NwZWNpZmllcik6IExpa2V3aXNlLgoKCSogbWFuZ2xlLmMgKHdyaXRlX21ldGhvZF9wYXJtcyk6IFVzZSBkaXJlY3QgY29tcGFyaXNvbiBmb3IgZW5kCglvZiBwYXJtbGlzdC4KCjIwMDAtMDYtMTkgIEJlbmphbWluIENoZWxmICA8Y2hlbGZAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZ2VucnRsX3RyeV9ibG9jayk6IERlY2xhcmUgZnVuY3Rpb24uCgkoZ2VucnRsX2hhbmRsZXIpOiBMaWtld2lzZS4KCShnZW5ydGxfY2F0Y2hfYmxvY2spOiBMaWtld2lzZS4KCShnZW5ydGxfY3Rvcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3N1Ym9iamVjdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9kZWNsX2NsZWFudXApOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fcG9wbGV2ZWwpOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fcHVzaGxldmVsKTogTGlrZXdpc2UuCgkoZ2VucnRsX2NsZWFyX291dF9ibG9jayk6IExpa2V3aXNlLgoJKGdlbnJ0bF9nb3RvX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZXhwcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2RlY2xfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9pZl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3doaWxlX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9yZXR1cm5fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9mb3Jfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9icmVha19zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2NvbnRpbnVlX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfc2NvcGVfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9zd2l0Y2hfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9jYXNlX2xhYmVsKTogTGlrZXdpc2UuCgkoZ2VucnRsX2JlZ2luX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZmluaXNoX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9hc21fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9uYW1lZF9yZXR1cm5fdmFsdWUpOiBMaWtld2lzZS4KCShnZW5ydGxfYmVnaW5fc3RtdF9leHByKTogTGlrZXdpc2UuCgkoZ2VucnRsX2ZpbmlzaF9zdG10X2V4cHIpOiBMaWtld2lzZS4KCShmaW5pc2hfZm9yX3N0bXQpOiBSZW1vdmVkIGZpcnN0IGFyZ3VtZW50LgoJKGZpbmlzaF9zd2l0Y2hfc3RtdCk6IExpa2V3aXNlLgoKCSogc2VtYW50aWNzLmMgKGdlbnJ0bF90cnlfYmxvY2spOiBEZWZpbmUgZnVuY3Rpb24uCgkoZ2VucnRsX2hhbmRsZXIpOiBMaWtld2lzZS4KCShnZW5ydGxfY2F0Y2hfYmxvY2spOiBMaWtld2lzZS4KCShnZW5ydGxfY3Rvcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3N1Ym9iamVjdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9kZWNsX2NsZWFudXApOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fcG9wbGV2ZWwpOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fcHVzaGxldmVsKTogTGlrZXdpc2UuCgkoZ2VucnRsX2NsZWFyX291dF9ibG9jayk6IExpa2V3aXNlLgoJKGdlbnJ0bF9nb3RvX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZXhwcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2RlY2xfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9pZl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3doaWxlX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9yZXR1cm5fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9mb3Jfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9icmVha19zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2NvbnRpbnVlX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfc2NvcGVfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9zd2l0Y2hfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9jYXNlX2xhYmVsKTogTGlrZXdpc2UuCgkoZ2VucnRsX2JlZ2luX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZmluaXNoX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9hc21fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9uYW1lZF9yZXR1cm5fdmFsdWUpOiBMaWtld2lzZS4KCShnZW5ydGxfYmVnaW5fc3RtdF9leHByKTogTGlrZXdpc2UuCgkoZ2VucnRsX2ZpbmlzaF9zdG10X2V4cHIpOiBMaWtld2lzZS4KCShmaW5pc2hfZm9yX3N0bXQpOiBSZW1vdmVkIGZpcnN0IGFyZ3VtZW50IGFuZCBnZW5lcmF0ZSBydGwKCXNwZWNpZmljIGNvZGUuCgkoZmluaXNoX3N3aXRjaF9zdG10KTogTGlrZXdpc2UuCgkoZG9fcG9wbGV2ZWwpOiBSZW1vdmVkIGdlbmVyYXRlIHJ0bCBzcGVjaWZpYyBjb2RlLgoJKGRvX3B1c2hsZXZlbCk6IExpa2V3aXNlLgoJKGFkZF90cmVlKTogTGlrZXdpc2UuCgkoZmluaXNoX2dvdG9fc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9leHByX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl9pZl9zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX2lmX3N0bXRfY29uZCk6IExpa2V3aXNlLgoJKGZpbmlzaF90aGVuX2NsYXVzZSk6IExpa2V3aXNlLgoJKGJlZ2luX2Vsc2VfY2xhdXNlKTogTGlrZXdpc2UuCgkoZmluaXNoX2Vsc2VfY2xhdXNlKTogTGlrZXdpc2UuCgkoZmluaXNoX2lmX3N0bXQpOiBMaWtld2lzZS4KCShjbGVhcl9vdXRfYmxvY2spOiBMaWtld2lzZS4KCShiZWdpbl93aGlsZV9zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX3doaWxlX3N0bXRfY29uZCk6IExpa2V3aXNlLgoJKGZpbmlzaF93aGlsZV9zdG10KTogTGlrZXdpc2UuCgkoYmVnaW5fZG9fc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9kb19ib2R5KTogTGlrZXdpc2UuCgkoZmluaXNoX2RvX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfcmV0dXJuX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl9mb3Jfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9mb3JfaW5pdF9zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX2Zvcl9jb25kKTogTGlrZXdpc2UuCgkoZmluaXNoX2Zvcl9leHByKTogTGlrZXdpc2UuCgkoZmluaXNoX2JyZWFrX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfY29udGludWVfc3RtdCk6IExpa2V3aXNlLgoJKGJlZ2luX3N3aXRjaF9zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX3N3aXRjaF9jb25kKTogTGlrZXdpc2UuCgkoZmluaXNoX2Nhc2VfbGFiZWwpOiBMaWtld2lzZS4KCShiZWdpbl90cnlfYmxvY2spOiBMaWtld2lzZS4KCShiZWdpbl9mdW5jdGlvbl90cnlfYmxvY2spOiBMaWtld2lzZS4KCShmaW5pc2hfdHJ5X2Jsb2NrKTogTGlrZXdpc2UuCgkoZmluaXNoX2NsZWFudXBfdHJ5X2Jsb2NrKTogTGlrZXdpc2UuCgkoZmluaXNoX2NsZWFudXApOiBMaWtld2lzZS4KCShmaW5pc2hfZnVuY3Rpb25fdHJ5X2Jsb2NrKTogTGlrZXdpc2UuCgkoZmluaXNoX2hhbmRsZXJfc2VxdWVuY2UpOiBMaWtld2lzZS4KCShmaW5pc2hfZnVuY3Rpb25faGFuZGxlcl9zZXF1ZW5jZSk6IExpa2V3aXNlLgoJKGJlZ2luX2hhbmRsZXIpOiBMaWtld2lzZS4KCShmaW5pc2hfaGFuZGxlcl9wYXJtcyk6IExpa2V3aXNlLgoJKGJlZ2luX2NhdGNoX2Jsb2NrKTogTGlrZXdpc2UuCgkoZmluaXNoX2hhbmRsZXIpOiBMaWtld2lzZS4KCShiZWdpbl9jb21wb3VuZF9zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfYXNtX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfbGFiZWxfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9sYWJlbF9kZWNsKTogTGlrZXdpc2UuCgkoZmluaXNoX3N1Ym9iamVjdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9kZWNsX2NsZWFudXApOiBMaWtld2lzZS4KCShmaW5pc2hfbmFtZWRfcmV0dXJuX3ZhbHVlKTogTGlrZXdpc2UuCgkoYmVnaW5fc3RtdF9leHByKTogTGlrZXdpc2UuCgkoZmluaXNoX3N0bXRfZXhwcik6IExpa2V3aXNlLgoKCSogZGVjbC5jIChpbml0aWFsaXplX2xvY2FsX3Zhcik6IENoYW5nZWQgY2FsbCB0byBmaW5pc2hfZXhwcl9zdG10Cgl0byBjYWxsIGdlbnJ0bF9leHByX3N0bXQgd2hlbiBhcHByb3ByaWF0ZS4KCgkqIGluaXQuYyAoYmVnaW5faW5pdF9zdG10cyk6IENoYW5nZWQgY2FsbHMgdG8gYmVnaW5fc3RtdF9leHByIGFuZAoJYmVnaW5fY29tcG91bmRfZXhwciB0byBjYWxsIGdlbnJ0bF9iZWdpbl9zdG10X2V4cHIgYW5kCglnZW5ydGxfYmVnaW5fY29tcG91bmRfZXhwciB3aGVuIGFwcHJvcHJpYXRlLgoJKGZpbmlzaF9pbml0X3N0bXRzKTogQ2hhbmdlZCBjYWxscyB0byBmaW5pc2hfY29tcG91bmRfZXhwciBhbmQKCWZpbmlzaF9zdG10X2V4cHIgdG8gY2FsbCBnZW5ydGxfZmluaXNoX2NvbXBvdW5kX2V4cHIgYW5kCglnZW5ydGxfZmluaXNoX3N0bXRfZXhwciB3aGVuIGFwcHJvcHJpYXRlLgoJKGV4cGFuZF9kZWZhdWx0X2luaXQpOiBDaGFuZ2VkIGNhbGwgdG8gZmluaXNoX2V4cHJfc3RtdCB0byBjYWxsCglnZW5ydGxfZXhwcl9zdG10IHdoZW4gYXBwcm9wcmlhdGUuCgkoYnVpbGRfdmVjX2luaXQpOiBMaWtld2lzZS4KCgkqIHBhcnNlLnkgKHNpbXBsZV9zdG10KTogUmVtb3ZlZCBmaXJzdCBhcmd1bWVudCBmcm9tIGNhbGwgdG8KCWZpbmlzaF9mb3Jfc3RtdC4gUmVtb3ZlZCBmaXJzdCBhcmd1bWVudCBmcm9tIGNhbGwgdG8KCWZpbmlzaF9zd2l0Y2hfc3RtdC4KCgkqIHBhcnNlLmM6IFJlZ2VuZXJhdGVkLgoKCSogcHQuYyAodHN1YnN0X2V4cHIpOiBSZW1vdmVkIGZpcnN0IGFyZ3VtZW50IGZyb20gY2FsbCB0bwoJZmluaXNoX2Zvcl9zdG10LiBSZW1vdmVkIGZpcnN0IGFyZ3VtZW50IGZyb20gY2FsbCB0bwoJZmluaXNoX3N3aXRjaF9zdG10LgoKMjAwMC0wNi0xNiAgQmVuamFtaW4gQ2hlbGYgIDxjaGVsZkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChlbnVtIGNwbHVzX3RyZWVfY29kZSk6IENoYW5nZWQgX19EVU1NWSB0bwoJQ1BfRFVNTVlfVFJFRV9DT0RFLiBSZW1vdmUgI2luY2x1ZGUgImMtY29tbW9uLmRlZiIuCgoJKiBsZXguYyAoY3BsdXNfdHJlZV9jb2RlX3R5cGVbXSk6IFJlbW92ZWQgI2luY2x1ZGUgImMtY29tbW9uLmRlZiIuCgkoY3BsdXNfdHJlZV9jb2RlX2xlbmd0aFtdKTogTGlrZXdpc2UuCgkoY3BsdXNfdHJlZV9jb2RlX25hbWVbXSk6IExpa2V3aXNlLgoJKGluaXRfcGFyc2UpOiBBZGRlZCBjYWxsIHRvIGFkZF9jX3RyZWVfY29kZXMuIENoYW5nZWQKCUxBU1RfQU5EX1VOVVNFRF9UUkVFX0NPREUgdG8gTEFTVF9DX1RSRUVfQ09ERS4KCjIwMDAtMDYtMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGZpbmlzaF9tZW1faW5pdGlhbGl6ZXJzKTogRGVjbGFyZS4KCShjb3VudF90cmVlcyk6IExpa2V3aXNlLgoJKiBwYXJzZS55IChiYXNlX2luaXQpOiBVc2UgZmluaXNoX21lbV9pbml0aWFsaXplcnMuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfbWVtX2luaXRpYWxpemVycyk6IE5ldyBmdW5jdGlvbi4KCgkqIHRyZWUuYyAoY291bnRfdHJlZXNfcik6IFByb3RvdHlwZS4gIFVzZSBEQVRBIHBhcmFtZXRlciB0byBzdG9yZQoJdGhlIG51bWJlciBvZiB0cmVlcy4KCShuX3RyZWVzKTogUmVtb3ZlLgoJKGNvdW50X3RyZWVzKTogRG9uJ3QgdXNlIGl0LgoKMjAwMC0wNi0xNSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiB0cmVlLmMgKGNvdW50X3RyZWVzKTogTmV3IGRlYnVnZ2luZyBmdW5jdGlvbi4KCgkqIHR5cGVjay5jIChidWlsZF94X2Z1bmN0aW9uX2NhbGwpOiBVc2UgREVDTF9GVU5DVElPTl9URU1QTEFURV9QLgoJKiBpbml0LmMgKGJ1aWxkX21lbWJlcl9jYWxsKTogUHVsbCBvdXQgdGhlIG5hbWUgb2YgYSBERUNMLgoKCSogTWFrZWZpbGUuaW4gKHNlbWFudGljcy5vLCBwdC5vKTogRGVwZW5kIG9uIFRJTUVWQVJfSC4KCSogc2VtYW50aWNzLmMgKGV4cGFuZF9ib2R5KTogUHVzaCB0byBUVl9JTlRFR1JBVElPTiBoZXJlLgoJKiBvcHRpbWl6ZS5jIChvcHRpbWl6ZV9mdW5jdGlvbik6IE5vdCBoZXJlLgoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogUHVzaCB0byBUVl9QQVJTRS4KCjIwMDAtMDYtMTUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5ndWFnZV9mdW5jdGlvbik6IFJlbW92ZSB4X2Jhc2VfaW5pdF9saXN0CglhbmQgeF9tZW1iZXJfaW5pdF9saXN0LgoJKGN1cnJlbnRfYmFzZV9pbml0X2xpc3QpOiBSZW1vdmUuCgkoY3VycmVudF9tZW1iZXJfaW5pdF9saXN0KTogTGlrZXdpc2UuCgkoc2V0dXBfdnRibF9wdHIpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKGVtaXRfYmFzZV9pbml0KTogTGlrZXdpc2UuCgkoZXhwYW5kX21lbWJlcl9pbml0KTogTGlrZXdpc2UuCgkocmVpbml0X3BhcnNlX2Zvcl9mdW5jdGlvbik6IFJlbW92ZS4KCSogZGVjbC5jIChzYXZlX2Z1bmN0aW9uX2RhdGEpOiBEb24ndCBjbGVhciB4X2Jhc2VfaW5pdF9saXN0IGFuZAoJeF9tZW1iZXJfaW5pdF9saXN0LgoJKG1hcmtfbGFuZ3VhZ2VfZnVuY3Rpb24pOiBEb24ndCBtYXJrIHRoZW0uCgkqIGluaXQuYyAocGVyZm9ybV9tZW1iZXJfaW5pdCk6IFR3ZWFrIGNvbW1lbnQuCgkoc29ydF9tZW1iZXJfaW5pdCk6IFRha2UgdGhlIGxpc3Qgb2YgaW5pdGlhbGl6ZXJzIGFzIGFuIGFyZ3VtZW50LgoJKHNvcnRfYmFzZV9pbml0KTogTGlrZXdpc2UuCgkoZW1pdF9iYXNlX2luaXQpOiBMaWtld2lzZS4KCShleHBhbmRfbWVtYmVyX2luaXQpOiBSZXR1cm4gdGhlIGluaXRpYWxpemVyLiAgRG9uJ3QgdXNlIGdsb2JhbAoJdmFyaWFibGVzLgoJKiBsZXguYyAocmVpbml0X3BhcnNlX2Zvcl9mdW5jdGlvbik6IFJlbW92ZS4KCSogbWV0aG9kLmMgKGJ1aWxkX3RlbXBsYXRlX3Bhcm1fbmFtZXMpOiBDb3JyZWN0IHN1YnN0aXR1dGlvbi4KCShkb19idWlsZF9jb3B5X2NvbnN0cnVjdG9yKTogRG9uJ3QgdXNlIGN1cnJlbnRfbWVtYmVyX2luaXRfbGlzdAoJYW5kIGN1cnJlbnRfYmFzZV9pbml0X2xpc3QuCgkoc3ludGhlc2l6ZV9tZXRob2QpOiBMaWtld2lzZS4KCSogcGFyc2UueSAoYmFzZV9pbml0KTogU3BsaXQgbWVtLWluaXRpYWxpemVycyBpbnRvCgliYXNlLWluaXRpYWxpemVycyBhbmQgZmllbGQtaW5pdGlhbGl6ZXJzLgoJKG1lbWJlcl9pbml0X2xpc3QpOiBCdWlsZCB1cCB0aGUgbGlzdCBoZXJlLgoJKG1lbWJlcl9pbml0KTogUmV0dXJuIHRoZSBpbml0aWFsaXplci4KCShmbi5kZXBmbik6IERvbid0IHVzZSByZWluaXRfcGFyc2VfZm9yX2Z1bmN0aW9uLgoJKiBwYXJzZS5jOiBSZWdlbmVyYXRlZC4KCSogcHQuYyAoY29udmVydF9ub250eXBlX2FyZ3VtZW50KTogRG9uJ3QgbWFrZSBhbiBBRERSX0VYUFIgb2YgdGhlCglFUlJPUl9NQVJLLgoJKHRzdWJzdF9leHByKTogRG9uJ3QgdXNlIGN1cnJlbnRfbWVtYmVyX2luaXRfbGlzdAoJYW5kIGN1cnJlbnRfYmFzZV9pbml0X2xpc3QuCgkodHN1YnN0X2V4cHJfdmFsdWVzKTogUmVuYW1lIHRvIC4uLgoJKHRzdWJzdF9pbml0aWFsaXplcl9saXN0KTogLi4uIHRoaXMuICBVc2UgY29udmVydF9mcm9tX3JlZmVyZW5jZS4KCSogc2VtYW50aWNzLmMgKHNldHVwX3Z0YmxfcHRyKTogRG9uJ3QgdXNlIGN1cnJlbnRfbWVtYmVyX2luaXRfbGlzdAoJYW5kIGN1cnJlbnRfYmFzZV9pbml0X2xpc3QuCgkoYmVnaW5fZnVuY3Rpb25fZGVmaW5pdGlvbik6IERvbid0IGNhbGwgcmVpbml0X3BhcnNlX2Zvcl9mdW5jdGlvbi4KCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IFVzZSBUUkVFX1ZFQ19MRU5HVEggd2l0aCB2ZWN0b3JzLgoKCSogZXJyb3IuYyAoZHVtcF9leHByKTogSGFuZGxlIEFERFJfRVhQUnMgd2l0aCBSRUZFUkVOQ0VfVFlQRQoJY29ycmVjdGx5LgoKCSogY3AtdHJlZS5oIChERUNMX1BFTkRJTkdfSU5MSU5FX1ApOiBSZWxheCBjaGVja2luZy4KCjIwMDAtMDYtMTQgIEJlbmphbWluIENoZWxmICA8Y2hlbGZAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoSUZfQ09ORCk6IE1vdmUgdG8gYy1jb21tb24uaC4KCShUSEVOX0NMQVVTRSk6IExpa2V3aXNlLgoJKEVMU0VfQ0xBVVNFKTogTGlrZXdpc2UuCgkoV0hJTEVfQ09ORCk6IExpa2V3aXNlLgoJKFdISUxFX0JPRFkpOiBMaWtld2lzZS4KCShET19DT05EKTogTGlrZXdpc2UuCgkoRE9fQk9EWSk6IExpa2V3aXNlLgoJKFJFVFVSTl9FWFBSKTogTGlrZXdpc2UuCgkoRVhQUl9TVE1UX0VYUFIpOiBMaWtld2lzZS4KCShGT1JfSU5JVF9TVE1UKTogTGlrZXdpc2UuCgkoRk9SX0NPTkQpOiBMaWtld2lzZS4KCShGT1JfRVhQUik6IExpa2V3aXNlLgoJKEZPUl9CT0RZKTogTGlrZXdpc2UuCgkoU1dJVENIX0NPTkQpOiBMaWtld2lzZS4KCShTV0lUQ0hfQk9EWSk6IExpa2V3aXNlLgoJKENBU0VfTE9XKTogTGlrZXdpc2UuCgkoQ0FTRV9ISUdIKTogTGlrZXdpc2UuCgkoR09UT19ERVNUSU5BVElPTik6IExpa2V3aXNlLgoJKENPTVBPVU5EX0JPRFkpOiBMaWtld2lzZS4KCShBU01fQ1ZfUVVBTCk6IExpa2V3aXNlLgoJKEFTTV9TVFJJTkcpOiBMaWtld2lzZS4KCShBU01fT1VUUFVUUyk6IExpa2V3aXNlLgoJKEFTTV9JTlBVVFMpOiBMaWtld2lzZS4KCShBU01fQ0xPQkJFUlMpOiBMaWtld2lzZS4KCShERUNMX1NUTVRfREVDTCk6IExpa2V3aXNlLgoJKFNUTVRfRVhQUl9TVE1UKTogTGlrZXdpc2UuCgkoTEFCRUxfU1RNVF9MQUJFTCk6IExpa2V3aXNlLgoJKFNDT1BFX0JFR0lOX1ApOiBMaWtld2lzZS4KCShTQ09QRV9FTkRfUCk6IExpa2V3aXNlLgoJKFNDT1BFX1NUTVRfQkxPQ0spOiBMaWtld2lzZS4KCShTQ09QRV9OVUxMSUZJRURfUCk6IExpa2V3aXNlLgoJKFNDT1BFX05PX0NMRUFOVVBTX1ApOiBMaWtld2lzZS4KCShTQ09QRV9QQVJUSUFMX1ApOiBMaWtld2lzZS4KCShBU01fVk9MQVRJTEVfUCk6IExpa2V3aXNlLgoJKFNUTVRfTElORU5PKTogTGlrZXdpc2UuCgkoU1RNVF9MSU5FTk9fRk9SX0ZOX1ApOiBMaWtld2lzZS4KCgkqIGNwLXRyZWUuZGVmOiBSZW1vdmVkIFNSQ0xPQywgU0laRU9GX0VYUFIsIEFSUk9XX0VYUFIsCglBTElHTk9GX0VYUFIsIEVYUFJfU1RNVCwgQ09NUE9VTkRfU1RNVCwgREVDTF9TVE1ULCBJRl9TVE1ULAoJRk9SX1NUTVQsIFdISUxFX1NUTVQsIERPX1NUTVQsIFJFVFVSTl9TVE1ULCBCUkVBS19TVE1ULAoJQ09OVElOVUVfU1RNVCwgU1dJVENIX1NUTVQsIEdPVE9fU1RNVCwgTEFCRUxfU1RNVCwgQVNNX1NUTVQsCglTQ09QRV9TVE1ULCBDQVNFX0xBQkVMLCBTVE1UX0VYUFIuCgoJKiBNYWtlZmlsZS5pbiAoQ1hYX1RSRUVfSCk6IEFkZGVkICQoc3JjZGlyKS8uLi9jLWNvbW1vbi5kZWYuCgoJKiBNYWtlLWxhbmcuaW4gKENYWF9TUkNTKTogQWRkZWQgJChzcmNkaXIpL2MtY29tbW9uLmRlZi4KCShjYzFwbHVzJChleGVleHQpKTogQWRkZWQgJChzcmNkaXIpL2MtY29tbW9uLmRlZi4KCgkqIGxleC5jIChjcGx1c190cmVlX2NvZGVfdHlwZVtdKTogQWRkZWQgJyNpbmNsdWRlICJjLWNvbW1vbi5kZWYiJy4KCShjcGx1c190cmVlX2NvZGVfbGVuZ3RoW10pOiBBZGRlZCAnI2luY2x1ZGUgImMtY29tbW9uLmRlZiInLgoJKGNwbHVzX3RyZWVfY29kZV9uYW1lW10pOiBBZGRlZCAnI2luY2x1ZGUgImMtY29tbW9uLmRlZiInLgoKMjAwMC0wNi0xNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQklORk9fT1ZFUlJJREVfQUxPTkdfVklSVFVBTF9QQVRIKTogTmV3IG1hY3JvLgoJKiBjbGFzcy5jIChkZnNfZmluZF9maW5hbF9vdmVycmlkZXIpOiBTZXQgaXQgYXBwcm9wcmlhdGVseS4KCShkZnNfYnVpbHRfdnR0X2luaXRzKTogQ2hlY2sgQklORk9fT1ZFUlJJREVfQUxPTkdfVklSVFVBTF9QQVRIIHRvCglhdm9pZCB1bm5lZWRlZCBzZWNvbmRhcnkgdnB0cnMuCgoyMDAwLTA2LTEzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3NlY29uZGFyeV92dGFibGUpOiBTZXQgREVDTF9VU0VSX0FMSUdOLgoJKGNoZWNrX2JpdGZpZWxkX2RlY2wsIGNoZWNrX2ZpZWxkX2RlY2wpOiBMaWtld2lzZS4KCShidWlsZF92dGJsX29yX3ZiYXNlX2ZpZWxkLCBidWlsZF9iYXNlX2ZpZWxkKTogTGlrZXdpc2UuCgkobGF5b3V0X2NsYXNzX3R5cGUpOiBTZXQgREVDTF9VU0VSX0FMSUdOIHJlc3AuIENMQVNTVFlQRV9VU0VSX0FMSUdOLgoJKiBkZWNsLmMgKHJlY29yZF91bmtub3duX3R5cGUpOiBTZXQgVFlQRV9VU0VSX0FMSUdOLgoJKHhmZXJfdGFnLCBmaW5pc2hfZW51bSk6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChmaW5pc2hfYnVpbHRpbl90eXBlKTogTGlrZXdpc2UuCgkqIGluaXQuYyAoaW5pdF9pbml0X3Byb2Nlc3NpbmcpOiBMaWtld2lzZS4KCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBMaWtld2lzZS4KCSogcnR0aS5jIChnZXRfdGluZm9fZGVjbCwgc3ludGhlc2l6ZV90aW5mb19mbik6IFNldCBERUNMX1VTRVJfQUxJR04uCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmdfdHlwZSk6IEFkZCB1c2VyX2FsaWduIG1lbWJlci4KCShDTEFTU1RZUEVfVVNFUl9BTElHTik6IERlZmluZS4KCjIwMDAtMDYtMTMgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AZHMyLnBnLmdkYS5wbD4KCgkqIE1ha2UtbGFuZy5pbiAoYysrLmluc3RhbGwtY29tbW9uKTogSW5zdGFsbCBnKystY3Jvc3MgaW4KCSQoZ2NjX3Rvb2xkaXIpL2JpbiBhcyBnKysgYW5kIGMrKzsgZysrIGluICQoYmluZGlyKSBhcwoJJCh0YXJnZXRfYWxpYXMpLWcrKyBhbmQgJCh0YXJnZXRfYWxpYXMpLWMrKy4KCjIwMDAtMDYtMTIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jICh2Y2FsbF9vZmZzZXRfZGF0YV9zKTogQWRkIGxhc3RfaW5pdCBhbmQgZm5zLgoJKG92ZXJyaWRlcyk6IFJlbmFtZSB0byBzYW1lX3NpZ25hdHVyZV9wLgoJKGRmc19maW5kX2ZpbmFsX292ZXJyaWRlcik6IEFkanVzdCBhY2NvcmRpbmdseS4KCShtYXJrX292ZXJyaWRlcnMpOiBMaWtld2lzZS4KCSh3YXJuX2hpZGRlbik6IExpa2V3aXNlLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBSZW9yZ2FuaXplIG1hY2hpbmVyeSBmb3IgYnVpbGRpbmcgdGhpbmdzCglhdCBuZWdhdGl2ZSBvZmZzZXRzLgoJKGJ1aWxkX3ZjYWxsX2FuZF92YmFzZV92dGJsX2VudHJpZXMpOiBMaWtld2lzZS4KCShidWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkoZGZzX2J1aWxkX3ZjYWxsX29mZnNldF92dGJsX2VudHJpZXMpOiBDb3JyZWN0IG9yZGVyIG9mIHZjYWxsCglvZmZzZXQgZW50cmllcy4gIERvIG5vdCBjcmVhdGUgdHdvIGVudHJpZXMgZm9yIGZ1bmN0aW9ucyB3aXRoIHRoZQoJc2FtZSBzaWduYXR1cmUuCgkoYnVpbGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IEluaXRpYWxpemUgdm9kLT5mbnMuCgkoYnVpbGRfcnR0aV92dGJsX2VudHJpZXMpOiBSZW9yZ2FuaXplIG1hY2hpbmVyeSBmb3IgYnVpbGRpbmcgdGhpbmdzCglhdCBuZWdhdGl2ZSBvZmZzZXRzLgoKCSogb3B0aW1pemUuYyAoZXhwYW5kX2NhbGxfaW5saW5lKTogRG9uJ3QgcmVjdXJzZSBpbnRvIHRoZSBjb2RlCgl1c2VkIHRvIGluaXRpYWxpemUgdGhlIHBhcmFtZXRlcnMgbW9yZSB0aGFuIG9uY2UuCgoyMDAwLTA2LTExICBNYXJrIE1pdGNoZWxsIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtYW5nbGUuYyAoTkVTVEVEX1RFTVBMQVRFX01BVENIKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShpc19zdGRfc3Vic3RpdHV0aW9uKTogRG9uJ3QgY2hlY2sgQ0xBU1NUWVBFX1VTRV9URU1QTEFURSBoZXJlLgoJKGZpbmRfc3Vic3RpdHV0aW9uKTogT25seSB1c2UgdGhlIGBTYScgc3Vic3RpdHV0aW9uIGZvcgoJc3RkOjphbGxvY2F0b3IsIG5vdCBpbnN0YW50aWF0aW9ucyBvZiBpdC4KCSh3cml0ZV90ZW1wbGF0ZV9wcmVmaXgpOiBNb3ZlIGNvbW1lbnQuICBPbmx5IHVzZSBhIFRSRUVfTElTVCB0bwoJcmVwcmVzZW50IHN1YnN0aXR1dGlvbnMgZm9yIGEgbWVtYmVyIHRlbXBsYXRlLgoJKHdyaXRlX2FycmF5X3R5cGUpOiBNYW5nbGUgYXJyYXkgZGltZW5zaW9ucyBjb3JyZWN0bHkuCgkqIG9wdGltaXplLmMgKG1heWJlX2Nsb25lX2JvZHkpOiBDb3B5IG1vcmUgaW5mb3JtYXRpb24gZnJvbSB0aGUKCWNsb25lZCBmdW5jdGlvbi4KCSogcHQuYyAocmVnZW5lcmF0ZV9kZWNsX2Zyb21fdGVtcGxhdGUpOiBQcmVzZXJ2ZSBERUNMX1VTRV9URU1QTEFURQoJb24gdGhlIHJlZ2VuZXJhdGVkIGRlY2xhcmF0aW9uLgoKMjAwMC0wNi0xMSAgQ2hpcCBTYWx6ZW5iZXJnICA8Y2hpcEB2YWxpbnV4LmNvbT4KCSAgICBNYXJrIE1pdGNoZWxsIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChidWlsZF92dGFibGUpOiBDbGFyaWZ5IGNvbW1lbnQuCgkoYnVpbGRfY3Rvcl92dGJsX2dyb3VwKTogUGFzcyB0aGUgbW9zdCBkZXJpdmVkIHR5cGUgdG8KCWJ1aWxkX3Z0YWJsZS4KCjIwMDAtMDYtMTEgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGRlY2wyLmMgKGNvbXBhcmVfb3B0aW9ucyk6IERvbid0IG5lZWRsZXNzbHkgY2FzdCBhd2F5IGNvbnN0LW5lc3MuCgoyMDAwLTA2LTEwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChhZGRfYmluZGluZyk6IEhhbmRsZSBkdXBsaWNhdGUgZGVjbGFyYXRpb25zIG9mIGV4dGVybmFsCgl2YXJpYWJsZXMuCgoyMDAwLTA2LTA5ICBDaGlwIFNhbHplbmJlcmcgIDxjaGlwQHZhbGludXguY29tPgoJICAgIE1hcmsgTWl0Y2hlbGwgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG1hbmdsZS5jICh3cml0ZV9udW1iZXIpOiBUYWtlIGFuIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgYXMgYW4KCWFyZ3VtZW50LgoJKHdyaXRlX3NpZ25lZF9udW1iZXIpOiBOZXcgbWFjcm8uCgkod3JpdGVfdW5zaWduZWRfbnVtYmVyKTogTGlrZXdpc2UuCgkod3JpdGVfc291cmNlX25hbWUpOiBVc2UgdGhlbS4KCSh3cml0ZV9udW1iZXIpOiBIYW5kbGUgc2lnbmVkIGFuZCB1bnNpZ25lZCB2YWx1ZXMuCgkod3JpdGVfaW50ZWdlcl9jc3QpOiBVc2UgdHJlZV9pbnRfY3N0X3NnbiwgYW5kIHVzZQoJd3JpdGVfdW5zaWduZWRfbnVtYmVyIG9yIHdyaXRlX3NpZ25lZF9udW1iZXIgYXMgYXBwcm9wcmlhdGUuCgkod3JpdGVfZGlzY3JpbWluYXRvcik6IFVzZSB3cml0ZV91bnNpZ25lZF9udW1iZXIgb3IKCXdyaXRlX3NpZ25lZF9udW1iZXIgYXMgYXBwcm9wcmlhdGUuCgkod3JpdGVfdGVtcGxhdGVfYXJnX2xpdGVyYWwpOiBMaWtld2lzZS4KCSh3cml0ZV9hcnJheV90eXBlKTogVXNlIHRyZWVfbG93X2NzdC4KCSh3cml0ZV90ZW1wbGF0ZV9wYXJtKTogIFVzZSB3cml0ZV91bnNpZ25lZF9udW1iZXIgb3IKCXdyaXRlX3NpZ25lZF9udW1iZXIgYXMgYXBwcm9wcmlhdGUuCgkod3JpdGVfc3Vic3RpdHV0aW9uKTogQWRqdXN0IGNhbGwgdG8gd3JpdGVfbnVtYmVyLgoJKHdyaXRlX3R5cGUpOiBHZXQgdGhlIFRZUEVfTUFJTl9WQVJJQU5UIGJlZm9yZSBtYW5nbGluZyBpdC4KCSh3cml0ZV9leHByZXNzaW9uKTogSGFuZGxlIG5vbi10eXBlIHRlbXBsYXRlIGFyZ3VtZW50cyBvZgoJcmVmZXJlbmNlIHR5cGUgY29ycmVjdGx5LgoJKG1hbmdsZV90aHVuayk6IFVzZSB3cml0ZV9zaWduZWRfbnVtYmVyLgoKMjAwMC0wNi0wOSAgQ2hpcCBTYWx6ZW5iZXJnICA8Y2hpcEB2YWxpbnV4LmNvbT4KCgkqIG1hbmdsZS5jIChmaW5kX3N1YnN0aXRpb24pOiBEb24ndCBtYW5nbGUgb2JqZWN0cyB3aXRoIHR5cGVuYW1lCglzdWJzdGl0dXRpb25zIChlLmcuICJjaW4iIGFzICJTaSIpLgoKMjAwMC0wNi0wOSAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogY2FsbC5jIChhZGRfY2FuZGlkYXRlKTogVXNlIGdnY19hbGxvY19jbGVhcmVkLgoJKiBkZWNsLmMgKGxvb2t1cF9sYWJlbCk6IExpa2V3aXNlLgoJKiBsZXguYyAocmV0cm9maXRfbGFuZ19kZWNsKTogTGlrZXdpc2UuCgoyMDAwLTA2LTA5ICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuc29tYS5yZWRoYXQuY29tPgoKCSogc2VtYW50aWNzLmMgKGV4cGFuZF9ib2R5KTogUHVzaCB0byBUVl9FWFBBTkQuCgkqIG9wdGltaXplLmMgKG9wdGltaXplX2Z1bmN0aW9uKTogUHVzaCB0byBUVl9JTlRFR1JBVElPTi4KCSogZGVjbC5jIChzdGFydF9mdW5jdGlvbik6IEFsd2F5cyBjYWxsIGFubm91bmNlX2Z1bmN0aW9uLgoKCSogdGluZm8yLmNjOiBKdXN0IGRlY2xhcmUgYWJvcnQuCgoyMDAwLTA2LTA5ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBsZXguYyAoREVGX09QRVJBVE9SKTogU2F5IGBvcGVyYXRvckAnIC1ub3QtIGBvcGVyYXRvciBAJwoJd2hlbmV2ZXIgQCBpcyBhIHN5bWJvbGljIG5hbWUuCgoyMDAwLTA2LTA4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIG1ldGhvZC5jIChtYWtlX3RodW5rKTogQ2xlYXIgREVDTF9WVFRfUEFSTSBpbiB0aHVuay4KCjIwMDAtMDYtMDcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKHB1c2hkZWNsKTogTG9vayB1cCBmdW5jdGlvbnMgYnkgREVDTF9OQU1FLCBub3QKCURFQ0xfQVNTRU1CTEVSX05BTUUuCgoyMDAwLTA2LTA2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoY19sYW5ndWFnZSk6IERlZmluZS4KCjIwMDAtMDYtMDYgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxleC5jIChsYW5nX2luaXRfb3B0aW9ucyk6IFR3ZWFrLgoKCSogZGVjbDIuYzogUmVtb3ZlICNpbmNsdXNpb24gb2YgZGlhZ25vc3RpYy5oCgkobGFuZ19kZWNvZGVfb3B0aW9uKTogTW92ZSBkaWFnbm9zdGljIGZvcm1hdHRpbmcgb3B0aW9ucyB0bwoJdG9wbGV2ZWwuCgoJKiBsYW5nLW9wdGlvbnMuaDogUmVtb3ZlIGRvY3VtZW50YXRpb24gZm9yIGRpYWdub3N0aWMgb3B0aW9ucy4KCgkqIE1ha2VmaWxlLmluIChsZXgubyk6IERlcGVuZHMgdXBvbiBkaWFnbm9zdGljLmgKCjIwMDAtMDYtMDYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKHJlZGVjbGFyYXRpb25fZXJyb3JfbWVzc2FnZSk6IElmIHR3byBURU1QTEFURV9ERUNMcyBoYXZlCgl0aGUgc2FtZSBERUNMX1JFU1VMVCwgaXQncyBub3QgYSByZWRlZmluaXRpb24uCgkqIHB0LmMgKHRzdWJzdF9kZWNsKTogUmVtb3ZlIGNvZGUgdG8gaGFuZGxlIGlsbGVnYWwKCXNwZWNpYWxpemF0aW9ucy4KCjIwMDAtMDYtMDYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBleGNlcHRpb24uY2M6IChfX2VoX2FsbG9jLCBfX2VoX2ZyZWUpOiBNb3ZlZCB0byBsaWJnY2MyLmMKCjIwMDAtMDYtMDUgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5zb21hLnJlZGhhdC5jb20+CgoJKiBzZWFyY2guYyAobWF5YmVfc3VwcHJlc3NfZGVidWdfaW5mbyk6IERvbid0IGNoZWNrCglDTEFTU1RZUEVfSU5URVJGQUNFX09OTFkgaWYgQ0xBU1NUWVBFX0lOVEVSRkFDRV9LTk9XTiBpc24ndCBzZXQuCgoJKiBwdC5jIChtYXJrX2RlY2xfaW5zdGFudGlhdGVkKTogRG8gU0VUX0RFQ0xfRVhQTElDSVRfSU5TVEFOVElBVElPTgoJaGVyZSBpZiBleHRlcm5fcC4KCglSZW1lbWJlciBpbnN0YW50aWF0aW9uIGNvbnRleHQgaW4gZGVmZXJyZWQgaW5zdGFudGlhdGlvbnMuCgkqIGNwLXRyZWUuaCAoc3RydWN0IHRpbnN0X2xldmVsKTogUmVtb3ZlLgoJKFRJTlNUX0RFQ0wsIFRJTlNUX0xJTkUsIFRJTlNUX0ZJTEUpOiBOZXcgbWFjcm9zLgoJKiBwdC5jIChjdXJyZW50X3RpbnN0X2xldmVsKTogTm93IGEgdHJlZS4KCShwcmludF90ZW1wbGF0ZV9jb250ZXh0LCBwdXNoX3RpbnN0X2xldmVsLCBwb3BfdGluc3RfbGV2ZWwsCgl0aW5zdF9mb3JfZGVjbCk6IEFkanVzdC4KCShyZW9wZW5fdGluc3RfbGV2ZWwpOiBOZXcgZm4uCgkoaW5pdF9wdCk6IFJlZ2lzdGVyIGN1cnJlbnRfdGluc3RfbGV2ZWwgYXMgYSByb290LgoJKGFkZF9wZW5kaW5nX3RlbXBsYXRlKTogUHV0IGN1cnJlbnRfdGluc3RfbGV2ZWwgaW4gVFJFRV9QVVJQT1NFCglvZiB0aGUgcGVuZGluZyB0ZW1wbGF0ZXMgbGlzdC4KCShpbnN0YW50aWF0ZV9wZW5kaW5nX3RlbXBsYXRlcyk6IEFkanVzdC4gIENhbGwgcmVvcGVuX3RpbnN0X2xldmVsLgoJKiBsZXguYyAoZXh0cmFjdF9pbnRlcmZhY2VfaW5mbyk6IEFkanVzdC4KCSogZGVjbDIuYyAod2Fybl9pZl91bmtub3duX2ludGVyZmFjZSk6IEFkanVzdC4KCjIwMDAtMDYtMDUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChpbmRpcmVjdF9wcmltYXJ5X2Jhc2VfcCk6IE5ldyBmdW5jdGlvbi4KCShkZXRlcm1pbmVfcHJpbWFyeV9iYXNlKTogVXNlIGl0LgoKMjAwMC0wNi0wNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglVcGRhdGUgbmV3LWFiaSBkeW5hbWljIGNhc3QgYWxnb3JpdGhtLgoJKiB0aW5mby5jYyAoX19jbGFzc190eXBlX2luZm86Ol9fZHluY2FzdF9yZXN1bHQpOiBBZGQKCXdob2xlX2RldGFpbHMuIEFkanVzdCBjb25zdHJ1Y3Rvci4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86Ol9fZG9fZHluY2FzdCk6IEFkanVzdCBmb3Igdm1pX2ZsYWdzLgoJQXZvaWQgdW5uZWNlc3Nhcnkgc2VhcmNoaW5nLgoJKF9fZHluYW1pY19jYXN0KTogQWRqdXN0IGZvciBfX2R5bmNhc3RfcmVzdWx0Ojp3aG9sZV9kZXRhaWxzLgoKMjAwMC0wNi0wNSAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBEb24ndCBjYWxsIHJlY29yZF9jb21wb25lbnRfYWxpYXNlcy4KCSogdHJlZS5jIChidWlsZF9jcGx1c19hcnJheV90eXBlXzEpOiBMaWtld2lzZS4KCjIwMDAtMDYtMDQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpci50ZXhpOiBDb3JyZWN0IHR5cG8uCgkqIG1hbmdsZS5jICh3cml0ZV9leHByZXNzaW9uKTogSGFuZGxlIG5vbi10eXBlIHRlbXBsYXRlIGFyZ3VtZW50cwoJd2l0aCByZWZlcmVuY2UgdHlwZS4KCSogbWV0aG9kLmMgKGJ1aWxkX292ZXJsb2FkX3ZhbHVlKTogTGlrZXdpc2UuCgkqIHB0LmMgKGNvbnZlcnRfbm9udHlwZV9hcmd1bWVudCk6IEV4cGxpY2l0bHkgcmVwcmVzZW50IGNvbnZlcnNpb24KCXRvIGEgcmVmZXJlbmNlIHdpdGggYW4gQUREUl9FWFBSLgoJKHVuaWZ5KTogQWx3YXlzIHVuaWZ5IGFyZ3VtZW50cyBpbiBsZWZ0LXRvLXJpZ2h0IG9yZGVyLgoKMjAwMC0wNi0wMyAgQWxleCBTYW11ZWwgICAgPHNhbXVlbEBjb2Rlc291cmNlcnkuY29tPgoJICAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKENYWF9TUkNTKTogQWRkIG1hbmdsZS5jLgoJKiBNYWtlZmlsZS5pbiAoQ1hYX09CSlMpOiBBZGQgbWFuZ2xlLm8uCgkobWFuZ2xlLm8pOiBOZXcgcnVsZS4KCgkqIGNsYXNzLmMgKGxvY2FsX2NsYXNzZXMpOiBOZXcgdmFyaWFibGUuCgkqIGNsYXNzLmMgKGdldF92dGFibGVfbmFtZSk6IFVzZSBtYW5nbGVfdnRhYmxlX2Zvcl90eXBlIGZvciBuZXcgQUJJLgoJKGdldF92dHRfbmFtZSk6IFVzZSBtYW5nbGVfdnR0X25hbWUgZm9yIG5ldyBBQkkuCgkoaW5pdF9jbGFzc19wcm9jZXNzaW5nKTogSW5pdGlhbGl6ZSBsb2NhbF9jbGFzc2VzLgoJKGJ1aWxkX2N0b3JfdnRibF9ncm91cCk6IFVzZSBtYW5nbGVfY3Rvcl92dGJsX2Zvcl90eXBlIGZvciBuZXcgQUJJLgoJKiBjcC10cmVlLmggKGNwX3RyZWVfaW5kZXgpOiBBZGQgQ1BUSV9TVERfSURFTlRJRklFUi4KCShzdGRfaWRlbnRpZmllcik6IE5ldyBtYWNyby4KCShERUNMX1ZPTEFUSUxFX01FTUZVTkNfUCk6IE5ldyBtYWNyby4KCShERUNMX05BTUVTUEFDRV9TVERfUCk6IExpa2V3aXNlLgoJKGxvY2FsX2NsYXNzZXMpOiBEZWNsYXJlLgoJKGdldF9tb3N0bHlfaW5zdGFudGlhdGVkX2Z1bmN0aW9uX3R5cGUpOiBEZWNsYXJlLgoJKGluaXRfbWFuZ2xlKTogRGVjbGFyZS4KCShtYW5nbGVfZGVjbCk6IExpa2V3aXNlLgoJKG1hbmdsZV90eXBlX3N0cmluZyk6IExpa2V3aXNlLgoJKG1hbmdsZV90eXBlKTogTGlrZXdpc2UuCgkobWFuZ2xlX3R5cGVpbmZvX2Zvcl90eXBlKTogTGlrZXdpc2UuCgkobWFuZ2xlX3R5cGVpbmZvX3N0cmluZ19mb3JfdHlwZSk6IExpa2V3aXNlLgoJKG1hbmdsZV92dGJsX2Zvcl90eXBlKTogTGlrZXdpc2UuCgkobWFuZ2xlX3Z0dF9mb3JfdHlwZSk6IExpa2V3aXNlLgoJKG1hbmdsZV9jdG9yX3Z0YmxfZm9yX3R5cGUpOiBMaWtld2lzZS4KCShtYW5nbGVfdGh1bmspOiBMaWtld2lzZS4KCShtYW5nbGVfY29udl9vcF9uYW1lX2Zvcl90eXBlKTogTGlrZXdpc2UuCgkobWFuZ2xlX2d1YXJkX3ZhcmlhYmxlKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAocHVzaHRhZyk6IEtlZXAgdHJhY2sgb2YgbG9jYWwgY2xhc3Nlcy4KCShpbml0aWFsaXplX3ByZWRlZmluZWRfaWRlbnRpZmllcnMpOiBJbml0aWFsaXplIHN0ZF9pZGVudGlmaWVyLgoJKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogVXNlIHN0ZF9pZGVudGlmaWVyLgoJKHN0YXJ0X2RlY2wpOiBEb24ndCB0cmVhdCBpbnN0YW50aWF0aW9ucyBhcyBzcGVjaWFsaXphdGlvbnMuCgkoZ3Jva2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCShncm9rdmFyZGVjbCk6IENhbGwgbWFuZ2xlX2RlY2wgZm9yIG5ldyBBQkkuICBPbmx5IHNldCBtYW5nbGVkCgluYW1lIGZvciBmdWxseS1pbnN0YW50aWF0ZWQgdGVtcGxhdGVzLgoJKiBkZWNsMi5jIChncm9rY2xhc3Nmbik6IFVzZSBzZXRfbWFuZ2xlZF9uYW1lX2Zvcl9kZWNsIGZvcgoJZGVzdHJ1Y3RvcnMgd2l0aCB0aGUgbmV3IEFCSS4KCShmaW5pc2hfc3RhdGljX2RhdGFfbWVtYmVyX2RlY2wpOiBVc2UgbWFuZ2xlX2RlY2wgdW5kZXIgdGhlIG5ldyBBQkkuCgkoZ3Jva2ZpZWxkKTogVXNlIG1hbmdsZV90eXBlIGZvciBuZXcgQUJJLgoJKGdyb2tvcHR5cGVuYW1lKTogVXNlIG1hbmdsZV9jb252X29wX2Zvcl90eXBlIGZvciBuZXcgQUJJLgoJKGdldF9zZW50cnkpOiBVc2UgbWFuZ2xlX2d1YXJkX3ZhcmlhYmxlIGZvciBuZXcgQUJJLgoJKHN0YXJ0X3N0YXRpY19pbml0aWFsaXphdGlvbl9vcl9kZXN0cnVjdGlvbik6IExpa2V3aXNlLgoJKiBleHByLmMgKGV4dHJhY3RfYWdncl9pbml0KTogUmVtb3ZlLgoJKGV4dHJhY3Rfc2NhbGFyX2luaXQpOiBMaWtld2lzZS4KCShleHRyYWN0X2luaXQpOiBSZW1vdmUgI2lmIDAnZCBjb2RlLgoJKiBtYW5nbGUuYzogTmV3IGZ1bmN0aW9uLgoJKiBtZXRob2QuYyAoYnVpbGRfbWFuZ2xlZF9uYW1lKTogQXNzZXJ0IG5vdCBmbGFnX25ld19hYmkuCgkoYnVpbGRfc3RhdGljX25hbWUpOiBMaWtld2lzZS4KCShidWlsZF9kZWNsX292ZXJsb2FkX3JlYWwpOiBMaWtld2lzZS4KCShidWlsZF90eXBlbmFtZV9vdmVybG9hZCk6IExpa2V3aXNlLgoJKGJ1aWxkX292ZXJsb2FkX3dpdGhfdHlwZSk6IExpa2V3aXNlLgoJKGJ1aWxkX292ZXJsb2FkX25hbWUpOiBMaWtld2lzZS4KCShnZXRfY3Rvcl92dGJsX25hbWUpOiBMaWtld2lzZS4KCShzdGFydF9zcXVhbmdsaW5nKTogTGlrZXdpc2UuCgkoZ2V0X2lkXzIpOiBMaWtld2lzZS4KCShzZXRfbWFuZ2xlZF9uYW1lX2Zvcl9kZWNsKTogQ2FsbCBtYW5nbGVfZGVjbCBmb3IgbmV3IEFCSS4KCShpbml0X21ldGhvZCk6IENhbGwgaW5pdF9tYW5nbGUgZm9yIG5ldyBBQkkuCgkobWFrZV90aHVuayk6IENhbGwgbWFuZ2xlX3RodW5rIGZvciBuZXcgQUJJLgoJKiBvcGVyYXRvcnMuZGVmOiBDb3JyZWN0IG5ldyBBQkkgbWFuZ2xpbmdzIGZvciB0aGUgYCUnIG9wZXJhdG9yLgoJQWRkIGA6Oicgb3BlcmF0b3IuCgkqIHB0LmMgKGJ1aWxkX3RlbXBsYXRlX2RlY2wpOiBDb3B5IERFQ0xfT1ZFUkxPQURFRF9PUEVSQVRPUl9QIGFuZAoJREVDTF9BU1NJR05NRU5UX09QRVJBVE9SX1AgdG8gdGhlIFRFTVBMQVRFX0RFQ0wuCgkobG9va3VwX3RlbXBsYXRlX2NsYXNzKTogQ2FsbCBtYW5nbGVfZGVjbCBmb3IgbmV3IEFCSS4KCShnZXRfbW9zdGx5X2luc3RhbnRpYXRlZF9mdW5jdGlvbl90eXBlKTogTmV3IGZ1bmN0aW9uLgoJKHNldF9tYW5nbGVkX25hbWVfZm9yX3RlbXBsYXRlX2RlY2wpOiBVc2UgaXQuCgkodHN1YnN0X2RlY2wpOiBVc2Ugc2V0X21hbmdsZWRfbmFtZV9mb3JfZGVjbCBmb3IgZGVzdHJ1Y3RvcnMgd2l0aAoJdGhlIG5ldyBBQkkuICBVc2UgbWFuZ2xlX2NvbnZfb3BfbmFtZV9mb3JfdHlwZSBmb3IgaW5zdGFudGlhdGVkCgljb252ZXJzaW9uIG9wIG5hbWVzLgoJKiBydHRpLmMgKHRpbmZvX25hbWUpOiBDYWxsIG1hbmdsZV90eXBlX3N0cmluZyBmb3IgbmV3IEFCSS4KCShnZXRfdGluZm9fZGVjbCk6IENhbGwgbWFuZ2xlX3R5cGVpbmZvX2Zvcl90eXBlIGZvciBuZXcJQUJJLgoJKHRpbmZvX2Jhc2VfaW5pdCk6ICBMaWtld2lzZS4gIE1hbmdsZSB0eXBlaW5mbyBzdHJpbmcgbmFtZSB3aXRoCgltYW5nbGVfdHlwZWluZm9fc3RyaW5nX2Zvcl90eXBlLgoKMjAwMC0wNi0wMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoVE1QTF9BUkdTX0xFVkVMKTogQ2xhcmlmeSBjb21tZW50LgoJKElOTkVSTU9TVF9URU1QTEFURV9BUkdTKTogTmV3IG1hY3JvLgoJKGlubmVybW9zdF9hcmdzKTogUmVtb3ZlLgoJKGdldF9pbm5lcm1vc3RfdGVtcGxhdGVfYXJncyk6IE5ldyBmdW5jdGlvbi4KCSogZGVjbDIuYyAoYXJnX2Fzc29jX2NsYXNzKTogVXNlIElOTkVSTU9TVF9URU1QTEFURV9BUkdTLgoJKiBlcnJvci5jIChkdW1wX2Z1bmN0aW9uX2RlY2wpOiBCZSBjYXV0aW9uIHdoZW4gdXNpbmcKCW1vc3RfZ2VuZXJhbF90ZW1wbGF0ZS4KCSogbWV0aG9kLmMgKGJ1aWxkX3RlbXBsYXRlX3Bhcm1fbmFtZXMpOiAgVXNlCglJTk5FUk1PU1RfVEVNUExBVEVfQVJHUy4KCSogcHQuYyAoYWRkX3RvX3RlbXBsYXRlX2FyZ3MpOiBUaWR5IGNvbW1lbnQKCShnZXRfaW5uZXJtb3N0X3RlbXBsYXRlX2FyZ3MpOiBOZXcgZnVuY3Rpb24uCgkoY2hlY2tfZXhwbGljaXRfc3BlY2lhbGl6YXRpb24pOiBDbGVhciBERUNMX0lOSVRJQUwgZm9yIGEgbmV3CglzcGVjaWFsaXphdGlvbi4KCShwcm9jZXNzX3BhcnRpYWxfc3BlY2lhbGl6YXRpb24pOiBVc2UgSU5ORVJNT1NUX1RFTVBMQVRFX0FSR1MuCglUaWR5LgoJKHB1c2hfdGVtcGxhdGVfZGVjbCk6IEFsd2F5cyByZWdpc3RlciBzcGVjaWFsaXphdGlvbnMgb2YgdGhlIG1vc3QKCWdlbmVyYWwgdGVtcGxhdGUuCgkoY29udmVydF90ZW1wbGF0ZV9hcmd1bWVudCk6IFVzZSBJTk5FUk1PU1RfVEVNUExBVEVfQVJHUy4KCShjb2VyY2VfdGVtcGxhdGVfcGFybXMpOiBMaWtld2lzZS4KCShsb29rdXBfdGVtcGxhdGVfY2xhc3MpOiBMaWtld2lzZS4KCShpbm5lcm1vc3RfYXJncyk6IFJlbW92ZS4KCSh0c3Vic3RfZGVjbCk6IFVzZSBJTk5FUk1PU1RfVEVNUExBVEVfQVJHUy4KCSh0c3Vic3RfZGVjbCk6IEhhbmRsZSB0cmlja3kgc3BlY2lhbGl6YXRpb25zLiAgVXNlCglnZXRfaW5uZXJtb3N0X3RlbXBsYXRlX2FyZ3MuCgkoaW5zdGFudGlhdGVfdGVtcGxhdGUpOiBTaW1wbGlmeSBoYW5kbGluZyBvZiBwYXJ0aWFsCglpbnN0YW50aWF0aW9ucy4KCShnZXRfY2xhc3NfYmluZGluZ3MpOiBVc2UgSU5ORVJNT1NUX1RFTVBMQVRFX0FSR1MuCgkobW9zdF9nZW5lcmFsX3RlbXBsYXRlKTogUmVpbXBsZW1lbnQsIGluIGEgbW9yZSBzdHJhaWdodGZvcndhcmQKCW1hbm5lci4KCShyZWdlbmVyYXRlX2RlY2xfZnJvbV90ZW1wbGF0ZSk6IFR3ZWFrIGZvcm1hdHRpbmcuICBVc2UKCVRNUExfQVJHU19ERVBUSCBmb3IgY2xhcml0eS4KCShzZXRfbWFuZ2xlZF9uYW1lX2Zvcl90ZW1wbGF0ZV9kZWNsKTogVXNlIElOTkVSTU9TVF9BUkdTLgoKCSogZHVtcC5jIChkZXF1ZXVlX2FuZF9kdW1wKTogRHVtcCBpbmZvcm1hdGlvbiBhYm91dCB0aHVua3MuCgoyMDAwLTA2LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogZGVjbC5jIChpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFNldCBsYW5nX2dldF9hbGlhc19zZXQgZmlyc3QgdGhpbmcuCgoyMDAwLTA2LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogZGVjbDIuYyAodW5zdXBwb3J0ZWRfb3B0aW9ucyk6IEZpeCB0eXBvLCBtYWtlIGNvbnN0LgoJKGxhbmdfZGVjb2RlX29wdGlvbik6IEZpeCBic2VhcmNoIGFyZ3VtZW50IG9yZGVyLgoKMjAwMC0wNi0wMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGluaXQuYyAocmVzb2x2ZV9vZmZzZXRfcmVmKTogUmVtb3ZlIGNoZWNrIGZvciBUUkVFX0FERFJFU1NBQkxFCglvbiBGSUVMRF9ERUNMcy4KCjIwMDAtMDUtMzEgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiBjcC10cmVlLmggKGNfZ2V0X2FsaWFzX3NldCk6IERlbGV0ZWQuCgkqIE1ha2VmaWxlLmluIChkZWNsLm8pOiBJbmNsdWRlIC4uL2V4cHIuaC4KCSogZGVjbC5jIChleHByLmgpOiBJbmNsdWRlLgoJKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogQ2FsbCByZWNvcmRfY29tcG9uZW50X2FsaWFzZXMgZm9yIGFycmF5cy4KCShncm9rZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJU2V0IFRSRUVfQUREUkVTU0FCTEUgZm9yIGZpZWxkcyB0aGF0IGFyZW4ndCBiaXRmaWVsZHMuCgkqIHRyZWUuYyAoYnVpbGRfY3BsdXNfYXJyYXlfdHlwZV8xKTogQ2FsbCByZWNvcmRfY29tcG9uZW50X2FsaWFzZXMuCgoyMDAwLTA1LTMxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVJlbW92ZSBndWlkaW5nIGRlY2xhcmF0aW9uIHN1cHBvcnQuCgkqIGNwL2NwLXRyZWUuaCAoZmxhZ19kdW1wX3RyYW5zbGF0aW9uX3VuaXQpOiBNYWtlIGl0IGNvbnN0LgoJKGZsYWdfZ3VpZGluZ19kZWNscyk6IFJlbW92ZS4KCSogY2FsbC5jIChidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xKTogUmVtb3ZlIHN1cHBvcnQgZm9yCglndWlkaW5nIGRlY2xzLgoJKGJ1aWxkX25ld19mdW5jdGlvbl9jYWxsKTogTGlrZXdpc2UuCgkoYnVpbGRfbmV3X29wKTogTGlrZXdpc2UuCgkoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoc3RhcnRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCSogZnJpZW5kLmMgKGlzX2ZyaWVuZCk6IExpa2V3aXNlLgoJKGRvX2ZyaWVuZCk6IExpa2V3aXNlLgoJKiBkZWNsMi5jICgoZmxhZ19kdW1wX3RyYW5zbGF0aW9uX3VuaXQpOiBNYWtlIGl0IGNvbnN0LgoJKGZsYWdfZ3VpZGluZ19kZWNscyk6IFJlbW92ZS4KCSh1bnN1cHBvcnRlZF9vcHRpb25zKTogTmV3IHZhcmlhYmxlCgkoY29tcGFyZV9vcHRpb25zKTogTmV3IGZ1bmN0aW9uLgoJKGxhbmdfZGVjb2RlX29wdGlvbik6IFVzZSB0aGVtLgoKCSogZGVjbC5jIChidWlsZF9jcF9saWJyYXJ5X2ZuKTogU2V0IERFQ0xfQ09OVEVYVC4KCgkqIG1ldGhvZC5jIChtYW5nbGVfZXhwcmVzc2lvbik6IEFkanVzdCB0ZXN0IGZvciBsZWdhbCBleHByZXNzaW9uCglvcGVyYXRvcnMuCgoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogU2F2ZSBhbmQgcmVzdG9yZSB0aGUgbG9jYWwKCXNwZWNpYWxpemF0aW9ucyBsaXN0LgoKMjAwMC0wNS0zMCAgSmFzb24gTWVycmlsbCAgPGphc29uQGRlY2VwdGljb24uY3lnbnVzLmNvbT4KCgkqIGRlY2wuYyAoZ3Jva19yZWZlcmVuY2VfaW5pdCk6IFBhc3MgTE9PS1VQX09OTFlDT05WRVJUSU5HLgoKMjAwMC0wNS0zMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoYWRkX3RlbXBsYXRlX2NhbmRpZGF0ZV9yZWFsKTogSGFuZGxlIG1lbWJlciB0ZW1wbGF0ZQoJY29uc3RydWN0b3JzIGZvciBjbGFzc2VzIHdpdGggdmlydHVhbCBiYXNlcy4KCShidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xKTogVXNlIGluX2NoYXJnZV9hcmdfZm9yX25hbWUuCgkoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogVXNlIERFQ0xfTk9OU1RBVElDX01FTUJFUl9GVU5DVElPTl9QLgoKCSogaXIudGV4aTogVXBkYXRlIHRodW5rIGRvY3VtZW50YXRpb24uCgoJKiBjYWxsLmMgKGpvdXN0KTogRml4IGhhbmRsaW5nIG9mIG92ZXJsb2FkZWQgYnVpbHRpbiBvcGVyYXRvcnMuCgoyMDAwLTA1LTMwICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuY3VtYi5vcmc+CgoJKiBjcC10cmVlLmggKERFQ0xfQU5USUNJUEFURUQpOiBOZXcgbWFjcm8uCglEb2N1bWVudCBuZXcgdXNlIG9mIERFQ0xfTEFOR19GTEFHXzcuCgkqIGRlY2wuYyAoYnVpbHRpbl9mdW5jdGlvbik6IFNldCBERUNMX0FOVElDSVBBVEVEIG9uIGJ1aWx0aW5zCglpbiB0aGUgdXNlciBuYW1lc3BhY2UuCgkqIGxleC5jIChkb19pZGVudGlmaWVyKTogSWYgdGhlIGlkZW50aWZpZXIncyBkZWNsYXJhdGlvbiBoYXMKCURFQ0xfQU5USUNJUEFURUQgb24sIGl0IGhhcyBub3QgeWV0IGJlZW4gZGVjbGFyZWQuICBCdXQgZG8gbm90CglyZXBsYWNlIGl0IHdpdGggYW4gb3JkaW5hcnkgaW1wbGljaXQgZGVjbGFyYXRpb24uCgoJKiB0aW5mbzIuY2M6IEluY2x1ZGUgc3RkbGliLmguCgoyMDAwLTA1LTI5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChDTEFTU1RZUEVfQUxJR05fVU5JVCk6IE5ldyBtYWNyby4KCSogY2xhc3MuYyAobGF5b3V0X2VtcHR5X2Jhc2UpOiBVc2UgQ0xBU1NUWVBFX0FMSUdOX1VOSVQsIG5vdAoJQ0xBU1NUWVBFX0FMSUdOLgoKMjAwMC0wNS0yOCAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogVXNlIHNraXBfbGVhZGluZ19zdWJzdHJpbmcgaW5zdGVhZAoJb2YgcGxhaW4gc3RybmNtcC4KCjIwMDAtMDUtMjggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUBjeWdudXMuY29tPgoKCSogb3BlcmF0b3JzLmRlZiAoPD8pOiBEdXBsaWNhdGVkLCBzaG91bGQgaGF2ZSBiZWVuLi4uCgkoPj8pOiB0aGlzLiAgRml4ZWQuCgoyMDAwLTA1LTI3ICBBbGV4IFNhbXVlbCAgICA8c2FtdWVsQGNvZGVzb3VyY2VyeS5jb20+CgkgICAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoYW5zaV9vcG5hbWUpOiBNYWtlIGl0IGEgbWFjcm8uCgkoYW5zaV9hc3NvcG5hbWUpOiBMaWtld2lzZS4KCShzdHJ1Y3QgbGFuZ19kZWNsX2ZsYWdzKTogQWRkIGFzc2lnbm1lbnRfb3BlcmF0b3JfcC4KCShzdHJ1Y3QgbGFuZ19kZWNsKTogQWRkIG9wZXJhdG9yX2NvZGUuCgkoREVDTF9WVFRfUEFSTSk6IEFkanVzdC4KCShERUNMX09WRVJMT0FERURfT1BFUkFUT1JfUCk6IFJldHVybiB0aGUgb3BlcmF0b3JfY29kZSBmb3IgYW4KCW92ZXJsb2FkZWQgb3BlcmF0b3IuCgkoU0VUX09WRVJMT0FERURfT1BFUkFUT1JfQ09ERSk6IE5ldyBtYWNyby4KCShERUNMX0FTU0lHTk1FTlRfT1BFUkFUT1JfUCk6IE5ldyBtYWNyby4KCShERUNMX0FSUkFZX0RFTEVURV9PUEVSQVRPUl9QKTogQWRqdXN0LgoJKG9wbmFtZV90YWIpOiBSZW1vdmUuCgkoYXNzaWdub3BfdGFiKTogTGlrZXdpc2UuCgkob3BlcmF0b3JfbmFtZV9pbmZvX3QpOiBOZXcgdHlwZS4KCShvcGVyYXRvcl9uYW1lX2luZm8pOiBOZXcgdmFyaWFibGUuCgkoYXNzaWdubWVudF9vcGVyYXRvcl9uYW1lX2luZm8pOiBMaWtld2lzZS4KCShidWlsZF9jcF9saWJyYXJ5X2ZuKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKHB1c2hfY3BfbGlicmFyeV9mbik6IExpa2V3aXNlLgoJKG9wZXJhdG9yX25hbWVfc3RyaW5nKTogTGlrZXdpc2UuCgkoYnVpbGRfZGVjbF9vdmVybG9hZCk6IExpa2V3aXNlLgoJKiBjYWxsLmMgKHByaW50X3pfY2FuZGlkYXRlcyk6IFNpbXBsaWZ5LgoJKGJ1aWxkX29iamVjdF9jYWxsKTogQWRqdXN0IHVzYWdlIG9mIGFuc2lfb3BuYW1lLiAgVXNlCglERUNMX09WRVJMT0FERURfT1BFUkFUT1JfUC4KCShvcF9lcnJvcik6IEFkanVzdCBvcGVyYXRvciBuYW1lIGxvb2t1cC4KCShidWlsZF9jb25kaXRpb25hbF9leHByKTogQWRqdXN0IHVzYWdlIG9mIGFuc2lfb3BuYW1lLgoJKGJ1aWxkX25ld19vcCk6IExpa2V3aXNlLgoJKGJ1aWxkX29wX2RlbGV0ZV9jYWxsKTogTGlrZXdpc2UuCgkoYnVpbGRfb3Zlcl9jYWxsKTogTGlrZXdpc2UuCgkoam91c3QpOiBVc2UgREVDTF9PVkVSTE9BREVEX09QRVJBVE9SX1AuCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogQ29weSBvcGVyYXRvcl9jb2RlLgoJKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogQWRqdXN0IHBhcmFtZXRlcnMgdG8gcHVzaF9jcF9saWJyYXJ5X2ZuLgoJKGJ1aWx0aW5fZnVuY3Rpb24pOiBBZGp1c3QgcGFyYW1ldGVycyB0byBidWlsZF9saWJyYXJ5X2ZuXzEuCgkoYnVpbGRfbGlicmFyeV9mbl8xKTogQWNjZXB0IGFuIG92ZXJsb2FkZWQgb3BlcmF0b3IgY29kZS4KCShidWlsZF9saWJyYXJ5X2ZuKTogUGFzcyBFUlJPUl9NQVJLLgoJKGJ1aWxkX2NwX2xpYnJhcnlfZm4pOiBBY2NlcHQgYW4gb3ZlcmxvYWRlZCBvcGVyYXRvciBjb2RlLgoJKHB1c2hfY3BfbGlicmFyeV9mbik6IExpa2V3aXNlLgoJKGdyb2tmbmRlY2wpOiBUd2Vhay4KCShncm9rZGVjbGFyYXRvcik6IFNpbXBsaWZ5IGNvZGUgdG8gY29tcHV0ZSBuYW1lcyBvZiBvdmVybG9hZGVkCglvcGVyYXRvcnMuICBBZGp1c3QgdXNlIG9mIGFuc2lfb3BuYW1lLgoJKGFtYmlfb3BfcCk6IFdvcmsgb24gdHJlZV9jb2Rlcywgbm90IGlkZW50aWZpZXJzLgoJKHVuYXJ5X29wX3ApOiBMaWtld2lzZS4KCShncm9rX29wX3Byb3BlcnRpZXMpOiBMaWtld2lzZS4KCShzdGFydF9mdW5jdGlvbik6IFVzZSBERUNMX09WRVJMT0FERURfT1BFUkFUT1JfUC4KCShsYW5nX21hcmtfdHJlZSk6IERvbid0IHRyeSB0byBtYXJrIHRoZSBvcGVyYXRvcl9jb2RlLgoJKiBkZWNsMi5jIChncm9rX2Z1bmN0aW9uX2luaXQpOiBVc2UgREVDTF9PVkVSTE9BREVEX09QRVJBVE9SX1AuCgkqIGVycm9yLmMgKGR1bXBfZGVjbCk6IFJlbW92ZSBzcGVjaWFsIGhhbmRsaW5nIGZvciBvcGVyYXRvcgoJbmFtZXMuCgkoZHVtcF9mdW5jdGlvbl9uYW1lKTogTGlrZXdpc2UuCgkoZHVtcF9leHByKTogQWRqdXN0IG5hbWUgbG9va3VwIG9mIG9wZXJhdG9ycy4KCShvcF90b19zdHJpbmcpOiBTaW1wbGlmeS4KCShhc3NvcF90b19zdHJpbmcpOiBMaWtld2lzZS4KCSogaW5pdC5jIChidWlsZF9uZXdfMSk6IEFkanVzdCB1c2Ugb2YgYW5zaV9vcG5hbWUuCgkqIGxleC5jIChvcG5hbWVfdGFiKTogUmVtb3ZlLgoJKGFzc2lnbm9wX3RhYik6IExpa2V3aXNlLgoJKGFuc2lfb3BuYW1lKTogTGlrZXdpc2UuCgkoYW5zaV9hc3NvcG5hbWUpOiBMaWtld2lzZS4KCShvcGVyYXRvcl9uYW1lX3N0cmluZyk6IExpa2V3aXNlLgoJKHJlaW5pdF9sYW5nX3NwZWNpZmljKTogTGlrZXdpc2UuCgkob3BlcmF0b3JfbmFtZV9pbmZvKTogTmV3IHZhcmlhYmxlLgoJKGFzc2lnbm1lbnRfb3BlcmF0b3JfbmFtZV9pbmZvKTogTGlrZXdpc2UuCgkoaW5pdF9vcGVyYXRvcnMpOiBOZXcgZnVuY3Rpb24uCgkoaW5pdF9wYXJzZSk6IFVzZSBpdC4KCShkb19pZGVudGlmaWVyKTogQWRqdXN0IHVzZSBvZiBhbnNpX29wbmFtZS4KCSogbWV0aG9kLmMgKG1hbmdsZV9leHByZXNzaW9uKTogRG9uJ3QgdXNlIGFuc2lfb3BuYW1lIGZvcgoJbWFuZ2xpbmcuCgkoYnVpbGRfZGVjbF9vdmVybG9hZF9yZWFsKTogVXNlIERFQ0xfT1ZFUkxPQURFRF9PUEVSQVRPUl9QLgoJKGJ1aWxkX2RlY2xfb3ZlcmxvYWQpOiBSZW1vdmUuCgkoYnVpbGRfdHlwZW5hbWVfb3ZlcmxvYWQpOiBVc2UgT1BFUkFUT1JfVFlQRU5BTUVfRk9STUFUIGRpcmVjdGx5LgoJKGRvX2J1aWxkX2Fzc2lnbl9yZWYpOiBBZGp1c3QgdXNlIG9mIGFuc2lfb3BuYW1lLgoJKHN5bnRoZXNpemVfbWV0aG9kKTogTGlrZXdpc2UuCgkoaW1wbGljaXRseV9kZWNsYXJlX2ZuKTogTGlrZXdpc2UuCgkqIG9wZXJhdG9ycy5kZWY6IE5ldyBmaWxlLgoJKiBwYXJzZS55IChvcGVyYXRvcik6IEFkanVzdCB1c2Ugb2YgYW5zaV9vcG5hbWUuCgkqIHB0LmMgKHRzdWJzdF9kZWNsKTogVXNlIElERU5USUZJRVJfT1BOQU1FX1AuCgkoc2V0X21hbmdsZWRfbmFtZV9mb3JfdGVtcGxhdGVfZGVjbCk6IERvbid0IHBsYXkgZ2FtZXMgd2l0aAoJY3VycmVudF9uYW1lc3BhY2UuCgkoc3BlY2lhbF9mdW5jdGlvbl9wKTogQWRqdXN0IHVzZSBvZiBhbnNpX29wbmFtZS4KCSogdHlwZWNrLmMgKGNoZWNrX3JldHVybl9leHByKTogTGlrZXdpc2UuCgkqIE1ha2UtbGFuZy5pbiAoY2MxcGx1cyk6IERlcGVuZCBvbiBvcGVyYXRvcnMuZGVmLgoJKiBNYWtlZmlsZS5pbiAobGV4Lm8pOiBMaWtld2lzZS4KCShkZWNsLm8pOiBMaWtld2lzZS4KCjIwMDAtMDUtMjcgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIE1ha2UtbGFuZy5pbiAoY3BsaWIyLnJlYWR5KTogRXJhZGljYXRlLgoKMjAwMC0wNS0yNyAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIG1ldGhvZC5jIChtYW5nbGVfZXhwcmVzc2lvbik6IFVzZSBUUkVFX0NPREVfTEVOR1RILgoJKiB0cmVlLmMgKGJyZWFrX291dF9jYWxscywgYnVpbGRfbWluX250KTogVXNlIFRSRUVfQ09ERV9MRU5HVEguCgkoYnVpbHRfbWluLCBjcF90cmVlX2VxdWFsKTogTGlrZXdpc2UuCgoyMDAwLTA1LTI2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAobGF5b3V0X25vbmVtcHR5X2Jhc2Vfb3JfZmllbGQpOiBSZXBsYWNlCglgcmVjb3JkX2xheW91dF9pbmZvJyB3aXRoIGByZWNvcmRfbGF5b3V0X2luZm9fcycuCgoyMDAwLTA1LTI2ICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuc29tYS5yZWRoYXQuY29tPgoKCUZpeCBnb3RvIGNoZWNraW5nLgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5ndWFnZV9mdW5jdGlvbik6IHhfbmFtZWRfbGFiZWxzIGlzIG5vdwoJYSBzdHJ1Y3QgbmFtZWRfbGFiZWxfbGlzdCouCgkqIGRlY2wuYyAoc3RydWN0IG5hbWVkX2xhYmVsX3VzZV9saXN0KTogUmVuYW1lZCBmcm9tLi4uCgkoc3RydWN0IG5hbWVkX2xhYmVsX2xpc3QpOiAuLi50aGlzLiAgTmV3IHN0cnVjdC4KCShwdXNoX2JpbmRpbmdfbGV2ZWwpOiBEb24ndCBzZXQgZWhfcmVnaW9uLgoJKG5vdGVfbGV2ZWxfZm9yX2VoKTogTmV3IGZuLgoJKHBvcF9sYWJlbCk6IFRha2UgbGFiZWwgYW5kIG9sZCB2YWx1ZSBkaXJlY3RseS4KCShwb3BfbGFiZWxzKTogQWRqdXN0IGZvciBuZXcgbmFtZWRfbGFiZWxzIGZvcm1hdC4KCShsb29rdXBfbGFiZWwpOiBMaWtld2lzZS4KCShwb3BsZXZlbCk6IE5vdGUgY2hhcmFjdGVyaXN0aWNzIG9mIGEgYmluZGluZyBsZXZlbCBjb250YWluaW5nIGEKCW5hbWVkIGxhYmVsLiAgTWVzcyB3aXRoIG5hbWVkIGxhYmVsIGxpc3RzIGVhcmxpZXIuCgkobWFya19uYW1lZF9sYWJlbF9saXN0cyk6IE5ldyBmbi4KCShtYXJrX2xhbmdfZnVuY3Rpb24pOiBDYWxsIGl0LgoJKHVzZV9sYWJlbCk6IE5ldyBmbiwgc3BsaXQgb3V0IGZyb20uLi4KCShtYWtlX2xhYmVsX2RlY2wpOiAuLi5oZXJlLiAgRG9uJ3QgY2FsbCBpdC4KCShkZWNsX2p1bXBfdW5zYWZlLCBjaGVja19wcmV2aW91c19nb3RvLCBjaGVja19wcmV2aW91c19nb3RvXzEsCgljaGVja19wcmV2aW91c19nb3Rvcyk6IE5ldyBmbnMsCXNwbGl0IG91dCBmcm9tLi4uCgkoZGVmaW5lX2xhYmVsKTogLi4uaGVyZS4KCShjaGVja19zd2l0Y2hfZ290byk6IE5ldyBmbi4KCShkZWZpbmVfY2FzZV9sYWJlbCk6IENhbGwgaXQuCgkoY2hlY2tfZ290byk6IE5ldyBmbi4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9nb3RvX3N0bXQpOiBDYWxsIGl0IGFuZCB1c2VfbGFiZWwuCgkoYmVnaW5fY29tcG91bmRfc3RtdCk6IElmIHdlJ3JlIGEgdHJ5IGJsb2NrLCBjYWxsIG5vdGVfbGV2ZWxfZm9yX2VoLgoJKGV4cGFuZF9zdG10KTogTmV2ZXIgcGFzcyAxIGFzIERPTlRfSlVNUF9JTiB0byBleHBhbmRfZW5kX2JpbmRpbmdzLgoKMjAwMC0wNS0yNiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YWJsZV9lbnRyeV9yZWYpOiBDb3JyZWN0IHVzYWdlIG9mCglnZXRfdnRibF9kZWNsX2Zvcl9iaW5mby4KCgkqIGRlY2wyLmMgKGdyb2tjbGFzc2ZuKTogU2V0IERFQ0xfTEFOR1VBR0UgaGVyZS4KCSogbWV0aG9kLmMgKGltcGxpY2l0bHlfZGVjbGFyZV9mbik6IE5vdCBoZXJlLgoKMjAwMC0wNS0yNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQ1BUSV9QVE1EX0RFU0NfVFlQRSk6IFJlbmFtZSB0byAuLi4KCShDUFRJX1BUTURfREVTQ19UWVBFKTogLi4uIGhlcmUuCgkocHRtZF9kZXNjX3R5cGVfbm9kZSk6IFJlbmFtZSB0byAuLi4KCShwdG1fZGVzY190eXBlX25vZGUpOiAuLi4gaGVyZS4KCSogZGVjbC5jOiBMaWtld2lzZS4KCSogcnR0aS5jIChwdG1kX2luaXRpYWxpemVyKTogUmVuYW1lIHRvIC4uLgoJKHB0bV9pbml0aWFsaXplcik6IC4uLiBoZXJlLgoJKHN5dGhlc2l6ZV90aW5mb192YXIpOiBBZGp1c3QuIERlYWwgd2l0aCBwb2ludGVyIHRvIG1lbWJlcgoJZnVuY3Rpb24uCgkoY3JlYXRlX3RpbmZvX3R5cGVzKTogQWRqdXN0LgoKMjAwMC0wNS0yNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglGaW5pc2ggaW1wbGVtZW50YXRpb24gb2YgVlRUcy4KCSogY3AtdHJlZS5oIChjcF90cmVlX2luZGV4KTogQWRkIENQVElfVlRUX1BBUk1fVFlQRSBhbmQKCUNQVElfVlRUX1BBUk1fSURFTlRJRklFUi4KCSh2dHRfcGFybV9pZGVudGlmaWVyKTogTmV3IG1hY3JvLgoJKHZ0dF9wYXJtX3R5cGUpOiBMaWtld2lzZS4KCShCSU5GT19TVUJWVFRfSU5ERVgpOiBMaWtld2lzZS4KCShCSU5GT19WUFRSX0lOREVYKTogTGlrZXdpc2UuCgkoc3RydWN0IGxhbmdfZGVjbCk6IEFkZCB2dHRfcGFybS4KCShERUNMX1ZUVF9QQVJNKTogTmV3IG1hY3JvLgoJKERFQ0xfVVNFX1ZUVF9QQVJNKTogTGlrZXdpc2UuCgkoREVDTF9ORUVEU19WVFRfUEFSTV9QKTogTGlrZXdpc2UuCgkoZ2V0X3Z0dF9uYW1lKTogRGVjbGFyZS4KCShidWlsZF9hcnRpZmljaWFsX3Bhcm0pOiBMaWtld2lzZS4KCShmaXh1cF9hbGxfdmlydHVhbF91cGNhc3Rfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKGV4cGFuZF9pbmRpcmVjdF92dGJsc19pbml0KTogUmVtb3ZlLgoJKiBjYWxsLmMgKGJ1aWxkX25ld19tZXRob2RfY2FsbCk6IFBhc3MgdGhlIHZ0dCB0byBzdWJvYmplY3QKCWNvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMuCgkqIGNsYXNzLmMgKGdldF92dHRfbmFtZSk6IEdpdmUgaXQgZXh0ZXJuYWwgbGlua2FnZS4KCShidWlsZF9jbG9uZSk6IEhhbmRsZSB0aGUgbWFnaWMgVlRUIHBhcmFtZXRlcnMgZm9yIGNsb25lcy4KCShjbG9uZV9mdW5jdGlvbl9kZWNsKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShidWlsZF92dHQpOiBLZWVwIHRyYWNrIG9mIHRoZSBpbmRpY2VzIGluIHRoZSBWVFRzIHdoZXJlIHZhcmlvdXMKCWVudGl0aWVzIGFyZSBzdG9yZWQuCgkoYnVpbGRfdnR0X2luaXRzKTogTGlrZXdpc2UuCgkoZGZzX2J1aWxkX3Z0dF9pbml0cyk6IExpa2V3aXNlLgoJKGJ1aWxkX2N0b3JfdnRibF9ncm91cCk6IFR3ZWFrIHR5cGUgb2YgY29uc3RydWN0aW9uIHZ0YWJsZXMuCgkoZGZzX2FjY3VtdWxhdGVfdnRibF9pbml0cyk6IEJ1aWxkIHZ0YWJsZXMgZm9yIGFsbCBiYXNlcywgZXZlbgoJcHJpbWFyeSBiYXNlcywgd2hlbiBidWlsZGluZyBjb25zdHJ1Y3Rpb24gdnRhYmxlcy4KCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBIYW5kbGUgREVDTF9WVFRfUEFSTS4KCShpbml0aWFsaXplX3ByZWRlZmluZWRfaWRlbnRpZmllcnMpOiBBZGQgdnR0X3Bhcm1faWRlbnRpZmllci4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IEluaXRpYWxpemUgdnR0X3Bhcm1fdHlwZS4KCShncm9rZm5kZWNsKTogVXNlIERFQ0xfT1ZFUkxPQURFRF9PUEVSQVRPUl9QLgoJKGxhbmdfbWFya190cmVlKTogTWFrZSB2dHRfcGFybS4KCSogZGVjbDIuYyAoYnVpbGRfYXJ0aWZpY2lhbF9wYXJtKTogTmV3IGZ1bmN0aW9uLgoJKG1heWJlX3JldHJvZml0X2luX2NocmcpOiBVc2UgaXQuICBBZGQgVlRUIHBhcmFtZXRlcnMuCgkoZ3Jva2NsYXNzZm4pOiBVc2UgYnVpbGRfYXJ0aWZpY2lhbF9wYXJtLgoJKiBpbml0LmMgKGluaXRpYWxpemVfdnRibF9wdHJzKTogQ2FsbAoJZml4dXBfYWxsX3ZpcnR1YWxfdXBjYXN0X29mZnNldHMgZGlyZWN0bHkuCgkocGVyZm9ybV9tZW1iZXJfaW5pdCk6IFVzZSB0aGUgY29tcGxldGUgc3Vib2JqZWN0IGRlc3RydWN0b3IgZm9yCgltZW1iZXIgY2xlYW51cHMuCgkoYnVpbGRfdnRibF9hZGRyZXNzKTogTmV3IGZ1bmN0aW9uLgoJKGV4cGFuZF92aXJ0dWFsX2luaXQpOiBIYW5kbGUgVlRUcy4KCSogb3B0aW1pemUgKG1heWJlX2Nsb25lX2JvZHkpOiBMaWtld2lzZS4KCSogc2VhcmNoLmMgKGZpeHVwX2FsbF92aXJ0dWFsX3VwY2FzdF9vZmZzZXRzKTogR2l2ZSBpdCBleHRlcm5hbAoJbGlua2FnZS4KCShleHBhbmRfaW5kaXJlY3RfdnRibHNfaW5pdCk6IFJlbW92ZS4KCSogc2VtYW50aWNzLmMgKHNldHVwX3Z0YmxfcHRyKTogRml4IHR5cG9zIGluIGNvbW1lbnQuCgkqIHRyZWUuYyAobWFrZV9iaW5mbyk6IE1ha2UgdGhlbSBiaWdnZXIuCgoyMDAwLTA1LTI1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogaW5jL2N4eGFiaS5oIChfX3BiYXNlX3R5cGVfaW5mbyk6IERlZmluZSwgYmFzZWQgb24KCV9fcG9pbnRlcl90eXBlX2luZm8uCgkoX19wb2ludGVyX3R5cGVfaW5mbyk6IERlcml2ZSBmcm9tIF9fcGJhc2VfdHlwZV9pbmZvLiBBZGp1c3QuCgkoX19wb2ludGVyX3RvX21lbWJlcl90eXBlX2luZm8pOiBMaWtld2lzZS4KCSogdGluZm8yLmNjIChfX3BiYXNlX3R5cGVfaW5mbzo6fl9fcGJhc2VfdHlwZV9pbmZvKTogSW1wbGVtZW50LgoJKF9fcG9pbnRlcl90b19tZW1iZXJfdHlwZV9pbmZvOjpfX2lzX3BvaW50ZXJfcCk6IFJlbW92ZS4KCShfX3BvaW50ZXJfdHlwZV9pbmZvOjpfX2RvX2NhdGNoKTogUmVuYW1lIHRvIC4uLgoJKF9fcGJhc2VfdHlwZV9pbmZvOjpfX2RvX2NhdGNoKTogLi4uIGhlcmUuIEFkanVzdC4KCShfX3BiYXNlX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogSW1wbGVtZW50LgoJKF9fcG9pbnRlcl90eXBlX2luZm86Ol9fcG9pbnRlcl9jYXRjaCk6IEFkanVzdC4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogQWRqdXN0LgoKMjAwMC0wNS0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRpbmZvLmggKF9fdXNlcl90eXBlX2luZm86OmNvbnRhaW5lZF92aXJ0dWFsX3ApOiBOZXcKCXByZWRpY2F0ZS4KCSogdGluZm8uY2MgKF9fdXNlcl90eXBlX2luZm86OmRvX3VwY2FzdCk6IEZpeCBidWcgd2l0aCBkaWFtb25kCglzaGFwZWQgaGllcmFyY2h5LgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6X19kb191cGNhc3QpOiBGaXggYnVnIHdpdGggTlVMTCBwb2ludGVyIHRvCglkaWFtb25kIHNoYXBlZCBoaWVyYXJjaHkuIEFkZCBlYXJseSBvdXQgZm9yIG1peGVkIGRpYW1vbmQgYW5kCglkdXBsaWNhdGUgc2hhcGVkIGhpZXJhcmNoeS4KCjIwMDAtMDUtMjQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGJ1aWxkX2RlbGV0ZSk6IENoYW5nZSBwcm90b3R5cGUuCgkoYnVpbGRfdmVjX2RlbGV0ZSk6IExpa2V3aXNlLgoJKiBjYWxsLmMgKGJ1aWxkX3Njb3BlZF9tZXRob2RfY2FsbCk6IFVzZSBzcGVjaWFsX2Z1bmN0aW9uX2tpbmQKCXZhbHVlcyB0byBpbmRpY2F0ZSB0aGUga2luZCBvZiBkZXN0cnVjdGlvbiB0byBiZSBkb25lLgoJKGJ1aWxkX21ldGhvZF9jYWxsKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoZmluaXNoX2Rlc3RydWN0b3JfYm9keSk6IExpa2V3aXNlLgoJKG1heWJlX2J1aWxkX2NsZWFudXBfMSk6IExpa2V3aXNlLiAgUmVuYW1lIHRvIC4uLgoJKG1heWJlX2J1aWxkX2NsZWFudXApOiAuLi4gdGhpcy4KCSogZGVjbDIuYyAoZGVsZXRlX3Nhbml0eSk6IFVzZSBzcGVjaWFsX2Z1bmN0aW9uX2tpbmQKCXZhbHVlcyB0byBpbmRpY2F0ZSB0aGUga2luZCBvZiBkZXN0cnVjdGlvbiB0byBiZSBkb25lLgoJKGJ1aWxkX2NsZWFudXApOiBMaWtld2lzZS4KCSogaW5pdC5jIChwZXJmb3JtX21lbWJlcl9pbml0KTogTGlrZXdpc2UuCgkoYnVpbGRfdmVjX2RlbGV0ZV8xKTogTGlrZXdpc2UuCgkoYnVpbGRfZHRvcl9jYWxsKTogU2ltcGxpZnkuCgkoYnVpbGRfZGVsZXRlKTogVXNlIHNwZWNpYWxfZnVuY3Rpb25fa2luZAoJdmFsdWVzIHRvIGluZGljYXRlIHRoZSBraW5kIG9mIGRlc3RydWN0aW9uIHRvIGJlIGRvbmUuCgkoYnVpbGRfdmJhc2VfZGVsZXRlKTogTGlrZXdpc2UuCgkoYnVpbGRfdmVjX2RlbGV0ZSk6IExpa2V3aXNlLgoKCSogaW5pdC5jIChzb3J0X21lbWJlcl9pbml0KTogRml4IHR5cG8gaW4gZXJyb3IgbWVzc2FnZSBnZW5lcmF0aW9uCgljb2RlLgoKMjAwMC0wNS0xNSAgRG9uYWxkIExpbmRzYXkgIDxkbGluZHNheUBjeWdudXMuY29tPgoKCSogc2VtYW50aWNzLmMgKGJlZ2luX2NsYXNzX2RlZmluaXRpb24pOiBtYWtlIHRoZSBwYWNrZWQKCWF0dHJpYnV0ZSBiZSBzZW5zaXRpdmUgdG8gdGhlICItZnBhY2stc3RydWN0IiBjb21tYW5kIGxpbmUgZmxhZwoKMjAwMC0wNS0yNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglVcGRhdGUgbmV3LWFiaSB1cGNhc3QgYWxnb3JpdGhtLgoJKiBpbmMvY3h4YWJpLmggKF9fY2xhc3NfdHlwZV9pbmZvOjpfX2RvX3VwY2FzdCk6IENoYW5nZQoJcHJvdG90eXBlIGFuZCBtZWFuaW5nIG9mIHJldHVybiB2YWx1ZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6X19kb191cGNhc3QpOiBMaWtld2lzZS4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86Ol9fZG9fdXBjYXN0KTogTGlrZXdpc2UuCgkqIHRpbmZvLmNjIChfX2NsYXNzX3R5cGVfaW5mbzo6X191cGNhc3RfcmVzdWx0KTogUmVwbGFjZQoJd2hvbGUyZHN0IHdpdGggcGFydDJkc3QuIEFkanVzdCBjdG9yLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpfX2RvX3VwY2FzdCk6IEFkanVzdCBjYWxsIG9mIHdvcmtlciBmdW5jdGlvbi4KCShfX2NsYXNzX3R5cGVfaW5mbzo6X19kb191cGNhc3QpOiBBZGp1c3QuCgkoX19zaV9jbGFzc190eXBlX2luZm86Ol9fZG9fdXBjYXN0KTogQWRqdXN0LiBVc2UgcGFyZW50J3MKCV9fZG9fdXBjYXN0LgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6X19kb191cGNhc3QpOiBMaWtld2lzZS4gRml4IHByaXZhdGUKCXZpcnR1YWwgYmFzZSBpbiBkaWFtb25kIGhpZXJhcmNoeSBidWcuCgoyMDAwLTA1LTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChsYW5nX2RlY2xfZmxhZ3MpOiBSZW5hbWUgbXV0YWJsZV9mbGFnIHRvIHVuaW5saW5hYmxlCglhbmQgYml0ZmllbGQgdG8gdGluZm9fZm5fcC4KCShERUNMX1RJTkZPX0ZOX1ApOiBBZGp1c3QuCgkoU0VUX0RFQ0xfVElORk9fRk5fUCk6IExpa2V3aXNlLgoJKERFQ0xfTVVUQUJMRV9QKTogTGlrZXdpc2UuCgkoREVDTF9DX0JJVF9GSUVMRCk6IExpa2V3aXNlLgoJKFNFVF9ERUNMX0NfQklUX0ZJRUxEKTogTGlrZXdpc2UuCgkoQ0xFQVJfREVDTF9DX0JJVF9GSUVMRCk6IExpa2V3aXNlLgoJKERFQ0xfVU5JTkxJTkFCTEUpOiBMaWtld2lzZS4KCSogY2xhc3MuYyAoYWx0ZXJfYWNjZXNzKTogQ2FsbCByZXRyb2ZpdF9sYW5nX2RlY2wgaWYgbmNlc3NhcnkuCgkoaGFuZGxlX3VzaW5nX2RlY2wpOiBSZW1vdmUgYXNzZXJ0aW9uLgoJKGJ1aWxkX3Z0Ymxfb3JfdmJhc2VfZmllbGQpOiBVc2UgYnVpbGRfZGVjbCwgbm90IGJ1aWxkX2xhbmdfZGVjbCwKCXRvIGJ1aWxkIEZJRUxEX0RFQ0xzLgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBMaWtld2lzZS4KCShsYXlvdXRfY2xhc3NfdHlwZSk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogTGlrZXdpc2UuCgkoYnVpbGRfcHRybWVtZnVuY190eXBlKTogTGlrZXdpc2UuCgkoZ3Jva2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCSogZGVjbDIuYyAoZ3Jva194X2NvbXBvbmVudHMpOiBMaWtld2lzZS4KCSogZXhjZXB0LmMgKGNhbGxfZWhfaW5mbyk6IExpa2V3aXNlLgoJKiBpbml0LmMgKGluaXRfaW5pdF9wcm9jZXNzaW5nKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoZXhwYW5kX2NsYXNzX2Rlc2MpOiBMaWtld2lzZS4KCShjcmVhdGVfcHNldWRvX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKGdldF92bWlfcHNldWRvX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKGNyZWF0ZV90aW5mb190eXBlcyk6IExpa2V3aXNlLgoJKiBwdHJlZS5jIChwcmludF9sYW5nX2RlY2wpOiBBZGp1c3QuCgkqIHR5cGVjay5jIChidWlsZF9jb21wb25lbnRfcmVmKTogRG9uJ3QgY2hlY2sgREVDTF9MQU5HX1NQRUNJRklDCgliZWZvcmUgY2hlY2tpbmcgREVDTF9NVVRBQkxFX1AuCgoJKiBkZWNsMi5jIChtYXliZV9yZXRyb2ZpdF9pbl9jaHJnKTogRG9uJ3QgY3JlYXRlIGluLWNoYXJnZQoJcGFyYW1ldGVycyBmb3IgdGVtcGxhdGUgZnVuY3Rpb25zLgoJKiBwdC5jICh0c3Vic3RfZGVjbCk6IE1ha2Ugc3VyZSB3ZSBjYWxsIG1heWJlX3JldHJvZml0X2luX2NocmcgZm9yCglkZXN0cnVjdG9ycyBhcyB3ZWxsIGFzIGNvbnN0cnVjdG9ycy4KCjIwMDAtMDUtMjIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChidWlsZF9jdG9yX3Z0YmxfZ3JvdXApOiBTZXQgaW5pdHMuCgkqIG9wdGltaXplLmMgKG1heWJlX2Nsb25lX2JvZHkpOiBTZXQgREVDTF9JTkxJTkUgYW5kCglERUNMX1RISVNfSU5MSU5FIGFwcHJvcHJpYXRlbHkgZm9yIGNsb25lcy4KCgkqIGNwLXRyZWUuaCAoSURFTlRJRklFUl9UWVBFTkFNRV9QKTogVXNlIGEgZmxhZywgbm90IHN0cm5jbXAuCgkoREVDTF9DT05WX0ZOX1ApOiBTaW1wbGlmeS4KCShERUNMX09QRVJBVE9SKTogUmVtb3ZlLgoJKGxhbmd1YWdlX3RvX3N0cmluZyk6IERlY2xhcmUuCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShncm9rZGVjbGFyYXRvcik6IEFkanVzdCB1c2Ugb2YgSURFTlRJRklFUl9UWVBFTkFNRV9QLgoJKGdyb2tfb3BfcHJvcGVydGllcyk6IFVzZSBERUNMX0NPTlZfRk5fUCBpbnN0ZWFkIG9mCglJREVOVElGSUVSX1RZUEVOQU1FX1AuCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IER1bXAgdGhlIGxhbmd1YWdlIGxpbmthZ2Ugb2YKCWRlY2xhcmF0aW9ucy4KCSogZXJyb3IuYyAobGFuZ3VhZ2VfdG9fc3RyaW5nKTogR2l2ZSBpdCBleHRlcm5hbCBsaW5rYWdlLgoJKiBtZXRob2QuYyAoYnVpbGRfdHlwZW5hbWVfb3ZlcmxvYWQpOiBTZXQgSURFTlRJRklFUl9UWVBFTkFNRV9QLgoJKGltcGxpY2l0bHlfZGVjbGFyZV9mbik6IFNldCBERUNMX0xBTkdVQUdFLgoJKiBwdC5jIChjaGVja19leHBsaWNpdF9zcGVjaWFsaXphdGlvbik6IFVzZSBERUNMX0NPTlZfRk5fUCwgbm90CglJREVOVElGSUVSX1RZUEVOQU1FX1AuCgkodHN1YnN0X2RlY2wpOiBMaWtld2lzZS4KCSh0c3Vic3RfY29weSk6IEFkanVzdCB1c2Ugb2YgSURFTlRJRklFUl9UWVBFTkFNRV9QLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX21lbWJlcl9kZWNsYXJhdGlvbik6IERvbid0IG1hcmsgbWVtYmVycyBvZgoJY2xhc3NlcyBkZWNsYXJlZCBpbiBhbiBleHRlcm4gIkMiIHJlZ2lvbiBhcyBleHRlcm4gIkMiLgoKMjAwMC0wNS0yMiAgTWFydGluIHYuIEz2d2lzICA8bG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlPgoKCSogZGVjbDIuYyAocXVhbGlmaWVkX2xvb2t1cF91c2luZ19uYW1lc3BhY2UpOiBMb29rIHRocm91Z2gKCW5hbWVzcGFjZSBhbGlhc2VzLgoKCSogZGVjbC5jIChwdXNoX3VzaW5nX2RlY2wpOiBSZXR1cm4gdGhlIG9sZCBkZWNsIG9uIG5hbWVzcGFjZSBsZXZlbC4KCjIwMDAtMDUtMjEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKFNFVF9CSU5GT19ORVdfVlRBQkxFX01BUktFRCk6IEFkZCBzYW5pdHkgY2hlY2tzLgoJKFZUVF9OQU1FX1BSRUZJWCk6IE5ldyBtYWNyby4KCShDVE9SX1ZUQkxfTkFNRV9QUkVGSVgpOiBMaWtld2lzZS4KCShnZXRfY3Rvcl92dGJsX25hbWUpOiBOZXcgZnVuY3Rpb24uCgkqIGNsYXNzLmMgKGdldF92dGFibGVfbmFtZSk6IFNpbXBsaWZ5LgoJKGdldF92dHRfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCShnZXRfdnRhYmxlX2RlY2wpOiBEb24ndCBzZXQgSURFTlRJRklFUl9HTE9CQUxfVkFMVUUuCgkoZGZzX21hcmtfcHJpbWFyeV9iYXNlcyk6IFVwZGF0ZSB0aGUgQ0xBU1NUWVBFX1ZCQVNFQ0xBU1NFUyBsaXN0Cgl3aGVuIGEgdmlydHVhbCBiYXNlIGJlY29tZXMgcHJpbWFyeS4KCShmaW5pc2hfc3RydWN0XzEpOiBTZXQgQ0xBU1NUWVBFX1ZGSUVMRFMgYSBsaXR0bGUgZWFybGllci4gIEJ1aWxkCglWVFRzLgoJKGZpbmlzaF92dGJscyk6IEFkanVzdCBjYWxscyB0byBhY2N1bXVsYXRlX3Z0YmxfaW5pdHMgdG8gcGFzcyBpbgoJYWRkaXRpb25hbCBwYXJhbWV0ZXJzLgoJKGRmc19maW5pc2hfdnRibHMpOiBEb24ndCBjbGVhciBCSU5GT19ORVdfVlRBQkxFX01BUktFRC4KCShpbml0aWFsaXplX2FycmF5KTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX3Z0dCk6IExpa2V3aXNlLgoJKGJ1aWxkX3Z0dF9pbml0cyk6IExpa2V3aXNlLgoJKGRmc19idWlsZF92dHRfaW5pdHMpOiBMaWtld2lzZS4KCShkZnNfZml4dXBfYmluZm9fdnRibHMpOiBMaWtld2lzZS4KCShidWlsZF9jdG9yX3Z0YmxfZ3JvdXApOiBMaWtld2lzZS4KCShpbml0aWFsaXplX3Z0YWJsZSk6IFVzZSBpbml0aWFsaXplX2FycmF5LgoJKGFjY3VtdWxhdGVfdnRibF9pbml0cyk6IFJlaW1wbGVtZW50IHRvIGhhbmRsZSBjb25zdHJ1Y3Rpb24KCXZ0YWJsZXMuCgkoZGZzX2FjY3VtdWxhdGVfdnRibF9pbml0cyk6IExpa2V3aXNlLgoJKGJ1bGlkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBBZGp1c3QgcGFyYW1ldGVyIG5hbWUuCgkqIG1ldGhvZC5jIChidWlsZF90eXBlbmFtZV9vdmVybG9hZCk6IFJlbW92ZSAjaWYgMCdkIGNvZGUuCgkoZ2V0X2N0b3JfdnRibF9uYW1lKTogTmV3IGZ1bmN0aW9uLgoJKiBzZWFyY2guYyAoZGZzX3dhbGtfcmVhbCk6IFVzZSBCSU5GT19OX0JBU0VUWVBFUy4KCShpbml0X3ZiYXNlX3BvaW50ZXJzKTogRG9uJ3QgbWVzcyB3aXRoIHRoZSBUUkVFX0NIQUlOIG9mIGEgYmluZm8uCgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5nX3R5cGUpOiBSZW1vdmUgc2VhcmNoX3Nsb3QuCgkoQ0xBU1NUWVBFX1NFQVJDSF9TTE9UKTogUmVtb3ZlLgoJKGVtaXRfYmFzZV9pbml0KTogQ2hhbmdlIHByb3RvdHlwZS4KCShpbml0aWFsaXplX3Z0YmxfcHRycyk6IExpa2V3aXNlLgoJKGV4cGFuZF9pbmRpcmVjdF92dGJsc19pbml0KTogTGlrZXdpc2UuCgkoY2xlYXJfc2VhcmNoX3Nsb3RzKTogUmVtb3ZlLgoJKiBkZWNsLmMgKGxhbmdfbWFya190cmVlKTogRG9uJ3QgbWFyayBzZWFyY2hfc2xvdC4KCSogaW5pdC5jIChpbml0aWFsaXplX3Z0YmxfcHRycyk6IFNpbXBsaWZ5LgoJKGVtaXRfYmFzZV9pbml0KTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChzdHJ1Y3QgdmJhc2VfaW5mbyk6IERvY3VtZW50IGRlY2xfcHRyLgoJKGNvbnZlcnRfcG9pbnRlcl90b19zaW5nbGVfbGV2ZWwpOiBSZW1vdmUuCgkoZGZzX2ZpbmRfdmJhc2VzKTogUmVtb3ZlLgoJKGRmc19pbml0X2Jhc2VfcG9pbnRlcnMpOiBTaW1wbGlmeS4KCShkZnNfY2xlYXJfdmJhc2Vfc2xvdHMpOiBSZW1vdmUuCgkoZGZzX3Z0YWJsZV9wYXRoX3VubWFyayk6IE5ldyBmdW5jdGlvbi4KCShpbml0X3ZiYXNlX3BvaW50ZXJzKTogU2ltcGxpZnkuCgkoZXhwYW5kX3VwY2FzdF9maXh1cHMpOiBEb24ndCByZWx5IG9uIENMQVNTVFlQRV9TRUFSQ0hfU0xPVC4KCShleHBhbmRfaW5kaXJlY3RfdnRibHNfaW5pdCk6IFNpbXBsaWZ5LiAgRG9uJ3QgY2FsbAoJbWFya19hbGxfdGVtcHNfdXNlZC4KCSogc2VtYW50aWNzLmMgKHNldHVwX3Z0YmxfcHRyKTogQWRqdXN0IGNhbGxzIHRvIGVtaXRfYmFzZV9pbml0IGFuZAoJaW5pdGlhbGl6ZV92dGJsX3B0cnMuCgoyMDAwLTA1LTIwICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuY3VtYi5vcmc+CgoJKiBleGNlcHQuYzogQWRkIHN0YXRpYyBwcm90b3R5cGVzLgoKMjAwMC0wNS0yMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogTWFrZS1sYW5nLmluIChjcGxpYjIucmVhZHkpOiBBbHNvIGRlcGVuZCBvbiBjYzFwbHVzJChleGVleHQpLgoKMjAwMC0wNS0xOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglEb24ndCBjcmVhdGUgYSBzZXBhcmF0ZSBjb3B5IG9mIHZpcnR1YWwgYmFzZXMgZm9yIHRoZQoJQ0xBU1NUWVBFX1ZCQVNFQ0xBU1NFUyBsaXN0LgoJKiBjcC10cmVlLmggKENMQVNTVFlQRV9WQkFTRUNMQVNTRVMpOiBDaGFuZ2UgZG9jdW1lbnRhdGlvbi4KCShCSU5GT19GT1JfVkJBU0UpOiBSZW1vdmUuCgkoQ0FOT05JQ0FMX0JJTkZPKTogQWRqdXN0LgoJKGJpbmZvX2Zvcl92YmFzZSk6IE5ldyBmdW5jdGlvbi4KCSogY2xhc3MuYyAoYnVpbGRfdmJhc2VfcG9pbnRlcl9maWVsZHMpOiBVc2UgYmluZm9fZm9yX3ZiYXNlCglpbnN0ZWFkIG9mIEJJTkZPX0ZPUl9WQkFTRS4KCShidWlsZF92YmFzZV9wb2ludGVyKTogTGlrZXdpc2UuCgkoYnVpbGRfc2Vjb25kYXJ5X3Z0YWJsZSk6IExpa2V3aXNlLgoJKGRmc19tYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCShtYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCShsYXlvdXRfbm9uZW1wdHlfYmFzZV9vcl9maWVsZCk6IExpa2V3aXNlLgoJKGRmc19zZXRfb2Zmc2V0X2Zvcl9zaGFyZWRfdmJhc2VzKTogTGlrZXdpc2UuCgkoZGZzX3NldF9vZmZzZXRfZm9yX3Vuc2hhcmVkX3ZiYXNlcyk6IExpa2V3aXNlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogTGlrZXdpc2UuICBBZGp1c3QgZm9yIGNoYW5nZXMgdG8gdGhlCglDTEFTU1RZUEVfVkJBU0VDTEFTU0VTIGxpc3QuCgkoZHVtcF9jbGFzc19oaWVyYXJjaHlfcik6IFVzZSBiaW5mb19mb3JfdmJhc2UKCWluc3RlYWQgb2YgQklORk9fRk9SX1ZCQVNFLgoJKGR1bXBfY2xhc3NfaGllcmFyY2h5KTogTGlrZXdpc2UuCgkoZmluaXNoX3Z0YmxzKTogTGlrZXdpc2UuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IEFkanVzdCBmb3IgY2hhbmdlcyB0byB0aGUKCUNMQVNTVFlQRV9WQkFTRUNMQVNTRVMgbGlzdC4KCShidWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogVXNlIGJpbmZvX2Zvcl92YmFzZS4KCSogZGVjbC5jIChmaW5pc2hfZGVzdHJ1Y3Rvcl9ib2R5KTogQWRqdXN0IGZvciBjaGFuZ2VzIHRvIHRoZQoJQ0xBU1NUWVBFX1ZCQVNFQ0xBU1NFUyBsaXN0LgoJKiBpbml0LmMgKHNvcnRfYmFzZV9pbml0KTogVXNlIGJpbmZvX2Zvcl92YmFzZS4KCShjb25zdHJ1Y3RfdmlydHVhbF9iYXNlcyk6IEFkanVzdCBmb3IgY2hhbmdlcyB0byB0aGUKCUNMQVNTVFlQRV9WQkFTRUNMQVNTRVMgbGlzdC4KCShleHBhbmRfbWVtYmVyX2luaXQpOiBVc2UgYmluZm9fZm9yX3ZiYXNlLgoJKGJ1aWxkX3ZiYXNlX2RlbGV0ZSk6ICBBZGp1c3QgZm9yIGNoYW5nZXMgdG8gdGhlCglDTEFTU1RZUEVfVkJBU0VDTEFTU0VTIGxpc3QuCgkqIG1ldGhvZC5jIChkb19idWlsZF9jb3B5X2NvbnN0cnVjdG9yKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoZ2V0X2Jhc2Vfb2Zmc2V0KTogVXNlIGJpbmZvX2Zvcl92YmFzZS4KCShleHBhbmRfY2xhc3NfZGVzYyk6IFJlbW92ZSAjaWYgMCdkIGNvZGUuCgkqIHNlYXJjaC5jIChzdHJ1Y3QgdmJhc2VfaW5mbyk6IFJlbW92ZSB2YmFzZV90eXBlcy4KCShnZXRfYmFzZV9kaXN0YW5jZSk6ICBVc2UgYmluZm9fZm9yX3ZiYXNlLgoJKGxvb2t1cF9maWVsZF9xdWV1ZV9wKTogVXNlIENBTk9OSUNBTF9CSU5GTy4KCShnZXRfc2hhcmVkX3ZiYXNlX2lmX25vdF9wcmltYXJ5KTogVXNlIGJpbmZvX2Zvcl92YmFzZS4KCShnZXRfcHVyZV92aXJ0dWFscyk6IEFkanVzdCBmb3IgY2hhbmdlcyB0byB0aGUKCUNMQVNTVFlQRV9WQkFTRUNMQVNTRVMgbGlzdC4KCShkZnNfZmluZF92YmFzZXMpOiBVc2UgYmluZm9fZm9yX3ZiYXNlLgoJKGRmc19pbml0X3ZiYXNlX3BvaW50ZXJzKTogTGlrZXdpc2UuCgkoaW5pdF92YmFzZV9wb2ludGVycyk6IERvbid0IGluaXRpYWxpemUgdmkudmJhc2VfdHlwZXMuCgkodmlydHVhbF9jb250ZXh0KTogVXNlIGJpbmZvX2Zvcl92YmFzZS4KCShmaXh1cF9hbGxfdmlydHVhbF91cGNhc3Rfb2Zmc2V0cyk6IEFkanVzdCBmb3IgY2hhbmdlcyB0byB0aGUKCUNMQVNTVFlQRV9WQkFTRUNMQVNTRVMgbGlzdC4KCShleHBhbmRfaW5kaXJlY3RfdnRibHNfaW5pdCk6IFNpbXBsaWZ5LgoJKGRmc19nZXRfdmJhc2VfdHlwZXMpOiBEb24ndCByZXBsaWNhdGUgdmlydHVhbCBiYXNlcy4KCShmaW5kX3ZiYXNlX2luc3RhbmNlKTogVXNlIGJpbmZvX2Zvcl92YmFzZS4KCShiaW5mb19mb3JfdmJhc2UpOiBOZXcgZnVuY3Rpb24uCgkqIHR5cGVjay5jIChnZXRfZGVsdGFfZGlmZmVyZW5jZSk6IFVzZSBiaW5mb19mb3JfdmJhc2UuCgoyMDAwLTA1LTE3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoZmluaXNoX2Fub25fdW5pb24pOiBHZW5lcmFsaXplIGVycm9yIG1lc3NhZ2VzIHRvIGhhbmRsZQoJYW5vbnltb3VzIHN0cnVjdHVyZXMuCgkqIGluaXQuYyAocGVyZm9ybV9tZW1iZXJfaW5pdCk6IFJlbW92ZSBgbmFtZScgcGFyYW1ldGVyLgoJKGJ1aWxkX2ZpZWxkX2xpc3QpOiBOZXcgZnVuY3Rpb24uCgkoc29ydF9tZW1iZXJfaW5pdCk6IEhhbmRsZSBhbm9ueW1vdXMgdW5pb24gaW5pdGlhbGl6YXRpb24gb3JkZXIKCWNvcnJlY3RseS4gIENoZWNrIGZvciBtdWx0aXBsZSBpbml0aWFsaXphdGlvbnMgb2YgdGhlIHNhbWUgdW5pb24uCgkoZW1pdF9iYXNlX2luaXQpOiBEb24ndCBsb29rIHVwIGZpZWxkcyBieSBuYW1lIGhlcmUuCgkoZXhwYW5kX21lbWJlcl9pbml0KTogUmVjb3JkIHRoZSByZXN1bHQgb2YgbmFtZSBsb29rdXAgZm9yIGZ1dHVyZQoJcmVmZXJlbmNlLgoJKiB0eXBlY2suYyAoYnVpbGRfY29tcG9uZW50X3JlZik6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0wNS0xNyAgQW5kcmV3IENhZ25leSAgPGNhZ25leUBiMS5jeWdudXMuY29tPgoKCSogZGVjbC5jIChwb3BfbGFiZWwpOiBSZXBsYWNlIHdhcm5fdW51c2VkIHdpdGggd2Fybl91bnVzZWRfbGFiZWwuCgkqIHR5cGVjay5jIChidWlsZF94X2NvbXBvdW5kX2V4cHIpOiBSZXBsYWNlIHdhcm5fdW51c2VkIHdpdGgKCXdhcm5fdW51c2VkX3ZhbHVlLgoKCSogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogVXBkYXRlIC1XYWxsIHVudXNlZCBmbGFncyBieQoJY2FsbGluZyBzZXRfV3VudXNlZC4KCjIwMDAtMDUtMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlaCAoQklORk9fTkVXX1ZUQUJMRV9NQVJLRUQpOiBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCSogaW5pdC5jIChkZnNfdnRhYmxlX3BhdGhfdW5tYXJrKTogUmVtb3ZlLgoJKiBzZWFyY2guYyAobWFya2VkX25ld192dGFibGVfcCk6IExpa2V3aXNlLgoJKHVubWFya2VkX25ld192dGFibGVfcCk6IExpa2V3aXNlLgoJKGRmc19zZWFyY2hfc2xvdF9ub25lbXB0eV9wKTogTGlrZXdpc2UuCgkoZGZzX21hcmspOiBMaWtld2lzZS4KCShkZnNfdnRhYmxlX3BhdGhfdW5tYXJrKTogTGlrZXdpc2UuCgkoZGZzX2ZpbmRfdmJhc2VzKTogRG9uJ3Qgc2V0IEJJTkZPX05FV19WVEFCTEVfTUFSS0VELgoJKGRmc19pbnRfdmJhc2VfcG9pbnRlcnMpOiBEb24ndCBjbGVhciBCSU5GT19WVEFCTEVfUEFUSF9NQVJLRUQuCgkoZGZzX2luaXRfdmJhc2VfcG9pbnRlcnMpOiBSZW1vdmUgc3BlY2lhbC1jYXNlIG5ldyBBQkkgY29kZS4KCShkZnNfY2xlYXJfdmJhc2Vfc2xvdHMpOiBEb24ndCBjbGVhciBCSU5GT19ORVdfVlRBQkxFX01BUktFRC4KCShpbml0X3ZiYXNlX3BvaW50ZXJzKTogU2ltcGxpZnkuCgkoZXhwYW5kX2luZGlyZWN0X3Z0YmxzX2luaXQpOiBMaWtld2lzZS4KCgkqIGNsYXNzLmMgKGNvcHlfdmlydHVhbHMpOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfcHJpbWFyeV90YWJsZSk6IFVzZSBpdC4KCShidWlsZF9zZWNvbmRhcnlfdnRhYmxlKTogTGlrZXdpc2UuCgkobW9kaWZ5X3Z0YWJsZV9lbnRyeSk6IFVzZSBOVUxMX1RSRUUsIG5vdCBpbnRlZ2VyX3plcm9fbm9kZSwgdG8KCWluZGljYXRlIHRoYXQgbm8gdmNhbGwgb2Zmc2V0IGlzIHJlcXVpcmVkLgoJKGFkZF92aXJ0dWFsX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkobW9kaWZ5X2FsbF92dGFibGVzKTogTGlrZXdpc2UuCgkoZGZzX2ZpbmlzaF92dGJscyk6IEFkanVzdCBjYWxsIHRvIGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIuCgkoZGZzX2FjY3VtdWxhdGVfdnRibF9pbml0cyk6IExpa2V3aXNlLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBNYWtlIGNoYW5nZXMgdG8gaGFuZGxlIGNvbnN0cnVjdGlvbgoJdnRhYmxlcy4KCShkZnNfYnVpbGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IExpa2V3aXNlLgoJKGJ1aWxkX3J0dGlfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkoYnVpbGRfdnRhYmxlX2VudHJpZXMpOiBIYW5kbGUgYSBOVUxMIHZjYWxsX2luZGV4LgoKMjAwMC0wNS0xNSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogRml4IHRoaW5rby4KCjIwMDAtMDUtMTQgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogZXhjZXB0LmMgKGNoZWNrX2hhbmRsZXJzKTogTmV3IGZuLgoJKiBjcC10cmVlLmg6IERlY2xhcmUgaXQuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfaGFuZGxlcl9zZXF1ZW5jZSk6IENhbGwgaXQuCgkoZmluaXNoX2Z1bmN0aW9uX2hhbmRsZXJfc2VxdWVuY2UpOiBMaWtld2lzZS4KCShmaW5pc2hfaGFuZGxlcl9wYXJtcyk6IFNldCBUUkVFX1RZUEUgb24gdGhlIGhhbmRsZXIuCgkqIGNwLXRyZWUuaCAoUFVCTElDTFlfVU5JUVVFTFlfREVSSVZFRF9QKTogTmV3IG1hY3JvLgoJKiBzZWFyY2guYyAoZ2V0X2Jhc2VfZGlzdGFuY2VfcmVjdXJzaXZlKTogSWYgcHJvdGVjdD4xLCBpZ25vcmUKCXNwZWNpYWwgYWNjZXNzLgoJKGdldF9iYXNlX2Rpc3RhbmNlKTogRG9uJ3QgcmVkdWNlIHdhdGNoX2FjY2Vzcy4KCjIwMDAtMDUtMTMgIEdhYnJpZWwgRG9zIFJlaXMgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogbGV4LmM6ICNpbmNsdWRlIGRpYWdub3N0aWMuaC4KCShsYW5nX2luaXRfb3B0aW9ucyk6IFNldCBkZWZhdWx0IHByZWZpeGluZyBydWxlcy4KCgkqIGxhbmctb3B0aW9ucy5oOiBBZGQgLWZkaWFnbm9zdGljcy1zaG93LWxvY2F0aW9uPS4KCgkqIGRlY2wyLmM6ICNpbmNsdWRlIGRpYWdub3N0aWMuaC4KCShsYW5nX2RlY29kZV9vcHRpb24pOiBIYW5kbGUgLWZkaWFnbm9zdGljcy1zaG93LWxvY2F0aW9uPS4KCjIwMDAtMDUtMTIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0aW5mby5jYzogUmV2ZXJ0IG15IDIwMDAtMDUtMDggYW5kIDIwMDAtMDUtMDcgY2hhbmdlcy4KCSogdmVjLmNjOiBSZXZlcnQgbXkgMjAwMC0wNS0wNyBjaGFuZ2UuCgoyMDAwLTA1LTExICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGNsYXNzLmMgKGNoZWNrX2ZpZWxkX2RlY2xzKTogQ29tcGxhaW4gYWJvdXQgbm9uLXN0YXRpYyBkYXRhCgltZW1iZXJzIHdpdGggc2FtZSBuYW1lIGFzIGNsYXNzIGluIGNsYXNzIHdpdGggY29uc3RydWN0b3IuCgoyMDAwLTA1LTEwICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBBbGxvdyBub24tc3RhdGljIGRhdGEgbWVtYmVycyB3aXRoCglzYW1lIG5hbWUgYXMgY2xhc3MuCgoyMDAwLTA1LTA5ICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuY3VtYi5vcmc+CgoJKiBjcC10cmVlLmg6IENvbnN0aWZ5IHRyZWVfc3JjbG9jLmZpbGVuYW1lLCB0aW5zdF9sZXZlbC5maWxlLAoJYW5kIHBlbmRpbmdfaW5saW5lLmZpbGVuYW1lLiAgVXBkYXRlIHByb3RvdHlwZXMuCgkqIGRlY2wuYyAoZGVmaW5lX2xhYmVsKTogQ29uc3RpZnkgZmlsZW5hbWUgcGFyYW1ldGVyLgoJKiBkZWNsMi5jICh3YXJuX2lmX3Vua25vd25faW50ZXJmYWNlKTogQ29uc3RpZnkgbG9jYWwgY2hhciAqLgoJKiBpbnB1dC5jIENvbnN0aWZ5IGlucHV0X3NvdXJjZS5maWxlbmFtZS4gRG9uJ3QgZGVjbGFyZQoJaW5wdXRfZmlsZW5hbWUgb3IgbGluZW5vLiAgQ29uc3RpZnkgZmlsZW5hbWUgcGFyYW1ldGVyIHRvIGZlZWRfaW5wdXQuCgkqIGxleC5jIChpbml0X3BhcnNlKTogQ29uc3RpZnkgcGFyYW1ldGVyIGFuZCByZXR1cm4gdmFsdWUuCgkoY3BfcHJhZ21hX2ludGVyZmFjZSwgY3BfcHJhZ21hX2ltcGxlbWVudGF0aW9uKTogQ29uc3RpZnkKCWZpbGVuYW1lIGFyZ3VtZW50LgoJKHJlaW5pdF9wYXJzZV9mb3JfbWV0aG9kLCByZWluaXRfcGFyc2VfZm9yX2Jsb2NrLAoJcmVpbml0X3BhcnNlX2Zvcl9leHByLCBmZWVkX2RlZmFyZywgaGFuZGxlX2NwX3ByYWdtYSk6CglDb25zdGlmeSBsb2NhbCBjaGFyICouCgkqIHB0LmM6IERvbid0IGRlY2xhcmUgbGluZW5vIG9yIGlucHV0X2ZpbGVuYW1lLgoJKHByaW50X3RlbXBsYXRlX2NvbnRleHQsIHRzdWJzdF9mcmllbmRfZnVuY3Rpb24sIHRzdWJzdF9kZWNsLAoJdHN1YnN0LCBpbnN0YW50aWF0ZV9kZWNsKTogQ29uc3RpZnkgbG9jYWwgY2hhciAqLgoJKiBzZW1hbnRpY3MuYyAoZXhwYW5kX2JvZHkpOiBDb25zdGlmeSBsb2NhbCBjaGFyICouCgkqIHRyZWUuYyAoYnVpbGRfc3JjbG9jKTogQ29uc3RpZnkgZmlsZW5hbWUgcGFyYW1ldGVyLgoJKiB0eXBlY2suYyAoY19leHBhbmRfYXNtX29wZXJhbmRzKTogQ29uc3RpZnkgZmlsZW5hbWUKCXBhcmFtZXRlci4KCjIwMDAtMDUtMDggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0aW5mby5jYyAoX19keW5hbWljX2Nhc3QpOiBVc2UgYSByZWludGVycHJldF9jYXN0LiBGaXgKCW9mZnNldG9mIGV4cGFuc2lvbi4KCjIwMDAtMDUtMDggIEJyYW5rbyBDaWJlaiAgPGJyYW5rby5jaWJlakBoZXJtZXMuc2k+CgoJKiBpbmMvY3h4YWJpLmg6ICBGaXggdHlwb3MgaW4gY29tbWVudC4KCShfX2Jhc2VfY2xhc3NfaW5mbzo6X19vZmZzZXQpOiBVc2UgYSBzdGF0aWNfY2FzdC4KCjIwMDAtMDUtMDcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbmMvY3h4YWJpLmg6IFVzZSBfX1NJWkVfVFlQRV8gYW5kIF9fUFRSRElGRl9UWVBFX18gaW4gcGxhY2UKCW9mIHN0ZDo6c2l6ZV90IGFuZCBzdGQ6OnB0cmRpZmZfdCByZXNwZWN0aXZlbHkuCgkqIHRpbmZvLmNjOiBMaWtld2lzZS4KCSogdmVjLmNjOiBMaWtld2lzZS4KCjIwMDAtMDUtMDYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQGN5Z251cy5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfY19jYXN0KTogRG9uJ3Qgd2FybiBpbnRlZ2VyLT5wb2ludGVyIHNpemUKCW1pc21hdGNoIGZvciBjb25zdGFudHMuCgoyMDAwLTA1LTA2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcnR0aS5jIChwdG1kX2luaXRpYWxpemVyKTogU2V0IG5vbi1wdWJsaWMsIGlmIGNsYXNzIGlzCglpbmNvbXBsZXRlLgoKCSogaW5jL2N4eGFiaS5oIChfX2R5bmFtaWNfY2FzdCk6IEV4cGxpY2l0bHkgc2F5IGV4dGVybiAiQysrIi4KCShfX2N4YV92ZWNfbmV3LCBfX2N4YV92ZWNfY3RvciwgX19jeGFfdmVjX2R0b3IsCglfX2N4YV92ZWNfZGVsZXRlKTogTGlrZXdpc2UuCgkqIHRpbmZvLmNjIChfX2R5bmFtaWNfY2FzdCk6IExpa2V3aXNlLgoJKiB2ZWMuY2MgKF9fY3hhX3ZlY19uZXcsIF9fY3hhX3ZlY19jdG9yLCBfX2N4YV92ZWNfZHRvciwKCV9fY3hhX3ZlY19kZWxldGUpOiBMaWtld2lzZS4KCjIwMDAtMDUtMDQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKERFTFRBX0ZST01fVlRBQkxFX0VOVFJZKTogUmVtb3ZlLgoJKFNFVF9GTkFERFJfRlJPTV9WVEFCTEVfRU5UUlkpOiBMaWtld2lzZS4KCShsYW5nX2RlY2xfZmxhZ3MpOiBBZGQgdmNhbGxfb2Zmc2V0LgoJKFRIVU5LX1ZDQUxMX09GRlNFVCk6IFVzZSBpdC4KCSogZGVjbC5jIChsYW5nX21hcmtfdHJlZSk6IERvbid0IG1hcmsgREVDTF9BQ0NFU1MgZm9yIGEgdGh1bmsuCgkqIG1ldGhvZC5jIChtYWtlX3RodW5rKTogQ3JlYXRlIHRoZSBsYW5nX2RlY2wgaGVyZSwgbm90IGluCgllbWl0X3RodW5rLgoJKGVtaXRfdGh1bmspOiBNYWtlIGdlbmVyaWMgdGh1bmtzIGludG8gb3JkaW5hcnkgZnVuY3Rpb25zIG9uY2UKCXRoZXkgaGF2ZSBiZWVuIGZlZCB0byBleHBhbmRfYm9keS4KCSogc2VtYW50aWNzLmMgKGV4cGFuZF9ib2R5KTogU2V0IGN1cnJlbnRfZnVuY3Rpb25faXNfdGh1bmsgaGVyZS4KCjIwMDAtMDUtMDQgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGNsYXNzLmMgKHVwZGF0ZV92dGFibGVfZW50cnlfZm9yX2ZuKTogUHJvdG90eXBlLgoKCSogcHQuYyAodHN1YnN0X2RlY2wpOiBJbml0aWFsaXplIHZhcmlhYmxlcyBgYXJndmVjJywgYGdlbl90bXBsJwoJYW5kIGB0bXBsJy4KCgkqIHNlYXJjaC5jIChkZnNfYnVpbGRfaW5oZXJpdGFuY2VfZ3JhcGhfb3JkZXIpOiBQcm90b3R5cGUuCgoyMDAwLTA1LTA0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChzcGVjaWFsX2Z1bmN0aW9uX2tpbmQpOiBBZGQgdmFyaW91cyBraW5kcyBvZgoJZGVzdHJ1Y3RvcnMuCgkoc3BlY2lhbF9mdW5jdGlvbl9wKTogTmV3IGZ1bmN0aW9uLgoJKiBjbGFzcy5jIChvdmVycmlkZXMpOiBEb24ndCBsZXQgb25lIGtpbmQgb2YgZGVzdHJ1Y3RvciBvdmVycmlkZQoJYW5vdGhlci4KCSogZGVjbDIuYyAobWFya191c2VkKTogVXNlIERFQ0xfTk9OX1RIVU5LX0ZVTkNUSU9OX1Agd2hlbiBkZWNpZGluZwoJd2hldGhlciBvciBub3QgdG8gaW5zdGFudGlhdGUgYSB0ZW1wbGF0ZS4KCSogdHJlZS5jIChzcGVjaWFsX2Z1bmN0aW9uX3ApOiBEZWZpbmUuCgoyMDAwLTA1LTAzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5kZWYgKFRIVU5LX0RFQ0wpOiBSZW1vdmUuCgkqIGNwLXRyZWUuaCAoREVDTF9USFVOS19QKTogTmV3IG1hY3JvLgoJKERFQ0xfTk9OX1RIVU5LX0ZVTkNUSU9OX1ApOiBMaWtld2lzZS4KCShERUNMX0VYVEVSTl9DX0ZVTkNUSU9OX1ApOiBMaWtld2lzZS4KCShTRVRfREVDTF9USFVOS19QKTogTGlrZXdpc2UuCgkoREVMVEFfRlJPTV9WVEFCTEVfRU5UUlkpOiBVc2UgREVDTF9USFVOS19QLgoJKEZOQUREUl9GUk9NX1ZUQUJMRV9FTlRSWSk6IExpa2V3aXNlLgoJKERFQ0xfTUFJTl9QKTogVXNlIERFQ0xfRVhURVJOX0NfRlVOQ1RJT05fUC4KCSogZGVjbC5jIChkZWNsc19tYXRjaCk6IFVzZSBERUNMX0VYVEVSTl9DX1AuCgkoZHVwbGljYXRlX2RlY2xzKTogTGlrZXdpc2UuCgkocHVzaGRlY2wpOiBMaWtld2lzZS4gIEFkanVzdCB0aHVuayBoYW5kbGluZy4KCShncm9rZm5kZWNsKTogVXNlIERFQ0xfRVhURVJOX0NfUC4KCSogZGVjbDIuYyAobWFya192dGFibGVfZW50cmllcyk6IFVzZSBERUNMX1RIVU5LX1AuCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IFJlbW92ZSBUSFVOS19ERUNMIGhhbmRsaW5nLgoJKiBleGNlcHQuYyAobm90aHJvd19saWJmbl9wKTogVXNlIERFQ0xfRVhURVJOX0NfUC4KCSogZXhwci5jIChjcGx1c19leHBhbmRfZXhwcik6IFJlbW92ZSBUSFVOS19ERUNMIGhhbmRsaW5nLgoJKiBtZXRob2QuYyAobWFrZV90aHVuayk6IFVzZSBTRVRfREVDTF9USFVOS19QLiAgU2V0CglERUNMX05PX1NUQVRJQ19DSEFJTi4KCShlbWl0X3RodW5rKTogRG9uJ3QgcGxheSBnYW1lcyB3aXRoIFRSRUVfQ09ERSBvbiB0aHVua3MuICBEb24ndAoJc2V0IERFQ0xfREVTVFJVQ1RPUl9QIG9yIERFQ0xfQ09OU1RSVUNUT1JfUCBvbiBhIHRodW5rLgoJKiBzZWFyY2guYyAoY292YXJpYW50X3JldHVybl9wKTogUmVtb3ZlIFRIVU5LX0RFQ0wgaGFuZGxpbmcuCgkqIGlyLnRleGk6IFVwZGF0ZS4KCjIwMDAtMDUtMDEgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogdHJlZS5jICh3YWxrX3RyZWUpOiBTZXQgbGluZW5vLgoKMjAwMC0wNS0wMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGV4Y2VwdGlvbi5jYzogVXBkYXRlIGxpY2Vuc2Ugbm90aWNlLgoJKiBuZXcuY2M6IExpa2V3aXNlLgoJKiBuZXcxLmNjOiBMaWtld2lzZS4KCSogbmV3Mi5jYzogTGlrZXdpc2UuCgkqIHRpbmZvLmNjOiBMaWtld2lzZS4KCSogdGluZm8yLmNjOiBMaWtld2lzZS4KCSogdmVjLmNjOiBMaWtld2lzZS4KCSogaW5jL2N4eGFiaS5oOiBMaWtld2lzZS4KCSogaW5jL2V4Y2VwdGlvbjogTGlrZXdpc2UuCgkqIGluYy9uZXc6IExpa2V3aXNlLgoJKiBpbmMvbmV3Lmg6IExpa2V3aXNlLgoJKiBpbmMvdHlwZWluZm86IExpa2V3aXNlLgoKMjAwMC0wNS0wMSAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiB0cmVlLmMgKGJ1aWxkX3RhcmdldF9leHByX3dpdGhfdHlwZSk6IElmIHdlIGFscmVhZHkgaGF2ZSBhCglUQVJHRVRfRVhQUiwganVzdCByZXR1cm4gaXQuCgoJKiBvcHRpbWl6ZS5jIChpbml0aWFsaXplX2lubGluZWRfcGFyYW1ldGVycyk6IERvbid0IGdlbmVyYXRlIGFuCglFWFBSX1NUTVQgaWYgd2UgY2FuIGp1c3QgdXNlIERFQ0xfSU5JVElBTC4KCSogZGVjbC5jIChlbWl0X2xvY2FsX3Zhcik6IE9ubHkgbWFrZSB0aGUgaW5pdGlhbGl6YXRpb24gYQoJZnVsbC1leHByZXNzaW9uIGlmIHN0bXRzX2FyZV9mdWxsX2V4cHJzX3AuCgoyMDAwLTA1LTAxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChzYW1lX3R5cGVfaWdub3JpbmdfdG9wX2xldmVsX3F1YWxpZmllcnNfcCk6IE5ldwoJbWFjcm8uCgkqIGNhbGwuYyAoc3RhbmRhcmRfY29udmVyc2lvbik6IFVzZSBpdC4KCShkaXJlY3RfcmVmZXJlbmNlX2JpbmRpbmcpOiBMaWtld2lzZS4KCShidWlsZF9vdmVyX2NhbGwpOiBMaWtld2lzZS4KCShpc19wcm9wZXJseV9kZXJpdmVkX2Zyb20pOiBMaWtld2lzZS4KCShjb21wYXJlX2ljcyk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChyZXNvbHZlc190b19maXhlZF90eXBlX3ApOiBMaWtld2lzZS4KCSogb3B0aW1pemUuYyAoZGVjbGFyZV9yZXR1cm5fdmFyaWFibGUpOiBMaWtld2lzZS4KCSogcHQuYyAoaXNfc3BlY2lhbGl6YXRpb25fb2YpOiBMaWtld2lzZS4KCSh1bmlmeSk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoY29tcF90YXJnZXRfcGFybXMpOiBMaWtlaXdzZS4KCShidWlsZF9zdGF0aWNfY2FzdCk6IExpa2V3aXNlLgoJKGJ1aWxkX3JlaW50ZXJwcmV0X2Nhc3QpOiBMaWtld2lzZS4KCShidWlsZF9jb25zdF9jYXN0KTogTGlrZXdpc2UuCgkoY29tcF9wdHJfdHR5cGVzX3JlYWwpOiBMaWtld2lzZS4KCShjb21wX3B0cl90dHlwZXNfY29uc3QpOiBMaWtld2lzZS4KCSogdHlwZWNrMi5jIChwcm9jZXNzX2luaXRfY29uc3RydWN0b3IpOiBMaWtld2lzZS4KCjIwMDAtMDQtMzAgIFNjb3R0IFNueWRlciA8c255ZGVyQGZuYWwuZ292PgoKCSogZGVjbC5jIChmaW5pc2hfZGVzdHJ1Y3Rvcl9ib2R5KTogVXNlIHRoZSBiYXNlIGRlc3RydWN0b3Igd2hlbgoJZGVzdHJveWluZyB2aXJ0dWFsIGJhc2VzLgoKMjAwMC0wNC0zMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGV4cHIuYyAoY3BsdXNfZXhwYW5kX2V4cHIpOiBQcmVzZXJ2ZSB0ZW1wb3JhcmllcyB3aGVuIGV4cGFuZGluZwoJU1RNVF9FWFBScy4KCSogb3B0aW1pemUuYyAoc3RydWN0IGlubGluZV9kYXRhKTogQWRkIHRhcmdldF9leHBycyBmaWVsZC4KCShkZWNsYXJlX3JldHVybl92YXJpYWJsZSk6IFdoZW4gYSBmdW5jdGlvbiByZXR1cm5zIGFuIGFnZ3JlZ2F0ZSwKCXVzZSB0aGUgdmFyaWFibGUgZGVjbGFyZWQgaW4gdGhlIFRBUkdFVF9FWFBSIGFzIHRoZSByZW1hcHBlZAoJREVDTF9SRVNVTFQuCgkoZXhwYW5kX2NhbGxfaW5saW5lKTogVXBkYXRlIHRoZSBwZW5kaW5nIHRhcmdldF9leHBycyBzdGFjay4KCShvcHRpbWl6ZV9mdW5jdGlvbik6IEluaXRpYWxpemUgdGhlIHN0YWNrLgoKCSogZGVjbDIuYyAoZmluaXNoX2ZpbGUpOiBGaXggdHlwbyBpbiBjb21tZW50LgoKCSogbWV0aG9kLmMgKGVtaXRfdGh1bmspOiBEb24ndCB0cnkgdG8gcmV0dXJuIGEgYHZvaWQnIHZhbHVlLgoKCSogb3B0aW1pemUuYyAoaW5pdGlhbGl6ZV9pbmxpbmVkX3BhcmFtZXRlcnMpOiBJZiB0aGUgcGFyYW1ldGVyIGlzCglhZGRyZXNzYWJsZSwgd2UgbmVlZCB0byBtYWtlIGEgbmV3IFZBUl9ERUNMLCBldmVuIGlmIHRoZQoJaW5pdGlhbGl6ZXIgaXMgY29uc3RhbnQuCgoyMDAwLTA0LTI4ICBDb3NtaW4gVHJ1dGEgIDxjb3NtaW50QGNzLnViYmNsdWoucm8+CgoJKiBkZWNsLmMgKGdyb2tfb3BfcHJvcGVydGllcyk6IEFkZCBhbiBleHRyYSBjaGVjayBvZiBhcmd0eXBlcy4KCjIwMDAtMDQtMjcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBvcHRpbWl6ZS5jIChjb3B5X2JvZHlfcik6IFVzZSBTVFJJUF9UWVBFX05PUFMgd2hlbiBjb3B5aW5nCgl2YXJpYWJsZXMuCgkoaW5pdGlhbGl6ZV9pbmxpbmVkX3BhcmFtZXRlcnMpOiBUcnkgdG8gYXZvaWQgY3JlYXRpbmcgbmV3CglWQVJfREVDTHMuCgoyMDAwLTA0LTI3ICBBbGV4IFNhbXVlbCAgPHNhbXVlbEBjb2Rlc291cmNlcnkuY29tPgoKCSogbGV4LmMgKG15X2dldF9ydW5fdGltZSk6IFJlbW92ZS4KCShpbml0X2ZpbGVuYW1lX3RpbWVzKTogVXNlIGdldF9ydW5fdGltZSBpbnN0ZWFkIG9mIG15X2dldF9ydW5fdGltZS4KCShjaGVja19uZXdsaW5lKTogTGlrZXdpc2UuCgkoZHVtcF90aW1lX3N0YXRpc3RpY3MpOiBMaWtld2lzZS4KCSogZGVjbDIuYyAoZmluaXNoX2ZpbGUpOiBQdXNoIGFuZCBwb3AgdGltZXZhciBUVl9WQVJDT05TVCBpbnN0ZWFkCglvZiBjb21wdXRpbmcgZWxhcHNlZCB0aW1lIGV4cGxpY2l0bHkuCgoyMDAwLTA0LTI2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChUUkVFX1JFQURPTkxZX0RFQ0xfUCk6IFVzZSBERUNMX1AuCgkqIGluaXQuYyAoZGVjbF9jb25zdGFudF92YWx1ZSk6IENoZWNrIFRSRUVfUkVBRE9OTFlfREVDTF9QLgoJKiBjYWxsLmMgKGNvbnZlcnRfbGlrZV9yZWFsKTogRG9uJ3QgdGVzdCBUUkVFX1JFQURPTkxZX0RFQ0xfUAoJYmVmb3JlIGNhbGxpbmcgZGVjbF9jb25zdGFudF92YWx1ZS4KCSogY2xhc3MuYyAoY2hlY2tfYml0ZmllbGRfZGVjbCk6IExpa2V3aXNlLgoJKiBjdnQuYyAob2NwX2NvbnZlcnQpOiBMaWtld2lzZS4KCShjb252ZXJ0KTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoY29tcHV0ZV9hcnJheV9pbmRleF90eXBlKTogTGlrZXdpc2UuCgkoYnVpbGRfZW51bWVyYXRvcik6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChjaGVja19jcF9jYXNlX3ZhbHVlKTogTGlrZXdpc2UuCgkqIHB0LmMgKGNvbnZlcnRfbm9udHlwZV9hcmd1bWVudCk6IExpa2V3aXNlLgoJKHRzdWJzdCk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoZGVjYXlfY29udmVyc2lvbik6IExpa2V3aXNlLgoJKGJ1aWxkX2NvbXBvdW5kX2V4cHIpOiBMaWtld2lzZS4KCShidWlsZF9yZWludGVycHJldF9jYXN0KTogTGlrZXdpc2UuCgkoYnVpbGRfY19jYXN0KTogTGlrZXdpc2UuCgkoY29udmVydF9mb3JfYXNzaWdubWVudCk6IExpa2V3aXNlLgoKMjAwMC0wNC0yNiAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBkZWNsLmMgKGZpbmlzaF9mdW5jdGlvbik6IERvbid0IHBsYXkgZ2FtZXMgd2l0aCBERUNMX0lOTElORS4KCjIwMDAtMDQtMjUgIEdhYnJpZWwgRG9zIFJlaXMgIDxkb3NyZWlzQGNtbGEuZW5zLWNhY2hhbi5mcj4KCgkqIGlyLnRleGk6IENvcnJlY3QgdHlwby4KCjIwMDAtMDQtMjUgIE1hcnRpbiB2LiBM9ndpcyAgPGxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBSZWplY3QgVkxBcyBhcyBtZW1iZXJzLgoKMjAwMC0wNC0yNCAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChzdGFuZGFyZF9jb252ZXJzaW9uKTogQWNjZXB0IGNvbnZlcnNpb24gYmV0d2VlbgoJQ09NUExFWF9UWVBFcy4KCgkqIGN2dC5jIChvY3BfY29udmVydCk6IEhhbmRsZSBjb252ZXJzaW9uIHRvIENPTVBMRVhfVFlQRS4KCjIwMDAtMDQtMjQgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGRlY2wyLmMgKGZpbmlzaF9maWxlKTogUmVtb3ZlIGRvdWJsZSBzZXR1cCBmb3IgYWNjb3VudGluZwoJY29tcGlsZSB0aW1lLgoKMjAwMC0wNC0yNCAgUm9iZXJ0IExpcGUgPHJvYmVydGxpcGVAdXNhLm5ldD4KCgkqIGNwLXRyZWUuaCAobGFuZ190eXBlKTogTWVtYmVyIGBsYW5ndWFnZScgbm93IEVOVU1fQklURklFTEQuCgoyMDAwLTA0LTIzICBCZW5qYW1pbiBLb3NuaWsgIDxia296QGN5Z251cy5jb20+CgoJKiBuZXcuY2MgKHNldF9uZXdfaGFuZGxlcik6IE5lZWRzIHRvIGJlIGluIHN0ZDo6LgoKMjAwMC0wNC0yMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAobGFuZ19kZWNsKTogUmVtb3ZlIHByZXR0eV9mdW5jdGlvbl9wLgoJKERFQ0xfUFJFVFRZX0ZVTkNUSU9OX1ApOiBVc2UgVFJFRV9MQU5HX0ZMQUdfMCwgbm90IGEgYml0IGluIHRoZQoJbGFuZ3VhZ2Utc3BlY2lmaWMgbm9kZS4KCSogZGVjbC5jIChjcF9tYWtlX2ZuYW1lX2RlY2wpOiBVc2UgYnVpbGRfZGVjbCwgbm90CglidWlsZF9sYW5nX2RlY2wsIHRvIGJ1aWxkIHRoZSB2YXJpYWJsZXMuCgkoZ3Jva3ZhcmRlY2wpOiBEb24ndCBjYWxsIGJ1aWxkX2xhbmdfZGVjbCBmb3IgbG9jYWwgdmFyaWFibGVzIGluCgl0ZW1wbGF0ZXMuCgkoZ3Jva2RlY2xhcmF0b3IpOiBEb24ndCBjYWxsIGJ1aWxkX2xhbmdfZGVjbCBmb3IgbG9jYWwgdHlwZQoJZGVjbGFyYXRpb25zIGluIHRlbXBsYXRlcy4KCSogbGV4LmMgKHJldHJvZml0X2xhbmdfZGVjbCk6IFVzZSBnZ2NfYWxsb2Nfb2JqIHRvIGFsbG9jYXRlZAoJemVybydkIG1lbW9yeSwgcmF0aGVyIHRoYW4gY2FsbGluZyBtZW1zZXQuCgkqIHB0LmM6IEluY2x1ZGUgaGFzaHRhYi5oLgoJKGxvY2FsX3NwZWNpYWxpemF0aW9ucyk6IE5ldyB2YXJpYWJsZS4KCShyZXRyaWV2ZV9sb2NhbF9zcGVjaWFsaXphdGlvbik6IFVzZSBpdC4KCShyZWdpc3Rlcl9sb2NhbF9zcGVjaWFsaXphdGlvbik6IExpa2V3aXNlLgoJKHRzdWJzdF9kZWNsKTogRG9uJ3QgYXNzdW1lIGxvY2FsIHZhcmlhYmxlcyBoYXZlCglERUNMX0xBTkdfU1BFQ0lGSUMuCgkoaW5zdGFudGlhdGVfZGVjbCk6IFNldCB1cCBsb2NhbF9zcGVjaWFsaXphdGlvbnMuCgkqIE1ha2VmaWxlLmluIChIVEFCX0gpOiBOZXcgdmFyaWFibGUuCgoyMDAwLTA0LTIzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogdHlwZWNrLmMgKGNfZXhwYW5kX2FzbV9vcGVyYW5kcyk6IFJlc3RvcmUgdGhlIG9yaWdpbmFsCgljb250ZW50cyBvZiB0aGUgb3V0cHV0IGxpc3QuCgoyMDAwLTA0LTIyICBHYWJyaWVsIERvcyBSZWlzIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGlyLnRleGk6ICBEb2N1bWVudCBjb21wbGV4IG51bWJlciByZXByZXNlbnRhdGlvbi4KCjIwMDAtMDQtMjAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBydHRpLmMgKGluaXRfcnR0aV9wcm9jZXNzaW5nKTogU2V0IHRpbmZvX3Zhcl9pZCBpbiBuZXctYWJpLgoJKHRhcmdldF9pbmNvbXBsZXRlX3ApOiBOZXcgZnVuY3Rpb24uCgkodGluZm9fYmFzZV9pbml0KTogQ3JlYXRlIGNvbWRhdCBOVEJTIG5hbWUgdmFyaWFibGUuCgkocHRyX2luaXRpYWxpemVyKTogQWRkIG5vbl9wdWJsaWMgcGFyYW1ldGVyLiBDYWxjdWxhdGUgaXQuCgkocHRtZF9pbml0aWFsaXplcik6IExpa2V3aXNlLgoJKHN5bnRoZXNpemVfdGluZm9fdmFyKTogQWRqdXN0LiBFbWl0IGluY29tcGxldGUgY2xhc3MgdGluZm8uCgkoY3JlYXRlX3JlYWxfdGluZm9fdmFyKTogQWRkIG5vbl9wdWJsaWMgcGFyYW1ldGVyLiBVc2UgaXQuCglQdXNoIHByb3h5IGludG8gZ2xvYmFsIG5hbWVzcGFjZS4KCSogaW5jL2N4eGFiaS5oIChfX3BvaW50ZXJfdHlwZV9pbmZvOjppbmNvbXBsZXRlX2NsYXNzX21hc2spOgoJTmV3IGVudW1lcmF0aW9uLgoJKiBpbmMvdHlwZWluZm8gKHR5cGVfaW5mbzo6YmVmb3JlLCB0eXBlX2luZm86Om9wZXJhdG9yPT0pOgoJQ29tcGFyZSBfX25hbWUgYWRkcmVzc2VzLgoKCSogdGluZm8yLmNjOiBSZW1vdmUgbmV3LWFiaSBidWlsdGlucyBjb21tZW50LgoKMjAwMC0wNC0yMCAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfeF9mdW5jdGlvbl9jYWxsKTogUmVzb2x2ZSBhbiBPRkZTRVRfUkVGLgoKCSogY2FsbC5jIChqb3VzdCk6IEV4aXQgZWFybHkgaWYgd2UgZ2V0IHRoZSBzYW1lIGZ1bmN0aW9uLCB0b28uCgoJKiBkZWNsMi5jIChrZXlfbWV0aG9kKTogUmV0dXJuIE5VTExfVFJFRSBmb3IgdGVtcGxhdGUgY2xhc3Nlcy4KCShpbXBvcnRfZXhwb3J0X2NsYXNzKTogRG9uJ3QgbmVlZCB0byBjaGVjayBmb3IgdGVtcGxhdGUgY2xhc3Nlcy4KCjIwMDAtMDQtMTggIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGxleC5jOiBSZW1vdmUgcmVmZXJlbmNlcyB0byBjY2NwLmMuCgoyMDAwLTA0LTE4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChsYW5nX2RlY2xfZmxhZ3MpOiBSZW1vdmUgY29uc3RfbWVtZnVuYyBhbmQKCXZvbGF0aWxlX21lbWZ1bmMuICBBZGQgZGVzdHJ1Y3Rvcl9hdHRyLiAgQWRqdXN0IGR1bW15LgoJKERFQ0xfREVTVFJVQ1RPUl9QKTogVXNlIGRlc3RydWN0b3JfYXR0ci4KCShERUNMX0NPTlNUX01FTUZVTkNfUCk6IFJlaW1wbGVtZW50LgoJKERFQ0xfVk9MQVRJTEVfTUVNRlVOQ19QKTogUmVtb3ZlLgoJKiBjbGFzcy5jIChmaW5pc2hfc3RydWN0X21ldGhvZHMpOiBVc2UgQ0xBU1NUWVBFX0RFU1RSVUNUT1JTLgoJKG92ZXJyaWRlcyk6IFVzZSBERUNMX0RFU1RSVUNUT1JfUC4KCShjaGVja19mb3Jfb3ZlcnJpZGUpOiBMaWtld2lzZS4KCSogZGVjbC5jIChzdGFydF9mdW5jdGlvbik6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChncm9rZmNsYXNzZm4pOiBMaWtld2lzZS4KCShjaGVja19jbGFzc2ZuKTogTGlrZXdpc2UuCgkoZ3Jva19mdW5jdGlvbl9pbml0KTogTGlrZXdpc2UuCgoyMDAwLTA0LTE3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoZ3Jva2ZpZWxkKTogSXNzdWUgZXJyb3Igb24gaWxsZWdhbCBkYXRhIG1lbWJlcgoJZGVjbGFyYXRpb24uCgoyMDAwLTA0LTE3ICBNYXJrIFAgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtZXRob2QuYyAobWFrZV90aHVuayk6IFNldCBERUNMX0NPTlRFWFQgZm9yIGEgVEhVTktfREVDTC4KCjIwMDAtMDQtMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChidWlsZF92dGFibGVfZW50cnkpOiBEb24ndCBidWlsZCB0aHVua3MgZm9yIHR5cGUtaW5mbwoJZnVuY3Rpb25zLgoKMjAwMC0wNC0xNiAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBkZWNsLmMgKGRlY2xzX21hdGNoKTogQWxsb3cgYSByZWRlY2xhcmF0aW9uIG9mIGEgYnVpbHRpbiB0bwoJc3BlY2lmeSBhcmdzIHdoaWxlIHRoZSBidWlsdGluIGRpZCBub3QuCgoyMDAwLTA0LTE1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5kZWYgKFRIVU5LX0RFQ0wpOiBBZGQgdG8gZG9jdW1lbnRhdGlvbi4KCSogY3AtdHJlZS5oIChmbGFnX2h1Z2Vfb2JqZWN0cyk6IERlY2xhcmUuCgkqIGNsYXNzLmMgKG1vZGlmeV92dGFibGVfZW50cnkpOiBUaWR5LgoJKHVwZGF0ZV92dGFibGVfZW50cnlfZm9yX2ZuKTogU3BsaXQgb3V0IGZyb20gZGZzX21vZGlmeV92dGFibGVzLgoJQ2FsY3VsYXRlIGRlbHRhIGFwcHJvcHJpYXRlbHkgZm9yIHRoZSBuZXcgQUJJLgoJKGRmc19tb2RpZnlfdnRhYmxlcyk6IFVzZSBpdC4KCShtb2RpZnlfYWxsX3Z0YWJsZXMpOiBGaXggdGhpbmtvIGluIGNvZGUgdG8gYWRkIG92ZXJyaWRpbmcgY29waWVzCglvZiBmdW5jdGlvbnMgdG8gcHJpbWFyeSB2dGFibGVzLgoJKGJ1aWxkX2Nsb25lKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShjbG9uZV9mdW5jdGlvbl9kZWNsKTogQ29ycmVjdCBvcmRlciBvZiBkZXN0cnVjdG9ycyBpbiB2dGFibGUuCgkoYnVpbGRfdmJhc2Vfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IEFkanVzdCBjb21tZW50LgoJKGRmc192Y2FsbF9vZmZzZXRfcXVldWVfcCk6IFJlbW92ZS4KCShkZnNfYnVpbGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IFVwZGF0ZSBCVl9WQ0FMTF9JTkRFWC4KCShidWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogSnVzZSB1c2UgZGZzX3NraXBfdmJhc2VzLgoJKGJ1aWxkX3Z0YWJsZV9lbnRyeSk6IENvcnJlY3QgY2hlY2sgZm9yIHB1cmUgdmlydHVhbCBmdW5jdGlvbnMuCglEb24ndCBkZWNsYXJlIGZsYWdfaHVnZV9vYmplY3RzLgoJKiBkZWNsLmMgKGZsYWdfaHVnZV9vYmplY3RzKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKiBtZXRob2QuYyAobWFrZV90aHVuayk6IFR3ZWFrIG1hbmdsaW5nIGZvciB2Y2FsbCBvZmZzZXQgdGh1bmtzLgoJVXNlIGludF9zaXplX2luX2J5dGVzLgoJKGVtaXRfdGh1bmspOiBIYW5kbGUgdmNhbGwgb2Zmc2V0IHRodW5rcy4KCjIwMDAtMDQtMTUgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiBkZWNsMi5jIChwYXJzZV90aW1lLCB2YXJjb25zdF90aW1lKTogRGVsZXRlIGRlY2xhcmF0aW9ucy4KCShmaW5pc2hfZmlsZSk6IERlbGV0ZSBMSU5FTk8gZGVjbGFyYXRpb24uCglTVEFSVF9USU1FIGFuZCBUSElTX1RJTUUgbm93IGxvbmcuCgoyMDAwLTA0LTEzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoYnVpbGRfYmFzZV9maWVsZCk6IFJlZm9ybWF0IGNvbW1lbnQuCgoJKiBpbmMvY3h4YWJpLmggKHN0ZGRlZi5oKTogQ29tbWVudCBpbmNsdXNpb24uCgkoX19iYXNlX2NsYXNzX2luZm86Ol9fb2Zmc2V0KTogQ29tbWVudCBzaGlmdC4KCjIwMDAtMDQtMTIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKElERU5USUZJRVJfQ1RPUl9PUl9EVE9SX1ApOiBOZXcgbWFjcm8uCgkoY3BfdHJlZV9pbmRleCk6IEFkZCBDUFRJX1BVU0hfRVhDRVBUSU9OX0lERU5USUZJRVIuCgkoY3BfcHVzaF9leGNlcHRpb25faWRlbnRpZmllcik6IE5ldyBtYWNyby4KCShERUNMX0NPTVBMRVRFX0RFU1RSVUNUT1JfUCk6IE5ldyBtYWNyby4KCShERUNMX0JBU0VfREVTVFJVQ1RPUl9QKTogTGlrZXdpc2UuCgkoREVDTF9ERUxFVElOR19ERVNUUlVDVE9SX1ApOiBMaWtld2lzZS4KCShnZXRfdnRibF9kZWNsX2Zvcl9iaW5mbyk6IEZpeCBmb3JtYXR0aW5nLgoJKGluX2NoYXJnZV9hcmdfZm9yX25hbWUpOiBOZXcgbWFjcm8uCgkobWF5YmVfYnVpbGRfY2xlYW51cF9hbmRfZGVsZXRlKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKiBjYWxsLmMgKGJ1aWxkX2ZpZWxkX2NhbGwpOiBVc2UgSURFTlRJRklFUl9DVE9SX09SX0RUT1JfUC4KCShpbl9jaGFyZ2VfYXJnX2Zvcl9uYW1lKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX25ld19tZXRob2RfY2FsbCk6IFVzZSBpdC4gIEhhbmRsZSBjbG9uZWQgZGVzdHJ1Y3RvcnMuCgkoYnVpbGRfY2xvbmUpOiBEb24ndCBtYWtlIHRoZSBiYXNlIGNvbnN0cnVjdG9yIHZpcnR1YWwuCglBdXRvbWF0aWNhbGx5IGRlZmVyIGdlbmVyYXRlZCBmdW5jdGlvbnMuCgkoY2xvbmVfZnVuY3Rpb25fZGVjbCk6IEhhbmRsZSBkZXN0cnVjdG9ycywgdG9vLgoJKGNsb25lX2NvbnN0cnVjdG9yc19hbmRfZGVzdHJ1Y3RvcnMpOiBMaWtld2lzZS4KCShjcmVhdGVfdnRhYmxlX3B0cik6IERvbid0IGNyZWF0ZSBhIHZ0YWJsZSBlbnRyeSBmb3IgYSBjbG9uZWQKCWZ1bmN0aW9uLgoJKiBkZWNsLmMgKHByZWRlZmluZWRfaWRlbnRpZmllcik6IEFkZCBjdG9yX29yX2R0b3JfcC4KCShpbml0aWFsaXplX3ByZWRlZmluZWRfaWRlbnRpZmllcnMpOiBVcGRhdGUgYXBwcm9wcmlhdGVseS4KCShmaW5pc2hfZGVzdHJ1Y3Rvcl9ib2R5KTogU2ltcGxpZnkuCgkobWF5YmVfYnVpbGRfY2xlYW51cF9hbmRfZGVsZXRlKTogUmVtb3ZlLgoJKiBleGNlcHQuYyAoZXhwYW5kX3Rocm93KTogSGFuZGxlIG5ldy1BQkkgZGVzdHJ1Y3RvcnMuCgkqIGluaXQuYyAoZXhwYW5kX2NsZWFudXBfZm9yX2Jhc2UpOiBVc2UgYmFzZV9kdG9yX2lkZW50aWZpZXIuCgkoYnVpbGRfZHRvcl9jYWxsKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX2RlbGV0ZSk6IFVzZSBpdC4gIFNpbXBsaWZ5LgoJKiBvcHRpbWl6ZS5jIChtYXliZV9jbG9uZV9ib2R5KTogSGFuZGxlIGRlc3RydWN0b3JzLgoJKiBzZWFyY2guYyAobG9va3VwX2ZpZWxkX3F1ZXVlX3ApOiBVc2UgSURFTlRJRklFUl9DVE9SX09SX0RUT1JfUC4KCgkqIGV4Y2VwdGlvbi5jYyAoY2xlYW51cF9mbik6IE5ldyB0eXBlZGVmLgoJKENBTExfQ0xFQU5VUCk6IE5ldyBtYWNyby4KCShjcF9laF9pbmZvKTogVXNlIHRoZW0uCgkoX19jcF9wdXNoX2V4Y2VwdGlvbik6IExpa2V3aXNlLgoJKF9fY3BfcG9wX2V4Y2VwdGlvbik6IExpa2V3aXNlLgoKMjAwMC0wNC0xMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoY3BfdHJlZV9pbmRleCk6IEFkZCBDUFRJX0RUT1JfSURFTlRJRklFUi4KCShjb21wbGV0ZV9kdG9yX2lkZW50aWZpZXIpOiBOZXcgbWFjcm8uCgkoQ0xBU1NUWVBFX0ZJUlNUX0NPTlZFUlNJT04pOiBSZW1vdmUuCgkoQ0xBU1NUWVBFX0NPTlNUUlVDVE9SX1NMT1QpOiBOZXcgbWFjcm8uCgkoQ0xBU1NUWVBFX0RFU1RSVUNUT1JfU0xPVCk6IExpa2V3aXNlLgoJKENMQVNTVFlQRV9GSVJTVF9DT05WRVJTSU9OX1NMT1QpOiBMaWtld2lzZS4KCShDTEFTU1RZUEVfQ09OU1RSVUNUT1JTKTogTGlrZXdpc2UuCgkoQ0xBU1NUWVBFX0RFU1RSVUNUT1JTKTogTGlrZXdpc2UuCgkobGFuZ19kZWNsKTogQWRkIGNsb25lZF9mdW5jdGlvbi4KCShERUNMX0NPTVBMRVRFX0NPTlNUUlVDVE9SX1ApOiBOZXcgbWFjcm8uCgkoREVDTF9CQVNFX0NPTlNUUlVDVE9SX1ApOiBMaWtld2lzZS4KCShERUNMX01BWUJFX0lOX0NIQVJHRV9DT05TVFJVQ1RPUl9QKTogTGlrZXdpc2UuCgkoREVDTF9NQVlCRV9JTl9DSEFSR0VfREVTVFJVQ1RPUl9QKTogTGlrZXdpc2UuCgkoREVDTF9DTE9ORURfRlVOQ1RJT05fUCk6IExpa2V3aXNlLgoJKERFQ0xfQ0xPTkVEX0ZVTkNUSU9OKTogTGlrZXdpc2UuCgkoY2xvbmVfZnVuY3Rpb25fZGVjbCk6IERlY2xhcmUuCgkobWF5YmVfY2xvbmVfYm9keSk6IExpa2V3aXNlLgoJKiBjYWxsLmMgKGJ1aWxkX3VzZXJfdHlwZV9jb252ZXJzaW9uXzEpOiBDYWxsIGNvbXBsZXRlIG9iamVjdAoJY29uc3RydWN0b3JzIGluIHRoZSBuZXcgQUJJLgoJKGJ1aWxkX25ld19tZXRob2RfY2FsbCk6IERvbid0IGFkZCBpbi1jaGFyZ2UgcGFyYW1ldGVycyB1bmRlciB0aGUKCW5ldyBBQkkuCgkqIGNsYXNzLmMgKGFkZF9tZXRob2QpOiBVc2UgREVDTF9NQVlCRV9JTl9DSEFSR0VfQ09OU1RSVUNUT1JfUCwKCURFQ0xfTUFZQkVfSU5fQ0hBUkdFX0RFU1RSVUNUT1JfUCwgQ0xBU1NUWVBFX0NPTlNUUlVDVE9SX1NMT1QsIGFuZAoJQ0xBU1NUWVBFX0RFU1RSVUNUT1JfU0xPVC4KCShidWlsZF9jbG9uZSk6IE5ldyBmdW5jdGlvbi4KCShjbG9uZV9mdW5jdGlvbl9kZWNsKTogTGlrZXdpc2UuCgkoY2xvbmVfY29uc3RydWN0b3JzX2FuZF9kZXN0cnVjdG9ycyk6IExpa2V3aXNlLgoJKGNoZWNrX2Jhc2VzX2FuZF9tZW1iZXJzKTogVXNlIGl0LgoJKiBkZWNsLmMgKGluaWl0aWFsaXplX3ByZWRlZmluZWRfaWRlbnRpZmllcnMpOiBJbml0aWFsaXplCgljb21wbGV0ZV9kdG9yX2lkZW50aWZpZXIuCgkoZmluaXNoX2Z1bmN0aW9uKTogRG9uJ3QgYWRkIGV4dHJhIGNvZGUgdG8gYSBjbG9uZS4KCShsYW5nX21hcmtfdHJlZSk6IE1hcmsgY2xvbmVkX2Z1bmN0aW9uLgoJKiBkZWNsMi5jIChtYXJrX3VzZWQpOiBEb24ndCBib3RoZXIgdHJ5aW5nIHRvIGluc3RhbnRpYXRlIHRoaW5ncwoJd2Ugc3ludGhlc2l6ZWQuCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IERvbid0IGR1bXAgQ1BfREVDTF9DT05URVhUIHR3aWNlLgoJKiBtZXRob2QuYyAoc2V0X21hbmdsZWRfbmFtZV9mb3JfZGVjbCk6IERvbid0IHRyZWF0IGNsb25lcyBhcwoJY29uc3RydWN0b3JzLgoJKHN5bnRoZXNpemVfbWV0aG9kKTogU3l0aGVzaXplIGNsb25lZCBmdW5jdGlvbnMsIG5vdCB0aGUgY2xvbmVzLgoJKiBvcHRpbWl6ZS5jIChpbmxpbmVfZGF0YSk6IFVwZGF0ZSBjb21tZW50IG9uIHJldF9sYWJlbC4KCShyZW1hcF9ibG9jayk6IERvbid0IGFzc3VtZSBERUNMX0lOSVRJQUwgZXhpc3RzLgoJKGNvcHlfYm9keV9yKTogQWxsb3cgcmV0X2xhYmVsIHRvIGJlIE5VTEwuCgkobWF5YmVfY2xvbmVfYm9keSk6IERlZmluZS4KCSogcHQuYyAodHN1YnN0X2RlY2wpOiBIYW5kbGUgY2xvbmVzLgoJKGluc3RhbnRpYXRlX2Nsb25lKTogTmV3IGZ1bmN0aW9uLgoJKGluc3RhbnRpYXRlX3RlbXBsYXRlKTogVXNlIGl0LgoJKHNldF9tYW5nbGVkX25hbWVfZm9yX3RlbXBsYXRlX2RlY2wpOiBEb24ndCB0cmVhdCBjbG9uZXMgYXMKCWNvbnN0cnVjdG9ycy4KCSogc2VhcmNoLmMgKGxvb2t1cF9mbmZpZWxkc18xKTogVXNlIENMQVNTVFlQRV9DT05TVFJVQ1RPUl9TTE9ULAoJQ0xBU1NUWVBFX0RFU1RSVUNUT1JfU0xPVCwgYW5kIENMQVNTVFlQRV9GSVJTVF9DT05WRVJTSU9OX1NMT1QuCgkqIHNlbWFudGljcy5jIChleHBhbmRfYm9keSk6IENsb25lIGZ1bmN0aW9uIGJvZGllcyBhcyBuZWNlc3NhcnkuCgoJKiBvcHRpbWl6ZS5jIChyZW1hcF9kZWNsKTogQXZvaWQgc2hhcmluZyBzdHJ1Y3R1cmUgZm9yIGFycmF5cwoJd2hvc2Ugc2l6ZSBpcyBvbmx5IGtub3duIGF0IHJ1bi10aW1lLgoJKiB0cmVlLmMgKGNvcHlfdHJlZV9yKTogRG9uJ3QgY29weSBQQVJNX0RFQ0xzLgoKCSogY3AtdHJlZS5oIChsYW5nX2RlY2xfZmxhZ3MpOiBSZW5hbWUgY29uc3RydWN0b3JfZm9yX3ZiYXNlX2F0dHIKCXRvIGhhc19pbl9jaGFyZ2VfcGFybV9wLgoJKERFQ0xfQ09OU1RSVUNUT1JfRk9SX1ZCQVNFX1ApOiBSZW5hbWUgdG8gLi4uCgkoREVDTF9IQVNfSU5fQ0hBUkdFX1BBUk1fUCk6IC4uLiB0aGlzLgoJKERFQ0xfQ09QWV9DT05TVFJVQ1RPUl9QKTogTmV3IG1hY3JvLgoJKiBjYWxsLmMgKGFkZF9mdW5jdGlvbl9jYW5kaWRhdGUpOiBVc2UgREVDTF9IQVNfSU5fQ0hBUkdFX1BBUk1fUC4KCShidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xKTogTGlrZXdpc2UuCgkoY29udmVydF9saWtlX3JlYWwpOiBMaWtld2lzZS4KCShidWlsZF9vdmVyX2NhbGwpOiBMaWtlaXdzZS4gIFVzZSBERUNMX0NPUFlfQ09OU1RSVUNUT1JfUC4KCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IFVzZSBERUNMX0hBU19JTl9DSEFSR0VfUEFSTV9QLgoJKGNvcHlfYXJnc19wKTogTGlrZXdpc2UuCgkoZ3Jva19jdG9yX3Byb3BlcnRpZXMpOiBMaWtld2lzZS4KCShzdGFydF9mdW5jdGlvbik6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChtYXliZV9yZXRyb2ZpdF9pbl9jaGFyZ2UpOiBMaWtld2lzZS4gIFNldCBpdC4KCSogZXJyb3IuYyAoZHVtcF9mdW5jdGlvbl9kZWNsKTogVXNlIERFQ0xfSEFTX0lOX0NIQVJHRV9QQVJNX1AuCgkqIGluaXQuYyAoZW1pdF9iYXNlX2luaXQpOiBVc2UgREVDTF9DT1BZX0NPTlNUUlVDVE9SX1AuCgkqIG1ldGhvZC5jIChkb19idWlsZF9jb3B5X2NvbnN0cnVjdG9yKTogVXNlCglERUNMX0hBU19JTl9DSEFSR0VfUEFSTV9QLgoJKHN5bnRoZXNpemVfbWV0aG9kKTogTGlrZXdpc2UuCgkqIHB0LmMgKGluc3RhbnRpYXRlX3RlbXBsYXRlKTogUmVtb3ZlIGdvdG8uCgkqIHRyZWUuYyAoYnVpbGRfY3BsdXNfbWV0aG9kX3R5cGUpOiBSZW1vdmUgbWVudGlvbiBvZiBvYnN0YWNrcyBpbgoJY29tbWVudC4KCgkqIGNwLXRyZS5oIChmaW5pc2hfZnVuY3Rpb24pOiBDaGFuZ2UgcHJvdG90eXBlLgoJKiBkZWNsLmMgKGVuZF9jbGVhbnVwX2ZuKTogQWRqdXN0IGNhbGxlci4KCShmaW5pc2hfZnVuY3Rpb24pOiBUYWtlIG9ubHkgb25lIHBhcmFtZXRlci4KCSogZGVjbDIuYyAoZmluaXNoX29iamVjdHMpOiBBZGp1c3QgY2FsbGVyLgoJKGZpbmlzaF9zdGF0aWNfc3RvcmFnZV9kdXJhdGlvbl9mdW5jdGlvbik6IExpa2V3aXNlLgoJKiBtZXRob2QuYyAoZW1pdF90aHVuayk6IExpa2V3aXNlLgoJKiBwYXJzZS55OiBMaWtld2lzZS4KCSogcGFyc2UuYzogUmVnZW5lcmF0ZWQuCgkqIHB0LmMgKGluc3RhbnRpYXRlX2RlY2wpOiBMaWtld2lzZS4KCSogcnR0aS5jIChzeW50aGVzaXplX3RpbmZvX2ZuKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChleHBhbmRfYm9keSk6IExpa2V3aXNlLgoKCSogY3AtdHJlZS5oIChjb3B5X2RlY2wpOiBOZXcgZnVuY3Rpb24uCgkqIGNsYXNzLmMgKGZpbmlzaF9zdHJ1Y3RfMSk6IFVzZSBpdC4KCSogbGV4LmMgKGNvcHlfZGVjbCk6IERlZmluZSBpdC4KCSogcHQuYyAodHN1YnN0X2RlY2wpOiBMaWtld2lzZS4KCSogdHJlZS5jIChjb3B5X3RlbXBsYXRlX3RlbXBsYXRlX3Bhcm0pOiBMaWtld2lzZS4KCgkqIGNwLXRyZWUuaCAobGFuZ190eXBlKTogUmVtb3ZlIGhhc19ub25wdWJsaWNfY3RvciBhbmQKCWhhc19ub25wdWJsaWNfYXNzaWduX3JlZi4KCShUWVBFX0hBU19OT05QVUJMSUNfQ1RPUik6IERvbid0IGRlY2xhcmUuCgkoVFlQRV9IQVNfTk9OUFVCTElDX0FTU0lHTl9SRUYpOiBMaWtld2lzZS4KCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdF9tZXRob2RzKTogRG9uJ3Qgc2V0CglUWVBFX0hBU19OT05QVUJMSUNfQ1RPUiBvciBUWVBFX0hBU19OT05QVUJMSUNfQVNTSUdOX1JFRi4KCShpbnRlcmZhY2Vfb25seSk6IERvbid0IGRlY2xhcmUuCgkoaW50ZXJmYWNlX3Vua25vd24pOiBMaWtld2lzZS4KCjIwMDAtMDQtMTEgIE1hcnRpbiB2LiBM9ndpcyAgPGxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KCgkqIHRyZWUuaCAoSEFWRV9URU1QTEFURVMpOiBSZW1vdmUgZGVmaW5pdGlvbi4KCSogbGFuZy1vcHRpb25zLmggKC1mdGhpcy1pcy12YXJpYWJsZSk6IFJlbW92ZSBkb2N1bWVudGF0aW9uLgoKMjAwMC0wNC0xMCAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBjbGFzcy5jIChpbnN0YW50aWF0ZV90eXBlKTogSGFuZGxlIG9iamVjdC1yZWxhdGl2ZSB0ZW1wbGF0ZS1pZC4KCgkqIHNlbWFudGljcy5jIChmaW5pc2hfZXhwcl9zdG10KTogQ2FsbCBjb252ZXJ0X3RvX3ZvaWQgaGVyZS4KCSogZGVjbC5jIChjcGx1c19leHBhbmRfZXhwcl9zdG10KTogTm90IGhlcmUuCgoJKiBydHRpLmMgKGJ1aWxkX2R5bmFtaWNfY2FzdF8xKTogQ2FsbCBub25fbHZhbHVlLgoJSW5pdGlhbGl6ZSBleHBydHlwZSBlYXJsaWVyLgoKCSogcGFyc2UueSAoZm4uZGVmMSk6IENoZWNrIGZvciBkZWZpbmluZyB0eXBlcyBpbiByZXR1cm4gdHlwZXMuCgoJKiBkZWNsLmMgKGNoZWNrX3RhZ19kZWNsKTogTm90aWNlIGV4dHJhIGZ1bmRhbWVudGFsIHR5cGVzLgoJRGlhZ25vc2UgZW1wdHkgZGVjbHMgaW4gY2xhc3NlcywgdG9vLgoKCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IERvbid0IG92ZXJyaWRlIGFuIGFub255bW91cyBuYW1lIGlmIG5vCglkZWNsYXJhdG9yIHdhcyBnaXZlbi4KCgkqIGN2dC5jIChjb252ZXJ0X3RvX3ZvaWQpOiBDYWxsIHJlc29sdmVfb2Zmc2V0X3JlZi4KCgkqIHR5cGVjay5jIChidWlsZF94X2Z1bmN0aW9uX2NhbGwpOiBBYm9ydCBpZiB3ZSBnZXQgYW4gT0ZGU0VUX1JFRi4KCgkqIGRlY2wyLmMgKGRlY2xfbmFtZXNwYWNlKTogSGFuZGxlIGdldHRpbmcgYSB0eXBlLgoKCSogdHlwZWNrLmMgKGJ1aWxkX2NfY2FzdCk6IFJlLWVuYWJsZSB3YXJuaW5nIGZvciBjYXN0IGJldHdlZW4KCXBvaW50ZXIgYW5kIGludGVnZXIgb2YgZGlmZmVyZW50IHNpemUuCgoyMDAwLTA0LTEwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogaW5jL2N4eGFiaS5oIChfX3BvaW50ZXJfdHlwZV9pbmZvKTogQWRkIHJlc3RyaWN0IGFuZAoJaW5jb21wbGV0ZSBmbGFncy4KCShfX3BvaW50ZXJfdHlwZV9pbmZvOjpfX3BvaW50ZXJfY2F0Y2gpOiBOZXcgdmlydHVhbCBmdW5jdGlvbi4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbyk6IERlcml2ZSBmcm9tCglfX3BvaW50ZXJfdHlwZV9pbmZvLiBBZGp1c3QuCgkoX19wb2ludGVyX3RvX21lbWJlcl90eXBlX2luZm86Ol9fZG9fY2F0Y2gpOiBSZW1vdmUuCgkoX19wb2ludGVyX3RvX21lbWJlcl90eXBlX2luZm86Ol9faXNfcG9pbnRlcl9wKTogRGVjbGFyZS4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogRGVjbGFyZS4KCSogcnR0aS5jIChxdWFsaWZpZXJfZmxhZ3MpOiBBZGQgcmVzdHJpY3QgZmxhZy4KCShwdG1kX2luaXRpYWxpemVyKTogUmVvcmRlciBtZW1iZXJzLgoJKGNyZWF0ZV90aW5mb190eXBlcyk6IEV4cGFuZCBjb21tZW50cy4gUmVvcmRlcgoJcHRtZF9kZXNjX3R5cGVfbm9kZSBtZW1iZXJzLgoJKiB0aW5mbzIuY2MgKF9fcG9pbnRlcl90b19tZW1iZXJfdHlwZV9pbmZvOjpfX2lzX3BvaW50ZXJfcCk6CglJbXBsZW1lbnQuCgkoX19wb2ludGVyX3R5cGVfaW5mbzo6X19kb19jYXRjaCk6IE1vdmUgc3BlY2lmaWMgY29kZSBpbnRvCglfX3BvaW50ZXJfY2F0Y2guIENhbGwgaXQuCgkoX19wb2ludGVyX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogTm9uLXBvaW50ZXItdG8tbWVtYmVyCglzcGVjaWZpYyBjYXRjaCBjaGVja2luZy4gRml4IHZvaWQgY29udmVyc2lvbiBjaGVjay4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6X19kb19jYXRjaCk6IFJlbW92ZS4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogSW1wbGVtZW50LgoKMjAwMC0wNC0xMCAgTWFydGluIHYuIEz2d2lzICA8bG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlPgoKCSogbGV4LmMgKGluaXRfcGFyc2UpOiBSZW1vdmUgdHJhY2VzIG9mIGNsYXNzb2YgYW5kIGhlYWRvZi4KCSogZGVjbDIuYyAoZmxhZ19vcGVyYXRvcl9uYW1lcyk6IERlZmF1bHQgdG8gMS4KCShsYW5nX2RlY29kZV9vcHRpb24pOiBEbyBub3Qgc2V0IGl0IGZvciAtYW5zaS4KCjIwMDAtMDQtMDkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5nX2RlY2wpOiBSZW1vdmUgbWFpbl9kZWNsX3ZhcmlhbnQuCgkoREVDTF9NQUlOX1ZBUklBTlQpOiBSZW1vdmUuCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogRG9uJ3Qgc2V0IGl0LgoJKHN0YXJ0X2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkobGFuZ19tYXJrX3RyZWUpOiBEb24ndCBtYXJrIGl0LgoJKiBkZWNsMi5jIChkZWZlcl9mbik6IERvbid0IHVzZSBpdC4KCSogbGV4LmMgKHJldHJvZml0X2xhbmdfZGVjbCk6IERvbid0IHNldCBpdC4KCSogcHQuYyAodHN1YnN0X2RlY2wpOiBMaWtld2lzZS4KCSogcHRyZWUuYyAocHJpbnRfbGFuZ19kZWNsKTogRG9uJ3QgcHJpbnQgaXQuCgkqIHR5cGVjay5jIChtYXJrX2FkZHJlc3NhYmxlKTogRG9uJ3QgdXNlIGl0LgoKMjAwMC0wNC0wOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHZlYy5jYzogSW5jbHVkZSA8bmV3PiBhbmQgPGV4Y2VwdGlvbj4uCgkoX19jeGFfdmVjX2N0b3IpOiBVc2UgX19jeGFfdmVjX2R0b3IgZm9yIGNsZWFudXAuCgkoX19jeGFfdmVjX2R0b3IpOiBDYXRjaCBkdG9yIGV4Y2VwdGlvbnMsIGFuZCByZXRocm93IG9yCgl0ZXJtaW5hdGUuCgkoX19jeGFfdmVjX2RlbGV0ZSk6IENhdGNoIGR0b3IgZXhjZXB0aW9ucy4KCjIwMDAtMDQtMDkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUHJlcGVuZCBfXyB0byBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIG5hbWVzLgoJKiBpbmMvdHlwZWluZm8gKHR5cGVfaW5mbyk6IFJlbmFtZSBfbmFtZSB0byBfX25hbWUuCgkodHlwZV9pbmZvOjp0eXBlX2luZm8pOiBSZW5hbWUgcGFyYW1ldGVyLgoJKHR5cGVfaW5mbzo6b3BlcmF0b3I9PSwgdHlwZV9pbmZvOjpvcGVyYXRvciE9LAoJdHlwZV9pbmZvOjpiZWZvcmUpOiBMaWtld2lzZS4KCSh0eXBlX2luZm86OmlzX3BvaW50ZXJfcCwgdHlwZV9pbmZvOjppc19mdW5jdGlvbl9wLAoJdHlwZV9pbmZvOjpkb19jYXRjaCwgdHlwZV9pbmZvOjpkb191cGNhc3QpOiBQcmVwZW5kIF9fLiBSZW5hbWUKCXBhcmFtZXRlcnMuCgkqIGluYy9jeHhhYmkuaAoJKF9fZnVuZGFtZW50YWxfdHlwZV9pbmZvOjpfX2Z1bmRhbWVudGFsX3R5cGVfaW5mbykgUmVuYW1lIHBhcmFtZXRlcnMuCgkoX19wb2ludGVyX3R5cGVfaW5mbzo6X19wb2ludGVyX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fcG9pbnRlcl90eXBlX2luZm86OmlzX3BvaW50ZXJfcCwKCV9fcG9pbnRlcl90eXBlX2luZm86OmRvX2NhdGNoKTogUHJlcGVuZCBfXy4gUmVuYW1lIHBhcmFtZXRlcnMuCgkoX19hcnJheV90eXBlX2luZm86Ol9fYXJyYXlfdHlwZV9pbmZvKTogUmVuYW1lIHBhcmFtZXRlcnMuCgkoX19mdW5jdGlvbl90eXBlX2luZm86Ol9fZnVuY3Rpb25fdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoX19mdW5jdGlvbl90eXBlX2luZm86OmlzX2Z1bmN0aW9uX3ApOiBQcmVwZW5kIF9fLgoJKF9fZW51bV90eXBlX2luZm86Ol9fZW51bV90eXBlX2luZm8pOiBSZW5hbWUgcGFyYW1ldGVycy4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6X19wb2ludGVyX3RvX21lbWJlcl90eXBlX2luZm8pOgoJTGlrZXdpc2UuCgkoX19wb2ludGVyX3RvX21lbWJlcl90eXBlX2luZm86OmRvX2NhdGNoKTogUHJlcGVuZCBfXy4gUmVuYW1lCglwYXJhbWV0ZXJzLgoJKF9fYmFzZV9jbGFzc19pbmZvOjppc192aXJ0dWFsX3AsIGlzX3B1YmxpY19wLCBvZmZzZXQpOiBQcmVwZW5kCV9fLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpfX2NsYXNzX3R5cGVfaW5mbyk6IFJlbmFtZSBwYXJhbWV0ZXJzLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpzdWJfa2luZCk6IFByZXBlbmQgX18uIEFkanVzdCBtZW1iZXIgbmFtZXMuCgkoX19jbGFzc190eXBlX2luZm86OnVwY2FzdF9yZXN1bHQsCglfX2NsYXNzX3R5cGVfaW5mbzo6ZHluY2FzdF9yZXN1bHQpOiBQcmVwZW5kIF9fLiBNb3ZlIGRlZmluaXRpb24KCWludG8gdGluZm8uY2MuCgkoX19jbGFzc190eXBlX2luZm86OmRvX3VwY2FzdCwgX19jbGFzc190eXBlX2luZm86OmRvX2NhdGNoLAoJX19jbGFzc190eXBlX2luZm86OmZpbmRfcHVibGljX3NyYywKCV9fY2xhc3NfdHlwZV9pbmZvOjpkb19keW5jYXN0LAoJX19jbGFzc190eXBlX2luZm86OmRvX2ZpbmRfcHVibGljX3NyYyk6IFByZXBlbmQgX18uIFJlbmFtZQoJcGFyYW1ldGVycy4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6X19zaV9jbGFzc190eXBlX2luZm8pOiBSZW5hbWUgcGFyYW1ldGVycy4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6ZG9fdXBjYXN0LCBfX3NpX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCwKCV9fc2lfY2xhc3NfdHlwZV9pbmZvOjpkb19maW5kX3B1YmxpY19zcmMpOiBQcmVwZW50IF9fLiBSZW5hbWUKCXBhcmFtZXRlcnMuCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpfX3ZtaV9jbGFzc190eXBlX2luZm8pOiBSZW5hbWUgcGFyYW1ldGVycy4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86OmRvX3VwY2FzdCwgX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb19keW5jYXN0LAoJX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb19maW5kX3B1YmxpY19zcmMpOiBQcmVwZW50IF9fLiBSZW5hbWUKCXBhcmFtZXRlcnMuCgkoX19keW5hbWljX2Nhc3QpOiBSZW5hbWUgcGFyYW1ldGVycy4KCSogdGluZm8uY2MgKHR5cGVfaW5mbzo6aXNfcG9pbnRlcl9wLCB0eXBlX2luZm86OmlzX2Z1bmN0aW9uX3AsCgl0eXBlX2luZm86OmRvX2NhdGNoLCB0eXBlX2luZm86OmRvX3VwY2FzdCk6IFByZXBlbmQgX18uCgkoY29udGFpbmVkX3AsIHB1YmxpY19wLCB2aXJ0dWFsX3AsIGNvbnRhaW5lZF9wdWJsaWNfcCwKCWNvbnRhaW5lZF9ub25wdWJsaWNfcCwgY29udGFpbmVkX25vbnZpcnR1YWxfcCk6IEFkanVzdC4KCShfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fY2F0Y2gsCglfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fdXBjYXN0KTogUHJlcGVuZCBfXy4gQWRqdXN0LgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpfX3VwY2FzdF9yZXN1bHQsCglfX2NsYXNzX3R5cGVfaW5mbzo6X19keW5jYXN0X3Jlc3VsdCk6IE1vdmUgZnJvbSBpbmMvY3h4YWJpLmguCglBZGp1c3QuCgkoX19jbGFzc190eXBlX2luZm86OmZpbmRfcHVibGljX3NyYyk6IFByZXBlbmQgX18uIEFkanVzdC4KCShfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3JjLAoJX19zaV9jbGFzc190eXBlX2luZm86OmRvX2ZpbmRfcHVibGljX3NyYywKCV9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3JjKTogTGlrZXdpc2UuCgkoX19jbGFzc190eXBlX2luZm86OmRvX2R5bmNhc3QsCglfX3NpX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCwKCV9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IExpa2V3aXNlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QsCglfX3NpX2NsYXNzX3R5cGVfaW5mbzo6ZG9fdXBjYXN0LAoJX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QpOiBMaWtld2lzZS4KCShfX2R5bmFtaWNfY2FzdCk6IEFkanVzdC4KCSogdGluZm8yLmNjIChfX3BvaW50ZXJfdHlwZV9pbmZvOjppc19wb2ludGVyX3ApOiBQcmVwZW5kIF9fLgoJKF9fZnVuY3Rpb25fdHlwZV9pbmZvOjppc19mdW5jdGlvbl9wKTogTGlrZXdpc2UuCgkoX19wb2ludGVyX3R5cGVfaW5mbzo6ZG9fY2F0Y2gpOiBMaWtld2lzZS4gQWRqdXN0LgoJKF9fcG9pbnRlcl90b19tZW1iZXJfdHlwZV9pbmZvOjpkb19jYXRjaCk6IExpa2V3aXNlLiBBZGp1c3QuCgkoX190aHJvd190eXBlX21hdGNoX3J0dGlfMik6IEFkanVzdC4KCShfX2lzX3BvaW50ZXIpOiBBZGp1c3QuCgoyMDAwLTA0LTA4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChjcF90cmVlX2luZGV4KTogQWRkIENQVElfQ09NUExFVEVfQ1RPUl9JREVOVElGSUVSLgoJKGNvbXBsZXRlX2N0b3JfaWRlbnRpZmllcik6IE5ldyBtYWNyby4KCShzcGVjaWFsX2Z1bmN0aW9uX2tpbmQpOiBBZGQgc2ZrX2NvcHlfY29uc3RydWN0b3IgYW5kCglzZmtfYXNzaWdubWVudF9vcGVyYXRvci4KCShMT09LVVBfSEFTX0lOX0NIQVJHRSk6IFJlbW92ZS4KCShjb25zX3VwX2RlZmF1bHRfZnVuY3Rpb24pOiBSZW5hbWUgdG8gLi4uCgkoaW1wbGljaXRseV9kZWNsYXJlX2ZuKTogLi4uIHRoaXMuCgkqIGNhbGwuYyAoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogQWRkIGluLWNoYXJnZSBwYXJhbWV0ZXJzIGZvcgoJY29uc3RydWN0b3JzIGhlcmUuCgkqIGNsYXNzLmMgKGFkZF9pbXBsaWNpdGx5X2RlY2xhcmVkX21lbWJlcnMpOiBDaGFuZ2UgcGFyYW1ldGVyIG5hbWUKCWZyb20gY2FudF9oYXZlX2Fzc2lnbm1lbnQgdG8gY2FudF9oYXZlX2NvbnN0X2Fzc2lnbm1lbnQuCglSZXBsYWNlIGNhbGxzIHRvIGNvbnNfdXBfZGVmYXVsdF9mdW5jdGlvbiB0byBpbXBsaWNpdGx5X2RlY2xhcmVfZm4uCgkqIGN2dC5jIChvY3BfY29udmVydCk6IFVzZSBjb21wbGV0ZV9jdG9yX2lkZW50aWZpZXIuCgkqIGRlY2wuYyAoaW5pdGlhbGl6ZV9wcmVkZWZpbmVkX2lkZW50aWZpZXJzKTogSW5pdGlhbGl6ZSBpdC4KCShzdGFydF9mdW5jdGlvbik6IFVzZSBERUNMX0NPTlNUUlVDVE9SX0ZPUl9WQkFTRV9QIGluc3RlYWQgb2YKCWNvbXBsZXggZXhwcmVzc2lvbi4KCSogaW5pdC5jIChleHBhbmRfZGVmYXVsdF9pbml0KTogRG9uJ3QgY2FsY3VsYXRlIHRoZSBpbi1jaGFyZ2UKCXBhcmFtZXRlciBoZXJlLgoJKGJ1aWxkX25ld18xKTogTGlrZXdpc2UuCgkqIGxleC5jIChjb25zX3VwX2RlZmF1bHRfZnVuY3Rpb24pOiBNb3ZlIHRvIG1ldGhvZC5jLgoJKiBtZXRob2QuYyAoc3ludGhlc2l6ZV9tZXRob2QpOiBVc2UgREVDTF9ERVNUUlVDVE9SX1AuCgkoaW1wbGljaXRseV9kZWNsYXJlX2ZuKTogTmV3IGZ1bmN0aW9uLgoJKiB0eXBlY2suYyAoYnVpbGRfc3RhdGljX2Nhc3QpOiBVc2UgY29tcGxldGVfY3Rvcl9pZGVudGlmaWVyLgoJKGJ1aWxkX21vZGlmeV9leHByKTogTGlrZXdpc2UuCgkqIHR5cGVjazIuYyAoYnVpbGRfZnVuY3Rpb25hbF9jYXN0KTogTGlrZXdpc2UuCgoJVW5kZXIgdGhlIG5ldyBBQkksIGNvbnN0cnVjdG9ycyBkb24ndCByZXR1cm4gYHRoaXMnLgoJKiBjcC10cmVlLmggKHdhcm5fcmVvcmRlcik6IERlY2xhcmUuCgkoc3BlY2lhbF9mdW5jdGlvbl9raW5kKTogTmV3IGVudW0uCgkoZ2xvYmFsX2Jhc2VfaW5pdF9saXN0KTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKGVtaXRfYmFzZV9pbml0KTogRG9uJ3QgcmV0dXJuIGEgdmFsdWUuCgkoY2hlY2tfYmFzZV9pbml0KTogRG9uJ3QgZGVjbGFyZS4KCShpc19hZ2dyX3R5cGVkZWYpOiBMaWtld2lzZS4KCSogZGVjbC5jIChjaGVja19zcGVjaWFsX2Z1bmN0aW9uX3JldHVybl90eXBlKTogTmV3IGZ1bmN0aW9uLgoJKHJldHVybl90eXBlcyk6IFJlbW92ZS4KCShncm9rZGVjbGFyYXRvcik6IFVzZSBjaGVja19zcGVjaWFsX2Z1bmN0aW9uX3JldHVybl90eXBlLgoJKHN0YXJ0X2Z1bmN0aW9uKTogRG9uJ3QgaW5pdGlhbGl6ZSBjdG9yX2xhYmVsIHVuZGVyIHRoZSBuZXcgQUJJLgoJKGZpbmlzaF9jb25zdHJ1dG9yX2JvZHkpOiBEb24ndCBjcmVhdGUgYSBjb3JyZXNwb25kaW5nIExBQkVMX1NUTVQuCgkqIGluaXQuYyAoYmVnaW5faW5pdF9zdG10cyk6IE1vdmUgdG8gdG9wIG9mIGZpbGUuCgkoZmluaXNoX2luaXRfc3RtdHMpOiBMaWtld2lzZS4KCSh3YXJuX3Jlb3JkZXIpOiBEb24ndCBkZWNsYXJlLgoJKGVtaXRfYmFzZV9pbml0KTogRG9uJ3QgY3JlYXRlIGEgU1RNVF9FWFBSIGhlcmUuICBEb24ndCByZXR1cm4gYQoJdmFsdWUuCgkoY2hlY2tfYmFzZV9pbml0KTogUmVtb3ZlLgoJKGlzX2FnZ3JfdHlwZWRlZik6IExpa2V3aXNlLgoJKGJ1aWxkX25ld18xKTogRG9uJ3QgdXNlIHRoZSByZXR1cm4gdmFsdWUgb2YgYSBjb25zdHJ1Y3Rvci4KCSogc2VtYW50aWNzLmMgKHNldHVwX3Z0YmxfcHRyKTogRG9uJ3QgdXNlIHRoZSByZXR1cm4gdmFsdWUKCW9mIGVtaXRfYmFzZV9pbml0LgoJKiB0eXBlY2suYyAoY2hlY2tfcmV0dXJuX2V4cHIpOiBEb24ndCBtYWdpY2FsbHkgY29udmVydCByZXR1cm4KCXN0YXRlbWVudHMgaW50byBgcmV0dXJuIHRoaXMnIGluIGNvbnN0cnVjdG9ycyB1bmRlciB0aGUgbmV3IEFCSS4KCgkqIGNwLXRyZWUuaCAoY3BfdHJlZV9pbmRleCk6IEFkZCBDUFRJX0JBU0VfQ1RPUl9JREVOVElGSUVSLAoJQ1BUSV9CQVNFX0RUT1JfSURFTlRJRklFUiwgYW5kIENQVElfREVMRVRJTkdfRFRPUl9JREVOVElGSUVSLgoJKGJhc2VfY3Rvcl9pZGVudGlmaWVyKTogTmV3IG1hY3JvLgoJKGJhc2VfZHRvcl9pZGVudGlmaWVyKTogTGlrZXdpc2UuCgkoZGVsZXRpbmdfZHRvcl9pZGVudGlmaWVyKTogTGlrZXdpc2UuCgkqIGRlY2wuYzogRG9uJ3QgaW5jbHVkZSBvYnN0YWNrLmguCgkob2JzdGFja19jaHVua19hbGxvYyk6IERvbid0IGRlZmluZS4KCShvYnN0YWNrX2NodW5rX2ZyZWUpOiBMaWtld2lzZS4KCShzdHJ1Y3QgcHJlZGVmaW5lZF9pZGVudGlmaWVyKTogTmV3IHR5cGUuCgkoaW5pdGlhbGl6ZV9wcmVkZWZpbmVkX2lkZW50aWZpZXJzKTogTmV3IGZ1bmN0aW9uLgoJKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogVXNlIGl0LgoJKGRlYnVnX3RlbXBfaW5pdHMpOiBSZW1vdmUuCgkoc3RhcnRfbWV0aG9kKTogRG9uJ3QgY2FsbCBwcmVzZXJ2ZV9kYXRhLgoJKGhhY2tfaW5jb21wbGV0ZV9zdHJ1Y3R1cmVzKTogVXBkYXRlIGNvbW1lbnQuCgkqIGluaXQuYyAoaW5pdF9pbml0X3Byb2Nlc3NpbmcpOiBEb24ndCBpbml0aWFsaXplCgluZWx0c19pZGVudGlmaWVyLgoJKGJ1aWxkX29mZnNldF9yZik6IFJlbW92ZSBkZWFkIGNvZGUuCgkoYnVpbGRfZGVsZXRlKTogVXNlIENMQVNTVFlQRV9OX0JBU0VDTEFTU0VTLgoJKiBzZWFyY2guYyAoaW5pdF9zZWFyY2hfcHJvY2Vzc2luZyk6IERvbid0IGluaXRpYWxpemUKCXZwdHJfaWRlbnRpZmllci4KCjIwMDAtMDQtMDggIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIHR5cGVjay5jIChidWlsZF9iaW5hcnlfb3ApOiBDYWxsIGB0cmVlX2V4cHJfbm9ubmVnYXRpdmVfcCcgdG8gZWxpZGUKCXNvbWUgc2lnbl9jb21wYXJlIHdhcm5pbmdzLgoKMjAwMC0wNC0wNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglSZW5hbWUgYWJpOjpfX3ZtaV9jbGFzc190eXBlX2luZm8gbWVtYmVycy4KCSogaW5jL2N4eGFiaS5oIChfX3ZtaV9jbGFzc190eXBlX2luZm8pOiBSZW5hbWUgZGV0YWlscywgbl9iYXNlcywKCWJhc2VfbGlzdCwgZGV0YWlsX21hc2tzIG1lbWJlcnMgdG8gdm1pX2ZsYWdzLCB2bWlfYmFzZV9jb3VudCwKCXZtaV9iYXNlcyBhbmQgdm1pX2ZsYWdzX21hc2tzIHJlc3BlY3RpdmVseS4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86OnZtaV9mbGFnc19tYXNrcyk6IFJlbmFtZQoJZGV0YWlsc191bmtub3duX21hc2sgdG8gZmxhZ3NfdW5rbm93bl9tYXNrLgoJKiB0aW5mby5jYyAoX19jbGFzc190eXBlX2luZm86OmRvX3VwY2FzdCk6IEFkanVzdC4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86OmRvX2ZpbmRfcHVibGljX3NyYyk6IEFkanVzdC4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86OmRvX2R5bmNhc3QpOiBBZGp1c3QuCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QpOiBBZGp1c3QuCgoyMDAwLTA0LTA3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdGluZm8uY2MgKGNvbnZlcnRfdG9fYmFzZSk6IE5ldyBmdW5jdGlvbi4KCShnZXRfdmJhc2Vfb2Zmc2V0KTogUmVtb3ZlLiBNb3ZlIGludG8gY29udmVydF90b19iYXNlLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3JjKTogQWRqdXN0LgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IEFkanVzdC4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86OmRvX3VwY2FzdCk6IEFkanVzdC4KCjIwMDAtMDQtMDYgIEphc29uIE1lcnJpbGwgIDxqYXNvbkB5b3JpY2suY3lnbnVzLmNvbT4KCgkqIHRpbmZvLmNjIChvcGVyYXRvcj0pOiBVc2UgX19idWlsdGluX3N0cmNtcC4KCSogdGluZm8yLmNjIChiZWZvcmUpOiBMaWtld2lzZS4KCjIwMDAtMDQtMDYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGxhbmdfZGVjbF9mbGFncyk6IFJlbmFtZSBzYXZlZF9pbmxpbmUgdG8gZGVmZXJyZWQuCgkoREVDTF9TQVZFRF9JTkxJTkUpOiBSZW5hbWUgdG8gLi4uCgkoREVDTF9ERUZFUlJFRF9GTik6IC4uLiB0aGlzLgoJKGluX2Z1bmN0aW9uX3ApOiBSZW1vdmUgZGVjbGFyYXRpb24uCgkobWFya19pbmxpbmVfZm9yX291dHB1dCk6IFJlbmFtZSB0byAuLi4KCShkZWZlcl9mbik6IC4uLiB0aGlzLgoJKiBkZWNsLmMgKGZpbmlzaF9mdW5jdGlvbik6IEFkanVzdCBjYWxsIHRvIG1hcmtfaW5saW5lX2Zvcl9vdXRwdXQuCgkoaW5fZnVuY3Rpb25fcCk6IFJlbW92ZSBkZWZpbml0aW9uLgoJKiBkZWNsMi5jIChzYXZlZF9pbmxpbmVzKTogUmVuYW1lIHRvIC4uLgoJKGRlZmVycmVkX2Zucyk6IC4uLiB0aGlzLgoJKHNhdmVkX2lubGluZXNfdXNlZCk6IFJlbmFtZSB0byAuLi4KCShkZWZlcnJlZF9mbnNfdXNlZCk6IC4uLiB0aGlzLgoJKG1hcmtfaW5saW5lX2Zvcl9vdXRwdXQpOiBSZW5hbWUgdG8gLi4uCgkoZGVmZXJfZm4pOiAuLi4gdGhpcy4KCShmaW5pc2hfZmlsZSk6IEFkanVzdCBhY2NvcmRpbmdseS4KCShpbml0X2RlY2wyKTogTGlrZXdpc2UuCgkqIGxleC5jIChjb25zX3VwX2RlZmF1bHRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCSogcHQuYyAobWFya19kZWNsX2luc3RhbnRpYXRlZCk6IExpa2V3aXNlLgoJKGluc3RhbnRpYXRlX2RlY2wpOiBEb24ndCBzZXQgREVDTF9ERUZFUl9PVVRQVVQgdW5kZXIgYW55CgljaXJjdW1zdGFuY2VzLgoJKiBydHRpLmMgKGdldF90aW5mb19kZWNsKTogQWRqdXN0IGNhbGwgdG8gbWFya19pbmxpbmVfZm9yX291dHB1dC4KCSogc2VtYW50aWNzLmMgKGV4cGFuZF9ib2R5KTogRGVmZXIgbW9yZSBmdW5jdGlvbnMuCgoyMDAwLTA0LTA2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdmVjLmNjOiBOZXcgZmlsZS4KCSogTWFrZS1sYW5nLmluIChDWFhfTElCMkZVTkNTKTogQWRkIGl0LgoJKHZlYy5vKTogQnVpbGQgaXQuCgkqIGluYy9jeHhhYmkuaCAoX19jeGFfdmVjX25ldywgX19jeGFfdmVjX2N0b3IsIF9fY3hhX3ZlY19kdG9yLAoJX19jeGFfdmVjX2RlbGV0ZSk6IERlY2xhcmUuCgoyMDAwLTA0LTA2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcnR0aS5jIChkZnNfY2xhc3NfaGludF9tYXJrKTogTmV3IHN0YXRpYyBmdW5jdGlvbi4KCShkZnNfY2xhc3NfaGludF91bm1hcmspOiBOZXcgc3RhdGljIGZ1bmN0aW9uLgoJKGNsYXNzX2hpbnRfZmxhZ3MpOiBVc2UgdGhlbS4KCjIwMDAtMDQtMDUgIEJlbmphbWluIEtvc25payAgPGJrb3pAY3lnbnVzLmNvbT4KCgkqIGRlY2wyLmM6IE1ha2UgZmxhZ19ob25vcl9zdGQgZGVwZW5kZW50IG9uIEVOQUJMRV9TVERfTkFNRVNQQUNFLgoKMjAwMC0wNC0wNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoaW5zdGFudGlhdGVfZGVjbCk6IENoYW5nZSBwcm90b3R5cGUuCgkqIGRlY2wyLmMgKG1hcmtfdXNlZCk6IEFkanVzdCBjYWxsLgoJKiBvcHRpbWl6ZS5jIChpbmxpbmFibGVfZnVuY3Rpb25fcCk6IEFkanVzdCBoYW5kbGluZyBvZiB0ZW1wbGF0ZXMuCgkqIHB0LmMgKGRvX2RlY2xfaW5zdGFudGlhdGlvbik6IEFkanVzdCBjYWxsIHRvIGluc3RhbnRpYXRlX2RlY2wuCgkoZG9fdHlwZV9pbnN0YW50aWF0aW9uKTogTGlrZXdpc2UuCgkoaW5zdGFudGlhdGVfZGVjbCk6IERlZmVyIG1vcmUgdGVtcGxhdGVzLgoJKGluc3RhbnRpYXRlX3BlbmRpbmdfdGVtcGxhdGVzKTogQWRqdXN0IGxvZ2ljIHRvIGhhbmRsZSBpbmxpbmUKCWZyaWVuZCBmdW5jdGlvbnMuCgoJKiBNYWtlZmlsZS5pbiAoR0dDX0gpOiBOZXcgdmFyaWFibGUuICBVc2UgaXQgdGhyb3VnaG91dCBpbiBwbGFjZQoJb2YgZ2djLmguCgoJKiBjYWxsLmM6IERvbid0IGluY2x1ZGUgb2JzdGFjay5oLiAgSW5jbHVkZSBnZ2MuaC4KCShvYnN0YWNrX2NodW5rX2FsbG9jKTogRG9uJ3QgZGVmaW5lLgoJKG9ic3RhY2tfY2h1bmtfZnJlZSk6IExpa2V3aXNlLgoJKGFkZF9jYW5kaWRhdGUpOiBBbGxvY2F0ZSB0aGUgel9jYW5kaWRhdGUgd2l0aCBnZ2NfYWxsb2Nfb2JqLgoJKiBkZWNsLmMgKHB1c2hfc3dpdGNoKTogVXNlIHhtYWxsb2MgdG8gYWxsb2NhdGUgdGhlIGNwX3N3aXRjaC4KCShwb3Bfc3dpdGNoKTogRnJlZSBpdC4KCgkqIGRlY2wyLmMgKGdyb2tjbGFzc2ZuKTogU2V0IFRSRUVfUkVBRE9OTFkgZm9yIFBBUk1fREVDTHMuCgoJKiBkdW1wLmMgKGRlcXVldWVfYW5kX2R1bXApOiBEb24ndCB0cnkgdG8gcHJpbnQgdGhlIGJpdF9wb3NpdGlvbgoJaWYgd2UgZG9uJ3QgaGF2ZSBhIERFQ0xfRklFTERfT0ZGU0VULgoKV2VkIEFwciAgNSAxNToxMjoxOCBNRVQgRFNUIDIwMDAgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIG9wdGltaXplLmMgKGNhbGxzX3NldGptcF9yKTogVXNlIHNldGptcF9jYWxsX3AgaW5zdGVhZCBvZgoJc3BlY2lhbF9mdW5jdGlvbl9wLgoKMjAwMC0wNC0wNCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogY2Zucy5ncGVyZiAoaGFzaCwgbGliY19uYW1lX3ApOiBQcm90b3R5cGUuCgoJKiBydHRpLmMgKGJ1aWxkX2R5bmFtaWNfY2FzdF8xKTogQ29uc3RpZmljYXRpb24uCgoJKiBzZWFyY2guYyAoZGZzX2RlYnVnX3VubWFya2VkcCwgZGZzX2RlYnVnX21hcmspOiBVbmhpZGUgcHJvdG90eXBlcy4KCgkqIHNlbWFudGljcy5jIChkZWZlcnJlZF90eXBlX2FjY2Vzc19jb250cm9sKTogUHJvdG90eXBlLgoKMjAwMC0wNC0wNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglDb3JyZWN0IG1hbnkgbmV3IEFCSSBpc3N1ZXMgcmVnYXJkaW5nIHZiYXNlIGFuZCB2Y2FsbCBvZmZzZXQKCWxheW91dC4KCSogY3AtdHJlZS5oIChCSU5GT19WVEFCTEUpOiBEb2N1bWVudC4KCShzdHJ1Y3QgbGFuZ190eXBlKTogVHdlYWsgZm9ybWF0dGluZy4KCShCSU5GT19QUklNQVJZX0JJTkZPKTogQWRkIHRvIGRvY3VtZW50YXRpb24uCgkoQ0xBU1NUWVBFX1ZTSVpFKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShDTEFTU1RZUEVfVkJBU0VDTEFTU0VTKTogVXBkYXRlIGRvY3VtZW50YXRpb24uCgkoQklORk9fVkJBU0VfTUFSS0VEKTogUmVtb3ZlLgoJKFNFVF9CSU5GT19WQkFTRV9NQVJLRUQpOiBMaWtld2lzZS4KCShDTEVBUl9CSU5GT19WQkFTRV9NQVJLRUQpOiBMaWtld2lzZS4KCShCSU5GT19GSUVMRFNfTUFSS0VEKTogUmVtb3ZlLgoJKFNFVF9CSU5GT19GSUVMRFNfTUFSS0VEKTogTGlrZXdpc2UuCgkoQ0xFQVJfQklORk9fRklFTERTX01BUktFRCk6IExpa2V3aXNlLgoJKGVudW0gYWNjZXNzX2tpbmQpOiBOZXcgZW51bWVyYXRpb24uCgkobnVtX2V4dHJhX3Z0YmxfZW50cmllcyk6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCShzaXplX2V4dHJhX3Z0YmxfZW50cmllcyk6IExpa2V3aXNlLgoJKGdldF92dGJsX2RlY2xfZm9yX2JpbmZvKTogTmV3IGZ1bmN0aW9uLgoJKGRmc192YmFzZV91bm1hcmspOiBSZW1vdmUgZGVjbGFyYXRpb24uCgkobWFya19wcmltYXJ5X2Jhc2VzKTogTGlrZXdpc2UuCgkqIGNsYXNzLmMgKFNBTUVfRk4pOiBSZW1vdmUuCgkoc3RydWN0IHZjYWxsX29mZnNldF9kYXRhX3MpOiBNb3ZlIGRlZmluaXRpb24uCgkoYnVpbGRfdmJhc2VfcG9pbnRlcik6IFVzZSBgYnVpbGQnLCBub3QgYGJ1aWxkX2JpbmFyeV9vcCcsIHRvCglhY2Nlc3MgdGhlIHZiYXNlIHBvaW50ZXIgdW5kZXIgdGhlIG5ldyBBQkkuCgkoYnVpbGRfdnRhYmxlX2VudHJ5X3JlZik6IFVzZSBnZXRfdnRibF9kZWNsX2Zvcl9iaW5mby4KCShidWlsZF9wcmltYXJ5X3Z0YWJsZSk6IExpa2V3aXNlLgoJKGRmc19tYXJrX3ByaW1hcnlfYmFzZXMpOiBNb3ZlIGhlcmUgZnJvbSBzZWFyY2guYy4KCShtYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCShkZXRlcm1pbmVfcHJpbWFyeV9iYXNlcyk6IFVuZGVyIHRoZSBuZXcgQUJJLCBkb24ndCBtYWtlIGEgYmFzZQoJY2xhc3MgYSBwcmltYXJ5IGJhc2UganVzdCBiZWNhdXNlIHdlIGRvbid0IHlldCBoYXZlIGFueSB2aXJ0dWFsCglmdW5jdGlvbnMuCgkobGF5b3V0X3Z0YWJsZV9kZWNsKTogVXNlIGdldF92dGJsX2RlY2xfZm9yX2JpbmZvLgoJKG51bV92ZnVuX2VudHJpZXMpOiBSZW1vdmUuCgkoZGZzX2NvdW50X3ZpcnR1YWxzKTogTGlrZXdpc2UuCgkobnVtX2V4dHJhX3Z0YmxfZW50cmllcyk6IExpa2V3aXNlLgoJKHNpemVfZXh0cmFfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkobGF5b3V0X3ZpcnR1YWxfYmFzZXMpOiBJdGVyYXRlIGluIGluaGVyaXRhbmNlIGdyYXBoIG9yZGVyIHVuZGVyCgl0aGUgbmV3IEFCSS4KCShmaW5pc2hfc3RydWN0XzEpOiBVc2UgVFlQRV9WRklFTEQsIG5vdCBDTEFTU1RZUEVfVlNJWkUsIHRvCglpbmRpY2F0ZSB0aGF0IGEgdmZpZWxkIGlzIHByZXNlbnQuCgkoaW5pdF9jbGFzc19wcm9jZXNzaW5nKTogSW5pdGlhbGl6ZSBhY2Nlc3NfcHVibGljX25vZGUsIGV0Yy4sIGZyb20KCWFrX3B1YmxpYywgZXRjLgoJKGdldF92dGJsX2RlY2xfZm9yX2JpbmZvKTogTmV3IGZ1bmN0aW9uLgoJKGR1bXBfY2xhc3NfaGllcmFyY2h5X3IpOiBMaWtld2lzZS4KCShkdW1wX2NsYXNzX2hpZXJhcmNoeSk6IFVzZSBpdC4KCShmaW5pc2hfdnRibHMpOiBCdWlsZCB0aGUgdnRibHMgaW4gaW5oZXJpdGFuY2UgZ3JhcGggb3JkZXIuCgkoZGZzX2ZpbmlzaF92dGJscyk6IEFkanVzdCBjYWxsIHRvIGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIuCgkoaW5pdGlhbGl6ZV92dGFibGUpOiBVc2UgZ2V0X3Z0YmxfZGVjbF9mb3JfYmluZm8uCgkoYWNjdW11bGF0ZV92dGJsX2luaXRzKTogQWRkIGNvbW1lbnRzIGV4cGxhaW5pbmcgd2h5IGEgcHJlLW9yZGVyCgl3YWxrIGlzIHJlcXVpcmVkLgoJKGRmc19hY2N1bXVsYXRlX3Z0YmxfaW5pdHMpOiBTZXQgQklORk9fVlRBQkxFIHRvIHRoZSBsb2NhdGlvbgoJd2hlcmUgdGhlIHZwdHIgcG9pbnRzLCBldmVuIGZvciBwcmltYXJ5IHZ0YWJsZXMuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IEFkanVzdCBoYW5kbGluZyBvZiB2YmFzZSBhbmQgdmNhbGwKCW9mZnNldHMuCgkoYnVpbGRfdmNhbGxfYW5kX3ZiYXNlX3Z0YWJsZV9lbnRyaWVzKTogTmV3IGZ1bmN0aW9uLgoJKGRmc19idWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogUmVtb3ZlLgoJKGJ1aWxkX3ZiYXNlX29mZnNldF92dGJsX2VudHJpZXMpOiBSZWltcGxlbWVudC4KCShkZnNfYnVpbGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IERvbid0IGluY2x1ZGUgdmlydHVhbHMgdGhhdAoJd2VyZSBhbHJlYWR5IGhhbmRsZWQgaW4gYSBwcmltYXJ5IGJhc2UgY2xhc3MgdnRhYmxlLgoJKGJ1aWxkX3ZjYWxsX29mZnNldF92dGJsX2VudHJpZXMpOiBBZGp1c3QuCgkoYnVpbGRfcnR0aV92dGJsX2VudHJpZXMpOiBBZGp1c3QuCgkqIGRlY2wyLmMgKG91dHB1dF92dGFibGVfaW5oZXJpdCk6IFVzZSBnZXRfdnRibF9kZWNsX2Zvcl9iaW5mby4KCSogaW5pdC5jIChleHBhbmRfdmlydHVhbF9pbml0KTogU2ltcGxpZnkuCgkqIHJlcG8uYyAocmVwb19nZXRfaWQpOiBVc2UgZ2V0X3Z0YmxfZGVjbF9mb3JfYmluZm8uCgkqIHJ0dGkuYyAoY3JlYXRlX3BzZXVkb190eXBlX2luZm8pOiBBZGp1c3QgY2FsY3VsYXRpb24gb2YgdnB0ci4KCSogc2VhcmNoLmMgKEJJTkZPX0FDQ0VTUyk6IE5ldyBtYWNyby4KCShTRVRfQklORk9fQUNDRVNTKTogTGlrZXdpc2UuCgkoZGZzX2FjY2Vzc19pbl90eXBlKTogTWFuaXB1bGF0ZSBhY2Nlc3Nfa2luZHMsIG5vdCBhY2Nlc3Mgbm9kZXMuCgkoYWNjZXNzX2luX3R5cGUpOiBMaWtld2lzZS4KCShkZnNfYWNjZXNzaWJsZV9wKTogTGlrZXdpc2UuCgkocHJvdGVjdGVkX2FjY2Vzc2libGVfcCk6IExpa2V3aXNlLgoJKGxvb2t1cF9mbmZpZWxkc18xKTogQWRqdXN0IGRvY3VtZW50YXRpb24uCgkoZGZzX21hcmtfcHJpbWFyeV9iYXNlcyk6IE1vdmUgdG8gY2xhc3MuYwoJKG1hcmtfcHJpbWFyeV9iYXNlcyk6IExpa2V3aXNlLgoJKGRmc192YmFzZV91bm1hcmspOiBSZW1vdmUuCgkodmlydHVhbF9jb250ZXh0KTogVXNlIEJJTkZPX0ZPUl9WQkFTRS4KCShkZnNfZ2V0X3ZiYXNlX3R5cGVzKTogU2ltcGxpZnkuCgkoZGZzX2J1aWxkX2luaGVyaXRhbmNlX2dyYXBoX29yZGVyKTogTmV3IGZ1bmN0aW9uLgoJKGdldF92YmFzZV90eXBlcyk6IFVzZSBpdC4KCSogdHJlZS5jIChkZWJ1Z19iaW5mbyk6IFVzZSBnZXRfdnRibF9kZWNsX2Zvcl9iaW5mby4KCgkqIHRpbmZvLmNjIChnZXRfdmJhc2Vfb2Zmc2V0KTogTmV3IGZ1bmN0aW9uLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3JjKTogVXNlIGl0LgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IExpa2V3aXNlLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fdXBjYXN0KTogTGlrZXdpc2UuCgoyMDAwLTA0LTAzICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuY3VtYi5vcmc+CgoJKiBsYW5nLXNwZWNzLmg6IFBhc3MgLWZuby1zaG93LWNvbHVtbiB0byB0aGUgcHJlcHJvY2Vzc29yLgoKMjAwMC0wMy0zMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHJ0dGkuYyAoY2xhc3NfaGludF9mbGFncyk6IFJlbmFtZSBmbGFncy4KCShjbGFzc19pbml0aWFsaXplcik6IFJlbW92ZSBmbGFncy4KCShzeW50aGVzaXplX3RpbmZvX3Zhcik6IENvbWJpbmUgb2Zmc2V0IGFuZCBmbGFncy4gQWRkIGZsYWdzCglmb3IgX192bWlfY2xhc3NfdHlwZV9pbmZvLgoJKGNyZWF0ZV90aW5mb190eXBlcyk6IFJlbW92ZSBmbGFncyBmcm9tIF9fY2xhc3NfdHlwZV9pbmZvIGFuZAoJX19zaV9jbGFzc190eXBlX2luZm8uIE1lcmdlIGZsYWdzIGFuZCBvZmZzZXQgZnJvbQoJYmFzZV9jbGFzc190eXBlX2luZm8uCgkqIGluYy9jeHhhYmkuaCAoX19iYXNlX2NsYXNzX2luZm8pOiBNZXJnZSBvZmZzZXQgYW5kIHZtaV9mbGFncy4KCShfX2Jhc2VfY2xhc3NfaW5mbzo6aXNfdmlydHVhbF9wKTogQWRqdXN0LgoJKF9fYmFzZV9jbGFzc19pbmZvOjppc19wdWJsaWNfcCk6IEFkanVzdC4KCShfX2Jhc2VfY2xhc3NfaW5mbzo6b2Zmc2V0KTogTmV3IGFjY2Vzc29yLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpkZXRhaWxzKTogUmVtb3ZlIG1lbWJlci4KCShfX2NsYXNzX3R5cGVfaW5mbzo6X19jbGFzc190eXBlX2luZm8pOiBMb3NlIGRldGFpbHMuCgkoX19jbGFzc190eXBlX2luZm86OmRldGFpbF9tYXNrcyk6IFJlbW92ZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6X19zaV9jbGFzc190eXBlX2luZm8pOiBMb3NlIGRldGFpbHMuCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkZXRhaWxzKTogTmV3IG1lbWJlci4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86Ol9fdm1pX2NsYXNzX3R5cGVfaW5mbyk6IEFkanVzdC4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86OmRldGFpbF9tYXNrcyk6IE5ldyBtZW1iZXIuCgkqIHRpbmZvLmNjIChfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fdXBjYXN0KTogSW5pdGlhbGl6ZSByZXN1bHQKCXdpdGggdW5rbm93bl9kZXRhaWxzX21hc2suCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb19maW5kX3B1YmxpY19zcmMpOiBBZGp1c3QKCShfX3ZtaV9jbGFzc190eXBlX2luZm86OmRvX2R5bmNhc3QpOiBBZGp1c3QuCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QpOiBTZXQgcmVzdWx0IGRldGFpbHMsIGlmCgluZWVkZWQuIEFkanVzdC4KCShfX2R5bmFtaWNfY2FzdCk6IFRlbXBvcmFyaWx5ICNpZiBvdXQgb3B0aW1pemF0aW9uLgoKMjAwMC0wMy0yOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHJ0dGkuYyAoZ2V0X3RpbmZvX2RlY2wpOiBNYXJrIHVzZWQuCgkoZW1pdF90aW5mb19kZWNsKTogRG9uJ3Qgb3B0aW1pemUgcG9seW1vcnBoaWMgdHlwZV9pbmZvLiBPbmx5CgltYXJrIGFzIGRlYWx0IHdpdGgsIGlmIHdlIG91dHB1dCBpdC4KCjIwMDAtMDMtMjggIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jOiBSZW9yZ2FuaXplIHRvIHB1dCB2aXJ0dWFsIGZ1bmN0aW9uIHRhYmxlIGluaXRpYWxpemF0aW9uCgltYWNoaW5lcnkgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS4KCjIwMDAtMDMtMjggIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdCk6IFVzZSBiaXRzaXplX3plcm9fbm9kZS4KCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBMaWtld2lzZS4KCjIwMDAtMDMtMjggIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUHV0IFJUVEkgZW50cmllcyBhdCBuZWdhdGl2ZSBvZmZzZXRzIGluIG5ldyBBQkkuCgkqIGNsYXNzLmMgKGRmc19idWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogUHV0IHRoZSBmaXJzdAoJdmJhc2Ugb2Zmc2V0IGF0IGluZGV4IC0zLCBub3QgLTEuCgkoYnVpbGRfdnRhYmVfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IFVzZSB1bm1hcmtlZF92dGFibGVfcGF0aHAsIG5vdAoJZGZzX3Z0YWJsZV9wYXRoX3VubWFya2VkX3JlYWxfYmFzZXNfcXVldWVfcCB0byB3YWxrIGJhc2VzLgoJKGRmc19idWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogRG9uJ3QgdXNlIHNraXBfcnR0aV9zdHVmZi4KCShidWlsZF9ydHRpX3Z0YmxfZW50cmllcyk6IE5ldyBmdW5jdGlvbi4KCShzZXRfcnR0aV9lbnRyeSk6IFJlbW92ZS4KCShidWlsZF9wcmltYXJ5X3Z0YWJsZSk6IERvbid0IHVzZSBpdC4KCShidWlsZF9zZWNvbmRhcnlfdnRhYmxlKTogTGlrZXdpc2UuCgkoc3RhcnRfdnRhYmxlKTogUmVtb3ZlLgoJKGZpcnN0X3ZmdW5faW5kZXgpOiBOZXcgZnVuY3Rpb24uCgkoc2V0X3ZpbmRleCk6IExpa2V3aXNlLgoJKGFkZF92aXJ0dWFsX2Z1bmN0aW9uKTogRG9uJ3QgY2FsbCBzdGFydF92dGFibGUuICBEbyBjYWxsCglzZXRfdmluZGV4LgoJKHNldF9wcmltYXJ5X2Jhc2UpOiBSZW5hbWUgcGFyYW1ldGVyLgoJKGRldGVybWluZV9wcmltYXJ5X2Jhc2UpOiBMaWtld2lzZS4KCShudW1fdmZ1bl9lbnRyaWVzKTogRG9uJ3QgdXNlIHNraXBfcnR0aV9zdHVmZi4KCShudW1fZXh0cmFfdnRibF9lbnRyaWVzKTogSW5jbHVkZSBSVFRJIGluZm9ybWF0aW9uLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBVc2UgYnVpbGRfcnR0aV92dGJsX2VudHJpZXMuCgkoc2tpcF9ydHRpX3N0dWZmKTogUmVtb3ZlLgoJKGRmc19tb2RpZnlfdnRhYmxlcyk6IERvbid0IHVzZSBpdC4KCShtb2RpZnlfYWxsX3Z0YWJsZXMpOiBEb24ndCB1c2Ugc3RhcnRfdnRhYmxlLiAgRG8gdXNlIHNldF92aW5kZXguCgkobGF5b3V0X25vbmVtcHR5X2Jhc2Vfb3JfZmllbGQpOiBVcGRhdGUgc2l6ZSBoYW5kbGluZy4KCShjcmVhdGVfdnRhYmxlX3B0cik6IFR3ZWFrLgoJKGxheW91dF9jbGFzc190eXBlKTogQWRqdXN0IHBhcmFtZXRlciBuYW1lcy4KCShmaW5pc2hfc3RydWN0XzEpOiBTaW1wbGlmeS4KCSogY3AtdHJlZS5oIChDTEFTU1RZUEVfVlNJWkUpOiBUd2VhayBkb2N1bWVudGF0aW9uLgoJKHNraXBfcnR0aV9zdHVmZik6IFJlbW92ZS4KCShmaXJzdF92ZnVuX2luZGV4KTogTmV3IGZ1bmN0aW9uLgoJKGRmc192dGFibGVfcGF0aF91bm1hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBSZW1vdmUuCgkoZGZzX3Z0YWJsZV9wYXRoX21hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBSZW1vdmUuCgkobWFya2VkX3Z0YWJsZV9wYXRocCk6IERlY2xhcmUuCgkodW5tYXJrZWRfdnRhYmxlX3BhdGhwKTogTGlrZXdpc2UuCgkqIGVycm9yLmMgKGR1bXBfZXhwcik6IFVzZSBmaXJzdF92ZnVuX2luZGV4IHRvIGNhbGN1bGF0ZSB2dGFibGUKCW9mZnNldHMuCgkqIHJ0dGkuYyAoYnVpbGRfaGVhZG9mKTogTG9vayBmb3IgUlRUSSBhdCBuZWdhdGl2ZSBvZmZzZXRzLgoJKGdldF90aW5mb19kZWNsX2R5bmFtaWMpOiBMaWtld2lzZS4KCSh0aW5mb19iYXNlX2luaXQpOiBEb24ndCB0YWtlIHRoZSBhZGRyZXNzIG9mIHRoZSBUSU5GT19WVEFCTEVfREVDTAoJaGVyZS4KCShjcmVhdGVfcHNldWRvX3R5cGVfaW5mbyk6IERvIGl0IGhlcmUgaW5zdGVhZC4gIEFkanVzdCBzbyB0aGF0Cgl2cHRyIHBvaW50cyBhdCBmaXJzdCB2aXJ0dWFsIGZ1bmN0aW9uLgoJKiBzZWFyY2guYyAobWFya2VkX3Z0YWJsZV9wYXRocCk6IE1ha2UgaXQgZ2xvYmFsLgoJKHVubWFya2VkX3Z0YWJsZV9wYXRocCk6IExpa2V3aXNlLgoJKGRmc192dGFibGVfcGF0aF91bm1hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBSZW1vdmUuCgkoZGZzX3Z0YWJsZV9wYXRoX21hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBMaWtld2lzZS4KCShkZnNfZ2V0X3B1cmVfdmlydHVhbHMpOiBEb24ndCB1c2Ugc2tpcF9ydHRpX3N0dWZmLgoJKGdldF9wdXJlX3ZpcnR1YWxzKTogTGlrZXdpc2UuCgkoZXhwYW5kX3VwY2FzdF9maXh1cHMpOiBMaWtld2lzZS4KCSogdHJlZS5jIChkZWJ1Z19iaW5mbyk6IExpa2V3aXNlLgoJKiB0aW5mby5jYyAoX19keW5hbWljX2Nhc3QpOiBMb29rIGZvciB2dGFibGVfcHJlZml4IGF0IGFwcHJvcHJpYXRlCgluZWdhdGl2ZSBvZmZzZXQuCgoyMDAwLTAzLTI2ICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogY2xhc3MuYyAoY2hlY2tfZmllbGRfZGVjbCk6IEZpeCB0eXBvLgoJKGJ1aWxkX3Z0Ymxfb3JfdmJhc2VfZmllbGQpOiBEb24ndCBjbGVhciBERUNMX1NBVkVEX0lOU05TLgoJKGNoZWNrX21ldGhvZHMpOiBMaWtld2lzZS4KCShjaGVja19maWVsZF9kZWNscyk6IExpa2V3aXNlLgoJVXNlIERFQ0xfQ09OVEVYVCwgbm90IERFQ0xfRklFTERfQ09OVEVYVC4KCSogY3AtdHJlZS5oIChERUNMX1NIQURPV0VEX0ZPUl9WQVIsIERFQ0xfVEVNUExBVEVfUkVTVUxUKToKCVVzZSBERUNMX1JFU1VMVF9GTEQsIG5vdCBERUNMX1JFU1VMVC4KCSogZGVjbC5jICh4cmVmX3RhZyk6IFVzZSBERUNMX1RFTVBMQVRFX1JFU1VMVC4KCSogbGV4LmMgKGlkZW50aWZpZXJfdHlwZSk6IExpa2V3aXNlLgoJKiBwdC5jIChkZXRlcm1pbmVfc3BlY2lhbGl6YXRpb24sIGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IExpa2V3aXNlLgoJKHRzdWJzdF9mcmllbmRfZnVuY3Rpb24sIHRzdWJzdF9kZWNsLCBpbnN0YW50aWF0ZV90ZW1wbGF0ZSk6IExpa2V3aXNlLgoJKHJlc29sdmVfb3ZlcmxvYWRlZF91bmlmaWNhdGlvbiwgbW9yZV9zcGVjaWFsaXplZCk6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX21lbWJlcl9kZWNsYXJhdGlvbik6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoYnVpbGRfeF9mdW5jdGlvbl9jYWxsKTogTGlrZXdpc2UuCgoyMDAwLTAzLTI2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAobGF5b3V0X2VtcHR5X2Jhc2UpOiBIYW5kbGUgZW1wdHkgYmFzZXMgd2l0aCBub24tYnl0ZQoJYWxpZ25tZW50LgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBMaWtld2lzZS4KCShsYXlvdXRfdmlydHVhbF9iYXNlcyk6IExpa2V3aXNlLgoKCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdF8xKTogRml4IHR5cG8gaW4gdGhpcyBjaGFuZ2U6CgoJU2F0IE1hciAyNSAwOToxMjoxMCAyMDAwICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKMjAwMC0wMy0yNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBDb3VudCBwYXJ0aWFsIHNwZWNpYWxpemF0aW9ucyB3aGVuCglrZWVwaW5nIHRyYWNrIG9mIGhvdyBtYW55IHRlbXBsYXRlIGNsYXNzZXMgaGF2ZSBiZWVuIHNlZW4uCgoJKiBkdW1wLmMgKGRlcXVldWVfYW5kX2R1bXApOiBEdW1wIERFQ0xfVEVNUExBVEVfUkVTVUxULgoKMjAwMC0wMy0yNSAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3ZiYXNlX3BvaW50ZXJfZmllbGRzKTogbGF5b3V0X2ZpZWxkIG5vdyBwbGFjZV9maWVsZC4KCShnZXRfdmZpZWxkX29mZnNldCk6IFVzZSBieXRlX3Bvc2l0aW9uLgoJKHNldF9ydHRpX2VudHJ5KTogU2V0IE9GRlNFVCB0byBzc2l6ZXR5cGUgemVyby4KCShnZXRfYmluZm9fb2Zmc2V0X2FzX2ludCk6IERlbGV0ZWQuCgkoZGZzX3JlY29yZF9iYXNlX29mZnNldHMpOiBVc2UgdHJlZV9sb3dfY3N0LgoJKGRmc19zZWFyY2hfYmFzZV9vZmZzZXRzKTogTGlrZXdpc2UuCgkobGF5b3V0X25vbmVtcHR5X2Jhc2Vfb3JfZmllbGQpOiBSZWZsZWN0IGNoYW5nZXMgaW4gUkxJIGZvcm1hdAoJYW5kIGNhbGwgYnl0ZV9wb3NpdGlvbi4KCShsYXlvdXRfZW1wdHlfYmFzZSk6IENvbnZlcnQgb2Zmc2V0IHRvIHNzaXpldHlwZS4KCShidWlsZF9iYXNlX2ZpZWxkKTogdXNlIHJsaV9zaXplX3VuaXRfc29fZmFyLgoJKGRmc19wcm9wYWdhdGVfYmluZm9fb2Zmc2V0cyk6IERvIGNvbXB1dGF0aW9uIGluIHByb3BlciB0eXBlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogUGFzcyBzc2l6ZXR5cGUgdG8gcHJvcGFnYXRlX2JpbmZvX29mZnNldHMuCgkobGF5b3V0X2NsYXNzX3R5cGUpOiBSZWZsZWN0IGNoYW5nZXMgaW4gUkxJIG5hbWVzIGFuZCBmaWVsZHMuCgkoZmluaXNoX3N0cnVjdF8xKTogU2V0IERFQ0xfRklFTERfT0ZGU0VULgoJKiBkdW1wLmMgKGRlcXVldWVfYW5kX2R1bXApOiBDYWxsIGJpdF9wb3NpdGlvbi4KCSogZXhwci5jIChjcGx1c19leHBhbmRfY29uc3RhbnQpOiBVc2UgYnl0ZV9wb3NpdGlvbi4KCSogcnR0aS5jIChleHBhbmRfY2xhc3NfZGVzYyk6IFVzZSBiaXRzaXplX29uZV9ub2RlLgoJKiB0eXBlY2suYyAoYnVpbGRfY29tcG9uZW50X2FkZHIpOiBVc2UgYnl0ZV9wb3NpdGlvbiBhbmQgZG9uJ3QKCXNwZWNpYWwgY2FzZSBmb3IgemVybyBvZmZzZXQuCgoyMDAwLTAzLTI0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jICh2dHlwZV9kZWNsX3ApOiBVc2UgVFlQRV9QT0xZTU9SUEhJQ19QLgoKCSogcnR0aS5jIChnZXRfdGluZm9fZGVjbCk6IFNldCBjb21kYXQgbGlua2FnZSBvbiBuZXctYWJpCgl0aW5mbyBvYmplY3QuCgkoZW1pdF90aW5mb19kZWNsKTogT25seSBlbWl0IHBvbHltb3JwaGljIHRpbmZvJ3Mgd2hlbiBlbWl0dGluZwoJdnRhYmxlLgoKMjAwMC0wMy0yMCBUaGVvZG9yZSBQYXBhZG9wb3VsbyA8VGhlb2RvcmUuUGFwYWRvcG91bG9Ac29waGlhLmlucmlhLmZyPgoKCSogY2FsbC5jIChjaGVja19kdG9yX25hbWUsIGJ1aWxkX25ld19tZXRob2RfY2FsbCk6IFVzZSBUWVBFX1AgYW5kCglERUNMX1AgbWFjcm9zLgoJKiBkZWNsLmMgKHB1c2hfY2xhc3NfYmluZGluZywgcG9wbGV2ZWwsIHB1c2h0YWcsIGxvb2t1cF9uYW1lc3BhY2VfbmFtZSwKCW1ha2VfdHlwZW5hbWVfdHlwZSwgY2hlY2tfaW5pdGlhbGl6ZXIsIGNwX2ZpbmlzaF9kZWNsLAoJeHJlZl90YWcpOiBMaWtld2lzZS4KCSogZGVjbDIuYyAoZ3Jva2ZpZWxkLCBidWlsZF9leHByX2Zyb21fdHJlZSwgYnVpbGRfZXhwcl9mcm9tX3RyZWUsCglkZWNsX25hbWVzcGFjZSwgYXJnX2Fzc29jX3RlbXBsYXRlX2FyZywgYXJnX2Fzc29jLAoJdmFsaWRhdGVfbm9ubWVtYmVyX3VzaW5nX2RlY2wsIGRvX2NsYXNzX3VzaW5nX2RlY2wpOiBMaWtld2lzZS4KCSogZXJyb3IuYyAoZHVtcF90ZW1wbGF0ZV9hcmd1bWVudCwgZHVtcF9leHByLCBjcF9maWxlX29mLCBjcF9saW5lX29mLAoJYXJnc190b19zdHJpbmcpOiBMaWtld2lzZS4KCSogZnJpZW5kLmMgKGlzX2ZyaWVuZCk6IExpa2V3aXNlLgoJKiBsZXguYyAobm90ZV9nb3Rfc2VtaWNvbG9uLCBub3RlX2xpc3RfZ290X3NlbWljb2xvbiwKCWlzX2dsb2JhbCk6IExpa2V3aXNlLgoJKiBtZXRob2QuYyAoYnVpbGRfb3ZlcmxvYWRfbmVzdGVkX25hbWUsIGJ1aWxkX292ZXJsb2FkX3ZhbHVlLAoJYnVpbGRfcXVhbGlmaWVkX25hbWUsIGJ1aWxkX3F1YWxpZmllZF9uYW1lLCBoYWNrX2lkZW50aWZpZXIpOiBMaWtld2lzZS4KCSogcGFyc2UueSAodHlwZW5hbWVfc3ViLCB0eXBlbmFtZV9zdWIxKTogTGlrZXdpc2UuCgkqIHB0LmMgKHB1c2hfaW5saW5lX3RlbXBsYXRlX3Bhcm1zX3JlY3Vyc2l2ZSwgY2hlY2tfdGVtcGxhdGVfc2hhZG93LAoJcHJvY2Vzc19wYXJ0aWFsX3NwZWNpYWxpemF0aW9uLCBjb252ZXJ0X3RlbXBsYXRlX2FyZ3VtZW50LAoJdGVtcGxhdGVfYXJnc19lcXVhbCwgYWRkX3BlbmRpbmdfdGVtcGxhdGUsIGxvb2t1cF90ZW1wbGF0ZV9jbGFzcywKCWZvcl9lYWNoX3RlbXBsYXRlX3Bhcm1fciwgbWF5YmVfZm9sZF9ub250eXBlX2FyZywKCXRzdWJzdCwgaW5zdGFudGlhdGVfdGVtcGxhdGUsIHR5cGVfdW5pZmljYXRpb25fcmVhbCwgdW5pZnksCglpbnN0YW50aWF0ZV9wZW5kaW5nX3RlbXBsYXRlcywgc2V0X21hbmdsZWRfbmFtZV9mb3JfdGVtcGxhdGVfZGVjbCk6CglMaWtld2lzZS4KCSogcmVwby5jIChyZXBvX2dldF9pZCwgcmVwb190ZW1wbGF0ZV91c2VkKTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChsb29rdXBfZmllbGRfMSk6IExpa2V3aXNlLgoJKiB0cmVlLmMgKHdhbGtfdHJlZSwgZ2V0X3R5cGVfZGVjbCwgY3BfdHJlZV9lcXVhbCwgbWVtYmVyX3ApOiBMaWtld2lzZS4KCSogeHJlZi5jIChjbGFzc25hbWUpOiBMaWtld2lzZS4KCjIwMDAtMDMtMjIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKEJJTkZPX0ZPUl9WQkFTRSk6IEFkanVzdCBkb2N1bWVudGF0aW9uLgoJKENBTk9OSUNBTF9CSU5GTyk6IE5ldyBtYWNyby4KCShCSU5GT19ORVdfVlRBQkxFX01BUktFRCk6IFVzZSBpdC4KCShTRVRfQklORk9fTkVXX1ZUQUJMRV9NQVJLRUQpOiBMaWtld2lzZS4KCShDTEVBUl9CSU5GT19ORVdfVlRBQkxFX01BUktFRCk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChkZnNfYnVpbGRfdmJhc2Vfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IFVzZSBCSU5GT19UWVBFLAoJbm90IFRSRUVfVFlQRS4KCShidWlsZF9wcmltYXJ5X3Z0YWJsZSk6IEFkanVzdCB1c2FnZSBvZiBCSU5GT19ORVdfVlRBQkxFX01BUktFRC4KCShidWlsZF9zZWNvbmRhcnlfdnRhYmxlKTogTGlrZXdpc2UuCgkoZGZzX2ZpbmlzaF92dGJscyk6IExpa2V3aXNlLgoJKGRmc19hY2N1bXVsYXRlX3Z0YmxfaW5pdHMpOiBMaWtld2lzZS4KCShhY2N1bXVsYXRlX3Z0YmxfaW5pdHMpOiBOZXcgZnVuY3Rpb24uCgkoZmluaXNoX3Z0YmxzKTogTWFrZSBzdXJlIHRoYXQgdmlydHVhbCBiYXNlcyBjb21lIGFmdGVyCglub24tdmlydHVhbCBiYXNlcyBpbiB0aGUgdnRhYmxlIGdyb3VwLgoJKHJlY29yZF9iYXNlX29mZnNldHMpOiBEb24ndCBzYXZlIGFuZCByZXN0b3JlIFRSRUVfVklBX1ZJUlRVQUwuCgkoZmluaXNoX3N0cnVjdF8xKTogQWRqdXN0IHVzYWdlIG9mIEJJTkZPX05FV19WVEFCTEVfTUFSS0VELgoJKiBzZWFyY2guYyAoc3RydWN0IHZiYXNlX2luZm8pOiBNb3ZlIGRlZmluaXRpb24uCgkobWFya2VkX25ld192dGFibGVfcCk6IEFkanVzdCB1c2FnZSBvZiBCSU5GT19ORVdfVlRBQkxFX01BUktFRC4KCSh1bm1hcmtlZF9uZXdfdnRhYmxlX3ApOiBMaWtld2lzZS4KCShkZnNfbWFya192dGFibGVfcGF0aCk6IFJlbW92ZS4KCShkZnNfbWFya19uZXdfdnRhYmxlKTogUmVtb3ZlLgoJKGRmc191bm1hcmtfbmV3X3Z0YWJsZSk6IExpa2V3aXNlLgoJKGRmc19jbGVhcl9zZWFyY2hfc2xvdCk6IExpa2V3aXNlLgoJKGRmc19maW5kX3ZiYXNlcyk6ICBBZGp1c3QgdXNhZ2Ugb2YgQklORk9fTkVXX1ZUQUJMRV9NQVJLRUQuCgkoZGZzX2NsZWFyX3ZiYXNlX3Nsb3RzKTogTGlrZXdpc2UuCgkoaW5pdF92YmFzZV9wb2ludGVycyk6IExJa2V3aXNlLgoKMjAwMC0wMy0yMiAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiB0eXBlY2suYyAodHlwZV9hZnRlcl91c3VhbF9hcml0aG1ldGljX2NvbnZlcnNpb25zKTogUHJlZmVyIGEKCVNJWkVUWVBFIHRvIGEgbm9uLVNJWkVUWVBFLgoKMjAwMC0wMy0yMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogQWRqdXN0IG5hbWVzIGluIGNvbmRpdGlvbmFsbHkKCWNvbXBpbGVkIGNvZGUuCgoJKiBjbGFzcy5jIChyZWNvcmRfYmFzZV9vZmZzZXRzKTogTmV3IGZ1bmN0aW9uLgoJKGxheW91dF9jb25mbGljdF9wKTogTGlrZXdpc2UuCgkobGF5b3V0X25vbmVtcHR5X2Jhc2Vfb3JfZmllbGQpOiBVc2UgaXQuCgkobGF5b3V0X2VtcHR5X2Jhc2UpOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfYmFzZV9maWVsZCk6IFVzZSBpdC4KCShidWlsZF9iYXNlX2ZpZWxkcyk6IFVwZGF0ZSBjb21tZW50LgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogRm9sZCBpbiBhIGxpdHRsZSBjb2RlIGZvcm0KCWxheW91dF9iYXNldHlwZXMuICBVc2UgbGF5b3V0X2VtcHR5X2Jhc2UuCgkobGF5b3V0X2Jhc2V0eXBlcyk6IFJlbW92ZS4KCShlbmRfb2ZfY2xhc3MpOiBOZXcgZnVuY3Rpb24uCgkobGF5b3V0X2NsYXNzX3R5cGUpOiBVc2UgaXQuICBBZGp1c3QuCgoJKiBjcC10cmVlLmggKENMQVNTVFlQRV9WQkFTRUNMQVNTRVMpOiBGaXggdHlwbyBpbiBjb21tZW50LgoJKGZudHlwZV9wKTogUmVtb3ZlLgoJKiBzZWFyY2guYyAoZGZzX3NraXBfbm9ucHJpbWFyeV92YmFzZXNfdW5tYXJrZWRwKTogRml4IHR5cG8gaW4KCWNvbW1lbnQuCgkoZGZzX3NraXBfbm9ucHJpbWFyeV92YmFzZXNfbWFya2VkcCk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoZm50eXBlX3ApOiBSZW1vdmUuCgoJKiBjcC10cmVlLmggKFRJX1NQRUNfSU5GTyk6IFJlbW92ZS4KCShDTEFTU1RZUEVfVElfU1BFQ19JTkZPKTogTGlrZXdpc2UuCgkqIHB0LmMgKHByb2Nlc3NfcGFydGlhbF9zcGVjaWFsaXphdGlvbik6IExpa2V3aXNlLgoKCSogY2xhc3MuYyAoYnVpbGRfYmFzZV9maWVsZCk6IEZpeCB0aGlua28gaW4gY29tcHV0YXRpb24gb2YgYmluZm8KCW9mZnNldHMuCgoJKiB0cmVlLmMgKG1hcmtfbG9jYWxfZm9yX3JlbWFwX3ApOiBNYXJrIHZhcmlhYmxlcyBkZWNsYXJlZCBpbgoJVEFSR0VUX0VYUFJzIGFzIHdlbGwuCgoyMDAwLTAzLTIxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKHJlcXVpcmVfY29tcGxldGVfdHlwZSwgY29tcGxldGVfdHlwZSwKCWNvbXBsZXRlX3R5cGVfb3JfZWxzZSwgY19zaXplb2YsIGNfc2l6ZW9mX25vd2FybiwKCWJ1aWxkX2FycmF5X3JlZiwgY29udmVydF9hcmd1bWVudHMsIHBvaW50ZXJfZGlmZiwKCWJ1aWxkX3hfdW5hcnlfb3AsIGJ1aWxkX3VuYXJ5X29wLCBidWlsZF9jX2Nhc3QsCglidWlsZF9tb2RpZnlfZXhwcik6IFVzZSBDT01QTEVURV9UWVBFX1AgZXRjLgoJKiBjYWxsLmMgKGlzX2NvbXBsZXRlLCBjb252ZXJ0X2xpa2VfcmVhbCwKCWJ1aWxkX25ld19tZXRob2RfY2FsbCk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChidWlsZF92YmFzZV9wb2ludGVyX2ZpZWxkcywgY2hlY2tfYmFzZXMsCglidWlsZF9iYXNlX2ZpZWxkLCBmaW5pc2hfc3RydWN0XzEsIHB1c2hjbGFzcyk6IExpa2V3aXNlLgoJKiBjdnQuYyAoY3BfY29udmVydF90b19wb2ludGVyLCBjb252ZXJ0X3RvX3ZvaWQpOiBMaWtld2lzZS4KCSogZGVjbC5jIChtYXliZV9wcm9jZXNzX3RlbXBsYXRlX3R5cGVfZGVjbGFyYXRpb24sIHB1c2h0YWcsCglwdXNoZGVjbCwgcmVkZWNsYXJhdGlvbl9lcnJvcl9tZXNzYWdlLCBzdGFydF9kZWNsLCBzdGFydF9kZWNsXzEsCglsYXlvdXRfdmFyX2RlY2wsIGNoZWNrX2luaXRpYWxpemVyLCBjcF9maW5pc2hfZGVjbCwKCWdyb2tkZWNsYXJhdG9yLCByZXF1aXJlX2NvbXBsZXRlX3R5cGVzX2Zvcl9wYXJtcywKCWdyb2tfb3BfcHJvcGVydGllcywgeHJlZl90YWcsIHhyZWZfYmFzZXR5cGVzLAoJY2hlY2tfZnVuY3Rpb25fdHlwZSk6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChjaGVja19jbGFzc2ZuLCByZXBhcnNlX2Fic2RjbF9hc19jYXN0cyk6IExpa2V3aXNlLgoJKiBmcmllbmQuYyAoZG9fZnJpZW5kKTogTGlrZXdpc2UuCgkqIGluaXQuYyAoYnVpbGRfb2Zmc2V0X3JlZik6IExpa2V3aXNlLgoJKiBwYXJzZS55IChzdHJ1Y3RzcCk6IExpa2V3aXNlLgoJKiBwdC5jIChtYXliZV9wcm9jZXNzX3BhcnRpYWxfc3BlY2lhbGl6YXRpb24sCgl0c3Vic3RfZnJpZW5kX2Z1bmN0aW9uLCBpbnN0YW50aWF0ZV9jbGFzc190ZW1wbGF0ZSwgdHN1YnN0LAoJZG9fdHlwZV9pbnN0YW50aWF0aW9uLCBpbnN0YW50aWF0ZV9wZW5kaW5nX3RlbXBsYXRlcyk6IExpa2V3aXNlLgoJKiByZXBvLmMgKHJlcG9fZ2V0X2lkKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoYnVpbGRfdHlwZWlkLCBnZXRfdHlwZWlkLCBidWlsZF9keW5hbWljX2Nhc3RfMSwKCXN5bnRoZXNpemVfdGluZm9fdmFyLCBlbWl0X3N1cHBvcnRfdGluZm9zKTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChsb29rdXBfZm5maWVsZHNfMSwgbG9va3VwX2NvbnZlcnNpb25zKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChiZWdpbl9jbGFzc19kZWZpbml0aW9uKTogTGlrZXdpc2UuCgkqIHRyZWUuYyAoYnVpbGRfY3BsdXNfbWV0aG9kX3R5cGUpOiBMaWtld2lzZS4KCSogdHlwZWNrMi5jIChkaWdlc3RfaW5pdCwgYnVpbGRfZnVuY3Rpb25hbF9jYXN0LAoJYWRkX2V4Y2VwdGlvbl9zcGVjaWZpZXIpOiBMaWtld2lzZS4KCSogcGFyc2UuaCwgcGFyc2UuYzogUmVnZW5lcmF0ZWQuCgoyMDAwLTAzLTIxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogaW5jL2N4eGFiaS5oOiBOZXcgaGVhZGVyIGZpbGUuIERlZmluZSBuZXctYWJpIGVudHJ5IHBvaW50cy4KCShfX3BvaW50ZXJfdHlwZV9pbmZvOjp0YXJnZXQpOiBSZW5hbWUgbWVtYmVyIHRvIC4uLgoJKF9fcG9pbnRlcl90eXBlX2luZm86OnR5cGUpOiAuLi4gaGVyZS4KCShfX2Jhc2VfY2xhc3NfaW5mbzo6dHlwZSk6IFJlbmFtZSBtZW1iZXIgdG8gLi4uCgkoX19iYXNlX2NsYXNzX2luZm86OmJhc2UpOiAuLi4gaGVyZS4KCSogTWFrZS1sYW5nLmluIChDWFhfRVhUUkFfSEVBREVSUyk6IEFkZCBjeHhhYmkuaAoJKiBjcC10cmVlLmggKENQVElfQUJJKTogTmV3IGdsb2JhbCB0cmVlIGVudW1lcmF0aW9uLgoJKGFiaV9ub2RlKTogTmV3IGdsb2JhbCB0cmVlIG5vZGUuCgkqIGRlY2wuYyAoYWJpX25vZGUpOiBEb2N1bWVudC4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IEluaXRpYWxpemUgYWJpX25vZGUuCgkqIHJ0dGkuYyAoYnVpbGRfZHluYW1pY19jYXN0XzEpOiBVc2UgYWJpX25vZGUgZm9yIG5ldy1hYmkuCgkoZ2V0X3ZtaV9wc2V1ZG9fdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoY3JlYXRlX3RpbmZvX3R5cGVzKTogTGlrZXdpc2UuCgkoZW1pdF9zdXBwb3J0X3RpbmZvcyk6IExpa2V3aXNlLgoJKiB0aW5mby5oIChjeHhhYmkuaCk6IEluY2x1ZGUgZm9yIG5ldy1hYmkuCglNb3ZlIHJ0dGkgY2xhc3MgZGVmaW5pdGlvbnMgdG8gbmV3IGhlYWRlciBmaWxlLgoJKiB0aW5mby5jYyAoYWJpKTogVXNlIHRoZSBuYW1lc3BhY2UuCgkoc3RkKTogTW92ZSBuZXcgYWJpIHJ0dGkgY2xhc3NlcyBmcm9tIGhlcmUgLi4uCgkoX19jeHhhYml2MSk6IC4uLiB0byBoZXJlLgoJKiB0aW5mbzIuY2MgKGN4eGFiaS5oKTogSW5jbHVkZSBmb3IgbmV3LWFiaS4KCU1vdmUgcnR0aSBjbGFzcyBkZWZpbml0aW9ucyB0byBuZXcgaGVhZGVyIGZpbGUuCgkoc3RkKTogTW92ZSBuZXcgYWJpIHJ0dGkgY2xhc3NlcyBmcm9tIGhlcmUgLi4uCgkoX19jeHhhYml2MSk6IC4uLiB0byBoZXJlLgoJKiBpbmMvdHlwZWluZm8gKF9fY2xhc3NfdHlwZV9pbmZvKTogTW92ZSBpbnRvIF9fY3h4YWJpdjEKCW5hbWVzcGFjZS4KCjIwMDAtMDMtMjAgIEplZCBXaW5nIDxqZWR3aW5AemxvdHkudWdjcy5jYWx0ZWNoLmVkdT4KCSAgICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIG1ldGhvZC5jIChidWlsZF9vdmVybG9hZF9pbnQpOiBVc2UgaG9zdF9pbnRlZ2VycC4KCjIwMDAtMDMtMjAgVGhlb2RvcmUgUGFwYWRvcG91bG8gPFRoZW9kb3JlLlBhcGFkb3BvdWxvQHNvcGhpYS5pbnJpYS5mcj4KCgkqIGluaXQuYyAoYnVpbGRfb2Zmc2V0X3JlZik6IEhhbmRsZSB0aGUgY2FzZSBvZiBhIHRlbXBsYXRlZCBtZW1iZXIKCWZ1bmN0aW9uLgoKMjAwMC0wMy0xOSAgTWFydGluIHYuIEz2d2lzICA8bG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlPgoKCSogZXhjZXB0LmMgKGV4cGFuZF9leGNlcHRpb25fYmxvY2tzKTogQ2xlYXIgY2F0Y2hfY2xhdXNlc19sYXN0LgoKMjAwMC0wMy0xOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQ0xFQVJfREVDTF9DX0JJVF9GSUVMRCk6IE5ldyBtYWNyby4KCSogY2xhc3MuYyAoY2hlY2tfYml0ZmllbGRfZGVjbCk6IFR1cm4gaWxsZWdhbCBiaXRmaWVsZHMgaW50bwoJbm9uLWJpdGZpZWxkcy4KCShkZnNfcHJvcGFnYXRlX2JpbmZvX29mZnNldHMpOiBBZGp1c3QgZm9yIG5ldyBzaXplX2Jpbm9wCglzZW1hbnRpY3MuCgkoZGZzX29mZnNldF9mb3JfdW5zaGFyZWRfdmJhc2VzKTogTGlrZXdpc2UuCgkqIGN2dC5jIChjcF9jb252ZXJ0X3RvX3BvaW50ZXIpOiBDb252ZXJ0IE5VTEwgdG8gYQoJcG9pbnRlci10by1tZW1iZXIgY29ycmVjdGx5IHVuZGVyIHRoZSBuZXcgQUJJLgoJKiBleHByLmMgKGNwbHVzX2V4cGFuZF9jb25zdGFudCk6IERvbid0IHVzZSBjcF9jb252ZXJ0IHdoZW4KCXR1cm5pbmcgYW4gb2Zmc2V0IGludG8gYSBwb2ludGVyLXRvLW1lbWJlci4KCSogaW5pdC5jIChyZXNvbHZlX29mZnNldF9yZWYpOiBEb24ndCBhZGp1c3QgcG9pbnRlcnMtdG8tbWVtYmVycwoJd2hlbiBkZXJlZmVyZW5jaW5nIHRoZW0gdW5kZXIgdGhlIG5ldyBBQkkuCgkqIHR5cGVjay5jIChnZXRfbWVtYmVyX2Z1bmN0aW9uX2Zyb21fcHRyZnVuYyk6IFR3ZWFrIGNhbGN1bGF0aW9uCglvZiBwb2ludGVycy10by1tZW1iZXJzIHVuZGVyIHRoZSBuZXcgQUJJLgoKCSogY2xhc3MuYyAoY2hlY2tfYml0ZmllbGRfZGVjbCk6IFJlbW92ZSByZXN0cmljdGlvbiBvbiByZWFsbHkgbG9uZwoJYml0ZmllbGRzLgoJKGxheW91dF9jbGFzc190eXBlKTogSW1wbGVtZW50IG5ldyBBQkkgaGFuZGxpbmcgb2YgYml0ZmllbGRzCglsb25nZXIgdGhhbiB0aGVpciB0eXBlcy4KCjIwMDAtMDMtMTggIE1hcnRpbiB2LiBM9ndpcyAgPGxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KCgkqIHBhcnNlLnkgKGV4dGRlZnMpOiBDYWxsIGdnY19jb2xsZWN0LgoJKiBwYXJzZS5jOiBSZWdlbmVyYXRlZC4KCjIwMDAtMDMtMTggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChidWlsZF9iYXNlX2ZpZWxkKTogVXNlIFRZUEVfQUxJR04gdG8gZXhhbWluZSBhIHR5cGUuCgkobm90ZV9uYW1lX2RlY2xhcmVkX2luX2NsYXNzKTogVXNlIE9WTF9DVVJSRU5UIHRvIGdldCBhdCBhCglwb3RlbnRpYWwgb3ZlcmxvYWQuCgoyMDAwLTAzLTE3ICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogY2xhc3MuYyAoYnVpbGRfdmJhc2VfcGF0aCk6IFVzZSBpbnRlZ2VyX3plcm9wLgoJKGJ1aWxkX3Z0YWJsZV9lbnRyeSk6IFVzZSB0cmVlX2xvd19jc3QuCgkoZ2V0X3ZmaWVsZF9vZmZzZXQpOiBVc2UgYml0X3Bvc2l0aW9uLgoJKGRmc19tb2RpZnlfdnRhYmxlcyk6IE5ldyB2YXJpYWJsZSB2aW5kZXhfdmFsOyBgaScgaXMgSE9TVF9XSURFX0lOVC4KCVVzZSB0cmVlX2xvd19jc3QuCgkoY2hlY2tfYml0ZmllbGRfZGVjbCk6IFNldCBERUNMX1NJWkUgdXNpbmcgY29udmVydC4KCShidWlsZF9iYXNlX2ZpZWxkKTogU2V0IERFQ0xfU0laRSBhbmQgREVDTF9TSVpFX1VOSVQgdXNpbmcgc2l6ZV9iaW5vcC4KCShsYXlvdXRfdmlydHVhbF9iYXNlcyk6IERTSVpFIGlzIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQuCglVc2UgdHJlZV9sb3dfY3N0LgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IFVzZSBiaXRfcG9zaXRpb24uCgkoZHVtcF9jbGFzc19oaWVyYXJjaHkpOiBVc2UgdHJlZV9sb3dfY3N0LgoJKiBjcC10cmVlLmggKG1pbl9wcmVjaXNpb24pOiBBZGQgZGVjbGFyYXRpb24uCgkqIGRlY2wuYyAoeHJlZl90YWcsIHhyZWZfYmFzZXR5cGVzKTogVXNlIHRyZWVfbG93X2NzdC4KCSogZXJyb3IuYyAoZHVtcF90eXBlX3N1ZmZpeCk6IFVzZSBob3N0X2ludGVnZXJwIGFuZCB0cmVlX2xvd19jc3QuCgkoZHVtcF9leHByKTogVXNlIGludGVnZXJfemVyb3AsIGhvc3RfaW50ZWdlcnAsIGFuZCB0cmVlX2xvd19jc3QuCgkqIGV4cHIuYyAoY3BsdXNfZXhwYW5kX2NvbnN0YW50KTogVXNlIGJpdF9wb3NpdGlvbi4KCSogaW5pdC5jIChidWlsZF92ZWNfaW5pdCk6IFVzZSBob3N0X2ludGVnZXJwIGFuZCB0cmVlX2xvd19jc3QuCgkqIHJ0dGkuYyAoZ2V0X2Jhc2Vfb2Zmc2V0KTogVXNlIGJpdF9wb3NpdGlvbi4KCSogdHlwZWNrLmMgKGJ1aWxkX2JpbmFyeV9vcCk6IFVzZSBpbnRlZ2VyX3plcm9wLCBjb21wYXJlX3RyZWVfaW50LAoJaG9zdF9pbnRlZ2VycCwgYW5kIHRyZWVfbG93X2NzdC4KCShwb2ludGVyX2ludF9zdW0pOiBVc2UgaW50ZWdlcl96ZXJvcC4KCShidWlsZF9jb21wb25lbnRfYWRkcik6IFVzZSBiaXRfcG9zaXRpb24uCgoyMDAwLTAzLTE3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKHJlcXVpcmVfY29tcGxldGVfdHlwZSk6IERvbid0IGFzc3VtZSBzaXplX3plcm9fbm9kZS4KCShjb21wbGV0ZV90eXBlX29yX2Vsc2UpOiBMaWtld2lzZS4KCjIwMDAtMDMtMTYgIFN0ZXZlbiBHcmFkeSA8Z3JhZHlAZGlnaXRhbGRlY2suY29tPgoJICAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogcnR0aS5jIChidWlsZF9keW5hbWljX2Nhc3RfMSk6IEltcHJvdmUgZGlhZ25vc3RpY3MuCgoyMDAwLTAzLTE2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoZ3Jva2ZpZWxkKTogQmFpbCBvdXQgaWYgdHlwZSBpcyBlcnJvcl9tYXJrX25vZGUuCgoyMDAwLTAzLTE1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdGluZm8yLmNjIChfX3B0cl90b19tZW1iZXJfZGF0YSk6IFJlbmFtZSB0byAuLi4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX2RhdGEpOiAuLi4gaGVyZS4gQWRqdXN0LgoJKiBydHRpLmMgKGNyZWF0ZV90aW5mb190eXBlcyk6IEFkanVzdC4KCjIwMDAtMDMtMTUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKENQVElfUkVGX0RFU0NfVFlQRSwgcmVmX2Rlc2NfdHlwZV9ub2RlKTogUmVtb3ZlLgoJKiBkZWNsLmMgKHJlZl9kZXNjX3R5cGVfbm9kZSk6IFVuZG9jdW1lbnQuCgkqIHJ0dGkuYyAocHRyX3JlZl9pbml0aWFsaXplcik6IFJlbmFtZSB0byAuLi4KCShwdHJfaW5pdGlhbGl6ZXIpOiAuLi4gaGVyZS4gQWRqdXN0IGNvbW1lbnRzLgoJKHB0bWRfaW5pdGlhbGl6ZXIpOiBGaXggY29tbWVudCB0aGlua28uCgkoc3ludGhlc2l6ZV90aW5mb192YXIpOiBSZW1vdmUgUkVGRVJFTkNFX1RZUEUgY2FzZS4KCShjcmVhdGVfdGluZm9fdHlwZXMpOiBSZW1vdmUgcmVmX2Rlc2NfdHlwZV9ub2RlIGluaXQuCgkqIHRpbmZvMi5jYyAoX19yZWZlcmVuY2VfdHlwZV9pbmZvKTogUmVtb3ZlLgoKMjAwMC0wMy0xNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoY3BfZmluaXNoX2RlY2wpOiBSZW1vdmUgb2Jzb2xldGUgY29tbWVudC4KCgkqIHR5cGVjay5jIChidWlsZF9wdHJtZW1mdW5jMSk6IEtpbGwgdW5pbml0aWFsaXplZCB3YXJuaW5nLgoKMjAwMC0wMy0xNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaDogVHdlYWsgZG9jdW1lbnRhdGlvbi4KCSogY2xhc3MuYyAoYnVpbGRfdmJhc2VfcG9pbnRlcl9maWVsZHMpOiBMYXlvdXQgdGhlIGZpZWxkcywgdG9vLgoJKGF2b2lkX292ZXJsYXApOiBSZW1vdmUuCgkoZ2V0X2JpbmZvX29mZnNldF9hc19pbnQpOiBOZXcgZnVuY3Rpb24uCgkoZGZzX3NlcmFjaF9iYXNlX29mZnNldHMpOiBMaWtld2lzZS4KCShsYXlvdXRfbm9uZW1wdHlfYmFzZV9vcl9maWVsZCk6IExpa2V3aXNlLgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBMYXlvdXQgZmllbGRzIGhlcmUuICBBdm9pZCBwbGFjaW5nIHR3byBvYmplY3RzCglvZiB0aGUgc2FtZSB0eXBlIGF0IHRoZSBzYW1lIGFkZHJlc3MsIHVuZGVyIHRoZSBuZXcgQUJJLgoJKGJ1aWxkX2Jhc2VfZmllbGRzKTogQWRqdXN0IGFjY29yZGluZ2x5LgoJKGNyZWF0ZV92dGFibGVfcHRyKTogUmV0dXJuIHRoZSBuZXcgZmllbGQsIGJ1dCBkb24ndCBhdHRhY2ggaXQgdG8KCVRZUEVfRklFTERTLgoJKHJlbW92ZV9iYXNlX2ZpZWxkKTogUmVtb3ZlLgoJKHJlbW92ZV9iYXNlX2ZpZWxkcyk6IFJlbW92ZS4KCShsYXlvdXRfYmFzZXR5cGVzKTogQWRqdXN0IGFjY29yZGluZ2x5LgoJKGxheW91dF9jbGFzc190eXBlKTogQ2FsbCBsYXlvdXRfZmllbGQgZm9yIGVhY2ggZmllbGQsIHJhdGhlciB0aGFuCglqdXN0IG1ha2luZyBhIHdob2xlc2FsZSBjYWxsIHRvIGxheW91dF90eXBlLgoKMjAwMC0wMy0xNCAgSmVmZiBTdHVybSAgPGpzdHVybUBzaWdtYTYuY29tPgoKCSogZXhjZXB0LmMgKGV4cGFuZF90aHJvdyk6IEZpeCB0eXBvIGluIF9Kdl9TamxqX1Rocm93LgoKMjAwMC0wMy0xMyAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBkZWNsLmMgKGdyb2tmbmRlY2wpOiBTZXQgVFJFRV9OT1RIUk9XIGlmIFRZUEVfTk9USFJPV19QLgoKCSogZXhjZXB0LmMgKGR0b3Jfbm90aHJvdyk6IE5ldyBmbi4KCShkb19wb3BfZXhjZXB0aW9uKTogVXNlIGl0LiAgVGFrZSB0eXBlIHBhcm0uCgkocHVzaF9laF9jbGVhbnVwKTogVGFrZSB0eXBlIHBhcm0uCgkoZXhwYW5kX3N0YXJ0X2NhdGNoX2Jsb2NrKTogUGFzcyBpdC4KCShidWlsZF9laF90eXBlX3R5cGVfcmVmKTogQWNjZXB0IG51bGwgdHlwZS4KCjIwMDAtMDMtMTIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHJldmVydF9zdGF0aWNfbWVtYmVyX2ZuKTogQ2hhbmdlIHByb3RvdHlwZS4KCSogZGVjbC5jIChncm9rZm5kZWNsKTogQWRqdXN0IGNhbGwgdG8gcmV2ZXJ0X3N0YXRpY19tZW1iZXJfZm4uCgkoZ3Jva19vcF9wcm9wZXJ0aWVzKTogTGlrZXdpc2UuCgkoc3RhcnRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCShyZXZlcnRfc3RhdGljX21lbWJlcl9mbik6IFNpbXBsaWZ5LgoJKiBwdC5jIChjaGVja19leHBsaWNpdF9zcGVjaWFsaXphdGlvbik6IEFkanVzdCBjYWxsIHRvCglyZXZlcnRfc3RhdGljX21lbWJlcl9mbi4KCjIwMDAtMDMtMTEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHNjb3BlX2tpbmQpOiBOZXcgdHlwZS4KCSh0bXBsX3NwZWNfa2luZCk6IExpa2V3aXNlLgoJKGRlY2xhcmVfcHNldWRvX2dsb2JhbF9sZXZlbCk6IFJlbW92ZS4KCShwc2V1ZG9fZ2xvYmFsX2xldmVsX3ApOiBSZW5hbWUgdG8gdGVtcGxhdGVfcGFybV9zY29wZV9wLgoJKHB1c2hsZXZlbCk6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCShiZWdpbl9zY29wZSk6IE5ldyBmdW5jdGlvbi4KCShmaW5pc2hfc2NvcGUpOiBMaWtld2lzZS4KCShjdXJyZW50X3RtcGxfc3BlY19raW5kKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoc3RydWN0IGJpbmRpbmdfbGV2ZWwpOiBTaG9ydGVuIHBhcm1fZmxhZyB0byAyIGJpdHMuCglTaG9ydGVuIGtlZXAgdG8gMiBiaXRzLiAgUmVuYW1lIHBzZXVkb19nbG9iYWwgdG8gdGVtcGxhdGVfcGFybXNfcC4KCUFkZCB0ZW1wbGF0ZV9zcGVjX3AuCgkodG9wbGV2ZWxfYmluZGluZ3NfcCk6IEFkanVzdC4KCShkZWNsYXJlX3BzZXVkb19nbG9iYWxfbGV2ZWwpOiBSZW1vdmUuCgkocHNldWRvX2dsb2JhbF9sZXZlbF9wKTogUmVuYW1lIHRvIHRlbXBsYXRlX3Bhcm1fc2NvcGVfcC4KCShjdXJyZW50X3RtcGxfc3BlY19raW5kKTogTmV3IGZ1bmN0aW9uLgoJKGJlZ2luX3Njb3BlKTogTGlrZXdpc2UuCgkoZmluaXNoX3Njb3BlKTogTGlrZXdpc2UuCgkobWF5YmVfcHVzaF90b190b3BfbGV2ZWwpOiBBZGp1c3QuCgkobWF5YmVfcHJvY2Vzc190ZW1wbGF0ZV90eXBlX2RlY2xhcmF0aW9uKTogTGlrZXdpc2UuCgkocHVzaHRhZyk6IExpa2V3aXNlLgoJKHB1c2hkZWNsX25vbmNsYXNzX2xldmVsKTogTGlrZXdpc2UuCgkobG9va3VwX3RhZyk6IExpa2V3aXNlLgoJKGdyb2tmbmRlY2wpOiBIYW5kbGUgbWVtYmVyIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9ucy4gIFNoYXJlCgljb25zdHJ1Y3RvciBhbmQgbm9uLWNvbnN0cnVjdG9yIGNvZGUuCgkqIGRlY2wyLmMgKGNoZWNrX2NsYXNzZm4pOiBIYW5kbGUgbWVtYmVyIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9ucy4KCSogcHQuYyAoYmVnaW5fdGVtcGxhdGVfcGFybV9saXN0KTogVXNlIGJlZ2luX3Njb3BlLgoJKGJlZ2luX3NwZWNpYWxpemF0aW9uKTogTGlrZXdpc2UuCgkoZW5kX3NwZWNpYWxpemF0aW9uKTogTGlrZXdpc2UuCgkoY2hlY2tfZXhwbGljaXRfc3BlY2lhbGl6YXRpb24pOiBVc2UgY3VycmVudF90bXBsX3NwZWNfa2luZC4KCUhhbmRsZSBtZW1iZXIgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb25zLgoJKGVuZF90ZW1wbGF0ZV9kZWNsKTogVXNlIGZpbmlzaF9zY29wZS4gIFJlbW92ZSBjYWxsIHRvCglnZXRfcGVuZGluZ19zaXplcy4KCShwdXNoX3RlbXBsYXRlX2RlY2xfcmVhbCk6IFJlbW92ZSBib2d1cyBlcnJvciBtZXNzYWdlLgoJKHRzdWJzdF9kZWNsKTogRml4IHR5cG8gaW4gY29kZSBjb250YWluZWQgaW4gY29tbWVudC4KCShpbnN0YW50aWF0ZV90ZW1wbGF0ZSk6IEhhbmRsZSBtZW1iZXIgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb25zLgoJKG1vc3RfZ2VuZXJhbF90ZW1wbGF0ZSk6IExpa2V3aXNlLgoKMjAwMC0wMy0xMSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogbGV4LmMgKHdoaXRlc3BhY2VfY3IpOiBDb21wcmVzcyBjb25zZWN1dGl2ZSBjYWxscyB0byB3YXJuaW5nKCkuCgkoZG9faWRlbnRpZmllcik6IERpdHRvIGZvciBlcnJvcigpLgoKCSogcHQuYyAoY29udmVydF9ub250eXBlX2FyZ3VtZW50KTogRGl0dG8gZm9yIGNwX2Vycm9yKCkuCgkoY29udmVydF90ZW1wbGF0ZV9hcmd1bWVudCk6IERpdHRvIGZvciBjcF9wZWR3YXJuKCkuCgoyMDAwLTAzLTExICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGV4Y2VwdGlvbi5jYyAoX19jaGVja19udWxsX2VoX3NwZWMpOiBOZXcgZm4uCgkqIGV4Y2VwdC5jIChleHBhbmRfZW5kX2VoX3NwZWMpOiBDYWxsIGl0IGlmIHRoZSBzcGVjIGlzIHRocm93KCkuCgoyMDAwLTAzLTEwICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGRlY2wuYyAocHVzaF90aHJvd19saWJyYXJ5X2ZuKTogVGFrZSB0aGUgRlVOQ1RJT05fVFlQRS4KCSogZXhjZXB0LmMgKGV4cGFuZF9lbmRfZWhfc3BlYyk6IEFkZCB0aGUgcmV0dXJuIHR5cGUuCgkqIHJ0dGkuYyAodGhyb3dfYmFkX2Nhc3QpOiBBZGQgdGhlIHBhcm10eXBlcy4KCSh0aHJvd19iYWRfdHlwZWlkKTogTGlrZXdpc2UuCgoJKiBzZW1hbnRpY3MuYyAoZXhwYW5kX3N0bXQpOiBPbmx5IGxlYXZlIG91dCBydGwgZm9yIHVudXNlZAoJYXJ0aWZpY2lhbHMsIGFuZCBzZXQgREVDTF9JR05PUkVEX1Agb24gdGhlbSBhcyB3ZWxsLgoJKiBkZWNsLmMgKHdyYXB1cF9nbG9iYWxzX2Zvcl9uYW1lc3BhY2UpOiBMaWtld2lzZS4KCjIwMDAtMDMtMDkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKG1heWJlX2NvbW1vbml6ZV92YXIpOiBTa2lwIGFsbCBhcnRpZmljaWFsIGRlY2xzLgoJKiBwdC5jICh0c3Vic3RfZGVjbCk6IERvbid0IGNvcHkgVFJFRV9BU01fV1JJVFRFTi4KCjIwMDAtMDMtMTAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogbGFuZy1vcHRpb25zLmgsIGRlY2wyLmM6IEFkZCAtZm5vLWVuZm9yY2UtZWgtc3BlY3MuCgkqIGNwLXRyZWUuaDogRGVjbGFyZSBmbGFnX2VuZm9yY2VfZWhfc3BlY3MuCgkqIGRlY2wuYyAoc3RvcmVfcGFybV9kZWNscywgZmluaXNoX2Z1bmN0aW9uKTogQ2hlY2sgaXQuCgoJQyBsaWJyYXJ5IGZ1bmN0aW9ucyBkb24ndCB0aHJvdy4KCSogTWFrZWZpbGUuaW4gKGNmbnMuaCk6IE5ldyB0YXJnZXQuCgkoZXhjZXB0Lm8pOiBEZXBlbmQgb24gaXQuCgkqIE1ha2UtbGFuZy5pbiAoY2MxcGx1cyk6IERlcGVuZCBvbiBjZm5zLmdwZXJmLgoJKiBjZm5zLmdwZXJmOiBOZXcgZmlsZS4KCSogY2Zucy5oOiBHZW5lcmF0ZWQuCgkqIGV4Y2VwdC5jOiBJbmNsdWRlIGl0LgoJKG5vdGhyb3dfbGliZm5fcCk6IE5ldyBmbi4KCSogZGVjbC5jIChncm9rZm5kZWNsKTogVXNlIGl0LgoJKiBjcC10cmVlLmg6IERlY2xhcmUgaXQuCgoJKiBkZWNsLmMgKHB1c2hfb3ZlcmxvYWRlZF9kZWNsXzEsIGF1dG9fZnVuY3Rpb24sCglkZWZpbmVfZnVuY3Rpb24pOiBMb3NlLgoJKGJ1aWxkX2xpYnJhcnlfZm5fMSk6IE5ldyBzdGF0aWMgZm4uCgkoYnVpbHRpbl9mdW5jdGlvbik6IFVzZSBpdC4KCShnZXRfYXRleGl0X25vZGUpOiBVc2UgYnVpbGRfbGlicmFyeV9mbl9wdHIuCgkoYnVpbGRfbGlicmFyeV9mbiwgYnVpbGRfY3BfbGlicmFyeV9mbiwgYnVpbGRfbGlicmFyeV9mbl9wdHIsCglidWlsZF9jcF9saWJyYXJ5X2ZuX3B0ciwgcHVzaF9saWJyYXJ5X2ZuLCBwdXNoX2NwX2xpYnJhcnlfZm4sCglwdXNoX3ZvaWRfbGlicmFyeV9mbiwgcHVzaF90aHJvd19saWJyYXJ5X2ZuKTogTmV3IGZucy4KCSogY3AtdHJlZS5oOiBEZWNsYXJlIHRoZW0uCgkoY3BfdHJlZV9pbmRleCk6IFJlbW92ZSBDUFRJX0JBRF9DQVNULCBDUFRJX0JBRF9UWVBFSUQuCgkodGhyb3dfYmFkX2Nhc3Rfbm9kZSwgdGhyb3dfYmFkX3R5cGVpZF9ub2RlKTogTG9zZS4KCSogZXhjZXB0LmMgKGluaXRfZXhjZXB0aW9uX3Byb2Nlc3NpbmcsIGNhbGxfZWhfaW5mbywgZG9fcG9wX2V4Y2VwdGlvbiwKCShleHBhbmRfZW5kX2VoX3NwZWMsIGFsbG9jX2VoX29iamVjdCwgZXhwYW5kX3Rocm93KTogVXNlIGFib3ZlIGZucy4KCSogcnR0aS5jIChidWlsZF9ydW50aW1lX2RlY2wpOiBMb3NlLgoJKHRocm93X2JhZF9jYXN0LCB0aHJvd19iYWRfdHlwZWlkLCBnZXRfdGluZm9fZGVjbCwKCWJ1aWxkX2R5bmFtaWNfY2FzdF8xLCBleHBhbmRfc2lfZGVzYywgZXhwYW5kX2NsYXNzX2Rlc2MsCglleHBhbmRfcHRyX2Rlc2MsIGV4cGFuZF9hdHRyX2Rlc2MsIGV4cGFuZF9nZW5lcmljX2Rlc2MpOiBVc2UgYWJvdmUgZm5zLgoKCSogY2FsbC5jIChidWlsZF9jYWxsKTogUmVtb3ZlIHJlc3VsdF90eXBlIHBhcm0uCglDYWxsIG1hcmtfdXNlZCBvbiB1bnVzZWQgYXJ0aWZpY2lhbCBmbnMuCgkqIGluaXQuYywgbWV0aG9kLmMsIHR5cGVjay5jLCBleGNlcHQuYywgcnR0aS5jOiBBZGp1c3QuCgoyMDAwLTAzLTA5ICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGNhbGwuYyAoYnVpbGRfY2FsbCk6IFNldCBUUkVFX05PVEhST1cgb24gdGhlIENBTExfRVhQUiBhcwoJYXBwcm9wcmlhdGUuCgkqIGRlY2wuYyAoZGVmaW5lX2Z1bmN0aW9uKTogU2V0IFRSRUVfTk9USFJPVyBvbiB0aGUgRlVOQ1RJT05fREVDTC4KCSogZXhjZXB0LmMgKGNhbGxfZWhfaW5mbywgYWxsb2NfZWhfb2JqZWN0LCBleHBhbmRfdGhyb3cpOiBTZXQKCVRSRUVfTk9USFJPVyBvciBUUkVFX1RISVNfVk9MQVRJTEUgb24gdGhlIGZ1bmN0aW9uIGFzIGFwcHJvcHJpYXRlLgoJKiBydHRpLmMgKGJ1aWxkX3J1bnRpbWVfZGVjbCwgZ2V0X3RpbmZvX2RlY2wsIGJ1aWxkX2R5bmFtaWNfY2FzdF8xLAoJZXhwYW5kX3NpX2Rlc2MsIGV4cGFuZF9jbGFzc19kZXNjLCBleHBhbmRfcHRyX2Rlc2MsIGV4cGFuZF9hdHRyX2Rlc2MsCglleHBhbmRfZ2VuZXJpY19kZXNjKTogTGlrZXdpc2UuCgoyMDAwLTAzLTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZXhjZXB0aW9uLmNjIChfX2NwX3BvcF9leGNlcHRpb24pOiBDbGVhbnVwIHRoZSBvcmlnaW5hbCBvYmplY3QuCgoyMDAwLTAzLTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChncm9rX29wX3Byb3BlcnRpZXMpOiBNZXJnZSBjb252ZXJzaW9uIHRvIHZvaWQgd2FybmluZwoJd2l0aCBvdGhlciBzaWxseSBvcCB3YXJuaW5ncy4KCjIwMDAtMDMtMDggIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogdHlwZWNrMi5jIChwcm9jZXNzX2luaXRfY29uc3RydWN0b3IpOiBTZXQgVFJFRV9QVVJQT1NFIG9mCglhcnJheSBDT05TVFJVQ1RPUiBlbGVtZW50cy4gIERvbid0IHVzZSBleHByX3RyZWVfY29ucy4KCjIwMDAtMDMtMDggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGNwX21ha2VfZm5hbWVfZGVjbCk6IE5ldyBmdW5jdGlvbi4KCSh3cmFwdXBfZ2xvYmFsc19mb3JfbmFtZXNwYWNlKTogRG9uJ3QgZW1pdCB1bnVzZWQgc3RhdGljIHZhcnMuCgkoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBSZW1vdmUgY29tbWVudCBhYm91dCB1c2Ugb2YKCWFycmF5X2RvbWFpbl90eXBlLiBTZXQgbWFrZV9mbmFtZV9kZWNsLgoJKGNwX2ZpbmlzaF9kZWNsKTogUmVtb3ZlIF9fRlVOQ1RJT05fXyBuYWRnZXJpbmcuCgkqIHNlbWFudGljcy5jIChiZWdpbl9jb21wb3VuZF9zdG10KTogUmVtb3ZlCgljdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQgZmxhZ2dpbmcuCgkoZXhwYW5kX3N0bXQpOiBEb24ndCBlbWl0IHVudXNlZCBsb2NhbCBzdGF0aWNzLgoJKiB0eXBlY2suYyAoZGVjYXlfY29udmVyc2lvbik6IERvbid0IHRyZWF0IF9fRlVOQ1RJT05fXyBkZWNscwoJc3BlY2lhbGx5LgoKMjAwMC0wMy0wOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHR5cGVjay5jIChjb252ZXJ0X2Zvcl9hc3NpZ25tZW50KTogRG9uJ3QgbG9vayBhdCBhcnJheQoJaW5pdGlhbGl6ZXIuCgkqIGNhbGwuYyAoY29udmVydF9saWtlX3JlYWwpOiBMaWtld2lzZS4KCjIwMDAtMDMtMDcgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCUFkZCBpbml0aWFsIHN1cHBvcnQgZm9yICdcdU5OTk4nIHNwZWNpZmllci4KCSogbGV4LmMgKHJlYWRfdWNzKTogTmV3IGZuLgoJKHJlYWRlc2NhcGUsIHNraXBfd2hpdGVfc3BhY2UpOiBDYWxsIGl0LgoJKGlzX2V4dGVuZGVkX2NoYXIsIGlzX2V4dGVuZGVkX2NoYXJfMSk6IE5ldyBmbnMuCgkodXRmOF9leHRlbmRfdG9rZW4pOiBOZXcgZm4sICNpZiAwJ2Qgb3V0LgoJKHJlYWxfeXlsZXgpOiBUcmVhdCBleHRlbmRlZCBjaGFycyBsaWtlIGxldHRlcnMuCgoJKiBzZWFyY2guYyAobm90ZV9kZWJ1Z19pbmZvX25lZWRlZCk6IFdhbGsgdGhlIGJhc2VzIGV2ZW4gaWYgd2UKCXdlcmVuJ3QgZGVmZXJyaW5nIHRoZSB0eXBlIGl0c2VsZi4KCjIwMDAtMDMtMDcgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGRlY2wyLmMgKGZpbmlzaF9vYmplY3RzKTogQ29uc3RpZnkgYSBjaGFyKi4KCgkqIG1ldGhvZC5jIChlbWl0X3RodW5rKTogTGlrZXdpc2UuCgoyMDAwLTAzLTA2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKGR1YmlvdXNfY29udmVyc2lvbl93YXJuaW5ncyk6IExvb2sgdGhyb3VnaAoJUkVGRVJFTkNFX1RZUEUuCgoyMDAwLTAzLTA2ICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogY2xhc3MuYyAoZGZzX21vZGlmeV92dGFibGVzKTogSSBpcyBub3cgdW5zaWduZWQuCgkoY2hlY2tfYml0ZmllbGRfZGVjbCk6IFVzZSB0cmVlX2ludF9jc3Rfc2duIGFuZCBjb21wYXJlX3RyZWVfaW50LgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBBZGQgY2FzdHMgb2YgVFJFRV9JTlRfQ1NUX0xPVyB0byBIT1NUX1dJREVfSU5ULgoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBDYXN0IFRSRUVfSU5UX0NTVF9ISUdIIHRvIHVuc2lnbmVkLgoJKiBpbml0LmMgKGJ1aWxkX3ZlY19pbml0KTogQ2FzdCBUUkVFX0lOVF9DU1RfTE9XIHRvIEhPU1RfV0lERV9JTlQuCgkqIG1ldGhvZC5jIChidWlsZF9vdmVybG9hZF9pbnQpOiBDYXN0IFRSRUVfSU5UX0NTVF9ISUdIIHRvIHVuc2lnbmVkLgoJKiB0eXBlY2suYyAoYnVpbGRfYmluYXJ5X29wLCBjYXNlIFRSVU5DX0RJVl9FWFBSKToKCUNhbGwgaW50ZWdlcl9hbGxfb25lc3AuCgkqIHR5cGVjazIuYyAocHJvY2Vzc19pbml0X2NvbnN0cnVjdG9yKTogVXNlIGNvbXBhcmVfdHJlZV9pbnQuCgoJKiBsYW5nLXNwZWNzLmggKGFzKTogRG9uJ3QgY2FsbCBpZiAtc3ludGF4LW9ubHkuCgoyMDAwLTAzLTA2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZXhwci5jIChjcGx1c19leHBhbmRfZXhwciwgY2FzZSBTVE1UX0VYUFIpOiBEb24ndCBzZXQKCVJUTF9FWFBSX0hBU19OT19TQ09QRSBhZnRlciBhbGwuCgoyMDAwLTAzLTA1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZXhwci5jIChjcGx1c19leHBhbmRfZXhwciwgY2FzZSBTVE1UX0VYUFIpOiBVc2UKCWV4cGFuZF9zdGFydF9zdG10X2V4cHIgYW5kIGV4cGFuZF9lbmRfc3RtdF9leHByIGRpcmVjdGx5LiAgU2V0CglSVExfRVhQUl9IQVNfTk9fU0NPUEUuCgoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogQ2xlYXIgVElfUEVORElOR19URU1QTEFURV9GTEFHIGEgbGl0dGxlCglsYXRlci4KCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IER1bXAgU0NPUEVfTk9fQ0xFQU5VUFNfUC4KCjIwMDAtMDMtMDUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGNvbnZlcnRfbGlrZSk6IE1hY3JvZnkuCgkoY29udmVydF9saWtlX3dpdGhfY29udGV4dCk6IE5ldyBtYWNyby4KCShjb252ZXJ0X2xpa2VfcmVhbCk6IFJlbmFtZWQgZnJvbSBjb252ZXJ0X2xpa2UuICBBZGQgY2FsbGluZwoJY29udGV4dCBwYXJhbWV0ZXJzLCBmb3IgZGlhZ25vc3RpY3MuIEFkZCByZWN1cnNpdmUgZmxhZy4gIENhbGwKCWR1YmlvdXNfY29udmVyc2lvbl93YXJuaW5ncyBmb3Igb3V0ZXIgY29udmVyc2lvbi4KCShidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbik6IFVzZSBjb252ZXJ0X2xpa2Vfd2l0aF9jb250ZXh0LgoJKGJ1aWxkX292ZXJfY2FsbCk6IExpa2V3aXNlLiBEb24ndCB3YXJuIGFib3V0IGR1YmlvdXMKCWNvbnZlcnNpb25zIGhlcmUuIEFkanVzdCBjb252ZXJ0X2RlZmF1bHRfYXJnIGNhbGxzLgoJKGNvbnZlcnRfZGVmYXVsdF9hcmcpOiBBZGQgY29udGV4dCBwYXJhbWV0ZXJzIGZvciBkaWFnbm9zdGljcy4KCVBhc3MgdGhyb3VnaCB0byBjb252ZXJ0X2xpa2Vfd2l0aF9jb250ZXh0LgoJKiBjcC10cmVlLmggKGNvbnZlcnRfZGVmYXVsdF9hcmcpOiBBZGQgY29udGV4dCBwYXJhbWV0ZXJzLgoJKGR1YmlvdXNfY29udmVyc2lvbl93YXJuaW5ncyk6IFByb3RvdHlwZSBuZXcgZnVuY3Rpb24uCgkqIHR5cGVjay5jIChjb252ZXJ0X2FyZ3VtZW50cyk6IEFkanVzdCBjb252ZXJ0X2RlZmF1bHRfYXJnIGNhbGwuCgkoZHViaW91c19jb252ZXJzaW9uX3dhcm5pbmdzKTogTmV3IGZ1bmN0aW9uLCBicm9rZW4KCW91dCBvZiBjb252ZXJ0X2Zvcl9hc3NpZ25tZW50LgoJKGNvbnZlcnRfZm9yX2Fzc2lnbm1lbnQpOiBBZGp1c3QuCgoyMDAwLTAzLTAzICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGRlY2wyLmMgKGtleV9tZXRob2QpOiBCcmVhayBvdXQgZnJvbS4uLgoJKGltcG9ydF9leHBvcnRfdnRhYmxlLCBpbXBvcnRfZXhwb3J0X2NsYXNzKTogLi4uaGVyZS4KCgkqIGRlY2wuYyAoZmluaXNoX2Z1bmN0aW9uKTogRG9uJ3QgbWVzcyB3aXRoIGZsYWdfa2VlcF9pbmxpbmVfZnVuY3Rpb25zLgoJKiBkZWNsMi5jIChmaW5pc2hfdnRhYmxlX3ZhcmRlY2wpOiBEb24ndCBjaGVjayBkZWNsX2Z1bmN0aW9uX2NvbnRleHQuCgoJKiBzZWFyY2guYyAobm90ZV9kZWJ1Z19pbmZvX25lZWRlZCwgZGZzX2RlYnVnX21hcmssCglkZnNfZGVidWdfdW5tYXJrZWRwKTogVW5jb21tZW50LiAgQWRqdXN0IGZvciBuZXcgc2NoZW1lLgoJKiBkZWNsMi5jIChmaW5pc2hfdnRhYmxlX3ZhcmRlY2wpOiBDYWxsIG5vdGVfZGVidWdfaW5mb19uZWVkZWQuCgoyMDAwLTAzLTAzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChjcF9maW5pc2hfZGVjbCk6IFJlbW92ZSBvYnNvbGV0ZSBvYnN0YWNrIGNvbW1lbnRzLCBmaXgKCXR5cG9zLgoKMjAwMC0wMy0wMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoVFlQRV9ORUVEU19ERVNUUlVDVE9SKTogUmVuYW1lIHRvIC4uLgoJKFRZUEVfSEFTX05PTlRSSVZJQUxfREVTVFJVQ1RPUik6IC4uLiB0aGlzLgoJKFRZUEVfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUik6IE5ldyBtYWNyby4KCShsYW5nX3R5cGUpOiBTcGxpdCBnZXRzX25ldyBpbnRvIGhhc19uZXcgYW5kIGhhc19hcnJheV9uZXcuCgkoVFlQRV9WRUNfTkVXX1VTRVNfQ09PS0lFKTogVXNlIFRZUEVfSEFTX05PTlRSSVZJQUxfREVTVFJVQ1RPUi4KCShUWVBFX0dFVFNfTkVXKTogU3BsaXQgaW50byAuLi4KCShUWVBFX0hBU19ORVdfT1BFUkFUT1IpOiAuLi4gdGhpcywgYW5kIC4uLgoJKFRZUEVfSEFTX0FSUkFZX05FV19PUEVSQVRPUik6IC4uLiB0aGlzLgoJKERFQ0xfQVJSQVlfREVMRVRFX09QRVJBVE9SX1ApOiBOZXcgbWFjcm8KCShidWlsZF9vcF9uZXdfY2FsbCk6IERvbid0IGRlY2xhcmUuCgkoYnVpbGRfbmV3XzEpOiBMaWtld2lzZS4KCSogY2FsbC5jIChidWlsZF9vcF9uZXdfY2FsbCk6IFJlbW92ZS4KCSogY2xhc3MuYyAoY2hlY2tfYmFzZXMpOiBVc2UgVFlQRV9IQVNfTk9OVFJJVklBTF9ERVNUUlVDVE9SCglpbnN0ZWFkIG9mIFRZUEVfTkVFRFNfREVTVFJVQ1RPUi4KCShmaW5pc2hfc3RydWN0X2JpdHMpOiBMaWtld2lzZS4KCShhZGRfaW1wbGljaXRseV9kZWNsYXJlZF9tZW1iZXJzKTogTGlrZXdpc2UuCgkoY2hlY2tfZmllbGRfZGVjbCk6IExpa2V3aXNlLgoJKGNoZWNrX21ldGhvZHMpOiBTZXQgVFlQRV9WRUNfREVMRVRFX1RBS0VTX1NJWkUgaGVyZSwgYW5kIHNldCBpdAoJY29ycmVjdGx5IHVuZGVyIHRoZSBuZXcgQUJJLgoJKiBkZWNsLmMgKHN0YXJ0X2RlY2xfMSk6IFVzZSBUWVBFX0hBU19OT05UUklWSUFMX0RFU1RSVUNUT1IKCWluc3RlYWQgb2YgVFlQRV9ORUVEU19ERVNUUlVDVE9SLgoJKGluaXRpYWxpemVfbG9jYWxfdmFyKTogTGlrZXdpc2UuCgkoZGVzdHJveV9sb2NhbF92YXIpOiBMaWtld2lzZS4KCShjcF9maW5pc2hfZGVjbCk6IExpa2V3aXNlLgoJKHJlZ2lzdGVyX2R0b3JfZm4pOiBMaWtld2lzZS4KCShncm9rX29wX3Byb3BlcnRpZXMpOiBTZXQgVFlQRV9IQVNfTkVXX09QRVJBVE9SIGFuZAoJVFlQRV9IQVNfQVJSQVlfTkVXX09QRVJBVE9SLCBub3QgVFlQRV9IQVNfTkVXLiAgRG9uJ3Qgc2V0CglUWVBFX1ZFQ19ERUxFVEVfVEFLRVNfU0laRSBoZXJlLgoJKHhyZWZfYmFzZXR5cGVzKTogU2V0IFRZUEVfSEFTX05FV19PUEVSQVRPUiBhbmQKCVRZUEVfSEFTX0FSUkFZX05FV19PUEVSQVRPUiwgbm90IFRZUEVfSEFTX05FVy4KCShzdG9yZV9wYXJtX2RlY2xzKTogIFVzZSBUWVBFX0hBU19OT05UUklWSUFMX0RFU1RSVUNUT1IuCgkoZmluaXNoX2Rlc3RydWN0b3JfYm9keSk6IExpa2V3aXNlLgoJKG1heWJlX2J1aWxkX2NsZWFudXBfMSk6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChkb19zdGF0aWNfZGVzdHJ1Y3Rpb24pOiBMaWtld2lzZS4KCSogaW5pdC5jIChidWlsZF9uZXdfMSk6IE1ha2UgaXQgc3RhdGljLgoJKHBlcmZvcm1fbWVtYmVyX2luaXQpOiBVc2UgVFlQRV9IQVNfTk9OVFJJVklBTF9ERVNUUlVDVE9SLgoJKGV4cGFuZF9jbGVhbnVwX2Zvcl9iYXNlKTogTGlrZXdpc2UuCgkoZ2V0X2Nvb2tpZV9zaXplKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX25ld18xKTogSGFuZGxlIGFycmF5LW5ldyBjb29raWVzIGNvcnJlY3RseSB1bmRlciB0aGUgbmV3CglBQkkuCgkoYnVpbGRfdmVjX2RlbGV0ZV8xKTogTGlrZXdpc2UuCgkoYnVpbGRfdmVjX2luaXQpOiAgVXNlIFRZUEVfSEFTX05PTlRSSVZJQUxfREVTVFJVQ1RPUi4KCShidWlsZF9kZWxldGUpOiBMaWtld2lzZS4KCShidWlsZF92ZWNfZGVsZXRlKTogSGFuZGxlIGFycmF5LW5ldyBjb29raWVzIGNvcnJlY3RseSB1bmRlciB0aGUgbmV3CglBQkkuCgkqIGxleC5jIChkb19pZGVudGlmaWVyKTogVXNlIFRZUEVfSEFTX05PTlRSSVZJQUxfREVTVFJVQ1RPUi4KCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBTZXQgVFlQRV9IQVNfTkVXX09QRVJBVE9SIGFuZAoJVFlQRV9IQVNfQVJSQVlfTkVXX09QRVJBVE9SLgoJKiBwdHJlZS5jIChwcmludF9sYW5nX3R5cGUpOiBDaGVjayB0aGVtLgoJKiBzZWFyY2guYyAoY29udGV4dF9mb3JfbmFtZV9sb29rdXApOiBGaXggdHlwbyBpbiBjb21tZW50LgoJKHRyZWVfaGFzX2FueV9kZXN0cnVjdG9yX3ApOiBVc2UgVFlQRV9IQVNfTk9OVFJJVklBTF9ERVNUUlVDVE9SLgoJKiB0cmVlLmMgKGJyZWFrX291dF9jbGVhbnVwcyk6IExpa2V3aXNlLgoJKGJ1aWxkX2NwbHVzX2FycmF5X3Rlc3RfMSk6IExpa2V3aXNlLgoJKGNwX2J1aWxkX3F1YWxpZmllZF90eXBlX3JlYWwpOiBMaWtld2lzZS4KCSogdHlwZWNrLmMgKGNvbXBsZXRlX3R5cGUpOiBMaWtld2lzZS4KCgkqIGcrK3NwZWMuYyAobGFuZ19zcGVjaWZpY19kcml2ZXIpOiBBZGQgLWZuZXctYWJpIGF0IHRoZSBzdGFydCBvZgoJdGhlIGNvbW1hbmQtbGluZSwgbm90IHRoZSBlbmQuCgoyMDAwLTAzLTAxICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIHB0LmMgKGluc3RhbnRpYXRlX2RlY2wpOiBDbGVhciBUSV9QRU5ESU5HX1RFTVBMQVRFX0ZMQUcuCgoyMDAwLTAzLTAyICBUb20gVHJvbWV5ICA8dHJvbWV5QGN5Z251cy5jb20+CgoJKiBjcC10cmVlLmggKGJ1aWxkX2phdmFfY2xhc3NfcmVmKTogRGVjbGFyZS4KCSogaW5pdC5jIChidWlsZF9qYXZhX2NsYXNzX3JlZik6IE5vIGxvbmdlciBzdGF0aWMuCgkqIGV4Y2VwdC5jIChleHBhbmRfdGhyb3cpOiBHZW5lcmF0ZSBhIEphdmEtc3R5bGUgYHRocm93JyBpZiB0aGUKCXRocm93biBvYmplY3QgaXMgYSAiSmF2YSIgb2JqZWN0LgoJKGluaXRpYWxpemVfaGFuZGxlcl9wYXJtKTogR2VuZXJhdGUgYSBKYXZhLXN0eWxlIGxvb2t1cCBvZgoJZXhjZXB0aW9uIGluZm8gaWYgdGhlIGNhdWdodCBvYmplY3QgaXMgYSAiSmF2YSIgb2JqZWN0LgoJKGNhdGNoX2xhbmd1YWdlLCBjYXRjaF9sYW5ndWFnZV9pbml0KTogTmV3IGdsb2JhbHMuCgkoZGVjbF9pc19qYXZhX3R5cGUpOiBOZXcgZnVuY3Rpb24uCgkoZXhwYW5kX3N0YXJ0X2NhdGNoX2Jsb2NrKTogRG9uJ3QgY2FsbCBwdXNoX2VoX2luZm8oKSBvcgoJcHVzaF9laF9jbGVhbnVwKCkgd2hlbiBoYW5kbGluZyBhIEphdmEtc3R5bGUgImNhdGNoIi4gIFBhc3MgSmF2YQoJY2xhc3MgcmVmZXJlbmNlIHRvIGJ1aWxkX2NhdGNoX2Jsb2NrLgoKMjAwMC0wMy0wMiAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIHR5cGVjay5jIChjb21wdHlwZXMpOiBUcmVhdCBzaXpldHlwZSBsaWtlIGl0cyBsYW5ndWFnZSBlcXVpdmFsZW50LgoKMjAwMC0wMy0wMSAgQmVybmQgU2NobWlkdCAgPGJlcm5kc0BjeWdudXMuY28udWs+CgoJKiB0eXBlY2suYyAobWF5YmVfd2Fybl9hYm91dF9yZXR1cm5pbmdfYWRkcmVzc19vZl9sb2NhbCk6IFJlb3JnYW5pemUKCXRvIG1lcmdlIHJlZmVyZW5jZS9wb2ludGVyIGNvZGUgYW5kIGZpeCBpbmNvcnJlY3Qgd2FybmluZ3MuCgoyMDAwLTAyLTI5ICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIHNlYXJjaC5jIChwcm90ZWN0ZWRfYWNjZXNzaWJsZV9wKTogVXNlIGNvbnRleHRfZm9yX25hbWVfbG9va3VwLgoKCSogaW5pdC5jIChjb25zdHJ1Y3RfdmlydHVhbF9iYXNlcyk6IEZpeCB0aGlua28uCgkqIHR5cGVjay5jIChleHBhbmRfcHRybWVtZnVuY19jc3QpOiBGaXggdGhpbmtvLgoKMjAwMC0wMy0wMSAgTWFydGluIHZvbiBMb2V3aXMgIDxsb2V3aXNAaW5mb3JtYXRpay5odS1iZXJsaW4uZGU+CgoJKiBkZWNsLmMgKGN1cnJlbnRfZnVuY3Rpb25fZGVjbCk6IE1vdmUgdG8gdG9wbGV2LmMuCgoyMDAwLTAyLTI5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAoZm5fdHlwZV91bmlmaWNhdGlvbik6IFVuaWZ5IHJldHVybiB0eXBlLCB3aGVuZXZlcgoJcHJvdmlkZWQuCgkoZ2V0X2JpbmRpbmdzX3JlYWwpOiBPbmx5IHBhc3MgcmV0dXJuIHR5cGUgd2hlbiBuZWNlc3NhcnkuCglSZW1vdmUgZXhwbGljaXQgcmV0dXJuIHR5cGUgY2hlY2suCgkqIGNsYXNzLmMgKHJlc29sdmVfYWRkcmVzc19vZl9vdmVybG9hZGVkX2Z1bmN0aW9uKTogUGFzcyBkZXNpcmVkCglyZXR1cm4gdHlwZSB0byBmbl90eXBlX3VuaWZpY2F0aW9uLgoKMjAwMC0wMi0yOCAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0Ymxfb3JfdmJhc2VfZmllbGQsIGNoZWNrX21ldGhvZHMpOiBEb24ndCBjbGVhcgoJREVDTF9GSUVMRF9TSVpFLgoJKGNoZWNrX2JpdGZpZWxkX2RlY2wsIGNoZWNrX2ZpZWxkX2RlY2xzKTogU2V0IERFQ0xfU0laRSwgbm90CglERUNMX0ZJRUxEX1NJWkUuCgkqIHJ0dGkuYyAoZXhwYW5kX2NsYXNzX2Rlc2MpOiBMaWtld2lzZS4KCSogY3AtdHJlZS5oIChERUNMX0lOSVRfUFJJT1JJVFkpOiBVc2UgdW5kZXJseWluZyB1bmlvbiBuYW1lLgoJKFRIVU5LX1ZDQUxMX09GRlNFVCk6IExpa2V3aXNlLgoJKFRIVU5LX0RFTFRBKTogUmVmbGVjdCBjaGFuZ2VzIGluIC4uL3RyZWUuaC4KCjIwMDAtMDItMjggIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogc2VhcmNoLmMgKHByb3RlY3RlZF9hY2Nlc3NpYmxlX3ApOiBBbHNvIGFsbG93IHRoZSBhY2Nlc3MgaWYKCXRoZSBtZW1iZXIgaXMgcHVibGljIGluIERFUklWRUQuICBMb3NlIFRZUEUgcGFybS4KCShmcmllbmRfYWNjZXNzaWJsZV9wKTogTG9zZSBUWVBFIHBhcm0uCgkoYWNjZXNzaWJsZV9wKTogQWRqdXN0LgoKMjAwMC0wMi0yNyAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGNsYXNzLmMgKGRmc19idWlsZF92dGFibGVfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IERvbid0IHVzZSBzaXplX2Jpbm9wCglvbiB0aGluZ3MgdGhhdCBhcmUgbm90IHNpemVzOyBzc2l6ZV9iaW5vcCBkZWxldGVkLgoJQ2FsbCBzaXplX2RpZmZvcCB3aGVuIGFwcHJvcHJpYXRlLgoJKGRmc19idWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkoYnVpbGRfcHJpbWFyeV92dGFibGUsIGJ1aWxkX3NlY29uZGFyeV92dGFibGUpOiBMaWtld2lzZS4KCShkZnNfc2V0X29mZnNldF9mb3JfdW5zaGFyZWRfdmJhc2VzLCBkZnNfbW9kaWZ5X3Z0YWJsZXMpOiBMaWtld2lzZS4KCVZhcmlhYmxlIEkgaXMgSE9TVF9XSURFX0lOVC4KCShnZXRfdmZpZWxkX29mZnNldCk6IFBhc3MgcHJvcGVyIHR5cGVzIHRvIHNpemVfYmlub3AuCgkoc2l6ZV9leHRyYV92dGJsX2VudHJpZXMsIGxheW91dF92aXJ0dWFsX2Jhc2VzKTogTGlrZXdpc2UuCgkoZmluaXNoX3N0cnVjdF8xKTogTGlrZXdpc2UuCgkoc2tpcF9ydHRpX3N0dWZmKTogQXJnIE4gaXMgbm93IHBvaW50ZXIgdG8gc2lnbmVkLgoJKGxheW91dF9jbGFzc190eXBlKTogVXNlIHNpemVfemVyb19ub2RlLgoJKiBjcC10cmVlLmggKHNraXBfcnR0aV9zdHVmZik6IEFyZyBOIGlzIHBvaW50ZXIgdG8gc2lnbmVkLgoJKiBjdnQuYyAoY3BfY29udmVydF90b19wb2ludGVyKTogUGFzcyBwcm9wZXIgdHlwZXMgdG8gc2l6ZV9iaW5vcC4KCSogZGVjbC5jIChjb21wbGV0ZV9hcnJ5X3R5cGUpOiBQYXNzIHByb3BlciB0eXBlcyB0byBzaXplX2Jpbm9wLgoJKHhyZWZfYmFzZXR5cGVzKTogQklORk9fT0ZGU0VUIGlzIHNpemV0eXBlLgoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBEb24ndCB1c2Ugc2l6ZV9iaW5vcCBub24tc2l6ZXMuCgkqIGV4cHIuYyAoY3BsdXNfZXhwYW5kX2NvbnN0YW50KTogUGFzcyBwcm9wZXIgdHlwZXMgdG8gc2l6ZV9iaW5vcC4KCSogaW5pdC5jIChjb25zdHJ1Y3RfdmlydHVhbF9iYXNlcyk6IEZpeCB0eXBlIGVycm9yLgoJKGJ1aWxkX3ZlY19kZWxldGVfMSk6IFBhc3MgcHJvcGVyIHR5cGUgdG8gc2l6ZV9iaW5vcCBhbmQgZG9uJ3QKCWZvbGQgcmVzdWx0LgoJKiBsZXguYyAoY3BfbWFrZV9sYW5nX3R5cGUpOiBCSU5GT19PRkZTRVQgaXMgc2l6ZXR5cGUuCgkqIHJ0dGkuYyAoZ2V0X2Jhc2Vfb2Zmc2V0KTogUGFzcyBwcm9wZXIgdHlwZSB0byBzaXplX2Jpbm9wLgoJKiBzZWFyY2guYyAoZGZzX2ZpbmRfdmJhc2VzKTogRml4IHR5cGUgZXJyb3IuCgkoZXhwYW5kX3VwY2FzdF9maXh1cHMpOiBBcmcgdG8gc2tpcF9ydHRpX3N0dWZmIGlzIHBvaW50ZXIgdG8gc2lnbmVkLgoJKGRmc19nZXRfdmJhc2VfdHlwZXMpOiBCSU5GT19PRkZTRVQgaXMgc2l6ZXR5cGUuCgkqIHRyZWUuYyAoZGVidWdfYmluZm8pOiBWYXJpYWJsZSBOIGlzIHNpZ25lZC4KCVVzZSBIT1NUX1dJREVfSU5UX1BSSU5UX0RFQy4KCSogdHlwZWNrLmMgKGNvbXB0eXBlcyk6IHNpemV0eXBlIGlzIHNhbWUgYXMgZXF1aXZhbGVudCBpbnRlZ2VyIHR5cGUuCgkoY19zaXplb2YsIGNfc2l6ZW9mX25vd2FybiwgZXhwcl9zaXplb2YpOiBVc2UgVFlQRV9TSVpFX1VOSVQsCglzaXplX29uZV9ub2RlIGFuZCBzaXplX3plcm9fbm9kZS4KCShjX2FsaWdub2YpOiBVc2Ugc2l6ZV9vbmVfbm9kZS4KCShidWlsZF9jb21wb25lbnRfYWRkcik6IFBhc3MgcHJvcGVyIHR5cGVzIHRvIHNpemVfYmlub3AuCgkoZXhwYW5kX3B0cm1lbWZ1bmNfY3N0KTogRG9uJ3QgdXNlIHNpemVfYmlub3Agb24gbm9uLXNpemVzLgoKMjAwMC0wMi0yNiAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJSW1wbGVtZW50IGNsYXNzIHNjb3BlIHVzaW5nLWRlY2xhcmF0aW9ucyBmb3IgZnVuY3Rpb25zLgoJKiBjbGFzcy5jIChoYW5kbGVfdXNpbmdfZGVjbCk6IENhbGwgYWRkX21ldGhvZCBmb3IgdXNlZCBmdW5jdGlvbnMuCglVc2UgSURFTlRJRklFUl9DTEFTU19WQUxVRSB0byBjaGVjayBmb3IgY29uZmxpY3RzLgoJKGFkZF9tZXRob2QpOiBVc2VkIGZ1bmN0aW9ucyBhcmUgaGlkZGVuIGJ5IGxvY2FsIGZ1bmN0aW9ucy4KCShjaGVja19iYXNlc19hbmRfbWVtYmVycyk6IEhhbmRsZSB1c2luZy1kZWNscyBiZWZvcmUgZmluYWxpemluZwoJQ0xBU1NUWVBFX01FVEhPRF9WRUMuCgkqIGNhbGwuYyAoYWRkX2Z1bmN0aW9uX2NhbmRpZGF0ZSk6IEFkZCBjdHlwZSBwYXJtOyBpZiBub256ZXJvLAoJb3ZlcnJpZGUgdGhlIHR5cGUgb2YgJ3RoaXMnIGFjY29yZGluZ2x5LgoJKGFkZF90ZW1wbGF0ZV9jYW5kaWRhdGUsIGFkZF90ZW1wbGF0ZV9jYW5kaWRhdGVfcmVhbCk6IEFkZCBjdHlwZSBwYXJtLgoJKGNvbnZlcnRfY2xhc3NfdG9fcmVmZXJlbmNlLCBidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xLAoJYnVpbGRfbmV3X2Z1bmN0aW9uX2NhbGwsIGJ1aWxkX29iamVjdF9jYWxsLCBidWlsZF9uZXdfb3AsCglidWlsZF9uZXdfbWV0aG9kX2NhbGwpOiBQYXNzIGN0eXBlIHBhcm0uCgoJKiBzZWFyY2guYyAobG9va3VwX21lbWJlcik6IFB1dCBydmFsX2JpbmZvLCBub3QgYmFzZXR5cGVfcGF0aCwgaW4KCXRoZSBiYXNlbGluay4KCSogY2FsbC5jIChjb252ZXJ0X2NsYXNzX3RvX3JlZmVyZW5jZSwgYnVpbGRfdXNlcl90eXBlX2NvbnZlcnNpb25fMSwKCWJ1aWxkX25ld19mdW5jdGlvbl9jYWxsLCBidWlsZF9vYmplY3RfY2FsbCwgYnVpbGRfbmV3X29wLAoJYnVpbGRfbmV3X21ldGhvZF9jYWxsLCBidWlsZF9vcF9kZWxldGVfY2FsbCk6IERvbid0IGdldCBiYXNldHlwZV9wYXRoCglmcm9tIGEgYmFzZWxpbmsuCgkqIHR5cGVjay5jIChidWlsZF9jb21wb25lbnRfcmVmKTogTGlrZXdpc2UuCgkqIGluaXQuYyAoYnVpbGRfb2Zmc2V0X3JlZik6IExpa2V3aXNlLgoJKHJlc29sdmVfb2Zmc2V0X3JlZik6IERvbid0IGNhbGwgZW5mb3JjZV9hY2Nlc3MuCglDYWxsIGJ1aWxkX3Njb3BlZF9yZWYuCgkqIHR5cGVjazIuYyAoYnVpbGRfc2NvcGVkX3JlZik6IFNpbXBsaWZ5LiAgRG8gbm90aGluZyBpZiBpdAoJd291bGQgY2F1c2UgYW4gZXJyb3Igb3IgaWYgLXBlZGFudGljLgoJKiBjbGFzcy5jIChhbHRlcl9hY2Nlc3MpOiBMb3NlIGJpbmZvIHBhcm0uCgoyMDAwLTAyLTI2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogc2VtYW50aWNzLmMgKHNpbXBsaWZ5X2FnZ3JfaW5pdF9leHByc19wKTogRG9uJ3Qgd2FsayBpbnRvCgl0eXBlcy4KCjIwMDAtMDItMjUgIEFsZnJlZCBNaW5hcmlrIDxhODYwMTI0OEB1bmV0LnVuaXZpZS5hYy5hdD4KCgkqIHJ0dGkuYyAoZ2V0X3ZtaV9wc2V1ZG9fdHlwZV9pbmZvKTogTW92ZSBfX3ZtaV9jbGFzc190eXBlX2luZm8KCXBzZXVkb190eXBlX2luZm8gY3JlYXRpb24gaW50byB0aGUgc3RkIG5hbWVzcGFjZQoKMjAwMC0wMi0yNiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoREVDTF9ORUVERURfUCk6IFR3ZWFrIHRvIGNvcnJlY3QgdXNhZ2UgYmVmb3JlIEVPRi4KCShpbXBvcnRfZXhwb3J0X2NsYXNzKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKiBkZWNsMi5jIChpbXBvcnRfZXhwb3J0X2NsYXNzKTogTWFrZSBpdCBzdGF0aWMuCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IEhhbmRsZSBQUkVERUNSRU1FTlRfRVhQUiwKCVBSRUlOQ1JFTUVOVF9FWFBSLCBQT1NUREVDUkVNRU5UX0VYUFIsIFBPU1RJTkNSRU1FTlRfRVhQUiwKCUVYUFJfV0lUSF9GSUxFX0xPQ0FUSU9OLgoJKiBsZXguYyAoY2hlY2tfbmV3bGluZSk6IFR3ZWFrIGZpbGVuYW1lL2xpbmVubyBzZXR0aW5nLgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5fd2hpbGVfc3RtdCk6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgoyMDAwLTAyLTI2ICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogbGFuZy1vcHRpb25zLmggKC1mbWVzc2FnZS1sZW5ndGg9KTogQWRkIG1pc3Npbmcgb3B0aW9uLgoKCSogTWFrZS1sYW5nLmluIChDWFhfU1JDUyk6IEFkZCAuaCBmaWxlcyBhbmQgc29ydCBsaXN0LgoKMjAwMC0wMi0yNiAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogTWFrZS1sYW5nLmluOiBEZWxldGUgcmVmcyB0byBMSUJHQ0MyX0RFUFMuCgoyMDAwLTAyLTI1ICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBvcHRpbWl6ZS5jIChleHBhbmRfY2FsbF9pbmxpbmUpOiBFbWl0IHRoZSByZXR1cm4gbGFiZWwgYmVmb3JlCglldmFsdWF0aW5nIHRoZSByZXR1cm4gdmFsdWUuCgoyMDAwLTAyLTI0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogbGV4LmMgKGNoZWNrX25ld2xpbmUpOiBVc2UgcHVzaF9zcmNsb2MgYW5kIHBvcF9zcmNsb2MsIHJhdGhlcgoJdGhhbiBkdXBsaWNhdGluZyBmdW5jdGlvbmFsaXR5IGhlcmUuCgkqIG9wdGltaXplLmM6IEluY2x1ZGUgaW5wdXQuaC4KCShleHBhbmRfY2FsbF9pbmxpbmUpOiBVc2UgcHVzaF9zcmNsb2MgYW5kIHBvcF9zcmNsb2MuCgkqIHBhcnNlLnkgKG1heWJlX2N2X3F1YWxpZmllcik6IFJlbW92ZSBjYWxscyB0byBlbWl0X2xpbmVfbm90ZS4KCSogcGFyc2UuYzogUmVnZW5lcmF0ZWQuCgkqIE1ha2VmaWxlLmluIChsZXgubyk6IERlcGVuZCBvbiBpbnB1dC5oLgoJKG9wdGltaXplLm8pOiBMaWtld2lzZS4KCjIwMDAtMDItMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogRGlhZ25vc2UgcXVhbGlmaWVycyBvbiBub24tbWVtYmVyCglmdW5jdGlvbiB0eXBlLCByYXRoZXIgdGhhbiBJQ0UuCgoyMDAwLTAyLTIzICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBDYWxsIGRlY2xfdHlwZV9hY2Nlc3NfY29udHJvbC4KCSogcGFyc2UueSAocGFyc2VfZW5kX2RlY2wpOiBEb24ndCBjYWxsIGRlY2xfdHlwZV9hY2Nlc3NfY29udHJvbCBpZgoJZGVjbCBpcyBudWxsLgoKMjAwMC0wMi0yMyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoZGVjbHNfbWF0Y2gpOiBSZW1vdmUgb2Jzb2xldGUgc3RhdGljIG1lbWJlciBuYWRnZXJpbmcuCgoyMDAwLTAyLTIxICBNYXJ0aW4gdi4gTPZ3aXMgIDxsb2V3aXNAaW5mb3JtYXRpay5odS1iZXJsaW4uZGU+CgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogQ2hhbmdlIEFOU0kgdG8gSVNPLgoJKiBsZXguYyAoY29uc3VtZV9zdHJpbmcsIHJlYWRlc2NhcGUsIGRvX2lkZW50aWZpZXIpOiBMaWtld2lzZS4KCShwYXJzZV9mbG9hdCwgcmVhbF95eWxleCk6IExpa2V3aXNlLgoJKiBwYXJzZS55IChwYXJlbl9leHByX29yX251bGwsIHBhcmVuX2NvbmRfb3JfbnVsbCk6IExpa2V3aXNlLgoJKHVuYXJ5X2V4cHIsIG5ld19pbml0aWFsaXplciwgY2FzdF9leHByLCBwcmltYXJ5LCBwcmltYXJ5X25vX2lkLAoJbmV3X3R5cGVfaWQsIG1heWJlX2xhYmVsX2RlY2xzLCBzaW1wbGVfc3RtdCwKCWZvci5pbml0LnN0YXRlbWVudCk6IExpa2V3aXNlLgoJKiBwdC5jIChkb19kZWNsX2luc3RhbnRpYXRpb24sIGRvX3R5cGVfaW5zdGFudGlhdGlvbik6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX25hbWVkX3JldHVybl92YWx1ZSk6IExpa2V3aXNlLgoJKiBwYXJzZS5jOiBSZWdlbmVyYXRlLgoKMjAwMC0wMi0yMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQ1BUSV9WVEFCTEVfSU5ERVhfVFlQRSk6IE5ldyBtYWNyby4KCShDUFRJX0NMQVNTX1NUQVJfVFlQRSk6IFJlbW92ZS4KCSh2dGFibGVfaW5kZXhfdHlwZSk6IExpa2V3aXNlLgoJKGNsYXNzX3N0YXJfdHlwZV9ub2RlKTogUmVtb3ZlLgoJKFRZUEVfUFRSTUVNRlVOQ19GTl9UWVBFKTogQWRqdXN0IGZvciB0aGUgbmV3IEFCSS4KCShidWlsZF9iaW5hcnlfb3Bfbm9kZWZhdWx0KTogUmVtb3ZlLgoJKiBjYWxsLmMgKGJ1aWxkX25ld19vcCk6IFVzZSBidWlsZF9iaW5hcnlfb3AgaW5zdGVhZCBvZgoJYnVpbGRfYmluYXJ5X29wX25vZGVmYXVsdC4KCSogZGVjbC5jIChpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFJlbW92ZSBjbGFzc19zdGFyX3R5cGVfbm9kZQoJaW5pdGlhbGl6YXRpb24uICBNYWtlIGRlbHRhX3R5cGVfbm9kZSBwdHJkaWZmX3R5cGVfbm9kZSB1bmRlciB0aGUKCW5ldyBBQkkuICBJbml0aWFsaXplIHZ0YWJsZV9pbmRleF90eXBlLgoJKGJ1aWxkX3B0cm1lbWZ1bmNfdHlwZSk6IEJ1aWxkIGRpZmZlcmVudCBzdHJ1Y3R1cmVzIGZvciB0aGUgbmV3CglBQkkuCgkoYnVpbGRfZW51bWVyYXRvcik6IFVzZSBidWlsZF9iaW5hcnlfb3AgaW5zdGVhZCBvZgoJYnVpbGRfYmluYXJ5X29wX25vZGVmYXVsdC4KCSogbWV0aG9kLmMgKGJ1aWxkX292ZXJsb2FkX3ZhbHVlKTogTWFuZ2xlIHBvaW50ZXJzLXRvLW1lbWJlcnMKCWFwcHJvcHJpYXRlbHkgdW5kZXIgdGhlIG5ldyBBQkkuCgkqIHR5cGVjay5jIChidWlsZF9hcnJheV9yZWYpOiBVc2UgYnVpbGRfYmluYXJ5X29wIGluc3RlYWQgb2YKCWJ1aWxkX2JpbmFyeV9vcF9ub2RlZmF1bHQuCgkoZ2V0X21lbWJlcl9mdW5jdGlvbl9mcm9tX3B0cmZ1bmMpOiBBZGp1c3QgZm9yIHRoZSBuZXcgQUJJLgoJKGJ1aWxkX2JpbmFyeV9vcF9ub2RlZmF1bHQpOiBSZW5hbWUgdG8gLi4uCgkoYnVpbGRfYmluYXJ5X29wKTogLi4uIHRoaXMuICBSZW1vdmUgb2xkIHZlcnNpb24uICBBZGp1c3QgZm9yCglwb2ludGVyLXRvLW1lbWJlciBjb21wYXJpc29ucyB1bmRlciB0aGUgbmV3IEFCSS4KCShidWlsZF9wdHJtZW1mdW5jMSk6IFJlbW92ZSBkZWFkIGNvZGUuICBBZGp1c3QgZm9yIHRoZSBuZXcgQUJJLgoJKGJ1aWxkX3B0cm1lbWZ1bmMpOiBBZGp1c3QgZm9yIHRoZSBuZXcgQUJJLgoJKGV4cGFuZF9wdHJtZW1mdW5jX2NzdCk6IExpa2V3aXNlLgoJKGRlbHRhMl9mcm9tX3B0cm1lbWZ1bmMpOiBBc3NlcnQgdGhhdCB3ZSdyZSBub3QgdXNpbmcgdGhlIG5ldyBBQkkuCgkocGZuX2Zyb21fcHRybWVtZnVuYyk6IEFkanVzdCBmb3IgdGhlIG5ldyBBQkkuCgoyMDAwLTAyLTIxICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGJ1aWxkX29iamVjdF9jYWxsKTogQ29tcHJlc3MgY29uc2VjdXRpdmUgY2FsbHMgdG8KCWNwX2Vycm9yLgoJKGJ1aWxkX2NvbmRpdGlvbmFsX2V4cHIpOiBTYXkgJ0lTTyBDKysnIG5vdCAnQU5TSSBDKysnLgoJKGJ1aWxkX29wX2RlbGV0ZV9jYWxsKTogQWRqdXN0IG1lc3NhZ2UgZm9ybWF0dGluZy4KCgkqIGNsYXNzLmMgKGNoZWNrX2Jhc2VzKTogQ29tcHJlc3MgY29uc2VjdXRpdmUgY2FsbHMgdG8KCWNwX3BlZHdhcm4uCgkoZmluaXNoX3N0cnVjdF9hbm9uKTogU2F5ICdJU08gQysrJy4KCgkqIGRlY2wuYyAoc3RhcnRfZGVjbCk6IFNhbWUgaGVyZS4KCShncm9rX3JlZmVyZW5jZV9pbml0KTogTGlrZXdpc2UuCgkoZ3Jva2ZuZGVjbCk6IENvcnJlY3QgbWVzc2FnZSBmb3JtYXR0aW5nLgoJKGdyb2tmbmRlY2wpOiBJbXByb3ZlIGRpYWdub3N0aWMuCgkoY2hlY2tfc3RhdGljX3ZhcmlhYmxlX2RlZmluaXRpb24pOiBMaWtld2lzZS4gU2F5ICdJU08gQysrJwoJKGNvbXB1dGVfYXJyYXlfaW5kZXhfdHlwZSk6IFNheSAnSVNPIEMrKycKCShjcmVhdGVfYXJyYXlfdHlwZV9mb3JfZGVjbCk6IENvbXByZXNzIGNvbnNlY3V0aXZlIGNhbGxzIHRvCgljcF9lcnJvci4KCShncm9rZGVjbGFyYXRvcik6IFNheSAnSVNPIEMrKycKCShncm9rX29wX3Byb3BlcnRpZXMpOiBMaWtld2lzZS4KCgkqIGRlY2wyLmMgKGRlbGV0ZV9zYW5pdHkpOiBDbGFpcmlmeSBkaWFnbm9zdGljLgoJKGNoZWNrX21lbWJlcl90ZW1wbGF0ZSk6IFNhbWUgaGVyZS4KCShncm9rX2Z1bmN0aW9uX2luaXQpOiBVc2UgY29uc2lzdGVudCB0ZXJtaW5vbG9neS4KCgkqIGV4cHIuYyAoZG9fY2FzZSk6IFNheSAnSVNPIEMrKycKCgkqIGZyaWVuZC5jIChkb19mcmllbmQpOiBDb21wcmVzcyBjb25zZWN1dGl2ZSBjYWxscyB0byB3YXJuaW5nLgoKMjAwMC0wMi0yMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAobWVyZ2VfcHJpbWFyeV9hbmRfc2Vjb25kYXJ5X3Z0YWJsZXNfcCk6IE5ldyBtYWNyby4KCSogY2xhc3MuYyAoYnVpbGRfc2Vjb25kYXJ5X3Z0YWJsZSk6IFJlb3JnYW5pemUuICBEb24ndCBjcmVhdGUgYQoJbmV3IHZ0YWJsZSB1bmRlciB0aGUgbmV3IEFCSS4KCShsYXlvdXRfdnRhYmxlX2RlY2wpOiBEb24ndCBhZGQgbnVtX2V4dHJhX3Z0YmxfZW50cmllcyB3aGVuCgljb21wdXRpbmcgdGhlIHNpemUuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IERvbid0IHJldHVybiBhIENPTlNUUlVDVE9SOyBqdXN0IHJldHVybgoJdGhlIGluaXRpYWxpemluZyBlbGVtZW50cy4KCShpbml0aWFsaXplX3Z0YWJsZSk6IE5ldyBmdW5jdGlvbi4KCShkZnNfZmluaXNoX3Z0YmxzKTogVXNlIGl0LgoJKGRmc19hY2N1bXVsYXRlX3Z0YmxfaW5pdHMpOiBOZXcgZnVuY3Rpb24uCgkoZmluaXNoX3Z0YmxzKTogTWVyZ2UgcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IHZ0YWJsZXMgdW5kZXIgdGhlIG5ldwoJQUJJLgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IFJlbW92ZSByZWR1bmRhbnQgY2FsbCB0byBsYXlvdXRfdnRhYmxlX2RlY2wuCgkqIGluaXQuYyAoZXhwYW5kX3ZpcnR1YWxfaW5pdCk6IERlYWwgd2l0aCBCSU5GT19WVEFCTEVzIHRoYXQKCWFyZW4ndCBWQVJfREVDTHMuCgoJKiBjbGFzcy5jIChidWlsZF92dGFibGUpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBmcm9tIC4uLgoJKGdldF92dGFibGVfZGVjbCk6IC4uLiBoZXJlLCBhbmQgLi4uCgkoYnVpbGRfc2Vjb25kYXJ5X3Z0YWJsZSk6IC4uLiBoZXJlLgoKCSogcHQuYyAodHN1YnN0X2RlY2wpOiBGaXggZm9ybWF0dGluZy4KCjIwMDAtMDItMTkgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiBjbGFzcy5jIChidWlsZF9wcmltYXJ5X3Z0YWJsZSwgbGF5b3V0X3Z0YWJsZV9kZWNsKTogTGlrZXdpc2UuCgkoYXZvaWRfb3ZlcmxhcCwgYnVpbGRfYmFzZV9maWVsZCk6IExpa2V3aXNlLgoJKGJ1aWxkX2Jhc2VfZmllbGQsIGJ1aWxkX2Jhc2VfZmllbGRzLCBpc19lbXB0eV9jbGFzcyk6CglUZXN0IERFQ0xfU0laRSB3aXRoIGludGVnZXJfemVyby4KCShsYXlvdXRfY2xhc3NfdHlwZSk6IFNldCBDTEFTU1RZUEVfU0laRV9VTklULgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5nX3R5cGUpOiBOZXcgZmllbGQgc2l6ZV91bml0LgoJKENMQVNTVFlQRV9TSVpFX1VOSVQpOiBOZXcgbWFjcm8uCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBTZXQgREVDTF9TSVpFX1VOSVQuCgkoY3BfZmluaXNoX2RlY2wpOiBEZWxldGUgLVdsYXJnZXItdGhhbiBwcm9jZXNzaW5nLgoJKiBvcHRpbWl6ZS5jIChyZW1hcF9kZWNsKTogV2FsayBERUNMX1NJWkVfVU5JVC4KCSogcHQuYyAodHN1YnN0X2RlY2wpOiBTZXQgREVDTF9TSVpFX1VOSVQuCgkqIHRyZWUuYyAobWFrZV9iaW5mbyk6IGJpbmZvIHZlY3RvciBpcyBvbmUgZW50cnkgbG9uZ2VyLgoJKHdhbGtfdHJlZSk6IFdhbGsgREVDTF9TSVpFX1VOSVQuCgoyMDAwLTAyLTE5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoZGZzX2J1aWxkX3ZjYWxsX29mZnNldF92dGJsX2VudHJpZXMpOiBGaXggdHlwbyBpbgoJY29tbWVudC4KCShidWlsZF92dGFibGVfZW50cnkpOiBEb24ndCBhc3N1bWUgYWxsIHZ0YWJsZSBlbnRyaWVzIGFyZQoJZnVuY3Rpb25zLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBBZGp1c3QgYWNjb3JkaW5nbHkuCgkoZ2V0X3Z0YWJsZV9kZWNsKTogRml4IGZvcm1hdHRpbmcuCgoyMDAwLTAyLTE4ICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIHNlbWFudGljcy5jIChkZWZlcnJlZF90eXBlX2FjY2Vzc19jb250cm9sKTogV2FsayB0aGUgZW50aXJlCgl0eXBlX2xvb2t1cHMgbGlzdC4KCShzYXZlX3R5cGVfYWNjZXNzX2NvbnRyb2wpOiBSZW5hbWUgZnJvbQoJaW5pdGlhbF9kZWZlcnJlZF90eXBlX2FjY2Vzc19jb250cm9sLiAgSnVzdCByZW1lbWJlciB0aGUgdmFsdWUuCgkoZGVjbF90eXBlX2FjY2Vzc19jb250cm9sKTogTmV3IGZuLgoJKGJlZ2luX2Z1bmN0aW9uX2RlZmluaXRpb24pOiBVc2UgZGVmZXJyZWRfdHlwZV9hY2Nlc3NfY29udHJvbCwgYWZ0ZXIKCXdlJ3ZlIHN0YXJ0ZWQgdGhlIGZ1bmN0aW9uLiAgU2V0IHR5cGVfbG9va3VwcyB0byBlcnJvcl9tYXJrX25vZGUuCgkqIHBhcnNlLnkgKGZyb2Jfc3BlY3MsIGZuLmRlZjEpOiBBZGp1c3QuCgkocGFyc2VfZGVjbDAsIHBhcnNlX2ZpZWxkLCBwYXJzZV9maWVsZDAsIHBhcnNlX2JpdGZpZWxkKTogTmV3IGZucy4KCShwYXJzZV9lbmRfZGVjbCwgcGFyc2VfYml0ZmllbGQwLCBwYXJzZV9tZXRob2QpOiBOZXcgZm5zLgoJKGZuLmRlZjIsIGluaXRkY2wsIGluaXRkY2wwX2lubmFyZHMsIG5vbW9kc19pbml0ZGNsMCk6IFVzZSB0aGVtLgoJKGFmdGVyX3R5cGVfY29tcG9uZW50X2RlY2xhcmF0b3IwKTogTGlrZXdpc2UuCgkoYWZ0ZXJfdHlwZV9jb21wb25lbnRfZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJKG5vdHlwZV9jb21wb25lbnRfZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJKiBjcC10cmVlLmg6IEFkanVzdC4KCgkqIGRlY2wuYyAocmVkZWNsYXJhdGlvbl9lcnJvcl9tZXNzYWdlKTogQWxsb3cgcmVkZWNsYXJhdGlvbiBvZgoJbmFtZXNwYWNlLXNjb3BlIGRlY2xzLgoKMjAwMC0wMi0xOCAgTWFydGluIHZvbiBMb2V3aXMgIDxsb2V3aXNAaW5mb3JtYXRpay5odS1iZXJsaW4uZGU+CgoJKiB0eXBlY2syLmMgKG15X2ZyaWVuZGx5X2Fib3J0KTogVXNlIEdDQ0JVR1VSTC4KCjIwMDAtMDItMTcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChhZGRfbWV0aG9kKTogRG9uJ3Qgc2V0IERFQ0xfVklSVFVBTF9DT05URVhULgoJKiBkZWNsMi5jIChncm9rY2xhc3Nmbik6IExpa2V3aXNlLgoKCSogaXIudGV4aTogRG9jdW1lbnQgREVDTF9URU1QTEFURV9JTlNUQU5USUFUSU9OUy4KCgkqIGRlY2wyLmMgKGxhbmdfZGVjb2RlX29wdGlvbik6IERvbid0IHNldCBkZWZhdWx0IG1lc3NhZ2UgbGVuZ3RoCgloZXJlLgoJKiBsZXguYyAobGFuZ19pbml0X29wdGlvbnMpOiBTZXQgaXQgaGVyZS4KCjIwMDAtMDItMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJTWFrZSBERUNMX0NPTlRFWFQgbWVhbiB0aGUgY2xhc3MgaW4gd2hpY2ggYSBtZW1iZXIgZnVuY3Rpb24gd2FzCglkZWNsYXJlZCwgZXZlbiBmb3IgYSB2aXJ0dWFsIGZ1bmN0aW9uLgoJKiBjcC10cmVlLmggKERFQ0xfQ0xBU1NfQ09OVEVYVCk6IEFkanVzdC4KCShERUNMX0ZSSUVORF9DT05URVhUKTogTmV3IG1hY3JvLgoJKERFQ0xfUkVBTF9DT05URVhUKTogUmVtb3ZlLgoJKFNFVF9ERUNMX0ZSSUVORF9DT05URVhUKTogTGlrZXdpc2UuCgkoREVDTF9WSVJUVUFMX0NPTlRFWFQpOiBBZGp1c3QuCgkoREVDTF9DTEFTU19TQ09QRV9QKTogVXNlIFRZUEVfUC4KCShhZGRfZnJpZW5kcyk6IFJlbW92ZS4KCShoYWNrX2RlY2xfZnVuY3Rpb25fY29udGV4dCk6IExpa2V3aXNlLgoJKiBjYWxsLmMgKGJ1aWxkX25ld19mdW5jdGlvbl9jYWxsKTogUmVwbGFjZSBERUNMX1JFQUxfQ09OVEVYVCB3aXRoCglDUF9ERUNMX0NPTlRFWFQuCgkoYnVpbGRfb3Zlcl9jYWxsKTogRml4IGluZGVudGF0aW9uLiAgVXNlIERFQ0xfQ09OVEVYVAoJaW5zdGVhZCBvZiBERUNMX0NMQVNTX0NPTlRFWFQuCgkqIGNsYXNzLmMgKGRmc19idWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkoYWRkX21ldGhvZCk6IFNldCBERUNMX1ZJUlRVQUxfQ09OVEVYVCwgbm90IERFQ0xfQ0xBU1NfQ09OVEVYVC4KCShzdHJpY3RseV9vdmVycmlkZXMpOiBVc2UgREVDTF9DT05URVhULCBub3QgREVDTF9DTEFTU19DT05URVhULgoJKGJ1aWxkX3Z0Ymxfb3JfdmJhc2VfZmllbGQpOiBEb24ndCBzZXQgREVDTF9DTEFTU19DT05URVhULgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBMaWtld2lzZS4KCShmaW5pc2hfc3RydWN0XzEpOiBMaWtld2lzZS4KCShidWlsZF9zZWxmX3JlZmVyZW5jZSk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKHB1c2hfY2xhc3NfYmluZGluZyk6IFVzZSBDUF9ERUNMX0NPTlRFWFQsIG5vdAoJREVDTF9SRUFMX0NPTlRFWFQuCgkocHVzaHRhZyk6IFVzZSBkZWNsX2Z1bmN0aW9uX2NvbnRleHQsIG5vdAoJaGFja19kZWNsX2Z1bmN0aW9uX2NvbnRleHQuCgkoZGVjbHNfbWF0Y2gpOiBVc2UgQ1BfREVDTF9DT05URVhULCBub3QgREVDTF9SRUFMX0NPTlRFWFQuCgkoZHVwbGljYXRlX2RlY2xzKTogVXNlIERFQ0xfVklSVFVBTF9DT05URVhULgoJKHB1c2hkZWNsKTogUmVtb3ZlIGJvZ3VzIGNvZGUuCgkoc3RhcnRfZGVjbCk6IFVzZSBERUNMX0NPTlRFWFQgcmF0aGVyIHRoYW4gREVDTF9DTEFTU19DT05URVhULgoJKGNwX2ZpbmlzaF9kZWNsKTogVXNlIENQX0RFQ0xfQ09OVEVYVCwgbm90IERFQ0xfUkVBTF9DT05URVhULgoJKGdyb2tmbmRlY2wpOiBVc2UgREVDTF9DT05URVhULCBub3QgREVDTF9DTEFTU19DT05URVhULgoJVXNlIGRlY2xfZnVuY3Rpb25fY29udGV4dCwgbm90aGFja19kZWNsX2Z1bmN0aW9uX2NvbnRleHQuCgkoZ3Jva3ZhcmRlY2wpOiBEb24ndCBzZXQgREVDTF9DTEFTU19DT05URVhULgoJKGdyb2tkZWNsYXJhdG9yKTogTGlrZXdpc2UuICBVc2UgZGVjbF9mdW5jdGlvbl9jb250ZXh0LCBub3QKCWhhY2tfZGVjbF9mdW5jdGlvbl9jb250ZXh0LgoJKGNvcHlfYXJnc19wKTogRG9jdW1lbnQuICBEb24ndCB1c2UgREVDTF9DTEFTU19DT05URVhULgoJKHN0YXJ0X2Z1bmN0aW9uKTogVXNlIERFQ0xfRlJJRU5EX0NPTlRFWFQsIG5vdAoJREVDTF9DTEFTU19DT05URVhULiAgVXNlIGRlY2xfZnVuY3Rpb25fY29udGV4dCwgbm90CgloYWNrX2RlY2xfZnVuY3Rpb25fY29udGV4dC4KCShmaW5pc2hfZnVuY3Rpb24pOiBVc2UgZGVjbF9mdW5jdGlvbl9jb250ZXh0LCBub3QKCWhhY2tfZGVjbF9mdW5jdGlvbl9jb250ZXh0LgoJKG1heWJlX3JldHJvZml0X2luX2NocmcpOiBVc2UgREVDTF9DT05URVhULCBub3QKCURFQ0xfQ0xBU1NfQ09OVEVYVC4KCShncm9rY2xhc3Nmbik6IFNldCBERUNMX1ZJUlRVQUxfQ09OVEVYVCwgbm90IERFQ0xfQ09OVEVYVC4KCShmaW5pc2hfc3RhdGljX2RhdGFfbWVtYmVyX2RlY2wpOiBEb24ndCBzZXQgREVDTF9DTEFTU19DT05URVhULgoJKGdyb2tmaWVsZCk6IExpa2V3aXNlLgoJKGZpbmlzaF9idWlsdGluX3R5cGUpOiBMaWtld2lzZS4KCShmaW5pc2hfdnRhYmxlX3ZhcmRlYyk6IFVzZSBkZWNsX2Z1bmN0aW9uX2NvbnRleHQsIG5vdAoJaGFja19kZWNsX2Z1bmN0aW9uX2NvbnRleHQuCgkoaW1wb3J0X2V4cG9ydF9kZWNsKTogVXNlIERFQ0xfQ09OVEVYVCwgbm90IERFQ0xfQ0xBU1NfQ09OVEVYVC4KCShzdGFydF9zdGF0aWNfaW5pdGlhbGl6YXRpb25fb3JfZGVzdHJ1Y3Rpb24pOiBMaWtld2lzZS4KCShmaW5pc2hfc3RhdGljX2luaXRpYWxpemF0aW9uX29yX2Rlc3RydWN0aW9uKTogTGlrZXdpc2UuCgkobWFya191c2VkKTogQWRqdXN0IGxvZ2ljIGZvciBkZWNpZGluZyB3aGVuIHRvIHN5bnRoZXNpemUgbWV0aG9kcy4KCSogZHVtcC5jIChkZXF1ZXVlX2FuZF9kdW1wKTogVXNlIENQX0RFQ0xfQ09OVEVYVCwgbm90CglERUNMX1JFQUxfQ09OVEVYVC4KCSogZXJyb3IuYyAoZHVtcF9mdW5jdGlvbl9kZWNsKTogVXNlIERFQ0xfQ09OVEVYVCwgbm90CglERUNMX0NMQVNTX0NPTlRFWFQuCgkqIGZyaWVuZC5jIChpc19mcmllbmQpOiBMaWtld2lzZS4KCShhZGRfZnJpZW5kcyk6IFJlbW92ZS4KCShkb19mcmllbmQpOiBVc2UgU0VUX0RFQ0xfRlJJRU5EX0NPTlRFWFQuCgkqIGxleC5jIChiZWdpbl9kZWZpbml0aW9uX29mX2luY2xhc3NfaW5saW5lKTogVXNlCglkZWNsX2Z1bmN0aW9uX2NvbnRleHQsIG5vdCBoYWNrX2RlY2xfZnVuY3Rpb25fY29udGV4dC4KCShwcm9jZXNzX25leHRfaW5saW5lKTogTGlrZXdpc2UuCgkoZG9faWRlbnRpZmllcik6IFVzZSBDUF9ERUNMX0NPTlRFWFQsIG5vdCBERUNMX1JFQUxfQ09OVEVYVC4KCSogbWV0aG9kLmMgKHNldF9tYW5nbGVkX25hbWVfZm9yX2RlY2wpOiBVc2UgREVDTF9DT05URVhULCBub3QKCURFQ0xfQ0xBU1NTX0NPTlRFWFQuCgkoaGFja19pZGVudGlmaWVyKTogTGlrZXdpc2UuCgkoc3ludGhlc2l6ZV9tZXRob2QpOiAgVXNlIGRlY2xfZnVuY3Rpb25fY29udGV4dCwgbm90CgloYWNrX2RlY2xfZnVuY3Rpb25fY29udGV4dC4KCSogcHQuYyAodGVtcGxhdGVfY2xhc3NfZGVwdGhfcmVhbCk6IFVzZSBDUF9ERUNMX0NPTlRFWFQsIG5vdAoJREVDTF9SRUFMX0NPTlRFWFQuCgkoaXNfbWVtYmVyX3RlbXBsYXRlKTogVXNlIGRlY2xfZnVuY3Rpb25fY29udGV4dCwgbm90CgloYWNrX2RlY2xfZnVuY3Rpb25fY29udGV4dC4gIFVzZSBERUNMX0NPTlRFWFQsIG5vdAoJREVDTF9DTEFTU19DT05URVhULgoJKGJ1aWxkX3RlbXBsYXRlX2RlY2wpOiBTZXQgREVDTF9WSVJUVUFMX0NPTlRFWFQsIG5vdAoJREVDTF9DTEFTU19DT05URVhULgoJKGNoZWNrX2RlZmF1bHRfdG1wbF9hcmdzKTogVXNlIENQX0RFQ0xfQ09OVEVYVCwgbm90CglERUNMX1JFQUxfQ09OVEVYVC4KCShwdXNoX3RlbXBsYXRlX2RlY2xfcmVhbCk6IExpa2V3aXNlLgoJKGluc3RhbnRpYXRlX2NsYXNzX3RlbXBsYXRlKTogRG9uJ3QgY2FsbCBhZGRfZnJpZW5kcy4KCSh0c3Vic3RfZGVmYXVsdF9hcmd1bWVudCk6IFVzZSBERUNMX0NPTlRFWFQsIG5vdAoJREVDTF9SRUFMX0NPTlRFWFQuCgkodHN1YnN0X2RlY2wpOiBTZXQgREVDTF9WSVJUVUFMX0NPTlRFWFQsIG5vdCBERUNMX0NMQVNTX0NPTlRFWFQuCglVc2UgREVDTF9DT05URVhULCBub3QgREVDTF9DTEFTU19DT05URVhULgoJKHNldF9tZWFuZ2xlZF9uYW1lX2Zvcl90ZW1wbGF0ZV9kZWNsKTogVXNlIERFQ0xfQ09OVEVYVCwgbm90CglERUNMX0NMQVNTX0NPTlRFWFQuCgkqIHJlcG8uYyAocmVwb19pbmxpbmVfdXNlZCk6IExpa2V3aXNlLgoJKiBzZWFyY2guYyAoY3VycmVudF9zY29wZSk6IEFkanVzdCBmb3IgbmV3IF9DT05URVhUIG1hY3Jvcy4KCShjb250ZXh0X2Zvcl9uYW1lX2xvb2t1cCk6IFVzZSBDUF9ERUNMX0NPTlRFWFQsIG5vdAoJREVDTF9SRUFMX0NPTlRFWFQuCgkoZnJpZW5kX2FjY2Vzc2libGVfcCk6IFVzZSBERUNMX0NPTlRFWFQsIG5vdCBERUNMX0NMQVNTX0NPTlRFWFQuCgkobG9va3VwX2ZuZmllbGRzX2hlcmUpOkxpa2V3aXNlLgoJKGNoZWNrX2ZpbmFsX292ZXJyaWRlcik6IExpa2V3aXNlLgoJKGluaXRfdmJhc2VfcG9pbnRlcnMpOiBMaWtld2lzZS4KCSh2aXJ0dWFsX2NvbnRleHQpOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9tZW1iZXJfZGVjbGFyYXRpb24pOiBKdXN0IHNldCBERUNMX0NPTlRFWFQuCgkoZXhwYW5kX2JvZHkpOiBVc2UgZGVjbF9mdW5jdGlvbl9jb250ZXh0LCBub3QKCWhhY2tfZGVjbF9mdW5jdGlvbl9jb250ZXh0LgoJKiB0cmVlLmMgKGhhY2tfZGVjbF9mdW5jdGlvbl9jb250ZXh0KTogUmVtb3ZlLgoJKiB0eXBlY2suYyAoYnVpbGRfeF9mdW5jdGlvbl9jYWxsKTogVXNlIERFQ0xfQ09OVEVYVCwgbm90CglERUNMX0NMQVNTX0NPTlRFWFQuCgkqIHR5cGVjazIuYyAoZXJyb3Jfbm90X2Jhc2VfdHlwZSk6IExpa2V3aXNlLgoKMjAwMC0wMi0xNSAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBkZWNsLmMgKHhyZWZfdGFnKTogRG9uJ3QgU0VUX0lERU5USUZJRVJfTkFNRVNQQUNFX1ZBTFVFLgoKMjAwMC0wMi0xNiAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogTWFrZS1sYW5nLmluIChnKytzcGVjLm8pOiBEZXBlbmQgb24gJChHQ0NfSCksIG5vdCBnY2MuaC4KCjIwMDAtMDItMTUgIEpvbmF0aGFuIExhcm1vdXIgIDxqbGFybW91ckByZWRoYXQuY28udWs+CgoJKiBsYW5nLXNwZWNzLmg6IEFkZCBuZXcgX19HTlVDX1BBVENITEVWRUxfXyBkZWZpbmUgdG8gZGVmYXVsdCBzcGVjLgoKMjAwMC0wMS0xNiAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogRW5hYmxlIGF1dG9tYXRpYyBsaW5lIHdyYXBwaW5nLgoKMjAwMC0wMi0xMyAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBwYXJzZS55IChmcm9iX3NwZWNzKTogU3BsaXQgb3V0Li4uCgkocGFyc2VfZGVjbCk6IEZyb20gaGVyZS4KCShmbi5kZWYyKTogQ2FsbCBpbml0aWFsX2RlZmVycmVkX3R5cGVfYWNjZXNzX2NvbnRyb2wuCgkoYWZ0ZXJfdHlwZV9jb21wb25lbnRfZGVjbGFyYXRvcjApOiBDYWxsIGZyb2Jfc3BlY3MuCgkobm90eXBlX2NvbXBvbmVudF9kZWNsYXJhdG9yMCk6IExpa2V3aXNlLgoJKiBzZWFyY2guYyAoZnJpZW5kX2FjY2Vzc2libGVfcCk6IE5lc3RlZCBjbGFzc2VzIGFyZSBmcmllbmRzIG9mIHRoZWlyCgllbmNsb3NpbmcgY2xhc3Nlcy4KCjIwMDAtMDItMTAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpci50ZXhpIChBRERSX0VYUFIpOiBEb2N1bWVudCB0aGUgZmFjdCB0aGF0IGFuIEFERFJfRVhQUiBjYW4gYmUKCXVzZWQgdG8gY3JlYXRlIGFuIGltcGxpY2l0IHRlbXBvcmFyeS4KCgkqIGNsYXNzLmMgKGRmc19tb2RpZnlfdnRhYmxlcyk6IFR3ZWFrIGNhbGN1bGF0aW9uIG9mIGZ1bmN0aW9ucyB0bwoJb3ZlcnJpZGUuCgoyMDAwLTAyLTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBhY20ub3JnPgoKCSogdHlwZWNrLmMgKHN0cmlwX2FsbF9wb2ludGVyX3F1YWxzKTogVXNlIFRZUEVfTUFJTl9WQVJJQU5ULCB0bwoJc3RyaXAgYXJyYXkgZWxlbWVudCBxdWFsaWZpZXJzIHRvby4KCjIwMDAtMDItMDcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKHN0b3JlX3Bhcm1fZGVjbHMpOiBEb24ndCBidWlsZCBjbGVhbnVwcyBmb3IgcGFyYW1ldGVycwoJd2hpbGUgcHJvY2Vzc2luZ190ZW1wbGF0ZV9kZWNsLgoKMjAwMC0wMi0wNyAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBzYXZlZF9zY29wZSk6IEFkZCBpbmNvbXBsZXRlIGZpZWxkLgoJKG5hbWVzcGFjZV9zY29wZV9pbmNvbXBsZXRlKTogTmV3IG1hY3JvLgoJKiBkZWNsLmMgKHB1c2hkZWNsKTogVXNlIGl0LgoJKGhhY2tfaW5jb21wbGV0ZV9zdHJ1Y3R1cmVzKTogVXNlIGl0LiAgU2VlIHRocm91Z2ggYXJ0aWZpY2lhbAoJYmluZGluZyBsZXZlbHMuCgkobWFya19zYXZlZF9zY29wZSk6IE1hcmsgaXQuCgoJSW1wbGVtZW50IGFjY2VzcyBjb250cm9sIGZvciBuZXN0ZWQgdHlwZXMuCgkqIHNlYXJjaC5jICh0eXBlX2FjY2Vzc19jb250cm9sKTogTmV3IGZuLgoJKGFjY2Vzc2libGVfcCk6IE5vdyB3ZSBkbyBwZXJmb3JtIGFjY2VzcyBjb250cm9sIGZvciB0eXBlcy4KCSogc2VtYW50aWNzLmMgKGRlZmVycmVkX3R5cGVfYWNjZXNzX2NvbnRyb2wpOiBOZXcgZm4uCgkoaW5pdGlhbF9kZWZlcnJlZF90eXBlX2FjY2Vzc19jb250cm9sKTogTmV3IGZuLgoJKGJlZ2luX2Z1bmN0aW9uX2RlZmluaXRpb24pOiBDYWxsIGl0LiAgQWRkIGxvb2t1cHMgcGFybS4KCSogZGVjbC5jIChzdHJ1Y3QgYmluZGluZ19sZXZlbCk6IEFkZCB0aGlzX2NsYXNzIGZpZWxkLgoJKHB1c2hsZXZlbF9jbGFzcyk6IFNldCBpdC4KCShtYXJrX2JpbmRpbmdfbGV2ZWwpOiBNYXJrIGl0LgoJKGxvb2t1cF9uYW1lX3JlYWwpOiBVc2UgaXQuICBDYWxsIHR5cGVfYWNjZXNzX2NvbnRyb2wuCgkobWFya19zYXZlZF9zY29wZSk6IE1hcmsgbG9va3VwcyBmaWVsZC4KCSogY3AtdHJlZS5oIChmbGFnZ2VkX3R5cGVfdHJlZSk6IEFkZCBsb29rdXBzIGZpZWxkLgoJKHN0cnVjdCBzYXZlZF9zY29wZSk6IEFkZCBsb29rdXBzIGZpZWxkLgoJKHR5cGVfbG9va3Vwcyk6IE5ldyBtYWNyby4KCSogcGFyc2UueSAoZGVjbG1vZHMpOiBOb3cgPGZ0eXBlPi4KCShwYXJzZV9kZWNsKTogQWRkIGxvb2t1cHMgcGFybS4gIENhbGwKCWluaXRpYWxfZGVmZXJyZWRfdHlwZV9hY2Nlc3NfY29udHJvbC4KCShsYW5nX2V4dGRlZik6IENsZWFyIHR5cGVfbG9va3Vwcy4KCSh0eXBlZF9kZWNsc3BlY3MsIGRlY2xtb2RzLCB0eXBlc3BlYyk6IFNldCBsb29rdXBzIGZpZWxkLgoJKGluaXRkY2wpOiBDYWxsIGRlZmVycmVkX3R5cGVfYWNjZXNzX2NvbnRyb2wuCgkoZm4uZGVmMSwgZm4uZGVmMiwgdHlwZWRfZGVjbHNwZWNzMSwgaW5pdGRjbDBfaW5uYXJkcywgbm9tb2RzX2luaXRkY2wwLAoJY29tcG9uZW50X2RlY2xfMSwgbmFtZWRfcGFybSk6IEFkanVzdC4KCSogZnJpZW5kLmMgKGlzX2ZyaWVuZCk6IE5lc3RlZCBjbGFzc2VzIGFyZSBmcmllbmRzIG9mIHRoZWlyCgllbmNsb3NpbmcgY2xhc3Nlcy4KCgkqIGNsYXNzLmMgKGN1cnJlbnRseV9vcGVuX2Rlcml2ZWRfY2xhc3MpOiBOZXcgZm4uCgkqIG1ldGhvZC5jIChoYWNrX2lkZW50aWZpZXIpOiBVc2UgaXQuCgoJKiBsZXguYyAoZG9faWRlbnRpZmllcik6IFJlbW92ZSBvYnNvbGV0ZSBjb2RlLgoKCSogcGFyc2UueSAodHlwZWRfdHlwZXNwZWNzKTogUHJvcGFnYXRlIG5ld190eXBlX2ZsYWcgcHJvcGVybHkuCgoyMDAwLTAyLTA1ICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuY3VtYi5vcmc+CgoJKiB0aW5mby5oOiBSZW1vdmUgYXBvc3Ryb3BoZXMgZnJvbSBDKysgY29tbWVudCAoeGdldHRleHQKCXRoaW5rcyB0aGlzIGZpbGUgaXMgcGxhaW4gQykuCgoyMDAwLTAyLTA1ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBNYWtlZmlsZS5pbiAoY2FsbC5vKTogRGVwZW5kIG9uICQoRVhQUl9IKS4KCgkqIGNhbGwuYzogSW5jbHVkZSAiZXhwci5oIi4KCgkqIGNsYXNzLmMgKGR1bXBfY2xhc3NfaGllcmFyY2h5KTogQWRkIHByb3RvdHlwZS4KCgkqIHNlYXJjaC5jIChkZnNfZ2V0X3B1cmVfdmlydHVhbHMpOiBMaWtld2lzZS4KCjIwMDAtMDItMSAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQHJlZGhhdC5jb20+CgoJKiBwYXJzZS55IChzaW1wbGVfc3RtdCk6IEFsbG93IDo6IHRva2VuIGluIGFzbSBwYXJhbWV0ZXIgbGlzdC4KCSogcGFyc2UuYzogUmVidWlsdC4KCjIwMDAtMDEtMzEgIEppbSBXaWxzb24gIDx3aWxzb25AY3lnbnVzLmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0Ymxfb3JfdmJhc2VfZmllbGQpOiBOZXcgcGFyYW1ldGVyIGZjb250ZXh0LgoJU3RvcmUgaXQgaW4gREVDTF9GQ09OVEVYVC4KCShidWlsZF92YmFzZV9wb2ludGVyX2ZpZWxkcywgY3JlYXRlX3Z0YWJsZV9wdHIpOiBGaXggY2FsbGVycy4KCjIwMDAtMDEtMzEgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogdGluZm8uaCAob2xkIGFiaSk6ICNpbmNsdWRlICJ0Y29uZmlnLmgiLgoJKiB0aW5mby5jYyAoY29udmVydF90b19iYXNlKTogTW92ZSBpbnRvIG9sZCBhYmkgc2VjdGlvbi4KCjIwMDAtMDEtMzEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKEJJTkZPX1ZJUlRVQUxTKTogVHdlYWsgZG9jdW1lbnRhdGlvbi4KCShDTEFTU1RZUEVfUFJJTUFSWV9CSU5GTyk6IFVzZSBCSU5GT19QUklNQVJZX0JJTkZPLgoJKEJJTkZPX1BSSU1BUllfQklORk8pOiBOZXcgbWFjcm8uCgkoQkZfREVMVEEpOiBSZW5hbWUgdG8gLi4uCgkoQlZfREVMVEEpOiAuLi4gdGhpcy4KCShCRl9WQ0FMTF9JTkRFWCk6IFJlbmFtZSB0byAuLi4KCShCVl9WQ0FMTF9JTkRFWCk6IC4uLiB0aGlzLgoJKEJGX0ZOKTogUmVuYW1lIHRvIC4uLgoJKEJWX0ZOKTogLi4uIHRoaXMuCgkqIGNsYXNzLmMgKGJ1aWxkX3ZiYXNlX3BhdGgpOiBBZGp1c3QgZm9yIGNoYW5nZXMgdG8gcmV2ZXJzZV9wYXRoLgoJKHNldF9ydHRpX2VudHJ5KTogUmVuYW1lIEJGXyBtYWNyb3MgdG8gQlZfIHZhcmlhbnRzLgoJKG1vZGlmeV92dGFibGVfZW50cnkpOiBTaW1wbGlmeS4KCShhZGRfdmlydHVhbF9mdW5jdGlvbik6IFJlbmFtZSBCRl8gbWFjcm9zIHRvIEJWXyB2YXJpYW50cy4KCShidWlsZF92dGFibGVfaW5pdGlhbGl6ZXIpOiBMaWtld2lzZS4KCShnZXRfY2xhc3Nfb2Zmc2V0XzEpOiBSZW1vdmUuCgkoZGZzX2dldF9jbGFzc19vZmZzZXQpOiBMaWtld2lzZS4KCShnZXRfY2xhc3Nfb2Zmc2V0KTogTGlrZXdpc2UuCgkoZGZzX2ZpbmRfZmluYWxfb3ZlcnJpZGVyKTogTmV3IGZ1bmN0aW9uLgoJKGZpbmRfZmluYWxfb3ZlcnJpZGVyKTogTGlrZXdpc2UuCgkobW9kaWZ5X29uZV92dGFibGUpOiBSZW1vdmUuCgkoZGZzX2ZpbmRfYmFzZSk6IE5ldyBmdW5jdGlvbi4KCShkZnNfbW9kaWZ5X3Z0YWJsZXMpOiBGb2xkIG1vZGlmeV9vbmVfdnRhYmxlIGluIGhlcmUuICBVc2UKCWZpbmRfZmluYWxfb3ZlcnJpZGVyLgoJKG1vZGlmeV9hbGxfdnRhYmxlcyk6IEFkanVzdC4gIFNldCBCVl9WQ0FMTF9JTkRFWCBvbiBuZXcKCXZpcnR1YWxzLgoJKGRmc19maXh1cF92dGFibGVfZGVsdGFzKTogUmVtb3ZlLgoJKG92ZXJyaWRlX29uZV92dGFibGUpOiBSZW1vdmUuCgkobWVyZ2Vfb3ZlcnJpZGVzKTogTGlrZXdpc2UuCgkobGF5b3V0X3ZpcnR1YWxfYmFzZXMpOiBNYWtlIHN1cmUgQklORk9fT0ZGU0VUIGlzIHNldCByaWdodCBmb3IKCXVucmVhbCBjaGlscmVuIG9mIHZpcnR1YWwgYmFzZXMuCgkoZmluaXNoX3N0cnVjdF8xKTogRG9uJ3QgdXNlIG1lcmdlX292ZXJyaWRlcy4gIERvbid0IHVzZQoJZGZzX2ZpeHVwX3Z0YWJsZV9kZWx0YXMuCgkqIHRyZWUuYyAocmV2ZXJzZV9wYXRoKTogUmV0dXJuIGEgVFJFRV9MSVNULCBub3QgYSBjaGFpbiBvZgoJQklORk9zLgoKMjAwMC0wMS0zMSAgSGVybWFuIEEuSi4gdGVuIEJydWdnZSA8SGFqLlRlbi5CcnVnZ2VAbmV0LkhDQy5ubD4KCSAgICBKYXNvbiBNZXJyaWxsICA8amFzb25AeW9yaWNrLmN5Z251cy5jb20+CgoJKiB0aW5mby5oOiBSZW5hbWUgVVNJdHlwZSB0byBteWludDMyLCBkZXBlbmQgb24gQklUU19QRVJfVU5JVC4KCjIwMDAtMDEtMzEgIEFsZnJlZCBNaW5hcmlrIDxhODYwMTI0OEB1bmV0LnVuaXZpZS5hYy5hdD4KCgkqIGV4Y2VwdGlvbi5jYyAoX190aHJvd19iYWRfdHlwZWlkKTogQWRkIG1pc3Npbmcgc3RkOjouCgoyMDAwLTAxLTMxICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBjcC10cmVlLmggKG1ha2VfdGh1bmspOiBQUk9UTyAtPiBQQVJBTVMuCgoyMDAwLTAxLTMxICBOYXRoYW4gU2lkd2VsbCAgPHNpZHdlbGxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAobmV3X2FiaV9ydHRpX3ApOiBVc2UgZmxhZ19uZXdfYWJpLgoKCVJ1bnRpbWUgc3VwcG9ydCBmb3IgbmV3LWFiaSBydHRpLgoJKiBpbmMvdHlwZWluZm8gKHR5cGVfaW5mbzo6b3BlcmF0b3IhPSk6IERlZmluZSBpbiBjbGFzcy4KCSh0eXBlX2luZm86OmJlZm9yZSwgdHlwZV9pbmZvOjpuYW1lLCB0eXBlX2luZm86Om9wZXJhdG9yPT0sCgl0eXBlX2luZm86Om9wZXJhdG9yIT0pOiBEZWZpbmUgbmV3IEFCSSBpbXBsZW1lbnRhdGlvbnMuCgkodHlwZV9pbmZvOjppc19wb2ludGVyX3AsIHR5cGVfaW5mbzo6aXNfZnVuY3Rpb25fcCk6IERlY2xhcmUKCW5ldyB2aXJ0dWFsIGZ1bmN0aW9ucy4KCSh0eXBlX2luZm86OmRvX2NhdGNoLCB0eXBlX2luZm86OmRvX3VwY2FzdCk6IExpa2V3aXNlLgoKCSogdGluZm8uaCAoX19iYXNlX2NsYXNzX2luZm8pOiBEZWZpbmUgbmV3IGNsYXNzLgoJKF9fY2xhc3NfdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoX19zaV9jbGFzc190eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX3ZtaV9jbGFzc190eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX2R5bmFtaWNfY2FzdCk6IFByb3RvdHlwZS4KCgkqIHRpbmZvLmNjOiBDb25kaXRpb25hbGl6ZSBvbGQgYW5kIG5ldyBydHRpIG1lY2hhbmlzbXMuCgkodHlwZV9pbmZvOjppc19wb2ludGVyX3ApOiBEZWZpbmUgbmV3IGZ1bmN0aW9uLgoJKHR5cGVfaW5mbzo6aXNfZnVuY3Rpb25fcCk6IExpa2V3aXNlLgoJKHR5cGVfaW5mbzo6ZG9fY2F0Y2gpOiBMaWtld2lzZS4KCSh0eXBlX2luZm86OmRvX3VwY2FzdCk6IExpa2V3aXNlLgoJKHZ0YWJsZV9wcmVmaXgpOiBOZXcgc3RydWN0dXJlIGZvciB2dGFibGUgYWNjZXNzLgoJKGFkanVzdF9wb2ludGVyKTogRGVmaW5lIG5ldyB0ZW1wbGF0ZSBmdW5jdGlvbi4KCShjb250YWluZWRfcCwgcHVibGljX3AsIHZpcnR1YWxfcCwgY29udGFpbmVkX3B1YmxpY19wLAoJY29udGFpbmVkX25vbnB1YmxpY19wLCBjb250YWluZWRfbm9udmlydHVhbF9wKTogRGVmaW5lIG5ldwoJZnVuY3Rpb25zLgoJKG5vbnZpcnR1YWxfYmFzZV90eXBlKTogTmV3IGxvY2FsIHZhcmlhYmxlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjp+X19jbGFzc190eXBlX2luZm8pOiBEZWZpbmUuCgkoX19zaV9jbGFzc190eXBlX2luZm86On5fX3NpX2NsYXNzX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6fl9fdm1pX2NsYXNzX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpkb19jYXRjaCk6IERlZmluZSBuZXcgZnVuY3Rpb24uCgkoX19jbGFzc190eXBlX2luZm86OmRvX3VwY2FzdCk6IExpa2V3aXNlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpmaW5kX3B1YmxpY19zcmMpOiBMaWtld2lzZS4KCShfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3JjKTogTGlrZXdpc2UuCgkoX19zaV9jbGFzc190eXBlX2luZm86OmRvX2ZpbmRfcHVibGljX3NyYyk6IExpa2V3aXNlLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3JjKTogTGlrZXdpc2UuCgkoX19jbGFzc190eXBlX2luZm86OmRvX2R5bmNhc3QpOiBMaWtld2lzZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IExpa2V3aXNlLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IExpa2V3aXNlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QpOiBMaWtld2lzZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6ZG9fdXBjYXN0KTogTGlrZXdpc2UuCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QpOiBMaWtld2lzZS4KCShfX2R5bmFtaWNfY2FzdCk6IExpa2V3aXNlLgoKCSogdGluZm8yLmNjIChfX2Z1bmRhbWVudGFsX3R5cGVfaW5mbyk6IERlZmluZSBuZXcgY2xhc3MuCgkoX19wb2ludGVyX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fcmVmZXJlbmNlX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fYXJyYXlfdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoX19mdW5jdGlvbl90eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX2VudW1fdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoX19wdHJfdG9fbWVtYmVyX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fZnVuZGFtZW50YWxfdHlwZV9pbmZvOjp+X19mdW5kYW1lbnRhbF90eXBlX2luZm8pOiBEZWZpbmUuCgkoX19wb2ludGVyX3R5cGVfaW5mbzo6fl9fcG9pbnRlcl90eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX3JlZmVyZW5jZV90eXBlX2luZm86On5fX3JlZmVyZW5jZV90eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX2FycmF5X3R5cGVfaW5mbzo6fl9fYXJyYXlfdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoX19mdW5jdGlvbl90eXBlX2luZm86On5fX2Z1bmN0aW9uX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fZW51bV90eXBlX2luZm86On5fX2VudW1fdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoX19wdHJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6fl9fcHRyX3RvX21lbWJlcl90eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX3BvaW50ZXJfdHlwZV9pbmZvOjpkb19jYXRjaCk6IERlZmluZSBuZXcgZnVuY3Rpb24uCgkoX19wdHJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6ZG9fY2F0Y2gpOiBEZWZpbmUgbmV3IGZ1bmN0aW9uLgoKCShfX3Rocm93X3R5cGVfbWF0Y2hfcnR0aV8yKTogVXNlIG5ldyBBQkkgaW50ZXJmYWNlLCBpZiBlbmFibGVkLgoJKF9faXNfcG9pbnRlcik6IExpa2V3aXNlLgoKCSogZXhjZXB0aW9uLmNjIChfX2NwbHVzX3R5cGVfbWF0Y2hlcik6IERlYWwgd2l0aCBuZXctYWJpIHJ0dGkuCgoyMDAwLTAxLTMwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AvY2xhc3MuYyAoYnVpbGRfdnRhYmxlKTogUmVuYW1lIHRvIGJ1aWxkX3ByaW1hcnlfdnRhYmxlLgoJKHByZXBhcmVfZnJlc2hfdnRhYmxlKTogUmVuYW1lIHRvIGJ1aWxkX3NlY29uZGFyeV92dGFibGUuCgkobWFrZV9uZXdfdnRhYmxlKTogTmV3IGZ1bmN0aW9uLgoJKG1vZGlmeV92dGFibGVfZW50cnkpOiBIYW5kbGUgZ2VuZXJhdGlvbiBvZiBuZXcgdnRhYmxlcyBjb3JyZWN0bHkuCgkobW9kaWZ5X29uZV92dGFibGUpOiBSZW1vdmUgdW51c2VkIHBhcmFtZXRlci4KCShkZnNfZml4dXBfdnRhYmxlX2RlbHRhcyk6IExpa2V3aXNlLgoJKG92ZXJyaWRlX29uZV92dGFibGUpOiBVc2UgYnVpbGRfc2Vjb25kYXJ5X3Z0YWJsZS4KCShmaW5pc2hfc3RydWN0XzEpOiBVc2UgYnVpbGRfcHJpbWFyeV92dGFibGUgYW5kCglidWlsZF9zZWNvbmRhcnlfdnRhYmxlLgoKMjAwMC0wMS0yOCAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQHJlZGhhdC5jb20+CgoJKiBjcC9kZWNsLmM6IEFkanVzdCB2YXJpYWJsZSBuYW1lcywgY29tbWVudHMsIGhlbHAgc3RyaW5ncy4KCjIwMDAtMDEtMjkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGFjbS5vcmc+CgoJKiBuZXcyLmNjIChvcGVyYXRvciBkZWxldGVbXSk6IFVzZSBvcGVyYXRvciBkZWxldGUsIGRvbid0IGFzc3VtZQoJaW1wbGVtZW50YXRpb24uCgoyMDAwLTAxLTI5ICBOYXRoYW4gU2lkd2VsbCAgPHNpZHdlbGxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBBZGQgYXJndW1lbnQgdG8KCWJ1aWxkX3Z0YWJsZV9lbnRyeSBjYWxsLgoKMjAwMC0wMS0yNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuZGVmIChUSFVOS19ERUNMKTogRGlzY3VzcyB2Y2FsbCBpbmRpY2VzLgoJKiBjcC10cmVlLmggKEJJTkZPX1ZJUlRVQUxTKTogVXBkYXRlIGRvY3VtZW50YXRpb24uCgkoQkZfREVMVEEpOiBOZXcgbWFjcm8uCgkoQkZfVkNBTExfSU5ERVgpOiBMaWtld2lzZS4KCShCRl9GTik6IExpa2V3aXNlLgoJKFRIVU5LX1ZDQUxMX09GRlNFVCk6IExpa2V3aXNlLgoJKG1ha2VfdGh1bmspOiBDaGFuZ2UgcHJvdG90eXBlLgoJKiBjbGFzcy5jIChidWlsZF92dGFibGVfZW50cnkpOiBJbnRlZ3JhdGUKCWJ1aWxkX3Z0YWJsZV9lbnRyeV9mb3JfZm4uICBIYW5kbGUgdmNhbGwgaW5kaWNlcy4KCShidWlsZF92dGFibGVfZW50cnlfZm9yX2ZuKTogUmVtb3ZlLgoJKHNldF9ydHRpX2VudHJ5KTogSGFuZGxlIHZjYWxsIGluZGljZXMuICBVc2UgQkZfREVMVEEsCglCRl9WQ0FMTF9JTkRFWCwgQkZfRk4uCgkobW9kaWZ5X3Z0YWJsZV9lbnRyeSk6IEludGVncmF0ZSBjb21tb24gY29kZSBmcm9tCgltb2RpZnlfb25lX3Z0YWJsZSBhbmQgZGZzX2ZpeHVwX3Z0YWJsZV9kZWx0YXMuCgkoYWRkX3ZpcnR1YWxfZnVuY3Rpb24pOiBTZXQgQkZfVkNBTExfSU5ERVguCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IFNpbXBsaWZ5LiAgVXNlIEJGX0RFTFRBLCBCRl9WQ0FMTF9JTkRFWCwKCWFuZCBCRl9GTi4KCShtb2RpZnlfb25lX3Z0YWJsZSk6IFNpbXBsaWZ5LgoJKGRmc19maXh1cF92dGFibGVfZGVsdGFzKTogTGlrZXdpc2UuCgkob3ZlcnJpZGVfb25lX3Z0YWJsZSk6IFVzZSBCRl9ERUxUQSwgQkZfVkNBTExfSU5ERVgsIEJGX0ZOLgoJKiBtZXRob2QuYyAobWFrZV90aHVuayk6IEhhbmRsZSB2Y2FsbCBpbmRpY2VzLgoKMjAwMC0wMS0yOCAgTmF0aGFuIFNpZHdlbGwgIDxzaWR3ZWxsQGNvZGVzb3VyY2VyeS5jb20+CgoJQ29tcGlsZXIgc2lkZSBuZXcgYWJpIHJ0dGkgKG5vdCBlbmFibGVkKS4KCSogY3AtdHJlZS5oIChuZXdfYWJpX3J0dGlfcCk6IE5ldyBtYWNyby4KCShlbWl0X3N1cHBvcnRfdGluZm9zKTogUHJvdG90eXBlIG5ldyBmdW5jdGlvbi4KCSh0aW5mb19kZWNsX3ApOiBMaWtld2lzZS4KCShlbWl0X3RpbmZvX2RlY2wpOiBMaWt3aXNlLgoJKiBydHRpLmMgKFRJTkZPX1BTRVVET19UWVBFLCBUSU5GT19WVEFCTEVfREVDTCk6IE5ldyBhY2Nlc3NvcgoJbWFjcm9zLgoJKGRvaW5nX3J1bnRpbWUpOiBOZXcgbG9jYWwgc3RhdGljLgoJKGluaXRfcnR0aV9wcm9jZXNzaW5nKTogQWRkIG5ldy1hYmkgaW5pdGlhbGl6ZXIuCgkoZ2V0X3RpbmZvX2RlY2wpOiBBZGQgbmV3LWFiaSBsb2dpYy4KCSh0aW5mb19mcm9tX2RlY2wpOiBMaWtld2lzZS4KCShidWlsZF9keW5hbWljX2Nhc3RfMSk6IExpa2V3aXNlLgoJKHF1YWxpZmllcl9mbGFncyk6IE5ldyBzdGF0aWMgZnVuY3Rpb24uCgkodGluZm9fYmFzZV9pbml0KTogTGlrZXdpc2UuCgkoZ2VuZXJpY19pbml0aWFsaXplcik6IExpa2V3aXNlLgoJKHB0cl9yZWZfaW5pdGlhbGl6ZXIpOiBMaWtld2lzZS4KCShwdG1kX2luaXRpYWxpemVyKTogTGlrZXdpc2UuCgkoY2xhc3NfaGludF9mbGFncyk6IExpa2V3aXNlLgoJKGNsYXNzX2luaXRpYWxpemVyKTogTGlrZXdpc2UuCgkoc3ludGhlc2l6ZV90aW5mb192YXIpOiBMaWtld2lzZS4KCShjcmVhdGVfcmVhbF90aW5mb192YXIpOiBMaWtld2lzZS4KCShjcmVhdGVfcHNldWRvX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKGdldF92bWlfcHNldWRvX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKGNyZWF0ZV90aW5mb190eXBlcyk6IExpa2V3aXNlLgoJKGVtaXRfc3VwcG9ydF90aW5mb3MpOiBOZXcgZ2xvYmFsIGZ1bmN0aW9uLgoJKHRpbmZvX2RlY2xfcCk6IE5ldyBnbG9iYWwgcHJlZGljYXRlLgoJKGVtaXRfdGluZm9fZGVjbCk6IE5ldyBnbG9iYWwgZnVuY3Rpb24uCgkqIGNsYXNzLmMgKHNldF9ydHRpX2VudHJ5KTogR2VuZXJhbGl6ZSBmb3Igb2xkIGFuZCBuZXcgcnR0aS4KCShidWlsZF92dGJsX2luaXRpYWxpemVyKTogTGlrZXdpc2UuCgkqIGRlY2wyLmMgKGZpbmlzaF9maWxlKTogTGlrZXdpc2UuCgoyMDAwLTAxLTI3ICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBvcHRpbWl6ZS5jIChyZW1hcF9kZWNsKTogQWRkIHdhbGtfdHJlZSBjYWxscyBmb3IgREVDTF9TSVpFICh0KQoJYW5kIFRZUEVfTUFYX1ZBTFVFIChUWVBFX0RPTUFJTiAoVFJFRV9UWVBFICh0KSkpLgoKMjAwMC0wMS0yNyAgTWlrZSBTdHVtcCAgPG1yc0B3cnMuY29tPgoKCSogZGVjbC5jIChwdXNoZGVjbCk6IEZpeCB1cCBzaGFkb3cgd2FybmluZ3Mgd2l0aCByZXNwZWN0IHRvIGltcGxpY2l0Cglmb3Igc2NvcGVzLgoKMjAwMC0wMS0yNiAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBwdC5jICh1bmlmeSk6IFVzZSBmb2xkLCBub3QgbWF5YmVfZm9sZF9ub250eXBlX2FyZy4KCjIwMDAtMDEtMjYgIEoib3JuIFJlbm5lY2tlIDxhbXlsYWFyQGN5Z251cy5jby51az4KCgkqIG9wdGltaXplLmMgKGNhbGxzX3NldGptcF9yKTogU3VwcGx5IG5ldyBhcmd1bWVudAoJdG8gc3BlY2lhbF9mdW5jdGlvbl9wLgoKMjAwMC0wMS0yNiAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogY2FsbC5jOiBQUk9UTyAtPiBQQVJBTVMuCgkqIGNsYXNzLmM6IExpa2V3aXNlLgoJKiBjcC10cmVlLmg6IExpa2V3aXNlLgoJKiBjdnQuYzogTGlrZXdpc2UuCgkqIGRlY2wuYzogTGlrZXdpc2UuCgkqIGRlY2wuaDogTGlrZXdpc2UuCgkqIGRlY2wyLmM6IExpa2V3aXNlLgoJKiBkdW1wLmM6IExpa2V3aXNlLgoJKiBlcnJmbi5jOiBMaWtld2lzZS4KCSogZXJyb3IuYzogTGlrZXdpc2UuCgkqIGV4Y2VwdC5jOiBMaWtld2lzZS4KCSogZXhwci5jOiBMaWtld2lzZS4KCSogaW5pdC5jOiBMaWtld2lzZS4KCSogaW5wdXQuYzogTGlrZXdpc2UuCgkqIGxleC5jOiBMaWtld2lzZS4KCSogbGV4Lmg6IExpa2V3aXNlLgoJKiBtZXRob2QuYzogTGlrZXdpc2UuCgkqIG9wdGltaXplLmM6IExpa2V3aXNlLgoJKiBwYXJzZS55OiBMaWtld2lzZS4KCSogcHQuYzogTGlrZXdpc2UuCgkqIHJlcG8uYzogTGlrZXdpc2UuCgkqIHJ0dGkuYzogTGlrZXdpc2UuCgkqIHNlYXJjaC5jOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmM6IExpa2V3aXNlLgoJKiBzcGV3LmM6IExpa2V3aXNlLgoJKiB0cmVlLmM6IExpa2V3aXNlLgoJKiB0eXBlY2suYzogTGlrZXdpc2UuCgkqIHR5cGVjazIuYzogTGlrZXdpc2UuCgkqIHhyZWYuYzogTGlrZXdpc2UuCgoyMDAwLTAxLTI1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogdHlwZWNrLmMgKGJ1aWxkX2JpbmFyeV9vcF9ub2RlZmF1bHQpOiBSZW1vdmUgVU5ORV9FWFBSLgoKMjAwMC0wMS0yNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAodmNhbGxfb2Zmc2V0X2luX3Z0YWJsZV9wKTogTmV3IG1hY3JvLgoJKiBjbGFzcy5jIChidWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogRml4IHR5cG8gaW4gY29tbW1lbnQuCgkoc3RydWN0IHZjYWxsX29mZnNldF9kYXRhX3MpOiBOZXcgdHlwZS4KCShkZnNfdmNhbGxfb2Zmc2V0X3F1ZXVlX3ApOiBOZXcgZnVuY3Rpb24uCgkoZGZzX2J1aWxkX3ZjYWxsX29mZnNldF92dGJsX2VudHJpZXMpOiBMaWtld2lzZS4KCShidWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkobGF5b3V0X3Z0YWJsZV9kZWNsKTogTGlrZXdpc2UuCgkobnVtX3ZmdW5fZW50cmllcyk6IExpa2V3aXNlLgoJKG51bV9leHRyYV92dGJsX2VudHJpZXMpOiBBZGQgdGhlIGVudHJpZXMgZm9yIHZjYWxsIG9mZnNldHMuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IExpa2V3aXNlLgoJKGRmc19maW5pc2hfdnRhYmxzKTogVXNlIGxheW91dF92dGFibGVfZGVjbC4KCShtb2RpZnlfb25lX3Z0YWJsZXMpOiBBbHdheXMgZHVwbGljYXRlIHZ0YWJsZXMgdW5kZXIgdGhlIG5ldyBBQkkuCgkoZmluaXNoX3N0cnVjdF8xKTogVXNlIGxheW91dF92dGFibGVfZGVjbC4KCjIwMDAtMDEtMjUgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGRlY2wuYyAobWVtYmVyX2Z1bmN0aW9uX29yX2Vsc2UpOiBDaGFuZ2UgdGhpcmQgYXJnIGZyb20gYSBmb3JtYXQKCXNwZWNpZmllciB0byBhbiBgZW51bSBvdmVybG9hZF9mbGFncycuICBDYWxsZXJzIGNoYW5nZWQuCgoyMDAwLTAxLTI1ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0eXBlY2suYyAoY29tcG9zaXRlX3BvaW50ZXJfdHlwZSwgY19zaXplb2YsIGV4cHJfc2l6ZW9mLAoJYnVpbGRfYmluYXJ5X29wX25vZGVmYXVsdCwgYnVpbGRfdW5hcnlfb3AsIGJ1aWxkX3JlaW50ZXJwcmV0X2Nhc3QsCglidWlsZF9jb25zdF9jYXN0LCBnZXRfZGVsdGFfZGlmZmVyZW5jZSwgY2hlY2tfcmV0dXJuX2V4cHIpOiBBdm9pZAoJQU5TSSBzdHJpbmcgY29uY2F0ZW5hdGlvbiB1c2FnZS4KCjIwMDAtMDEtMjQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChsYXlvdXRfY2xhc3NfdHlwZSk6IFB1dCB0aGUgZmllbGRzIHJlcXVpcmVkIHRvIG1ha2UgYQoJY2xhc3Mgbm9uLWVtcHR5IGF0IHRoZSBlbmQsIG5vdCB0aGUgYmVnaW5uaW5nLCBvZiB0aGUgVFlQRV9GSUVMRHMKCWxpc3QuCgoyMDAwLTAxLTI0ICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIHB0LmMgKG1heWJlX2ZvbGRfbm9udHlwZV9hcmcpOiBEbyBub3RoaW5nIGlmIHdlJ3JlIG5vdCBpbiBhCgl0ZW1wbGF0ZS4KCgkqIGRlY2wyLmMgKG1hcmtfdXNlZCk6IERvIGluc3RhbnRpYXRlIGlubGluZXMgdGhhdCBoYXZlIGJlZW4KCWV4cGxpY2l0bHkgaW5zdGFudGlhdGVkLgoKMjAwMC0wMS0yNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAY3lnbnVzLmNvbT4KCgkqIGNhbGwuYyAoYnVpbGRfb3Zlcl9jYWxsKTogVXNlIGV4cGFuZF90cmVlX2J1aWx0aW4uCgkqIHR5cGVjay5jIChidWlsZF9mdW5jdGlvbl9jYWxsX3JlYWwpOiBMaWtld2lzZS4KCShidWlsZF9iaW5hcnlfb3Bfbm9kZWZhdWx0KTogSGFuZGxlIHVub3JkZXJlZCBjb21wYXJlcy4KCjIwMDAtMDEtMjQgIE5hdGhhbiBTaWR3ZWxsICA8c2lkd2VsbEBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChDUFRJX0JBRF9DQVNULCBDUFRJX0JBRF9UWVBFSUQsIENQVElfRENBU1QpOiBOZXcKCWNwX3RyZWVfaW5kZXggdmFsdWVzLgoJKHRocm93X2JhZF9jYXN0X25vZGUsIHRocm93X2JhZF90eXBlaWRfbm9kZSwgZHluYW1pY19jYXN0X25vZGUpOgoJTmV3IGdsb2JhbCBub2RlICNkZWZpbmVzIGZvciB0aGVtLgoJKiBydHRpLmMgKGNhbGxfdm9pZF9mbik6IFJlcGxhY2Ugd2l0aCAuLi4KCShidWlsZF9ydW50aW1lX2RlY2wpOiAuLi4gbmV3IHN0YXRpYyBmdW5jdGlvbi4KCSh0aHJvd19iYWRfY2FzdCk6IFVzZSB0aHJvd19iYWRfY2FzdF9ub2RlIGFuZCBidWlsZF9ydW50aW1lX2RlY2wuCgkodGhyb3dfYmFkX3R5cGVpZCk6IFVzZSB0aHJvd19iYWRfdHlwZWlkX25vZGUgYW5kIGJ1aWxkX3J1bnRpbWVfZGVjbC4KCShidWlsZF9keW5hbWljX2Nhc3RfMSk6IEFsd2F5cyBwcm9kdWNlIGNvcnJlY3RseSB0eXBlZCByZXN1bHQuCglFeHBsaWNpdGx5IHByb2R1Y2UgdHlwZV9pbmZvIGFkZHJlc3Nlcy4gVXNlIGR5bmFtaWNfY2FzdF9ub2RlLgoJKiBleGNlcHRpb24uY2MgKF9fdGhyb3dfYmFkX2Nhc3QpOiBSZXR1cm4gYHZvaWQgKicuCgkoX190aHJvd19iYWRfdHlwZWlkKTogUmV0dXJuIGBjb25zdCB0eXBlX2luZm8gJicuCgoyMDAwLTAxLTI0ICBOYXRoYW4gU2lkd2VsbCAgPHNpZHdlbGxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZ2V0X3Z0YWJsZV9kZWNsKTogUHJvdG90eXBlIG5ldyBmdW5jdGlvbi4KCSogY2xhc3MuYyAoZ2V0X3Z0YWJsZV9kZWNsKTogTmV3IGZ1bmN0aW9uLiBCcm9rZW4gb3V0IGZyb20gLi4uCgkoYnVpbGRfdnRhYmxlKTogLi4uIGhlcmUuIFVzZSBpdC4KCSogZGVjbDIuYyAoZmluaXNoX3Z0YWJsZV92YXJkZWNsKTogSWdub3JlIGR1bW15IHZ0YWJsZXMgY3JlYXRlZAoJYnkgZ2V0X3Z0YWJsZV9kZWNsLgoKMjAwMC0wMS0yNCAgTmF0aGFuIFNpZHdlbGwgIDxzaWR3ZWxsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKENQVElfVFBfREVTQ19UWVBFLCBDUFRJX0FDQ0VTU19NT0RFX1RZUEUsCglDUFRJX1VTRVJfREVTQ19UWVBFLCBDUFRJX0NMQVNTX0RFU0NfVFlQRSwgQ1BUSV9BVFRSX0RFU0NfVFlQRSwKCUNQVElfUFRNRl9ERVNDX1RZUEUpOiBSZW1vdmUgY3BfdHJlZV9pbmRleCBlbnVtZXJhdGlvbnMuCgkoQ1BUSV9USV9ERVNDX1RZUEUsIENQVElfUkVGX0RFU0NfVFlQRSwgQ1BUSV9BUllfREVTQ19UWVBFLAoJQ1BUSV9FTlVNX0RFU0NfVFlQRSwgQ1BUSV9DTEFTU19ERVNDX1RZUEUsIENQVElfU0lfQ0xBU1NfREVTQ19UWVBFLAoJQ1BUSV9WTUlfQ0xBU1NfREVTQ19UWVBFLCBDUFRJX0JBU0VfREVTQ19UWVBFKTogTmV3IGVudW1lcmF0aW9ucy4KCShDUFRJX1RJTkZPX0ZOX0lELCBDUFRJX1RJTkZPX0ZOX1RZUEUpOiBSZW5hbWUgdG8gLi4uCgkoQ1BUSV9USU5GT19ERUNMX0lELCBDUFRJX1RJTkZPX0RFQ0xfVFlQRSk6IC4uLiBoZXJlLgoJKENQVElfVElORk9fVkFSX0lEKTogTmV3IGVudW1lcmF0aW9uLgoJKF9fdHBfZGVzY190eXBlX25vZGUsIF9fYWNjZXNzX21vZGVfdHlwZV9ub2RlLAoJX19ibHRuX2Rlc2NfdHlwZV9ub2RlLCBfX3VzZXJfZGVzY190eXBlX25vZGUsCglfX2NsYXNzX2Rlc2NfdHlwZV9ub2RlLCBfX3B0cl9kZXNjX3R5cGVfbm9kZSwKCV9fYXR0cl9kZXNjX3R5cGVfbm9kZSwgX19mdW5jX2Rlc2NfdHlwZV9ub2RlLAoJX19wdG1mX2Rlc2NfdHlwZV9ub2RlLCBfX3B0bWRfZGVzY190eXBlX25vZGUpOiBSZW1vdmUgI2RlZmluZXMuCgkodGlfZGVzY190eXBlX25vZGUsIGJsdG5fZGVzY190eXBlX25vZGUsIHB0cl9kZXNjX3R5cGVfbm9kZSwKCXJlZl9kZXNjX3R5cGVfbm9kZSwgYXJ5X2Rlc2NfdHlwZV9ub2RlLCBmdW5jX2Rlc2NfdHlwZV9ub2RlLAoJZW51bV9kZXNjX3R5cGVfbm9kZSwgY2xhc3NfZGVzY190eXBlX25vZGUsCglzaV9jbGFzc19kZXNjX3R5cGVfbm9kZSwgdm1pX2NsYXNzX2Rlc2NfdHlwZV9ub2RlLAoJcHRtZF9kZXNjX3R5cGVfbm9kZSwgYmFzZV9kZXNjX3R5cGVfbm9kZSk6IE5ldyAjZGVmaW5lcy4KCSh0aW5mb19mbl9pZCwgdGluZm9fZm5fdHlwZSk6IFJlbmFtZSB0byAuLi4KCSh0aW5mb19kZWNsX2lkLCB0aW5mb19kZWNsX3R5cGUpOiAuLi4gaGVyZS4gQWRqdXN0LgoJKHRpbmZvX3Zhcl9pZCk6IE5ldyBlbnVtZXJhdGlvbi4KCShERUNMX1RJTkZPX0ZOX1ApOiBBdWdtZW50IGNvbW1lbnQuCgkqIGRlY2wuYyAoY3BfZ2xvYmFsX3RyZWVzKTogQWRqdXN0IGRvY3VtZW50YXRpb24uCgkqIHJ0dGkuYyAoaW5pdF9ydHRpX3Byb2Nlc3NpbmcpOiBBZGp1c3QgZm9yIHRpbmZvX2RlY2xfaWQsCgl0aW5mb19kZWNsX3R5cGUgYW5kIHRpbmZvX3Zhcl9pZC4KCShnZXRfdGluZm9fZGVjbF9keW5hbWljKTogQWRqdXN0IGZvciB0aW5mb19kZWNsX3R5cGUuCgkoYnVpbGRfdHlwZWlkKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCShnZXRfdGluZm9fdmFyKTogVXNlIHRpbmZvX3Zhcl9pZC4KCSh0aW5mb19uYW1lKTogTmV3IHN0YXRpYyBmdW5jdGlvbi4KCShnZXRfdGluZm9fZGVjbCk6IEFkanVzdCBmb3IgdGluZm9fZGVjbF9pZCBhbmQgdGluZm9fZGVjbF90eXBlLgoJKHRpbmZvX2Zyb21fZGVjbCk6IExpa2V3aXNlLgoJKGdldF9iYXNlX29mZnNldCk6IE5ldyBzdGF0aWMgZnVuY3Rpb24sIGJyb2tlbiBvdXQgb2YKCWV4cGFuZF9jbGFzc19kZXNjLgoJKGV4cGFuZF9zaV9kZXNjKTogVXNlIHRpbmZvX25hbWUuCgkoZXhwYW5kX2NsYXNzX2Rlc2MpOiBMaWtld2lzZS4gTG9zZSBsb2NhbCBzdGF0aWMgdmFyaWFibGUuCglVc2UgYmFzZV9kZXNjX3R5cGVfbm9kZS4gVXNlIGdldF9iYXNlX29mZnNldC4KCShleHBhbmRfcHRyX2Rlc2MpOiBVc2UgdGluZm9fbmFtZS4KCShleHBhbmRfYXR0cl9kZXNjKTogTGlrZXdpc2UuCgkoZXhwYW5kX2dlbmVyaWNfZGVzYyk6IExpa2V3aXNlLgoKCSogdGluZm8uY2MgKF9fR1hYX0FCSV9WRVJTSU9OKTogVGVzdCB2YWx1ZSBhbmQgZXhpc3RlbmNlLgoJKiB0aW5mby5oIChfX0dYWF9BQklfVkVSU0lPTik6IFRlc3QgdmFsdWUgYW5kIGV4aXN0ZW5jZS4KCjIwMDAtMDEtMjMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKF9fZXByaW50Zik6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCSogdHJlZS5jIChfX2VwcmludGYpOiBSZW1vdmUgZGVmaW5pdGlvbi4KCjIwMDAtMDEtMjMgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHJhYmkuY29sdW1iaWEuZWR1PgoJICAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKENMQVNTVFlQRV9NQVJLRURfTiwgU0VUX0NMQVNTVFlQRV9NQVJLRURfTiwKCUNMRUFSX0NMQVNTVFlQRV9NQVJLRURfTik6IEF2b2lkIHNpZ25lZCB2cy4gdW5zaWduZWQgd2FybmluZ3MuCgoyMDAwLTAxLTIzICBCcmFkIEx1Y2llciAgPGx1Y2llckBtYXRoLnB1cmR1ZS5lZHU+CgoJKiBjbGFzcy5jIChkdW1wX2NsYXNzX2hpZXJhcmNoeSk6IFByaW50IEhPU1RfV0lERV9JTlQgcHJvcGVybHkuCgoyMDAwLTAxLTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChyZWdpc3Rlcl9kdG9yX2ZuKTogTmV3IGZ1bmN0aW9uLgoJKiBkZWNsLmMgKGRlc3Ryb3lfbG9jYWxfc3RhdGljKTogUmVuYW1lIHRvIC4uLgoJKHJlZ2lzdGVyX2R0b3JfZm4pOiAuLi4gdGhpcy4gIEdpdmUgaXQgZXh0ZXJuYWwgbGlua2FnZS4KCShleHBhbmRfc3RhdGljX2luaXQpOiBVc2UgaXQuCgkqIGRlY2wyLmMgKGRvX3N0YXRpY19pbml0aWFsaXphdGlvbik6IExpa2V3aXNlLCBpZiB1c2luZwoJX19jeGFfYXRleGl0LgoJKGRvX3N0YXRpY19kZXN0cnVjdGlvbik6IENoZWNrIHRoYXQgX19jeGFfYXRleGl0IGlzIG5vdCBpbiB1c2UuCgkoZmluaXNoX2ZpbGUpOiBEb24ndCBjYWxsIGRvX3N0YXRpY19kZXN0cnVjdGlvbiBpZiB1c2luZwoJX19jeGFfYXRleGl0LgoKCSogdHlwZWNrLmMgKGNvbnZlcnRfYXJndW1lbnRzKTogUmVzdG9yZSB0d28tbWVzc2FnZSBlcnJvcgoJcmVwb3J0aW5nLgoKMjAwMC0wMS0yMCAgTmF0aGFuIFNpZHdlbGwgIDxzaWR3ZWxsQGNvZGVzb3VyY2VyeS5jb20+CgoJUmVtYXAgZHluYW1pYyBjYXN0IGhpbnQgdmFsdWVzIHRvIGJlIGNvbnNpc3RlbnQgYWNyb3NzIEFCSXMuCgkqIHNlYXJjaC5jIChkeW5hbWljX2Nhc3RfYmFzZV9yZWN1cnNlKTogUmVtYXAgZ2VuZXJhdGVkIHZhbHVlLgoJKGdldF9keW5hbWljX2Nhc3RfYmFzZV90eXBlKTogQWRqdXN0IGRvY3VtZW50YXRpb24uCgkqIHRpbmZvLmggKF9fdXNlcl90eXBlX2luZm86OmR5bmNhc3QpOiBMaWtld2lzZS4KCShfX3VzZXJfdHlwZV9pbmZvOjpmaW5kX3B1YmxpY19zdWJvYmopOiBSZW1hcCBCT0ZGIG1lYW5pbmcuCgkqIHRpbmZvLmNjIChfX3NpX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IFJlbWFwIEJPRkYgbWVhbmluZy4KCShfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IExpa2V3aXNlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpkb19maW5kX3B1YmxpY19zdWJvYmopOiBMaWtld2lzZS4KCSogdGluZm8yLmNjIChfX2R5bmFtaWNfY2FzdCk6IFJlbWFwIEJPRkYgcGFyYW1ldGVyLgoKMjAwMC0wMS0xOSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKGJ1aWxkX3VuYXJ5X29wKTogVXNlIGNwX3BlZHdhcm4sIG5vdCBwZWR3YXJuLgoKCSogdHlwZWNrMi5jIChpbmNvbXBsZXRlX3R5cGVfZXJyb3IpOiBSZXN0b3JlIHByZXZpb3VzCgljcF9lcnJvciBhbmQgY3BfZXJyb3JfYXQgY2FsbCBzZXF1ZW5jZS4KCjIwMDAtMDEtMjAgIEJyYWQgTHVjaWVyICA8bHVjaWVyQG1hdGgucHVyZHVlLmVkdT4KCgkqIGNsYXNzLmMgKGR1bXBfY2xhc3NfaGllcmFyY2h5KTogTWFrZSBmb3JtYXQgYWdyZWUgd2l0aCBhcmd1bWVudDsKCWNhc3QgcG9pbnRlciB0byB1bnNpZ25lZCBsb25nIGFuZCBwcmludCB3aXRoICVseC4KCjIwMDAtMDEtMTkgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmMgKGxhbmdfZGVjb2RlX29wdGlvbik6IFNldCBkZWZhdWx0IGxpbmUtd3JhcCBsZW5ndGggdG8gNzIuCgoJKiB0eXBlY2suYyAoY29tcG9zaXRlX3BvaW50ZXJfdHlwZSwgY29tbW9uX3R5cGUsCgljb21wX3RhcmdldF9wYXJtcywgY19zaXplb2YsIGV4cHJfc2l6ZW9mLCBidWlsZF9hcnJheV9yZWYsCglidWlsZF9mdW5jdGlvbl9jYWxsX3JlYWwsIGNvbnZlcnRfYXJndW1lbnRzLAoJYnVpbGRfYmluYXJ5X29wX25vZGVmYXVsdCwgcG9pbnRlcl9pbnRfc3VtLCBwb2ludGVyX2RpZmYsCglidWlsZF91bmFyeV9vcCwgbWFya19hZGRyZXNzYWJsZSwgYnVpbGRfY29tcG91bmRfZXhwciwKCWJ1aWxkX3N0YXRpY19jYXN0LCBidWlsZF9yZWludGVycHJldF9jYXN0LCBidWlsZF9jb25zdF9jYXN0LAoJYnVpbGRfY19jYXN0LCBidWlsZF9tb2RpZnlfZXhwciwgZ2V0X2RlbHRhX2RpZmZlcmVuY2UsCglidWlsZF9wdHJtZW1mdW5jLCBjaGVja19yZXR1cm5fZXhwcik6IFJlcGxhY2UgJ0FOU0kgQysrJyB3aXRoCgknSVNPIEMrKycuICBGdXNpb24gY29uc2VjdXRpdmUgY2FsbHMgdG8gZGlhZ25vc3RpYyBtZXNzYWdlIHJvdXRpbmVzCglpbnRvIGEgc2luZ2xlIG9uZS4KCSogdHlwZWNrMi5jIChyZWFkb25seV9lcnJvciwgYWJzdHJhY3RfdmlydHVhbHNfZXJyb3IsCglwcm9jZXNzX2luaXRfY29uc3RydWN0b3IsIGNoZWNrX2Zvcl9uZXdfdHlwZSk6IExpa2V3aXNlLgoKMjAwMC0wMS0xOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWUuYyAoYm90X21hbmlwKTogU2V0IERFQ0xfQ09OVEVYVCBmb3IgbmV3bHkgY3JlYXRlZAoJVkFSX0RFQ0xzLgoKMjAwMC0wMS0xOCAgTmF0aGFuIFNpZHdlbGwgIDxzaWR3ZWxsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGdldF90aW5mb19mbl9keW5hbWljKTogUmVtb3ZlIHByb3RvdHlwZS4KCShidWlsZF94X3R5cGVpZCk6IExpa2V3aXNlLgoJKGdldF90aW5mb19mbik6IExpa2V3aXNlLgoJKGdldF90aW5mb19mbl91bnVzZWQpOiBSZW5hbWUgdG8gLi4uCgkoZ2V0X3RpbmZvX2RlY2wpOiAuLi4gaGVyZS4KCSogcnR0aS5jIChidWlsZF9oZWFkb2YpOiBSZXBsYWNlIGxvZ2ljIGVycm9yIHdpdGggYXNzZXJ0aW9uLgoJKGdldF90aW5mb19mbl9keW5hbWljKTogUmVuYW1lIHRvIC4uLgoJKGdldF90aW5mb19kZWNsX2R5bmFtaWMpOiAuLi4gaGVyZS4gTWFrZSBzdGF0aWMuIFVzZQoJY29tcGxldGVfdHlwZV9vcl9lbHNlLgoJKGJ1aWxkX3hfdHlwZWlkKTogTW92ZSBpbnRvIC4uLgoJKGJ1aWxkX3R5cGVpZCk6IC4uLiBoZXJlLiBBZGp1c3QgY2FsbCB0bwoJZ2V0X3RpbmZvX2RlY2xfZHluYW1pYy4gVXNlIHRpbmZvX2Zyb21fZGVjbC4gU2ltcGxpZnkKCXRocm93X2JhZF90eXBlaWQgZXhwcmVzc2lvbi4KCShnZXRfdGluZm9fZm5fdW51c2VkKTogUmVuYW1lIHRvIC4uLgoJKGdldF90aW5mb19kZWNsKTogLi4uIGhlcmUuIEFkanVzdCBjb21tZW50LgoJKGdldF90aW5mb19mbik6IERlbGV0ZS4KCSh0aW5mb19mcm9tX2RlY2wpOiBOZXcgc3RhdGljIGZ1bmN0aW9uLgoJKGdldF90eXBlaWRfMSk6IENhbGwgZ2V0X3RpbmZvX2RlY2wgYW5kIHRpbmZvX2Zyb21fZGVjbC4KCShnZXRfdHlwZWlkKTogVXNlIGNvbXBsZXRlX3R5cGVfb3JfZWxzZS4KCShidWlsZF9keW5hbWljX2Nhc3RfMSk6IEFkanVzdCBjYWxscyB0bwoJZ2V0X3RpbmZvX2RlY2xfZHluYW1pYy4gU2ltcGxpZnkgdGhyb3dfYmFkX2Nhc3QgZXhwcmVzc2lvbi4KCSogcGFyc2UueSAocHJpbWFyeSk6IEFkanVzdCBjYWxsIHRvIGJ1aWxkX3R5cGVpZC4KCSogZXhjZXB0LmMgKGJ1aWxkX2VoX3R5cGVfdHlwZV9yZWYpOiBBZGp1c3QgY2FsbCB0bwoJZ2V0X3RpbmZvX2RlY2wuIE1hcmsgYXMgdXNlZC4KCSogY2xhc3MuYyAoc2V0X3J0dGlfZW50cnkpOiBBZGp1c3QgY2FsbCB0byBnZXRfdGluZm9fZGVjbC4KCSogZGVjbDIuYyAoYnVpbGRfZXhwcl9mcm9tX3RyZWUpOiBBZGp1c3QgY2FsbCB0byBidWlsZF90eXBlaWQuCgkqIHBhcnNlLmM6IFJlZ2VuZXJhdGVkLgoKMjAwMC0wMS0xNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGZpeGVkX3R5cGVfb3JfbnVsbCk6IERvbid0IGNsZWFyIE5PTk5VTEwuICBEb2N1bWVudAoJY2FsbGluZyBjb252ZW50aW9uLgoJKHJlc29sdmVzX3RvX2ZpeGVkX3R5cGVfcCk6IERvY3VtZW50IGNhbGxpbmcgY29udmVudGlvbi4KCSogcnR0aS5jIChidWlsZF94X3R5cGVpZCk6IEluaXRpYWxpemUgTk9OTlVMTC4KCgkqIGNwLXRyZWUuaCAoYnVpbGRfc2hhcmVkX2ludF9jc3QpOiBOZXcgZnVuY3Rpb24uCgkqIGNhbGwuYyAoYnVpbGRfb3Zlcl9jYWxsKTogVXNlIERFQ0xfVklSVFVBTF9DT05URVhULCBmb3IgY2xhcml0eS4KCSogY2xhc3MuYyAobW9kaWZ5X3Z0YWJsZV9lbnRyeSk6IExpa2V3aXNlLgoJKGFkZF92aXJ0dWFsX2Z1bmN0aW9uKTogU3BsaXQgb3V0IGNvZGUgdG8gZ2VuZXJhdGVkIHNoYXJlZAoJSU5URUdFUl9DU1RzIHRvIGJ1aWxkX3NoYXJlX2ludF9jc3QuCgkobW9kaWZ5X2FsbF92dGFibGVzKTogSGFuZGxlIGFsbCB0aGUgb3ZlcnJpZGRlbiBmdW5jdGlvbnMgaGVyZS4KCUFkZCBvdmVycmlkZGVuIGZ1bmN0aW9ucyBmcm9tIG5vbi1wcmltYXJ5IHZpcnR1YWwgYmFzZXMgdG8gdGhlCglwcmltYXJ5IHZ0YWJsZS4KCShmaW5pc2hfc3RydWN0XzEpOiBBZGp1c3QgY2FsbCB0byBtb2RpZnlfYWxsX3Z0YWJsZXMuICBBZGQKCW92ZXJyaWRkZW4gZnVuY3Rpb25zIGZyb20gbm9uLXByaW1hcnkgYmFzZXMgdG8gdGhlIHZ0YWJsZS4KCSogdHJlZS5jIChidWlsZF9zaGFyZWRfaW50X2NzdCk6IE5ldyBmdW5jdGlvbi4KCgkqIGNwLXRyZWUuaCAoc2NyYXRjaGFsbG9jKTogUmVtb3ZlLgoJKGJ1aWxkX3NjcmF0Y2hfbGlzdCk6IExpa2V3aXNlLgoJKiBjYWxsLmMgKGNvbnZlcnRfY2xhc3NfdG9fcmVmZXJlbmNlKTogUmVwbGFjZSBidWlsZF9zY3JhdGNoX2xpc3QKCWFuZCBidWlsZF9leHByX2xpc3Qgd2l0aCBidWlsZF90cmVlX2xpc3QuCgkoYWRkX2NhbmRpZGF0ZSk6IFJlcGxhY2Ugc2NyYXRjaGFsbG9jIHdpdGggZXhwcmFsbG9jLiAgTm90ZSBtZW1vcnkKCWxlYWsuCgkoYnVpbGRfdXNlcl90eXBlX2NvbnZlcnNpb25fMSk6ICBSZXBsYWNlIGJ1aWxkX3NjcmF0Y2hfbGlzdAoJYW5kIGJ1aWxkX2V4cHJfbGlzdCB3aXRoIGJ1aWxkX3RyZWVfbGlzdC4KCShidWlsZF9uZXdfb3ApOiBMaWtld2lzZS4KCShidWlsZF9vcF9kZWxldGVfY2FsbCk6IExpa2V3aXNlLgoJKGNvbnZlcnRfbGlrZSk6IExpa2V3aXNlLgoJKiBjdnQuYyAob2NwX2NvbnZlcnQpOiBMaWtld2lzZS4KCSogZGVjbC5jIChzdGFydF9kZWNsKTogTGlrZXdpc2UuCgkoc3RhcnRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCShmaW5pc2hfZGVzdHJ1Y3Rvcl9ib2R5KTogTGlrZXdpc2UuCgkobWF5YmVfYnVpbGRfY2xlYW51cF8xKTogTGlrZXdpc2UuCgkqIGRlY2wyLmMgKHJlcGFyc2VfZGVjbF9hc19leHByKTogTGlrZXdpc2UuCgkqIGluaXQuYyAocGVyZm9ybV9tZW1iZXJfaW5pdCk6IExpa2V3aXNlLgoJKGV4cGFuZF9jbGVhbnVwX2Zvcl9iYXNlKTogTGlrZXdpc2UuCgkoYnVpbGRfYnVpbHRpbl9kZWxldGVfY2FsbCk6IExpa2V3aXNlLgoJKGJ1aWxkX25ld18xKTogTGlrZXdpc2UuCgkoYnVpbGRfZGVsZXRlKTogTGlrZXdpc2UuCgkqIG1ldGhvZC5jIChkb19idWlsZF9hc3NpZ25fcmVmKTogTGlrZXdpc2UuCgkqIHBhcnNlLnkgKGFscmVhZHlfc2NvcGVkX3N0bXQpOiBMaWtld2lzZS4KCShub250cml2aWFsX2V4cHJsaXN0KTogTGlrZXdpc2UuCgkobmV0X2luaXRpYWxpemVyKTogTGlrZXdpc2UuCgkoaW5pdGxpc3QpOiBMaWtld2lzZS4KCSogcGFyc2UuYzogUmVnZW5lcmF0ZWQuCgkqIHJ0dGkuYyAoYnVpbGRfeF90eXBlaWQpOiBMaWtld2lzZS4KCShidWlsZF9keW5hbWljX2Nhc3RfMSk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoYnVpbGRfeF9jb21wb3VuZF9leHByKTogTGlrZXdpc2UuCgkoYnVpbGRfc3RhdGljX2Nhc3QpOiBMaWtld2lzZS4KCShidWlsZF9tb2RpZnlfZXhwcik6IExpa2V3aXNlLgoKCSogY3AtdHJlZS5oIChERUNMX1ZJTkRFWCk6IEFkZCBkb2N1bWVudGF0aW9uLgoJKiBjbGFzcy5jIChidWlsZF92dGFibGVfZW50cnkpOiBMaWtld2lzZS4KCShzdGFydF92dGFibGUpOiBBZGQgY29tbWVudC4KCShhZGRfdmlydHVhbF9mdW5jdGlvbik6IFJlcGxhY2UgcGVuZGluZ19oYXJkX3ZpcnR1YWxzIHdpdGgKCW92ZXJyaWRkZW5fdmlydHVhbHMgYW5kIHBlbmRpbmdfdmlydHVhbHMgd2l0aCBuZXdfdmlydHVhbHMuCglSZXBsYWNlIHJlZHVuZGFudCBhc3NpZ25tZW50cyB3aXRoIGFzc2VydGlvbnMuCgkoY2hlY2tfZm9yX292ZXJyaWRlKTogQWRkIGNvbW1lbnQuCgkoY2hlY2tfYmFzZXNfYW5kX21lbWJlcnMpOiBSZXBsYWNlIHBlbmRpbmdfaGFyZF92aXJ0dWFscyB3aXRoCglvdmVycmlkZGVuX3ZpcnR1YWxzIGFuZCBwZW5kaW5nX3ZpcnR1YWxzIHdpdGggbmV3X3ZpcnR1YWxzLgoJKGNyZWF0ZV92dGJsX3B0cik6IExpa2V3aXNlLgoJKGxheW91dF9jbGFzc190eXBlKTogTGlrZXdpc2UuCgkoZmluaXNoX3N0cnVjdF8xKTogTGlrZXdpc2UuICBBZGQgY29tbWVudHMuCgoyMDAwLTAxLTE2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdF8xKTogUmVwbGFjZSByZWR1bmRhbnQgY29kZSB3aXRoCglhc3NlcnRpb25zLgoKCSogY3AtdHJlZS5oIChmbGFnX25ld19hYmkpOiBNb3ZlLgoJKGZsYWdfdXNlX2N4YV9hdGV4aXQpOiBMaWtld2lzZS4KCShmbGFnX2hvbm9yX3N0ZCk6IExpa2V3aXNlLgoJKGZsYWdfcnR0aSk6IExpa2V3aXNlLgoJKHZiYXNlX29mZnNldHNfaW5fdnRhYmxlX3ApOiBEZWZpbmUuCgkodnB0cnNfcHJlc2VudF9ldmVyeXdoZXJlX3ApOiBMaWtld2lzZS4KCShUWVBFX0NPTlRBSU5TX1ZQVFJfUCk6IExpa2V3aXNlLgoJKGRmc193YWxrX3JlYWwpOiBEZWNsYXJlLgoJKiBjbGFzcy5jIChidWlsZF92YmFzZV9wb2ludGVyX2ZpZWxkcyk6IENoZWNrCgl2YmFzZV9vZmZzZXRzX2luX3Z0YWJsZV9wLgoJKGRmc19idWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogUmVjb3JkIHRoZSB2YmFzZSBpbmRpY2VzIGluCglCSU5GT19WUFRSX0ZJRUxELgoJKGJ1aWxkX3ZiYXNlX29mZnNldF92dGJsX2VudHJpZXMpOiBTaW1wbGlmeS4KCShidWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogQWRqdXN0LgoJKGJ1aWxkX3ZiYXNlX3BvaW50ZXIpOiBBZGQgYWJpbGl0eSB0byBsb29rIHVwIHZiYXNlIG9mZnNldHMgaW4KCXZ0YWJsZS4KCShzdGFydF92dGFibGUpOiBOZXcgZnVuY3Rpb24uCgkoYWRkX3ZpcnR1YWxfZnVuY3Rpb24pOiBVc2UgaXQuCgkoZGV0ZXJtaW5lX3ByaW1hcnlfYmFzZSk6IFVzZSBUWVBFX0NPTlRBSU5TX1ZQVFJfUC4KCShudW1fZXh0cmFfdnRibF9lbnRyaWVzKTogVXNlIHZiYXNlX29mZnNldHNfaW5fdnRhYmxlX3AuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IFRha2UgdGhlIHR5cGUgb2YgdGhlIGNvbXBsZXRlIG9iamVjdCBhcwoJaW5wdXQuICBVc2UgaXQgdG8gY29ycmVjdGx5IGNhbGN1bGF0ZSB2YmFzZSBvZmZzZXRzLgoJKGRmc19maW5pc2hfdnRibHMpOiBQYXNzIHRoZSBjb21wbGV0ZSB0eXBlIHRvCglidWlsZF92dGJsX2luaXRpYWxpemVyLgoJKGNoZWNrX2Jhc2VzX2FuZF9tZW1iZXJzKTogVXNlIFRZUEVfQ09OVEFJTlNfVlBUUl9QLgoJKGNyZWF0ZV92dGFibGVfcHRyKTogQ3JlYXRlIGEgdnRhYmxlIGV2ZW4gaWYgdGhlcmUgYXJlIG5vCgluZXcgdmlydHVhbCBmdW5jdGlvbnMsIHVuZGVyIHRoZSBuZXcgQUJJLgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IExpa2V3aXNlLgoJKGdldF92ZmllbGRfbmFtZSk6IFVzZSBUWVBFX0NPTlRBSU5TX1ZQVFJfUC4KCSogZGVjbC5jIChleGFwbmRfc3RhdGljX2luaXQpOiBSZW1vdmUgY2FsbCB0bwoJcHJlc2VydmVfaW5pdGlhbGl6ZXIuCgkqIGRlY2wyLmMgKG1hcmtfdnRhYmxlX2VudHJpZXMpOiBUd2VhayB0byBoYW5kbGUgdmJhc2Ugb2Zmc2V0cyBpbgoJdnRhYmxlcy4KCSogaW5pdC5jIChpbml0aWFsaXplX3Z0YmxfcHRycyk6IEluaXRpYWxpemUgdGhlbSBpbiBwcmUtb3JkZXIuCgkoZXhwYW5kX3ZpcnR1YWxfaW5pdCk6IFVzZSB2YmFzZV9vZmZzZXRzX2luX3Z0YWJsZV9wLgoJKGNvbnN0cnVjdF92aXJ0dWFsX2Jhc2VzKTogRG9uJ3QgaW5pdGlhbGl6ZSB2aXJ0dWFsIGJhc2UgcG9pbnRlcnMKCXVuZGVyIHRoZSBuZXcgQUJJLgoJKGJ1aWxkX2FnZ3JfaW5pdCk6IENsZWFuIHVwIGNvbW1lbnQuCgkoZXhwYW5kX2FnZ3JfaW5pdF8xKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoZXhwYW5kX2NsYXNzX2Rlc2MpOiBTdG9yZSB0aGUgdmlydHVhbCBmdW5jdGlvbiB0YWJsZQoJaW5kZXggd2hlcmUgdGhlIHZiYXNlIG9mZnNldCBsaXZlcyBpbiB0aGUgb2Zmc2V0IGZpZWxkLgoJKiBzZWFyY2guYyAoZGZzX3dhbGtfcmVhbCk6IE1ha2UgaXQgZ2xvYmFsLgoJKGRmc19kZWJ1Z19tYXJrKTogVXNlIFRZUEVfQ09OVEFJTlNfVlBUUl9QLgoJKiB0cmVlLmMgKG1ha2VfYmluZm8pOiBEb24ndCBjbGVhciBCSU5GT19WUFRSX0ZJRUxELgoKCSogdGluZm8uaCAoVVNJdHlwZSk6IE1ha2UgaXQgc2lnbmVkIHVuZGVyIHRoZSBuZXcgQUJJLgoJKiB0aW5mby5jYyAoY29udmVydF90b19iYXNlKTogTmV3IGZ1bmN0aW9uLiAgRW5jYXBzdWxhdGUgYmFzZQoJY29udmVyc2lvbiBsb2dpYyBoZXJlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QpOiBVc2UgaXQuCgkoX19jbGFzc190eXBlX2luZm86OmRvX2R5bmNhc3QpOiBMaWtld2lzZS4KCShfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3Vib2JqKTogTGlrZXdpc2UuCgoJKiBpbml0LmMgKGNvbnN0cnVjdF92aXJ0dWFsX2Jhc2VzKTogRG9uJ3QgbG9vayB1cCB0aGUgYWRkcmVzc2VzIG9mCgl2aXJ0dWFsIGJhc2VzIGF0IHJ1bi10aW1lLgoKCSogY2xhc3MuYyAoYnVpbGRfdmJhc2VfcG9pbnRlcik6IFJlbG9jYXRlLgoJKGJ1aWxkX3ZiYXNlX3BvaW50ZXJfZmllbGRzKTogTGlrZXdpc2UuCgkoZGZzX2J1aWxkX3ZiYXNlX29mZnNldF92dGJsX2VudHJpZXMpOiBMaWtld2lzZS4KCShidWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgoJKiBkZWNsLmMgKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogQ29tcGxhaW4gaWYgLWZuZXctYWJpCgktZm5vLXZ0YWJsZS10aHVua3MgaXMgdXNlZC4KCgkqIGRlY2wyLmMgKGxhbmdfZGVjb2RlX29wdGlvbik6IERvbid0IGNvdXBsZSBmbGFnX2hvbm9yX3N0ZCB0bwoJZmxhZ19uZXdfYWJpLgoKMjAwMC0wMS0xNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAobnVtX2V4dHJhX3Z0YmxfZW50cmllcyk6IE5ldyBmdW5jdGlvbi4KCShzaXplX2V4dHJhX3Z0YmxfZW50cmllcyk6IExpa2V3aXNlLgoJKGRmc192dGFibGVfcGF0aF91bm1hcmspOiBMaWtld2lzZS4KCShkZnNfdnRhYmxlX3BhdGhfdW5tYXJrZWRfcmVhbF9iYXNlc19xdWV1ZV9wKTogTGlrZXdpc2UuCgkoZGZzX3Z0YWJsZV9wYXRoX21hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBMaWtld2lzZS4KCSogY2xhc3MuYyAobnVtX2V4dHJhX3Z0YmxfZW50cmllcyk6IE5ldyBmdW5jdGlvbi4KCShzaXplX2V4dHJhX3Z0YmxfZW50cmllcyk6IExpa2V3aXNlLgoJKGRmc19idWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX3ZiYXNlX29mZnNldF92dGJsX2VudHJpZXMpOiBMaWtld2lzZS4KCShidWlsZF92dGJsX2luaXRpYWxpemVyKTogVXNlIGl0LgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IEFkanVzdCB2dGFibGUgc2l6ZXMgKHVzaW5nCgludW1fZXh0cmFfdnRibF9lbnRyaWVzKS4KCSogZXhwci5jIChjcGx1c19leHBhbmRfZXhwcik6IEFzc2VydCB0aGF0IHRoZSBERUNMX1JUTCBmb3IgYQoJVEhVTktfREVDTCBpcyBub24tTlVMTCBiZWZvcmUgZXhwYW5kaW5nIGl0LgoJKiBpbml0LmMgKGV4cGFuZF92aXJ0dWFsX2luaXQpOiBBZGp1c3QgdGhlIHZ0YWJsZSBwb2ludGVyIGJ5CglzaXplX2V4dHJhX3Z0YmxfZW50cmllcyBiZWZvcmUgc3RvcmluZyBpdC4KCSogc2VhcmNoLmMgKGdldF9zaGFyZWRfdmFzZV9pZl9ub3RfcHJpbWFyeSk6IEFkanVzdCBwcm90b3R5cGUuCglIYW5kbGUgVFJFRV9MSVNUIHBhcmFtZXRlcnMgaGVyZSwgbm90IGluIHRoZSBkZnNfKiBmdW5jdGlvbnMuCgkoZGZzX3VubWFya2VkX3JlYWxfYmFzZXNfcXVldWVfcCk6IEFkanVzdC4KCShkZnNfbWFya2VkX3JlYWxfYmFzZXNfcXVldWVfcCk6IExpa2V3aXNlLgoJKGRmc192dGFibGVfcGF0aF91bm1hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBOZXcgZnVuY3Rpb24uCgkoZGZzX3Z0YWJsZV9wYXRoX21hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBOZXcgZnVuY3Rpb24uCgkoZGZzX3Z0YWJsZV9wYXRoX3VubWFyayk6IExpa2V3aXNlLgoKMjAwMC0wMS0xNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG9wdGltaXplLmMgKGNvcHlfYm9keV9yKTogQ2xlYXIgdGhlIG9wZXJhbmQgdGhyZWUgb2YgYQoJVEFSR0VUX0VYUFIgd2hlbiBjb3B5aW5nIGl0LgoKMjAwMC0wMS0xNCAgTWFydGluIHYuIEz2d2lzICA8bG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlPgoKCSogbWV0aG9kLmMgKGJ1aWxkX2RlY2xfb3ZlcmxvYWRfcmVhbCk6IENoZWNrIHdoZXRoZXIgd2UgYXJlIGluIDo6CgliZWZvcmUgcmV0dXJuaW5nIF9fYnVpbHRpbl9uZXcvZGVsZXRlLgoKMjAwMC0wMS0xMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKHRzdWJzdF9mcmllbmRfZnVuY3Rpb24pOiBJbXByb3ZlIGNvbW1lbnQuCgkoaW5zdGFudGlhdGVfZGVjbCk6IEF2b2lkIGNyYXNoaW5nIHdoZW4gYSAibmVzdGVkIiBmdW5jdGlvbiBpcwoJaW5zdGFudGlhdGVkIGZyb20gdGhlIHRvcCBsZXZlbC4KCgkqIGR1bXAuYyAoZHFldWV1ZV9hbmRfZHVtcCk6IER1bXAKCURFQ0xfRlJJRU5EX1BTRVVET19URU1QTEFURV9JTlNUQU5USUFUSU9OLgoKMjAwMC0wMS0xMyAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogY2FsbC5jOiBJZiBHQVRIRVJfU1RBVElTVElDUywgZGVjbGFyZSBgbl9idWlsZF9tZXRob2RfY2FsbCcuCgoyMDAwLTAxLTEzICBOYXRoYW4gU2lkd2VsbCAgPHNpZHdlbGxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGcrK3NwZWMuYyAobGFuZ19zcGVjaWZpY19kcml2ZXIpOiBBZGQgLWZuZXctYWJpIGlmCglFTkFCTEVfTkVXX0dYWF9BQkkgZGVmaW5lZC4KCSogTWFrZS1sYW5nLmluICh0aW5mby5vLCB0aW5mbzIubywgZXhjZXB0aW9uLm8sIG5ldy5vLAoJb3BuZXcubywgb3BuZXdudC5vLCBvcHZuZXcubywgb3B2bmV3bnQubywgb3BkZWwubywgb3BkZWxudC5vLAoJb3B2ZGVsLm8sIG9wdmRlbG50Lm8pOiBVc2UgR1hYX0FCSV9GTEFHIHN3aXRjaC4KCjIwMDAtMDEtMTIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKHN0YXJ0X2NsZWFudXBfZm4pOiBDYWxsIHB1c2hkZWNsLgoKCSogY2FsbC5jIChjb252ZXJ0X2NsYXNzX3RvX3JlZmVyZW5jZSk6IEZpeCB0eXBvcy4KCShidWlsZF9jb25kaXRpb25hbF9leHByKTogSGFuZGxlIGVycm9ycyBncmFjZWZ1bGx5LgoJKiBjbGFzcy5jIChwdXNoX25lc3RlZF9jbGFzcyk6IExpa2V3aXNlLgoJKiBjcC10cmVlLmggKFZBUl9GVU5DVElPTl9PUl9QQVJNX0RFQ0xfQ0hFQ0spOiBOZXcgbWFjcm8uCgkoREVDTF9USElTX0VYVEVSTik6IFVzZSBpdC4KCShERUNMX1RISVNfU1RBVElDKTogTGlrZXdpc2UuCgkqIGN2dC5jIChjb252ZXJ0X3RvX3ZvaWQpOiBIYW5kbGUgZXJyb3JzIGdyYWNlZnVsbHkuCgkoYnVpbGRfZXhwcl90eXBlX2NvbnZlcnNpb24pOiBMaWtld2lzZS4KCSogZGVjbC5jIChtYXliZV9wdXNoX2RlY2wpOiBMaWtld2lzZS4KCShzdGFydF9kZWNsXzEpOiBMaWtld2lzZS4KCShyZXF1aXJlX2NvbXBsZXRlX3R5cGVzX2Zvcl9wYXJtcyk6IExpa2V3aXNlLgoJKiBwYXJzZS55IChzdHJ1Y3RzcCk6IExpa2V3aXNlLgoJKGJhc2VfY2xhc3MpOiBMaWtld2lzZS4KCSogcGFyc2UuYzogUmVnZW5lcmF0ZWQuCgkqIHB0LmMgKGZpbmlzaF9tZW1iZXJfdGVtcGxhdGVfZGVjbCk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoZGVjYXlfY29udmVyc2lvbik6IExpa2V3aXNlLgoKCSogY3AtdHJlZS5oIChkZnNfc2tpcF92YmFzZXMpOiBOZXcgZnVuY3Rpb24uCgkoZmluZF92YmFzZV9pbnN0YW5jZSk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChkZXRlcm1pbmVfcHJpbWFyeV9iYXNlKTogQWxsb3cgYSBuZWFybHkgZW1wdHkgYmFzZSB0bwoJc2VydmUgYXMgYSBwcmltYXJ5IGJhc2UgY2xhc3MgdW5kZXIgdGhlIG5ldyBBQkkuCgkoZ2V0X2NsYXNzX29mZnNldF8xKTogUmVuYW1lIHRvIC4uLgoJKGRmc19nZXRfY2xhc3Nfb2Zmc2V0KTogLi4uIHRoaXMuICBTaW1wbGlmeS4gIERvbid0IGlzc3VlIGVycm9yCgltZXNzYWdlcyBoZXJlLgoJKGdldF9jbGFzc19vZmZzZXQpOiBVc2UgaXQuICBJc3N1ZSBlcnJvciBtZXNzYWdlcyBoZXJlLgoJKGRmc19tb2RpZnlfdnRhYmxlcyk6IFJlbHkgb24gZGZzX3VubWFya2VkX3JlYWxfYmFzZXNfcXVldWVfcCB0bwoJZmluZCB0aGUgcmlnaHQgY29waWVzIG9mIHZpcnR1YWwgYmFzZXMuCgkoZml4dXBfdnRhYmxlX2RlbHRhczEpOiBSZW5hbWUgdG8gLi4uCgkoZGZzX2ZpeHVwX3Z0YWJsZV9kZWx0YXMpOiAuLi4gdGhpcy4gIEFkanVzdCB0byBoYW5kbGUgdmlydHVhbAoJYmFzZXMgYXMgcHJpbWFyeSBiYXNlcy4KCShmaXh1cF92dGFibGVfZGVsdGFzKTogUmVtb3ZlLgoJKG92ZXJyaWRlX29uZV92dGFibGUpOiBIYW5kbGUgdmlydHVhbCBiYXNlcyBhcyBwcmltYXJ5IGJhc2VzLgoJKG1lcmdlX292ZXJyaWRlcyk6IExpa2V3aXNlLgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IExpa2V3aXNlLgoJKGR1bXBfY2xhc3NfaGllcmFyY2h5KTogRHVtcCBwcmltYXJ5LW5lc3Mgb2YgYmFzZXMgYXMgd2VsbC4KCSogc2VhcmNoLmMgKG1hcmtfcHJpbWFyeV9iYXNlcyk6IFVzZSBhIHByZS1vcmRlciB0cmF2ZXJzYWwgdG8KCWhhbmRsZSBwcmltYXJ5IHZpcnR1YWwgYmFzZXMuCgkoZGZzX3NraXBfdmJhc2VzKTogTmV3IGZpdW5jdGlvbi4KCShleHBhbmRfdXBjYXN0X2ZpeHVwcyk6IEFkanVzdCB0byBoYW5kbGUgcHJpbWFyeSB2aXJ0dWFsIGJhc2VzLgoJKGZpeHVwX3ZpcnR1YWxfdXBjYXN0X29mZnNldHMpOiBMaWtld2lzZS4KCShmaXh1cF9hbGxfdmlydHVhbF91cGNhc3Rfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKGRmc19maW5kX3ZiYXNlX2luc3RhbmNlcyk6IE5ldyBmdW5jdGlvbi4KCShmaW5kX3ZiYXNlX2luc3RhbmNlKTogTGlrZXdpc2UuCgoyMDAwLTAxLTExICBNdW1pdCBLaGFuICA8a2hhbkB4cmF5bGl0aC53aXNjLmVkdT4KCgkqIGxleC5jIChESVJfU0VQQVJBVE9SKTogRGVsZXRlIG1hY3JvLgoKMjAwMC0wMS0xMiAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKICAgICAgICogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogSGFuZGxlIGF1dG9tYXRpYyBsaW5lIHdyYXBwaW5nCiAgICAgICBvcHRpb24uCgoyMDAwLTAxLTExICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZnJpZW5kLmMgKGRvX2ZyaWVuZCk6IERvbid0IHJlc29sdmUgc2NvcGVzIHdoZW4gcHJvY2Vzc2luZwoJdGVtcGxhdGUgZGVjbGFyYXRpb25zLCBldmVuIGlmIHRoZSBxdWFsaWZ5aW5nIHNjb3BlIGRvZXNuJ3QKCWludm9sdmUgdGVtcGxhdGUgcGFyYW1ldGVycy4KCjIwMDAtMDEtMTAgIE1hcmsgTWl0Y2hlbGwgIDxtaXRjaGVsbEBkdW1ibGVkb3JlLmNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChkZnNfbW9kaWZ5X3Z0YWJsZXNfcXVldWVfcCk6IFJlbW92ZS4KCShtb2RpZnlfYWxsX3Z0YWJsZXMpOiBVc2UgZGZzX3VubWFya2VkX3JlYWxfYmFzZXNfcXVldWVfcAoJYW5kIGRmc19tYXJrZWRfcmVhbF9iYXNlc19xdWV1ZV9wIGluc3RlYWQgb2YKCWRmc19tb2RpZnlfdnRhYmxlc19xdWV1ZV9wLgoKCSogY2xhc3MuYyAoYnVpbGRfdmJhc2VfcGF0aCk6IFNpbXBsaWZ5LgoJKGRmc19wcm9wYWdhdGVfYmluZm9fb2Zmc2V0cyk6IE5ldyBmdW5jdGlvbi4KCShwcm9wYWdhdGVfYmluZm9fb2Zmc2V0cyk6IFVzZSBpdC4KCShyZW1vdmVfYmFzZV9maWVsZCk6IFNpbXBsaWZ5LgoJKGRmc19zZXRfb2Zmc2V0X2Zvcl92YmFzZXMpOiBSZW1vdmUuCgkoZGZzX3NldF9vZmZzZXRfZm9yX3NoYXJlZF92YmFzZXMpOiBOZXcgZnVuY3Rpb24uCgkoZGZzX3NldF9vZmZzZXRfZm9yX3Vuc2hhcmVkX3ZiYXNlcyk6IExpa2V3aXNlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogVXNlIHRoZW0uCgkobGF5b3V0X2Jhc2V0eXBlcyk6IERvbid0IGNhbGwgcHJvcGFnYXRlX2JpbmZvX29mZnNldHMuCgkqIHNlYXJjaC5jIChkZnNfZ2V0X3ZiYXNlX3R5cGVzKTogQ2xvbmUgY29tcGxldGVseSBmcmVzaCBiaW5mb3MKCWZvciB0aGUgdmJhc2VzLgoKCSogY2xhc3MuYyAoYnVpbGRfYmFzZV9maWVsZCk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20gLi4uCgkoYnVpbGRfYmFzZV9maWVsZHMpOiAuLi4gaGVyZS4gIFVzZSBpdC4gIEFsbG9jYXRlIHByaW1hcnkgYmFzZXMKCWZpcnN0LCB1bmRlciB0aGUgbmV3IEFCSS4KCShnZXRfdnRhYmxlX2VudHJ5KTogUmVtb3ZlLgoJKHJlbW92ZV9iYXNlX2ZpZWxkKTogTmV3IGZ1bmN0aW9uLCBzcGxpdCBvdXQgZnJvbSAuLi4KCShyZW1vdmVfYmFzZV9maWVsZHMpOiAuLi4gaGVyZS4gIEFkanVzdCBzaW5jZSBwcmltYXJ5IGJhc2VzIGNvbWUKCWZpcnN0IHVuZGVyIHRoZSBuZXcgQUJJLgoKCSogY3AtdHJlZS5oIChleHBhbmRfZGlyZWN0X3Z0YmxzX2luaXQpOiBSZW1vdmUgZGVjbGFyYXRpb24uCgkoaW5pdGlhbGl6ZV92dGJsX3B0cnMpOiBOZXcgZnVuY3Rpb24uCgkoZXhwYW5kX2luZGlyZWN0X3Z0YmxzX2luaXQpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKGNvbnZlcnRfcG9pbnRlcl90b192YmFzZSk6IERlY2xhcmUuCgkqIGluaXQuYyAoZXhwYW5kX2RpcmVjdF92dGJsc19pbml0KTogUmVtb3ZlLgoJKGRmc19pbml0aWFsaXplX3Z0YmxfcHRycyk6IE5ldyBmdW5jdGlvbi4KCShpbml0aWFsaXplX3Z0YmxfcHRycyk6IExpa2V3aXNlLgoJKGVtaXRfYmFzZV9pbml0KTogVXNlIGluaXRpYWxpemVfdnRibF9wdHJzLgoJKiBzZWFyY2guYyAoY29udmVydF9wb2ludGVyX3RvX3ZiYXNlKTogTWFrZSBpdCBnbG9iYWwuCgkoZXhwYW5kX2luZGlyZWN0X3Z0YmxzX2luaXQpOiBSZW1vdmUgdnRhYmxlIGluaXRpYWxpemF0aW9uIGNvZGUuCgkqIHNlbWFudGljcy5jIChzZXR1cF92dGJsX3B0cik6IFVzZSBpbml0aWFsaXplX3Z0YmxfcHRycy4KCgkqIGNsYXNzLmMgKGRmc19maW5pc2hfdnRibHMpOiBOZXcgZnVuY3Rpb24uCgkoZmluaXNoX3Z0YmxzKTogVXNlIGl0LgoJKGR1bXBfY2xhc3NfaGllcmFyY2h5KTogTmV3IGZ1bmN0aW9uLgoKCSogY3AtdHJlZS5oIChCSU5GT19QUklNQVJZX01BUktFRF9QKTogQ2hhbmdlIGRlZmluaXRpb24uCgkoQklORk9fVkJBU0VfUFJJTUFSWV9QKTogTmV3IG1hY3JvLgoJKEJJTkZPX1ZJUlRVQUxTKTogQWRkIHRvIGRvY3VtZW50YXRpb24uCgkoU0VUX0JJTkZPX1BSSU1BUllfTUFSS0VEX1ApOiBSZW1vdmUuCgkoQ0xFQVJfQklORk9fUFJJTUFSWV9NQVJLRURfUCk6IExpa2V3aXNlLgoJKGRmc19tYXJrX3ByaW1hcnlfYmFzZXNfcXVldWVfcCk6IExpa2V3aXNlLgoJKGRmc191bm1hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBOZXcgZnVuY3Rpb24uCgkoZGZzX21hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBMaWtld2lzZS4KCSogc2VhcmNoLmMgKGRmc19tYXJrX3ByaW1hcnlfYmFzZXMpOiBBZGp1c3QuCgkobWFya19wcmltYXJ5X2Jhc2VzKTogTGlrZXdpc2UuCgkoZ2V0X3NoYXJlZF92YmFzZV9pZl9ub3RfcHJpbWFyeSk6IE5ldyBmdW5jdGlvbi4KCShkZnNfdW5tYXJrZWRfcmVhbF9iYXNlc19xdWV1ZV9wKTogTGlrZXdpc2UuCgkoZGZzX21hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBMaWtld2lzZS4KCShkZnNfZ2V0X3B1cmVfdmlydHVhbHMpOiBTaW1wbGlmeS4KCShnZXRfcHVyZV92aXJ0dWFscyk6IExpa2V3aXNlLgoKMjAwMC0wMS0xMCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogbGV4LmM6IEluY2x1ZGUgdG1fcC5oLgoKMjAwMC0wMS0wNyAgTmF0aGFuIFNpZHdlbGwgIDxzaWR3ZWxsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBsYW5nLXNwZWNzLmggKF9fR1hYX0FCSV9WRVJTSU9OKTogTmV3IHByZXByb2Nlc3NvciBtYWNyby4KCjIwMDAtMDEtMDYgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogZGVjbDIuYyAoY29tZGF0X2xpbmthZ2UpOiBEb24ndCBzZXQgREVDTF9ERUZFUl9PVVRQVVQuCgkqIHB0LmMgKGluc3RhbnRpYXRlX2RlY2wpOiBEZWZlciBjb21kYXQgdGVtcGxhdGVzIHRoYXQgbWlnaHQgbm90IGJlCgluZWVkZWQuCgoJKiBjcC10cmVlLmggKERFQ0xfTkVFREVEX1ApOiBBbHNvIHRydWUgaWYgIURFQ0xfQ09NREFULgoJKiBkZWNsMi5jIChmaW5pc2hfdnRhYmxlX3ZhcmRlY2wpOiBEb24ndCBjaGVjayAhREVDTF9DT01EQVQuCgkoZmluaXNoX2ZpbGUpOiBMaWtld2lzZS4KCgkqIGRlY2wyLmMgKGltcG9ydF9leHBvcnRfY2xhc3MpOiBVbmRvIDEyLzE0IGNoYW5nZS4KCgkqIGVycm9yLmMgKGR1bXBfZGVjbCk6IG9wZXJhdG9yIG5ldywgbm90IG9wZXJhdG9ybmV3LgoKCSogY2xhc3MuYyAoZmllbGRfZGVjbF9jbXApOiBBIG5vbnR5cGUgaXMgImdyZWF0ZXIiIHRoYW4gYSB0eXBlLgoJKiBzZWFyY2guYyAobG9va3VwX2ZpZWxkXzEpOiBMb29rIGZvciB0aGUgbGFzdCBmaWVsZCB3aXRoIHRoZQoJZGVzaXJlZCBuYW1lLgoKMjAwMC0wMS0wNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AYWNtLm9yZz4KCgkqIGRlY2wyLmMgKGxvb2t1cF9hcmdfZGVwZW5kZW50KTogRGVhbCB3aXRoIEZOUyBub3QgYmVpbmcgYQoJRlVOQ1RJT05fREVDTC4KCjIwMDAtMDEtMDUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGFjbS5vcmc+CgoJKiB0eXBlY2suYyAoYnVpbGRfc3RhdGljX2Nhc3QpOiBEb24ndCBzdHJpcCB0YXJnZXQgcXVhbGlmaWVycwoJd2hlbiBjYXN0aW5nIGZyb20gYSBjbGFzcy4KCjIwMDAtMDEtMDQgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGNsYXNzLmMgKHdhcm5faGlkZGVuKTogSW5pdGlhbGl6ZSB2YXJpYWJsZSBgZm5kZWNsJy4KCjIwMDAtMDEtMDMgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZGVjbC5jIChmbGFnX2lzb2M5eCk6IE5ldyB2YXJpYWJsZSB0byBiZSBhYmxlIHRvIHVzZSBjb2RlIGluCgljLWNvbW1vbi5jLiAgRm9yIG5vdyBhbHdheXMgemVyby4KCjIwMDAtMDEtMDMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKENMQVNTVFlQRV9WQkFTRUNMQVNTRVMpOiBJbXByb3ZlIGRvY3VtZW50YXRpb24uCgkqIGNsYXNzLmMgKGxheW91dF9iYXNldHlwZXMpOiBEb24ndCBzZXQgQklORk9fSU5IRVJJVEFOQ0VfQ0hBSU4KCW9yIHVuc2hhcmVfYmFzZV9iaW5mb3MgZm9yIHZpcnR1YWwgYmFzZXMgaGVyZS4KCSogc2VhcmNoLmMgKGRmc19nZXRfdmJhc2VfdHlwZXMpOiBEbyBpdCBoZXJlLgoJKGdldF92YmFzZV90eXBlcyk6IEFkanVzdC4KCjIwMDAtMDEtMDIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKENMQVNTVFlQRV9WRklFTERTKTogTW92ZSBkZWZpbml0aW9uLgoJKEJJTkZPX1BSSU1BUllfTUFSS0VEX1ApOiBVc2UgZmxhZyA1LgoJKFNFVF9CSU5GT19QUklNQVJZX01BUktFRF9QKTogTGlrZXdpc2UuCgkoQ0xFQVJfQklORk9fUFJJTUFSWV9NQVJLRURfUCk6IExpa2V3aXNlLgoJKHVubWFya19wcmltYXJ5X2Jhc2VzKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKHVubWFya2VkcCk6IERlY2xhcmUuCgkoZGZzX3ZiYXNlX3VubWFyayk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChkZXRlcm1pbmVfcHJpbWFyeV9iYXNlKTogUmV0dXJuIGltbWVkaWF0ZWx5IGlmIHRoZXJlCglhcmUgbm8gYmFzZSBjbGFzc2VzLiAgQ2FsbCBtYXJrX3ByaW1hcnlfYmFzZXMgaGVyZS4KCShtb2RpZnlfYWxsX2RpcmVjdF92dGFibGVzKTogUmVtb3ZlLgoJKG1vZGlmeV9hbGxfaW5kaXJlY3RfdnRhYmxlcyk6IFJlbW92ZS4KCShkZnNfbW9kaWZ5X3Z0YWJsZXNfcXVldWVfcCk6IE5ldyBmdW5jdGlvbi4KCShkZnNfbW9kaWZ5X3Z0YWJsZXMpOiBOZXcgZnVuY3Rpb24uCgkobW9kaWZ5X2FsbF92dGFibGVzKTogVXNlIHRoZW0uCgkoYnVpbGRfYmFzZV9maWVsZHMpOiBCdWlsZCBGSUVMRF9ERUNMcyBmb3IgcHJpbWFyeSB2aXJ0dWFsIGJhc2UKCWNsYXNzZXMuCgkoY3JlYXRlX3Z0YWJsZV9wdHIpOiBEb24ndCBjYWxsIGRldGVybWluZV9wcmltYXJ5X2Jhc2UgaGVyZS4KCShkZnNfbWFya19wcmltYXJ5X2Jhc2VzX2FuZF9zZXRfdmJhc2Vfb2Zmc2V0cyk6IFJlbmFtZSB0byAuLi4KCShkZnNfc2V0X29mZnNldF9mb3JfdmJhc2VzKTogLi4uIHRoaXMuCgkobGF5b3V0X3ZpcnR1YWxfYmFzZXMpOiBVc2UgaXQuCgkobGF5b3V0X2NsYXNzX3R5cGUpOiBDYWxsIGRldGVybWluZV9wcmltYXJ5X2Jhc2UgaGVyZS4KCSogc2VhcmNoLmMgKHVubWFya2VkcCk6IE1ha2UgaXQgZ2xvYmFsLgoJKHNoYXJlZF9tYXJrZWRfcCk6IFNpbXBsaWZ5LgoJKHNoYXJlZF91bm1hcmtlZF9wKTogTGlrZXdpc2UuCgkoZGZzX3ByaW1hcnlfYmFzZXNfcXVldWVfcCk6IFJlbW92ZS4KCShkZnNfdW5tYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCSh1bm1hcmtfcHJpbWFyeV9iYXNlcyk6IExpa2V3aXNlLgoJKG1hcmtfcHJpbWFyeV9iYXNlcyk6IFNpbXBsaWZ5LgoJKGdldF9wdXJlX3ZpcnR1YWxzKTogRG9uJ3QgY2FsbCBtYXJrX3ByaW1hcnlfYmFzZXMgaGVyZS4KCShkZnNfdmJhc2VfdW5tYXJrKTogTmV3IGZ1bmN0aW9uLgoJKGdldF92YmFzZV90eXBlcyk6IFNpbXBsaWZ5LgoKCSogY2xhc3MuYyAoc3RydWN0IGJhc2VfaW5mbyk6IFJlbW92ZS4KCShkZXRlcm1pbmVfcHJpbWFyeV9iYXNlKTogVGFrZSBoYXNfdmlydHVhbF9wIHJhdGhlciB0aGFuIGEKCWJhc2VfaW5mbyBhcyBpbnB1dC4gIERvbid0IGNhbGN1bGF0ZSBtYXhfaGFzX3ZpcnR1YWwuCgkoZmluaXNoX3N0cnVjdF9iaXRzKTogUmVtb3ZlIG1heF9oYXNfdmlydHVhbCBhcmd1bWVudC4KCShjcmVhdGVfdnRhYmxlX3B0cik6IFJlbW92ZSBtYXhfaGFzX3ZpcnR1YWxfcCBhcmd1bWVudC4KCShsYXlvdXRfdmlydHVhbF9iYXNlcyk6IFJlbW92ZSBtYXggYXJndW1lbnQuCgkobGF5b3V0X2Jhc2V0eXBlcyk6IExpa2V3aXNlLgoJKGxheW91dF9jbGFzc190eXBlKTogUmVtb3ZlIG1heF9oYXNfdmlydHVhbF9wIGFyZ3VtZW50LgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IFJlbW92ZSBtYXhfaGFzX3ZpcnR1YWwuCgoJKiBjcC10cmVlLmggKGRmc19tYXJrX3ByaW1hcnlfYmFzZXNfcXVldWVfcCk6IE5ldyBmdW5jdGlvbi4KCShsYXlvdXRfYmFzZXR5cGVzKTogUmVtb3ZlLgoJKiBjbGFzcy5jIChwcm9wYWdhdGVfYmluZm9fb2Zmc2V0cyk6IE1vdmVkIGhlcmUgZnJvbSB0cmVlLmMuCglVcGRhdGUgdG8gaGFuZGxlIHByaW1hcnkgdmlydHVhbCBiYXNlcy4KCShyZW1vdmVfYmFzZV9maWVsZHMpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBmcm9tCglsYXlvdXRfYmFzZXR5cGVzLgoJKGRmc19tYXJrX3ByaW1hcnlfYmFzZXNfYW5kX3NldF92YmFzZV9vZmZzZXRzKTogTmV3IGZ1bmN0aW9uLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogTmV3IGZ1bmN0aW9uLCBzcGxpdCBvdXQgZnJvbQoJbGF5b3V0X2Jhc2V0eXBlcy4gIFVwZGF0ZSB0byBoYW5kbGUgcHJpbWFyeSB2aXJ0dWFsIGJhc2VzLgoJKGxheW91dF9iYXNldHlwZXMpOiBNb3ZlZCBoZXJlIGZyb20gdHJlZS5jLiAgVXNlCglyZW1vdmVfYmFzZV9maWVsZHMgYW5kIGxheW91dF92aXJ0dWFsX2Jhc2VzLgoJKiBzZWFyY2guYyAoZGZzX21hcmtfcHJpbWFyeV9iYXNlc19xdWV1ZV9wKTogTmV3IGZ1bmN0aW9uLgoJKG1hcmtfcHJpbWFyeV9iYXNlcyk6IFVzZSBpdC4KCSogdHJlZS5jIChDRUlMKTogUmVtb3ZlLgoJKHByb3BhZ2F0ZV9iaW5mb19vZmZzZXRzKTogUmVtb3ZlLgoJKGxheW91dF9iYXNldHlwZXMpOiBSZW1vdmUuCgoyMDAwLTAxLTAxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChDTEFTU1RZUEVfTl9CQVNFQ0xBU1NFUyk6IFVzZSBCSU5GT19OX0JBU0VUWVBFUy4KCShCSU5GT19QUklNQVJZX01BUktFRF9QKTogTmV3IG1hY3JvLgoJKFNFVF9CSU5GT19QUklNQVJZX01BUktFRF9QKTogTGlrZXdpc2UuCgkoQ0xFQVJfQklORk9fUFJJTUFSWV9NQVJLRURfUCk6IExpa2V3aXNlLgoJKG1hcmtfcHJpbWFyeV9iYXNlcyk6IE5ldyBmdW5jdGlvbi4KCSh1bm1hcmtfcHJpbWFyeV9iYXNlcyk6IExpa2V3aXNlLgoJKiBzZWFyY2guYyAoZ2V0X2Fic3RyYWN0X3ZpcnR1YWxzXzEpOiBSZW1vdmUuCgkoZGZzX21hcmtfcHJpbWFyeV9iYXNlcyk6IE5ldyBmdW5jdGlvbi4KCShtYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCShkZnNfdW5tYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCSh1bm1hcmtfcHJpbWFyeV9iYXNlcyk6IExpa2V3aXNlLgoJKGRmc19nZXRfcHVyZV92aXJ0dWFscyk6IExpa2V3aXNlLgoKMjAwMC0wMS0wMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoc2tpcF9ydHRpX3N0dWZmKTogQWRqdXN0IHByb3RvdHlwZS4KCSogY2xhc3MuYyAoc2tpcF9ydHRpX3N0dWZmKTogUmVvcmdhbml6ZSBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdmFsdWUuCgkobW9kaWZ5X29uZV92dGFibGUpOiBBZGp1c3QuCgkoZml4dXBfdnRhYmxlX2RlbHRhczEpOiBMaWtld2lzZS4KCShvdmVycmlkZV9vbmVfdnRhYmxlKTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChnZXRfYWJzdHJhY3RfdmlydHVhbHNfMSk6IExpa2V3aXNlLgoJKGdldF9wdXJlX3ZpcnR1YWxzKTogTGlrZXdpc2UuCgkoZXhwYW5kX3VwY2FzdF9maXh1cHMpOiBMaWtld2lzZS4KCSogdHJlZS5jIChkZWJ1Z19iaW5mbyk6IExpa2V3aXNlLgoKCSogY2xhc3MuYyAoYnVpbGRfdnRhYmxlKTogRG9uJ3QgcmV0dXJuIGEgdmFsdWUuICBEb24ndCByZWJ1aWxkCgl2dGFibGVzIGZvciBiYXNlcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIGhhbmRsZWQuCgkocHJlcGFyZV9mcmVzaF92dGFibGUpOiBEb24ndCByZWJ1aWxkIHZ0YWJsZXMgZm9yIGJhc2VzIHRoYXQgaGF2ZQoJYWxyZWFkeSBiZWVuIGhhbmRsZWQuCgkobW9kaWZ5X29uZV92dGFibGUpOiBBZGp1c3QgYWNjb3JkaW5nbHkuCgkoZml4dXBfdnRhYmxlX2RlbHRhczEpOiBMaWtld2lzZS4KCShmaW5pc2hfc3RydWN0XzEpOiBMaWtld2lzZS4KCjIwMDAtMDEtMDEgIE1hcnRpbiB2LiBM9ndpcyAgPGxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KCgkqIGNhbGwuYyAoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogQWxzbyBjaGVjayBkZXN0cnVjdG9ycy4KCg==